CN101779466B - 图像解码装置及图像编码装置 - Google Patents
图像解码装置及图像编码装置 Download PDFInfo
- Publication number
- CN101779466B CN101779466B CN200980100106.6A CN200980100106A CN101779466B CN 101779466 B CN101779466 B CN 101779466B CN 200980100106 A CN200980100106 A CN 200980100106A CN 101779466 B CN101779466 B CN 101779466B
- Authority
- CN
- China
- Prior art keywords
- mentioned
- block
- macro block
- decoding
- macroblock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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
-
- 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
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- 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/174—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 slice, e.g. a line of blocks or a group of blocks
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- 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/124—Quantisation
-
- 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]
-
- 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
将具有基于处理顺序的依存关系的编码流并行解码的图像解码装置(40)具备:片数据预解码部(402),通过按照包含在编码流(Str)中的每个宏块组进行预解码处理,生成在其他宏块组的解码处理中需要的宏块解码信息(1001);第一宏块解码部(404)及第二宏块解码部(405),分别对包含在编码流(Str)中的相互不同的宏块组并行地进行解码处理;宏块解码部(404、405)的每一个在对一个宏块组进行解码处理时,使用对另一宏块组已经生成的宏块解码信息(1001)进行解码处理。
Description
技术领域
本发明涉及进行运动图像数据的解码或编码的图像解码装置、图像编码装置、图像解码方法及图像编码方法。
背景技术
作为将运动图像数据压缩编码(以下单称作“编码”)的技术,采用利用帧间差分的MPEG(Motion Pictures Experts Group:运动图像专家组)编码方式的情况较多。作为MPEG编码方式,以往使用MPEG-2(ISO/IEC13818-2)及MPEG-4(ISO/IEC14496-2)。除此以外,近年来,渐渐采用H.264/MPEG-4AVC(ISO/IEC14496-10)(以下单称作“H.264”)及VC-1(SMPTE 421M)这些新的编码方式。
在这样的编码标准中,将1个画面(图片)内分割为规定像素数的块(亮度成分:16像素×16像素),以该块为单位进行解码处理或编码处理。将该像素块称作宏块。
在以H.264为代表的新的编码方式中,在将宏块编码时,利用与该处理对象宏块相邻的宏块(以下称作相邻宏块)与处理对象宏块之间的相关,来提高压缩效率。即,在该新的编码方式中,存在基于位置的依存关系。
图22是表示H.264的基于位置的依存关系的图。
具体而言,在将某个任意的宏块作为处理对象宏块进行解码或编码时,如图22所示,需要参照与处理对象宏块相邻的左相邻宏块A、左上相邻宏块D、上相邻宏块B、以及右上相邻宏块C这4个相邻宏块的处理结果。
因此,必须预先将这些相邻宏块编码或解码。即,在解码处理及编码处理中,存在基于左相邻宏块A、左上相邻宏块D、上相邻宏块B、以及右上相邻宏块C的位置的依存关系。
为了高速进行解码处理或编码处理,使用多个将宏块解码的解码部或将宏块编码的编码部进行并行处理,为此需要解决该基于位置的依存关系。在专利文献1中,提出了解决该依存关系的方法。
图23是表示上述专利文献1中记载的图像解码装置及图像编码装置的处理顺序的图。在图23中,赋予各宏块MB内的号码表示将该宏块MB解码或编码的处理顺序。即,将相同号码的宏块MB同时并行地处理。
如图23所示,上述专利文献1的图像解码装置及图像编码装置从图片Pic的左上的宏块MB开始处理,在处理某个任意的宏块MB的情况下,通过将位于该宏块MB的下1行的左侧第2列的宏块MB并行处理,解决了上述基于位置的依存关系。
【专利文献1】日本特开2006-129284号公报
但是,即使是上述专利文献1的图像解码装置及图像编码装置中,也不能并行地执行以H.264为代表的新的编码方式的解码处理或编码处理,有不能使解码处理或编码处理高速化的问题。
在以H.264为代表的新的编码方式中,还利用与刚解码完或刚编码完的宏块之间的相关,来提高压缩效率。例如在H.264中,对于某个任意的宏块的量化参数QP,利用在其之前刚处理的宏块的量化参数(QP_PREV),来计算该量化参数QP。因此,为了将某个任意的宏块解码或编码,需要参照在其之前刚处理的宏块。即,除了上述基于位置的依存关系以外,还有基于处理顺序的依存关系。
图24是表示H.264的基于处理顺序的依存关系的图。
在MPEG编码方式中,如图24所示,图片Pic内的宏块MB以光栅扫描顺序进行处理。这里,赋予在图24中的宏块MB的标号表示处理顺序,箭头表示基于处理顺序的依存关系。通常,之前刚处理的宏块MB为处理对象宏块MB的左相邻宏块MB,所以该处理对象宏块MB的基于处理顺序的依存关系与基于位置的依存关系相同。但是,在处理位于图片Pic的左端的宏块MB的情况下,之前刚处理的宏块MB为位于其上1行的右端的宏块MB。例如,在图24中,9号的宏块MB的之前刚处理的宏块MB是8号的宏块MB,是位于上1行的右端的宏块MB。
在上述专利文献1的图像解码装置及图像编码装置中,在处理位于图片Pic的左端的宏块MB之前,不处理位于该宏块MB(处理对象宏块)的上1行的右端的宏块MB,不能解决基于处理顺序的依存关系。即,在上述专利文献1的图像解码装置及图像编码装置中,不能并行地进行解码及编码。
发明内容
所以,本发明是鉴于这样的问题而做出的,目的在于提供一种解决在以H.264为代表的新的编码方式中存在的基于处理顺序的依存关系从而将运动图像数据并行地解码及编码的图像解码装置、图像编码装置、图像解码方法及图像编码方法。
为了达到上述目的,有关本发明的图像解码装置,是对编码流进行解码的图像解码装置,上述编码流是将由多个块构成的图片按照每个块进行编码而生成的,其特征在于,具备:预解码部,按照包含在上述编码流中的由多个块构成的每个块组,对该块组进行作为解码处理的一部分的预解码处理,由此生成作为在其他块组的上述解码处理中需要的参数的块解码信息;以及多个块解码部,分别对包含在上述编码流中的相互不同的块组以块为单位并行地进行上述解码处理;上述多个块解码部的每一个在对上述块组进行上述解码处理时,使用已经对由其他块解码部进行上述解码处理的其他块组进行了的上述预解码处理中所生成的上述块解码信息,对上述块组进行上述解码处理。
例如,在进行第一块解码部对第一块组的解码处理、和第二块解码部对第二块组的解码处理时,在第一及第二块组中有以H.264为代表的新的编码方式中存在的基于处理顺序的依次关系的情况下,在第二块组的解码处理中,需要对第一块组进行预解码处理(可变长编码)而生成的块解码信息(例如量化参数等)。所以,在本发明中,在第一块组的解码处理之前,对该第一块组进行预解码处理,使用通过该预解码处理得到的块解码信息,并行地进行第一块组的解码处理和第二块组的解码处理。这样,在本发明中,通过事前进行预解码处理来生成块解码信息,多个块解码部即使不以预先决定的处理顺序将块组依次解码,也能够解决存在于以H.264为代表的新的编码方式中的基于处理顺序的依存关系而并行地进行解码处理。进而,在本发明中,多个块解码部不是分别对预解码处理后的块组进行解码处理中的除了预解码处理以外的其余的处理,而是对包含在编码流中的块组进行全部解码处理,所以不需要生成具有预解码处理后的多个块组的已部分解码的编码流。该已部分解码的编码流的数据量比原来的编码流多。因而,在本发明中,由于多个块解码部对包含在原来的编码流中的块组进行全部解码处理,所以能够抑制在解码处理之前临时储存作为解码处理的对象的流的缓冲器的容量。
此外,其特征也可以是,上述预解码部还在上述编码流的上述各块组的开头,***能够唯一地判断是该块组的开头的位模式;上述多个块解码部的每一个通过检索***到上述编码流中的位模式,找到该块解码部应进行上述解码处理的块组,来将上述块组解码。
由此,由于在编码流的各块组的开头***了位模式,所以各块解码部能够不对编码流从其开头起依次进行可变长编码而容易地找到作为解码对象的块组。
此外,其特征也可以是,上述预解码部还将生成的上述块解码信息***到上述编码流中;上述多个块解码部的每一个取得***了上述块解码信息的上述编码流,使用***到上述编码流中的上述块解码信息对上述块组进行上述解码处理。
由此,由于块解码信息***在编码流中,所以各块解码部在取得编码流时也能够取得块解码信息,能够容易地取得块解码信息。
此外,其特征也可以是,上述预解码部在生成上述块解码信息时,生成通过对上述块组进行上述预解码处理而得到的、在包含于上述块组中的最后的块的上述解码处理中需要的系数与预先决定的系数之间的差分作为上述块解码信息。
由此,由于作为块解码信息而生成在最后的块的解码处理中需要的系数(例如量化参数)与预先决定的系数(例如保存在片数据中的量化参数的初始值)之间的差分,所以与生成最后的块的系数本身作为块解码信息相比,能够抑制块解码信息的数据量。
为了达到上述目的,有关本发明的图像编码装置,是将具有由多个块构成的块组的图片按照每个块进行编码的图像编码装置,其特征在于,具备:多个块编码部,分别将包含在上述图片中的相互不同的块组以块为单位并行地进行编码;以及调整部,通过调整包含在上述多个块编码部进行编码而生成的中间流中的、在编码中使用的参数,使上述中间流与以预先决定的处理顺序将包含在上述图片中的多个块组依次编码而生成的编码流一致。
由此,即使多个块编码部将多个块组并行地编码,通过调整部对参数(例如量化参数)进行调整,也能够生成与将多个块组以预先决定的处理顺序依次编码时生成的编码流同样的流。结果,能够解决在以H.264为代表的新的编码方式中存在的基于处理顺序的依存关系而并行地编码。
此外,其特征也可以是,上述调整部决定在上述多个块编码部的编码中使用的参数;上述多个块编码部分别通过使用由上述调整部决定的参数进行编码,生成与上述编码流一致的上述中间流。
由此,在各块编码部的编码中使用的参数被决定,并且使用该参数进行编码,所以各块编码部即使其他块编码部的编码没有进行,也能够知道在该编码中使用的已经决定的参数,能够将在自己的编码中使用的其他参数使用该决定的参数进行处理之后包含在编码流中。结果,能够简单地生成与编码流一致的中间流。
此外,其特征也可以是,上述多个块编码部的每一个在将块组编码时,将在上述块组的编码中使用的参数包含在通过上述块组的编码而生成的编码块组中,并且将上述参数中的至少一部分作为保存参数进行保存;上述调整部按照包含在所生成的上述中间流中的每个编码块组,使用在与该编码块组不同的其他编码块组的编码中使用并保存的上述保存参数,修正该编码块组的参数,由此使上述中间流与上述编码流一致。
由此,在生成了中间流之后进行修正以使其与编码流一致,所以与如上述那样预先决定参数而按照该参数进行编码的情况相比,能够进行更适当的编码。
另外,本发明不仅能够作为这样的图像解码装置及图像编码装置实现,也能够作为图像解码方法、图像编码方法、用来使计算机进行解码或编码的程序、保存该程序的存储媒体、以及集成电路来实现。
发明效果:
根据本发明的图像解码装置及图像编码装置,能够将存在基于处理顺序的依存关系的编码图像并行地解码,能够高速地将编码图像解码,并且能够以存在基于处理顺序的依存关系的编码方式将图像并行地编码,能够高速地将图像编码。
附图说明
图1是本发明的实施方式1的图像解码装置的结构图。
图2是实施方式1的宏块解码部的结构图。
图3是一般的H.264的编码流的结构图。
图4是表示本发明的实施方式1的图像解码装置的动作的流程图。
图5是表示由实施方式1的宏块解码部并行地解码的宏块的顺序的图。
图6是表示实施方式1的片数据(slice data)的预解码处理的动作的流程图。
图7是实施方式1的加工完成编码流的片数据的结构图。
图8是表示实施方式1的宏块解码部的解码处理的流程图。
图9是本发明的实施方式2的图像编码装置的结构图。
图10是实施方式2的宏块编码部的结构图。
图11是表示实施方式2的图像编码装置的动作的流程图。
图12是表示实施方式2的宏块编码部的编码处理的流程图。
图13是表示实施方式2的可变长编码处理的流程图。
图14是表示对于用CAVLC可变长编码的片数据进行再编码处理的流程图。
图15是表示对于用CABAC可变长编码的片数据进行再编码处理的流程图。
图16是有关本发明的实施方式2的变形例的图像编码装置的结构图。
图17是表示实施方式2的变形例的图像编码装置的动作的流程图。
图18A是表示实施方式2的变形例的量化参数被决定的宏块的位置的图。
图18B是表示实施方式2的变形例的跳过运行参数被决定的宏块的位置的图。
图19是表示实施方式2的变形例的宏块编码部的编码处理的详细情况的流程图。
图20是实施方式2的变形例的宏块编码部的结构图。
图21是表示由可变长编码部进行的可变长编码处理的详细情况的流程图。
图22是表示H.264的基于位置的依存关系的图。
图23是表示以往的图像解码装置及图像编码装置的处理顺序的图。
图24是表示H.264的基于处理顺序的依存关系的图。
标号说明
40 图像解码装置
120、120a 图像编码装置
400 解码控制部
401 头解码部
402 片数据预解码部
403 流缓冲器
404 第一宏块解码部
405 第二宏块解码部
406 去块滤波部
407 参照图像存储器
500 可变长解码部
501 反量化部
502 逆正交变换部
503 画面内预测部
504 运动补偿预测部
505 加法电路
600 开始码
601 SPS头
602 PPS头
603 片头
604 片数据
1000 MB开始码
1001 宏块解码信息
1002 宏块层数据
1200、1200a 编码控制部
1201、120la 第一宏块编码部
1202、1202a 第二宏块编码部
1203 去块滤波部
1204 流缓冲器
1205 片数据再编码部
1206 头编码部
1207 参照图像存储器
1300 画面内预测部
1301 运动补偿预测部
1302 减法电路
1303 正交变换部
1304 量化部
1305 可变长编码部
1306 反量化部
1307 逆正交变换部
1308 加法电路
具体实施方式
以下,参照附图,对将本发明应用到对应于H.264编码方式的图像解码装置及图像编码装置中的实施方式进行说明。另外,以下所示的实施方式是H.264的图像解码装置及图像编码装置,但只要是具有基于处理顺序的依存关系的运动图像编码方式,则对于怎样的运动图像编码方式,都能够以与以下所示的实施方式同样的方式实现本发明。
(实施方式1)
图1是本发明的实施方式1的图像解码装置的结构图。
如图1所示,图像解码装置40包括解码控制部400、头解码部401、片数据预解码部402、流缓冲器403、第一宏块解码部404、第二宏块解码部405、去块滤波部406、以及参照图像存储器407。另外,在以下的说明中,在不需要分别区别第一宏块解码部404及第二宏块解码部405的情况下,将它们统称作宏块解码部。
接着,对图1所示的图像解码装置40的各结构要素的动作进行说明。
头解码部401取得用H.264编码后的编码流Str,将包含在该编码流Str中的头依次解码。
片数据预解码部402从头解码部401取得头解码后的编码流Str,将包含在该编码流Str中的并行进行宏块的解码处理所预先需要的参数(并行处理用参数)解码。进而,片数据预解码部402利用该并行处理用参数的解码结果,进行编码流Str的加工处理,将加工处理后的编码流(以下称作加工完成编码流Stm)输出给流缓冲器403。由此,将加工完成编码流Stm用流缓冲器临时保持。
第一宏块解码部404及第二宏块解码部405分别从流缓冲器403读取加工完成编码流Stm,将包含在加工完成编码流Stm中的编码后的多个宏块中的、分配给各个宏块解码部的宏块并行地解码。此时,第一宏块解码部404及第二宏块解码部405分别根据需要从参照图像存储器407读取用于运动补偿预测的参照图像,使用该读取的参照图像将宏块解码。另外,参照图像由像素数据构成。结果,第一宏块解码部404及第二宏块解码部405将由重构后的图像数据构成的重构图像输出给去块滤波部406。
去块滤波部406通过对重构图像进行除去块噪声的去块滤波处理,生成解码图像并输出。此外,去块滤波部406将该解码图像输出到图像解码装置40的外部,并且为了将该解码图像用作宏块的解码处理中的参照图像,而将该解码图像写入到参照图像存储器407中,使参照图像存储器407临时保持。
解码控制部400通过控制头解码部401、片数据预解码部402、第一宏块解码部404、第二宏块解码部405及去块滤波部406,控制图像解码处理整体,例如对这些结构要素发出处理开始指示。
图2是宏块解码部的结构图。
第一宏块解码部404及第二宏块解码部405都具有相同的结构,分别包括可变长解码部500、反量化部501、逆正交变换部502、画面内预测部503、运动补偿预测部504、以及加法电路505。
可变长解码部500将加工完成编码流Stm中的由作为解码处理对象的多个宏块构成的宏块组(例如宏块行)可变长解码,输出预测模式、量化后的系数、以及运动矢量等。反量化部501对从可变长解码部500输出的量化后的系数进行反量化,将系数数据输出给逆正交变换部502。在逆正交变换部502中,对系数数据进行逆正交变换,生成由空间域的像素数据构成的误差图像。
画面内预测部503和运动补偿预测部504根据可变长解码部500输出的预测模式,其中的某个被启动,生成由像素数据构成的预测图像。在预测模式是内预测的情况下,启动画面内预测部503,此时,画面内预测部503进行画面内预测。在预测模式是间预测的情况下,启动运动补偿预测部504。此时,运动补偿预测部504取得对应于解码后的运动矢量的参照图像,进行运动补偿预测。加法电路505通过将从逆正交变换部502输出的误差图像与从画面内预测部503或运动补偿预测部504输出的预测图像相加,生成由图像数据构成的重构图像并输出。
图3是一般的H.264的编码流Str的结构图。
在编码流Str的开头有SPS(Sequence Parameter Set:序列参数集)头601,然后接着PPS(Picture Parameter Set:图片参数集)头602、片头(slicehead)603、以及片数据604。在SPS头601、PPS头602及片头603的开头***了表示数据的分隔的开始码(SC:Start Code)600。
因此,头解码部401对编码流Str进行开始码检索,通过解析接续开始码600的数据,能够从编码流Str中检索SPS头601、PPS头602、片头603。在图片的开头存在PPS头602,到下个PPS头602出现为止的一系列的数据是1个图片量的数据。在1个图片的数据之中所存在的片头603和片数据604的集合的数量是存在于该图片中的片(slice)的数量。此外,在片数据604中,保存着表示编码后的多个宏块的宏块层数据。
片数据预解码部402通过对包含在该片数据604中的宏块层数据进行可变长解码,取得上述并行处理用参数。
图4是表示本发明的实施方式1的图像解码装置40的动作的流程图。
首先,头解码部401如果取得编码流Str,则将SPS头601解码(步骤S700),接着,将PPS头602解码(步骤S701),接着,将片头603解码(步骤S702)。如果片头603的解码结束,则片数据预解码部402通过对片数据604进行预解码,将并行进行宏块的解码处理所预先需要的并行处理用参数解码,并且进行编码流Str的加工处理(步骤S703)。
如果1个片的片数据604的预解码完成,则第一宏块解码部404及第二宏块解码部405按照解码控制部400的指示,一边分别从保存在流缓冲器403中的加工完成编码流Stm中读取解码对象的宏块(宏块行),一边并行地进行宏块的解码处理(步骤S704)。
图5是表示由宏块解码部并行地解码的宏块的顺序的图。
在H.264中,由于存在图22所示的基于位置的依存关系,所以图像解码装置40以图5所示的顺序进行解码。另外,在图5中,对各宏块MB赋予的号码表示处理顺序。即,相同号码的宏块MB被同时并行地处理。
如图5所示,第一宏块解码部404将包含在图片Pic中的奇数行的宏块MB、即包含在作为第奇数个的宏块组的宏块行中的多个宏块MB解码,第二宏块解码部405将包含在图片Pic中的偶数行的宏块MB、即包含在作为第偶数个的宏块组的宏块行中的多个宏块MB解码。此外,在第一宏块解码部404将某个任意的宏块MB解码的情况下,第二宏块解码部405将位于该宏块MB的下1行的左侧第2列的宏块MB并行地处理。由此,能够解决基于位置的依存关系而并行地解码。
解码控制部400在1个片的宏块的解码处理完成时,判断完成了该解码处理的片是否处于图片的末端(步骤S705)。包含在图片中的片的数量通过将存在于PPS头602中的参数(num_slice_groups_minusl)解码后可以知道。因此,解码控制部400在从到目前为止完成了解码处理的片的数量减去1后的数与参数(num_slice_groups_minusl)一致时,判断刚完成了解码处理的片处于图片的末端。
这里,解码控制部400如果判断为不在图片的末端(步骤S705的“否”),则使头解码部401、片数据预解码部402及宏块解码部依次执行片头603的解码(步骤S702)、片数据604的预解码(步骤S703)、以及宏块的解码(步骤S704),直到成为图片的末端。另一方面,解码控制部400如果判断为处于图片的末端(步骤S705的“是”),则使去块滤波部406执行对于1个图片量的重构图像进行去块滤波处理(步骤S706)。如果去块滤波处理完成,则解码控制部400接着判断去块滤波处理后的图片是否处于该编码流Str的末端(步骤S707)。
这里,解码控制部400在判断为不在编码流Str的末端、即后面接续有流的情况下(步骤S707的“否”),使头解码部401执行接着要解码的图片的PPS头602的解码(步骤S701),由此,将包含在编码流Str中的图片渐渐解码。
接着,对于片数据604的预解码(图4的步骤S703)的详细情况进行说明。
图6是表示对于片数据604的预解码的详细动作的流程图。
片数据预解码部402以宏块为单位对片数据604进行预解码。具体而言,片数据预解码部402首先从第一宏块解码部404及第二宏块解码部405中确定将作为预解码对象的宏块(预解码对象宏块)MB解码的宏块解码部作为担当解码部(步骤S900)。接着,片数据预解码部402判断该预解码对象宏块MB的宏块地址Ba1是否大于该担当解码部刚解码完的宏块(刚解码完宏块)MB的宏块地址Ba2加上1之后的值(步骤S901)。
宏块地址如图24所示,是对图片Pic内的宏块MB以光栅扫描顺序附加了号码的索引,在H.264中,以宏块地址顺序处理图片Pic内的宏块MB。在以图5所示的顺序进行解码的情况下,例如第一宏块解码部404将行1的位于图片Pic的右端的宏块MB(处于行1中的8号的宏块MB)接下来的、行3的位于图片Pic的左端的宏块MB(处于行3中的9号的宏块MB)解码。此时,处于该8号宏块MB与9号宏块MB之间的、行2上的所有宏块MB不被第一宏块解码部404解码而被排除在解码对象之外。因而,上述预解码对象宏块MB(处于行3中的9号宏块MB)的宏块地址Ba1与刚解码完宏块MB(处于行1中的8号宏块MB)的宏块地址Ba2加上1后的值相比变大。同样,第二宏块解码部405将行2的位于图片Pic的右端的宏块MB(处于行2中的10号的宏块MB)接下来的、行4的位于图片Pic的左端的宏块MB(处于行4中的11号的宏块MB)解码。此时,处于该10号宏块MB与11号宏块MB之间的、行3上的所有宏块MB不被第二宏块解码部405解码而被排除在解码对象之外。因而,上述预解码对象宏块MB(处于行4中的11号宏块MB)的宏块地址Ba1与刚解码完宏块MB(处于行2中的10号宏块MB)的宏块地址Ba2加上1后的值相比变大。
这样,片数据预解码部402在步骤S901中,判断预解码对象宏块MB是否是由担当解码部解码的、宏块地址连续的宏块组的开头的宏块MB。即,在以图5所示的顺序进行解码的情况下,片数据预解码部402在步骤S901中,在将位于图片Pic左端的宏块MB预解码时判断为真(是)。
片数据预解码部402如果在步骤S901中判断为假(否),则为了找到下个宏块MB的开头,进行通常的宏块MB的可变长解码(步骤S904)。另一方面,片数据预解码部402如果在步骤S901中判断为真(是),则在编码流Str中的位于预解码对象宏块MB开头的部分中,***作为表示预解码对象宏块MB的开头的位模式的MB(Macroblock)开始码(步骤S902)。在本实施方式中,例如将MB开始码设为0x000001FO。在MB开始码的***后,片数据预解码部402将并行处理预解码对象宏块的解码处理所预先需要的并行处理用参数作为宏块解码信息,植入到编码流Str中的MB开始码的紧后面(预解码对象宏块MB的紧前面)(步骤S903)。另外,MB开始码只要是不与其他码重复的独特的值,则可以为任意。
植入的宏块解码信息是通过将处于预解码对象宏块MB的宏块地址紧前面的宏块MB(紧前宏块MB)可变长解码而生成的、存在基于处理顺序的依存关系的参数。在H.264中,在可变长编码的方式是CAVLC(Context-base Adaptive Variable Length Coding:基于上下文的自适应变长编码)的情况下,片数据预解码部402将紧前宏块MB的量化参数(QP_PREV)、和跳过的宏块的数量(num_skipped_mb)作为宏块解码信息植入。以下,将该跳过的宏块称作跳过宏块,将该跳过宏块的数量称作跳过宏块数。跳过宏块数(num_skipped_mb)在开头的宏块MB是跳过宏块的情况下,表示包括该开头的宏块MB有几个跳过宏块连续,如果开头的宏块MB不是跳过宏块则为0。另外,片数据预解码部402通过将紧前宏块MB可变长解码,取得表示包括该紧前宏块MB在内从该紧前宏块MB起后面连续的跳过宏块的数量的跳过运行参数(mb_skip_mn)。片数据预解码部402基于该跳过运行参数(mb_skip_mn)和紧前宏块MB的宏块地址,计算上述跳过宏块数(num_skipped_mb)。
在可变长编码的方式是CABAC(Context-base Adaptive BinaryArithmetic Coding:基于上下文的自适应二进制算术编码)的情况下,片数据预解码部402将紧前宏块MB的量化参数(QP_REV)、和表示将紧前宏块MB按照CABAC可变长解码时的片数据预解码部402(可变长解码器)的内部状态的信息(codIOffset、codIRange、valMPS、pStateIdx)作为宏块解码信息植入。虽然CABAC的可变长解码器的内部状态不是语法,但在CABAC中,由于每次解码1位时内部状态变化,所以在从宏块MB的中途解码的情况下,需要到该中途为止的内部状态。因而,需要将表示将紧前宏块MB可变长解码时的内部状态的信息作为宏块解码信息植入到编码流Str中。
另外,由于在CABAC的可变长解码处理(算术解码处理及多值化处理)中,每次解码1位时内部状态变化的是算术解码处理,所以片数据预解码部402也可以仅进行算术解码处理而将片数据604解码为二值化数据。在仅进行算术解码的情况下,只要将量化参数(QP_PREV)作为宏块解码信息植入到编码流Str中即可。
在本实施方式中,片数据预解码部402将宏块解码信息以exp-Golomb编码方式编码并植入。另外,宏块解码信息的编码方式只要是能够唯一地将宏块解码信息表示的参数解码的方式,则可以是任意。此外,片数据预解码部402也可以将量化参数(QP_PREV)原样作为宏块解码信息植入,但也可以将某个值与量化参数(QP_PREV)的差分作为宏块解码信息植入。由此,能够削减宏块解码信息的数据量。例如,片数据预解码部402将在包括对象宏块MB的片的所有的宏块MB中使用的量化参数QP的初始值(SliceQP)与紧前宏块MB的量化参数(QP_PREV)之间的差分作为宏块解码信息植入。另外,上述初始值(SliceQP)可以根据包含在片头603中的参数算出。
片数据预解码部402在宏块解码信息的***处理(步骤S903)完成时,接着为了检索下个宏块MB的开头,进行预解码对象宏块的被可变长解码后(步骤S904)。接着,片数据预解码部402判断在步骤S904中可变长解码的预解码对象宏块MB是否是处于片的末端的宏块MB(步骤S905)。这里,片数据预解码部402如果判断为不是处于片的末端的宏块MB(步骤S905的“否”),则通过对下个预解码对象宏块MB反复执行步骤S900起的处理,来进行片数据604的预解码。
这样,本实施方式中的片数据预解码部402按照包含在编码流Str中的、由多个块构成的每个宏块行,对该宏块行进行作为解码处理的一部分的可变长解码(预解码处理),由此生成作为在其他宏块行的解码处理中需要的参数的宏块解码信息。并且,通过对包含在编码流Str中的各片数据604进行上述那样的预编码,生成加工完成编码流Stm,并保存在流缓冲器403中。
图7是表示加工完成编码流Stm的片数据的结构的图。
加工完成编码流Stm的片数据604a、即通过将1个片的片数据604预解码而得到的片数据604a包括1个或多个数据集,该数据集由MB开始码1000、宏块解码信息1001、以及宏块层数据1002构成。宏块层数据1002与包含在编码流Str的片数据604之中的数据完全相同。即,宏块层数据1002为完全没有被进行解码处理的数据。包含在该片数据604a中的数据集的数量是与在片数据604的预解码时在步骤S901中判断为真(是)的次数相同的数量。
另外,包含在数据集中的宏块层数据1002包括没有被可变长解码、即被可变长编码状态下的宏块MB。
此外,在可变长编码的方式是CABAC的情况下,在片数据604的预解码(步骤S703)中将片数据解码为二值化数据时,解码后的二值数据代替宏块层数据1002。
另外,在步骤S901的判断为真(是)的预解码对象宏块MB的开头,***MB开始码及宏块解码信息1001,但也可以对预解码对象宏块MB以外的宏块MB也***MB开始码1000及宏块解码信息1001。例如,也可以在所有宏块MB的开头***MB开始码1000及宏块解码信息1001。如果在所有宏块MB的开头***,则在进行宏块MB的解码处理(步骤S704)时,不论将哪个宏块MB分配给哪个宏块解码部,都能够解决基于处理顺序的依存关系地进行解码。
接着,利用图8对图4所示的宏块MB的解码处理(步骤S704)的详细情况进行说明。
图8是表示宏块解码部进行的宏块MB的解码处理的流程图。
首先,宏块解码部从加工完成编码流Stm检索MB开始码1000,并且不断读取加工完成编码流Stm直到找到MB开始码1000(步骤S1100)。接着,宏块解码部判断带有MB开始码1000的宏块MB是否是分配给该宏块解码部的解码对象的宏块MB(步骤S1101)。这里,如果宏块解码部判断为不是分配给自己的解码对象宏块MB(步骤S1101的“否”),则反复进行MB开始码的检索直到出现解码对象的宏块MB(步骤S1100)。另一方面,如果宏块解码部判断为是分配给自己的解码对象宏块MB(步骤S1101的“是”),则进行接续MB开始码1000的宏块解码信息1001的解码(步骤S1102)。然后,宏块解码部进行宏块MB的通常的解码处理。另外,MB开始码检索(步骤S1100)、解码对象宏块判断(步骤S1101)、以及宏块解码信息的解码(步骤S1102)的处理都由可变长解码部500进行。
接着,宏块解码部的可变长解码部500对分配给该宏块解码部的解码对象宏块MB进行可变长解码处理(步骤S1103)。这里,在解码对象宏块MB是带有MB开始码1000的开头的宏块MB(宏块解码信息的紧后面的宏块MB)的情况下,可变长解码部500使用在步骤S1102中解码的宏块解码信息1001,将该开头的宏块MB可变长解码。接着,宏块解码部根据可变长解码结果判断预测模式是内预测还是间预测(步骤S1104)。如果判断为预测模式是内预测(步骤S1104的内预测),则画面内预测部503启动而进行画面内预测处理(步骤S1105),如果判断为预测模式是间预测(步骤S1104的间预测),则运动补偿预测部504启动而进行运动补偿预测处理(步骤S1106)。通过这些步骤S1105及步骤S1106的处理,生成由图像数据构成的预测图像。
接着,宏块解码部通过将进行了可变长解码处理(步骤S1103)的量化后的系数用反量化部501反量化,用逆正交变换部502逆正交变换,生成相对于预测图像的误差图像(步骤S1107)。最后,宏块解码部通过将预测图像与误差图像相加,得到由像素数据构成的重构图像(步骤S1108)。如果这样1个宏块MB的解码处理完成,则宏块解码部判断是否还有要解码的宏块层数据1002(步骤S1109)。宏块解码部在判断为没有要解码的宏块层数据1002时(步骤S1109的“否”),结束宏块MB的解码处理。另一方面,宏块解码部在判断为还剩余着要解码的宏块层数据1002时(步骤S1109的“是”),判断接着要解码的宏块MB的宏块地址是否大于刚解码完的宏块MB的宏块地址加上1之后的值(步骤S1110)。如果该判断的结果是真(步骤S1110的“是”),则宏块解码部为了检索接着要解码的宏块MB的开头而进行MB开始码检索(步骤S1100),如果判断的结果是假(步骤S1110的“否”),则进行下个宏块MB的可变长解码(步骤S1103)。
这样,在本实施方式中,通过事前进行预解码而生成宏块解码信息1001,即使两个宏块解码部不以预先决定的处理顺序将宏块行依次解码,也能够解决存在于以H.264为代表的新的编码方式中的基于处理顺序的依次关系而并行地进行解码处理,能够实现解码的高速化。进而,在本实施方式中,由于两个宏块解码部并不是分别对预解码后的宏块行进行解码处理中的除了可变长解码以外的其余的处理,而是对包含在编码流Str中的宏块行进行全部的解码处理,所以不需要生成具有预解码后的多个宏块行的已可变长解码的解码流。该已可变长解码的解码流的数据量比原来的编码流Str多。因而,在本实施方式中,两个宏块解码部对包含在原来的编码流Str中的宏块行进行全部的解码处理,所以能够抑制临时储存作为解码处理对象的流的流缓冲器403的容量。
另外,在本实施方式中,采取了将作为并行处理用参数的宏块解码信息1001植入到编码流Str中的方法。但是,在进行宏块MB的解码的情况下,只要将宏块解码信息1001传送给第一宏块解码部404或第二宏块解码部405就可以,并不一定需要将宏块解码信息1001植入到编码流Str中。例如,也可以是,片数据预解码部402不将宏块解码信息1001植入到编码流Str中,而在片数据604的预解码结束后将宏块解码信息1001传送给解码控制部400,在宏块解码部启动时,解码控制部400将该宏块解码信息1001通知给宏块解码部。
此外,在本实施方式中,将跳过的宏块的数量(num_skipped_mb)作为宏块解码信息1001植入到编码流Str中,但也可以代替它而将跳过运行参数(mb_skip_run)作为宏块解码信息1001植入到编码流Str中。
此外,在本实施方式中,使用两个宏块解码部并行地进行宏块的解码,但宏块解码部的个数并不限于两个。在专利文献1中,记载了使用两个以上的宏块解码部并行地将宏块解码的方法,按照该方法,使用两个以上的宏块解码部也能够解码。
此外,在本实施方式中,也可以将解码控制部400、头解码部401、片数据预解码部402、流缓冲器403、第一宏块解码部404、第二宏块解码部405、去块滤波部406及参照图像存储器407的全部或其一部分安装在1个集成电路上,也可以用安装在1个基板上的多个集成电路实现,也可以用经由网络或总线连接的独立的装置实现。
另外,在本实施方式中,对对应于一般的H.264编码方式的图像解码装置进行了说明,但如果是对H.264的编码方式加以部分制约而编码的图像,则能够去除片数据预解码部402中的预解码(步骤S703)。这是因为,预解码是为了解决基于处理顺序的依存关系而进行的,如果没有处理顺序的依存关系,则能够不进行预解码而并行地进行宏块解码处理(步骤S704)。即,在将适用于并行解码处理的图像编码方式标准化的情况下,只要对已有的图像编码方式加以制约以去除该处理顺序的依存关系就可以。例如,在以H.264编码方式为基础考虑适用于并行解码处理的新的图像编码方式的情况下,可以考虑不是将差分值(mb_qp_elta)编码、而将量化参数QP的值原样编码的方式、或仅将量化参数QP与初始值(SliceQP)的差分值编码的方式。此外,也可以考虑进行编码以使跳过运行参数(mb_skip_run)必定为0的方式。此外,也可以考虑使CABAC为禁止使用而仅通过CAVLC进行可变长编码的方式。
(实施方式2)
图9是本发明的实施方式2的图像编码装置的结构图。
如图9所示,图像编码装置120包括编码控制部1200、第一宏块编码部1201、第二宏块编码部1202、去块滤波部1203、流缓冲器1204、片数据再编码部1205、头编码部1206、以及参照图像存储器1207。另外,在以下的说明中,在不需要将第一宏块编码部1201及第二宏块编码部1202分别区别的情况下,将它们统称作宏块编码部。
接着,对图9所示的图像编码装置120的各结构要素进行说明。
第一宏块编码部1201及第二宏块编码部1202在取得由像素数据构成的编码对象图像时,并行地进行宏块单位的编码处理。并且,第一宏块编码部1201及第二宏块编码部1202向去块滤波部1203输出通过将由该编码处理编码后的图像重构而生成的、由像素数据构成的重构图像。进而,第一宏块编码部1201及第二宏块编码部1202将表示由上述编码处理编码后的图像的中间流输出到流缓冲器1204中。此时,第一宏块编码部1201及第二宏块编码部1202根据需要从参照图像存储器1207读取用于运动补偿的由像素数据构成的参照图像。
流缓冲器1204临时保持从各宏块编码部输出的中间流。另外,通过将从两个宏块编码部输出的多个片断的中间流保存到流缓冲器1204中,可以作为1个结合的中间流进行处理。此外,由于该中间流是通过两个宏块编码部将宏块MB并行地编码而生成的流,所以在包含在该中间流中的图片中,不满足上述基于处理顺序的依存关系。因而,该中间流有部分不能编码的部分,所以为还没有完全完成编码的流。
去块滤波部1203对重构图像进行将块噪声除去的去块滤波处理,将结果生成的解码图像输出到参照图像存储器1207中。参照图像存储器1207保持从去块滤波部1203输出的解码图像,以使其能够作为上述参照图像使用。
片数据再编码部1205从流缓冲器1204读取中间化流,对中间化流进行再编码处理。头编码部1206进行头的编码,将从片数据再编码部1205输出的再编码流与编码后的头合并,生成最终的编码流并输出。另外,在本实施方式中,该片数据再编码部1205作为调整部构成,通过该片数据再编码部1205调整包含在由两个宏块编码部生成的中间流中的、用于编码的参数,使该中间流与通过将包含在图片中的多个宏块行以预先决定的处理顺序依次编码而生成的编码流一致。
编码控制部1200通过控制第一宏块编码部1201、第二宏块编码部1202、去块滤波部1203、片数据再编码部1205及头编码部1206,控制整个图像编码处理,例如对这些结构要素发出处理开始指示。
图10是宏块编码部的结构图。
第一宏块编码部1201及第二宏块编码部1202都具有相同的结构,分别包括画面内预测部1300、运动补偿预测部1301、减法电路1302、正交变换部1303、量化部1304、可变长编码部1305、反量化部1306、逆正交变换部1307、以及加法电路1308。首先,如果将包含在编码对象图像中的由像素数据构成的宏块MB输入到宏块编码部中,则编码控制部1200通过指示预测模式,使画面内预测部1300及运动补偿预测部1301中的某一个启动。画面内预测部1300在预测模式为内预测的情况下启动,通过进行画面内预测,生成对应于上述编码对象宏块MB的、由像素数据构成的预测图像并输出。运动补偿预测部1301在预测模式是间预测的情况下启动,通过取得对应于运动矢量的参照图像并进行运动补偿预测,生成对应于上述编码对象宏块MB的、由像素数据构成的预测图像并输出。
减法电路1302通过从上述编码对象的宏块MB中减去预测图像,生成由空间域的像素数据构成的误差图像。正交变换部1303通过对该误差图像进行正交变换,将该误差图像变换为系数。量化部1304将该系数量化。可变长编码部1305通过将量化后的系数及预测模式等可变长编码,生成上述中间流并输出。
反量化部1306将量化后的系数反量化。逆正交变换部1307通过对反量化后的系数进行逆正交变换,将该系数重构为误差图像。加法电路1308通过将该误差图像加上从画面内预测部1300或运动补偿预测部1301输出的预测图像,生成重构图像并输出。
图11是表示本发明的实施方式2的图像编码装置120的动作的流程图。
首先,头编码部1206依次进行SPS头601的编码(步骤S1400)、PPS头602的编码(步骤S1401)、以及片头603的编码(步骤S1402)。如果片头603的编码(步骤S1402)完成,则第一宏块编码部1201及第二宏块编码部1202按照编码控制部1200的指示,将编码对象图像以宏块为单位并行编码(步骤S1403)。在H.264中,由于存在图22所示的基于位置的依存关系,所以与解码的情况同样,两个宏块编码部以图5所示的顺序进行并行编码。关于详细情况,由于与解码的情况是同样的,所以省略说明。另外,在宏块MB的编码处理(S1403)中的可变长编码(后述的步骤S1507)中,由于将宏块MB并行编码,所以不满足上述基于处理顺序的依存关系。因而,在通过该编码处理生成的中间流中,有一部分不能完全编码的部分,所以宏块编码部在将宏块MB可变长编码时,仅进行需要的可变长编码的处理的一部分,来生成中间流。
片数据再编码部1205在1个片的宏块MB的编码处理(步骤S1403)完成时,对在该宏块MB的编码处理(步骤S1403)中不能完全编码的片数据的部分进行再编码处理(步骤S1404)。编码控制部1200在片数据的再编码处理(步骤S1404)完成时,判断中间流中的完成了再编码处理的位置是否是图片的末端(步骤S1405)。编码控制部1200在判断为不是图片的末端(步骤S1405的“否”)时,使各结构要素执行对于接下来要编码的片的、片头的编码(步骤S1402)、宏块MB的编码(步骤S1403)、以及片数据的再编码(步骤S1404)的处理,并且重复上述各处理,直到中间流中的完成了再编码处理的位置成为图片的末端。
另一方面,编码控制部1200在判断为上述位置是图片的末端(步骤S1405的“是”)时,使去块滤波部1203执行对1个片的重构图像的去块滤波处理(步骤S1406)。如果去块滤波处理(步骤S1406)完成,则编码控制部1200判断去块滤波处理后的图片是否处于序列的末端(步骤S1407)。编码控制部1200在判断为没有处于序列的末端时(步骤S1407的“否”),即连接有后续要编码的图片的情况下,通过使各结构要素再次执行对于该图片的PPS头602的编码(步骤S1400)等处理,将1个序列的编码对象图像编码。
接着,利用图12对图11所示的宏块MB的编码处理(步骤S1403)的详细情况进行说明。
图12是表示宏块编码部的编码处理的流程图。
首先,画面内预测部1300及运动补偿预测部1301判断由编码控制部1200指示的预测模式是内预测还是间预测(步骤S1500)。如果预测模式是内预测,则画面内预测部1300启动,进行画面内预测处理(步骤S1501),如果预测模式是间预测,则运动补偿预测部1301启动,进行运动补偿预测处理(步骤S1502)。由此,生成预测图像。接着,减法电路1302从编码对象宏块MB减去预测图像,生成相对于预测图像的误差图像(步骤S1503)。正交变换部1303及量化部1304将误差图像正交变换,再进行量化(步骤S1504)。
这里,宏块编码部判断接下来要编码的预定宏块(下个宏块)MB的宏块地址是否大于当前正编码的宏块(编码对象宏块)MB的宏块地址加1后的值(步骤S1505)。在以图5所示的顺序进行编码的情况下,例如第一宏块编码部1201将行1的位于图片Pic右端的宏块MB(处于行1中的8号宏块MB)接下来的、行3的位于图片Pic左端的宏块MB(处于行3中的9号宏块MB)编码。此时,处于该8号宏块MB与9号宏块MB之间的、行2上的所有宏块MB不被第一宏块编码部1201编码而被排除在编码对象之外。因而,下个宏块MB(处于行3中的9号宏块MB)的宏块地址变得比对编码对象宏块MB(处于行1中的8号宏块MB)的宏块地址加1后的值大。
同样,第二宏块编码部1202将行2的位于图片Pic右端的宏块MB(处于行2中的10号宏块MB)接下来的、行4的位于图片Pic左端的宏块MB(处于行4中的11号宏块MB)编码。此时,处于该10号宏块MB与11号宏块MB之间的、行3上的所有宏块MB不被第二宏块编码部1202编码而被排除在编码对象之外。因而,下个宏块MB(处于行4中的11号宏块MB)的宏块地址变得比对编码对象宏块MB(处于行2中的10号宏块MB)的宏块地址加1后的值大。
这样,在步骤S1505中,宏块编码部判断编码对象宏块MB是否是由该宏块编码部编码的、宏块地址连续的宏块组的最后的宏块MB。即,在以图5所示的顺序进行编码的情况下,宏块编码部在步骤S1505中,在将位于图片Pic右端的宏块MB编码时判断为真(是)。
宏块编码部如果在步骤S1505中判断为真(是),则将编码对象宏块MB的量化参数QP作为再编码信息(保存参数)进行保存,以使该量化参数QP在片数据再编码部1205中被使用(步骤S1506)。此时,宏块编码部将保存的再编码信息发送给编码控制部1200。另外,步骤S1505的判断处理及步骤S1506的保存也可以由宏块编码部的可变长编码部1305进行,也可以将执行这些处理的专用的结构要素装备在宏块编码部中。
如果在步骤S1505中判断为假(否),则可变长编码部1305进行可变长编码(步骤S1507)。即,可变长编码部1305通过将量化后的系数、预测模式、以及在步骤S1501~S1504中使用的参数(例如量化参数QP的差分值)等可变长编码,来生成中间流并输出(步骤S1507)。
接着,反量化部1306及逆正交变换部1307通过将量化后的系数反量化、再进行逆正交变换,来重构误差图像(步骤S1508)。加法电路1308通过将重构的误差图像与从画面内预测部1300或运动补偿预测部1301输出的预测图像相加,生成重构图像并输出(步骤S1509)。如果这样1个宏块的编码处理完成,则宏块编码部判断是否还有要编码的宏块MB(步骤S1510)。宏块编码部如果判断为没有要编码的宏块MB(步骤S1510的“否”),则结束宏块MB的编码处理,如果判断为剩余有要编码的宏块MB(步骤S1510的“是”),则再次从预测模式的判断(步骤S1500)开始进行处理,直到不再有要编码的宏块MB。
接着,利用图13对宏块的编码处理(图11的步骤S1403)中的可变长编码处理(图12的步骤S1507)的详细情况进行说明。
图13是可变长编码处理的流程图。
首先,可变长编码部1305判断当前编码的宏块(编码对象宏块)MB的宏块地址是否大于刚编码完的宏块(刚编码完宏块)MB的宏块地址加1后的值(步骤S1600)。例如,在以图5所示的顺序进行编码的情况下,可变长编码部1305在步骤S1600中,在将位于图片Pic左端的宏块MB作为编码对象宏块MB进行编码时判断为真(是)。即,此时判断为真(是)的宏块MB处于宏块行的开头。可变长编码部1305如果在步骤S1600中判断为真(是),则将在该编码对象宏块MB的量化中使用的量化参数QP的差分值(mb_qp_delta)置换为从量化参数QP的初始值(SliceQP)减去编码对象宏块MB的量化参数QP后的值(步骤S1601)。
另外,在片数据604的再编码时,只要能够将量化参数QP的值唯一地解码就可以,所以置换的值只要是从某个特定的值减去了编码对象的宏块MB的量化参数QP后的值,则可以是任意值。此外,虽然超过了差分值(mb_qp_delta)的取值范围,但也可以置换为编码对象宏块MB的量化参数QP的值。
接着,可变长编码部1305在差分值(mb_qp_delta)的置换结束时,或者在步骤S1600中判断为假(否)时,判断可变长编码方式是CAVLC还是CABAC(步骤S1602)。如果判断为可变长编码方式是CAVLC,则可变长编码部1305以CAVLC的编码方式进行可变长编码(步骤S1603)。另一方面,如果判断为可变长编码方式是CABAC,则可变长编码部1305仅进行CABAC的编码处理中的二值化处理(步骤S1604)。
另外,在步骤S1600中判断为真(是)的情况下,也可以对进行CAVLC的可变长编码处理(S1603)或二值化处理(S1604)而生成的中间流进行处置,使得在再编码处理中知道在步骤S1600中判断为真(是)的宏块MB的开头。例如,在步骤S1600中判断为真(是)的情况下,可变长编码部1305在与刚输出的中间流不同的地址中保存这以后输出的中间流。或者,可变长编码部1305在将中间流保存到流缓冲器1204中时,将在步骤S1600中判断为真(是)的宏块MB的开头的地址发送给编码控制部1200。在此情况下,片数据再编码部1205被从编码控制部1200通知该地址,由此能够容易地找到要再编码的中间流(宏块MB)。或者,可变长编码部1305在中间流中的该宏块MB的开头***MB开始码。在此情况下,片数据再编码部1205通过检索该MB开始码,能够容易地找到要再编码的中间流(宏块MB)。
以上,宏块的可变长编码处理完成。
接着,对片数据604的再编码处理(图11的步骤S1404)的详细情况进行说明。
图14是表示对用CAVLC可变长编码后的片数据604进行再编码处理的流程图。
最初,片数据再编码部1205将包含在中间流中的宏块MB按照宏块地址顺序依次读取(步骤S1700)。接着,片数据再编码部1205通过中间流的读取,判断在中间流内完成了读取的最终位置是否为片的末端(步骤S1701)。如果判断为片的末端(步骤S1701的“是”),则片数据再编码部1205结束再编码处理。另一方面,如果判断为不是片的末端(步骤S1701的“否”),则片数据再编码部1205将对应于保存的宏块编码信息的宏块(对应宏块)MB的宏块地址加上1后的值、与再编码对象宏块MB的宏块地址进行比较(步骤S1702)。片数据再编码部1205读取中间流,直到对应宏块MB的宏块地址加上1后的值与再编码对象宏块MB的宏块地址一致。在步骤S1702中判断为一致的再编码对象宏块MB与在图13的S1600中判断为真(是)的宏块MB相同,是处于宏块行的开头的宏块MB。因此,在将中间流保存到流缓冲器1204中的情况下,只要进行使在S1600中判断为真(是)的宏块MB的开头可知的处置,就能够简单地进行步骤S1702的判断。
片数据再编码部1205在判断为对应宏块MB的宏块地址加上1后的值与再编码对象宏块MB的宏块地址一致(步骤S1702的“是”)时,首先将再编码对象宏块MB的跳过运行参数(mb_skip_run)解码,判断该跳过运行参数(mb_skip_run)是否比0大(步骤S1703)。这里,如果判断为跳过运行参数(mb_skip_run)比0大(步骤的S1703的“是”),则片数据再编码部1205将宏块地址为前1个的宏块MB的跳过运行参数(mb_skip_run)即紧前参数(prev_mb_skip_run)解码,判断该紧前参数(prev_mb_skip_run)是否比0大(步骤S1704)。这里,如果判断为紧前参数(prev_mb_skip_run)比0大(步骤S1704的“是”),则片数据再编码部1205将再编码对象宏块MB的跳过运行参数(mb_skip_run)从中间流中除去,将前1个宏块MB的跳过运行参数(mb_skip_run)变更为对再编码对象宏块MB的跳过运行参数(mb_skip_run)加上紧前参数(prev_mb_skip_run)后的值,并进行再编码(步骤S1705)。
接着,片数据再编码部1205进行再编码对象宏块MB的量化参数QP的差分值(mb_qp_delta)的再编码(步骤S1706)。差分值(mb_qp_delta)的再编码以以下的顺序进行。首先,片数据再编码部1205将再编码对象宏块MB的差分值(mb_qp_delta)解码,计算再编码对象宏块MB的量化参数QP。接着,片数据再编码部1205从编码控制部1200接收所保存的再编码信息,从该再编码信息中取得宏块地址为前1个的宏块MB的量化参数QP即紧前量化参数(QP_PREV)。并且,片数据再编码部1205通过从该紧前量化参数(QP_PREV)中减去再编码对象宏块MB的量化参数QP,来再次计算差分值(mb_qp_delta)。进而,片数据再编码部1205将再编码对象宏块MB的差分值(mb_qp_delta)从中间流中除去,将再次计算出的值编码,并***到中间流中。通过以上的顺序,差分值(mb_qp_delta)的再编码完成。然后,重复上述一系列的处理,直到成为片的末端。
图15是表示对用CABAC可变长编码的片数据604进行再编码处理的流程图。
在CABAC的情况下,由于在可变长编码处理(图12的步骤S1507)中仅进行到二值化处理,所以需要对整个中间流进行再编码,这一点是与CAVLC的情况较大地不同的点。
首先,片数据再编码部1205将对应于已保存的再编码信息的宏块(对应宏块)MB的宏块地址加上1后的值、与再编码对象宏块MB的宏块地址进行比较(步骤S1800)。步骤S1800的判断处理与图14所示的CAVLC的步骤S1702的判断处理相同。片数据再编码部1205在判断对应宏块MB的宏块地址加上1后的值与再编码对象宏块MB的宏块地址一致(步骤S1800的“是”)时,修正量化参数QP的差分值(mb_qp_delta)的二值数据(步骤S1801)。
差分值(mb_qp_delta)的二值数据的修正以以下的顺序进行。首先,片数据再编码部1205将再编码对象宏块MB的差分值(mb_qp_delta)的二值数据解码,计算再编码对象宏块MB的量化参数QP。接着,片数据再编码部1205从编码控制部1200接收所保存的再编码信息,从该再编码信息中取得宏块地址为前1个的宏块MB的量化参数QP即紧前量化参数(QP_PREV)。并且,片数据再编码部1205通过从该紧前量化参数(QP_PREV)中减去再编码对象宏块MB的量化参数QP,来再次计算差分值(mb_qp_delta)。进而,片数据再编码部1205将再编码对象宏块MB的差分值(mb_qp_delta)的二值数据从中间流中除去,将再次计算出的差分值(mb_qp_delta)的二值数据***到中间流中。通过以上的顺序,差分值(mb_qp_delta)的二值数据的修正完成。
接着,片数据再编码部1205对二值数据进行CABAC的二值化处理以后的算术编码处理(步骤S1802)。并且,片数据再编码部1205判断被算术编码的再编码对象宏块MB是否处于片的末端(步骤S1803),如果不在末端(步骤S1803的“否”),则将接着再编码的宏块MB作为新的再编码对象宏块MB进行处理,重复执行步骤S1800起的处理。
这样,在本实施方式中,即使两个宏块编码部将多个宏块行并行地编码,也能够通过片数据再编码部1205进行的参数的修正,生成与将多个宏块行以预先决定的处理顺序依次编码时生成的编码流同样的流。结果,能够解决以H.264为代表的新的编码方式中存在的基于处理顺序的依存关系,从而并行地进行编码,能够实现编码的高速化。
(变形例)
这里,对上述实施方式2的图像编码装置120的变形例进行说明。
上述实施方式2的图像编码装置120具备片数据再编码部1205,而有关本变形例的图像编码装置的特征在于,在不具备该片数据再编码部1205的情况下,解决上述基于处理顺序的依存关系,来将宏块并行解码。
图16是有关本变形例的图像编码装置的结构图。
有关本变形例的图像编码装置120a具备编码控制部1200a、第一宏块编码部1201a、第二宏块编码部1202a、去块滤波部1203、流缓冲器1204、算术编码部1208、头编码部1206、以及参照图像存储器1207。即,有关本变形例的图像编码装置120a与实施方式2的图像编码装置120相比,代替片数据再编码部1205、编码控制部1200、第一宏块编码部1201及第二宏块编码部1202而具备算术编码部1208、编码控制部1200a、第一宏块编码部1201a及第二宏块编码部1202a。另外,在以下的说明中,在不需要将第一宏块编码部1201a及第二宏块编码部1202a分别区别的情况下,将它们统称作宏块编码部。
这里,在有关本变形例的图像编码装置120a中,其特征在于编码控制部1200a及宏块编码部的处理动作,通过该处理动作,省去了片数据再编码部1205的再编码处理。需要该再编码处理的理由是因为,由于两个宏块编码部分别独自地根据编码对象宏块MB决定量化参数QP及跳过运行参数(mb_skip_run)等参数,并行地将编码对象宏块MB编码,所以通过一个宏块编码部在不知道另一宏块编码部中使用的参数的情况下将编码对象宏块MB编码,使得不满足基于处理顺序的依存关系。
所以,在本变形例的图像编码装置120a中,其特征在于以下的处理动作:为了在上述一个宏块编码部中知道在另一个宏块编码部中使用的参数,编码控制部1200a预先决定该参数(量化参数QP,在可变长编码方式是CAVLC的情况下是跳过运行参数(mb_skip_run)),两个宏块编码部分别使用该决定的参数将编码对象宏块MB编码。即,在本变形例中,编码控制部1200a作为调整部构成,通过该编码控制部1200a调整包含在由两个块编码部生成的中间流中的、用于编码的参数,使中间流与通过将包含在图片中的多个宏块行以预先决定的处理顺序依次编码而生成的编码流一致。
图17是表示有关本变形例的图像编码装置120a的动作的流程图。
有关本变形例的图像编码装置120a与图11所示的图像编码装置120的动作同样,依次进行SPS头601的编码(步骤S1400)、PPS头602的编码(步骤S1401)、以及片头603的编码(步骤S1402)。如果片头603的编码(步骤S1402)完成,则编码控制部1200a将规定的宏块MB的量化参数QP、和在可变长编码方式是CAVLC的情况下与该规定的宏块MB不同的其他宏块MB的跳过运行参数(mb_skip_run)在这些宏块MB的编码之前预先决定,以使得不再需要用来满足处理顺序的依存关系的再编码处理(步骤S1410)。
即,编码控制部1200a决定对包含在编码对象的片中的宏块MB中的、图片Pic的除了下端以外的右端的宏块MB使用的量化参数QP,并且在可变长编码方式是CAVLC的情况下,决定图片Pic的除了上端以外的左端的宏块MB的跳过运行参数(mb_skip_run)。
接着,第一宏块编码部1201a及第二宏块编码部1202a按照编码控制部1200a的指示,将编码对象图像以宏块为单位并行地编码(步骤S1411)。此时,第一宏块编码部1201a及第二宏块编码部1202a根据在步骤S1410中决定的量化参数QP及跳过运行参数(mb_skip_run),将宏块MB编码。另外,第一宏块编码部1201a及第二宏块编码部1202a在分别以CABAC将宏块MB可变长编码时,不进行CABAC的可变长编码处理的全部,而仅进行包含在该可变长编码处理中的二值化处理及算术编码处理中的二值化处理。即,在此情况下,存储在流缓冲器1204中的中间流的片数据成为二值化数据的状态。
进而,编码控制部1200a判断使宏块编码部执行的可变长编码方式是CABAC还是CAVLC(步骤S1412)。这里,编码控制部1200a在判断为可变长编码方式是CABAC时,使算术编码部1208将包含在中间流中的作为二值化数据的片数据算术编码(步骤S1413)。另外,上述片数据由在步骤S1411中编码的1个片的宏块MB的集合构成。另一方面,编码控制部1200a在判断为可变长编码方式是CAVLC时,不使算术编码部1208执行算术编码处理,而使算术编码部1208执行中间流的向头编码部1206的输出。
然后,图像编码装置120a与图11所示的图像编码装置120的动作同样,通过执行步骤S1405~S1407的处理,将1个序列的编码对象图像编码。
图18A是表示量化参数QP被决定的宏块MB的位置的图。
编码控制部1200a在将片编码之前,对于图片Pic的除了下端以外的右端的宏块(右端宏块)MB预先决定量化参数QP。并且,宏块编码部根据该决定的量化参数QP将右端的宏块MB编码。由此,宏块编码部在将图片Pic的除了上端以外的左端的宏块(左端宏块)MB编码时,能够知道针对处于该左端宏块MB的前1个处的右端宏块MB已经决定的量化参数QP即紧前量化参数(QP_PREV)。结果,宏块编码部通过从紧前量化参数(QP_PREV)减去作为编码对象宏块MB的左端宏块MB的量化参数QP,能够在不进行再编码处理而满足处理顺序的依存关系的基础上计算左端宏块MB的差分值(mb_qp_delta),并进行编码。
图18B是表示跳过运行参数(mb_skip_run)被决定的宏块MB的位置的图。
编码控制部1200a在将片编码之前,对图片Pic的除了上端以外的左端的宏块(左端宏块)MB预先决定跳过运行参数(mb_skip_run)。并且,宏块编码部根据该决定的跳过运行参数(mb_skip_run)将左端宏块MB编码。由此,宏块编码部在将图片Pic的除了下端以外的右端的宏块(右端宏块)MB编码时,能够知道针对处于该右端宏块MB的后1个处的左端宏块MB已经决定的跳过运行参数(mb_skip_run)。结果,宏块编码部可以考虑该左端宏块MB的跳过运行参数(mb_skip_run),而在不进行再编码处理就满足处理顺序的依存关系的基础上,决定作为编码对象宏块MB的右端宏块MB的跳过运行参数(mb_skip_run),并进行编码。
图19是表示有关本变形例的宏块编码部的编码处理(图17的步骤S1411)的详细情况的流程图。
有关本变形例的宏块编码部与图12所示的编码处理同样,执行预测模式的判断处理(步骤S1500)、画面内预测处理(步骤S1501)、运动补偿预测处理(步骤S1502)、减法处理(步骤S1503)、以及正交变换-量化处理(步骤S1504)。此时,宏块编码部利用上述已经决定的参数进行处理。
接着,有关本变形例的宏块编码部不执行图12所示的判断处理(步骤S1505)及再编码信息保存处理(步骤S1506),而执行可变长编码处理(步骤S1507a)。接着,宏块编码部与图12所示的编码处理同样,通过执行加法处理(步骤S1509)及判断处理(步骤S1510),将1片的宏块MB编码。
图20是有关本变形例的宏块编码部的结构图。
有关本变形例的第一宏块编码部1201a及第二宏块编码部1202a都具有相同的结构,分别包括画面内预测部1300、运动补偿预测部1301、减法电路1302、正交变换部1303、量化部1304、可变长编码部1305a、反量化部1306、逆正交变换部1307、以及加法电路1308。即,有关本变形例的宏块编码部代替图10所示的实施方式2的宏块编码部的可变长编码部1305而具备可变长编码部1305a,关于其他结构要素,具备与实施方式2的宏块编码部同样的结构要素。
有关本实施例的可变长编码部1305a不是如实施方式2的可变长编码部1305那样进行量化参数QP的差分值(mb_qp_delta)的置换等,而是按照CAVLC或CABAC的编码方式进行可变长编码。
图21是表示由可变长编码部1305a进行的可变长编码处理(图19的步骤S1507a)的详细情况的流程图。
有关本变形例的可变长编码部1305a首先判断可变长编码方式是CAVLC还是CABAC(步骤S1602)。如果判断为可变长编码方式是CAVLC,则可变长编码部1305a以CAVLC的编码方式进行可变长编码(步骤S1603)。另一方面,如果判断为可变长编码方式是CABAC,则可变长编码部1305a仅进行包含在CABAC的可变长编码处理中的二值化处理及算术编码处理中的二值化处理(步骤S1604a)。
这样,在本变形例中,在决定了用于各宏块编码部的编码的参数中的、在处理顺序中有依存关系的参数之后,利用该参数进行编码,因此,即使不进行其他宏块编码部的编码,各宏块编码部也能够预知在该编码中使用的参数。其结果是,各宏块编码部针对处理顺序中存在依存关系的参数也能够编码到最后,能够简单地生成解决了基于处理顺序的依存关系的、不需要再编码的编码流。
另外,在上述变形例中,仅对包含在片中的部分宏块MB决定了量化参数QP及跳过运行参数(mb_skip_run),但也可以对包含在片中的所有宏块MB决定上述参数。
此外,在上述实施方式2中,将作为在片数据604的再编码处理中预先需要的参数的再编码信息经由编码控制部1200传送给片数据再编码部1205。但是,只要将再编码信息传送给片数据再编码部就可以,并不一定需要经由编码控制部1200传送。例如,也可以如在实施方式1的图像解码装置中进行的那样,将再编码信息植入到中间流中进行传送。
此外,在上述实施方式2及其变形例中,使用两个宏块编码部并行地进行像素数据的编码,但宏块编码部的个数并不限于两个。在专利文献1中,记载了使用两个以上的宏块编码部并行地将像素数据编码的方法,如果按照该方法,则使用两个以上的宏块编码部也能够编码。
此外,在上述实施方式2及其变形例中,也可以将包含在图像编码装置120、120a各自中的各结构要素的全部或其一部分安装在1个集成电路上,也可以用安装在1个基板上的多个集成电路实现,也可以由经由网络或总线连接的独立的装置实现。
此外,在上述实施方式2中,在片的开头宏块MB中,用于差分值(mb_qp_delta)计算的紧前面的宏块MB的量化参数(QP_PREV)是在宏块MB的编码之前就清楚的量化参数QP的初始值(SliceQP),不需要差分值(mb_qp_delta)的再编码。因此,也可以在宏块编码部接着要编码的宏块MB的宏块地址比当前正在编码的宏块MB的宏块地址加1后的值大的地方切割片。由此,不论是哪个宏块MB,都能够省去差分值(mb_qp_delta)的再编码。
以上,利用实施方式1及2和其变形例对有关本发明的图像解码装置及图像编码装置进行了说明,但本发明并不限定于这些。
例如,构成上述各装置的结构要素的一部分或全部也可以由1个***LSI(Large Scale Integration:大规模集成电路)构成。***LSI是将多个结构部集成在1个芯片上而制造的超多功能LSI,具体而言是包括微处理器、ROM、RAM等而构成的计算机***。在上述RAM中存储有计算机程序。通过上述微处理器按照上述计算机程序进行动作,***LSI实现其功能。此外,构成上述各装置的结构要素的各部既可以单独地1芯片化,也可以包括一部分或全部而1芯片化。此外,这里称作***LSI,但根据集成度的差异,也有称作IC、LSI、超级LSI、超大规模LSI的情况。此外,集成电路化的方法并不限于LSI,也可以由专用电路或通用处理器实现。此外,也可以使用在LSI制造后能够编程的FPGA(Field Programmable GateArray)、或能够重构LSI内部的电路单元的连接及设定的可重构处理器。
进而,如果因半导体技术的进步或派生的其他技术而出现代替LSI的集成电路化的技术,则当然也可以使用该技术进行结构要素的集成化。有可能是生物技术的应用等。
此外,在上述实施方式及其变形例中,各结构要素也可以由专用的硬件构成,或者也可以通过对能够由软件实现的结构要素执行程序来实现。例如,可以通过CPU等的程序执行部读取记录在硬盘或半导体存储器等的记录媒体中的软件程序并执行来实现各结构要素。
此外,也可以将上述实施方式1及2和其变形例在没有矛盾的范围内任意地组合。
工业实用性
有关本发明的图像解码装置及图像编码装置具有能够高速地将运动图像数据解码及编码的特征,例如作为处理MPEG等压缩图像的数字电视机、DVD记录机及Blu-ray Disc记录机等是有实用性的。此外,也能够应用到广播站等需要高速的处理的设备的用途中。
Claims (8)
1.一种图像解码装置,对编码流进行解码,上述编码流是将由多个块构成的图片按照每个块进行编码而生成的,
上述图像解码装置具备:
预解码部,按照包含在上述编码流中的由多个块构成的每个块组,对该块组进行作为解码处理的一部分的可变长解码处理,由此生成作为在并行进行其他块组的上述解码处理中预先需要的并行处理用参数的块解码信息;以及
多个块解码部,分别对包含在上述编码流中的相互不同的块组以块为单位并行地进行上述解码处理;
上述多个块解码部的每一个在对上述块组进行上述解码处理时,使用在对其他块组进行了的上述可变长解码处理中生成的其他块组的块解码信息,对上述块组进行上述解码处理,
在上述多个块解码部中的各个块解码部进行的上述解码处理中,包含与由上述预解码部进行的上述可变长解码处理相同的处理。
2.如权利要求1所述的图像解码装置,
上述预解码部还在上述编码流的上述各块组的开头,***能够唯一地判断是该块组的开头的位模式;
上述多个块解码部的每一个通过检索***到上述编码流中的位模式,找到该块解码部应进行上述解码处理的块组,来将上述块组解码。
3.如权利要求1所述的图像解码装置,
上述预解码部还将生成的上述块解码信息***到上述编码流中;
上述多个块解码部的每一个取得***了上述块解码信息的上述编码流,使用***到上述编码流中的上述块解码信息对上述块组进行上述解码处理。
4.如权利要求1所述的图像解码装置,
上述预解码部在生成上述块解码信息时,生成通过对上述块组进行上述可变长解码处理而得到的、在包含于上述块组中的最后的块的上述解码处理中需要的并行处理用参数,来作为上述块解码信息。
5.如权利要求1所述的图像解码装置,
上述预解码部在生成上述块解码信息时,生成通过对上述块组进行上述可变长解码处理而得到的、在包含于上述块组中的最后的块的上述解码处理中需要的量化参数与预先决定的量化参数之间的差分,来作为上述块解码信息。
6.如权利要求1所述的图像解码装置,
上述块解码信息是参照处于可变长解码处理对象的块紧前面的块的处理结果而生成的。
7.一种图像解码方法,对编码流进行解码,上述编码流是将由多个块构成的图片按照每个块进行编码而生成的,在上述图像解码方法中,
按照包含在上述编码流中的由多个块构成的每个块组,对该块组进行作为解码处理的一部分的可变长解码处理,由此生成作为在并行进行其他块组的上述解码处理中预先需要的并行处理用参数的块解码信息;
对包含在上述编码流中的相互不同的块组以块为单位并行地进行上述解码处理;
在对上述块组进行上述解码处理时,使用在对其他块组进行了的上述可变长解码处理中生成的其他块组的块解码信息,对上述块组进行上述解码处理,
在对上述相互不同的块组进行的上述解码处理中,包含与对上述每个块组进行的上述可变长解码处理相同的处理。
8.一种集成电路,对编码流进行解码,上述编码流是将由多个块构成的图片按照每个块进行编码而生成的,
上述集成电路具备:
预解码部,按照包含在上述编码流中的由多个块构成的每个块组,对该块组进行作为解码处理的一部分的可变长解码处理,由此生成作为在并行进行其他块组的上述解码处理中预先需要的并行处理用参数的块解码信息;以及
多个块解码部,分别对包含在上述编码流中的相互不同的块组以块为单位并行地进行上述解码处理;
上述多个块解码部的每一个在对上述块组进行上述解码处理时,使用在对其他块组进行了的上述可变长解码处理中生成的其他块组的块解码信息,对上述块组进行上述解码处理,
在上述多个块解码部中的各个块解码部进行的上述解码处理中,包含与由上述预解码部进行的上述可变长解码处理相同的处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008-151246 | 2008-06-10 | ||
JP2008151246 | 2008-06-10 | ||
PCT/JP2009/002546 WO2009150808A1 (ja) | 2008-06-10 | 2009-06-05 | 画像復号装置および画像符号化装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101779466A CN101779466A (zh) | 2010-07-14 |
CN101779466B true CN101779466B (zh) | 2015-02-11 |
Family
ID=41416521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980100106.6A Expired - Fee Related CN101779466B (zh) | 2008-06-10 | 2009-06-05 | 图像解码装置及图像编码装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9042457B2 (zh) |
EP (1) | EP2290985B1 (zh) |
JP (1) | JP5756921B2 (zh) |
CN (1) | CN101779466B (zh) |
TW (1) | TWI514891B (zh) |
WO (1) | WO2009150808A1 (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8542748B2 (en) | 2008-03-28 | 2013-09-24 | Sharp Laboratories Of America, Inc. | Methods and systems for parallel video encoding and decoding |
US8712173B2 (en) * | 2010-03-12 | 2014-04-29 | Mediatek Singapore Pte. Ltd. | Methods for processing 2Nx2N block with N being positive integer greater than four under intra-prediction mode and related processing circuits thereof |
CN101902643B (zh) * | 2010-07-09 | 2013-02-06 | 西安交通大学 | 并行阵列式帧内预测解码器vlsi结构设计方法 |
US20120014429A1 (en) * | 2010-07-15 | 2012-01-19 | Jie Zhao | Methods and Systems for Parallel Video Encoding and Parallel Video Decoding |
GB2482731B (en) * | 2010-08-13 | 2016-12-21 | Advanced Risc Mach Ltd | A video decoding apparatus and method |
WO2012035728A1 (ja) * | 2010-09-16 | 2012-03-22 | パナソニック株式会社 | 画像復号装置、画像符号化装置、それらの方法、プログラム、集積回路およびトランスコード装置 |
US8344917B2 (en) * | 2010-09-30 | 2013-01-01 | Sharp Laboratories Of America, Inc. | Methods and systems for context initialization in video coding and decoding |
US9313514B2 (en) | 2010-10-01 | 2016-04-12 | Sharp Kabushiki Kaisha | Methods and systems for entropy coder initialization |
CN102075746B (zh) * | 2010-12-06 | 2012-10-31 | 青岛海信信芯科技有限公司 | 一种视频宏块解码方法及装置 |
US9154158B2 (en) * | 2011-01-13 | 2015-10-06 | Texas Instruments Incorporated | Macro-block encoding of skipped video frames |
WO2012111315A1 (ja) * | 2011-02-16 | 2012-08-23 | パナソニック株式会社 | ストリーム生成装置、ストリーム生成方法、ストリーム処理装置、およびストリーム処理方法 |
US8848804B2 (en) * | 2011-03-04 | 2014-09-30 | Vixs Systems, Inc | Video decoder with slice dependency decoding and methods for use therewith |
FR2972588A1 (fr) | 2011-03-07 | 2012-09-14 | France Telecom | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants |
FR2977111A1 (fr) * | 2011-06-24 | 2012-12-28 | France Telecom | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants |
KR101790401B1 (ko) | 2011-08-25 | 2017-10-25 | 선 페이턴트 트러스트 | 주기적인 버퍼 기재를 사용하여 비디오를 부호화 및 복호하는 방법 및 장치 |
JP5970647B2 (ja) | 2011-09-07 | 2016-08-17 | サン パテント トラスト | 画像復号方法、及び画像復号装置 |
EP4135324A1 (en) | 2011-09-19 | 2023-02-15 | Sun Patent Trust | Image decoding program and image encoding program |
IN2014CN02604A (zh) | 2011-10-19 | 2015-08-07 | Panasonic Corp | |
KR101965388B1 (ko) * | 2011-11-04 | 2019-04-04 | 주식회사 골드피크이노베이션즈 | 양자화 계수 부/복호화 방법 및 이러한 방법을 사용하는 장치 |
JP6080375B2 (ja) | 2011-11-07 | 2017-02-15 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
US9172961B2 (en) * | 2012-01-17 | 2015-10-27 | Infobridge Pte. Ltd. | Method of applying edge offset |
JP2013150215A (ja) * | 2012-01-20 | 2013-08-01 | Fujitsu Ltd | 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム |
ES2789024T3 (es) * | 2012-04-12 | 2020-10-23 | Velos Media Int Ltd | Gestión de datos de extensión |
CN107105247B (zh) * | 2012-04-13 | 2021-05-07 | 佳能株式会社 | 视频数据的变换单位的子集的编解码的方法、设备和*** |
EP3024243B1 (en) * | 2012-04-16 | 2017-08-02 | Telefonaktiebolaget LM Ericsson (publ) | Fixed tile structure flag indicating parallel processing possibility for a sequence of compressed video |
JP6080405B2 (ja) * | 2012-06-29 | 2017-02-15 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
US9241163B2 (en) * | 2013-03-15 | 2016-01-19 | Intersil Americas LLC | VC-2 decoding using parallel decoding paths |
JP6272194B2 (ja) * | 2014-09-24 | 2018-01-31 | 株式会社日立情報通信エンジニアリング | 動画像符号化装置、動画像復号装置、および動画像符号化・復号化方法 |
JP6532222B2 (ja) * | 2014-11-28 | 2019-06-19 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
GB2533155B (en) | 2014-12-12 | 2021-09-15 | Advanced Risc Mach Ltd | Video data processing system |
US10136132B2 (en) * | 2015-07-21 | 2018-11-20 | Microsoft Technology Licensing, Llc | Adaptive skip or zero block detection combined with transform size decision |
JP6317720B2 (ja) * | 2015-11-09 | 2018-04-25 | 富士通株式会社 | 動画像符号化装置、動画像符号化方法、動画像符号化プログラム |
JP2016054514A (ja) * | 2015-11-09 | 2016-04-14 | 富士通株式会社 | 動画像符号化装置、動画像符号化方法、動画像符号化プログラム |
JP6311821B2 (ja) * | 2017-04-18 | 2018-04-18 | 富士通株式会社 | 動画像処理装置及び動画像処理方法 |
WO2019104862A1 (en) | 2017-11-30 | 2019-06-06 | SZ DJI Technology Co., Ltd. | System and method for reducing video coding fluctuation |
WO2019104635A1 (en) | 2017-11-30 | 2019-06-06 | SZ DJI Technology Co., Ltd. | System and method for controlling video coding at frame level |
WO2019104611A1 (en) * | 2017-11-30 | 2019-06-06 | SZ DJI Technology Co., Ltd. | System and method for controlling video coding within image frame |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060093043A1 (en) * | 2004-10-29 | 2006-05-04 | Hideharu Kashima | Coding apparatus, decoding apparatus, coding method and decoding method |
CN101022534A (zh) * | 2006-02-15 | 2007-08-22 | 松下电器产业株式会社 | 解码装置和集成电路 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3474005B2 (ja) * | 1994-10-13 | 2003-12-08 | 沖電気工業株式会社 | 動画像符号化方法及び動画像復号方法 |
JPH10234043A (ja) | 1997-02-20 | 1998-09-02 | Toshiba Corp | 動画像符号化/復号化装置 |
US8913667B2 (en) * | 1999-11-09 | 2014-12-16 | Broadcom Corporation | Video decoding system having a programmable variable-length decoder |
US7292772B2 (en) * | 2000-05-29 | 2007-11-06 | Sony Corporation | Method and apparatus for decoding and recording medium for a coded video stream |
EP2367358A1 (en) * | 2002-04-26 | 2011-09-21 | NTT DoCoMo, Inc. | Image encoding apparatus, image decoding apparatus, image encoding method, image decoding method, image encoding program, and image decoding program |
US7305036B2 (en) * | 2002-05-14 | 2007-12-04 | Broadcom Corporation | System and method for entropy code preprocessing |
US6931061B2 (en) | 2002-11-13 | 2005-08-16 | Sony Corporation | Method of real time MPEG-4 texture decoding for a multiprocessor environment |
KR20050090302A (ko) * | 2004-03-08 | 2005-09-13 | 경희대학교 산학협력단 | 비디오 인코더/디코더, 비디오 인코딩/디코딩 방법, 그방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능한기록매체 |
CN1922885A (zh) * | 2004-08-05 | 2007-02-28 | 松下电器产业株式会社 | 图象解码装置和图象编码装置 |
JP4453518B2 (ja) | 2004-10-29 | 2010-04-21 | ソニー株式会社 | 符号化及び復号装置並びに符号化及び復号方法 |
JP4779735B2 (ja) * | 2006-03-16 | 2011-09-28 | パナソニック株式会社 | 復号装置、復号方法、プログラムおよび記録媒体 |
JP2007251865A (ja) * | 2006-03-20 | 2007-09-27 | Sony Corp | 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体 |
JP4182442B2 (ja) | 2006-04-27 | 2008-11-19 | ソニー株式会社 | 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体 |
US7626518B2 (en) * | 2006-06-08 | 2009-12-01 | Via Technologies, Inc. | Decoding systems and methods in computational core of programmable graphics processing unit |
CN101939994B (zh) | 2008-12-08 | 2013-07-17 | 松下电器产业株式会社 | 图像解码装置及图像解码方法 |
-
2009
- 2009-06-05 US US12/673,408 patent/US9042457B2/en not_active Expired - Fee Related
- 2009-06-05 EP EP09762239.3A patent/EP2290985B1/en not_active Not-in-force
- 2009-06-05 WO PCT/JP2009/002546 patent/WO2009150808A1/ja active Application Filing
- 2009-06-05 JP JP2010516742A patent/JP5756921B2/ja not_active Expired - Fee Related
- 2009-06-05 CN CN200980100106.6A patent/CN101779466B/zh not_active Expired - Fee Related
- 2009-06-08 TW TW098119028A patent/TWI514891B/zh not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060093043A1 (en) * | 2004-10-29 | 2006-05-04 | Hideharu Kashima | Coding apparatus, decoding apparatus, coding method and decoding method |
CN101022534A (zh) * | 2006-02-15 | 2007-08-22 | 松下电器产业株式会社 | 解码装置和集成电路 |
Non-Patent Citations (1)
Title |
---|
JP特开2007-251605A 2007.09.27 * |
Also Published As
Publication number | Publication date |
---|---|
US20110200115A1 (en) | 2011-08-18 |
EP2290985A4 (en) | 2013-03-06 |
US9042457B2 (en) | 2015-05-26 |
CN101779466A (zh) | 2010-07-14 |
EP2290985A1 (en) | 2011-03-02 |
JP5756921B2 (ja) | 2015-07-29 |
WO2009150808A1 (ja) | 2009-12-17 |
EP2290985B1 (en) | 2017-05-03 |
JPWO2009150808A1 (ja) | 2011-11-10 |
TWI514891B (zh) | 2015-12-21 |
TW201004359A (en) | 2010-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101779466B (zh) | 图像解码装置及图像编码装置 | |
CN102461172B (zh) | 运动图像编码装置 | |
JP5474546B2 (ja) | 低減された解像度の分割の方法及び装置 | |
US9380308B2 (en) | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto | |
US20140286417A1 (en) | Data encoding and decoding | |
US20170142441A1 (en) | Method of Coding and Decoding Images, Coding and Decoding Device and Computer Programs Corresponding Thereto | |
JP5341764B2 (ja) | 多視点映像の符号化、復号化方法及び装置 | |
CN104429067B (zh) | 通过预测当前块的划分进行视频编码的方法、解码方法、编码和解码装置及其相应的介质 | |
JP2010515400A (ja) | 全域差ベクトルを利用した多視点映像の符号化、復号化方法及び装置 | |
CN104272735A (zh) | 针对视频的上下文自适应二进制熵编码的变换系数编码 | |
JP2013524707A (ja) | 有意マップおよび変換係数ブロックの符号化 | |
CN103765894A (zh) | 伴随使用共同定位的图像的帧间预测的对视频编码的方法和设备以及对视频解码的方法和设备 | |
WO2005011285A1 (ja) | 画像符号化装置,画像復号装置,画像符号化方法,画像復号方法,画像符号化プログラム,画像復号プログラム,画像符号化プログラムを記録した記録媒体,画像復号プログラムを記録した記録媒体 | |
CN101573985A (zh) | 用于视频预测编码的方法和装置以及用于视频预测解码的方法和装置 | |
EP2018070A1 (en) | Method for processing images and the corresponding electronic device | |
JP5400133B2 (ja) | 線形形状の画素区画にスライスされた画像または画像シーケンスの符号化および復号 | |
CN102845065A (zh) | 用于重排并行熵编码和解码的方法和设备 | |
JP7360466B2 (ja) | 画像の符号化及び復号化 | |
CN104205848A (zh) | 使用用于并行处理的统一语法的视频编码方法和设备以及视频解码方法和设备 | |
CN107925757A (zh) | 对图像进行编码和解码的方法、用于对图像进行编码和解码的设备及其相应的计算机程序 | |
KR20120045369A (ko) | 쿼드 트리 기반으로 블록 필터 정보를 부호화/복호화하는 영상 부호화/복호화 장치 및 방법 | |
JP7233363B2 (ja) | 画像パラメータをコーディング及びデコーディングする方法、画像パラメータをコーディング及びデコーディングする装置、並びに、これらに対応するコンピュータプログラム | |
CN104769945A (zh) | 编码和解码图像的方法、编码和解码装置、以及与其对应的计算机程序 | |
MX2014004501A (es) | Metodo de codificacion con prediccion de video de movimiento, dispositivo de codificacion con prediccion de video de movimiento, programa de codificacion con prediccion de video de movimiento, metodo para descifrar con prediccion de video de movimiento, dispositivo para descifrar con prediccion de video de movimiento, y programa para descifrar con prediccion de video de movimiento. | |
CN107409216A (zh) | 图像编码和解码方法、编码和解码设备以及相应的计算机程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150211 Termination date: 20190605 |