CN101267561A - 图像解码装置和图像解码方法 - Google Patents
图像解码装置和图像解码方法 Download PDFInfo
- Publication number
- CN101267561A CN101267561A CNA2008100829476A CN200810082947A CN101267561A CN 101267561 A CN101267561 A CN 101267561A CN A2008100829476 A CNA2008100829476 A CN A2008100829476A CN 200810082947 A CN200810082947 A CN 200810082947A CN 101267561 A CN101267561 A CN 101267561A
- Authority
- CN
- China
- Prior art keywords
- run
- mentioned
- decoding
- zerosleft
- remainder
- 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
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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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/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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种图像解码装置和图像解码方法,该图像解码装置具备:位流更新输出部,输入位流,并根据其代码长度更新并输出处于该位流的开头的语法元素;位流解码部,根据解码要求对来自位流更新输出部的语法元素的可变长度代码进行解码;zerosLeft更新部,由被解码了的特定的语法元素来更新zerosLeft;run_before余数更新部,由被解码了的特定的语法元素来更新run_before的余数;以及语法选择部,选择应解码的语法元素,一次性地对多个零run_before和1个非零run_before、或多个零run_before进行解码。
Description
相关的申请的相互参照
本申请基于在2007年3月13日提交的先前的日本专利申请第2007-63827号并要求其优先权,此处引入其全部内容作为参考。
技术领域
本发明涉及对用H.264形式进行了编码的图像编码位流(被编码了的图像数据)进行解码的图像解码装置和图像解码方法。
背景技术
在被称为ITU-T建议的H.264/AVC(Advanced video coding(先进视频编码))的技术(以下单单称为H.264)中,规定了以表示被编码了的数据列(位流)的设定准则的规则(语法)传送DCT系数或运动矢量等。
例如,为了对运动图像数据进行压缩编码来传送,而得到亮度或色差的输入数据和基于1个画面前的数据的运动补偿输出的每个处理块的运动预测误差(残留误差块),对该残留误差块的DCT系数进行量子化和可变长度编码,并传送到解码器一侧。
在DCT系数的编码中,可使用CAVLC(Context-AdaptiveVariableLength Coding,上下文自适应变长编码)作为高级的编码方法。DCT变换的处理块尺寸(处理单位)例如是4×4,将16个DCT系数被分解为以下那样的6个语法元素(以下单单称为语法)的信息(run_before、level、TotalCoeff、total_zeros、TrainingOnes、training_ones_sign_flag),根据该6个信息,可在唯一地确定全部的16个系数。
run_before是非零系数值之前的0的连续个数,level是非零系数值,TotalCoeff是非零系数的个数,total_zeros是最后的非零系数以前的0的个数,TrainingOnes是在最后连续的绝对值1的系数的个数,training_ones_sign_flag是在最后连续的绝对值1的系数的符号。
在解码器一侧,根据上述6个信息(run_before、level、TotalCoeff、total_zeros、TrainingOnes、training_ones_sign_flag),可对例如按zigzag扫描的顺序进行了量化的全部的DCT系数进行解码(decode)。
在残留误差块中存在(非零系数的个数-1)个run_before语法,在使用H.264标准书中所确定的表进行解码的情况下,用一次解码指令只能对run_before语法内的1个进行解码。即,在以往,有必要分别对于非零run_before(run_before≠0)、零run_before(run_before≈0)1个1个进行解码动作。
因而,非零系数的个数(即系数数据的个数)越多,其残留误差块的处理循环数越增大,存在涉及解码性能恶化的问题。
再有,在1个代码列(位流)中,存在(非零系数的个数-1)个大小的run_before。(非零系数的个数-1)个也可表现为(TotalCoeff)-1。
另一方面,作为关于H.264的编码和解码的以往技术,例如有在日本国的特开2006-135786号公报中记载了的技术。但是,在特开2006-135786号公报中未记载关于可抑制解码处理循环数增大的技术。
发明内容
按照本申请发明的一个方式,提供下述的图像解码装置,其特征在于,具备:位流更新输出部,输入位流,并根据其代码长度更新并输出处于该位流的开头的语法元素;位流解码部,根据解码要求对来自上述位流更新输出部的语法元素的可变长度代码进行解码;zerosLeft更新部,使用由上述位流解码部进行了解码的特定的语法元素更新zerosLeft;run_before余数更新部,使用由上述位流解码部进行了解码的特定的语法元素更新run_before的余数;以及语法选择部,选择由上述位流解码部应解码的语法元素,一次性地对多个零run_before和1个非零run_before、或多个零run_before进行解码。
按照本申请发明的另一个方式,提供下述的图像解码方法,其特征在于:将处于所输入的位流的开头的语法元素根据其代码长度更新并输出,对于应解码的语法元素发出解码指示,根据上述解码指示对上述语法元素的可变长度代码进行解码,用被解码了的特定的语法元素更新run_before的余数,用被解码了的特定的语法元素更新zerosLeft,将上述zerosLeft和上述位流的开头作为输入,使用第1表组(20Xa)一次性地对多个零run_before和1个非零run_before进行解码,或者,将上述zerosLeft、上述位流的开头和上述run_before的余数作为输入,使用第2表组(20Xb)一次性地对多个零run_before进行解码。
按照本申请发明的另一个方式,提供下述的图像解码方法,其特征在于:将处于所输入的位流的开头的语法元素根据其代码长度进行更新并输出,根据解码要求对上述语法元素的可变长度代码进行解码,用被解码了的特定的语法元素更新run_before的余数,用被解码了的特定的语法元素更新zerosLeft,将上述zerosLeft和上述位流的开头作为输入,使用第1表组(20Xa)一次性地对多个零run_before和1个非零run_before进行解码,或者,将上述zerosLeft、上述位流的开头和上述run_before的余数作为输入,使用第2表组(20Xb)一次性地对多个零run_before进行解码。
附图说明
图1是本发明的一实施方式的图像解码装置的框图。
图2A~N是表示在本发明的实施方式中使用的表20Xa和20Xb的图。
图3是图1的解码处理动作的说明图。
图4是表示选择可变长度代码解码装置中的表20Xa和20Xb的一方的硬件结构的框图。
图5是说明run_before的余数的说明图。
图6是在本发明的实施方式中使用的run_before的余数更新电路的框图。
图7是表示作为被编码了的数据列的位流的一个例子的图。
图8是作为本发明的相关技术的图像解码装置的框图。
图9A~G是表示在图8的相关技术中使用的表组(与H.264标准书相同)的图。
图10是图8的解码处理工作的说明图。
具体实施方式
参照附图说明发明的实施方式。
在参照图1至图6说明本发明的实施方式之前,参照图7至图10来说明关于本发明的相关技术。
图7是表示作为可变长度编码了的数据的位流的一个例子的图。位流由表示其设定准则的多个语法元素(以下单单称为语法)构成。例如,位流如图7那样,如语法A、语法E、......run_before语法、......那样,多个语法连续地流动过来。记号↓表示了从该处起是包含(非零系数的个数-1)个run_before的语法的run_before语法组。为了将包含该既定数的run_before的语法组与各个语法区别开来,有时将其称为run_before语法整体。即,run_before语法的整体具有既定个数的各个run_before的语法。用run_before语法之前的另外的语法部分可检测run_before语法的开始。
对图像解码装置供给用包含run_before语法的多个各种语法构成的位流作为输入数据。对于位流来说,从开头到后端部为止全部用语法来构成,但由于在图像解码装置内的解码部中每当各语法的解码结束就废除解码完的语法,故在图像解码装置内的解码部中每当各语法的解码结束就输入相当于位流的开头的下一个语法。
图8表示了作为本发明的相关技术的图像解码装置的框图。
图8中表示的图像解码装置400是用于进行run_before语法的解码的硬件结构,具备FIFO装置401、可变长度代码解码装置402、zerosLeft更新装置403和语法选择装置404。可变长度代码解码装置402具备表501~507的表组。后面叙述zerosLeft。
以下说明图8的动作。
FIFO装置401取入被进行了可变长度编码的位流(bitstream),按输入的顺序来进行输出。在FIFO装置401中,一边接连不断地更新处于位流的开头的语法,一边将其输入到可变长度代码解码装置402中。可变长度代码解码装置402在位流的开头从FIFO装置401来时就知道是哪个语法来了,如果进行该语法的解码处理结束,则检测进行了解码处理的语法的代码长度。然后,将已检测到的代码长度通知FIFO装置401。FIFO装置401接受代码长度的通知,该代码长度大小的语法作为是解码处理完的语法而废除。由此,从FIFO装置401输出下一个位流的数据(下一个语法)的开头,即更新语法,发送给可变长度代码解码装置402。在可变长度代码解码装置402中再次进行下一个语法的解码处理和代码长度通知,对于各语法中的每一个进行解码。
如果可变长度代码解码装置402首先从语法选择装置404接受total_zeros的解码指示,则对total_zeros语法进行解码,与有效信号(valid)一起发送给zerosLeft更新装置403。zerosLeft更新装置403更新zerosLeft。zerosLeft更新装置403与各自的有效信号一起输入用可变长度代码解码装置402进行了解码的total_zeros(zerosLeft的初始值)和进行了解码的run_before,每当输入run_before就使用更新运算式(zerosLeft-run_before),将total_zeros作为zerosLeft的初始值进行更新运算,更新zerosLeft直到zerosLeft变成0为止。zerosLeft意味着在对解码预定的自身的run_before进行解码时留下的run_before的数目,初始值与total_zeros相等。
其次,如果可变长度代码解码装置402从语法选择装置404接受run_before的解码指示,则从zerosLeft更新装置403受理zerosLeft,根据zerosLeft信息从图9A~G中分别表示的表组501~507中决定(选择)所使用的解码用表。此时,与zerosLeft信息对应的表被选择。使用所决定的解码用表可得到run_before的解码输出。
然后,与valid信号一起,将从表取得了的run_before的值(解码输出)发送给zerosLeft更新装置403。zerosLeft更新装置403使用run_before的值,根据更新运算式来更新zerosLeft。如果被更新后的zerosLeft是非零,则语法选择装置404再次进行run_before的解码指示。重复run_before的解码和使用了该解码值的zerosLeft的更新,直到zerosLeft为0。
其次,参照表示图9A~G的表组(501~507)的图和图10的动作说明图,说明图8的可变长度代码解码装置402的解码处理动作。
以作为可变长度编码后的位流(bitstream)表示的run_before语法整体如图7那样是‘11111110010’的情况为例来说明。
在图10中,‘bitstream’表示作为进行了可变长度编码后的位流的run_before语法‘11111110010’,‘table’表示在图9A~G中表示的表组(501~507)内对每个语法(在图9A~G中作为输入表示的每个1位~3位)所选择的各解码用表的编号,‘值’表示run_before(有时简单地记为rb)的解码值,‘更新’与zerosLeft(有时简单地记为zL)的更新、即所使用的解码用表的更新相对应。再有,在图10中,zL-rb(=zerosLeft-run_before)表示zerosLeft更新装置403的更新运算式,‘bitstream’的每2位(但是最后是1位)的下划线表示了解码处理的1个循环量。
在可变长度代码解码装置402中,首先根据比run_before的语法更前发送来的zerosLeft语法,选择并参照图9A~G中表示了的run_before的解码用表。如果将zerosLeft语法的初始值定为zerosLeft=3(=total_zeros),则表503被选择。在表503中,由于表示了开头的2位作为输入,故如果输入bitstream的开头的2位的语法‘11’,则根据表503,作为解码输出的run_before变为‘0’(rb=0)。该情况的代码长度是2。此时的更新运算式的结果为zL-rb=3,zerosLeft与初始值相同,table无更新。其结果,由于即使对于下一个2位的语法‘11’也使用相同的表503,故同样地rb=0,zL-rb=3,zerosLeft与初始值相同,没有table的更新。因而,即使对于其下一个第3个2位的语法‘11’也一样,使用相同的表503。而且,进一步关于接着的第4个2位的语法‘10’,根据表503,作为解码输出的run_before变为‘1’(rb=1)。此时的更新运算式的结果为zL-rb=2,zerosLeft=2,zerosLeft的值被更新。再有,每当位流的开头的语法被更新,语法选择装置404就进行解码指示。
因而,接着使用的解码用表成为与zerosLeft=2对应的表502。如果输入bitstream的第5个2位的语法‘01’,则根据表502,作为解码输出的run_before变为‘1’(rb=1),更新运算式成为zL-rb=1,zerosLeft=1,zerosLeft的值被更新。该情况的代码长度是2。
因而,接着使用的解码用表成为与zerosLeft=1对应的表501。表501的输入为1位。如果输入bitstream的第6个1位的语法‘0’,则根据表501,作为解码输出的run_before为‘1’(rb=1)。该情况的代码长度是1。此时的更新运算式zL-rb=0,解码处理结束。
如果用图8的硬件结构而且使用图9A~G中表示了的解码处理用的表组,则尽管在4个语法中使用相同的表503然而对每1个语法必须进行解码指示和更新运算的结果,整体的解码处理的循环数(解码指示和更新运算)为6个。
[第1实施方式]
图1表示了本发明的第1实施方式的图像解码装置的框图。
图1中表示的图像解码装置100是用于进行run_before语法的解码的硬件结构。
图像解码装置100的特征在于,具备:作为位流更新输出部的FIFO装置101,输入用可变长度代码的多个语法构成的位流(bitstream),根据其代码长度更新并输出处于位流的开头的语法;作为位流解码部的可变长度代码解码装置102,根据解码要求对来自FIFO装置101的语法的可变长度代码进行解码;zerosLeft更新装置103,将用可变长度代码解码装置102进行了解码的特定的语法(例如total_zeros)用作初始值来更新zerosLeft;run_before的余数更新装置104,将用可变长度代码解码装置102进行了解码的特定的语法(例如TotalCoeff)用作初始值来更新run_before的余数;以及语法选择装置105,选择用可变长度代码解码装置102应解码的语法,其中,一次性地对多个零run_before(意味着run_before=0的数目是多个)的语法以及1个非零run_before(意味着run_before≠0的数目是1个)的语法或多个是零的run_before的语法进行解码。可变长度代码解码装置102具备解码用的表201a~207b的表组。此外,如图6中所示,run_before的余数更新装置104具备作为选择电路的多路复用器(MUX)301、寄存器302和减法器303而构成(关于图6,后面叙述)。
说明图1的动作。
可变长度代码解码装置102从FIFO装置101受理bitstrem(位流)的开头部分作为输入数据(语法)。
如果可变长度代码解码装置102从语法选择装置105接受TotalCoeff的解码指示,则对TotalCoeff的语法进行解码,与valid(有效)信号一起发送给run_before的余数更新装置104。run_before的余数更新装置104,如图6中所示,首先用MUX301选择TotalCoeff,作为初始值将相当于run_before的个数的最大值的(TotalCoeff)-1写入到寄存器302中(关于图6,后面叙述)。
其次,如果可变长度代码解码装置102从语法选择装置105接受total_zeros的解码指示,则对total_zeros进行解码,与valid(有效)信号一起发送给zerosLeft更新装置103。zerosLeft更新装置103将total_zeros作为初始值,更新zerosLeft。
其次,如果可变长度代码解码装置102从语法选择装置105接受run_before的解码指示,则从zerosLeft更新装置103、run_before的余数更新装置104分别受理zerosLeft、run_before的余数,首先从zerosLeft信息来决定表的编号(201a~207b)(参照图2A~N)(将表201a~207b分成下标a的表和下标b的表,记为20Xa和20Xb。因而,意味着20Xa与图2A、2C、2E、2G、2I、2K和2M中表示的下标a的表201a~207a的某一个相对应、20Xb与图2B、2D、2F、2H、2J、2L和2N中表示的下标b的表201b~207b的某一个相对应。)。
接着,可变长度代码解码装置102查从输入bitstream的开头、run_before的余数选择了的表编号的下标b的表(20Xb)。如果在bitstream的开头和run_before的余数中与20Xb的表的输入一致,则将与该输入对应的run_before的个数和run_before=0作为输出来选择。如果没有与20Xb的表的输入一致的部分,则查20Xa的表,将与bitstream的开头对应的run_before的个数和run_before的值作为输出来选择。
然后,可变长度代码解码装置102将所选择的run_before的值与run_before的valid(有效)信号一起发送给zerosLeft更新装置103,将run_before的valid(有效)信号、所选择的run_before的个数发送给run_before的余数更新装置104。
zerosLeft更新装置103具有与在图8中叙述了的zerosLeft更新装置403同样的功能,与各自的有效信号一起输入用可变长度代码解码装置102进行了解码的total_zeros(zerosLeft的初始值)和被解码了的run_before,每当输入run_before,使用更新运算式(zerosLeft-run_before),将total_zeros作为zerosLeft的初始值进行更新运算,更新zerosLeft直到zerosLeft为0为止。
zerosLeft更新装置103更新zerosLeft,run_before的余数更新装置104如图6中所示,用MUX301选择由减法器303从位于寄存器302中的run_before的余数减去用可变长度代码解码装置102取得了的run_before的个数得到的值,更新寄存器302的值。如果用zerosLeft更新装置103更新了的zerosLeft是非零、且run_before的余数更新装置104的run_before的余数是非零,则语法选择装置105再次进行run_before的解码指示。重复run_before的解码,直到zerosLeft或run_before的余数为0为止。
在进行了以上那样解码动作的情况下,可在1个循环进行run_before=0的run_before语法的解码。例如在run_before的解码阶段中bitstream的开头是‘1101’、zerosLeft是2、run_before的余数是6的情况下,若使用本实施方式的图像解码装置进行解码,则首先根据zerosLeft信息‘2’,选择表202a/202b。因为run_before的余数是6,故在表202b中没有对应的输入项目,接着,查表202a。从表202a的输入项目上看,‘1101’与第5个一致,由于作为输出,run_before的个数是3(2),故对2个run_before=0的run_before语法进行解码,对1个run_before=1的run_before语法进行解码。再有,在表20Xa中,关于run_before的个数3(2),‘3’是run_before的个数,‘2’是run_before=0的个数。因而,run_before≠0的个数是1个。
在上述例子那样的情况下,在本发明的实施方式中,3个run_before语法的解码用1次解码指示就可以了。与此相对,如图9A~G中所示,如果按照H.264标准书使用表501~507进行解码,则这样的情况有必要进行3次解码指示。
再有,作为结构的补充,也可作成同时选择20Xa/20Xb的表、如果与20Xb的输入项目一致,就选择20Xb的输出值、除此以外就选择20Xa的输出值的结构。此外,也可作成使用了将20Xa/20Xb这2种表合在一起的表(假定为20X)的结构。
其次,参照表示图2A~N的表组(201a~207b)的图和图3的动作说明图,具体地说明图1的图像解码装置100的动作。
图2A和图2B分别表示表201a和201b,图2C和图2D分别表示表202a和202b,图2E和图2F分别表示表203a和203b,图2G和图2H分别表示表204a和204b,图2I和图2J分别表示表205a和205b,图2K和图2L分别表示表206a和206b,图2M和图2N分别表示表207a和207b。
以作为位流(bitstream)表示的run_before语法整体如图8那样是‘11111110010’的情况为例来说明。
在图3中,‘bitstream’表示作为位流的run_before语法‘11111110010’,‘table’表示在图2A~N的表组(201a~207b)的各表的编号,‘值’表示run_before(有时简单地记为rb)的值,‘个数’表示run_before的个数,‘更新’与zerosLeft(有时简单地记为zL)的更新(即所使用的table的更新)相对应。再有,zL-rb(=zerosLeft-run_before)表示图1的zerosLeft更新装置103的更新运算式,每个项目的下划线表示了按照下划线的划分来解码处理的1个循环量。此外,在‘个数’中例如4(3)表示了‘4’是run_before的个数,其中的‘3’是run_before=0的个数。
在run_before语法到来之前,将给出zerosLeft的初始值的total_zeros语法输入到可变长度代码解码装置102中。
首先,可变长度代码解码装置102根据zerosLeft语法选择并参照图2A~N中表示了的run_before的表。如果将zerosLeft语法的初始值定为zerosLeft=3(=total_zeros),则选择表203a/203b。作为bitstream,run_before语法的开头的8位的‘11111110’的输入存在于表203a中。如果输入开头的8位‘11111110’,则通过参照表203a,作为解码输出的run_before变为‘1’(rb=1)。该情况的代码长度是8。此时的zerosLeft更新装置103中的更新运算式的结果为zL-rb=2,zerosLeft=2,zerosLeft被更新。
再有,在该情况下,关于开头的8位‘11111110’,如果按照H.264标准书使用图9A~G的表501~507进行解码,则如图10中说明了的那样,由于关于输入‘11’‘11’‘11’‘10’的各自的语法,作为输出的run_before变为0,0,0,1,故在图2E的表203a中作为针对输入‘11111110’的输出的run_before的个数定为4(3),作为run_before的值,记为1。
根据基于针对上述开头8位的解码输出(在图3中表示的rb=1)的运算结果(zerosLeft=2),接着使用的解码用表选择与zerosLeft=2对应的表202a/202b。如果输入接着的2位的语法‘01’作为bitstream,则输入‘01’存在于表202a中。通过参照表202a,作为解码输出的run_before变为‘1’(rb=1),更新运算式变为zL-rb=1,zerosLeft=1,zerosLeft被更新。
因而,接着使用的解码用表选择与zerosLeft=1对应的表201a/201b。如果输入最后的1位的语法‘0’作为bitstream,则由于输入‘0’存在于表201a中,故通过参照表201a,作为解码输出的run_before变为‘1’(rb=1)。此时,更新运算式变为zL-rb=0,解码处理结束。
如果用图1的硬件结构而且使用图2A~N中表示的解码处理用的表组(201a~207b),则使用相同的表203a的解码处理循环变为1个的结果,对于4个语法用1次解码指示和更新运算就可以了,整体的解码处理的循环数(解码指示和更新运算次数)变为3个。即,用比图8、图9A~G以及图10的相关技术中表示了的个数(6个)少的处理循环数就可对run_before语法进行解码。
图4表示了进行可变长度代码解码装置102中的表20Xa和20Xb(例如上述的表203a和203b)的一方的表的选择的硬件结构,图5表示了说明对图4的硬件输入的run_before的余数的图。
在图4中,对可变长度代码解码装置102输入run_before语法整体‘11111110010’内的‘11111110’作为bitstream。对表203a供给该输入,同时对表203b供给该输入。对于图2E的表203a中的输入‘11111110’,作为输出,是run_before的个数‘4(3)’,且可输出run_before=1。此外,对于图2F的表203b中的输入‘111111’,作为输出,是run_before的个数‘3(3)’,且可输出run_before=0。然后,根据后述的run_before的余数用在可变长度代码解码装置102内设置了的选择装置102A切换并输出表203a和203b的输出内的一方的输出。在选择装置102A中,如果run_before的余数比3大,则选择表203a的输出,如果run_before的余数与3相等,则选择并输出表203b的输出。
换言之,第1表组(20Xa)将zerosLeft和bitstream的开头定为输入,可一次性地对多个是零的run_before和1个非零run_before进行解码。第2表组(20Xb)将zerosLeft、bitstream的开头和run_before的余数设为输入,可一次性地对多个是零的run_before进行解码。
关于run_before的余数,参照图5来说明。如果考虑run_before语法整体‘11111110010’作为bitstream,则所谓run_before的余数是6,指的是将该11位的解码前的数‘11111110010’作为解码处理单位并从开头起按照每2位划分出的‘11’‘11’‘11’‘10’‘01’‘0’这6个语法,所谓run_before的余数是5,指的是将解码前的数‘11111110010’定为解码处理单位并从开头起按照每2位划分出的‘11’‘11’‘11’‘10’‘01’这5个语法,所谓run_before的余数是4,指的是将解码前的数‘11111110010’作为解码处理单位并从开头起按照每2位划分出的‘11’‘11’‘11’‘10’这4个语法,所谓run_before的余数是3,指的是将解码前的数‘11111110010’作为解码处理单位并从开头起按照每2位划分出的‘11’‘11’‘11’这3个语法,所谓run_before的余数是2,指的是将解码前的数‘11111110010’作为解码处理单位并从开头起按照每2位划分出的‘11’‘11’这2个语法,所谓run_before的余数是1,指的是将解码前的数‘11111110010’作为解码处理单位并从开头起按照每2位划分出的‘11’的1个语法。在run_before的余数为5,4,3,2,1的情况下,意味着从该处起解码的run_before的个数分别是5,4,3,2,1。因而,例如在run_before的余数为4的情况下,可将‘11111110’之后到来的‘010’解释为与run_before不同的另外的语法。
图6表示了run_before的余数更新装置104的框图。
如图6中所示,run_before的余数更新装置104具备:寄存器302,将特定的语法(例如TotalCoeff)以可更新为run_before的余数的初始值地进行保持;减法器303,从在寄存器302中保持的run_before的余数中减去用可变长度代码解码装置102得到的run_before的个数;以及作为选择电路的多路复用器(MUX)301,输入在寄存器302中使用的特定的语法(例如TotalCoeff)的初始值、来自减法器303的run_before的个数和寄存器302的输出,根据有效的有无,选择某一个输入以供给寄存器302。
run_before的余数更新装置104首先根据来自可变长度代码解码装置102的TotalCoeff的有效信号(valid),用MUX301选择来自可变长度代码解码装置102的TotalCoeff,将(TotalCoeff)-1写入到寄存器302中作为初始值。其次,如果run_before的有效信号(valid)进入,则通过用MUX301选择并输出用减法器303从位于寄存器302中的run_before的余数(最初是初始值)减去run_before的个数得到的值,更新寄存器302的值。即,每当按照run_before的解码处理单位解码处理完成时,用可变长度代码解码装置102将来自可变长度代码解码装置102的run_before的个数和run_before的有效信号(valid)输入到run_before的余数更新装置104中,更新寄存器302的值、即run_before的余数。再有,在TotalCoeff的有效信号(valid)或run_before的有效信号(valid)不是有效时,MUX301就选择寄存器302的输出作为输入。
其次,说明由本发明的实施方式得到的效果。
在图8的相关技术的图像解码装置400中,有必要对于非零run_before、零run_before分别1个1个地进行解码动作。因此,解码处理循环数增大,导致解码性能恶化。
在图1的本发明的图像解码装置100中,将作为FIFO装置101的输出的bitstream的开头、作为zerosLeft更新装置103的输出的zerosLeft和作为run_before的余数更新装置104的输出的run_before的余数这3个值作为输入,通过选择表201a~207b中的适当的表并输出与输入一致的值,来用一次解码动作就可对非零run_before(run_before≠0)之前的零run_before(run_before=0)进行解码。即,可用更少的处理循环数解码run_before语法。这一点意味着,本发明中作为run_before的语法,0越多地连在一起,与以往相比解码动作循环数就越少。此外,从原理上看,非零残留误差系数的数目越多,run_before=0就越持续。因而,在非零残留误差系数的数目多、换言之残留误差系数的解码处理循环数多的情况下,可抑制run_before的解码处理循环数,成为特别有益的。由于这一情况可抑制与1个宏模块有关的最高处理循环数,故对解码装置整体的处理能力提高有贡献。
尽管已参照附图描述了本发明的实施例,但应了解本发明不限于这些具体的实施例,在不偏离由后附的权利要求所限定的本发明的精神和范围的情况下,本领域的专业人员可作各种各样的变动和修正。
Claims (10)
1.一种图像解码装置,其特征在于,
具备:
位流更新输出部,输入位流,并根据其代码长度更新并输出处于该位流的开头的语法元素;
位流解码部,根据解码要求对来自上述位流更新输出部的语法元素的可变长度代码进行解码;
zerosLeft更新部,使用由上述位流解码部进行了解码的特定的语法元素更新zerosLeft;
run_before余数更新部,使用由上述位流解码部进行了解码的特定的语法元素更新run_before的余数;以及
语法选择部,选择由上述位流解码部应解码的语法元素,
一次性地对多个零run_before和1个非零run_before、或多个零run_before进行解码。
2.如权利要求1中所述的图像解码装置,其特征在于:
具有将上述zerosLeft和上述位流的开头作为输入、可一次性地对多个零run_before和1个非零run_before进行解码第1表组(20Xa)。
3.如权利要求1中所述的图像解码装置,其特征在于:
具有将上述zerosLeft、上述位流的开头和上述run_before的余数作为输入、可一次性地对多个零run_before进行解码的第2表组(20Xb)。
4.如权利要求1至3的任一项中所述的图像解码装置,其特征在于:
上述run_before余数更新部具备:
寄存器,将特定的语法元素以可更新成run_before的余数的初始值地进行保持;
减法器,从保持在上述寄存器中的run_before的余数减去由上述位流解码部得到的run_before的个数;以及
选择电路,输入上述特定的语法元素的初始值、来自上述减法器的run_before的个数和上述寄存器的输出,根据有效的有无来选择某一个输入,供给上述寄存器,
上述run_before余数更新部中的特定的语法元素是TotalCoeff。
5.一种图像解码方法,其特征在于:
将处于所输入的位流的开头的语法元素根据其代码长度更新并输出,
对于应解码的语法元素发出解码指示,
根据上述解码指示对上述语法元素的可变长度代码进行解码,
用被解码了的特定的语法元素更新run_before的余数,
用被解码了的特定的语法元素更新zerosLeft,
将上述zerosLeft和上述位流的开头作为输入,使用第1表组(20Xa)一次性地对多个零run_before和1个非零run_before进行解码,或者,将上述zerosLeft、上述位流的开头和上述run_before的余数作为输入,使用第2表组(20Xb)一次性地对多个零run_before进行解码。
6.如权利要求5中所述的图像解码方法,其特征在于:
根据来自上述run_before余数更新部的run_before的余数切换上述第1表组(20Xa)的表和上述第2表组(20Xb)的表。
7.如权利要求5中所述的图像解码方法,其特征在于:
同时选择上述第1表组(20Xa)的表和上述第2表组(20Xb)的表,如果与上述第2表组(20Xb)的表的输入项目一致,就选择该表的输出值,除此以外选择第1表组(20Xa)的表的输出值。
8.如权利要求5中所述的图像解码方法,其特征在于:
将上述第1表组(20Xa)和上述第2表组(20Xb)合在一起作为1个表组(20X)。
9.如权利要求5中所述的图像解码方法,其特征在于:
在根据上述解码指示对语法元素run_before进行解码时,在该解码之前对TotalCoeff和total_zeros进行解码作为在上述run_before余数更新和所述zerosLeft更新中使用的特定的语法元素。
10.一种图像解码方法,其特征在于:
将处于所输入的位流的开头的语法元素根据其代码长度进行更新并输出,
根据解码要求对上述语法元素的可变长度代码进行解码,
用被解码了的特定的语法元素更新run_before的余数,
用被解码了的特定的语法元素更新zerosLeft,
将上述zerosLeft和上述位流的开头作为输入,使用第1表组(20Xa)一次性地对多个零run_before和1个非零run_before进行解码,或者,将上述zerosLeft、上述位流的开头和上述run_before的余数作为输入,使用第2表组(20Xb)一次性地对多个零run_before进行解码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007-063827 | 2007-03-13 | ||
JP2007063827A JP2008227946A (ja) | 2007-03-13 | 2007-03-13 | 画像復号装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101267561A true CN101267561A (zh) | 2008-09-17 |
CN101267561B CN101267561B (zh) | 2010-09-15 |
Family
ID=39762658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100829476A Expired - Fee Related CN101267561B (zh) | 2007-03-13 | 2008-03-13 | 图像解码装置和图像解码方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20080225954A1 (zh) |
JP (1) | JP2008227946A (zh) |
CN (1) | CN101267561B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102572437A (zh) * | 2012-02-16 | 2012-07-11 | 复旦大学 | 一种快速解码CAVLC run_before码字的硬件实现方法 |
CN105917408A (zh) * | 2014-01-30 | 2016-08-31 | 高通股份有限公司 | 指示用于译码向量的帧参数可重用性 |
CN107087188A (zh) * | 2011-11-07 | 2017-08-22 | 太格文-Ii有限责任公司 | 图像解码方法及图像解码装置 |
US10499176B2 (en) | 2013-05-29 | 2019-12-03 | Qualcomm Incorporated | Identifying codebooks to use when coding spatial components of a sound field |
US10770087B2 (en) | 2014-05-16 | 2020-09-08 | Qualcomm Incorporated | Selecting codebooks for coding vectors decomposed from higher-order ambisonic audio signals |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011188431A (ja) * | 2010-03-11 | 2011-09-22 | Hitachi Kokusai Electric Inc | 可変長復号装置 |
JP2012253420A (ja) | 2011-05-31 | 2012-12-20 | Toshiba Corp | 可変長符号復号装置、復号システムおよび可変長符号復号方法 |
US9432666B2 (en) * | 2012-03-29 | 2016-08-30 | Intel Corporation | CAVLC decoder with multi-symbol run before parallel decode |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6646578B1 (en) * | 2002-11-22 | 2003-11-11 | Ub Video Inc. | Context adaptive variable length decoding system and method |
KR100959532B1 (ko) * | 2003-12-18 | 2010-05-27 | 엘지전자 주식회사 | Cavlc 복호 방법 |
JP4442891B2 (ja) * | 2004-11-30 | 2010-03-31 | キヤノン株式会社 | 可変長符号化装置及び可変長符号化方法 |
JP2006287862A (ja) * | 2005-04-05 | 2006-10-19 | Canon Inc | 復号化装置 |
JP4379444B2 (ja) * | 2006-07-26 | 2009-12-09 | ソニー株式会社 | 復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置 |
US7573407B2 (en) * | 2006-11-14 | 2009-08-11 | Qualcomm Incorporated | Memory efficient adaptive block coding |
-
2007
- 2007-03-13 JP JP2007063827A patent/JP2008227946A/ja active Pending
-
2008
- 2008-03-11 US US12/045,977 patent/US20080225954A1/en not_active Abandoned
- 2008-03-13 CN CN2008100829476A patent/CN101267561B/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107087188A (zh) * | 2011-11-07 | 2017-08-22 | 太格文-Ii有限责任公司 | 图像解码方法及图像解码装置 |
CN107087186A (zh) * | 2011-11-07 | 2017-08-22 | 太格文-Ii有限责任公司 | 图像解码方法及图像解码装置 |
CN107087186B (zh) * | 2011-11-07 | 2019-11-29 | 太格文-Ii有限责任公司 | 图像解码方法及图像解码装置 |
CN107087188B (zh) * | 2011-11-07 | 2020-03-20 | 太格文-Ii有限责任公司 | 图像解码方法及图像解码装置 |
CN102572437A (zh) * | 2012-02-16 | 2012-07-11 | 复旦大学 | 一种快速解码CAVLC run_before码字的硬件实现方法 |
CN102572437B (zh) * | 2012-02-16 | 2014-08-06 | 复旦大学 | 一种快速解码CAVLC run_before码字的硬件实现方法 |
US10499176B2 (en) | 2013-05-29 | 2019-12-03 | Qualcomm Incorporated | Identifying codebooks to use when coding spatial components of a sound field |
US11146903B2 (en) | 2013-05-29 | 2021-10-12 | Qualcomm Incorporated | Compression of decomposed representations of a sound field |
US11962990B2 (en) | 2013-05-29 | 2024-04-16 | Qualcomm Incorporated | Reordering of foreground audio objects in the ambisonics domain |
CN105917408A (zh) * | 2014-01-30 | 2016-08-31 | 高通股份有限公司 | 指示用于译码向量的帧参数可重用性 |
US10770087B2 (en) | 2014-05-16 | 2020-09-08 | Qualcomm Incorporated | Selecting codebooks for coding vectors decomposed from higher-order ambisonic audio signals |
Also Published As
Publication number | Publication date |
---|---|
JP2008227946A (ja) | 2008-09-25 |
CN101267561B (zh) | 2010-09-15 |
US20080225954A1 (en) | 2008-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101267561B (zh) | 图像解码装置和图像解码方法 | |
US7710296B2 (en) | N-bin arithmetic coding for context adaptive binary arithmetic coding | |
US7777654B2 (en) | System and method for context-based adaptive binary arithematic encoding and decoding | |
US8233545B2 (en) | Run length encoding in VLIW architecture | |
US8149920B2 (en) | Device and method for merging codecs | |
KR100401087B1 (ko) | 여러종류의부호신호를복호하는복호장치 | |
US6307977B1 (en) | Set of run-length codewords containing printing hints | |
US7602319B2 (en) | Image decoding apparatus and decoding method | |
JP2007214998A (ja) | 符号化装置、復号化装置、符号化方法、復号化方法、及びプログラム | |
US6317222B1 (en) | Set of run-length codewords containing pointers to data sources | |
US20170064321A1 (en) | System and method for decoding a video digital data stream using a table of range values and probable symbols | |
US7567189B2 (en) | Variable length code decoding apparatus and variable length code decoding method | |
JP2006279388A (ja) | 動画像復号化装置および動画像復号化方法 | |
EP2259432A1 (en) | Variable-length code decoding apparatus and method | |
CN114073009A (zh) | 范围非对称数字系统编码和解码的特征 | |
JP2007158698A (ja) | 画像復号装置及び画像復号方法 | |
JPH0537789A (ja) | 画像処理装置 | |
JP6382728B2 (ja) | 復号方法及び復号装置 | |
JPH0537790A (ja) | 画像処理装置 | |
US20150365690A1 (en) | Converting apparatus | |
Baroud et al. | Architecture for parallel marker-free variable length streams decoding | |
KR100300277B1 (ko) | 가변길이부호복호장치 | |
JPH09214960A (ja) | 符号置換装置 | |
JP2008113348A (ja) | 符号化復号装置、復号方法、並びにプログラム | |
JPH08162976A (ja) | 符号化データの復号装置及びその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100915 Termination date: 20130313 |