发明名称 基于CABAC的图像压缩熵编码器
摘要 本发明公开了一种基于CABAC的图像压缩熵编码器,主要解决现有技术编码效率不高、码流快速打包时发生数据溢出的问题。其包括图像控制单元(1)、符号产生模块(2)、符号FIFO(3)、二进制算术编码模块(4)、上下文存储器(5)、码流FIFO(6)和码流打包字节模块(7);图像控制单元控制各模块复位和使能信号的产生;符号产生模块从外部读取数据并完成二值化和上下文建模;符号FIFO存储二值化符号及上下文模型;上下文存储器存储上下文信息;二进制算术编码模块根据二值化符号得到中间码流;码流FIFO存储中间码流数据;码流打包字节模块根据中间码流产生最终码流。本发明具有吞吐率高、电路规模小、关键路径短、防止流水线停滞和避免数据溢出的优点,用于实现高吞吐的算术熵编码。
申请公布号 CN102801974B 申请公布日期 2014.08.20
申请号 CN201210251107.4 申请日期 2012.07.19
申请人 西安电子科技大学 发明人 李甫;樊春晓;石光明;张犁;周蕾蕾;董伟生;齐飞;赵光辉;林杰
分类号 H04N19/42(2014.01)I;H04N19/91(2014.01)I 主分类号 H04N19/42(2014.01)I
代理机构 陕西电子工业专利中心 61205 代理人 王品华;朱红星
主权项 一种基于CABAC的图像压缩熵编码器,包括图像控制单元(1)、符号产生模块(2)、符号FIFO(3)、二进制算术编码模块(4)、上下文存储器(5)和码流打包字节模块(7);图像控制单元(1)与各模块的复位和使能端相连,通过控制各模块的复位信号、使能信号的产生,实现各模块间的协调统一工作;符号FIFO(3)分别与符号产生模块(2)和二进制算术编码模块(4)相连,用于存储符号产生模块(2)产生的二值化符号和对应的上下文模型;上下文存储器(5)与二进制算术编码模块(4)相连,用于存储512个上下文模型的上下文信息,以实现二进制编码时的上下文模型读取和更新操作,其特征在于:二进制算术编码模块(4)与码流打包字节模块(7)之间连接有码流FIFO(6),该码流FIFO(6)用以存储二进制算术编码模块(4)输出的中间码流;所述符号产生模块(2),由第一存储器(21)、第二存储器(22)、第三存储器(23)、第一多路选择器(24)、状态机控制单元(25)、头信息状态机(26)、系数信息状态机(27)、第二多路选择器(28)、二值化子模块(29)和上下文建模子模块(210)构成,其中第一存储器(21)、第二存储器(22)、第三存储器(23)的输入端均与外部输入相连,输出端均与第一多路选择器(24)相连,实现从外部输入中读取语法元素并根据其预测模式分别存入相应的存储器中的操作;状态机控制单元(25)分别与头信息状态机(26)和系数信息状态机(27)相连,完成控制两个状态机正常跳转的工作;二值化子模块(29)的输入端分别与头信息状态机(26)和系数信息状态机(27)相连,输出端与第二多路选择器(28)相连,用以完成二值化操作,并将二值化后的符号通过第二多路选择器(28)写入符号FIFO(3);上下文建模子模块(210)的输入端分别与头信息状态机(26)和系数信息状态机(27)相连,输出端与第二多路选择器(28)相连,用以完成上下文建模操作,并将上下文信息通过第二多路选择器(28)写入符号FIFO(3);所述二进制算术编码模块(4),由依次相接的四级流水线组成,第一级流水线由上下文读取子模块(41)构成,用以完成从符号FIFO(3)读取待编码字符和上下文模型的工作;第二级流水线由字符概率状态更新子模块(42)、概率状态计算子模块(43)和编码方式判断子模块(44)构成,分别用以完成字符概率状态更新、大概率字符MPS或小概率字符LPS的中间变量计算、判断编码方式,并将算出的概率状态和中间变量传送到下级;第三级流水线由上下文更新子模块(45)、编码区间归一化子模块(47)和计算输出位数子模块(46)构成,分别用以完成上下文状态更新、编码区间Range的归一化和选择移位次数并送入下一级;第四级流水线由区间下限归一化子模块(48)和部分码流产生子模块(49)构成,分别完成对区间下限Low进行归一化重整计算得到新的区间下限Low值和产生部分码流并写入码流FIFO(6)的操作;所述码流打包字节模块(7),由桶形移位器(71)、状态机控制器(72)、等待字符寄存器(73)、编码缓冲寄存器(74)和码流输出子模块(75)构成;该状态机控制器(72)分别与桶形移位器(71)、等待字符寄存器(73)、编码缓冲寄存器(74)和码流输出子模块(75)相连,通过控制状态的跳转控制码流正确打包输出;该编码缓冲寄存器(74)与码流FIFO(6)相连,读取码流FIFO(6)中的中间码流数据;该等待字符寄存器(73)的输出端与桶形移位器(71)相连,用于存储桶形移位器(71)的移位次数;该桶形移位器(71)的数据输入端与编码缓冲寄存器(74)的输出端相连,输出端与码流输出子模块(75)的输入端相连,对编码缓冲寄存器(74)的数据进行移位输出至码流输出子模块(75),并使用码流输出子模块(75)对桶形移位器(71)输出的数据进行处理,得到最终码流。
地址 710071 陕西省西安市太白南路2号