数字电视H.2 6 4编码技术分析及应用展望
扫描二维码
随时随地手机看文章
0 引言
典型的数字电视系统是在发送端的数字电视节目源(主要由视频、音频等数据组成)先经过信源编码处理.得到压缩编码后的视频、音频码流,随后进行信源编码,需要辅助数据与控制数据的支持。信道编码实现检错、纠错功能,以提高数字电视传输信号的抗干扰能力,以便之适应信道传输特性,再进行载波调制以实现频谱搬移最后送入传输信道。目前数字视频领域,有两大制定视频编码标准的组织,它们是ITU-T与ISO/IEC。ITU-T制定的标准包括H.261、H.263、H.264,主要应用于实时视频通信领域,如会议电视。MPEG系列标准是由ISO/IEC制定的,主要应用于视频存储(VCD、DVD)、广播电视、因特网或无线网上的流媒体等。H.264具有较强的抗误码特性,可适应丢包率高、干扰严重的无线信道中的视频传输。
1 编码技术分析
1.1 帧内预测编码
帧内编码用来缩减图像的空间冗余。为了提高H.264帧内编码的效率,在给定帧中充分利用相邻宏块的空间相关性,相邻的宏块通常含有相似的属性。因此,在对一给定宏块编码时,首先可以根据周围的宏块预测(典型的是根据左上角的宏块,因为此宏块已经被编码处理),然后对预测值与实际值的差值进行编码,这样,相对于直接对该帧编码而言,可以大大减小码率。如图l。
1.2 帧间预测编码
帧间预测编码利用连续帧中的时间冗余来进行运动估计和补偿。H.264的运动补偿支持以往的视频编码标准中的大部分关键特性。
(1)不同大小和形状的宏块分割
对每一个16×16像素宏块的运动补偿可以采用不同的大小和形状。
(2)高精度的亚像素运动补偿
在H.263中采用的是半像素精度的运动估计,而在H.264中可以采用1/4或者1/8像素精度的运动估值。在要求相同精度的情况下,H.264使用1/4或者1/8像素精度的运动估计后的残差要比H.263采用半像素精度运动估计后的残差来得小。这样在相同精度下,H.264在帧间编码中所需的码率更小。
(3)多帧预测
H.264提供可选的多帧预测功能,在帧间编码时,可选5个不同的参考帧,提供了更好的纠错性能,这样便可以改善视频图像质量。这一特性主要应用于以下场合:周期性的运动、平移运动、在两个不同的场景之间来回变换摄像机的镜头。
(4)去块滤波器
H.264定义了自适应去除块效应的滤波器,这可以处理预测环路中的水平和垂直块边缘,大大减少了方块效应。
1.3 熵编码
视频编码处理的最后一步就是熵编码,在H.264中采用熵编码方法有三种。第一种是Exp-Golomb码,它适用于除变换系数之外的所有其他系数。第二种是基于上下文的自适应变长编码(CAVLC),它适用于变换系数。第三种是基于上下文的自适应二进制算术编码(CABAC)。CAV-LC与CABAC根据相邻块的情况进行当前块的编码,以达到更好的编码效率。CABAC比CAVLC压缩数率高,但要复杂一些。
(1)Exp-Golomb码:最简单的熵编码方法是对所有的句法元素,除了量化系数外,使用单一无限可扩展的码字表,这样就不必为每个句法元素设计一个专用的VLC表。它适用于除变换系数之外的所有符号,如头部等句法元素。它是有规则结构的可变长编码(如表1)。
(2)CAVLC编码:基于上下文的自适应变长编码是用来对差值的经zig-zag扫描的4×4(和2×2)块变换系数进行编码的方法。CAVLC利用了量化的4×4块的若干特性:①预测、变换和旦化后的块一般是稀疏的(包含了很多个0)。CAVLC利用游程编码来紧凑地代表一长串0。②zig-zag扫描后的最高非零系数常常是+1/-1的序列。③相邻块的非零系数数目是相关的。系数的数目用对照表来编码,对照表的选择取决于相邻块中非零系数数目。④非零系数的幅度在重排数组的开始处比较高(接近DC系数),在高频处比较低。CAVLC利用这一点根据最近编码的幅度,适当地选择幅度参数的VLC对照表。
(3)CABAC方法:算术编码使编码和解码两边都能使用所有句法元素(变换系数、运动矢量)的概率模型。为了提高算术编码的效率,通过内容建模的过程,使基本概率模型能适应随视频帧而改变的统计特性。内容建模提供了编码符号的条件概率估计,利用合适的内容模型,存在于符号间的相关性可以通过选择目前要编码符号邻近的已编码符号的相应概率模型来去除,不同的句法元素通常保持不同的模型。可知基于上下文的自适应二进制算术编码算法的基本步骤是:①对每个语法元素,根据其上下文选择概率模型。②基于局部统计自适应调整概率统计③使用算术编码。实现方框图如图2所示。
上下文概率选择:根据过去的观察选择“上下文概型”。该模型为一个或几个二进制符号位的概率模型,它可以从有效模型中选择,它们是根据最近概码的数据符号的统计得来的。上下文模型储存每个二进制符号是1或0的概率。二进制化:将非二进制符号(变换系数或运动矢量)转换成二进制码。ABAC只处理1和0。
算术编码引擎:一个算术编码器所选择的概率模型对每个位进行编码。对每个位只有两个子区间(相当于0和1)概率更新:所选择的上下文模型根据实际的编码值加以更新(如位值为“1”,则频度“1”的概目增值)。
2 H.264在视频会议中的应用
目前,大多数的视频会议系统均采用H.261或H.263视频编码标准,而H.264的出现,使得在同等速率下,H.264能够比H.263减小50%的码率。也就是说,用户即使是只利用384kbit/s的带宽,就可以享受H.263下高达768kbit/s的高质量视频服务。H.264不但有助于节省庞大开支,还可以提高资源的使用效率,同时令达到商业质量的视频会议服务拥有更多的潜在客户。
面向IP和无线环境H.264草案中包含了用于差错消除的工具,便于压缩视频在误码、丢包多发环境中传输,如移动信道或IP信道中传输的健壮性。
为了抵御传输差错,H.264视频流中的时间同步可以通过采用帧内图像刷新来完成,空间同步由条结构编码(slicestructured coding)来支持。同时为了便于误码以后的再同步,在一幅图像的视频数据中还提供了一定的重同步点。另外,帧内宏块刷新和多参考宏块允许编码器在决定宏块模式的时候不仅可以考虑编码效率,还可以考虑传输信道的特性。除了利用量化步长的改变来适应信道码率外,在H.264中,还常利用数据分割的方法来应对信道码率的变化。从总体上说,数据分割的概念就是在编码器中生成具有不同优先级的视频数据以支持网络中的服务质量QoS。例如采用基于语法的数据分割(syntax-based data partitioning)方法,将每帧数据按其重要性分为几部分,这样允许在缓冲区溢出时丢弃不太重要的信息。还可以采用类似的时间数据分割(temporal data partitioning)方法,通过在P帧和B帧中使用多个参考帧来完成。
在无线通信的应用中,我们可以通过改变每一帧的量化精度或空间/时间分辨率来支持无线信道的比特率变化。可是,在多播的情况下,要求编码器对变化的各种比特率进行响应是不可能的。因此,不同于MPEG-4中采用的精细分级编码FGS(Fine Granular Scalability)的方法(效率比较低),H.264采用流切换的SP帧来代替分级编码。
3 结束语
因此视频会议产品支付H.264协议,研究人员致力于普及H.264这个全新的业界标准。我们必将能体验H.264视频服务给我们带来高品质的享受。