CN101138248A - 编码装置、编码方法、编码程序、解码装置、解码方法和解码程序 - Google Patents
编码装置、编码方法、编码程序、解码装置、解码方法和解码程序 Download PDFInfo
- Publication number
- CN101138248A CN101138248A CN200680007407.0A CN200680007407A CN101138248A CN 101138248 A CN101138248 A CN 101138248A CN 200680007407 A CN200680007407 A CN 200680007407A CN 101138248 A CN101138248 A CN 101138248A
- Authority
- CN
- China
- Prior art keywords
- image data
- bit
- encoding
- data
- coefficient
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/16—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter for a given display mode, e.g. for interlaced or progressive display mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/164—Feedback from the receiver or from the transmission channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/64—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
- H04N19/647—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供了用于高效地对隔行型视频信号编码和解码的编码装置、编码方法、编码程序、解码装置、解码方法和解码程序。加法器(12)和减法器(13)对隔行扫描产生的动态图像数据的奇数域和偶数域进行相加运算和相减运算。帧内编码器(14)和帧内编码器(15)对相加图像数据和相减图像数据进行小波变换,从而量化变换系数W,并对量化系数q进行熵编码。将从帧内编码器(14)和帧内编码器(15)输出的编码数据合并为单个编码流并输出。由于对进行了奇数域和偶数域的相加和相减运算的数据进行编码,可以在动态范围加倍的同时增加压缩效率。
Description
技术领域
本发明涉及用于高效地对隔行扫描的视频信号进行编码和解码的编码装置、编码方法、编码程序、解码装置、解码方法和解码程序。
背景技术
随着BS(广播卫星)开始数字广播,并且随着DVD(数字通用盘)的广泛使用,视频装置越来越多地处理数字视频信号。
数字视频信号在传输到另一个装置或存储在记录介质上,或者同时传输到其他装置并存储在记录介质上之前,由于其大的数据大小,通常被以预定的方法压缩编码。MPEG2(运动图像专家组2)是当前公知的一种标准压缩编码方法。在MPEG2中,使用基于DCT(离散余弦变换)和运动补偿的预测编码对数字视频信号压缩编码,并且进一步使用变长编码以便增加数据压缩率。
上述的BS数字广播使用MPEG2对HDTV(高分辨率电视)的隔行扫描的运动图像数据进行压缩编码。记录在以包装介质销售的DVD(数字通用盘)上的数字视频信号通常是隔行扫描的,并且使用MPEG2压缩编码。
在MPEG2中,自适应地在帧和域之间切换用于预测编码的图像。DCT具有一种模式,其中自适应地在帧和域之间切换用作编码的单位的宏块。在MPEG2中,对用于隔行运动图像的编码装置的使用成功地增加了编码效率。
在诸如广播或再现的专业应用中,使用焦点在于编辑的压缩编码,诸如DV或DVC-Pro。这种压缩编码仅对帧内图像(I图像)进行帧内编码,并且不执行帧间压缩。从而可以执行对于专业应用不可或缺的一帧一帧的编辑操作,而不降低图像质量。在上述的MPEG2中,可以进行没有预测编码的编码,从而可以执行一帧一帧的编辑操作。
专利文献1公开了一种用于在525/60P系统(525行/帧,60帧/秒渐进系统)或1080/60P系统(1080行/帧,60帧/秒渐进系统)中,按帧编辑数字视频信号的同时,高效地压缩编码数字视频信号的编码和解码方法。根据专利文献1,检索帧间的图像信号的相加信号和相减信号,并且对其编码,并且控制相加信号的编码位速率和相减信号的编码位速率的比。
[专利文献1]日本待审专利申请公开号2004-104694
发明内容
[本发明要解决的问题]
能够进行一帧一帧的编辑操作的压缩编码不执行帧间压缩,并且从而已知其在压缩效率方面优于使用上述预测编码的压缩编码方法。
需要一种压缩编码技术,其提供高的压缩效率,同时能够进行一帧一帧的编辑操作。具体地,需要一种编码技术,其使用帧内编码而不是使用帧间编码增加隔行扫描的运动图像数据的压缩编码的压缩效率。
上述的专利文献1获得两帧的相加信号和差值信号,从而将帧速率减小一半,以便减小位速率。因此,难以进行一帧一帧的编辑处理。
本发明的一个目的是提供用于以高效率压缩编码隔行数字视频信号,并且能够进行一帧一帧的编辑操作的编码装置、编码方法、编码程序、解码装置、解码方法、解码程序。
[用于解决问题的手段]
根据本发明的第一个方面,一种用于压缩编码隔行扫描的图像数据的编码装置包括:用于对构成隔行扫描的图像数据的一帧的第一域和第二域执行相加运算的加法器;用于在第一域和第二域间进行相减运算的减法器;和编码器,其用于对从加法器输出的相加图像数据和从减法器输出的相减图像数据进行编码,从而在相加图像数据和相减图像数据中的每一个内,代码处于其完成形式。
根据本发明的第一个方面,一种用于对隔行扫描的图像数据压缩编码的编码方法包括:对构成隔行扫描的图像数据的一帧的第一域和第二域执行相加运算的相加步骤;在第一域和第二域间执行相减运算的相减步骤;和编码步骤,其对相加步骤中输出的相加图像数据和相减步骤中输出的相减图像数据进行编码,从而在相加图像数据和相减图像数据中的每一个内,代码处于其完成形式。
根据本发明的第一个方面,一种编码程序使得计算机执行用于对隔行扫描的图像数据进行压缩编码的编码方法。该编码方法包括:对构成隔行扫描的图像数据的一帧的第一域和第二域执行相加运算的相加步骤;在第一域和第二域间执行相减运算的相减步骤;和编码步骤,其对相加步骤中输出的相加图像数据和相减步骤中输出的相减图像数据进行编码,从而在相加图像数据和相减图像数据中的每一个内,代码处于其完成形式。
根据本发明的第二个方面,一种解码装置包括:解码器,用于对已经被编码从而相加图像数据和相减图像数据彼此独立地允许代码处于其完成形式的数据进行解码,该相加图像数据经历过构成隔行扫描的图像数据的一帧的第一域和第二域之间的相加运算,并且相减图像数据经历过第一域和第二域之间的相减运算;提取器,用于从由解码器解码的相加图像数据和相减图像数据中提取第一域和第二域;以及输出单元,用于以正确的定时重新布置由提取器提取的第一域和第二域,并且输出重新布置的第一和第二域。
根据本发明的第二个方面,一种解码方法包括:解码步骤,其对已经被编码从而相加图像数据和相减图像数据彼此独立地允许代码处于其完成形式的数据进行解码,该相加图像数据经历过构成隔行扫描的图像数据的一帧的第一域和第二域之间的相加运算,并且相减图像数据经历过第一域和第二域之间的相减运算;提取步骤,其从在解码步骤中解码的相加图像数据和相减图像数据中提取第一域和第二域;以及输出步骤,其以正确的定时重新布置在提取步骤中提取的第一域和第二域,并且输出重新布置的第一和第二域。
根据本发明的第二个方面,一种解码程序使得计算机执行解码方法。该解码方法包括:解码步骤,其对已经被编码从而相加图像数据和相减图像数据彼此独立地允许代码处于其完成形式的数据进行解码,该相加图像数据经历过构成隔行扫描的图像数据的一帧的第一域和第二域之间的相加运算,并且相减图像数据经历过第一域和第二域之间的相减运算;提取步骤,其从在解码步骤中解码的相加图像数据和相减图像数据中提取第一域和第二域;以及输出步骤,其以正确的定时重新布置在提取步骤中提取的第一域和第二域,并且输出重新布置的第一和第二域。
根据本发明的第一个方面,对构成隔行扫描的图像数据的一帧的第一域和第二域执行相加运算,在第一域和第二域间执行相减运算,和对从相加运算得到的相加图像数据和从相减运算得到的相减图像数据进行编码,从而在相加图像数据和相减图像数据中的每一个内,代码为其完成形式。第一域和第二域中的每一个的动态范围被加倍,并且提高了编码效率。
根据本发明的第二个方面,对已经编码从而相加图像数据和相减图像数据彼此独立地允许代码为其完成形式的数据进行解码。相加图像数据经历过构成隔行扫描的图像数据的一帧的第一域和第二域之间的相加运算,并且相减图像数据经历过第一域和第二域之间的相减运算。从解码的相加图像数据和相减图像数据中提取第一域和第二域。以正确的定时重新布置和输出第一域和第二域。从而从由相加图像数据和相减图像数据构成的编码数据中以预定的顺序输出第一域和第二域。对第一域和第二域进行相加运算和相减运算。从而将具有双倍动态范围的编码数据解码为图像数据。
[优点]
如上所述,对构成隔行扫描的图像数据的一帧的第一域和第二域执行相加运算,在第一域和第二域间执行相减运算,并且对从相加运算得到的相加图像数据和从相减运算得到的相减图像数据进行编码,从而在相加图像数据和相减图像数据中的每一个内,代码为其完成形式。第一域和第二域中的每一个的动态范围被加倍,并且提高了编码效率。从而提高了解码图像的主观图像质量。
对被编码从而在相加图像数据和相减图像数据中的每一个内,相加图像数据和相减图像数据允许代码为其完成形式的数据进行解码。从而确保了编码数据的编辑中的平滑操作。
附图说明
图1是示出了根据本发明的一个实施例的图像编码装置的方框图;
图2图示地示出了隔行扫描的运动图像数据;
图3示出了奇数域和偶数域的相加和相减运算结果;
图4是示出了根据本发明的一个实施例的图像解码装置的方框图;
图5是示出了根据本发明的一个实施例的图像编码装置中的帧内编码器的方框图;
图6图示地示出了小波变换;
图7图示地示出了小波变换;
图8图示地示出了位平面;
图9图示地示出了使用位平面结构的代码量控制的概念;
图10示出了如何将具有子带的图像数据划分为块;
图11示出了根据本发明的一个实施例使用位平面的编码处理;
图12示出了根据本发明的一个实施例的图像解码装置中的帧内解码器;
图13是示出了图像编码处理的处理流程的流程图;
图14是示出了图像解码处理的处理流程的流程图;
图15是示出了根据本发明的一个实施例的修改的图像编码装置的方框图;
图16是示出了根据本发明的实施例的另一个修改的图像解码装置的方框图;
图17是示出了根据本发明的实施例的修改的图像编码装置中的帧内编码器的方框图;
图18图示地示出了根据本发明的实施例的修改的使用位平面结构的编码处理;
图19是示出了根据本发明的实施例的修改的图像解码装置中的帧内解码器的结构的方框图;
图20是示出了图像编码处理的处理流程的流程图;
图21是示出了图像解码处理的处理流程的流程图;
图22图示地示出了根据本发明的实施例的修改的熵编码方法;
图23图示地示出了根据本发明的实施例的修改的熵编码方法;
图24图示地示出了根据本发明的实施例的修改的熵编码方法;
图25图示地示出了根据本发明的实施例的修改的熵编码方法;
图26是示出了图像编码处理的处理流程的流程图;
图27是示出了图像解码处理的处理流程的流程图;
图28是示出了本发明的帧内编码器的结构的方框图;
图29图示地示出了将提升技术应用于5×3滤波器的小波变换;
图30图示地示出了将提升技术应用于5×3滤波器的逆小波变换;
图31图示地示出了以提升技术中分割等级=2执行的5×3滤波器的滤波处理;
图32图示地示出了根据本发明的小波变换和逆小波变换;
图33是示出了编码处理的处理流程的流程图;
图34是示出了本发明的图像解码装置的方框图;
图35是示出了解码处理的处理流程的流程图;
图36图示地示出了根据本发明的图像编码装置和图像解码装置中的每一个内的元件的并行操作;
图37是示出了本发明的图像编码装置的结构的方框图;
图38图示地示出了由图像编码装置执行的小波系数重新布置的处理流程;
图39图示地示出了由图像解码装置执行的小波系数重新布置;
图40是示出了本发明的图像编码装置的结构的方框图;
图41是示出了本发明的图像解码装置的结构的方框图;
图42图示地示出了如何交换编码数据;
图43示出了包的结构;
图44是示出了本发明的图像编码装置的结构的方框图;
图45示出了子带;
图46示出了将要编码的量化系数的例子;
图47是示出了熵编码器的结构的方框图;
图48是示出了编码处理的流程图;
图49是示出了熵编码处理的流程图;
图50是示出了一组W系数的编码处理的流程图;
图51是示出了图像解码装置的结构的方框图;
图52是示出了熵解码器的结构的方框图;
图53是示出了代码多路分解器的结构的方框图;
图54是示出了另一个代码多路分解器的结构的方框图;
图55是示出了解码处理的流程图;
图56是示出了熵解码处理的流程图;
图57是示出了一组W系数的解码处理的流程图;
图58是示出了另一个熵编码器的结构的方框图;
图59示出了将要编码的量化系数的例子;
图60是示出了一组W系数的编码处理的流程图;
图61是示出了一组W系数的解码处理的流程图;
图62是示出了图像编码装置的结构的方框图;
图63是示出了图像解码装置的结构的方框图;
图64是示出了图像编码装置的结构的方框图;
图65是示出了域多路分解器的方框图;
图66是示出了相加和相减编码器的结构的方框图;
图67是示出了图像解码装置的结构的方框图;
图68是示出了相加和相减解码器的方框图;
图69是示出了域多路分解器的结构的方框图;
图70是位速率和失真因子间的关系的图;
图71是位速率和失真因子间的关系的图;
图72示出了延迟时间;
图73是示出了图像编码装置的结构的方框图;
图74是模式选择处理的处理流程的流程图;
图75是示出了图像编码装置的结构的方框图;
图76是示出了变化确定器的结构的方框图;
图77是示出了模式选择处理的处理流程的流程图;
图78示出了变化的例子;
图79是示出了变化确定器的结构的方框图;
图80是示出了模式选择处理的处理流程的流程图;
图81是示出了模式确定器的结构的方框图;
图82是示出了模式选择处理的处理流程的流程图;
图83是示出了变化确定器的结构的方框图;
图84是示出了模式选择处理的处理流程的流程图;
图85是示出了图像编码装置的结构的方框图;
图86是示出了模式选择处理的处理流程的流程图;
图87是示出了图像解码装置的结构的方框图;
图88是示出了模式选择处理的处理流程的流程图;
图89是示出了本发明的数字三同轴系统的结构的方框图;
图90是示出了本发明的无线传输系统的结构的方框图;
图91示出了本发明的家用游戏机;和
图92示出了本发明的信息处理装置的结构。
附图标记
10开关,11域延迟单元,12加法器,13减法器,14帧内编码器,15帧内编码器,16速率控制器,17编码流多路复用器,18相加和相减单元,20编码流多路分解器,21帧内解码器,22帧内解码器,23加法器,24减法器,26域延迟单元,27开关,28相加和相减单元,32小波变换器,33量化器,34位平面分解器,35熵编码器,36代码量控制器,37代码量加法器,40熵解码器,41去量化器,42逆小波变换器,50帧内编码器,60帧内解码器
具体实施方式
图1示出了根据本发明的一个实施例的图像编码装置的结构。如图1中所示,图像编码装置包括开关10、域延迟单元11、加法器12、减法器13、帧内编码器14、帧内编码器15、速率控制器16和编码流多路复用器17。此后,加法器12和减法器13也总地称为相加和相减单元18。
将隔行扫描的运动图像数据输入到开关10的端10in。开关10交替地以输入图像数据的域定时在选择输出端10odd和选择输出端10even间转换。
此处简要描述隔行扫描的运动图像数据。如图2中图示示出的,在隔行扫描中,在一帧期间交替通过每两行抽取一行而产生的两个图像,产生运动图像。更具体地,在隔行扫描中,使用两个域,每个域包含一帧的一半数目的行。从而在一帧时间的一半内传输域图像。在下面的讨论中,一帧图像的顶行是第一行,并且包含奇数行的域称为奇数域,并且包含偶数行的域称为偶数域。
例如,在被指定为以30Hz(29.97Hz)的帧频率对1920象素×1080行进行隔行扫描(称为1080I)的HDTV(高清晰度电视)运动图像数据中,以60Hz(59.94Hz)的域频率交替传输奇数域和偶数域,每个奇数域和偶数域具有1920象素×540行。
控制开关10,以便在输入运动图像数据的奇数域期间选择选择输出端10odd,并且在输入运动图像数据的偶数域期间选择选择输出端10even。将选择输出端10odd的输出提供给域延迟单元11。域延迟单元11将提供的奇数域图像数据延迟一域,并且然后输出延迟的奇数域图像数据。
包括缓冲区存储器的域延迟单元11在缓冲区上存储提供的奇数域的图像数据。然后在偶数域的定时读取并输出存储在缓冲区上的偶数域的图像数据。
将域延迟单元11的输出提供给加法器12和减法器13中的每一个。将开关10的选择输出端10even的输出提供给加法器12和减法器13中的每一个。由于偶数域的图像数据已经如前所述由域延迟单元11延迟了一域,在相同的定时将偶数域和奇数域提供给加法器12和减法器13。
加法器12将提供的偶数域的图像数据加到提供的奇数域的图像数据上。减法器13对提供的偶数域的图像数据和提供的奇数域的图像数据执行相减运算。以象素为基础执行加法器12的相加运算和减法器13的相减运算。对奇数域和偶数域的相应行进行相加或相减。
将作为加法器12的相加结果的相加图像数据提供给帧内编码器14。将作为减法器13的相减结果的相减图像数据提供给帧内编码器15。速率控制器16控制帧内编码器14和帧内编码器15中的每一个的编码位速率。帧内编码器14和帧内编码器15对提供的相加图像数据和相减图像数据执行帧内编码,从而在一域内完成编码。
帧内编码器14和帧内编码器15的编码方法不限于任何方法,只要在一域内完成编码即可。例如,帧内编码器14和帧内编码器15可以采用使用DCT(离散余弦变换)编码图像数据的JPEG(联合图像专家系统),或使用小波变换编码图像数据的JPEG2000。
帧内编码器14将帧内编码器14将相加图像数据压缩编码到其中的编码数据(此后称为相加图像编码数据)和帧内编码器15将相减图像数据压缩编码到其中的编码数据(此后称为相减图像编码数据)输出到编码流多路复用器17。编码流多路复用器17将编码数据多路复用到编码流内,并且输出编码流。
可以构思作为编码流多路复用器17的多路复用方法的各种方法。例如,根据预定的数据块单元对帧内编码器14和帧内编码器15的输出打包,并且以时分方式输出。在该情况下,给每个包加上标识信息作为头信息,以便识别作为包的负载存储的数据。
通过对奇数域和偶数域的图像数据执行相加运算和相减运算,图像数据的动态范围被加倍了。如果简单地执行加倍动态范围的处理,编码数据的数据大小将变大。通过将加法器12的输出和减法器13的输出控制到预定的平衡状态,限制了编码数据的数据大小。
更具体地,将相加运算考虑为确定两个域的平均的运算,并且将相减运算考虑为确定两个域间的差的运算。参考图3描述加法器12的相加结果和减法器13的相减结果中的代码量的特征。如图3所示,纵坐标表示代码量,而横坐标表示奇数域和偶数域间的移动量。例如,如果奇数域和偶数域提供完全相同的图像,移动量成为0。例如,奇数域和偶数域是每个象素基础上的随机噪声,移动量为最大。
如图3所示,如果移动量为0,即,奇数域和偶数域具有相同的数据,相减运算的结果成为0。当移动量增加时,代码量趋于聚集到预定值。通过以预定的等级控制对加法器12的相加结果的压缩编码和对减法器13的相减结果的压缩编码,限制了编码数据的数据大小,同时编码后图像质量保持为极好的水平。例如,速率控制器16设置帧内编码器14的相加结果中的目标代码量和帧内编码器15的相减结果中的目标代码量。帧内编码器14和帧内编码器15控制编码处理,从而编码数据的代码量达到目标代码量。
图4示出了相应于图1的图像编码装置的图像解码装置的例子。图像解码装置包括编码流多路分解器20、帧内解码器21、帧内解码器22、加法器23、减法器24、除法器25A、除法器25B、域延迟单元26、开关27。此后,加法器23和减法器24也总地称为相加和相减单元28。
将从参考图1讨论的图像编码装置内的编码流多路复用器17输出的编码流提供给编码流多路分解器20。编码流多路分解器20将提供的代码量多路分解为相加图像编码数据和相减图像编码数据。
如果编码流多路复用器17以打包的时分形式输出相加图像编码数据和相减图像编码数据,根据每个包的头信息多路分解编码数据。
将由编码流多路分解器20多路分解的相加图像编码数据和相减图像编码数据中的一个提供给帧内解码器21,并且将另一个提供给帧内解码器22。在下面的讨论中,将相加图像编码数据提供给帧内解码器21,并且将相减图像编码数据提供给帧内解码器22。
帧内解码器21和帧内解码器22对各自提供的编码数据执行预定的解码处理,并且输出解码图像数据。帧内解码器21和帧内解码器22的解码输出中的一个成为解码相加图像数据,并且另一个成为解码相减图像数据。将帧内解码器21和帧内解码器22的输出提供给加法器23和减法器24中的每一个,以便进行相加和相减运算。然后将加法器23和减法器24的输出提供给除法器25A和除法器25B,以便被2除。结果,除法器25A和除法器25B分别输出奇数域和偶数域的解码图像数据。
在上述的图像编码装置的处理中,设a表示奇数域的图像数据并且b表示偶数域的图像数据,并且以下面的等式(1)和(2)表示从加法器12输出的相加图像数据m和从减法器13输出的相减图像数据n
m=a+b ...(1)
n=a-b ...(2)
从而分别由帧内编码器14和帧内编码器15对相加图像数据m和相减图像数据n编码。
在另一方面,图像解码装置使用帧内解码器21对编码相加图像数据M解码,从而产生解码相加图像数据解码相加图像数据M’(=a’+b’)。帧内解码器22对编码相减图像数据N解码,从而产生解码相减图像数据N’(=a'-b’)。从而由下面的等式(3)和(4)表示加法器23的相加结果和减法器24的相减结果:
m’+n’=(a’+b’)+(a'-b’)=2a’ ...(3)
m’-n’=(a’+b’)-(a’-b’)=2b’ ...(4)
通过以2除加法器23和减法器24的输出,提取奇数域的解码图像数据A’和偶数域的解码图像数据B’。
将从除法器25A输出的奇数域的解码图像数据提供给开关27的选择输入端27odd。由域延迟单元26将从除法器25B输出的偶数域的解码图像数据延迟一域,并且将偶数域的延迟图像数据提供给开关27的选择输入端27even。具有用于存储提供的偶数域的图像数据的缓冲区存储器的域延迟单元26控制读取存储在缓冲区上的图像数据的读取定时,从而实现对提供的图像数据的一域延迟。
开关27在每个域定时交替地转换选择输入端27odd和选择输入端27even。响应奇数域和偶数域的定时,开关27在提供给选择输入端27odd的奇数域的图像数据和提供给选择输入端27even的偶数域的图像数据间转换,从而以正确的排列重构奇数域和偶数域。从开关27的输出端27out输出重构的奇数域和偶数域。
下面描述能够应用于本发明的一个实施例的图像编码装置的编码方法。如前所述,能够应用于帧内编码器14和帧内编码器15的编码方法不限于任何特定类型,只要在一域图像数据内完成该编码方法即可。此处如下所述,将小波变换作为编码方法应用于帧内编码器14和帧内编码器15。
图5示出了根据本发明的一个实施例的图像编码装置内的帧内编码器14的例子。帧内编码器14使用小波变换对图像数据编码。帧内编码器14和帧内编码器15具有相同的结构,并且为了解释简便起见,下面仅代表性地描述帧内编码器14。
图5中所示的帧内编码器14包括小波变换器32、量化器33、位平面分解器34、熵编码器35、代码量控制器36和代码量加法器37。将从加法器12输出的图像数据提供给小波变换器32。小波变换器32对提供的图像数据进行小波变换。
此处简要地介绍小波变换。在对图像数据的小波变换中,如图6中所示,将图像数据分割到具有高频谱频率的高频区域和具有低频谱频率的低频区域。递归地分割作为划分结果而获得的具有低频谱频率的低频带的数据。通过将具有低频谱频率的带的数据分割到较小区域,执行高效的压缩编码。
如图6中所示,将图像数据的最低频率组分区域分割到低频组分区域L和高频组分区域H。以分割等级=3将该分割处理重复3次。如图6中所示,“L”和“H”分别表示低频区域和高频区域。“L”和“H”的位置表示前进位置意味着作为水平方向上的分割结果的带,并且后退位置意味着作为重置方向上的分割结果的带。“L”和“H”之前的数字表示每个区域的分割等级。
如图6所示,从屏幕上的右下区域向左上区域向着低频组分连续执行分割处理。在图6的例子中,屏幕右侧底部区域是具有最少低频组分的区域3HH(即,具有最多高频组分)。将屏幕分割到4个区域,并且将顶部左侧区域进一步分割到4个区域。将该4个区域的顶部左侧区域进一步分割到4个区域。将该4个区域的顶部左侧区域再进一步分割到4个区域。得到的顶部左侧区域是具有最多低频组分的OLL。
在低频组分上进行变换和分割,因为图像的能量集中在低频组分上。这是可以理解的,因为当分割等级从图7的部分A中所示的分割等级=1的例子增加到图7的部分B中所示的分割等级=3的例子时,如图7的部分B中所示形成子带。例如,图6的小波变换的分割等级是3,并且作为结果,产生10个子带。
小波变换器32使用包含高频滤波器和低频滤波器的滤波器组执行上述处理。由于数字滤波器通常具有具有多个阶长度的冲激响应,即滤波器因子,并且需要缓冲足以执行滤波处理的输入图像数据或因子数据。当在多个阶段中执行小波变换时,需要缓冲数目足以执行滤波处理的前一阶段中产生的小波变换因子。
例如,将输入小波变换器32的图像数据临时存储在缓冲区上。小波变换器32对存储在缓冲区上的图像数据进行小波变换。更具体地,小波变换器32从缓冲区读取图像数据,对读取的图像数据执行滤波处理,以便产生低频区域和高频区域的系数数据,并且然后将系数数据存储在缓冲区上。小波变换器32从缓冲区读取系数数据,并且使用分析滤波器对读取的系数数据进行滤波处理,从而产生高频区域和低频区域的进一步的系数数据。将产生的系数数据再次存储在缓冲区上。
当通过重复上述处理,分割等级达到预定等级时,小波变换器32从缓冲区读取系数数据,并且输出读取的系数数据。
如图6中所示,在上面的讨论中小波变换的分割等级为3。本发明不限于分割等级=3。可以提高分割等级。当分割等级提高时,压缩率增加。在小波变换中,通常重复滤波处理直到分割等级=4为止。
将从小波变换器32输出的系数数据提供给用于量化的量化器33。用于量化图像数据的量化器33的量化方法可以采用在JPEG2000中采用的标量量化。如下面的等式(5)中所示,通过以标量量化中的量化步长大小Δ除小波变换中获得的小波变换系数w,确定量化系数值q。
q=w/Δ ...(5)
将从量化器33输出的量化系数值q提供给位平面分解器34,以便分解为位平面。如图8中图示地示出的,位平面包含相同位位置的平面,其具有多个以比特表示的数据片段。如图8的部分B所示,通过从LSB(最不重要位)到MSB(最重要位)堆叠位平面,可以根据相同位位置的比特值容易地获得多个数据片段。
如果获得了16个量化系数q,在如图8的部分A中所示(图8的部分B)的每个位位置形成4行×4列的矩阵,即,16个系数的位平面。
如图8中所示,在16个系数中,具有最大绝对值的一个是十进制系统中的“13”,相应于以位表示,即,二进制系统的4个数字值“1101”。系数的绝对值的位平面包括图8的部分B中所示的4个位平面。更具体地,位位置20的位平面在最LSB侧,跟着的是位位置21的位平面,位位置22的位平面和最MSB侧的位位置23的位平面。
每个位平面的元素是0或1。系数可以取负值。单独准备表示每个系数的符号的位平面。如图8的部分A中所示,由4行×4列构成的位平面的右上角处的系数是“-6”(十进制系统),并且从而是负数。其他值是0或正数。在该情况下,在图8的部分C中示出了符号的位平面。在每个数据位置取正号“+”、负号“-”和“0”中的任意一个。
位平面分解器34将提供的量化系数q分解为位平面。例如,位平面分解器34将一域的图像数据分解为多个块,并且将每个块划分为位平面。以这种方式,优选地可以细调的方式控制后续的熵编码。
将由位平面分解器34分解为位平面的量化系数q提供给熵编码器35。熵编码器35使用预定的熵编码方法诸如Huffman编码或算术编码,以每个位平面为基础对提供的量化系数q编码,并且输出代码量化系数q作为编码流。通过代码量加法器37从帧内编码器14输出从熵编码器35输出的编码流。
在Huffman编码中,通过参考根据值的出现频率事先产生的Huffman编码表,产生代码。在MPEG和JPEG的压缩编码中采用Huffman编码。在ITU-T(国际电讯联合会)Recommendation H.264或JPEG2000中采用算术编码。
代码量加法器37累积在一域内提供的编码流的代码量,从而将累积代码量提供给代码量控制器36。响应累积代码量,代码量控制器36向熵编码器35输出控制信号,以便在达到一域的目标代码量时停止熵编码。响应该控制信号,熵编码器35停止对提供的量化系数q进行熵编码。
下面描述由熵编码器35、代码量控制器36和代码量加法器37执行的代码量控制。根据本发明的一个实施例,使用位平面结构控制代码量。首先描述使用位平面的代码量控制的概念。
如图9中所示,纵坐标表示从下部到上部位置的LSB到MSB的位位置。横坐标表示矩形块。将具有图6中所示的子带的图像数据分割到由在位位置处的比特构成的位平面。将具有子带的图像数据进一步分割到如图10中所示的块。更具体地,将图像数据分割到位平面,同时分割到块0、块1、...、块n。每个分割的块0、块1、...、块n具有位平面结构。
在实际中,图9的每个块表示由多个数据片段构成的位平面。如图9中所示,为了解释方便起见,以单个数据片段表示每个块。在下面的描述中,以单个数据片段表示每块的数据。对类似的图(图11、18和25)也是如此。
基于每个位平面执行熵编码。从MSB到LSB选择代码,并且基于每个位平面累积代码量。控制熵编码,从而在累积代码量达到目标代码量时停止。位平面越接近MSB,解码的图像数据对图像质量具有越大的影响。如图8中的带箭头线表示的,以最接近MSB的位平面开始熵编码,并且以朝向LSB侧的位平面继续。
如图9中所示,整个图像数据的块0具有最接近MSB的位平面。块1具有到比块1低两个位置的位位置的位平面。块1下面的块具有到比块0低一个位置的位位置的位平面。块2具有到比块0低四个位置的位位置的位平面。
以每个位平面为基础对整个图像数据执行熵编码。如图9中所示,以在MSB处具有位位置的位平面开始熵编码,并且连续地以朝向LSB的位平面继续。如果从块单元看,对图9的每个块的位平面(n)连续编码,即,以位平面(1)、位平面(2)、位平面(3)、...、位平面(9)的顺序编码。累积熵编码数据的代码量。当累积代码量达到预定的目标代码量时,控制以便停止熵编码。在图9的例子中,在位平面(9)已被熵编码时,代码量达到目标代码量。从而停止熵编码操作。
控制代码量,从而响应编码数据的代码量停止熵编码。该图像编码装置从而可以所涉及的非常小的工作负载控制代码量。
如图9中所示,空白区域称为具有全部为0的比特值的零位平面,并且不需要熵编码。参考图10,以矩形块执行熵编码。本发明不限于矩形块的单元。例如,可以行执行熵编码。稍后将更详细地描述以行执行的熵编码。
在比MSB低预定位置数的位位置处的位平面(在图9的例子中,位位置比MSB低4个位置的位平面)对解码数据的图像质量具有很小的影响,并且不对这种位平面执行熵编码。
下面作为本发明的一个实施例,结合参考图1讨论的图像编码装置,讨论使用位平面结构的代码量控制。如前所述,图1的图像编码装置分别使用帧内编码器14和帧内编码器15对奇数域和偶数域的图像数据的相加结果和相减结果进行熵编码。
根据如图11所示的本发明的一个实施例,将奇数和偶数域的图像数据的相加结果和相减结果分解为位平面。从MSB到LSB,一个位平面接一个位平面地对从相加结果得到的位平面和从相减结果得到的位平面中的每一个进行熵编码。从而对相加结果和相减结果中的每一个适当地执行代码量控制。从而改善了解码后的图像数据的图像质量。
如图11的部分A所示,除了零位平面之外,从MSB到LSB对从加法器12的相加结果得到的位平面(此后称为相加图像位平面)进行熵编码,从而产生编码流。类似地,如图11的部分B所示,除了零位平面之外,从MSB到LSB对从减法器13的相减结果得到的位平面(此后称为相减图像位平面)进行熵编码,从而产生编码流。
如上参考图9讨论的,在图11中还基于一个块接一个块地对图像数据的矩形块0、块1、...、块n进行熵编码。熵编码的单元不限于矩形块。可以按行执行熵编码。
可以通过按位将数据映射到存储器执行位平面分解。例如,将每个位位置处的图11的部分A中所示的相加图像位平面和图11的部分B中所示的相减图像位平面映射到存储器上的地址。位平面分解器34将从量化器33输出的量化系数q分解为每个位位置处的比特值,并且将得到的比特值写到相应于存储器上的位位置的位平面上。熵编码器35按位平面从MSB读取写在存储器上的量化系数q,并且对读取的量化系数q进行熵编码。在从代码量控制器36收到停止熵编码的控制信号后,熵编码器35停止按位平面从存储器读取量化系数q。
根据本发明的一个实施例的图1的图像编码装置包括对加法器12的相加结果编码的帧内编码器14和对减法器13的相减结果编码的帧内编码器15。速率控制器16控制帧内编码器14和帧内编码器15中的每一个的代码量。
速率控制器16与包括在帧内编码器14和帧内编码器15中的每一个内的代码量控制器36交换关于从代码量加法器37提供的累积代码量的信息,从而控制相加图像编码数据的累积代码量和相减图像编码数据的累积代码量。就此而言,速率控制器16在包括在帧内编码器14和帧内编码器15中的每一个内的代码量控制器36中设置目标代码量。在该情况下,速率控制器16可以设置单独的目标代码量,即,包括在帧内编码器14内的代码量控制器36内的一个目标代码量,以及包括在帧内编码器15内的代码量控制器36内的另一个目标代码量。
在图11的部分A中所示的相加图像位平面中,在块n的位平面(10)已被熵编码时,达到响应相加结果的目标代码量。在另一方面,在图11的部分B中所示的相减图像位平面中,在块1的位平面(9)已被熵编码时,达到响应相减结果的目标代码量。
在图11的部分B中,相应于块1的位平面(9)的其他块的位平面具有全部为0的系数。
以熵编码的顺序按位平面输出编码数据。例如,按位平面(1)、位平面(2)、...位平面(10)的顺序传输图11的部分A中所示的相加图像位平面的编码数据。在该情况下,给每个位平面的编码数据加以标识信息标签。标识信息包括指示编码数据是相加图像位平面之一还是相减图像位平面之一的信息、标识块的信息和指示位平面的位位置的信息。
图12示出了根据本发明的一个实施例,参考图4讨论的图像解码装置内的帧内解码器21的例子。帧内解码器21和帧内解码器22具有相同的结构。为了解释简便起见,仅描述帧内解码器21,并且相同的解释适用于帧内解码器22。
帧内解码器21包括熵解码器40、去量化器41、逆小波变换器42。将从图4的编码流多路分解器20输出的编码数据提供给熵解码器40。熵解码器40通过相应于参考图5讨论的熵编码器35的熵编码方法的熵解码方法对提供的编码数据解码。作为解码的结果,产生量化系数q’。
将由熵解码器40产生的量化系数q’提供给去量化器41。去量化器41执行与由等式(5)表示的处理相反的处理,从而获得如以等式(6)表示的小波变换系数W’。
W’=q’×Δ ...(6)
将由去量化器41获得的小波变换系数W’提供给逆小波变换器42。逆小波变换器42对提供的小波变换系数W’执行相应于参考图5讨论的小波变换器32所执行的小波变换方法的逆小波变换处理。从而逆小波变换器42产生基带图像数据。作为解码图像数据输出基带图像数据。
根据本发明的一个实施例,为奇数域和偶数域的相加结果和相减结果中的每一个设置目标代码量。根据设置的目标代码量,以对解码后的图像质量具有大影响的系数开始,图像编码装置对相加结果和相减结果进行熵编码。从而熵编码处理中的图像编码装置可以限制从其输出的代码量的数据速率,同时确保解码图像数据的高图像质量。
由于本发明中使用的帧内编码允许在作为对奇数域和偶数域上的相加和相减运算的结果而获得的相加图像数据和相减图像数据中的每一个内完成编码处理,在稍后的编码数据的编辑处理中可以确保极平滑的操作。
下面描述用于编码图像数据的图像编码处理和用于解码编码图像数据的图像解码处理。
下面参考图13的流程图描述图1的图像编码装置的图像编码处理。
当接通图像编码装置时,开关10在步骤S1中接收一帧的图像数据输入。在收到图像数据输入后,开关10将图像数据分为奇数域和偶数域。
在步骤S2中,相加和相减单元18中的加法器12对通过域延迟单元11获得的奇数域和未通过域延迟单元11而直接获得的偶数域执行相加运算。在步骤S3中,速率控制器16设置在相加结果的编码中使用的目标代码量。在步骤S4中,帧内编码器14使用目标代码量对相加结果编码。
在步骤S5中,相加和相减单元18中的减法器13对通过域延迟单元11获得的奇数域和未通过域延迟单元11而直接获得的偶数域执行相减运算。在步骤S6中,速率控制器16设置在相减结果的编码中使用的目标代码量。在步骤S7中,帧内编码器15使用目标代码量对相减结果编码。
如前所述,由编码流多路复用器17将这样编码的相加图像数据和相减图像数据多路复用为单个编码流。
在步骤S8中,开关10确定是否接收下一帧的图像数据。如果图像数据输入是连续的,并且将接收下一帧的图像数据输入,处理返回步骤S1,以便重复步骤S1和后续步骤。如果在步骤S8确定将不接收图像数据输入,图像编码处理结束。
下面参考图14的流程图描述图4的图像解码装置的图像解码处理。
当图像解码处理开始时,编码流多路分解器20在步骤S21中接收编码流。在收到编码流之后,编码流多路分解器20将编码流多路分解为相加图像编码数据和相减图像编码数据。
在步骤S22中,帧内解码器21对作为相加结果的编码流的相加图像编码数据解码。在步骤S23中,帧内解码器22对作为相减结果的编码流的相减图像编码数据解码。
相加和相减单元28、除法器25A和除法器25B对帧内解码器21和帧内解码器22的解码结果执行相加和相减运算,和除法运算。结果,产生基带的奇数域的图像数据和基带的偶数域的图像数据。由开关27交替地将这些图像数据片段排列到解码图像数据内。输出基带的解码图像数据。
在步骤S25中,编码流多路分解器20确定是否接收下一个编码流。如果连续接收编码流,并且将接收下一个编码流,处理返回步骤S21,以便重复步骤S21和后续步骤。如果在步骤S25确定编码流多路分解器20未接收到编码流,图像解码处理结束。
下面描述本发明的当前实施例的另一个例子。图15是示出了图像编码装置的结构的方框图。如图15所示,给与图1中所示相同的元件指定相同的附图标记,并且此处忽略对其的讨论。
取代包括在图1的图像编码装置内的帧内编码器14和帧内编码器15,图15的图像编码装置包括帧内编码器50。帧内编码器50对关于奇数域和偶数域的加法器12的相加结果和关于奇数域和偶数域的减法器13的相减结果进行整体编码。由相应于图1的速率控制器16的速率控制器51控制由帧内编码器50编码的流的代码量。
将隔行扫描的运动图像数据输入到10的端子10in。开关10以域定时交替地在选择输出端10odd和选择输出端10even间转换,从而将运动图像数据多路分解为奇数域和偶数域。以域延迟单元11将从选择输出端10odd输出的奇数域的图像数据延迟一域,并且然后提供给加法器12和减法器13中的每一个。将从选择输出端10even输出的偶数域的图像数据提供给加法器12和减法器13。
加法器12将提供的奇数域加到偶数域上,并且将相加结果提供到帧内编码器50。减法器13从偶数域中减去奇数域,并且将相减结果提供给帧内编码器50。
响应由速率控制器51控制的编码位速率,帧内编码器50以在一域内完成编码处理的方式,对作为加法器12的相加结果的图像数据和作为减法器13的相减结果的图像数据进行帧内编码。对相加图像数据和相减图像数据整体地执行编码。从而从帧内编码器50输出帧内编码流。
图16是示出了相应于图15的图像编码装置的图像解码装置的结构的方框图。本发明的图像解码装置在结构上基本与参考图4讨论的图像解码装置相同。两种装置间的不同之处为取代图4的编码流多路分解器20、帧内解码器21和帧内解码器22,图16的图像解码装置包括帧内解码器60。如图16所示,给与图4中所示相同的元件指定相同的附图标记,并且此处忽略对其的讨论。
帧内解码器60接收从参考图15讨论的图像编码装置输出的编码流。帧内解码器60对提供的编码流执行预定的解码处理,从而输出基于奇数域和偶数域的相加结果的相加解码图像数据和基于奇数域和偶数域的相减结果的相减解码图像数据。将相加解码图像数据和相减解码图像数据中的每一个提供给相加和相减单元28内的加法器23和减法器24。
加法器23对相加解码图像数据和相减解码图像数据执行相加运算。减法器24在相加解码图像数据和相减解码图像数据间执行相减运算。如图4的图像解码装置,加法器23和减法器24以及25A和25B根据等式(1)到(4)执行运算。从而得到奇数域和偶数域的解码图像数据。
将25A的输出输入开关27的选择输入端27odd。由域延迟单元26将25B的输出延迟一域,并且然后输入开关27的选择输入端27even。开关27响应域定时交替地在选择输入端27odd和选择输入端27even间转换,从而作为多路复用图像数据输出奇数域的解码图像数据和偶数域的解码图像数据。
图17是示出了用于图15的图像编码装置内的帧内编码器50的结构的方框图。帧内编码器50基本与之前参考图5讨论的帧内编码器14相同。如果将小波变换器32和量化器33安排给帧内编码器14内的加法器12和减法器13的输出中的每一个,帧内编码器14成为与帧内编码器50相同。如图17所示,给与图5中所示相同的元件指定相同的附图标记,并且此处忽略对其的讨论。
如图17所示,小波变换器32A对从加法器12输出的相加图像数据进行小波变换,并且量化器33A量化小波变换系数W。类似地,小波变换器32B对从减法器13输出的相减图像数据进行小波变换,并且量化器33B量化小波变换系数W。
将量化系数q-量化器33A和量化器33B将相加图像编码数据和相减图像编码数据量化到其中-提供给位平面分解器61。通过将基于提供的相加图像数据和相减图像数据的量化系数q映射到存储器,相应于图5的位平面分解器34的位平面分解器61分解编码数据。从而产生相加图像位平面和相减图像位平面。
熵编码器35对由位平面分解器61在位平面分解状态中提供的量化系数Q连续地熵编码。
相应于帧内编码器50,熵编码器35对加法器12的输出和减法器13的输出整体地进行熵编码。出于该原因,如图18所示,熵编码器35跨相加图像位平面和相减图像位平面执行熵编码。更具体地,如图18所示,除了零位平面之外,熵编码器35从MSB侧的位平面向着LSB侧的位平面对响应加法器12的输出的量化系数q的矩形块与响应减法器13的输出的量化系数q的矩形块一起进行熵编码。
将熵编码数据输出到来自代码量加法器37的编码流。代码量加法器37累积提供的编码数据,同时将累积代码量提供给代码量控制器36。响应提供的累积代码量,代码量控制器36向熵编码器35提供控制信号,以便在编码数据量达到目标代码量时停止熵编码。
如图18所示,从MSB侧到LSB侧一个位平面接一个位平面地,即,按块以块(1)、块(2)...的顺序,对相加图像位平面和相减图像位平面一起执行熵编码。当达到块(19)时,代码量达到目标代码量。
以熵编码的顺序基于每个位平面输出编码数据。例如,由熵编码器35按每个位平面内的块传输熵编码的数据。如图18所示,就从块的角度看的位平面,按位平面(1)、位平面(2)、...、位平面(19)的顺序传输。给每个位平面的编码数据加以标识信息标签。标识信息包括指示编码数据是相加图像位平面之一还是相减图像位平面之一的信息、标识块的信息和指示位平面的位位置的信息。
图19是示出了参考图16讨论的图像解码装置内使用的帧内解码器60的结构的方框图。帧内解码器60包括熵解码器40、开关70、去量化器41A、去量化器41B、逆小波变换器42A和逆小波变换器42B。
熵解码器40根据相应于参考图17讨论的熵编码器35的熵编码方法的熵解码方法对提供的编码数据解码。熵解码器40与参考图12讨论的熵解码器40相同。熵解码器40以提供编码数据的顺序按块对位平面解码。例如,熵解码器40解码由参考图18讨论的熵编码器35作为编码数据提供的位平面(1)、位平面(2)、...、位平面(19)。将解码数据输入开关70的输入端70in。
开关70将输入输入端70in的数据多路分解为相加图像位平面的数据和相减图像位平面的数据。例如,如果给每个数据片段附加指示位平面的标识信息的标签,开关70根据标识信息多路分解数据。
从选择输出端70add输出由开关70多路分解的相加图像位平面的数据,并且然后提供给去量化器41A。从选择输出端70sub输出由开关70多路分解的相减图1像位平面的数据,并且然后提供给去量化器41B。
具有缓冲区存储器的去量化器41A在缓冲区存储器上存储从开关70的选择输出端70add提供的相加图像位平面的一域数据。当将相加图像位平面的一域数据存储在缓冲区存储器上时,去量化器41A根据上述等式(6)对累积数据去量化。如图18所示,当按块累积位平面(1)、位平面(2)、位平面(3)、位平面(7)、位平面(8)、位平面(9)、位平面(13)、位平面(14)、位平面(15)、和位平面(16)时,去量化器41A对累积数据去量化。
将作为去量化器41A的量化结果而获得的小波变换系数W提供给逆小波变换器42A。逆小波变换器42A对提供的小波变换系数W执行相应于参考图17讨论的小波变换器32A的小波变换方法的逆小波变换。从而产生图像数据。此处产生的图像数据基于图像编码装置内的相加图像数据。
由去量化器41B和逆小波变换器42B对相减图像数据执行的处理保持与由去量化器41A和逆小波变换器42A执行的上述处理不变,并且此处不再重复对其的讨论。由逆小波变换器42B产生的图像数据基于图像编码装置内的相减图像数据。
通过上述处理,帧内解码器60基于相加图像数据和相减图像数据输出解码图像数据。
根据本实施例,图像编码装置内的单个帧内编码器50就足够了。该图像编码装置在电路规模上比图1的图像编码装置小。由于在解码后对图像质量具有大影响的量化系数q出现在MSB侧的位平面内,执行适当的代码量控制,而不必关注奇数域和偶数域的相加结果和相减结果的代码预算。
下面描述用于编码图像数据的图像编码处理和用于解码编码图像数据的图像解码处理的处理流程。
下面参考图20描述图像编码装置的图像编码处理的处理流程。
当图像编码处理开始时,开关10在步骤S41接收一帧的图像数据。在收到图像数据后,开关10将图像数据多路分解为奇数域和偶数域。
在步骤S42中,相加和相减单元18中的加法器12对通过域延迟单元11获得的奇数域和未通过域延迟单元11而直接获得的偶数域执行相加运算。在步骤S43中,相加和相减单元18中的减法器13对通过域延迟单元11获得的奇数域和未通过域延迟单元11而直接获得的偶数域执行相减运算。
在步骤S44中,速率控制器51设置目标代码量,以便对相加结果和相减结果整体地编码。在步骤S45中,帧内编码器50使用目标代码量对相加结果和相减结果整体编码。
从图像编码装置将这样编码的流输出到外部。
在步骤S46中,开关10确定是否接收下一帧的图像数据。如果图像数据输入是连续的,并且将接收其他的图像数据,处理返回步骤S41,以便重复步骤S41和后续步骤。如果在步骤S46确定开关10未收到其他的图像数据,图像编码处理结束。
下面参考图21的流程图描述图16的图像解码装置的图像解码处理的处理流程。
当图像解码处理开始时,帧内解码器60在步骤S61中接收编码流。在收到编码流之后,帧内解码器60在步骤S62中解码相加结果和相减结果的编码流。
在步骤S63中,相加和相减单元28、除法器25A和除法器25B对帧内解码器60的解码结果执行相加和相减以及除法运算,从而产生基带的奇数域的图像数据和基带的偶数域的图像数据。由开关27将这些图像数据片段交替地多路复用到基带的解码图像数据内,并且然后输出。
在步骤S64中,帧内解码器60确定是否接收下一个编码流。如果连续地提供编码流,并且将接收下一个编码流,处理返回步骤S61,以便重复步骤S61和后续步骤。如果在步骤S64中确定帧内解码器60未收到其他的编码流,图像解码处理结束。
在根据前面的实施例的图像编码装置的图像编码处理和图像解码装置的图像解码处理的每一个中,由运行在预定程序的控制下的未示出的CPU(中央处理单元)控制每个元件。该程序可以存储在未示出的ROM(只读存储器)上。本发明不限于这种布置。可替换地,构成图像编码装置和图像解码装置的元件可以交换定时信号和控制信号,以便协同操作。该图像编码装置和图像解码装置还可以由运行在计算机上的软件实现。
下面描述本发明的另一个实施例。根据本发明的该实施例,使用小波变换的特征构造编码流。从而改善了解码之后的图像的主观图像质量,同时限制了编码流的位速率。
如前面参考图6和7讨论的,使用小波变换形成关于相同数据的多个子带。由于图像的属性,能量大部分集中在多个子带中的低频区域,而每个图像的轮廓的组分出现在高频区域(见图7)。希望在熵编码过程中,给低频区域分配比高频区域更多的代码量,以便改善解码图像的主观图像质量,并且限制编码流的位速率。
如前所述,将图像数据分解为位平面,并且然后以每个位平面为基础按块对图像数据进行熵编码。在图22中所示的方法中,从相同位位置处的位平面内的最低频区域内的子带向着最高频区域内的子带执行编码。在如图22所示的相同位位置处的位平面内,首先对作为最低频区域的区域0LL编码,并且然后从最低频区域向着最高频区域按顺序区域1HL、区域1LH、区域1HH、区域2HL、...、区域3LH连续地进行熵编码。
如图11和18中所示,块号越小,系数所属的频率区域越低,并且块号越大,系数所属的频率区域越高。以这种方式,以从低频组分到高频组分的顺序对每个位平面进行熵编码。
更具体地,将图像数据分割到如图23中所示的多个块。在相同位位置处的位平面内,首先对相应于具有分割等级=3的最低频率区域0LL的块(1)进行熵编码,并且对相应于具有分割等级=2的最低频率区域的块(2)、块(3)和块(4),以该顺序进行熵编码。另外,对相应于具有分割等级=1的最低频率区域的块(5)、块(6)、...、和块(16)以该顺序进行熵编码。另外,对相应于具有分割等级=1的区域3HL的块(17)、块(18)、...、和块(32)以该顺序进行熵编码。对相应于区域3LH的块(33)、块(34)、...、和块(48)以该顺序进行熵编码。对相应于区域3HH的块(49)、块(50)、...、和块(64)以该顺序进行熵编码。以该方式,从相同位位置处的位平面内的低频区域到高频区域按块对图像数据进行熵编码。每个区域内的块的编码顺序不限于上述的一个。
通过以上述顺序执行熵编码,在所希望的位平面内的所希望的块处停止熵编码。以该方式,在编码停止时,在解码的图像数据中获得提供最高主观图像质量的图像。
在解码过程中,图像解码装置对相同位置处的位平面从最低频率区域到最高频率区域进行熵解码。如图23中所示,在解码过程中,对相同位位置处的位平面内的块(1)、块(2)、...、块(32)、块(33)、...、块(64)以该顺序熵解码。然后对熵解码数据去量化,并且进行逆小波变换。从而产生解码的相加图像数据和解码的相减图像数据。对解码的相加图像数据和解码的相减图像数据执行相加和相减运算以及除以2的除法运算,并且得到奇数域的图像数据和偶数域的图像数据。首先对能量更多地集中于其中的区域进行熵解码,从而在解码后的图像中实现高的主观图像质量。
根据本实施例,在位平面内的任意位置停止编码。在位平面中,可以将置于编码停止处的位置之后的位设置为零。停止比编码停止处的位平面的位位置低的位平面中的熵编码。
根据前面的实施例的图像编码装置和图像解码装置等同地适用于本实施例,并且从而忽略对本实施例的图像编码装置和图像解码装置的详细讨论。
下面讨论本发明的另一个实施例。根据该实施例,根据将要编码的数据的类型,在编码中设置优先顺序。编码数据根据该优先顺序包括在最终的编码流内。
实际的运动图像数据通常包含颜色信息。颜色信息包含亮度组分和颜色组分。根据本实施例,给亮度组分Y和色差组分Cb和Cr划分优先级。具有较高优先级的组分被优先包括在最终的编码流内。以该方式,将解调的图像数据设置为高质量,同时限制了编码流的数据速率。
色差组分Cb表示蓝色组分的色差,并且色差组分Cr表示红色组分的色差。亮度组分Y仅包含关于亮度的信息,并且不包含颜色信息。
从奇数域和偶数域的相加得到的相加图像数据和从奇数域和偶数域间的相减得到的相减图像数据包含亮度组分Y和色差组分Cb以及色差组分Cr。优先选择相加图像数据和相减图像数据中的哪个组分,并且将其包含在最终的编码流中成为确定解码图像数据的图像质量的重要因素。
如前所述,在前面的实施例的每一个中,对奇数域和偶数域执行相加运算和相减运算。数据的动态范围是原始数据的动态范围的两倍。如何高效地对具有两倍动态范围的数据编码是重要的。一般地讲,动态范围越大,编码的位的数量越大。
根据本实施例,给相加图像数据、相减图像数据、亮度组分Y、色差组分Cb和色差组分Cr划分优先级。较高优先级的数据被以较高优先级编码。为了说明编码数据内的优先顺序,可以根据优先顺序给数据加权。
根据下面的条件(1)给相加图像数据、相减图像数据、亮度组分Y、色差组分Cb和色差组分Cr划分优先级。
Y(相加)>Cb(相加)>Cr(相加)>Y(相减)>Cb(相减)>Cr(相减) ...条件(1)
Y、Cb和Cr分别表示亮度组分Y、蓝色Cb和红色Cr。另外,(相加)表示相加图像数据,并且(相减)表示相减图像数据。符号“>”表示左侧大于右侧。同样适用于稍后讨论的条件(2)。
条件(1)基于隔行扫描中的运动图像数据的特征。更具体地,在隔行扫描中,域频率为60Hz(在NTSC(美国国家电视标准委员会)中),并且每个奇数域和偶数域的时段相对短,即,1/60秒。
在彼此相邻的奇数域和偶数域中,认为相应位置处的象素具有接近的值。如参考图3讨论的,奇数域和偶数域间的相减结果会聚于零的邻域。在另一方面,奇数域和偶数域相加结果会聚于两倍大于原始数据值的值附近。在以非常高的速度运动的运动图像数据的情况下,相邻域间的运动的量成为是大的,并且响应该运动量,相减数据的值也成为是大的。
很可能奇数域和偶数域的相加结果具有比相减结果更大的动态范围。将相加图像数据放置在比相减图像数据更高的优先顺序内的条件(1)对于在解码图像数据内实现高质量是有利的。
相加图像数据、相减图像数据、亮度组分Y、色差组分Cb和色差组分Cr的优先顺序不限于条件(1)。例如,还可以使用下面的条件(2)给组分划分优先级。
Y(相加)>Y(相减)>Cb(相加)>Cb(相减)>Cr(相加)>Cr(相减) ...条件(2)
条件(2)基于图像的特征。更具体地,基于图像中的亮度组分具有比色差组分更多数量的信息的事实,以及人类对图像的亮度组分比对色差组分更敏感的视觉特性。换言之,亮度组分中的下降比色差组分中的下降对人眼来说更显著。如果如条件(2)所示的在奇数域和偶数域的相加结果和相减结果中,将亮度组分放置在比色差组分更高的优先顺序,可以在解码的图像中有利地实现高质量。
条件(1)和(2)的每一个内的色差组分Cb和色差组分Cr的优先顺序不限于上述的一个。可以反转优先顺序。更具体地,可以根据将要编码的图像确定色差组分Cb和色差组分Cr的优先顺序。例如,如果图像是蓝色的,可以给色差组分Cb设置比色差组分Cr更高的优先顺序。如果图像是红色的,可以给色差组分Cr设置比色差组分Cb更高的优先顺序。在熵编码过程中,事先分析将要编码的图像数据的颜色信息,并且根据分析结果自适应地设置色差组分Cb和色差组分Cr的优先顺序。
根据本实施例,图像解码装置根据在编码过程中设置的优先顺序执行解码处理,即,以具有最高优先级的数据开始,之后是具有次最高优先级的数据。
根据以前的实施例的图像编码装置和图像解码装置等同地适用于本实施例,并且从而此处忽略对本实施例的图像编码装置和图像解码装置的详细讨论。
下面描述本发明的另一个实施例。在上面的讨论中,根据为相加图像数据、相减图像数据、亮度组分Y、色差组分Cb和色差组分Cr设置的优先顺序给图像数据加权。然而,根据本实施例,在编码流中说明使用上述的位平面的优先顺序设置。
图24示出了熵编码的顺序,其中根据条件(1)和(2)中的一个设置亮度组分Y的优先顺序>色差组分Cb>色差组分Cr。如图24中所示,从最低频率区域OLL到最高频率区域3HH,对关于亮度组分Y的MSB位位置处的位平面进行熵编码。从最低频率区域OLL到最高频率区域3HH,对关于色差组分Cb的与亮度组分Y的位平面的位位置相同的位位置处的位平面进行熵编码。在完成色差组分Cb的熵编码后,从最低频率区域0LL到最高频率区域3HH,对关于色差组分Cr的与亮度组分Y的位平面的位位置相同的位位置处的位平面进行熵编码。
当完成色差组分Cr的目标位平面的熵编码时,处理返回亮度组分Y,以便对下一个位位置处的位平面重复熵编码处理。
图25从位平面的角度示出了上述处理。如图所示,框内的每个空白部分表示零位平面,并且不包含在编码流内。阴影部分实际包含在编码流内。
如图25中所示,亮度组分Y内的最低频率区域Y-0LL到最高频率区域Y-3HH是亮度组分Y的子带。类似地,色差组分Cb中的最低频率区域Cb-0LL到最高频率区域Cb-3HH是色差组分Cb的子带,并且色差组分Cr中的最低频率区域Cr-OLL到最高频率区域Cr-3HH是色差组分Cr的子带。将每个子带分割到具有预定大小的块Bx。
如图25中所示,除了零位平面之外,从亮度组分Y中的区域Y-OLL到色差组分Cr中的区域Cr-3HH,从上部位位置处的位平面到下部位位置处的位平面,按块对每个位平面进行熵编码。当代码量达到目标代码量时,停止熵编码。从而控制熵编码。
如图25中所示,按块对位平面(1)、位平面(2)、...以该顺序进行熵编码。当已对位平面(x)进行编码时,达到目标代码量,并且停止熵编码。在编码流中不使用位位置低于位平面(x)的位平面。不使用的部分是位位置LSB处的或接近位位置LSB的位平面,并且从编码流中排除不使用的部分不会对解码的图像数据产生大的影响。
在上述讨论中未描述相加图像数据和相减图像数据。即使将相加图像数据和相减图像数据考虑在内,相同的处理也可工作。
根据条件(1),从区域Y-OLL到区域Cr-3HH,按位平面对相加图像位平面进行熵编码。当熵编码达到所希望的位平面时,从区域Y-OLL到区域Cr-3HH,按位平面对相减图像位平面进行熵编码。
设置条件(1),从而当所有相加图像数据已被熵编码时,开始相减图像数据的熵编码。条件(1)优选地适用于这样的结构,其中用于相加图像数据的帧内编码器14和用于相减图像数据的帧内编码器15彼此保持为独立。参考前面的实施例中的每一个讨论的图像解码装置也适用于本实施例,并且也适用前面的实施例中的每一个的解码方法。
本实施例的图像解码装置对根据条件(1)使用在熵编码中使用的优先顺序编码的流解码。更具体地,该图像解码装置按位平面从区域Y-OLL到区域Cr-3HH对相加图像位平面,以及按位平面从区域Y-OLL到区域Cr-3HH对相减图像位平面解码。然后对熵解码数据去量化,并且然后进行逆小波变换,从而得到解码的相加图像数据和解码的相减图像数据。对解码的相加图像数据和解码的相减图像数据执行相加和相减运算,以及除以2的除法运算。从而获得奇数域和偶数域的图像数据。
在条件(2)中,从区域Y-OLL到区域Y-3HH,对关于亮度组分Y的相加图像位平面进行熵编码,并且从区域Y-OLL到区域Y-3HH,对关于亮度组分Y的相减图像位平面进行熵编码。当完成亮度组分Y的熵编码时,对关于色差组分Cb的相加图像位平面和相减图像位平面执行熵编码。当完成色差组分Cb的熵编码时,对色差组分Cr的相加图像位平面和相减图像位平面执行熵编码。
设置条件(2),从而对于亮度组分Y、色差组分Cb和色差组分Cr,连续执行相加图像位平面的熵编码和相减图像位平面的熵编码。条件(2)优选地适用于这样的结构,其中如参考前面的实施例描述的单个帧内编码器50对相加图像位平面和相减图像位平面整体地进行熵编码。上述实施例的图像解码装置适用于本实施例,并且前面的实施例的解码方法也适用于本实施例。
本实施例的图像解码装置对关于亮度组分Y的条件(2)的编码流解码。更具体地,该图像解码装置按位平面从区域Y-OLL到区域Y-3HH对相加图像位平面,并且然后按位平面从区域Y-OLL到区域Y-3HH对相减图像位平面熵解码。当完成亮度组分Y的解码时,对相加图像位平面和相减图像位平面进行关于色差组分Cb的熵解码。当完成色差组分Cb的解码时,对相加图像位平面和相减图像位平面进行关于色差组分Cr的熵解码。
对熵解码数据进行去量化,并且然后进行逆小波变换。产生解码的相加图像数据和解码的相加图像数据。对解码的相加图像数据和解码的相加图像数据执行相加和相减运算以及除以2的除法运算。从而得到奇数域和偶数域的图像数据。
在条件(1)和(2)的每一个中,对其中具有数据的所有位平面连续地进行熵编码,并且当编码流达到目标代码量时,停止熵编码。本发明不限于该布置。可替换地,该图像编码装置可以预先设置为不在预定的位位置之下的位平面内执行熵编码。
在上面的讨论中,图像编码装置单独地对相加结果和相减结果编码,或对相加结果和相减结果整体地编码。在上述讨论中,图像解码装置也单独对相加结果执行解码处理和对相减结果执行解码处理,或对相加结果和相减结果两者执行解码处理。
可替换地,图像编码装置可以设计为在对相加结果和相减结果单独编码和对相加结果和相减结果整体编码之间进行选择。该图像解码装置可以设计为以由图像编码装置选择的任意设置对编码流解码。
例如,响应提供的相加结果和相减结果,图15的图像编码装置内的帧内编码器50可以在对相加结果和相减结果单独编码和对相加结果和相减结果整体编码之间进行选择,并且以所选择的方法执行熵编码。
下面参考图26描述这种处理,即,图像编码装置的图像编码处理。此处由图15的图像编码装置执行图像编码处理。
当图像编码处理开始时,开关10在步骤S81中接收一帧的图像数据。在收到图像数据后,开关10将图像数据多路分解为奇数域和偶数域。在步骤S82中,相加和相减单元18中的加法器12对通过域延迟单元11获得的奇数域和未通过域延迟单元11而直接获得的偶数域执行相加运算。在步骤S83中,相加和相减单元18中的减法器13在通过域延迟单元11获得的奇数域和未通过域延迟单元11而直接获得的偶数域间执行相减运算。
在步骤S84中,帧内编码器50确定是否对获得的相加结果和相减结果单独编码。响应从外部输入的例如由用户输入的指令,或基于以将要编码的图像数据表示的图像的特征、整个图像编码装置的负载状态、编码流的传输路径的带宽和图像解码装置的解码方法等执行该确定。优选地还可以接受采用其他信息执行该确定。
如果在步骤S84中确定将要对相加结果和相减结果单独编码,处理进入步骤S85。在步骤S85中,速率控制器51设置相加结果的编码中的目标代码量。在步骤S86中,帧内编码器50根据目标代码量对相加结果编码。在步骤S87中,速率控制器51设置相减结果的编码中的目标代码量。在步骤S88中,帧内编码器50根据目标代码量对相减结果编码。
将这样编码的相加图像编码数据和相减图像编码数据多路复用到一个编码流内,并且输出到图像编码装置的外部。在步骤S88之后,处理进入步骤S91。
如果在步骤S84中确定将要对相加结果和相减结果整体编码,处理进入步骤S89。在步骤S89中,速率控制器51设置相加结果和相减结果的整体编码中的目标代码量。在步骤S90中,帧内编码器50根据目标代码量对相加结果和相减结果整体编码。
将这样编码的流向外输出到图像编码装置的外部。在步骤S90之后,处理进入步骤S91。
在步骤S91中,开关10确定是否接收下一帧的图像数据。如果连续提供图像数据,并且将要接收其他的图像数据,处理返回步骤S81,以便重复步骤S81和后续步骤。如果在步骤S91中确定开关10未接收其他的图像数据,图像编码处理结束。
通过上述的处理,图像编码装置在对相加结果和相减结果单独编码和对相加结果和相减结果整体编码间进行适当的选择。
作为响应,图像解码装置可以相应于图像编码装置在对相加结果和相减结果单独编码和对相加结果和相减结果整体编码间选择的编码方法的解码方法对编码流解码。更具体地,如图4的图像解码装置,该图像解码装置可以对由图像编码装置单独编码的相加图像编码数据和相减图像编码数据单独解码。可替换地,如图16的图像解码装置,偶数域的图像数据可以对编码流解码,图像编码装置将相加结果和相减结果整体编码到该编码流内。
下面参考图27的流程图描述这种处理,即,图像解码装置的图像解码处理。此处由图16的图像解码装置执行图像解码处理。
当图像解码处理开始时,帧内解码器60在步骤S111中接收编码流。在收到编码流之后,帧内解码器60在步骤S112中分析收到的编码流,从而确定获得的编码流是否是由相加图像编码数据和相减图像编码数据两部分构成的。
帧内解码器60通过参考编码流的元数据或包的头信息,或通过分析编码流的数据大小的特征,确定编码流是否由一个整体两个部分构成,图像编码装置将相加结果和相减结果合成到该一个整体内。
如果在步骤S112确定编码流被分离为相加图像编码数据和相减图像编码数据,处理进入步骤S113。在步骤S113中,帧内解码器60将相加图像编码数据解码为相加结果的编码流。在步骤S114中,帧内解码器60将相减图像编码数据解码为相减结果的编码流。当解码处理完成时,处理进入步骤S116。
如果在步骤S112中确定编码流不能分离为相加图像编码数据和相减图像编码数据,处理进入步骤S115。在步骤S115中,帧内解码器60对相加结果和相减结果被整体编码到其中的编码流解码。当解码处理完成时,处理进入步骤S116。
在步骤S116中,相加和相减单元28、除法器25A和除法器25B对帧内解码器60的解码结果执行相加和相减运算以及除法运算,从而产生基带的奇数域的图像数据和基带的偶数域的图像数据。由开关27交替地多路复用这些图像数据片段,并且作为基带的解码图像数据输出。
在步骤S117中,帧内解码器60确定是否接收下一个编码流。如果连续提供编码流,并且将要接收下一个编码流,处理返回步骤S111,以便重复步骤S111和后续步骤。如果帧内解码器60在步骤S117中确定将不接收其他的编码流,图像解码处理结束。
通过上述解码处理,图像解码装置可以对相加结果和相减结果被单独编码到其中的编码流解码。图像解码装置还可以对相加结果和相减结果被整体编码到其中的编码流解码。
可以响应由图像编码装置与编码流分开传输的关于编码方法的信息,执行步骤S112中的确定。
在上述讨论中,参考图26的流程图讨论图15的图像编码装置执行图像编码处理,并且参考图27的流程图讨论图16的图像解码装置执行图像解码处理。该图像编码装置和图像编码装置中的每一个的结构是可选择的,并且可以不同于图15和16中所示的结构。
通过使用执行图像编码处理的图像编码装置和执行图像解码处理的图像解码装置,可以响应各种条件选择和执行最优的编码方法和解码方法。从而可以提供能够高度自适应的图像处理系统。
下面具体描述帧内编码器和帧内解码器。
图28是示出了帧内编码器的结构的方框图。帧内编码器201包括小波变换器210、中间计算缓冲区211、系数重布置缓冲区212、系数重布置器213、速率控制器214和熵编码器215。帧内编码器201相应于图1中所示的帧内编码器14和帧内编码器15以及图15的帧内编码器50中的一个。帧内编码器201对图像数据编码。
将输出图像数据临时此处在中间计算缓冲区211上。如果帧内编码器201用作图1的图像编码装置内的帧内编码器14,输入图像数据是由相加和相减单元18内的加法器12提供的奇数域的图像数据和偶数域的图像数据的相加结果。如果帧内编码器201用作图1的图像编码装置内的帧内编码器15,输入图像数据是由相加和相减单元18内的减法器13提供的奇数域的图像数据和偶数域的图像数据的相减结果。如果帧内编码器201用作图15的帧内编码器50,输入图像数据是由相加和相减单元18内的加法器12提供的奇数域的图像数据和偶数域的图像数据的相加结果和由减法器13提供的奇数域的图像数据和偶数域的图像数据的相减结果两者。
小波变换器210对存储在中间计算缓冲区211上的相同数据进行小波变换。更具体地,小波变换器210从中间计算缓冲区211读取图像数据,通过分析滤波器滤波读取的图像数据,以便产生高频区域和低频区域的系数数据,并且将产生的系数数据存储在中间计算缓冲区211上。包括水平分析滤波器和垂直分析滤波器的帧内编码器201对图像数据组在图像的水平方向和图像的垂直方向两者上进行滤波分析。小波变换器210再次从中间计算缓冲区211读取低频区域的系数数据,并且使用分析滤波器对读取的系数数据执行滤波处理,从而进一步产生高频区域和低频区域内的系数的数据。将产生的系数数据存储在中间计算缓冲区211上。
在通过重复上述处理达到预定的分割等级之后,小波变换器210读取系数数据,并且将读取的系数数据写到系数重布置缓冲区212上。
系数重布置器213以预定顺序读取写在系数重布置缓冲区212上的系数数据,并且然后将读取的系数数据提供给熵编码器215。熵编码器215通过预定的熵编码方法诸如Huffman编码或算术编码对提供的系数数据进行熵编码。
控制与速率控制器214协同操作的熵编码器215,从而将输出的压缩编码数据保持为基本恒定的值。更具体地,响应来自熵编码器215的编码数据信息,速率控制器214给熵编码器215提供控制信号。该控制信号用于控制熵编码器215,以便在熵编码器215的数据压缩编码的位速率达到目标值时或该时刻的即刻之前停止编码处理。熵编码器215输出响应由速率控制器214提供的控制信号停止编码处理时的编码数据。
更具体地描述由小波变换器210执行的处理。小波变换器210的小波变换处理的概述与参考图6和7所描述的相同。
小波变换器210使用包括高频滤波器和低频滤波器的滤波器组执行参考图6和7讨论的处理。帧内编码器201需要缓冲足以执行滤波处理的输入图像数据或系数数据。需要缓冲数目足以执行滤波处理的前面步骤产生的小波变换系数。
下面描述根据一个实施例的使用5×3滤波器的特定小波变换方法。前面参考已知技术讨论的JPEG2000中,采用的使用5×3滤波器的方法是一种能够以小的滤波器冲击数对图像数据进行小波变换的极好的方法。
5×3滤波器的冲激响应(Z变换表达式)由如下面等式(7)和(8)中表示的低频滤波器H0(z)和高频滤波器H1(z)构成。根据等式(7)和(8),低频滤波器H0(z)具有5阶,并且高频滤波器H1(z)具有3阶。
H0(z)=(-1+2z-1+6z-2+2z-3-z-4)/8 ...(7)
H1(z)=(-1+2z-1-z-2)/2 ...(8)
使用等式(7)和(8)直接计算低频区域和高频区域的系数。使用提升技术,减少了滤波处理的计算量。图示地采用描述应用于5×3滤波器的提升技术进行小波变换的分析滤波器的处理。
如图29中所示,顶部行、中间行和底部行分别表示输入图像的象素行、高频组分输出和低频组分输出。顶部行不限于输入图像的象素行。顶部行可以是作为滤波处理的结果获得的系数。此处顶部行是输入图像的象素行,并且每个实体正方形表示偶数象素或行(第一个为零),并且每个实体圆圈表示奇数象素或行。
在第一阶段中,根据等式(9)从输入象素行产生高频组分的系数di 1。
di 1=di 0-1/2(Si 0+Si+1 0) ...(9)
在第二阶段中,使用下面的等式(10),从产生的高频组分的系数和输入图像的奇数象素产生低频组分的系数Si 1。
si 1=si 0+1/4(di-11+di 1) ...(10)
分析滤波器通过滤波处理将输入图像的图像数据分解为低频组分和高频组分。
参考图30图示地描述执行逆小波变换的合成滤波器的处理。合成滤波器恢复通过小波变换产生的系数。图30,相应于图29,示出了使用5×3滤波器的提升技术。如图30中所示,顶部行表示通过小波变换产生的输入系数,每个实体圆圈表示高频组分的系数,并且每个实体正方形表示低频组分的系数。
在第一阶段中,根据等式(11),从输入的低频组分和高频组分的系数产生偶数系数si 0(第1个系数为零)。
Si 0=Si 1-1/4(di-1 1+di 1) ...(11)
在第二阶段中,根据等式(12),从在第一阶段中产生的偶数系数Si 0和输入的高频组分的系数di 1产生偶数系数di 0。
di 0=di 1+1/2(Si 0+Si+1 0) ...(12)
合成滤波器通过滤波处理合成低频组分和高频组分的系数,从而执行逆小波变换。
下面描述本实施例的小波变换处理。图31示出了使用参考图29讨论的5×3滤波器的提升,执行到分割等级=3的滤波处理。如图31中所示,图31的左边部分上示出的分析滤波器是帧内编码器201中的小波变换器210的滤波器。在图31的右边部分上示出的合成滤波器是稍后讨论的帧内解码器内的逆小波变换器的滤波器。
在下面的讨论中,显示设备的屏幕的左上角上的象素是引导象素,由从屏幕的左端到右端布置的象素构成一行,从屏幕的顶部侧到底部侧执行一行一行的扫描,以便形成一个显示屏幕。
如图31中所示,左端的列由在原始图像数据的每行上的位置处垂直布置的象素数据构成。更具体地,在小波变换器210的滤波处理中,使用垂直滤波器在屏幕上垂直地扫描象素。第一列到第三列表示分割等级=1的滤波处理,并且第四列到第六列表示分割等级=2的滤波处理。从左边起的第二列表示基于左端的原始图像数据的象素的高频输出。从左边起的第三列表示基于原始图像数据和高频组分输出的低频输出。如第四到第六列中所示,对分割等级=1的滤波处理的输出执行分割等级=2的滤波处理。
在分割等级=1的滤波处理的第一阶段中,基于原始图像数据的图像计算高频组分的系数数据。在第二阶段中,基于在第一阶段中计算的高频组分的系数数据和原始图像数据的象素,计算低频组分的系数数据。在图31中的左侧上的第一列到第三列中示出了分割等级=1的滤波处理。将计算的高频组分的系数数据存储在参考图28讨论的系数重布置缓冲区212上。将低频组分的系数数据存储在中间计算缓冲区211上。
如图31中所示,系数重布置缓冲区212被表示为由点划线定义的框,并且中间计算缓冲区211被表示为由虚线定义的框。
基于存储在中间计算缓冲区211上的分割等级=1的滤波处理的结果执行分割等级=2的滤波处理。在分割等级=2的滤波处理中,将作为分割等级=1的滤波处理中的低频组分的系数计算的系数数据对待为包含低频组分和高频组分的系数数据,并且然后执行与分割等级=1的滤波处理类似的滤波处理。将在分割等级=2的滤波处理中计算的高频组分的系数数据和低频组分的系数数据存储在参考图28讨论的系数重布置缓冲区212上。
小波变换器210在屏幕的水平方向和垂直方向上执行上述的滤波处理。例如,首先在水平方向执行分割等级=1的滤波处理,并且将产生的高频组分和低频组分的系数数据存储在中间计算缓冲区211上。然后在垂直方向上对存储在中间计算缓冲区211上的系数数据执行分割等级=1的滤波处理。在水平方向和垂直方向两者上的分割等级=1的滤波处理导致4个区域,即,区域HH和HL以及区域LH和LL。区域HH和HL是通过进一步将高频组分分解为高频组分和低频组分而获得的系数数据,并且区域LH和LL是通过进一步将低频组分分解为高频组分和低频组分而获得的系数数据。
在分割等级=2中,在水平方向和垂直方向的每一个上,对在分割等级=1中产生的低频组分的系数数据执行滤波处理。更具体地,在分割等级=2中,将分割等级=1处分解的区域LL进一步分割到4个区域。从而区域LL包含区域HH、区域HL、区域LH和区域LL。
根据本实施例,以逐步的方式若干次地在屏幕上的垂直方向内执行使用小波变换的滤波处理,每次处理若干行。如图31中所示,在以屏幕上的第一行开始的第一次处理7行,并且在以屏幕上的第八行开始的第二次处理4行。行数是在将每个区域划分为高频组分和低频组分之后,产生一行的低频组分所需的行数。
在下面的讨论中,产生一行最低频率组分(包含最低频率组分的一行子带的系数数据)所需的包含其他子带的一组行被称为行块(区域)。此处行指形成在相应于小波变换之前的图像数据的图像、域或子带内的一行象素数据或系数数据。更具体地,行块(区域)是产生小波变换之后的最低频率组分内的系数数据的一行子带所需的小波变换之前的原始图像数据中的象素数据组的若干行,或行块(区域)是对象素数据组进行小波变换而获得的每个子带的系数数据组。
如图31中所示,从存储在中间计算缓冲区211上的系数Ca和系数C4计算作为分割等级=5的滤波处理的结果而获得的系数C5。从全部存储在中间计算缓冲区211上的Ca、Cb和Cc计算系数C4。从存储在系数重布置缓冲区212上的C2和C3以及第五行上的图像数据计算系数Cc。从第五行到第七行上的图像数据计算系数C3。为了获得分割等级=2时的系数C5,需要第五行到第七行上的图像数据。
相反,此后第二次的滤波处理可以使用存储在系数重布置缓冲区212上的以前的滤波处理内以前计算的系数数据。从而较小的行数即可。
更具体地,如图31中所示,在作为分割等级=2的滤波处理的结果而获得的低频组分的系数中,从系数C4和C8以及存储在中间计算缓冲区211上的系数Cc计算系数C5之后的系数C9。以前在第一滤波处理中计算了系数C4,并且已经存储在系数重布置缓冲区212上。类似地,以前在第一滤波处理中计算了系数Cc,并且已经存储在中间计算缓冲区211上。在第二滤波处理中,仅执行用于计算系数C8的滤波处理。该新的滤波处理进一步使用8到第11行。
第二和后续的滤波处理可以使用在以前的滤波处理中计算的并且存储在中间计算缓冲区211和系数重布置缓冲区212上的数据,并且每个处理简单地计算4行。
如果屏幕上的行数不与编码中的行数匹配,通过拷贝原始图像数据的行,以便使得行数等于编码中的行数,执行滤波处理。
根据本发明,如稍后详细描述的那样,以逐步的方式(按行块)若干次地执行获得最低频率组分中的一个的系数数据的滤波处理,以便覆盖整个屏幕的行。该布置允许在传输编码数据时,以所涉及的短的延迟时间对图像解码。
为了执行小波变换,使用第一缓冲区和第二缓冲区。第一缓冲区执行小波变换,并且第二缓冲区存储将滤波处理执行到预定分割等级时产生的系数。第一缓冲区相应于中间计算缓冲区211,并且在图31中以虚线包围。第二缓冲区相应于系数重布置缓冲区212,并且在图31中以点划线包围。存储在第二缓冲区上的系数将在稍后的熵编码处理中熵编码。
下面描述系数重布置器213的处理。如前所述,将由小波变换器210计算的编码数据存储在系数重布置缓冲区212上,由系数重布置器213按顺序重新布置,并且传输到熵编码器215。
如前所述,在小波变换中从高频组分到低频组分产生系数。如图31中所示,分割等级=1的滤波处理在第一处理中从原始图像的图像数据连续地产生系数C1、系数C2和系数C2。对分割等级=1的滤波处理中获得的低频组分的系数数据执行分割等级=2的滤波处理,并且连续产生低频组分的系数C4和系数C5。更具体地,在第一处理中,按系数C1、系数C2、系数C3、系数C4和系数C5的顺序产生系数数据。由于小波变换的原理,系数数据的这种产生顺序是自然而然的(从高频组分到低频组分)。
相反,在解码器侧,需要从低频组分到高频组分产生和输出图像,以便在小量延迟之后立刻解码。优选地以从低频组分到高频组分的方向重新布置在编码器侧上产生的系数数据,并且将其提取给解码器侧。
参考图31更具体地描述该布置。用于执行逆小波变换的合成滤波器示出在图31的右侧上。使用在编码器侧上的第一滤波处理内产生的低频组分的系数C4和C5以及系数C1执行用于输出图像数据的第一行和其他行的第一合成处理(逆小波变换)。
更具体地,在第一合成处理中,编码器侧以系数C5、系数C4和系数C1的顺序给解码器侧提供系数数据。在相应于分割等级=2的合成等级=2中,解码器侧对系数C5和系数C4执行合成处理,从而产生并存储系数Cf。在相应于分割等级=1的合成等级=1中,对系数Cf和系数C1执行合成处理,并且作为第一行输出合成结果。
在第一合成处理中,按系数C1、系数C2、系数C3、系数C4和系数C5的顺序产生和存储在系数重布置缓冲区212上的系数数据被以顺序系数C5、系数C4、系数C1、...重新布置,并且提供给解码器侧。
对于在图31的右侧上示出的合成滤波器,从编码器侧提供的系数具有编码器侧上的带括号的数字以及指示合成滤波器内的行号的不带括号的数字。例如,系数C1(5)意味着图31内的左侧上的分析滤波器上的系数C5和合成滤波器侧内的第一行。
使用在以前的合成处理中合成的或从编码器侧提供的系数数据,对在编码器侧上的第二和后续滤波处理内处理的系数数据执行解码器侧上的合成处理。如图31所示,将要使用在编码器侧上的第二滤波处理内产生的低频组分的系数C8和系数C9执行的解码器侧的第二合成处理还需要在编码器侧上的第一滤波处理内产生的系数C2和系数C3。从而对第二到第五行解码。
在第二合成处理中,编码器侧以系数C9、系数C8、系数C2和系数C3的顺序向解码器侧提供系数数据。解码器侧在合成等级=2的处理中使用在第一合成处理时从编码器侧提供的系数C8和系数C9以及系数C4产生系数Cg,并且将系数Cg存储在缓冲区上。解码器侧使用系数Cg、系数C4和在第一合成处理中产生并且存储在缓冲区上的系数Cf产生系数Ch,并且将Ch存储在缓冲区上。
解码器侧使用在合成等级=2的合成处理中产生并且存储在缓冲区上的系数Cg和系数Ch、从编码器侧提供的系数C2(在合成滤波器中称为系数C6(2))和系数C3(在合成滤波器中称为系数C7(3))执行合成等级=1的合成处理。从而解码器侧对第二行到第五行解码。
在第二合成处理中,在编码器侧上以系数C2、系数C3、(系数C4和系数C5)、系数C6、系数C7、系数C8和系数C9的顺序产生的系数数据被在传输到解码器侧之前以系数C9、系数C8、系数C2、系数C3、...的顺序重新布置。
在第三和后续合成分析处理中,还对存储在系数重布置缓冲区212上的系数数据重新布置,并且然后传输到解码器侧。解码器侧一次以四行对行解码。
在响应编码器侧上的用于包括屏幕上的底部行的其他行的滤波处理(此后称为最终滤波处理)解码器侧上的合成处理中,将在以前处理中产生并且存储在缓冲区上的系数数据全部输出。输出行的数目成为是大的。如图31中所示,在最终处理时输出8行。
系数重布置器213可以通过以预定顺序设置存储在系数重布置缓冲区212上的系数数据的读取中的读取地址,重新布置系数数据。
参考图32具体地描述上述处理。图32示出了使用5×3滤波器的到分割等级=2的小波变换滤波处理。如图32的部分A所示,小波变换器210在水平方向和垂直方向上对第一行到第七行的输入图像数据执行第一滤波处理(图32的部分A中的In-1)。
在分割等级=1的第一滤波处理中,产生包括系数C1、系数C2和系数C3的三行的系数数据,并且将其布置在如图32的部分B内所示的在分割等级=1时形成的区域HH、区域HL和区域LH内(图32的部分B的WT-1)。
在水平方向和垂直方向上的分割等级=2的滤波处理中,进一步将分割等级=1时形成的区域LL划分为4个区域。对于在分割等级=2时产生,并且布置在分割等级=1的区域LL内的系数C5和系数C4,系数C5的一行布置在区域LL内,并且系数C4的一行布置在区域HH、区域HL和区域LH的每一个内。
在小波变换器210的第二和后续滤波处理中,一次对4行执行每个滤波处理(图32的部分A中的In-2),在分割等级=1时一次产生两行的系数数据(图32的WT-2),并且在分割等级=2时产生一行的系数数据。
在图31的第二处理中,在分割等级=1的滤波处理中产生系数C6和系数C7的两行系数数据,并且在第一滤波处理时产生的系数数据之后布置在分割等级=1时形成的区域HH、区域HL和区域LH中。类似地,在分割等级=1的区域LL中,将一行在分割等级=2的滤波处理中产生的系数C9布置在区域LL内,将一行系数C8布置在区域HH、区域HL和区域LH的每一个内。
当如图32的部分B中所示解码小波变换数据时,响应编码器侧对第一行到第七行的第一滤波处理,解码器侧执行第一合成处理,从而输出第一行(图32的部分C中的Out-1)。响应从第二到最终滤波处理的编码器侧的滤波处理,解码器侧一次输出4行(图32的部分C中的Out-2)。响应编码器侧上的滤波处理的最后一轮,解码器侧输出8行。
将小波变换器210从高频组分到低频组分产生的系数数据连续地存储在系数重布置缓冲区212上。当系数数据在系数重布置缓冲区212上存储到允许重新布置系数数据的程度时,系数重布置器213以用于合成处理的重新布置顺序读取系数数据。将读取的系数数据连续地提供给熵编码器215。
响应来自速率控制器214的控制信号,熵编码器215对提供的系数数据熵编码,从而输出数据的位速率成为目标位速率。将熵编码的数据提供给解码器侧。编码方法可以是Huffman编码和算术编码之一。本发明不限于这些编码方法。可以使用任意的编码方法,只要该编码方法是无损的即可。
熵编码器215量化从系数重布置器213读取的系数数据。如果对获得的量化系数执行诸如Huffman编码或算术编码的源编码,可以期望更高的压缩效率。可以采用任何量化方法。例如,可以采用诸如等式(13)表示的典型的方法,其中将系数数据W除以量化步大小Δ。
量化系数=W/Δ ...(13)
根据本实施例,如参考图31和32所述,小波变换器210一次对多行图像数据(行块)执行小波变换处理。熵编码器215输出每个滑块上的编码数据。当滤波处理使用5×3滤波器进行到分割等级=2时,在一屏的输出数据中,在第一轮输出一行,在第二轮到紧接最终轮的以前的轮中每次输出四行,并且在最终轮输出八行。
当对系数重布置器213重新布置的系数数据熵编码时,例如,在图31的滤波处理的第一轮中,没有过去行的系数数据,没有第一个系数C5的熵编码中的系数数据行。在该情况下,仅有一行被熵编码。相反地,当对系数C1熵编码时,系数C5和系数C4的行是过去的行。由于与执行行相邻的多个行可能由类似的数据构成。一次对这些行进行熵编码是有利的。
在上面的讨论中,小波变换器210使用5×3滤波器执行小波变换处理。小波变换器210可以采用具有更高阶数的滤波器,诸如9×7滤波器。阶数越高,存储在滤波器内的行数变得越大,并且从图像数据的输入到编码数据的输出的延迟时间变长。
在上面的讨论中,将小波变换的分割等级设置为2。本发明不限于分割等级=2。可以增加分割等级。分割等级越高,压缩率变得越高。典型地,在多至分割等级=4的小波变换中重复滤波处理。分割等级越高,延迟时间变得越长。
当将本实施例应用于实际系统时,优选地考虑系统所需的延迟时间和解码图像的图像质量确定滤波器的阶数和分割等级。可以自适应地选择滤波器的阶数和分割等级,而不是固定于恒定值。
下面参考图33的流程图描述这样讨论的帧内编码器201的整个图像编码处理的处理流程。
当编码处理开始时,小波变换器210在步骤S201中将目标行块的数目A设置为初始值。数目A典型地设置为“1”。在完成设置后,小波变换器210在步骤S202中从最低频率子带中的顶部获取产生第A行处的一行所需的行数的图像数据(即,一个行块)。在步骤S203中,小波变换器210对在垂直方向上布置在屏幕上的图像数据执行垂直分析滤波操作,在步骤S204中,小波变换器210对在水平方向上布置在屏幕上的图像数据执行水平分析滤波操作。
在步骤S205中,小波变换器210确定分析滤波操作是否达到最终等级。如果在步骤S205中确定未达到最终等级,处理返回步骤S203。小波变换器210在步骤S203到S204中执行当前分割等级的分析滤波操作。
如果在步骤S205中确定分析滤波操作已经达到最终等级,小波变换器210进入步骤S206。
在步骤S206中,系数重布置器213从低频到高频的顺序重新布置行块A的系数(从图像(在隔行的情况下为域)的顶部起的第A个行块)。在步骤S207中,熵编码器215一行一行地对系数熵编码。在完成熵编码之后,熵编码器215在步骤S208中将行块A的编码数据传输到外部。
在步骤S209中,小波变换器210将数目A的值增加1,以便将下一个行块设置为目标。在步骤S210中,小波变换器210确定在目标图像(在隔行系统的情况下为域)中是否存在未处理的图像输入行。如果在步骤S210中确定存在未处理的图像输入行,处理返回步骤S202,以便处理新的目标行块。
循环步骤S202到S210,以便对每个行块编码。如果在步骤S210中确定不存在未处理的图像输入行,小波变换器210结束对图像的编码处理。开始对下一个图像的新的编码处理。
在已知的小波变换中,对整个图像(在隔行系统的情况下为域)执行水平分析滤波操作,并且然后对整个图像执行垂直分析滤波操作。对得到的整个低频组分执行水平分析滤波操作和垂直分析滤波操作。递归地重复分析滤波操作,直到分割等级达到最终等级为止。每个分析滤波操作的结果需要存储在缓冲区上。迫使缓冲区存储整个图像(在隔行系统的情况下为域)或该时刻的分割等级的整个低频组分的滤波结果。缓冲区需要大的存储器容量(以便存储大量数据)。
不能执行系数重新布置和熵编码,直到在图像(在隔行系统的情况下为域)中完成了所有小波变换为止。产生了长的延迟时间。
相反,帧内编码器201中的小波变换器210如上所述连续地执行到最终等级的垂直分析滤波操作和水平分析滤波操作。与已知方法相比,将要一次(相同时间)存储(缓冲)的数据量是小的。具有相当小的存储器容量的所需缓冲区就足以工作。由于将分析滤波操作执行到最终等级,还可以执行将要最后执行的系数重新布置、熵编码等(即,按行块执行系数重新布置和熵编码)。与已知技术相比,所涉及的延迟时间相当短。
与已知技术相比,包括作为帧内编码器14和帧内编码器15的帧内编码器201的图1的图像编码装置导致相当短的延迟时间,增加了编码效率,并且改善了解码图像的主观图像质量。输出数据的位速率被容易地控制。以该方式,该图像编码装置可以找到更多应用,并且成为可应用于不同系统。例如,该图像编码装置可应用于对基于实时获得的图像数据连续编码的系统,诸如由照相机拍摄的运动图像数据,并且传输编码的图像数据。从而享有上述的优点。
包括作为帧内编码器50的帧内编码器201的图15的图像编码装置减小了电路规模和费用,并且容易地将代码量控制到适当的水平。
图34示出了相应于图28的帧内编码器201的帧内解码器的结构。将从图28的帧内编码器201内的熵编码器215输出的数据(图28的编码数据输出)提供给图34的帧内解码器220内的熵解码器221(作为图34的输入编码数据)。然后将输入的编码数据熵解码为系数数据。将系数数据存储在系数缓冲区222上。如以前参考图30和31所述,逆小波变换器223使用合成滤波器对存储在系数缓冲区222上的系数数据执行合成滤波处理,并且将合成滤波处理的结果存储在系数缓冲区222上。逆小波变换器223重复响应分割等级的处理,从而产生解码图像数据(输出图像数据)。
下面参考图35的流程图描述帧内解码器220的整个编码处理的特定处理流程。
当解码处理开始时,熵解码器熵解码器221在步骤S231中获得编码数据。在步骤S232中,熵解码器221一行一行地对编码数据进行熵解码。在步骤S233中,系数缓冲区222存储作为解码结果获得的系数。在步骤S234中,逆小波变换器223确定系数缓冲区222是否存储了一个行块的系数。如果在步骤S234中确定未存储一个行块的系数,处理返回步骤S231以便执行步骤S231和后续步骤。从而逆小波变换器223待机等待,直到系数缓冲区222已经存储了一个行块的系数为止。
如果在步骤S234中确定系数缓冲区222已经存储了一个行块的系数,逆小波变换器223进入步骤S235,以便读取存储在系数缓冲区222上的一个行块的系数。
在步骤S236中,逆小波变换器223对布置在屏幕上的垂直行内的系数执行垂直合成滤波处理。在步骤S237中,逆小波变换器223对布置在屏幕上的水平行内的系数执行水平合成滤波处理。在步骤S238中,逆小波变换器223确定合成滤波处理是否达到了等级=1(对于为“1”的分割等级),即,逆变换是否执行到小波变换之前的状态。如果在步骤S238中确定合成滤波等级为达到等级=1,处理返回步骤S236以便重复步骤S236和S237。
如果在步骤S238中确定合成滤波操作已经达到等级=1,逆小波变换器223进入步骤S239,以便输出作为逆变换的结果获得的图像数据。
在步骤S240中,熵解码器221确定是否完成了解码处理。如果在步骤S240中确定由于连续输入的编码数据未完成解码处理,处理返回步骤S231,以便重复步骤S231和后续步骤。如果在步骤S240中确定由于编码数据的输入的停止,将完成解码处理,熵解码器221结束解码处理。
在已知的逆小波变换中,对屏幕水平方向上的目标分割等级的所有系数执行水平合成滤波处理,并且在屏幕垂直方向上执行垂直合成滤波处理。在每个合成滤波处理中,其结果需要存储在缓冲区上。缓冲区被迫存储该时刻的分割等级的合成滤波结果以及下一个分割等级的所有系数。缓冲区需要大的存储器容量(以便存储大量数据)。
不输出图像数据,直到完成图像(在隔行系统的情况下为域)中的所有逆小波变换为止。导致了从输入到输出的长的延迟。
相反,如上所述帧内解码器220内的逆小波变换器223按行块连续执行垂直合成滤波处理和水平合成滤波处理直到等级1。如已知方法相比,一次(相同时刻)存储(缓冲)的数据量是小的。具有相当小的存储器容量的所需缓冲区就足以工作。在获得图像的所有图像数据之前,以被连续执行到等级1的合成滤波处理(逆小波变换)连续输出(按行块)图像数据。与已知技术相比,延迟时间相当短。
与已知技术相比,包括作为帧内解码器21和帧内解码器22的帧内解码器220的图4的图像解码装置导致相当短的延迟时间,增加了编码效率,并且改善了解码图像的主观图像质量。输出数据的位速率被容易地控制。
包括作为帧内解码器60的帧内解码器220的图16的图像解码装置减小了电路规模和制造成本,并且容易地将代码量控制到适当的水平。
由在预定程序的控制下操作的未示出的CPU(中央处理单元)控制图28的帧内编码器201内和图34的帧内解码器220内的元件的操作(图33的编码处理和图35的解码处理)。程序可以预先存储在未示出的ROM(只读存储器)上。本发明不限于该布置。可替换地,构成图像编码装置和图像解码装置的元件可以交换定时信号和控制信号,以便协同操作。可替换地,可以由运行在计算机上的软件实现帧内编码器和帧内解码器。
下面描述本发明的另一个实施例。根据该实施例,在前面的实施例的系统内,帧内编码器201和帧内解码器220内的元件并行操作,以便以所涉及的很少的延迟时间执行图像压缩编码处理和图像解码处理。
根据该实施例,帧内编码器201和帧内解码器220以及参考图28到35讨论的编码方法和解码方法也适用,并且出于解释方便起见,此处忽略对其的描述。
图36示出了帧内编码器201和帧内解码器220的元件的并行操作的概念。图36相应于图32。熵编码器215对图像数据(图36的A)的输入In-1(图36的B)执行第一小波变换WT-1。参考图31,响应三行的输入和系数C1的产生,开始第一小波变换WT-1。从图像数据In-1的输入到小波变换WT-1的开始,引起三行的延迟时间。
将产生的系数数据存储在系数重布置缓冲区212上。对该图像数据执行小波变换。当完成第一小波变换时,开始第二小波变换WT-2。
系数重布置器213与第二小波变换WT-2中使用的相同数据In-2的输入和第二小波变换WT-2的处理并行地对系数C1、系数C4和系数C5执行重新布置顺序Ord-1(图36的C)。
小波变换WT-1的结束和重新布置Ord-1的开始之间的延迟时间包括装置和系统结构的延迟,诸如指示系数重布置器213执行重新布置处理的控制信号的传输中引起的延迟,以及程序处理中的延迟。这些延迟时间不是编码处理中固有的。
由系数重布置缓冲区212以重新布置处理的顺序读取系数数据,并且提供给熵编码器215。然后执行熵编码操作EC-1(图36的D)。可以开始熵编码处理EC-1,而不用等待三个系数,即,系数C1、系数C4和系数C5的重新布置的结束。例如,当第一输出系数C5的一行的重新布置完成时,可以对系数C5开始熵编码。从重新布置Ord-1的开始到熵编码EC-1的开始的延迟是一行。
通过传输线将熵编码器215已经对其完成了熵编码EC-1的编码数据传输到帧内解码器220(图36的E)。由于传输编码数据的传输线可以是诸如Internet的通信网络。在该情况下,可以根据IP(网际协议)传输编码数据。本发明不限于Internet。传输线可以包括通信接口,诸如USB(通用串行总线)或IEEE1394(电气和电子工程师协会1394)或无线通信诸如由IEEE802.11标准定义的一个。
继用于第一处理的图像数据输入的7行之后,帧内编码器201连续接收图像数据直到屏幕的底部行。响应图像数据的输入In-n(n为2或更大),201210如上所述一次对4行执行小波变换WT-n,重新布置Ord-n和熵编码EC-n。对6行执行最终处理时由帧内编码器201执行的重新布置Ord和熵编码。如图36的A到图36的D所示,并行执行这些处理。
通过传输线将帧内编码器201在EC-1中熵编码的数据传输到帧内解码器220,并且然后提供给熵解码器221。熵解码器221对在熵编码EC-1中编码的数据连续地执行熵解码iEC-1,从而恢复系数数据(图36的F)。将恢复的系数数据连续地存储在系数缓冲区222上。当将足以执行逆小波变换的系数数据存储在系数缓冲区222上时,逆小波变换器223从系数缓冲区222读取系数数据,并且对读取的系数数据执行逆小波变换iTW-1(图36的G)。
如参考图31所述,当系数C4和系数C5被存储在系数缓冲区222上时,逆小波变换器223可以开始逆小波变换iTW-1。从熵解码器221的解码iEC-1的开始到逆小波变换器223的逆小波变换iTW-1的开始的延迟时间是2行。
当逆小波变换器223对第一小波变换中处理的三行完成逆小波变换iTW-1时,输出在逆小波变换iTW-1中产生的图像数据Out-1(图36的H)。如参考图31和32所述,输出Out-1是图像数据的第一行。
继由帧内编码器201在第一处理内编码的三行系数数据之后,帧内解码器220连续接收熵编码EC-1(n为2或更大)中编码的系数数据。如上所述,帧内解码器220一次对4行输入的系数数据执行熵解码iEC-n和逆小波变换iTW-n,并且输出在逆小波变换iTW-n中解码的图像数据Out-n。作为最终处理,帧内编码器201对6行执行熵解码iEC和逆小波变换iTW。帧内编码器201输出8行Out。如图36的F和图36的H所示,这些处理也由帧内解码器220并行执行。
如上所述,帧内编码器201和帧内解码器220按顺序从屏幕上的顶部到底部执行其处理,并且从而以短的延迟执行图像压缩处理和图像解码处理。
参考图36计算使用5×3的滤波器被执行到分割等级=2的小波变换中的,从图像输入到图像输出的延迟时间。从第一行图像数据输入到帧内编码器201到从帧内解码器220输出第一行图像数据的延迟时间是下面所述的因素的和。从这些因素中排除了随系统结构的不同而不同的延迟,诸如传输线中的延迟和元件的实际处理定时中的延迟。
(1)从第一行的输入到对7行执行的小波变换WT-1的结束的延迟D_WT。
(2)3行的计数和重新布置中涉及的时间D_Ord。
(3)用于对3行的熵编码EC-1的时间D_EC。
(4)用于对3行的熵解码iEC-1的时间D_iEC。
(5)用于对3行的逆小波变换iTW-1的时间D_iWT。
参考图36计算上面列出的因素中的延迟。(1)延迟D_WT是针对10行的。(2)时间D_Ord、(3)时间D_EC、(4)时间D_iEC和(5)时间D_iWT是针对3行的。重新布置Ord-1的开始之后的一行,帧内编码器201开始熵编码EC-1。类似地,熵解码iEC-1的开始之后的两行,帧内解码器220开始逆小波变换iTW-1。可以在熵编码EC-1内一行的编码结束时开始熵解码iEC-1。
如图36中所示,从第一行系数数据输入到帧内编码器201到从帧内解码器220输出第一行图像数据的延迟时间是17行=10+1+1+2+3。
进一步具体描述延迟时间。如果输入图像数据是HDTV(高清晰度电视)隔行视频信号,一帧具有1920象素×1080行的分辨率,并且一域具有1920象素×540行的分辨率。以30Hz的帧频率,帧内编码器201用16.67ms(1s/60域)接收540行的一域。
7行数据的输入中涉及的延迟时间是0.216ms(=16.67ms×7/540行),并且相对于一域的更新时间是极短的。因为将要处理的行数少,(1)延迟D_WT、(2)时间D_Ord、(3)时间D_EC、(4)时间D_iEC和(5)时间D_iWT是短的。如果使用硬件实现执行各个处理的元件,可以进一步缩短处理时间。
描述本发明的另一个实施例。在上述实施例中,在小波变换之后帧内编码器201重新布置系数数据。在本实施例中,在熵编码之后执行系数数据的重新布置处理。更具体地,帧内编码器对作为对输入图像数据的小波变换的结果产生的系数执行熵编码,并且然后对熵编码的时间执行重新布置处理。通过在熵编码之后对系数数据执行重新布置处理,减少了重新布置缓冲区所需的存储器容量。
例如,输入图像数据的位数是8位,并且以执行到多个分割等级的小波变换产生的系数数据的数目变为大约12位。如果在熵编码处理之前执行系数重新布置处理,系数重新布置缓冲区需要存储预定行的12位系数数据。如果在熵编码处理之后重新布置小波变换的系数数据,系数重新布置缓冲区仅存储通过熵编码处理压缩的数据。具有较小存储器容量的缓冲区即可。
图37是示出了根据本实施例的帧内编码器的结构的方框图。在图37中,给与参考图28所示相同的元件分配相同的附图标记,并且此处忽略对其详细的讨论。
帧内编码器230相应于图28的帧内编码器201。与帧内编码器201类似,图37的帧内编码器230在中间计算缓冲区211上存储输入图像数据。如在帧内编码器201中,小波变换器210对存储在中间计算缓冲区211上的图像数据进行小波变换。将小波变换处理中产生的系数数据提供给熵编码器215。熵编码器215,与速率控制器214协同操作,对提供的系数数据进行熵编码,从而输出的编码数据的位速率保持为大体恒定的值。不论系数的顺序如何,熵编码器215以获得的顺序对获得的系数编码。
将熵编码器215已经将作为小波变换的结果而产生的系数数据编码到其中的编码数据临时存储在代码重新布置缓冲区231上。代码重新布置器232重新布置来自代码重新布置缓冲区231的编码数据。如前所述,由小波变换器210以从高频组分到低频组分的顺序,从屏幕的顶部到底部产生系数数据。为了在解码器侧以短的延迟输出图像数据,以重新布置在低频组分到高频组分内的小波变换的系数数据读取存储在代码重新布置缓冲区231上的编码数据。
通过传输线作为输出编码数据传输从代码重新布置缓冲区231读取的编码数据。
以对编码数据解码的帧内编码器201相同的方式,参考图34描述的帧内解码器220对由本实施例的帧内编码器230编码和输出的数据解码。更具体地,熵解码器221对通过传输线输入帧内解码器220的编码数据解码,从而恢复系数数据。将恢复的系数数据连续存储在系数缓冲区222上。逆小波变换器223对存储在系数缓冲区222上的系数数据进行逆小波变换,从而输出图像数据。
进一步描述本发明的另一个实施例。在每个前面的实施例中,由如图38中所示的帧内编码器侧执行小波变换系数数据的重新布置处理。根据本实施例,在如图39中所示的帧内解码器侧上执行小波变换系数数据的重新布置处理。
如前所述,小波变换系数数据的重新布置处理需要系数重新布置缓冲区具有相对大的存储器容量。重新布置处理本身需要高的吞吐率。具有高吞吐率的帧内编码器侧可以没有任何问题地执行系数重新布置处理。
帧内编码器可以被安装在相对低吞吐率的设备上,诸如移动设备,包括蜂窝电话或PDA(个人数字助理)。当前广泛地使用具有拍照功能的蜂窝电话(带照相机的蜂窝电话)。通过小波变换和熵编码对由具有照相机功能的蜂窝电话拍摄的图像数据进行压缩编码,并且然后通过有线通信或无线通信传输。
这种移动终端中的CPU的吞吐率是有限的,并且该终端的存储器容量也受到限制。系数重新布置的工作负载在该终端上是不可忽视的。
如图39中所示,可以将重新布置处理转移到帧内解码器侧。从而具有减少了工作负载的帧内编码器侧可以安装在相对低吞吐率的设备诸如移动终端上。
图40是示出了这种帧内编码器的结构的方框图。如图40所示,给与图28中所示相同的元件指定相同的附图标记,并且此处忽略对其的详细讨论。
除了排除了系数重布置器213和系数重布置缓冲区212之外,图40的帧内编码器241与图28的帧内编码器201的结构相同。更具体地,本实施例包括小波变换器210、中间计算缓冲区211、熵编码器215和速率控制器214的组合。
输入图像数据临时存储在中间计算缓冲区211上。小波变换器210对存储在中间计算缓冲区211上的图像数据进行小波变换,从而产生系数数据。小波变换器210将产生的系数数据以产生的顺序连续地提供给熵编码器215。换言之,以从高频组分到低频组分的小波变换顺序,将产生的系数数据提供给熵编码器215。熵编码器215以由速率控制器214控制的输出数据的位速率对提供的系数进行熵编码。熵编码器215作为编码数据输出通过小波变换和熵编码产生的系数数据。
图41是示出了本实施例的帧内解码器的结构的方框图。在图41中,给与图34中所示相同的元件指定相同的附图标记,并且此处忽略对其的详细讨论。
将从参考图40讨论的帧内编码器241中的熵编码器215输出的熵编码数据提供给图41的帧内解码器242内的熵解码器221,其中将熵编码解码为系数数据。通过系数缓冲区222将系数数据存储在系数重新布置缓冲区243上。当系数重新布置缓冲区243将系数数据存储到足以重新布置的程度时,逆小波变换器223以从低频组分到高频组分的重新布置顺序从系数重新布置缓冲区243读取系数数据,并且以读取的顺序对系数数据进行逆小波变换。如果使用5×3滤波器,如图39所示执行小波变换。
当处理一帧的引导部分时,例如,当熵解码系数C1、系数C4和系数C5已经存储在系数重新布置缓冲区243上时,逆小波变换器223从系数重新布置缓冲区243读取系数数据。逆小波变换器223执行逆小波变换。作为输出图像数据连续输出由逆小波变换器223进行逆小波变换的数据。
如前面参考图36讨论的,在本实施例中并行执行帧内编码器241中的每个元件的处理、编码数据在传输线上的传输和帧内解码器242内的每个元件的处理。
下面进一步描述本发明的另一个实施例。在该实施例中,对在每个前面实施例内的帧内编码器和帧内解码器间交换的编码数据打包。
图42图示地示出了如何交换编码数据。如图42中所示,以与结合每个前面的实施例所描述的相同方式,按具有预定数目的行输入的行块(子带251)对图像数据进行小波变换。当达到预定的小波变换分割等级时,以相反顺序重新布置从最低频率子带到最高频率子带的系数行,即,以从低频区域到高频区域的顺序。
在图42的子带251中,不同图案的部分,即,阴影部分、带有垂直线图案部分和带有波状线图案的部分是不同的行块(如由带箭头的直线表示的,子带251的空白部分也被以行块分割)。对行块重新布置的系数熵编码,并且得到编码数据。
如果帧内编码器照这样输出编码数据,帧内解码器可以难以识别行块间的边界(或必须执行复杂的处理)。根据本实施例,帧内编码器给每个行块附加头部,从而传输由同步和编码数据构成的包。
如图42中所示在产生第一行块(行块-1)的编码数据之后,帧内编码器对编码数据打包,并且将该包作为传输包261传输到帧内解码器。在收到包261后(接收包271),帧内解码器对编码数据解码。
类似地,帧内编码器产生第二行块(行块-2)的编码数据,将编码数据打包到包内,并且然后将该包作为传输包262传输到帧内解码器。在收到包后(接收包272),帧内解码器对编码数据解码。类似地,帧内编码器产生第三行块(行块-3)的编码数据,将编码数据打包到包内,并且然后将该包作为传输包263传输到帧内解码器。在收到包后(接收包273),帧内解码器对编码数据解码。
帧内编码器和帧内解码器重复上述处理直到最后的行,即,X行(行块-X)(传输包264和接收包274)。帧内解码器产生解码图像281。
图43示出了头部的结构。如上所述,包由头部291和编码数据构成。头部291包含对行块号(NUM)293和编码数据长度(LEN)294的描述。
通过读取附加于接收的编码数据的以及包含在头部内的信息,帧内解码器可以容易地识别各个行块的边界。从而减少了解码处理的负载和处理时间。
如图43中所示,可以附加对构成行块的各个子带处的量化步大小(Δ1到ΔN)292的描述。帧内解码器按子带对数据去量化。从而除了由帧内编码器执行的位平面的位速率控制之外,帧内解码器可以执行细调的图像质量控制。
帧内编码器和帧内解码器可以以并发和并行方式(使用管道技术)按行块执行上述的编码、打包、包的传输和接收、以及解码。
以这种方式,帧内解码器可以极大地减少到帧内解码器获得图像输出之前的延迟时间。图42示出了隔行运动图像(60域/秒)的操作例子。如图所示,一域的时段是1秒/60=近似为16.7ms。通过以并发和并行方式执行处理,以大约5ms的延迟时间获得图像输出。
进一步描述本发明的另一个实施例。在该实施例中,在每个上述前面的实施例中具体描述帧内编码器的熵编码处理和帧内解码器的熵解码处理。在每个上述的实施例中,可以使用任意的熵编码方法。然而,使用本实施例中描述的方法,帧内编码器可以更容易的计算执行编码处理。从而本实施例减少了延迟时间、功率消耗和缓冲区的存储器容量。
如更详细地描述的,允许在编码前将图像数据分割到位平面的本实施例的编码方法易于应用于前面讨论的方法。在前面讨论的方法中,将图像数据分割到位平面,并且以从上部位位置到下部位位置的顺序,从位位置内的顶部位平面到预定位位置内的位平面连续输出分割到位平面内的数据。在保持对输出数据的位速率的容易的控制的同时,减少了编码处理中的工作负载。从而本实施例减少了延迟时间、功率消耗和缓冲区的存储器容量。
在每个前面的实施例中,量化系数数据并且然后进行编码。本实施例也是这样。根据本实施例,可以在系数数据的量化之后或跳过系数数据的量化执行熵编码。如稍后描述的,如果量化系数数据,将更大地改善图像质量。下面的讨论仅覆盖以量化的系数数据执行熵编码的情况。此处不讨论跳过系数数据的量化执行熵编码的情况,但是即使跳过量化处理,下面对以量化的系数数据执行熵编码的情况的讨论也适用。
此处忽略对系数重新布置处理的描述。在上述实施例中,对顺序重新布置的系数数据熵编码,对熵编码数据进行顺序重新布置,或对系数数据进行顺序重新布置。顺序重新布置处理基本上旨在加速逆小波变换处理,并且与熵编码处理(和熵解码处理)无关。如稍后详细描述的,系数重新布置处理-如果执行-不限于在行块内,并且不影响各个实施例内的熵编码处理。更具体地,不管在顺序重新布置之前还是之后对系数数据编码,等同地适用熵编码处理。为了解释简便起见,忽略对系数顺序重新布置的描述。
在下面描述的本发明的熵编码处理中,图40的帧内编码器241内的熵编码器215执行量化处理。出于如上所述的相同原因,仅描述相应于熵编码的帧内解码器。此处忽略对执行系数顺序重新布置处理或不执行去量化处理的帧内解码器的操作。
图44是示出了本发明的帧内编码器的结构的方框图。
帧内编码器311包括小波变换器321、量化器322和熵编码器323。
相应于图40的小波变换器210的小波变换器321执行小波变换处理。更具体地,小波变换器321以必要时进行了DC电平偏移的组分信号接收图像(数据)。小波变换器321对输入图像进行小波变换,从而将输入图像分解为多个子带。小波变换器321将通过小波变换获得的小波系数提供给量化器322。
量化器322量化从小波变换器321提供的小波系数,并且将作为量化结果获得的量化系数提供给熵编码器323。
熵编码器323对从量化器322提供的量化系数熵编码,从而作为图像(数据)输出得到的编码。对从熵编码器323输出的图像进行速率控制处理,并且然后打包。然后记录得到的包,并且将其提供给与帧内编码器311相连接的另一个装置(未示出)。
量化器322和熵编码器323相应于图40的熵编码器215和速率控制器214。
参考图45和46描述由图44的熵编码器323执行的熵编码处理。
如图45中所示,由6行,即,行L1到行L6构成一个子带。设(X,Y)以xy坐标表示行上的象素的位置。每行左端的x坐标是0,并且行L1的y坐标是0。
熵编码器323从量化器322以光栅扫描顺序从行L1到行L6接收每个位置(x,y)处的每个子带的量化系数。
换言之,熵编码器323接收行L1的最左端位置(0,0)处的量化系数。然后熵编码器323接收最左端位置(0,0)的位置右边的位置(1,0)处的量化系数。然后,熵编码器323连续接收到行L1的最右端位置的路线上的所有的量化系数。在收到行L1上的所有量化系数之后,熵编码器323接收从行L2上的最左端位置(0,2)到最右端位置的量化系数。进一步重复该处理,以便接收行L3到L6上的量化系数。
如图46的左上部分中所示的,在收到从图45的行L1的最左端起的12个量化系数之后,熵编码器323以一次按预定数目w(图46中w=4)对量化系数编码。
以十进制数表示示出在图46的上部的各个量化系数的绝对值(位平面表示)。如图46中所示,熵编码器323接收“-0101,”、“+0011,”、“-0110,”、“+0010,”、“+0011,”、“+0110,”、“0000,”、“-0011,”、“+1101,”、“-0100,”、“+0111”和“-1010.”的一行量化系数(图45的行L1)。
一个量化系数由以“+”(正)或“-”(负)表示的量化系数的符号和以二进制数表示的量化系数的绝对值构成。如图46所示,在表示量化系数的绝对值的位中,最高位表示最重要的位。例如,具有“-”号和二进制绝对值“0101”的量化系数“-0101”表示数据值数“-5”。
熵编码器323确定输入的一行量化系数(绝对值)是否全为0,并且响应确定结果输出表示将要编码的量化系数是否全为0的代码。如果确定量化系数全为0,熵编码器323输出0作为表示将要编码的量化系数全为0的代码。如果确定将要编码的量化系数不全为0(不仅是0),熵编码器323输出1作为不是所有量化系数都是0的代码。
当输入图46的左上部分上示出的12个量化系数时,输入的量化系数不仅为0,如图46的右上部分中所示,熵编码器323输出1。
当输出指示不是该行的所有量化系数都为0的代码1时,代码重新布置器232对第一个4(w)个输入量化系数“-0101,”、“+0011,”、“-0110”和“+0010”编码。
熵编码器323对此时输入的4个连续的量化系数的有效数字的最大数目(图46中的变量B的值)与以前编码(输入)的4(w)个量化系数的有效数字的最大数目进行比较,从而确定有效数字的最大数目是否改变了。熵编码器323输出指示量化系数的有效数字的最大数目的代码。
有效数字的最大数目表示共同编码的4(w)个量化系数中的具有最大绝对值的量化系数的有效数字的数目。换言之,在4个量化系数中,有效数字的最大数目表示具有最大绝对值的量化系数中的最高位置处的1的位置。例如,在共同编码的4个量化系数“-0101,”、“+0011,”、“-0110”和“+0010”中,量化系数“-0110”具有最大绝对值,并且量化系数“-0110”内的1的最高位置是“3”。
指示量化系数的有效数字的最大数目的代码包括指示有效数字的最大数目是否改变的代码、指示有效数字的最大数目是增加还是减小的代码、和指示有效数字的最大数目的变化的代码。如果有效数字的最大数目未改变,不输入指示有效数字的最大数目是增加还是减小的代码和指示有效数字的最大数目内的改变的代码。
如果有效数字的最大数目的比较结果示出有效数字的最大数目中的改变,熵编码器323输出指示有效数字的最大数目的改变的代码1。如果没有有效数字的最大数目的改变,熵编码器323输出指示有效数字的最大数目的代码1。
当熵编码器323响应4个量化系数的第一输入,即,响应将要编码的子带的量化系数的第一输入(例如,响应从图45的行L1的最左端起的4个量化系数的输入),确定有效数字的最大数目的改变时,不存在该子带的以前的量化系数。将以前编码的4(w)个量化系数的有效数字的最大数目设置为0。
熵编码器323对4个当前输入的量化系数“-0101,”、“+0011,”、“-0110”和“+0010”的有效数字的最大数目,即,3与以前编码的量化系数的有效数字的最大数目0进行比较。熵编码器323检测到改变,从而输出代码1。
在指示有效数字的最大数目的改变的代码1之后,熵编码器323输出指示有效数字的最大数目增加还是减小的代码。如果有效数字的最大数目增加了,熵编码器323输出代码0。如果有效数字的最大数目减小了,熵编码器323输出1。
以前的有效数字的最大数目是0,并且当前的有效数字的最大数目是3。熵编码器323输出指示有效数字的最大数目增加了的代码0。
在输出指示有效数字的最大数目增加还是减小的代码之后,熵编码器323输出指示有效数字的最大数目增加或减小了多少的代码,即,指示有效数字的最大数目变化量的代码。更具体地,当有效数字的最大数目的变化量(增加或减小的量)是n时,熵编码器323输出(n-1)个代码0以及继这些0之后的代码1。
当对图3的第一个4个量化系数编码时,有效数字的最大数目的变化量是3(=3-0)。熵编码器323输出2(=3-1)个0,并且然后输出1。
接着,熵编码器323输出指示当前编码的4(w)个量化系数中的每一个的绝对值的有效数字的最大数目的代码。更具体地,熵编码器323从最高数字到最低数字输出以有效数字的最大数目表示的量化系数的绝对值的每个数字的值。
当前编码的量化系数是“-0101,”、“+0011,”、“-0110”和“+0010”。熵编码器323输出相应于指示第一输入量化系数“-0101”的绝对值的有效数字的最大数目的代码。由于有效数字的最大数目是3,熵编码器323输出量化系数“-0101”的有效数字的最大数目的最高数字的值,即,“1”(3-位位置)、比最高位低1位的值“0”(2-位位置)和最低位的值“1”。以这种方式,输出表示量化系数“-0101”的绝对值的有效数字的数“101”。
类似地,熵编码器323将表示量化系数“+0011,”、“-0110”和“+0010”的绝对值的有效数字的最大数目的“011”、“110”和“010”以该顺序输出。结果,熵编码器323输出“开关10域延迟单元110010”作为表示量化系数“-0101,”、“+0011,”、“-0110”和“+0010”中的每一个的有效数字的最大数目的代码。以这种方式,熵编码器323输出响应将要编码的4个量化系数的有效数字的最大数目的代码作为指示量化系数的绝对值的代码。
最后,熵编码器323输出指示4(w)个量化系数中的具有非0绝对值的每个量化系数的符号的代码。如果量化系数的符号是“+”(正),熵编码器323输出代码0,并且如果量化系数的符号是“-”(负),熵编码器323输出代码1。
当前将要编码的量化系数是“-0101,”、“+0011,”、“-0110”和“+0010”,并且量化系数的符号按其顺序是负、正、负和正。如图46的右上部分中所示,熵编码器323输出”1010”作为指示量化系数的符号的代码。
当对第一次输入的4个量化系数编码时,熵编码器323对下面的连续的量化系数“+0011,”、“+0110,”、“0000”和“-0011”编码。
如第一(以前)输入的量化系数的编码,熵编码器323对当前输入的4(w)个量化系数的有效数字的最大数目与以前输入的4个量化系数的有效数字的最大数目进行比较。
当前输入的4(w)个量化系数“+0011,”、“+0110,”、“0000”和“-0011”的有效数字的最大数目是具有最大绝对值的量化系数“+0110”的最高位处的1的数字,即“3”。熵编码器323输出指示有效数字的最大数目未改变的代码0。
接着,熵编码器323输出通过布置分别指示当前编码的4(w)个量化系数“+0011,”、“+0110,”、“0000”和“-0011”的绝对值的有效数字的最大数目的代码“011”、“110”、“000”和“011”获得的“011110000011”。
当输出指示量化系数的绝对值的代码时,熵编码器323输出指示4个量化系数的具有非0绝对值的量化系数的符号的代码。
当前编码的量化系数是“+0011,”、“+0110,”、“0000”和“-0011”,并且第三个量化系数“0000”具有0绝对值。熵编码器323输出指示量化系数“+0011,”、“+0110,”和“-0011”的符号(正、负和正)的代码“001”。
当4个量化系数“+0011,”、“+0110,”、“0000”和“-0011”被编码时,熵编码器323对4个量化系数“+1101,”、“-0100,”、“+0111”和”-1010”编码。
熵编码器323对当前输入的4(w)个量化系数的有效数字的最大数目与以前编码的4个量化系数的有效数字的最大数目进行比较。
当前输入的4(w)个量化系数“+1101,”、“-0100,”、“+0111”和”-1010”的有效数字的最大数目是具有最大绝对值的量化系数“+1101”的最高位位置处的1的位置,即“4”。由于当前有效数字的最大数目“4”不同于以前编码的量化系数的有效数字的最大数目“3”,熵编码器323输出指示有效数字的最大数目已改变的代码1。
以前的有效数字的最大数目的3,并且当前的有效数字的最大数目是4。如图46的右侧部分中所示,熵编码器323输出指示有效数字的最大数目已经改变的代码0。
熵编码器323输出指示有效数字的最大数目增加或减少了多少的代码。在该情况下,有效数字的最大数目的变化量是1(=4-3),熵编码器323输出0(=1-1),并且然后1(即,代码1)。
然后,熵编码器323输出通过布置指示各个当前编码的4(w)个量化系数“+1101,”、“-0100,”、“+0111”和”-1010”的绝对值的有效数字的最大数目的代码“1101”、“0100”、“0111”和”1010”获得的“1101010001111010”。
当输出指示量化系数的绝对值的代码时,熵编码器323输出指示非0量化系数的符号的代码。
当前编码的量化系数是“+1101,”、“-0100,”、“+0111”和”-1010”,并且量化系数按其顺序是正、负和正和负。如图46的右下部分中所示,熵编码器323输出指示量化系数的符号的代码“0101”。
熵编码器323一次按预定的连续数目(w)输出输入的量化系数。熵编码器323输出指示一行的量化系数是否全部是0的代码。当输出指示量化系数不全为0的代码时,熵编码器323输出指示w个量化系数的效数字的最大数目的代码、指示w个量化系数的绝对值(以位平面表示)的代码和指示量化系数的符号的代码。
然后输出指示下面w个量化系数的效数字的最大数目的代码、指示下面w个量化系数的绝对值的代码和指示下面的量化系数的符号的代码。输出下面的量化系数的这些代码,直到该行的所有量化系数被编码为止。
在上面的讨论中以栅格扫描的顺序对量化系数编码。然而,量化系数的编码顺序不限于栅格扫描顺序。例如,当对图45的子带的量化系数编码时,首先对位置(0,0)、(0,1)、(0,2)和(0,3)(行L1到L4的最左边的位置)处的量化系数编码,并且然后对位置(1,0)、(1,1)、(1,2)和(1,3)处的量化系数编码。换言之,可以一次按w个量化系数对垂直对齐位置的量化系数编码。
执行上述处理的图28的熵编码器323具有图47中所示的详细结构。
熵编码器323包括行确定器361、VCL(变长编码)编码器362、有效数字的最大数目计算器3633、VCL编码器364、有效数字提取器365、VCL编码器366、符号提取器367、VCL编码器368和代码多路复用器369。
将从量化器322(图44)输出的量化系数提供(输入)给行确定器361、有效数字的最大数目计算器3633、有效数字提取器365和符号提取器367中的每一个。
行确定器361确定从量化器322输入的一行的量化系数是否全部是0,并且将与确定结果有关的信息提供给VLC编码器362。
响应指示来自行确定器361的确定结果的信息,VLC编码器362向代码多路复用器369输出指示将要编码的行的量化系数是否全部是0的代码。
有效数字的最大数目计算器3633计算连续的w个量化系数的有效数字的最大数目,并且将指示计算结果的信息提供给VCL编码器364和有效数字提取器365中的每一个。
响应指示来自有效数字的最大数目计算器3633的计算结果的信息,VCL编码器364向代码多路复用器369提供指示w个量化系数的有效数字的最大数目的代码。
响应指示来自有效数字的最大数目计算器3633的计算结果的信息,有效数字提取器365提取从量化器322提供的w个量化系数的有效数字,并且将提取的量化系数的的有效数字(数据)提供给VCL编码器366和符号提取器367中的每一个。
响应来自有效数字提取器365的量化系数的有效数字,VCL编码器366对这些量化系数的绝对值编码,并且然后将指示获得的量化系数的绝对值的代码提供给代码多路复用器369。
响应来自有效数字提取器365的量化系数的有效数字,符号提取器367提取从量化器322提供的量化系数的符号,并且将提取的符号(数据)提供给VCL编码器368。
VCL编码器368对来自符号提取器367的符号(数据)编码,并且将指示量化系数的这样获得的符号的代码提供给代码多路复用器369。
代码多路复用器369多路复用分别提供给VLC编码器362、VCL编码器364、VCL编码器366和VCL编码器368的指示该行的量化系数是否全部是0的代码、指示有效数字的最大数目的代码、指示量化系数的绝对值的代码和指示量化系数的符号的代码,并且作为编码图像(数据)输出多路复用的数据。
下面参考图48的流程图描述帧内编码器311(图41)的编码处理。当小波变换器321收到编码图像(数据)时,编码处理开始。
在步骤S311中,小波变换器321对输入图像进行小波变换,从而将输入图像分解为子带。小波变换器321将各个子带的小波系数提供给量化器322。
在步骤S312中,量化器322量化从小波变换器321提供的小波系数,并且将得到的量化系数提供给熵编码器323。熵编码器323从而接收参考图46讨论的以位平面表示的子带的各个位置处的量化系数。
在步骤S313中,熵编码器323执行熵编码处理。从而编码处理结束。稍后将详细描述熵编码处理。在参考图46描述的熵编码处理中,熵编码器323一次按预定数目(w)对从量化器322提供的量化系数编码,并且作为编码图像(数据)输出指示将要编码的行的量化系数是否全部是0的代码、指示量化系数的有效数字的最大数目的代码、指示量化系数的绝对值的代码和指示量化系数的符号的代码。
帧内编码器311对输入图像编码,并且输出编码图像。
下面参考图49的流程图描述相应于图48的步骤S313的熵编码处理。
将在图48的步骤S312中从量化器322输出的量化系数提供(输入)给熵编码器323(图47)内的行确定器361、有效数字的最大数目计算器3633、有效数字提取器365和符号提取器367中的每一个。
在步骤S341中,行确定器361将指示将要编码的子带的行的变量y设置为y=0,并且存储y=0。
当对图45的子带的量化系数编码时,行确定器361将指示子带的行(行L1到L6)中的每一个的变量y设置为y=0。由变量y指示的行y指示以y作为子带内的行上的每个位置(x,y)的y坐标的行。例如,如果存储在行确定器361上的变量y是y=0,由该变量指示的行是行L1,其中该行上的每个位置处的y坐标是0。
在步骤S342中,有效数字的最大数目计算器3633将变量Binit设置为Binit=0,并且存储该设置。变量Binit指示由存储在行确定器361上的变量y指示的行之前一行的行(y-1)上的第一次输入的w个量化系数的有效数字的最大数目。
例如,如果行(y-1)是图45的行L1,指示行(y-1)上的第一次输入的w个量化系数的有效数字的最大数目的变量Binit是从行L1的最左端部分起的w个量化系数,即,位置(0,0)、(1,0)、...、(w,0)处的w个量化系数的有效数字的最大数目。如果存储在行确定器361上的变量y是y=0,行(y-1)不存在,并且变量Binit的值是Binit=0。
在步骤S343中,行确定器361确定由变量y指示的行y上的量化系数(其绝对值)是否全部是0。如果由变量y指示的行是图45的L1,如果行L1上的位置(x,y)处的量化系数全部是0,行确定器361确定量化系数全部是0。
如果在步骤S343中确定量化系数全部是0,行确定器361产生指示量化系数全部是0的信息,将产生的信息提供给VLC编码器362和有效数字的最大数目计算器3633中的每一个,并且然后进入步骤S344。
响应来自行确定器361的指示量化系数全部是0的信息,VLC编码器362在步骤S344中向代码多路复用器369输出(提供)指示将要编码的行上的量化系数全部是0的代码0。代码多路复用器369输出从VLC编码器362提供的代码0作为对行y上的量化系数进行编码的结果而获得的代码。
响应指示从行确定器361提供的量化系数全部是0的信息,在步骤S345中有效数字的最大数目计算器3633更新存储的变量Binit的值。
在步骤S346中,行确定器361确定将要编码的子带的行中是否包含未处理的行。更具体地,行确定器361确定是否已对将要编码的子带的所有行上的量化系数进行了编码。例如,图45的子带的量化系数现在未被编码。当行L1到L6上的所有位置上的量化系数都被编码时,行确定器361确定不存在未处理的行。
如果在步骤S346中确定存在未处理的行,行确定器361进入步骤S347,以便对行(y-1)上的每个位置上的量化系数编码。
在步骤S347中,行确定器361将指示存储行的变量y增加1到y=y+1,并且返回步骤S343,以便执行步骤S343和后续步骤。
如果在步骤S346中确定不存在未处理的行,已对构成该子带的所有行上的量化系数编码。行确定器361结束熵编码处理。处理返回图48的步骤S313,并且结束编码处理。
如果在图49的步骤S343中确定行y上的量化系数不全为0(存在非0的量化系数),行确定器361产生指示量化系数不全为0(存在非0的量化系数)的信息,将产生的信息提供给VLC编码器362和有效数字的最大数目计算器3633中的每一个,并且进入步骤S348。
响应来自行确定器361的指示量化系数不全为0的信息,VLC编码器362在步骤S348中向代码多路复用器369输出(提供)指示将要编码的行上的量化系数不全为0的代码1。
响应来自行确定器361的指示量化系数不全为0的信息,在步骤S349中有效数字的最大数目计算器3633将变量x设置为x=0,并且存储变量x=0。变量x表示将要编码的w个量化系数中的相应于第一次输入的量化系数的行y上的x坐标。
如果y是图45的行L1,存储在有效数字的最大数目计算器3633上的变量x指示连续布置在将要编码的行L1上的w个位置(x,0)、(x+1,0)、...、(x+w-1,0)中的最左端位置(x,0)的x坐标。
在步骤S349中,有效数字的最大数目计算器3633将变量B设置为B=Binit,并且存储变量B=Binit。变量B指示以前编码的w个量化系数的有效数字的最大数目。更具体地,有效数字的最大数目计算器3633将变量B更新为Binit,并且存储更新的变量B=Binit。
在更新变量B之后,有效数字的最大数目计算器3633将指示更新的变量B(有效数字的最大数目)的信息提供给VCL编码器364和有效数字提取器365中的每一个。VCL编码器364和有效数字提取器365中的每一个存储从有效数字的最大数目计算器3633提供的变量B的值。
在步骤S350中,熵编码器323对一组w个量化系数编码。稍后将详细描述w个量化系数的组的熵编码处理。在w个量化系数的组的熵编码处理中,熵编码器323对连续布置在由存储在行确定器361上的变量y指示的行y上的w个量化系数编码。
设(x,y)表示由存储在行确定器361上的变量y指示的行y和存储在有效数字的最大数目计算器3633上的变量x上的位置。行y上的W个连续的位置是(x,y)、(x+1,y)、...、(x+w-1,y)。更具体地,在w个量化系数的组的熵编码处理中,熵编码器323对位置(x,y)、(x+1,y)、...、(x+w-1,y)处的量化系数编码。
在步骤S351中,有效数字的最大数目计算器3633确定行y上是否有未处理的量化系数。更具体地,有效数字的最大数目计算器3633确定是否对由存储在行确定器361上的变量y指示的行y上的所有量化系数进行了编码。
如果在步骤S351中确定,行y上有未处理的量化系数,有效数字的最大数目计算器3633进入步骤S352,以便对下面w个量化系数编码。
在步骤S352中,有效数字的最大数目计算器3633将存储的变量x设置为x=x+w,并且返回步骤S350。在步骤S350中,对行y上位置(x+w,y)、(x+w+1,y)、...、(x+2w-1,y)处的量化系数编码。
如果在步骤S351中确定行y上没有未处理的量化系数,对行y上的位置上的所有量化系数进行了编码。有效数字的最大数目计算器3633返回步骤S346,以便重复步骤S346和后续步骤。
熵编码器323以光栅扫描顺序一次以预定的数目对子带的预定位置处的量化系数编码。
以光栅扫描顺序一次以预定的数目对子带内的位置处的量化系数编码。从而以输入顺序处理量化系数,并且减少了量化系数的编码所涉及的延迟。
下面参考图50的流程图描述相应于图49的步骤S350的w个量化系数的组的熵编码处理。
在步骤S381中,有效数字的最大数目计算器3633将变量Bnew设置为将要编码的w个量化系数的有效数字的最大数目,并且存储变量Bnew。有效数字的最大数目是w个连续位置(x,y)、(x+1,y)、...、(x+w-1,y)处的量化系数中具有最大绝对值的量化系数的有效数字的数目。
有效数字的最大数目计算器3633将确定的w个量化系数的有效数字的最大数目,即,变量Bnew的值提供给VCL编码器364和有效数字提取器365中的每一个。
如果w个连续位置处的量化系数分别是图46的量化系数“-0101,”、“+0011,”、“-0110”和“0010”,具有最大绝对值的量化系数是“-0110”,并且量化系数“-0110”的最高位位置处的“1”是“3”。从而变量Bnew是3。
在步骤S382中,VCL编码器364确定B是否是Bnew。更具体地,VCL编码器364确定指示以前编码并存储的w个量化系数的有效数字的最大数目的变量B是否等于指示从有效数字的最大数目计算器3633提供并且将要编码的w个量化系数的有效数字的最大数目的变量Bnew。如果在步骤S382中确定不是Bnew,VCL编码器364进入步骤S383。VCL编码器364向代码多路复用器369输出指示有效数字的最大数目为改变的代码0作为指示将要编码的w个量化系数的有效数字的最大数目的代码。在输出指示有效数字的最大数目的代码0之后,VCL编码器364跳过步骤S284到S388进入步骤S389。
相反,如果在步骤S382中确定B不是Bnew,VCL编码器364进入步骤S384(因为有效数字的最大数目未改变),并且向代码多路复用器369输出指示有效数字的最大数目已改变的代码1。
在步骤S385中,VCL编码器364确定满足下面的等式(14)的整数n和m。
Bnew=B+(n+1)×(-1)^m ...(14)
符号“^”表示幂,并且(-1)^m意味着对(-1)取m次幂。
如果Bnew=3并且B=0,满足等式(14)的n和m是n=2和m=
3。在变量Bnew和变量B的比较中,变量Bnew的绝对值和变量B的绝对值间的差越大,在等式(14)中n的值变得越大。从而认为n的值表示有效数字的最大数目的变化。当变量Bnew的值大于变量B的值时,m的值成为0。相反地,如果变量Bnew的值小于变量B的值,m的值变为1。等式(14)的值指示有效数字的最大数目增加了还是减小了。
在步骤S384中,VCL编码器364向代码多路复用器369输出满足等式(14)的一位代码m作为指示有效数字的最大数目增加了还是减小的代码。如果满足等式(14)的m的值是0,VCL编码器364输出指示有效数字的最大数目增加了的代码0。
在步骤S387中,VCL编码器364在满足等式(14)的n个0之后向代码多路复用器369输出单个1作为指示有效数字的最大数目的变化量的代码。更具体地,VCL编码器364输出n个0和单个1作为指示变化量的代码。
如果满足等式(14)的n的值是2,VCL编码器364向代码多路复用器369输出“001”作为指示有效数字的最大数目的变化量的代码。
如同指示将要编码的w个量化系数的有效数字的最大数目的代码,VCL编码器364向代码多路复用器369输出指示有效数字的最大数目已经改变的代码、有效数字的最大数目增加了还是减小了的代码、以及指示有效数字的最大数目的变化量的代码。
在步骤S388中,有效数字的最大数目计算器3633将存储的变量B的值设置为Bnew,并且处理进入步骤S389。更具体地,有效数字的最大数目计算器3633将存储的变量B更新为变量Bnew。VCL编码器364和有效数字提取器365也将变量B更新为B=Bnew。
如果在步骤S388中将变量B设置为B=Bnew,或如果在步骤S383中输出指示量化系数的有效数字的最大数目的代码,有效数字的最大数目计算器3633在步骤S389中将存储的变量Binit设置为Binit=B,同时存储的变量x为0。
更具体地,如果存储的变量x是0,有效数字的最大数目计算器3633将指示第一次输入的行(y-1)上的w个量化系数的有效数字的最大数目的变量Binit的值更新为指示以前编码的w个量化系数的有效数字的最大数目的变量B。
如果变量x=0,以这种方式将变量Binit设置为Binit=B。使用从x=0开始的下一行(例如行(y+1))的w个量化系数和从x=0开始的之前行(例如行y)上的w个量化系数的有效数字的最大数目间的相关性,执行量化系数的熵编码。
在步骤S390中,有效数字提取器365将预定的变量I从0改变为(w-1),并且提取从量化器322提供的从行y上的位置(x+i,y)的量化系数起的量化系数的有效数字。有效数字提取器365将提取的量化系数的有效数字(数据)提供给VCL编码器366和符号提取器367中的每一个。响应从有效数字提取器365提供的有效数字(并且通过对有效数字编码),VCL编码器366向代码多路复用器369输出指示w个量化系数的绝对值的代码。
位置(x+i,y)处的值是存储在有效数字的最大数目计算器3633上的变量x的值。如果存储在有效数字的最大数目计算器3633上的变量x是0,如果存储在有效数字提取器365上的变量B的值是3,并且如果有效数字提取器365从量化器322收到图46的位置(x+i,y)处(0≤i≤3),即,位置(0,y)、(1,y)、(2,y)和(3,y)的4(w)个量化系数“-0101,”、“+0011,”“-0110”和“+0010”,有效数字提取器365从这些量化系数中提取有效数字。
在该情况下,存储在有效数字提取器365上的变量B是3,并且有效数字的数目为3。从相应于位置(x,y)的量化系数“-0101”中提取从最低有效位起的3个有效数字“101”。
类似地,有效数字提取器365 从位置(x+1,y)、(x+2,y)和(x+3,y)处的量化系数“+0011,”“-0110”和“+0010”连续地提取从最低有效位起的个有效数字值,即,“011”、“110”和“010”。有效数字提取器365向VCL编码器366和符号提取器367中的每一个输出量化系数“-0101,”、“+0011,”“-0110”和“+0010”的有效数字“101”、“011”、“110”和“010”(的代码)。VCL编码器366对从有效数字提取器365提供的代码“101”、“011”、“110”和“010”编码,并且然后向代码多路复用器369输出指示w(4)个量化系数的绝对值的代码“101011110010”。
在步骤S391中,将预定的变量I从0改变为(w-1),符号提取器367提取从量化器322提供的具有非0绝对值的行y上的位置(x+I,y)处的量化系数的符号。符号提取器367将提取的符号(的数据)提供给VCL编码器368。VCL编码器368对来自符号提取器367的符号编码,并且向代码多路复用器369输出指示量化系数的符号的得到的代码。
在从VCL编码器368收到指示量化系数的符号的代码后,代码多路复用器369多路复用分别从VLC编码器362、VCL编码器364、VCL编码器366和VCL编码器368提供的指示该行的所有量化系数是否为0的代码、指示量化系数的有效数字的最大数目的代码、指示量化系数的绝对值的代码和指示量化系数的符号的代码,并且作为编码图像输出多路复用的代码。代码多路复用器369结束w个量化系数的编码处理,并且返回图49的步骤S350,以便执行步骤S351和后续步骤。
位置(x+i,y)处的x的值是存储在有效数字的最大数目计算器3633上的变量x的值。如果存储在有效数字的最大数目计算器3633上的变量x是0,并且如果符号提取器367从量化器322收到图46的位置(x+i,y)处(0≤i≤3),即,位置(0,y)、(1,y)、(2,y)和(3,y)的4(w)个量化系数“-0101,”、“+0011,”“-0110”和“+0010”,符号提取器367从这些量化系数中提取符号。
符号提取器367 从位置(x,y)处的量化系数“-0101”提取符号“-”。
类似地,符号提取器367分别从位置(x+1,y)、(x+2,y)和(x+3,y)处的量化系数“+0011,”“-0110”和“+0010”提取符号“+”、“-”和“+”。符号提取器367向VCL编码器368输出量化系数“-0101,”、“+0011,”“-0110”和“+0010”的符号“-”、“+”、“-”和“+”。VCL编码器368对从符号提取器367提供的量化系数的符号“-”、“+”、“-”和“+”编码。
例如,VCL编码器368响应符号“-”的输入输出代码1,并且响应符号“+”的输入输出代码0,从而对输入符号编码。在收到量化系数的符号“-”、“+”、“-”和“+”之后,VCL编码器368向代码多路复用器369输出指示量化系数的符号的代码”1010”。代码1010包含代码“1”、“0”、“1”和“0”。
熵编码器323一次以预定数目对子带的量化系数编码,并且输出指示量化系数的有效数字的最大数目的代码、指示量化系数的绝对值的代码和指示量化系数的符号的代码。
与根据JPEG2000标准的图像编码不同,一次以预定数目对子带的量化系数编码不必基于多个编码路径在每个位平面上执行多个处理。由于执行变长编码,相当大地减小了编码处理的量。这种布置允许高速对图像编码。从而提供了对基于实时的高清晰度图像编码的低成本编码装置。
由于帧内编码器311在对图像编码的过程中不用以不同的方式对代码的长度编码,减少了代码量,并且不需要对关于代码的长度的信息的管理。
在上面的讨论中,w个量化系数中的具有最大绝对值的量化系数的有效数字的数目是表示有效数字的最大数目的变量Bnew。变量Bnew的值可以仅是大于w个量化系数中具有最大绝对值的量化系数的有效数字的数目。如果变量Bnew大,则表示量化系数的绝对值的代码量增加。通过将变量Bnew设置为等于或大于具有最大绝对值的量化系数的有效数字的数目的值,减少了指示量化系数的有效数字的最大数目的代码量。
下面描述对由帧内编码器311编码的图像进行解码的帧内解码处理。
图51是示出了帧内解码器的结构的方框图。
帧内解码器411包括熵解码器421、去量化器422和逆小波变换器423。熵解码器421接收编码图像(数据)。
熵解码器421对作为输入编码图像的代码进行熵解码,并且将作为解码结果获得的逆量化系数提供给去量化器422。
去量化器422对从熵解码器421提供的去量化系数进行去量化,并且向逆小波变换器423提供作为去量化的结果获得的各个子带的小波系数。
逆小波变换器423对从去量化器422提供的每个子带的小波系数进行逆小波变换,并且输出得到的图像作为解码图像。
图52示出了执行上述处理的帧内解码器411内的熵解码器421的详细结构。
熵解码器421包括代码多路分解器451、行确定器452、产生器453、VLC解码器454、VLC解码器455、VLC解码器456、量化系数合成器457和开关458。
响应从行确定器452、VLC解码器454、VLC解码器455和VLC解码器456提供的信息,代码多路分解器451多路分解作为编码图像输入的代码,并且然后将多路分解并且具有预定长度的代码提供给行确定器452、VLC解码器454、VLC解码器455和VLC解码器456。
更具体地,代码多路分解器451将输入代码多路分解为指示编码的一行的所有量化系数是否全部是0的代码、指示编码的w个量化系数的有效数字的最大数目的代码、指示编码的w个量化系数的绝对值的代码和指示编码的量化系数的符号的代码,并且然后将这些代码提供给行确定器452、VLC解码器454、VLC解码器455和VLC解码器456。
响应从代码多路分解器451提供的代码,行确定器452确定编码的子带的一行的所有量化系数是否全部是0,并且将指示确定结果的信息提供给代码多路分解器451、产生器453和VLC解码器454中的每一个。
响应指示来自行确定器452的确定结果的信息,产生器453产生指示量化系数的代码,即,一个0,并且将该代码提供给开关458。
VLC解码器454对指示编码并且从代码多路分解器451提供的w个量化系数的有效数字的最大数目的代码解码,从而确定w个量化系数的有效数字的最大数目。VLC解码器454将指示确定的有效数字的最大数目的信息提供给代码多路分解器451、VLC解码器455和量化系数合成器457中的每一个。
响应来自VLC解码器454的指示有效数字的最大数目的信息,VLC解码器455对指示从代码多路分解器451提供的量化系数的绝对值的代码解码,并且将得到的w个量化系数的有效数字(的数据)提供给VLC解码器456和量化系数合成器457中的每一个。VLC解码器455将指示量化系数的绝对值的代码的解码结果的信息提供给代码多路分解器451。
响应从VLC解码器455提供的量化系数的有效数字的数目,VLC解码器456对指示从代码多路分解器451提供的量化系数的符号的代码解码,并且将量化系数的符号(的数据)提供给量化系数合成器457。VLC解码器456将关于指示量化系数的符号的解码结果的信息提供给代码多路分解器451。
响应来自VLC解码器454的指示有效数字的最大数目的信息,量化系数合成器457合成从VLC解码器455提供的有效数字的数目和从VLC解码器456提供的量化系数的符号,并且将得到的w个量化系数提供给开关458。
开关458输出来自产生器453和量化系数合成器457之一的量化系数。
图53是示出了代码多路分解器451的结构的方框图。
代码多路分解器451包括控制器471和存储器472。在收到作为编码图像的代码后,控制器471将该代码提供给存储器472以便临时存储。
响应从图52中所示的行确定器452、VLC解码器454、VLC解码器455和VLC解码器456提供的各部分信息,控制器471从临时存储在存储器472上的代码中读出预定长度的代码,并且将读取的代码提供给行确定器452、VLC解码器454、VLC解码器455和VLC解码器456中的每一个。
取代图53的结构,代码多路分解器451可以具有图54的结构。
图54的代码多路分解器451包括控制器491、开关492和节点493-1到493-4。
在收到作为编码图像的代码后,控制器491响应从图52中所示的行确定器452、VLC解码器454、VLC解码器455和VLC解码器456提供的各部分信息控制开关492。从而将从输入代码中读出的预定长度的代码提供给行确定器452、VLC解码器454、VLC解码器455和VLC解码器456之一。
节点493-1到493-4分别连接行确定器452、VLC解码器454、VLC解码器455和VLC解码器456。控制器491选择节点493-1到493-4之一,从而将开关492连接到所选择的节点。
由于开关492在控制器491的控制下将其输入连接到所选择的节点,通过开关492和连接到开关492的节点将输入代码多路分解器451的代码提供给作为编码的目的地的行确定器452、VLC解码器454、VLC解码器455和VLC解码器456之一。
下面参考图55的流程图描述帧内解码器411的解码处理。当作为编码图像的代码输入熵解码器421时,解码处理开始。
在步骤S431中,熵解码器421执行熵解码处理,从而对作为编码图像的代码解码。将得到的量化系数提供给去量化器422。稍后将详细描述熵解码处理。在熵解码处理中,熵解码器421一次以w个系数对连续布置在编码子带的一行上的量化系数解码,并且将解码的量化系数提供给去量化器422。
在步骤S432中,去量化器422对从熵解码器421提供的量化系数去量化,并且将作为去量化的结果获得的子带的小波系数提供给逆小波变换器423。
在步骤S433中,逆小波变换器423对从去量化器422提供的每个子带的小波系数进行逆小波变换,并且输出得到的图像。从而解码处理结束。
从而帧内解码器411解码编码图像,并且输出得到的图像。
下面参考图56的流程图描述相应于图55的步骤S431的熵解码处理。
在步骤S461中,行确定器452将指示将要解码的子带的行的变量y设置为y=0,并且存储变量y=0。
在步骤S462中,VLC解码器454将变量Binit设置为Binit = 0,并且存储变量Binit=0。变量Binit指示由存储在行确定器452上的变量y指示的行y前一行的行(y-1)上的第一次输入的w个量化系数的有效数字的最大数目。
如果行(y-1)是图45的行L1,指示行(y-1)上的第一次输入的w个量化系数的有效数字的最大数目的变量Binit是从行L1的最左端部分起的w个量化系数的有效数字的最大数目。如果存储在行确定器452上的变量y是y=0,行(y-1)不存在,并且变量Binit的值是Binit=0。
在步骤S462中,代码多路分解器451将来自输入代码的第一个一位代码作为指示将要解码的行上的所有量化系数是否都是0的代码提供给行确定器452。
在步骤S463中,行确定器452确定从代码多路分解器451读取(提供)的一位代码是否是0,产生关于确定结果的信息,并且将产生的信息提供给产生器453、VLC解码器454和代码多路分解器451中的每一个。
如果在步骤S463中确定代码是0,行y上的所有量化系数都是0,行确定器452进入步骤S464。在步骤S464中,产生器453基于关于来自行确定器452的确定结果的信息,将所有量化系数设置为0。产生器453产生指示行y上的量化系数的代码,并且将产生的代码提供给开关458。
如果以4位数字表示一个量化系数,并且如图46中所示一行上的量化系数的数目为5,产生器453产生20(=4×5)个0作为指示行y上的量化系数的代码,并且将产生的代码提供给开关458。开关458向去量化器422输出从产生器453提供的20个0作为指示一行上的量化系数的代码。
在步骤S465中,VLC解码器454响应关于来自行确定器452的确定结果的信息,将存储的变量Binit更新为Binit=0。
在步骤S466中,行确定器452确定将要解码的子带上的行内是否有未处理的行。更具体地,行确定器452确定对将要解码的子带的所有行上的位置处的量化系数解码。
如果在步骤S466中确定包含未处理的行,行确定器452进入步骤步骤S467,以便对由存储在行确定器452上的变量y指示的行y之后的行(y+1)上的位置处的量化系数解码。
在步骤S467中,行确定器452将指示存储的行的变量y增加到y=y+1,并且返回步骤S463,以便重复步骤S463和后续步骤。
如果在步骤S466中确定不包含未处理的行,已经对构成子带的所有行上的量化系数解码。行确定器452结束解码处理。处理返回图55的步骤S431,以便执行步骤S432和后续步骤。
如果在图56的步骤S463中确定代码不是0,行确定器452进入步骤S468。在步骤S468中,VLC解码器454基于指示来自行确定器452的确定结果的信息将变量x设置为x=0,并且存储变量x=0。变量x指示将要编码的w个量化系数中的相应于第一次输入的量化系数的行y上的每个位置的x坐标。
在步骤S468中,VLC解码器454将指示以前解码的w个量化系数的有效数字的最大数目的变量B设置为B=Binit,并且存储变量B=Binit。更具体地,VLC解码器454将存储的变量B更新为变量Binit,并且存储更新的变量B的值。
在步骤S468中,基于指示来自行确定器452的确定结果的信息,代码多路分解器451在输入代码之后向VLC解码器454提供一位代码作为指示是否将要解码w个量化系数的有效数字的最大数目的代码。
在步骤S469中,熵解码器421对w个量化系数的组执行解码处理。稍后将更详细地描述对w个量化系数的组的解码处理。在w个量化系数的组的解码处理中,熵解码器421对由存储在行确定器452上的变量y指示的行y上的w个连续位置处的量化系数解码。
在步骤S470中,VLC解码器454确定行y上是否有未处理的量化系数。更具体地,VLC解码器454确定由变量y指示的行y上的所有量化系数是否都存储在行确定器452中。
如果在步骤S470中确定行y上有未处理的量化系数,则对下面w个量化系数解码。VLC解码器454进入步骤S471。
在步骤S471中,将存储的变量x设置为x=x+w,VLC解码器454返回步骤S469。在步骤S469中,对行y上的位置(x+w,y)、(x+w+1,y)、...、(x+2w-1,y)处的量化系数解码。
如果在步骤S470中确定行y上没有未处理的量化系数,对行y上的所有位置处的量化系数进行了解码。VLC解码器454返回步骤S466以便重复步骤S466和后续步骤。
熵解码器421以光栅扫描顺序一次以预定数目对子带的位置处的量化系数解码。
通过以光栅扫描顺序一次以预定数目对子带的位置处的量化系数解码,按输入顺序处理编码的量化系数。这种布置减少了对量化系数解码中所涉及的延迟。
下面参考图57的流程图描述相应于图56的步骤S469的对w个量化系数的组进行的解码处理。
如前所述,VLC解码器454在图56的步骤S468中从代码多路分解器451接收指示将要解码的w个量化系数的有效数字的最大数目是否改变的一位代码。
在图57的步骤S511中,VLC解码器454确定读取的一位代码是否为0。
如果在步骤S511中确定读取的代码是0,有效数字的最大数目未改变。VLC解码器454产生指示有效数字的最大数目未改变的信息,并且将产生的信息提供给代码多路分解器451、VLC解码器455和量化系数合成器457中的每一个。跳过步骤S512到S514,处理进入步骤S515。
如果指示有效数字的最大数目是否改变的代码是0,在指示有效数字的最大数目是否改变的一位代码0后跟着如参考图46所述的指示量化系数的绝对值的代码,而不是指示有效数字的最大数目增加还是减小的代码,和指示有效数字的最大数目的变化量的代码。出于这个原因,跳过用于解码指示有效数字的最大数目增加还是减小的代码,以及指示有效数字的最大数目的变化量的代码的步骤S512到S514。
如果在步骤S511中确定读取的一位代码不是0,有效数字的最大数目已经改变。VLC解码器454进入步骤S512,并且从代码多路分解器451读取一位代码,并且将该代码的值存储为预定的变量m。
在步骤S513中,VLC解码器454读取代码直到编码成为1为止(直到读到代码1为止),并且将之前读取的0的数目存储为预定变量n。例如,如果VLC解码器454从代码多路分解器451读取的第三个代码是1,换言之,VLC解码器454读取了代码“001”,VLC解码器454读取代码1之前读取的0的数目是2。VLC解码器454将读取的0的数目,即,2,存储为变量n的值。
在步骤S514中,VLC解码器454从下面的等式(15)确定指示有效数字的最大数目的变量B,并且存储确定的变量B的值。
B=B+(n+1)×(-1)^m ...(15)
等式(15)左侧表示新确定的变量B的值,并且等式(15)的右侧表示存储的变量B的值。符号“^”表示幂,并且从而(-1)^m意味着对(-1)取m次幂。
根据存储的变量B、变量m和变量n,VLC解码器454更新根据等式(15)计算的变量B,并且然后对其进行存储。在更新指示有效数字的最大数目的变量B之后,VLC解码器454产生指示更新的有效数字的最大数目的信息。然后VLC解码器454将产生的信息提供给代码多路分解器451、VLC解码器455和量化系数合成器457中的每一个。
如果在步骤S514中确定新的有效数字的最大数目,或如果在步骤S511中确定读取的一位代码是0,VLC解码器454进入步骤S515。如果存储的变量x的值是0,将存储的变量Binit的值设置为Binit=B。
如果存储的变量x的值是0,VLC解码器454将变量Binit更新为变量B的值。变量Binit指示存储的行(y-1)上第一次输入的w个量化系数的有效数字的最大数目,并且变量B指示将要编码的w个量化系数的有效数字的最大数目。
如果变量x=0,以这种方式将变量Binit设置为Binit=B。使用从x=0开始的下一行(例如,行(y+1))的w个量化系数和从x=0开始的之前行(例如,行y)上的w个量化系数的有效数字的最大数目间的相关性,执行量化系数的熵解码。
在步骤S516中,VLC解码器455将预定变量i从0改变为(w-1),从代码多路分解器451读取B位代码。VLC解码器455将读取的B位代码作为指示行y上的位置(x,y)处的量化系数的有效数字的代码提供(输出)给VLC解码器456和量化系数合成器457中的每一个。VLC解码器455产生指示量化系数的有效数字的信息,并且将产生的信息提供给代码多路分解器451。
位置(x+i,y)的x的值是存储在VLC解码器454上的变量x的值。如果存储在VLC解码器454上的变量x是0,并且如果存储在VLC解码器455上的变量B的值是3,VLC解码器455以变量i=1从代码多路分解器451读取3位代码,并且然后将该3位代码作为位置(0,y)处的量化系数的有效数字输出。
VLC解码器455以变量i=1从代码多路分解器451读取另外的3位代码,并且将该代码作为位置(1,y)处的量化系数的有效数字输出。VLC解码器455以变量i=2从代码多路分解器451读取另外的3位代码,并且将该代码作为位置(2,y)处的量化系数的有效数字输出。另外,VLC解码器455以变量i=3从代码多路分解器451读取另外的3位代码,并且将该代码作为位置(3,y)处的量化系数的有效数字输出。
在步骤S517中,如果变量i从0改变为(w-1),行y上的位置(x+i,y)处的量化系数的有效数字(绝对值),VLC解码器456从代码多路分解器451读取1位代码。VLC解码器456对读取的代码解码,并且将得到的代码作为量化系数的符号提供(输出)给量化系数合成器457。VLC解码器456产生指示量化系数的符号的信息,并且将产生的信息提供给代码多路分解器451。
位置(x+i,y)的x的值是存储在VLC解码器454上的变量x的值。如果存储在VLC解码器454上的变量x是0,并且如果VLC解码器456从VLC解码器455收到非0的有效数字(指示非0的有效数字的代码),VLC解码器456以变量i=0从代码多路分解器451读取1位代码。如果代码是0,VLC解码器456将指示位置(0,y)处的量化系数的符号“-”的代码提供给量化系数合成器457。如果读取的代码是1,VLC解码器456将指示位置(0,y)处的量化系数的符号“+”的代码提供给量化系数合成器457。
如果从VLC解码器455提供的有效数字(指示有效数字的代码)的绝对值是0,没有位置(0,y)处的量化系数的符号。VLC解码器456不从代码多路分解器451读取代码。
类似地,如果从VLC解码器455提供的有效数字(指示有效数字的代码)的绝对值不是0,VLC解码器456以变量i=1从代码多路分解器451读取1位代码。如果读取的代码为0,VLC解码器456将指示符号“-”的代码提供给量化系数合成器457。如果读取的代码为1,VLC解码器456将指示符号“+”的代码提供给量化系数合成器457。
如果从VLC解码器455提供的下面的有效数字非0,VLC解码器456以变量i=2从代码多路分解器451读取1位代码。如果读取的代码为0,VLC解码器456将指示符号“-”的代码提供给量化系数合成器457。如果读取的代码为1,VLC解码器456将指示符号“+”的代码提供给量化系数合成器457。如果从VLC解码器455提供的下面的有效数字非0,VLC解码器456以变量i=3从代码多路分解器451读取1位代码。如果读取的代码为0,VLC解码器456将指示符号“-”的代码提供给量化系数合成器457。如果读取的代码为1,VLC解码器456将指示符号“+”的代码提供给量化系数合成器457。
在步骤S518中,量化系数合成器457合成从VLC解码器455提供的有效数字、从VLC解码器455提供的符号,并且通过开关458将得到的量化系数提供给去量化器422。从而完成w个量化系数的组的解码处理。处理返回图56的步骤S469,以便执行步骤S470和后续步骤。
预先设置将要输出的量化系数的绝对值的有效数字的数目。如果将要输出的量化系数的绝对值的有效数字的数目是4,并且如果由来自VLC解码器454的信息指示的有效数字的最大数目是3,VLC解码器455可以提供有效数字“101”和指示符号“-”的代码。量化系数合成器457输出“-0101”。
量化系数的绝对值的有效数字的数目是4,并且有效数字是“101”(3位)。量化系数合成器457在有效数字“101”的最高位上增加顶部位0,以便形成量化系数的4位绝对值,即“0101”。量化系数合成器457输出“-0101”作为合成量化系数的符号“-”和量化系数“0101”的绝对值得到的量化系数。
如果从VLC解码器455提供的有效数字是0,量化系数合成器457输出没有符号的量化系数。例如,将要输出的量化系数的数字的数目可以是4,并且由来自VLC解码器454的信息指示的有效数字的最大数目是3。当从VLC解码器455提供有效数字“000”时,量化系数合成器457输出量化系数“0000”。
熵解码器421一次以预定数目对编码的子带的量化系数解码。
与根据JPEG2000标准的图像解码不同,一次以预定数目对子带的量化系数解码不必基于多个编码路径在每个位平面上执行多个处理。由于执行变长编码,相当大地减小了解码处理的量。这种布置允许高速对图像解码。从而提供了对基于实时的高清晰度图像解码的低成本解码装置。
当对量化系数的绝对值编码(解码)时,上述的帧内编码器311(或帧内解码器411)对预定的w个量化系数的绝对值编码。可以使用通用DSP(数字信号处理器)或通用CPU中通常使用的SIMD(单指令多数据)指令并行(并发)编码(解码)w个量化系数。从而可以高速地编码(解码)图像。
作为SIMD指令的例子,可以从Intel公司获得、MMX(多媒体扩展)、SSE(流SIMD扩展)、SSE2和SSE3。
当使用SIMD指令对量化系数的绝对值编码时,帧内编码器311内的熵编码器323例如可以配置为如图58中所示。
如同图47的熵编码器323,图58的熵编码器323包括行确定器361、VLC编码器362、有效数字的最大数目计算器3633、VCL编码器364、有效数字提取器365、VCL编码器366、符号提取器367和VCL编码器368。图58的熵编码器323与图47的熵编码器323的不同在于代码多路复用器369包括缓冲区601。在图58中,给与参考图47讨论的相同的元件指定相同的附图标记,并且在适当时忽略对其的讨论。
代码多路复用器369内的缓冲区601 临时存储分别从VLC编码器362、VCL编码器364、VCL编码器366和VCL编码器368提供的指示行上的所有量化系数是否全部是0的代码、指示有效数字的最大数目的代码、指示量化系数的绝对值的代码和指示量化系数的符号的代码。
以32位管理缓冲区601的存储区域,并且将输入缓冲区601的代码(数据)划分为用于标量计算处理的代码和用于矢量计算处理的代码。更具体地,32位的一个存储器区域存储用于标量计算处理的代码或用于矢量计算处理的代码作为临时存储的数据。
图58的熵编码器323使用SIMD指令并行地对量化系数的绝对值编码。指示量化系数的绝对值的代码用于矢量计算处理,并且其他代码用于标量计算处理。
在下面的描述中,缓冲区601中的32位的存储区域的用于存储用于标量计算处理的代码的存储区域称为标量区域,并且用于存储用于矢量计算处理的代码的存储区域称为矢量区域。
下面参考图59描述由图58的熵编码器323执行的熵编码处理。
如图59的上部所示,熵编码器323现在接收图46的12个量化系数,即,“-0101”、“+0011”、“-0110”、“+0010”、“+0011”、“+0110”、“0000”、“-0011”、“+1101”、“-0100”、“+0111”和”-1010”。
以和参考图46讨论的相同的方式,加法器23内的代码多路复用器369接收指示将要编码的行上的所有量化系数是否都是0的代码“1”,以及指示第一次输入的4个量化系数“-0101”、“+0011”、“-0110”和“+0011”的有效数字的最大数目的代码“10001”。
如箭头A11所示,代码多路复用器369内的缓冲区601的32位标量区域存储由指示将要编码的行上的所有量化系数是否都是0的代码“1”和指示量化系数的有效数字的最大数目的代码“10001”构成的代码“110001”。
如图59中所示,将标量区域划分为4个8位区域。标量区域按从最高有效位的顺序从左到右存储代码。当代码被存储在一个整个的标量区域内时,即,当32位的代码被存储在一个标量区域内时,在缓冲区601中创建新的标量区域。从而在新创建的标量区域上连续存储用于标量计算处理的代码。
当标量区域存储由指示将要编码的行上的所有量化系数是否都是0的代码“1”和指示量化系数的有效数字的最大数目的代码“10001”构成的代码“110001”时,熵编码器323在矢量区域上并发地(以并行布置)存储指示第一次输入的w(4)个量化系数“-0101”、“+0011”、“-0110”和“+0011”的绝对值的有效数字的最大数目的代码。
如前面参考图46所述,量化系数“-0101”、“+0011”、“-0110”和“+0011”的有效数字的最大数目是“3”。指示4个量化系数的绝对值的代码分别是“101”、“011”、“110”和“010”。如箭头A12所示,指示量化系数的绝对值的代码“101”、“011”、“110”和“010”被并行布置,并且存储在缓冲区601内的矢量区域上。
矢量区域划分为4个8位区域,并且这4个区域以从最高有效位的顺序从左到右分别存储指示相同(位)长度的4个量化系数的绝对值的代码。
在由A12指示的矢量区域内,最左边的8位区域存储从左到右指示量化系数的绝对值的代码“101”,从最左边的8位区域起的第二个8位区域存储从左到右的代码“011”,从右边的8位区域起的第二个8位区域存储从左到右的代码“110”,并且最右边的8位区域存储从左到右的代码“010”。
如在标量区域中,如果代码被存储在一个整个的矢量区域内,即,如果将32位代码存储在一个矢量区域上,在缓冲区601内创建新的一个矢量区域。将用于矢量计算处理的代码连续存储在新创建的区域上。
当将指示4个量化系数“-0101”、“+0011”、“-0110”和“+0011”的绝对值的代码存储在矢量区域上时,熵编码器323如箭头A13所示将指示4个量化系数的符号的代码存储在标量区域上。
如箭头A11所示,标量区域已经存储了由指示将要编码的行上的所有量化系数是否都是0的代码“1”和指示量化系数的有效数字的最大数目的代码“10001”构成的代码“110001”,熵编码器323在已经存储在标量区域上的代码“110001”的右边存储指示量化系数“-0101”、“+0011”、“-0110”和“+0011”的符号的代码”1010”(继代码“110001”之后)。
在对第一次的4个量化系数编码之后,熵编码器323对下面的4个量化系数“+0011”、“+0110”、“0000”、“-0011”编码。
熵编码器323对以前编码的4个量化系数的有效数字的最大数目“3”和当前编码的量化系数“+0011”、“+0110”、“0000”、“-0011”的有效数字的最大数目“3”进行比较。由于有效数字的最大数目未改变,熵编码器323在标量区域上继以前存储的代码“1100011010”之后存储指示有效数字的最大数目未改变的代码“0”作为指示有效数字的最大数目的代码。
如箭头A115所表示的,熵编码器323还并发地在矢量区域上存储相应于当前输入的w(4)个量化系数“+0011”、“+0110”、“0000”、“-0011”的有效数字的最大数目的代码“011”、“110”、“000”和“011”。
如箭头A12所示,矢量区域上的最左边的8位区域、从最左边的8位区域起的第二个8位区域、从最右边的8位区域起的第二个8位区域和最右边的8位区域已经分别存储了代码“101”、“011”、“110”和“010”。如箭头A15所示,熵编码器323在已经存储的代码“101”、“011”、“110”和“010”的右边分别存储指示当前输入的量化系数的绝对值的代码“011”、“110”、“000”和“011”。
如由箭头A16所示,熵编码器323在已经存储在标量区域上的代码“11000110100”的右边存储指示当前输入的4个量化系数“+0011”、“+0110”、“0000”、“-0011”中具有非0绝对值的量化系数的符号的代码“001”。
当完成4个量化系数“+0011”、“+0110”、“0000”、“-0011”的编码时,熵编码器323对下面4个量化系数“+1101”、“-0100”、“+0111”和”-1010”编码。
熵编码器323对当前输入的4个量化系数“+1101”、“-0100”、“+0111”和”-1010”的有效数字的最大数目“4”与以前编码的4个量化系数的有效数字的最大数目“3”进行比较。如箭头17所示,熵编码器323在标量区域内存储由指示有效数字的最大数目已经改变的代码“1”和指示有效数字的最大数目增加了的代码“0”以及指示有效数字的最大数目的变化量的代码“1”构成的指示有效数字的最大数目的代码“101”。
由于如箭头A16表示的,标量区域已经存储了代码“11000110100001”,如箭头17所示,熵编码器323将指示有效数字的最大数目的代码“101”存储在代码“11000110100001”的右边。
当存储指示4个量化系数“+1101”、“-0100”、“+0111”和”-1010”的有效数字的最大数目的代码时,如箭头A18表示的,熵编码器323并发地在矢量区域上存储指示这些量化系数的绝对值的代码“1101”、“0100”、“0111”和”1010”。
如箭头A15表示的,矢量区域上的最左边的8位区域、从最左边的8位区域起的第二个8位区域、从最右边的8位区域起的第二个8位区域和最右边的8位区域已经分别存储了代码“101011”、“011110”、“110000”和“010011”。最左边的8位区域、从最左边的8位区域起的第二个8位区域、从最右边的8位区域起的第二个8位区域和最右边的8位区域可以分别存储两位信息。
如箭头A18表示的,熵编码器323在缓冲区601中保持(创建)新的矢量区域,并且分别在已经存储在矢量区域上的代码“101011”、“011110”、“110000”和“010011”的右边存储指示当前输入的量化系数的绝对值的代码“1101”、“0100”、“0111”和”1010”的高2位代码“11”、“01”、“01”和“10”。熵编码器323在新创建的矢量区域内的最左边的8位区域、从最左边的8位区域起的第二个8位区域、从最右边的8位区域起的第二个8位区域和最右边的8位区域中的每一个的左边部分上,存储指示当前输入的量化系数的绝对值的代码“1101”、“0100”、“0111”和”1010”的低2位代码“01”、“00”、“11”和“10”(由箭头A18指示的两个矢量区域的低矢量区域)。
当存储指示4个量化系数“+1101”、“-0100”、“+0111”和”-1010”的绝对值的代码时,熵编码器323在已经存储在标量区域上的代码“11000110100001101”的右边存储指示这4个量化系数中具有非0绝对值的量化系数的符号的代码“0101”。
在对输入的量化系数编码之后,作为编码图像,熵编码器323顺序输出存储在如箭头A19所指示的标量区域上的代码、存储在由箭头19指示的两个矢量区域上的高矢量区域上的代码和存储在低矢量区域上的代码。
由箭头A19指示的标量区域内的右边11位上未存储代码。由箭头A19指示的两个矢量区域的低矢量区域内的最左边的8位区域、从最左边的8位区域起的第二个8位区域、从最右边的8位区域起的第二个8位区域和最右边的8位区域中的每一个的右边6位上未存储代码。
在对输入的量化系数的编码结束时,标量区域和矢量区域可以在其上的任意区域内不存储代码。以存储在空区域上的任意代码诸如代码“0”输出存储在标量区域和矢量区域上的代码作为编码图像。
如箭头A19表示的,连续输出存储在标量区域上的代码“11000110100001101010100000000000”和存储在高矢量区域上的代码“10101111011110011100000101001110”和存储在低矢量区域上的代码“01000000000000001100000010000000”。在解码处理中不读取未存储在对量化系数的编码结束时为空的区域内的任何代码,并且可以是任意值。
当输入图像时,帧内编码器311使用SIMD指令对量化系数的绝对值编码。帧内编码器311还执行参考图48讨论的编码处理。在相应于图48的步骤S313的图49的熵编码处理中,在图49的步骤S341到S349、步骤S351和步骤S352中,帧内编码器311执行与不使用SIMD指令的处理相同的处理(即,执行图49的处理)。帧内编码器311在步骤S350中执行与不使用SIMD指令的处理不同的处理。
下面参考图60的流程图描述对w个量化系数的组的编码处理。在该编码处理中,帧内编码器311使用SIMD指令对量化系数的绝对值编码。步骤S611到S619分别与图50的步骤S381到S389相同,并且此处不重复对其的讨论。
当使用SIMD指令对量化系数的绝对值编码时,如以前参考图49或图60讨论的,从VLC编码器362将代码提供给代码多路复用器369,并且然后如参考图59讨论的,存储在代码多路复用器369内的缓冲区601内的标量区域上。存储在缓冲区601内的标量区域上的代码包括指示将要编码的行上的量化系数的所有绝对值是否是0的代码、指示从VCL编码器364提供给代码多路复用器369的量化系数的有效数字的最大数目的代码、和指示从VCL编码器368提供给代码多路复用器369的量化系数的符号的代码。
在步骤S620中,有效数字提取器365从提供自3222的行y上的w个连续位置(x,y)、(x+1,y)、...、(x+w-1,y)处的量化系数中并发地提取量化系数的有效数字。有效数字提取器365将提取的量化系数的有效数字提供给VCL编码器366和符号提取器367中的每一个。响应从有效数字提取器365提供的有效数字(通过对有效数字编码),VCL编码器366并发地向代码多路复用器369输出指示w个量化系数的绝对值的代码。
位置(x,y)处的x的值是存储在有效数字的最大数目计算器3633上的变量x的值,并且y的值是存储在行确定器361上的变量y的值。例如,当有效数字提取器365提取有效数字“101”、“011”、“110”和“010”作为量化系数的有效数字时,VCL编码器366将指示4个量化系数的绝对值的代码“101”、“011”、“110”和“010”提供给代码多路复用器369。代码多路复用器369对指示提供的量化系数的绝对值的代码进行编码,并且如图59的箭头A12所示存储编码的代码。
在步骤S621中,将预定变量I从0改变为(w-1),符号提取器367提取从3222提供的行y上的位置(x+i,y)处的非0量化系数的符号,并且将提取的符号(的数据)提供给VCL编码器368。位置(x,y)处的x的值是存储在有效数字的最大数目计算器3633上的变量x的值,并且y的值是存储在行确定器361上的变量y的值。
VCL编码器368对来自符号提取器367的符号编码,并且向代码多路复用器369输出指示得到的量化系数的符号的代码。如前面参考图59所述,代码多路复用器369在缓冲区601内的标量区域上存储指示从VCL编码器368提供的量化系数的符号的代码。
在将指示量化系数的符号的代码存储在缓冲区601内的标量区域上之后,如参考图59所述,代码多路复用器369多路复用存储在标量区域上的代码和存储在矢量区域上的代码。代码多路复用器369输出多路复用分代码作为编码信号。从而结束对w个量化系数的组的编码处理。处理返回图49的步骤S350,以便执行步骤S351和后续步骤。
熵编码器323并发地对预定数目的量化系数的绝对值编码。
在根据JPEG2000标准的已知的图像编码中,基于多个编码路径在每个位平面上对量化系数进行算术编码,并且难以与熵编码并行地执行预定处理。由于熵编码器323不必在每个位平面上执行复杂的处理,可以并发地对多个量化系数的绝对值编码。
由于通过对预定数目的量化系数的绝对值并发编码,并发地(并行地)执行多个处理,实现了高速的图像编码。
在步骤S621中,按顺序对w个量化系数的符号编码。如同量化系数的绝对值的编码,可以使用SIMD指令并发地对w个量化系数的符号编码。在该情况下,将作为编码结果获得的指示w个量化系数的符号的代码存储在缓冲区601内的矢量区域上的w个分离的区域内。
缓冲区601包括32个标量区域和一个矢量区域,它们中的每一个具有32位的大小,并且每一个32位的区域进一步被划分为4个区域,每一个具有8位的大小。标量区域和矢量区域中的每一个可以设置为任意大小。例如,标量区域和矢量区域中的每一个可以具有128位的大小,并且可将128位的区域划分为8个区域,每个区域具有16位的大小。
可以对使用SIMD指令编码的图像解码。对图像解码的帧内解码器411中的代码多路分解器451(图52)具有图53的结构,并且如参考图59描述的存储器472以35位存储代码作为编码图像。
为了从存储器472读取和输出代码,控制器471从存储第一个32位代码的标量区域的引导部分开始从标量区域读取代码。将要读取和输出的代码包括指示将要解码的行上的量化系数的所有绝对值的代码,指示量化系数的有效数字的最大数目的代码,以及指示量化系数的符号的代码。
控制器471从存储器472读取量化系数的绝对值的符号。在该情况下,控制器471从作为继标量区域之后的下一个32位存储区域(仍没有代码要读取)的矢量区域读取量化系数的绝对值的符号。然后控制器471输出读取的符号。
在对图像的编码中,指示量化系数的绝对值的代码(用于矢量计算)存储在存储器472的标量区域之后的32位存储区域上,在解码处理中首先从该区域读取量化系数的绝对值。
存储器472上的存储作为编码图像的代码的存储器区域的位大小根据帧内编码器311对图像的编码中的一个标量区域和一个矢量区域的位大小而改变。更具体地,将存储器472内的存储作为编码图像的代码的多个存储区域中的每一个的位大小设置为等于在图像的编码中采用的一个标量区域和一个矢量区域的大小。
当使用SIMD指令对量化系数的绝对值解码时,帧内解码器411执行参考图55的流程图讨论的解码处理。在相应于图55的步骤S431的图56的熵解码处理中,帧内解码器411在图56的步骤S461到S468和步骤S470和S471的每一个中执行与不使用SIMD指令的处理相同的处理(执行参考图56讨论的处理)。在相应于步骤S469的w个量化系数的组的解码处理中,帧内解码器411执行与不使用SIMD指令不同的处理。
下面参考图61的流程图描述对w个量化系数的组的解码处理。在该解码处理中,帧内解码器411使用SIMD指令对量化系数的绝对值解码。
步骤S651到S655分别与图57的步骤S511到S515相同,并且此处忽略对其的讨论。
当使用SIMD指令对量化系数的绝对值解码时,如箭头A19表示的,代码多路分解器451中的存储器472在三个32位的区域内存储图像的代码。行确定器452、VLC解码器454和VLC解码器456中的每一个以从图59的顶部上的标量区域(示出在图59的左侧上)的引导部分起的顺序从三个32位的区域中读取并且解码代码。将要读取和解码的代码包括指示行上的所有量化系数是否全部是0的代码、指示量化系数的有效数字的最大数目的代码和指示量化系数的符号的代码。
在步骤S656中,VLC解码器455并发地从代码多路分解器451读取B位代码的连续的w个片段,并且将读取的B位代码的连续的w个片段作为指示行y上的位置(x,y)、(x+1,y)、...、(x+w-1,y)处的量化系数的有效数字的代码提供(输出)到VLC解码器456和VLC解码器456中的每一个。VLC解码器455产生指示量化系数的有效数字的信息,并且将产生的信息提供给代码多路分解器451。位置(x,y)处的x的值是存储在VLC解码器454上的变量x的值,并且y的值是存储在行确定器452上的变量y的值。
例如,预定的数目w是4,变量B的值是3,并且如图59中以箭头A19表示的,作为图像的代码存储在代码多路分解器451内的存储器472上的三个32位存储区域内。如图59中所示,最高的32位存储区域已经设置为标量区域,并且从标量区域读取指示行上的所有量化系数是否全部是0的代码和指示量化系数的有效数字的最大数目的代码。不从下面的35位存储区域(从顶部起的第二个存储区域)读取代码。VLC解码器455从作为从顶部起的第二个存储区域的矢量区域,即,最左边的8位区域、从最左边的8位区域起的第二个8位区域、从最右边的8位区域起的第二个8位区域和最右边的8位区域并发地读取指示位置(x,y)、(x+1,y)、(x+2,y)和(x+3,y)处的量化系数的有效数字的代码“101”、“011”、“110”和“010”。然后,VLC解码器455输出读取的代码。
当将指示w个量化系数的有效数字的代码提供给VLC解码器456和量化系数合成器457中的每一个时,执行步骤S657和S658。步骤S657和S658分别与图57的步骤S517和S518相同,并且此处忽略对其的讨论。
熵解码器421以这种方式对预定数目的量化系数的绝对值并发地解码。
由于通过并发地对预定数目的量化系数的绝对值解码,并发地(并行地)执行多个处理,实现了高速的图像编码。
在步骤S657中,按顺序对指示w个量化系数的符号的代码解码。可以使用SIMD指令并发地对指示量化系数的符号的代码解码。
与根据JPEG2000标准的图像编码(解码)不同,不需要基于多个编码路径在每个位平面上对量化系数进行算术编码。较简单的处理允许以高速度对图像编码(解码)。
在根据已知的JPEG2000标准,根据多个编码路径在每个位平面上对量化系数进行处理。在每个处理中,需要对量化系数进行次数等于量化系数的数目与位平面的数目的乘积的访问,并且产生大量的处理。
当对编码图像打包时,仅在图像的编码完成之后开始打包处理。因此产生延迟。根据JPEG2000标准,将相应于由与图6中的子带上的x方向和y方向平行延伸的边定义的矩形区域内的位置的(编码的)量化系数存储在一个包内,并且发生响应沿着y方向的矩形区域的长度的延迟。从而难以基于实时地处理量化系数。通过减小沿着子带上的y方向的矩形区域的长度,可以牺牲编码效率为代价减少延迟。
相反地,帧内编码器311不必基于多个编码路径在每个位平面上对量化系数执行算术编码。当对图像编码时,仅当输出指示量化系数的绝对值的代码、当输出指示量化系数的符号的代码时,和当输出指示量化系数的符号的代码时,帧内编码器311访问量化系数。
指示有效数字的最大数目的代码和指示量化系数的符号的代码可以是1位或0位。可以通过访问量化系数大约两次对图像编码。为了对图像解码,访问量化系数一次就足以了。从而以高速对图像简单地解码。
帧内编码器311和帧内解码器411分别以光栅扫描的顺序对子带的量化系数编码和解码。不需要缓冲量化系数,并且从而减少了由于编码或解码带来的延迟。
使用SIMD指令(w=4)的对水平1920象素乘以垂直108象素的YUV 4∶2∶2图像的编码然后解码的测试示出了如下的结果。在编码中,对图像进行小波变换以便划分为5个步骤。然后对通过量化每个子带的小波系数获得的量化系数编码。通过使得CPU(具有3.0GHz的时钟频率)称为Pentium4(Intel公司的注册商标)执行预定的程序,表达执行编码和解码所需的功能块(例如,图58的熵编码器323和图52的熵解码器421)和用于根据JPEG2000对图像编码和解码的功能块。
当根据已知的JPEG2000标准对一帧图像编码时,代码量是291571字节,并且对图像编码所需时间为0.26157秒。对编码图像进行解码所需时间是0.24718秒。
相反地,当图58的熵编码器323对一帧图像编码时,代码量是343840字节,并且对图像编码所需时间为0.03453秒。以图52的熵解码器421对编码图像解码所需时间是0.02750秒。
通常以每秒30帧的速度显示运动图像。如果在0.033(1/30)秒内对一帧编码或解码,可以基于实时处理图像。根据JPEG2000标准,对图像编码所需时间为0.26157秒,并且对编码图像解码所需时间是0.24718秒。难以基于实时地处理图像。当使用图58的熵编码器323对图像进行编码时,对图像编码所需时间为0.03453秒,并且可以对图像进行实时处理。当使用图52的熵解码器421对图像解码时,对图像解码所需时间是0.02750秒,可以进行实时处理。
在上述讨论中,对图像数据进行编码,并且对编码图像进行解码。本发明不限于图像数据。当对音频数据编码时,并且当对音频数据解码时,本发明也适用。当对音频数据编码时,将作为编码的音频数据输出的编码包括指示预定的w个数字的有效数字的最大数目的代码、指示这些数字的绝对值的代码和指示这些数字的符号的代码。
进一步讨论这些实施例的附加特征。在本发明的实施例的编码方法中,以无损方式对量化系数编码。量化系数的频率越高,由于人类的视觉特性,以越大的量化步大小量化量化系数。从而相当大地增加了根据产生的编码的图像质量。通过减少由于特定空间的量化步大小,可以增加该空间内的图像质量。
以参考本发明的实施例讨论的编码方法对一系列绝对值的有效数字进行编码。如果以VLC对绝对值的有效数字编码并且然后输出,需要具有2^(N*W)个表项的大的VLC表,其中设N表示绝对值的有效数字的数目(不仅计算处理中的处理时间和工作负载增加了,而且由于存储VLC表的存储器的存储器大小增加了)。相反地,这些实施例的编码方法不需要大表(不仅减小了计算处理中的处理时间和工作负载,而且减少了由于存储VLC表的存储器的存储器大小)。
可以构想使用具有比VLC更高的压缩率的算术编码。与参考本发明的实施例讨论的编码方法相比,使用算术编码诸如JPEG2000的压缩方法所提供的压缩率的增加是不重要的。更具体地,本发明的实施例不仅允许容易地执行编码处理,而且还提供了高的压缩率。
根据本发明的实施例的编码方法,对w个量化系数的组的绝对值的有效数字的最大数目进行编码。通过利用相邻系数的有效数字间的相似性,减少了产生的代码的量。
在上面提及的这些实施例的编码方法中,在对w个量化系数的组的绝对值的有效数字的最大数目进行编码时使用差分编码。在这点上,通过利用相邻系数的有效数字间的相似性,也减少了产生的代码的量。
根据上述的实施例的熵编码器323的熵编码处理和熵解码器421的熵解码处理适用于每个前面的实施例。进一步减少了整个图像编码处理和图像解码处理中的延迟时间、功率消耗和这些处理所需的缓冲区存储器的存储器大小。例如,熵编码器323可以用作图28中的帧内编码器201内的熵编码器215(换言之,熵编码器215执行与熵编码器323所执行的相同的熵编码处理)。熵解码器421可用作图35的帧内解码器220内的熵解码器221(换言之,熵解码器221执行与熵解码器421所执行的相同的熵解码处理)。
通过在每个前面的实施例中应用熵编码处理,通过利用来自小波变换器的系数的输出顺序的特性(利用连续系数的有效数字间的相似性),减少了产生的代码的量。即使当重新布置系数的顺序时,小波变换器按行块执行小波变换,并且不会破坏连续系数的有效数字是相似的特性。不会很大地改变熵编码处理中产生的代码的量。
在将要处理的量化系数的特征和预期的优点方面,熵编码类似于参考每个前面的实施例讨论的小波变换处理。这两种处理彼此高度兼容。与将另一种编码处理应用于小波变换相比,通过将熵编码处理应用于小波变换,可以期望在整个图像编码处理中获得更多的优点。
在上面的讨论中,图像编码装置从一个阶段相加和相减单元18获得一个相加结果和一个相减结果,并且对相加和相减结果编码。可替换地,相加和相减单元18可以布置在多个阶段内。在这种情况下,响应相加和相减单元18的阶段数目,相加结果和相减结果的数目增加了。
图62是示出了具有划分为两个阶段的相加和相减单元18的图像编码装置的结构的方框图。图72的图像编码装置701的编码方法基本上与参考图15讨论的图像编码装置的编码方法相同。相加和相减单元18输出域间的相加结果和相减结果,以便单独或整体地对这些结果进行帧内编码。图像编码装置701包括两个级联阶段的相加和相减单元18,并且提供4个计算结果,将单独或整体地对这些结果进行帧内编码。
图15的图像编码装置将输入图像分割到奇数域和偶数域,而图像编码装置701将两帧输入图像分割到4域数据。为了这个目的,图像编码装置701包括3个开关10和3个域延迟单元11。如图61中所示,每一个由“SW”表示的开关10-1到10-3相应于图15的开关10,并且每一个由“D”表示的域延迟单元11-1到11-3相应于图15的域延迟单元11。
如图62中所示,开关10-1到10-3和域延迟单元11-1到11-3以级联方式交替布置。开关10-1提取作为输入运动图像数据的每两帧(帧A和帧B)的第二帧的帧B的偶数域Be,并且将其余数据(帧A和帧B的奇数域)提供给域延迟单元11-1。域延迟单元11-1将提供的数据延迟一域,并且然后将延迟的数据提供给开关10-2。
类似地,开关10-2提取作为输入运动图像数据的每两帧(帧A和帧B)的第二帧的帧B的奇数域Bo,并且将其余数据提供给域延迟单元11-2。域延迟单元11-2将提供的数据延迟一域,并且将延迟的数据提供给开关10-3。开关10-3也提取作为输入运动图像数据的每两帧(帧A和帧B)的第一帧的帧A的偶数域Ae,并且将其余数据(帧A的奇数域Ao)提供给域延迟单元11-3。域延迟单元11-3将提供的数据延迟一域,并且然后输出延迟数据。
图像编码装置701包括相加和相减单元18-1到18-4。相加和相减单元18-1到18-4中的每一个与图15的相加和相减单元18的结构相同,并且包括加法器12和减法器13。相加和相减单元18-1到18-4中的每一个对两个输入进行相加和相减,并且输出相加结果和相减结果。
为了处理如图62中所示的这样分离的4域数据,相加和相减单元18-1和18-2平行地布置在第一阶段,并且相加和相减单元18-3和18-4平行地布置在第二阶段。
如图62中所示,将帧A的奇数域Ao和偶数域Ae提供给相加和相减单元18-1,并且将帧B的奇数域Bo和偶数域Be提供给相加和相减单元18-2。如上所述,这些域数据片段被以域延迟单元11-1到11-3适当地延迟,并且同时提供给相加和相减单元18-1和18-2中的一个。
从将输入运动图像数据输入图像编码装置701的时刻到将输入运动图像数据输入相加和相减单元18-1和18-2之一的时刻,以最大3帧延迟输入运动图像数据。换言之,相加和相减单元18-1和18-2每两帧接收一域数据。
相加和相减单元18-1对输入帧A的奇数域Ao和偶数域Ae执行相加运算和相减运算,从而输出相加结果Ao+Ae和相减结果Ao-Ae。类似地,相加和相减单元18-2对输入帧B的奇数域Bo和偶数域Be执行相加运算和相减运算,从而输出相加结果Bo+Be和相减结果Bo-Be。如图62中所示,将相加结果Ao+Ae和相加结果Bo+Be提供给第二阶段处的相加和相减单元18-3。将相减结果Ao-Ae和相减结果Bo-Be提供给第二阶段处的相加和相减单元18-4。
如同相加和相减单元18-1和18-2,相加和相减单元18-3对输入的相加结果Ao+Ae和相加结果Bo+Be执行相加运算和相减运算,从而输出相加结果Ao+Ae+Bo+Be和相减结果Ao+Ae-Bo-Be。类似地,相加和相减单元18-4对输入的相减结果Ao-Ae和相减结果Bo-Be执行相加运算和相减运算,从而输出相加结果Ao-Ae+Bo-Be和相减结果Ao-Ae-Bo+Be。
分别将由相加和相减单元18-3输出的相加结果Ao+Ae+Bo+Be和相减结果Ao+Ae-Bo-Be以及由相加和相减单元18-4输出的相加结果Ao-Ae+Bo-Be和相减结果Ao-Ae-Bo+Be提供给帧内编码器712。
如果帧内编码器712单独对运算结果进行编码,速率控制器711设置每个运算中的目标代码量。如果帧内编码器712整体地对运算结果编码,速率控制器711设置对运算结果整体编码的目标代码量。在获得由速率控制器711设置的目标代码量之后,帧内编码器712对4个运算结果编码,将编码数据多路复用为单个编码流,并且输出编码流。
与前面参考图1到15讨论的对域数据执行的单个相加和相减运算并且然后对运算结果进行编码相比,域数据上的反复的相加和相减运算以及对运算结果的编码实现较高的编码效率。从而进一步提高了解码后的主观图像质量。
图63示出了相应于图62的图像编码装置701的图像解码装置的结构。如图63中所示,图像解码装置721包括如同图像编码装置701的两个阶段处的相加和相减单元28-1到28-4。该图像解码装置需要执行与图像编码装置中的相加和相减运算的数目相同数目的相加和相减运算。
相加和相减单元28-1到28-4中的每一个的结构与图4和16的相加和相减单元28相同,并且包括加法器23和减法器24。相加和相减单元28-1到28-4中的每一个对两个输入执行相加运算和相减运算,并且输出相加结果和相减结果。相加和相减单元28-1到28-4的结构也与相加和相减单元18-1到18-4相同。
帧内解码器731相应于图16的帧内解码器60。然而,帧内解码器60对编码流解码,从而输出两个解码数据片段作为相加结果和相减结果,而帧内解码器731对编码流解码,从而输出四个解码数据片段作为两个相加结果和两个相减结果。
响应编码流的输入,帧内解码器731根据编码方法对编码流解码,从而恢复参考图62讨论的相加结果Ao+Ae+Bo+Be,相减结果Ao+Ae-Bo-Be,相加结果Ao-Ae+Bo-Be和相减结果Ao-Ae-Bo+Be。将相加结果Ao+Ae+Bo+Be和相减结果Ao+Ae-Bo-Be提供给第一阶段的相加和相减单元28-1,并且将相加结果Ao-Ae+Bo-Be和相减结果Ao-Ae-Bo+Be提供给第一阶段的相加和相减单元28-2。
相加和相减单元28-1到28-4布置在两个阶段。相加和相减单元28-1到28-2布置在第一阶段。相加和相减单元28-3到28-4布置在第二阶段。
相加和相减单元28-1对输入的相加结果Ao+Ae+Bo+Be和相减结果Ao+Ae-Bo-Be执行相加运算和相减运算,从而输出相加结果2(Ao+Ae)和相减结果2(Bo+Be)。相加和相减单元28-2对输入的相加结果Ao-Ae+Bo-Be和相减结果Ao-Ae-Bo+Be执行相加运算和相减运算,从而输出相加结果2(Ao-Ae)和相减结果2(Bo-Be)。将相加结果2(Ao+Ae)和相加结果2(Ao-Ae)提供给第二阶段的相加和相减单元28-3,并且将相减结果2(Bo+Be)和相减结果2(Bo-Be)提供给相加和相减单元28-4。
相加和相减单元28-3对输入的相加结果2(Ao+Ae)和相加结果2(Ao-Ae)执行相加运算和相减运算,从而输出相加结果4Ao和相减结果4Ae。相加和相减单元28-4对相减结果2(Bo+Be)和相减结果2(Bo-Be)执行相加运算和相减运算,从而输出相加结果4Bo和相减结果4Be。
以触发器732-1将相加结果4Ao除以4,并且从而恢复帧A的奇数域Ao。将域Ao提供给由SW表示的开关27-1。以触发器732-2将相减结果4Ae除以4,并且从而恢复帧A的偶数域Ae。由域延迟单元26将域Ae延迟一域,并且提供给开关27-1。开关27-1在接收帧A的奇数域Ao后接收帧A的偶数域Ae。通过转换输入,开关27-1连续将这些域数据片段输出到以SW表示的开关27-2。
以触发器732-3将相加结果4Bo除以4,并且从而恢复帧B的奇数域Bo。由以2D表示的域延迟单元734将域Bo延迟两域,并且然后提供给开关27-2。开关27-2按奇数域Ao、偶数域Ae和奇数域Bo的顺序接收三域数据。通过转换输入,开关27-2连续将这些域数据片段输出到以SW表示的开关27-3。
以触发器732-4将相减结果4Be除以4,并且从而恢复帧B的偶数域Be。由以3D表示的域延迟单元735将域Be延迟三域,并且然后提供给开关27-3。开关27-3按奇数域Ao、偶数域Ae、奇数域Bo和偶数域Be的顺序接收两域的域数据。通过转换输入,代码量加法器37-3将这些域数据片段连续地输出到图像解码装置721外部。
图像解码装置721对两帧图像数据的4个运算结果被编码到其中的流解码。从而得到输入运动图像数据。更具体地,图像解码装置721对以图像编码装置701编码的流解码。
图像编码装置701的图像编码处理的处理流程基本上与参考图13、20和26讨论的处理相同。不同之处是图像编码装置701两次执行相加和相减运算,并且此处忽略图像编码装置701的操作。在图像编码装置701中,用于单独对运算结果编码的图像编码处理相应于图13的流程图,用于整体对运算结果编码的图像编码处理相应于图20的流程图,并且用于在单独对运算结果编码和整体对运算结果编码间进行选择的图像编码处理相应于图26的流程图。
在图像编码装置701的情形中,图像解码装置721的图像解码处理基本上与参考图14、21和27所述处理相同。图像解码装置721两次执行相加和相减运算,并且此处忽略对图像解码装置721的讨论。
相加和相减单元的阶段的数目是可选的。相加和相减单元的阶段的数目可以增加到3或更多。阶段的数目越多,理论上编码效率变得越高,并且解码后主观图像质量变得越高。相加和相减单元的阶段的数目越多,得到的相加和相减对的数目越多。由于图像数据的域数据增加了,延迟时间也增加了。
图64是示出了具有三个阶段的相加和相减单元的图像编码装置的结构方框图。
除了增加了将要处理的域的数目之外,图像编码装置741的结构基本上与图62的图像编码装置701相同。图64的图像编码装置741包括用于按域多路分解输入图像数据的域多路分解器751,以及执行相加和相减运算并且对相加和相减结果编码的相加/相减编码器752。
如图64中所示,如连接域多路分解器751和相加/相减编码器752的带箭头的直线所表示的,图像编码装置741需要4帧的图像数据,即,8域,以便重复3次相加和相减运算。
图65是示出了图64的域多路分解器751的详细结构的方框图。域多路分解器751包括交替地以级联方式布置的开关10-1到10-7,开关10-1到10-7中的每一个由SW表示,以及域延迟单元11-1到11-7,域延迟单元11-1到11-7中的每一个由D表示。
相应于图15的开关10的开关10-1到10-7将图像数据多路分解为域。相应于图15的域延迟单元11的域延迟单元11-1到11-7将图像数据延迟一域。
图65的结构大体上与参考图62讨论的图像编码装置701内的开关10-1到10-3和域延迟单元11-1到11-3相同,并且不同之处仅在于开关和域延迟单元的数目。
如参考图62所述,域多路分解器751将4帧的图像数据延迟一域,并且一域一域地进行多路分解,并且然后使用开关10-1到10-7和域延迟单元11-1到11-7将每域数据同时提供给相加/相减编码器752。域多路分解器751对每4帧的输入图像数据重复该处理。
在4帧的图像数据中,第一帧是帧A,帧A的奇数帧是Ao,帧A的偶数帧是Ae。第二帧是帧B,帧B的奇数帧是Bo,并且帧B的偶数帧是Be。第三帧是帧C,帧C的奇数帧是Co,并且帧C的偶数帧是Ce。第四帧是帧D,帧D的奇数帧是Do,并且帧D的偶数帧是De。
图66是详细示出了图64的相加/相减编码器752的结构的方框图。如图66中所示,相加/相减编码器752包括12个相加和相减单元18(相加和相减单元18-1到18-12),即,以三个阶段级联4个平行布置的单元18。相加和相减单元18-1到18-12中的每一个具有与相加和相减单元18相同的功能。
相加和相减单元18-1对从域多路分解器751提供的奇数域Ao和偶数域Ae执行相加运算和相减运算,从而将相加结果Ao+Ae提供给第二阶段的相加和相减单元18-5,并且将相减结果Ao-Ae提供给第二阶段的相加和相减单元18-6。相加和相减单元18-2对从域多路分解器751提供的奇数域Bo和偶数域Be执行相加运算和相减运算,从而将相加结果Bo+Be提供给第二阶段的相加和相减单元18-5,并且将相减结果Bo-Be提供给第二阶段的相加和相减单元18-6。
相加和相减单元18-3对从域多路分解器751提供的奇数域Co和偶数域Ce执行相加运算和相减运算,从而将相加结果Co+Ce提供给第二阶段的相加和相减单元18-7,并且将相减结果Co-Ce提供给第二阶段的相加和相减单元18-8。相加和相减单元18-4对从域多路分解器751提供的奇数域Do和偶数域De执行相加运算和相减运算,从而将相加结果Do+De提供给第二阶段的相加和相减单元18-7,并且将相减结果Do-De提供给第二阶段的相加和相减单元18-8。
相加和相减单元18-5对相加结果Ao+Ae和相加结果Bo+Be执行相加运算和相减运算,从而将相加结果Ao+Ae+Bo+Be提供给第三阶段的相加和相减单元18-9,并且将相减结果Ao+Ae-Bo-Be提供给第三阶段的相加和相减单元18-11。相加和相减单元18-16对相减结果Ao-Ae和相减结果Bo-Be执行相加运算和相减运算,从而将相加结果Ao-Ae+Bo-Be提供给第三阶段的相加和相减单元18-10,并且将相减结果Ao-Ae-Bo+Be提供给第三阶段的相加和相减单元18-12。
第二阶段的相加和相减单元18-7对相加结果Co+Ce和相加结果Do+De执行相加运算和相减运算,从而将相加结果Co+Ce+Do+De提供给第三阶段的相加和相减单元18-9,并且将相减结果Co+Ce-Do-De提供给第三阶段的相加和相减单元18-11。相加和相减单元18-8对相减结果Co-Ce和相减结果Do-De执行相加运算和相减运算,从而将相加结果Co-Ce+Do-De提供给第三阶段的相加和相减单元18-10,并且将相减结果Co-Ce-Do+De提供给第三阶段的相加和相减单元18-12。
第三阶段的相加和相减单元18-9对相加结果Ao+Ae+Bo+Be和相加结果Co+Ce+Do+De执行相加运算和相减运算,从而将相加结果Ao+Ae+Bo+Be+Co+Ce+Do+De和相减结果Ao+Ae+Bo+Be-Co-Ce-Do-De提供帧内编码器762。相加和相减单元18-10对相加结果Ao-Ae+Bo-Be和相加结果Co-Ce+Do-De执行相加运算和相减运算,从而将相加结果Ao-Ae+Bo-Be+Co-Ce+Do-De和相减结果Ao-Ae+Bo-Be-Co+Ce-Do+De提供帧内编码器762。
相加和相减单元18-11对相减结果Ao+Ae-Bo-Be和相减结果Co+Ce-Do-De执行相加运算和相减运算,从而将相加结果Ao+Ae-Bo-Be+Co+Ce-Do-De和相减结果Ao+Ae-Bo-Be-Co-Ce+Do+De提供给帧内编码器762。相加和相减单元18-12对相减结果Ao-Ae-Bo+Be和相减结果Co-Ce-Do+De执行相加运算和相减运算,从而将相加结果 Ao-Ae-Bo+Be+Co-Ce-Do+De 和相减结果Ao-Ae-Bo+Be-Co+Ce+Do-De提供给帧内编码器762。
如果帧内编码器762单独对运算结果编码,速率控制器761设置每个运算结果的目标代码量。如果帧内编码器762对运算结果整体编码,速率控制器761设置一个目标代码量,以便对所有运算结果整体编码。在获得在速率控制器761中设置的目标代码量之后,帧内编码器762根据目标代码量对8个运算结果编码,如果必要则对编码数据进行多路复用,并且输出单个编码流。
速率控制器761和帧内编码器762在并行处理的运算结果的数目方面与速率控制器711和帧内编码器712不同,但是以与速率控制器711和帧内编码器712相同的方式设置目标代码量,并且对运算结果执行编码处理。然后将输出的编码流提供给相应于图像编码装置741的图像编码装置。
图67是示出了相应于执行三阶段相加和相减运算的图64的图像编码装置的图像解码装置的结构的方框图。
图67的图像解码装置771包括相加/相减编码器781和域多路复用器782。相加/相减编码器781对输入的编码流解码,并且对8个解码结果执行相加和相减运算,从而产生关于8帧的数据。域多路复用器782恢复8域数据中的每一域数据,并且对域数据进行多路复用,从而获得原始运动图像数据。
除了处理的域的数目增加了之外,图像解码装置771基本上与图63的图像解码装置721相同。
图68是详细示出了图67的相加/相减编码器781的结构的方框图。
如同帧内解码器60和帧内解码器731中的一个,帧内解码器791以相应于图像编码装置741的编码方法的方法对从图像编码装置741提供的编码流解码,从而得到8个运算结果。
如图68中所示,相加/相减编码器781包括12个相加和相减单元28(相加和相减单元28-1到28-12),即,以三个阶段级联的4个平行布置的单元28。相加和相减单元28-1到28-12中的每一个具有与相加和相减单元28相同的功能。
帧内解码器791将8个运算结果中的相加结果Ao+Ae+Bo+Be+Co+Ce+Do+De和相减结果Ao+Ae+Bo+Be-Co-Ce-Do-De提供给相加和相减单元28-1,将相加结果Ao-Ae+Bo-Be+Co-Ce+Do-De和相减结果Ao-Ae+Bo-Be-Co+Ce-Do+De提供给相加和相减单元28-2,将相加结果 Ao+Ae-Bo-Be+Co+Ce-Do-De 和相减结果Ao+Ae-Bo-Be-Co-Ce+Do+De提供给相加和相减单元28-3,并且将相加结 果 Ao-Ae-Bo+Be+Co-Ce-Do+De 和 相 减 结 果Ao-Ae-Bo+Be-Co+Ce+Do-De提供给相加和相减单元28-4。
相加和相减单元28-1对相加结果Ao+Ae+Bo+Be+Co+Ce+Do+De和相减结果Ao+Ae+Bo+Be-Co-Ce-Do-De执行相加运算和相减运算,从而将相加结果2(Ao+Ae+Bo+Be)提供给第二阶段的相加和相减单元28-5,并且将相减结果2(Co+Ce+Do+De)提供给第二阶段的相加和相减单元28-7。相加和相减单元28-2对相加结果Ao-Ae+Bo-Be+Co-Ce+Do-De和相减结果Ao-Ae+Bo-Be-Co+Ce-Do+De执行相加运算和相减运算,从而将相加结果2(Ao-Ae+Bo-Be)提供给第二阶段的相加和相减单元28-6,并且将相减结果2(Co-Ce+Do-De)提供给相加和相减单元28-8。
相加和相减单元28-3对相加结果Ao+Ae-Bo-Be+Co+Ce-Do-De和相减结果Ao+Ae-Bo-Be-Co-Ce+Do+De执行相加运算和相减运算,从而将相加结果2(Ao+Ae-Bo-Be)提供给第二阶段的相加和相减单元28-5,并且将相减结果2(Co+Ce-Do-De)提供给相加和相减单元28-7。相加和相减单元28-4对相加结果Ao-Ae-Bo+Be+Co-Ce-Do+De和相减结果Ao-Ae-Bo+Be-Co+Ce+Do-De执行相加运算和相减运算,从而将相加结果2(Ao-Ae-Bo+Be)提供给第二阶段的相加和相减单元28-6,并且将相减结果2(Co-Ce-Do+De)提供给相加和相减单元28-8。
相加和相减单元28-5对相加结果2(Ao+Ae+Bo+Be)和相加结果(Ao+Ae-Bo-Be)执行相加运算和相减运算,从而将相加结果4(Ao+Ae)提供给第三阶段的相加和相减单元28-9,并且将相减结果4(Bo+Be)提供给第三阶段的相加和相减单元28-10。相加和相减单元28-6对相减结果2(Ao-Ae+Bo-Be)和相减结果2(Ao-Ae+Bo-Be)执行相加运算和相减运算,从而将相加结果4(Ao-Ae)提供给第三阶段的相加和相减单元28-11,并且将相减结果4(Ao-Ae)提供给第三阶段的相加和相减单元28-12。
相加和相减单元28-7对相减结果2(Co+Ce+Do+De)和相减结果2(Co+Ce-Do-De)执行相加运算和相减运算,从而将相加结果4(Co+Ce)提供给第三阶段的相加和相减单元28-11,并且将相减结果4(Do+De)提供给第三阶段的相加和相减单元28-12。相加和相减单元28-8对相减结果2(Co-Ce+Do-De)和相减结果2(Co-Ce-Do+De)执行相加运算和相减运算,从而将相加结果4(Co-Ce)提供给第三阶段的相加和相减单元28-11,并且将相减结果4(Do-De)提供给第三阶段的相加和相减单元28-12。
相加和相减单元28-9对相加结果4(Ao+Ae)和相加结果4(Ao-Ae)执行相加运算和相减运算,从而向域多路复用器782输出相加结果8Ao和相减结果8Ae。相加和相减单元28-10对相减结果4(Bo+Be)和相减结果4(Bo-Be)执行相加运算和相减运算,从而将相加结果8Bo和相减结果8Be提供给域多路复用器782。
相加和相减单元28-11对相加结果4(Co+Ce)和相加结果4(Co-Ce)执行相加运算和相减运算,从而向域多路复用器782输出相加结果8Co和相减结果8Ce。相加和相减单元28-12对相减结果4(Do+De)和相减结果4(Do-De)执行相加运算和相减运算,从而向域多路复用器782输出相加结果8Do和相减结果8De。
图69是详细示出了图67的域多路复用器782的结构的方框图。
如图69中所示,域多路复用器782包括用于将输入的运算结果除以8的除法器801-1到801-8、用于将输入数据延迟一域的域延迟单元26(D)、用于将输入数据延迟两域的域延迟单元734(2D)、用于将输入数据延迟三域的域延迟单元735(3D)、用于将输入数据延迟四域的域延迟单元802(4D)、用于将输入数据延迟五域的域延迟单元803(5D)、用于将输入数据延迟六域的域延迟单元804(6D)、用于将输入数据延迟七域的域延迟单元805(7D)以及结构与图4的开关27相同的开关27-1到27-7。
以除法器801-1将输入域多路复用器782的相加结果8Ao除以8,并且然后提供给开关27-1。以除法器801-2将输入域多路复用器782的相加结果8Bo除以8,然后以域延迟单元26延迟一域,并且提供给开关27-1。从而开关27-1以帧A的奇数域Ao和帧A的偶数域Ae的顺序接收帧A的奇数域Ao和帧A的偶数域Ae。通过转换输入,开关27-1连续地将域数据提供给开关27-2。
以除法器801-3将输入域多路复用器782的相加结果8Bo除以8,由域延迟单元734将其延迟两域,并且然后提供给开关27-2。这样开关27-2以帧A的奇数域Ao、帧A的偶数域Ae和帧B的奇数域Bo的顺序接收帧A的奇数域Ao、帧A的偶数域Ae和帧B的奇数域Bo。通过转换输入,开关27-2将域数据以接收顺序提供给开关27-3。
以除法器801-4将输入域多路复用器782的相加结果8Be除以8,由域延迟单元735将其延迟三域,并且然后提供给开关27-3。这样开关27-3以帧A的奇数域Ao、帧A的偶数域Ae、帧B的奇数域Bo和帧B的偶数域Be的顺序接收帧A的奇数域Ao、帧A的偶数域Ae、帧B的奇数域Bo和帧B的偶数域Be。通过转换输入,开关27-3将域数据以接收顺序提供给开关27-4。
以除法器801-5将输入域多路复用器782的相加结果8Co除以8,由域延迟单元802将其延迟四域,并且然后提供给开关27-4。这样开关27-4以帧A的奇数域Ao、帧A的偶数域Ae、帧B的奇数域Bo、帧B的偶数域Be和帧C的奇数域Co的顺序接收帧A的奇数域Ao、帧A的偶数域Ae、帧B的奇数域Bo、帧B的偶数域Be和帧C的奇数域Co。通过转换输入,开关27-4将域数据以接收顺序提供给开关27-5。
以除法器801-6将输入域多路复用器782的相加结果8Ce除以8,由域延迟单元803将其延迟五域,并且然后提供给开关27-5。这样开关27-5以帧A的奇数域Ao、帧A的偶数域Ae、帧B的奇数域Bo、帧B的偶数域Be、帧C的奇数域Co和帧C的偶数域Ce的顺序接收帧A的奇数域Ao、帧A的偶数域Ae、帧B的奇数域Bo、帧B的偶数域Be、帧C的奇数域Co和帧C的偶数域Ce。通过转换输入,开关27-5将域数据以接收顺序提供给开关27-6。
以除法器801-7将输入域多路复用器782的相加结果8Do除以8,由域延迟单元804将其延迟六域,并且然后提供给开关27-6。这样开关27-6以帧A的奇数域Ao、帧A的偶数域Ae、帧B的奇数域Bo、帧B的偶数域Be、帧C的奇数域Co、帧C的偶数域Ce和帧D的奇数域Do的顺序接收帧A的奇数域Ao、帧A的偶数域Ae、帧B的奇数域Bo、帧B的偶数域Be、帧C的奇数域Co、帧C的偶数域Ce和帧D的奇数域Do。通过转换输入,开关27-6将域数据以接收顺序提供给开关27-7。
以除法器801-8将输入域多路复用器782的相加结果8De除以8,由域延迟单元805将其延迟七域,并且然后提供给开关27-7。这样开关27-7以帧A的奇数域Ao、帧A的偶数域Ae、帧B的奇数域Bo、帧B的偶数域Be、帧C的奇数域Co、帧C的偶数域Ce、帧D的奇数域Do和帧D的偶数域De的顺序接收帧A的奇数域Ao、帧A的偶数域Ae、帧B的奇数域Bo、帧B的偶数域Be、帧C的奇数域Co、帧C的偶数域Ce、帧D的奇数域Do和帧D的偶数域De。通过转换输入,开关27-7以接收顺序将域数据作为解码的图像数据输出到图像解码装置771外部。
如上所述,图像解码装置771对4帧的图像数据的8个运算结果被编码到其中的流解码,并且得到解码的图像数据。图像解码装置771对已经由图像编码装置741编码的流解码。
除了相加和相减运算的数目增加了之外,图像编码装置741的图像编码处理大体上等同于参考图13、20和26的流程图讨论的图像编码装置701的图像编码处理。从而此处忽略对图像编码装置741的图像编码处理的讨论。在图像编码装置741中,用于对运算结果单独编码的图像编码处理的处理流程相应于图13的流程图,用于对运算结果整体编码的图像编码处理的处理流程相应于图20的流程图,并且用于在对运算结果单独编码和对运算结果整体编码间进行选择的图像编码处理的处理流程相应于图26的流程图。
如同图像编码装置741,除了相加和相减运算的数目增加了之外,图像解码装置771还执行图14、21和27的流程图中所示的图像解码处理,并且此处忽略对图像解码装置771的图像解码处理的讨论。
如果增加相加和相减的阶段的数目,延迟时间将增加。如前面参考图28到61讨论的,通过以行块执行编码处理,将延迟时间的增加控制到某个程度。
图70和71是相加和相减的重复数目对位速率和失真因子间的关系的影响的图。如图70和71中所示,横坐标表示位范围(Mbps),并且纵坐标表示失真因子(PSNR(峰值信号噪声比)[dB])。图70中绘出的测试数据和图71中绘出的测试数据得自于作为将要编码的图像数据具有不同特性的图像。
对原始图像数据编码,然后解码,并且对解码的图像数据和原始图像数据彼此进行比较。失真因子(PSNR)用作对解码图像数据和原始图像数据间的差别的评估的测量。失真因子越大,两个图像越相似。
如图70中所示,三角符号表示已知技术中的位速率和失真因子间的关系,其中执行编码处理而不执行相加运算和相减运算,并且十字符号表示图1或图15的图像编码装置内的位速率和失真因子间的关系,即,其中在执行一个相加和相减运算之后执行编码处理。比较图70中的两个情况,十字符号测试数据示出较大的PSNR值,并且提供更好的图像质量。更具体地,与不执行域间的相加和相减而执行编码的已知技术相比,本发明的处理,即,在域间的相加和相减的单个运算之后执行的编码得到更好的主观图像质量。
如图70中所示,正方形符号表示将将要编码的图像数据分割到位平面,但是不执行相加和相减运算而执行编码的编码处理中的位速率和失真因子间的关系,并且星号符号表示将将要编码的图像数据分割到位平面,并且在相加和相减运算之后执行编码的编码处理中的位速率和失真因子间的关系。比较这两个情况中的位速率,星号符号数据具有较大的PSNR值,并且提供更好的图像质量。同样在该情况下,与不执行域间的相加和相减而执行编码的已知技术相比,本发明的处理,即,在域间的相加和相减的单个运算之后执行的编码得到更好的主观图像质量。
如图70中所示,空白圆形符号表示不执行相加和相减运算而执行编码处理的已知技术中的位速率和失真因子间的关系,并且字母x表示图62中的图像编码装置701内的位速率和失真因子间的关系,即,其中在执行两个相加和相减运算之后执行编码处理。比较图70中的这两种情况,字母x的测试数据示出了较大的PSNR值,并且提供更好的图像质量。更具体地,与不执行域间的相加和相减而执行编码的已知技术相比,本发明的处理,即,在域间的相加和相减的两个运算之后执行的编码得到更好的主观图像质量。
比较十字符号数据和字母x的数据,字母x的数据示出了较大的PSNR和更好的图像质量。更具体地,域间的相加和相减运算的数目越多,解码的图像的主观图像质量变得越好。
如图71中所示,三角符号、十字符号、空白正方形符号、星号符号、空白圆圈符号和字母x表示与图70中所示相同的数据类型。如图71中所示,域间的相加和相减运算的数目越多,解码的图像的主观图像质量变得越好。
图像编码装置和图像解码装置可以采用这样的编码方法和解码方法,如参考图28到61所述基于每个行块执行编码方法和解码方法中的每一个,而不执行如参考图1到27所描述的域相加和相减处理。在该情况下,不会出现如图72中所示的由域相加和相减运算产生的延迟时间,并且以高速执行编码处理和解码处理(以小的延迟时间)。
图72图示地示出了延迟时间。如图72的上部所示,如果如参考图28到61所述对每个行块仅执行编码方法或仅执行解码方法,延迟时间“d”比一域短。相反,如果在如图72的下部所示,在域相加和相减运算之后基于每个行块执行编码处理,延迟时间是等于域相加和相减运算所需的一域的时间“i”和时间“d”的和。如果执行编码处理而不是以每个行块为基础,延迟时间将进一步增加。
如上所述,当执行域相加和相减运算时,解码的图像的主观图像质量更好。如图72的上部所示,对每个行块执行编码处理而不执行域相加和相减运算的编码方法是短延迟优先模式,其将高于图像质量的优先级给予短延迟。如图72的下部所示,在执行域相加和相减运算之后对每个行块执行编码处理的编码方法是图像质量优先模式,其将高于延迟时间的优先级给予图像质量。
可以采用两种模式中的任意一种。图像编码装置和图像解码装置可以支持两种模式,从而选择性地使用两种模式中的任意一种。
下面描述这种图像编码装置和图像解码装置。
图73是示出了图像编码装置的结构的方框图。
如图73中所示,图像编码装置1001包括模式选择模块1011、图像质量优先模式图像编码器1012和短延迟优先模式图像编码器1013。
响应来自用户或外部设备的指令,模式选择模块1011在图像质量优先模式和短延迟优先模式间选择编码处理的模式。模式选择模块1011包括控制器1021、选择器1022、选择器1023和通知器1024。
控制器1021响应来自外部的指令输入控制选择器1022和选择器1023的操作。控制器1021还控制通知器1024,从而使得通知器1024将所选择的模式通知图像解码装置。
在控制器1021的控制下,选择器1022和选择器1023转换图像质量优先模式图像编码器1012和短延迟优先模式图像编码器1013中的每一个的输入和输出。更具体地,控制器1021控制选择器1022和选择器1023,从而在图像质量优先模式图像编码器1012和短延迟优先模式图像编码器1013间转换,以便选择这些编码模式之一。
在控制器1021的控制下,通知器1024将控制器1021选择的编码模式作为模式信息通知作为编码流的提供目的地的图像解码装置。
如参考图72所述,通过在执行域相加和相减运算之后,基于每个行块对图像数据编码,图像质量优先模式图像编码器1012执行将高于短延迟的优先级给予图像质量的编码处理。更具体地,图像质量优先模式图像编码器1012是图1或图15的图像编码装置,其中应用参考图28到61讨论的帧内编码器。忽略对图像质量优先模式图像编码器1012的内部结构的讨论。与由短延迟优先模式图像编码器1013执行的编码处理相比,在由图像质量优先模式图像编码器1012执行的编码处理中更大地改进了解码的图像的主观图像质量。
如参考图72所述,通过基于每个行块对图像数据编码,而不执行域相加和相减运算,短延迟优先模式图像编码器1013执行将高于图像质量的优先级给予短延迟时间的编码处理。更具体地,短延迟优先模式图像编码器1013是其中仅采用参考图28到61讨论的帧内编码器的图像编码装置。此处忽略对短延迟优先模式图像编码器1013的内部结构的讨论。与由图像质量优先模式图像编码器1012执行的编码处理相比,在由短延迟优先模式图像编码器1013执行的编码处理中更多地缩短了延迟时间。
下面参考图74的流程图描述图像编码装置1001内的模式选择模块1011的模式选择处理。
当模式选择处理开始时,控制器1021在步骤S1001中开始从外部接收指令,并且待机等待直到已经收到指令为止。在步骤S1001中确定收到指令之后,控制器1021在步骤S1002转换到由选择器1022和选择器1023选择的模式。更具体地,控制器1021控制选择器1022,从而将将要编码的图像数据提供给被选择的图像质量优先模式图像编码器1012或短延迟优先模式图像编码器1013。控制器1021还控制选择器1023,从而允许从所选择的编码器输出编码流。
由控制器1021选择的图像质量优先模式图像编码器1012或短延迟优先模式图像编码器1013对输入图像数据编码,从而输出编码流。
在转换模式之后,控制器1021在步骤S1003中控制通知器1024,从而将指示选择的模式的模式信息通知作为编码流的提供目的地的图像解码装置。
如上所述,控制器1021确定是否在图像质量优先模式和短延迟优先模式之一中执行编码处理。图像编码装置1001从而可以在各种模式中执行编码处理。响应采用的装置或系统,或用户的意图,通过将较高的优先级给予高图像质量或短延迟时间,图像编码装置1001执行最佳的编码方法。换言之,扩展了图像编码装置1001的应用范围。与图像编码装置1001合并,减少了采用的装置或系统的开发成本和制造成本。
模式选择操作的触发不限于指令输入。例如,可以基于将要编码的图像数据的内容自适应地选择模式而不用来自用户的任何指令。
图75是示出了图像编码装置的结构的方框图。如图75所示,除了以模式选择模块1111取代模式选择模块1011之外,图像编码装置1101的结构基本上与图像编码装置1001相同。除了模式选择模块1011的结构之外,模式选择模块1111包括用于确定将要编码的图像数据的变化量的变化确定器1120。与控制器1021不同,控制器1121响应变化确定器1120的确定结果而不是响应来自外部的指令,在图像质量优先模式和短延迟优先模式间进行选择。模式选择的操作和对图像解码装置的模式信息通知保持为控制器1021的情况的那些操作不变。
变化确定器1120测量图像中的变化量,并且将测量结果通知控制器1121。变化量可以是关于图像数据的帧间的不同的信息(随时间的变化)。
图76是示出了变化确定器1120的内部结构的方框图。
如图76中所示,变化确定器1120确定表示从即刻之前的一帧到目标帧的运动的运动矢量的统计量,并且将该统计量作为运动信息。变化确定器1120包括用于计算将要编码的图像的运动信息的运动信息计算器1131。运动信息计算器1131包括运动矢量检测器1141和统计量计算器1142。
运动矢量检测器1141将图像数据的每一帧连续设置为目标帧,并且将紧接着目标帧的之前的一帧(称为之前帧)分割到16×16象素的块(MPEG中的宏块)。运动矢量检测器1141在之前帧的每个宏块中检测表示从之前帧到目标帧的运动的运动矢量,并且然后将运动矢量提供给统计量计算器1142。
统计量计算器1142计算从之前帧中的宏块确定的运动矢量的统计量,该统计量包括每个宏块内的运动矢量的绝对值的和以及平均值。统计量计算器1142将统计量输出给控制器1121。控制器1121对运动信息的值与预定阈值比较,从而根据运动信息的值是否大于预定阈值确定编码模式。
下面参考图77的流程图描述模式选择模块1111的模式选择处理。
当模式选择处理开始时,运动矢量检测器1141在步骤S1131从图像数据确定运动矢量。在步骤S1132中,统计量计算器1142计算确定的运动矢量的统计信息作为运动信息。
在步骤S1133中,控制器1121确定运动信息的值是否等于或大于阈值。运动信息的大的值意味着将要编码的图像数据中随时间的变化量是大的,即,将要编码的图像数据的图像的帧间的改变是大的。在这种情况下,即使在低质量图像中图像的衰退也不明显,换言之,没有很大地减小解码的图像的主观图像质量。在另一方面,即使提高图像质量,解码的图像的主观图像质量没有相应地提高。在这种情况下,控制器1121将比图像质量的改善更高的优先级给予短延迟时间。
如果在步骤S1133中确定运动信息的值等于或大于阈值,控制器1121进入步骤S1134。控制器1121控制选择器1022和选择器1023,从而选择短延迟优先模式。处理进入步骤S1136。
如果在步骤S1134中确定运动信息的值小于阈值,将要编码的图像数据中的图像的运动是小的。控制器1121进入步骤S1135,并且控制选择器1022和选择器1023,从而选择图像质量优先模式。处理进入步骤S1136。
在步骤S1136中,通知器1024将控制器1121设置的模式通知图像解码装置。从而模式选择处理结束。
以这种方式不使用用户的指令,响应将要编码的图像数据的图像随时间的变化量,图像编码装置1101自适应地选择编码处理的模式,从而将较高的优先级给予短延迟设置或高图像质量设置。
如图78中所示,作为运动矢量的统计量的运动信息的大小(变化量)随帧不同而不同。控制器1121将变化量(运动信息)与预定的阈值Th比较。控制器1121在变化量等于或大于阈值的时间段内(如图78所示的从帧m1到帧m2的时间段B)以短延迟模式执行编码处理,并且在其余的时间段(图78中的时间段A和时间段C)内以高图像质量模式执行编码处理。图像编码装置1101甚至可以在对一个图像的数据进行编码当中改变编码模式,从而执行适当的编码处理。
可以使用任意方法确定运动信息。取代使用运动矢量的统计量,可以确定每帧的柱状图,可以计算柱状图的变化量作为运动信息。
图79是示出了变化确定器1120的结构的方框图。
如图79中所示,变化确定器1120包括运动信息计算器1231。运动信息计算器1231包括柱状图产生器1241、柱状图存储器1242和差计算器1243。柱状图产生器1241产生将要编码的图像数据的每帧的柱状图,并且将目标帧的柱状图提供给差计算器1243。差计算器1243计算从柱状图产生器1241提供的目标帧和从柱状图存储器1242提供的之前帧的柱状图间的差,并且然后将差作为运动信息提供给控制器1121。
下面参考图80的流程图描述模式选择处理的处理流程。
当模式选择处理开始时,柱状图产生器1241在步骤S1231中从图像数据产生目标帧的象素值的柱状图。在步骤S1232中,差计算器1243确定紧接着目标帧之前的帧的柱状图和目标帧的柱状图间的差的绝对值的和作为运动信息。
在步骤S1233中,控制器1121确定运动图像的值是否等于或大于阈值。如在运动矢量的情况中,运动图像的值的数量指示图像随时间的改变程度。如果在步骤S1233中确定运动信息的值等于或高于阈值,控制器1121进入步骤S1234。控制器1121控制选择器1022和选择器1023,从而设置短延迟优先模式。处理进入步骤S1236。
如果在步骤S1234中确定运动信息的值小于阈值,将要编码的图像数据的图像的运动是小的。控制器1121进入步骤S1235。控制器1121控制选择器1022和选择器1023,从而设置图像质量优先模式。处理进入步骤S1236。
在步骤S1236中,通知器1024将由控制器1121设置的模式通知图像解码装置。从而模式选择处理结束。
运动信息可以是上述之外的任意参数。
例如,除了指示随时间的变化的运动信息之外,变化确定器1120可以确定指示空间变化的精细度信息。例如,控制器1121基于由变化确定器1120确定的并且指示图像数据的每个图像在帧内变化了多少的空间变化量选择编码模式。
例如,帧内的象素的象素值的差越小,空间改变越小,并且图像的频率组分越低。帧图像的变化小。即使以导致相对大的图像质量衰退的短延迟优先模式执行编码处理,图像的衰退也不易被观看该图像的用户注意到,即,解码的图像的主观图像质量不会很大地降低。换言之,即使以导致相对小的图像衰退的高图像质量优先模式执行编码处理,也不会改善解码的图像的主观图像质量。在该情况下,控制器1121将比图像质量更高的优先级给予短延迟。
包含大量边组分的图像或小图案的图像提供相邻象素的象素值的大的差别。这种图像具有高频组分和大的空间变化。由于图像的衰退,边变得模糊不清,并且图案产生变形。图像质量的衰退更明显。在该情况下,控制器1121将比短延迟更高的优先级给予图像质量。
图81是示出了变化确定器1120的结构的方框图。
如图81中所示,变化确定器1120包括用于确定作为变化量的精细度信息的精细度信息计算器1331。精细度信息计算器1331包括DCT(离散余弦变换)变换器1341、权重因子计算器1342和乘法和求和单元1343。
DCT变换器1341按帧获得图像数据,将获得的帧作为目标帧,并且将目标帧分割到8×8象素的块。DCT变换器1341还对目标帧内的每个块进行DCT变换,并且将从每个块获得的8×8个DCT系数提供给乘法和求和单元1343。
权重因子计算器1342确定将要附加到该块的每个8×8DCT系数上的权重因子,并且然后将权重因子提供给乘法和求和单元1343。
乘法和求和单元1343将从权重因子计算器1342提供的权重因子乘以从DCT变换器1341提供的块的8×8DCT系数,并且对乘积累加。乘法和求和单元1343对目标帧内的块的乘积求和,并且作为目标帧的精细度信息输出。
下面参考图82的流程图描述模式选择处理的处理流程。
当模式选择处理开始时,DCT变换器1341在步骤S1331对图像数据的目标帧进行DCT变换。在步骤S1332中,权重因子计算器1342计算将要附加到每个块内的DCT系数上的权重因子。乘法和求和单元1343在步骤S1333中基于每个块将权重因子乘以该系数,并且在步骤S1334中基于每个块对乘积求和作为精细度信息。
在步骤S1335中,控制器1121确定精细度信息的值是否等于或大于阈值。如果在步骤S1335中确定精细度信息的值等于或大于阈值,处理进入步骤S1336。控制器1121控制选择器1022和选择器1023,从而设置图像质量优先模式。处理进入步骤S1338。
如果在步骤S1335中确定精细度信息的值小于阈值,控制器1121进入步骤S1337。控制器1121控制选择器1022和选择器1023,从而设置短延迟优先模式。处理进入步骤S1338。
在步骤S1338中,通知器1024将控制器1121设置的模式通知图像解码装置。从而模式选择处理结束。
如上所述,响应将要编码的图像数据的图像的精细度适当地转换编码模式。如同运动信息,如图18中所示,精细度信息也根据帧的不同而改变大小(精细度信息的数量)。控制器1121如上所述选择模式,从而响应图像数据的精细度信息的大小,甚至在编码当中转换模式。从而图像编码装置1101适当地执行编码处理。
用于确定模式的参数不限于一类。可以使用多种类型的参数。
图83是示出了这种情况的变化确定器1120的结构的方框图。如图83中所示,包括上述的运动信息计算器1131和精细度信息计算器1331的变化确定器1120根据将要编码的图像数据确定运动信息和精细度信息。
如图83中所示,可由运动信息计算器1131替代运动信息计算器1231。
下面参考图84的流程图描述模式选择处理。
当模式选择处理开始时,运动信息计算器1131在步骤S1431中根据将要编码的图像数据确定运动信息。在步骤S1432中,精细度信息计算器1331根据将要编码的图像数据确定精细度信息。在步骤S1433中,控制器1121基于运动信息和精细度信息设置编码模式。可替换地,控制器1121可以基于运动信息和精细度信息中带有优先级的一个确定编码模式,并且仅当未获得所希望的结果时,控制器1121可以基于运动信息和精细度信息中的另一个设置编码模式。
例如,控制器1121可以对运动信息和阈值进行比较,并且如果运动信息的值等于或大于阈值,控制器1121设置编码模式。如果运动信息的值小于阈值,控制器1121对精细度信息与阈值进行比较。可替换地,控制器1121可以从预定的表或根据基于运动信息的比较结果和精细度信息的比较结果的等式确定模式。
在完成模式设置后,通知器1024在步骤S1434中将控制器1121设置的模式通知图像解码装置。从而模式选择处理结束。
以这种方式使用基于多个参数的模式,控制器1121可以对各种图像数据适当地编码。参数的类型和参数的数目是可选择的。还可以使用不同于上述的模式选择方法。
可以基于用于向图像解码装置传输编码流的网络的带宽而不是基于将要编码的图像数据设置编码模式。
图85是示出了这种图像编码装置的结构的方框图。除了以模式选择模块1511替代模式选择模块1111之外,图像编码装置1501的结构基本上与图75的图像编码装置1101相同。图像编码装置1501还包括通信单元1512。取代模式选择模块1111中的变化确定器1120,模式选择模块1511包括带确定器1520。响应提供给通信单元1512的带信息,带确定器1520确定用于向图像解码装置传输编码流的网络内的可用带宽。
通信单元1512不仅向图像解码装置传输通过选择器1023提供的编码流和从通知器1024提供的模式信息,还监视用于传输的网络内的可用带宽,并且将关于带宽的带宽信息提供给带确定器1520。
带确定器1520基于带宽信息确定带宽,并且将确定结果通知控制器1521。基于确定结果,控制器1521选择编码模式。
下面参考图86的流程图描述模式选择处理的处理流程。
当模式选择处理开始时,带确定器1520在步骤S1501中确定是否从通信单元1512获得了带宽信息。带确定器1520待机等待,直到获得带宽信息为止。通信单元1512将带宽信息周期地或不是周期地提供给带确定器1520。
在获得带宽信息后,带确定器1520在步骤S1502中确定可用于传输编码流和模式信息的带宽是否比预定带宽宽。如果确定可用带宽比预定带宽宽,可以高速传输数据,并且有效地减少延迟时间。如果在步骤S1502中确定可用带宽比预定带宽宽,控制器1521进入步骤S1503以便设置短延迟优先模式。处理进入步骤S1505。
如果可能由于繁重的网络流量,可用带宽比预定带宽窄,由于低的传输速率,即使短延迟优先也可能产生延迟。从而短延迟优先模式不具优势。如果在步骤S1502中确定可用带宽比预定带宽宽,控制器1521进入步骤S1504以便设置图像质量优先模式。处理进入步骤S1505。
当完成模式设置后,通知器1024在步骤S1505中将控制器1521设置的模式通知图像解码装置。从而模式选择处理结束。
如上所述,图像编码装置1501响应网络的带宽适当地选择模式,以便适当地执行编码处理。在该情况下,也可以在编码处理当中转换模式。
图87是示出了相应于参考图73到86讨论的各种图像编码装置的图像解码装置的结构的方框图。如图87中所示,图像解码装置1601包括两个解码器,即,相对于图像编码装置的图像质量优先模式图像解码器1612和短延迟优先模式图像解码器1613,以及模式选择模块1611。图像质量优先模式图像解码器1612执行相应于将优先级给予高图像质量的编码处理的解码处理。短延迟优先模式图像解码器1613执行相应于将优先级给予短延迟时间的编码处理的解码处理。模式选择模块1611响应从图像编码装置提供的模式信息选择一种解码处理。
图像质量优先模式图像解码器1612相应于图像质量优先模式图像编码器1012。通过组合参考图28到61讨论的各种帧内解码器中的每一个和参考图1到27讨论的各种图像解码装置内的每一个内的帧内解码器构成图像质量优先模式图像解码器1612。短延迟优先模式图像解码器1613相应于短延迟优先模式图像编码器1013。通过采用参考图28到61讨论的各种帧内解码器中的一个作为图像解码装置构成短延迟优先模式图像解码器1613。
模式选择模块1611包括通知获得单元1620、控制器1621、选择器1622和选择器1623。通知获得单元1620获得从图像编码装置提供的模式信息,并且将获得的模式信息提供给控制器1621。响应由通知获得单元1620获得的模式信息,控制器1621选择解码处理的模式。选择器1622和选择器1623控制图像质量优先模式图像解码器1612和短延迟优先模式图像解码器1613的输入和输出。从而响应选择的模式,由图像质量优先模式图像解码器1612和短延迟优先模式图像解码器1613之一执行解码处理。
通过选择器1622将来自图像编码装置的编码流提供给由控制器1621选择的图像质量优先模式图像解码器1612或短延迟优先模式图像解码器1613。然后对编码流解码,并且然后通过选择器1622作为图像数据输出。
下面参考图88的流程图描述模式选择处理的处理流程。
当模式选择处理开始时,通知获得单元1620在步骤S1601中确定是否从外部收到模式通知。通知获得单元1620待机等待,直到收到模式通知为止。
在确定收到模式信息后,通知获得单元1620将模式通知控制器1621。在步骤S1602中,控制器1621响应该模式信息使得解码处理的模式与编码处理的模式匹配。
当两个模式匹配时,控制器1621结束模式选择处理。
即使在图像编码装置中选择任意模式,也可以将解码处理的模式和编码处理的模式设置为彼此匹配,并且适当地执行解码处理。
可以在打包的编码流中作为头信息传输模式信息,或可以作为与编码流分离的数据传输模式信息。
以这种方式,本发明的图像解码装置可以包含各种配置。
下面描述图像编码装置和图像解码装置的应用。在下面讨论的实施例中,将在每个前面的实施例中描述的图像编码装置和图像解码装置应用于数字三同轴系统。
在演播室记录或直播过程中,在电视广播站或作品演播室的三同轴系统中,将摄像机、照相机控制单元和转换器互连在一起的单个同轴电缆以重叠的方式传输多个信号,包括视频信号、音频信号、返回的音频信号和同步信号,并且从中供电。
已知的三同轴系统通常传输模拟信号。随着当前越来越多的系统成为是数字系统,广播行业内的三同轴系统也变成为数字式的。
在已知的数字三同轴系统中,通过三同轴电缆传输的数字视频信号是非压缩的视频信号。这是因为在广播行业中在延迟时间方面的规范要求特别严格,并且要求从图像捕捉到在监视器上输出图像的延迟时间在一域内(16.67ms)。在诸如MPEG2(运动图像专家组2)和实现高压缩率和高图像质量的MPEG4的压缩编码方法中,需要几帧的延迟时间对视频信号压缩编码,以及对编码的视频信号进行解码。由于这种长的延迟时间,这种方法不能用于三同轴系统。
如前所述,本实施例的图像编码方法和图像编码方法中的每一个具有与一域相比极短的延迟时间,例如,从图像数据的输入到图像的输出的从几行到几十行的延迟时间,并且可以在数字三同轴系统中找到适当的应用。
图89示出了可以应用本发明的图像编码方法和图像解码方法的三同轴系统的一个例子。发射单元2000通过三同轴电缆(同轴电缆)2001连接到照相机控制器2002。通过三同轴电缆2001,传输将要实际传输或将用作素材的数字视频信号和数字音频信号(此后称为主线信号),并且从照相机控制器2002向摄像机2003传输进入的音频信号和返回的数字视频信号。
发射单元2000收容在摄像机装置内。可替换地,发射单元2000可以被用作摄像机装置外部的设备,并且在使用过程中连接到摄像机装置。照相机控制器2002通常是称为CCU(照相机控制单元)的设备。
数字音频信号仅松散地与本发明的上下文相关,并且出于解释简便起见,此处不对其进行讨论。
摄像机2003在未示出的摄像机装置内部,并且在它的未示出的图像拍摄设备诸如CCD(电子耦合器件)上接收通过由透镜、聚焦机构、缩放机构、光圈调整机构等构成的光学系统2050进入的来自对象的光。图像拍摄设备借助于其光电功能将收到的光转换为电信号,对电信号执行预定的处理,并且然后输出得到的基带的数字视频信号。在输出之前将该数字视频信号映射为HD-SDI(高清晰度-串行数据接口)格式。
摄像机2003连接到作为监视器的显示器2051和用于与外部进行语音通信的INCOM 2052。
发射单元2000包括视频信号编码器2010和视频信号解码器2011、数字调制器2012和数字解调器2013、放大器2014和放大器2015以及视频多路分解器/多路复用器2016。
摄像机2003给发射单元2000提供映射为HD-SDI格式的基带的数字视频信号。由视频信号编码器2010将数字视频信号压缩为编码流,并且然后将编码流提供给数字调制器2012。数字调制器2012将提供的编码流调制为适合于通过三同轴电缆2001传输的格式的信号。将从数字调制器2012输出的信号通过放大器2014提供给视频多路分解器/多路复用器2016。视频多路分解器/多路复用器2016通过三同轴电缆2001传输提供的信号。然后由照相机控制器2002通过三同轴电缆2001接收该信号。
由发射单元2000通过三同轴电缆2001接收从照相机控制器2002输出的信号。将收到的信号提供给视频多路分解器/多路复用器2016,并且然后多路分解为数字视频信号部分和其余的信号。将数字视频信号部分通过放大器2015提供给数字解调器2013。数字解调器2013将编码流多路分解为已被照相机控制器2002调制为适合于通过三同轴电缆2001传输的格式的数字视频信号。
将编码流提供给视频信号解码器2011。从而将编码信号解码为基带的数字视频信号。将解调的数字视频信号映射为HD-SDI格式,并且然后输出。然后将数字视频信号作为返回的数字视频信号提供给摄像机2003。将数字视频信号提供给连接到摄像机2003的显示器2051,以便显示给摄影师。
照相机控制器2002包括视频多路分解器/多路复用器2020、放大器2021和2022、前端2023、数字解调器2024、数字调制器2025、视频信号解码器2026和视频信号编码器2027。
由照相机控制器2002通过三同轴电缆2001接收从发射单元2000输出的信号。将收到的信号提供给视频多路分解器/多路复用器2020。视频多路分解器/多路复用器2020将被提供的信号通过放大器2021和前端2023提供给数字解调器2024。前端2023包括用于调整输入信号的增益的增益控制器和用于对输入信号滤波的滤波器。
数字解调器2024对已经由照相机控制器2002调制为适合于通过三同轴电缆2001传输的格式的信号解调。从而数字解调器2024恢复编码流。然后将编码流提供给视频信号解码器2026,以便解码为基带的数字视频信号。将解码的数字视频信号映射为HD-SDI格式,并且然后作为主行信号输出。
给照相机控制器2002提供来自外部的返回的视频信号和返回的音频信号。将数字音频信号提供给摄影师的INCOM2052,以便将来自外部的声音指示传达给摄影师。
将返回的数字视频信号提供给视频信号编码器2027以便压缩编码。然后将编码的数字视频信号提供给数字调制器2025。数字调制器2025将提供的编码流调制为适合于通过照相机控制器2002传输的格式的信号,并且输出调制的信号。将从数字调制器2025输出的信号通过前端2023和2022提供给视频多路分解器/多路复用器2020。视频多路分解器/多路复用器2020多路复用提供的信号和其他信号,并且通过三同轴电缆2001输出多路复用的信号。然后由照相机控制器2002通过三同轴电缆2001接收输出信号。
根据本实施例,将每个前面的实施例中讨论的图像编码装置和图像编码装置分别应用于视频信号编码器2010和视频信号编码器2027以及视频信号解码器2011和视频信号解码器2026。
允许元件执行并行结合在图像编码装置和图像解码装置中的每一个内处理的布置减少了从照相机控制器2002输出由摄像机2003捕捉的视频时涉及的时间延迟,或从外部提供给照相机控制器2002并且然后传输给摄像机2003的返回的数字视频信号中的时间延迟。这种布置找到如本发明的实施例的应用。
由于在图89的系统、发射单元2000和照相机控制器2002中的每个内适当地设置信号处理性能和存储器大小,可以在发射单元2000和照相机控制器2002的任何一个上执行系数数据的重新布置处理。还可以在重新布置处理之前或之后执行熵编码处理。
发射单元2000中的视频信号编码器2010对提供的数字视频信号执行本发明的方法的小波变换处理和熵编码处理。如前所述,视频信号编码器2010接收数目与用于小波变换的滤波器的阶数和小波变换的分割等级匹配的行。当如前面参考图30、31和36讨论的,图像编码装置和图像解码装置(帧内编码器和帧内解码器)中的每一个存储每个元件所需的系数数据时,执行元件连续地执行其处理。当处理到达一帧或一域的低行时,开始对下一帧或下一域的处理。
当将返回的数字视频信号从照相机控制器2002传输到发射单元2000时,可以执行相同的处理。更具体地,照相机控制器2002中的视频信号编码器2027对从外部提供的返回的数字视频信号执行本发明的方法的小波变换处理和熵编码处理。然后视频信号编码器2027输出编码流。
图像质量比主行的数字视频信号低的返回的数字视频信号通常是可接受的。在这种情况下,视频信号编码器2027可以减少编码过程中的位速率。例如,在视频信号编码器2027中,速率控制器214(图28)可以控制熵编码器215(图28)以便以低的位速率执行熵编码处理。例如,在照相机控制器2002中,视频信号编码器2027中的帧内编码器201(图28)执行到较高的分割等级的变换处理,而在发射单元2000中,视频信号解码器2011中的逆小波变换器223(图34)执行到较低分割等级的逆小波变换。视频信号编码器2027的处理不限于这种操作。可以降低小波变换中的分割等级,以便减少变换处理中涉及的工作负载。
将进一步描述本发明的另一个实施例。在该实施例中,使用无线通信将由本发明的图像编码装置编码的数据传输到图像解码装置。图90是示出了根据本实施例的无线传输系统的结构的方框图。如图90中所示,以从摄像机或发射器单元2100到接收器2101的一条通路传输视频信号。以发射器单元2100和接收器2101间的两条通路传输音频和其他信号。
发射器单元2100包含在未示出的具有接收器2101的摄像机装置内。本发明不限于这种布置。发射器单元2100可以在具有摄像机2102的摄像机装置外部,并且可以在使用过程中连接到摄像机装置。
例如,摄像机2102包括预定的光学系统、图像拍摄设备诸如CCD、用于输出从图像拍摄设备作为数字视频信号输出的信号的信号处理器。从摄像机2102输出映射为HD-SDI格式的数字视频信号。本发明不限于HD-SDI格式。从摄像机2102输出的数字视频信号可以是另一种格式。
发射器单元2100包括视频信号编码器2110、数字调制器2111和无线模块2112。在接收器2101中将基带的数字视频信号映射为HD-SDI格式,并且然后输出。视频信号编码器2110根据本发明的压缩编码方法通过小波变换处理和熵编码处理对数字视频信号压缩编码。然后将得到的编码流提供给数字调制器2111。数字调制器2111将提供的编码流调制为适合于传输的格式的信号。
数字调制器2111接收包括预定命令和数据的数字音频信号和其他信号。包括麦克风的摄像机2102将由麦克风拍摄的声音转换为音频信号,A/D将音频信号转换为数字音频信号,并且然后输出数字音频信号。摄像机2102输出预定的命令和数据。可以在摄像机2102中产生该命令和数据。可替换地,操作单元可以布置在摄像机2102中,并且可以响应由用户在操作单元上输入的操作输入产生命令或数据。用于输入命令和数据的输入设备可以连接到摄像机2102。
数字调制器2111数字地调制数字音频信号和其他信号,并且输出调制的信号。将从数字调制器2111输出的数字调制信号提供给无线模块2112,并且然后作为无线电波从天线2113无线传输。
在收到来自接收器2101的ARQ(自动重复请求)后,无线模块2112将ARQ通知数字调制器2111,并且请求数字调制器2111再次发送数据。
由接收器2101的天线2120接收从天线2113传输的无线电波,并且然后将收到的信号提供给无线模块2121。无线模块2121响应收到的无线电波将数字调制信号提供给前端2122。前端2122对提供的数字调制信号执行预定的信号处理,诸如增益控制,并且将得到的信号提供给数字解调器2123。数字解调器2123解调提供的数字调制信号,从而恢复编码流。
将由数字解调器2123恢复的编码流提供给视频信号解码器2124。视频信号解码器2124根据本发明的解码方法对编码流解码,从而得到解码的数字视频信号。然后将数字视频信号映射为HD-SDI格式并且输出。
数字解调器2123接收由发射器单元2100数字地调制和传输的数字视频信号和其他信号。数字解调器2123对调制的数字音频数据和其他信号解调,从而恢复并且输出数字视频信号和其他信号。
前端2122使用预定的方法对从无线模块2121收到的信号执行错误检测处理。如果检测到指示已经接收到错误的错误时,前端2122输出ARQ。将ARQ提供给无线模块2121以便从天线2120传输。
在上面的布置中,发射器单元2100可以容纳在包含摄像机2102的相对小的摄像机装置内。监视器设备可以连接到接收器2101。将从视频信号解码器2124输出的数字视频信号提供给监视器设备。如果接收器2101在从无线模块2112传输的无线电波的覆盖区域内,可以在监视器设备上以一域或一帧内的延迟监视由摄像机装置拍摄的视频。
如图90中所示,建立无线通信以便在发射器单元2100和接收器2101间传输视频信号。可替换地,发射器单元2100和接收器2101可以通过网络诸如Internet彼此连接。在该情况下,发射器单元2100内的无线模块2112和接收器2101内的无线模块2121是能够以IP(网际协议)通信的通信接口。
本实施例的系统可以找到各种应用。本实施例的系统可以应用于电视会议系统。例如,将支持USB(通用串行总线)连接的手持摄像机装置连接到计算机诸如个人计算机,并且将视频信号编码器2110和视频信号解码器2124安装在计算机上。可以由硬件或运行在计算机上的软件实现安装在计算机上的视频信号编码器2110和视频信号解码器2124。
例如,可以给参与会议的每个成员提供计算机和摄像机装置。计算机通过有线网络和/或无线网络连接到为电视会议系统提供服务的服务器。通过USB电缆将从摄像机装置输出的视频信号提供给计算机,并且计算机内的视频信号编码器2110执行本发明的编码处理。计算机将视频信号的编码流通过网络传输到服务器。
服务器通过网络向每个参与成员的计算机传输收到的编码流。由每个参与成员的计算机接收编码流,并且计算机内的视频信号解码器2124执行本发明的解码处理。将从视频信号解码器2124输出的图像数据作为图像显示在计算机的显示器上。
将由另一个参与成员的摄像机装置拍摄的视频显示在每个参与成员的计算机的显示器上。从摄像机装置中的视频信号的编码到其他参与成员的计算机上的视频信号的解码涉及短的延迟时间。从而该系统减少了由于显示在每个参与成员的计算机的显示器上的其他参与成员的视频的延迟而引起的奇怪现象。
视频信号编码器2110可以安装在摄像机装置上。例如,发射器单元2100可以包含在摄像机装置内。这种布置消除了对将另一个装置诸如计算机连接到摄像机装置的需要。
除了上述的电视会议系统之外,由包含发射器单元2100和接收器2101的摄像机装置组成的系统可以找到各种应用。如图91中一般地示出的,该系统可以应用于家用游戏机。如图91中所示,摄像机2200包含本发明的实施例的发射器单元2100。
家用游戏机的主要单元2201具有类似计算机的结构,并且包括CPU、RAM和ROM、支持CD-ROM(压缩只读盘存储器)的盘驱动器或DVD-ROM(数字通用Disc-ROM)、用于将CPU产生的显示控制信号转换为视频信号和输出视频信号的图形控制器、用于再现音频信号的音频再现设备、和用于互连这些元件的总线。由CPU根据预先存储在ROM上的程序或存储在装入盘驱动器的CD-ROM或DVD-ROM上的程序控制家用游戏机的主要单元2201。RAM用作工作存储器。家用游戏机的主要单元2201包含接收器2101。将从接收器2101输出的数字视频信号和其他信号通过总线提供给CPU。
现在在这种系统上启动游戏软件。游戏软件程序允许将响应从外部提供的数字视频信号的视频用作游戏内的图像。例如,根据游戏软件程序,将响应从外部提供的数字视频信号的图像用作游戏中的图像,并且识别图像中角色(玩家)的运动,从而可以采取响应识别出的移动的活动。
根据本发明的编码方法,摄像机2200以包含在其内的发射器单元2100内的视频信号编码器2110对拍摄的数字视频信号编码。以数字调制器2111调制编码流,并且提供给无线模块2112。然后将调制信号从天线2113作为无线电波传输。由包含在家用游戏机的主要单元2201内的接收器2101内的天线2120接收传输的无线电波。将接收的信号通过无线模块2121和前端2122提供给数字解调器2123。然后由数字解调器2123将收到的信号解调为编码流,将编码流提供给视频信号解码器2124。视频信号解码器2124根据本发明的解码方法解码提供的编码流,从而输出基带的数字视频信号。
在家用游戏机的主要单元2201内的总线上传输从视频信号解码器2124输出的基带的数字视频信号,以便临时存储在RAM上。根据预定的程序,CPU从RAM读取数字视频信号,从而检测响应数字视频信号的图像内的角色的运动,并且在游戏内使用该图像。
从由摄像机2200对图像的捕捉和对捕捉的数字视频信号编码到由家用游戏机的主要单元2201将编码流解码为图像经过一个短的延迟时间。更好的响应导致操作在家用游戏机的主要单元2201上的游戏软件程序中的玩家的运动。从而可以获得平滑游戏操作的乐趣。
以这种方式与家用游戏机结合使用的摄像机2200通常由于成本和大小的要求具有简单的结构。与计算机不同,通常不安装高吞吐率的CPU和大容量的存储器。
摄像机2200是家用游戏机的主要单元2201的外围设备,并且仅在玩使用摄像机2200的游戏时被需要。当使用家用游戏机的主要单元2201玩游戏时,不需要摄像机2200。在该情况下,与主要单元2201分开地销售摄像机2200。如果给摄像机2200提供高吞吐率的CPU和大容量的存储器并且以高价格销售,销售量可能会下降。使用摄像机2200的游戏软件的销售也可能下降,可能导致利润的减少。具体地,家用游戏程序的传播速度可能影响销售量。如果摄像机2200的传播速度低,销售数量也可能低。
通过以低价格销售摄像机2200可以增加传输速度,并且从而增加使用摄像机2200的家用游戏软件的销售量和流行性。这导致消费者愿意购买主要单元2201。优选地摄像机2200具有简单的结构。
容纳在摄像机2200内的发射器单元2100内的视频信号编码器2110可以设计为以低的分割等级执行小波变换。以这种方式,小存储器容量的重新布置缓冲区就可以胜任。
可以将图37的图像编码装置的结构直接应用于视频信号编码器2110。如果将图37的图像编码装置的结构直接应用于视频信号编码器2110,视频信号编码器2110不用对小波变换系数数据进行重新布置处理。从而有利地减少了摄像机2200上的工作负载。在该情况下,包含在家用游戏机的主要单元2201内的接收器2101需要使用图41的图像解码装置作为视频信号解码器2124。
在上面的讨论中,使用无线通信将家用游戏机的摄像机2200和主要单元2201彼此连接。本发明不限于这种布置。可替换地,可以使用有线通信诸如类似USB或IEEE1394的接口将家用游戏机的摄像机2200和主要单元2201彼此连接。
本发明可以被实现在各种实施例内,并且可以找到各种应用(一般的应用)。
可以使用硬件或软件执行上述一系列的处理步骤。如果使用软件执行上述一系列的处理步骤,可以在包含在专用硬件系统内的计算机上、在通过在其上安装各种程序,执行各种功能的通用计算机上、或在包含多个装置的信息处理系统的信息处理装置上安装构成该软件的程序。
图92是示出了执行上述一系列处理步骤的程序的信息处理系统的结构的方框图。
如图92中所示,信息处理系统2300包括信息处理装置2301、通过PCI总线2302连接到信息处理装置2301的存储设备2303、多个磁带录像机(VTR)VTR2304-1到VTR2304-S、由于用户向这些VTR输入操作输入的鼠标2305、键盘2306和操作控制器2307。信息处理系统2300在安装的程序的控制下执行上述的图像编码处理和图像解码处理。
信息处理系统2300中的信息处理装置2301使得由RAID(独立磁盘冗余阵列)构成的大容量存储设备2303存储通过对存储在存储设备2303上的运动图像内容编码而获得的数据,使得存储设备2303存储通过对存储在存储设备2303上的编码数据解码而获得的图像数据(运动图像内容),并且使得将编码数据和解码图像数据记录在VTR2304-1到VTR2304-S的视频带上。信息处理装置2301还取回记录在装在VTR2304-1到VTR2304-S上的视频带上的运动图像内容并且放入存储设备2303。在该情况下,信息处理装置2301可以对运动图像内容编码。
信息处理装置2301包括微处理器2401、GPU(图形处理单元)2402、XDR(终极数据速率)RAM2403、南桥2404、HDD2405、USB接口(USBI/F)2406和声音输入/输出编码解码器2407。
GPU2402通过其专用总线2411连接到微处理器2401。XDR-RAM2403通过其专用总线2412连接到微处理器2401。南桥2404通过其专用总线连接到微处理器2401的I/O控制器2444。南桥2404连接HDD2405、USB接口2406和声音输入/输出编码解码器2407。声音输入/输出编码解码器2407连接到扬声器2421。GPU2402连接到显示器2422。
南桥2404还通过PCI总线2302连接到鼠标2305、键盘2306、VTR2304-1到VTR2304-S、存储设备2303和操作控制器2307。
鼠标2305和键盘2306接收用户的操作输入,并且通过PCI总线2302和南桥2404将响应用户的操作输入的信号提供给微处理器2401。存储设备2303和VTR2304-1到VTR2304-S设计为记录或再现预定的数据。
如果需要PCI总线2302还连接驱动器2308。将可移动介质2311诸如磁盘、光盘、磁光盘或半导体存储器装入驱动器2308。将从可移动介质2311读取的计算机程序安装在HDD2405上。
微处理器2401是单片多核心结构,并且包括用于执行基本程序诸如OS(操作系统)的通用主CPU核心2441、多个RISC(精简指令集计算机)类型的信号处理器(在该情况下为8个处理器)、通过内部总线2445连接到主CPU2411的子CPU2442-1到2442-8、用于控制具有256[M字节]的存储器大小的XDR-RAM2403的存储器控制器2443、用于以南桥2404管理数据的输入和输出的I/O(输入/输出)控制器2444。微处理器2401以4[GHz]的操作频率运行。
在启动时,微处理器2401根据HDD2405中的控制程序从HD2405读取所需的应用程序,并且将该应用程序在XDR-RAM2403上展开。微处理器2401然后根据该应用程序和用户的操作输入执行控制处理。
通过执行软件程序,微处理器2401执行每个前面的实施例中的图像编码处理和图像解码处理,通过南桥2404将作为编码结果而获得的编码流提供给HDD2405,以便存储,并且将作为解码结果而获得的运动图像内容的再现图像传输到GPU2402以便显示在显示器2422上。
微处理器2401的每个CPU核心的使用是可选择的。例如,主CPU核心2441控制图像编码处理和图像解码处理,从而如参考图11讨论的,使得8个子CPU核心2442-1到2442-8并发地并行执行熵编码、小波变换、量化和去量化。如果主CPU核心2441可以在8个子CPU核心2442-1到2442-8间以行块(区域)划分处理,则如参考图11讨论的,并发地并行执行图像编码处理和图像解码处理。增加了图像编码处理和图像解码处理的效率,缩短了整个处理的延迟时间,并且减少了执行每个处理所需的工作负载、处理时间和存储器大小。还可以使用采用teachCPU核心的其他方法。
例如,主CPU核心2441的8个子CPU核心2442-1到2442-8中的某一些可以执行编码处理,并且其他的可以并发地并行地执行解码处理。
如果将独立的编码器、独立的解码器或独立的编码解码器处理设备连接到PCI总线2302,主CPU核心2441的8个子CPU核心2442-1到2442-8可以控制连接的设备。如果连接多个设备,或如果连接的设备包括多个编码器或解码器,主CPU核心2441的8个子CPU核心2442-1到2442-8划分并且控制由多个编码器和解码器执行的处理。
主CPU核心2441管理8个子CPU核心2442-1到2442-8的操作,给每个子CPU核心分配处理,并且接收处理结果。主CPU核心2441执行除了8个子CPU核心2442-1到2442-8执行的处理之外的处理。例如,主CPU核心2441通过南桥2404接收来自鼠标2305、键盘2306和操作控制器2307之一的命令,并且响应收到的命令执行各种处理。
GPU2402执行用于最终呈现纹理的呈现处理,以便移动运动内容的再现图像,将其显示在显示器2422上。GPU2402还执行用于在显示器2422上一次显示包括运动图像内容的再现视频和静止图像内容的静止图像的多个图像的坐标转换计算操作,以及用于运动图像内容的再现视频和静止图像内容的静止图像的扩大和缩小的比例扩大和缩小操作。从而GPU2402减少微处理器2401的工作负载。
GPU2402在微处理器2401的控制下对提供的运动图像内容的视频数据和静止图像内容的图像数据执行预定的信号处理,并且向显示器2422输出得到的视频数据和图像数据,以便在显示器2422上显示响应提供的数据的图像。
通过总线2411将当前由微处理器2401的8个子CPU核心2442-1到2442-8并行解码的多个运动内容单元的再现视频传输到GPU2402。数据速率最大为30[G字节/秒],并且即使是经过特效处理的复杂的再现视频也可以高速度平滑地显示。
微处理器2401对运动图像内容的视频和音频数据的音频数据执行混音操作,并且通过南桥2404和声音输入/输出编码解码器2407将得到的编辑后的音频数据传输到扬声器2421。从而从2421输出响应音频数据的声音。
如果使用软件执行上述的处理,通过网络或从记录介质安装构成该软件的程序。
记录介质可以是如图92中所示与装置分开地提供给用户的其上存储有程序的可移动介质2311。记录介质可以包括磁盘(包括软盘)、光盘(诸如CD-ROM或DVD)、磁光盘(包括MD)、半导体存储器之一。记录介质还可以包括其上存储有程序的在装置中提供给用户的HDD2405和存储设备2303之一。记录介质还可以是诸如ROM或闪速存储器的半导体存储器。
在上面的讨论中,微处理器2401包括8个子CPU核心。子CPU核心的数目是可选择的。微处理器2401不必由诸如子CPU核心的多个核心构成。微处理器2401可以由单个核心构成。可以取代微处理器2401使用多个CPU。可以使用多个信息处理装置(彼此协同地执行本发明的处理)。
在本发明的说明书中,可以如上所述以串行顺序执行构成记录在记录介质上的程序的处理步骤。可替换地,可以并行或单独地执行这些处理步骤。
在本发明的说明书中,系统指由多个设备构成的整个装置。
可以将上述装置的结构分为多个装置。相反地,上述的多个装置的结构可以集成在一个装置内。可以将除了上述之外的结构附加到上述装置中的每一个。如果该系统的结构和操作保持不变,可以将一个装置的结构的一部分包括在另一个装置内。
工业实用性
如上所述,本发明在装置和系统中找到各种应用,只要所述装置和系统对图像编码,将编码图像传输到,目的地,并且对编码图像解码,并且在目的地上输出图像即可。本发明特别适用于处理隔行扫描的运动图像数据的系统。
根据本发明,即使编码流的位速率低,也可以在解码的图像数据中实现高的主观图像质量。即使是允许相对低的传输容量的传输路径也可以在解码侧提供高质量的图像。换言之,如果使用具有高传输容量的传输路径,可以高速度传输编码流。
本发明在远程医疗诊断中找到适当的应用,其中医生在观看以摄像机拍摄的视频的同时,使用机械手执行医疗治疗。本发明还在广播站系统中找到适当的应用,其中对数字视频信号编码并且传输,并且对压缩的编码数字视频信号解码。
本发明还在发布实时视频的系统,或在教育领域中的在教师和学生间执行交互通信的系统中找到应用。
本发明还在由具有图像拍摄功能的移动终端诸如带照相机功能的蜂窝电话、电视会议系统、或包括监视摄像机和记录由监视摄像机拍摄的视频的记录器的系统所拍摄的图像数据的传输中找到应用。
权利要求书(按照条约第19条的修改)
1.一种用于对图像数据进行编码的编码装置,包括:
相加滤波器,用于对通过对构成所述图像数据的一帧的第一域和第二域执行相加运算而获得的相加图像数据进行滤波,并且产生包含根据频带分割的相加系数数据的多个子带,
相减滤波器,用于对通过在构成所述图像数据的所述一帧的第一域和第二域间执行相减运算而获得的相减图像数据进行滤波,并且产生包含根据频带分割的相减系数数据的多个子带,
相加编码器,用于通过沿从最高位位置到较低位位置的方向,对相加系数数据进行编码,产生相加编码数据,
相减编码器,用于通过沿从最高位位置到较低位位置的方向,对相减系数数据进行编码,产生相减编码数据,及
编码多路复用器,用于通过多路复用由所述相加编码器产生的相加编码数据和由所述相减编码器产生的相减编码数据,产生编码数据。
2.如权利要求1的编码装置,还包括:
用于将由所述相加滤波器产生的相加系数数据分割到位平面的相加位平面分割器,和
用于将由所述相减滤波器产生的相减系数数据分割到位平面的相减位平面分割器,
其中所述相加编码器沿从最高位位置处的位平面到较低位位置处的位平面的方向,逐位平面地对所述相加位平面分割器分割的相加系数数据进行编码,并且
其中所述相减编码器沿从最高位位置处的位平面到较低位位置处的位平面的方向,逐位平面地对所述相减位平面分割器分割的相减系数数据进行编码。
3.如权利要求1的编码装置,还包括:
代码量控制器,用于独立地控制所述相加编码器的编码操作中产生的代码量、以及所述相减编码器的编码操作中产生的代码量。
4.如权利要求3的编码装置,其中所述代码量控制器在所述相加系数数据的编码操作中产生的代码量达到目标代码量时,停止所述相加编码器的编码操作。
5.如权利要求3的编码装置,其中所述代码量控制器在所述相减系数数据的编码操作中产生的代码量达到目标代码量时,停止所述相减编码器的编码操作。
6.如权利要求3的编码装置,还包括用于设置优先级顺序的设置器,根据该优先级顺序给相加系数数据的类型或相减系数数据的类型分配产生的代码的量。
7.如权利要求6的编码装置,其中所述设置器将包含在所述相加图像数据内的亮度组分的优先级顺序设置为高于包含在所述相加图像数据内的色差组分的优先级顺序。
8.如权利要求6的编码装置,其中所述设置器将包含在所述相减图像数据内的亮度组分的优先级顺序设置为高于包含在所述相减图像数据内的色差组分的优先级顺序。
9.如权利要求2的编码装置,其中所述相加编码器和相减编码器中的每一个沿从最低频率区域处的子带到最高频率区域处的子带的方向,对相同位位置处的位平面编码。
10.如权利要求1的编码装置,还包括:
相加图像产生器,用于通过对构成所述图像数据的所述一帧的第一域和第二域执行相加运算,产生相加图像数据,和
相减图像产生器,用于通过在构成所述图像数据的所述一帧的第一域和第二域间执行相减运算,产生相减图像数据。
11.如权利要求1的编码装置,其中所述相加滤波器逐行块地对行块滤波,每个行块包含产生相应于至少具有最低频率区域的子带的一行的相加系数数据所需的行数的图像数据,并且
其中所述相减滤波器逐行块地对行块滤波,每个行块包含产生相应于至少具有最低频率区域的子带的一行的相减系数数据所需的行数的图像数据。
12.如权利要求11的编码装置,还包括:
相加系数重新布置器,用于根据据以通过多路复用根据频带分割的所述多个子带的相加系数数据产生所述相加图像数据的多路复用的顺序,逐行块地事先重新布置由所述相加滤波器产生的所述相加系数数据,和
相减系数重新布置器,用于根据据以通过多路复用根据频带分割的所述多个子带的相减系数数据产生所述相减图像数据的多路复用的顺序,逐行块地事先重新布置由所述相减滤波器产生的所述相减系数数据,
其中所述相加编码器对由所述相加系数重新布置器重新布置的相加系数数据编码,并且
其中所述相减编码器对由所述相减系数重新布置器重新布置的相减系数数据编码。
13.如权利要求11的编码装置,还包括:
相加控制器,用于控制所述相加滤波器、所述相加系数重新布置器和所述相加编码器,以便逐行块地并行操作,和
相减控制器,用于控制所述相减滤波器、所述相减系数重新布置器和所述相减编码器,以便逐行块地并行操作。
14.如权利要求1的编码装置,其中所述相加滤波器、所述相加系数重新布置器和所述相加编码器并行执行其操作,并且
其中所述相减滤波器、所述相减系数重新布置器和所述相减编码器并行执行其处理。
15.一种对图像数据进行编码的编码方法,包括:
相加滤波步骤,用于对通过对构成所述图像数据的一帧的第一域和第二域执行相加运算而获得的相加图像数据进行滤波,并且产生包含根据频带分割的相加系数数据的多个子带,
相减滤波步骤,用于对通过在构成所述图像数据的所述一帧的第一域和第二域间执行相减运算而获得的相减图像数据进行滤波,并且产生包含根据频带分割的相减系数数据的多个子带,
相加编码步骤,用于通过沿从最高位位置到较低位位置的方向,对所述相加系数数据编码,产生相加编码数据,
相减编码步骤,用于通过沿从最高位位置到较低位位置的方向,对相减系数数据编码,产生相减编码数据,及
编码多路复用步骤,用于通过多路复用由所述相加编码器产生的相加编码数据和由所述相减编码器产生的相减编码数据,产生编码数据。
16.一种用于对作为编码数据的图像数据解码的解码装置,包括:
多路分解器,用于将所述编码数据多路分解为相加编码数据和相减编码数据,通过对构成图像数据的一帧的第一域和第二域执行相加运算以便得到相加图像数据,并且通过对所述相加图像数据根据频带被分割到的相加系数数据进行编码,获得所述相加编码数据,并且通过对构成图像数据的所述一帧的第一域和第二域执行相减运算以便得到相减图像数据,并且通过对所述相减图像数据根据频带被分割到的相减系数数据进行编码,获得所述相减编码数据,
相加解码器,用于通过对由所述多路分解器多路分解的所述相加编码数据解码,产生包含在多个子带内的相加系数数据,
相减解码器,用于通过对由所述多路分解器多路分解的所述相减编码数据解码,产生包含在多个子带内的相减系数数据,
相加滤波器,用于通过对由所述相加解码器产生的所述相加系数数据进行滤波,产生所述相加图像数据,
相减滤波器,用于通过对由所述相减解码器产生的所述相减系数数据进行滤波,产生所述相减图像数据,和
图像数据产生器,用于根据由所述相加滤波器产生的相加图像数据和由所述相减滤波器产生的所述相减图像数据产生图像数据。
17.如权利要求16的解码装置,其中所述相加编码数据是通过沿从最高位位置处的位平面到较低位位置处的位平面的方向,将所述相加系数数据分割到位平面,并且逐位平面地对所述相加系数数据的位平面进行编码而获得的数据,并且
其中所述相减编码数据是通过沿从最高位位置处的位平面到较低位位置处的位平面的方向,将所述相减系数数据分割到位平面,并且逐位平面地对所述相减系数数据的位平面进行编码而获得的数据。
18.一种对作为编码数据的图像数据解码的解码方法,包括:
多路分解步骤,用于将所述编码数据多路分解为相加编码数据和相减编码数据,通过对构成图像数据的一帧的第一域和第二域执行相加运算以便得到相加图像数据,并且通过对所述相加图像数据根据频带被分割到的相加系数数据进行编码,获得所述相加编码数据,并且通过对构成图像数据的所述一帧的第一域和第二域执行相减运算以便得到相减图像数据,并且通过对所述相减图像数据根据频带被分割到的相减系数数据进行编码,获得所述相减编码数据,
相加解码步骤,用于通过对在所述多路分解步骤中多路分解的所述相加编码数据进行解码,产生包含在多个子带内的相加系数数据,
相减解码步骤,用于通过对在所述多路分解步骤中多路分解的所述相减编码数据进行解码,产生包含在多个子带内的相减系数数据,
相加滤波步骤,用于通过对在所述相加解码步骤中产生的所述相加系数数据进行滤波,产生所述相加图像数据,
相减滤波步骤,用于通过对在所述相减解码步骤中产生的所述相减系数数据进行滤波,产生所述相减图像数据,和
图像数据产生步骤,用于根据在所述相加滤波步骤中产生的相加图像数据和在所述相减滤波步骤中产生的所述相减图像数据产生图像数据。
Claims (21)
1.一种用于压缩编码隔行扫描的图像数据的编码装置,包括:
加法器,用于对第一域和第二域执行相加运算,第一域和第二域构成所述隔行扫描的图像数据的一帧,
减法器,用于执行第一域和第二域间的相减运算,和
编码器,用于对从所述加法器输出的相加图像数据和从所述减法器输出的相减图像数据编码,从而在所述相加图像数据和相减图像数据中的每一个内,代码处于其完成形式。
2.如权利要求1的编码装置,其中所述编码器包括:
用于对所述相加图像数据编码的第一编码单元,
用于对所述相减图像数据编码的第二编码单元,和
用于独立地控制从第一编码单元的编码中得到的代码量和从第二编码单元的编码中得到的代码量的代码量控制器。
3.如权利要求2的编码装置,其中第一编码单元和第二编码单元中的每一个包括:
用于对所述图像数据执行分层的滤波操作以便产生多个子带的滤波器,每个子带包括根据频带划分的系数数据,
位平面分割器,用于将由所述滤波器产生的系数数据分割到位平面,和
熵编码器,用于从最高位位置处的位平面到最低位位置处的位平面逐位平面地对由所述位平面分割器分割的系数数据进行熵编码。
4.如权利要求3的编码装置,其中所述代码量控制器通过在目标代码量的位平面处停止所述熵编码器的熵编码来控制代码量,并且
其中在第一编码单元和第二编码单元中的每一个内设置所述目标代码量。
5.如权利要求3的编码装置,其中所述熵编码器从低频区域处的子带到高频区域处的子带,对相同位位置处的位平面连续地熵编码。
6.如权利要求1的编码装置,其中所述编码器包括用于对所述相加图像数据和所述相减图像数据整体编码的整体编码单元,以及
用于控制编码中的代码量的代码量控制器。
7.如权利要求6的编码装置,其中所述整体编码单元包括:
滤波器,用于对所述图像数据执行分层滤波操作以便产生多个子带,每个子带包括根据频带划分的系数数据,
位平面分割器,用于将由所述滤波器产生的相加图像数据和相减图像数据中的每一个的系数数据分割到位平面,和
熵编码器,用于从最高位位置处的位平面到最低位位置处的位平面,逐位平面地对相加图像数据和相减图像数据的在同一位位置处的位平面的由所述位平面分割器分割的系数数据进行整体熵编码。
8.如权利要求7的编码装置,其中所述熵编码器从低频区域处的子带到高频区域处的子带,对相同位位置处的位平面连续地熵编码。
9.如权利要求1的编码装置,其中所述编码器根据将要编码的数据的类型设置优先级顺序,并且根据所述优先级顺序将编码的数据包括在将要输出的编码流内。
10.如权利要求9的编码装置,其中为所述相加图像数据、所述相减图像数据、以及所述图像数据中的每一个的亮度组分和所述相加图像数据、所述相减图像数据、以及所述图像数据中的每一个的色差组分设置优先级顺序。
11.如权利要求10的编码装置,其中按从高到低的优先级顺序,所述相加图像数据的亮度组分具有最高的优先级顺序,之后是所述相加图像数据的色差组分、所述相减图像数据的亮度组分和所述相减图像数据的色差组分。
12.如权利要求10的编码装置,其中按从高到低的优先级顺序,所述相加图像数据的亮度组分具有最高的优先级顺序,之后是所述相减图像数据的亮度组分、所述相加图像数据的色差组分和所述相减图像数据的色差组分。
13.一种用于压缩编码隔行扫描的图像数据的编码方法,包括:
对第一域和第二域执行相加运算的相加步骤,第一域和第二域构成所述隔行扫描的图像数据的一帧,
执行第一域和第二域间的相减运算的相减步骤,和
对所述相加步骤中输出的相加图像数据和所述相减步骤中输出的相减图像数据进行编码,从而在所述相加图像数据和相减图像数据中的每一个内,代码处于其完成形式的编码步骤。
14.一种编码程序,用于使得计算机执行用于对隔行扫描的图像数据进行压缩编码的编码方法,该编码方法包括:
对第一域和第二域执行相加运算的相加步骤,第一域和第二域构成所述隔行扫描的图像数据的一帧,
执行第一域和第二域间的相减运算的相减步骤,和
对所述相加步骤中输出的相加图像数据和所述相减步骤中输出的相减图像数据进行编码,从而在所述相加图像数据和相减图像数据中的每一个内,代码处于其完成形式的编码步骤。
15.一种解码装置,包括:
解码器,用于对已经被编码从而相加图像数据和相减图像数据彼此独立地允许代码处于其完成形式的数据进行解码,所述相加图像数据经过了构成隔行扫描的图像数据的一帧的第一域和第二域间的相加运算,并且所述相减图像数据经过了第一域和第二域间的相减运算,
提取器,用于从由所述解码器解码的相加图像数据和相减图像数据中提取第一域和第二域,和
输出单元,用于以正确的定时重新布置由所述提取器提取的第一域和第二域,并且输出重新布置的第一和第二域。
16.如权利要求15的解码装置,包括:
分离器,用于将所述编码数据分离为作为所述相加图像数据的编码版本的相加图像编码数据和作为所述相减图像数据的编码版本的相减图像编码数据,
第一解码器,用于对由所述分离器分离的所述相加图像编码数据解码,和
第二解码器,用于对由所述分离器分离的所述相减图像编码数据解码。
17.如权利要求16的解码装置,其中通过根据作为对图像数据执行的分层滤波操作的结果的频带划分系数数据,将所述系数数据分割到所述相加图像数据和所述相减图像数据中的每一个的位平面,并且从最高位位置处的位平面到最低位位置处的位平面,逐位平面地对分割到位平面内的所述相加图像数据和所述相减图像数据中的每一个的所述系数数据进行熵编码,产生所述编码数据,
其中第一解码器从最高位位置处的位平面到最低位位置处的位平面,对所述相加图像数据的位平面进行熵解码,并且
其中第二解码器从最高位位置处的位平面到最低位位置处的位平面,对所述相减图像数据的位平面进行熵解码。
18.如权利要求15的解码装置,其中通过根据作为对图像数据执行的分层滤波操作的结果的频带划分系数数据,将所述系数数据分割到所述相加图像数据和所述相减图像数据中的每一个的位平面,并且从最高位位置处的位平面到最低位位置处的位平面,逐位平面地对所述相加图像数据和所述相减图像数据在相同位位置处的位平面的系数数据整体熵编码,产生所述编码数据,和
其中所述解码器从最高位位置处的位平面到最低位位置处的位平面,对所述相加图像数据的位平面和所述相减图像数据的位平面整体熵解码。
19.如权利要求15的解码装置,其中通过根据作为对图像数据执行的分层滤波操作的结果的频带划分系数数据,将所述系数数据分割到所述图像数据的亮度组分和色差组分中的每一个的位平面,并且从最高位位置处的位平面到最低位位置处的位平面,逐位平面地对所述图像数据的亮度组分和色差组分在相同位位置处的位平面的系数数据进行熵编码,产生所述编码数据,和
其中所述解码器按从亮度组分的位平面到色差组分的位平面的顺序,对相同位位置处的位平面熵解码。
20.一种解码方法,包括:
解码步骤,其对已经被编码从而相加图像数据和相减图像数据彼此独立地允许代码处于其完成形式的数据进行解码,所述相加图像数据经过了构成隔行扫描的图像数据的一帧的第一域和第二域间的相加运算,并且所述相减图像数据经过了第一域和第二域间的相减运算,
提取步骤,其从在所述解码步骤中解码的相加图像数据和相减图像数据中提取第一域和第二域,和
输出步骤,其以正确的定时重新布置在所述提取步骤中提取的第一域和第二域,并且输出重新布置的第一和第二域。
21.一种用于使得计算机执行解码方法的解码程序,该解码方法包括:
解码步骤,其对已经被编码从而相加图像数据和相减图像数据彼此独立地允许代码处于其完成形式的数据进行解码,所述相加图像数据经过了构成隔行扫描的图像数据的一帧的第一域和第二域间的相加运算,并且所述相减图像数据经过了第一域和第二域间的相减运算,
提取步骤,其从在所述解码步骤中解码的相加图像数据和相减图像数据中提取第一域和第二域,和
输出步骤,其以正确的定时重新布置在所述提取步骤中提取的第一域和第二域,并且输出重新布置的第一和第二域。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP353200/2005 | 2005-12-07 | ||
| JP2005353200 | 2005-12-07 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN101138248A true CN101138248A (zh) | 2008-03-05 |
Family
ID=38122855
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN200680007407.0A Pending CN101138248A (zh) | 2005-12-07 | 2006-12-07 | 编码装置、编码方法、编码程序、解码装置、解码方法和解码程序 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US8254707B2 (zh) |
| JP (1) | JPWO2007066710A1 (zh) |
| CN (1) | CN101138248A (zh) |
| WO (1) | WO2007066710A1 (zh) |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102224734A (zh) * | 2008-10-02 | 2011-10-19 | 索尼公司 | 图像处理设备和方法 |
| CN102682281A (zh) * | 2011-03-04 | 2012-09-19 | 微软公司 | 视频中聚集的面部跟踪 |
| CN103559702A (zh) * | 2013-09-26 | 2014-02-05 | 哈尔滨商业大学 | 基于小波系数熵的二维单视图像深度估计方法 |
| CN104509119A (zh) * | 2012-04-24 | 2015-04-08 | Vid拓展公司 | 用于mpeg/3gpp-dash中平滑流切换的方法和装置 |
| CN105659609A (zh) * | 2013-11-01 | 2016-06-08 | 索尼公司 | 图像处理设备和方法 |
| CN105659610A (zh) * | 2013-11-01 | 2016-06-08 | 索尼公司 | 图像处理设备和方法 |
| CN106537912A (zh) * | 2014-07-22 | 2017-03-22 | 汤姆逊许可公司 | 用于处理图像数据的方法和装置 |
| CN107509082A (zh) * | 2012-06-29 | 2017-12-22 | 佳能株式会社 | 图像编码装置、图像编码方法及存储介质 |
| CN111006697A (zh) * | 2019-10-25 | 2020-04-14 | 珠海格力电器股份有限公司 | 一种编码器的位置数据处理及传输控制系统、方法及应用 |
| CN111951949A (zh) * | 2020-01-21 | 2020-11-17 | 梅里医疗科技(洋浦)有限责任公司 | 一种用于智慧病房的智能护理交互系统 |
Families Citing this family (64)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8250618B2 (en) * | 2006-09-18 | 2012-08-21 | Elemental Technologies, Inc. | Real-time network adaptive digital video encoding/decoding |
| WO2008035745A1 (en) * | 2006-09-20 | 2008-03-27 | Panasonic Corporation | Monitor system, camera and video image coding method |
| US8184715B1 (en) | 2007-08-09 | 2012-05-22 | Elemental Technologies, Inc. | Method for efficiently executing video encoding operations on stream processor architectures |
| US8121197B2 (en) * | 2007-11-13 | 2012-02-21 | Elemental Technologies, Inc. | Video encoding and decoding using parallel processors |
| TWI349487B (en) * | 2008-03-25 | 2011-09-21 | Novatek Microelectronics Corp | Entropy encoding circuit and encoding method thereof |
| TWI376959B (en) * | 2008-05-02 | 2012-11-11 | Novatek Microelectronics Corp | Entropy decoding circuit, entropy decoding method, and entropy decoding method using a pipeline manner |
| JP2010103969A (ja) * | 2008-09-25 | 2010-05-06 | Renesas Technology Corp | 画像復号方法、画像復号装置、画像符号化方法及び画像符号化装置 |
| US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
| US8687702B2 (en) * | 2008-10-27 | 2014-04-01 | Advanced Micro Devices, Inc. | Remote transmission and display of video data using standard H.264-based video codecs |
| JP4670947B2 (ja) * | 2008-12-05 | 2011-04-13 | ソニー株式会社 | 情報処理装置および方法 |
| EP2396969A4 (en) * | 2009-02-13 | 2012-12-12 | Research In Motion Ltd | MODIFIED ENTROPIC CODING FOR IMAGES AND VIDEOS |
| JP5375490B2 (ja) * | 2009-09-29 | 2013-12-25 | ソニー株式会社 | 送信装置、受信装置、通信システム及びプログラム |
| JP5679980B2 (ja) * | 2009-11-02 | 2015-03-04 | パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America | 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置 |
| JP5640371B2 (ja) * | 2009-12-18 | 2014-12-17 | ソニー株式会社 | カメラシステム及び画像処理方法 |
| US20120047535A1 (en) * | 2009-12-31 | 2012-02-23 | Broadcom Corporation | Streaming transcoder with adaptive upstream & downstream transcode coordination |
| KR101675118B1 (ko) | 2010-01-14 | 2016-11-10 | 삼성전자 주식회사 | 스킵 및 분할 순서를 고려한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치 |
| DE102010029030A1 (de) * | 2010-05-17 | 2012-03-01 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren und Vorrichtung zur Verarbeitung von Daten in einem Fahrzeug |
| US10334288B2 (en) * | 2010-06-15 | 2019-06-25 | Avago Technologies International Sales Pte. Limited | Method and system for zero overhead parallel entropy decoding |
| DE102010030973B4 (de) * | 2010-07-06 | 2012-02-02 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Videocodierer und Verfahren zum Decodieren einer Sequenz von Bildern |
| US8755444B2 (en) | 2010-08-06 | 2014-06-17 | Qualcomm Incorporated | Two-stage entropy decoding |
| US8983213B1 (en) * | 2010-08-30 | 2015-03-17 | Accusoft Corporation | Image coding and decoding methods and apparatus |
| US8934725B1 (en) | 2010-08-30 | 2015-01-13 | Accusoft Corporation | Image coding and decoding methods and apparatus |
| US9571230B2 (en) * | 2010-10-06 | 2017-02-14 | International Business Machines Corporation | Adjusting routing of data within a network path |
| US8918693B2 (en) | 2010-10-06 | 2014-12-23 | Cleversafe, Inc. | Data transmission utilizing data processing and dispersed storage error encoding |
| JP2012129949A (ja) * | 2010-12-17 | 2012-07-05 | Toshiba Corp | 画像符号化方法及び装置、画像復号化方法及び装置 |
| JP5801614B2 (ja) * | 2011-06-09 | 2015-10-28 | キヤノン株式会社 | 画像処理装置、画像処理方法 |
| JP5839848B2 (ja) | 2011-06-13 | 2016-01-06 | キヤノン株式会社 | 画像処理装置、画像処理方法 |
| US9258565B1 (en) * | 2011-06-29 | 2016-02-09 | Freescale Semiconductor, Inc. | Context model cache-management in a dual-pipeline CABAC architecture |
| US20130101014A1 (en) * | 2011-10-25 | 2013-04-25 | Microsoft Corporation | Layered Screen Video Encoding |
| US9986235B2 (en) * | 2011-10-31 | 2018-05-29 | Mitsubishi Electric Corporation | Video decoding device and video decoding method |
| US9344722B2 (en) * | 2011-11-18 | 2016-05-17 | Futurewei Technologies, Inc. | Scanning of prediction residuals in high efficiency video coding |
| CN102572429B (zh) * | 2011-12-29 | 2014-07-09 | 东南大学 | 一种二维离散小波变换的硬件架构 |
| US8711013B2 (en) * | 2012-01-17 | 2014-04-29 | Lsi Corporation | Coding circuitry for difference-based data transformation |
| US9344720B2 (en) * | 2012-08-07 | 2016-05-17 | Apple Inc. | Entropy coding techniques and protocol to support parallel processing with low latency |
| JP6125215B2 (ja) | 2012-09-21 | 2017-05-10 | 株式会社東芝 | 復号装置、及び符号化装置 |
| US20140294072A1 (en) * | 2013-03-27 | 2014-10-02 | Magnum Semiconductor, Inc. | Apparatuses and methods for staggered-field intra-refresh |
| US9398312B2 (en) * | 2013-11-04 | 2016-07-19 | Samsung Display Co., Ltd. | Adaptive inter-channel transform for wavelet color image compression |
| JP2017519385A (ja) * | 2014-04-04 | 2017-07-13 | レッド.コム,インコーポレイテッド | カメラ、ビデオカメラ用の放送モジュール、モジュール式カメラ |
| JP6358847B2 (ja) * | 2014-05-14 | 2018-07-18 | オリンパス株式会社 | 表示処理装置および撮像装置 |
| JP2016021600A (ja) * | 2014-07-11 | 2016-02-04 | 株式会社リコー | 画像符号化装置、画像処理装置、画像送受信システム、画像符号化方法及び制御プログラム |
| US20160112707A1 (en) * | 2014-10-15 | 2016-04-21 | Intel Corporation | Policy-based image encoding |
| US10417766B2 (en) * | 2014-11-13 | 2019-09-17 | Samsung Electronics Co., Ltd. | Method and device for generating metadata including frequency characteristic information of image |
| JP2017050592A (ja) * | 2015-08-31 | 2017-03-09 | ルネサスエレクトロニクス株式会社 | 画像符号化装置、画像復号化装置および画像伝送装置 |
| JP6551073B2 (ja) * | 2015-09-03 | 2019-07-31 | 株式会社Jvcケンウッド | 画像符号化装置及び方法、並びに、画像復号装置及び方法 |
| WO2017110659A1 (ja) * | 2015-12-24 | 2017-06-29 | ソニー株式会社 | エフェクト・スイッチャおよびスイッチャシステム |
| JP6420505B2 (ja) * | 2016-02-10 | 2018-11-07 | 株式会社日立国際電気 | 映像信号伝送装置 |
| US10542283B2 (en) * | 2016-02-24 | 2020-01-21 | Wipro Limited | Distributed video encoding/decoding apparatus and method to achieve improved rate distortion performance |
| JP6857970B2 (ja) * | 2016-06-01 | 2021-04-14 | キヤノン株式会社 | 画像符号化装置及びその制御方法 |
| JP6806466B2 (ja) * | 2016-06-01 | 2021-01-06 | キヤノン株式会社 | 画像符号化装置及びその制御方法 |
| JP6857973B2 (ja) * | 2016-06-14 | 2021-04-14 | キヤノン株式会社 | 画像符号化装置及びその制御方法 |
| JPWO2018021112A1 (ja) * | 2016-07-27 | 2019-05-09 | ソニー株式会社 | スタジオ機器制御システム、スタジオ機器制御システムの制御方法およびプログラム |
| HUE070105T2 (hu) | 2017-09-26 | 2025-05-28 | Panasonic Ip Corp America | Dekódoló eszköz és dekódolási eljárás |
| CN107801026B (zh) * | 2017-11-09 | 2019-12-03 | 京东方科技集团股份有限公司 | 图像压缩方法及装置、图像压缩及解压缩系统 |
| US10552988B2 (en) * | 2017-12-22 | 2020-02-04 | Intel Corporation | Ordering segments of an image for encoding and transmission to a display device |
| CN112042161B (zh) * | 2018-01-26 | 2023-09-26 | 加州理工学院 | 通过在零点上调制数据来进行通信的系统和方法 |
| US10893297B2 (en) * | 2018-03-22 | 2021-01-12 | Apical Ltd. | Processing image data using tiered bit-layers |
| US11882285B2 (en) | 2019-01-23 | 2024-01-23 | Lg Electronics Inc. | Video signal processing method and device |
| EP3921986A4 (en) * | 2019-02-07 | 2022-11-02 | California Institute of Technology | SYSTEMS AND METHODS FOR COMMUNICATING BY MODULATING DATA ON ZEROES IN CASE OF CHANNEL IMPAIRMENTS |
| US11470310B2 (en) * | 2019-06-28 | 2022-10-11 | Comcast Cable Communications, Llc | Processing media by adaptive group of pictures structuring |
| US12225125B2 (en) * | 2020-02-26 | 2025-02-11 | Amera IoT Inc. | Method and apparatus for using a picture and shared secret to create replicable high quality pools of entropy for keys for encryption, authentication and one time pads for images, data and message encoding |
| US11256783B2 (en) | 2020-02-26 | 2022-02-22 | Amera IoT Inc. | Method and apparatus for simultaneous key generation on device and server for secure communication |
| US11258602B2 (en) | 2020-02-26 | 2022-02-22 | Amera IoT Inc. | Method and apparatus for secure private key storage on IoT device |
| EP4342181B1 (en) * | 2021-05-20 | 2025-05-07 | Yamzz Ip | Method and system for processing an image |
| CN119517050A (zh) * | 2022-06-15 | 2025-02-25 | 腾讯科技(深圳)有限公司 | 音频编码方法、装置、设备、存储介质及程序产品 |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4868658A (en) * | 1985-12-13 | 1989-09-19 | Multilink Group | Method and apparatus for multiplexing television signals |
| JPH05153550A (ja) * | 1991-12-02 | 1993-06-18 | Matsushita Electric Ind Co Ltd | 映像信号の記録装置および再生装置 |
| EP0545651A3 (en) * | 1991-12-02 | 1993-08-11 | Matsushita Electric Industrial Co., Ltd. | Recorder and player for video digital video signals |
| JP2980218B2 (ja) * | 1992-12-08 | 1999-11-22 | 日本ビクター株式会社 | 画像情報符号化装置及び画像情報復号化装置 |
| JPH06292179A (ja) | 1993-04-01 | 1994-10-18 | Matsushita Electric Ind Co Ltd | 直交変換符号化装置および直交変換復号化装置 |
| GB2286740B (en) * | 1994-02-21 | 1998-04-01 | Sony Uk Ltd | Coding and decoding of video signals |
| GB2295936B (en) * | 1994-12-05 | 1997-02-05 | Microsoft Corp | Progressive image transmission using discrete wavelet transforms |
| JP3213222B2 (ja) * | 1995-11-02 | 2001-10-02 | 株式会社リコー | 符号化方法 |
| JP3213582B2 (ja) * | 1997-05-29 | 2001-10-02 | シャープ株式会社 | 画像符号化装置及び画像復号装置 |
| US6707948B1 (en) * | 1997-11-17 | 2004-03-16 | The Regents Of The University Of California | Image compression for memory-constrained decoders |
| US6678419B1 (en) * | 1999-03-26 | 2004-01-13 | Microsoft Corporation | Reordering wavelet coefficients for improved encoding |
| JP4545980B2 (ja) * | 2000-05-11 | 2010-09-15 | キヤノン株式会社 | 符号化装置及び符号化方法並びに記憶媒体 |
| JP3702778B2 (ja) | 2000-11-27 | 2005-10-05 | ソニー株式会社 | 画像符号化装置及び方法 |
| JP2002359853A (ja) | 2001-03-26 | 2002-12-13 | Sony Corp | 画像処理装置、画像処理方法、画像処理プログラムおよび記録媒体 |
| US6944639B2 (en) * | 2001-06-29 | 2005-09-13 | Nokia Corporation | Hardware context vector generator for JPEG2000 block-coding |
| JP3743384B2 (ja) * | 2002-04-19 | 2006-02-08 | ソニー株式会社 | 画像符号化装置及び方法、並びに画像復号装置及び方法 |
| JP2004104694A (ja) * | 2002-09-12 | 2004-04-02 | Sony Corp | 符号化装置と符号化方法と符号化プログラムおよび復号化装置と復号化方法と復号化プログラム |
-
2006
- 2006-12-07 CN CN200680007407.0A patent/CN101138248A/zh active Pending
- 2006-12-07 JP JP2007549167A patent/JPWO2007066710A1/ja active Pending
- 2006-12-07 WO PCT/JP2006/324419 patent/WO2007066710A1/ja not_active Ceased
- 2006-12-07 US US11/815,692 patent/US8254707B2/en not_active Expired - Fee Related
Cited By (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102224734B (zh) * | 2008-10-02 | 2013-11-13 | 索尼公司 | 图像处理设备和方法 |
| CN102224734A (zh) * | 2008-10-02 | 2011-10-19 | 索尼公司 | 图像处理设备和方法 |
| CN102682281A (zh) * | 2011-03-04 | 2012-09-19 | 微软公司 | 视频中聚集的面部跟踪 |
| CN104509119A (zh) * | 2012-04-24 | 2015-04-08 | Vid拓展公司 | 用于mpeg/3gpp-dash中平滑流切换的方法和装置 |
| CN107509082B (zh) * | 2012-06-29 | 2020-03-17 | 佳能株式会社 | 图像编码装置、图像编码方法及存储介质 |
| CN107509082A (zh) * | 2012-06-29 | 2017-12-22 | 佳能株式会社 | 图像编码装置、图像编码方法及存储介质 |
| CN107517389A (zh) * | 2012-06-29 | 2017-12-26 | 佳能株式会社 | 图像编码装置及方法、图像解码装置及方法及存储介质 |
| CN103559702B (zh) * | 2013-09-26 | 2016-04-20 | 哈尔滨商业大学 | 基于小波系数熵的二维单视图像深度估计方法 |
| CN103559702A (zh) * | 2013-09-26 | 2014-02-05 | 哈尔滨商业大学 | 基于小波系数熵的二维单视图像深度估计方法 |
| CN105659609A (zh) * | 2013-11-01 | 2016-06-08 | 索尼公司 | 图像处理设备和方法 |
| CN105659610A (zh) * | 2013-11-01 | 2016-06-08 | 索尼公司 | 图像处理设备和方法 |
| CN106537912B (zh) * | 2014-07-22 | 2020-02-07 | 交互数字Vc控股公司 | 用于处理图像数据的方法和装置 |
| CN106537912A (zh) * | 2014-07-22 | 2017-03-22 | 汤姆逊许可公司 | 用于处理图像数据的方法和装置 |
| US10757426B2 (en) | 2014-07-22 | 2020-08-25 | Interdigital Vc Holdings, Inc. | Method and apparatus for processing image data |
| CN111006697A (zh) * | 2019-10-25 | 2020-04-14 | 珠海格力电器股份有限公司 | 一种编码器的位置数据处理及传输控制系统、方法及应用 |
| CN111006697B (zh) * | 2019-10-25 | 2020-11-24 | 珠海格力电器股份有限公司 | 一种编码器的位置数据处理及传输控制系统、方法及应用 |
| CN111951949A (zh) * | 2020-01-21 | 2020-11-17 | 梅里医疗科技(洋浦)有限责任公司 | 一种用于智慧病房的智能护理交互系统 |
| CN111951949B (zh) * | 2020-01-21 | 2021-11-09 | 武汉博科国泰信息技术有限公司 | 一种用于智慧病房的智能护理交互系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20090092326A1 (en) | 2009-04-09 |
| US8254707B2 (en) | 2012-08-28 |
| JPWO2007066710A1 (ja) | 2009-05-21 |
| WO2007066710A1 (ja) | 2007-06-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101133649B (zh) | 编码装置、编码方法以及解码装置、解码方法 | |
| CN101138248A (zh) | 编码装置、编码方法、编码程序、解码装置、解码方法和解码程序 | |
| US7701365B2 (en) | Encoding device and method, composite device and method, and transmission system | |
| CN101569170B (zh) | 编码设备和编码方法以及解码设备和解码方法 | |
| CN103563383B (zh) | 图像处理装置和图像处理方法 | |
| CN103583045A (zh) | 图像处理装置以及图像处理方法 | |
| CN101166275B (zh) | 信息处理设备、方法和程序 | |
| KR20080071940A (ko) | 정보 처리 장치 및 방법 | |
| JP4517306B2 (ja) | 情報処理装置および方法 | |
| CN101120584B (zh) | 编码装置和方法、解码装置和方法、以及传输系统 | |
| CN102986222B (zh) | 编码设备、编码方法、解码设备以及解码方法 | |
| JP2011518527A (ja) | 映像の復号化 | |
| JP2006197557A (ja) | 画像符号化装置、画像符号化方法及びそのプログラム | |
| US20110249719A1 (en) | Video compression | |
| JP2012004898A (ja) | 記憶装置、符号化装置、符号化方法及びコンピュータプログラム | |
| JP2008141530A (ja) | 画像符号化装置及び画像符号化方法 | |
| JP2008187572A (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 | ||
| AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20080305 |
|
| C20 | Patent right or utility model deemed to be abandoned or is abandoned |