一种基于AVCH.264视频编码器的功耗-码率-失真模型分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

杂度成正比,即可通过编码时间复杂度的高低来表征编码功耗的大小[14]。
3.视频编码器功耗分析
3. 1 H.264 编码器功耗模型化
H.264 是 ITU-T 于 2003 年公布的新一代视频压缩编码标准,与先前的 MPEG-2、H.263
等视频压缩编码标准类似,H.264 也采用了基于块的混合编码压缩技术。H.264 编码器的编
码计算主要集中在运动估计与补偿、DCT 变换和反 DCT 变换、量化和反量化,以及熵编码
等处理模块。对于采用 INTRA(帧内)模式编码的宏块,其编码计算主要包括 DCT 变换和
反变换、量化和反量化以及熵编码。其中计算 DCT 系数的能量消耗 EDCT 由 DCT 变换块的
维数所决定,在 H.264 中 DCT 变换使用 4 × 4 块大小,因此,可认为 EDCT 为一常数。量化
是针对 DCT 变换系数进行的操作,其计算功耗 EQ 与 DCT 系数块的维数有关,因此也可认 为是一常数;H.264 中熵编码采用基于上下文自适应的可变长编码 CAVLC 或基于上下文自
适应的二进制算术编码 CABAC,直观上,码率越低,越多的 DCT 变换系数量化后为零,
需要进行熵编码的符号数目也就越少,但是熵编码功耗与码率的精确关系并不明确,为简化,
16,开启码率控制,并选择全搜索和菱形搜索两种搜索算法进行参数估计。式(9)是表示
每编码播放时间为 1 秒的视频序列的功耗。图 1 是 foreman.qcif 及 stefan.qcif 的编码总体复
杂度和运动估计复杂度的关系,可以看出,码率的增加,使得运动估计复杂度和编码总体复
杂度有相同的增长趋势,二者相差为一常数,即熵编码功耗对编码功耗的影响可以忽略。因
(4)、(5)、(6)、(7)代入(8)中整理得:
Penc = λscale ⋅[ AS + K ⋅ RS + (1− β ) ⋅ (BS − δ ⋅η RS )]
(9)
公式中 K = fS ⋅ NMB ⋅ k ,δ = fS ⋅ NMB ⋅ γ , AS = fS ⋅ NMB ⋅ (EDCT + EIDCT + EQ + EIQ) 均可在 fs 一
以前对于视频编码器功耗问题的研究多集中在从算法或硬件设计上来降低编码器计算 复杂度从而节省编码器的能量消耗[6][7][8][9]。近年来,有些学者开始研究使用更有效的功耗 管理和包分组机制来实现传输功耗最小化[10][11]。有些学者联合考虑信源编码,信道编码, 数据传输部分,尝试建立视频通信端到端的功耗控制机制[4][12],但也只是提出了框架构想, 并没能给出具体的模型表达。还有些学者开始在编码效率和能量消耗方面寻求最优平衡 [13][14]。其中[13]首次提出了一个基于 MPEG-4 编码器的功率-码率-失真模型,该模型虽具备 一定的理论指导意义,但由于参数众多,模型复杂而不具备实际应用价值。
此,式(9)中 K ⋅ RS 项可以认为是 0。其它测试序列的运动估计复杂度和编码总体复杂度也
具有类似关系。因此式(9)可化简为:
Penc = λscale ⋅[ AS + (1− β ) ⋅ (BS − δ ⋅η RS )]
(10)
图 1 编码总体复杂度与运动估计复杂度关系 Fig.1 The relationship between the total encoding complexity and motion estimation complexity
即宏块的 SAD 值在满足一定门限条件时,编码器会提前终止当前搜索。宏块的 SAD 值与码
率有关,因此可认为提前终止是与码率有关的函数,实验公式为:
Esearch = Nref ⋅ Nsearch ⋅ ESAD − γ ⋅η Rs
(5)
RS 为信源码率,单位 kbit/s,γ 和 η 与搜索算法和视频序列内容有关,且 η<1。运动估计部 分的功耗 EME 可表示为:
http://Hale Waihona Puke
一种基于 AVC/H.264 视频编码器的功耗-码率-失真模 型分析1
王亮,刘文予,韦耿
华中科技大学电子与信息工程系,武汉 (430074)
E-mail:wangliang_hust@
摘 要:移动终端在进行视频编码处理及通过无线信道进行码流传输时往往受到能量供应的 约束。为了延长电池使用时间,针对无线应用的视频编码系统应能根据应用需求动态调节其 编码复杂度。本文分析了典型的视频编码系统的编码能耗机制,并把能量消耗引入到传统的 率失真分析中,提出了一种参数化的功耗-码率-失真三维分析模型,并通过 AVC/H.264 视频 编码器验证了该三维模型的准确性。在该功耗-码率-失真模型框架内,视频编码器可根据能 量供应状态调节其编码参数来达到当前视频质量最优化。该三维模型分析框架也可为其他编 码器的功耗优化问题提供指导。 关键词:率失真分析,能量消耗,视频编码,AVC/H.264
1.引言
伴随着无线多媒体通信技术的发展,基于无线通信环境下的实时视频压缩编码技术获得 了越来越广泛的应用[1]。与传统的多媒体应用不同,无线环境下的多媒体终端一般采用电池 供电,其功能操作往往受到能量供应的制约,能量消耗已成为影响移动终端计算能力和视频 压缩质量的关键因素之一[2]。移动终端设备的能量消耗主要由视频编码,数据传输,视频显 示和语音驱动等部分组成,其中视频编码和数据传输构成了移动终端能量消耗的绝大部分 [3][4],特别是在无线局域网中,研究表明,对于较小尺寸的视频序列(如 QCIF 176×144), 编码能耗可占到终端总能耗的 2/3 [5]. 从能量消耗的角度来看,移动终端视频编码器的操作 具有两面性,一方面,高效的视频压缩可以极大的减少传输数据量,进而节省数据传输部分 的能耗;另一方面,高效的压缩算法执行需要更高的计算复杂度和更多的能量供应。因此, 移动终端视频编码器的设计需要在带宽(码率)、视频质量(失真)以及能量消耗之间寻求 平衡。
间编码宏块分割模式,采用率失真优化模型计算采用该模式进行编码的编码代价,最终选择
代价最小的编码模式作为最优编码模式。因此,这种模式选择的遍历计算功耗 Emode 可认为 是一常数。
分块模式确定后则进行最佳运动矢量的搜索。其搜索功耗依赖于搜索执行的宏块数,即
与参考帧数目,搜索范围,具体搜索算法有关。运动矢量搜索功耗 Esearch 可表示如下:
1本课题得到博士点基金(项目编号:20040487009)和国家自然科学基金(项目编号:60572063)的资助。
-1-

最后讨论了该三维模型的优化控制问题。 论文结构内容安排如下:第二节首先讨论了编码器复杂度与实际能量消耗之间的转换
关系。第三节分析、推倒编码功耗模型,并采用 H.264 参考软件进行验证。第四节给出与之 对应的失真模型。第五节讨论该三维模型的优化问题,最后总结全文。
9 + k 2 ⋅ (5× n1 + 3× n2) + 4 1+ 6 log 2(w +1)
(2w +1)2 (2w +1)2
3. 2 H.264 编码器功耗模型验证
模型验证的硬件环境为基于 Intel(R) Pentium(R)4 2.66 GHz 处理器,内存 448M 的计算
-3-

h264中熵编码采用基于上下文自适应的可变长编码cavlc或基于上下文自适应的二进制算术编码cabac直观上码率越低越多的dct变换系数量化后为零需要进行熵编码的符号数目也就越少但是熵编码功耗与码率的精确关系并不明确为简化可近似认为熵编码功耗ee与信源码率rs成正比esekr?因此一个采用intra模式宏块的编码功耗eintra可表示为
2.编码复杂度与实际功耗关系
视频编码的能量消耗主要由其执行的计算操作产生。动态电压调节技术 DVS[17][18]在
CMOS 电路设计中的应用,使得编码计算的功耗 Penc 成为处理器时钟频率 fclk 的函数[13]:
Penc
=
Φ(
fclk )
=
λ

f3
clk
(1)
基于软件的视频编码器,其处理器时钟频率为固定值,因此可认为其编码功耗与编码时间复
本文分析了典型的视频编码系统的编码能耗机制,并把能量消耗引入到视频编码率失 真模型中,提出了一种参数化的功耗-码率-失真三维分析模型来控制和优化视频编码系统。 其中码率是联系视频质量(失真)和编码功耗的中间变量,而不是最终的优化目标。本文首 先分析了影响编码功耗的各个编码处理模块及其复杂度控制参数,推导出基于这些参数的编 码器功耗模型,并通过最新的 H.264 编码器[15]参考软件验证了该模型的准确性。接着讨论 了与该功耗模型控制参数对应的率失真模型[16],从而建立起功耗-码率-失真三维模型。文章
定时认为是常数, BS = fS ⋅ NMB ⋅ (Emode + Nref ⋅ Nsearch ⋅ ESAD) 当搜索算法,参考帧数目和搜索范
围一定时,BS 也可认为是一常数。由公式(9)可以看到,当码率 RS 一定时,编码功耗和帧 内刷新率成良好的线性关系。
表 1 不同运动估计搜索算法搜索的宏块数 Tab.1 The Numbers of Macro Blocks to be searched for different search algorithm
算法 全搜索(FS) 一维全搜索(ODFS) 三步法(TSS) 四步法(FSS)
菱形搜索(DS) 修正对数搜索(MLS) 选择抽取模式搜索(APDS) 子运动域选择抽取模式搜索(SAPDS)
搜索宏块数 Nsearch
(2w +1)2
2(2w +1) + 2w
1+ 8log 2(w +1)
4 + k1 ⋅ (5[ w −1]) + 8 m
变帧内刷新率 β 可以改变运动估计在总体编码环节中所占的比重,因此可以有效调节编码功
耗和编码输出码率。故基于 H.264 编码器的编码功耗模型可表示为:
Penc = λscale ⋅ fS ⋅ NMB ⋅ EINTRA + (T −1) ⋅ EINTER T
(8)
λscale 可理解为依赖于硬件平台的比例因子,fs 为编码帧率,NMB 表示每帧的宏块数目。将(2)、
可近似认为熵编码功耗 EE 与信源码率 RS 成正比, EE = k ⋅ RS 因此一个采用 INTRA 模式宏块
的编码功耗 EINTRA 可表示为:
EINTRA = EDCT + EIDCT + EQ + EIQ + EE
(2)
采用 INTER(帧间)模式编码的宏块,其编码计算还引入了运动估计操作。运动估计
s 是当前编码的原始数据,c 是编码重建的用于进行运动补偿的参考帧数据,M × N 表示宏块
大小,MV 为侯选的运动矢量。Nsearch 则表示搜索当前宏块最佳运动矢量时所需搜索的宏块 数目,不同的搜索算法,Nsearch 的大小也不同,表达式如表 1 所示[21],其中 w 表示搜索范围。 H.264 编码器在进行运动搜索时(尤其是全搜索)为减小计算复杂度,引入了搜索阈值门限,
Esearch = Nref ⋅ Nsearch ⋅ ESAD
(3)
Nref 表示参考帧数目,ESAD 表示计算一个宏块的绝对差值和的能耗:
-2-

M ,N
∑ ESAD = | s[x, y] − c[x − MVx, y − MVy] | x, y
(4)
包括帧间编码模式选择和最佳运动矢量搜索两部分。运动估计部分是视频编码器复杂度最高
的模块,通常占到编码总计算量的 70%以上[14]。H.264 帧间编码采用树型结构运动补偿方式,
帧间宏块具有 4 种分块模式即 16× 16、16× 8、8× 16 和 8 × 8,如果采用 8 × 8 方式,则每个 8 × 8 块又具有 4 种分块模式即 8 × 8、8 × 4、4 × 8 和 4 × 4[19]。H.264 编码器通过遍历所有帧
机。软件使用 H.264 的 JM12.0 参考软件,编码模式为 IPPP,熵编码采用 CAVLC,测试序
列选择 foreman.qcif、stefan.qcif、paris.qcif 和 container.qcif 四个序列,默认编码帧率为 30fps,
每个序列的每个测试数据均由编码 300 帧得到,参考帧数目和搜索范围选用默认的 1 帧和
EME = Emode + Esearch
(6)
因此一个采用 INTER 模式宏块的编码功耗 EINTER 可表示为:
EINTER = EDCT + EIDCT + EQ + EIQ + EE + EME
(7)
帧内刷新率 β = 1/ T 表示每隔 T-1 个 INTER 编码帧就有一帧采用 INTRA 编码模式。改
相关文档
最新文档