[发明专利]一种基于FPGA的CABAC熵编码方法与装置在审
申请号: | 201710317376.9 | 申请日: | 2017-05-05 |
公开(公告)号: | CN106921859A | 公开(公告)日: | 2017-07-04 |
发明(设计)人: | 张闯 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | H04N19/13 | 分类号: | H04N19/13;H04N19/91;H04N19/70;H04N19/42 |
代理公司: | 济南舜源专利事务所有限公司37205 | 代理人: | 张亮 |
地址: | 450000 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga cabac 编码 方法 装置 | ||
技术领域
本发明涉及异构计算领域,具体涉及一种基于FPGA的CABAC熵编码方法与装置,其能够高效且同时基于上下文进行自适应二进制算术熵编码(CABAC)。本发明的显著特征是通过采用双路径存储上下文和多级流水线设计,消除了数据依赖,用很小的代价获得了较高的性能和吞吐率。
背景技术
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
熵编码压缩是一种无损压缩,其实现原理是使用新的编码来表示输入的数据,从而达到压缩的效果。常用的熵编码有游程编码,哈夫曼编码和CAVLC编码等。CABAC(ContextAdaptive Binary Arithmatic Coding)是H.264/MPEG-4AVC中使用的熵编码算法。CABAC在不同的上下文环境中使用不同的概率模型来编码。其编码过程大致是这样:首先,将欲编码的符号用二进制bit表示;然后对于每个bit,编码器选择一个合适的概率模型,并通过相邻元素的信息来优化这个概率模型;最后,使用算术编码压缩数据。CABAC是H.264和VP8压缩标准中采用的熵编码机制,在经典的广播应用中它可以节约9%~14%的比特率,要比哈夫曼编码和基于上下文的自适应可变长编码CAVLC更有效率,其压缩效率比CAVLC高20%。CAVLC(Context Adaptive VariableLength Coding)是在H.264/MPEG-4AVC中使用的熵编码方式。在H.264中,CAVLC以zig-zag顺序用于对变换后的残差块进行编码。CAVLC是CABAC的替代品,虽然其压缩效率不如CABAC,但CAVLC实现简单,并且在所有的H.264profile中都支持。
随着超高清视频技术的发展,对熵编码的压缩效率提出了越来越苛刻的要求。但CABAC算法复杂度高,其内生的数据串联特性使得硬件实现难度大,一个比特的编码结果会对接下来的一系列比特的编码都有直接的影响,因此很难用并行技术对其进行加速,这也成为了它的一个速度瓶颈。同时由于其中的上下文管理和算术编码需要进行很多存储器访问和ALU操作,计算复杂度较高,在传统的可编程器件中实现效率较低。
针对上述问题,本发明提出了一种基于FPGA实现的算术编码设计方法和硬件加速装置,其能够高效且同时基于上下文进行自适应二进制算术熵编码(CABAC)。本发明的显著特征是通过采用双路径存储上下文和多级流水线设计,消除了数据依赖,用很小的代价获得了较高的性能和吞吐率。
发明内容
本申请发明一种基于FPGA的CABAC熵编码器装置,该装置具体包括两个功能模块:上下文更新模块,该模块使用两个上下文寄存器、两个索引比较器和三个数据选择器避免了空闲状态的产生;算术编码数据产生模块,用于更新编码引擎的内部状态Range、Low和bitoutstanding寄存器,并且输出比特流。
如上所述的基于FPGA的CABAC熵编码器装置,其特征还在于,上下文更新模块中包括下一级流水,下一级流水具体包括两部分,一部分用于判断所编码的符号,另部分用于读取存储器。
如上所述的基于FPGA的CABAC熵编码器装置,其特征还在于,算术编码数据产生模块还包括多个两输入的补码加法器和两个高速的超前进位加法器,超前进位加法器用于进行rMPS和Lownew的计算。
一种基于FPGA的CABAC熵编码方法,该方法具体包括如下步骤:二值化步骤,将句法元素转化为二进制字符串的形式,实现兼容H.264规定的四种二值化方法:一元码(U);一元截断码(TU);k阶哥伦布编码(EGK);固定长度二进制化(FL);上下文模型选择步骤,根据句法元素和相邻模块的信息,为每一个二进制符号分配一个上下文模型每一个上下文模型对应一组{MPS,PstateIdx},MPS代表将要编码的大概率符号,PstateIdx表示当前概率状态索引;算术编码步骤,用一个码子表示一段数据流,每个码子都是对一段数据流不断分割后获得的。CABAC算术编码的输入只有两种符号:最大可能符号(MPS)和最小可能符号(LPS),每个编码的符号都有其对应的上下文模型,每个符号编码完成后都需要对上下文进行更新,每个上下文都独立地使用对应的概率表维护概率状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710317376.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:双摄像头校正设备
- 下一篇:部件供给装置及部件供给方法