文本位于文章底部
目前最新的视频编码器应该是H265/HEVC主要应用于高质量视频压缩,为未来2K、4K视频传输打基础,缺点是编解码消耗资源大
预测编码:
利用帧内部的相关性,只传输实际像素与参考像素的差值,这样的压缩方式叫做帧内预测编码,编码方法叫差分脉冲编码。
利用帧间的相关性进行差分预测编码。
变换编码:
视频信号中包含大量的直流与低频成分(平坦部分)以及少量的高频成分(细节部分)。因此将其从空域转为频域利于压缩编码。有K-L编码,离散余弦变换(DCT)。
熵编码:
根据统计特性进行码率压缩,通常有哈夫曼编码与算术编码。意义为用最少的码字表示信息符号。
1.基于波形编码:通过像素、亮度、色度等进行压缩编码,基于内容编码:通过对形状、纹理、运动进行编码。
2.PCM (脉冲编码调制),CRT(阴极射线管显示器),PSNR(峰值信噪比),VCL(视频编码层),MPEG(动态图像专家组),AVC(先进视频编码),NAL全称Network Abstract Layer, 即网络抽象层。
3.帧编码中帧的邻近行空间相关性强,时间相关性弱,场编码邻近行直接空间相关性弱,时间相关性强。运动强用场编码,静态多用帧编码。
4.YUV,与RGB可以转换
其中 Y 表示明亮度(Luminance、Luma),也就是灰阶值。
U、V 表示色度(Chrominance 或 Chroma),描述的是色调和饱和度。
视频信号的预处理
色彩插值:
由于一个CCD只能感应单色的色调值,在CCD上加多色滤镜阵列,通过相邻多个像素的CCD的插值凑齐每个像素点的RGB值。 有相邻元素复制法,双线性插值算法。
伽马校正:
由于显示器的色彩强度与其电压并不是线性的所以需要校正,通常时幂指数关系。
图像增强:
平滑滤波,中值滤波,相当于低通滤波器,边缘模糊化,可以平滑噪声但会磨去细节
直方图均衡,平衡各个灰度值的数目使其符合信息熵最大化
锐化,与低通滤波相反,通过微分、高通滤波实现
白平衡,在不同色温下的光感元件感受到的彩色不同,色温高偏蓝,色温低偏红。
全局平衡法:假设全局的RGB统计平均相同
局部白平衡法:取最亮为白色区域进行校准,传统方法通过拍白色的物体校准。
H.264编码三种模式
1、基本档次(Baseline Profile):利用I片和P片支持帧内和帧间编码,支持利用基于上下文的自适应的变长编码进行的熵编码(CAVLC)。主要用于可视电话、会议电视、无线通信等实时视频通信。
2、主要档次(Main Profile):支持隔行视频,采用B片的帧间编码和采用加权预测的帧间编码;支持利用基于上下文的自适应的算术编码(CABAC)。主要用于数字广播电视与数字视频存储。
3、扩展档次(Extended Profile):支持码流之间有效的切换(SP和SI片)、改进误码性能,但不支持隔行视频和CABAC。
SP帧的作用:为了解决定期插入I帧带来的视频流数据量急剧增加和流间切换引起的漂移问题, H. 264视频编码标准定义了两种新型帧, 即SP帧和SI帧。
SP帧能够像I帧一样提供无缝切换点,从而实现码流间的无缝连接。同时由于SP帧采用基于帧间预测的运动补偿预测编码技术,所以其大小远小于I帧。
SP帧的编码基本原理同P帧类似,仍是基于帧间预测的运动补偿预测编码,两者之间的差异在于: SP帧能够参考不同参考帧重构出相同的图像帧。 由于这一特性, SP帧可以取代I帧,广泛应用于流间切换、拼接、随机接入、快进快退和错误恢复中,同时大大降低了码率的开销。在某些应用中, SI帧与SP帧一起被使用,例如不同码流间的切换、错误恢复等。SI帧像I帧一样仅仅用空间预测,但重构图像与采用运动补偿预测编码技术的SP帧完全相同。
• 时间上的冗余信息(temporal redundancy)
在视频中,相邻的帧(frame)与帧之间通常有很强的关连性,这样的关连性即为时间上的冗余信息。这即是上一次学习中的帧间压缩。连续的图像往往非常相近,由于一些小运动造成了细小差别。这种减小冗余的方法可以存储和上一帧或者下一帧不同的地方。这样就可以减少存储了。这个过程就称作运动补偿。位移是利用运动向量得出的。
• 空间上的冗余信息(spatial redundancy)
在同一张帧之中,相邻的像素之间通常有很强的关连性,这样的关连性即为空间上的冗余信息。这即是上一次学习中的帧内压缩。比如一个像素点是绿色,那它相邻的像素点可能就是深绿或者浅绿,甚至就是绿。
• 统计上的冗余信息(statistical redundancy)
统计上的冗余信息指的是欲编码的符号(symbol)机率分布是不均匀(non-uniform)的。
• 感知上的冗余信息(perceptual redundancy)
感知上的冗余信息是指在人在观看视频时,人眼无法察觉的信息。
目前最新的视频编码标准为ITU-T视讯编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)所提出的H.264/AVC。(H.265/AVC)
• H264
H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,这样B帧的大小就只有完整帧的1/10或更小!B帧之后的C帧如果变化不大,我们可以继续以参考B的方式编码C帧,这样循环下去。这段图像我们称为一个序列(序列就是有相同特点的一段数据),当某个图像与之前的图像变化很大,无法参考前面的帧来生成,那我们就结束上一个序列,开始下一段序列,也就是对这个图像生成一个完整帧A1,随后的图像就参考A1生成,只写入与A1的差别内容。
在H264协议里定义了三种帧,完整编码的帧叫I帧,参考之前的I帧生成的只包含差异部分编码的帧叫P帧,还有一种参考前后的帧编码的帧叫B帧。
H264采用的核心算法是帧内压缩和帧间压缩,帧内压缩是生成I帧的算法,帧间压缩是生成B帧和P帧的算法。
DCT变换可以消除图像的空间冗余,Huffman编码可以消除图像的信息熵冗余。