H.263视频编码的估计和补偿
答案:1 悬赏:60 手机版
解决时间 2021-11-30 23:50
- 提问者网友:wodetian
- 2021-11-30 14:14
H.263视频编码的估计和补偿
最佳答案
- 五星知识达人网友:空山清雨
- 2021-11-30 14:25
H.263编码器运动估计和补偿降低带宽的第一步就是从当前帧中减去之前传输的帧,这样只有差值或叫残差值才被编码并传输。这就意味着帧中没有变化的内容就不被 编码。我们通过试图对于当前帧的内容的移动进行估计并补偿这个运动值来实现更高的压缩比。运动估计模块通过在当前帧中和在前些帧中周围的区域比较每个16*16的像素块(宏块),并试图找到一个匹配的帧。匹配的区域从当前的宏块位置中由运动补偿模块删除掉。如果运动估计和补偿过程很有效率的话,剩余的宏块应该只包含很少量的信息。
离散余弦变换(DCT) DCT把一块像素值(或剩余帧值)变换到一系列“频域系数中。这就好像利用快速傅里叶变换(FFT)把一个信号从时域转变到频域中一样的。 DCT在一个二维的像素块上(而不是一个一维的信号)进行操作,它尤其长于把块中的能量压缩到一系列的系数中去。这就意味着,通过很少量的DCT系数,我们就可以重建一个原始像素块的拷贝。
量化对于一个典型的像素块来说,用DCT得到的大多数的系数都是接近于0的。量化器模块降低了每个系数的准确性,这样近似于0的值就被置 0,而且只有一些非0值留下来了。实际操作中,我们通过整数级因子来划分系数值,并截去结果。很重要的一点是我们在量化过程中“扔掉”了一些信息。
熵编码 一个熵编码器(比如说Huffman编码器)把常出现的值用更短的二进制码来表示,并且把不常出现的值用长一些的二进制码进行表示。 H.263中的熵编码是基于这个技术的,并被用来压缩量化后的DCT系数的。这个结果是一个序列的变长二进制。这些码组合起来用来同步和控制信息(比如重建运动补偿的参考帧时需要的运动向量),用以进成编码的H.263码流。帧存储当前帧必须被存储掉,这样,它才可以在下一帧编码的时候被用做参考帧。我们不是简单地把当前存存储起来,而是把逆量化的量化因子,用逆DCT操作后的反变换以及用来重建一帧的加到运动补偿的参考块信息存放在存储区中。这就确保了在编码器端帧存储区中的内容与在解码器的存储区中的内容是相同的。当下一帧被编码的时候,运动估计使用帧存储区中的内容来决定运动补偿的最佳匹配区域。
离散余弦变换(DCT) DCT把一块像素值(或剩余帧值)变换到一系列“频域系数中。这就好像利用快速傅里叶变换(FFT)把一个信号从时域转变到频域中一样的。 DCT在一个二维的像素块上(而不是一个一维的信号)进行操作,它尤其长于把块中的能量压缩到一系列的系数中去。这就意味着,通过很少量的DCT系数,我们就可以重建一个原始像素块的拷贝。
量化对于一个典型的像素块来说,用DCT得到的大多数的系数都是接近于0的。量化器模块降低了每个系数的准确性,这样近似于0的值就被置 0,而且只有一些非0值留下来了。实际操作中,我们通过整数级因子来划分系数值,并截去结果。很重要的一点是我们在量化过程中“扔掉”了一些信息。
熵编码 一个熵编码器(比如说Huffman编码器)把常出现的值用更短的二进制码来表示,并且把不常出现的值用长一些的二进制码进行表示。 H.263中的熵编码是基于这个技术的,并被用来压缩量化后的DCT系数的。这个结果是一个序列的变长二进制。这些码组合起来用来同步和控制信息(比如重建运动补偿的参考帧时需要的运动向量),用以进成编码的H.263码流。帧存储当前帧必须被存储掉,这样,它才可以在下一帧编码的时候被用做参考帧。我们不是简单地把当前存存储起来,而是把逆量化的量化因子,用逆DCT操作后的反变换以及用来重建一帧的加到运动补偿的参考块信息存放在存储区中。这就确保了在编码器端帧存储区中的内容与在解码器的存储区中的内容是相同的。当下一帧被编码的时候,运动估计使用帧存储区中的内容来决定运动补偿的最佳匹配区域。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯