CN108235013B - 一种基于hevc的低周期cabac解码器及其解码方法 - Google Patents
一种基于hevc的低周期cabac解码器及其解码方法 Download PDFInfo
- Publication number
- CN108235013B CN108235013B CN201810060940.8A CN201810060940A CN108235013B CN 108235013 B CN108235013 B CN 108235013B CN 201810060940 A CN201810060940 A CN 201810060940A CN 108235013 B CN108235013 B CN 108235013B
- Authority
- CN
- China
- Prior art keywords
- decoding
- module
- state
- mode
- code stream
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开一种基于HEVC的低周期CABAC解码电路及其解码方法,包括:码流缓冲模块、上下文初始化模块、上下文存储模块、上下文索引生成模块、总控模块、算术解码模块、反二值化模块;所述总控模块包括:解码状态控制模块和残差预测模块;所述算术解码模块包括:常规算术解码模块、旁路算术解码模块。本发明能减少最后一个非零系数位置坐标的扫描周期和两种状态机之间频繁跳转产生的时钟周期,进而提高CABAC熵解码器的时钟利用率,从而提高解码器的速度,并保证解码数据的正确性。
Description
技术领域
本发明属于视频编解码技术的熵解码技术领域,具体的说是一种适用于HEVC的低周期CABAC解码器及其解码方法。
背景技术
随着目前科学技术的不断发展,信息技术和计算机互联网分别在不同程度改变了人们的日常的生活。如今,人们对于高清视频并且占用空间小的要求越来越强烈,视频编解码就越显得重要。HEVC(High Efficiency Video Coding,HEVC)是高效率视频编解码标准,是国际电信联盟电信标准分局的视频编码专家组和ISO/IEC的动态图像专家组联合提出的最新视频编码标准。CABAC(Context Adaptive Binary Arithmetic Coding,CABAC)是针对HEVC中主要档次的自适应二进制算术编码,是一种优良的数据压缩方法,是HEVC唯一的熵编解码方法,并且熵编解码在HEVC整体编解码过程中占据25%以上的时间开销。对于一般的视频序列,据统计残差变换系数熵编解码占整个熵编解码的60~86%,所以对残差变换系数熵解码优化很有必要。
现有技术中,熵解码电路已经得到很大的提高,2016年孙皓的论文“HEVC码流解析与熵解码模块的研究与设计”对熵解码电路的研究比较详细,但还存在以下不足:
1、在对残差解码的过程中,扫描最后一个非零系数位置坐标占用了很多周期数,降低了时钟利用率;
2、码流解析状态机设计时,对算术解码中的常规解码和旁路解码使用两种状态机,两种状态机之间频繁的跳转浪费时钟周期,降低了熵解码器的速度;
3、由于残差解码过程中的扫描算法和算术解码中的状态机的频繁跳转,导致整个CABAC解码电路浪费时间周期,降低了实际工作效率;
发明内容
本发明为克服现有HEVC标准中CABAC熵解码器时钟周期多、时钟利用率低、速度慢的问题,提出了一种基于HEVC标准的CABAC解码器及其解码方法,旨在减少熵解码过程中不必要的周期数,提高熵解码器的时钟利用率,进而提高解码器的速度,并保证解码数据的正确性。
本发明为达到上述目的所采用的技术方案是:
本发明一种基于HEVC的低周期CABAC解码电路的特点是包括:码流缓冲模块、上下文初始化模块、上下文存储模块、上下文索引生成模块、总控模块、算术解码模块、反二值化模块;所述总控模块包括:解码状态控制模块和残差预测模块;所述算术解码模块包括:常规算术解码模块、旁路算术解码模块;
所述码流缓冲模块读取外部的码流存储器ROM中存储的码流并存储到自身的高位寄存器和低位寄存器中,并接收所述算术解码模块解码传递的码流长度比特数,从而根据所述码流长度比特数按照高位寄存器到低位寄存器的顺序交替地输出变长的码流给所述算术解码模块;
所述上下文初始化模块根据HEVC标准协议中每个语法元素的初始化值和HEVC标准协议中的初始化方法得到上下文变量的大概率符号值表和概率状态索引表并发送给所述上下文存储模块进行存储;再将初始化完成标志发送给所述解码状态控制模块;
所述残差预测模块根据HEVC标准协议中所定义的变换块,将所述变换块中的子变换块之间的坐标(xS,yS)分别用查找表的形式与不同扫描方式下的lastSubBlock值一一对应起来;将所述变换块中的子变换块的内部坐标(xC,yC)分别用查找表的形式与不同扫描方式下的lastScanPos值一一对应起来;
所述解码状态控制模块在初始状态下接受所述初始化完成标志,并根据配置好的视频码流参数集的参数在码流顺序解析状态机中进行八个解码状态的转移,即在每个解码状态下,通过多路选择器将相对应的语法元素状态标识和反二值化模式发送给所述反二值化模块,并根据HEVC标准协议将常规算数解码模式所属的解码状态对应的信息参数和解码状态标识发送给所述上下文索引生成模块;若所述解码状态控制模块在解码状态中的预测状态下,则根据HEVC标准协议向所述残差预测模块发送不同扫描方式下的扫描类型索引scanIdx和变换块大小;
所述上下文索引生成模块根据所接收的信息参数和解码状态标识,得到上下文索引偏移量ctxIdxOffset和上下文索引偏移量增量ctxInc,从而生成上下文索引ctxidx并发送给所述上下文存储模块;
所述上下文存储模块在所述大概率符号值表和概率状态索引表中获取与所述上下文索引ctxidx相对应的大概率符号值valMPS和概率状态索引pstateIdx并发送给所述常规算术解码模块;
所述反二值化模块根据所接收的语法元素状态标识判断当前算数解码模式,若当前算数解码模式为常规算数解码模式,则发送常规算数解码模式信号给所述算数解码模块;若当前算数解码模式为旁路算数解码模式,则发送旁路算数解码模式信号给所述算数解码模块;若当前算数解码模式为终止算数解码模式,则发送终止算数解码模式信号给所述算数解码模块;
所述算数解码模块若接收所述常规算数解码模式信号,则将所述当前变长的码流传递给所述常规算术解码模块;若接收所述旁路算数解码模式信号,则将所述当前变长的码流传递给旁路算术解码模块;若接收所述终止算数解码模式信号,则将所述当前变长的码流传递给终止算术解码模块;
所述常规算术解码模块根据所接收到的大概率符号值valMPS和概率状态索引pstateIdx对所述变长的码流进行解析,得到解码二进制值并传递给所述反二值化模块;同时根据HEVC标准协议更新与所述大概率符号值valMPS和概率状态索引pstateIdx相对应的上下文索引ctxidx并反馈给所述上下文存储模块;
所述旁路算术解码模块或所述终止算数解码模块对所接收到的变长的码流进行解码,得到解码二进制值并传递给所述反二值化模块;
所述反二值化模块根据所接收的语法元素状态标识和反二值化模式,将解码二进制值转换为当前解码状态下变长的码流的实际值,并发送给所述解码状态控制模块;若当前解码状态为预测状态,则将解码二进制值转换为最后一个非零系数的位置坐标(x,y),并发送给所述残差预测模块;
所述解码状态控制模块接收所述当前解码状态下变长的码流的实际值得到下一个解码状态,从而进行八个解码状态的转移;
所述残差预测模块在预测状态下根据所接收的最后一个非零系数的位置坐标(x,y)得到所述子变换块之间的坐标(xS,yS)和子变换块的内部坐标(xC,yC);再根据所述扫描类型索引scanIdx、变换块大小和坐标(xS,yS),选择相应扫描方式下的lastSubBlock值并发送给解码状态控制模块;同时根据所述扫描类型索引scanIdx、变换块大小和内部坐标(xC,yC),选择相应扫描方式下的lastScanPos值并发送给解码状态控制模块;
所述解码状态控制模块在预测状态下根据所接收的相应扫描方式下的lastSubBlock值和lastScanPos值判断下一个解码状态,从而进行八个解码状态的转移。
本发明一种基于HEVC的低周期CABAC解码方法的特点是按如下步骤进行:
步骤1、将外部的码流存储器ROM中存储的码流存储到高位寄存器和低位寄存器中,并根据码流长度比特数按照高位寄存器到低位寄存器的顺序交替地输出变长的码流;
步骤2、根据HEVC标准协议中每个语法元素的初始化值和HEVC标准协议中的初始化方法得到上下文变量的大概率符号值表和概率状态索引表,同时生成初始化完成标志;
步骤3、根据HEVC标准协议中所定义的变换块,将所述变换块中的子变换块之间的坐标(xS,yS)分别用查找表的形式与不同扫描方式下的lastSubBlock值一一对应起来;将所述变换块中的子变换块的内部坐标(xC,yC)分别用查找表的形式与不同扫描方式下的lastScanPos值一一对应起来;
步骤4、在初始状态下,根据所述初始化完成标志以及配置好的视频码流参数集的参数在码流顺序解析状态机中进行八个解码状态的转移,包括:
在每个解码状态下,通过多路选择器选择相对应的语法元素状态标识和反二值化模式,并根据HEVC标准协议得到常规算数解码模式所属的解码状态对应的信息参数和解码状态标识;其中,若当前解码状态为预测状态,则根据HEVC标准协议得到不同扫描方式下的扫描类型索引scanIdx和变换块大小;
步骤5、根据所述信息参数和解码状态标识,得到上下文索引偏移量ctxIdxOffset和上下文索引偏移量增量ctxInc,从而生成上下文索引ctxidx;
步骤6、在所述大概率符号值表和概率状态索引表中获取与所述上下文索引ctxidx相对应的大概率符号值valMPS和概率状态索引pstateIdx;
步骤7、根据所述语法元素状态标识判断当前算数解码模式,若当前算数解码模式为常规算数解码模式,则根据所接收到的大概率符号值valMPS和概率状态索引pstateIdx对所述变长的码流进行解析,得到解码二进制值;同时根据HEVC标准协议更新与所述大概率符号值valMPS和概率状态索引pstateIdx相对应的上下文索引ctxidx;
若当前算数解码模式为旁路算数解码模式或为终止算数解码模式,则直接对所述变长的码流进行解码,得到解码二进制值;
步骤8、根据所述语法元素状态标识和反二值化模式,将解码二进制值转换为当前解码状态下变长的码流的实际值;若当前解码状态为预测状态,则将解码二进制值转换为最后一个非零系数的位置坐标(x,y);
步骤9、根据当前解码状态下变长的码流的实际值得到下一个解码状态,从而进行八个解码状态的转移;若当前解码状态为预测状态,则根据所述最后一个非零系数的位置坐标(x,y)得到所述子变换块之间的坐标(xS,yS)和子变换块的内部坐标(xC,yC);再根据所述扫描类型索引scanIdx、变换块大小和坐标(xS,yS),选择相应扫描方式下的lastSubBlock值,同时根据所述扫描类型索引scanIdx、变换块大小和内部坐标(xC,yC),选择相应扫描方式下的lastScanPos值;从而根据相应扫描方式下的lastSubBlock值和lastScanPos值判断下一个解码状态用于八个解码状态的转移。
与现有技术相比,本发明的有益技术效果体现在:
1、本发明提出的适用于HEVC标准的CABAC解码器,通过快速查找方法来实现了最后一个非零系数位置坐标的扫描算法,且在码流解析状态机设计时,对算术解码中的常规解码和旁路解码仅使用一种状态机,分别减少了最后一个非零系数位置坐标的扫描周期和两种状态机之间频繁跳转产生的时钟周期,进而提高了CABAC解码器的时钟利用率,从而提高了熵解码器的速度,并保证了解码数据的正确性。
2、本发明提出的快速查找方法用于实现最后一个非零系数位置坐标的扫描算法,减少了最后一个非零系数位置坐标的扫描周期,从而有效提高了CABAC解码器的时钟利用率。
3、本发明提出的码流顺序解析状态机,对算术解码中的常规解码和旁路解码仅使用一种状态机,减少了两种状态机之间频繁跳转产生的时钟周期,减少了时钟周期的浪费,提高了时钟周期利用率,从而提高了CABAC解码器的解码速度。
附图说明
图1本发明CABAC解码器框架图;
图2本发明码流缓冲模块电路图;
图3本发明最后一个非零系数位置查找表电路图;
图4本发明解码状态控制模块状态图;
图5本发明上下文索引生成模块关键电路图;
图6本发明算术解码模块电路图;
图7本发明与现有技术的总周期对比图;
图8本发明与现有技术的最后一个非零位置扫描周期占比对比图;
图9本发明与现有技术的资源消耗对比图。
具体实施方式
本实施例中,基于HEVC的低周期CABAC解码电路的功能为读入图像经过压缩后的二进制码流,估计各个语法元素的概率,并按照HEVC标准的解码顺序,经过算术解码,反二值化过程解码出各个语法元素的值,以供视频解码器后续解码模块(反变换,反量化等)使用;
如图1所示,该解码电路主要包括:码流缓冲模块、上下文初始化模块、上下文存储模块、上下文索引生成模块、总控模块、算术解码模块、反二值化模块;其中,总控模块包括:解码状态控制模块和残差预测模块;算术解码模块包括:常规算术解码模块、旁路算术解码模块;
如图2所示,码流缓冲模块读取外部的码流存储器ROM中存储的码流并存储到自身的高位寄存器和低位寄存器中,并接收算术解码模块解码传递的码流长度比特数,从而根据码流长度比特数按照高位寄存器到低位寄存器的顺序交替地输出变长的码流给算术解码模块;
上下文初始化模块根据HEVC标准协议中每个语法元素的初始化值和HEVC标准协议中的初始化方法得到上下文变量的大概率符号值表和概率状态索引表并发送给上下文存储模块进行存储;再将初始化完成标志发送给解码状态控制模块;
具体初始化计算方法如下:
b=initValue&15
c=5*a-45
d=(b<<3)-16
e=Clip3(1,126,((c*Clip3(0,51,QPY))>>4)+d)
其中Clip3的定义如下:
其中a,b,c,d,e为中间变量,QPY为亮度量化参数,x,y,z为函数变量,valMPS为大概率符号值,pstateIdx为概率状态索引,<<为左移符号,>>为右移符号;
如图3所示,残差预测模块根据HEVC标准协议中所定义的变换块,将变换块中的子变换块之间的坐标(xS,yS)分别用查找表的形式与不同扫描方式下的lastSubBlock值一一对应起来;将变换块中的子变换块的内部坐标(xC,yC)分别用查找表的形式与不同扫描方式下的lastScanPos值一一对应起来;
如图4所示,解码状态控制模块中的码流顺序解析状态机包含SAO单元、CQT单元、CU单元、PU单元、MVD单元、TT单元、TU单元、RC单元以及end_flag等解码状态,8个子状态分别控制SAO、CQT、CU、PU、MVD、TT、TU以及RC单元内部的语法元素。
主控状态机状态转移图中各个状态和转移条件的含义分别如表1和表2所示。
表1主控状态转移图中状态的含义
表2主控状态转移图中转移条件含义
转移条件 | 转移条件含义 |
1 | 若是新的CTU |
2 | 上下文初始化完成并且码流中包含SAO单元 |
3 | SAO单元解码完成 |
4 | 上下文初始化完成并且码流中不包含SAO单元 |
5 | CU单元划分标志为1 |
6 | PU单元存在 |
7 | PU单元存在MVD单元 |
8 | MVD单元解码完成 |
9 | PU单元解码完成 |
10 | CU单元解码完且存在TT单元 |
11 | TT单元不在往下划分,且存在TU单元 |
12 | 存在残差单元 |
13 | 残差单元解码完成且slice未结束,回到CQT状态 |
14 | 残差单元解码完成且slice解码结束 |
解码状态控制模块在初始状态下接受初始化完成标志,并根据配置好的视频码流参数集的参数在码流顺序解析状态机中进行八个解码状态的转移,即在每个解码状态下,通过多路选择器将相对应的语法元素状态标识和反二值化模式发送给反二值化模块,并根据HEVC标准协议将常规算数解码模式所属的解码状态对应的信息参数和解码状态标识发送给上下文索引生成模块;若解码状态控制模块在解码状态中的预测状态下,则根据HEVC标准协议向残差预测模块发送不同扫描方式下的扫描类型索引scanIdx和变换块大小;
如图5所示,上下文索引生成模块根据所接收的信息参数和解码状态标识,得到上下文索引偏移量ctxIdxOffset和上下文索引偏移量增量ctxInc,根据公式ctxidx=ctxIdxOffset+ctxInc,生成上下文索引ctxidx并发送给上下文存储模块;
上下文存储模块在大概率符号值表和概率状态索引表中获取与上下文索引ctxidx相对应的大概率符号值valMPS和概率状态索引pstateIdx并发送给常规算术解码模块;
反二值化模块根据所接收的语法元素状态标识判断当前算数解码模式,若当前算数解码模式为常规算数解码模式,则发送常规算数解码模式信号给算数解码模块;若当前算数解码模式为旁路算数解码模式,则发送旁路算数解码模式信号给算数解码模块;若当前算数解码模式为终止算数解码模式,则发送终止算数解码模式信号给算数解码模块;
如图6所示,算数解码模块若接收常规算数解码模式信号,则将当前变长的码流传递给常规算术解码模块;若接收旁路算数解码模式信号,则将当前变长的码流传递给旁路算术解码模块;若接收终止算数解码模式信号,则将当前变长的码流传递给终止算术解码模块;
常规算术解码模块根据所接收到的大概率符号值valMPS和概率状态索引pstateIdx对变长的码流进行解析,得到解码二进制值并传递给反二值化模块;同时根据HEVC标准协议更新与大概率符号值valMPS和概率状态索引pstateIdx相对应的上下文索引ctxidx并反馈给上下文存储模块;
旁路算术解码模块或终止算数解码模块对所接收到的变长的码流进行解码,得到解码二进制值并传递给反二值化模块;
反二值化模块根据所接收的语法元素状态标识和反二值化模式,将解码二进制值转换为当前解码状态下变长的码流的实际值,并发送给解码状态控制模块;若当前解码状态为预测状态,则将解码二进制值转换为最后一个非零系数的位置坐标(x,y),并发送给残差预测模块;
解码状态控制模块接收当前解码状态下变长的码流的实际值得到下一个解码状态,从而进行八个解码状态的转移;
残差预测模块在预测状态下根据所接收的最后一个非零系数的位置坐标(x,y)得到子变换块之间的坐标(xS,yS)和子变换块的内部坐标(xC,yC);再根据扫描类型索引scanIdx、变换块大小和坐标(xS,yS),选择相应扫描方式下的lastSubBlock值并发送给解码状态控制模块;同时根据扫描类型索引scanIdx、变换块大小和内部坐标(xC,yC),选择相应扫描方式下的lastScanPos值并发送给解码状态控制模块;
解码状态控制模块在预测状态下根据所接收的相应扫描方式下的lastSubBlock值和lastScanPos值判断下一个解码状态,从而进行八个解码状态的转移。
本实施例中,一种基于HEVC的低周期CABAC解码方法是按如下步骤进行:
步骤1、将外部的码流存储器ROM中存储的码流存储到高位寄存器和低位寄存器中,并根据码流长度比特数按照高位寄存器到低位寄存器的顺序交替地输出变长的码流;
步骤2、根据HEVC标准协议中每个语法元素的初始化值和HEVC标准协议中的初始化方法得到上下文变量的大概率符号值表和概率状态索引表,同时生成初始化完成标志;
步骤3、根据HEVC标准协议中所定义的变换块,将变换块中的子变换块之间的坐标(xS,yS)分别用查找表的形式与不同扫描方式下的lastSubBlock值一一对应起来;将变换块中的子变换块的内部坐标(xC,yC)分别用查找表的形式与不同扫描方式下的lastScanPos值一一对应起来;
步骤4、在初始状态下,根据初始化完成标志以及配置好的视频码流参数集的参数在码流顺序解析状态机中进行八个解码状态的转移,包括:
在每个解码状态下,通过多路选择器选择相对应的语法元素状态标识和反二值化模式,并根据HEVC标准协议得到常规算数解码模式所属的解码状态对应的信息参数和解码状态标识;其中,若当前解码状态为预测状态,则根据HEVC标准协议得到不同扫描方式下的扫描类型索引scanIdx和变换块大小;
步骤5、根据信息参数和解码状态标识,得到上下文索引偏移量ctxIdxOffset和上下文索引偏移量增量ctxInc,从而生成上下文索引ctxidx;
步骤6、在大概率符号值表和概率状态索引表中获取与上下文索引ctxidx相对应的大概率符号值valMPS和概率状态索引pstateIdx;
步骤7、根据语法元素状态标识判断当前算数解码模式,若当前算数解码模式为常规算数解码模式,则根据所接收到的大概率符号值valMPS和概率状态索引pstateIdx对变长的码流进行解析,得到解码二进制值;同时根据HEVC标准协议更新与大概率符号值valMPS和概率状态索引pstateIdx相对应的上下文索引ctxidx;
若当前算数解码模式为旁路算数解码模式或为终止算数解码模式,则直接对变长的码流进行解码,得到解码二进制值;
步骤8、根据语法元素状态标识和反二值化模式,将解码二进制值转换为当前解码状态下变长的码流的实际值;若当前解码状态为预测状态,则将解码二进制值转换为最后一个非零系数的位置坐标(x,y);
步骤9、根据当前解码状态下变长的码流的实际值得到下一个解码状态,从而进行八个解码状态的转移;若当前解码状态为预测状态,则根据最后一个非零系数的位置坐标(x,y)得到子变换块之间的坐标(xS,yS)和子变换块的内部坐标(xC,yC);再根据扫描类型索引scanIdx、变换块大小和坐标(xS,yS),选择相应扫描方式下的lastSubBlock值,同时根据扫描类型索引scanIdx、变换块大小和内部坐标(xC,yC),选择相应扫描方式下的lastScanPos值;从而根据相应扫描方式下的lastSubBlock值和lastScanPos值判断下一个解码状态用于八个解码状态的转移。
本实施例中,在赛灵思FPGA开发板Virtex6_XC6VLX760上实现,输入视频编号如表3所示,电路运行频率为166MHz;
表3
总周期对比如图7所示,本设计电路在实例测试中,总周期比传统CABAC解码电路平均减少90%以上;
最后一个非零位置扫描周期占比对比如图8所示,在实例测试中,传统CABAC解码电路最后一个非零位置扫描周期占比都在49%以上,仅在两个实例中分别达到了13.64%和33.22%,而本专利设计电路基本能达到熵解码周期占比在3%以下,仅有一个实例占比为7.06%;
资源消耗如图9所示,传统CABAC解码电路消耗了3243个查找表,而本专利设计电路消耗了5670个查找表,传统CABAC解码电路消耗了1543位寄存器,而本专利设计电路消耗了4518位寄存器,传统CABAC解码电路消耗了5840位RAM而本专利设计电路消耗了3157位RAM,以上对比说明了和传统CABAC解码电路相比,本专利设计的面积的增加是在可接受的范围内,但是对于总周期和最后一个非零位置扫描周期的缩减效果是非常明显的。
Claims (2)
1.一种基于HEVC的低周期CABAC解码电路,其特征是包括:码流缓冲模块、上下文初始化模块、上下文存储模块、上下文索引生成模块、总控模块、算术解码模块、反二值化模块;所述总控模块包括:解码状态控制模块和残差预测模块;所述算术解码模块包括:常规算术解码模块、旁路算术解码模块;
所述码流缓冲模块读取外部的码流存储器ROM中存储的码流并存储到自身的高位寄存器和低位寄存器中,并接收所述算术解码模块解码传递的码流长度比特数,从而根据所述码流长度比特数按照高位寄存器到低位寄存器的顺序交替地输出变长的码流给所述算术解码模块;
所述上下文初始化模块根据HEVC标准协议中每个语法元素的初始化值和HEVC标准协议中的初始化方法得到上下文变量的大概率符号值表和概率状态索引表并发送给所述上下文存储模块进行存储;再将初始化完成标志发送给所述解码状态控制模块;
所述残差预测模块根据HEVC标准协议中所定义的变换块,将所述变换块中的子变换块之间的坐标(xS,yS)分别用查找表的形式与不同扫描方式下的lastSubBlock值一一对应起来;将所述变换块中的子变换块的内部坐标(xC,yC)分别用查找表的形式与不同扫描方式下的lastScanPos值一一对应起来;
所述解码状态控制模块在初始状态下接受所述初始化完成标志,并根据配置好的视频码流参数集的参数在码流顺序解析状态机中进行八个解码状态的转移,即在每个解码状态下,通过多路选择器将相对应的语法元素状态标识和反二值化模式发送给所述反二值化模块,并根据HEVC标准协议将常规算数解码模式所属的解码状态对应的信息参数和解码状态标识发送给所述上下文索引生成模块;若所述解码状态控制模块在解码状态中的预测状态下,则根据HEVC标准协议向所述残差预测模块发送不同扫描方式下的扫描类型索引scanIdx和变换块大小;
所述上下文索引生成模块根据所接收的信息参数和解码状态标识,得到上下文索引偏移量ctxIdxOffset和上下文索引偏移量增量ctxInc,从而生成上下文索引ctxidx并发送给所述上下文存储模块;
所述上下文存储模块在所述大概率符号值表和概率状态索引表中获取与所述上下文索引ctxidx相对应的大概率符号值valMPS和概率状态索引pstateIdx并发送给所述常规算术解码模块;
所述反二值化模块根据所接收的语法元素状态标识判断当前算数解码模式,若当前算数解码模式为常规算数解码模式,则发送常规算数解码模式信号给所述算数解码模块;若当前算数解码模式为旁路算数解码模式,则发送旁路算数解码模式信号给所述算数解码模块;若当前算数解码模式为终止算数解码模式,则发送终止算数解码模式信号给所述算数解码模块;
所述算数解码模块若接收所述常规算数解码模式信号,则将所述当前变长的码流传递给所述常规算术解码模块;若接收所述旁路算数解码模式信号,则将所述当前变长的码流传递给旁路算术解码模块;若接收所述终止算数解码模式信号,则将所述当前变长的码流传递给终止算术解码模块;
所述常规算术解码模块根据所接收到的大概率符号值valMPS和概率状态索引pstateIdx对所述变长的码流进行解析,得到解码二进制值并传递给所述反二值化模块;同时根据HEVC标准协议更新与所述大概率符号值valMPS和概率状态索引pstateIdx相对应的上下文索引ctxidx并反馈给所述上下文存储模块;
所述旁路算术解码模块或所述终止算数解码模块对所接收到的变长的码流进行解码,得到解码二进制值并传递给所述反二值化模块;
所述反二值化模块根据所接收的语法元素状态标识和反二值化模式,将解码二进制值转换为当前解码状态下变长的码流的实际值,并发送给所述解码状态控制模块;若当前解码状态为预测状态,则将解码二进制值转换为最后一个非零系数的位置坐标(x,y),并发送给所述残差预测模块;
所述解码状态控制模块接收所述当前解码状态下变长的码流的实际值得到下一个解码状态,从而进行八个解码状态的转移;
所述残差预测模块在预测状态下根据所接收的最后一个非零系数的位置坐标(x,y)得到所述子变换块之间的坐标(xS,yS)和子变换块的内部坐标(xC,yC);再根据所述扫描类型索引scanIdx、变换块大小和坐标(xS,yS),选择相应扫描方式下的lastSubBlock值并发送给解码状态控制模块;同时根据所述扫描类型索引scanIdx、变换块大小和内部坐标(xC,yC),选择相应扫描方式下的lastScanPos值并发送给解码状态控制模块;
所述解码状态控制模块在预测状态下根据所接收的相应扫描方式下的lastSubBlock值和lastScanPos值判断下一个解码状态,从而进行八个解码状态的转移。
2.一种基于HEVC的低周期CABAC解码方法,其特征是按如下步骤进行:
步骤1、将外部的码流存储器ROM中存储的码流存储到高位寄存器和低位寄存器中,并根据码流长度比特数按照高位寄存器到低位寄存器的顺序交替地输出变长的码流;
步骤2、根据HEVC标准协议中每个语法元素的初始化值和HEVC标准协议中的初始化方法得到上下文变量的大概率符号值表和概率状态索引表,同时生成初始化完成标志;
步骤3、根据HEVC标准协议中所定义的变换块,将所述变换块中的子变换块之间的坐标(xS,yS)分别用查找表的形式与不同扫描方式下的lastSubBlock值一一对应起来;将所述变换块中的子变换块的内部坐标(xC,yC)分别用查找表的形式与不同扫描方式下的lastScanPos值一一对应起来;
步骤4、在初始状态下,根据所述初始化完成标志以及配置好的视频码流参数集的参数在码流顺序解析状态机中进行八个解码状态的转移,包括:
在每个解码状态下,通过多路选择器选择相对应的语法元素状态标识和反二值化模式,并根据HEVC标准协议得到常规算数解码模式所属的解码状态对应的信息参数和解码状态标识;其中,若当前解码状态为预测状态,则根据HEVC标准协议得到不同扫描方式下的扫描类型索引scanIdx和变换块大小;
步骤5、根据所述信息参数和解码状态标识,得到上下文索引偏移量ctxIdxOffset和上下文索引偏移量增量ctxInc,从而生成上下文索引ctxidx;
步骤6、在所述大概率符号值表和概率状态索引表中获取与所述上下文索引ctxidx相对应的大概率符号值valMPS和概率状态索引pstateIdx;
步骤7、根据所述语法元素状态标识判断当前算数解码模式,若当前算数解码模式为常规算数解码模式,则根据所接收到的大概率符号值valMPS和概率状态索引pstateIdx对所述变长的码流进行解析,得到解码二进制值;同时根据HEVC标准协议更新与所述大概率符号值valMPS和概率状态索引pstateIdx相对应的上下文索引ctxidx;
若当前算数解码模式为旁路算数解码模式或为终止算数解码模式,则直接对所述变长的码流进行解码,得到解码二进制值;
步骤8、根据所述语法元素状态标识和反二值化模式,将解码二进制值转换为当前解码状态下变长的码流的实际值;若当前解码状态为预测状态,则将解码二进制值转换为最后一个非零系数的位置坐标(x,y);
步骤9、根据当前解码状态下变长的码流的实际值得到下一个解码状态,从而进行八个解码状态的转移;若当前解码状态为预测状态,则根据所述最后一个非零系数的位置坐标(x,y)得到所述子变换块之间的坐标(xS,yS)和子变换块的内部坐标(xC,yC);再根据所述扫描类型索引scanIdx、变换块大小和坐标(xS,yS),选择相应扫描方式下的lastSubBlock值,同时根据所述扫描类型索引scanIdx、变换块大小和内部坐标(xC,yC),选择相应扫描方式下的lastScanPos值;从而根据相应扫描方式下的lastSubBlock值和lastScanPos值判断下一个解码状态用于八个解码状态的转移。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810060940.8A CN108235013B (zh) | 2018-01-22 | 2018-01-22 | 一种基于hevc的低周期cabac解码器及其解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810060940.8A CN108235013B (zh) | 2018-01-22 | 2018-01-22 | 一种基于hevc的低周期cabac解码器及其解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108235013A CN108235013A (zh) | 2018-06-29 |
CN108235013B true CN108235013B (zh) | 2020-03-17 |
Family
ID=62668373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810060940.8A Active CN108235013B (zh) | 2018-01-22 | 2018-01-22 | 一种基于hevc的低周期cabac解码器及其解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108235013B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3700206A4 (en) * | 2018-12-17 | 2020-11-18 | LG Electronics Inc. | METHOD AND APPARATUS FOR DECISION OF THE TRANSFORMATION COEFFICIENT SCANNING SEQUENCE BASED ON THE HIGH-FREQUENCY ZERO-POINT RESET |
CN110337001A (zh) * | 2019-07-15 | 2019-10-15 | 福州大学 | 一种基于hevc的残差编码吞吐率优化系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212676A (zh) * | 2006-12-29 | 2008-07-02 | 北京展讯高科通信技术有限公司 | 高效并行cabac解码方法及其装置 |
CN101951516A (zh) * | 2010-09-25 | 2011-01-19 | 清华大学 | 基于h.264/avc中cabac的并行编码实现电路及编码方法 |
CN107343201A (zh) * | 2017-06-21 | 2017-11-10 | 珠海市杰理科技股份有限公司 | Cabac编码方法和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9681133B2 (en) * | 2012-03-29 | 2017-06-13 | Intel Corporation | Two bins per clock CABAC decoding |
CN106658004B (zh) * | 2016-11-24 | 2019-05-17 | 浙江大学 | 一种基于图像平坦区域特征的压缩方法和装置 |
CN106911935B (zh) * | 2017-04-19 | 2019-07-16 | 西安电子科技大学 | 基于hevc熵编码器的集成电路设计方法 |
-
2018
- 2018-01-22 CN CN201810060940.8A patent/CN108235013B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212676A (zh) * | 2006-12-29 | 2008-07-02 | 北京展讯高科通信技术有限公司 | 高效并行cabac解码方法及其装置 |
CN101951516A (zh) * | 2010-09-25 | 2011-01-19 | 清华大学 | 基于h.264/avc中cabac的并行编码实现电路及编码方法 |
CN107343201A (zh) * | 2017-06-21 | 2017-11-10 | 珠海市杰理科技股份有限公司 | Cabac编码方法和系统 |
Non-Patent Citations (1)
Title |
---|
HEVC码流解析与熵解码模块的研究与设计;孙皓;《中国优秀硕士论文全文数据库》;20170228;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108235013A (zh) | 2018-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9698822B2 (en) | Method and arrangement for coding transform coefficients in picture and/or video coders and decoders and a corresponding computer program and a corresponding computer-readable storage medium | |
JP2020145729A (ja) | 統一された有意性マップ符号化方法および装置 | |
CN100492916C (zh) | 采用多映射表的可变长度编码和解码方法及设备 | |
CN108419084B (zh) | 改进熵编码和解码的方法、装置及存储介质 | |
US20200177920A1 (en) | Method for producing video coding and computer program product | |
CN107211136A (zh) | 具有大字母表的源样本的熵编码的方法与装置 | |
JP2015228696A (ja) | 適応ツリー選択を使用してバイナリ・セットをビデオ符号化およびビデオ復号する方法および装置 | |
CN103004195A (zh) | 将多种可变长度编码方法用于多种类型的变换系数块的视频压缩 | |
CN1980395A (zh) | 一种基于上下文的熵编码方法及解码方法 | |
CN109923861A (zh) | 用于对表示与图片数据有关的语法元素的二进制符号序列进行上下文自适应二进制算术编码的方法和设备 | |
CN102668558A (zh) | 无线显示编码器架构 | |
US7830964B2 (en) | Method and/or apparatus for parsing compressed video bitstreams | |
WO2020009758A1 (en) | Context-based binary arithmetic encoding and decoding | |
CN108235013B (zh) | 一种基于hevc的低周期cabac解码器及其解码方法 | |
CN101014129A (zh) | 一种视频数据压缩方法 | |
CN103167289A (zh) | 图像的编码、解码方法及编码、解码装置 | |
CN108141621A (zh) | 一种用于屏幕内容编解码的调色板索引映射编解码的方法和装置 | |
CN108965878B (zh) | 一种熵解码方法及装置 | |
WO2020233179A1 (zh) | 码率估计核心单元、码率估计装置及码率估计方法 | |
Merlino et al. | A fully pipelined architecture for the LOCO-I compression algorithm | |
CN101489128A (zh) | 一种jpeg2000流水线算术编码方法和电路 | |
CN108702520A (zh) | 用于显示流压缩的基于向量的熵译码的设备及方法 | |
CN109565596A (zh) | 用于上下文自适应二进制算术编码表示与视频数据相关的语法元素的二进制符号序列的方法和装置 | |
CN100551064C (zh) | 变长编码方法及装置 | |
Gomes et al. | High-performance design for the AV1 multi-alphabet arithmetic decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: Tunxi road in Baohe District of Hefei city of Anhui Province, No. 193 230009 Patentee after: Hefei University of Technology Patentee after: Hefei Gongxin Xianxian Microelectronics Technology Co.,Ltd. Address before: Tunxi road in Baohe District of Hefei city of Anhui Province, No. 193 230009 Patentee before: Hefei University of Technology Patentee before: HEFEI ANTECEDESIGN MICROELECTRONICS Co.,Ltd. |