CN104918048A - 适用于hevc标准的熵编码上下文概率模型建模模块设计方法 - Google Patents

适用于hevc标准的熵编码上下文概率模型建模模块设计方法 Download PDF

Info

Publication number
CN104918048A
CN104918048A CN201510298837.3A CN201510298837A CN104918048A CN 104918048 A CN104918048 A CN 104918048A CN 201510298837 A CN201510298837 A CN 201510298837A CN 104918048 A CN104918048 A CN 104918048A
Authority
CN
China
Prior art keywords
context probability
data
sram
read
input
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.)
Granted
Application number
CN201510298837.3A
Other languages
English (en)
Other versions
CN104918048B (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.)
Fudan University
Original Assignee
Fudan University
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 Fudan University filed Critical Fudan University
Priority to CN201510298837.3A priority Critical patent/CN104918048B/zh
Publication of CN104918048A publication Critical patent/CN104918048A/zh
Application granted granted Critical
Publication of CN104918048B publication Critical patent/CN104918048B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明属于数字高清视频压缩编解码技术领域,具体为一种适用于HEVC标准的熵编码上下文概率模型建模模块的设计方法。HEVC使用的基于上下文的二进制算术编码,并独特的设计了399个上下文概率模型。在实际编码中,不同的语法元素,相同的语法元素的二进制序列的不同位都可能使用不同的上下文概率模型。本发明使用HEVC标准的熵编码建立的399个上下文概率模型中的280个上下文概率模型,能够正确解码;这些上下文概率模型支持I帧与P帧;采用5块SRAM和2个寄存器存储相关上下文概率模型,并为SRAM设计仲裁结构,能够准确判断概率模型的地址和待写入的数据,并顺利读取数据。

Description

适用于HEVC标准的熵编码上下文概率模型建模模块设计方法
技术领域
本发明属于数字高清视频压缩编解码技术领域,针对HEVC视频编解码标准,具体涉及一种适用于HEVC标准的熵编码上下文概率模型建模模块的设计方法。
背景技术
作为下一代视频编解码标准,HEVC(High Efficiency Video Coding)是于2013年由国际电信组织(ITU)和运动图像专家组(MPEG)联合成立的组织JCTVC所提出。其目标是,与上一代标准H.264/AVC相比,在相同的视觉效果的前提下,比特率减少50%。
上一代视频编解码标准H.264/AVC采用了两种编码方式:基于上下文的可变长编码CAVLC和基于上下文的二进制算术编码CABAC。而在HEVC标准的软件模型HM前期版本中也是采用了这两种编码方式,只是在编码过程,编码语法元素上做了修改。但是大量测试发现,在相同的编码内容上,CABAC比CAVLC节省了8%~14%码流,因此在HM6.0以后HEVC只保留了CABAC一种编码方式而不再支持CAVLC编码。
在HEVC中采用的二进制算术编码模块是基于传统的算术编码改进而来。该编码方式有以下特点:
(1)无损编码方式,适用于图像压缩处理;
(2)被编码信息数据的符号序列表示成实数0和1之间的一个小数,无论信息有多长,其输出仅仅是一个数,而且是一个介于0和1之间的二进制小数;
(3)在编码过程中需要不断计算被编码字符的概率。
算术编码过程可总结如下:
(1)编码器在开始时将“当前间隔”[L,H]设置为[0,1];
(2)对每一个编码字符,编码器在当前间隔进行如下递归处理:
(a)将“当前间隔”按照各个编码字符的概率进行分割;
(b)选中当前待编码字符编码器的分割区间为“当前间隔”,并回到(a)继续编码;
(3)最后输出的“当前间隔”的下边界就是给定编码序列的算术编码。
 在硬件当中,整数计算比浮点数计算简单方便,而且在计算编码字符的概率时,除法也需要消耗较大的资源,因此HEVC中采用的二进制算术编码对传统的算术编码进行了以下改进:
(1)编码器在开始时将“当前间隔”[0,1]改为[0,510];
(2)对当前的待编码字符概率计算由传统的除法运算改为查表计算,并设置了有64个状态的状态表,通过当前待编码字符在状态表中的索引查表计算概率;
(3)HEVC建立399个上下文概率模型,不同的语法元素,同一个语法元素二进制序列的不同位对应不同的上下文概率模型,通过概率模型查表可得到相应的状态表索引。
发明内容
本发明的目的在于提出一种工作频率高、吞吐率高的适用于HEVC标准的熵编码上下文概率模型建模模块的设计方法。
本发明提出熵编码上下文概率模型建模模块的设计方法,具体步骤为:
(1)HEVC标准的熵编码建立了399个上下文概率模型,本发明使用了其中的280个上下文概率模型,使用这些上下文概率模型进行编码能够正确解码。在HEVC中有三种类型帧:I帧,P帧,B帧,这三种帧一共使用399个上下文概率模型,而本发明支持的I帧与P帧,使用了其中的280个上下文概率模型。
(2)使用5块双端口SRAM 以及2个寄存器存储280个上下文概率模型,每块SRAM的深度都为32,宽度为7。280个上下文概率模型在SRAM中的分布见表1所示,其中,横向表头代表5块SRAM,竖向表头代表各SRAM的地址,表中斜杠“/”前面的数字表示I帧中存储的索引,斜杠“/”后面的数字表示P帧中存储的索引。本发明支持的I帧与P帧是独立的,不支持I帧中帧间预测,也不支持P帧中帧内预测,因此对于单独的I帧或P帧160个上下文概率模型已经足够,并不需要建立280个上下文概率模型。另外160个上下文概率模型在SRAM中的存放经过独特的设计以保证每个时钟周期都能对四组输入进行上下文建模。
(3)为避免SRAM读写冲突,为每块SRAM的读写地址设置了仲裁器,仲裁器对每个输入中的地址信息进行仲裁,判断不同的输入之间是否发生地址冲突(同一时钟周期出现一片 SRAM 有两个不同读地址信号)。 如果没有冲突现象,将直接根据当前地址去存储器中读取数据。
(4)以流水线方式连续的从SRAM或者寄存器中读写正确的数据。以流水线进行上下文概率模型建模时有这样一种情况:相邻的两个周期内需要从同一块SRAM的同一个地址读取数据,这样第二个周期从SRAM中读取数据就是错误的,应该读取的是第一个周期读取的数据更新后的值。为避免这种情况发生,本发明对连续两个周期内的输入也进行了仲裁,即从第一个周期中读取的数据更新后的值与第二个周期读取的数据进行选择。
(5)每个时钟周期支持对4组输入进行上下文概率模型建模。这4组输入中可能存在这样一种情况:2或更多的输入需要从同一块SRAM的同一个地址读取数据,这样将导致这些输入读取数据都是相同的而发生错误。实际上第二个输入读取的数据应该是第一个读取的数据更新后的值,第三个输入取的数据应该是第二个读取的数据更新后的值,第四个输入取的数据应该是第三个读取的数据更新后的值。为保证读取数据的正确,本发明对同一周期从同一块SRAM的同一个地址读取数据的多个输入进行仲裁。
附图说明
图1:上下文建模过程仲裁存储结构。
具体实施方式
下面结合附图和附表,对本发明做进一步的描述。
附表1中横向表头代表5块SRAM,竖向表头代表各SRAM的地址,表中斜杠“/”前面的数字表示I帧中存储的索引,斜杠“/”后面的数字表示P帧中存储的索引。SRAM0~SRAM4中分别存储了32个上下文模型。对于语法元素sig_coff_flag的第33位和第34位存储在两个单独的寄存器中,其上下文模型索引为152/107与136/121,斜杠“/”前后数字分别表示I帧与P帧中存储的索引。
附图1是上下文建模过程仲裁存储结构。每个时钟有四组输入,其地址分别为Add0,Add1,Add2和Add3。首先是一个多路选择器,对地址进行仲裁,将从同一块SRAM读取数据的输入分到同一组。然后每组输入从相应的SRAM中读取数据,然后此数据与前一个周期从此SRAM中读取到的数据更新后的值进行仲裁,避免相邻的两个周期内从同一块SRAM的同一个地址读取数据情况下读取到错误的数据的现象发生。之后根据第一个输入读取到数据进行查表,对第一个读取到数据进行更新。然后对第二个输入进行仲裁,如果第一个输入和第二个输入从同一块SRAM的同一个地址读取数据,那么第二个输入则选择第一个输入读取到的数据更新后的值进行查表对数据进行更新,否则则选择从SRAM中读取到数据进行查表对数据更新。同理,对第三个输入进行仲裁,如果第三个输入和第二个输入从同一块SRAM的同一个地址读取数据,那么第三个输入则选择第二个输入读取到的数据更新后的值进行查表对数据进行更新,如果第三个输入和第一个输入从同一块SRAM的同一个地址读取数据,那么第三个输入则选择第一个输入读取到的数据更新后的值进行查表对数据进行更新,否则则选择从SRAM中读取到数据进行查表对数据更新。最后对第四个输入进行仲裁,如果第四个输入和第三个输入从同一块SRAM的同一个地址读取数据,那么第四个输入则选择第三个输入读取到的数据更新后的值进行查表对数据进行更新,如果第四个输入和第二个输入从同一块SRAM的同一个地址读取数据,那么第四个输入则选择第二个输入读取到的数据更新后的值进行查表对数据进行更新,如果第四个输入和第一个输入从同一块SRAM的同一个地址读取数据,那么第四个输入则选择第一个输入读取到的数据更新后的值进行查表对数据进行更新,否则则选择从SRAM中读取到数据进行查表对数据更新。
表1:280个上下文概率模型在SRAM中的分布

Claims (1)

1.一种适用于HEVC标准的熵编码上下文概率模型建模模块的设计方法,其特征在于具体步骤为:
(1)使用HEVC标准的熵编码建立的399个上下文概率模型中的280个上下文概率模型,能够正确解码;这些上下文概率模型支持I帧与P帧;
(2)使用5块双端口SRAM 以及2个寄存器存储280个上下文概率模型,每块SRAM的深度都为32,宽度为7;280个上下文概率模型在SRAM中的分布见表1所示,其中,横向表头代表5块SRAM,竖向表头代表各SRAM的地址,表中斜杠“/”前面的数字表示I帧中存储的索引,斜杠“/”后面的数字表示P帧中存储的索引;对于单独的I帧或P帧,160个上下文概率模型已经足够,另外160个上下文概率模型在SRAM中的存放经过独特的设计以保证每个时钟周期都能对四组输入进行上下文建模;
(3)为每块SRAM的读写地址设置仲裁器,以避免SRAM读写冲突,仲裁器对每个输入中的地址信息进行仲裁,判断不同的输入之间是否发生地址冲突,如果没有冲突现象,将直接根据当前地址去存储器中读取数据;
(4)以流水线方式连续的从SRAM或者寄存器中读写正确的数据,其中,对连续两个周期内的输入也设计仲裁器,进行仲裁,即从第一个周期中读取的数据更新后的值与第二个周期读取的数据进行选择;
(5)每个时钟周期支持对4组输入进行上下文概率模型建模;这4组输入中可能存在如下情况:2或更多的输入需要从同一块SRAM的同一个地址读取数据,这样将导致这些输入读取数据都是相同的而发生错误;实际上第二个输入读取的数据是第一个读取的数据更新后的值,第三个输入取的数据是第二个读取的数据更新后的值,第四个输入取的数据是第三个读取的数据更新后的值;因此,对同一周期从同一块SRAM的同一个地址读取数据的多个输入进行仲裁,以保证读取数据的正确;
表1:280个上下文概率模型在SRAM中的分布
 地址 SRAM0 SRAM1 SRAM2 SRAM3 SRAM4 0 111 / 153 138 / 138 138 / 94 79 / 79 136 / 121 1 110 / 125 141 / 111 94 / 149 153 / 124 125 / 183 2 125 / 110 154 / 154 139 / 139 138 / 107 153 / 153 3 125 / 125 110 / 110 140 / 140 154 / 154 125 / 183 4 111 / 110 140 / 195 63 / 108 139 / 139 153 / 153 5 111 / 95 127 / 111 140 / 140 124 / 194 125 / 183 6 108 / 108 143 / 111 63 / 108 153 / 79 153 / 153 7 110 / 125 79 / 94 134 / 61 109 / 78 111 / 154 8 125 / 110 123 / 123 139 / 153 127 / 111 110 / 153 9 125 / 125 110 / 110 153 / 167 154 / 154 124 / 123 10 111 / 110 140 / 195 141 / 140 124 / 194 136 / 151 11 111 / 95 127 / 111 125 / 154 153 / 79 136 / 151 12 108 / 108 143 / 111 141 / 140 109 / 78 138 / 107 13 91 / 121 79 / 94 125 / 154 127 / 111 153 / 167 14 182 / 123 123 / 123 141 / 140 154 / 154 136 / 91 15 154 / 154 171 / 140 125 / 154 141 / 154 167 / 22 16 107 / 166 152 / 107 125 / 139 140 / 170 152 / 107 17 179 / 136 110 / 139 94 / 123 138 / 167 152 / 167 18 107 / 166 108 / 63 124 / 153 139 / 182 154 / 154 19 179 / 136 139 / 183 111 / 140 192 / 136 153 / 153 20 107 / 166 139 / 183 111 / 140 152 / 137 200 / 185 21 179 / 136 92 / 296 137 / 196 182 / 167 154 / 154 22 154 / 154 152 / 152 138 / 167 197 / 182 154 / 154 23 140 / 154 74 / 134 149 / 149 154 / 154 154 / 154 24 140 / 154 107 / 121 122 / 136 154 / 154 154 / 154 25 153 / 182 179 / 194 166 / 166 139 / 107 154 / 154 26 139 / 153 227 / 167 122 / 139 184 / 154 154 / 154 27 140 / 169 154 / 154 154 / 154 185 / 185 154 / 154 28 140 / 154 154 / 154 157 / 126 154 / 154 154 / 154 29 154 / 154 149 / 134 139 / 154 141 / 139 154 / 154 30 184 / 197 63 / 154 201 / 201 182 / 123 154 / 198 31 154 / 168 154 / 140 154 / 154 111 / 155 154 / 154
CN201510298837.3A 2015-06-03 2015-06-03 适用于hevc标准的熵编码上下文概率模型建模模块设计方法 Active CN104918048B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510298837.3A CN104918048B (zh) 2015-06-03 2015-06-03 适用于hevc标准的熵编码上下文概率模型建模模块设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510298837.3A CN104918048B (zh) 2015-06-03 2015-06-03 适用于hevc标准的熵编码上下文概率模型建模模块设计方法

Publications (2)

Publication Number Publication Date
CN104918048A true CN104918048A (zh) 2015-09-16
CN104918048B CN104918048B (zh) 2018-04-03

Family

ID=54086697

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510298837.3A Active CN104918048B (zh) 2015-06-03 2015-06-03 适用于hevc标准的熵编码上下文概率模型建模模块设计方法

Country Status (1)

Country Link
CN (1) CN104918048B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096693A (zh) * 2018-01-29 2019-08-06 北京搜狗科技发展有限公司 一种数据处理方法、装置和用于数据处理的装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102231830B (zh) * 2010-11-23 2013-04-17 浙江大学 用于上下文算术编解码的运算单元
CN102447908B (zh) * 2012-01-31 2014-01-08 北京工业大学 一种面向hevc参数编码的上下文简化方法
CN103826120B (zh) * 2014-03-18 2017-04-05 山东大学 一种适用于hevc的码流解析器
CN103929642B (zh) * 2014-04-24 2017-04-12 北京航空航天大学 一种hevc变换系数的熵编码上下文模型偏移值快速计算方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096693A (zh) * 2018-01-29 2019-08-06 北京搜狗科技发展有限公司 一种数据处理方法、装置和用于数据处理的装置
CN110096693B (zh) * 2018-01-29 2024-05-28 北京搜狗科技发展有限公司 一种数据处理方法、装置和用于数据处理的装置

Also Published As

Publication number Publication date
CN104918048B (zh) 2018-04-03

Similar Documents

Publication Publication Date Title
US7443318B2 (en) High speed context memory implementation for H.264
CN101164340A (zh) Cabac解码系统及方法
KR102381999B1 (ko) 가변 길이 코딩된 입력을 디코딩하는 방법 및 시스템, 그리고 코드북을 변경하는 방법
CN102176750B (zh) 高性能自适应二进制算术编码器
CN105187845B (zh) 视频数据解码装置及解码方法
KR20180077060A (ko) 화소들의 리스트들을 인코딩 및 디코딩하는 방법 및 장치
JP4547503B2 (ja) 算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体
US7714753B2 (en) Scalable context adaptive binary arithmetic coding
CN105103192A (zh) 用于顶点误差校正的方法和装置
CN105874774B (zh) 用于在帧的处理过程中保持计数表的计数表保持装置以及相关的保持方法
CN100508604C (zh) 算术编码电路和算术编码控制方法
JP4865662B2 (ja) エントロピー符号化装置、エントロピー符号化方法およびコンピュータプログラム
CN104918049A (zh) 适用于hevc标准的二进制算术编码模块
CN104918048A (zh) 适用于hevc标准的熵编码上下文概率模型建模模块设计方法
CN105791832A (zh) 数据编码方法和数据解码方法及其系统
KR20220054651A (ko) 다중 심볼 디코더
CN111313912A (zh) 一种ldpc码编码器及编码方法
US10559093B2 (en) Selecting encoding options
CN113381769B (zh) 一种基于fpga的译码器
CN110474647B (zh) 有限域构造的ldpc码的译码方法、装置、译码器及存储介质
CN103313048A (zh) 自适应控制算术编码上下文编码模式bin数量的方法
CN103024380A (zh) 一种数据的熵编码方法和装置
CN114430280A (zh) 一种译码方法及装置
JP2015005903A (ja) コンプレッサ、デコンプレッサ及び画像処理装置
CN102045559B (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
GR01 Patent grant
GR01 Patent grant