视频编解码学习报告为什么需要视频编码?帧率每帧大小Bit/像素数据量30帧/s1920*1080像素24(R/G/B)177.9M一秒钟1080P视频的数据量为什么可以视频编码?空间冗余:时间冗余:为什么可以视频编码?结构冗余:视觉冗余:结构冗余是在某些场景中,存在着明显的图像分布模式。出现或相近的纹理结构,结构可以通过特定的过程来生成。例如:方格状的地板,蜂窝,砖墙,草席等图结构上存在冗余。视觉冗余是人类的视觉系统对图像场的敏感性是非均匀和非线性的。对亮度变化敏感,而对色度的变化相对不敏感;对物体边缘敏感,内部区域相对不敏感;对整体结构敏感,而对内部细节相对不敏感。可以根据这些视觉特性对图像信息进行取舍。帧内预测编码预测编码,是在压缩编码后传输的并不是像素本身的取样幅值,而是该取样的预测值和实际值之差。例如:当前像素为X,其左邻近像素为A,上邻近像素为B,上左邻近像素为C等。显然与X之间的距离近的像素,相关性强。按与X的距离不同给以不同的权值,把这些像素的加权和作为X的预测值P,与实际值相减,得到差值q。由于临近像素之间相关性强,q值非常小,达到压缩编码的目的。编码端:X–P=q解码端:P+q=X帧内预测编码编码端:X–P=q解码端:P+q=XC:200B:202D:204E:198F:203A:201X:202P=16𝐴+𝐵+𝐶+𝐷+𝐸+𝐹=201𝑞=𝑋−𝑃=202−201=1111001001帧内预测编码编码端:X–P=q解码端:P+q=XX(n)为当前像素的实际值,p(n)为其预测值,d(n)为差值。该差值经量化后得到残差量化值q(n)。预测值p(n)经预测器得到,预测器输入为已存储在预测器内前面的各像素,和当前值,它们的加权和即为下一个预测器输出。帧内预测编码解码输出e’(n)与原始信号e(n)之间有个因量化而产生的量化误差帧内预测编码左图给出了大量统计后差值信号的概率分布,一般说图像中平坦区域比突变区域多得多,例如人脸中,只有眼睛、鼻子、嘴等少量地方细节出现,其余则为平坦或缓变区域。帧内预测编码人眼视觉特性实验表明,在亮度突变部分,量化误差大些不会使人眼敏感,可采取粗量化(量化节距大);反之,在亮度变化缓慢区域,则应取细量化。总之,利用人眼这种掩盖效应采用非线性(不均匀)量化,可使总码率有所下降。帧内预测编码帧间预测编码•宏块分割:两帧之差的物体运动一般是刚体的平移运动,位移量不大,往往把一帧图像分成若干个M*N的块。•运动估计:为当前图像的每个像素块在之前已编码图像中寻找一个最佳匹配块。•运动补偿:根据运动矢量和帧间预测方法,求得当前帧的估计值。全局搜索法在一个预先定义的搜索区域内,把它与参考帧中所有的候选块进行比较,并且寻找具有最小匹配误差的一个。这两个块之间的位移就是所估计的MV(MotionVection,运动矢量)MV三步搜索法(绝对误差均值(MAD)最小准则)一个16×16搜索区中心点,以搜索区最大搜索长度的一半为步长,计算中心点及周围8个邻近点的MAD值,再以最小MAD点为中心,步长减为原来的一半,依次类推,到了第三步,再把步长减半,计算MAD值,其中MAD最小点运动矢量即为所求的值。帧间预测方法单向预测、双向预测和重叠块补偿有时,不只是利用前一帧像素预测,还需利用后一帧像素。特别是t-1帧尚未暴露而t+1帧已呈现出来的区域采用OBMC时,一个像素的预测不仅基于它所属的MV估计,还基于其相邻的MV估计运动矢量的预测MV如果对每个块的运动矢量进行编码,那么将花费相当数目的比特数,特别是如果选择小尺寸的块的时候。由于一个运动物体会覆盖多个分块,所以空间域相邻块的运动矢量具有很强的相关性,因此,每个运动矢量可以根据邻近先前已编码的块进行预测。运动矢量中值预测•对于除了块尺寸为16×8和8×16的块来说,MVp是块A、B和C的运动矢量的中值;•对于16×8块来说,上方的16×8块的MVp根据B预测得到,下方的16×8块的MVp根据A得到;•对于8×16块来说,左侧的16×8块的MVp根据A预测得到,右侧的16×8块的MVp根据C得到上层块模式运动矢量H.264标准中提供的可用块尺寸有16×16,8×16,16×8,8×8,8×4,4×8,4×4,共七个,可以看成7种分块模式根据以上原则,找到它的上层块。然后用上层块的运动矢量作为当前块的预测值谢谢!2018/7/23