AVS熵编码器设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AVS熵编码器设计

指数哥伦布编码硬件结构 筒式移位器和输出寄存器工作原理 输出缓冲 代码 QA 四、CAVLC硬件结构介绍 CAVLC数据流程图 CAVLC结构一 CAVLC结构二 AVS 2D-VLC和CAVLC的比较 AVS所有的语法元素和残差数据都是以指数哥伦布码的形式映射成二进制比特流。而对于H.264标准的基本档次,残差系数由CAVLC处理,而其他语法元素用零阶的指数哥伦布编码。 AVS采用基于上下文的2D_VLC来编码8x8块变换系数,2D_VLC的意思是将(run,level)对视为一个事件联合编码.对预测残差的块变换系数,经扫描形成(run,level)对串,level、run不是独立事件,而存在着很强的相关性,在AVS中level、run采用二维联合编码,并根据当前level、run的不同概率分布趋势,自适应改变指数哥伦布码的阶数.这种编码方法共用到19张2D_VLC表。 The End 谢 谢 yongliangchen2008@SSM,Peking University * * * 陈勇亮 二零零九年四月 AVS 帧内熵编码器设计 内容提要 一、AVS 2D-VLC总体概述 二、AVS 2D-VLC各主要硬件模块介绍(与算法对应) 三、Exp_Golomb编码详细介绍(从算法到硬件结构到代码到仿真) 四、CAVLC硬件结构介绍 五、代码风格 一、 AVS 2D-VLC总体概述 AVS编码器总体框架结构图 VLC输入FIFO说明 CMD_vlc:由MD模块传递过来的系统信息,包括图像宽高,量化参数。 PreMode:由MD模块计算得到的各Block最终预测模式。 Residual:经变换和量化后的图像残差。 AVS 2D-VLC的作用 1、处理经量化后的残差块信息,去除残差像素中的统计冗余。 2、将前级模块传输来的各个数据按标准排序,产生码流。 码流顺序 码流由封装好的、有序的语法元素构成 语法元素即需要传输到解码端的信息 标准的7.1.2节中,厚黑字体遍历了所有语法元素 码流顺序由7.1.2节中伪代码确定 语法元素对应的含义在7.2.2节中有详细阐述 AVS 2D-VLC技术关键、难点 1、相对AVS编码器其他单元来说,熵编码单元流程复杂,处理的数据种类繁多且不规整,因此对应的硬件结构也不规整,要优化总体设计结构,努力提高整体速度。 2、AVS标准熵编码中有个逃逸判断环节,对应到硬件结构中是一个组合逻辑反馈,这正是我们硬件设计需要避免的,因为这样基于流水线设计的思维会有困难,而且速度会影响。 3、游程扫描部分传统思维为64个周期,代码效率不高,要努力实现并行扫描方式提高代码效率。 4、AVS熵编码部分二维寻址(共17位)查表是速度的一个瓶颈,设计在此部分应优化硬件结构,比如采用分段式寻址,提高系统速度。 二、 AVS 2D-VLC各主要硬件模块介绍 1、游程扫描模块 2、当前码表确定模块 3、逃逸系数确定模块 4、非逃逸系数确定模块 5、EOB单元 6、指数哥伦布阶数确定单元 回总模块 游程扫描模块 模块作用:扫描经量化后的输入残差数据(以Block为单位),得到Block的(Run,Level)对。 扫描方式: 游程扫描模块 游程扫描状态转移图 关键代码 counter_scanning计数器(表示扫描到的像素顺序号)自加 RUN: run__num计数器(表示非零系数前零的个数)自加 LEVEL: AVS_2DVLC[n][17:0] = {run_num,data_in[counter_scanning-1][11:0]}; OUT: if(counter_scanning==64)o_n = n(表示(Run,Level)对个数); o_n计数器(表示输出的(Run,Level)对序列号)自减 o_AVS_2DVLC = AVS_2DVLC[o_n-1][17:0]; 回目录 QA 当前码表确定单元 模块作用:根据当前编码的(Run,Level)对,确定编码下一个(Run,Level)对即将使用的码表。 码表索引变换方式见标准P43~P44 当前码表确定单元硬件结构 回目录 逃逸系数确定模块 模块作用:当前(Run,Level)对逃逸时,将Run和Level分别编码。先输出Run(2×RUN+59/60(负数、正数)),再输出Level(AbsLevel-RefAbsLevel)。 逃逸系数确定模块硬件结构 回目录 非逃逸系数确定模块 模块作用:在非逃逸情况下,根据码表索引和当前(Run,Level)对,查找到对应的码表值。 非逃逸系数确定模块硬件结构 回目录 EOB单元 模块作用:根

文档评论(0)

zhengshumian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档