CN1589023A - 一种基于上下文的多码表变长编解码方法及编解码装置 - Google Patents
一种基于上下文的多码表变长编解码方法及编解码装置 Download PDFInfo
- Publication number
- CN1589023A CN1589023A CN 200410058401 CN200410058401A CN1589023A CN 1589023 A CN1589023 A CN 1589023A CN 200410058401 CN200410058401 CN 200410058401 CN 200410058401 A CN200410058401 A CN 200410058401A CN 1589023 A CN1589023 A CN 1589023A
- Authority
- CN
- China
- Prior art keywords
- code
- code table
- coefficient
- coding
- variable length
- 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.)
- Pending
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明是一种基于上下文的多码表变长编解码方法及编解码装置。编码方法包括对块残差系数进行之字形扫描形成数对序列并将其存入存储缓冲区中;码表选择模块根据块残差系数的类型经与二维变长编码码表存储模块中的码表比较确定编码当前系数块的码表类型;并根据其所在宏块采用的量化参数及宏块或子块的编码模式从该类型的多个码表中选择一个码表送入变长编码模块;变长编码模块根据所选定的码表将存储缓冲区中数对序列的每个数对及块结束标志映射为变长码并写进码流中。解码器解码方法是编码过程的逆过程。本发明有多个码表,提高了编解码的效率,采用指数型与混合型哥伦布码,降低了码表存储空间及编解码计算复杂度。
Description
技术领域
本发明属于数字音视频编解码技术领域,涉及一种用于视频预测残差系数编解码的熵编解码方法,具体地说是一种一种基于上下文的多码表变长编解码方法及编解码装置。
背景技术
视频编解码技术是数字媒体存储与传输等应用的关键技术。视频编码系统中的核心技术包括预测编码、变换编码、熵编码。其中,熵编码技术是对编码过程中产生的语法元素,如运动矢量mv、块预测残差系数等进行信息熵编码,其作用是去除数据的统计冗余。
以往视频编码标准对块预测残差系数的编码方法有:国际视频编码标准H.261和运动图象专家组MPEG-2(Motion Picture ExpertsGroup)标准的熵编码器二维变长编码2D-VLC(2 Dimension VariableLength Coding),H.263和MPEG-4标准的3D-VLC熵编码器,国际电信协会ITU-T的H.264视频编码建议或ISO/IEC的国际标准14496-10即MPEG-4标准第10部分的视频编码标准H.264/AVC的基于上下文变长编码(CAVLC,Context-based Adaptive Variable LengthCoding)熵编码器和基于上下文二进制算术编码(CABAC,Contex-based Adaptive Binary Arithmetic Coding)熵编码器。
2D-VLC熵编码器对块残差系数的编码采用(level,run)+EOB的编码方式,level表示经过离散余弦变换DCT变换和量化后的残差图像块的非零系数,而run表示按传统之字形zig-zag扫描顺序该非零系数到其前第一个非零系数间的值为0的系数个数,EOB(End of Block)为块结束标志,EOB在码表中独占一个位置,即EOB单独分配一个码字。3D-VLC熵编码器将EOB结合在(level,run)数对中,形成三维量(level,run,last),last表示当前非零系数是否为块内最后一个非零系数,这样腾出了码表中EOB占据的较短码字,并且利用了level、run及EOB的联合概率,因此编码效率有所提高。H.264/AVC视频编码标准的CAVLC熵编码器将level、run分开编码,该编码器充分利用了上、下文信息,并针对4×4块大小进行了很好的优化,因此取得了较高的编码效率。以上的各种熵编码器属于变长编码器,其编码基本原理是哈夫曼(Huffman)编码,即将大概率的符号用短码字编码,而出现概率小的符号用长码字编码,从而最终达到平均码长最短的目的。H.264/AVC视频编码标准的CABAC熵编码器属于算术编码器,算术编码器的性能高于变长编码器,而且由于CABAC能够很好地对上下文进行建模,对信源符号的出现概率有更准确的估计,因此编码效率很高。但相比于变长编码器,算术编码器的计算复杂度高,同时硬件实现复杂,相当于以软、硬件的高复杂度换取编码效率的提高。
因此,从编码效率及算法的软硬件实现复杂度两方面来考虑,变长编码是一种性价比更高的熵编码方案。在变长编码器中,2D-VLC熵编码器利用了level及run的联合概率,道理上效率高于CAVLC熵编码器将level及run分开编码的方式,而且相比于3D-VLC编码器,2D-VLC码表的体积更小,所以2D-VLC熵编码器兼顾了编码性能和硬件的实现复杂度。但是传统的2D-VLC熵编码器采用通过全局统计而得到的单一码表进行编码,其缺点是,单一码表不能很好地适应局部概率分布的变化,造成编码效率不高。
发明内容
为了克服上述现有技术的不足,本发明的目的在于提供一种基于上下文的多码表变长编解码方法及编解码装置,以提高编码效率,降低编解码的复杂度。
本发明的另一个目的在于提供一种基于上下文的多码表变长编解码方法及编解码装置,以降低多码表的内存需求。
为了完成上述发明任务,本发明采用的总体技术方案是:一种基于上下文的多码表变长编码方法,包括以下步骤:
步骤1:之字形扫描模块对图像块预测残差系数进行之字形扫描,形成图像块的非零系数和按之字形扫描顺序该非零系数到其前第一个非零系数间值为0的系数个数的数对序列并将数对序列存入存储缓冲区中;
步骤2:码表选择模块根据残差系数的类型经与二维变长编码码表存储模块中的码表比较确定编码当前系数块的码表类型;
步骤3:码表选择模块根据残差系数的图像块所在宏块采用的量化参数及所在宏块或子块的编码模式,从所选类型的多个码表中选择一个码表送入变长编码模块;
步骤4:变长编码模块根据所选定的码表将存储缓冲区中数对序列的每个数对及块结束标志映射为变长码,并将编码后的变长码写进码流中。
所述步骤1中的图像块预测残差系数的类型包括帧内预测所得到的亮度分量残差系数类型、帧间预测得到的亮度分量残差系数类型和帧内帧间预测得到的色度分量残差系数类型。
所述步骤3中的码表是包括帧内预测得到的亮度分量残差系数类型、帧间预测得到的亮度分量残差系数类型及帧内帧间预测色度分量残差系数类型的一个或一个以上码表。
所述步骤3中的宏块或子块编码模式包括帧内预测宏块模式和帧间预测宏块模式,帧内预测宏块模式为帧内预测的方向,帧间预测宏块模式为宏块的帧间预测方式,预测方向包括前向预测、后向预测、双向预测,预测方式为把宏块分割为不同块大小所对应的预测方式。
所述步骤3中的从多个码表中选择一个码表的方法包括根据残差系数的图像块所在宏块采用的量化参数选择码表、根据残差系数图像块所在宏块或子块编码模式选择码表和同时根据量化参数与编码模式选择码表三种方法。
所述步骤4进一步包括下述步骤:
步骤41、判断数对序列中的数对是否包含在码表中,如果是则直接从码表中查表得到用于其编码的码字编号,否则计算得到用于其编码的码字编号;
步骤42、根据当前码表采用的码字类型及其阶数,按码字编号计算得到数对的变长码,写进码流;
步骤43、判断是否编完数对序列中的所有数对,是则采用当前码表编码块结束标志,完成此块的编码,否则转步骤41。
所述步骤41中的计算具体为按公式:
码字编号=(abs(level)-LEVRUN[run])*32+8+run*2计算码字编号并判断数对序列经变换和量化后的残差图像块的非零系数是否小于0,不是则将码字编号递减1,是则保持码字编号的原值,其中,level为经过离散余弦变换和量化后的残差系数的图像块的非零系数,run为按之字形扫描顺序该非零系数到其前第一个非零系数间值为0的系数个数,LEVRUN[]为当前码表中所包含的(level,run)数对的最大abs(level)值。
所述步骤42中的码字类型是指数型哥伦布码。
所述步骤42中的码字类型是混合型哥伦布码。
实施所述的基于上下文的多码表变长编码方法的编码装置,包括用于对图像块预测残差系数进行扫描的之字形扫描模块、用于存储数对序列的存储缓冲区、变长编码模块,用于存储二维码表的二维变长编码码表存储模块,还包括用于选择图像块预测残差系数类型、宏块量化参数、宏块或子块编码模式的多个码表的码表选择模块,该模块输入端连接残差系数类型、宏块量化参数、宏块或子块编码模式输入信号线,其码表编号输出端连接变长编码模块,其码表类型比较端与二维变长编码码表存储模块连接。
一种基于上下文的多码表变长解码方法,包括以下步骤:
步骤一、码表选择模块根据图像块预测残差系数类型选择解码当前残差系数块的码表类型;
步骤二、码表选择模块根据预测残差系数的图像块在宏块所采用的量化参数及所在宏块或子块的编码模式从所选类型的多个码表中选择一个码表进行解码;
步骤三、变长解码模块根据当前码表从变长码码流中解码出当前预测残差系数块的所有数对序列,并存入存储缓冲区中;
步骤四、之字形扫描模块按反之字形扫描顺序将已解码的上述数对序列还原为图像块预测残差系数。
实施所述的基于上下文的多码表变长解码方法的解码装置,包括用于对解码的数对序列进行反之字扫描的之字形扫描模块、用于存储数对序列的存储缓冲区、变长解码模块,用于存储二维码表的二维变长编码码表存储模块,还包括用于选择图像块预测残差系数类型、宏块量化参数、宏块或子块编码模式的多个码表的码表选择模块,该模块输入端连接残差系数块类型、宏块量化参数、宏块或子块编码模式输入信号线,其码表编号输出端连接变长解码模块,其码表类型比较端与二维变长编码码表存储模块连接。
本发明具有明显的优点和积极效果。本发明设计了不同上下文情况下的多个码表,编码时通过码表的选择来更好地匹配不同上下文情况下信源符号的概率分布,将变长编码器中2D-VLC熵编码器利用了level及run的联合概率技术与多个码表技术相结合,提高了编解码的效率,降低了编解码的复杂度。
附图说明
图1是本发明的编码主流程图;
图2是本发明的编码装置构成框图;
图3是宏块帧间编码模式图;
图4是对块系数进行之字形扫描形成数对序列过程示意图;
图5是本发明4×4残差系数块编码流程图;
图6是本发明解码装置构成框图;
图7是本发明4×4残差系数块解码流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
为提高编码效率,必须使编码时信源符号的码长或码字分配要更好地匹配信源符号的出现概率。因此本发明设计多个码表来匹配不同上下文情况下的不同残差系数分布,即针对残差系数的一个典型分布将设计一个码表用于此种分布下的残差系数的编码。
请参阅图1、图2,本发明编码的主流程图和装置构成框图。本发明的基于上下文的多码表变长编码方法的编码装置,包括用于对图像块预测残差系数进行扫描的之字形扫描模块、用于存储数对序列的存储缓冲区、变长编码模块,用于存储二维码表的二维变长码表存储模块,该装置还包括用于选择残差系数块类型、宏块量化参数、宏块或子块编码模式的多个码表的码表选择模块,该模块输入端连接残差系数块类型、宏块量化参数、宏块或子块编码模式输入信号线,其码表编号输出端连接变长编码模块,其码表类型比较端与二维变长码表存储模块连接。首先编码器的之字形扫描模块对图像块预测残差系数进行传统的之字形zig-zag扫描,形成图像残差系数块的非零系数level和按之字形扫描顺序该非零系数到其前第一个非零系数间值为0的系数个数run的数对序列(level,run),并存入编码器的存储缓冲区中。
然后,码表选择模块根据块残差系数的类型经与二维变长编码码表存储模块中的码表比较确定编码当前系数块的码表类型。码表选择模块根据上下文信息从所选类型的多个码表中选择一个码表送入变长编码模块进行编码;
本发明中码表选择模块用来选择码表的上下文信息包括:
1、预测残差系数类型
本发明将预测残差系数分为3类,采用帧内预测所得到的亮度分量残差系数luma_intra、采用帧间预测所得到的亮度分量残差系数luma_inter和采用帧内帧间预测所得到的色度分量的残差系数chroma。针对以上3类残差系数,本发明有3类码表,即帧内预测亮度分量残差系数码表、帧间预测亮度分量残差系数码表和帧内帧间预测色度分量残差系数码表分别用于其编码。
2、量化参数
量化参数的不同会导致量化后的残差系数具有不同的分布,例如残差系数经大的量化参数量化后,非零系数个数减少很多,非零系数的值也变得很小,这样经之字形扫描形成的(level,run)数对,level值较小,run值较大;而经小的量化参数量化后,残差系数非零系数个数减少的幅度小一些,其值也减小的少一些,这样经之字形扫描形成的(level,run)数对,level值较大,run值较小。因此残差系数经不同的量化参数量化后其分布是不同的,所以量化参数是一种有效的上下文信息,可用来进行码表选择。
3、宏块编码模式
先进的视频编码标准如H.264及AVS-M对宏块进行编码时都采用了多模式择优编码的策略。在I帧编码时采用多方向预测技术,多个预测方向即对应着多个编码模式;在P帧编码时采用可变块大小的帧间运动估计技术,块大小的不同也对应着多种模式;B帧编码时,在P帧可变块大小帧间运动估计技术的基础上,又增加了前向预测、后向预测、双向预测的情况,因此又衍生出更多的编码模式。编码模式也是一种上下文信息,编码模式的不同也会造成残差系数的分布不同,而码表正是针对不同分布设计的,因此可利用以上这些编码模式信息作为熵编码器进行码表选择的依据。本发明便利用这些编码模式信息进行熵编码器的码表选择。
如图3宏块帧间编码模式图所示。P帧宏块像素大小为16×16,其帧间编码模式包括inter16×16、inter16×8、inter8×16、P8×8,对于P8×8模式下的8×8子块,还有inter8×8、inter8×4、inter4×8、inter4×4四种模式,这些编码模式都对应着,对宏块进行帧间运动估计时,宏块被分割成若干部分,每个部分进行单独的运动估计并有单独的运动矢量。最终选择最佳的模式对当前宏块进行编码。
最后,判断数对序列是否包含在码表中,如果是则直接从码表中查表得到用于其编码的码字编号,否则计算得到用于其编码的码字编号,根据当前码表采用的码字类型及其阶数,按码字编号计算得到数对序列的编码码字,写进码流,判断是否编完所有数对序列,不是则继续判断数对序列是否包含在码表和编码,否则则采用当前码表编码块结束标志,完成此块的编码,
为保持较低的计算复杂度,本发明采用变长编码方法,采用包括数对序列(level,run)和块结束标志的EOB的2D-VLC技术。同时,为保持多码表较低的内存需求,本发明采用具有规则结构的指数型哥伦布(Golomb)码及混合型哥伦布(Golomb)码。由于指数型Golomb码及混合型Golomb码具有规则结构,码字由若干个0、一个1加上若干信息比特位构成,而信息比特位的值与码字编号的值有较直接的可用公式描述的关系,因此由码字编号计算生成码字不会有高的复杂度,码字可以在较低计算复杂度的前提下实时生成,这使得码表存储的是从信源符号到编码码字之间的映射关系,而非真实的变长码字如MPEG-2标准熵编码器的哈夫曼(Huffman)码,因此,码表内存需求低,即使采用多码表也保持了较低的码表存储空间。
本发明采用4个luma_intra型码表(VLCx_intra,x=0~3)、9个luma_inter型码表(VLCx_inter,x=0~8)分别编码帧内型及帧间型宏块的亮度残差系数,采用另1个码表(VLC_chroma)编码色度残差系数,这些码表都为2D-VLC码表,其形式如表1所示。
表1 VLC_chroma码表
每个码表定义了(level,run)及EOB与码字之间的映射关系,即码字编号CodeNumber,如表1中深色部分数字。表1中只列出level>0情况下(level,run)的CodeNumber的分配情况,level<0时的(level,run)的CodeNumber分配方法如下:
CodeNumber(-abs(level),run)=Code_Number(abs(level),run)+1。
可以看到2D-VLC码表中所含CodeNumber范围为0~38,这是一个经验值,也可以是更大或更小的范围,对于超出码表范围的(level,run)采用特定的规则为其分配CodeNumber。
每个码表采用指数型Exp-Golomb码或混合型Hybrid-Golomb码。
表2列出了部分Exp-Golomb码的码字结构,CodeNumber与码字的对应关系,以及采用此结构码的2D-VLC码表。
表2 用于2D-VLC码表的Exp-Golomb码
阶数(K) | 码字结构 | 码长L | 码字编号(CodeNumber) | 采用此码字结构的码表 |
K=1 | 1x0 | 2 | 2L/2-2+INFO | VLC1_intra,VLC1_inter,VLC2_interVLC3_inter |
01x1x0 | 4 | |||
001x2x1x0 | 6 | |||
0001x3x2x1x0 | 8 | |||
00001x4x3x2x1x0 | 10 | |||
... | ... | |||
K=0 | 1 | 1 | 2L/2-1+INFO | VLC2_intra,VLC3_intraVLC4_inter,VLC5_interVLC6_inter,VLC7_interVLC8_interVLC_chroma |
01x0 | 3 | |||
001x1x0 | 5 | |||
0001x2x1x0 | 7 | |||
00001x3x2x1x0 | 9 | |||
... | ... |
表3列出了部分Hybrid-Golomb码的码字结构,CodeNumber与码字的对应关系,以及采用此结构的2D-VLC码表。
表3 用于2D-VLC码表的Hybrid-Golomb码
阶 | 码字结构 | 码长L | 码字编号(CodeNumber) | 采用此码字结构的码表 |
K=2 | 1x1x0 | 3 | 2(L+2)/2-4+INFO | VLC0_intra,VLC0_inter, |
01x1x0 | 4 | |||
001x2x1x0 | 6 | 8+INFO,0≤INFO≤2K(2(L-K-2)/2-1)-1 | ||
001x3x2x1x0 | 7 | 8+2K(2(L-K-3)/2-1)+INFO-2K+1(2(L-K-3)/2-1),2K+1(2(L-K-3)/2-1)≤INFO≤2(K+L-1)/2-1) | ||
... | ... | ... |
在表2和表3中INFO的值由下式计算:
其中INFO为一个变量,其值由上式计算,用来确定一个变长码的码字编号,xi为表2和表3中码字结构栏的符号,其取值为0或1,如表3中码字结构栏的第一行的码字1x1x0,用xi,i=0,1来表示x1x0,而此时n的取值为1。
对于采用帧内预测得到的亮度残差系数(luma_intra),用量化参数QP(Quantization Parameter)选择码表,对于帧间预测得到的亮度残差系数(luma_inter)用量化参数和帧间预测模式选择码表,帧间预测模式包括:inter16×16、inter16×8、inter8×16、inter8×8、inter8×4、inter4×8、inter4×4。对于色度系数(chroma),采用1个单独的码表编解码。
对于chroma系数的编解码,在所有QP范围内,在各种编码模式下,用码表VLC_chroma编解码。对于luma_intra系数的编解码,当QP<=29时,选择码表VLC0_intra编解码;当30<=QP<=33时,选择码表VLC1_intra编解码;当34<=QP<=37时,选择码表VLC2_intra编解码;当38<=QP时,选择码表VLC3_intra编解码。对于luma_inter系数的编解码,根据当前宏块的QP值和4×4块所在宏块或8×8子块的预测模式选择码表,选择规则如表4所示。
表4 帧间预测残差系数的码表选择
宏块编码模式(Mb_type) | 字块编码模式(Block_type) | ||||||
QP | Inter16×16 | Inter16×8 | Inter8×16 | Inter8×8 | Inter8×4 | Inter4×8 | Inter4×4 |
0~29 | VLC2_inter | VLC2_inter | VLC2_inter | VLC3_inter | VLC3_inter | VLC3_inter | VLC0_inter |
30~33 | VLC6_inter | VLC6_inter | VLC6_inter | VLC7_inter | VLC8_inter | VLC8_inter | VLC1_inter |
34~37 | VLC6_inter | VLC6_inter | VLC6_inter | VLC7_inter | VLC8_inter | VLC8_inter | VLC4_inter |
38~51 | VLC6_inter | VLC6_inter | VLC6_inter | VLC7_inter | VLC8_inter | VLC8_inter | VLC5_inter |
对编码端来说,当(level,run)超出码表范围时,表示不能从码表中直接查表得到当前(level,run)所对应的CodeNumber值。这时须用特定的规则计算当前(level,run)的CodeNumber,其规则如下:
按下述公式计算码字编号:
码字编号=(abs(level)-LEVRUN[run])*32+8+run*2
并判断数对序列的经变换和量化后的残差图像块的非零系数是否小于0,不是则将码字编号递减1,是则保持码字编号的原值。其中,level为经过离散余弦变换和量化后的残差图像块的非零系数,run为按之字形扫描顺序该非零系数到其前第一个非零系数间值为0的系数个数,LEVRUN[]为当前码表中所包含的(level,run)数对的最大abs(level)值。对于表1中所示的2D-VLC码表,数组LEVRUN[0~16]的取值为:
LEVRUN[16]={9,3,2,2,1,1,1,0,0,0,0,0,0,0,0,0};
参阅图5,本发明一个实施例4×4残差系数块的编码方法图。
步骤1、对4×4图像块残差系数zig-zag扫描形成(level,run)数对序列;
步骤2、根据系数块类型(inter_luma,intra_luma,chroma)选择编码当前系数块的码表类型;
步骤3、根据4×4残差块所在宏块所采用的量化参数及所在宏块或8×8子块的编码模式选择编码码表;
步骤4、采用当前码表,按zig-zag扫描形成(level,run)数对的先后顺序,对扫描形成的(level,run)数对序列编码,如果(level,run)包含在码表当中,则直接从码表中查表得到用于其编码的码字编号CodeNumber,如果(level,run)超出码表范围,则根据特定规则计算得到用于其编码的码字编号CodeNumber,根据当前码表采用的码字类型及其阶数,按CodeNumber计算得到(level,run)的编码码字,写进码流;
步骤5、重复步骤1、2、3,直到编码完所有(level,run)数对,否则采用当前码表编码块结束标志EOB,完成此块的编码。
请参阅图6、图7,本发明基于上下文的多码表解码装置构成框图及解码方法流程图。
本发明基于上下文的多码表变长解码装置与编码装置构成是相同的,只不过是数据流的方向不一样,变长编码器改为变长解码器,包括用于将解码的数对序列进行反之字形扫描并还原为图像块预测残差系数的之字形扫描模块、用于存储数对序列的存储缓冲区、变长解码模块,用于存储二维码表的二维变长编码码表存储模块,该装置还包括用于选择残差系数块类型、宏块量化参数、宏块或子块编码模式的多个码表的码表选择模块,该模块输入端连接残差系数块类型、宏块量化参数、宏块或子块编码模式输入信号线,其码表编号输出端连接变长解码模块,其码表类型比较端与二维变长编码码表存储模块连接。
解码与编码是互逆的过程。以4×4残差系数块为例,具体的解码方法如下:
步骤1、根据系数块类型(inter_luma,intra_luma,chroma)选择解码当前系数块的码表类型;
步骤2、根据4×4残差块所在宏块所采用的量化参数及所在宏块或8×8子块的编码模式选择解码码表;
步骤3、根据当前码表的码字类型Exp-Golomb码或Hybrid-Golomb码及其阶数,从码流中解析出CodeNumber,如果CodeNumber>=39,用特定规则解码CodeNumber得到(level,run),如果CodeNumber<39,查当前码表解码CodeNumber,得到一个语法元素,如果语法元素为EOB,则当前块系数解码完毕结束解码,如果语法元素为(level,run)数对,将当前(level,run)数对存入缓冲区,从码流中解析下一个CodeNumber;
步骤4、用zig-zag扫描的方法将已解码的(level,run)还原为块残差系数。
如果从码流中解析出的CodeNumber>=39,表示不能从当前码表中直接查表得到CodeNumber所对应的(level,run)。这时,需用特定的规则计算得到(level,run)。其过程如下:
如果码字编号的二进制表示其末尾比特为1,则置标志变量sign为0,并将码字编号增1,否则标志变量sign为1,按下列方法求得run和level。
run=((CodeNumber-8)%32)/2;
level=((CodeNumber-8)/32)+LEVRUN[run]。
如果标志变量为1,将由上式得到的level值取反。
以上实施例仅用以说明而非限制本发明的技术方案,本领域的普通技术人员应当理解:可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (12)
1、一种基于上下文的多码表变长编码方法,其特征在于,该方法包括以下步骤:
步骤1:之字形扫描模块对图像块预测残差系数进行之字形扫描,形成图像块的非零系数和按之字形扫描顺序该非零系数到其前第一个非零系数间值为0的系数个数的数对序列并将数对序列存入存储缓冲区中;
步骤2:码表选择模块根据残差系数的类型经与二维变长编码码表存储模块中的码表比较确定编码当前系数块的码表类型;
步骤3:码表选择模块根据残差系数的图像块所在宏块采用的量化参数及所在宏块或子块的编码模式,从所选类型的多个码表中选择一个码表送入变长编码模块;
步骤4:变长编码模块根据所选定的码表将存储缓冲区中数对序列的每个数对及块结束标志映射为变长码,并将编码后的变长码写进码流中。
2、根据权利要求1所述的基于上下文的多码表变长编码方法,其特征在于,所述步骤1中的图像块预测残差系数的类型包括帧内预测所得到的亮度分量残差系数类型、帧间预测得到的亮度分量残差系数类型和帧内帧间预测得到的色度分量残差系数类型。
3、根据权利要求1所述的基于上下文的多码表变长编码方法,其特征在于,所述步骤3中的码表是包括帧内预测得到的亮度分量残差系数类型、帧间预测得到的亮度分量残差系数类型及帧内帧间预测色度分量残差系数类型的一个或一个以上码表。
4、根据权利要求1所述的基于上下文的多码表变长编码方法,其特征在于,所述步骤3中的宏块或子块编码模式包括帧内预测宏块模式和帧间预测宏块模式,帧内预测宏块模式为帧内预测的方向,帧间预测宏块模式为宏块的帧间预测方式,预测方向包括前向预测、后向预测、双向预测,预测方式为把宏块分割为不同块大小所对应的预测方式。
5、根据权利要求1所述的基于上下文的多码表变长编码方法,其特征在于,所述步骤3中的从多个码表中选择一个码表的方法包括根据残差系数的图像块所在宏块采用的量化参数选择码表、根据残差系数图像块所在宏块或子块编码模式选择码表和同时根据量化参数与编码模式选择码表三种方法。
6、根据权利要求1所述的基于上下文的多码表变长编码方法,其特征在于,所述步骤4进一步包括下述步骤:
步骤41、判断数对序列中的数对是否包含在码表中,如果是则直接从码表中查表得到用于其编码的码字编号,否则计算得到用于其编码的码字编号;
步骤42、根据当前码表采用的码字类型及其阶数,按码字编号计算得到数对的变长码,写进码流;
步骤43、判断是否编完数对序列中的所有数对,是则采用当前码表编码块结束标志,完成此块的编码,否则转步骤41。
7、根据权利要求6所述的多码表上下文变长编码方法,其特征在于,所述步骤41中的计算具体为按公式:
码字编号=(abs(level)-LEVRUN[run])*32+8+run*2计算码字编号并判断数对序列经变换和量化后的残差图像块的非零系数是否小于0,不是则将码字编号递减1,是则保持码字编号的原值,其中,level为经过离散余弦变换和量化后的残差系数的图像块的非零系数,run为按之字形扫描顺序该非零系数到其前第一个非零系数间值为0的系数个数,LEVRUN[]为当前码表中所包含的(level,run)数对的最大abs(level)值。
8、根据权利要求6所述的多码表上下文变长编码方法,其特征在于,所述步骤42中的码字类型是指数型哥伦布码。
9、根据权利要求7所述的多码表上下文变长编码方法,其特征在于,所述步骤42中的码字类型是混合型哥伦布码。
10、实施权利要求1所述的基于上下文的多码表变长编码方法的编码装置,包括用于对图像块预测残差系数进行扫描的之字形扫描模块、用于存储数对序列的存储缓冲区、变长编码模块,用于存储二维码表的二维变长编码码表存储模块,其特征在于,该装置还包括用于选择图像块预测残差系数类型、宏块量化参数、宏块或子块编码模式的多个码表的码表选择模块,该模块输入端连接残差系数类型、宏块量化参数、宏块或子块编码模式输入信号线,其码表编号输出端连接变长编码模块,其码表类型比较端与二维变长编码码表存储模块连接。
11、一种基于上下文的多码表变长解码方法,其特征在于,该方法包括以下步骤:
步骤一、码表选择模块根据图像块预测残差系数类型选择解码当前残差系数块的码表类型;
步骤二、码表选择模块根据预测残差系数的图像块在宏块所采用的量化参数及所在宏块或子块的编码模式从所选类型的多个码表中选择一个码表进行解码;
步骤三、变长解码模块根据当前码表从变长码码流中解码出当前预测残差系数块的所有数对序列,并存入存储缓冲区中;
步骤四、之字形扫描模块按反之字形扫描顺序将已解码的上述数对序列还原为图像块预测残差系数。
12、实施权利要求11所述的基于上下文的多码表变长解码方法的解码装置,包括用于对解码的数对序列进行反之字扫描的之字形扫描模块、用于存储数对序列的存储缓冲区、变长解码模块,用于存储二维码表的二维变长编码码表存储模块,其特征在于,该装置还包括用于选择图像块预测残差系数类型、宏块量化参数、宏块或子块编码模式的多个码表的码表选择模块,该模块输入端连接残差系数块类型、宏块量化参数、宏块或子块编码模式输入信号线,其码表编号输出端连接变长解码模块,其码表类型比较端与二维变长编码码表存储模块连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410058401 CN1589023A (zh) | 2004-08-06 | 2004-08-06 | 一种基于上下文的多码表变长编解码方法及编解码装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410058401 CN1589023A (zh) | 2004-08-06 | 2004-08-06 | 一种基于上下文的多码表变长编解码方法及编解码装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1589023A true CN1589023A (zh) | 2005-03-02 |
Family
ID=34603352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410058401 Pending CN1589023A (zh) | 2004-08-06 | 2004-08-06 | 一种基于上下文的多码表变长编解码方法及编解码装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1589023A (zh) |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100440979C (zh) * | 2005-12-15 | 2008-12-03 | 清华大学 | 基于上下文的自适应二维变长解码方法和装置 |
CN100466743C (zh) * | 2006-08-07 | 2009-03-04 | 清华大学 | 一种基于共享存储可编程的熵解码和反量化的方法 |
WO2009097810A1 (zh) * | 2008-01-31 | 2009-08-13 | Huawei Technologies Co., Ltd. | 一种图像熵编码、熵解码的方法及装置 |
CN100593954C (zh) * | 2007-03-28 | 2010-03-10 | 中国科学院微电子研究所 | 一种对哥伦布码进行解码的装置及方法 |
CN101090501B (zh) * | 2006-06-13 | 2010-05-12 | 财团法人工业技术研究院 | 模型搜寻式的可变长度编解码方法与装置 |
CN101147401B (zh) * | 2005-03-25 | 2010-06-16 | 三星电子株式会社 | 使用加权预测的视频编码和解码方法及其设备 |
CN101335897B (zh) * | 2007-06-28 | 2010-08-25 | 联想(北京)有限公司 | 图像压缩/解码方法及系统 |
CN101292537B (zh) * | 2005-11-08 | 2010-10-20 | 松下电器产业株式会社 | 运动图像编码方法、运动图像解码方法以及装置 |
CN102239640A (zh) * | 2008-12-09 | 2011-11-09 | 日本电信电话株式会社 | 编码方法、解码方法、使用这些方法的装置、程序以及记录介质 |
CN102256139A (zh) * | 2010-05-19 | 2011-11-23 | 晨星软件研发(深圳)有限公司 | 媒体编码系统、量化系数编码装置及量化系数编码方法 |
US8121418B2 (en) | 2006-03-27 | 2012-02-21 | Qualcomm Incorporated | Methods and systems for significance coefficient coding in video compression |
CN102939756A (zh) * | 2010-04-16 | 2013-02-20 | Sk电信有限公司 | 视频编码/解码设备和方法 |
CN103004194A (zh) * | 2010-05-19 | 2013-03-27 | Sk电信有限公司 | 图像编码/解码设备和方法 |
CN103384325A (zh) * | 2013-02-22 | 2013-11-06 | 张新安 | 一种avs-m视频编码快速帧间预测模式选择方法 |
CN104247420A (zh) * | 2012-04-16 | 2014-12-24 | 高通股份有限公司 | 转换系数译码 |
CN104717502A (zh) * | 2009-04-08 | 2015-06-17 | 夏普株式会社 | 运动图像编码装置以及运动图像解码装置 |
CN105592313A (zh) * | 2014-10-21 | 2016-05-18 | 广东中星电子有限公司 | 一种分组自适应熵编码压缩方法 |
CN105704490A (zh) * | 2010-04-16 | 2016-06-22 | Sk电信有限公司 | 视频编码设备 |
CN106464266A (zh) * | 2014-06-09 | 2017-02-22 | 索尼公司 | 具有编码机制的通信系统及其操作方法 |
CN107197263A (zh) * | 2011-01-12 | 2017-09-22 | 太阳专利托管公司 | 图像解码方法及图像解码装置 |
CN107517384A (zh) * | 2011-06-16 | 2017-12-26 | Ge视频压缩有限责任公司 | 支持模式切换的熵编码 |
CN110599493A (zh) * | 2018-06-12 | 2019-12-20 | 财团法人工业技术研究院 | 数值阵列数据影像处理装置、方法及色码表产生方法 |
WO2020062125A1 (zh) * | 2018-09-29 | 2020-04-02 | 富士通株式会社 | 图像编码方法、装置以及电子设备 |
CN111641827A (zh) * | 2019-03-02 | 2020-09-08 | 上海天荷电子信息有限公司 | 多套方案切换进行预测残差熵编码的数据压缩方法和装置 |
CN116684003A (zh) * | 2023-07-27 | 2023-09-01 | 南京中科齐信科技有限公司 | 一种基于量子通信的铁路沿线空地综合监测方法及系统 |
-
2004
- 2004-08-06 CN CN 200410058401 patent/CN1589023A/zh active Pending
Cited By (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101147401B (zh) * | 2005-03-25 | 2010-06-16 | 三星电子株式会社 | 使用加权预测的视频编码和解码方法及其设备 |
CN101292537B (zh) * | 2005-11-08 | 2010-10-20 | 松下电器产业株式会社 | 运动图像编码方法、运动图像解码方法以及装置 |
CN100440979C (zh) * | 2005-12-15 | 2008-12-03 | 清华大学 | 基于上下文的自适应二维变长解码方法和装置 |
US8121418B2 (en) | 2006-03-27 | 2012-02-21 | Qualcomm Incorporated | Methods and systems for significance coefficient coding in video compression |
CN101427584B (zh) * | 2006-03-27 | 2012-03-21 | 高通股份有限公司 | 用于在视频压缩中进行有效系数编码的方法及系统 |
CN101090501B (zh) * | 2006-06-13 | 2010-05-12 | 财团法人工业技术研究院 | 模型搜寻式的可变长度编解码方法与装置 |
CN100466743C (zh) * | 2006-08-07 | 2009-03-04 | 清华大学 | 一种基于共享存储可编程的熵解码和反量化的方法 |
CN100593954C (zh) * | 2007-03-28 | 2010-03-10 | 中国科学院微电子研究所 | 一种对哥伦布码进行解码的装置及方法 |
CN101335897B (zh) * | 2007-06-28 | 2010-08-25 | 联想(北京)有限公司 | 图像压缩/解码方法及系统 |
WO2009097810A1 (zh) * | 2008-01-31 | 2009-08-13 | Huawei Technologies Co., Ltd. | 一种图像熵编码、熵解码的方法及装置 |
CN102239640A (zh) * | 2008-12-09 | 2011-11-09 | 日本电信电话株式会社 | 编码方法、解码方法、使用这些方法的装置、程序以及记录介质 |
CN102239640B (zh) * | 2008-12-09 | 2015-01-07 | 日本电信电话株式会社 | 编码方法、解码方法、使用这些方法的装置 |
CN104104391B (zh) * | 2008-12-09 | 2017-04-26 | 日本电信电话株式会社 | 编码方法以及编码装置 |
CN104717503B (zh) * | 2009-04-08 | 2018-12-04 | 夏普株式会社 | 运动图像编码装置以及运动图像解码装置 |
CN104717502B (zh) * | 2009-04-08 | 2018-06-22 | 夏普株式会社 | 运动图像编码装置以及运动图像解码装置 |
CN104717503A (zh) * | 2009-04-08 | 2015-06-17 | 夏普株式会社 | 运动图像编码装置以及运动图像解码装置 |
CN104717502A (zh) * | 2009-04-08 | 2015-06-17 | 夏普株式会社 | 运动图像编码装置以及运动图像解码装置 |
CN105187827B (zh) * | 2010-04-16 | 2019-01-11 | Sk电信有限公司 | 视频解码方法 |
US9743085B2 (en) | 2010-04-16 | 2017-08-22 | Sk Telecom Co., Ltd. | Video encoding/decoding apparatus and method using batch mode together with skip mode |
US10250881B2 (en) | 2010-04-16 | 2019-04-02 | Sk Telecom Co., Ltd. | Video encoding/decoding apparatus and method using batch mode together with skip mode |
CN104837016A (zh) * | 2010-04-16 | 2015-08-12 | Sk电信有限公司 | 视频解码设备 |
CN105187827A (zh) * | 2010-04-16 | 2015-12-23 | Sk电信有限公司 | 视频解码方法 |
CN105306943A (zh) * | 2010-04-16 | 2016-02-03 | Sk电信有限公司 | 视频编码方法 |
CN102939756B (zh) * | 2010-04-16 | 2016-03-02 | Sk电信有限公司 | 视频编码/解码设备和方法 |
CN102939756A (zh) * | 2010-04-16 | 2013-02-20 | Sk电信有限公司 | 视频编码/解码设备和方法 |
CN105704490A (zh) * | 2010-04-16 | 2016-06-22 | Sk电信有限公司 | 视频编码设备 |
CN104837016B (zh) * | 2010-04-16 | 2018-10-09 | Sk电信有限公司 | 视频解码设备 |
US9451270B2 (en) | 2010-04-16 | 2016-09-20 | Sk Telecom Co., Ltd. | Video encoding/decoding apparatus and method using batch mode together with skip mode |
CN105704490B (zh) * | 2010-04-16 | 2018-07-31 | Sk电信有限公司 | 视频编码设备 |
CN105306943B (zh) * | 2010-04-16 | 2018-07-31 | Sk电信有限公司 | 视频编码方法 |
CN103004194B (zh) * | 2010-05-19 | 2016-08-17 | Sk电信有限公司 | 图像编码/解码设备和方法 |
CN103004194A (zh) * | 2010-05-19 | 2013-03-27 | Sk电信有限公司 | 图像编码/解码设备和方法 |
CN102256139B (zh) * | 2010-05-19 | 2013-10-02 | 晨星软件研发(深圳)有限公司 | 媒体编码系统、量化系数编码装置及量化系数编码方法 |
CN102256139A (zh) * | 2010-05-19 | 2011-11-23 | 晨星软件研发(深圳)有限公司 | 媒体编码系统、量化系数编码装置及量化系数编码方法 |
CN107197263B (zh) * | 2011-01-12 | 2019-11-19 | 太阳专利托管公司 | 图像解码方法及图像解码装置 |
US11770536B2 (en) | 2011-01-12 | 2023-09-26 | Sun Patent Trust | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus |
CN107197263A (zh) * | 2011-01-12 | 2017-09-22 | 太阳专利托管公司 | 图像解码方法及图像解码装置 |
US11350096B2 (en) | 2011-01-12 | 2022-05-31 | Sun Patent Trust | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus |
US10638134B2 (en) | 2011-01-12 | 2020-04-28 | Sun Patent Trust | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus |
CN107517384A (zh) * | 2011-06-16 | 2017-12-26 | Ge视频压缩有限责任公司 | 支持模式切换的熵编码 |
CN107517384B (zh) * | 2011-06-16 | 2020-06-30 | Ge视频压缩有限责任公司 | 解码器、编码器、解码方法、编码方法以及存储介质 |
CN104247420A (zh) * | 2012-04-16 | 2014-12-24 | 高通股份有限公司 | 转换系数译码 |
CN103384325A (zh) * | 2013-02-22 | 2013-11-06 | 张新安 | 一种avs-m视频编码快速帧间预测模式选择方法 |
CN106464266B (zh) * | 2014-06-09 | 2019-11-15 | 索尼公司 | 具有编码机制的通信系统及其操作方法 |
CN106464266A (zh) * | 2014-06-09 | 2017-02-22 | 索尼公司 | 具有编码机制的通信系统及其操作方法 |
CN105592313A (zh) * | 2014-10-21 | 2016-05-18 | 广东中星电子有限公司 | 一种分组自适应熵编码压缩方法 |
CN105592313B (zh) * | 2014-10-21 | 2018-11-13 | 广东中星电子有限公司 | 一种分组自适应熵编码压缩方法 |
CN110599493A (zh) * | 2018-06-12 | 2019-12-20 | 财团法人工业技术研究院 | 数值阵列数据影像处理装置、方法及色码表产生方法 |
WO2020062125A1 (zh) * | 2018-09-29 | 2020-04-02 | 富士通株式会社 | 图像编码方法、装置以及电子设备 |
CN111641827A (zh) * | 2019-03-02 | 2020-09-08 | 上海天荷电子信息有限公司 | 多套方案切换进行预测残差熵编码的数据压缩方法和装置 |
CN116684003A (zh) * | 2023-07-27 | 2023-09-01 | 南京中科齐信科技有限公司 | 一种基于量子通信的铁路沿线空地综合监测方法及系统 |
CN116684003B (zh) * | 2023-07-27 | 2023-10-24 | 南京中科齐信科技有限公司 | 一种基于量子通信的铁路沿线空地综合监测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1589023A (zh) | 一种基于上下文的多码表变长编解码方法及编解码装置 | |
CN1214649C (zh) | 用于视频预测残差系数编码的熵编码方法 | |
CN1224268C (zh) | 运动图象编码装置及运动图象解码装置 | |
TWI590649B (zh) | 視訊之算術解碼裝置 | |
KR101622450B1 (ko) | 변환을 이용하는 비디오 인코딩 및 디코딩 | |
CN100348051C (zh) | 一种增强型帧内预测模式编码方法 | |
CN101090495B (zh) | 处理视频数据的方法和系统 | |
CN100488254C (zh) | 一种基于上下文的熵编码方法及解码方法 | |
KR101573338B1 (ko) | 변환 계수 레벨의 엔트로피 복호화를 위한 파라메터 업데이트 방법 및 이를 이용한 비디오 복호화 방법 및 장치 | |
KR101918957B1 (ko) | 계층적 가변 블록 변환이 가능한 부호화 방법 및 장치 그리고 복호화 방법 및 장치 | |
JP2018046573A (ja) | ビデオ復号化方法及びその装置 | |
CN101895756B (zh) | 视频图像块的编码、解码、重构方法及系统 | |
CN1431828A (zh) | 在图像和视频的编码/解码中的变换系数的最佳扫描方法 | |
CN1695168A (zh) | 视频信息编码方法和视频信息解码方法 | |
CN103650496A (zh) | 用于在hevc中编码的基于像素的帧内预测 | |
CN104994385A (zh) | 用于使用分层数据单元进行编码和解码的方法和设备 | |
TW201540049A (zh) | 資料編碼與解碼 | |
CN1777283A (zh) | 一种基于微块的视频信号编/解码方法 | |
CN1669235A (zh) | 在混合视频codec比特流之间进行码转换的方法和装置 | |
CN1149853C (zh) | 带有运动补偿的编码和译码装置 | |
CN1268136C (zh) | 基于图像切片结构的帧场自适应编码方法 | |
CN100337481C (zh) | 一种mpeg-2到avs视频码流格式转换方法及其装置 | |
CN107343199B (zh) | 用于hevc中样点的快速自适应补偿方法 | |
CN105120275B (zh) | 帧内模式决策中并行cabac-r算法的实现方法 | |
KR20110079404A (ko) | 엔트로피 코딩의 성능 향상 방법 및 상기 방법을 이용한 비디오 코딩 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |