CN100472970C - 编码设备、程序和数据处理方法 - Google Patents
编码设备、程序和数据处理方法 Download PDFInfo
- Publication number
- CN100472970C CN100472970C CNB2004101013289A CN200410101328A CN100472970C CN 100472970 C CN100472970 C CN 100472970C CN B2004101013289 A CNB2004101013289 A CN B2004101013289A CN 200410101328 A CN200410101328 A CN 200410101328A CN 100472970 C CN100472970 C CN 100472970C
- Authority
- CN
- China
- Prior art keywords
- data
- bit
- shifting function
- shift amount
- coding
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
- H04N1/411—Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
- H04N1/413—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
提供了能够在编码处理中获得高速度和减少的计算量的编码设备、程序和数据处理方法,其中,用于对范围和下限值执行左移操作直至范围超过预定值并根据在执行左移操作前的下限值执行编码的编码部分包括:比特位置指定部分,用于指定指示与范围中的MSB最靠近的第一逻辑值的比特位置;移位量指定部分,用于基于比特位置,指定范围由于左移操作而即将超过预定值之前的移位量;判决部分,用于判决在具有预定比特长度的扩展区数据中是否存在超过移位量的空闲空间,其中扩展区数据被加到下限值的MSB侧,其中比特数据通过左移操作从下限值进位;和扩展数据编码部分,用于当不存在空闲空间时,编码通过左移操作被存储在扩展区数据中的数据。
Description
技术领域
本发明涉及用于对诸如图像数据和音频数据之类的数据执行算术编码和其他编码处理的数据处理方法、程序和编码设备。
背景技术
近年来,在广播站的信息发布以及家庭中的信息接收两者中,为了获得高效率的信息传输和存储,已经广泛应用了用于处理数字格式图像数据且符合MPEG(运动图像专家组)以及其他用于通过诸如离散余弦变换之类的正交变换执行压缩和通过使用图像信息特有的冗余进行运动补偿的方法的设备。
MPEG系统之后是称作JVT(视频联合工作组)的编码方法,提出该编码方法是为了实现更高的压缩率。例如,参考Thomas Wiegand、Gary J.Sullivan、Gisle Bjontegaard和Ajay Luthra,overview of the H.264/AVCVideo Coding Standard(视频编码标准综述),“IEEE Transactions Circuitsand Systems for Video Technology”,美国,2003年7月。
在JVT系统中,两种类型的编码处理:CAVLC(Context BasedAdaptive Variable Length Coding,基于上下文的自适应变长编码)和CABAC(Context Adaptive Binary Arithmetic Coding,上下文自适应二进制算术编码)被规定为句法元(syntaxelement,SE)的编码处理。
例如,在上面的编码处理中,输入海量数据,必须执行巨量的算术处理,并且需要计算量被减小的更高速度的编码处理。
发明内容
本发明的目的是提供能够在编码处理中获得更高速度和减少的计算量的编码设备、程序和数据处理方法。
为了达到上述目的,提供了一种编码设备,该编码设备用于对代表要被编码的图像信号的句法元进行自适应二进制算术编码,其中具有高出现概率的第一数据和具有低出现概率的第二数据之间的范围的大小由第一数据定义,指示第一和第二数据之间的边界的下限由第二数据定义,以及依次对所述第一数据和所述第二数据在从最低有效位(LSB)到最高有效位(MSB)的方向上执行移位操作,直至被移位的第一数据超过预定值,以及在所述移位操作即将结束之前响应于所述被移位的第二数据生成编码数据,该编码设备包括:比特位置指定装置,用于指定指示与所述第一数据中的MSB最靠近的第一逻辑值的比特位置;移位量指定装置,用于基于由所述比特位置指定装置指定的所述比特位置,指定在所述移位操作即将结束之前的所述第一数据的移位量;判决装置,用于判决在具有预定比特长度的扩展数据中是否存在大小超过在所述移位量指定装置中指定的所述移位量的空区域,其中所述扩展数据被加到所述第二数据的MSB,并通过所述移位操作从所述第二数据进位了比特数据的位;和编码装置,用于当不存在所述空区域时,从通过所述移位操作被包含在所述扩展数据中的数据,生成所述编码数据。
本发明第一方面的编码设备的操作如下。
比特位置指定装置指定指示与第一数据中MSB(最高有效位)最靠近的第一逻辑值的比特位置。
移位量指定装置基于由比特位置指定装置指定的比特位置,指定第一数据由左移操作即将超过预定值之前的移位量。
判决装置判断在具有预定比特长度的扩展数据中是否存在大于由移位量指定装置指定的移位量的空闲空间,其中扩展数据被加到第二数据的MSB侧,其中比特数据通过左移操作从第二数据进位。
编码装置在判决装置判断不存在空闲空间时,生成通过左移操作存储在扩展数据中的数据的编码数据。
另外,为了达到上述目的,本发明第二方面的编码设备是这样一种编码设备,该编码设备用于对代表要被编码的图像信号的句法元进行上下文(context)自适应二进制算术编码的编码设备,其中具有高出现概率的第一数据和具有低出现概率的第二数据之间的范围的大小由第一数据定义,指示第一和第二数据之间的边界的下限由第二数据定义,以及依次对所述第一数据和所述第二数据在从最低有效位(LSB)到最高有效位(MSB)的方向上执行移位操作,直至被移位的第一数据超过预定值,以及在所述移位操作即将结束之前响应于所述被移位的第二数据生成编码数据,该编码设备包括:比特位置指定装置,用于指定指示与所述第一数据中的MSB最靠近的第一逻辑值的比特位置;移位量指定装置,用于基于由所述比特位置指定装置指定的所述比特位置,指定在所述移位操作即将结束之前的所述第一数据的移位量;判决装置,用于判决在具有预定比特长度的扩展数据中是否存在预定比特长度数据,其中扩展数据被加到第二数据的MSB,并通过所述移位操作从所述第二数据进位了比特数据的位;和编码装置,用于当不存在预定比特长度数据时,从通过移位操作包含在扩展数据中的数据生成编码数据。
另外,为了达到上述目的,本发明第三方面的编码设备是这样一种编码设备,包括:运动矢量生成装置,用于基于要被处理运动补偿的图像数据与用作运动补偿参考的参考图像数据之间的第一差别生成运动矢量;第一信号处理装置,用于对要被处理运动补偿的图像数据与预测图像数据之间的第二差别进行正交变换处理,以及对正交变换的结果进行量化处理;第二信号处理装置,用于对由第一信号处理装置生成的数据进行反量化处理,以及对由反量化处理获得的数据进行反正交变换,由此生成参考数据;第三信号处理装置,用于基于运动矢量和参考图像数据生成预测图像数据;和编码装置,用于编码由第一信号处理装置生成的数据和运动矢量,所述编码装置用于对代表要被编码的图像信号的句法元进行上下文自适应二进制算术编码,其中具有高出现概率的第一数据和具有低出现概率的第二数据之间的范围的大小由第一数据定义,指示第一和第二数据之间的边界的下限由第二数据定义,以及依次对所述第一数据和所述第二数据在从最低有效位(LSB)到最高有效位(MSB)的方向上执行移位操作,直至被移位的第一数据超过预定值,以及在所述移位操作即将结束之前响应于所述被移位的第二数据生成编码数据,该编码装置包括:比特位置指定装置,用于指定指示与所述第一数据中的MSB最靠近的第一逻辑值的比特位置;移位量指定装置,用于基于由所述比特位置指定装置指定的所述比特位置,指定在所述移位操作即将结束之前的所述第一数据的移位量;判决装置,用于判决在具有预定比特长度的扩展数据中是否存在大小超过在所述移位量指定装置中指定的所述移位量的空区域,其中所述扩展数据被加到所述第二数据的MSB,并通过所述移位操作从所述第二数据进位了比特数据的位;和编码装置,用于当不存在所述空区域时,从通过所述移位操作被包含在所述扩展数据中的数据,生成所述编码数据。
另外,为了达到上述目的,根据本发明第四方面的数据处理方法是这样一种数据处理方法,该数据处理方法用于对代表要被编码的图像信号的句法元进行上下文自适应二进制算术编码,其中具有高出现概率的第一数据和具有低出现概率的第二数据之间的范围的大小由第一数据定义,指示第一和第二数据之间的边界的下限由第二数据定义,以及依次对所述第一数据和所述第二数据在从最低有效位(LSB)到最高有效位(MSB)的方向上执行移位操作,直至被移位的第一数据超过预定值,以及在所述移位操作即将结束之前响应于所述被移位的第二数据生成编码数据,该方法包括:第一步骤,用于指定指示与所述第一数据中的MSB最靠近的第一逻辑值的比特位置;第二步骤,用于基于由所述第一步骤指定的所述比特位置,指定在所述移位操作即将结束之前的所述第一数据的移位量;第三步骤,用于判决在具有预定比特长度的扩展数据中是否存在大小超过在所述第二步骤中指定的所述移位量的空区域,其中所述扩展数据被加到所述第二数据的MSB,并通过所述移位操作从所述第二数据进位了比特数据的位;和第四步骤,用于当不存在所述空区域时,从通过所述移位操作被包含在所述扩展数据中的数据,生成所述编码数据。
另外,为了达到上述目的,本发明第五方面的数据处理方法是这样一种数据处理方法,该数据处理方法用于对代表要被编码的图像信号的句法元进行上下文自适应二进制算术编码,其中具有高出现概率的第一数据和具有低出现概率的第二数据之间的范围的大小由第一数据定义,指示第一和第二数据之间的边界的下限由第二数据定义,以及依次对所述第一数据和所述第二数据在从最低有效位(LSB)到最高有效位(MSB)的方向上执行移位操作,直至被移位的第一数据超过预定值,以及在所述移位操作即将结束之前响应于所述被移位的第二数据生成编码数据,该方法包括:第一步骤,用于指定指示与所述第一数据中的MSB最靠近的第一逻辑值的比特位置;第二步骤,用于基于由所述第一步骤指定的所述比特位置,指定在所述移位操作即将结束之前的所述第一数据的移位量;第三步骤,用于判决在具有预定比特长度的扩展数据中是否存在预定比特长度数据,其中所述扩展数据被加到所述第二数据的MSB,并通过所述移位操作从所述第二数据进位了比特数据的位;和第四步骤,用于当不存在所述空区域时,从通过所述移位操作被包含在所述扩展数据中的数据,生成所述编码数据。
根据本发明,提供了一种能够在编码处理中获得更高速度和减少的计算量的编码设备、程序和数据处理方法。
附图说明
从下面参考附图对优选实施例的描述,本发明的这些以及其他目的和特性将变得更加清楚,附图中:
图1是本实施例的通信系统1的示意图;
图2是图1所示的编码设备2的整体配置图;
图3A~3E是用于解释算术编码处理的图;
图4是用于解释一般编码处理中的归一化(normalization)处理的图;
图5是根据图1所示的本发明第一实施例的编码电路的功能框图;
图6是图2所示的编码电路的编码处理的总体操作流程图;
图7是图5所示的编码电路的功能框图;
图8是用于解释图7所示的编码电路的范围“Range”数据的图;
图9是用于解释图7所示的编码电路的下限值“Low”数据的图;
图10是用于解释图7所示的编码电路的编码处理的操作的流程图;
图11是用于解释图7所示的编码电路中编码处理的操作的具体示例的流程图;
图12是用于解释图11所示的编码电路的归一化处理的具体示例的流程图;
图13是用于解释图5所示的上下文无关类型编码部分的操作的具体示例的图;
图14是用于解释图13所示的编码处理的“PutBit(B)”处理的流程图;
图15是根据本发明编码电路第三实施例的上下文无关类型编码部分的功能框图;
图16是用于解释图15所示的编码电路的上下文无关类型编码部分的操作的图。
具体实施方式
下面将解释其中应用了本发明实施例的编码处理的JVT系统的编码设备。
图1是本实施例的通信系统1的示意图。
如图1所示,通信系统1包括设置在发送方的编码设备2和设置在接收方的解码设备3。
在通信系统1中,在发送方的编码设备2中,生成通过诸如离散余弦变换和Karhunen-Loeve变换之类的正交变换以及运动补偿而被压缩的帧图像数据(比特流),并且帧图像数据在经由诸如人造卫星广播电波、有线电视网络、电话线路网络、蜂窝电话网络之类的传输介质和/或装置被发送之前,在发送方的编码设备2中被调制。
在接收方,在将接收到的图像信号解调后,由运动补偿和上面的调制处的数据的反正交变换而解压缩的帧图像数据被生成并被使用。
注意,传输介质和/或装置可以是光盘、磁盘、半导体存储器及其他记录介质。
图1所示的解码设备3执行与编码设备2的编码相对应的解码,并且具有与相关领域中的配置相同的配置。
下面将解释图1所示的编码设备2。
图2是图1所示的编码设备2的整体配置图。
如图2所示,编码设备(数据处理设备:计算机)2例如包括:作为主要部件的A/D转换电路22、画面重定位电路23、算术电路24、正交变换电路25、量化电路26、编码电路(也被称作编码设备)27、缓冲器28、反量化电路29、反正交变换电路30、比率控制电路32、帧存储器34、解块(deblocking)滤波器38和运动预测/补偿电路39。
下面将解释编码设备2的部件。
A/D转换电路22将由输入模拟亮度信号Y以及色差信号Cb和Cr组成的原始图像信号S10转换为数字帧数据S22,并将其输出至画面重定位电路23。
画面重定位电路23将帧数据S23输出至算术电流24、比率控制电路32和运动预测/补偿电路39,其中帧数据S23是通过在按照由画面类型I、P和B组成的GOP(画面组)配置的一系列编码中重新排列从A/D转换电路22输入的帧数据S22而获得的。
算术电路24生成图像数据S24并将其输出至正交变换电路25,该图像数据S24指示了在帧数据S23中要经历处理的运动补偿块MCB(也被称作宏块)与和其对应的从运动预测/补偿电路39输入的预测图像数据PI的运动补偿块MCB之间的差异。
正交变换电路25对图像数据S24执行离散余弦变换、Karhunen-Loeve变换或者其他正交变换,以生成图像数据(例如,DCT系数)S25,并将其输出至量化电路26。
量化电路26通过用从比率控制电路32输入的量化比例量化图像数据S25,生成图像数据S26,并将其输出至编码电路27和反量化电路29。
编码电路27基于指示运动矢量等的句法元(SE),执行变长编码处理或者算术编码处理,并将作为处理结果的图像数据存储在缓冲器28中。
此时,例如,当执行帧间预测(inter prediction)编码时,编码电路27编码从运动预测/补偿电路39输入的运动矢量MV,并将其存储在头部数据中。
存储在缓冲器28中的图像数据在被发送之前被调制等等。
反量化电路29生成通过对从其他运动补偿块MCB参考得到的参考图像数据的运动补偿块MCB的图像数据S26执行反量化而获得的信号,并将其输出至反正交变换电路30。
反正交变换电路30将图像数据S30经由解块滤波器38写到帧存储器34中,其中图像数据S30是通过对从反量化电路29输入的数据执行正交变换电路25中的正交变换的反变换而获得的。
解块滤波器38向帧存储器34输出通过从图像数据S30去除块偏斜(block skew)所获得的图像数据。
比率控制电路32生成量化参数Qp,使得例如基于从画面重定位电路23输入的帧数据S23,对图像中高复杂的部分执行细量化,对图像中较不复杂的部分执行粗量化。
然后,比率控制电路32基于上面生成的量化参数Qp以及从缓冲器28读取的图像数据,生成量化比例,并将其输出至量化电路26。
比率控制电路32还向运动预测/补偿电路39输出上面生成的量化参数Qp。
运动预测/补偿电路39在基于要被编码的帧数据S23的参考图像数据和来自帧存储器34的参考图像数据REF中的搜索范围SR中搜索,执行运动预测/补偿处理,并通过使用运动补偿块MCB作为单位计算运动矢量MV。
此时,运动预测/补偿电路39编码I画面、P画面和B画面。这里,只是从I画面的信息对I画面编码,并且I画面指示不被执行帧间预测(帧间预测编码)的图像数据。
P画面指示通过基于按显示顺序的前一(过去的)I画面和P画面执行预测而被编码的图像数据。
B画面指示通过基于在前一(过去的)和后一(将来的)显示顺序上的P画面和I画面的双向预测而被编码的图像数据。
作为运动预测块(宏块MB)的块大小,定义了16×16、8×16、16×8和8×8的像素大小,还定义了8×8、4×8、8×4和4×4的像素大小。
运动预测/补偿电路39在参考图像数据REF的搜索范围SR中指定与帧数据S23中要被编码的运动补偿块MCB差别最小的运动补偿块MCB的位置,并计算与它们的位置关系相对应的运动矢量MV。
运动预测/补偿电路39还基于上面选定的运动矢量MV,生成对运动补偿块MCB的预测图像数据PI。
运动预测/补偿电路39向编码电路27输出上面选定的运动矢量MV,并向算术电路24输出上面生成的预测图像数据PI。
下面将详细解释编码电路27的编码处理。
在JVT系统编码处理中,两种编码处理:CAVLC和CABAC被定义为句法元(SE)的编码方法。一般,CABAC以与CAVLC相比的更高的效率压缩SE。
在JVT定义的CABAC中,句法元SE通过VLC和定长编码被变换为符号串。这里所变换的符号串中的每个符号被称作一个“bin”(二进制符号)。
在编码处理中,“bin”被用作输入以执行算术编码处理(AC),并且基于处理结果确定输出比特,并将其输出至比特流。
图3A~3E是用于解释算术编码处理的图。
算术编码处理是要将诸如符号和二进制(0和1)串的数据串设计为按照出现概率被编码在区间[0,1]上,并通过数轴上该区间中的数字将概率空间表示为二进制数,并将其编码。
例如,如图3A~3E所示,算术编码处理是要基于要被编码的数据中的各个数据的出现概率,划分0.00或更大到小于1.00之间的区间,并执行递归处理来基于各个数据选择被划分的区间,从而编码指示了与要被编码的数据相对应的区间的数据。
后文中,为了进行清楚的解释,要被编码的数据被假定为是二进制的。
具体如图3A所示,假定在要被编码的数据中具有高出现概率的数据是MPS(最大可能符号),具有低出现概率的数据是LPS(最小可能符号),算术编码方法是要根据各个出现概率pMPS和pLPS,划分预定区间A。此时,假定当前区间的大小是范围“Range”,并且假定当前区间之间的边界值,例如,下限值是“Low”。出现概率pMPS是1-pLPS。
如图3A所示,在初始状态中,“Range”和“Low”的值是A、0.00……。
当要被编码的数据串的顶部数据是MPS时,根据出现概率pMPS和pLPS划分区间A,并且如图3B所示,从划分区间中选取对应于MPS的区间。此时“Range”和“Low”的值是p0(=pMPS)、0.00……。
当要被编码的数据串中的第二数据是MPS时,如图3B所示,根据出现概率pMPS和pLPS划分该区间,并且如图3C所示,从划分区间中选取对应于MPS的区间。此时“Range”和“Low”的值是p00(=p0×pMPS)、0.00……。
当要被编码的数据串中的第三数据是LPS时,如图3C所示,根据出现概率pMPS和pLPS划分该区间,并且如图3D所示,从划分区间中选取对应于LPS的区间。此时“Range”和“Low”的值是p001(=p00×pLPS)、p001(Low+pMPS)。
即,在上面的编码处理中的LPS情形中,下限值“Low”通过加上pMPS被更新。
同样,随着要被编码的数据串的比特长度变得更长时,“Range”变得更短,指示“Range”的数据的比特数增加。因此,作为编码处理的结果,通过输出确定的比特,减少了存储器容量。
另外,为了保持计算精确度,如图3E所示,执行归一化处理(renormalize)以将“Range”扩展至大于预定值。例如,归一化处理可以是将“Range”值加倍,使其大于预定值。
图4是用于解释一般编码处理中的归一化处理的图。
例如,如上面解释的那样,在每次对要被编码的数据串执行以一比特为单位的编码处理时,执行图4所示的归一化处理。
具体地,首先,判断“Range”是否小于预置的预定值(ST1)。当其小于预定值时,输出根据下限值“Low”的最高一位的代码(ST2),然后,对“Range”值和“Low”值执行左移操作,使扩展至两倍(ST3和ST4),并且过程返回至步骤ST1中的处理。
重复从ST1至ST4的操作,直至“Range”值变为等于或大于预定值。
另一方面,在步骤ST1中,当“Range”值不小于预定值时,归一化处理结束。
如上面解释的那样,在编码处理中的归一化处理中,必须对每一比特判断“Range”是否是预定值,因此计算负担是很重的。在根据本发明的编码电路27中,不是如上面所解释的那样对下限值“Low”的每个最高的一个比特执行处理,而是一并对多个下限值“Low”执行处理,从而减少了判断处理,计算速度变高。下面,将对此进行详细解释。
图5是根据图1所示的本发明第一实施例的编码电路的功能框图。
例如如图5所示,根据本实施例的编码电路27包括:符号转换部分(VLC)271、切换部分(检测部分)272、上下文(CTX)273、上下文相关类型编码部分274、上下文无关类型编码部分(旁路,bypass)275和结束处理部分276。
例如,符号转换部分(VLC)271通过VLC和定长编码,将从量化电路26和运动预测/补偿电路39输入的句法元SE转换为符号“bin”(二进制符号)串(比特数据),并将其输出为信号S271。
切换部分272判断对作为输入信号S271的符号“bin”应该执行上下文相关类型编码处理还是上下文无关类型编码处理,并且根据判断结果,将信号S271输出至上下文相关类型编码部分274或上下文无关类型编码部分275。
具体地,当对符号“bin”执行上下文相关类型编码处理时,切换部分272将信号S271输出至上下文(CTX)273和上下文相关类型编码部分274,而当执行上下文无关类型编码处理时,将信号S271输出至上下文无关类型编码部分275。
具体地,在符号“bin”中发生概率分布接近于均匀分布的情形中,切换部分272将信号S271输出至上下文无关类型编码部分(旁路)275,而在符号“bin”具有可变概率分布的其他情形中,将其输出至上下文相关类型编码部分274。
经历了上下文无关类型编码处理(旁路处理)的符号“bin”是用于表示例如运动矢量分量的正负号、离散余弦变换(DCT)系数的正负号以及运动矢量分量和DCT系数的值的符号串等的一部分。
具体地,VLC 271在运动矢量分量和DCT系数具有负号时输出“1”作为符号“bin”,而在它们具有正号时输出“0”。
另外,当运动矢量分量和DCT系数的值超过规定值时,具体地说是在内容具有许多运动,即运动矢量变化很大的情形中,以及在高比特率,即出现大DCT系数的时候的情形中等等,VLC 271通过使用规定值作为边界,将句法元SE分解为前缀“Prefix”和后缀“Suffix”。
具体地,VLC 271对“Prefix”基于其大小执行Urany编码处理,并且切换电路272将作为处理结果的各个符号“bin”输出至上下文相关类型编码部分274。
另外,VLC 271对“Suffix”基于其大小执行指数Golomb编码处理,并且切换电路272将作为处理结果的各个符号“bin”输出至上下文无关类型编码部分275。
在上下文(CTX)273中,例如,指示转变状态的索引和MPS出现概率pMPS被相关联地存储。
基于指示上下文相关类型编码部分274处理结果的信号S2741,更新上下文(CTX)273的索引。具体地,在上下文(CTX)273中,例如,当基于信号S2741被编码的值是“1”时,索引被更新以增加“1”的出现概率,而当被编码的值是“0”时,索引被更新以增加“0”的出现概率。
由此,在CTX 273中,出现概率变得接近于由输入SE决定的出现概率。
上下文相关类型编码部分274基于上下文CTX 273的索引和要被编码的符号“bin”,执行上下文相关类型编码处理,并将指示输出结果的信号S2741输出至上下文CTX 273。
另外,上下文相关类型编码部分274将指示处理结果的信号S274输出至结束处理部分276。
上下文无关类型编码部分(旁路)275基于从切换部分272输出的信号,执行上下文无关类型编码处理,并且将指示处理结果的信号S275输出至结束处理部分276。
结束处理部分276根据信号S274或S275将代码输出至比特流。
图6是图2所示的编码电路的编码处理的总体操作流程图。
在步骤ST11中,例如,VLC 271通过VLC和定长编码,将来自量化电路26或运动预测/补偿电路39的SE输入转换为符号“bin”串(比特数据),并将其输出为信号S271(ST12)。
在步骤ST13中,切换部分272判断对作为输入信号S271的符号“bin”应该执行上下文相关类型编码处理还是上下文无关类型编码处理,并根据判断结果,将信号S271输出至上下文相关类型编码部分274或上下文无关类型编码部分275。
在步骤ST13中,当切换部分272判断符号“bin”是上下文相关类型时,执行上下文相关类型编码处理(ST14)。
具体地,上下文(CTX)273基于指示上下文相关类型编码部分274的处理结果的信号S2741,更新索引,并分配各个符号“bin”的出现概率。
上下文相关类型编码部分274基于上下文CTX 273的索引和要被编码的符号“bin”,执行上下文相关类型编码处理,并将指示输出结果的信号S2741输出至上下文CTX 273。
另一方面,在步骤ST13中,当切换部分272判断符号“bin”是上下文无关类型时,执行上下文无关类型编码处理(ST15)。
具体地,上下文无关类型编码部分(旁路)275基于从切换部分272输出的信号,执行上下文无关类型编码处理,并将指示处理结果的信号S275输出至结束处理部分276。
在步骤ST16中,结束处理部分276根据信号S274或S275生成代码,并将其输出至比特流。
图7是图5所示的编码电路的功能框图。
上下文相关类型编码部分274对“Range”和下限值“Low”连续执行左移操作,直至“Range”超过预定值,并根据执行左移操作前的“Range”值生成编码数据。
例如如图7所示,上下文相关类型编码部分274包括:存储器MEM、划分部分2740和归一化部分2741。归一化部分2741包括移位量指定部分2743、判决部分2744和扩展数据编码部分2745。
比特位置指定部分2742对应于根据本发明的比特位置指定装置,移位量指定部分2743对应于根据本发明的移位量指定装置,判决部分2744对应于根据本发明的判决装置,扩展数据编码部分2745对应于根据本发明的编码装置。
划分部分2740基于用于执行算术编码处理的输入符号“bin”以根据符号“bin”的生成概率的一个比率划分区间,例如如图3A~3E所示,并更新后文解释的指示区间大小的“Range”和区间的下限值“Low”。
图8是用于解释图7所示的编码电路的“Range”数据的图。图9是用于解释图7所示的编码电路的下限值“Low”数据的图。
在本实施例中,存储器MEM存储“Range”和下限值“Low”数据。
“Range”指示上面解释的算术编码处理中的区间的大小,并具有预定比特长度的数据区,例如,如图8所示的10比特长度的数据区。
下限值“Low”是指示上面的算术编码处理中的区间的数据,具体地,指示区间的下限值“Low”。
根据本实施例的下限值“Low”具有基本区数据“LowB”和扩展区数据(也被称作扩展数据)“LowE”,例如如图9所示。
基本区数据“LowB”是指示一般下限值“Low”的数据,并且例如具有如图9所示的10比特长度的数据区。
扩展区数据“LowE”是加到下限值“Low”的基本区数据“LowB”的最高位(MSB)侧的数据,其中所述比特数据是通过左移操作从下限值“Low”进位得到的,并且具有预定的比特长度,例如如图9所示的N比特长度数据区。
“Range”对应于根据本发明的第一数据,下限值“Low”对应于根据本发明的第二数据,扩展区数据“LowE”对应于根据本发明的扩展数据。
归一化部分2741执行归一化处理以将“Range”扩展至大于预定值,以保持算术编码处理中的计算精确度。下面将解释归一化部分2741中的各个部件。
比特位置指定部分2742基于存储器MEM中“Range”,指定指示与“Range”的MSB靠近的第一逻辑值的比特位置。
具体地,比特位置指定部分指定指示最靠近MSB的第一逻辑值的比特位置,在本实施例中,当“Range”值例如是如图8所示的“00001*****”时,该第一逻辑值就是“1”。
移位量指定部分2743基于由比特位置指定部分2742指定的比特位置,指定在“Range”即将超过预定值之前的移位量“NumShift”,其中“Range”超过预定值是由于左移操作引起的。
具体地,移位量指定部分2743基于由比特位置指定部分2742指定的比特位置,将在“Range”即将超过例如0×100的预定值之前的移位量“NumShift”指定为“3”,如图8所示,其中“Range”超过预定值是由于左移操作引起的。
指定移位量“NumShift”的方法不限于上面的实施例。
例如,比特位置指定部分2742和移位量指定部分2743可以执行公式(1)所示的运算,并从运算结果指定移位量“NumShift”。这里,“Range<<=1”意味着执行左移一位的操作,“NumShift++”意味着增加1。
【公式1】
Int NumShift=0;
While(Range<0×100){
Range<<=1;
NumShift++;
}
另外,例如,比特位置指定部分2742和移位量指定部分2743可以通过对比特位置“P”(>=1)执行“NumShift=9-P”的运算来指定移位量“NumShift”,其中“P”通过从最低有效位(LSB)开始,计数存在于“Range”比特串最左(MSB)侧的“1”而得到。当由具有用于获得“P”的命令的处理器执行根据本发明的功能时,可以通过这种方法容易地指定移位量“NumShift”。
判决部分2744判断被加入到下限值“Low”的MSB侧的预定比特长度的扩展区数据中,是否存在超过由移位量指定部分2743指定的移位量的空闲空间,其中比特数据通过左移操作从下限值“Low”进位。
当判决部分2744判断在扩展区数据“LowE”中存在超过由移位量指定部分2743指定的移位量的空闲空间时,对下限值“Low”和“Range”执行左移操作。具体地,基本区数据“LowB”中的比特经历左移操作,被恰好左移移位量“NumShift”,移进扩展范围“LowE”中。
当判决部分2744判定没有空闲空间时,扩展数据编码部分2745生成通过左移操作存储在扩展区数据“LowE”中的数据的编码数据。即,当扩展区数据“LowE”不再有用于存储比特的空间时,扩展数据编码部分2745生成编码数据。
上面解释了上下文相关类型编码部分274的配置,上下文无关类型编码部分275也有大致相同的配置,并在下限值“Low”中提供扩展区数据“LowE”,并且如上面所解释的那样一并对扩展区数据“LowE”中的数据执行编码处理。
旁路275和上下文相关类型编码部分274的一个不同点是:上下文相关类型编码部分274不使用上下文CTX。即,在上下文相关类型编码处理中,出现概率是预置的固定值,且“Range”也是固定的。
图10是用于解释图7所示的编码电路的编码处理的操作的流程图。
参考图10,将集中于归一化处理来解释上下文相关类型编码部分274和上下文无关类型编码部分275的操作。
首先,为了执行如图3A~3E所示的算术编码处理,划分部分2740基于输入符号“bin”,通过按照符号“bin”的生成概率的一个比率划分区间,基于符号“bin”选择被划分的区间,并更新指示后文解释的区间大小的“Range”和下限值“Low”。
归一化部分2741执行归一化处理,以将“Range”至少扩展至大于预定值,以保持算术编码处理中的计算精确度。
具体地,在步骤ST21中,比特位置指定部分2742基于存储器MEM中的作为划分部分2740的划分结果的“Range”,指定指示第一逻辑值的比特位置,该第一逻辑值最接近于的“Range”的MSB。
在步骤ST22中,移位量指定部分2743基于由比特位置指定部分2742指定的比特位置,指定在“Range”即将超过预定值之前的移位量,“Range”超过预定值是由于左移操作引起的。
在步骤ST23中,判决部分2744判断在被加入下限值“Low”的MSB侧的预定比特长度的扩展区数据“LowE”中,是否存在超过由移位量指定部分2743指定的移位量的空闲空间,其中比特数据通过左移操作从下限值“Low”进位。当判决部分2744判断在扩展区数据“LowE”中存在超过移位量“NumShift”的空闲空间时,对下限值“Low”和“Range”执行左移操作。具体地,基本区数据“LowB”中的比特经历左移操作,被左移移位量“NumShift”,移进扩展范围“LowE”中。
在步骤ST24中,当判决部分2744判定没有空闲空间时,扩展数据编码部分2745生成通过左移操作存储在扩展区数据“LowE”中的数据的编码数据。
如上面所解释的,在本实施例中,对用于连续对“Range”和下限值“Low”执行左移操作直至“Range”超过预定值并根据执行左移操作前的下限值“Low”生成编码数据的编码部分274和275提供了:用于指定指示与“Range”中的MSB最接近的第一逻辑值的比特位置的比特位置指定部分2742;用于基于由比特位置指定部分2742指定的比特位置,指定在“Range”由于左移操作而即将超过预定值之前的移位量“NumShift”的移位量指定部分2743;用于判断在被加入到下限值“Low”MSB侧的预定比特长度的扩展区数据“LowE”中,是否存在超过由移位量指定部分2743确定的移位量“NumShift”的空闲空间的判决部分2744,其中比特数据通过左移操作从下限值“Low”进位;用于当判决部分2744判断没有空闲空间时,生成通过左移操作存储在扩展区数据“LowE”中的数据的编码数据的扩展数据编码部分2745;作为其结果,可以在编码处理中获得高的速度以及计算量的减少。
具体地,在一般编码设备中以一比特为单位执行编码处理,而在本实施例中,通过左移操作从基本区数据“LowB”进行输入,提供了具有预定比特长度的扩展区数据“LowE”,并且在扩展区数据“LowE”中一并进行数据编码,作为其结果,可以减少分支处理和计算量,并且可以高速执行编码处理。
图11是用于解释图7所示的编码电路中的编码处理的操作的具体示例的流程图。图12是用于解释图11所示的编码电路的归一化处理的具体示例的流程图。参考图11和图12,将集中于上下文相关类型编码部分274的处理,清楚地解释编码电路的编码处理的具体示例。
上下文相关类型编码部分274通过使用指定的上下文的索引“ctxIdx”和要被编码的符号“binVal”作为输入,执行编码处理。
“codIRange”和“codILow”指示概率范围(“Range”)和下限值“Low”。这些值是在任何上下文相关/上下文无关类型AC中共同使用的。上下文CTX由索引“ctxIdx”管理,每一个上下文被分配指示MPS值和转变状态数的“valMPS”和“pStateIdx”。
在步骤ST101中,划分部分2740将“codIRange”值量化为被称为“qCodIRangeIdx”的值,使用规定的表值“rangeTabLPS”以获得LPS的概率宽度“codIRangeLPS”。还将“codIRange”改变为MPS的概率宽度。
在步骤ST102中,划分部分2740基于输入符号“bin”是否是MPS,分流处理。当符号是MPS时,通过在标准中规定的表值“transIdxMPS”转变状态,并更新“pStateIdx”(ST103)。
另一方面,在步骤ST102中,当输入符号“bin”是LPS时,更新“codILow”值和“codIRange”。
具体地,将通过将“codILow”和“codIRange”相加得到的值代入“codILow”,将“codIRangeLPS”代入“codIRange”(ST104)。
在步骤ST105中,判断“pStateIdx”是否是“0”,当“pStateIdx”是“0”时,将“1-valMPS”代入“valMPS”(ST106),并且过程前进到步骤ST107中的处理。在步骤ST105中,当“pStateIdx”不是“0”时,过程也前进到步骤ST107的处理。
在步骤ST07中,更新“pStateIdx”。
在步骤ST108中,归一化部分2741执行归一化处理(Renormalize),以执行左移操作,直至“codIRange”值变为等于或大于预定值。根据“codILow”值确定输出比特(串)。
在归一化处理中,如图12所示,在步骤ST111中,比特位置指定部分2742和移位量指定部分2743基于“codIRange”(Range)计算左移量“NumShift”,如图9所示。
在步骤ST112中,当扩展区有空间时,判决部分2744对下限值“Low”执行左移操作,基本区数据“LowB”的比特被移位到扩展区数据“LowE”中(ST113)。具体地,下限值“Low”经历恰好被左移移位量“NumShift”的左移操作,“Range”经历恰好被左移移位量“NumShift”的左移操作,并且存储在扩展区数据“LowE”中的比特数“NumExtBit”被加上移位量“NumShift”以更新。
另一方面,在步骤ST112中,当判定扩展区数据“LowE”中没有空闲空间时,扩展数据编码部分2745基于扩展区数据“LowE”生成编码数据,并且过程返回至步骤ST112中的处理。
如上面所解释的,根据本实施例的编码电路不是以一比特为单位在扩展区数据“LowE”中执行数据编码,因此以高的速度执行算术处理,并且可以输出与一般设备装置输出的编码数据相同的编码数据。
根据本发明第二实施例的编码电路具有与图7所示的编码电路大致相同的配置,包括:存储器MEM、划分部分2740和归一化部分2741。归一化部分2741包括:比特位置指定部分2742、移位量指定部分2743、判决部分2744和扩展数据编码部分2745。
不同点在于判决部分2744的功能和扩展数据编码部分2745的功能。下面将只对不同点进行解释。
判决部分2744判断被加入到下限值“Low”MSB侧的扩展区数据“LowE”中是否存在预置比特长度的数据,其中比特数据通过左移操作从下限值“Low”进位。
例如,判决部分2744判断扩展区数据“LowE”中是否存储了以字节的整数倍为单位的比特数据。
当判定扩展区数据“LowE”中存在预置比特长度的数据时,扩展数据编码部分2745生成通过左移操作存储在扩展区数据“LowE”中的数据的编码数据。
下面将只清楚地解释上面配置的操作的不同点。
判决部分2744判定扩展区数据“LowE”是否存储了以字节的整数倍为单位的比特数据,当判定扩展区数据“LowE”具有预置比特长度的数据时,扩展数据编码部分2745生成存储在扩展区数据“LowE”中的数据的编码数据。在与以上情形不同的其他情形中,基本区数据“LowB”中的比特经历左移操作,被恰好左移移位量“NumShift”,移进扩展区“LowE”中。
如上面所解释的,在本实施例中:判决部分2744,用于判断被加入到下限值“Low”MSB侧的扩展区数据“LowE”中是否存在预置比特长度的数据,其中比特数据通过左移操作从下限值进位;扩展数据编码部分2745,用于当判定扩展区数据“LowE”中存在预置比特长度的数据时,生成通过左移操作存储在扩展区数据“LowE”中的数据的编码数据;作为结果,可以以最佳的字节为单位执行编码,并且可以以更高的速度执行算术处理。
另外,当确定输出比特时,考虑编码电路的进位移行(carryover)。
图13是用于解释图5所示的上下文无关类型编码部分的操作的具体示例的图。
在步骤ST201中,上下文无关类型编码部分(旁路)275对“codILow”(下限值“Low”)执行左移一位的左移操作。
在步骤ST202中,当符号“bin”(bin Val)不是“0”时,旁路275将“CodIRange”加到“codILow”,并将结果代入“codILow”(ST203),并且过程前进到步骤ST204。另一方面,当符号“bin”(binVal)是“0”时,过程前进到步骤ST204。
在步骤ST204中,判断“codILow”是否等于或大于例如0×400的预定值,当“codILow”是0×400或更大时,执行下文解释的“PutBit(1)”处理(ST205),并将从“codILow”减去0×400所获得的值代入“codILow”。
另一方面,在步骤ST204中,当“codILow”小于0×400时,判断其是否小于0×200(ST207)。当“codILow”小于0×200时,执行后文解释的“PutBit(0)”处理(ST208)。另一方面,当“codILow”等于或大于0×200时,将从“codILow”减去0×200所获得的值代入“codILow”,并且作为对进位移行的度量的变量“bitOutstanding”的值增加1(ST209)。
图14是用于解释图13所示的编码处理的“PutBit(B)”处理的流程图。参考图14,将解释旁路275的步骤ST205和ST208中的“PutBit(B)”的操作。
当在步骤ST210中输出编码比特时,旁路275判断它是否是第一比特。指示第一比特的“firstbitFlag”被用来对此进行判断。当“firstbitFlag”不是“0”时,指示它是第一比特,而当“firstbitFlag”是“0”时,指示它不是第一比特。
详细地,当在步骤ST210中“firstbitFlag”不是“0”时,旁路275将“0”代入“firstbitFlag”,并且不输出第一比特。
另一方面,当“firstbitFlag”是“0”时,旁路275在步骤ST212中执行“WriteBits(B,1)”处理。这里,“WriteBits(B,1)”是输出一比特长度的值“B”的处理。
在步骤ST213中,旁路275判断“bitsOutstanding”是否大于“0”,当判断其大于“0”时,执行“WriteBits(1-B,1)”处理,从“bitOutstanding”减“1”,并且过程返回步骤ST213中的处理。这里,“WriteBits(1-B,1)”是输出一比特长度B的补码。
另一方面,在步骤ST213中,当判断“bitOutstanding”等于或小于“0”时,旁路275挂起一串处理。
通过执行上面解释的操作,旁路能够执行编码处理,而不会导致进位移行。
在上下文无关类型编码处理中,根据本发明编码电路的第三实施例的上下文无关类型编码部分275,当要经历上下文无关类型编码处理的符号“bin”被连续输入时,考虑到“Range”值由于归一化而不变的特性,通过一并对要被编码的连续符号“bin”进行编码,获得了更高速度的计算。
具体地,假定要被编码的符号串是B=(b0 b1 b2 b3...bn),编码顺序是b0,b1,...,bn。
对每一个“bm(0<=m<=n)”重复“Length(B)”次上面解释的实施例的上下文无关类型编码处理(旁路)的结果等同于通过执行公式(2)所示的计算而获得的下限值“Low”。
【公式2】
Low=Low<<Length(B)+Range*Value(B)
NumExtBits+=Length(B)
下面将解释对公式2的证明。
假定某个元素值N有排列A={A[0],A[1],...,A[N-1]}和B={B[0],B[1],...,B[N-1]}。“A”和“B”可以由如下的递归公式表示。
【公式3】
A[n+1]=2·A[n]+B[n]·C...(3)
此时,通过数学归纳法可以证明公式(3)中的“A[n]”可以由公式(4)表示。
【公式4】
(A):当公式(4)中“n=0”时,等号两侧都变为A[0]。
(B):当公式(4)中“n=k”时,假定公式(5)成立。
【公式5】
此时,从公式(3),将公式(5)代入公式(6)右侧的“A[k]”。
【公式6】
A[k+1]=2·A[k]+B[k]·C...(6)
【公式7】
作为上述代入的结果,得到了公式(7),并且证明了在“n=k+1”的情形中,公式(4)也成立。
从(A)和(B),证明了公式(4)对任何n都成立。(证毕)
现在假定要被编码的符号串是B=(b0 b1 b2 b3...bn),编码顺序是b0,b1,...,bn。
当假定在即将对符号“bk”编码之前的“Low”值是A[k],且“bk”值是b[k]时,在对“bk”执行处理后,“Low”值,即A[k+1],变为从上面的公式(4)得到的公式(8)。
【公式8】
当在“k=n”的情形中用公式(9)替代时,在对“B”编码后的“Low”值与公式(10)相同。
这里,“Length(S)”是符号串“S”的长度,“Value(S)”是假定符号串“S”为二进制时的值。
具体地,例如,当符号串是{0,1,0}时,Value(S)是0×22+1×21+0×20=2。即使当比特长度长时,符号串也被假定为是二进制数据,以相同的方式计算Value(S)。
【公式9】
Length(B)=n+1
Range=C ...(9)
【公式10】
Low=Low<<Length(B)+Range*Value(B)
上面的处理等同于执行上面解释的归一化处理“Renormalize”的结果。也就是,不是顺序地对符号串的每个“bin”执行处理,而是可以一并对符号串执行编码。
下面将解释根据本实施例的上下文无关类型编码部分的具体配置。
图15是根据本发明编码电路的第三实施例的上下文无关类型编码部分的功能框图。
例如如图15所示,根据本实施例的上下文无关类型编码部分275包括:连续判决部分2751、单处理部分2752、连续处理部分2753和归一化部分2754。
连续判决部分2751对应于根据本发明的检测装置。单处理部分2752对应于根据第一实施例的上下文无关类型编码部分275。归一化部分2754对应于根据第一实施例的归一化部分2741。下面只解释与上面的实施例的不同点。
连续判决部分2751检测要被编码的连续比特数据是否是上下文无关类型,其上下文无关类型具有能够执行“Range”固定的编码处理的特性。当判定不是连续的时,连续判决部分2751使单处理部分2752执行常规上下文无关类型编码处理。
当连续判决部分2751检测到连续比特数据是上下文无关类型时,连续处理部分2753对连续比特数据一并执行编码处理,并将处理结果输出至归一化部分2754。
如图15所示,连续处理部分2753包括第一转换部分27531和第二转换部分27532。
第一转换部分27531对应于根据本发明的转换装置。
当连续判决部分2751检测到连续比特数据是上下文无关类型时,第一转换部分27531使连续比特数据成为二进制数据,并将如下获得的值用作新的下限值“Low”:将该二进制数据和预置“Range”的乘积加到通过对下限值“Low”执行恰好是该连续比特数据的比特数据长度的左移操作而得到的值上;并且将连续比特数据的比特长度加到扩展区数据“LowE”的比特上。
第二转换部分27532将连续比特数据的比特长度加到扩展区数据的比特长度上,并更新扩展区数据的比特长度。
图16是用于解释图15所示的编码电路的上下文无关类型编码部分的操作的图。参考图16,将解释在输入了要被编码的连续比特数据的编码处理情形中,上下文无关类型编码部分275的操作。
在步骤ST301中,连续判决部分2751检测要被编码的连续比特数据是否是上下文无关类型,其中上下文无关类型具有能够执行“Range”固定的编码处理的特性。
在步骤ST302中,当连续判决部分2751检测到连续比特数据是上下文无关类型时,第一转换部分27531使连续比特数据成为二进制数据,并将如下获得的值用作新的下限值“Low”:将该二进制数据和预置“Range”的乘积加到通过对下限值“Low”执行恰好是该连续比特数据的比特数据长度的左移操作而得到的值上;并且将连续比特数据的比特长度加到扩展区数据“LowE”的比特上。
第二转换部分27532将连续比特数据的比特长度加到扩展区数据的比特长度上,并更新扩展区数据的比特长度。
在步骤ST303中,归一化部分2754执行与归一化部分2741相同的归一化处理,例如如图12所示。
另外,此时,用于抑制通过左移操作而进位的第一个一比特的输出的值被设置为图12所示的“NumExtBits”的初始值,并且抑制基于扩展数据“LowE”的通过左移操作输入的第一个一比特的输出。
具体地,例如,通过将“NumExtBits”的初始值设置为“-1”,可以忽略图14中步骤ST210所示的条件判决,并可以以高的速度执行处理。
如上面所解释的,在本实施例中,上下文无关类型编码部分275被提供有:连续判决部分,用于检测要被编码的连续比特数据是否是上下文无关类型,其中上下文无关类型具有能够执行“Range”固定的编码处理的特性;第一转换部分27531,用于当连续判决部分2751检测到连续比特数据是上下文无关类型时,使连续比特数据成为二进制数据,并将这样的一个值用作新的下限值“Low”,该值是通过将该二进制数据和预置“Range”的乘积加到通过对下限值“Low”执行恰好是该连续比特数据的比特数据长度的左移操作得到的值而得到的,并且将连续比特数据的比特长度加到扩展区数据“LowE”的比特上;第二转换部分27532,用于将连续比特数据的比特长度加到扩展区数据的比特长度上,并更新扩展区数据的比特长度;和归一化部分2754;作为结果,连续的上下文无关类型比特数据可以被一并编码,并且计算速度变高。
另外,通过将“NumExtBits”的初始值设置为“-1”,可以忽略图14中步骤ST210所示的条件判决,并可以以高的速度执行处理。
也就是,通过消除在每个比特输出中需要的判决分支,算术处理速度可以变高。
注意,本发明并不局限于这些示出的实施例,而可以被自由且合适地修改。
在根据本实施例的编码设备中,根据本发明的功能通过硬件实现,但是其并不局限于该实施例。例如,通过由计算机(数据处理设备)执行具有根据上面解释的本发明的功能的程序,也可以实现根据本发明的功能。
另外,还解释了具有单处理部分和连续处理部分的示例,但是本发明并不局限于该实施例,例如,可以只具有连续处理部分。
上面的这些实施例还可以被组合实施。
另外,“CABAC”的示例作为本实施例的示例被解释,但是其并不局限于该实施例。
上面解释的实施例是为了更容易地理解本发明,而不是为了限制本发明。相应地,在上面的实施例中所公开的各个单元包括了设计中的所有修改以及属于本发明技术领域的等同物。
Claims (8)
1.一种编码设备,所述编码设备用于对代表要被编码的图像信号的句法元进行上下文自适应二进制算术编码,其中具有高出现概率的第一数据和具有低出现概率的第二数据之间的范围的大小由第一数据定义,指示所述第一和第二数据之间的边界的下限由第二数据定义,以及依次对所述第一数据和所述第二数据在从最低有效位到最高有效位的方向上执行移位操作,直至所述被移位的第一数据超过预定值,以及在所述移位操作即将结束之前响应于所述被移位的第二数据生成编码数据,所述编码设备包括:
比特位置指定装置,用于指定指示与所述第一数据中的所述最高有效位最靠近的第一逻辑值的比特位置;
移位量指定装置,用于基于由所述比特位置指定装置指定的所述比特位置,指定在所述移位操作即将结束之前的所述第一数据的移位量;
判决装置,用于判决在具有预定比特长度的扩展数据中是否存在大小超过在所述移位量指定装置中指定的所述移位量的空区域,其中所述扩展数据被加到所述第二数据的所述最高有效位,并通过所述移位操作从所述第二数据进位了比特数据的位;和
编码装置,用于当不存在所述空区域时,从通过所述移位操作被包含在所述扩展数据中的数据,生成所述编码数据。
2.根据权利要求1所述的编码设备,包括:
检测装置,用于检测要被编码的所述比特数据是否是句法无关类型数据,所述句法无关类型数据具有这样的特性:所述第一数据的编码可以被固定地处理;和
转换装置,用于当所述要被编码的比特数据是所述句法无关类型数据时,将一个值转换为新的第二数据,所述值如下获得:将所述连续比特数据表示为二进制数据,将所述二进制数据与所述预定第一数据相乘,并将所述乘积与所述被移位了所述连续比特数据的比特数据长度的第二数据相加。
3.一种编码设备,所述编码设备用于对代表要被编码的图像信号的句法元进行上下文自适应二进制算术编码,其中具有高出现概率的第一数据和具有低出现概率的第二数据之间的范围的大小由第一数据定义,指示所述第一和第二数据之间的边界的下限由第二数据定义,以及依次对所述第一数据和所述第二数据在从最低有效位到最高有效位的方向上执行移位操作,直至所述被移位的第一数据超过预定值,以及在所述移位操作即将结束之前响应于所述被移位的第二数据生成编码数据,所述编码设备包括:
比特位置指定装置,用于指定指示与所述第一数据中的所述最高有效位最靠近的第一逻辑值的比特位置;
移位量指定装置,用于基于由所述比特位置指定装置指定的所述比特位置,指定在所述移位操作即将结束之前的所述第一数据的移位量;
判决装置,用于判决在具有预定比特长度的扩展数据中是否存在预定比特长度数据,其中所述扩展数据被加到所述第二数据的所述最高有效位,并通过所述移位操作从所述第二数据进位了比特数据的位;和
编码装置,用于当不存在所述预定比特长度数据时,从通过所述移位操作被包含在所述扩展数据中的数据,生成所述编码数据。
4.一种编码设备,包括:
运动矢量生成装置,用于基于要被处理运动补偿的图像数据与用作所述运动补偿参考的参考图像数据之间的第一差别生成运动矢量;
第一信号处理装置,用于对要被处理所述运动补偿的所述图像数据与预测图像数据之间的第二差别进行正交变换处理,以及对所述正交变换的结果进行量化处理;
第二信号处理装置,用于对由所述第一信号处理装置生成的数据进行反量化处理,以及对由所述反量化处理获得的数据进行反正交变换,由此生成参考数据;
第三信号处理装置,用于基于所述运动矢量和所述参考图像数据生成所述预测图像数据;和
编码装置,用于编码由所述第一信号处理装置生成的数据和所述运动矢量编码,
所述编码装置用于对代表要被编码的图像信号的句法元进行上下文自适应二进制算术编码,其中具有高出现概率的第一数据和具有低出现概率的第二数据之间的范围的大小由第一数据定义,指示所述第一和第二数据之间的边界的下限由第二数据定义,以及依次对所述第一数据和所述第二数据在从最低有效位到最高有效位的方向上执行移位操作,直至所述被移位的第一数据超过预定值,以及在所述移位操作即将结束之前响应于所述被移位的第二数据生成编码数据,所述编码装置包括:
比特位置指定装置,用于指定指示与所述第一数据中的所述最高有效位最靠近的第一逻辑值的比特位置;
移位量指定装置,用于基于由所述比特位置指定装置指定的所述比特位置,指定在所述移位操作即将结束之前的所述第一数据的移位量;
判决装置,用于判决在具有预定比特长度的扩展数据中是否存在大小超过在所述移位量指定装置中指定的所述移位量的空区域,其中所述扩展数据被加到所述第二数据的所述最高有效位,并通过所述移位操作从所述第二数据进位了比特数据的位;和
编码数据生成装置,用于当不存在所述空区域时,从通过所述移位操作被包含在所述扩展数据中的数据生成所述编码数据。
5.一种数据处理方法,用于对代表要被编码的图像信号的句法元进行上下文自适应二进制算术编码,其中具有高出现概率的第一数据和具有低出现概率的第二数据之间的范围的大小由第一数据定义,指示所述第一和第二数据之间的边界的下限由第二数据定义,以及依次对所述第一数据和所述第二数据在从最低有效位到最高有效位的方向上执行移位操作,直至所述被移位的第一数据超过预定值,以及在所述移位操作即将结束之前响应于所述被移位的第二数据生成编码数据,所述方法包括:
第一步骤,用于指定指示与所述第一数据中的所述最高有效位最靠近的第一逻辑值的比特位置;
第二步骤,用于基于由所述第一步骤指定的所述比特位置,指定在所述移位操作即将结束之前的所述第一数据的移位量;
第三步骤,用于判决在具有预定比特长度的扩展数据中是否存在大小超过在所述第二步骤中指定的所述移位量的空区域,其中所述扩展数据被加到所述第二数据的所述最高有效位,并通过所述移位操作从所述第二数据进位了比特数据的位;和
第四步骤,用于当不存在所述空区域时,从通过所述移位操作被包含在所述扩展数据中的数据,生成所述编码数据。
6.根据权利要求5所述的数据处理方法,包括:
在所述第一步骤之前的第五步骤,用于将一个值转换为新的第二数据,所述值如下获得:将所述连续比特数据表示为二进制数据,将所述二进制数据与所述预定第一数据相乘,并将所述乘积与所述被移位了所述连续比特数据的比特数据长度的第二数据相加。
7.根据权利要求5所述的数据处理方法,其中
一个值抑制通过移位操作被进位了位的第一个一比特数据的输出,和
所述第四步骤抑制所述第一个一比特数据,所述第一个一比特数据是基于所述扩展数据由所述移位操作被输入的。
8.一种数据处理方法,用于对代表要被编码的图像信号的句法元进行上下文自适应二进制算术编码,其中具有高出现概率的第一数据和具有低出现概率的第二数据之间的范围的大小由第一数据定义,指示所述第一和第二数据之间的边界的下限由第二数据定义,以及依次对所述第一数据和所述第二数据在从最低有效位到最高有效位的方向上执行移位操作,直至所述被移位的第一数据超过预定值,以及在所述移位操作即将结束之前响应于所述被移位的第二数据生成编码数据,所述方法包括:
第一步骤,用于指定指示与所述第一数据中的所述最高有效位最靠近的第一逻辑值的比特位置;
第二步骤,用于基于由所述第一步骤指定的所述比特位置,指定在所述移位操作即将结束之前的所述第一数据的移位量;
第三步骤,用于判决在具有预定比特长度的扩展数据中是否存在预定比特长度数据,其中所述扩展数据被加到所述第二数据的所述最高有效位,并通过所述移位操作从所述第二数据进位了比特数据的位;和
第四步骤,用于当不存在所述预定比特长度数据时,从通过所述移位操作被包含在所述扩展数据中的数据,生成所述编码数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003419698A JP2005184232A (ja) | 2003-12-17 | 2003-12-17 | 符号化装置、プログラム、およびデータ処理方法 |
JP419698/2003 | 2003-12-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1630202A CN1630202A (zh) | 2005-06-22 |
CN100472970C true CN100472970C (zh) | 2009-03-25 |
Family
ID=34544905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004101013289A Expired - Fee Related CN100472970C (zh) | 2003-12-17 | 2004-12-17 | 编码设备、程序和数据处理方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US6950040B2 (zh) |
EP (1) | EP1549076A3 (zh) |
JP (1) | JP2005184232A (zh) |
KR (1) | KR20050061371A (zh) |
CN (1) | CN100472970C (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7986731B2 (en) | 2004-02-06 | 2011-07-26 | Apple Inc. | H.264/AVC coder incorporating rate and quality controller |
US7492820B2 (en) | 2004-02-06 | 2009-02-17 | Apple Inc. | Rate control for video coder employing adaptive linear regression bits modeling |
US7869503B2 (en) * | 2004-02-06 | 2011-01-11 | Apple Inc. | Rate and quality controller for H.264/AVC video coder and scene analyzer therefor |
KR101208233B1 (ko) * | 2004-11-09 | 2012-12-04 | 파나소닉 주식회사 | 중간 형식으로 변환하는 2단계 산술 복호 |
US7525456B2 (en) * | 2005-04-15 | 2009-04-28 | Qpixel Technology, Inc. | Methods for adaptively selecting entropy encoding modes |
CN100461863C (zh) * | 2005-08-05 | 2009-02-11 | 上海富瀚微电子有限公司 | 基于上下文自适应二进制算术解码器 |
KR100776195B1 (ko) * | 2005-08-09 | 2007-11-16 | (주)씨앤에스 테크놀로지 | 빠른 cavlc를 위한 h.264 디코딩 방법 |
JP4650173B2 (ja) * | 2005-09-05 | 2011-03-16 | ソニー株式会社 | 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体 |
JP2007174312A (ja) * | 2005-12-22 | 2007-07-05 | Sanyo Electric Co Ltd | 符号化回路およびデジタル信号処理回路 |
JP4739167B2 (ja) * | 2006-10-31 | 2011-08-03 | キヤノン株式会社 | 正規化処理装置 |
EP2088784B1 (en) | 2006-11-28 | 2016-07-06 | Panasonic Corporation | Encoding device and encoding method |
EP2091257B1 (en) * | 2006-11-30 | 2017-12-27 | Panasonic Corporation | Coder |
US9648325B2 (en) | 2007-06-30 | 2017-05-09 | Microsoft Technology Licensing, Llc | Video decoding implementations for a graphics processing unit |
JP2009100125A (ja) * | 2007-10-15 | 2009-05-07 | Toshiba Corp | 符号化装置 |
US7714753B2 (en) * | 2007-12-11 | 2010-05-11 | Intel Corporation | Scalable context adaptive binary arithmetic coding |
JP5303192B2 (ja) * | 2008-06-03 | 2013-10-02 | 株式会社日立メディコ | 医療画像システム、医療画像システムの画像圧縮方法 |
FR2935865B1 (fr) * | 2008-09-05 | 2010-10-15 | Commissariat Energie Atomique | Procede de transcodage entropique d'un premier train de donnees binaires en un second train de donnees binaires compresse, programme d'ordinateur et dispositif de capture d'images correspondants |
CN101677399B (zh) * | 2008-09-18 | 2014-07-09 | 香港科技大学 | 基于流密码的安全编码方案的多媒体内容编码方法和系统 |
CN101500164B (zh) * | 2008-12-31 | 2011-09-28 | 深圳市同洲电子股份有限公司 | 算术编码的打包输出的方法和装置 |
KR20100136890A (ko) * | 2009-06-19 | 2010-12-29 | 삼성전자주식회사 | 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법 |
CN102667921B (zh) | 2009-10-20 | 2014-09-10 | 弗兰霍菲尔运输应用研究公司 | 音频编码器、音频解码器、用于将音频信息编码的方法、用于将音频信息解码的方法 |
MX2012008075A (es) | 2010-01-12 | 2013-12-16 | Fraunhofer Ges Forschung | Codificador de audio, decodificador de audio, metodo para codificar e informacion de audio, metodo para decodificar una informacion de audio y programa de computacion utilizando una modificacion de una representacion de un numero de un valor de contexto numerico previo. |
US10123053B2 (en) * | 2011-05-23 | 2018-11-06 | Texas Instruments Incorporated | Acceleration of bypass binary symbol processing in video coding |
EP3309969B1 (en) * | 2011-06-24 | 2023-04-19 | Sun Patent Trust | Image coding method and apparatus |
AU2012278484B2 (en) | 2011-07-01 | 2016-05-05 | Samsung Electronics Co., Ltd. | Method and apparatus for entropy encoding using hierarchical data unit, and method and apparatus for decoding |
GB2496193A (en) * | 2011-11-07 | 2013-05-08 | Sony Corp | Context adaptive data encoding and decoding |
FR2982726B1 (fr) * | 2011-11-10 | 2019-03-15 | Sigfox | Reseau d'acces de systeme de telecommunications numeriques et procede de telecommunications numeriques |
EP2781087A4 (en) * | 2011-11-15 | 2015-08-12 | Intel Corp | VIDEO ENCODER WITH CODING CABO WITH TWO CELLS PER CLOCK |
US9503717B2 (en) | 2012-01-09 | 2016-11-22 | Texas Instruments Incorporated | Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency |
US9191670B2 (en) | 2012-01-17 | 2015-11-17 | Qualcomm Incorporated | Throughput improvement for CABAC coefficient level coding |
GB2513110A (en) * | 2013-04-08 | 2014-10-22 | Sony Corp | Data encoding and decoding |
US9558109B2 (en) | 2014-04-04 | 2017-01-31 | Samsung Israel Research Corporation | Method and apparatus for flash memory arithmetic encoding and decoding |
CA2964773A1 (en) * | 2014-10-15 | 2016-04-21 | Nucleushealth, Llc | Remote viewing of large image files |
CN108401158B (zh) * | 2017-02-07 | 2021-01-22 | 深圳市中兴微电子技术有限公司 | 一种上下文自适应二元算术编码重归一化实现方法和装置 |
CN106851276A (zh) * | 2017-02-09 | 2017-06-13 | 西安电子科技大学 | 一种基于Vivado HLS实现的CABAC流水线编码方法 |
US11758178B2 (en) * | 2018-10-02 | 2023-09-12 | Lg Electronics Inc. | Method for compressing motion vector and apparatus therefor |
US20220086445A1 (en) * | 2020-12-03 | 2022-03-17 | Intel Corporation | Methods, apparatus, and articles of manufacture for multi-symbol equiprobable mode entropy coding |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5272478A (en) * | 1992-08-17 | 1993-12-21 | Ricoh Corporation | Method and apparatus for entropy coding |
JP3210996B2 (ja) * | 1993-07-30 | 2001-09-25 | 三菱電機株式会社 | 高能率符号化装置及び高能率復号化装置 |
US5793371A (en) * | 1995-08-04 | 1998-08-11 | Sun Microsystems, Inc. | Method and apparatus for geometric compression of three-dimensional graphics data |
US5869604A (en) * | 1995-11-09 | 1999-02-09 | Georgia Institute Of Technology | Crystallization and purification of polypeptides |
JP2830855B2 (ja) * | 1996-08-22 | 1998-12-02 | 日本電気株式会社 | 適応量子化制御装置 |
JP3339335B2 (ja) * | 1996-12-12 | 2002-10-28 | ヤマハ株式会社 | 圧縮符号化復号方式 |
US5859604A (en) * | 1997-01-14 | 1999-01-12 | International Business Machines Corporation | Merged VLSI implementation of hardware optimized Q-Coder and software optimized QM-Coder |
US6351570B1 (en) * | 1997-04-01 | 2002-02-26 | Matsushita Electric Industrial Co., Ltd. | Image coding and decoding apparatus, method of image coding and decoding, and recording medium for recording program for image coding and decoding |
US6654926B1 (en) * | 2000-10-11 | 2003-11-25 | Itran Communications Ltd. | Soft decision maximum likelihood encoder and decoder |
US6304196B1 (en) * | 2000-10-19 | 2001-10-16 | Integrated Device Technology, Inc. | Disparity and transition density control system and method |
US6504493B1 (en) * | 2000-10-31 | 2003-01-07 | Marvell International, Ltd. | Method and apparatus for encoding/decoding data |
US6603413B2 (en) * | 2001-02-07 | 2003-08-05 | Canon Kabushiki Kaisha | Variable-length decoding apparatus and method |
TW569556B (en) * | 2002-10-04 | 2004-01-01 | Avid Electronics Corp | Adaptive differential pulse-code modulation compression encoding/decoding method capable of fast recovery and apparatus thereof |
-
2003
- 2003-12-17 JP JP2003419698A patent/JP2005184232A/ja active Pending
-
2004
- 2004-12-15 US US11/013,162 patent/US6950040B2/en not_active Expired - Fee Related
- 2004-12-16 EP EP20040257865 patent/EP1549076A3/en not_active Withdrawn
- 2004-12-16 KR KR1020040106948A patent/KR20050061371A/ko not_active Application Discontinuation
- 2004-12-17 CN CNB2004101013289A patent/CN100472970C/zh not_active Expired - Fee Related
-
2005
- 2005-08-03 US US11/196,625 patent/US7132964B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6950040B2 (en) | 2005-09-27 |
JP2005184232A (ja) | 2005-07-07 |
US7132964B2 (en) | 2006-11-07 |
US20050270192A1 (en) | 2005-12-08 |
EP1549076A3 (en) | 2009-05-13 |
EP1549076A2 (en) | 2005-06-29 |
KR20050061371A (ko) | 2005-06-22 |
CN1630202A (zh) | 2005-06-22 |
US20050156762A1 (en) | 2005-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100472970C (zh) | 编码设备、程序和数据处理方法 | |
US11146820B2 (en) | Method for producing video coding and programme-product | |
US8588540B2 (en) | Arithmetic encoding apparatus executing normalization and control method | |
CN101502123B (zh) | 编码装置 | |
KR20080082147A (ko) | 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치 | |
CN102238387A (zh) | 一种视频熵编码、熵解码方法、装置及介质 | |
JPS6226633B2 (zh) | ||
CN103918186B (zh) | 上下文自适应数据编码 | |
EP0369682A2 (en) | Efficient coding method and its decoding method | |
US20060126743A1 (en) | Variable length code decoder and decoding method for variable length codes | |
US7342965B2 (en) | Adaptive method and system for mapping parameter values to codeword indexes | |
KR100683380B1 (ko) | 영상 압축 부호화를 위한 변환 및 역변환 방법 및 장치 | |
CN102355578A (zh) | 一种熵解码方法、装置 | |
JP4086424B2 (ja) | 符号化装置 | |
JP2798767B2 (ja) | 画像データ圧縮方式 | |
JP2614320B2 (ja) | 網点画像圧縮方式 | |
KR100351045B1 (ko) | 동화상복호화장치에서역양자화부의에이시(ac)계수복호화장치 | |
JPH0697834A (ja) | 可変多値算術符号化方法 | |
JPH04294685A (ja) | カラー画像信号の符号化方法および装置 | |
JP3287461B2 (ja) | 可変長符号復号方法及び装置 | |
JP2578966B2 (ja) | 網点画像データ圧縮装置 | |
CN115514967A (zh) | 基于二进制块双向编码的图像压缩方法及图像解压方法 | |
GB2496193A (en) | Context adaptive data encoding and decoding | |
JPH0551237B2 (zh) | ||
JPH0472870A (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: 20090325 Termination date: 20100118 |