CN101765010B - 编码器、解码器、编码方法以及解码方法 - Google Patents
编码器、解码器、编码方法以及解码方法 Download PDFInfo
- Publication number
- CN101765010B CN101765010B CN2009102594889A CN200910259488A CN101765010B CN 101765010 B CN101765010 B CN 101765010B CN 2009102594889 A CN2009102594889 A CN 2009102594889A CN 200910259488 A CN200910259488 A CN 200910259488A CN 101765010 B CN101765010 B CN 101765010B
- Authority
- CN
- China
- Prior art keywords
- length code
- variable length
- data
- bit stream
- unit
- 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
- 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
- H04N19/436—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 using parallelised computational arrangements
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本发明提供编码器、解码器、编码方法以及解码方法,所述编码器包括:分离单元,其用于将图像数据分成多个数据块;可变长度编码单元,其用于对被所述分离单元分成的各个所述数据块进行可变长度编码,并生成可变长度编码序列;编码块生成单元,其用于通过把利用所述可变长度编码单元生成的两个可变长度编码序列结合起来,生成要从起始端和结束端起并行地受到可变长度解码的编码块;比特流生成单元,其用于生成使所述编码块之间的边界能够被识别的比特流。因此,本发明可实现能够高速地进行可变长度解码处理的编码器、编码方法、解码器以及解码方法。
Description
相关申请的交叉参考
本申请包含与2008年12月25日向日本专利局提交的日本在先专利申请JP 2008-330208相关的主题,在此将该日本专利申请的全部内容并入本文作为参考。
技术领域
本发明涉及对图像数据进行可变长度编码的编码器、编码方法、用于记录编码程序的记录介质、对可变长度编码数据进行可变长度解码的解码器、解码方法以及用于记录解码程序的记录介质,上述编码器、编码方法、解码器、解码方法以及记录介质适用于各种编码***的解码器和编码器。
背景技术
在相关技术中,通常使用编码器对图像数据进行编码,然后进行记录或者发布,并且当显示图像时使用解码器进行解码。近来,随着图像精度的提高,图像数据的信息量也相应增加,于是需要以高速对已进行了编码的图像数据(下文中称为比特流)进行解码。
因此,推荐采用如下技术:将比特流分成多个段,并且使用多个并行布置的解码器对多个段同时进行解码(例如,参见日本专利申请公开公报No.2006-319943)。
图1示出了可变长度编码图像数据的结构(下文中称为可变长度编码序列)。在可变长度编码处理过程中,通过分配响应于与固定长度的图像数据的出现频率差异而被分配的不同长度的可变长度编码,来生成可变长度编码序列。因此,与全部图像数据的信息量相比,能够进一步减少可变长度编码序列的信息量。
如图2A~图2D所示,通过依次对作为图像数据而被输入的可变长度编码数据块DB1、DB2、…进行可变长度编码,生成了包含可变长度 编码序列VL1、VL2、…的比特流(BS)。
如图3A所示,在对可变长度编码序列进行解码的可变长度解码处理过程中,读取从比特流的首位算起的具有最大编码长度以上的位。下文中,把所读取的位称为待解码的位。对预先存储的可变长度解码(Variable Length Decoding,VLD)表与具有最大编码长度以上的待解码的位进行比较,并且选择与待解码的位一致的固定长度编码作为解码数据。
如图3B所示,将可变长度编码序列中用于解码的位的后续位设定为待解码的位,并且对这些待解码的位同样地进行可变长度解码,从而生成解码数据。通过将解码数据结合起来,生成图像数据。
与上述的解码器类似,即使在对可变长度编码序列进行解码的可变长度解码处理过程中,也并行地设置有多个可变长度解码单元以同时生成解码数据,从而加快可变长度解码处理过程。
然而,如图1所示,可变长度编码具有不同的长度,因而可能无法得知代表各可变长度编码的是哪些位。
例如,如图4所示,对设置有两个可变长度解码单元(第一可变长度解码单元1和第二可变长度解码单元2)的情况进行说明。第一可变长度解码单元1读取从比特流的首位算起的待解码的位,并且通过参照VLD表来生成包含固定长度编码的解码数据。此时,第一次确认分配给首个可变长度编码的编码长度,于是,识别出下一个可变长度编码的首位。
即,第二可变长度解码单元2不能对下一个可变长度编码的首位进行识别,并且也不能与第一可变长度解码单元1一起生成解码数据。
在相关技术的可变长度解码处理过程中,没有进行使用多个可变长度解码单元的并行处理,也很难以高速地进行可变长度解码处理。
发明内容
因此,本发明期望提供能够高速地进行可变长度解码处理的编码器、编码方法、解码器以及解码方法。
本发明的实施例提供一种编码器,所述编码器包括:分离单元分成的各个所述数据块进行可变长度编码,并生成可变长度编码序列;编码块生成单元,其通过把利用所述可变长度编码单元生成的两个所述可变长度编码序列结合起来,生成要从起始端和结束端起并行地受到可变长度解码的编码块;比特流生成单元,其用于生成使所述编码块之间的边界能够被识别的比特流。
因此,在发明实施例的编码器中,由于开始进行可变长度解码的两个起始位置能够通过比特流的编码块之间的边界而被指定,因而当进行可变长度解码处理时,可以从所述两个起始位置起并行地进行可变长度解码处理。
本发明的另一实施例提供一种解码器,所述解码器包括:接收单元,其接收具有可变长度编码的多个编码块,并且接收所生成的使所述编码块之间的边界能够被识别的比特流;指定单元,其用于基于所述编码块之间的边界来指定所述编码块的起始端和结束端;以及并行解码单元,其用于对通过所述接收单元接收到的所述比特流以并行方式从由所述指定单元指定的所述编码块的起始端和结束端起进行可变长度解码。
因此,在本发明实施例的解码器中,由于开始进行可变长度解码的两个起始位置能够通过比特流的编码块之间的边界而被指定,因而可以从该两个起始位置起并行地进行可变长度解码处理。
本发明另一实施例提供一种编码方法,所述编码方法包括如下步骤:将图像数据分成多个数据块;对各个所述数据块进行可变长度编码,并生成可变长度编码序列;通过把在上述可变长度编码步骤中生成的两个所述可变长度编码序列结合起来,生成要从起始端和结束端起并行地受到可变长度解码的编码块;以及生成使所述编码块之间的边界能够被识别的比特流。
因此,在本发明实施例的编码方法中,由于能够通过比特流的编码块之间的边界来指定开始进行可变长度解码的两个起始位置,因此当进行可变长度解码处理时,可以从该两个起始位置起并行地进行可变长度解码处理。
本发明另一实施例提供一种解码方法,所述解码方法包括如下步骤:在多个编码块具有可变长度编码的情况下,接收所生成的使所述编码块之间的边界能够被识别的比特流;基于所述编码块之间的边界来指定所述编码块的起始端和结束端;以及对在上述接收步骤中接收到的所述比特流以并行方式从由指定单元指定的所述起始端和所述结束端起进行可变长度解码。
因此,在本发明实施例的解码方法中,由于能够通过比特流的编码块之间的边界来指定开始进行可变长度解码的两个起始位置,因而可以从该两个起始位置并行地进行可变长度解码处理。
根据本发明的实施例,由于开始进行可变长度解码的两个起始位置能够通过比特流的编码块之间的边界而被指定,因而可以从该两个起始位置并行地进行可变长度解码处理。因此,根据本发明的实施例,能够实现可高速地进行可变长度解码处理的编码器和编码方法。
根据本发明的实施例,由于开始进行可变长度解码的两个起始位置能够通过比特流的编码块之间的边界而被指定,因而可以从该两个起始位置并行地进行可变长度解码处理。因此,根据本发明的实施例,能够实现可高速地进行可变长度解码处理的解码器和解码方法。
附图说明
图1是示出了可变长度编码的示意图;
图2A、图2B、图2C和图2D是用于对相关技术的可变长度编码处理进行说明的示意图;
图3A、图3B和图3C是用于对相关技术的可变长度解码处理进行说明的示意图;
图4是用于对并行处理的问题进行说明的示意图;
图5是示出了本发明第一实施例的编码器结构的示意图;
图6A和图6B是示出了本发明第一实施例的图像数据结构的示意图;
图7是用于根据本发明第一实施例对数据的分离进行说明的示意图;
图8A和图8B是用于根据本发明第一实施例对可变长度解码操作进行说明的示意图;
图9A、图9B、图9C和图9D是用于根据本发明第一实施例对数据的交替进行说明的示意图;
图10是示出了本发明第一实施例的解码器结构的示意图;
图11A、图11b、图11C和图11D是用于根据本发明第一实施例对数据的读取进行说明的示意图;
图12是用于根据本发明第一实施例对可变长度解码处理进行说明的示意图;
图13是用于根据本发明第一实施例对图像数据的生成进行说明的示意图;
图14是用于根据本发明第一实施例对编码处理顺序进行说明的流程图;
图15是用于根据本发明第一实施例对并行解码处理顺序进行说明的流程图;
图16是示出了本发明第二实施例的图像数据结构的示意图;
图17是示出了本发明的第二实施例的编码器结构的示意图;
图18是用于根据本发明第二实施例对数据的分离进行说明的示意图;
图19是用于根据本发明第二实施例对可变长度解码操作进行说明的示意图;
图20A、图20B、图20C、图20D和图20E是示出了本发明第二实施例的可变长度编码序列的结构的示意图;
图21A、图21B、图21C、图21D、图21E和图21F是用于根据本发明第二实施例对比特流的生成进行说明的示意图;
图22是示出了本发明第二实施例的解码器结构的示意图;
图23A、图23B、图23C和图23D是用于说明根据本发明第二实施 例对待解码的位进行读取(1)的示意图;
图24A、图24B、图24C、图24D、图24E和图24F是用于说明根据本发明第二实施例对待解码的位进行读取(2)的示意图;
图25A、图25B、图25C和图25D是用于根据本发明第二实施例对终止处理(1)进行说明的示意图;
图26A、图26B、图26C和图26D是用于根据本发明第二实施例对终止处理(2)进行说明的示意图;
图27是用于根据本发明第二实施例对编码处理顺序进行说明的流程图;
图28是用于根据本发明第二实施例对并行解码处理顺序进行说明的流程图;
图29是示出了本发明第三实施例的编码器结构的示意图;
图30A、图30B、图30C、图30D和图30E是示出了本发明第三实施例的可变长度编码的结构的示意图;
图31A、图31B、图31C、图31D和图31E是用于根据本发明第三实施例对比特流的生成进行说明的示意图;
图32是示出了本发明第三实施例的解码器结构的示意图;
图33是用于说明根据本发明第三实施例对待解码的位进行读取的示意图;
图34是用于根据本发明第三实施例对图像数据的生成进行说明的示意图;
图35是用于根据本发明第三实施例对编码处理顺序进行说明的流程图;
图36是用于根据本发明第三实施例对并行解码处理顺序进行说明的流程图;
图37是用于根据本发明其它实施例对比特流的生成(1)进行说明的示意图;
图38A、图38B和图38C是用于根据本发明其它实施例对比特流的生成(2)进行说明的示意图;
图39是用于根据本发明其它实施例对图像数据进行说明的示意图;
图40是用于根据本发明其它实施例对比特流的生成(3)进行说明的示意图。
具体实施方式
下面采用如下顺序对本发明的各实施例进行说明。
1、第一实施例(从两端进行可变长度解码操作的并行处理)
2、第二实施例(通过交替存储多个数据段而进行的并行处理)
3、第三实施例(第一实施例和第二实施例的组合)
4、其它实施例
1、第一实施例
1-1.编码器的结构
图5中的附图标记10在整体上示出了编码器。当图像数据通过输入端子11供给过来时,编码器10对该图像数据进行编码处理,从而生成由可变长度编码组成的比特流,并且将该比特流通过输出端子15输出。
具体而言,输入端子11将输入进来的图像数据供给到分离单元12。如图6A所示,图像数据BL的一帧由H(水平)像素×V(垂直)像素构成。如图6B所示,图像数据BL采用4:2:2格式,并且与64个像素对应的像素值通过64段采用固定长度编码的亮度数据Y以及32段采用固定长度编码的色差数据Cb和Cr来表示。
在图像数据BL中,使用与64个像素对应的块作为处理块,用数量与一帧的像素数相等的处理块来表示一帧图像。
当图像数据BL被供给过来时,如图7所示,分离单元12将图像数据BL分成多个处理块,并且将这些处理块分成亮度数据Y及色差数据Cb和Cr。下文中,将分出的亮度数据Y称为前半块(first half block)DBa, 将色差数据Cb和Cr称为后半块(second halfblock)DBb。
分离单元12将前半块DBa和后半块DBb供给到可变长度编码单元13。
如图8A和图8B所示,可变长度编码单元13(见图5)使用可变长度编码(Variable Length Coding,VLC)表对前半块DBa和后半块DBb进行可变长度编码,并生成由可变长度编码组成的前半可变长度编码序列VLa和后半可变长度编码序列VLb。因此,前半可变长度编码序列VLa和后半可变长度编码序列VLb分别具有64位可变长度编码a0~a63和b0~b63。
另外,可变长度编码单元13同时还进行固定长度编码的量子化处理(quantization process)或者由于可变长度编码中较低位面舍入运算(lowerbitplane rounding off operation)而引起的后量子化处理(post-quantizationprocess),从而将前半可变长度编码序列VLa和后半可变长度编码序列VLb抑制到预定编码量以下。
可变长度编码单元13将前半可变长度编码序列VLa和后半可变长度编码序列VLb供给到比特流生成单元14(见图5)。
如图9A和图9B所示,比特流生成单元14将前半可变长度编码序列VLa和后半可变长度编码序列VLb结合起来。此时,比特流生成单元14将作为缓冲数据DD的虚拟数据***到前半可变长度编码序列VLa与后半可变长度编码序列VLb之间,从而生成具有固定编码长度的固定长度编码块VLx。
另外,如果要使得由前半可变长度编码序列VLa和后半可变长度编码序列VLb相加而得到的编码长度等于固定长度编码块VLx的固定编码长度,则比特流生成单元14可以不***缓冲数据DD。
此时,如图9C和图9D所示,比特流生成单元14将后半可变长度编码序列VLb以镜像方式进行反转,从而将后半可变长度编码序列VLb的首位放到固定长度编码块VLx的最后部分处。例如,如果后半可变长度编码序列VLb为“0110001001100…”,则重新排列为“…0011001000110”。
比特流生成单元14依次生成固定长度编码块VLx并且使这些固定长度编码块VLx结合起来,从而生成比特流BSw。
上述编码处理可以通过硬件或者软件来进行。如果通过软件来实现编码处理,则编码器10被虚拟地形成在中央处理器(Central ProcessingUnit,CPU)和随机存取存储器(Random Access Memory,RAM)中。另外,把存储在只读存储器(Read Only Memory,ROM)中的编码程序展开以进行编码处理。
编码器10将待处理的块分成两个块(前半块DBa和后半块DBb),进行VLC处理,并且生成前半可变长度编码序列VLa和后半可变长度编码序列VLb。编码器10***缓冲数据DD并使前半可变长度编码序列VLa和后半可变长度编码序列VLb结合起来,因而生成具有固定编码长度的固定长度编码块VLx。
因此,编码器10能够使固定长度编码块VLx的首位与末位之间的间隔总是恒定。
1-2.解码器的结构
下面对用于对比特流BSw进行解码的解码器30进行说明。如图10所示,当比特流BSw被供给过来时,解码器30对该比特流BSw进行并行解码处理即可变长度解码处理,并且生成图像数据BL。
当比特流BSw通过输入端子31被供给过来时,解码器30开始进行并行解码处理,同时,利用两个解码单元(第一解码单元33和第二解码单元34)从比特流BSw生成由固定长度编码组成的解码数据。解码器30通过输出端子37输出由解码数据组成的图像数据BL。
如图11A所示,通过对各个具有固定编码长度的固定长度编码块VLx进行排列而形成了比特流BSw。因此,解码器30能够从固定长度编码块VLx的编码长度中识别出固定长度编码块VLx的起始端和结束端,并且计算出比特流BSw中的解码起始位置。
因此,如图11B所示,解码器30将固定长度编码块VLx的起始端指定为解码起始位置,并且把用于表示读取开始位置的开始指针P1设定 在该起始端处。解码器30能够从开始指针P1开始依次向后读取数据,从而读取前半可变长度编码序列VLa。
另外,如图11C所示,固定长度编码块VLx包括处于后半部分中的后半镜像可变长度编码序列VLm。后半镜像可变长度编码序列VLm是从后半可变长度编码序列VLb进行镜像转变而来的,并且后半镜像可变长度编码序列VLm的结束端形成了固定长度编码块VLx的结束端。
因此,解码器30将固定长度编码块VLx的结束端指定为解码起始位置,并且将开始指针P2设定在该结束端处。解码器30能够从开始指针P2开始依次向前读取数据,从而如图11D所示将后半镜像可变长度编码序列VLm读取成后半可变长度编码序列VLb。
解码器30使开始指针移动仅用于解码的位数,以便对从前半可变长度编码序列VLa和后半可变长度编码序列VLb依次读取的待解码的位进行可变长度解码,从而生成解码数据。下文中,把对待解码的位进行读取操作和可变长度解码操作的一系列处理称为解码数据生成处理。
即,如图12所示,解码器30通过第一可变长度解码单元33对前半可变长度编码序列VLa进行解码数据生成处理,且生成前半解码数据BBa。另外,解码器30通过第二可变长度解码单元34对后半可变长度编码序列VLb进行解码数据生成处理,且生成后半解码数据BBb。
如图13所示,解码器30通过图像数据生成单元36使前半解码数据BBa和后半解码数据BBb结合起来,并且使已经结合起来的解码块依次连接,从而生成图像数据BL。
具体而言,解码器30(见图10)把通过输入端子31供给过来的比特流BSw供给到存储器32。因此,将比特流BSw的数据依次存储在存储器32中。
并行解码单元40的读取控制单元35将比特流BSw的开始部分识别为首个固定长度编码块VLx的首位(即,解码起始位置)。读取控制单元35设定与第一可变长度解码单元33对应的开始指针P1,并且从固定长度编码块VLx的首位开始向后(即,沿正方向)进行读取。
也就是,读取控制单元35按照与从固定长度编码块VLx的首位算 起的可变长度编码的最大编码量相同的位数对数据(即,待解码的位)进行读取,并且将读取到的数据供给到第一可变长度解码单元33。于是,将待解码的位存储在第一可变长度解码单元33的缓冲存储器(未图示)内。
通过参照可变长度解码(Variable Length Decoding,VLD)表,第一可变长度解码单元33从待解码的位生成解码数据,并将该数据供给到图像数据生成单元36。读取控制单元35使开始指针P1移动用于生成解码数据的位数,并且开始对后续的待解码的位进行读取。
当生成了64段解码数据时,读取控制单元35识别出已经完成了当前正在进行处理的前半可变长度编码序列VLa的可变长度解码,并将开始指针P1移动到下一个固定长度编码块VLx的起始端部分。也就是,读取控制单元35使开始指针P1以固定长度编码块VLx的固定编码长度作为移动距离而移动到当前正在进行处理的前半可变长度编码序列VLa(即,固定长度编码块VLx)的起始端后面的位置。
因此,读取控制单元35能够将开始指针P1移动到下一个固定长度编码块VLx的作为解码起始位置的起始端,即前半可变长度编码序列VLa的起始端,并且开始对该下一个前半可变长度编码序列VLa进行解码数据生成处理。
另外,从曾经设定了开始指针P1的首个固定长度编码块VLx的首位向后移动了固定长度编码块VLx的固定编码长度而到达的位置变成下一个固定长度编码块VLx的起始端。
然后,读取控制单元35识别出该下一个固定长度编码块VLx的起始端的前一位(earlier by 1[bit])为当前正在处理的固定长度编码块VLx的结束端(即,解码起始位置),并且设定与第二可变长度解码单元34对应的开始指针P2。
也就是,读取控制单元35将开始指针P2设定在用该下一个固定长度编码块VLx的首位减去1位(1[bit])固定长度编码而到达的位置处。读取控制单元35从固定长度编码块VLx的末位开始向前(即,沿正方向的反方向)读取待解码的位。
读取控制单元35按照与从固定长度编码块VLx的末位算起的可变 长度编码的最大编码量相同的位数对数据(即,待解码的位)进行读取,并且将读取到的数据供给到第二可变长度解码单元34。于是,将待解码的位存储在第二可变长度解码单元34的缓冲存储器(未图示)内。
通过参照可变长度解码(VLD)表,第二可变长度解码单元34从待解码的位生成解码数据,并将该数据供给到图像数据生成单元36。读取控制单元35使开始指针P2在反方向上移动用于生成解码数据的位数,并且开始对后续的待解码的位进行读取。
当生成了64段解码数据时,读取控制单元35识别出已经完成了当前正在进行处理的后半可变长度编码序列VLb的可变长度解码,并将开始指针P2移动到下一个固定长度编码块VLx的结束端(即,解码起始位置)。也就是,读取控制单元35使开始指针P2以固定长度编码块VLx的固定编码长度作为移动距离而移动到当前正在进行处理的后半镜像可变长度编码序列VLm(即,固定长度编码块VLx)的结束端后面的位置。
因此,读取控制单元35能够将开始指针移动到下一个固定长度编码块VLx的作为解码起始位置的结束端,即后半可变长度编码序列VLb的起始端,并开始对该下一个后半可变长度编码序列VLb进行解码数据生成处理。
图像数据生成单元36使从第一可变长度解码单元33供给来的64段解码数据(即,前半解码数据BBa)和从第二可变长度解码单元34供给来的64段解码数据(即,后半解码数据BBb)进行排列并结合起来。另外,图像输出单元36使已经结合起来的解码块依次连接,从而生成图像数据BL。
上述并行解码处理可以通过硬件或者软件来进行。如果通过软件来实现并行解码处理,则解码器30被虚拟地形成在CPU和RAM中。另外,将存储在ROM中的解码程序展开以进行该并行解码处理。
解码器30从比特流BSw的固定长度编码块VLx的起始端和结束端同时进行解码数据生成处理。因此,由于解码器30能够利用两个可变长度解码单元来并行地进行解码数据生成处理,所以可以实现高速的可变长度解码处理。
1-3.详细流程
1-3-1.编码流程
下面参照图14的流程图对根据编码程序进行的编码流程RT1进行说明。
当图像数据BL被供给过来时,编码器10开始编码流程RT1,并且进入步骤SP1。
在步骤SP1中,编码器10将图像数据BL分成前半块DBa和后半块DBb,然后进入下一步骤SP2。
在步骤SP2中,编码器10对分离而成的各单位(即,前半块DBa和后半块DBb)中的图像数据BL进行可变长度编码,从而生成前半可变长度编码序列VLa和后半可变长度编码序列VLb,然后进入下一步骤SP3。
在步骤SP3中,编码器10对后半可变长度编码序列VLb进行镜像处理,从而生成后半镜像可变长度编码序列VLm,然后进入下一步骤SP4。
在步骤SP4中,编码器10把缓冲数据DD***在前半可变长度编码序列VLa与后半镜像可变长度编码序列VLm之间而使两者结合起来,从而生成具有固定编码长度的固定长度编码块VLx。然后,编码器10将新生成的固定长度编码块VLx与先前生成的固定长度编码块VLx进行结合,从而生成比特流BSw,然后进入结束步骤,从而完成了编码流程RT1。
1-3-2.并行解码流程
参照图15的流程图对根据并行解码程序进行的并行解码流程RT2进行说明。
当图像数据BL被供给过来时,编码器30开始并行解码流程RT2,将供给过来的比特流BSw依次存入存储器32中,然后进入步骤SP11。
在步骤SP11中,解码器30将存储器32中的待处理的固定长度编码块VLx的起始端和结束端设定为解码起始位置。
也就是,解码器30将固定长度编码块VLx的起始端确定为第一可变长度解码单元33的解码起始位置,并且设定用于表示读取开始位置的 开始指针P1。另外,解码器30将固定长度编码块VLx的结束端确定为第二可变长度解码单元34的解码起始位置,并且设定开始指针P2,然后进入下一步骤SP13。
在步骤SP13中,解码器30从开始指针P1开始在正方向上并且从开始指针P2开始在反方向上从存储器32读取数据,从而依次读取待解码的位,然后进入下一步骤SP14。
在步骤SP14中,通过参照VLD表,解码器30从待解码的位生成解码数据,然后进行下一步骤SP15。
在步骤SP15中,解码器30判断在所有的可变长度解码单元中,是否已经完成了待处理的固定长度编码块VLx的解码数据的生成。
如果得到的是否定结果(“否”),则说明在固定长度编码块VLx中还存在应当进行可变长度解码的可变长度编码。此时,解码器30返回步骤SP13,从通过将开始指针P1和P2移动待解码的位数即移动在步骤SP14中用于生成解码数据的待解码的位数而获得的位置起,开始对待解码的位进行读取,然后继续进行处理。
相反,如果在步骤SP15中得到的是肯定结果(“是”),则解码器30使前半解码数据BBa和后半解码数据BBb结合起来,从而生成解码块。然后,解码器30将新生成的解码块和先前生成的解码块结合起来,从而生成图像数据BL,然后进入结束步骤,从而完成了并行解码处理。
1-4.操作和效果
在上述的结构中,编码器10将图像数据BL分成作为多个数据块的前半块DBa和后半块DBb。编码器10对前半块DBa和后半块DBb进行可变长度编码,从而生成可变长度编码序列。
编码器10将前半可变长度编码序列VLa和后半可变长度编码序列VLb,即由可变长度编码单元13生成的这两个可变长度编码序列结合起来,从而生成固定长度编码块VLx,作为要从起始端和结束端并行地进行可变长度解码的编码块。此时,编码器10对固定长度编码块VLx进行排列,从而生成使得固定长度编码块VLx的边界能够被识别的比特流 BSw。
通常,如果并行地进行对可变长度编码的可变长度解码处理,则可以在比特流中仅包含用于表示解码起始位置的解码起始位置信息。如果仅包含解码起始位置信息,则对于一个解码起始位置需要包含一个解码起始位置信息。
由于本发明实施例的编码器10基于固定长度编码块VLx的边界从固定长度编码块VLx的起始端和结束端开始进行解码,因此,对于一个作为固定长度编码块VLx的边界的解码起始位置信息就可以指定两个解码起始位置。因而,编码器10能够减少比特流BSw中所包含的解码起始位置信息的信息量,并且能够抑制因为该解码起始位置信息而导致的编码量的增加。
另外,编码器10将编码块的编码长度设定为固定长度,以便对编码块的边界进行识别。
因此,即使当解码器不检测用于表示边界的信息时,编码器10也能够仅基于编码长度来指定解码起始位置。
编码器10将缓冲数据DD***在前半可变长度编码序列VLa与后半可变长度编码序列VLb之间,从而固定编码长度并生成固定长度编码块VLx。
因此,即使当不对前半可变长度编码序列VLa和后半可变长度编码序列VLb的编码量进行明显的调整时,编码器10也能够用固定编码长度生成固定长度编码块VLx,并且降低了处理负荷。
编码器10将分布在前半部分中的前半可变长度编码序列VLa从起始端起按照正方向进行排列,将分布在后半部分中的后半可变长度编码序列VLb从结束端起按照逆方向进行排列,从而生成固定长度编码块VLx。
因此,编码器10使得解码器沿正方向从起始端起读取出前半可变长度编码序列VLa,沿反方向从结束端起读取出后半部分的后半可变长度编码序列VLb,并且不需对后半可变长度编码序列VLb进行重新排列。
解码器30具有多个由可变长度编码组成的固定长度编码块VLx,并且接收所生成的使固定长度编码块VLx之间的边界能够被识别的比特流BSw。解码器30基于固定长度编码块VLx的边界来指定固定长度编码块VLx的起始端和结束端。另外,解码器30从固定长度编码块VLx的起始端和结束端起并行地开始对比特流BSw进行作为可变长度解码操作的解码数据生成处理。
因此,由于解码器30使用固定长度编码块VLx的起始端和结束端作为解码起始位置来并行地进行解码数据生成处理,因而可以对比特流BSw进行高速的可变长度解码处理。
解码器30使用同一解码表(即,VLD表),对由从起始端起按照正方向进行排列的前半可变长度编码序列VLa和从结束端起按照逆方向进行排列的后半可变长度编码序列VLb组成的固定长度编码块VLx进行解码数据生成处理。
解码器30能够沿反方向对后半可变长度编码序列VLb进行读取,从而按照正确的顺序读取出后半可变长度编码序列VLb。因此,即使当没有特意准备镜像VLD表时,解码器30也能够使用与前半可变长度编码序列VLa共用的VLD表,对后半可变长度编码序列VLb进行解码数据生成处理。
根据上述的结构,编码器10将图像数据BL分成多个处理块单位,把通过可变长度编码处理而生成的两个可变长度编码序列(前半可变长度编码序列VLa和后半可变长度编码序列VLb)结合起来,因而生成作为一个编码块的固定长度编码块VLx。另外,编码器10生成使固定长度编码块VLx之间的边界能够被识别的比特流BSw。
因此,解码器30能够根据固定长度编码块VLx的边界来指定两个解码起始位置(前半可变长度编码序列VLa的起始端和后半镜像可变长度编码序列VLm的结束端),并且进行并行解码数据生成处理。
因此,本发明能够实现可高速地进行可变长度解码处理的编码器、编码方法、记录有编码程序的记录介质、解码器、解码方法以及记录有解码程序的记录介质。
2、第二实施例
图16~图28说明了本发明的第二实施例,其中,与图5~图15所示第一实施例中对应的部分用相同的附图标记表示。第二实施例的编码器50在生成比特流BSr的方法上方面不同于第一实施例。
2-1.编码器的结构
当图像数据BL被供给过来时,编码器50对该图像数据进行编码处理,从而生成由可变长度编码组成的比特流BSr。
如图16所示,图像数据BL采用4:2:2格式,并且与256个像素对应的亮度数据Y以及色差数据Cb和Cr被用作处理块单位。通过按照频段对亮度值进行划分,亮度数据被分成由高通分量组成的亮度数据Ya和由低通分量组成的亮度数据Yb。
如图17所示,编码器50的输入端子51将输入过来的图像数据供给到分离单元52。如图18所示,分离单元52将供给过来的具有多个处理块的图像数据BL分成亮度数据Ya和Yb以及色差数据Cb和Cr,从而依次生成数据块DBa~DBd。
分离单元52(见图17)将数据块DBa、DBb、DBc和DBd分别供给到第一可变长度编码单元61、第二可变长度编码单元62、第三可变长度编码单元63和第四可变长度编码单元64。下文中,将这些可变长度编码单元统称为可变长度编码单元61~64。
如图19所示,可变长度编码单元61~64对数据块DBa~DBd进行VLC处理,分别生成可变长度编码序列VLa~VLd,并且将这些可变长度编码序列VLa~VLd供给到比特流生成单元54。
比特流生成单元54根据可变长度编码序列VLa~VLd生成嵌套块VLy,并且对嵌套块VLy进行排列,从而生成比特流BSr。
如图20A所示,可变长度编码序列VLa包括128个可变长度编码序列a0~a127。如果将数字“k~0”赋予给可变长度编码序列VLa中各自具有1位(1[bit])的编码,则可以将可变长度编码序列VLa表示为如图20B所示。
类似地,如果将数字“l~0”、“m~0”和“n~0”赋予给可变长度编码序列VLb~VLd中各自具有1位的编码,则可以将可变长度编码序列VLb~VLd示为如图20C~图20E所示。
如图21A~图21E所示,比特流生成单元54逐位地(1[bit]by 1[bit])从首位提取数据,并将提取的数据按照可变长度编码序列VLa、VLb、VLc和VLd的顺序进行排列。另外,比特流生成单元54逐位地从第二位提取数据,并将提取的数据按照可变长度编码序列VLa、VLb、VLc和VLd的顺序进行排列。类似地,比特流生成单元54对可变长度编码序列VLa~VLd的所有编码进行重新排列。
因而,在嵌套块VLy中,可变长度编码序列VLa、VLb、VLc和VLd的数据以嵌套形式排列着,如a[k]、b[l]、c[m]、d[n]、a[k-1]、b[l-1]、c[m-1]、d[n-1]、…、a[x]、b[y]、c[z]和d[v]。其中,x、y、z和v分别表示变数。下文中,把重复出现的一套位组(例如,a[k]、b[l]、c[m]和d[n]构成一套)称为重复位。
此处,可变长度编码序列VLa~VLd的编码长度是不同的。因此,与其他可变长度编码序列相比,编码长度较短的可变长度编码序列的数据会较早用完。在这种情况下,如图21F所示,比特流生成单元54继续对其余可变长度编码序列的数据以彼此嵌套的方式进行重新排列。
也就是,在将可变长度编码序列VLc的末位数据c[0]进行排列之后就已经完成了对可变长度编码序列VLc的所有数据的重新排列时,比特流生成单元54继续仅对其余可变长度编码序列VLa、VLb和VLd的数据以嵌套形式进行重新排列。因而,在嵌套块VLy中,连续排列的是由a[x]、b[y]和d[v]组成的重复位。
接着,在将可变长度编码序列VLd的末位数据d[0]进行排列之后就已经完成了对可变长度编码序列VLd的所有数据的重新排列时,比特流生成单元54继续仅对其余可变长度编码序列VLa和VLb的数据交替进行重新排列。因而,在嵌套块VLy中,连续排列的是由a[x]和b[y]组成的重复位。
接着,在将可变长度编码序列VLb的末位数据b[0]进行排列之后就 已经完成了对可变长度编码序列VLb的所有数据的重新排列时,比特流生成单元54继续仅对其余可变长度编码序列VLa的数据进行重新排列。因而,在嵌套块VLy中,连续排列的都是a[x],一直到出现a[0]。
编码器50使可变长度编码序列VLa、VLb、VLc和VLd的各编码逐位地以嵌套形式进行交替,从而生成嵌套块VLy,并且生成具有连续的各嵌套块Vly的比特流BSr。
因此,编码器50能够以预定的记录间隔(即,以4位的间隔)对可变长度编码序列VLa、VLb、VLc和VLd的数据进行排列。
2-2.解码器的结构
如图22所示,当比特流BSr被供给过来时,解码器80对比特流BSr进行并行解码处理即可变长度解码处理,从而生成图像数据BL。
当由嵌套块VLy组成的比特流BSr被供给过来时,解码器80的输入端子81将该比特流BSr供给到存储器82。存储器82根据读取控制单元83的控制来依次存储供给过来的嵌套块VLy。
解码器80具有包括四个可变长度解码单元91~94(即,第一可变长度解码单元91、第二可变长度解码单元92、第三可变长度解码单元93和第四可变长度解码单元94)和读取控制单元83的并行解码单元90。根据读取控制单元83的控制,可变长度解码单元91~94分别对可变长度编码序列VLa、VLb、VLc和VLd的数据进行解码。
如上所述,在嵌套块VLy中,可变长度编码序列VLa、VLb、VLc和VLd的数据是以嵌套形式被记录下来的。读取控制单元83从记录有嵌套块VLy的地址生成解码起始位置信息和读取间隔信息,并且将这些信息供给到可变长度解码单元91~94。另外,解码起始位置信息是用于表示存储器82的某一地址的信息,可变长度解码单元91~94在该地址处开始对嵌套块VLy进行可变长度解码。另外,读取间隔信息指的是可变长度解码单元91~94对数据进行读取的间隔。
此时,读取控制单元83分别将用于表示待处理的嵌套块VLy的首位、从首位算起的第二位、从首位算起的第三位和从首位算起的第四位 的解码起始位置信息供给到可变长度解码单元91~94。另外,读取控制单元83分别将表示“4”的读取间隔信息供给到可变长度解码单元91~94。
如图23A和图23B所示,根据解码起始位置信息,第一可变长度解码单元91把用于表示读取开始位置的开始指针P1设定在存储于存储器82中的嵌套块VLy的首位处,并且从开始指针P1开始以4位(4[bits])的间隔读取数据。也就是,第一可变长度解码单元91仅将源自可变长度编码序列VLa的数据作为待解码的位进行读取,并且暂时将读取到的数据存入缓冲存储器(未图示)中。
如图23C和图23D所示,根据解码起始位置信息,第二可变长度解码单元92把开始指针P2设定在从存储于存储器82中的嵌套块VLy的首位算起的第二位处,并且从开始指针P2开始以4位的间隔读取数据。也就是,第二可变长度解码单元92仅将源自可变长度编码序列VLb的数据作为待解码的位进行读取,并且暂时将读取到的数据存入缓冲存储器(未图示)中。
尽管未图示,但是根据解码起始位置信息,第三可变长度解码单元93把开始指针P3设定在从存储于存储器82中的嵌套块VLy的首位算起的第三位处,并且从开始指针P3开始以4位的间隔读取数据。也就是,第三可变长度解码单元93仅将源自可变长度编码序列VLc的数据作为待解码的位进行读取,并且暂时将读取到的数据存入缓冲存储器(未图示)中。
尽管未图显示,但是根据解码起始位置信息,第四可变长度解码单元94把开始指针P4设定在从存储于存储器82中的嵌套块VLy的首位算起的第四位处,并且从开始指针P4开始以4位的间隔读取数据。也就是,第四可变长度解码单元94仅将源自可变长度编码序列VLd的数据作为待解码的位进行读取,并且暂时将读取到的数据存入缓冲存储器(未图示)中。
接着,如图24A所示,第一可变长度解码单元91使用VLD表对待解码的位进行可变长度解码,并且生成解码数据。第一可变长度解码单元91将开始指针P1移动用于解码的数据的位数(即,2位),并且从开始 指针P1开始以4位的间隔读取作为待解码的位的数据。
如图24B~图24D所示,类似地,第二可变长度解码单元92、第三可变长度解码单元93和第四可变长度解码单元94使用VLD表对待解码的位进行可变长度解码,并且生成解码数据。
第二可变长度解码单元92、第三可变长度解码单元93和第四可变长度解码单元94分别将开始指针P2、P3和P4移动仅用于解码的位数(即,2位、6位和2位),并从各自的开始指针开始以4位的间隔读取作为待解码的位的数据。
然后,可变长度解码单元91~94类似地读取待解码的位,并且继续进行解码数据生成处理。另外,将解码数据暂时存储在可变长度解码单元91~94中所包含的解码数据存储器(未图示)中。
如图24E和图24F所示,在嵌套块VLy的结束部分中,与各可变长度编码序列VLa~VLd对应的数据的记录间隔有所改变。
也就是,在嵌套块VLy中,如果已经完成了基于可变长度编码序列VLc的数据,则将基于其余可变长度编码序列VLa、VLb和VLd的数据的记录间隔从“4”改变为“3”。
在嵌套块VLy中,如果已经完成了基于可变长度编码序列VLd的数据,则将基于其余可变长度编码序列VLa和VLb的数据的记录间隔从“3”改变为“2”。
在嵌套块VLy中,如果已经完成了可变长度编码序列VLb的数据,则将基于其余可变长度编码序列VLa的数据的记录间隔从“2”改变为“1”,并且对可变长度编码序列VLa进行连续记录。
因此,如果一直以读取间隔“4”对待解码的位进行读取,直到嵌套块VLy的结束部分,则可变长度解码单元91~94不会生成基于可变长度编码序列VLa~VLd的解码数据。
根据在嵌套块VLy的结束部分处的记录间隔的改变,解码器80从存储器82中读取待解码的位,并且执行用于实现再次生成解码数据的解码数据生成处理的结束处理。
具体而言,如果已经完成了生成第128次解码数据的处理,则与第127次解码数据类似,可变长度解码单元91~94将各自的开始指针移动用于解码数据的位数。
此时,读取控制单元83确认各开始指针的位置,并且选择在最前地址处的开始指针。例如,当选择了与可变长度编码序列VLc对应的开始指针P3时,读取控制单元83将位于开始指针P3之前4位读取间隔的地址指定为已完成了解码数据生成处理的可变长度编码序列VLc的最后数据的所在位置(下文中,称为先前完成地址)。
读取控制单元83将先前完成地址之后的读取间隔改变为“3”,然后使用与可变长度编码序列VLa、VLb和VLd对应的可变长度解码单元91、92和94再次进行解码数据生成处理。
即,对于在由包括具有可变长度编码序列VLc的先前完成地址的重复位的可变长度编码所生成的解码数据(下文中,称为先前完成解码数据)之后生成的解码数据,第一可变长度解码单元91使得该解码数据无效。然后,第一可变长度解码单元91从先前完成解码数据开始再次进行解码数据生成处理。
例如,第一可变长度解码单元91从第118次开始再次进行解码数据生成处理,第二可变长度解码单元92从第124次开始再次进行解码数据生成处理,第四可变长度解码单元94从第127次开始再次进行解码数据生成处理。
解码控制单元83将表示可变长度编码序列VLc的先前完成地址的先前完成地址信息供给到可变长度解码单元91、92和94。可变长度解码单元91、92和94使得先前完成解码数据和之后生成的解码数据无效。
例如,如果将可变长度编码序列VLc的先前完成地址用于基于可变长度编码序列VLa的第118次解码数据生成处理所生成的解码数据,则第一可变长度解码单元91使得在第118次之后生成的解码数据无效。类似地,第二可变长度解码单元92使得在第124次解码数据生成处理之后生成的解码数据无效。第四可变长度解码单元94使得在第127次解码数据生成处理之后生成的解码数据无效。
可变长度解码单元91、92和94分别存储在解码数据生成处理时所设定的开始指针的位置。可变长度解码单元91、92和94分别使各自的开始指针返回到在生成先前完成解码数据的解码数据生成处理时所设定的位置处。
即,第一可变长度解码单元91使开始指针P1返回到第118次解码数据生成处理时的位置处。第二可变长度解码单元92使开始指针P2返回到第124次解码数据生成处理时的位置处。第四可变长度解码单元94使开始指针P4返回到第127次解码数据生成处理时的位置处。
然后,读取控制单元83将读取间隔信息供给到可变长度解码单元91、92和94,该读取间隔信息表示:到先前完成地址为止,读取间隔被设定为“4”,并且从超过先前完成地址的下一个重复位开始,读取间隔被改变为“3”。
如图25A和图25B所示,在有可变长度编码序列VLc时,第一可变长度解码单元91以4位的间隔读取数据,但是,在没有了可变长度编码序列VLc之后,第一可变长度解码单元91以3位的间隔读取数据。
因而,第一可变长度解码单元91可以仅将可变长度编码序列VLa读取为待解码的位,并且可以基于可变长度编码序列VLa来生成解码数据。
类似地,从在读取控制单元83控制下用于生成先前完成解码数据的解码数据生成处理开始,可变长度解码单元92和94再次进行解码数据生成处理。
用于生成先前完成解码数据的解码数据生成处理的次数根据各可变长度编码序列等的长度而不同。因此,对于各个可变长度解码单元91、92和94来说,再次进行的解码数据生成处理的次数不同。
第一可变长度解码单元91从第118次开始要进行11次剩余解码数据生成处理。第二可变长度解码单元92从第124次开始要进行5次剩余解码数据生成处理,第四可变长度解码单元94从第127次开始要进行2次剩余解码数据生成处理。
因此,通过两次解码数据生成处理,第四可变长度解码单元94完成 了第128次解码数据生成处理。此时,读取控制单元83将可变长度编码序列VLd的最后地址与分别对应于可变长度解码单元91和92的开始指针P1和开始指针P2进行比较。
例如,如图25C所示,如果开始指针P2位于可变长度编码序列VLd的最后地址d[0]之前,则可以更早完成可变长度编码序列VLb的数据。
因此,读取控制单元83使可变长度解码单元91和92继续进行解码数据生成处理,直到分别对应于其它可变长度解码单元91和92的开始指针P1和P2都超出可变长度编码序列VLd的最后地址。
此时,如图25D所示,当开始指针P1和P2都超出了可变长度编码序列VLd的最后地址时,读取控制单元83将可变长度编码序列VLd的最后地址识别为先前完成地址。
另外,如果在开始指针P1和P2中的任何一个没有超出可变长度编码序列VLd的最后地址的状态下完成了第128次解码数据生成处理,则读取控制单元83将先前完成的可变长度编码序列的最后地址指定为先前完成地址。
如图26A和图26B所示,在读取控制单元83的控制下,第一可变长度解码单元91将开始指针P1移动到用于生成先前完成解码数据的解码数据生成处理的位置处。另外,第一可变长度解码单元91使得先前完成解码数据之后的解码数据无效,将先前完成地址之后的重复位的读取间隔改变为“2”,并且继续进行解码数据生成处理。对于第二可变长度解码单元92,情况也是如此。
如图26C和图26D所示,当使用第二可变长度解码单元92完成了第128次解码数据生成处理时,类似地,读取控制单元83指定先前完成地址。另外,在读取控制单元83的控制下,第一可变长度解码单元91将开始指针P1移动到用于生成先前完成解码数据的解码数据生成处理的位置处。另外,第一可变长度解码单元91使得先前完成解码数据之后的解码数据无效,将先前完成地址之后的重复位的读取间隔改变为“1”,并且继续进行解码数据生成处理。
如果使用第一可变长度解码单元91完成了第128次解码数据生成处 理,则读取控制单元83根据读取间隔“1”将可变长度编码序列VLa的末位识别为嵌套块VLy的末位。读取控制单元83完成嵌套块VLy的并行解码处理,此时,开始对下一个嵌套块VLy的处理。
解码器80为各个可变长度编码VLa~VLd读取由采用嵌套形式的多个可变长度编码序列VL组成的比特流BSr。因此,解码器80能够同时对多个可变长度编码序列VLa~VLd进行解码从而生成多段解码数据,并且能够高速地进行可变长度解码处理。
2-3、具体处理流程
2-3-1、编码流程
下面使用图27的流程图对根据编码程序进行的编码流程RT3进行说明。
当图像数据BL被供给过来时,编码器50开始编码流程RT3,并且进入步骤SP31。
在步骤SP31中,编码器50将图像数据BL分成作为处理块单位的多个数据块DB,然后进入下一步骤SP32。
在步骤SP32中,编码器50对分离而成的各单位(即,各数据块DB)中的图像数据BL进行可变长度编码,从而生成多个可变长度编码序列VLa~VLd,然后进入下一步骤SP33。
在步骤SP33中,编码器50对多个可变长度编码序列VLa~VLd以嵌套形式进行逐位排列,从而生成嵌套块VLy。编码器50将新生成的嵌套块VLy和先前生成的嵌套块VLy结合起来,从而生成比特流BSr,并且进入结束步骤,从而完成了编码流程RT3。
2-3-2、并行解码流程
下面使用图28对根据并行解码程序进行的并行解码流程RT4进行说明。
当比特流BSr被供给过来时,解码器80开始并行解码流程RT4,将供给过来的比特流BSr依次存储到存储器82中,并且进入下一步骤SP41。
在步骤SP41中,解码器80把用于构成嵌套块VLy的可变长度编码序列VL的数量设定为读取间隔,然后进入下一步骤SP42。
在步骤SP42中,解码器80基于存储器82中的待处理的嵌套块VLy的起始端来设定解码起始位置,然后进入步骤SP43。
也就是,解码器80将嵌套块VLy的首位确定为第一可变长度解码单元91的解码起始位置,并且设定开始指针P1。另外,解码器80将嵌套块VLy的第二位、第三位和第四位分别确定为可变长度解码单元92、93和94的解码起始位置,并且设定开始指针P2、P3和P4。
在步骤SP43中,解码器80利用可变长度解码单元91~94从各自的开始指针开始按照读取间隔来读取数据,并且将读取到的数据设定为待解码的位,然后进入步骤SP44。
在步骤SP44中,通过参照VLD表,解码器80利用可变长度解码单元91~94从待解码的位生成解码数据,然后进入步骤SP45。
在步骤SP45中,解码器80判断是否完成了这几个可变长度解码单元91~94的解码数据生成处理,然后,如果得到的是否定结果,则返回步骤SP42。
在步骤SP42中,解码器80将开始指针移动用于在步骤SP44中生成解码数据的待解码的位数,然后进入SP43从而继续进行处理。
相反地,如果在步骤SP45中得到的是肯定结果,则意味着可以改变嵌套块VLy的读取间隔。此时,解码器80进入下一步骤SP46。
在步骤SP46中,解码器80判断读取间隔是否为“1”。此处,如果得到的是否定结果,则意味着改变了记录间隔,且因此没有正确地生成解码数据。此时,解码器进入下一步骤SP50。
在步骤SP50中,解码器80指定用于表示在最前地址处完成了解码数据生成处理的可变长度编码序列的地址的先前完成地址,然后进入下一步骤SP51。
在步骤SP51中,解码器80使先前完成解码数据和之后的解码数据无效,该先前完成解码数据即为从具有包括先前完成地址的重复位的可 变长度编码生成的解码数据,然后进入下一步骤SP52。
在步骤SP52中,解码器80从先前完成地址所属的重复位的下一位开始将读取间隔减小“1”,设定了读取间隔,然后进入下一步骤SP53。
在步骤SP53中,解码器80使开始指针返回到进行先前完成解码数据的解码处理的位置处,返回到下一步骤SP43,然后继续进行其余可变长度编码序列的解码数据生成处理。
与此相反,如果在步骤SP46中得到的是肯定结果,则意味着完成了使用所有可变长度解码单元91~94进行的解码数据生成处理,并且生成了嵌套块VLy。此时,解码器80将新生成的嵌套块VLy和先前生成的嵌套块VLy连接起来从而生成图像数据BL,进入结束步骤,并且完成了并行解码流程RT4。
2-4、操作和效果
在上述的结构中,编码器50将图像数据BL分成作为多个数据块的数据块DBa~DBd,对数据块DBa~DBd进行可变长度编码,并且生成多个可变长度编码序列VLa~VLd。编码器50生成了这样的比特流BSr:在该比特流BSr中,基于多个可变长度编码序列VLa~VLd的数据以嵌套形式排列着。
因此,编码器50能够在比特流BSr的一个嵌套块VLy中对基于可变长度编码序列VLa~VLd的数据进行并行排列。
对于多个可变长度编码序列VLa~VLd,如果基于具有较短编码长度的可变长度编码序列的数据已经完成了排列,则编码器50对基于未完成数据排列的可变长度编码序列的数据以嵌套形式进行排列。
因此,由于编码器50能够仅从基于可变长度编码序列VLa~VLd的数据生成比特流BSr,因此不会由于需要增加虚拟数据等而使编码量增加。
编码器50对基于多个固定长度编码块VLx的数据按照嵌套形式以作为提取数的1位为单位逐位地(1[bit]by 1[bit])进行排列。
此处,如果编码器将提取数设定为复数,则当完成了基于固定长度 编码块VLx的数据的排列时,要添加用于保持该提取数的虚拟数据,因而会使编码量增加。
编码器50将提取数设定为“1”,因而不必添加虚拟数据,所以能够抑制编码量的增加。
解码器80为各个由可变长度编码组成的可变长度编码序列VLa~VLd从比特流BSr读取数据,在该比特流BSr中,基于多个可变长度编码序列VLa~VLd的数据以嵌套形式排列着。解码器80对多个可变长度编码序列VLa~VLd并行地进行可变长度解码,从而生成解码数据。
因此,由于解码器80能够对多个可变长度编码序列VLa~VLd并行地进行可变长度解码,因此可以实现高速的可变长度解码处理。
解码器80以与比特流BSr中排列的数据的各个可变长度编码序列VLa~VLd的记录间隔相同的读取间隔来读取数据,从而为各个可变长度编码序列VLa~VLd读取作为待解码的位的数据。
因此,解码器80能够对各个可变长度编码序列VLa~VLd进行解码数据生成处理,并因而能够对多个可变长度编码序列VLa~VLd并行地进行可变长度解码。
在多个可变长度编码序列VLa~VLd中,如果基于具有较短编码长度的可变长度编码序列的数据已经完成了排列,则解码器80对基于未完成数据排列的可变长度编码序列的数据以嵌套形式进行排列,从而对各个可变长度编码序列的记录间隔有所变化的比特流BSr进行可变长度解码。
如果已经完成了对比特流BSr的基于具有较短编码长度的可变长度编码序列的数据的读取,则解码器80指定先前完成地址,即完成了读取操作的可变长度编码序列的最后位置。如果对重复位,即排列在先前完成地址处的基于所有可变长度编码序列的数据,进行了简要排列,则解码器80使用先前完成地址所属的重复位之后的位再次对经过可变长度解码操作的可变长度编码进行读取。解码器80再次对已经读取的可变长度编码进行可变长度解码。
因此,解码器80能够对由于记录间隔的变化而可能被进行了错误的 可变长度解码操作的可变长度编码再次进行可变长度解码。因此,解码器80始终能够精确地进行可变长度解码,而不会对多个可变长度编码序列VLa~VLd进行错误的可变长度解码操作。
根据上述的结构,编码器50通过对为各个编码单位生成的可变长度编码序列VLa~VLd的数据以作为提取数的1位为单位逐位地进行提取并依次排列,生成了比特流BSr。
因此,解码器50能够生成按照记录间隔对可变长度编码序列VLa~VLd的数据进行排列的比特流BSr。
由于解码器80能够以与记录间隔相同的读取间隔对所生成的比特流BSr进行读取,并且能够为各个可变长度编码序列VLa~VLd读取待解码的位,因此,可以并行地进行解码数据生成处理。
因此,本发明能够实现可高速进行可变长度解码处理的编码器、编码方法、记录有编码程序的记录介质、解码器、解码方法和记录有解码程序的记录介质。
3、第三实施例
图29~图36说明了本发明的第三实施例,其中,与如图16~图28所示第二实施例中对应的部分用相同的附图标记表示。第三实施例与第二实施例的不同之处在于,将分成的4个数据块DBa~DBd中的各个数据块都分成前半部分和后半部分,产生了总共8个可变长度编码序列,从而生成固定长度编码块VLx。
3-1、编码器的结构
如图29所示,当图像数据BL被供给过来时,第三实施例的编码器100对该图像数据进行编码处理,从而生成并输出比特流BSx。
具体而言,当图像数据BL通过输入端子101供给过来时,编码器100将图像数据BL供给到分离单元102。
如图30A所示,与第二实施例类似,分离单元102将图像数据BL分成数据块DBa~DBd。另外,分离单元102还将各个数据块DBa~DBd一分为二,使得亮度数据或者色差数据各自以64位为单位进行了划分, 从而生成了前半数据块DBa1~DBd1和后半数据块DBa2~DBd2。分离单元102分别将这些数据块供给到对应的可变长度编码单元111~118。
第一可变长度编码单元111对从分离单元102供给过来的前半数据块DBa1进行可变长度编码,生成前半可变长度编码序列VLa1(见图30B),并且将前半可变长度编码序列VLa1供给到第一结合单元131。
第二可变长度编码单元112对从分离单元102供给过来的后半数据块DBa2进行可变长度编码,生成后半可变长度编码序列VLa2(见图30B),并且将后半可变长度编码序列VLa2供给到第一镜像处理单元121。
第一镜像处理单元121对后半可变长度编序列VLa2进行重新排列,进行镜像处理,并且将该经过镜像处理的编码序列供给到第一结合单元131。
第一结合单元131将前半可变长度编码序列VLa1与经过镜像处理的后半可变长度编码序列VLa2结合起来,必要时可在两者之间***缓冲数据DD而使两者结合起来,并且生成具有固定编码长度的固定长度编码块VXa。另外,第一结合单元131对编码长度进行调整,使得前半可变长度编码序列VLa1和经过镜像处理的后半可变长度编码序列VLa2的总编码长度等于或者小于该固定编码长度。
第三可变长度编码单元113、第四可变长度编码单元114、第二镜像处理单元122和第二结合单元132对供给过来的前半数据块DBb1和后半数据块DBb2进行同样的处理,并且生成固定长度编码块VXb。
第五可变长度编码单元115、第六可变长度编码单元116、第三镜像处理单元123和第三结合单元133对供给过来的前半数据块DBc1和后半数据块DBc2进行同样的处理,并且生成固定长度编码块VXc。
第七可变长度编码单元117、第八可变长度编码单元118、第四镜像处理单元124和第四结合单元134对供给过来的前半数据块DBd1和后半数据块DBd2进行同样的处理,并且生成固定长度编码块VXd。
如图31A~图31E所示,比特流生成单元104从固定长度编码块VXa~VXd的首位起逐位地对数据以嵌套形式进行排列,从而生成嵌套块VLz。
因此,在嵌套块VLz中,与前半可变长度编码序列VLa1、VLb1、VLc1和VLd1对应的数据从起始端起按照正方向以嵌套形式进行排列。在嵌套块VLz中,与后半可变长度编码序列VLa2、VLb2、VLc2和VLd2对应的数据从结束端起按照逆方向以嵌套形式进行排列。
比特流生成单元104对嵌套块VLz进行依次排列,从而生成比特流BSx。
编码器100生成了多个固定长度编码块VXa~VXd,并且对该多个固定长度编码块VXa~VXd的数据以嵌套形式进行排列,从而生成比特流BSx。
因此,在比特流BSx中,与多个固定长度编码块VXa~VXd对应的数据从起始端起和从结束端起按照互逆方向重复排列。另外,在比特流BSx中,能够使嵌套块VLz的编码长度总是恒定。
3-2、解码器的结构
如图32所示,当比特流BSx被供给过来时,第三实施例的解码器150进行作为可变长度解码处理的并行解码处理,从而生成图像数据BL。
具体而言,当由嵌套块VLz组成的比特流BSx被供给过来时,解码器150将该比特流BSx供给到存储器152。存储器152依次存储被供给过来的嵌套块VLz。
如图33所示,读取控制单元153根据嵌套块VLz的编码长度来指定解码起始位置,并且在解码起始位置处设定开始指针P1~P4。也就是,读取控制单元153将与第一可变长度解码单元161对应的开始指针P1设给嵌套块VLz的首位。另外,读取控制单元153将分别与可变长度解码单元162~164对应的开始指针P2~P4分别设给从嵌套块VLz的首位算起在正方向上的第二位(2nd[bit])、第三位(3rd[bit])和第四位(4th[bit])。
读取控制单元153在正方向上以4位的间隔从开始指针P1~P4开始对数据进行读取,读取了待解码的位,并且将它们供给到可变长度解码单元161~164。
当从可变长度解码单元161~164接收到与用于生成解码数据的位数 有关的信息时,读取控制单元153使开始指针P1~P4在正方向上移动该用于生成解码数据的位数。读取控制单元153以4位的间隔从开始指针P1~P4开始对数据进行读取,读取了待解码的位,并且将它们供给到可变长度解码单元161~164。
因此,可变长度解码单元161~164能够执行用于对待解码的位并行地进行读取操作和可变长度解码操作的解码数据生成处理。
读取控制单元153根据具有固定长度的嵌套块VLz的编码长度来指定解码起始位置,并且在解码起始位置处设定开始指针P5~P8。也就是,读取控制单元153将与第五可变长度解码单元165对应的开始指针P5设给嵌套块VLz的末位。另外,读取控制单元153将分别与可变长度解码单元166~168对应的开始指针P6~P8分别设给从嵌套块VLz的末位算起在反方向上的第二位、第三位和第四位。
读取控制单元153在反方向上以4位的间隔从开始指针P5~P8开始对数据进行读取,读取了待解码的位,并且将它们供给到可变长度解码单元165~168。
当从可变长度解码单元165~168接收到与用于生成解码数据的位数有关的信息时,读取控制单元153使开始指针P5~P8在反方向上移动该用于生成解码数据的位数。读取控制单元153以4位的间隔从开始指针P5~P8开始对数据进行读取,读取了待解码的位,并且将它们供给到可变长度解码单元165~168。
因此,可变长度解码单元161~168能够进行并行的解码数据生成处理,分别生成数据块BBa1、BBa2、BBb1、BBb2、BBc1、BBc2、BBd1和BBd2,并且供给到图像数据生成单元154。
如图34所示,图像数据生成单元154使数据块BBa1、BBa2、BBb1、BBb2、BBc1、BBc2、BBd1和BBd2连接起来,从而生成解码块。图像数据生成单元154进一步使各解码块连接起来,从而生成图像数据BL。
解码器150从嵌套块VLz的起始端和结束端开始以并行方式对以嵌套形式排列的数据进行读取和可变长度解码。
因此,由于解码器150能够同时进行并行的解码数据生成处理,因 而可以实现高速的可变长度解码处理。
3-3、详细流程
3-3-1、编码流程
下面使用图35所示的流程图对根据编码程序进行的编码流程RT5进行说明。
当图像数据BL被供给过来时,编码器100开始编码流程RT5,并且进入步骤SP61。
在步骤SP61中,编码器100将图像数据BL分成前半数据块DBa1~DBd1和后半数据块DBa2~DBd2,然后进入下一步骤SP62。
在步骤SP62中,编码器100对分离而成的各单位中的图像数据BL进行可变长度编码,从而生成前半可变长度编码序列VLa1~VLd1和后半可变长度编码序列VLa2~VLd2,然后进入下一步骤SP63。
在步骤SP63中,编码器100对后半可变长度编码序列VLa2~VLd2进行镜像处理,然后进入下一步骤SP64。
在步骤SP64中,编码器100通过在前半可变长度编码序列VLa与后半镜像可变长度编码序列VLm之间***缓冲数据DD,使前半可变长度编码序列VLa和后半镜像可变长度编码序列VLm结合起来,从而生成具有固定编码长度的固定长度编码块VLxa~VLxd,然后进入下一步骤SP65。
在步骤SP65中,编码器100从固定长度编码块VXa~VXd中逐位提取数据,并且对这些数据以嵌套形式进行排列,从而生成嵌套块VLz。然后,编码器100对嵌套块VLz进行排列,从而生成比特流BSx,然后进入结束步骤,从而完成了编码流程RT5。
3-3-2、并行解码流程
下面使用图36所示的流程图对根据并行解码程序进行的并行解码流程RT6进行说明。
当比特流BSx被供给过来时,解码器150开始并行解码流程RT6, 将供给过来的比特流BSx依次存入到存储器152中,并且进入下一步骤SP71。
在步骤SP71中,解码器150根据存储器152中的待处理的嵌套块VLz的起始端和结束端来设定解码起始位置,并且进入下一步骤SP72。
也就是,解码器150将嵌套块VLz的起始端和从所述起始端算起的第二位、第三位和第四位确定为可变长度解码单元161~164的解码起始位置,并且设定开始指针P1~P4。另外,解码器150将嵌套块VLz的结束端和从所述结束端算起的第二位、第三位和第四位确定为可变长度解码单元165~168的解码起始位置,并且设定开始指针P5~P8。
在步骤SP72中,解码器150从开始指针P1~P4起在正方向上从存储器152中读取数据,并且从开始指针P5~P8起在反方向上从存储器152中读取数据,从而依次读取待解码的位,然后进入下一步骤SP73。
在步骤SP73中,解码器150从待解码的位生成解码数据,然后进入下一步骤SP74。
在步骤SP74中,解码器150判断在所有可变长度解码单元161~168中是否完成了待处理的嵌套块VLz的解码数据的生成。
如果得到的是否定结果,则说明在嵌套块VLz中还有应当进行可变长度解码的可变长度编码。此时,解码器150返回到步骤SP72,从通过将开始指针P1~P8移动用于在步骤SP73中生成解码数据的待解码的位数而获得的位置起,开始读取待解码的位,然后继续进行处理。
与之相反,如果在步骤SP74中得到的是肯定结果,则解码器150进入下一步骤SP75。在步骤SP75中,解码器150将前半解码数据BBa1~BBd1和后半解码数据BBa2~BBd2结合起来,从而生成嵌套块VLz。然后,解码器150对嵌套块VLz进行排列,从而生成图像数据BL,然后进入结束步骤,从而完成了并行解码处理。
3-4、操作和效果
在上述结构中,编码器100生成了多个固定长度编码块VLx,这些固定长度编码块VLx是通过使前半可变长度编码序列VLa1~VLd1和后 半可变长度编码序列VLa2~VLd2进行结合而生成的编码块。编码器100对基于多个固定长度编码块VXa~VXd的数据以嵌套形式进行排列,从而生成嵌套块VLz,并且对嵌套块VLz进行排列,从而生成比特流BSx。
因此,编码器100能够对固定长度编码块VXa~VXd的数据从嵌套块VLz的起始端和结束端起并行地进行解码数据生成处理。
另外,编码器100生成了两个可变长度编码序列,且使得作为该两个可变长度编码序列的前半可变长度编码VLa1和后半可变长度编码序列VLa2的总编码长度等于或者小于固定长度。
因此,可变编码器100与如下情况相比能够放宽对编码长度的限制,该情况为:前半可变长度编码序列VLa1和后半可变长度编码序列VLa2被生成为使得半可变长度编码序列VLa1和后半可变长度编码序列VLa2各自的编码长度等于或者小于预定的固定长度。因此,编码器100能够将该固定长度设定得较小,从而降低编码量,或者抑制由于对编码量的调整而引起的图像质量劣化。
解码器150从其中让基于多个固定长度编码块VXa~VXd的数据以嵌套形式排列着的比特流BSx中读取固定长度编码块VXa~VXd的数据,从而对该多个固定长度编码块VXa~VXd并行地进行可变长度解码。
因此,由于解码器150能够从嵌套块VLz的起始端和结束端起进行解码数据生成处理,因而尽管嵌套的固定长度编码块VXa~VXd的数量没有增加,但是可以增加以并行方式进行的解码数据生成处理的数量。因此,解码器150能够高速地进行作为可变长度解码处理的并行解码处理。
根据上述结构,编码器100使两个可变长度编码序列结合,从而生成多个具有固定长度的固定长度编码块VXa~VXd,对基于这些固定长度编码块VXa~VXd的数据以提取数进行提取并进行依次排列,并且生成嵌套块VLz。
因此,编码器100能够生成使前半可变长度编码序列VLa1~VLd1的首位依次排列在起始端、并且使后半可变长度编码序列VLa2~VLd2依次排列在结束端的嵌套块VLz。
对于各个可变长度编码序列,解码器150从所生成的嵌套块VLz的起始端和结束端起对基于多个可变长度编码序列的数据进行读取,从而进行解码数据生成处理。
因此,解码器150能够提高以并行方式进行的解码数据生成处理的数量,并且高速地进行并行解码处理。
4、其它实施例
此外,在上述的第二实施例中,说明了把提取数设定为“1”并且把基于可变长度编码序列VLa~VLd的数据以嵌套形式逐位排列的情况。本发明不限于此,也可以不对提取数进行限定。例如,如图37所示,可以将提取数设定为“3”,并且可以将基于可变长度编码序列VLa~VLd的数据以3位为单位(3[bits]by 3[bits])以嵌套形式进行排列。
在这种情况下,如图38A~图38C所示,例如,当完成了基于可变长度编码序列VLd的数据时,编码器在最后剩余的1位或者2位上添加虚拟数据DM,从而生成一个由3位构成的组。
因此,与上述的第二实施例类似,编码器能够仅改变记录间隔从而生成比特流BSrx,而不会破坏提取数为3位的关系。
在上述的第二实施例中,说明了具有可变长度的可变长度编码序列VLa~VLd以嵌套形式进行排列的情况。本发明不限于此,并且可以通过在可变长度编码序列VLa~VLd的后面添加虚拟数据,使编码长度为固定值。在这种情况下,上述的结束处理(解码数据生成处理的再执行)是不必要的。
在上述第一~第三实施例中,说明了对原样地表示像素值的图像数据进行接收的情况。本发明不限于此,例如,可以接收经过离散余弦变换(Discrete Cosine Transform,DCT)处理或者量子化处理的图像数据。图像数据不必采用4:2:2格式,例如,可以采用4:2:0格式或者4:4:4格式。
在上述第一~第三实施例中,说明了图像数据BL由对应于预定像素数的亮度数据块和色差数据块构成的情况。本发明不限于此,例如,如图39所示,亮度数据和色差数据可以用由2个像素组成的组构成。在这种情况下,可以将与某一像素数对应的块分成数据块DB。
在上述第一~第三实施例中,说明了将对应于同一像素数(即,同一编码量)的数据分成数据块DB的情况。本发明不限于此,可以将对应于不同像素数的数据分成数据块DB。另外,对数据块DB的大小也不受限制。
在上述第一实施例中,说明了通过生成固定长度编码块VLx以便能够根据编码长度来识别出固定长度编码块VLx之间的边界的情况。本发明不限于此,例如,如图40所示,可以生成具有可变编码长度的编码块VLt,并且可以在编码块VLt之间***边界信息IB以便对编码块VLt之间的边界进行识别。在这种情况下,通过对一个数据块连续地进行可变长度编码,能够生成通过把要被不同可变长度解码单元进行可变长度解码的两个可变编码序列VLa和VLb结合起来而获得的编码块VLt。
因此,在本发明中,由于可以不包含缓冲数据DD来生成固定长度编码块VLx,因而如果边界信息IB的数据量小于缓冲数据DD的数据量,就可以降低全部编码量。本发明可以有效地应用于经过DCT处理的图像数据,从而显著改变编码量。
可以使用第二实施例的嵌套块VLy来替代可变编码序列VLa和VLb。在这种情况下,替代可变编码序列VLb的是,对在后半部分中使用的嵌套块VLy进行镜像处理。
在上述的第一实施例中,说明了从一个固定长度编码块VLx的两端起并行地进行可变长度解码的情况。本发明不限于此,可以根据固定长度编码块VLx的编码长度来指定下一个固定长度编码块VLx的起始端和结束端,并且可以对多个固定长度编码块VLx进行可变长度解码。
在上述的第一实施例中,说明了前半可变长度编码序列VLa和后半可变长度编码序列VLb被生成得使前半可变长度编码序列VLa和后半可变长度编码序列VLb各自的长度等于或者小于预定编码长度的情况。本发明不限于此,可以把前半可变长度编码序列VLa和后半可变长度编码序列VLb生成得使使前半可变长度编码序列VLa和后半可变长度编码序列VLb的长度的相加值等于或者小于预定编码长度。
在上述的第一~第三实施例中,说明了各个解码单元具有一个16位 (16-bit)缓冲存储器的情况。本发明不限于此,可以根据可变长度编码数据的最大编码长度来配置缓冲存储器,并且该缓冲存储器的位数不限于等于或者大于可变长度编码数据的最大编码长度的存储容量。
在上述的第一~第三实施例中,说明了可变长度解码单元从开始指针起以预定数量读取待解码的位的情况。本发明不限于此,可以通过进行缓冲存储器的移位控制来从存储器中仅读取用于解码的数据。
在上述的第一~第三实施例中,说明了将后半可变长度编码序列进行镜像处理后再与前半可变长度编码序列进行结合的情况。本发明不限于此,例如,可变长度解码单元可以具有存储器,并且可以当完成了可变长度编码序列的可变长度编码操作时,从结束端部分起沿逆方向进行读取操作。因此,镜像处理单元是不必要的。
在上述的第一~第三实施例中,说明了将编码程序和解码程序等预先存储在ROM或硬盘驱动器等中的情况,本发明不限于此,可以从诸如闪存的存储棒(memory stick)(索尼公司的注册商标)等外部存储介质来进行程序安装。另外,可以通过通用串行总线(Universal Serial Bus,USB)或者诸如以太网(Ethernet,注册商标)(电气和电子工程师协会(Institute ofElectrical and Electronics Engineers):注册商标)802.11a/b/g的无线局域网(Local Area Network,LAN)而从外部获得数据库生成程序等,并且可以将该数据库生成程序等发布到陆地数字电视广播或者BS(广播卫星)数字电视广播。
可以对上述的第一~第三实施例进行适当的组合。
在上述第一实施例中,说明了如下的情况:编码器10被配置为包括用作分离单元的分离单元12、用作可变长度编码单元的可变长度编码单元13以及用作编码块生成单元和比特流生成单元的比特流生成单元14。本发明不限于此,本发明的编码器可以被配置为包括具有各种其它结构的分离单元、可变长度编码单元、编码块生成单元和比特流生成单元。
在上述的第一实施例中,说明了如下情况:解码器30被配置为包括用作接收单元的存储器32、用作指定单元的读取控制单元35以及用作并行解码单元的并行解码单元40。本发明不限于此,本发明的解码器可以 被配置为包括具有各种其它结构的接收单元、指定单元和并行解码单元。
本领域技术人员应当理解,依据设计要求和其他因素,可以在本发明所附的权利要求或其等同物的范围内进行各种修改、组合、次组合及改变。
Claims (14)
1.一种编码器,所述编码器包括:
分离单元,其用于将图像数据分成多个数据块;
可变长度编码单元,其用于对被所述分离单元分成的各个所述数据块进行可变长度编码,并生成可变长度编码序列;
编码块生成单元,其用于通过把利用所述可变长度编码单元生成的两个可变长度编码序列结合起来,生成要从起始端和结束端起并行地受到可变长度解码的编码块;
比特流生成单元,其用于生成使所述编码块之间的边界能够被识别的比特流。
2.根据权利要求1的编码器,其中,
所述编码块生成单元将所述编码块的编码长度设定为固定长度,并且
所述比特流生成单元通过对所述编码块进行排列,来生成使所述编码块之间的边界能够被识别的所述比特流。
3.根据权利要求2的编码器,其中,所述比特流生成单元通过在所述两个可变长度编码序列之间***缓冲数据从而使所述编码长度固定,来生成所述编码块。
4.根据权利要求3的编码器,其中,所述可变长度编码单元将所述两个可变长度编码序列生成为使得所述两个可变长度编码序列的编码长度之和等于或者小于所述固定长度。
5.根据权利要求3的编码器,其中,所述比特流生成单元通过如下方式来生成所述编码块:
对分布在所述两个可变长度编码序列的前半部分中的可变长度编码从起始端起按照正方向进行排列,并且对分布在所述两个可变长度编码序列的后半部分中的可变长度编码从结束端起按照逆方向进行排列。
6.根据权利要求1的编码器,其中,
所述编码块生成单元生成具有可变长度编码的所述编码块,并且
所述比特流生成单元通过在所述编码块之间***边界信息,来生成使所述编码块之间的边界能够被识别的所述比特流。
7.根据权利要求2的编码器,其中,所述比特流生成单元对基于多个所述编码块的数据以嵌套形式进行排列。
8.根据权利要求1的编码器,其中,所述比特流生成单元对基于多个所述编码块的数据以嵌套形式逐位地进行排列。
9.一种解码器,所述解码器包括:
接收单元,其接收具有可变长度编码的多个编码块,并且接收所生成的使所述编码块之间的边界能够被识别的比特流;
指定单元,其用于基于所述编码块之间的边界来指定所述编码块的起始端和结束端;以及
并行解码单元,其用于对通过所述接收单元接收到的所述比特流从由所述指定单元指定的所述编码块的起始端和结束端起以并行方式进行可变长度解码。
10.根据权利要求9的解码器,其中,
所述并行解码单元对多个所述编码块并行地进行可变长度解码。
11.根据权利要求9的解码器,其中,
所述编码块包括从起始端起按照正方向进行排列的可变长度编码序列和从结束端起按照逆方向进行排列的可变长度编码序列,并且
所述并行解码单元使用同一解码表对上述两个可变长度编码序列进行可变长度解码。
12.根据权利要求11的解码器,其中,
所述比特流是通过对基于多个所述编码块的数据以嵌套形式进行排列而构成的,并且
所述并行解码单元通过从所述比特流中提取各个所述编码块的数据来对多个所述编码块并行地进行可变长度解码。
13.一种编码方法,所述编码方法包括如下步骤:
将图像数据分成多个数据块;
对各个所述数据块进行可变长度编码,并生成可变长度编码序列;
通过把在所述可变长度编码步骤中生成的两个可变长度编码序列结合起来,生成要从起始端和结束端起并行地受到可变长度解码的编码块;以及
生成使所述编码块之间的边界能够被识别的比特流。
14.一种解码方法,所述解码方法包括如下步骤:
在多个编码块具有可变长度编码的情况下,接收被生成为使所述编码块之间的边界能够被识别的比特流;
基于所述编码块之间的边界来指定所述编码块的起始端和结束端;以及
对在所述接收步骤中接收到的所述比特流从由指定单元指定的所述起始端和所述结束端起以并行方式进行可变长度解码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008-330208 | 2008-12-25 | ||
JP2008330208A JP5067361B2 (ja) | 2008-12-25 | 2008-12-25 | エンコーダ及びデコーダ、符号方法及び復号方法、並びに記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101765010A CN101765010A (zh) | 2010-06-30 |
CN101765010B true CN101765010B (zh) | 2013-06-19 |
Family
ID=42284932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102594889A Expired - Fee Related CN101765010B (zh) | 2008-12-25 | 2009-12-22 | 编码器、解码器、编码方法以及解码方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8351722B2 (zh) |
JP (1) | JP5067361B2 (zh) |
CN (1) | CN101765010B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107360427B (zh) | 2010-10-08 | 2020-09-01 | Ge视频压缩有限责任公司 | 编码器和编码方法与解码器和解码方法 |
WO2012082028A1 (en) | 2010-12-14 | 2012-06-21 | Telefonaktiebolaget L M Ericsson (Publ) | Tile encoding and decoding |
US9066117B2 (en) * | 2012-02-08 | 2015-06-23 | Vixs Systems, Inc | Container agnostic encryption device and methods for use therewith |
GB2520310A (en) * | 2013-11-15 | 2015-05-20 | Sony Corp | A method, server, client and software |
US9854261B2 (en) | 2015-01-06 | 2017-12-26 | Microsoft Technology Licensing, Llc. | Detecting markers in an encoded video signal |
US11159223B2 (en) * | 2017-08-11 | 2021-10-26 | Lenovo (Beijing) Co. Ltd | Encoding reference signal received powers |
US10484019B2 (en) * | 2017-10-30 | 2019-11-19 | Western Digital Technologies, Inc. | Adaptive encoder/decoder |
TW201919361A (zh) * | 2017-11-09 | 2019-05-16 | 張英輝 | 以雜文加強保護之區塊加密及其解密之方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1126411A (zh) * | 1995-01-06 | 1996-07-10 | 大宇电子株式会社 | 并行编码/解码数字视频信号的装置 |
CN1129883A (zh) * | 1994-11-17 | 1996-08-28 | 大宇电子株式会社 | 高速可变长度解码器 |
CN1302512A (zh) * | 1998-05-18 | 2001-07-04 | 索尼电子有限公司 | 对数字编码视频信号进行译码的可变长度译码器 |
CN1426023A (zh) * | 2001-12-04 | 2003-06-25 | 松下电器产业株式会社 | 使用多个处理器的动图像编码装置及其方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR950004129B1 (ko) * | 1992-05-19 | 1995-04-25 | 주식회사금성사 | 가변장 부호 복호기 |
AU5632394A (en) * | 1993-03-05 | 1994-09-08 | Sony Corporation | Apparatus and method for reproducing a prediction-encoded video signal |
JP4427827B2 (ja) * | 1998-07-15 | 2010-03-10 | ソニー株式会社 | データ処理方法、データ処理装置及び記録媒体 |
JP4374548B2 (ja) | 2005-04-15 | 2009-12-02 | ソニー株式会社 | 復号装置および方法、記録媒体、並びに、プログラム |
JP2007214998A (ja) * | 2006-02-10 | 2007-08-23 | Fuji Xerox Co Ltd | 符号化装置、復号化装置、符号化方法、復号化方法、及びプログラム |
JP5042568B2 (ja) * | 2006-09-07 | 2012-10-03 | 富士通株式会社 | Mpegデコーダ及びmpegエンコーダ |
JP2008099134A (ja) * | 2006-10-13 | 2008-04-24 | Fuji Xerox Co Ltd | データ復号装置及びプログラム |
US8238437B2 (en) * | 2007-09-20 | 2012-08-07 | Canon Kabushiki Kaisha | Image encoding apparatus, image decoding apparatus, and control method therefor |
-
2008
- 2008-12-25 JP JP2008330208A patent/JP5067361B2/ja not_active Expired - Fee Related
-
2009
- 2009-12-22 CN CN2009102594889A patent/CN101765010B/zh not_active Expired - Fee Related
- 2009-12-23 US US12/645,693 patent/US8351722B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1129883A (zh) * | 1994-11-17 | 1996-08-28 | 大宇电子株式会社 | 高速可变长度解码器 |
CN1126411A (zh) * | 1995-01-06 | 1996-07-10 | 大宇电子株式会社 | 并行编码/解码数字视频信号的装置 |
CN1302512A (zh) * | 1998-05-18 | 2001-07-04 | 索尼电子有限公司 | 对数字编码视频信号进行译码的可变长度译码器 |
CN1426023A (zh) * | 2001-12-04 | 2003-06-25 | 松下电器产业株式会社 | 使用多个处理器的动图像编码装置及其方法 |
Also Published As
Publication number | Publication date |
---|---|
US20100166052A1 (en) | 2010-07-01 |
JP2010154225A (ja) | 2010-07-08 |
JP5067361B2 (ja) | 2012-11-07 |
CN101765010A (zh) | 2010-06-30 |
US8351722B2 (en) | 2013-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101765010B (zh) | 编码器、解码器、编码方法以及解码方法 | |
US8515192B2 (en) | Parallel entropy encoding of dependent image blocks | |
US5414780A (en) | Method and apparatus for image data transformation | |
US8482758B2 (en) | Method and device for processing a sequence of digital images with a scalable format | |
EP0665653B1 (en) | Apparatus and method for decoding variable-length code | |
US5550542A (en) | Variable length code look-up table having separate code length determination | |
TWI514853B (zh) | 由量化控制改良解碼器效能的方法與系統 | |
US20090274365A1 (en) | Image processing device and electronic camera | |
JP2006238407A (ja) | 符号化装置、符号化方法および符号化プログラム、並びに撮像装置 | |
KR100793286B1 (ko) | 버퍼 메모리의 사용량이 작은 디지털 영상 코덱 및 그 제어방법 | |
US20110258522A1 (en) | Encoding apparatus, decoding apparatus, and encoding and decoding system | |
JP2008099134A (ja) | データ復号装置及びプログラム | |
Bruns et al. | Sample-parallel execution of EBCOT in fast mode | |
US8363968B2 (en) | Image coding method for facilitating run length coding and image encoding device thereof | |
JP6070196B2 (ja) | 画像符号化装置および画像符号化方法 | |
WO2007104522A1 (en) | Method and apparatus for linewise image compression | |
CN112866723B (zh) | 图像数据处理方法与*** | |
KR100530745B1 (ko) | 고해상도 영상신호를 저해상도 디스플레이 장치에 디스플레이하는 디스플레이 방법 | |
KR101181027B1 (ko) | 디지털 신호 정렬을 위한 시스템, 방법 및/또는 장치 | |
JP2005354169A (ja) | 画像圧縮装置 | |
AU746343B2 (en) | Encoding method and apparatus | |
JP3517862B2 (ja) | 画像情報符号化装置および方法 | |
JPH02113775A (ja) | 画像信号の符号化方法とその装置 | |
JP5075135B2 (ja) | 復号装置及びその制御方法 | |
JP4053949B2 (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130619 Termination date: 20151222 |
|
EXPY | Termination of patent right or utility model |