CN104581154B - 一种熵编码方法和熵编码器电路 - Google Patents

一种熵编码方法和熵编码器电路 Download PDF

Info

Publication number
CN104581154B
CN104581154B CN201410852466.4A CN201410852466A CN104581154B CN 104581154 B CN104581154 B CN 104581154B CN 201410852466 A CN201410852466 A CN 201410852466A CN 104581154 B CN104581154 B CN 104581154B
Authority
CN
China
Prior art keywords
signal
huffman
data
encoded
coefficient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410852466.4A
Other languages
English (en)
Other versions
CN104581154A (zh
Inventor
江桥
姜黎
李淼
秦刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Dai Microelectronics Co.,Ltd.
Original Assignee
Hunan Goke Microelectronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hunan Goke Microelectronics Co Ltd filed Critical Hunan Goke Microelectronics Co Ltd
Priority to CN201410852466.4A priority Critical patent/CN104581154B/zh
Publication of CN104581154A publication Critical patent/CN104581154A/zh
Application granted granted Critical
Publication of CN104581154B publication Critical patent/CN104581154B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种熵编码方法和熵编码器电路,熵编码方法包括以下步骤:将待编码数据进行基于JPEG的哈夫曼编码,得到哈夫曼码流;解码哈夫曼码流,将解码后的哈夫曼码流进行CABAC编码,输出CABAC码流。熵编码器电路包括哈夫曼熵编码数据通路和CABAC编码数据通路。本发明两条数据通路之间进行条带级的流水运算,可有效的避免吞吐率不匹配造成的流水线停滞问题。本发明的方法有效地提高了编码器的吞吐率,使编码器能完成更大分辨率、帧率的实时编码,提高了编码器的利用率,节省了面积成本。

Description

一种熵编码方法和熵编码器电路
技术领域
本发明涉及视频熵编码领域,特别是一种熵编码方法和熵编码器电路。
背景技术
H.264是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频工作组(JVT)所制定的一套视频编码标准。由于其码率低、图像质量好、容错性好、网络适应性好等特点,使得H.264视频压缩编码技术在视频监控、高清电视、网络点播等领域得到了广泛的应用。
相比于之前的视频标准,H.264采用帧内预测、帧间预测、整数DCT变换、熵编码等更先进的关键技术,保证了较高的视频编码效率,但是其计算复杂度也相对较高。其中的熵编码又包括基于上下文的自适应变长编码(CAVLC)和基于上下文的自适应二进制算术编码(CABAC)两种。通常情况下,在接近的视频图像质量上,CABAC的编码码率比CAVLC低5%~10%,但是其计算复杂度也更高。而且H.264编码的计算复杂度随着被编码视频的分辨率和帧率的增大而增大。
特别是在视频监控领域中,随着监控画面的分辨率从标清发展到高清、甚至超清,基于H.264标准的视频编码的计算复杂度剧增,传统的基于CPU/GPU的软件编码方式难以为继;因此业界普遍采用基于VLSI技术实现的硬件编码器。使用硬件编码电路可以实现H.264编码的并行计算,满足高分辨率视频编码的计算量要求。在实现实时编码的同时,在视频监控领域还存在一种应用需求,就是需要在指定的或周期的时刻采集视频中的单帧原始图像,并进行压缩存储。为了满足该需求,用于该领域的集成有H.264视频编码器的芯片中会集成一个JPEG编码器,但是由于图像采集的需求相对较少,导致编码器中的JPEG编码部分利用率较低。
H.264编码流程主要包括6个部分:运动估计和补偿(Estimation)、帧间和帧内预测(Prediction)、变换(Transform)和反变换、量化(Quantization)和反量化、环路滤波(LoopFilter)、熵编码(EntropyCoding)。各个部分之间可进行宏块(MB)级的流水线运算,提高编码效率。但是由于H.264编码过程是一个高度耦合的过程,每一个宏块的编码都依赖于其相关宏块数据作为支撑,因此对编码器的流水线设计要求较高。然而在编码器并行运算流水线的设计时,由于编码器各个部分的计算复杂度不相同,容易造成各部分的数据吞吐率不匹配,造成流水线的空闲或阻塞,影响整体编码的数据吞吐率。通常这种吞吐率不匹配的状况出现在CABAC熵编码模块与前端量化系数(QuantizationCoefficient)产生模块之间,熵编码模块具有相对稳定的数据处理能力,而熵编码前端的输出数据量则与MB类型、QP等有关,具有很大的波动,当前端输出的数据量太大或太小时就会使流水线阻塞或空闲。如果在熵编码模块之前插入一个缓冲器(FIFO),可降低流水线阻塞的负面影响,但是所需FIFO深度较大,会占用芯片较大面积,增加总体成本。
通常在一个同时集成有H.264和JPEG编码器的视频监控芯片中,CABAC和JPEG的熵编码流程有相似之处,部分模块有复用的可能,如图1所示。其中基于CABAC的H.264熵编码流程包含以下部分:锯齿形扫描(Zig-Zag)、二值化(Binarization)、上下文模型查找(Model)、算术编码及模型更新(Coding)、RBSP码流生成。其中JPEG的熵编码流程如下:锯齿形扫描、游程编码(Zero-run)、哈夫曼编码(Huffman)。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种熵编码方法和熵编码器电路,有效地解决H.264编码器流水线间的数据吞吐率不匹配的问题,避免流水线的停滞,使编码器能完成更大分辨率、帧率的实时编码,提高编码器利用率,节省面积成本。
为解决上述技术问题,本发明所采用的技术方案是:一种熵编码方法,包括以下步骤:
1)将每一帧待编码视频图像划分为多个按照编码顺序排列的待编码条带;
2)将待编码条带中的数据分为残差系数和非残差系数语法元素,将残差系数按照锯齿形扫描顺序进行重排序,并进行游程编码;
3)将步骤2)中的游程编码后的数据进行基于JPEG的哈夫曼编码,与非残差系数语法元素组合得到待编码条带的哈夫曼码流;
4)解码所述待编码条带的哈夫曼码流,得到所述待编码条带的所有待编码数据;
5)将步骤4)得到的待编码数据进行基于H264的熵编码,输出CABAC码流。
在利用所述步骤2)~步骤3)得到当前待编码条带的哈夫曼码流的同时,利用所述步骤4)的方法得到所述当前待编码条带在编码顺序上的前一待编码条带的所有待编码数据。进行条带级的流水运算,有效的避免吞吐率不匹配造成的流水线停滞问题。
本发明还提供了一种熵编码器电路,包括哈夫曼熵编码数据通路和CABAC编码数据通路:
所述哈夫曼熵编码数据通路包括:
系数重排序模块:用于对编码器前端DCT/量化部分输出的量化系数信号、编码模式信号、与当前宏块相关的状态信号进行并行系数扫描、游程编码,以及非残差系数语法元素的打包,并输出经过重排序的非零系数信号、非零系数游程长度信号、非零系数标志信号和打包之后的语法元素字信号;
哈夫曼编码模块:用于对所述经过重排序的非零系数信号、非零系数游程长度信号、非零系数标志信号进行基于JPEG的哈夫曼编码,并输出哈夫曼码流;
第一数据多路选择器:用于控制上述打包之后的语法元素字信号和哈夫曼码流在不同的时刻进入DMA模块;
DMA模块:用于将所述语法元素字信号和哈夫曼码流存储到外部存储器中;
所述CABAC编码数据通路包括:
第二数据多路选择器:用于将DMA模块输出的数据中的哈夫曼码流送入哈夫曼解码模块,将语法元素字信号送入二值化模块;
哈夫曼解码模块:从接收到的哈夫曼码流中截取出VLC比特,并通过哈夫曼表的反向查找,得出相应的残差系数和游程长度,并将该残差系数存入后入先出缓存中,同时根据解码得到的游程长度,计算出每个系数矩阵中,按锯齿扫描顺序排列的非零系数标志位,并将所述标志位写入先入先出缓存;
二值化模块:从上述的语法元素字信号、相邻块信息信号、残差系数和非零系数标志位中选取当前所需语法元素信号,将所述所需语法元素信号送入多个二值化引擎,实现H.264标准规定的不同二值化过程,并输出语法元素信号二值化后的bin值以及上下文模型的索引值CtxIdx;
CABAC编码模块:用于使用RAM根据上下文模型的索引值CtxIdx构建上下文模型查找表,并利用bin值和上下文模型查找表完成上下文模型的更新以及寄存器的重整移位,该模块包按照ITU-TH.264建议书的9.3.1节所述过程完成初始化的含存储上下文模型查找表的RAM,根据上述的CtxIdx值从RAM中读出上述bin值所对应的大概率符号和概率状态,并按照ITU-TH.264建议书的9.3.3.2.1.1节所述过程完成大概率符号和概率状态的更新并写回RAM,同时按照ITU-TH.264建议书的9.3.4.2节所述方法完成范围寄存器和下限寄存器值的计算,然后按照9.3.4.3节所述过程完成范围寄存器和下限寄存器值的重整移位,重整移位输出比特与outstanding比特的字节打包,输出CABAC码流。
与现有技术相比,本发明所具有的有益效果为:本发明的方法有效地提高了编码器的吞吐率,使编码器能完成更大分辨率、帧率的实时编码,提高了编码器的利用率,节省了面积成本;本发明两条数据通路之间进行条带级的流水运算,可有效的避免吞吐率不匹配造成的流水线停滞问题。
附图说明
图1为基于H.264的CABAC熵编码和基于JPEG的哈夫曼熵编码的流程对比;
图2为本发明实施例的电路整体框架图;
图3为本发明中数据通路的数据同步关系图;
图4为本发明实施例的锯齿形扫描以及游程编码模块电路结构图;
图5为本发明实施例的哈夫曼编码模块的电路结构图;
图6为本发明实施例的CABAC编码模块电路结构图。
具体实施方式
本发明的设计思路有两条:为了解决前文中提到的吞吐率不匹配问题,在CABAC编码模块与前端量化模块之间进行系数的条带级(SliceLevel)缓存,但是该缓存使用片外的存储空间,节约片内面积;复用基于JPEG的熵编码器,将存储到片外的系数数据进行哈夫曼编码和解码,节约外部存储器带宽和资源。
根据以上设计思路,本发明提出一种新的熵编码方法,将传统CABAC编码流程分两步实现:
第一步,将待编码数据进行基于JPEG的哈夫曼编码。输入是残差系数、宏块类型等语法元素,输出是哈夫曼码流。
第二步,将第一步输出的哈夫曼码流进行解码,得到待编码数据,再将数据进行CABAC编码。输入是哈夫曼码流,输出是CABAC码流。
在采用以上熵编码方法后,本发明提出一种高吞吐率的编码电路设计,可实现对量化系数的基于H.264的高速CABAC熵编码。本电路设计,包含两条数据通路,如图2所示,分别是:哈夫曼熵编码数据通路,CABAC编码数据通路。两条数据通路均实现宏块级的并行运算,通路之间实现条带级并行运算。
其中,哈夫曼熵编码数据通路,以下简称第一数据通路,包含锯齿形扫描和游程编码模块,哈夫曼编码模块,第一数据多路选择器、DMA模块。
第一数据通路中,所述锯齿形扫描和游程编码模块是基于乒乓存储结构的系数重排序模块,用于并行执行系数扫描和游程编码,以及非残差系数语法元素的打包。其输入为编码器前端DCT/量化部分输出的量化系数信号,编码模式信号,与当前宏块相关的状态信号(如CBP、QP_delta、MV、MB_TYPE等)。模块内部包含两个乒乓存储结构、扫描地址产生电路、语法元素打包电路等。输出为经过重排序的非零系数信号,非零系数游程长度信号,非零系数标志信号(色度/亮度标志、AC/DC标志、初始标志)和打包之后的语法元素字(SEwords)信号。
第一数据通路中,所述哈夫曼编码模块是基于JPEG典型哈夫曼表的可变长编码模块,对用于CABAC编码或JPEG编码的残差(Residual)系数进行可变长编码。模块的输入是锯齿形扫描和游程编码模块除语法元素字之外的输出信号。该模块内部预置有固定的多个查找表,通过对不同表项的查找,得到不同系数的可变长编码(VLC)比特,所有VLC比特经过字节打包操作后输出。模块中所用的哈夫曼表遵从ITUT.81标准所提供的典型哈夫曼表。输出为哈夫曼编码字节信号。
第一数据通路中,所述第一数据多路选择器是用于控制数据的流向。在本发明中,用于CABAC编码的语法元素中,只需将残差(Residual)数据进行哈夫曼编码,而非残差语法元素无需哈夫曼编码。因此该模块的作用是,控制语法元素字信号和哈夫曼编码字节信号在不同的时刻进入DMA模块。
第一数据通路中,所述的DMA模块用于将语法元素字信号和哈夫曼编码字节信号存储到外部Memory中,数据的存储空间按照Slice进行划分,同一Slice的数据不会同时被读写。在存储第一数据通路的数据时,从外部存储器中读出不同于当前写入数据所在Slice的数据,并送入第二数据通路。
其中,CABAC编码数据通路,以下简称第二数据通路,包含第二数据多路选择器、哈夫曼解码模块,二值化模块,CABAC编码模块。
第二数据通路中,所述第二数据多路选择器是用于控制数据的流向,将DMA模块输出的数据中的哈夫曼字节信号送入后级哈夫曼解码模块,将语法元素字信号送入后级的二值化模块。
第二数据通路中,所述哈夫曼解码模块的功能与哈夫曼编码模块相反,是从接收到的哈夫曼字节信号中截取出VLC比特,并通过哈夫曼表的反向查找,得出相应的残差系数和游程长度。得到的残差系数被存入一个后入先出缓存(LIFO)中。同时,根据解码得到的游程长度,可计算出每个4x4系数矩阵中,按锯齿扫描顺序排列的非零系数标志位,并将标志位写入先入先出缓存(FIFO)中。等待后级二值化模块从LIFO或者FIFO中读取相应数据。
第二数据通路中,所述二值化模块完成H.264中的slice_data语法元素的二值化过程。模块的输入是语法元素字信号、相邻块信息信号、残差系数信号和非零系数标志信号。模块内部按照H.264标准所规定的语法元素编码顺序,从输入信号中选取当前所需语法元素信号,并送入内部的多个二值化引擎,不同的二值化引擎实现H.264标准所规定的不同二值化过程。二值化引擎输出语法元素二值化后的bin值以及上下文模型的索引值CtxIdx。Bin值和CtxIdx值会输出到下一级做进一步的CABAC编码。
第二数据通路中,所述CABAC编码模块完成H.264标准所规定算术编码过程。该模块内部包含以下特征:使用RAM构建上下文模型查找表;三级编码流水线;用于CABAC编码的范围寄存器和下限寄存器;用于保存重整输出的outstanding比特的移位寄存器。其中,第一级流水线完成上下文模型RAM的查找;第二级完成上下文模型的更新以及寄存器的重整移位;第三级完成重整移位输出比特与outstanding比特的字节打包。该流水线以恒定的1bin每周期速度进行编码。流水线的输出即为CABAC熵编码输出字节流信号。
如图2所示,本发明的一个具体实施实例中,包含以下功能模块:锯齿形扫描和游程编码模块、哈夫曼编码模块、DMA模块、哈夫曼解码模块、二值化模块、CABAC编码模块以及若干多路选择器。根据这些模块之间的数据流动关系,可将这些模块划分成两条数据通路。第一条数据通路的输入为H.264编码器中DCT变换和量化模块的输出,包括视频残差的量化系数、以及得到该残差所使用的参数信息;输出为经过哈夫曼编码的输入信息,被存储到外部的SDRAM类存储器当中。第二条数据通路的输入为第一数据通路存储在外部memory中的哈夫曼编码数据,输出为经过CABAC编码的符合H.264标准的字节流信息,该信息被缓存在内部的小尺寸memory上,以备系统的进一步处理。
如图3所示,第一数据通路进行MB级流水线熵编码,单位slice所需处理时间T1与前端DCT模块单位slice输出时间一致;第二数据通路单位slice处理时间T2则与当前slice的类型有关。那么在采用本熵编码器的产品中,假设编码时每个slice包含固定值N个MB,则其可编码的视频的最大速率为N/TMB每秒,其中T等于T1和T2的最大值。如果在同样的产品中,不采用本设计,而是全部MB级流水并行,其最大速率为N/T’MB每秒。若不进行特殊处理,由于流水线的停滞问题,其中T’必然大于T。因此本发明提高了编码器的吞吐率。
在第一数据通路中,包含一个锯齿形扫描和游程编码模块。图4为本发明实施例的锯齿形扫描和游程编码模块电路结构图。其输入信号包括:
1.coeff_in[13:0]:前端DCT量化模块输出的变换系数,包括DC、AC、亮度、色度系数;
2.cbp[5:0]:已编码块模式信号,表示每个宏块中的8x8块是否包含非零系数;
3.qp_delta[5:0]:当前变换系数的量化参数与预设量化参数的差值;
4.mv[14:0]:当前块的运动矢量或者运动矢量残差;
5.mb_inter,mb_intra等与当前宏块相关的状态信号。
模块内部包含两个用于存储数据的乒乓缓存:变换系数乒乓缓存,非零系数标志乒乓缓存。前者包含408个存储单元,每个单元位宽14,用于存储亮度和色度变换系数;后者包含28个存储单元,每个单元位宽16,用于存储每个4x4系数块的非零标志。输入的同一宏块的系数按照光栅扫描顺序存储在乒乓缓存中的两个bank中的一个,同时另一bank中的非零系数按照锯齿形扫描的顺序被读出缓存。系数的读出地址产生过程如下:
1.4x4块序号block_num[4:0]计算,按照光栅扫描顺序,4x4块被依次读出,block_num从0到26逐渐增大;
2.非零系数游程长度zerorun[5:0]计算,读出每一块的非零系数标志位,并按照锯齿形扫描顺序进行位重排,然后计算每一个非零系数在块内的游程长度;
3.4x4块内系数偏移coeff_num[5:0]计算,根据已重排的非零系数标志位,计算每一个非零系数在块内的按照扫描顺序上的偏移量;
4.根据系数偏移和块序号计算出其在bank中的实际存储地址,并输出系数的标志。
锯齿形扫描和游程编码模块内部还包含语法元素打包模块,将输入的每一宏块的状态信号打包成4个语法元素字se_w0[31:0],se_w1[31:0],se_w2[31:0],se_w3[31:0],并通过一个多路选择器依次输出,表示为se_word[31:0]。
在第一数据通路中,包含一个哈夫曼编码模块,图5为本发明实施例哈夫曼编码模块的电路结构图。模块的输入包含锯齿形扫描和游程编码模块的输出信号,输出包括已编码系数信号huff_word[31:0]。具体实现过程分为3部分:
1.实现输入系数的VLI编码。Vli_code[13:0]表示VLI编码之后的码字,vli_size[3:0]表示码字中的有效比特长度。
2.实现VLC编码。将输入的zero_run[5:0]和VLI编码的输出vli_size[3:0]进行VLC编码。编码采用查找表的方式进行,所用查找表是ITU-T81标准所提供的典型哈夫曼表,DC和AC系数、色度和亮度系数采用不同的查找表。Vlc_code[15:0]表示VLC编码之后的码字,vlc_size[3:0]表示码字中的有效比特长度。
3.码字的打包。将VLI和VLC编码的输出码字中的有效比特进行拼接,每当比特数达到32比特则输出huff_word[31:0]。
在本发明实施例中,所述DMA模块包括至少一个写端口和至少一个读端口。第一数据通路中的哈夫曼编码数据se_word[31:0]和huff_word[31:0]在一个多路选择器的控制下,被分时送入DMA模块的写端口,DMA模块再将数据写入外部的存储器中。同时,DMA模块从外部存储器中读入之前被写入的哈夫曼编码数据,并送入第二数据通路。数据的存储空间按照Slice进行划分,DMA读入的数据与同一时刻写入的数据分别属于不同的slice。
在本发明实施例中,从DMA模块读出的哈夫曼编码数据被送入到哈夫曼解码模块。该模块的功能与哈夫曼编码模块相反,是从接收到的哈夫曼字节数据中截取出vlc_code和vli_code,并通过使用与哈夫曼编码模块同样的查找表进行反向查找,得出相应的残差系数和游程长度。由于后级模块在进行CABAC编码时,对残差系数的编码顺序与锯齿形扫描顺序相反,因此将残差系数存入一个后入先出缓存LIFO(中)。同时,根据解码得到的游程长度,可计算出每一个4x4系数矩阵中按锯齿扫描顺序排列的非零系数标志位,将标志位写入先入先出(FIFO)中。
在本发明实施例中,所述二值化模块完成CABAC编码流程中的二值化过程。模块的输入包括语法元素字信号se_word[31:0]、残差系数信号coeff[13:0]和系数非零标志信号significant_coeff_flag,相邻宏块信息信号neighbor_in_data[31:0]。模块内部按照H.264标准所规定的语法元素编码顺序,从输入信号中选取当前所需语法元素信号,并送入内部的多个二值化引擎,不同的二值化引擎实现H.264标准所规定的不同二值化过程。二值化引擎输出语法元素二值化后的bin_val、上下文模型的索引值context_index[8:0]、该语法元素的CABAC编码模式encode_mode[1:0]。其中的编码模式包括3种取值:正常模式,旁路模式,终结模式。
在本发明实施例中,所述CABAC编码模块完成对二值化后的语法元素进行CABAC编码。图6为依据本发明实施例CABAC编码模块的电路结构图。该图表示出了二进制值在进行正常模式的CABAC编码时的实现过程,其它模式的编码可通过复用或旁路其中部分电路加以实现。模块中部分信号以及电路的作用如下:
1.上下文模型RAM:用于保存编码过程中的上下文模型(概率状态和大概率符号),包含277个单元,可实现H.264标准主要简表帧模式下的编码。
2.pState[5:0]:概率状态寄存器。表示当前被编码二进制值的概率状态。
3.mps:大概率符号寄存器。表示当前当前上下文模型的大概率符号。
4.range[8:0]:范围寄存器。表示当前算术编码的区间大小。
5.low[9:0]:下限寄存器。表示当前算术编码的区间下限值。
6.cabac_byte[7:0]:CABAC字节寄存器。
该模块通过三级流水线运算实现CABAC编码,每周期编码1个二进制值。三级流水线的工作流程如下:
第一级流水线完成上下文模型RAM的查找。根据输入二进制值的上下文模型索引值context_index[8:0],从上下文模型RAM中读出其概率状态和大概率符号,并写入寄存器。当前后两个输入二进制的上下文模型索引值相等时,写入寄存器的值为上一个二进制值编码时,更新之后的上下文模型。
第二级完成上下文模型的更新以及区间寄存器的重整移位;根据当前算术编码的区间范围和下限、二进制值以及上下文模型,进行上下文模型和区间寄存器的更新;如果更新后的区间寄存器的值满足重整条件,则重整当前区间寄存器的值,并移位输出重整比特。
第三级完成重整移位输出比特与outstanding比特的字节打包。判断当前输出的重整比特是否是outstanding比特;若是,则将其移入outstanding比特寄存器;如不是,则读出移位寄存器中的outstanding比特,并和当前比特进行字节打包操作,结果被存入CABAC字节寄存器。
模块将CABAC字节寄存器的值输出到片内的存储器中,形成符合H.264标准的字节流数据,被片内其它模块做进一步的处理。
本实施实例中所述的两条数据通路实现条带级的并行运算,解决了H.264编码器中各模块数据吞吐率不匹配的问题,有效的提高了H.264编码器的实时编码能力。

Claims (2)

1.一种熵编码方法,其特征在于,包括以下步骤:
1)将每一帧待编码视频图像划分为多个按照编码顺序排列的待编码条带;
2)将待编码条带中的数据分为残差系数和非残差系数语法元素,将残差系数按照锯齿形扫描顺序进行重排序,并进行游程编码;
3)将步骤2)中的游程编码后的数据进行基于JPEG的哈夫曼编码,与非残差系数语法元素组合得到待编码条带的哈夫曼码流;
4)解码所述待编码条带的哈夫曼码流,得到所述待编码条带的所有待编码数据;
5)将步骤4)得到的待编码数据进行基于H264的熵编码,输出CABAC码流;
6)在利用所述步骤2)~步骤3)得到当前待编码条带的哈夫曼码流的同时,利用所述步骤5)的方法得到所述当前待编码条带在编码顺序上的前一待编码条带的所有待编码数据。
2.一种熵编码器电路,其特征在于,包括哈夫曼熵编码数据通路和CABAC编码数据通路:
所述哈夫曼熵编码数据通路包括:
系数重排序模块:用于对编码器前端DCT/量化部分输出的量化系数信号、编码模式信号、与当前宏块相关的状态信号进行并行系数扫描、游程编码,以及非残差系数语法元素的打包,并输出经过重排序的非零系数信号、非零系数游程长度信号、非零系数标志信号和打包之后的语法元素字信号;
哈夫曼编码模块:用于对所述经过重排序的非零系数信号、非零系数游程长度信号、非零系数标志信号进行基于JPEG的哈夫曼编码,并输出哈夫曼码流;
第一数据多路选择器:用于控制上述打包之后的语法元素字信号和哈夫曼码流在不同的时刻进入DMA模块;
DMA模块:用于将所述语法元素字信号和哈夫曼码流存储到外部存储器中;
所述CABAC编码数据通路包括:
第二数据多路选择器:用于将DMA模块输出的数据中的哈夫曼码流送入哈夫曼解码模块,将语法元素字信号送入二值化模块;
哈夫曼解码模块:从接收到的哈夫曼码流中截取出VLC比特,并通过哈夫曼表的反向查找,得出相应的残差系数和游程长度,并将该残差系数存入后入先出缓存中,同时根据解码得到的游程长度,计算出每个系数矩阵中按锯齿扫描顺序排列的非零系数标志位;
二值化模块:从上述的语法元素字信号、相邻块信息信号、残差系数和非零系数标志位中选取当前所需语法元素信号,将所述所需语法元素信号送入多个二值化引擎,实现H.264标准规定的不同二值化过程,并输出语法元素信号二值化后的bin值以及上下文模型的索引值CtxIdx;
CABAC编码模块:用于使用RAM根据上下文模型的索引值CtxIdx构建上下文模型查找表,并利用bin值和上下文模型查找表完成上下文模型的更新以及寄存器的重整移位,将输出比特与outstanding比特的字节打包,输出CABAC码流。
CN201410852466.4A 2014-12-31 2014-12-31 一种熵编码方法和熵编码器电路 Active CN104581154B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410852466.4A CN104581154B (zh) 2014-12-31 2014-12-31 一种熵编码方法和熵编码器电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410852466.4A CN104581154B (zh) 2014-12-31 2014-12-31 一种熵编码方法和熵编码器电路

Publications (2)

Publication Number Publication Date
CN104581154A CN104581154A (zh) 2015-04-29
CN104581154B true CN104581154B (zh) 2016-03-02

Family

ID=53096222

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410852466.4A Active CN104581154B (zh) 2014-12-31 2014-12-31 一种熵编码方法和熵编码器电路

Country Status (1)

Country Link
CN (1) CN104581154B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104869398B (zh) * 2015-05-21 2017-08-22 大连理工大学 一种基于cpu+gpu异构平台实现hevc中的cabac的并行方法
CN106341692B (zh) * 2015-07-07 2019-06-21 杭州海康威视数字技术股份有限公司 图像数据的霍夫曼解码装置和方法
US10244248B2 (en) * 2016-02-25 2019-03-26 Mediatek Inc. Residual processing circuit using single-path pipeline or multi-path pipeline and associated residual processing method
CN112911314B (zh) * 2021-01-14 2023-08-18 北京博雅慧视智能技术研究院有限公司 一种熵编码器的编码方法及熵编码器
CN116998149A (zh) * 2021-03-12 2023-11-03 Oppo广东移动通信有限公司 系数的编解码方法、编码器、解码器及计算机存储介质
CN114531595B (zh) * 2022-04-24 2022-08-09 浙江芯昇电子技术有限公司 cabac二进制化和上下文模型产生的编码方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7199735B1 (en) * 2005-08-25 2007-04-03 Mobilygen Corporation Method and apparatus for entropy coding
CN101099391A (zh) * 2005-01-14 2008-01-02 成均馆大学教 用于可缩放视频编码的自适应熵编码和自适应熵解码的方法和设备
CN102625096A (zh) * 2011-01-28 2012-08-01 联合信源数字音视频技术(北京)有限公司 基于avs的并行预编码设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6927710B2 (en) * 2002-10-30 2005-08-09 Lsi Logic Corporation Context based adaptive binary arithmetic CODEC architecture for high quality video compression and decompression

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101099391A (zh) * 2005-01-14 2008-01-02 成均馆大学教 用于可缩放视频编码的自适应熵编码和自适应熵解码的方法和设备
US7199735B1 (en) * 2005-08-25 2007-04-03 Mobilygen Corporation Method and apparatus for entropy coding
CN102625096A (zh) * 2011-01-28 2012-08-01 联合信源数字音视频技术(北京)有限公司 基于avs的并行预编码设备

Also Published As

Publication number Publication date
CN104581154A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN104581154B (zh) 一种熵编码方法和熵编码器电路
US20230421808A1 (en) Line-based compression for digital image data
CN1316433C (zh) 视频信息编码方法和视频信息解码方法
US7932843B2 (en) Parallel CABAC decoding for video decompression
KR102683408B1 (ko) 적응적 트리 선택을 사용한 이진 집합의 비디오 인코딩 및 디코딩을 위한 방법 및 장치
EP3386199B1 (en) Lossless compression method and system appled to video hard decoding
CN108419084B (zh) 改进熵编码和解码的方法、装置及存储介质
CN101573979B (zh) 二进制算术视频编码的高性能再归一化
US9001882B2 (en) System for entropy decoding of H.264 video for real time HDTV applications
CN104519354A (zh) 视频编码器及其操作方法
CN104185989A (zh) 用于帧内预测残差的二值化方案和hevc中无损编码中的改进帧内预测
WO2012159301A1 (zh) 一种视频熵编码、熵解码方法、装置及介质
US20160301945A1 (en) Image compression/decompression device
CN103167289A (zh) 图像的编码、解码方法及编码、解码装置
CN101014129A (zh) 一种视频数据压缩方法
CN113613004A (zh) 图像编码方法、装置、电子设备及存储介质
WO2024061055A1 (zh) 图像编码方法和图像解码方法、装置及存储介质
Chen et al. Dual-block-pipelined VLSI architecture of entropy coding for H. 264/AVC baseline profile
TW202349948A (zh) 視頻解碼方法、視頻編碼方法、視頻解碼裝置、視頻編碼裝置、視頻解碼器、視頻編碼器、視頻編解碼系統、電腦可讀儲存媒體及電腦程式產品
CN114339263A (zh) 一种针对视频数据的无损处理方法
US10382750B2 (en) Region-based processing of predicted pixels
Chen et al. Architecture design of high performance embedded compression for high definition video coding
JPWO2011148887A1 (ja) 動画像配信システム、動画像送信装置、動画像配信方法および動画像配信プログラム
CN113115041B (zh) 支持alpha通道的无损图片压缩方法、装置及介质
TWI514851B (zh) 影像編碼/解碼系統與其方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 410125 Hunan, Changsha economic and Technological Development Zone, the east side of the south section of the No. ten road, Tong Tong Street, No.

Applicant after: GOKE MICROELECTRONICS CO., LTD.

Address before: 410125 No. 9, East ten, South Road, Changsha economic and Technological Development Zone, Hunan

Applicant before: Hunan Guoke Microelectronics Co., Ltd.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20150429

Assignee: Shandong industry research information and Artificial Intelligence Integration Research Institute Co.,Ltd.

Assignor: HUNAN GOKE MICROELECTRONICS Co.,Ltd.

Contract record no.: X2021430000001

Denomination of invention: An entropy coding method and an entropy encoder circuit

Granted publication date: 20160302

License type: Common License

Record date: 20210115

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211122

Address after: 250103 No. 23, Zone D, commercial street, Caishi street, Licheng District, Jinan City, Shandong Province

Patentee after: Shandong Dai Microelectronics Co.,Ltd.

Address before: 410125 No.9, south section of Dongshi Road, quantang street, Changsha Economic and Technological Development Zone, Changsha City, Hunan Province

Patentee before: HUNAN GOKE MICROELECTRONICS Co.,Ltd.