(通信与信息系统专业论文)h264视频编码器的速率控制.pdf_第1页
(通信与信息系统专业论文)h264视频编码器的速率控制.pdf_第2页
(通信与信息系统专业论文)h264视频编码器的速率控制.pdf_第3页
(通信与信息系统专业论文)h264视频编码器的速率控制.pdf_第4页
(通信与信息系统专业论文)h264视频编码器的速率控制.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(通信与信息系统专业论文)h264视频编码器的速率控制.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 为了在信道带宽和传输时延有限制的情况下高效传输视频数据,并有效地进行 缓冲区控制,通常需要对视频编码进行速率控制,因此速率控制是视频编码器的 一个重要组成部分。然而基于新兴的视频编码标准h 2 6 4 的速率控制方法还没有 得到很好的研究。本文主要研究了h 2 6 4 中的速率控制方法。本文首先介绍了h 2 6 4 标准,接下来对已有的视频编码速率控制方法进行研究,并重点研究了常用的速 率失真函数及其用法。最后本文介绍了两个优秀的h ,2 6 4 速率控制方法提案,分 别是f 0 8 6 和g 0 1 2 ,并针对g - 0 1 2 提案进行了一些改进,包括对理论公式的修正 以及具体算法的改进等。从实验结果可以看出,与原算法相比,本文提出算法的 编码比特率更接近实际带宽,比特波动和缓冲区波动较小,并且具有较好的编码 质量。 关键词:h 2 6 4 速率控制率失真模型j v tf 0 8 6j v tg - 0 1 2 a b s t r a c t 。 r a t ec o n t r o li sac e n t r a lp i e c ef o rv i d e oc o d e c st oa c h i e v ec o n s i s t e n t l yg o o d q u a l i t y f o rt h ew h o l es e q u e n c eu n d e rt h el i m i t a t i o no fc h a n n e lb a n d w i d t ha n dd e l a y b u f f e r c o n s t r a i n t s h o w e v e r , r a t ec o n t r o li nh 2 6 4h a sn o ta c h i e v e ds a t i s f i e dr e s u l t sb e c a u s eo f t h ed i f f i c u l t yo ft h i sr e s e a r c hw o r k t h i sp a p e ri sd e v o t e dt or a t ec o n t r o lm e t h o d s e s p e c i a l l yf o r h 2 6 4 a f t e rab r i e fi n t r o d u c t i o no f th 2 6 4r e c o m m e n d a t i o n r a t e c o n t r o lm e t h o d sa r es t u d i e di n d e t a i lw i t ha ne m p h a s i so nr a t e d i s t o r t i o nm o d e l s t h e n b a s e do ns t u d yo fj v tf 一0 8 6a n dj v tg - 012 ,t w op r o p o s a lr a t ec o n t r o lm e t h o d sf o r h 2 6 4v i d e oc o d e c s ,w er e v i s ean u m b e ro fp l a c e st oi m p r o v ej v tg 012 ,i n c l u d i n g b o t hm o d i f i c a t i o n si nt h e o r ya n dp r a c t i c a la l g o r i t h m s e x p e r i m e n t a lr e s u l t ss h o wt h a t t h ei m p r o v e dr a t ec o n t r o ls c h e m eh a st h ea d v a n t a g e so fab i tr a t em o r ec l o s e dt ot h e b a n d w i d t h ,as m o o t h e rf l u c t u a t i o no fo c c u p i e db u f f e ra n dp r a c t i c a lb i tr a t e ,a n dab e t t e r v i d e oq u a l i t yo v e rt h eo r i g i n a lo n e k e yw o r d s :h 2 6 4 r a t ec o n t r o lr a t e - d i s t o r t i o nm o d e lj v tf 0 8 6 j v tg 一0 1 2 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人己经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所借 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 7t 本人签名: 虚! ! e 日期塑! ! v 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生 在校攻读学位期间,论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍为西安电子科技大学。学 校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部 或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文在 解密后遵守此规定) 本学位论文属于保密,在三年解密后适用本授权书。 本人签名: 导师签名:日期堡丝z :么 绪论 绪论 随着网络技术的发展以及人们对多媒体业务需求的不断增长,视频通信正在逐 步成为数字通信网络的主要业务之一,如:实时监控、远程医疗、会议电视、可 视电话等。为了高效地在网络上传输视频数据,通常需要对视频进行压缩编码。 目前制定视频编码标准的国际组织组主要有两个:i t u t 和i s o i e c 。i t u t 的建 议标准h - 系列( 如h 2 6 1 ,h 2 6 3 等) 主要用于实时视频通信,如视频电视会议、 可视电话等。而i s o i e c 的建议标准i v p e g 系列( 如m p e g - 1 、m p e g 2 、m p e g 4 等) 主要用于数字电视广播、d v d 等。大多数情况下,这两个标准组织独立制定 不同的标准,但h 2 6 2 和m p e g 2 的视频编码标准是同一个标准,这也是m p e g 一2 标准得到广泛应用的原因之一。国际电信联盟视频编码专家组( i t u tv c e g ) 和 国际标准化组织运动图像专家组( i s om p e g ) 于2 0 0 1 年合作形成了联合视频组 i v t ( j o i n tv i d e ot e a m ) ,共同开发新一代的低比特率视频标准h 2 6 4 1 1 i ( 很多非正式 场合也被称为h 2 6 l ) 。h 2 6 4 是i t u 的正式名称,其m p e g 正式名称是m p e g 4p a r t 1 0 或i s o i e c1 4 4 9 6 1 0a 、厂c 。 h 2 6 4 标准的制定正是为适应各种业务的不断增长对于运动图像压缩率的更高 要求,并使得编码后的视频数据能够在各种网络环境下传输。这一标准可以应用 于广泛的领域,包括有线电视( c a t v ) 、卫星直播( d b s ) 中的视频服务、基于 数字用户线( d s l ) 的视频服务、数字电视广播( d t t b ) 、互动存储媒体( 光碟 等) ( i s m ) 、多媒体信件( m m m ) 、包网络上的多媒体服务( m s p n ) j 实时会话 业务( 视频会议,视频电话等) ( r t c ) 、远程视频监督( r v s ) ,以及串行存储媒 质( 数字v t r 即磁带录像机) 等等。 由于视频编码过程的固有特性( 变换,量化,熵编码等) ,编码后的视频数据 具有一些不同于普通数据的特征。其中一个显著的特点就是码率变化剧烈,其主 要原因是场景变化引起的长时间( n 秒级) 码率变化,和由于编码模式切换引起的 短时间( n 卑1 0 毫秒级) 码率突变【2 i 。此外,压缩后的视频数据对误码非常敏感, 并且视频通信系统对信道的延迟和时延抖动都有着严格的限制。压缩后视频数据 的这些特点为其在网络上的传输带来了很大困难。 为了在信道带宽和传输时延有限制的情况下有效传输视频数据,使得网络视频 业务具有一定的播放质量,通常需要对视频编码进行速率控制。即使是在存储视 频中,由于解码器缓冲区的限制,也要对视频编码过程进行一定的速率控制。所 谓速率控制就是通过适当设置一系列编码参数,使得视频编码后的比特率较准确 的达到所希望得到的速率。其目的主要有两个:1 ) 根据信道限制调整视频编码器 h 2 6 4 视频编码器的速率控制 的输出比特率。2 ) 在给定的速率限制下使得编码失真达到最小。因此,速率控制 是视频编码器的重要组成部分,它在现有的成熟标准中得到了广泛的应用,例如: 用于存储媒质和实时通信的m p e g - l ,m p e g 2 标准,广泛用于视频会议的h 2 6 l , h 2 6 3 标准,以及面向视频对象编码的e g 4 标准等。然而由于h 2 6 4 是一个新 兴的标准,并且其采用了一些先进的技术例如率失真优化等,使得它与先前的编 码标准有许多不同之处,因此目前对于h 2 6 4 的速率控制研究还处于不完善阶段。 本文首先对基于h 2 6 4 视频编码标准的视频编码器进行研究,并根据其特点对 h 2 6 4 视频编码器进行速率控制研究。论文的工作集中在利用软件对h 2 6 4 视频编 码器进行有效的速率控制,从实验结果可以看出,本文研究的算法与现有h 2 6 4 编码速率控制算法相比具有更好的性能。 全文的内容安排如下: 第一章介绍了h 2 6 4 标准,并对其关键技术和优良性能进行了分析。 第二章对已有的视频编码速率控制方法进行研究,并介绍了一些常用的率失真 模型。 第三章基于h 2 6 4 标准的特点,研究了h 2 6 4 的编码速率控制算法。 第四章给出了h 2 6 4 的编码速率控制算法的实验结果,将本文提出算法的实验 结果与已有算法结果进行比较分析,并对今后的研究方向作一展望。 第一章h 2 6 4 视频编码标准 第一章h 2 6 4 视频编码标准 1 1h 2 6 4 标准简介 经过长达两年的不断修正和优化,联合视频组j v t ( j o i n tv i d e ot e a m ) 共同开发 新一代的低比特率视频标准h 2 6 4 已于2 0 0 3 年5 月预发布。h 2 6 4 标准采用了目 前最先进的编码技术,它的问世标志着新一代视频编码技术的诞生。 h 2 6 4 标准中支持5 种s l i c e 类型,即:使用帧内编码的帧内类型( 1s l i c e ) 、使 用帧间位移估值的预测类型( ps l i c e ) 、双向帧间预测类型( bs l i c e ) ,以及h 2 6 4 标准所特有的的s p 和s i 类型。 h 2 6 4 标准中一个显著的特点是将系统分为两个独立的层,即:视频编码层 v c l ( v i d e oc o d i n gl a y e r ) 和网络抽象( 适配) 层n a l ( n e t w o r ka b s t r a c t i o nl a y e r ) 。视 频编码层的主要任务是用高效的方式表述视频数据,也就是进行视频数据的压缩: 网络适配层则根据网络的特性对数据进行封装打包,使其适于网络传输。 类似于已有的视频编码标准,h 2 6 4 采用基于块的运动补偿和变换编码。它采 用了一些先进的编码技术大大提高了压缩效率,例如:h 2 6 4 中的运动矢量具有亚 像素精度,对于亮度信号来说可以达到l 4 像素精度。亚像素精度比整像素精度的 性能要好的多,代价是增加了运算复杂度。半像素、1 4 像素值通过插值的方式获 得。另外,h 2 6 4 中允许使用多个参考帧以提高编码效率,这在很多自然场景的周 期变换以及镜头在两个场景中交替转换等情况下尤其有效1 3 1 。此外,它采用了自适 应于内容的算术编码和变长编码,进一步提高了编码效率。 综上所述,h 2 6 4 标准采用了先进的编码技术,具有良好的抗误码能力和网络 适配性,可以很好的应用于实时通信( 如视频会议,可视电话等) ,同时又能很好 地工作在很多对时延没有特殊要求的场合( 如视频存储和以服务器为基础的视频 流式应用等) 。事实上,h 2 6 4 的应用还将覆盖更多应用领域,包括低比特率的无 线多媒体,各种分辨率的视频广播,i n t e m e t 上的视频流媒体,高分辨率d v d 视 频传输,以及数字影院中的高质量视频等。 h 2 6 4 的编码过程由以下五个部分组成 1 运动预测和帧内预测 2 变换和反变换 3 量化和反量化 4 环路滤波 5 熵编码 下面我们就这几个部分进行详细说明,并介绍h 2 6 4 标准所特有的s p 和s i 4 h 2 6 4 视频编码器的速率控制 类型帧。 1 2h 2 6 4 视频编码标准 1 2 1 运动预测和帧内预测 1 2 1 1 帧内预测 如果一个宏块或者一个块采用帧内编码的形式进行编码,则可根据已编码重建 的块形成一个预测块,进行帧内预测。就亮度信号来说,预测块可以是1 6 1 6 的 宏块,或是4 * 4 的亮度块。对于1 6 1 6 的宏块有4 个可选的预测模式,而对于4 * 4 的亮度块则有9 个可选的预测模式。 1 6 1 6 宏块的4 个可选的预测模式如图1 1 所示: 0 ( 垂直模式) 1 ( 水平模式) 2 ( 直流模式) 3 ( 平面模式) 图1 11 6 1 6 宏块帧内预测模式图 模式0 ( 垂直模式) :利用上方的像素( h ) 外插得到。 模式l ( 水平模式) :利用左方的像素( v ) 外插得到。 模式2 ( 直流模式) :上方和左方像素的平均值( h + v ) 。 模式3 ( 平面模式) :利用一个线性平面函数对上方和左方的像素进行外插。 这种模式适用于亮度信号平缓变化的区域。 4 * 4 的亮度块预测方法如图所示: m a bcd e f g h iabcd j ef gh klki j lmn op 图1 24 * 4 宏块帧内预测模式图 模式0 ( 垂直模式) :利用上方的像素八b ,c ,d 外插得到。 模式l ( 水平模式) :利用左方的像素i ,j ,k ,l 外插得到。 模式2 ( 直流模式) :4 奉4 块内所有像素值由上方和左方像素( 八,d ,i ,l ) 的平均值预测得到。 第一章h 2 6 4 视频编码标准 模式3 ( 斜左下方模式) :像素值通过从右上方到左下方4 5 度方向内插得到。 模式4 ( 斜右下方模式) :像素值通过从左上方到右下方4 5 度方向外插得到。 模式5 :像素值通过从左上方到右下方方向外插得到,与垂直方向夹角为2 6 6 度。 模式6 :像素值通过从左上方到右下方方向外插得到,与水平方向夹角为2 6 6 度。 模式7 :像素值通过从右上方到左下方方向外插得到,与垂直方向夹角为2 6 6 度。 模式8 :像素值通过从右上方到左下方方向外插得到,与水平方向夹角为2 6 6 度。 1 2 1 2 帧间预测 h 2 6 4 中进行预测的块大小有多种选择。以亮度信号为例,亮度信号的每一个 宏块( 1 6 1 6 ) 可以有四种划分形式( 如图1 3 ) :1 6 1 6 ,1 6 8 ,8 木1 6 或8 * 8 。如 果采用8 * 8 模式,则每一个块还可以进一步划分为( 如图1 3 ) :8 * 8 ,8 * 4 ,4 * 8 或 4 * 4 。 1 6 丰1 6】6 * 88 :i :1 68 * 8 宏块划分 亚宏块 划分 8 * 88 * 4 宏块划分 4 * 8 亚宏块划分 图1 3 宏块和亚宏块划分 采取这样的宏块划分和亚宏块划分,在每一宏块内可以为运动预测提供多种可 选的块组合方式,这种将宏块划分成多种大小的块进行运动补偿的方法叫做树结 构运动补偿。选择较大的块则产生较少的用于表示运动矢量和划分类型的比特数, 但是运动补偿的差值部分可能包含很多的能量,需要使用较多的比特数来表示; 反之,如果选用较小的划分块,则差值部分所用的比特数较少,但是需要较多的 比特数来表示运动矢量和划分类型。可见,宏块和亚宏块的划分对于图像压缩性 能有着不可忽视的影响,在h 2 6 4 中是采用率失真优化的方式来进行划分的。一 般来说,对于帧内较平稳的区域选择比较大的块是合适的,而对于细节部分则应 6 h 2 6 4 视频编码器的速率控制 选择较小的块。 h 2 6 4 中的运动矢量具有亚像素精度,对于亮度信号来说可以达到1 4 像素精 度。亚像素精度比整像素精度的性能要好的多,代价是增加了运算复杂度。半像 素、1 4 像素值通过差值的方式获得。 另外,h 2 6 4 中允许使用多个参考帧以提高编码效率,这在很多自然场景的周 期变换以及镜头在两个场景中交替转换等情况下尤其有效。 一个宏块中,色度分量( c r ,c b ) 的分辨率是亮度信号的一半。每一个色度块 采取与对应的亮度块一样的方式进行划分,而划分的大小是亮度的一半,例如: 亮度信号8 木1 6 的划分对应色度信号为4 * 8 的划分,将运动矢量应用于色度块的时 候,其水平分量和垂直分量都要减半。 1 2 2h 2 6 4 中的d c t 变换和量化 h 2 6 4 的基准部分根据差值信号的形式采用三种d c t 变换:1 6 1 6 预测模式的 宏块,其中所有4 * 4 块的亮度直流系数d c 形成了一个4 * 4 的数组,进行d c t 变 换;所有色度信号的直流系数组成了两个2 * 2 数组进行d c t 变换;对于宏块内的 其他4 * 4 块数据进行d c t 变换。 如果使用自适应块大小变换选项,则根据运动补偿块大小( 4 木4 ,4 * 8 ,8 * 4 , 1 6 8 等) 进行变换。 宏块中的数据传输顺序如图1 4 所示。如果一个宏块采用1 6 1 6 帧内编码,则 标有1 的块( 所有亮度直流系数d c ) 先进行传输。接下来是d c 系数为零的o 1 5 号亮度块。然后是色度直流系数1 6 、1 7 块,最后是d c 系数为零的1 8 2 5 色度块。 一l 1 61 7 - j_ j_ j 1 _ j 一 t j _ j 0145 1 5 、 1 92 2 2 3 、 | 、 。、 j一一j 2367 2 02 l2 42 5 jjjj 891 21 3 c r c b _ jjj l o1 11 41 5 图1 4 宏块中的数据传输顺序 第一章h 2 6 4 视频编码标准7 1 2 2 1 4 掌4 差值信号的变换和量化 这一变换应用于帧内预测,或是运动补偿预测后的差值信号的4 * 4 块,即图 1 4 中的0 - 1 5 ,1 8 - 2 5 块。变换是基于d c t 的,但是它与d c t 之间有着许多本质 的差别: 这是一个整数变换。不失精确性的,其所有的操作都是基于整数操作的。 其反变换过程在h 2 6 4 中有详细描述,如果完全按照标准中描述的去做,编码 器和解码器之间不会出现不匹配的情况。 变换的核心算法是没有乘法的,它只进行加和移位的操作。 变换过程中的乘法操作集成在了量化过程中,这样减少了整体的乘法操作。 变换: 输入数组x 的4 * 4 d c t 变换表示为: y = a x a r = 三二;二;二茎ix 下三二至j ;二 其中口= 三,6 = 后c 。s c c = 后c 呶詈,? 矩阵相乘可以分解为: 】,= ( c x c 7 ) 0 e = lld dll d ll l ld a 2a b 口2a b a bb 2a b6 2 6 1 2a b 口2a b a bb 2a b6 2 ( 1 - 2 ) 其中0 表示对应位置的标量相乘,而不是矩阵相乘,a , b 同前,d 是c b ,大约是 0 4 1 4 。为了简化计算,d 取o 5 ,为了保持正交性,b 也需要做一些修改。即: 口:三,6 - 1 压,d :一1 。 2 v52 为了便于进行移位计算,( 1 2 ) 式可以写为 y = ( c x d ) o e = 2 ll ll一2 一ll2 2 ll ( 1 3 ) 由于改变了b 和d 的值,上述变换并不完全等于4 * 4 d c t 变换,而是它的一个 近似。 反变换表示为: x ,_,r。o 。“ d i o ,d _ o 佗似2 心篇数 佗 他 小小 2 心2 似陀心佗h洲矿洲矿 他 陀 驴小 too上叮丑 o o 2 l l l 2 一 一 l c - 、i l l h 2 6 4 视频编码器的速率控制 x i = c j g 固e k t = y 口2a ba 2 口bb 2a b 口2 a ba 2 a bb 2a b l 2 一l 2 一l 一111 2 一ll l 2 ( 1 4 ) 其中( + ) 1 2 可以不失精确性地用右移实现。 量化: 基本的量化过程可以表示为 z 玎= r o u n d ( y u q s t e p ) ( 1 - 5 ) 其中是上述变换后的系数9 f 印是量化步长值,乙是量化后的系数。q s t e p 一共有5 2 个值,使用q r ( q u a n t i z a t i o np a r a m e t e r ) 来索引见表1 1 ) 。 表1 1 量化步长表 0l23456 78 9 1 0 q r , q s t e p o 6 2 50 6 8 7 50 8 1 2 5 ( ) 8 7 511 1 2 51 2 51 3 7 51 6 2 51 7 52 q p i l 1 83 03 64 25l q s t e p 2 2 552 ( ) 4 08 ( )2 2 4 从表中我们口 以看出,q p 每增加6 ,q s t e p 增加一倍:q p 每增加1 ,q s t e p 增 加1 2 5 。量化步长可以在很大范围内变化,这使得编码器可以准确而灵活的比特 率和失真之间进行权衡。亮度信号和色度信号的q p 可能是不同的,但是其范围都 是o 51 。 上面已经提到,变换的一部分将集成到量化的过程中。首先,输入x 变换为: w = c x c r( 1 6 ) 接下来每一个系数、硐在同一步中完成尺度变换和量化,即: 孕翮趔( 剖 似7 , 其中,当位置为( 0 ,0 ) ,( 2 ,o ) ,( 0 ,2 ) 或( 2 ,2 ) 时,尸f = a 2 ;当位置 为( 1 ,1 ) ,( 1 ,3 ) ,( 3 ,1 ) 或( 3 ,3 ) 时阡= ;在其他位置阿= 嘭。 在h 2 6 4 中为了避免进行除法运算,善用乘以一个相乘因子m f 和右移完 p f o s t e p 刚眦驴耐( 期 m 8 , 其中等= 面p f ,q b i t s = 1 5 + f l 。r ( q p 6 ) 。在整数变换中,( 1 8 ) 式可以用 以下的过稗完成: n胜 ,rj 6 6 q 驴 口护 oo。o。人 彪。m们o 。 o 一 佗o 第一章h 2 6 4 视频编码标准 吲= ( i | m f + f ) q b i t s , s i ( z ,) = 咖( ) ( 1 - 9 ) 其中 表示二进制右移,在标准参考软件中:对于帧内块厂= 2 彬么,帧间块 = 2 卿么。 反量化: 基本的反量化公式为:巧= z 妒9 印 ( 1 1 0 ) 结合反变换的换算部分量化过程可以表示为 巧= z 扩q s t e p p f 6 4 ( 1 1 1 ) 为了避免四舍五入的误差,在( 1 一l1 ) 式中有一个乘数因子6 4 。其中然后呒经 过( 1 4 ) 式所述的反变换过程,最后还要除以6 4 ( 这一过程可以用加和右移来实 现) 。在h 2 6 4 标准中没有直接描述q s t e p 和p f ,而是对于0 q p 5 定义了一个 参数v 三( q s t e p p f 6 4 ) ,则 巧= z ,2 删妒埔 ( 1 1 2 ) 1 2 2 2 亮度信号的4 * 4 直流系数的变换和量化( 仅对于1 6 丰1 6 帧内预测模式) 宏块编码如果使用的是1 6 1 6 帧内预测模式;即从本帧内相邻像素预测整个 1 6 1 6 亮度宏块的模式,每一个4 * 4 的亮度块的剩余信号首先进行上述的核心变换 部分a 旧r 。接下来,所有直流系数组成的4 * 4 块进行h a d a m a u r d 变换: y d = 2 其中是4 木4 直流系数,是变换后的值。 量化过程为: ( 1 1 3 ) i z d ( i , j ) l = ( 1 ( f t 一崛o o ) + 2 厂) ( q b i t s + 1 ) s i g n ( z d ( f ,) ) = s i g n ( r o c , j ) ) ( 1 1 4 ) 其中各参数的定义同上。 在解码端,先进行尺度变换的反变换,然后根据( 1 1 5 ) 进行h a d a m a r d 反变 换( 注意顺序,这与通常认为的不一样) 。 1 0 h 2 6 4 视频编码器的速率控制 = 如果q p 1l1 11 一l l l l l l1 一 大于等于则尺度变换的反变换为: ( 1 1 5 ) 嵫“,) = “k o 0 ) 2 加 q p 省卜2 ( 1 - 1 6 ) 如果q p 小于1 2 ,则尺度变换的反变换为: ( ,) = i ( j k o t o ) + 2 卜m g p 6 ) j ( 2 - f l o o r ( q p 6 ) ) ( 1 - 1 7 ) 上式中,v 的定义同前。将经过尺度变换反变换的直流系数带回到它们各自的 4 * 4 块中去,然后对每一个4 * 4 块进行上述基于d c t 变换的核心变换的反变换 c7 x c 。 对于帧内编码的宏块,很多能量都集中在直流系数上,对直流系数进行这一额 外的变换可以去除4 * 4 亮度直流系数之间的相关性。 1 2 2 32 * 2 色度直流信号的变换和量化 一个宏块中的色度信号组成4 * 4 的块,每一个4 * 4 的块按照上述的4 * 4 的核心 变换方法进行变换。每一个4 * 4 色度块的直流信号组成一个2 * 2 的数组( 、粕) , 在量化前进行进一步的变换。 = 一h 变换后的2 * 2 数组j d 的量化可以采用以下操作: i z o o , j ) l = ( 1 y d ( j j ) l 崛o o ) + 2 ,) ( 和f 红+ 1 ) s f g n ( z d ( f 。,) ) = s i g n ( t o ( 1 一 ( 1 1 9 ) 其中参数的定义同上。 在解码过程中,尺度变换的反变换先进行以下变换: = h i z d i 2 。, 如果q p 大于等于6 ,尺度变换的反变换为: 呒“,) _ ( 1 ,k o 0 ) 2 删q p 艏卜1 ( 1 - 2 1 ) 如果q p 小于6 ,尺度变换的反变换为: 吃“,) = ( f k 0 - 0 ) 】 i ( 1 - 2 2 ) 第一章h 2 6 4 视频编码标准 将经过尺度变换反变换的直流系数代回到它们各自的色度4 * 4 块中去,然后对 每一个4 * 4 块进行上述基于d c t 变换的核心变换的反变换c r x c 。同亮度信号的 情况一样,对直流系数进行这一额外的变换可以去除2 * 2 色度直流系数之间的相 关性,有利于提高压缩性能。 1 2 2 4 整个变换、量化过程的小结 编码: 1 输入4 * 4 剩余信号:x 。 2 前向核心变换:w = c ,x c ;。接下来对色度直流信号或者是1 6 1 6 预测的 亮度直流信号进行变换。 3 尺度变换和量化:z = w p f q s t e p 2 q b 。 解码: 1 尺度变换的反变换w 。= z q s t e p p f 6 4 。 2 核心变换的反变换x = c j w c i 6 4 。 3 输出4 * 4 剩余信号x 。 可见,h 2 6 4 中使用较小的块进行变换,减轻了块效应;整数变换避免了浮点 操作带来的四舍五入误差。变换的核心算法是没有乘法的,它只进行加和移位的 操作。变换过程中的乘法操作集成在了量化过程中,这样减少了整体的乘法操作。 1 2 3 去方块滤波 h 2 6 4 中使用一个环路滤波器对1 6 1 6 宏块和4 * 4 块的边界均进行去方块滤波。 对1 6 1 6 宏块进行去方块滤波主要针对的是由于相邻宏块之间的编码方式不同( 运 动补偿或是帧内编码) ,以及量化尺度不同引起的块效应;而对4 * 4 宏块进行去方 块滤波主要针对由于相邻块之间的变换、量化和运动矢量不同引起的方块效应。 去方块滤波是利用一个基于内容自适应的非线性滤波器,对边界两端的像素值进 行修改。 h 2 6 4 中在编码端的反变换之后,也就是在重建和存储用于今后的预测之前, 以及解码端重建和播放之前进行去方块滤波。其主要目的有两个:( 1 ) 平滑块边 界,减轻解码端图像的方块效应( 特别是在高压缩率的情况下) ,从而取得较好的 视频主观质量。( 2 ) 编码端使用经过去方块滤波之后的宏块作为参考进行运动预 测,使得预测后的差值信号较小。需要注意的是,帧内编码使用去方块滤波,但 是帧内预测时,使用未经过去方块滤波的重建宏块进行预测。 1 2 h 2 6 4 视频编码器的速率控制 1 2 4 熵编码 l v l c ( v a r i a b l el e n g t hc o d i n g ) 当e n t r o p y _ c o d e _ m o d e 被设为0 的时候,剩余块中的数据使用 c a v l c ( c o n t e x t a d a p t i v ev a r i a b l el e n g t hc o d i n g ) 进行编码,而其他变长编码的单元 使用e x p g o l o m b 编码。 2 e x p g o l o m b 熵编码 e x p g o l o m b 码,即e x p o n e n t i a lg o l o m b 码具有规则的结构,表l 列出了第1 - 9 个码字,从中我们可以看出e x p g o l o m b 码具有以下结构: m 个零】 1 腑o 】,其 中,i n f o 是一个m 比特的域,载有信息。 表1 2e x p g o l o m b 码举例 编码的数( c o d e n u m )e x p g o l o m b 码字( c o d e w o r d ) l 0 l o 0 i l 0 0 1 0 0 0 0 l o l 0 0 l l o 0 0 l l l 0 0 0 1 0 0 0 0 0 0 1 0 0 l 每个e x p g o l o m b 码字的编码方法为: m = l l 0 9 2 ( c o d e 一1 7 u m + 1 ) j ( 1 2 3 ) 在这里表示只取l o g :( c o d e b u t t l + 1 ) 的整数部分,小数部分忽略不计。则 刀帅= c o d e 删明+ l 一2 m ( 1 - 2 4 ) 每个e x p g o l o m b 码字的解码方法为: 读出l 之前的m 个零,读出m 比特的i n f o 域,则 c o d er l u m = 2 m + 孙7 阳一1 ( 1 2 5 ) 对于码字为0 的情况,m 和i n f o 均为零。 需要编码的系数v 通过以下三种途径映射为编码的数( c o d e :hum) u e ( v ) :无符号直接映射,用于宏块类型,参考帧索引及其它。此时 c o d eh z i m = 1 , 一o s e ( v ) :有符号映射,用于运动矢量差值,q p 变化值等,此时 o ) 一 o 矿 。一 o v 褂 捌 失真 图2 3 速率失真关系图 由于人类视觉系统的高度复杂,目前尚没有有效的主观失真测量方法。实际中 常用的几种失真模型有: 方差和: s s d 爿( f ,g ) = l f ( s ) 一g ( s ) 1 2 ( 2 1 ) j e 彳 均方误差: 2 0 h 2 6 4 视频编码器的速率控制 m s e 一( f ,g ) = 奇s s d 月( f ,g ) ( 2 - 2 ) l 以l 峰值信噪比: 脚爿( f ,g ) = 1 0 1 0 9 。o 蕊( 2 丽5 5 ) 丽z dec汤p瓜(2-3) 以及简单易实现的绝对值误差: s a d 4 ( f ,g ) = ( j ) 一g ( 5 ) i ( 2 4 ) 可见,在视频编码过程中,图像质量和编码速率是一对互相制约的因素。增大 失真,则减少编码器输出速率,获得较高的压缩率,但图像质量较差;减少失真, 则增加编码器输出速率,得到较低的压缩率,这时图像质量较好。 在速率控制过程中,通常需要根据信道速率的限制,采用速率失真函数调整视 频编码输出的速率,同时使得编码失真最小,也就是编码质量最高。 2 缓冲区控制 在实时的编码过程中,编码后的比特在传输之前先被放入一个编码缓冲区内。 如果实际的比特率比可用的信道带宽要高,多余的比特则被存放在编码缓冲区内。 当缓冲中的比特数太多的时候,编码器跳过一些帧来减小缓冲时延和避免缓冲区 上溢,而跳帧通常引起不希望出现的运动不连续。反之,如果缓冲区内的数据过 少,则会有一段时间没有数据传输,这对信道带宽来说是一种浪费。可见,缓冲 区控制是速率控制的一个重要组成部分。 缓冲区控制的目的:保持缓冲区的占用率为一个稳定的水平。当缓冲区占用率 较低的时候,编码器应当产生多一些编码比特:当缓冲区占用率较高的时候,编 码器应当产生少一些编码比特。如果缓冲区满( 缓冲区的占有率超过一定门限) , 编码器应当停止产生比特( 跳帧) ;如果缓冲区空,则带宽被浪费。 2 1 3 速率控制的基本分类 基于帧的速率控制可以分为: 1 空间域分辨率控制:改变编码视频的空间域分辨率,如:将c i f 格式图像 转变为q c i f 格式。 2 时间域分辨率控制:局部改变编码视频的时间域分辨率,如:跳帧。 3 纹理数据失真控制:通过调整量化系数q p 控制纹理数据的失真大小。 基于对象的速率控制可以分为: 1 空间、时间和纹理速率控制。 2 形状数据失真控制。 第二章视频编码中的速率控制 3 语义分辨率控制:合并同一场景中的相邻对象以使编码速率与目标比特率 匹配。 4 内容数量控制:控制同一场景中对象的数量以使编码速率与目标比特率匹 配。 2 2 速率控制的实现 从实现的角度来讲,速率控制包括两部分:1 ) 目标比特分配,即根据可用信 道带宽、缓冲大小等条件确定当前编码单元( 宏块,帧) 的目标比特数。2 ) 目标 比特的实现,例如,确定量化系数的大小,使编码后的比特数准确达到( 或者尽 量接近) 为其分配的比特数。本章节主要根据上述两个部分对速率控制的实现进 行详细介绍。 2 2 1 目标比特分配 m p e g 2t m 5 1 引的目标比特分配是一个标志性的解决方式。即:采用大小固定 的g o p ,基于g o p 进行比特分配,为各个g o p 以及每个g o p 内类型相同的1 帧分 配相同的比特数。具体的分配方式见2 3 节。 许多后来的目标比特分配方式都是基于m p e g 2t m 5 作了一些改进,例如 m p e g 4 附录l 速率控制0 9 和h 2 6 3 + 的t m n 8 速率控制【1 0 i 。以上这些方法均假设 视频源是平稳的( s t a t i o n a r y ) ,并认为所有g o p 都有相似的统计特性。而上述假 设通常是不成立的。很多工作从以下三个方面对目标比特分配进行了改进: 1 改进g o p 内的比特分配。 这类比特分配方法都是基于固定大小的g o p ,为各个g o p 分配相同的比特数。 某些改进g o p 内的比特分配方法为复杂度较高的帧分配较多的比特数,复杂 度较低的帧分配较少的比特数【i l l 【1 2 l 。另一些基于率失真优化进行比特分配,分为 考虑时间相关性1 ”j 1 1 4 i ,不考虑时间相关性1 1 5 l i l ,以及基于不同的优化准则( 例如 m a d ( m i n i m i z i n ga v e r a g ed i s t o r t i o n ) 或m d v ( m i n i m i z i n gd i s t o r t i o nv a r i a t i o n ) 1 s 1 1 1 9 l 三类。 2 动态大小g o p 的比特分配 固定的g o p 大小不能适应多场景变化的需要,许多方法研究动态的c o p 。这 些使用先行( 1 0 0 ka h e a d ) 的方法,通过预先分析帧的统计特性检测场景变换,并 在场景变换处插入i 帧,开始一个新的g o p1 2 0 l 北i3 1 。动态的c r o p 解决了场景变换 的问题,但是仍然没有解决不同g o p 之间分配比特的问题。 3 基于序列的比特分配 基于g o p 的比特分配,如果处理不好的话,很难使得整体序列达到稳定的质 h 2 6 4 视频编码器的速率控制 量。为了使整个序列获得平稳的质量,则应该基于序列而非g o p 进行比特分配, 其关键是有效的跟踪视频序列统计特性的变化。 1l 】【1 2 】中考虑了场景复杂度,解决g o p 之间或场景之间的比特分配。然而上 述方法只根据先前的数据预测模型参数,来确定当前场景或当前帧的r 和q ,并 不考虑当前场景和帧的实际编码复杂度,而根据先前数据确定的模型参数可能并 不能反映当前场景帧的实际统计特性。 【2 4 提出一种基于序列的快速比特分配策 略,根据当前帧的实际统计特性进行比特分配。然而其使用的速率m a d 模型是否 合理值得讨论。 2 2 2 目标比特的实现 在第一步完成之后,g o p 中的每一帧都己分配了目标比特数,接下来需要调 整编码参数使得编码后的比特数尽量接近目标比特数。目标比特的实现一般使用 调整量化系数来实现。 最初的速率控制思想是简单的通过反馈的缓冲区状态来调整量化系数0 2 引,例 如,缓冲区占用率较大时增大量化系数,缓冲区占用率较小时减小量化系数。近 年来集中研究的速率控制方法主要是基于率失真操作来确定量化系数,可以分为 两大类: 1 数据预分析( d a t ap r e a n a l y s i s ) 此类方法需要对视频编码帧提前进行一个分析处理,测量其真实的速率失真特 性,然后给出这些帧的速率失真函数r ( q p ) ,d ( q p ) 。使用数据预分析确定速率失 真函数的方法大致分为以下两种: 1 ) 内插法 内插法是通过率失真曲线上的少数几个点,通过内插的方法获得完整的曲线。 这几个点称为控制点,它们的率失真值通过对图像实际编码得到。内插法可以提 高率失真模型的精度,并且避免了使用所有量化系数对图像进行多次编码带来的 巨大计算量。 例如, 1 8 】中定义m 个控制点为( t ,y ;) ,待o m l ,其中x i 表示量化系数, 在m p e g 中其范围为l 到31 ;y 。为实际测得的速率或失真值。其余量化系数对应 的速率失真值通过线性或者三次内插预测得到。以三次内插为例,设厂为控制点t 与x n 之间的速率或失真值,则有: ,( x ) = a ,x 3 + 6 i x 2 + c f x + d i ( 2 - 5 ) 其中,i = 0 ,m 2 。可见,对于整个率失真函数存在m 1 个分段,每一个分段 有一个对应的多项式,每一个多项式的系数是通过4 个相邻的控制点( t 中y i 一,) , ( t ,y ,) ,( x i + i , y 川) ,( x i + 2 , y f + 2 ) 计算得到的。 目前,内插法都是通过样刹2 6 1 和多项式内插来预测控制点以外其他所有量化系 第二章视频编码中的速率控制 数对应的速率失真值,使用控制点越多,则预测越精确。 2 ) 模型匹配法 许多文献根据不同的理论假设和分析方式给出了视频源的近似速率失真模型。 模型匹配法采用当前帧真实率失真曲线上的数个数据点,然后根据这些模型的形 式进行匹配,从而得到当前帧的率失真函数。 上述方法存在的问题是,进行模型匹配时,使用的数据点越多,模型就越准确。 当使用所有可能的量化系数速率点进行模型参数匹配时,可以得到最好的性能。 然而,这种方法的复杂度很高,需要对当前帧图像进行多次编码;并且,即使使 用“最佳”的模型参数,模型仍然存在较大误差。例如,对于 2 7 提出的一种具有 对数形式的模型: 1 厂( g ) = 口+ p l o g ( - ) ( 2 6 ) g 其中,r 和q 分别代表编码速率和量化系数,口,均为指数函数的参数,实验结果 显示【2 6 | ,对于i 帧其最大误差可达4 0 ;对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论