我是靠谱客的博主 过时玉米,最近开发中收集的这篇文章主要介绍H264基本概念之 预测编码、变换编码和熵编码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、预测编码     

      压缩算法的本质就是去除信号间的冗余,什么是信号的冗余呢?信号之间的相关性就是冗余,人类听觉或视觉系统感觉不到的或者掩蔽的也可以当做冗余成分。今天谈谈预测编码的概念,这是一种非常直观和简单易行的方法。说它直观,以图像为例,前后两帧或者同一图像的相邻像素都存在着相似性、相关性,我们完全可以通过当前帧和一组预测系数,推测出下一帧图像,当然也可以从当前像素推测出周围像素的变化。通过实际值与预测值的差,去除了一部分冗余,使得信号的动态范围变小了,表示这些信号的比特数减少了,从而达到压缩的目的。

 

      对于视频信号的预测编码分成两种,一个是帧间预测编码,一个是帧内预测编码。帧内预测是从空间上去除同一帧图像内宏块之间的冗余。H264中,有4x4亮度预测模式、16x16亮度预测模式、8x8色度块预测模式以及一种I_PCM编码模式,如何选择最优的编码模型是一个不太容易的问题。

 

      帧间预测编码效率比帧内编码要高,它是从时间上去除图像帧与帧之间的冗余,分为单向预测、双向预测。一般双向预测会增加编码延时,所以在实时通信中用的不多。在帧间预测中,就不得不提运动估计这个概念,在活动图像邻近帧中的景物会发生空间上的位移,得到这个运动偏移的过程就是运动估计,涉及到各种搜索算法,同时这一部分的复杂度也是H264的重点。

 

2、变换编码

     变换编码是指将空间域的图像变换到频域,这样会产生相关性很小的一些变换系数,并对其进行压缩编码。通常采用DCT变换,因为它的性能接近K-L变换,同时具有快速算法,非常适合图像变换编码。变换编码比预测编码要复杂,但是各种误差(量化、信道误差)不会向后面扩展,对视觉影响不大。

 

3、熵编码

     利用信源的统计特性进行码率压缩的编码称为熵编码。特点是无损编码,但是压缩率比较低,一般用在变换编码后面作进一步压缩。常用的有变长编码(huffman编码)和算术编码。

1) 变长编码

     对出现概率大的符号分配短字长的二进制码,对出现概率小的符号分配长字长的二进制码,得到符号平均码长最短的码。也称为最佳编码。

2) 算术编码

     与huffman编码不同,不采用码字表示输入符号的方法,而是采用一个浮点数来代替一串输入符号,经算术编码后输出一个小于1,大于等于0的浮点数,在解码端在进行唯一的解码,恢复原符号序列。

     这两种编码方法实际应用中都有受硬件精度的问题,即如何定点化表示小数的问题。

最后

以上就是过时玉米为你收集整理的H264基本概念之 预测编码、变换编码和熵编码的全部内容,希望文章能够帮你解决H264基本概念之 预测编码、变换编码和熵编码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部