当前位置:首页 > 工业控制 > 电子设计自动化
[导读]1 引言 随着数字电视及视频会议的发展以及应用,H.264由于其更高的压缩比、更好的图像质量和良好的网络适应性而备受关注。 基于上下文的自适应二进制算术编码(CABAC)则作为H.264编码器系统的最后一环,对整个编码性

1 引言

随着数字电视及视频会议的发展以及应用,H.264由于其更高的压缩比、更好的图像质量和良好的网络适应性而备受关注。

基于上下文的自适应二进制算术编码(CABAC)则作为H.264编码器系统的最后一环,对整个编码性能影响较大。CABAC充分考虑视频流的相关性.能适应信号统计特性的变化,容易达到渐进性能,编码速度较高,但复杂度大,这造成单纯用软件编码难以达到很高的性能,特别是对于高清晰度视频(HDTV)不能实现实时编码,这就需要硬件加速或设计专门的硬件编码电路。

目前,已有相应的硬件加速电路设计问世,但主要是对算术编码部分进行设计,整体性能仍不够理想。这里在对以往加速电路分析的基础上,把握CABAC整个编码原理,主要对其中的二进制化部分进行优化,对相应的二进制化方法进行归类优化,采用并行运算的方案,最终在FPGA上以较优的速度和资源实现硬件编码。

2 二进制化原理

CABAC实现方案包括3个过程:语法元素的二进制化、上下文建模、自适应算术编码,图1是CABAC编码器基本结构。


二进制化是CABAC编码的第1步,提高二进制化模块的编码速度有助于整个系统速度的提高。在二进制化过程中,一个给定的非二进制语法元素被唯一地映射到一个二进制序列(Bin String),其中的每一位称为Bin。

如果输入为给定的二进制语法元素,则此步就可以越过,随后的步骤由编码模式决定。

在H.264标准中。语法元素较多,约有20多种,而二进制转换使这些语法元素的二进制表示接近最小冗余编码,以减少码流。

CABAC中二进制转换有4种基本类型:一元(U)编码、截断一元(TU)编码、指数哥伦布(EGK)编码和定长(FL)编码。另外,还可通过这几种编码方式的串联进行二进制化转换。

2.1 一元(U)二进制转换方案

对于一个无符号语法元素x≥0,CABAC中的一元码字是由x个“1”串连并在结尾处加上“0”,因此一元二进制化的长度是x+1,如表1所示,其中Binldx表示字符串的索引。一般来讲,U二进制转换主要用于参考帧队列预测语法元素的编码。


2.2 截断一元(TU)二进制转换方案

截断一元二进制化对语法元素的值有要求,只对不大于某个界限值(S)的语法元素进行二进制化。若语法元素值小于S,则其二进制化结果同一元二进制化;若语法元素值等于S,则其结果为S个“1”。一般,TU二进制转换主要用于帧内色度预测模式的编码。

2.3 指数哥伦布(EGK)二进制转换方案

EGK编码最初由Teuhola在上下文控制长度编码方案中提出,是由Golomb编码派生的。EGK编码由一个前缀和后缀码字串联构成,其前缀部分由一元码字l(x)=[log2(x/2k+1)]的值组成,其后缀部分由x+2k(1-2l(x))计算得出。一般,EGK二进制转换主要用于残差以外数据的编码,具体情形视编码器的设置而定。EGK二进制化随后取值的不同而不同,k的取值为非负整数。

2.4 固定长度(FL)二进制转换方案

固定长度二进制化适用于语法元素值x小于界限值S的情况。方法为直接用x值的二进制表示形式作为其二进制化结果,长度同定为:lFL=[log2S]的向上取值。一般,FL二进制转换被用于统一分配的语法元素,编码块的图形符号部分关系到亮度残差。

2.5 基本二进制转换的串联方案

由以上各种二进制方式可以再推导出3种基本的二进制转换方案。第1种是4位FL前缀与TU后缀(S=2)的串联,而第2和第3种方案来自TU和EGK二进制转换,称为UEGK。这些方案被用于运动矢量微分和变换系数取绝对值。另外语法元素mb_type和sub_mb_type二进制化使用遍历二叉树方法,对应的二叉树已在参考文献中给出。

3 二进制化编码方案优化

H.264标准中的二进制化编码流程是串行的,适合软件的实现,但由于待编语法元素较多,导致执行速度慢且效率低下。而硬件实现的最大优势在于其并行性,可大大提高执行效率。因此,为提高编码速度,在不改变算法实质的前提下,对标准中的编码流程进行相应优化,以利于硬件实现。主要提出以下优化措施:

(1)将语法元素归类按照基本的编码方法及H.264对各语法元素的要求,可将20余种语法元素的二进制编码方法归为6类,包括U二进制化、UEGKO二进制化(k=0,uco-eff=14)、UEGK3二进制化(k=3,ucoeff=9)、宏块/子宏块类型二进制化、宏块量化偏移二进制化,定长与截断串联的二进制化。将语法元素归类,将有效减小编码过程中的繁杂和无序性,有利于编码正常完成。

(2)并行化设计语法元素的二进制化方法可归为8类,在设计中,采用控制单元辨别相应的语法元素,并送入二进制化模块进行编码。但依照H.264标准设计,二进制化单元的入口地址不仅取决于语法元素的值,还取决于语法元素的种类,这种数据依存关系无疑增加了运算量。且输出是串行,不利于流水线设计,这样就将降低系统的时钟频率。故采用一种并行设计方案,以语法元素值为输入,结果得到6个不同的输出,将它们锁存后,利用多路选择器以语法元素种类作为控制端选出所需的值。两种不同的实现方式见图2。




来源:xinxin1次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

本文根据完整的基准测试,将Achronix Semiconductor公司推出的Speedster7t FPGA与GPU解决方案进行比较,在运行同一个Llama2 70B参数模型时,该项基于FPGA的解决方案实现了超越性...

关键字: 大模型 FPGA LLM

在这篇文章中,小编将为大家带来FPGA三段式状态机设计的相关内容。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: FPGA 状态机

本文中,小编将对FPGA不复位的代码实现予以介绍

关键字: FPGA 复位

本文中,小编将对OV7670 驱动设计予以详细介绍,如果你想对它的详细情况有所认识,或者想要增进对设计方案的了解程度,不妨请看以下内容哦。

关键字: OV7670 驱动设计 FPGA 开发板

一直以来,AD转换都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来FPGA Verilog HDL实现AD转换的实例设计的相关介绍,详细内容请看下文。

关键字: FPGA AD Verilog

在这篇文章中,小编将对FPGA中的定点数处理方法的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: FPGA 定点数

在这篇文章中,小编将为大家带来FPGA电源排序方案的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: FPGA 电源 电源排序

以下内容中,小编将对FPGA跨时钟域处理技术方法进行着重介绍和阐述

关键字: FPGA 跨时钟域

在下述的内容中,小编将会基于FPGA开发板去点亮LED灯

关键字: FPGA LED 开发板

FPGA奇偶校验设计和代码实现将是下述内容的主要介绍内容,通过这篇文章,小编希望大家可以对FPGA奇偶校验的相关情况以及信息有所认识和了解,详细内容如下。

关键字: FPGA 奇偶校验
关闭
关闭