欢迎来到天天文库
浏览记录
ID:37457717
大小:174.00 KB
页数:10页
时间:2019-05-24
《视频编解码器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、视频编解码器,是指一个能够对数字视频进行压缩或者解压缩的程序或者设备。通常这种压缩属于有损数据压缩。历史上,视频信号是以模拟形式存储在磁带上的。随着CompactDisc的出现并进入市场,音频信号以数字化方式进行存储,视频信号也开始使用数字化格式,一些相关技术也开始随之发展起来。有损数据压缩,也有简称有损压缩。即将次要的信息数据舍弃,牺牲一些质量来减少数据量,使压缩比提高。一个复杂的平衡关系存在于以下因素之间:视频的质量、用来表示视频所需要的数据量(通常称之为码率,kbps,千位每秒)、编码算法和解码算法的复杂度、针对数据丢失和错误的鲁棒性(Robustness)、编
2、辑的方便性、随机访问、编码算法设计的完美性、端到端的延时以及其它一些因素。鲁棒性,鲁棒性就是系统的健壮性。它是在异常和危险情况下系统生存的关键。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。所谓“鲁棒性”,是指控制系统在一定(结构,大小)的参数摄动下,维持某些性能的特性。根据对性能的不同定义,可分为稳定鲁棒性和性能鲁棒性。典型的数字视频编解码器的第一步是将从摄像机输入的视频从RGB色度空间转换到YCbCr色度空间,而且通常还伴有色度抽样来生成4:2:0格式的视频(有时候在隔行扫描的情况下会采用4:2:2的抽样
3、方式)。转换到YCbCr色度空间会带来两点好处:1)这样做部分的解除了色度信号中的相关性,提高了可压缩能力。2)这样做将亮度信号分离出来,而亮度信号对视觉感觉是最重要的,相对来说色度信号对视觉感觉就不是那么重要,可以抽样到较低的分辨率(4:2:0或者4:2:2)而不影响人观看的感觉。输入的视频图像通常被分区为宏块分别进行编码,宏块的大小通常是16x16的亮度块信息和对应的色度块信息。然后使用分块的运动补偿从已编码的帧对当前帧的数据进行预测。之后,使用块变换或者子带分解来减少空域的统计相关性。最常见的变换是8x8的离散余弦变换(DCTfordiscretecosinet
4、ransform)。变换的输出系数接下来被量化,量化后的系数进行熵编码并成为输出码流的一部分。实际上在使用DCT变换的时候,量化后的二维的系数通常使用Zig-zag扫描将系数表示为一维的,再通过对连续0系数的个数和非0系数的大小(Level)进行编码得到一个符号,通常也有特殊的符号来表示后面剩余的所有系数全部等于0。这时候的熵编码通常使用变长编码。运动补偿是一种描述相邻帧(相邻在这里表示在编码关系上相邻,在播放顺序上两帧未必相邻)差别的方法,具体来说是描述前面一帧(相邻在这里表示在编码关系上的前面,在播放顺序上未必在当前帧前面)的每个小块怎样移动到当前帧中的某个位置去
5、。这种方法经常被视频压缩/视频编解码器用来减少视频序列中的空域冗余。它也可以用来进行去交织(deinterlacing)的操作。通常,图像帧是一组一组进行处理的。每组的第一帧(通常是第一帧)在编码的时候不使用运动估计的办法,这种帧称为帧内编码帧(Intraframe)或者I帧。该组中的其它帧使用帧间编码帧(Interframe),通常是P帧。这种编码方式通常被称为IPPPP,表示编码的时候第一帧是I帧,其它帧是P帧。在进行预测的时候,不仅仅可以从过去的帧来预测当前帧,还可以使用未来的帧来预测当前帧。当然在编码的时候,未来的帧必须比当前帧更早的编码,也就是说,编码的顺序
6、和播放的顺序是不同的。通常这样的当前帧是使用过去和未来的I帧或者P帧同时进行预测,被称为双向预测帧,即B帧。这种编码方式的编码顺序的一个例子为IBBPBBPBBPBB。全局运动补偿,运动模型基本上就是反映摄像机的各种运动,包括平移,旋转,变焦等等。这种模型特别适合对没有运动物体的静止场景的编码。分块运动补偿,每帧被分为若干像素块(在大多数视频编码标准,如MPEG中,是分为16x16的像素块)。从参考帧的某个位置的等大小的块对当前块进行预测,预测的过程中只有平移,平移的大小被称为运动矢量。子带分解,子带编码,sub-bandcoding(SBC),一种以信号频谱为依据的
7、波形编码方法,它首先用一组带通滤波器将输入信号按频谱分开,然后让每路子信号通过各自的自适应PCM编码器(ADPCM)编码,经过分接和解码再复合成原始信号。优点是:1、每个子带独立自适应,可按每个子带的能量调节量化阶;2、可根据各个子带对听觉的作用大小共设计最佳的比特数;3、量化噪声都限制在子带内某一频带的量化噪声串到另一频带中去。PCM编码器,优先编码器,在数字系统中,特别是在计算机系统中,常常要控制几个工作对象,例如微型计算机主机要控制打印机、磁盘驱动器、输入键盘等。当某个部件需要实行操作时,必须先送一个信号给主机(称为服务请求),经主机识别后再发
此文档下载收益归作者所有