下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、h.264解码器中cabac硬件加速器的实现h.264是由国际电信联盟(itu)和国际标准化组织(iso)共同制定的新一代视频编码标准,该标准采纳一系列先进的编码技术,在编码效率、网络适应性等诸多方面都超越了以往的视频标准。h.264有两种熵编码计划:一种是从可变长编码计划进展而来的基于上下文的自适应可变长编码cavlc;另一种是从算术编码进展而来的基于上下文的自适应二进制算术编码cabac。与cavlc相比,cabac可以节约约7的码流,但增强了10的计算时光。在解高清码流时,用软件来做cabac这样复杂的熵解码,无法完成实时解码的任务,因此,设计硬件加速器是十分须要的。cabac解码算法在
2、h.264的输入码流中,数据的基本单位是句法元素(syntax element),码流是由一个个句法元素依次连接而成的。每个句法元素由若干比特组成,表示某个特定的物理意义。在h.264定义的码流中,句法元素被组织成有层次的结构,分离描述序列(sequence)、图像(picture)、片(slice)、宏块(macroblock)、子宏块(subblock)五个层次的信息,cabac主要负责对片层以下的句法元素举行解码。cabac解码的总体过程可以分为三个步骤:初始化、二进制算术解码归一化、反二进制。初始化该过程在每一个片开头时执行,包括上下文模型变量(context variable)的初始
3、化和解码引擎(decoding engine)的初始化。二进制算术解码和归一化二进制算术解码是cabac解码的核心部分,该过程实现1bit数据的解码,对每个句法元素举行解码都需要调用该过程。h.264中二进制算术解码有三种模式:规章解码(decode decision)、旁路解码(decode bypass)和结束解码(decode terminate)。对不同句法元素举行解码时,分离调用这三种模式的一种或多种。反二进制化cabac定义了四种二进制化办法:一元码(unary)、截断一元码(truncated unary)、k阶指数哥伦布码(kth order exp-golomb)和定长码(f
4、ixed-length)。一个句法元素可以对应一种或两种上述二进制化办法,但特别的是,句法元素mb_type和sub_mb_type的反二进制化自立于上述四种办法,它们通过查表来实现。cabac硬件加速器的架构设计h.264解码器的软/硬件划分h.264解码过程采纳软/硬件联合的解码计划,囫囵解码器由32位cpu、结构的运算单元和硬件加速器组成。cabac熵解码部分,主要是一些推断和分支操作,数据接口、吞吐量不大,这些任务由软件和硬件加速器共同完成。本文设计的cabac解码模块就是一个cabac硬件加速器。cabac硬件加速器的总体构架cabac硬件加速器的总体架构1所示。其总体架构分为两层:
5、顶层是cabac_top;底层有7个模块,包括cabac_center_ control_unit、context、 neighbor_mb_information, context_init、ac_next_ state_lps、 ac_next_state_mps和rangelps。cabac_center_control_unit模块负责上下文模型变量的初始化,解句法元素,更新context,并将解出的残差数据传给iq&idct模块;context模块是双口ram,存放459个上下文模型变量,可同时对一个地址的上下文模型变量举行读操作并对另外一个地址的上下文模型变量举行写操作;n
6、eighbor_mb_information模块是sram,存放宏块信息,cabac解码器在解析当前宏块中的句法元素时,需要参考上面和左面宏块的信息,因此,需要在该sram内保存图像中当前宏块的上一行宏块和该行之前宏块的信息,每解完一个宏块更新该sram;context_init模块是一块片内rom,用于初始化变量;3个查找表模块ac_next_state_lps、ac_next_ state_mps和rangelps由组合规律实现,用于二进制算术解码过程中的查表运算。cabac的硬件化分析本设计的目标是使囫囵h.264解码器的芯片能够对高清图像(1920×1088)举行实时解码。假
7、设芯片工作在166mhz的频率下,图像播放速率是25fps,则平均解一个宏块的时光是823个时钟周期。考虑到h.264熵解码部分的运算总体上是串行解码,并行性较差,因此cabac硬件加速器需要在3个时钟周期内完成1bit数据的解码。假设视频图像的压缩比为20:1,yuv为4:2:0取样,由于取样值是8bit,则每个像素为8bit×1.5=12bit。cabac的解码率约为1:1.2,所以cabac要解的码流是(1920×1088×12bit/20)×1.2,约1.43mb。芯片工作频率是166mhz,每3个时钟解出1bit,则解码数据率约为55.3mbp
8、s,本设计在解码时cabac占用了90%,约为49.8mbps。因此解码速度为49.8/1.43,约34.7fps,即1s可以解34.7帧,则解1帧(1920×1088)大约需要28.8ms。为了达到该目标,cabac硬件加速器的设计必需对核心的二进制算术解码举行优化。按照归一化算法的特点,即循环的次数可由输入的codirange、codioffset和查表得到的codirangelps事先推断出来,因此可以合并二进制化和归一化这两个步骤,使其在1个时钟周期内完成。因为篇幅有限,下面仅以三种模式中的规章解码为例,解释二进制算术解码和归一化的硬件化,旁路解码和结束解码可参考h.264协
9、议。规章解码的二进制算术解码和归一化过程主要包括比较、减法、查表、移位操作。在h.264中,为了削减计算的复杂度,cabac首先建立一个64×4的二维表格rangetablps64,存放预先计算好的乘法结果。表格的入口参数是pstateidx和qcodirangeidx,其中qcodirangeidx由变量codirange量化而来,量化办法是(codirange6)&3。其 hdl实现如下:assign qcodirangeidx= (codirange6)always(pstateidx or qcodirangeidx)begincasepstateidx, qcodi
10、rangeidx0: codirangelps="0" 255:codirangelps=63;endcaseend建立了概率模型和乘法模型后,在递进计算过程中cabac必需保存一下变量:当前区间的下限codioffset、当前区间的大小codirange、当前mps(也许率符号)字符valmps、lps(小概率符号)的概率编号pstateidx。transidxlpspstateidx和transidxmpspstateidx是两个深度为64项的表格,其中pstateidx的取值为0"63。接下来是归一化推断,当codirange小于0x0100时,需举行归一化
11、。这样就能在1个时钟周期内完成二进制化和归一化两个步骤,其verilog hdl实现如下:always(posedge clk or negedge rst)if( !rst). .elsebeginif(codioffset= codirange-codirangelps)beginbinval="valmps;codioffset=codioffset-(codirange-codirangelps);codirange=codirangelps;if(pstateidx=0)valmps=1-valmps;pstateidx=transidxlpspstateidx;endel
12、sebeginbinval=valmps;pstateidx=transidxmpspstateidx; endwhile(codirange0x100) /注:此语句不行综合begincodirange= (codirange-codirangelps)1;codioffset=(codioffset1) |read_bits(1);endendcabac的加速策略状态机的设计二进制算术解码的状态机是本设计的核心,该部分效率的凹凸将挺直影响到cabac硬件加速器的解码速度。在cabac模块没有被启动时,状态机将向来停歇在初始状态,当一个新片开头时,初始化解码引擎;当收到cp
13、u发出的解码哀求时,首先进入预解码状态,读取上下文模型变量,然后在下一个时钟进入二进制算术解码状态,完成1bit数据的解码。在cabac解码过程中,系统会按照句法元素的种类和当前数据的位置挑选解码模式。流水线的设计cabac对1bit数据举行解码的过程可分为两个步骤:读取上下文模型变量、解码并更新上下文模型变量。本设计采纳两级流水线结构,在对当前数据举行解码的同时,可读取下个数据的上下文模型变量,因此加快了解码速度。码流读取的双缓冲设计在举行解码的时候,为了提高传输效率,采纳双缓冲的形式。在给其中一个缓冲传输数据的时候,解码器可从另外一个缓冲里读取数据举行解码,从而使传输和解码同时举行,有效提高了传输效率。设计结果与性能在设计完成后,利用jvt提供的标准测试码流举行测试,通过了仿真验证。结果显示,本设计平均每2个时钟周期可完成1bit数据的解码。在smic 0.18mm 工艺标准单元库的基础上举行dc(design compile)综合,硬件加速器的面积为0.38mm2(不包括片外sram所占用的面积),工作频率可达166mhz,达到了预期要求。为了显示硬件加速器的优势,挑选参考软件jm7.4的函数biari_decode_symbol完成二进制算术解码和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 技术创新工作室创建与发展
- 2026山东潍坊润丰化工股份有限公司西厂区招聘42人备考题库有答案详解
- 2026广东佛山市第二人民医院服务中心招聘18人备考题库及答案详解一套
- 2026广东省能源集团有限公司数字化管理办公室首席架构师招聘1人备考题库附答案详解(能力提升)
- 2026重庆科瑞制药(集团)有限公司招聘1人备考题库完整参考答案详解
- 2026广西南宁良庆区玉龙社区卫生服务中心诚聘妇产科医生1人备考题库及一套完整答案详解
- 2026上海市血液中心上半年专业技术人员招聘12人备考题库含答案详解(能力提升)
- 2026中国科学院微生物研究所科技岗位助理研究员(正式编制)招聘备考题库(长期有效)含答案详解(能力提升)
- 2026青海省核工业核地质研究院非编工勤岗人员招聘2人备考题库及完整答案详解一套
- 2026广西现代职业技术学院招聘8人备考题库及答案详解(名校卷)
- 2026年上海市黄浦区初三语文二模试卷及答案
- 航天军工行业从海外看中国商发产业链前景
- 2026公司级新员工安全培训教材
- 2026年各地算力统筹与算电协同精细化政策汇编解读
- 配电架空线路标准施工工艺课件
- 医疗器械网络经营培训
- (完整版)钢结构厂房施工组织设计(含土建)
- 最高人民法院实施民法典继续有效适用的司法解释文件汇编(下)
- 2023年广西二造《建设工程计量与计价实务(安装)》高频核心题库300题(含解析)
- GB/T 36501-2018土壤制图1∶25 000 1∶50 000 1∶100 000中国土壤图用色和图例规范
- 套管强度校核全解课件
评论
0/150
提交评论