JPWO2008084817A1 - 画像符号化と復号化の方法及び装置 - Google Patents
画像符号化と復号化の方法及び装置 Download PDFInfo
- Publication number
- JPWO2008084817A1 JPWO2008084817A1 JP2008553107A JP2008553107A JPWO2008084817A1 JP WO2008084817 A1 JPWO2008084817 A1 JP WO2008084817A1 JP 2008553107 A JP2008553107 A JP 2008553107A JP 2008553107 A JP2008553107 A JP 2008553107A JP WO2008084817 A1 JPWO2008084817 A1 JP WO2008084817A1
- Authority
- JP
- Japan
- Prior art keywords
- prediction
- mode
- block
- pixel
- pixel block
- 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.)
- Abandoned
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/182—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 pixel
-
- 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
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- 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
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
画像符号化装置は、入力画像信号のフレームを分割した複数の画素ブロック毎に該画素ブロックに対応する複数の第1予測信号を生成するために、予測方向の異なる複数の予測モードに従って、符号化済み画素を参照画素に用いて前記画素ブロックを予測するように構成される複数方向予測部;前記複数の予測モードの予測方向と、前記画素ブロック中の予測画素と前記参照画素との間の空間的距離とに応じて重み係数を設定するように構成される設定部;前記画素ブロックに対応する一つの第2予測信号を生成するために、前記複数の第1予測信号を前記重み係数に従って加重平均するように構成される加重平均部;及び符号化データを生成するために、前記画素ブロックの画像信号と、少なくとも前記第2予測信号との差を表す予測残差信号を符号化するように構成される符号化部;を有する。
Description
本発明は、動画像または静止画像のための符号化と復号化の方法及び装置に関する。
近年、大幅に符号化効率を向上させた画像符号化方法がITU-TとISO/IECとの共同で、ITU-T Rec. H. 264及びISO/IEC 14496-10(以下、H. 264という)として勧告されている。ISO/IEC MPEG-1, 2及び4, ITU-T H. 261及びH. 263といった符号化方式は、直交変換後の周波数領域(DCT係数)上でのフレーム内予測を行い、変換係数の符号量削減を図っている。これに対して、H. 264では空間領域(画素領域)での方向予測(Greg Conklin, “New Intra Prediction Modes”, ITU-T Q.6/SG16 VCEG, VCEG-N54, Sep. 2001.(文献1)参照)を取り入れることにより、ISO/IEC MPEG-1, 2及び4におけるフレーム内予測と比較して高い予測効率を実現している。
H.264ハイプロファイルでは、輝度信号に対して3種類のフレーム内予測方式が規定されており、そのうちの1つをマクロブロック(16x16画素ブロック)単位に選択できる。3種類のフレーム内予測方式は、4x4画素予測、8x8画素予測及び16x16画素予測と呼ばれている。
16x16画素予測では、垂直予測、水平予測、DC予測及び平面予測と呼ばれる4つの予測モードが規定されている。4つの予測モードでは、デブロッキングフィルタが適用される前の局部復号信号のうち符号化対象マクロブロックの周囲のマクロブロックの画素値を参照画素値として用いて予測を行う。
4x4画素予測は、マクロブロックを16個の4x4画素ブロック(サブブロック)に分割し、それぞれの4x4画素ブロックに対して9つの予測モードのいずれかをブロック毎に選択する。9つの予測モードのうち、利用可能な参照画素の平均画素値で予測するDC予測(モード2)を除く8つのモードは、それぞれ22.5度間隔でずれた予測方向を持っている。参照画素を用いて予測方向に外挿補間を行うことにより、予測信号を生成する。
8x8画素予測は、マクロブロックを4個の8x8画素ブロック(サブブロック)に分割し、それぞれの8x8画素ブロックに対して上記9つの予測モードのいずれかをブロック毎に選択する。予測モードは、4x4画素予測と同じ枠組みで設計される。但し、符号化済みの参照画素に対して3タップのフィルタリングを行い、予測に用いる参照画素の平坦化を行うことで符号化歪みを平均化する処理が追加される。
Kenneth K. C. Lee et al. “Spatial Domain Contribution to a High Compression Efficiency System” IWAIT2006, Jun.2006(文献2)には、上記9つの予測モード候補から2つの予測モードを選択し、選択した2つの予測モードに従って生成される予測信号に対して画素単位に平均値を求めることにより、予測信号を生成する手法が開示されている。この手法によると、基本的には通常の4x4画素予測や8x8画素予測では想定していないような複雑なテクスチャに対しても、高い予測効率が実現される。
文献2によると、マクロブロック内のサブブロック(4x4画素ブロックまたは8x8画素ブロック)の予測は、サブブロック内の全ての画素が参照画素からの影響が同一であるとして、一律に2つの予測モードの予測信号を画素単位に平均した値を最終的に用いる予測信号としている。
H.264のフレーム内予測では、複数の予測モード候補から画素ブロック内に1つを選択する。これはブロック内におけるテクスチャの方向性が1つであると仮定しているためであり、複雑なテクスチャ領域においては予測残差が増大し、結果的に符号化効率が低下する。
一方、非特許文献2では常に2つの予測モードを使用する。すなわち、単一の予測モードで十分なときでも2つの予測モードを用いて予測を行う。このため、符号化効率の面で改良の余地がある。また、非特許文献2ではサブブロックの予測は、サブブロック内の全ての画素が参照画素からの影響が同一であるとの仮定により各予測モードに基づく予測信号を画素単位に平均した値を最終的に用いる予測信号としているが、このような仮定は必ずしも成り立たず、予測残差が増大する可能性がある。
本発明の目的は、符号化効率の高い画像符号化と画像復号化の方法及び装置を提供することにある。
本発明の第1の観点によると、入力画像信号のフレームを分割した複数の画素ブロックの各々に対応する複数の第1予測信号を生成するために、予測方向の異なる複数の予測モードに従って、符号化済み画素を参照画素に用いて前記画素ブロックを予測するように構成される複数方向予測部;前記複数の予測モードの予測方向と、前記画素ブロック中の予測画素と前記参照画素との間の空間的距離とに応じて重み係数を設定するように構成される設定部;前記画素ブロックに対応する一つの第2予測信号を生成するために、前記複数の第1予測信号を前記重み係数に従って加重平均するように構成される加重平均部;及び
符号化データを生成するために、前記画素ブロックの画像信号と、少なくとも前記第2予測信号との差を表す予測残差信号を符号化するように構成される符号化部;を具備する画像符号化装置を提供する。
符号化データを生成するために、前記画素ブロックの画像信号と、少なくとも前記第2予測信号との差を表す予測残差信号を符号化するように構成される符号化部;を具備する画像符号化装置を提供する。
本発明の第2の観点によると、画像信号のフレームを分割した複数の画素ブロックの各々に対応する予測残差信号を生成するために、前記予測残差信号を含む符号化データを復号するように構成される復号部;前記画素ブロックに対応する複数の第1予測信号を生成するために、予測方向の異なる複数の予測モードに従って、復号済み画素を参照画素に用いて前記画素ブロックを予測するように構成される複数方向予測部;前記複数の予測モードの予測方向と、前記画素ブロック中の予測画素と前記参照画素との間の空間的距離とに応じて重み係数を設定するように構成される設定部;前記画素ブロックに対応する一つの第2予測信号を生成するために、前記複数の第1予測信号を前記重み係数に従って加重平均するように構成される加重平均部;及び前記予測残差信号と、少なくとも第2予測信号を用いて復号画像信号を生成するように構成される生成部;を具備する画像復号化装置を提供する。
本発明の第3の観点によると、入力画像信号のフレームを分割した複数の符号化対象画素ブロックの各々をさらに分割した複数のサブブロックに対する予測順を定められた複数の予測順の中から選択するように構成される第1の選択部;前記複数の予測順に対応して予め定められた、予測方向の異なる複数の予測モードをそれぞれ含む複数の予測モードセットの中から、選択された予測順に従って、第1予測モード及び第2予測モードを含む一つの予測モードセットを選択するように構成される第2の選択部;前記符号化対象画素ブロックに対応する複数の予測信号を生成するために、前記第1予測モードに従って前記符号化対象画素ブロックを前記サブブロック単位で予測するように構成される第1の予測部;参照予測モードを生成するために、前記第2予測モードに従って予測される符号化済み画素ブロックに対応する前記第2予測モードを利用して前記第1予測モードを予測するように構成される第2の予測部;前記第1予測信号を前記複数の予測モードの予測方向と、前記符号化対象画素ブロック中の予測画素と前記参照画素との間の空間的距離とに応じて重み係数を設定するように構成される設定部;前記符号化対象画素ブロックに対応する一つの第2予測信号を生成するために、前記重み係数に従って加重平均するように構成される加重平均部;及び前記符号化対象画素ブロックの画像信号と前記第2予測信号との差を表す予測残差信号と、選択された予測順を示す情報、及び前参照予測モードに基づいて生成される、前記第1予測モードを表すモード情報を符号化するように構成される符号化部;を具備する画像符号化装置を提供する。
本発明の第4の観点によると、画像信号のフレームを分割した複数の画素ブロック毎に、予測残差信号、選択された予測順を示す情報、及び第1予測モードを表すモード情報を生成するために前記符号化データを復号するように構成される復号部;復号対象画素ブロックを分割した複数のサブブロックに対する予測順を定められた複数の予測順の中から選択するように構成される第1の選択部;前記複数の予測順に対応して予め定められた、予測方向の異なる複数の予測モードをそれぞれ含む複数の予測モードセットの中から、選択された予測順に従って、第1予測モード及び第2予測モードを含む一つの予測モードセットを選択するように構成される第2の選択部;前記復号対象画素ブロックに対応する複数の予測信号を生成するために、復号されたモード情報によって示される第1予測モードに従って前記復号対象画素ブロックを前記サブブロック単位で予測するように構成される予測部;前記第1予測信号を前記複数の予測モードの予測方向と、前記復号対象画素ブロック中の予測画素と参照画素との間の空間的距離とに応じて重み係数を設定するように構成される設定部;前記復号対象画素ブロックに対応する一つの第2予測信号を生成するために、前記複数の第1予測信号を前記重み係数に従って加重平均するように構成される加重平均部;及び前記第2予測信号及び前記予測残差信号を用いて復号画像信号を生成するように構成される生成部;を具備する画像復号化装置を提供する。
[発明の効果]
本発明によれば、ブロック内におけるテクスチャが複数の方向性を有するような複雑なテクスチャ領域においても予測残差を小さくできる。また、予測方向が単一の単方向予測モードと予測方向が異なる複数方向予測モードを選択することが可能であり、さらに複数方向予測モードにおいては予測モードの予測方向と予測画素と前記参照画素との間の空間的距離とに応じて設定される重み係数に従って各予測モードに基づく予測信号を加重平均するため、予測残差を小さくすることができる。従って予測効率が向上し、結果として高い符号化効率を実現できる。
本発明によれば、ブロック内におけるテクスチャが複数の方向性を有するような複雑なテクスチャ領域においても予測残差を小さくできる。また、予測方向が単一の単方向予測モードと予測方向が異なる複数方向予測モードを選択することが可能であり、さらに複数方向予測モードにおいては予測モードの予測方向と予測画素と前記参照画素との間の空間的距離とに応じて設定される重み係数に従って各予測モードに基づく予測信号を加重平均するため、予測残差を小さくすることができる。従って予測効率が向上し、結果として高い符号化効率を実現できる。
以下、図面を参照して本発明の実施の形態を説明する。
<第1の実施形態:画像符号化装置>
図1に示されるように、本発明の一実施形態に従う画像符号化装置では、動画像または静止画像の入力画像信号120が画像符号化部100に入力される。画像符号化部100はフレーム分割部101、予測部102、モード選択部103、直交変換/量子化部104、逆量子化/逆直交変換部105、加算器106、参照画像メモリ107及びエントロピー符号化部108を有する。図1の画像符号化装置は、LSIチップなどのハードウェアにより実現されるか、あるいはコンピュータにおいて画像符号化プログラムの実行によって実現される。
<第1の実施形態:画像符号化装置>
図1に示されるように、本発明の一実施形態に従う画像符号化装置では、動画像または静止画像の入力画像信号120が画像符号化部100に入力される。画像符号化部100はフレーム分割部101、予測部102、モード選択部103、直交変換/量子化部104、逆量子化/逆直交変換部105、加算器106、参照画像メモリ107及びエントロピー符号化部108を有する。図1の画像符号化装置は、LSIチップなどのハードウェアにより実現されるか、あるいはコンピュータにおいて画像符号化プログラムの実行によって実現される。
符号化制御部110は、画像符号化部100の符号化処理全般を制御するために符号化制御情報140を画像符号化部100に与え、また画像符号化部100からフィードバック情報150を適宜受け取る。符号化制御情報140には、後述する予測モードインデックス情報、ブロックサイズ切替情報、予測順切替情報、予測モード数切替情報、量子化パラメータ情報及び重み係数情報などが含まれる。量子化パラメータ情報は、量子化幅(量子化ステップサイズ)及び量子化マトリクスなどの情報を含む。フィードバック情報150には、量子化パラメータの決定に必要な、画像符号化部100での発生符号量情報が含まれる。
画像符号化部100内では、入力動画像信号120はフレーム分割部101に入力される。フレーム分割部101では、入力画像信号120の符号化対象フレームが複数の画素ブロックに分割されることによって、ブロック画像信号121が生成される。例えば、図2Aの符号化対象フレームが図2Bのような16x16画素/ブロックのサイズの複数ブロックに分割される。図2Bのブロックはマクロブロックと呼ばれ、これが符号化の基本的な処理単位となる。すなわち、符号化はマクロブロック単位で行われる。
フレーム分割部101から出力されるブロック画像信号121は、まず予測部102によってフレーム予測が施される。フレーム内予測は、既に知られているようにフレーム内で閉じた予測を行う方式である。予測部102は、符号化済みの画素を参照画素として用いて符号化対象ブロックを予測することによって予測信号122を生成する。
予測部102では、フレーム内予測のための複数の予測モードが用意されており、選択可能な全ての予測モードに従って予測を行う。ここで予測モードとは、既に符号化済みの画素から空間内の特定の方向に従って予測を行い、予測信号を生成する方向予測モードを示す。予測部102は、H.264のイントラ予測、すなわち図3Aの8x8画素予測、図3Bの4x4画素予測、あるいは図3Cの8x8/4x4画素予測(マクロブロック内で8x8画素予測と4x4画素予測が混在する)を行う予測モードを有していてもよい。このようなH.264のイントラ予測では、マクロブロック内で局部復号画像を作成しないと次の予測を行うことができない。この場合は、予測部102の内部で直交変換/量子化、逆量子化/逆直交変換を行ってもよい。
8x8画素予測及び4x4画素予測では、それぞれマクロブロックを8x8画素ブロック及び4x4画素ブロックのサブブロックに分割するが、サブブロックの形状(サイズを含む)は特に限定されない。例えば、サブブロックの形状は16x8画素、8x16画素、8x4画素、4x8画素といった形状でもよい。従って、8x4画素予測や2x2画素予測も同様の枠組みで実現が可能である。
サブブロックのブロックサイズを小さくすると、すなわちマクロブロックの分割数が増えると、後述するブロックサイズ切替情報を符号化する際の符号量が増加するが、より予測効率の高いフレーム内予測が可能となるため、予測残差が削減される。従って、後述する変換係数情報の符号量と局所復号信号とのバランスを考慮して、ブロックサイズを選択すればよい。また、領域分割手法で生成した任意形状の画素領域に対して、同様の処理を行ってもよい。
予測部102では、予測信号122とブロック画像信号121から予測信号122を差し引いた予測残差信号123が生成される。予測残差信号123は、直交変換/量子化部104とモード選択部103に入力される。直交変換/量子化部104では、予測残差信号123に対して直交変換が施され、更に直交変換によって得られる変換係数が量子化されることによって、量子化変換係数情報127が生成される。
直交変換/量子化部104における処理単位である変換/量子化ブロックの形状に関しても、8x8画素、4x4画素、16x8画素、8x16画素、8x4画素、4x8画素といった形状を選択できる。あるいは変換/量子化ブロックの形状を一つのマクロブロック内で異ならせ、例えば図3Cに示されるようにマクロブロック内に8x8画素ブロックと4x4画素ブロックとが混在するようにしてもよい。
モード選択部103では、予測残差信号123と予測部102を経て入力される予測モードインデックス情報、ブロックサイズ切替情報、予測順切替情報及び予測モード数切替情報といった予測モードに関する情報(以後、予測モードインデックス情報、ブロックサイズ切替情報、予測順切替情報及び予測モード数切替情報を予測モード情報と総称する)124を基に符号化コストを算出し、それに基づいて最適な予測モードを選択する。
より具体的には、モード選択部103は例えば予測モード情報124をOH、予測残差信号の絶対和(sum of absolute value)をSADとすると、次式により算出される符号化コストKの最小値を与える予測モードを最適モードとして選択する。
ここで、λは定数であり、量子化パラメータの値に基づいて決められる。
モード選択部103におけるコスト計算の他の例として、予測モード情報OHのみ、あるいは予測残差信号の絶対和SADのみを用いてもよい。予測モード情報あるいは予測残差信号をアダマール変換したり、近似したりした値を利用してもよい。量子化幅、量子化パラメータを利用してコスト関数を作成してもよい。
コスト計算の更に別の例として、仮符号化部を用意し、各予測モードで生成された予測残差信号123を実際に符号化した場合の符号量と、符号化データを局部復号して得られる復号画像信号130とブロック画像信号121との間の二乗誤差を用いてもよい。この場合、次式により算出される符号化コストJの最小値を与える予測モードを最適モードとして選択する。
ここで、Dはブロック画像信号121と復号画像信号130との間の二乗誤差を表す符号化歪みである。一方、Rは仮符号化によって見積もられた符号量を表している。
式(2)の符号化コストJを用いた場合、予測モード毎に仮符号化と局部復号(逆量子化や逆直交変換)が必要となるため、処理量または回路規模が増大する。しかし、Jは正確な符号量と符号化歪みを反映するため、より最適な予測モードを選択することを可能とする。この結果、より高い符号化効率を得ることができる。式(2)では、符号化コストJの計算に符号化歪D及び符号量Rを用いているが、D及びRのいずれか一方のみを用いて符号化コストを算出してもよい。また、D及びRを近似した値を用いてコスト関数を作成してもよい。
モード選択部103からは、選択した予測モードを表す最適予測モード情報125と、選択した予測モードに対応する予測信号126が出力される。最適予測モード情報125は、予測部102からの予測残差信号123と共に直交変換/量子化部104に入力される。直交変換/量子化部104は、最適予測モード情報125を参照して予測残差信号123に直交変換、例えば離散コサイン変換(DCT)を施す。直交変換としては、他にウェーブレット変換や独立成分解析などを用いてもよい。直交変換/量子化部104において、直交変換により得られる変換係数は量子化され、量子化変換係数情報127が生成される。ここで、直交変換/量子化部104において量子化に必要とされる量子化幅などの量子化パラメータは、符号化制御部110からの符号化制御情報140に含まれる前記量子化パラメータ情報によって指示される。
量子化変換係数情報127は、符号化制御情報140に含まれる予測モードインデックス情報141、ブロックサイズ切替情報142、予測順切替情報143、予測モード数切替情報144及び量子化パラメータなどの予測に関する情報と共にエントロピー符号化部108に入力される。エントロピー符号化部108は、量子化変換係数情報127及び予測に関する情報に対して例えばハフマン符号化、ゴルム符号化あるいは算術符号化のようなエントロピー符号化を施し、符号化データ146を生成する。符号化データ146は多重化部111により多重化され、更に出力バッファ112を通して符号化ビットストリーム147として出力される。
量子化変換係数情報127は、逆量子化/逆直交変換部105にも入力される。逆量子化/逆直交変換部105は、量子化変換係数情報127を符号化制御部110からの量子化パラメータ情報に従って逆量子化し、逆量子化によって得られた変換係数に対して例えば逆離散コサイン変換(IDCT)のような逆直交変換を施すことによって、予測部102から出力される予測残差信号123と等価な予測残差信号128を生成する。
逆量子化/逆直交変換部105により生成された予測残差信号128は、加算器106においてモード選択部103からの予測信号126と加算されることにより、局部復号信号129が生成される。局部復号信号129は、参照画像メモリ106に蓄積される。参照画像メモリ107に蓄積された局部復号信号は参照画像信号130として読み出され、予測部102による予測残差信号123の生成の際に参照される。
符号化ループ(図1における予測部102→直交変換/量子化部104→逆量子化/逆直交変換部105→参照画像メモリ130→予測部102)は、符号化対象ブロックで選択可能な全ての予測モードに対する処理が終了すると一巡する。ある符号化対象マクロブロックに対して符号化ループの処理が終了すると、次の符号化対象ブロックのブロック画像信号121が予測部101に入力され、再び符号化が行われる。
符号化制御部110は、発生符号量のフィードバック制御や量子化パラメータ制御によるレート制御、符号化モード制御及び予測部の制御など符号化全体の制御を行う。
(第1の実施形態:予測部102について)
次に、図4を用いて予測部102について説明する。予測部102は、予測信号を生成する予測信号生成部113を有し、更にマクロブロックを分割した複数の小画素ブロック(サブブロックという)単位の予測を行うために、内部モード選択部114、内部直交変換/量子化部115、内部逆量子化/逆直交変換部116及び内部参照画像メモリ118を有する。
次に、図4を用いて予測部102について説明する。予測部102は、予測信号を生成する予測信号生成部113を有し、更にマクロブロックを分割した複数の小画素ブロック(サブブロックという)単位の予測を行うために、内部モード選択部114、内部直交変換/量子化部115、内部逆量子化/逆直交変換部116及び内部参照画像メモリ118を有する。
予測部102にブロック画像信号121が入力されると、予測信号生成部113により後述する単方向予測または後述する双方向予測による予測信号122が生成される。この際、予測信号生成部113には符号化制御部110から予測モードインデックス情報141、ブロックサイズ切替情報142、予測モード数切替情報144及び重み係数情報145といった予測モード情報が伝達される。予測信号生成部113は、各々の予測モードによる予測信号122に加えて、予測信号122に対応する予測モード情報161を生成する。
減算器119は、ブロック画像信号121から予測信号114を差し引いて予測残差信号123を生成する。内部モード選択部114は、予測信号生成部113を経て伝達されてくる予測モード情報161(予測モードインデックス情報141、ブロックサイズ切替情報142及び予測モード数切替情報144を含む)と予測残差信号123を基に予測モードの選択を行い、選択した予測モードを示す予測モード情報124を出力する。
予測残差信号123と内部モード選択部114から出力される予測モード情報124は、内部直交変換/量子化部115に入力される。内部直交変換/量子化部115では、予測モード情報124を参照して予測残差信号123に直交変換、例えばDCTを施す。直交変換としては、他にウェーブレット変換や独立成分解析などを用いてもよい。内部直交変換/量子化部115において、直交変換により得られる変換係数は量子化され、量子化変換係数情報163が生成される。ここで、直交変換/量子化部115において量子化に必要とされる量子化幅などの量子化パラメータは、符号化制御部110からの符号化制御情報140に含まれる前記量子化パラメータ情報によって指示される。
量子化変換係数情報163は、内部逆量子化/逆直交変換部116に入力される。内部逆量子化/逆直交変換部116は、量子化変換係数情報163を符号化制御部110からの量子化パラメータ情報に従って逆量子化し、逆量子化によって得られた変換係数に対して例えばIDCTのような逆直交変換を施すことによって、予測残差信号123と等価な予測残差信号164を生成する。
内部逆量子化/逆直交変換部116により生成された予測残差信号164は、加算器117において内部モード選択部114からの予測信号162と加算されることにより、内部復号信号165が生成される。内部復号信号165は、内部参照画像メモリ118に蓄積される。
内部参照画像メモリ118に蓄積された局部復号信号は内部参照画像信号166として読み出され、予測信号生成部113による予測残差信号の生成の際に参照される。予測部102において全てのサブブロックにおける予測が完了すると、マクロブロックに対応する、予測信号122、予測残差信号123及び予測モード情報124が予測部102の外部へ出力される。
(第1の実施形態:予測信号生成部113について)
次に、図5を用いて予測信号生成部113について説明する。図5は、予測信号生成部113のうち予測信号122の生成に関わる部分のみを示している。入力されたブロック画像信号は、単方向予測部171及び双方向予測部172に入力される。
次に、図5を用いて予測信号生成部113について説明する。図5は、予測信号生成部113のうち予測信号122の生成に関わる部分のみを示している。入力されたブロック画像信号は、単方向予測部171及び双方向予測部172に入力される。
単方向予測部171及び双方向予測部172は、サブブロックに対応する予測信号を生成するために、それぞれにより選択された予測モードに従って符号化済み画素を参照してサブブロックを予測する。
すなわち、単方向予測部171は、予測モードインデックス情報141に基づいて、用意された複数の予測モードのうち一つの予測モードを選択する。単方向予測部171は、こうして選択した予測モード及びブロックサイズ切替情報142に従って、参照画像信号166を参照して予測信号を生成する。双方向予測部172は、予測モードインデックス情報141に基づいて、前記用意された複数の予測モードのうち2つの予測モードを選択する。双方向予測部172は、こうして選択した2つの予測モードとブロックサイズ切替情報142及び重み係数情報145に従って、参照画像信号166を参照して予測信号を生成する。単方向予測部171及び双方向予測部172から出力される予測信号は、予測モード数切替部173に入力される。
予測モード数切替部173は、予測モード数切替情報144に従って制御されることにより、単方向予測部171によって生成された予測信号及び双方向予測部172によって生成された予測信号のいずれかを選択し、選択した予測信号122を出力する。言い換えれば、予測モード数切替部173は予め定められた複数の予測モードの中から使用可能な予測モードの数を選択する。
図6A、図6B、図7A、図7Bを用いてサブブロックの符号化順について説明する。図6Aは、8x8画素予測におけるマクロブロック内のサブブロック(8x8画素ブロック)の基準となるインデックス:blkを示している。同様に図7Aは、4x4画素予測におけるマクロブロック内のサブブロック(4x4画素ブロック)のインデックス:blkを示している。図6Bでは、マクロブロックを4分割した8x8画素ブロックについて順次予測及び符号化処理を行うよう順番付けしている。図7Bでは、マクロブロックを4分割した8x8画素ブロックを考え、当該8x8画素ブロック内を更に4分割した4x4画素ブロックについて順次予測及び符号化処理を行うよう順番付けしている。
上述のサブブロックは、単方向予測部171または双方向予測部172に入力されることによって、各サブブロックに対応する予測信号が生成される。予測モード数切替部173は、予測モード数切替情報144が予測モード数“1”を示しているときは単方向予測部171により得られる予測信号を出力し、予測モード数切替情報144が予測モード数“2”を示しているときは双方向予測部172により得られる予測信号を出力する。予測モード数切替部173から出力される予測信号は、予測信号生成部113の出力122として取り出される。
次に、単方向予測部171及び双方向予測部172の処理について説明する。前述したように、単方向予測部171及び双方向予測部172は、図4中に示した内部参照画像メモリ118に保持されている既に復号済みの画素を参照画像信号166として用いて符号化対象のサブブロックの予測を行う。
(単方向予測部171の処理)
単方向予測部171における予測モードとしては、例えばモード0からモード8までの9つが存在する。図8Aに示されるように、モード2を除く8つのモード(モード0、モード1、モード3〜8)は、入力画像信号100のなす画像空間内において22.5度間隔でシフトした予測方向(符号化済み画素を参照する方向)を持ち、方向予測モードと呼ばれる。モード2は、単方向予測部171ではDC予測モードである。図9は、単方向予測部171における順次ブロック予測の予測モード:モード0〜8の名称を示しており、各名称にモード0〜8を表すモードインデックスが付けられている。
単方向予測部171における予測モードとしては、例えばモード0からモード8までの9つが存在する。図8Aに示されるように、モード2を除く8つのモード(モード0、モード1、モード3〜8)は、入力画像信号100のなす画像空間内において22.5度間隔でシフトした予測方向(符号化済み画素を参照する方向)を持ち、方向予測モードと呼ばれる。モード2は、単方向予測部171ではDC予測モードである。図9は、単方向予測部171における順次ブロック予測の予測モード:モード0〜8の名称を示しており、各名称にモード0〜8を表すモードインデックスが付けられている。
図8Bは、4x4画素予測における予測画素と参照画素との関係を示している。図8Bにおいて画素A〜Mは参照画素であり、画素a〜pは予測画素である。以下、図8A、図8B、図8C及び図8Dを用いて具体的な予測方法を説明する。
ここで、ave (・)は( )内に示す参照画素の画素値(輝度値)の平均(平均画素値という)を示す。
( )内の参照画素の一部が利用できない場合は、利用できる参照画素のみの平均画素値が算出されることによって予測信号が生成される。利用できる参照画素が1つも存在しない場合は、予測信号生成部113では予測信号の最大輝度値の半分の値(8ビットなら128)が予測信号とされる。
モード2以外のモードが選択された場合、単方向予測部171は図8Aで示される各予測方向に対して、参照画素を予測画素にコピーする、という予測方法を用いる。具体的に、モード0(垂直予測)が選択された場合の予測信号生成方法を次式に示す。
このモード0は、参照画素A〜Dを利用できるときだけ選択することが可能である。モード0では、図8Cに示されるように参照画素A〜Dが垂直方向に並ぶ予測画素にそのままコピーされることにより、予測信号が生成される。
モード4は、参照画素A〜D及びI〜Mを利用できるときにのみ選択することが可能である。モード4では、図8Dに示されるように3タップのフィルタによって生成された値が右下45度の方向にコピーされることによって、予測信号が生成される。
モード0、2、4以外の予測モードに関しても、同様の枠組みである。すなわち、予測方向に対して利用できる参照画素を予測方向に並ぶ予測画素にコピーするという手法により、予測信号が生成される。
(双方向予測部172の処理)
単方向予測は、ブロック内の画像における空間的方向性が一つという前提の下で予測信号を生成する。ブロック内の画像に2つ以上の空間的方向性がある場合には、このような前提が成り立たなくなるので、単方向予測のみでは予測残差信号が増大する傾向になる。そこで、2つ以上の空間的方向性がある場合は、単方向予測部171における9つの予測モード(DC予測も含む)のうち2つのモードを双方向予測部172において同時に使用することにより、複数の空間的方向性を考慮した予測を行い、予測残差信号の増大を抑制する。
単方向予測は、ブロック内の画像における空間的方向性が一つという前提の下で予測信号を生成する。ブロック内の画像に2つ以上の空間的方向性がある場合には、このような前提が成り立たなくなるので、単方向予測のみでは予測残差信号が増大する傾向になる。そこで、2つ以上の空間的方向性がある場合は、単方向予測部171における9つの予測モード(DC予測も含む)のうち2つのモードを双方向予測部172において同時に使用することにより、複数の空間的方向性を考慮した予測を行い、予測残差信号の増大を抑制する。
図11を用いて双方向予測部172について説明する。双方向予測部172は、第1単方向予測部175と第2単方向予測部176及び加重平均部180を有する。単方向予測部175及び176は、図5に示す単方向予測部171と同様である。単方向予測部175及び176は、予測モードインデックス情報141に従ってそれぞれ異なる予測モードが設定され、設定された予測モードにより符号化対象ブロックを予測する。すなわち、単方向予測部175及び176では、予測モード及びブロックサイズ切替情報142に従って参照信号166を参照して予測信号181及び182を生成する。
単方向予測部175及び176によって生成された予測信号181及び182は、加重平均部180に入力される。加重平均部180では、例えば符号化制御部110から与えられる重み係数情報145に従って予測信号181及び182を画素単位に加重平均することにより、予測信号122を生成する。但し、第1単方向予測部175については、図5に示す単方向予測部171と同一の処理を行うことで省略が可能である。この場合、単方向予測部171から出力される予測信号181と第2単方向予測部176から出力される予測信号182が加重平均部180に入力される。
図10は、双方向予測部172における予測モードの名称と対応するモードインデックスを示している。図10では、2つのモードを使用する予測モードが存在している。例えば、垂直下予測(モード0)と水平右予測(モード1)を使用する予測モードの名称及びモードインデックスをそれぞれ「垂直下/水平右予測」及び「モード01」と表記している。また、例えば垂直下予測(モード0)とDC予測(モード2)を使用する予測モードの名称及びモードインデックスを「垂直下/DC予測」及び「モード02」と表記する。
例として、垂直下予測(モード0)と水平右予測(モード1)を使用した垂直下/水平右予測による予測信号生成方法を説明する。図12Aは、4x4画素予測における垂直下/水平右予測(モード01)の概念を示している。4x4画素予測における予測画素と参照画素との関係は図8Bと同様である。例えば、予測画素aでは垂直予測において参照する画素Aと水平予測において参照する画素Iとの加重平均画素値を予測信号とする。予測画素bでは、垂直予測における参照画素Bと対角右下予測における参照画素Iとの加重平均画素値を予測信号とする。他の予測画素についても、同様の方法で予測信号が生成される。
ここで、nは図8Bで示される予測画素a〜pに対応するインデックス(予測画素位置)を表す。X(0,n)及びX(1,n)は、それぞれ予測画素位置nにおいて単方向予測である垂直予測及び水平予測によって生成される予測信号である。ω0(n)及びω1(n)は、それぞれモード0及びモード1における予測画素位置nに対応する重み係数である。予測信号X(0,n)及びX(1,n)の具体的な生成方法は、式(4)及び式(5)示された手法と同様であるので、説明を省略する。
図12Bは、モード04における予測方法の概念を示している。
ここで、X(U, n)及びX(V, n)はそれぞれ単方向予測の予測モード“U”及びモード“V”であり、X(UV, n)は双方向予測の予測モード“UV”の予測信号である。ωU(n)及びωV(n)は、それぞれ予測モード“U”及び予測モード“V”における予測画素位置nに対応する重み係数であり、下式の条件を満たす。
次に、加重平均部180において加重平均の際に用いる各予測モードにおける重み係数の設定方法を説明する。重み係数は、前述したように例えば符号化制御部110から双方向予測部172内の加重平均部180に重み係数情報145が与えられることによって設定される。すなわち、本実施形態では例えば符号化制御部110が重み係数を算出して設定する重み係数設定部の機能を有するものとする。なお、重み係数設定部は符号化制御部110以外の箇所、例えば図11の双方向予測部172内に設けられていても良い。さらに、重み係数設定部はROMによるテーブルによって実現されていても良い。
一般に、予測画素の予測精度は予測画素と参照画素との間の空間的距離が大きくなればなるほど低下する。一方、参照画素との間の空間的距離が小さい予測画素は参照画素との相関が高いため、容易に高い予測精度が得られる。従って、参照画素との間の空間的距離が大きい予測画素に対応する予測残差信号は、空間的距離が小さい予測画素に対応する予測残差信号に比べて増大する。そこで、予測モードの予測方向及び参照画素と予測画素との間の空間的距離を考慮して重み係数を画素単位に切り替える。
以下、重み係数の具体的な導出方法を以下に示す。まず、全ての予測モードについて予測画素と参照画素との間の空間的距離を考慮した信頼度、より詳しくは予測画素に対する各予測モードにより得られる予測信号の信頼度を設定する。信頼度は、例えば対応する予測モードが使用する参照画素と予測画素との間のユークリッド距離の逆数で表す。垂直予測(モード0)の場合、式(4)に示すように予測画素a, e, i, mは参照画素Aの値をコピーするので、信頼度は参照画素Aと予測画素a, e, i, mとの間のユークリッド距離の逆数として、それぞれ1, 1/2, 1/3, 1/4となる。以下に、垂直予測(モード0)の信頼度を示す。
図14Aは、モード0における参照画素と対応するユークリッド距離の関係、図15Aはモード0における予測画素と信頼度との関係を示す。ここで、図15Aにおける画素位置(i, j)の予測画素a〜pの関係は図13に示されている。
図14Bは、モード1における参照画素と対応するユークリッド距離の関係、図15Bにモード1における画素位置と信頼度との関係をそれぞれ示している。
モード4では式(5)に示されるように3タップのフィルタによって生成された値を予測信号としてコピーしている。従って、参照画素は3画素存在することになる。本実施形態では、図14Cに示すように使用する3画素のうち中央の画素を参照画素の代表として、ユークリッド距離を求める。図15Cは、モード4における画素位置と信頼度との関係を示す。
モード6では、a, e, i, m, c, g, k, oの画素については予測角度に従って仮想的に位置する参照画素から予測画素のユークリッド距離を求める(図14D)。例えば、aとgの画素については参照画素MとIの中間位置に仮想的な参照画素を配置する。図15Dは、モード6における画素位置と信頼度との関係を示す。
ここで、ρ(n)は予測画素位置nにおける信頼度、Δx, Δyは予測画素と参照画素との間の水平方向及び垂直方向の距離である。Aは定数(A>0)である。
双方向予測においては、同じ予測画素に対する2つの予測モードの信頼度の和を分母とし、各予測モードの信頼度を分子とした値を加重平均のための重み係数として用いる。例えば、垂直下予測(モード0)と水平右予測(モード1)による双方向予測を行う垂直下/水平右予測(モード01)の場合、予測画素aにおける重み係数は下式により表される。
ここで、ρ(U,n)は予測モードUにおける予測画素位置nの予測信号の信頼度、ρ(V,n)は予測モードVにおける予測画素位置nの予測信号の信頼度を表している。従って、予測画素位置nの最終的な予測信号は、式(9)に代わって下式で示される。
別の実施形態として、重み係数を0若しくは正の整数として、且つ重み係数の和を2のべき乗(指数をNと表す)でしてもよい。このようにすると、丸めによる演算誤差が発生するものの、予測信号を整数演算のみで容易に算出することが可能である。この場合の双方向予測は、以下の一般式で表される。
本実施形態では、一つの予測画素に対して2つの予測モードを選択して予測信号を生成しているが、別の実施形態として3つ以上の予測モードを選択して予測信号を生成してもよい。この場合、参照画素と予測画素との間の空間的距離の逆数の比を重み係数と設定すれば良い。
ここでは、予測モードが使用する参照画素と予測画素との間のユークリッド距離の逆数をそのまま信頼度としているが、別の例として当該ユークリッド距離を変数とした分布モデルを用いて信頼度を設定しても良い。分布モデルは線形モデルやM次関数(M≧1)、片側ラプラス分布や片側ガウス分布といった非線形関数、ある固定値を参照画素との距離に依らず固定値、のうち少なくとも一つを用いる。片側ガウス分布をモデルとして用いた場合、信頼度は下式で表される。
ここで、ρ(n)は予測画素位置nにおける予測信号の信頼度、σ2は分散、Bは定数(B>0)である。片側ガウス分布を用いた場合の重み係数(B=1)の例を図17Aに示す。
ここで、σは標準偏差、Cは定数(C>0)である。
片側ラプラス分布を用いた際の重み係数(C=1)の例を図17Bに示す。また、自己相関関数をモデル化した等方相関モデル、楕円相関モデル、ラプラス分布やガウス分布を一般化した一般化ガウスモデルを信頼度のモデルとして用いても良い。
他の例として、参照画素と予測画素との間のユークリッド距離と信頼度の関係を予めモデル化したテーブルを保持し、当該テーブルから重み係数を算出することも可能である。テーブル作成に関して図18は例として説明する。図18ではユークリッド距離ΔLと式(15)、(28)及び(29)の各モデルが示す信頼度を整数化したρ’(n, ΔL)のテーブルを示している。同テーブルにおいて信頼度は式(15)、(28)及び(29)におけるA,B,Cを64として整数化したものである。具体的には、それぞれ下式により算出される。
図18に示すように、予測モードによって実際に取り得るユークリッド距離は異なる。4x4画素予測の場合、図8Aに示すモード0やモード1のように予測角度が90度の定数倍となる場合、ユークリッド距離は整数値となる。モード3、モード4のように予測角度が(90度の定数倍+45度)となる場合、ユークリッド距離は√2の倍数となる。また、モード5、モード6、モード7、モード8のように予測角度が(90度の定数倍+22.5度)となる場合、ユークリッド距離は√5/2の倍数となる。
ここで、ρ’(n,ΔLU)は予測モード“U”における予測画素位置nの予測画素と参照画素との間のユークリッド距離に対する重み係数、ρ’(n,ΔLV)は予測モード“V”における予測画素位置nの予測画素と参照画素との間のユークリッド距離に対する重み係数である。ωU(n)及びωV(n)を式(23)に代入すれば、双方向予測による予測信号が生成される。また、A,B,C及び式(31)、式(32)で示されるσは、他の値を表してもよい。
更に、式(33)の処理を予めテーブル化して保持しておき、テーブル引きによって重み係数を算出してもよい。図19に、4x4画素予測の際の信頼度を式(32)においてラプラス分布でモデル化した際の市街地距離ΔLU,ΔLv(それぞれ2〜8の値をとる)と、式(23)に示す重み係数ωU,ωvとの関係を示す。(但し、C=256)。この場合、重み係数ωU,ωvは、図20に示すテーブルを用いて下式に従って算出される。
また、式(32)において標準偏差を1.0として変更した市街地距離ΔLU,ΔLvと式(23)に示す重み係数ωU,ωvとの関係を図21に示す。この場合、この場合、重み係数ωU,ωvは図22に示すテーブルdist2weightを用いて下式に従って算出される。更に、8x8画素予測の場合においても、4x4画素予測の場合と同様にテーブルを作成する。図23に、ラプラス分布(標準偏差3.0)でモデル化したテーブルdist2weight8x8を示す。予め重み係数ωU,ωvは、図23に示すテーブルを用いて下式に従って算出される。
また、ΔLU,ΔLvをユークリッド距離で表している場合は図18に示したように√2及び√5の空間距離を考慮してテーブル(dist2weight’)を作成する。具体的には、式(32)と同一の条件(ラプラス分布)の場合、市街地距離ΔLU,ΔLvと重み係数ωU,ωvとの関係は図24に示され、図25に示すようなテーブルdist2weight’から重み係数ωU,ωvが以下のように計算される。
但し、idx_u及びidx_vは空間距離のインデクスであり、具体的には図26に従って変換される。
また、図20及び図22に示したテーブルdist2weight及びdist2weight8x8については、空間距離を量子化したり間引いたりすることで、テーブルを保持するメモリの容量を削減してもよい。
本実施形態では、参照画素と予測画素との間の空間的距離をユークリッド距離としていたが、別実施形態として、市街地距離や空間的距離を一般化したミンコフスキー距離を参照画素と予測画素との間の空間的距離として用いても良い。市街地距離を用いた場合の参照画素と予測画素との間の空間的距離を下式に表す。
ここで、ΔLはk=1の場合は市街地距離、k=2の場合はユークリッド距離とそれぞれ等価となる。
ここで、ρX(n),ρY(n)はそれぞれ垂直方向に関する信頼度成分、水平方向に関する信頼度成分であり、異なるモデル分布もしくは予め設定された信頼度を記述したテーブルを適用することが可能である。具体的にρX(n),ρY(n)は下式により示される。
ここで、σX,σYはそれぞれ垂直方向及び水平方向に関する信頼度に用いる標準偏差である。ΔLX,ΔLYはそれぞれ符号化対象画素と参照画素との間の距離の水平成分(水平距離成分)及び垂直成分(垂直距離成分)である。すなわち、符号化制御部110に含まれる重み係数設定部は、空間的距離を分離した水平距離成分ΔLX及び垂直距離成分ΔLYのそれぞれについて距離成分毎の評価規則に従って距離成分ΔLx,ΔLY毎の信頼度成分ρX(n),ρY(n)を求め、これらの信頼度成分ρX(n),ρY(n)を例えば式(39)のように掛け合わせることで、以下のように信頼度ρ(n)を合成する。
但し、αは底、a,bはそれぞれΔLX,ΔLYに対する重みである。
また、式(39),(40−1),(40−2)及び(41)によって予測信頼度を算出する際に、予測信頼度が最大となる値が設定されるように(ΔLX,ΔLY=0のときに信頼度はBで最大となる)、以下のようにΔLX,ΔLYをそれぞれ1減算して再設定し、それに基づき信頼度を算出してもよい。
別の例として、ρX(n),ρY(n)に予め設定されたテーブルやラプラス分布、二項分布、ガウス分布、コーシー分布、指数分布といったモデル分布系を用いても良い。ラプラス分布とガウス分布の組合せによっても求まる信頼度は、下式のとおりである。
また、式(30)〜(32)と同様に、信頼度を距離の垂直成分及び水平成分と信頼度ΔLX,ΔLYの関係を予めテーブル化して保持し、当該テーブルから重み係数を算出することも可能である。式(3)において、σV=3.0,σH=1.5,B=256とした際のΔLX,ΔLYと信頼度の関係を図27に示す。
更に、式(34)と同様に式(33)の処理を予めテーブル化して保持しておき、テーブル引きによって重み係数を算出してもよい。図27と同様の条件における重み係数のテーブルdist2weight_ovalを図28及び図29に示す。
双方向予測に使用するモードUにおける距離ΔLUの垂直成分及び水平成分をそれぞれΔLU,X,ΔLU,Yとし、モードVにおける距離ΔLVの垂直成分及び水平成分をそれぞれΔLV,X,ΔLV,Yとすると、重み係数は下式により算出できる。但し、本例においては、ΔLU,X,ΔLU,Y,ΔLV,X,ΔLV,Yは式(46)に従ってそれぞれ0〜3の値をとるものとする。
8x8画素予測の際も同様に、テーブル化して保持することで重み係数を算出することが可能である。
本実施形態では、画素ブロック単位に1種類の信頼度を適用しているが、別実施形態として、これらの信頼度候補をシーケンス毎、ピクチャ毎、スライス毎、マクロブロック毎、サブブロック毎といった単位毎に複数用意し、各単位で切り替えても良い。例えば、符号化ブロックに対して、式(15)、式(28)、式(29)を信頼度の候補として、それぞれ適用し、式(1)若しくは式(2)の符号化コストが最小となるものを最終的な信頼度として適用しても良い。
他の実施形態として、双方向予測の一方がイントラ予測であり、もう一方がインター予測であってもよい。この場合、時間的距離を空間的距離に補正するような変換によって、上述と同様の信頼度が決定できる。具体的には、下式により変換される。
ここで、ΔLtは参照画素と予測画素との時間的距離、α,βは定数である。
ここで、ΔLstは時空間距離、kは定数である。
Constは定数項であり、参照画素と符号化対象画素ブロックとの平均値の差によって設定される。参照画素と符号化対象ブロックでテクスチャの空間方向性に相関があっても、グラデーションなどで平均値が異なる場合、予測残差の増大を抑制することが可能となる。また、双方向予測の一方がイントラ予測であり、もう一方がインター予測である場合、インター予測において参照する参照ピクチャの平均輝度値と、当該ピクチャの平均輝度値とを補正するためにConstを設定しても良い。
また、上記信頼度から求まる予測モードの組合せ毎の重み係数を予め算出し,ROMによってテーブル化がされていてもよい。また、本実施形態では画素ブロック単位に1種類の重み係数を適用しているが、別実施形態として、これらのテーブル化された重み係数候補をシーケンス毎、ピクチャ毎、スライス毎、マクロブロック毎、サブブロック毎といった単位毎に複数用意し、各単位で切り替えても良い。例えば、符号化ブロックに対して、複数の信頼度の候補をそれぞれ適用し、式(1)若しくは式(2)の符号化コストが最小となるものを最終的な重み係数として適用しても良い。
このように本実施形態によれば、加重平均部180を含む予測信号生成部113を備えることにより、画素単位で暗黙的に重み係数を設定することが可能となる。従って、オーバヘッド情報を増加させることなく適切な加重平均を行って予測信号を生成することができる。この結果、予測残差は大幅に減少し、符号化効率が向上する。
(第1の実施形態:画像符号化の処理手順)
図30を参照して画像符号化部100の処理手順を説明する。画像符号化部100に1フレーム分の入力画像信号120が入力されると(ステップS101)、フレーム分割部101によって入力画像信号120の符号化対象フレームが複数の画素ブロック(マクロブロック)に分割され、ブロック画像信号121が生成される。ブロック画像信号121に対して符号化が開始される(ステップS102)。ブロック画像信号121は、予測部102に入力される。
図30を参照して画像符号化部100の処理手順を説明する。画像符号化部100に1フレーム分の入力画像信号120が入力されると(ステップS101)、フレーム分割部101によって入力画像信号120の符号化対象フレームが複数の画素ブロック(マクロブロック)に分割され、ブロック画像信号121が生成される。ブロック画像信号121に対して符号化が開始される(ステップS102)。ブロック画像信号121は、予測部102に入力される。
予測部102では、予測モード数切替情報144によってサブブロックについて単方向予測を行うか否かを判断する(ステップS103)。ここで単方向予測を行う場合(S103の結果がYES)、単方向予測部171が予測を行い(ステップS104)、単方向予測を行わない場合(S103の結果がNO)、双方向予測部172が予測を行う(ステップS105)。
ステップS104またはS105の予測が終了すると、マクロブロック内の総コスト(1)または(2)を式(1)及び式(2)から算出する(ステップS106またはS107)。ステップS106またはS107により算出された各総コストの比較を行い、予測手法を決定する(ステップS108)。こうして決定された予測手法で直交変換/量子化部104及びエントロピー符号化部108により符号化を行い、符号化データ146を出力する(ステップS109)。
このとき量子化変換係数情報127が逆量子化/逆直交変換部105により逆量子化及び逆直交変換が行われることによって、復号された予測残差信号128が生成される。復号された予測残差信号128とモード選択部103から入力される予測信号126が加算器106により加算されることによって局部復号信号129が生成される。局部復号信号129は、参照画像メモリ106に蓄積される。
入力動画像信号120の1フレーム分の予測符号化が終了しているか否かを判定する。(ステップS110)。予測符号化が終了している場合(S110の結果がYES)、次の1フレームの入力画像信号120が入力され、再び予測符号化が行われる。一方、1フレームの予測符号化が終了していない場合(S110の結果がNO)、ステップS102に戻って次のマクロブロック中のブロック画像信号121に対して予測符号化が行われる。
次に、図31を用いて図30におけるステップS104及びS105の予測処理の手順を説明する。
予測部102にブロック画像信号121が入力されると、まず予測信号生成部113にblk=0で示されるサブブロックをセットする(ステップS201)。更に、モード選択部103及び内部モード選択部114における予測モード及び符号化コストの初期化を行う(ステップS202)。例えば、予測モード:indexを0にセットし、最小符号化コスト:min_costを無限大にセットする。
予測部102にブロック画像信号121が入力されると、まず予測信号生成部113にblk=0で示されるサブブロックをセットする(ステップS201)。更に、モード選択部103及び内部モード選択部114における予測モード及び符号化コストの初期化を行う(ステップS202)。例えば、予測モード:indexを0にセットし、最小符号化コスト:min_costを無限大にセットする。
次に、予測信号生成部113によってblk=0で示されるサブブロックに対して選択可能な1つのモードにより予測信号122を生成する(ステップS203)。ブロック画像信号121と予測信号122との差分をとって予測残差信号123を生成し、式(1)または式(2)に従って符号化コストを計算する(ステップS204)。
モード選択部103は、計算された符号化コストが最小符号化コスト:min_costより小さいか否かを判別し(ステップS205)、小さい場合(S205の結果がYES)、計算された符号化コストで最小符号化コストを更新するとともに、その際の予測モード情報を最適予測モード情報であることを示すbest_modeインデックスとして保持する(ステップS206)。計算されたコストが最小符号化コスト:min_costより大きい場合(S205の結果がNO)、モードインデックス:indexをインクリメントし、インクリメント後のindexがモードの最後の番号(MAX)より大きいか否かを判定する(ステップS207)。
indexがMAXよりも大きい場合(S207の結果がYES)、モード選択部103から最適予測モード情報125及び予測残差信号126を直交変換/量子化部104へ渡し、直交変換及び量子化を行う。直交変換/量子化部104により得られる量子化変換係数情報127をエントロピー符号化部108によって予測モードインデックス情報141と共にエントロピー符号化する(ステップS208)。一方、indexがMAXよりも小さい場合(S207の結果がNO)、ステップS203に戻って次のindexで示される予測モードの予測信号122を生成する。
best_modeでの符号化を行うと、内部直交変換/量子化部115により得られる量子化変換係数情報163を内部逆量子化/逆直交変換部116に渡し、逆量子化及び逆変換を行う。内部逆量子化/逆直交変換部116により生成される、復号された予測残差信号164を内部モード選択部114から入力されるbest_modeの予測信号162と内部加算器117により加算する。内部加算器117によって生成される内部復号信号165を内部参照画像メモリ118に保存する(ステップS208)。
当該ブロック符号化数:blkをインクリメントし、インクリメント後のblkの値がマクロブロック内の小ブロックの総数:BLK_MAX(4x4画素予測であれば16、8x8画素予測であれば4)よりも大きいか否かを判断する(ステップS209)。インクリメント後のblkの値がBLK_MAXより大きい場合(S209の結果がYES)、当該マクロブロック内での予測処理は終了する。一方、インクリメント後のblkがBLK_MAXよりも小さい場合(S209の結果がNO)、ステップS202に戻って次のblkで示される小ブロックの予測処理を行う。
(第1の実施形態:シンタクス構造の第1の例)
次に、図32を参照して画像符号化部100において用いられるシンタクス構造の概略を説明する。
シンタクスは主にハイレベルシンタクス201、スライスレベルシンタクス204及びマクロブロックレベルシンタクス207という3つのパートからなる。ハイレベルシンタクス201では、スライス以上の上位レイヤのシンタクス情報が詰め込まれている。スライスレベルシンタクス204では、スライス毎に必要な情報が明記されている。マクロブロックレベルシンタクス207では、マクロブロック毎に必要とされる量子化パラメータの変更値やモード情報などが明記されている。
次に、図32を参照して画像符号化部100において用いられるシンタクス構造の概略を説明する。
シンタクスは主にハイレベルシンタクス201、スライスレベルシンタクス204及びマクロブロックレベルシンタクス207という3つのパートからなる。ハイレベルシンタクス201では、スライス以上の上位レイヤのシンタクス情報が詰め込まれている。スライスレベルシンタクス204では、スライス毎に必要な情報が明記されている。マクロブロックレベルシンタクス207では、マクロブロック毎に必要とされる量子化パラメータの変更値やモード情報などが明記されている。
3つのパートは、更に細かく複数のシンタクスで構成される。すなわち、ハイレベルシンタクス201は、シーケンスパラメータセットシンタクス202及びピクチャパラメータセットシンタクス203という、シーケンスレベル及びピクチャレベルのシンタクスを含む。スライスレベルシンタクス204は、スライスヘッダシンタクス205及びスライスデータシンタクス206を含む。マクロブロックレベルシンタクス207は、マクロブロックレイヤシンタクス208及びマクロブロックプレディクションシンタクス209を含む。
マクロブロックレイヤシンタクス208には、図33に示されるようにマクロブロックタイプmb_typeが記述されている。
マクロブロックプレディクションシンタクス209には、図34に示されるようにマクロブロック内のサブブロック(4x4画素ブロックまたは8x8画素ブロック)毎の予測モード情報が明記されている。単方向予測については、複数の予測モードの中から使用するモードを示す予測モード情報をintra4x4(8x8)_pred_mode_l0あるいはintra4x4(8x8)_pred_mode_l1で表す。双方向予測については、予測モード情報は2つのシンタクスを備えている。ここでは、複数の予測モードの中から2種類の予測モードを選択する際のモードインデックスが小さい方(リスト0)の予測モードをintra4x4(8x8)_pred_mode_l0で示し、モードインデックスが大きい方(リスト1)の予測モードをintra4x4(8x8)_pred_mode_l1で示す。モードインデックスが大きい方(リスト0)の予測モードをintra4x4(8x8)_pred_mode_l0で示し、モードインデックスが小さい方(リスト1)の予測モードをintra4x4(8x8)_pred_mode_l1で示してもよい。
以下、4x4画素予測が選択された場合のマクロブロックプレディクションシンタクスの構成について図34を用いて説明する。
図34中のintra4x4_bi_pred_flagは、当該4x4画素ブロックに対して双方向予測を行うか、行わないかを切り替えるフラグである。すなわち、当該フラグintra4x4_bi_pred_flagのFALSEは当該4x4画素ブロックが単方向予測であることを意味し、TRUEは当該4x4画素ブロックが双方向予測であることを意味する。
図34中のintra4x4_bi_pred_flagは、当該4x4画素ブロックに対して双方向予測を行うか、行わないかを切り替えるフラグである。すなわち、当該フラグintra4x4_bi_pred_flagのFALSEは当該4x4画素ブロックが単方向予測であることを意味し、TRUEは当該4x4画素ブロックが双方向予測であることを意味する。
以下、各シンタクスの詳細について説明する。
ブロックインデックスluma4x4Blkが示す4x4画素ブロックを予測する場合、intra4x4_pred_mode_l0は用意された単方向予測の9種類の予測モードのうちどのモードを4x4画素ブロックの予測に用いるかを示すデータとなる。intra4x4_pred_mode_l0を符号化する際は、予測モードの総数に応じてエントロピー符号化(ハフマン符号化、ゴルム符号化、あるいは算術符号化など)を行う。
ブロックインデックスluma4x4Blkが示す4x4画素ブロックを予測する場合、intra4x4_pred_mode_l0は用意された単方向予測の9種類の予測モードのうちどのモードを4x4画素ブロックの予測に用いるかを示すデータとなる。intra4x4_pred_mode_l0を符号化する際は、予測モードの総数に応じてエントロピー符号化(ハフマン符号化、ゴルム符号化、あるいは算術符号化など)を行う。
intra4x4_bi_pred_flagがTRUEの場合、更にintra4x4_pred_mode_l1を符号化する。intra4x4_pred_mode_l1の符号化に関しては、intra4x4_pred_mode_l1はintra4x4_pred_mode_l0との間で同一の予測モードはなり得ないことを考慮して、intra4x4_pred_mode_l0の状態数から1を減じた数がintra4x4_pred_mode_l1のとり得るシンボルの状態数とする。この状態数を基に、エントロピー符号化を行う。
ここで、intra4x4_bi_pred_flagについては、これらを符号化してから符号化ストリームに多重化して伝送してもよい。一方、このような多重化及び伝送をせず、符号化済みブロック及び画素から計算されるアクティビティ情報によりintra4x4_bi_pred_flagの情報を示してもよい。この場合、復号側においても符号化側と同様の手法を用いることにより、intra4x4_bi_pred_flagの情報は符号化側と同一の情報が示される。
(複数の予測モードが選択された場合の好ましい例)
更に、intra4x4_pred_mode_l1を符号化する場合、intra4x4_pred_mode_l0に従って適応的にintra4x4_pred_mode_l1が取り得る値の最大値を予測し、この最大値を基にエントロピー符号化を行っても良い。この場合、図35に示されるintra4x4_pred_mode_l0とintra4x4_pred_mode_l1は図36の白抜き部分に示すような組合せとなる。図36において細かいハッチング部分は重複部分であるため、エントロピー符号化のための符号を割り当てる必要は無い。また、図36の粗いハッチング部分に示すようにintra4x4_pred_mode_l0とintra4x4_pred_mode_l1が等しい場合には、前記intra4x4_bi_pred_flagがFALSEとなり、符号が既に割り当てられているので、改めて符号を割り当てる必要は無い。
更に、intra4x4_pred_mode_l1を符号化する場合、intra4x4_pred_mode_l0に従って適応的にintra4x4_pred_mode_l1が取り得る値の最大値を予測し、この最大値を基にエントロピー符号化を行っても良い。この場合、図35に示されるintra4x4_pred_mode_l0とintra4x4_pred_mode_l1は図36の白抜き部分に示すような組合せとなる。図36において細かいハッチング部分は重複部分であるため、エントロピー符号化のための符号を割り当てる必要は無い。また、図36の粗いハッチング部分に示すようにintra4x4_pred_mode_l0とintra4x4_pred_mode_l1が等しい場合には、前記intra4x4_bi_pred_flagがFALSEとなり、符号が既に割り当てられているので、改めて符号を割り当てる必要は無い。
ここで、intra4x4_pred_mode_l1<intra4x4_pred_mode_l0とおくと、intra4x4_pred_mode_l1の取り得る最大値はintra4x4_pred_mode_l0によって異なる。例えば、intra4x4_pred_mode_l0が2の場合、intra4x4_pred_mode_l1は0,1の2つでのみが取り得る値となり,その最大値は1となる。また、intra4x4_pred_mode_l0が8の場合、0〜7の8つが取り得る値となり,その最大値は7である。
以上のように、intra4x4_pred_mode_l0の値によってintra4x4_pred_mode_l1の取り得る最大値を予測し,決定することが可能である。
具体的な符号の割り当て方法を図37に示す。図37の数値は、intra4x4_pred_mode_l0とintra4x4_pred_mode_l1の組合せに従って設定されたバイナリ信号(0もしくは1)である。intra4x4_pred_mode_l0が0の場合には、intra4x4_pred_mode_l1が1しか取り得ないため、符号を割り当てる必要は無い。復号側では、intra4x4_pred_mode_l0を予め復号することで図37に従ってintra4x4_pred_mode_l1を復号することが可能である。
以下、intra4x4_pred_mode_l1を復号するバイナリ信号を復号順序に従ってbinary[i] (i=0,1,2,..)とおいて、intra4x4_pred_mode_l0毎のintra4x4_pred_mode_l1の復号順序を説明する。具体的には、以下の式(51)〜(57)に従って復号すればよい。また、intra4x4_pred_mode_l0が1の場合はintra4x4_pred_mode_l1に関して復号の必要は無い。
intra4x4_pred_mode_l0が3の場合には最初の1ビットのみを復号して、その復号値が0であればintra4x4_pred_mode_lを0と割り当てる。その復号値が1の場合、更に1ビットを復号しその値を1インクリメントした値をintra4x4_pred_mode_lとすれば良い。
intra4x4_pred_mode_l0が5の場合には最初の2ビットのみを復号して、その復号値((binary[0]<<1)+ binary[1])が2以下であればintra4x4_pred_mode_lを当該復号値で割り当てる。その復号値が3の場合、更に1ビットを復号し、その復号値を3インクリメントした値をintra4x4_pred_mode_lとすれば良い。
intra4x4_pred_mode_l0が6の場合には、最初の2ビット(binary[0], binary[1])のみを復号して、その復号値((binary[0]<<1)+ binary[1])が1以下であればintra4x4_pred_mode_lを当該シンボル値で割り当てる。その復号値が2以上の場合、更に1ビットbinary[2]を復号し、binary[1]およびbinary[2])からintra4x4_pred_mode_lを算出する。
intra4x4_pred_mode_l0が7の場合には最初の2ビット(binary[0], binary[1])のみを復号して、その復号値((binary[0]<<1)+ binary[1])が1以下であればintra4x4_pred_mode_lを当該復号値で割り当てる。その復号値が2以上の場合、更に1ビットbinary[2]を復号し、((binary[1]<<1) + binary[2])が2以下の場合、(binary[1]およびbinary[2])からintra4x4_pred_mode_lを算出する。また、(binary[1]<<1) + binary[2])が3の場合、(更に1ビットbinary[3]を復号しintra4x4_pred_mode_lを算出する。
他の例として、intra4x4_pred_mode_l1>intra4x4_pred_mode_l0として図37と同様の符号表を設計しても良い。この場合,intra4x4_pred_mode_l0の値から,intra4x4_pred_mode_l1が取り得る値の最小値を予測,決定する.また、先に述べたようにintra4x4_bi_pred_flagを使用しない場合には、intra4x4_pred_mode_l1とintra4x4_pred_mode_l0が等しい場合にも符号を割り当てればよい。
更に他の例として、設定するバイナリ信号は必ずしも図37である必要はなく、等長符号、ゴロム符号及び指数ゴロム符号といったエントロピー2値化、もしくは予めテーブルを設定し、テーブル引きすることによってバイナリ信号を生成しても良い。
上記説明では、4x4画素予測において同じ符号化対象ブロックに対してintra4x4_pred_mode_l0及びintra4x4_pred_mode_l1の2つの予測モードが選択された場合において、既に符号化された一方の予測モードから次に符号化する予測モードを予測して、予測モード情報を符号化する例について述べた。
以下では、図38のフローチャートを用いて3つ以上の予測モードを含む複数の予測モードが選択された場合における予測モード情報(モードインデックス)の符号化手順について述べる。
まず、ステップS301において複数(N)の予測モードが選択されると、それらN個の予測モードをモードインデックスidxの大きい順にソートする(ステップS302)。なお、N個の予測モードをモードインデックスidxの小さい順にソートしてもよい。変数i(i=1〜N)にi=1をセットする(ステップS303)。次に、i=1かどうかを調べる(ステップS304)。
ここで、i=1であれば、そのときのモードインデックスidx[i]をセットする(ステップS306)。ステップS302において予測モードがモードインデックスidxの大きい順にソートされているので、i=1ではidx[i]は最大値を示す。この後、idx[i]の最大値を表現するのに最低限必要なビット数でidx[i]を符号化する(ステップS308)。
一方、ステップS205においてi=1でない場合、すなわちiが2以上の場合には、それ以前に符号化されているモードインデックスidx[i-1]から、idx[i]が取り得る値の最大値を予測する(ステップS307)。次に、ステップS308においてステップS307で予測されたidx[i]の最大値を表現するのに最低限必要なビット数でidx[i]を符号化する。
ステップS308でモードインデックスの符号化が終了するとiを1インクリメントし(ステップS309)、さらにi=Nかどうかを調べ(ステップS310)、i=NとなるまでステップS304〜S309の処理を繰り返す。i=Nとなれば、モードインデックスの符号化は終了する。
このように複数の予測モードが選択された場合、複数の予測モードを表すモードインデックスを値の大きい順に符号化する。より具体的には、既にモードインデックスの符号化が終了した予測モードから、次にモードインデックスが符号化されるべき予測モードを予測し、予測した予測モードを表すモードインデックスを符号化する。この場合、予測した予測モードを表すモードインデックスの取り得る値の最大値を予測し、この最大値を表現するのに最低限必要なビット数(符号長)で符号化を行う。これによってモードインデックスの符号化に必要な符号量を効果的に削減でき、画像符号化装置の符号化効率向上に寄与する。
なお、このような複数の予測モードを表すモードインデックスの符号化方法は、4x4画素予測以外のフレーム内予測にも適用でき、またフレーム間予測にも適用することが可能である。
8x8画素予測については、図34に示す通り4x4画素予測の際のシンタクスと同様であるため、説明を省略する。
他の例として、図39に示す通りintra4x4_bi_pred_flagを使用せずに、予測モード情報を表わしてもよい。この場合、intra4x4_pred_mode_l0とintra4x4_pred_mode_l1が等しい場合には、単方向予測と等価になる。
更に別の例として、intra4x4_pred_mode_l0を隣接ブロックにおけるintra4x4_pred_mode_l0_orgとの相関を利用して符号化してもよい。具体的なシンタクス構造は図40に示されており、図34に示すマクロブロックプレディクションシンタクスの構成が図40に置き換えられる。図40中のprev_intra4x4_pred_mode_l0_flagは、後述する参照ブロックから計算されるリスト0の予測モードref_pred_modeと当該ブロックのリスト0の予測モードintra4x4_pred_mode_l0とが同一か否かを示すフラグである。
図41は、prev_intra4x4_pred_mode_l0_flag[order]の導出方法を示している。ここで、図41中のref_blkA_mode_l0はブロックblkAに対して左に位置する最近傍の符号化済みのブロックblkAのリスト0の予測モードを示し、ref_blkB_mode_l0はブロックblkBに対して上に位置する最近傍の符号化済みのブロックのリスト0の予測モードを示す。ref_blkA_mode_l0及びref_blkB_mode_l0は、block_order_flag毎に位置が異なり、具体的には図42に示されている。blkA及びblkBは当該ブロックに隣接する左及び上の符号化済みブロックとなる。
prev_intra4x4_pred_mode_l0_flag[order]がTRUEの場合、隣接ブロックとの相関を利用して1ビットでintra4x4_pred_mode_l0の情報を示すことができるため、符号化効率が向上する。
一方、prev_intra4x4_pred_mode_l0_flag[order]がFALSEの場合、prev_intra4x4_pred_mode_l0_flag[order]以外のリスト0の予測モードとして、rem_intra4x4_pred_mode_l0[order]が示される。これは、rem_intra4x4_pred_mode_l0[order]からref_pred_mode_orgを除く予測モードのうちどの予測モードであるかを示すデータである。当該データは、リスト0の予測モードでとり得るシンボルからref_pred_modeを除いた状態数を基にエントロピー符号化される。
8x8画素予測の際のシンタクスについては、図40に示す通り4x4画素予測の際のシンタクスと同様であるため、説明を省略する。
上述のようなシンタクス構造を備えることにより、予測モードの符号化においても符号化効率が向上する。
上述のようなシンタクス構造を備えることにより、予測モードの符号化においても符号化効率が向上する。
(第1の実施形態:シンタクス構造の第2の例)
他の例として、双方向予測の際に用いる各予測モードの信頼度の候補をブロック単位に複数用意し、当該ブロック毎に切り替える場合がある。具体的なシンタクス構成は図43に示されており、図34に示すマクロブロックプレディクションシンタクスの構成が図43に置き換えられる。図43に示されるintra4x4_bi_pred_weight_modeは当該4x4画素ブロックに対して、どの信頼度の候補を使用しているかを示すデータとなる。例えば、intra4x4_bi_pred_weight_modeが0の場合はガウス分布、1の場合はラプラス分布、2の場合には固定値、が割り当てられる。他の分布の例として、線形モデルやM次関数(M≧1)が代わることが可能である。
他の例として、双方向予測の際に用いる各予測モードの信頼度の候補をブロック単位に複数用意し、当該ブロック毎に切り替える場合がある。具体的なシンタクス構成は図43に示されており、図34に示すマクロブロックプレディクションシンタクスの構成が図43に置き換えられる。図43に示されるintra4x4_bi_pred_weight_modeは当該4x4画素ブロックに対して、どの信頼度の候補を使用しているかを示すデータとなる。例えば、intra4x4_bi_pred_weight_modeが0の場合はガウス分布、1の場合はラプラス分布、2の場合には固定値、が割り当てられる。他の分布の例として、線形モデルやM次関数(M≧1)が代わることが可能である。
図44、図45、図46、図47及び図48は、画像符号化部100で用いられるシンタクスの構造の更に別の例を示している。本例で必要となるシンタクス情報は、図32中のシーケンスパラメータセットシンタクス202、ピクチャパラメータセットシンタクス203、スライスヘッダシンタクス205及びマクロブロックレイヤシンタクス208であり、第1の例のシンタクス構造に対して図44、図45、図46、図47及び図48で示されるシンタクスが追加される。以下、各シンタクスについて説明する。
図44のシーケンスパラメータセットシンタクス内に示されるintra_bi_pred_weight_in_seq_flagは、双方向予測の際に用いる各予測モードの信頼度を当該シーケンス内で設定するか否かを示すフラグである。intra_bi_pred_weight_in_seq_flagがTRUEであるときは、更にintra_bi_pred_weight_in_seq_modeが示され、これは当該シーケンス内でどの信頼度を使用するかを表すデータとなる。従って、ピクチャ以下のレイヤではintra_bi_pred_weight_in_seq_modeが示す信頼度を一律に適用し、信頼度の再設定は行わない。一方、intra_bi_pred_weight_in_seq_flagがFALSEであるときは、ピクチャ以下のレイヤにおいて、各予測モードの信頼度を設定することを示す。
図45のピクチャパラメータセットシンタクス内に示されるintra_bi_pred_weight_in_pic_flagは、双方向予測の際に用いる各予測モードの信頼度を当該ピクチャ内で設定するか否かを示すフラグである。intra_bi_pred_weight_in_pic_flagがTRUEであるときは、更にintra_bi_pred_weight_in_pic_modeが示され、これは当該ピクチャ内でどの信頼度を使用するかを表すデータとなる。従って、スライス以下のレイヤではintra_bi_pred_weight_in_pic_modeが示す信頼度を一律に適用し、信頼度の再設定は行わない。一方、intra_bi_pred_weight_in_pic_flagがFALSEであるときは、スライス以下のレイヤにおいて、各予測モードの信頼度を設定することを示す。
図46のスライスヘッダシンタクス内に示されるintra_bi_pred_weight_in_slice_flagは、双方向予測の際に用いる各予測モードの信頼度を当該スライス内で設定するか否かを示すフラグである。intra_bi_pred_weight_in_slice_flagがTRUEであるときは、更にintra_bi_pred_weight_in_slice_modeが示され、これは当該スライス内でどの信頼度を使用するかを表すデータとなる。従って、マクロブロック以下のレイヤではintra_bi_pred_weight_in_slice_modeが示す信頼度を一律に適用し、信頼度の再設定は行わない。一方、intra_bi_pred_weight_in_slice_flagがFALSEであるときは、マクロブロック以下のレイヤにおいて、各予測モードの信頼度を設定することを示す。
図47のマクロブロックレイヤシンタクス内に示されるintra_bi_pred_weight_in_mb_flagは、双方向予測の際に用いる各予測モードの信頼度を当該マクロブロック内で設定するか否かを示すフラグである。intra_bi_pred_weight_in_mb_flagがTRUEであるときは、更にintra_bi_pred_weight_in_mb_modeが示され、これは当該マクロブロック内でどの信頼度を使用するかを表すデータとなる。従って、サブブロックではintra_bi_pred_weight_in_mb_modeが示す信頼度を一律に適用し、信頼度の再設定は行わない。一方、intra_bi_pred_weight_in_mb_flagがFALSEであるときは、サブブロックにおいて、各予測モードの信頼度を設定することを示す。
図48のマクロブロックプレディクションシンタクス内に示されるintra4x4(8x8)_bi_pred_weight_mode[luma4x4(8x8)BlkIdx ]は、luma4x4(8x8)BlkIdxが示すサブブロック内でどの信頼度を使用するかを表すデータとなる。intra4x4(8x8)_bi_pred_weight_mode[luma4x4(8x8)BlkIdx ]は、intra_bi_pred_flagがTRUEかつintra_bi_pred_weight_in_mb_flagがTRUEであるときにのみ有効であり、またマクロブロックの予測タイプがフレーム内予測のときのみ利用できる。
なお、上記シンタクスintra_bi_pred_weight_in_seq_flag、intra_bi_pred_weight_in_pic_flag、intra_bi_pred_weight_in_slice_flag、intra_bi_pred_weight_in_mb_flag、の初期値はTRUE、intra_bi_pred_weight_in_seq_mode、intra_bi_pred_weight_in_pic_mode、intra_bi_pred_weight_in_slice_mode、intra_bi_pred_weight_in_mb_mode、intra_bi_pred_weight_modeの初期値は0とする。
また、上記シンタクスが示す情報は夫々符号化しても復号側に伝送しても良いし、符号化済みの隣接ブロックにおける画素の相関関係や分散などのアクティビティ情報に応じて切り替えても良い。
本実施形態において、intra_bi_pred_weight_in_seq_flag、intra_bi_pred_weight_in_pic_flag、intra_bi_pred_weight_in_slice_flag、intra_bi_pred_weight_in_mb_flag、intra_bi_pred_weight_in_seq_mode、intra_bi_pred_weight_in_pic_mode、intra_bi_pred_weight_in_slice_mode、intra_bi_pred_weight_in_mb_mode、intra_bi_pred_weight_modeは各レイヤの信頼度に関する切り替えのフラグ若しくはデータを表しているが、別の実施形態として上記信頼度を重み係数と置き換えても良い。この場合、上記シンタクスは各レイヤにおける上記信頼度の切り替えを表すフラグ若しくはデータとなる。
8x8画素予測については、図48に示す通り4x4画素予測の際のシンタクスと同様であるため、説明を省略する。
(第2の実施形態:MB内の符号化するブロックの順序を変更した際の例)
次に、図49を用いてマクロブロック内のサブブロックの順番を切り替えて符号化を行う際の予測信号生成部1013について説明する。本実施形態においては、予測信号生成部1013は第1の実施形態における予測信号生成部113に置き換わる。予測順切替部170は、ブロック画像信号121に対して予測順切替情報143に基づいてマクロブロック中のサブブロックの予測順を切り替える。すなわち、予測順切替部170は画素ブロック(マクロブロック)を分割した複数のサブブロックに対する予測順を予め定められた複数の予測順の中から選択する。予測順切替部170によって予測順が切り替えられたブロック画像信号は、単方向予測部171及び双方向予測部172に入力される。
次に、図49を用いてマクロブロック内のサブブロックの順番を切り替えて符号化を行う際の予測信号生成部1013について説明する。本実施形態においては、予測信号生成部1013は第1の実施形態における予測信号生成部113に置き換わる。予測順切替部170は、ブロック画像信号121に対して予測順切替情報143に基づいてマクロブロック中のサブブロックの予測順を切り替える。すなわち、予測順切替部170は画素ブロック(マクロブロック)を分割した複数のサブブロックに対する予測順を予め定められた複数の予測順の中から選択する。予測順切替部170によって予測順が切り替えられたブロック画像信号は、単方向予測部171及び双方向予測部172に入力される。
単方向予測部171及び双方向予測部172は、マクロブロックブロックに対応する予測信号を生成するために、予測順切替部170により切り替えられ選択された予測順と、それぞれにより選択された予測モードに従って符号化済み画素を参照してマクロブロックを予測する。
すなわち、単方向予測部171は予測モードインデックス情報141に基づいて、用意された複数の予測モードのうち一つの予測モードを選択する。単方向予測部171は、こうして選択した予測モード及びブロックサイズ切替情報142に従って、参照画像信号166を参照して予測信号を生成する。
一方、双方向予測部172は予測モードインデックス情報141に基づいて、前記用意された複数の予測モードのうち2つの予測モードを選択する。双方向予測部172は、こうして選択した2つの予測モード、ブロックサイズ切替情報142及び重み係数情報145に従って、参照画像信号166を参照して予測信号を生成する。単方向予測部171及び双方向予測部172から出力される予測信号は、予測モード数切替部173に入力される。
予測モード数切替部173は、予測モード数切替情報144に従って制御されることにより、単方向予測部171によって生成された予測信号及び双方向予測部172によって生成された予測信号のいずれかを選択し、選択した予測信号122を出力する。言い換えれば、予測モード数切替部173は予め定められた複数の予測モードの中から使用可能な予測モードの数を選択する。
図6A、図6B、図50A、図50B、図51A、図51B及び図52を用いて予測順切替部170の動作を説明する。図6Aは、8x8画素予測におけるマクロブロック内のサブブロック(8x8画素ブロック)の基準となるインデックス:blkを示している。同様に図7Aは、4x4画素予測におけるマクロブロック内のサブブロック(4x4画素ブロック)のインデックス:blkを示している。図6Aでは、マクロブロックを4分割した8x8画素ブロックについて順次予測及び符号化処理を行うよう順番付けしている。図7Aでは、マクロブロックを4分割した8x8画素ブロックを考え、当該8x8画素ブロック内を更に4分割した4x4画素ブロックについて順次予測及び符号化処理を行うよう順番付けしている。
予測順切替部170は予測順切替情報143により制御され、予測順切替情報143を表す後述のフラグ:block_order_flagの値によって前記基準となるインデックス:blkを変換することによりサブブロックの予測順を切り替える。サブブロックの順番:idxに対して、実際の符号化時のサブブロックのインデックス:order(予測順を表す)は、次式で与えられる。
図52は、blkConv[ ][ ]の具体的な変換テーブルの例を示している。フラグ:block_order_flagが0(FALSE)の場合、実際に予測符号化を行う際のサブブロックのインデックス:orderは符号化対象のサブブロックのインデックス:idxそのものであり、ブロックの予測及び予測順を変更しない(以後、このような予測順による予測を順次予測という)。
図6B及び図7Bは、それぞれ図6A及び図7Aに対する順次予測による予測順を示している。すなわち、図6Bでは予測順はインデックス:idxに従った順序(0→1→2→3)に設定される。同様に図7Bにおいても、予測順はインデックス:idxに従った順序(0→1→2→・・・→14→15)に設定される。
一方、フラグ:block_order_flagが1(TRUE)の場合、実際に予測符号化を行うサブブロックのインデックス:orderは、4つのサブブロックのうち先に対角の1ブロックを外挿により予測し、残りの3ブロックを外挿または内挿により予測する、という予測順を示す。以後、このような予測順による予測を外挿/内挿ブロック予測という。
図50A及び図51Aは、それぞれ図6A及び図7Aに対する外挿/内挿ブロック予測による予測順変更例を示している。図50Aでは、最初にidx=3のサブブロックを外挿により予測し、次にidx=1及びidx=2のサブブロックを予測し、最後にidx=3のサブブロックに対して対角の位置にあるidx=0のサブブロックを外挿により予測する。図51Aでは、8x8画素ブロック内を4分割した4x4画素の4つのサブブロック毎に、図50Aと同様に予測順を設定している。
更に別の例として、サブブロックの予測順をマクロブロック内の画素の相関などの性質に応じて、例えば図50B及び図51Bのように任意に設定してもよい。
上述のようにして予測順切替部170により予測順が切り替えられたサブブロックは、単方向予測部171または双方向予測部172に入力されることによって、各サブブロックに対応する予測信号が生成される。予測モード数切替部173は、予測モード数切替情報144が予測モード数“1”を示しているときは単方向予測部171により得られる予測信号を出力し、予測モード数切替情報144が予測モード数“2”を示しているときは双方向予測部172により得られる予測信号を出力する。予測モード数切替部173から出力される予測信号は、予測信号生成部113の出力122として取り出される。
次に、フラグ:block_order_flagによって設定される予測順に対応する単方向予測部171及び双方向予測部172の処理について説明する。前述したように、単方向予測部171及び双方向予測部172は、図4中に示した内部参照画像メモリ118に保持されている既に復号済みの画素を参照画像信号166として用いて符号化対象のサブブロックの予測を行う。
順次ブロック予測における単方向予測及び双方向予測は第1の実施形態と同様であるので説明を省略する。
順次ブロック予測における単方向予測及び双方向予測は第1の実施形態と同様であるので説明を省略する。
(外挿/内挿ブロック予測)
図50Aで説明したような外挿/内挿ブロック予測では、マクロブロック内の各サブブロックの順番を順次ブロック予測から式(59)においてblock_order_flagをTRUEとした予測順に変更する。例えば、8x8画素ブロックについて予測を行う場合、図53Aに示すようにまず外角の1ブロックを外挿予測が可能なブロック(以下、外挿ブロックという)として先に予測し、次に他の3ブロックを内挿予測が可能なブロック(以下、内挿ブロックという)として予測する。すなわち、まず外挿ブロック(1)を予測し、次に内挿ブロック(2)(3)及び(4)を予測する。一方、4x4画素ブロックについて予測を行う場合、図53Bに示すように外挿ブロックの予測と内挿ブロックの予測を8x8画素ブロック単位で各4x4画素ブロックについて行うことで予測順を設定する。
図50Aで説明したような外挿/内挿ブロック予測では、マクロブロック内の各サブブロックの順番を順次ブロック予測から式(59)においてblock_order_flagをTRUEとした予測順に変更する。例えば、8x8画素ブロックについて予測を行う場合、図53Aに示すようにまず外角の1ブロックを外挿予測が可能なブロック(以下、外挿ブロックという)として先に予測し、次に他の3ブロックを内挿予測が可能なブロック(以下、内挿ブロックという)として予測する。すなわち、まず外挿ブロック(1)を予測し、次に内挿ブロック(2)(3)及び(4)を予測する。一方、4x4画素ブロックについて予測を行う場合、図53Bに示すように外挿ブロックの予測と内挿ブロックの予測を8x8画素ブロック単位で各4x4画素ブロックについて行うことで予測順を設定する。
以下、4x4画素予測が選択された場合における8x8画素ブロック単位の予測処理を説明する。この予測処理では、8x8画素ブロック単位の予測が終了したら、次の8x8画素ブロックに対して予測を行う、というように8x8画素ブロック単位の予測を計4回繰り返す。
(外挿ブロック予測)
外挿ブロックを予測する場合、参照画素と予測画素との距離が離れるため、参照画素の範囲は図54Aに示すようになる。図54Aにおいて画素A〜X及びZは参照画素であり、画素a〜pは予測画素である。参照画素の範囲は広がるものの、予測角度に従って参照画素をコピーすることによって予測信号を生成する手法については、先の順次ブロック予測の場合と同様である。
外挿ブロックを予測する場合、参照画素と予測画素との距離が離れるため、参照画素の範囲は図54Aに示すようになる。図54Aにおいて画素A〜X及びZは参照画素であり、画素a〜pは予測画素である。参照画素の範囲は広がるものの、予測角度に従って参照画素をコピーすることによって予測信号を生成する手法については、先の順次ブロック予測の場合と同様である。
ここで、ave(・)は( )内に示す参照画素の平均画素値を示す。
( )内の参照画素の一部が利用できない場合は、利用できる参照画素のみの平均画素値が算出されることによって予測信号が生成される。利用できる参照画素が1つも存在しない場合は、予測信号生成部113では予測信号の最大輝度値の半分の値(8ビットなら128)が予測信号とされる。
モード2以外のモードが選択された場合、単方向予測部171は図8Aで示される各予測方向に対して、参照画素を予測画素にコピーする、という予測方法を用いる。具体的に、モード0(垂直下予測)が選択された場合の予測信号生成方法を次式に示す。
このモード0は、参照画素E〜Hを利用できるときだけ選択することが可能である。モード0では、図55Aに示されるように参照画素E〜Hが垂直方向に並ぶ予測画素にそのままコピーされることにより、予測信号が生成される。
このモード4は、参照画素A〜D、Q〜T及びZを利用できるときにのみ選択することが可能である。モード4では、図55Bに示されるように3タップのフィルタによって生成された値を右下45度方向に並ぶ予測画素にすることにより、予測信号が生成される。
モード0,2,4以外の予測モードに関しても、ほぼ同様の枠組みである。すなわち、予測方向に対して利用できる参照画素または当該参照画素から生成される補間値を予測方向に並ぶ予測画素にコピーするという手法により、予測信号が生成される。
(内挿ブロック予測)
図53A及び図53Bにおいて、内挿ブロック(2)を予測する際には、既に外挿ブロック(4)の予測が終了しているため、外挿ブロック(4)の画素を参照する予測が可能である。内挿ブロック(3)を予測する際には、外挿ブロック(4)に加えて内挿ブロック(2)の画素を参照する予測が可能である。外挿ブロック(1)を予測する際には、外挿ブロック(4)及び内挿ブロック(2)に加えて、内挿ブロック(3)の画素を参照する予測が可能である。
図53A及び図53Bにおいて、内挿ブロック(2)を予測する際には、既に外挿ブロック(4)の予測が終了しているため、外挿ブロック(4)の画素を参照する予測が可能である。内挿ブロック(3)を予測する際には、外挿ブロック(4)に加えて内挿ブロック(2)の画素を参照する予測が可能である。外挿ブロック(1)を予測する際には、外挿ブロック(4)及び内挿ブロック(2)に加えて、内挿ブロック(3)の画素を参照する予測が可能である。
図54B、図54C及び図54Dに、4x4画素予測における内挿ブロック(1)(2)及び(3)と参照画素との関係が示されている。画素RA〜RIは図54Aに対して新たに追加された参照画素であり、画素a〜pは予測画素である。
(内挿ブロック予測における単方向予測部171の処理)
単方向予測部171は、図56に示されるように内挿ブロック予測について外挿ブロックにおける方向予測及び符号化済みマクロブロック内の参照画素を参照する逆方向の外挿予測の合計17個のモードを持っており、モード2を除く17個のモードは22.5度ずつシフトした予測方向を有する。
単方向予測部171は、図56に示されるように内挿ブロック予測について外挿ブロックにおける方向予測及び符号化済みマクロブロック内の参照画素を参照する逆方向の外挿予測の合計17個のモードを持っており、モード2を除く17個のモードは22.5度ずつシフトした予測方向を有する。
図57は、単方向予測部171における内挿ブロック予測で行われる単方向予測の予測モード00〜16の名称を示しており、各名称にモード0〜16を表すモードインデックス00〜16が付けられている。図57では、図9に示した外挿ブロック予測(順次ブロック予測)の予測モードに対して、逆方向の予測モードが追加されている。
すなわち、垂直下予測、水平右予測、DC予測、対角左下予測、対角右下予測、垂直右予測、水平下予測、垂直左予測及び水平上予測の各モードは、図9と図57とで共通である。一方、図57では図9に示すモードに加えて、逆方向の予測モードである垂直上予測(モード9)、水平左予測(モード10)、対角右上予測(モード11)、対角左上予測(モード12)、垂直上左予測(モード13)、水平左上予測(モード14)、垂直上右予測(モード15)及び水平左下予測(モード16)が追加されている。
予測モードは、図53A及び図53Bに示されるような、内挿ブロックに対する参照画素の位置関係及び参照画素の有無に応じて選択可能か否かが決定される。例えば、内挿ブロック(1)では、左右上下方向全てに参照画素が配置されているため、図58Aに示されるように全てのモード0〜16を選択することが可能である。内挿ブロック(2)では、右側に参照画素が配置されていないため、図58Bに示されるようにモード10、モード14及びモード16を選択することが不可能である。内挿ブロック(3)では、下側に参照画素が配置されていないため、図58Cに示されるようにモード9、モード13及びモード15を選択することは不可能である。
以下、内挿ブロック予測における単方向予測部171の予測信号生成方法について説明する。単方向予測部171では、モード2のDC予測が選択された場合、上下左右それぞれの最近傍の参照画素の平均画素値を計算することによって、予測信号を生成する。
ここで、式(62)、式(63)及び式(64)において、ave(・)は( )内に示す参照画素の平均画素値を示す。
( )内の参照画素の一部が利用できない場合は、利用できる参照画素のみの平均画素値が算出されることによって予測信号が生成される。
モード2以外のモードが選択された場合、単方向予測部171は図56で示される各予測方向に対して、参照画素を予測画素にコピーする、という予測方法を用いる。モード0〜モード8についての予測画素の算出は、前述した外挿ブロックと同様の予測角度で予測を行うので、説明を省略する。
モード9〜モード16については、符号化済みの外挿ブロック(4)の画素または予測順により、マクロブロック内に配置される符号化済みブロックを参照する。具体的には、モード9(垂直上予測)が選択された場合は、下方向で最近傍に位置する参照画素から予測信号を生成する。内挿ブロック(1)及び内挿ブロック(2)については、次式に従って予測信号が計算される。
図59A及び図59Bは、モード9による内挿ブロック(1)及び内挿ブロック(2)に対する予測信号の生成方法を示している。参照画素RA〜RDが垂直方向に並ぶ予測画素にそのままコピーされることにより、予測信号が生成される。内挿ブロック(3)については、下方向に参照画素が存在しないためモード9を利用することはできない。
図60A及び図60Bは、モード10による内挿ブロック(1)及び内挿ブロック(3)に対する予測信号の生成方法を示している。参照画素RE〜RHが水平方向に並ぶ予測画素にそのままコピーされることにより、予測信号が生成される。内挿ブロック(2)については、右方向に参照画素が存在しないため、モード10を利用することはできない。
図61A、図61B及び図61Cは、モード12による内挿ブロック(1)、内挿ブロック(2)及び内挿ブロック(3)に対する予測信号の生成方法を示している。3タップのフィルタによって生成された値が左上45度の方向にコピーされることによって、予測信号が生成される。
上述したモード2,9及び12以外の予測モード(モード10、11、13〜16)についても、図58A、図58B、図58C及び図58Dで示される予測方向に対して、参照可能で且つ最近傍の画素から補間された予測信号をコピーする予測方法を用いる。予測方向に対して参照画素が配置されていない場合は、最近傍の参照画素の値をコピーして参照画素を生成して利用してもよいし、または複数の参照画素の内挿補間から仮想的な参照画素を生成し、当該仮想的な参照画素を予測に利用してもよい。
(内挿ブロック予測における双方向予測部172の処理)
双方向予測部172は、内挿ブロック予測において単方向予測部171で行われる内挿ブロック予測の17個の予測モード(DC予測も含む)のうち2つのモードを同時に使用することで、複数の方向性を包含した予測を行う。具体的な予測信号生成法は、第1の実施形態に記述したものと同様である。すなわち、選択した2つのモード(式(10)及び式(24)ではモード“U”及びモード“V” )による予測信号を、画素単位の重み係数を用いた加重平均の値を予測画素の予測信号とする。
双方向予測部172は、内挿ブロック予測において単方向予測部171で行われる内挿ブロック予測の17個の予測モード(DC予測も含む)のうち2つのモードを同時に使用することで、複数の方向性を包含した予測を行う。具体的な予測信号生成法は、第1の実施形態に記述したものと同様である。すなわち、選択した2つのモード(式(10)及び式(24)ではモード“U”及びモード“V” )による予測信号を、画素単位の重み係数を用いた加重平均の値を予測画素の予測信号とする。
図62は、双方向予測部172において内挿ブロック予測で行われる予測モードの名称と対応するモードインデックスを示している。図62においては、2つのモードを使用する予測モードが存在している。例えば、垂直予測(モード0)と逆方向水平予測(モード10)を使用する場合の予測モードの名称及びモードインデックスを「垂直・逆方向水平予測」及び「モード0010」と表記している。各予測モードの番号が1桁の場合は先頭に0を加えて2桁で表記する。モード0とモード00は等しい意味を持つ。
但し、nは4x4画素ブロック内の画素位置を表している。
また、式(24)と同様に予測信号を整数演算のみで算出しても良い。
このように内挿ブロックの双方向予測は、予測モードの方向が完全に正対する単純な内挿予測のみではなく、当該ブロックの僅かな方向性の変化、または複雑さに対応した内挿予測を行うことが可能となる。加えて、画素単位で暗黙的に重み係数を設定することで、オーバヘッド情報を増加させることなく、適切なフィルタリングを行うことができる。結果、予測残差は大幅に減少する。
(第2の実施形態:画像符号化の処理手順)
図63を参照して画像符号化部100の処理手順を説明する。画像符号化部100に1フレーム分の入力画像信号120が入力されると(ステップS401)、フレーム分割部101によって入力画像信号120の符号化対象フレームが複数の画素ブロック(マクロブロック)に分割され、ブロック画像信号121が生成される。ブロック画像信号121に対して符号化が開始される(ステップS402)。ブロック画像信号121は、予測部102に入力される。
図63を参照して画像符号化部100の処理手順を説明する。画像符号化部100に1フレーム分の入力画像信号120が入力されると(ステップS401)、フレーム分割部101によって入力画像信号120の符号化対象フレームが複数の画素ブロック(マクロブロック)に分割され、ブロック画像信号121が生成される。ブロック画像信号121に対して符号化が開始される(ステップS402)。ブロック画像信号121は、予測部102に入力される。
予測部102では、まず予測順切替情報143に基づいてサブブロックの予測順を変更するか否かを判断する(ステップS403)。予測順を変更しない場合(S403の結果がNO)、block_order_flagがFALSEであり、予測順切替部170は式(59)に示すorderに従ってサブブロックを予測符号化する「順次ブロック予測」を選択する。
順次ブロック予測においては、予測モード数切替情報144によってサブブロックについて単方向予測を行うか否かを判断する(ステップS404)。ここで単方向予測を行う場合(S404の結果がYES)、単方向予測部171が予測を行い(ステップS406)、単方向予測を行わない場合(S404の結果がNO)、双方向予測部172が予測を行う(ステップS407)。
一方、予測順を変更する場合(S403の結果がYES)、block_order_flagがTRUEであり、予測順切替部170は式(59)に示すorderに従ってサブブロックを予測符号化する「外挿/内挿ブロック予測」を選択する。
外挿/内挿ブロック予測においては、予測モード数切替情報144によってサブブロックについて単方向予測を行うか否かを判断する(ステップS405)。ここで、単方向予測を行う場合(S405の結果がYES)、単方向予測部171が予測を行い(ステップS408)、単方向予測を行わない場合(S405の結果がNO)、双方向予測部172が予測を行う(ステップS409)。
ステップS406,S407,S408またはS409の予測が終了すると、マクロブロック内の総コスト(1)(2)(3)または(4)を式(1)及び式(2)から算出する(ステップS411,S412,S413またはS414)。ステップS411,S412,S413またはS414により算出された各総コストの比較を行い、予測手法を決定する(ステップS415)。こうして決定された予測手法で直交変換/量子化部104ぉよびエントロピー符号化部108により符号化を行い、符号化データ146を出力する(ステップS416)。
このとき量子化変換係数情報127が逆量子化/逆直交変換部105により逆量子化及び逆直交変換が行われることによって、復号された予測残差信号128が生成される。復号された予測残差信号128とモード選択部103から入力される予測信号126が加算器106により加算されることによって局部復号信号129が生成される。局部復号信号129は、参照画像メモリ106に蓄積される。
入力動画像信号120の1フレーム分の予測符号化が終了しているか否かを判定する。(ステップS417)。予測符号化が終了している場合(S417の結果がYES)、次の1フレームの入力画像信号120が入力され、再び予測符号化が行われる。一方、1フレームの予測符号化が終了していない場合(S417の結果がNO)、ステップS402に戻って次のマクロブロックのブロック画像信号121に対して予測符号化が行われる。ステップS404及びS405の予測処理の手順については第1の実施形態と同様の処理を行うため、説明を省略する。
(第2の実施形態:シンタクス構造の第1の例)
図64は、第2の実施形態において画像符号化部100で用いられるシンタクス構造の他の例を示している。必要となるシンタクス情報は図32中のマクロブロックレイヤシンタクス208であり、ここでは図33に示したマクロブロックレイヤシンタクスの構成を図64に置き換える。各シンタクスを以下で説明する。
図64は、第2の実施形態において画像符号化部100で用いられるシンタクス構造の他の例を示している。必要となるシンタクス情報は図32中のマクロブロックレイヤシンタクス208であり、ここでは図33に示したマクロブロックレイヤシンタクスの構成を図64に置き換える。各シンタクスを以下で説明する。
図64中のマクロブロックレイヤシンタクス内で示されるblock_order_flagは、予測順の切り替えをマクロブロックで行うか否かを示す。すなわち、フラグ:block_order_flagのFALSEはマクロブロックで予測順の切り替えを行わないことを示し、TRUEはマクロブロックで予測順の切り替えを行うことを示す。
図64中のマクロブロックプレディクションシンタクスには、マクロブロック内のサブブロック(4x4画素ブロックまたは8x8画素ブロック)毎の予測モード情報が明記されている。単方向予測については、複数の予測モードの中から使用するモードを示す予測モード情報をintra4x4(8x8)_pred_mode_l0_orgあるいはintra4x4(8x8)_pred_mode_l1_orgで表す。双方向予測については、予測モード情報は2つのシンタクスを備えている。ここでは、複数の予測モードの中から2種類の予測モードを選択する際のモードインデックスが小さい方(リスト0)の予測モードをintra4x4(8x8)_pred_mode_l0_orgで示し、モードインデックスが大きい方(リスト1)の予測モードをintra4x4(8x8)_pred_mode_l1_orgで示す。モードインデックスが大きい方(リスト0)の予測モードをintra4x4(8x8)_pred_mode_l0_orgで示し、モードインデックスが小さい方(リスト1)の予測モードをintra4x4(8x8)_pred_mode_l1_orgで示してもよい。
以下、4x4画素予測が選択された場合のマクロブロックプレディクションシンタクスの構成について図64を用いて説明する。
図64中のblkConv[block_order_flag][luma4x4BlkIdx]は、図52に示されるような予測順の変換を行う変換テーブルを有しており、符号化対象ブロックのインデックスを出力する。
図64中のblkConv[block_order_flag][luma4x4BlkIdx]は、図52に示されるような予測順の変換を行う変換テーブルを有しており、符号化対象ブロックのインデックスを出力する。
図64中のintra4x4_pred_mode_l0[ block_order_flag ][order]は、intra4x4_pred_mode_l0_org[block_order_flag][order]を後述するmodeConv[block_order_flag][intra4x4_pred_mode_l0_org]に従って変換したインデックスのデータである。
図64中のintra4x4_bi_pred_flagは、当該4x4画素ブロックに対して双方向予測を行うか、行わないかを切り替えるフラグである。すなわち、当該フラグintra4x4_bi_pred_flagのFALSEは当該4x4画素ブロックが単方向予測であることを意味し、TRUEは当該4x4画素ブロックが双方向予測であることを意味する。
図64中のintra4x4_pred_mode_l1は、intra4x4_pred_mode_l1_org[block_order_flag][order]を後述するmodeConv[block_order_flag][intra4x4_pred_mode_l1_org]に従って変換したインデックスのデータである。当該データintra4x4_pred_mode_l1は、intra4x4_bi_pred_flagがTRUEの際に符号化される。
以下、各シンタクスの詳細について説明する。
luma4x4Blkに対して、block_order_flag毎にblkConv[block_order_flag][luma4x4BlkIdx]に示すテーブルに従って変換を施し、符号化対象のサブブロックを示すブロックインデックス:orderを算出する(図52参照)。
luma4x4Blkに対して、block_order_flag毎にblkConv[block_order_flag][luma4x4BlkIdx]に示すテーブルに従って変換を施し、符号化対象のサブブロックを示すブロックインデックス:orderを算出する(図52参照)。
ブロックインデックス:orderが示す4x4画素ブロックを予測する場合、図65に示すようにintra4x4_pred_mode_l0_org[block_order_flag][order] を intra4x4_pred_mode_l0[order]に変換する。これは、block_order_flag及びマクロブロック内の4x4画素ブロックの位置によって利用可能な予測モードが異なるために行う処理である。具体的には図67に示すように、block_order_flagが0(FALSE)の場合、intra4x4_pred_mode_l0にintra4x4_pred_mode_l0_orgがそのまま代入される。このとき、intra4x4_pred_mode_l0は用意された単方向予測の9種類の予測モードのうちどのモードを4x4画素ブロックの予測に用いるかを示すデータとなる。
一方、block_order_flagが1(TRUE:外挿/内挿ブロック予測)の場合、符号化対象マクロブロック内の4x4画素ブロックの位置に応じてテーブルが切り替わる。図68は、符号化対象マクロブロックに対して左、上、右上及び左上に隣接するマクロブロックが参照可能である場合に、図53A及び図53Bによって示されるサブブロック(内挿ブロック(1)(2)及び(3)、及び外挿ブロック(4))に対応して利用可能な予測モードとその名称を示している。
図68より、内挿ブロック(1)は17個の全てのモードが利用可能であるのに対して、内挿ブロック(2)及び(3)は利用不可能なモードが存在することがわかる。そこで、図67に示したようにmodeConv[ ][ ]によってintra4x4_pred_mode_l0_org[block_order_flag][order] をintra4x4_pred_mode_l0に変換し、利用不可能な予測モードを予め除去することで、後述するエントロピー符号化の効率が向上する。具体的な変換例を示すと、内挿ブロック(2)の予測モードがモード15(逆方向垂直右予測)である場合、intra4x4_pred_mode_l0には、“13”が代入される。内挿ブロック(3)の予測モードがモード14(逆方向水平上予測)である場合、intra4x4_pred_mode_l0には、“12”が代入される。
intra4x4_pred_mode_l0を符号化する際は、block_order_flag及びブロックの位置毎に利用可能なモードの状態数が異なるため、符号化対象の4x4画素ブロックの位置に応じてエントロピー符号化(ハフマン符号化、ゴルム符号化、あるいは算術符号化など)を行う。具体的なシンボルのとり得る状態数は、図67に示されている。以上が、intra4x4_pred_mode_l0_orgの符号化に関するシンタクスの説明である。
intra4x4_bi_pred_flagがTRUEの場合、更にintra4x4_pred_mode_l1_orgを符号化する。intra4x4_pred_mode_l1_orgの符号化に関しては、intra4x4_pred_mode_l0_orgのときほぼ同様の処理を行う。
まず、modeConv[ ][ ]に従ってintra4x4_pred_mode_l1_org をintra4x4_pred_mode_l1に変換し、intra4x4_pred_mode_l1をblock_order_flagとorderに応じた可変長符号によりエントロピー符号化を行う。但し、intra4x4_pred_mode_l1はintra4x4_pred_mode_l0との間で同一の予測モードはなり得ないことから、intra4x4_pred_mode_l0の状態数から1を減じた数がintra4x4_pred_mode_l1のとり得るシンボルの状態数となる。この状態数を基に、エントロピー符号化を行う。
他の例として、intra4x4(8x8)_pred_mode_l0_org及びintra4x4(8x8)_pred_mode_l1_orgをmodeConv[ ][ ]に従って変換せずに、そのままエントロピー符号化してもよい。以上が、各シンタクスの詳細である。
(第2の実施形態:シンタクス構造の第2の例)
図69は、画像符号化部100で用いられるシンタクス構造の他の例を示している。必要となるシンタクス情報は図32中のマクロブロックレイヤシンタクス208であり、ここでは図33に示したマクロブロックレイヤシンタクスの構成を図69に置き換える。各シンタクスを以下で説明する。
図69は、画像符号化部100で用いられるシンタクス構造の他の例を示している。必要となるシンタクス情報は図32中のマクロブロックレイヤシンタクス208であり、ここでは図33に示したマクロブロックレイヤシンタクスの構成を図69に置き換える。各シンタクスを以下で説明する。
図69のマクロブロックレイヤシンタクス内に示されるblock_order_flagは、予測順の切り替えを当該マクロブロックで行うか否かを示すフラグである。block_order_flagがTRUEであるときは予測順を切り替え、外挿/内挿ブロック予測を行う。一方、block_order_flagがFALSEであるときは予測順を切り替えず、順次ブロック予測を行う。block_order_flagがTRUEのときの予測順の具体的な記述方法は、block_order_in_mb_modeに示される。block_order_in_mb_modeは、以下のようにして予測順を示す。
予測モードがモード0の場合、第1の実施形態に示す外挿/内挿ブロック予測を行う際の予測順を与える。予測モードがモード1の場合、予測順の組み合わせをインデックスに変換し、インデックス情報で予測順を示す。4つのブロックに対して予測順を決定する際は、順列により24通り( = 4P4)から順次ブロック予測を除く23通りの予測順から、マクロブロック毎に1つを決定する。具体的には、図69におけるblock_order_idxが前記ブロック組み合わせインデックスを与える。予測モードがモード2の場合、各ブロックに対して順序番号を直接示す。4x4画素ブロックに対しては、16個のblock_order4x4[BLK]にその順番が示される。また、8x8画素ブロックに対しては、4個のblock_order8x8[BLK]にその順番が示されている。
上述したシンタクス構造は、更に以下のような変形が可能である。
(a)block_order_in_mb_modeが1のとき、最初に符号化する1ブロックのみを示してもよい。
(b)4x4画素予測では、予測順のインデックスが膨大となることから、8x8画素ブロック単位で示される4x4画素ブロックの予測順を4回繰り返すことで、インデックスの情報を削減してもよい。
(c)block_order_in_mb_modeが2の場合、block_order4x4[BLK]については外部からのテーブルによって示してもよいし、隣接するblock_order4x4[ ]との差分を可変の符号長で表現してもよい。
(d)最後のblock_order4x4[15]は、残りの一つの予測順であることから、block_order4x4[15]を示す必要は無い。8x8画素ブロックについても同様である。4x4画素予測の場合、8x8画素ブロック単位で示される4x4画素ブロックの予測順を4回繰り返すことで、block_order4x4の情報を削減してもよい。
(e)block_order_in_mb_mode, block_order_idx, block_order4x4, block_order8x8といった情報の値は、シーケンス毎、ピクチャ毎、スライス毎あるいはマクロブロック毎に適応的に設定されてもよい。
(a)block_order_in_mb_modeが1のとき、最初に符号化する1ブロックのみを示してもよい。
(b)4x4画素予測では、予測順のインデックスが膨大となることから、8x8画素ブロック単位で示される4x4画素ブロックの予測順を4回繰り返すことで、インデックスの情報を削減してもよい。
(c)block_order_in_mb_modeが2の場合、block_order4x4[BLK]については外部からのテーブルによって示してもよいし、隣接するblock_order4x4[ ]との差分を可変の符号長で表現してもよい。
(d)最後のblock_order4x4[15]は、残りの一つの予測順であることから、block_order4x4[15]を示す必要は無い。8x8画素ブロックについても同様である。4x4画素予測の場合、8x8画素ブロック単位で示される4x4画素ブロックの予測順を4回繰り返すことで、block_order4x4の情報を削減してもよい。
(e)block_order_in_mb_mode, block_order_idx, block_order4x4, block_order8x8といった情報の値は、シーケンス毎、ピクチャ毎、スライス毎あるいはマクロブロック毎に適応的に設定されてもよい。
(第2の実施形態:シンタクス構造の第3の例)
図70、図71、図72、図73及び図74は、画像符号化部100で用いられるシンタクスの構造の更に別の例を示している。本例で必要となるシンタクス情報は、図32中のシーケンスパラメータセットシンタクス202、ピクチャパラメータセットシンタクス203、スライスヘッダシンタクス205及びマクロブロックレイヤシンタクス208であり、第1の例のシンタクス構造に対して図70、図71、図72、図73及び図74で示されるシンタクスが追加される。以下、各シンタクスについて説明する。
図70、図71、図72、図73及び図74は、画像符号化部100で用いられるシンタクスの構造の更に別の例を示している。本例で必要となるシンタクス情報は、図32中のシーケンスパラメータセットシンタクス202、ピクチャパラメータセットシンタクス203、スライスヘッダシンタクス205及びマクロブロックレイヤシンタクス208であり、第1の例のシンタクス構造に対して図70、図71、図72、図73及び図74で示されるシンタクスが追加される。以下、各シンタクスについて説明する。
図70のシーケンスパラメータセットシンタクス内に示されるblock_order_in_seq_flagは、予測順の切り替えをシーケンス内で可能とするか否かを示すフラグである。block_order_in_seq_flagがTRUEであるときは、シーケンス内で予測順を切り替えることが可能である。一方、block_order_in_seq_flagがFALSEであるときは、シーケンス内で予測順を切り替えることができない。
図71のピクチャパラメータセットシンタクス内に示されるblock_order_in_pic_flagは、予測順の切り替えを当該ピクチャ内で可能とするか否かを示すフラグである。block_order_in_pic_flagがTRUEであるときは、ピクチャ内で予測順を切り替えることが可能である。一方、block_order_in_pic_flagがFALSEであるときは、ピクチャ内で予測順を切り替えることができない。
図72のスライスヘッダシンタクス内に示されるblock_order_in_slice_flagは、予測順の切り替えを当該スライス内で可能とするか否かを示すフラグである。block_order_in_slice_flagがTRUEであるときは、スライス内で予測順を切り替えることが可能である。一方、block_order_in_slice_flagがFALSEであるときは、スライス内で予測順を切り替えることができない。
図73のマクロブロックレイヤシンタクス内に示されるblock_order_flagは、予測順の切り替えを当該マクロブロックで行うか否かを示すフラグである。block_order_flagがTRUEであるときは予測順を切り替え、外挿/内挿ブロック予測を行う。一方、block_order_flagがFALSEであるときは、予測順を切り替えず、順次ブロック予測を行う。block_order_flagは、block_order_in_slice_flagがTRUEであるときにのみ有効であり、またマクロブロックの予測タイプがフレーム内予測のときのみ利用できる。
図70のシーケンスパラメータセットシンタクス内に示されるintra_bi_pred_in_seq_flagは、双方向予測が当該シーケンス内で可能とするか否かを示すフラグである。intra_bi_pred_in_seq_flagがTRUEであるときは、シーケンス内で双方向予測を行うことが可能である。一方、intra_bi_pred_in_seq_flagがFALSEであるときは、シーケンス内で双方向予測を行うことができない。
図71のピクチャパラメータセットシンタクス内に示されるintra_bi_pred_in_pic_flagは、双方向予測が当該ピクチャ内で可能とするか否かを示すフラグである。intra_bi_pred_in_pic_flagがTRUEであるときは、ピクチャ内で双方向予測を行うことが可能である。一方、intra_bi_pred_in_pic_flagがFALSEであるときは、ピクチャ内で双方向予測を行うことができない。
図72のスライスヘッダシンタクス内に示されるintra_bi_pred_in_slice_flagは、双方向予測がスライス内で可能とするか否かを示すフラグである。intra_bi_pred_in_slice_flagがTRUEであるときは、スライス内で双方向予測を行うことが可能である。一方、intra_bi_pred_in_slice_flagがFALSEであるときは、スライス内で双方向予測を行うことができない。
図73のマクロブロックレイヤシンタクス内に示されるintra_bi_pred_in_mb_flagは、双方向予測がマクロブロック内で可能とするか否かを示すフラグである。intra_bi_pred_in_mb_flagがTRUEであるときは、マクロブロック内で双方向予測を行うことが可能である。一方、intra_bi_pred_in_mb_flagがFALSEであるときは、マクロブロック内で双方向予測を行うことができない。
図74のマクロブロックプレディクションシンタクス内に示されるintra4x4_bi_pred_flagは、双方向予測が予測ブロック内で行うか否かを示すフラグである。intra4x4_bi_pred_flagがTRUEであるときは、予測ブロック内で双方向予測を行う。一方、intra4x4_bi_pred_flagがFALSEであるときは、マクロブロック内で双方向予測を行わない。intra4x4_bi_pred_flagは、intra_bi_pred_in_mb_flagがTRUEであるときにのみ有効であり、またマクロブロックの予測タイプがフレーム内予測のときのみ利用できる。なお、上記シンタクスの初期値はFALSEとする。
<第3の実施形態:画像復号化装置>
図75に示される本発明の一実施形態に従う画像復号化装置には、図示しない画像符号化装置(例えば、図1の画像符号化装置)から送出され、伝送系または蓄積系を経て送られてきた符号化ビットストリーム320が入力される。符号化ビットストリーム320は入力バッファ901に一度蓄えられ、更に逆多重化部302により1フレーム毎にシンタクスに基づいて分離された後、復号部304に入力される。復号部304はエントロピー復号部305、逆量子化/逆直交変換部306、加算器307、参照画像メモリ308及び予測信号生成部309を有する。図60の画像復号化装置は、LSIチップなどのハードウェアにより実現されるか、あるいはコンピュータにおいて画像復号プログラムの実行によって実現される。
図75に示される本発明の一実施形態に従う画像復号化装置には、図示しない画像符号化装置(例えば、図1の画像符号化装置)から送出され、伝送系または蓄積系を経て送られてきた符号化ビットストリーム320が入力される。符号化ビットストリーム320は入力バッファ901に一度蓄えられ、更に逆多重化部302により1フレーム毎にシンタクスに基づいて分離された後、復号部304に入力される。復号部304はエントロピー復号部305、逆量子化/逆直交変換部306、加算器307、参照画像メモリ308及び予測信号生成部309を有する。図60の画像復号化装置は、LSIチップなどのハードウェアにより実現されるか、あるいはコンピュータにおいて画像復号プログラムの実行によって実現される。
復号部304内では、逆多重化部302により分離された符号化ビットストリームがエントロピー復号部303に入力される。エントロピー復号部303では、図32に示されるシンタクス構造に従って、符号化ビットストリームのハイレベルシンタクス、スライスレベルシンタクス及びマクロブロックレベルシンタクスのそれぞれに対して、符号列がエントロピー復号される。
これによりエントロピー復号部303から、量子化変換係数情報321及び量子化パラメータ情報の他、予測モードインデックス情報331、ブロックサイズ切替情報332、、予測モード数切替情報334といった予測モードに関する情報(以後、予測モードインデックス情報、ブロックサイズ切替情報及び予測モード数切替情報を予測モード情報と総称する)が出力される。量子化変換係数情報321は、予測残差信号を直交変換及び量子化した情報である。量子化パラメータ情報は、量子化幅(量子化ステップサイズ)及び量子化マトリクスなどの情報を含む。
量子化変換係数情報321は、復元された量子化パラメータに従って逆量子化/逆直交変換部306により逆量子化され、更にIDCTのような逆直交変換が施される。ここでは、逆直交変換について説明したが、符号化側でウェーブレット変換などが行われている場合、逆量子化/逆変換部306は対応する逆量子化/逆ウェーブレット変換などを行ってもよい。
逆量子化/逆変換部306からは予測残差信号322が出力され、加算器307に入力される。加算器307では、予測信号生成部309から出力される予測信号323と予測残差信号322との加算が行われ、復号画像信号324が生成される。復号画像信号324は、参照画像メモリ308に入力されるとともに出力バッファ311に渡され、出力バッファ311から復号化制御部310が管理するタイミングで出力される。
一方、エントロピー復号部305により復号された予測モードインデックス情報331、ブロックサイズ切替情報332及び予測モード数切替情報334は予測信号生成部309に入力される。予測信号生成部309には、更に参照画像メモリ308から既に復号されている参照画像信号325が入力される。予測信号生成部309は、予測モードインデックス情報331、ブロックサイズ切替情報332及び予測モード数切替情報334を基に、参照画像信号325を参照して予測信号323を生成する。復号制御部310は、復号部304の復号処理全般の制御、例えば入力バッファ301及び出力バッファ311の制御や、復号タイミングの制御などを行う。
(予測信号生成部309について)
次に、図76を参照して予測信号生成部309について説明する。図76に示す予測信号生成部309は、前述した画像符号化装置内の予測信号生成部113と基本的に同様である。図61において、参照画像メモリ308からの参照画像信号325に対してマクロブロック中のサブブロックの画像信号は、単方向予測部371及び双方向予測部372に入力される。
次に、図76を参照して予測信号生成部309について説明する。図76に示す予測信号生成部309は、前述した画像符号化装置内の予測信号生成部113と基本的に同様である。図61において、参照画像メモリ308からの参照画像信号325に対してマクロブロック中のサブブロックの画像信号は、単方向予測部371及び双方向予測部372に入力される。
単方向予測部371は、予測モードインデックス情報331に基づいて、用意された複数の予測モードのうち一つの予測モードを選択し、選択した予測モード及びブロックサイズ切替情報332に従って、参照画像信号325を参照して予測信号を生成する。双方向予測部372は、予測モードインデックス情報331に基づいて、前記用意された複数の予測モードのうち2つの予測モードを選択し、選択した予測モード、ブロックサイズ切替情報332及び重み係数情報335に従って、参照画像信号325を参照して予測信号を生成する。単方向予測部371及び双方向予測部372から出力される予測信号は、予測モード数切替部373に入力される。
予測モード数切替部373は、予測モード数切替情報344に従って制御されることにより、単方向予測部371によって生成された予測信号及び双方向予測部372によって生成された予測信号のいずれかを選択し、選択した予測信号323を出力する。図6B及び図7Bは、それぞれ図6A及び図7Aに対する予測順を示している。
上述のようにして、モード数切替スイッチ373は予測モード数切替情報334が予測モード数“1”を示しているときは単方向予測部371により得られる予測信号を出力し、予測モード数切替情報334が予測モード数“2”を示しているときは双方向予測部372により得られる予測信号を出力する。モード数切替スイッチ373から出力される予測信号は、予測信号生成部309の出力323として取り出される。
モード数切替スイッチ373は、予測ブロック(4x4画素ブロックまたは8x8画素ブロック)毎に与えられる予測モード数切替情報334に従って制御されることにより、予測信号323を出力する。具体的に4x4画素予測の際には、intra4x4_bi_pred_flagが4x4画素ブロック毎に記述されている。
すなわち、モード数切替スイッチ373は予測モード数切替情報334であるフラグ:intra4x4_bi_pred_flagがFALSEの場合は、単方向予測部371により得られる予測信号を選択し、intra4x4_bi_pred_flagがTRUEの場合は双方向予測部172により得られる予測信号を選択する。
(双方向予測部372について)
次に、図77を参照して双方向予測部372について説明する。双方向予測部372は第1単方向予測部375と第2単方向予測部376及び加重平均部380を有する。第1単方向予測部375及び第2単方向予測部376は、図76に示す単方向予測部371と同様である。第1単方向予測部375及び第2単方向予測部376にはそれぞれ異なる予測モードが予測モードインデックス情報331に従って入力され、符号化対象ブロックを予測する。
次に、図77を参照して双方向予測部372について説明する。双方向予測部372は第1単方向予測部375と第2単方向予測部376及び加重平均部380を有する。第1単方向予測部375及び第2単方向予測部376は、図76に示す単方向予測部371と同様である。第1単方向予測部375及び第2単方向予測部376にはそれぞれ異なる予測モードが予測モードインデックス情報331に従って入力され、符号化対象ブロックを予測する。
第1単方向予測部375及び第2単方向予測部376では予測モード、ブロックサイズ切替情報332及び重み係数情報335に従って、参照信号325を参照して予測信号381、382を生成する。2種類の単方向予測部によって生成された予測信号381、382は加重平均部380に入力される。加重平均部380では、例えば復号制御部310から与えられる重み係数情報335に従って予測信号381、382を画素単位に加重平均することにより、予測信号323を出力する。但し、第1単方向予測部375は単方向予測部371と同一の処理を行うことで省略が可能である。この場合、単方向予測部371が出力する予測信号と第2単方向予測部376が出力する予測信号382が加重平均部380に入力される。
単方向予測部371及び加重平均部380の具体的な処理は、画像符号化装置における単方向予測部171及び加重平均部180と同様であるため、説明を省略する。また、加重平均部380において加重平均の際に用いる各予測モードにおける重み係数の設定方法も加重平均部180と同様である。重み係数は、前述したように例えば復号制御部310から双方向予測部372内の加重平均部380に重み係数情報335が与えられることによって設定される。すなわち、本実施形態では例えば復号制御部310が重み係数を算出して設定する重み係数設定部の機能を有するものとする。なお、重み係数設定部は復号制御部310以外の箇所、例えば図76の双方向予測部372内に設けられていても良い。さらに、重み係数設定部はROMによるテーブルによって実現されていても良い。
シンタクス構造は、基本的に図32に示した通りであるが、以下では4x4画素予測が選択された場合のマクロブロックプレディクションシンタクスの構成について図34を用いて説明する。
図34中のintra4x4_bi_pred_flagは、当該4x4画素ブロックに対して双方向予測を行うか、行わないかを切り替えるフラグである。すなわち、当該フラグintra4x4_bi_pred_flagのFALSEは当該4x4画素ブロックが単方向予測であることを意味し、TRUEは当該4x4画素ブロックが双方向予測であることを意味する。
図34中のintra4x4_pred_mode_l1は、復号されたインデックスのデータである。当該データintra4x4_pred_mode_l1は、intra4x4_bi_pred_flagがTRUEの際に復号される。
(第3の実施形態:シンタクス構造の第1の例)
以下、各シンタクスの詳細について説明する。
ブロックインデックスorderが示す4x4画素ブロックを復号する場合、intra4x4_pred_mode_l0[luma4x4BlkIdx]はは用意された単方向予測の9種類の予測モードのうちどの予測モードを4x4画素ブロックの復号に用いるかを示すデータとなる。
以下、各シンタクスの詳細について説明する。
ブロックインデックスorderが示す4x4画素ブロックを復号する場合、intra4x4_pred_mode_l0[luma4x4BlkIdx]はは用意された単方向予測の9種類の予測モードのうちどの予測モードを4x4画素ブロックの復号に用いるかを示すデータとなる。
intra4x4_bi_pred_flagがTRUEの場合、更にintra4x4_pred_mode_l1[Luma4x4BlkIdx]を復号し、intra4x4_pred_mode_l0と共に双方向予測に使用する予測モードを4x4画素ブロックの復号に用いるかを示すデータとなる。他の例においては、intra4x4_bi_pred_flagの情報は符号化ビットストリームから分離されて復号されるが、復号済みのブロック及び画素から計算される前記アクティビティ情報により、intra4x4_bi_pred_flagの情報を示してもよい。この場合、符号化側と同様のロジックを用いることにより、intra4x4_bi_pred_flagの情報は、符号化側と同一のものが示されるため、符号化ビットストリームから分離及び復号の処理は必要とされない。
他の例として、図39に示す通りintra4x4_bi_pred_flagを使用せずに、予測モード情報を表してもよい。この場合、intra4x4_pred_mode_l0とintra4x4_pred_mode_l1が示す予測モードが等しい場合には、単方向予測と等価となる。
更に別の例として、intra4x4_pred_mode_l0を隣接ブロックにおけるintra4x4_pred_mode_l0との相関を利用して符号化してもよい。具体的なシンタクス構造は図40に示されており、図34に示すマクロブロックプレディクションシンタクスの構成が図25に置き換えられる。図40中のprev_intra4x4_pred_mode_l0_flag[Luma4x4BlkIdx]は、後述する参照ブロックから計算されるリスト0の予測モードref_pred_modeと、対象ブロックのリスト0の予測モードintra4x4_pred_mode_l0[Luma4x4BlkIdx]とが同一か否かを示すフラグである。
図41は、prev_intra4x4_pred_mode_l0_flag[luma4x4BlkIdx]の導出方法を示している。ここで、図41中のref_blkA_mode_l0は、ブロックblkAに対して左に位置する最近傍の符号化済みのブロックblkAのリスト0の予測モードを示す。ref_blkB_mode_l0は、ブロックblkBに対して上に位置する最近傍の符号化済みのブロックのリスト0の予測モードを示す。 ref_blkA_mode_l0及びref_blkB_mode_l0は、具体的には図42に示されており、blkA及びblkBは対象ブロックに隣接する左及び上の復号済みブロックとなる。
prev_intra4x4_pred_mode_l0_flag[luma4x4BlkIdx]がTRUEの場合、対象ブロックと隣接ブロックとの相関を利用し、1ビットでintra4x4_pred_mode_l0の情報を示す。
一方、prev_intra4x4_pred_mode_l0_flag[luma4x4BlkIdx][order]がFALSEの場合、prev_intra4x4_pred_mode_l0_flag[luma4x4BlkIdx]以外のリスト0の予測モードとして、rem_intra4x4_pred_mode_l0[luma4x4BlkIdx]が示される。rem_intra4x4_pred_mode_l0[luma4x4BlkIdx]からref_pred_modeを除く予測モードのうちどの予測モードであるかを示すデータは、リスト0の予測モードに従ってとり得るシンボルからref_pred_modeを除いた状態数を基に復号される。
8x8画素予測の際のシンタクスについては、図32に示した、4x4画素予測の際のシンタクスと同様であるため、説明を省略する。
(第3の実施形態:シンタクス構造の第2の例)
図29、図30、図31、図32、図33、図34は画像復号化装置に関するシンタクス構造に関する別の例について示している。各シンタクスの説明は画像符号化装置と同様であるので省略する。また、上記シンタクスはビットリームから分離されて復号されて情報を得るのみではなく、復号済みの隣接ブロックにおける画素の相関関係や分散などのアクティビティ情報に応じて切り替えても良い。この場合、符号化側と同様のロジックを用いることにより、上記シンタクスの情報は、符号化同一のものが示されるため、符号化ビットストリームからの分離及び復号の処理は必要とされない。
図29、図30、図31、図32、図33、図34は画像復号化装置に関するシンタクス構造に関する別の例について示している。各シンタクスの説明は画像符号化装置と同様であるので省略する。また、上記シンタクスはビットリームから分離されて復号されて情報を得るのみではなく、復号済みの隣接ブロックにおける画素の相関関係や分散などのアクティビティ情報に応じて切り替えても良い。この場合、符号化側と同様のロジックを用いることにより、上記シンタクスの情報は、符号化同一のものが示されるため、符号化ビットストリームからの分離及び復号の処理は必要とされない。
本発明の一実施形態によると、使用可能な予測モード数を選択できるため、例えば複数の予測モードによる予測信号を画素単位で計算する双方向予測を選択することで、複雑なテクスチャに対しても高い予測効率が実現される。更に、双方向予測を行う際の2つの予測モードの重みをそれぞれの参照画素との距離に応じて画素単位に設定し、予測に用いることで、予測モードの方向性に応じた予測信号のフィルタリングを行うことができる。
<第4の実施形態:画像復号化装置>
図78に示される本発明の一実施形態に従う画像復号化装置には、図示しない画像符号化装置(例えば、図1の画像符号化装置)から送出され、伝送系または蓄積系を経て送られてきた符号化ビットストリーム320が入力される。符号化ビットストリーム320は入力バッファ901に一度蓄えられ、更に逆多重化部302により1フレーム毎にシンタクスに基づいて分離された後、復号部304に入力される。復号部304はエントロピー復号部305、逆量子化/逆直交変換部306、加算器307、参照画像メモリ308及び予測信号生成部309を有する。図78の画像復号化装置は、LSIチップなどのハードウェアにより実現されるか、あるいはコンピュータにおいて画像符号化プログラムの実行によって実現される。
図78に示される本発明の一実施形態に従う画像復号化装置には、図示しない画像符号化装置(例えば、図1の画像符号化装置)から送出され、伝送系または蓄積系を経て送られてきた符号化ビットストリーム320が入力される。符号化ビットストリーム320は入力バッファ901に一度蓄えられ、更に逆多重化部302により1フレーム毎にシンタクスに基づいて分離された後、復号部304に入力される。復号部304はエントロピー復号部305、逆量子化/逆直交変換部306、加算器307、参照画像メモリ308及び予測信号生成部309を有する。図78の画像復号化装置は、LSIチップなどのハードウェアにより実現されるか、あるいはコンピュータにおいて画像符号化プログラムの実行によって実現される。
復号部304内では、逆多重化部302により分離された符号化ビットストリームがエントロピー復号部303に入力される。エントロピー復号部303では、図32に示されるシンタクス構造に従って、符号化ビットストリームのハイレベルシンタクス、スライスレベルシンタクス及びマクロブロックレベルシンタクスのそれぞれに対して、符号列がエントロピー復号される。
これによりエントロピー復号部303から、量子化変換係数情報321及び量子化パラメータ情報の他、予測モードインデックス情報331、ブロックサイズ切替情報332、予測順切替情報333、予測モード数切替情報334といった予測モードに関する情報(以後、予測モードインデックス情報、ブロックサイズ切替情報、予測順切替情報及び予測モード数切替情報を予測モード情報と総称する)が出力される。量子化変換係数情報321は、予測残差信号を直交変換及び量子化した情報である。量子化パラメータ情報は、量子化幅(量子化ステップサイズ)及び量子化マトリクスなどの情報を含む。
量子化変換係数情報321は、復元された量子化パラメータに従って逆量子化/逆直交変換部306により逆量子化され、更にIDCTのような逆直交変換が施される。ここでは、逆直交変換について説明したが、符号化側でウェーブレット変換などが行われている場合、逆量子化/逆変換部306は対応する逆量子化/逆ウェーブレット変換などを行ってもよい。
逆量子化/逆変換部306からは予測残差信号322が出力され、加算器307に入力される。加算器307では、予測信号生成部309から出力される予測信号323と予測残差信号322との加算が行われ、復号画像信号324が生成される。復号画像信号324は、参照画像メモリ308に入力されるとともに出力バッファ311に渡され、出力バッファ311から復号化制御部310が管理するタイミングで出力される。
一方、エントロピー復号部305により復号された予測モードインデックス情報331、ブロックサイズ切替情報332、予測順切替情報333及び予測モード数切替情報334は予測信号生成部309に入力される。予測信号生成部309には、更に参照画像メモリ308から既に復号されている参照画像信号325が入力される。予測信号生成部309は、予測モードインデックス情報331、ブロックサイズ切替情報332、予測順切替情報333及び予測モード数切替情報334を基に、参照画像信号325を参照して予測信号323を生成する。復号制御部310は、復号部304の復号処理全般の制御、例えば入力バッファ301及び出力バッファ311の制御や、復号タイミングの制御などを行う。
(予測信号生成部309について)
次に、図79を参照して予測信号生成部309について説明する。図79中に示す予測信号生成部309は、前述した画像符号化装置内の予測信号生成部1013と基本的に同様である。図79において、予測順切替部370は参照画像メモリ308からの参照画像信号325に対して予測順切替情報333に基づいてマクロブロック中のサブブロックの予測順を切り替える。予測順切替部370によって予測順が切り替えられた画像信号は、単方向予測部371及び双方向予測部372に入力される。
次に、図79を参照して予測信号生成部309について説明する。図79中に示す予測信号生成部309は、前述した画像符号化装置内の予測信号生成部1013と基本的に同様である。図79において、予測順切替部370は参照画像メモリ308からの参照画像信号325に対して予測順切替情報333に基づいてマクロブロック中のサブブロックの予測順を切り替える。予測順切替部370によって予測順が切り替えられた画像信号は、単方向予測部371及び双方向予測部372に入力される。
単方向予測部371は、予測モードインデックス情報331に基づいて、用意された複数の予測モードのうち一つの予測モードを選択し、選択した予測モード及びブロックサイズ切替情報332に従って、参照画像信号325を参照して予測信号を生成する。
一方、双方向予測部372は予測モードインデックス情報331に基づいて、前記用意された複数の予測モードのうち2つの予測モードを選択する。双方向予測部372は、こうして選択した予測モード、ブロックサイズ切替情報332及び重み係数情報335に従って、参照画像信号325を参照して予測信号を生成する。単方向予測部371及び双方向予測部372から出力される予測信号は、予測モード数切替部373に入力される。
予測モード数切替部373は、予測モード数切替情報344に従って制御されることにより、単方向予測部371によって生成された予測信号及び双方向予測部372によって生成された予測信号のいずれかを選択し、選択した予測信号323を出力する。
予測順切替部370は予測順切替情報333により制御され、予測順切替情報333を表す後述のフラグ:block_order_flagの値によって前記基準となるインデックス:blkを変換することによりサブブロックの予測順を切り替える。サブブロックの順番:idxに対して、実際の符号化時のサブブロックのインデックス:order(予測順を表す)は、式(59)に示した通りである。また、blkConv[ ][ ]の変換のための変換テーブルは、図52に示した通りである。
フラグ:block_order_flagが0(FALSE)の場合、実際に予測符号化を行う際のサブブロックのインデックス:orderは符号化対象のサブブロックのインデックス:idxそのものであり、ブロックの予測及び予測順を変更しない(以後、このような予測順による予測を順次予測という)。図6B及び図7Bは、それぞれ図6A及び図7Aに対する順次予測による予測順を示している。
一方、フラグ:block_order_flagが1(TRUE)の場合、実際に予測符号化を行うサブブロックのインデックス:orderは、4つのサブブロックのうち先に対角の1ブロックを外挿により予測し、残りの3ブロックを外挿予測または内挿により予測する、という予測順を示す。以後、このような予測順による予測を外挿/内挿ブロック予測という。図6C及び図7Cは、それぞれ図6A及び図7Aに対する外挿/内挿ブロック予測による予測順変更例を示している。
上述のようにして予測順切替部370により予測順が切り替えられたサブブロックは、単方向予測部371または双方向予測部372に入力されることによって、各サブブロックに対応する予測信号が生成される。モード数切替スイッチ373は、予測モード数切替情報334が予測モード数“1”を示しているときは単方向予測部371により得られる予測信号を出力し、予測モード数切替情報334が予測モード数“2”を示しているときは双方向予測部372により得られる予測信号を出力する。モード数切替スイッチ373から出力される予測信号は、予測信号生成部309の出力323として取り出される。
モード数切替スイッチ373は、予測ブロック(4x4画素ブロックまたは8x8画素ブロック)毎に与えられる予測モード数切替情報334に従って制御されることにより、予測信号323を出力する。具体的に4x4画素予測の際には、intra4x4_bi_pred_flagが4x4画素ブロック毎に記述されている。
すなわち、モード数切替スイッチ373は予測モード数切替情報334であるフラグ:intra4x4_bi_pred_flagがFALSEの場合は、単方向予測部371により得られる予測信号を選択し、intra4x4_bi_pred_flagがTRUEの場合は双方向予測部172により得られる予測信号を選択する。
(双方向予測部372について)
次に、図77を参照して双方向予測部372について説明する。双方向予測部372は第1単方向予測部375と第2単方向予測部376及び加重平均部380を有する。第1単方向予測部375及び第2単方向予測部376は、図79に示す単方向予測部371と同様である。第1単方向予測部375及び第2単方向予測部376にはそれぞれ異なる予測モードが予測モードインデックス情報331に従って入力され、符号化対象ブロックを予測する。
次に、図77を参照して双方向予測部372について説明する。双方向予測部372は第1単方向予測部375と第2単方向予測部376及び加重平均部380を有する。第1単方向予測部375及び第2単方向予測部376は、図79に示す単方向予測部371と同様である。第1単方向予測部375及び第2単方向予測部376にはそれぞれ異なる予測モードが予測モードインデックス情報331に従って入力され、符号化対象ブロックを予測する。
第1単方向予測部375及び第2単方向予測部376では、予測モード及びブロックサイズ切替情報332に従って、参照信号325を参照して予測信号381及び382を生成する。2種類の単方向予測部によって生成された予測信号381及び382は加重平均部380に入力される。加重平均部380では、重み係数情報335に従って予測信号381及び382を画素単位に加重平均し、予測信号323を出力する。但し、第1単方向予測部375は単方向予測部371の処理を行うことで省略が可能である。この場合、単方向予測部371が出力する予測信号と第2単方向予測部376が出力する予測信号382が加重平均部380に入力される。
単方向予測部371及び加重平均部380の具体的な処理は、画像符号化装置における単方向予測部171及び加重平均部180と同様であるため、説明を省略する。
シンタクス構造は、基本的に図32に示した通りであるが、以下では4x4画素予測が選択された場合のマクロブロックプレディクションシンタクスの構成について図64を用いて説明する。
図64中のblkConv[block_order_flag][luma4x4BlkIdx]は、図52に示されるような予測順の変換を行う変換テーブルを有しており、復号対象ブロックのインデックスを出力する。intra4x4_pred_mode_l0[ block_order_flag ][order]は、復号されたインデックスのデータである。
図64中のblkConv[block_order_flag][luma4x4BlkIdx]は、図52に示されるような予測順の変換を行う変換テーブルを有しており、復号対象ブロックのインデックスを出力する。intra4x4_pred_mode_l0[ block_order_flag ][order]は、復号されたインデックスのデータである。
図64中のintra4x4_bi_pred_flagは、当該4x4画素ブロックに対して双方向予測を行うか、行わないかを切り替えるフラグである。すなわち、当該フラグintra4x4_bi_pred_flagのFALSEは当該4x4画素ブロックが単方向予測であることを意味し、TRUEは当該4x4画素ブロックが双方向予測であることを意味する。
図64中のintra4x4_pred_mode_l1は、復号されたインデックスのデータである。当該データintra4x4_pred_mode_l1は、intra4x4_bi_pred_flagがTRUEの際に復号される。
(第4の実施形態:シンタクス構造の第1の例)
以下、第4の実施形態における各シンタクスの詳細について説明する。
luma4x4Blkに対して、block_order_flag毎にblkConv[block_order_flag][luma4x4BlkIdx]に示すテーブルに従って変換を施し、符号化対象のサブブロックを示すブロックインデックス:orderを算出する(図52参照)。
以下、第4の実施形態における各シンタクスの詳細について説明する。
luma4x4Blkに対して、block_order_flag毎にblkConv[block_order_flag][luma4x4BlkIdx]に示すテーブルに従って変換を施し、符号化対象のサブブロックを示すブロックインデックス:orderを算出する(図52参照)。
ブロックインデックスorderが示す4x4画素ブロックを復号する場合、intra4x4_pred_mode_l0[block_order_flag][order]を復号し、これを図51に示すようにintra4x4_pred_mode_l0_org[block_order_flag][order]に逆変換する。これは、block_order_flag及びマクロブロック内の当該ブロックの位置に応じて利用可能な予測モードが異なるために行う処理である。具体的には図67に示すように、block_order_flagが0(FALSE)の場合、intra4x4_pred_mode_l0_orgにintra4x4_pred_mode_l0の値がそのまま代入される。このとき、intra4x4_pred_mode_l0_orgは用意された単方向予測の9種類の予測モードのうちどの予測モードを4x4画素ブロックの復号に用いるかを示すデータとなる。
一方、block_order_flagが1(TRUE:外挿/内挿ブロック予測)の場合、当該4x4画素ブロックがマクロブロック内のどこに位置するかに応じて、テーブルが切り替わる。具体的には、内挿ブロック(2)に対して復号されたintra4x4_pred_mode_l0[1][order]が13である場合、当該予測モードintra4x4_pred_mode_l0_org[1][order]は15(逆方向垂直右予測)となる。また、内挿ブロック(3)に対して復号されたintra4x4_pred_mode_l0[1][order]が12である場合、当該予測モードintra4x4_pred_mode_l0_org[1][order]は14(逆方向水平上予測)となる。
intra4x4_bi_pred_flagがTRUEの場合、更にintra4x4_pred_mode_l1[block_order_flag][order]を復号する。復号されたintra4x4_pred_mode_l0[block_order_flag][order]は、図67に示されるようにintra4x4_pred_mode_l0_org[block_order_flag][order]に変換される。
他の例においては、block_order_flag及びintra4x4_bi_pred_flagの情報は符号化ビットストリームから分離されて復号されるが、復号済みのブロック及び画素から計算される前記アクティビティ情報により、block_order_flag及びintra4x4_bi_pred_flagの情報を示してもよい。この場合、符号化側と同様のロジックを用いることにより、block_order_flag及びintra4x4_bi_pred_flagの情報は、符号化側と同一のものが示されるため、符号化ビットストリームから分離及び復号の処理は必要とされない。
<第5の実施形態:画像符号化装置におけるシンタクス構造>
次に、他の実施形態に従う画像符号化装置について、今までの説明と異なる部分を中心に説明する。図69のマクロブロックレイヤシンタクス内に示されるblock_order_flagは、予測順の切り替えをマクロブロックで行うか否かを示すフラグである。block_order_flagがTRUEであるときは、予測順を切り替えて外挿/内挿ブロック予測を行う。一方、block_order_flagがFALSEであるときは、予測順の切り替えを行わず、順次ブロック予測を行う。
次に、他の実施形態に従う画像符号化装置について、今までの説明と異なる部分を中心に説明する。図69のマクロブロックレイヤシンタクス内に示されるblock_order_flagは、予測順の切り替えをマクロブロックで行うか否かを示すフラグである。block_order_flagがTRUEであるときは、予測順を切り替えて外挿/内挿ブロック予測を行う。一方、block_order_flagがFALSEであるときは、予測順の切り替えを行わず、順次ブロック予測を行う。
block_order_flagがTRUEの際には、予測順の具体的な記述方法がblock_order_in_mb_modeによって示される。block_order_in_mb_modeは以下に従って、予測順を示す。
(a)モードが0の場合、外挿/内挿ブロック予測を行う際の予測順を与える。
(b)モードが1の場合、予測順の組み合わせをインデックス情報に変換し、インデックス情報で予測順を示す。4つのブロックに対して予測順を決定する際は、順列により4P4=24通りから順次ブロック予測を除く23通りの予測順から、マクロブロック毎に1つを決定する。具体的には、図69中のblock_order_idxが前記ブロック組み合わせインデックスを与える。
(c)モードが2の場合、各ブロックに対して順序番号を直接示す。4x4画素ブロックに対しては、16個のblock_order4x4[ BLK]にその順番が示される。また、8x8画素ブロックに対しては、4個のblock_order8x8[BLK]にその順番が示されている。
別の例として、block_order_in_mb_modeが1の際に、最初に復号する1ブロックのみを示してもよい。4x4画素予測の際は、予測順のインデックスが膨大となることから、8x8画素ブロック単位で示される4x4画素ブロックの順番を4回繰り返し、インデックスの情報を削減してもよい。
また、block_order_in_mb_modeが2の際に、block_order4x4[ BLK]は外部からのテーブルによって示してもよい。隣接するblock_order4x4[ ]との差分を計算し、可変の符号長で表現してもよい。最後のblock_order4x4[15]は残りの一つの順番となることから、block_order4x4[15]を示す必要は無い。8x8画素ブロックに対しても同様である。4x4画素予測の際は、8x8画素ブロック単位で示される4x4画素ブロックの順番を4回繰り返し、block_order4x4の情報を削減してもよい。
block_order_in_mb_mode,block_order_idx,block_order4x4及びblock_order8x8といった情報はシーケンス毎、ピクチャ毎、スライス毎、マクロブロック毎に適応的に値を設定してもよい。
<第6の実施形態:画像復号化装置におけるシンタクス構造>
図70、図71、図72、図73及び図74は、画像復号化装置に関するシンタクス構造に関する別の例について示している。各シンタクスの説明は第5の実施形態に係る画像符号化装置と同様であるので省略する。
図70、図71、図72、図73及び図74は、画像復号化装置に関するシンタクス構造に関する別の例について示している。各シンタクスの説明は第5の実施形態に係る画像符号化装置と同様であるので省略する。
<第7の実施形態:画像符号化装置>
第2の実施形態において、外挿/内挿ブロック予測を適用するブロックと順次ブロック予測を適用するブロックが混在する場合、サブブロックの位置毎に予測モードのセットが異なる場合が発生する。この場合、予測モードの予測を行うための参照予測モードの導出に当たって、第2の実施形態のような参照ブロックの導出方法では、参照ブロックと符号化対象ブロックの予測モードセット(後述)が異なるため、予測モードの予測性能が低下する場合がある。第3の実施形態では、この点について以下のように改善する。
第2の実施形態において、外挿/内挿ブロック予測を適用するブロックと順次ブロック予測を適用するブロックが混在する場合、サブブロックの位置毎に予測モードのセットが異なる場合が発生する。この場合、予測モードの予測を行うための参照予測モードの導出に当たって、第2の実施形態のような参照ブロックの導出方法では、参照ブロックと符号化対象ブロックの予測モードセット(後述)が異なるため、予測モードの予測性能が低下する場合がある。第3の実施形態では、この点について以下のように改善する。
まず、外挿/内挿ブロック予測時のサブブロックの名称を図80A及び図80Bのように表記する。図80Aは8x8画素ブロック予測における8x8画素ブロック位置とその名称(A〜D)を示し、図80Bは4x4画素ブロック予測における4x4画素ブロック位置とその名称(AA,AB,AC,AD,BA,BB,BC,BD,CA,CB,CC,CD,DA,DB,DC及びDD)を示している。
ここで、ブロックAA,AB,AC及びADはマクロブロック内の左上8x8画素ブロックに属し、同様にブロックBA,BB,BC,BDはマクロブロック内の右上8x8画素ブロックに、ブロックCA,CB,CC及びCDはマクロブロック内の左下8x8画素ブロックに、ブロックDA,DB,DC及びDDはマクロブロック内の右下8x8画素ブロックにそれぞれ属する。
双方向予測部172による予測モードは、最大153種類(単方向予測モード17種類+双方向予測モード136種類(=17C2))用意されている。従って画素ブロック単位に予測モード情報を符号化するためには、7ビット/画素ブロック以上の符号量が必要である。符号量を減らすために、外挿/内挿ブロック予測の画素ブロック位置毎に上記153種の中から適切な予測モードをN種類選択し、それらを符号化対象画素ブロックの予測モード候補としても良い。以降、複数の予測モード候補から17種類を選択した予測モード群を予測モードセットとする。
図81、図82及び図83は、本実施形態におけるN=17とした場合の予測モードの名称(予測順及び予測方向)と対応する予測モードインデックスの例、つまり予測モードセットを表している。図81は、順次ブロック予測の予測モードセットを表している。図82は、外挿/内挿ブロック予測で8x8画素予測の場合、かつ予測順がD→B→C→Aとなる場合の予測モードセットを表している。図83は、外挿/内挿ブロック予測で8x8画素予測の場合、かつ予測順がD→C→B→Aとなる場合の予測モードセットを表している。図81、図82及び図83において、網掛けを施した領域は双方向予測であることを示す。図84は、画素ブロックの予測順と予測モードセットの対応関係を示している。図81、図82及び図83の予測モードセット中の予測順に、0,1及び2というインデックスがそれぞれ付けられている。
ここで、予測モードは必ずしも図81、図82及び図83に示した予測順である必要は無く、図9、図10あるいは図62に示されるような他の予測順の予測モードを使用して予測モードセットを構成しても良い。また、単方向予測のみを使用して予測モードセットを構成しても良いし、双方向予測のみを使用して予測モードセットを構成しても良い。更に、外挿/内挿ブロック予測のように画素ブロックの複数の予測順が存在する場合においても、予測順の異なる別の予測モードによって予測モードセットを構成しても良いし、同一の予測モードセットを構成しても良い。
図81、図82及び図83に示すように、本実施形態の予測モードインデックスインデックスと対応する予測順は、サブブロックの予測が外挿/内挿ブロック予測であるか順次ブロック予測であるかによって、及びマクロブロック内のサブブロックの位置によって異なる。従って、予測モードの予測を行う場合、第2の実施形態で述べた参照ブロックの導出方法では参照ブロックと符号化対象ブロックの予測モードのセットが異なる場合がある。
(シンタクス構造の例:予測モード数N=17の場合)
画像符号化部100において用いられるシンタクス構造の概略は図32に示した通りであり、またマクロブロックプレディクションシンタクスには、図34に示したようにマクロブロック内のサブブロック(4x4画素ブロックまたは8x8画素ブロック)毎の予測モード情報が明記されている。
画像符号化部100において用いられるシンタクス構造の概略は図32に示した通りであり、またマクロブロックプレディクションシンタクスには、図34に示したようにマクロブロック内のサブブロック(4x4画素ブロックまたは8x8画素ブロック)毎の予測モード情報が明記されている。
一方、図33に示したマクロブロックレイヤシンタクスの構成は、図85に置き換えられる。図85のマクロブロックレイヤシンタクス内に示されるblock_order_flagは、予測順の切り替えを当該マクロブロックで行うか否かを示すフラグである。block_order_flagがTRUEであるときは予測順を切り替え、外挿/内挿ブロック予測を行う。block_order_flagがFALSEであるときは予測順を切り替えず、順次ブロック予測を行う。block_order_flagがTRUEのときの予測順の具体的な記述方法は、block_order_in_mb_modeに示される。mb_bipred_intra_flagは、単方向予測か双方向予測かを示す。
次に、図86A及び図86Bを用いて4x4画素予測について述べる。符号化対象マクロブロックが双方向予測を行うマクロブロック(mb_bipred_intra_flagがTRUE)である場合を考える。用意された複数の予測モードのうちどの予測モードを符号化対象4x4画素ブロックに用いるかを示すデータをIntra4x4PredModeとすると、4x4画素ブロックのインデックスluma4x4BlkIdxの予測モードIntra4x4PredMode[ luma4x4BlkIdx ]は、prev_intra4x4_bipred_mode_flag[ luma4x4BlkIdx ]及びrem_intra4x4_bipred_mode[ luma4x4BlkIdx ]の2つのシンタクスによって表現される。prev_intra4x4_bipred_mode_flag[ luma4x4BlkIdx ]は、後述の隣接ブロックから導出された予測モードの予測値である参照予測モードref_pred_modeと符号化対象4x4画素ブロックの予測モードが同一であるか否かを示すフラグである。prev_intra4x4_bipred_mode_flag[ luma4x4BlkIdx ]がTRUEである場合、参照予測モードref_pred_modeが符号化対象4x4画素ブロックの予測モードIntra4x4PredMode[ luma4x4BlkIdx ]となるため、フラグprev_intra4x4_bipred_mode_flag[ luma4x4BlkIdx ]のみの1ビットで予測モードの情報を示すことができる。
一方、フラグprev_intra4x4_bipred_mode_flag[ luma4x4BlkIdx ]がFALSEの場合、更に予測モードの予測値と予測モードとの差を表す予測残差信号であるrem_intra4x4_bipred_mode[ luma4x4BlkIdx ]が示される。フラグprev_intra4x4_bipred_mode_flag[ luma4x4BlkIdx ]がFALSEの場合、ref_pred_modeは符号化対象4x4画素ブロックの予測モードIntra4x4PredMode[ luma4x4BlkIdx ]ではないことから、図87に示されるように符号化対象予測モードとしてはIntra4x4PredMode[ luma4x4BlkIdx ]からref_pred_modeを除いた値をrem_intra4x4_bipred_mode[ luma4x4BlkIdx ]とする。具体的には、図87に示されるように、Intra4x4PredMode[ luma4x4BlkIdx ]がref_pred_mode以上の値である場合、Intra4x4PredMode[ luma4x4BlkIdx ]から1をマイナスした値がrem_intra4x4_bipred_mode[ luma4x4BlkIdx ]にセットされる。
次に、予測モードの予測値ref_pred_modeの導出方法について述べる。ref_pred_modeは、以下のように符号化対象画素ブロックに対して左方向に位置する符号化済み画素ブロックleft_ref_blk、及び上方向に位置する符号化済み画素ブロックupper_ref_blkにおける予測モードleft_ref_pred_mode及びupper_ref_pred_modeの小さい方とする。
但し、min(M、N)とはMとNで小さい値を出力するオペレータである。
left_ref_pred_mode及びupper_ref_pred_modeは、符号化対象マクロブロック及び隣接マクロブロックの予測サイズ(4x4画素予測若しくは8x8画素予測)、及びサブブロックの予測順序(外挿/内挿ブロック予測か順次ブロック予測)、及び符号化対象の8x8画素ブロック若しくは4x4画素ブロックのマクロブロック内での相対位置に応じて、その導出方法が異なる。
(1)符号化対象画素ブロックが順次ブロック予測である場合:
まず、符号化対象画素ブロックが順次ブロック予測(block_order_flag=0(FALSE))の場合について述べる。
左に隣接する画素ブロックが符号化対象画素ブロックと同一マクロブロックに属する場合や、同一マクロブロックではないが左隣接マクロブロックが順次ブロック予測である場合、H.264と同様に左に隣接する画素ブロックの予測モードの値がleft_ref_pred_modeにセットされる。
まず、符号化対象画素ブロックが順次ブロック予測(block_order_flag=0(FALSE))の場合について述べる。
左に隣接する画素ブロックが符号化対象画素ブロックと同一マクロブロックに属する場合や、同一マクロブロックではないが左隣接マクロブロックが順次ブロック予測である場合、H.264と同様に左に隣接する画素ブロックの予測モードの値がleft_ref_pred_modeにセットされる。
同様に、上に隣接する画素ブロックが符号化対象画素ブロックと同一マクロブロックに属する場合や、同一マクロブロックではないが上隣接マクロブロックが順次ブロック予測である場合、H.264と同様に上に隣接する画素ブロックの予測モードの値がupper_ref_pred_modeにセットされる。
また、左に隣接する画素ブロックが属する左隣接マクロブロックが順次ブロック予測ではない場合、DC予測の予測モードインデックス(本例では2)をleft_ref_pred_modeにセットする。
同様に、上に隣接する画素ブロックが属する左隣接マクロブロックが順次ブロック予測ではない場合、DC予測の予測モードインデックス(本例では2)をupper_ref_pred_modeにセットする。
(2)符号化対象画素ブロックが外挿/内挿ブロック予測である場合:
次に、符号化対象画素ブロックが外挿/内挿ブロック予測(block_order_flag=0(TRUE))の場合について、符号化対象画素ブロックの画素予測サイズ、隣接画素ブロックの画素予測サイズ、及びサブブロックの符号化順序に応じて分類して述べる。
次に、符号化対象画素ブロックが外挿/内挿ブロック予測(block_order_flag=0(TRUE))の場合について、符号化対象画素ブロックの画素予測サイズ、隣接画素ブロックの画素予測サイズ、及びサブブロックの符号化順序に応じて分類して述べる。
(2−1)隣接ブロックが外挿/内挿ブロック予測ではない場合:
まず、左に隣接画素ブロックが属する左隣接マクロブロックが外挿/内挿ブロック予測ではない場合、DC予測の予測モードインデックス(本例では2)をleft_ref_pred_modeにセットする。
まず、左に隣接画素ブロックが属する左隣接マクロブロックが外挿/内挿ブロック予測ではない場合、DC予測の予測モードインデックス(本例では2)をleft_ref_pred_modeにセットする。
同様に、上に隣接する画素ブロックが属する左隣接マクロブロックが外挿/内挿ブロック予測でない場合、DC予測の予測モードインデックス(本例では2)をupper_ref_pred_modeにセットする。
(2−2)隣接ブロックが外挿/内挿ブロック予測である場合:
左に隣接する画素ブロックが符号化対象画素ブロックと同一マクロブロックに属する場合や、同一マクロブロックではないが左隣接マクロブロックが外挿/内挿ブロック予測である場合と、上に隣接する画素ブロックが符号化対象画素ブロックと同一マクロブロックに属する場合や、同一マクロブロックではないが上隣接マクロブロックが外挿/内挿ブロック予測である場合について以下に述べる。
左に隣接する画素ブロックが符号化対象画素ブロックと同一マクロブロックに属する場合や、同一マクロブロックではないが左隣接マクロブロックが外挿/内挿ブロック予測である場合と、上に隣接する画素ブロックが符号化対象画素ブロックと同一マクロブロックに属する場合や、同一マクロブロックではないが上隣接マクロブロックが外挿/内挿ブロック予測である場合について以下に述べる。
(8x8画素ブロック予測の場合: left_ref_pred_modeの導出)
以下、符号化対象マクロブロックが8x8画素ブロック予測且つ外挿/内挿ブロック予測の場合のleft_ref_pred_modeの導出方法について、図88A及び図88B、図89A、図89B、図90A、図90B、図90C及び図90D、図91、図92A、図92B、図92C及び図92D、及び図93を用いて説明する。
以下、符号化対象マクロブロックが8x8画素ブロック予測且つ外挿/内挿ブロック予測の場合のleft_ref_pred_modeの導出方法について、図88A及び図88B、図89A、図89B、図90A、図90B、図90C及び図90D、図91、図92A、図92B、図92C及び図92D、及び図93を用いて説明する。
(1−1)符号化対象マクロブロックの左に隣接するマクロブロックが8x8画素ブロック予測且つ外挿/内挿ブロック予測の場合:
図88Aに示すように、符号化対象ブロック501内の8x8画素ブロックA,B,C及びDは左に隣接するマクロブロック502内のブロックA,B,C及びDの予測モードをそれぞれ参照する。例えば、ブロックAは左に隣接するマクロブロック502中のブロックAの予測モードの値をleft_ref_pred_modeにセットする。
図88Aに示すように、符号化対象ブロック501内の8x8画素ブロックA,B,C及びDは左に隣接するマクロブロック502内のブロックA,B,C及びDの予測モードをそれぞれ参照する。例えば、ブロックAは左に隣接するマクロブロック502中のブロックAの予測モードの値をleft_ref_pred_modeにセットする。
(1−2)符号化対象マクロブロックの左に隣接するマクロブロックが4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合:
図88Bに示すように、符号化対象ブロック501内の8x8画素ブロックA,B,C及びDは矢印で示す4x4画素ブロックの予測モードをそれぞれ参照する。具体的には、ブロックAは左に隣接するマクロブロック503中のブロックBAの予測モードの値をleft_ref_pred_modeにセットする。ブロックBは左に隣接するマクロブロック503中のブロックBBの予測モードの値を、ブロックCはマクロブロック503中のブロックDCの予測モードの値を、ブロックDはマクロブロック503中のブロックDDの予測モードの値をそれぞれleft_ref_pred_modeにセットする。
図88Bに示すように、符号化対象ブロック501内の8x8画素ブロックA,B,C及びDは矢印で示す4x4画素ブロックの予測モードをそれぞれ参照する。具体的には、ブロックAは左に隣接するマクロブロック503中のブロックBAの予測モードの値をleft_ref_pred_modeにセットする。ブロックBは左に隣接するマクロブロック503中のブロックBBの予測モードの値を、ブロックCはマクロブロック503中のブロックDCの予測モードの値を、ブロックDはマクロブロック503中のブロックDDの予測モードの値をそれぞれleft_ref_pred_modeにセットする。
他の例として、符号化対象ブロック501内の8x8画素ブロックは左に隣接するマクロブロック503のうち、同一予測モードセットを持つサブブロックを参照しても良い。例えば、ブロックAはマクロブロック503中のブロックBAではなく、ブロックAA,CA,DAの予測モードの値をleft_ref_pred_modeにセットしても良い。ブロックB,C及びDに関しても同様である。
(1−3)その他、画面及びスライスの境界で左に隣接するマクロブロックが存在しない場合:
DC予測を示す予測モードインデックスの値(本例では2)をleft_ref_pred_modeにセットする。
DC予測を示す予測モードインデックスの値(本例では2)をleft_ref_pred_modeにセットする。
(8x8画素ブロック予測の場合: upper_ref_pred_modeの導出)
次に、符号化対象マクロブロックが8x8画素ブロック予測且つ外挿/内挿ブロック予測の場合のupper_ref_pred_modeの導出方法について、図89A及び図89Bを用いて説明する。
次に、符号化対象マクロブロックが8x8画素ブロック予測且つ外挿/内挿ブロック予測の場合のupper_ref_pred_modeの導出方法について、図89A及び図89Bを用いて説明する。
(2−1)符号化対象マクロブロックの上に隣接するマクロブロックが8x8画素ブロック予測且つ外挿/内挿ブロック予測の場合:
図89Aに示すように、符号化対象ブロック501内の8x8画素ブロックA,B,C及びDは上に隣接するマクロブロック504内のブロックA,B,C及びDの予測モードをそれぞれ参照する。例えば、ブロックAは上に隣接するマクロブロック504中のブロックAの予測モードの値をupper_ref_pred_modeにセットする。
図89Aに示すように、符号化対象ブロック501内の8x8画素ブロックA,B,C及びDは上に隣接するマクロブロック504内のブロックA,B,C及びDの予測モードをそれぞれ参照する。例えば、ブロックAは上に隣接するマクロブロック504中のブロックAの予測モードの値をupper_ref_pred_modeにセットする。
(2−2)符号化対象マクロブロックの上に隣接するマクロブロックが4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合:
図89Bに示すように、符号化対象ブロック501内の8x8画素ブロックA,B,C及びDは矢印で指し示す4x4画素ブロックの予測モードをそれぞれ参照する。具体的には、ブロックAは上に隣接するマクロブロック505中のブロックCAの予測モードの値をupper_ref_pred_modeにセットする。ブロックBは上に隣接するマクロブロック505中のブロックDBの予測モードの値を、ブロックCは上にマクロブロック505中のブロックCCの予測モードの値を、ブロックDはマクロブロック505中のブロックDDの予測モードの値をそれぞれupper_ref_pred_modeにセットする。
図89Bに示すように、符号化対象ブロック501内の8x8画素ブロックA,B,C及びDは矢印で指し示す4x4画素ブロックの予測モードをそれぞれ参照する。具体的には、ブロックAは上に隣接するマクロブロック505中のブロックCAの予測モードの値をupper_ref_pred_modeにセットする。ブロックBは上に隣接するマクロブロック505中のブロックDBの予測モードの値を、ブロックCは上にマクロブロック505中のブロックCCの予測モードの値を、ブロックDはマクロブロック505中のブロックDDの予測モードの値をそれぞれupper_ref_pred_modeにセットする。
他の例として、符号化対象ブロック501内の8x8画素ブロックは上に隣接するマクロブロック505のうち、同一予測モードセットを持つサブブロックを参照しても良い。例えば、ブロックAは左に隣接するマクロブロック中のブロックCAではなく、ブロックAA,BA及びDAの予測モードの値をupper_ref_pred_modeにセットしても良い。ブロックB,C及びDに関しても同様である。
(2−3)その他、画面及びスライスの境界で上に隣接するマクロブロックが存在しない場合:
4x4画素ブロック予測及び8x8画素ブロック予測で無い場合、DC予測を示す予測モードインデックスの値(本例では2)をupper_ref_pred_modeにセットする。
4x4画素ブロック予測及び8x8画素ブロック予測で無い場合、DC予測を示す予測モードインデックスの値(本例では2)をupper_ref_pred_modeにセットする。
(4x4画素ブロック予測の場合: left_ref_pred_modeの導出)
次に、符号化対象マクロブロックが4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合のleft_ref_pred_modeの導出方法について、図90A、図90B、図90C及び図90D、及び図91を用いて説明する。この場合、マクロブロック内の4x4画素ブロック位置に応じて導出方法が異なる。
次に、符号化対象マクロブロックが4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合のleft_ref_pred_modeの導出方法について、図90A、図90B、図90C及び図90D、及び図91を用いて説明する。この場合、マクロブロック内の4x4画素ブロック位置に応じて導出方法が異なる。
(3−1)符号化対象マクロブロックの左に隣接するマクロブロックが4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合:
(3−1−1)図90Aに示すように、符号化対象マクロブロック511の左に隣接するマクロブロック512が4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合、符号化対象ブロック511内のブロック位置が左上8x8画素ブロックに属する4x4画素ブロックAA,AB,AC及びADは、図90A中に示す矢印に従って8x8画素ブロックをそれぞれ参照する。具体的には、ブロックAAは左に隣接するマクロブロック512内のブロックAの予測モードをleft_ref_pred_modeにセットする。同様に、ブロックABは左に隣接するマクロブロック512内のブロックBの予測モードを、ブロックACはマクロブロック512内のブロックCの予測モードを、ブロックADはマクロブロック5112内のブロックDの予測モードをそれぞれleft_ref_pred_modeにセットする。
(3−1−1)図90Aに示すように、符号化対象マクロブロック511の左に隣接するマクロブロック512が4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合、符号化対象ブロック511内のブロック位置が左上8x8画素ブロックに属する4x4画素ブロックAA,AB,AC及びADは、図90A中に示す矢印に従って8x8画素ブロックをそれぞれ参照する。具体的には、ブロックAAは左に隣接するマクロブロック512内のブロックAの予測モードをleft_ref_pred_modeにセットする。同様に、ブロックABは左に隣接するマクロブロック512内のブロックBの予測モードを、ブロックACはマクロブロック512内のブロックCの予測モードを、ブロックADはマクロブロック5112内のブロックDの予測モードをそれぞれleft_ref_pred_modeにセットする。
(3−1−2)図90Bに示すように、符号化対象マクロブロック521の左に隣接するマクロブロック522が4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合、符号化対象ブロック521内のブロック位置が右上8x8画素ブロックに属する4x4画素ブロックBA,BB,BC及びBDは、図90B中に示す矢印に従って符号化対象マクロブロック521内の左に隣接する左上8x8画素ブロックに属する4x4画素ブロックを参照する。具体的には、同じマクロブロック521内のブロックAA,AB,AC及びADの予測モードをそれぞれleft_ref_pred_modeにセットする。
(3−1−3)図90Cに示すように、符号化対象マクロブロック531の左に隣接するマクロブロック532が4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合、符号化対象ブロック531内のブロック位置が左下8x8画素ブロックに属する4x4画素ブロックCA,CB,CC及びCDは、図90C中に示す矢印に従って左に隣接するマクロブロック532内の8x8画素ブロックをそれぞれ参照する。具体的には、(1−1)における記述についてAA,AB,AC及びADをCA,CB,CC及びCDにそれぞれ置き換えればよい。
(3−1−4)図90Dに示すように、符号化対象マクロブロック541の左に隣接するマクロブロック542が4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合、ブロック位置が右下8x8画素ブロックに属する4x4画素ブロックDA,DB,DC及びDDは、図90D中に示す矢印に従って符号化対象マクロブロック541内の上に隣接する左下8x8画素ブロック中に属する4x4画素ブロックを参照する。具体的には、同じマクロブロック541内のブロックBA,BB,BC及びBDの予測モードをそれぞれleft_ref_pred_modeにセットする。
(3−2)符号化対象マクロブロックの左に隣接するマクロブロックが4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合:
図91に示すように、符号化対象マクロブロック551の左に隣接するマクロブロック552が4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合、符号化対象ブロック551内のいずれの4x4画素ブロックにおいても、左に隣接する8x8画素ブロック532内の対応する位置の4x4画素ブロックを参照する。
図91に示すように、符号化対象マクロブロック551の左に隣接するマクロブロック552が4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合、符号化対象ブロック551内のいずれの4x4画素ブロックにおいても、左に隣接する8x8画素ブロック532内の対応する位置の4x4画素ブロックを参照する。
(4x4画素ブロック予測の場合: upper_ref_pred_modeの導出)
次に、符号化対象マクロブロックが4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合のupper_ref_pred_modeの導出方法について、図92A、図92B、図92C及び図92D、及び図93を用いて説明する。この場合、マクロブロック内の4x4画素ブロック位置に応じて導出方法が異なる。
次に、符号化対象マクロブロックが4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合のupper_ref_pred_modeの導出方法について、図92A、図92B、図92C及び図92D、及び図93を用いて説明する。この場合、マクロブロック内の4x4画素ブロック位置に応じて導出方法が異なる。
(4−1)符号化対象マクロブロックの上に隣接するマクロブロックが8x8画素ブロック予測且つ外挿/内挿ブロック予測の場合:
(4−1−1)図92Aに示すように、符号化対象マクロブロック561の上に隣接するマクロブロック562が8x8画素ブロック予測且つ外挿/内挿ブロック予測の場合、符号化対象ブロック561内のブロック位置が左上8x8画素ブロックに属する4x4画素ブロックAA,AB,AC及びADは、図92A中に示す矢印に従って上に隣接するマクロブロック562内の8x8画素ブロックをそれぞれ参照する。具体的には、ブロックAAは上に隣接するマクロブロック562内のブロックAの予測モードをupper_ref_pred_modeにセットする。同様に、ブロックABは上に隣接するマクロブロック562内のブロックBの予測モードを、ブロックACはマクロブロック562内のブロックCの予測モードを、ブロックADは上にマクロブロック562内のブロックDの予測モードをそれぞれupper_ref_pred_modeにセットする。
(4−1−1)図92Aに示すように、符号化対象マクロブロック561の上に隣接するマクロブロック562が8x8画素ブロック予測且つ外挿/内挿ブロック予測の場合、符号化対象ブロック561内のブロック位置が左上8x8画素ブロックに属する4x4画素ブロックAA,AB,AC及びADは、図92A中に示す矢印に従って上に隣接するマクロブロック562内の8x8画素ブロックをそれぞれ参照する。具体的には、ブロックAAは上に隣接するマクロブロック562内のブロックAの予測モードをupper_ref_pred_modeにセットする。同様に、ブロックABは上に隣接するマクロブロック562内のブロックBの予測モードを、ブロックACはマクロブロック562内のブロックCの予測モードを、ブロックADは上にマクロブロック562内のブロックDの予測モードをそれぞれupper_ref_pred_modeにセットする。
(4−1−2)図92Bに示すように、符号化対象マクロブロック571の上に隣接するマクロブロック572が8x8画素ブロック予測且つ外挿/内挿ブロック予測の場合、符号化対象ブロック571内のブロック位置が右上8x8画素ブロックに属する4x4画素ブロックBA,BB,BC及びBDは、図92B中に示す矢印に従って上に隣接するマクロブロック572内の8x8画素ブロックをそれぞれ参照する。具体的には(1−1)における記述についてAA,AB,AC及びADをBA,BB,BC及びBDにそれぞれ置き換えればよい。
(4−1−3)図92Cに示すように、符号化対象マクロブロック581の上に隣接するマクロブロック582が8x8画素ブロック予測且つ外挿/内挿ブロック予測の場合、符号化対象ブロック581内のブロック位置が左下8x8画素ブロックに属する4x4画素ブロックCA,CB,CC及びCDは、図92C中に示す矢印に従って、符号化対象マクロブロック581内の上に隣接する8x8画素ブロック中の4x4画素ブロックを参照する。具体的には、同じマクロブロック581内のブロックAA,AB,AC及びADの予測モードをそれぞれupper_ref_pred_modeにセットする。
(4−1−4)図92Dに示すように、符号化対象マクロブロック591の上に隣接するマクロブロック592が8x8画素ブロック予測且つ外挿/内挿ブロック予測の場合、符号化対象ブロック581内のブロック位置が右下8x8画素ブロックに属する4x4画素ブロックDA,DB,DC及びDDは、図92D中に示す矢印に従って、符号化対象マクロブロック581内の上に隣接する8x8画素ブロック中の4x4画素ブロックを参照する。具体的には、同じマクロブロック581内のブロックBA,BB,BC及びBDの予測モードをそれぞれupper_ref_pred_modeにセットする。
(4−2)符号化対象マクロブロックの左に隣接するマクロブロックが4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合:
図93に示すように、符号化対象マクロブロック601の上に隣接するマクロブロック602が4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合、符号化対象ブロック601内のいずれの4x4画素ブロックにおいても、上に隣接するマクロブロック602内の対応する位置の4x4画素ブロックを参照する。
図93に示すように、符号化対象マクロブロック601の上に隣接するマクロブロック602が4x4画素ブロック予測且つ外挿/内挿ブロック予測の場合、符号化対象ブロック601内のいずれの4x4画素ブロックにおいても、上に隣接するマクロブロック602内の対応する位置の4x4画素ブロックを参照する。
以上のように予測モードの予測値を算出することにより、常に符号化対象ブロックと参照ブロックの予測モードのインデックス及び予測方向と、参照ブロックのインデックス及び予測方向が完全に一致する。つまり予測モードセットが同一のため、予測モード符号化の効率は改善する。
次に、図94を参照して画素ブロックにおける予測及び符号化手順を説明する。
まず、符号化対象マクロブロックにおける予測順序(外挿/内挿ブロック予測若しくは順次ブロック予測)が決定すると(ステップS500)、図80A及び図80Bに示される予測順序に対応した予測モードセットが決定される(ステップS501)。
まず、符号化対象マクロブロックにおける予測順序(外挿/内挿ブロック予測若しくは順次ブロック予測)が決定すると(ステップS500)、図80A及び図80Bに示される予測順序に対応した予測モードセットが決定される(ステップS501)。
予測部102にブロック画像信号121が入力されると、まず予測信号生成部113にblk=0で示されるサブブロックをセットする(ステップS502)。更に、サブブロックの位置に応じて、左及び上に位置する参照ブロックが決定され、式(75)に従って予測モードの予測値ref_pred_modeが導出される(ステップS503)。
次に、モード選択部103及び内部モード選択部114における予測モード及び符号化コストの初期化を行う(ステップS504)。例えば、予測モード:indexを0にセットし、最小符号化コスト:min_costを無限大にセットする。
次に、予測信号生成部113によってblk=0で示されるサブブロックに対して選択可能な1つのモードindexにより予測信号122を生成する(ステップS505)。ブロック画像信号121と予測信号122との差分をとって予測残差信号123を生成し、式(1)または式(2)に従って符号化コストを計算する。また、予測モードは予測モードの予測値ref_pred_modeを用いて予測モードの符号化に必要な符号化コストを前記符号化コストに加える(ステップS506)。
モード選択部103は、計算された符号化コストが最小符号化コスト:min_costより小さいか否かを判別し(ステップS507)、小さい場合(S507の結果がYES)、計算された符号化コストで最小符号化コストを更新するとともに、その際の予測モード情報を最適予測モード情報であることを示すbest_modeインデックスとして保持する(ステップS508)。
計算されたコストが最小符号化コスト:min_costより大きい場合(S507の結果がNO)、モードインデックス:indexをインクリメントし、インクリメント後のindexがモードの最後の番号(MAX)より大きいか否かを判定する(ステップS509)。indexがMAXよりも大きい場合(S509の結果がYES)、モード選択部103から最適予測モード情報125及び予測残差信号126を直交変換/量子化部104へ渡し、直交変換及び量子化を行う。直交変換/量子化部104により得られる量子化変換係数情報127をエントロピー符号化部108によって予測モードの予測を行った予測モードインデックス情報141と共にエントロピー符号化する(ステップS510)。
一方、indexがMAXよりも小さい場合(S509の結果がNO)、ステップS305に戻って次のindexで示される予測モードの予測信号122を生成する。
best_modeでの符号化を行うと、内部直交変換/量子化部115により得られる量子化変換係数情報163を内部逆量子化/逆直交変換部116に渡し、逆量子化及び逆変換を行う。内部逆量子化/逆直交変換部116により生成される、復号された予測残差信号164を内部モード選択部114から入力されるbest_modeの予測信号162と内部加算器117により加算する。内部加算器117によって生成される内部復号信号165を内部参照画像メモリ118に保存する(ステップS510)。
当該ブロック符号化数:blkをインクリメントし、インクリメント後のblkの値がマクロブロック内の小ブロックの総数:BLK_MAX(4x4画素予測であれば16、8x8画素予測であれば4)よりも大きいか否かを判断する(ステップS511)。インクリメント後のblkの値がBLK_MAXより大きい場合(S511の結果がYES)、当該マクロブロック内での予測処理は終了する。一方、インクリメント後のblkがBLK_MAXよりも小さい場合(S511の結果がNO)、ステップS503に戻って次のblkで示される小ブロックの予測処理を行う。
次に、図95を用いて図94のステップS505及びS510における予測モードの符号化コストの算出方法を説明する。ステップS503によって決定された予測モードの予測値ref_pred_modeと符号化対象ブロックの予測モードIntra4x4PredModeが等しいか否かを判定する(ステップS520)。
予測モードの予測値ref_pred_modeと符号化対象ブロックの予測モードIntra4x4PredModeが等しい場合(S520の結果がYES)、図86A及び図86Bにおけるprev_4x4_bipred_mode_flagに1(TRUE)をセットする(ステップS521)。予測モードの予測値ref_pred_modeと符号化対象ブロックの予測モードIntra4x4PredModeが等しくない場合(S520の結果がNO)、prev_4x4_bipred_mode_flagに0(FALSE)をセットし(ステップS522)、rem_intra4x4_bipred_modeに残った予測モードのうち、ref_pred_modeを除く予測モードをセットする(ステップS523)。
予測モード数N=17の場合、予測モードの予測値と符号化対象画素ブロックの予測モードが等しい場合、1ビット(算術符号化では1bin)で符号化する。また、予測モードの予測値と符号化対象画素ブロックの予測モードが等しくない場合、5ビット(算術符号化では5bin)で符号化する。
ここで、図96に示すように符号化対象画素ブロック内の左上端画素の位置を符号化対象フレーム中の左上端からの距離(Ox, Oy)で示す。また、符号化対象画素ブロックにおける4x4画素ブロックの位置を符号化対象フレーム中の左上端4x4画素ブロック位置からの距離(O4x, O4y)で示す。図96は、(a)4x4画素ブロック予測の場合のサブブロックAA,BA,CA及びDの左上端画素位置701,702,703及び704、及び(b)8x8画素ブロック予測の場合のサブブロックA,B,C及びDの左上端画素位置711,712,713及び714を示している。図96中の点線は一例であり、サブブロックCAの左上端画素位置703が(Ox, Oy)によって示されている。
(画素位置による導出)
別の実施形態として、符号化対象画素ブロック及び参照画素ブロックが属するマクロブロックが共に外挿/内挿ブロック予測の場合の左参照画素ブロックleft_ref_blk及び上参照画素ブロックupper_ref_blkの相対位置(画素単位)を図97A及び図97B、図98A、図98B、図98C及び図98Dに示すテーブルから導出しても良い。
別の実施形態として、符号化対象画素ブロック及び参照画素ブロックが属するマクロブロックが共に外挿/内挿ブロック予測の場合の左参照画素ブロックleft_ref_blk及び上参照画素ブロックupper_ref_blkの相対位置(画素単位)を図97A及び図97B、図98A、図98B、図98C及び図98Dに示すテーブルから導出しても良い。
以下、図97A及び図97B、図98A、図98B、図98C及び図98Dに示すテーブルについて説明する。図97Aは、符号化対象ブロックと参照ブロックが同じ予測サイズの場合であり、4x4画素の場合はpredPartWidth及びpredPartHeightに4をセットし、8x8画素の場合はpredPartWidth及びpredPartHeightに8をセットする。図97Bは、符号化対象画素ブロックが8x8画素ブロック予測、かつ参照画素ブロックが4x4画素ブロック予測の場合である。
図98A、図98B、図98C及び図98Dは、符号化対象画素ブロックが8x8画素ブロック予測、かつ参照画素ブロックが4x4画素ブロック予測の場合を示している。図98Aは符号化対象4x4サブブロックがマクロブロック中の左上8x8画素ブロックに属している場合、図98Bは符号化対象4x4サブブロックがマクロブロック中の右上8x8画素ブロックに属している場合、図98Cは符号化対象4x4サブブロックがマクロブロック中の左下8x8画素ブロックに属している場合、図98Dは符号化対象4x4サブブロックがマクロブロック中の右下8x8画素ブロックに属している場合である。
図97A及び図97B、図98A、図98B、図98C及び図98Dに示した各テーブルは、符号化対象ブロックにおける上左端画素の絶対位置(フレームの上左端画素からの位置)(Ox, Oy)から参照するleft_ref_blkの画素位置(left_ref_blk_pos_x, left_ref_blk_pos_y)及びupper_ref_blkの画素位置(upper_ref_blk_pos_x, upper_ref_blk_pos_y)を表す水平及び垂直方向成分を示している。また、各サブブロックの位置に対応したxD, yDは隣接するマクロブロックの予測サイズに応じて値が変わる。upper_ref_blk及びleft_ref_blkは下式に従って導出される。
但し、left_ref_blk内の全ての画素は、符号化対象画素ブロックが保持する予測モードleft_ref_pred_modeを保持するものとする。また、upper_ref_blk内の全ての画素は、符号化対象画素ブロックが保持する予測モードupper_ref_pred_modeを保持するものとする。また、left_ref_blk_pos_x ,left_ref_blk_pos_y, upper_ref_blk_pos_x及びupper_ref_blk_pos_y が示す画素位置はleft_ref_blk及び upper_ref_blk中の画素のうち、符号化対象画素ブロックの左上端画素から最も距離が近い画素の位置を指し示す。
(4x4画素ブロック位置による導出)
さらに別の実施形態として、符号化対象画素ブロック及び参照画素ブロックが属するマクロブロックが共に外挿/内挿ブロック予測の場合の左参照画素ブロックleft_ref_blk及び上参照画素ブロックupper_ref_blkの相対位置(4画素ブロック単位)を図99A及び図99B、図100A、図100B、図100C及び図100Dに示すテーブルから導出しても良い。
さらに別の実施形態として、符号化対象画素ブロック及び参照画素ブロックが属するマクロブロックが共に外挿/内挿ブロック予測の場合の左参照画素ブロックleft_ref_blk及び上参照画素ブロックupper_ref_blkの相対位置(4画素ブロック単位)を図99A及び図99B、図100A、図100B、図100C及び図100Dに示すテーブルから導出しても良い。
以下、図99A及び図99B、図100A、図100B、図100C及び図100Dに示すテーブルについて説明する。これらのテーブルは、符号化対象画素ブロックが8x8画素ブロック予測、かつ参照画素ブロックが4x4画素ブロック予測の場合である。図99Aは、符号化対象ブロックと参照ブロックが同じ予測サイズの場合であり、4x4画素の場合はpredPartWidth4x4及びpredPartHeight4x4に1をセットし、8x8画素の場合はpredPartWidth4x4及びpredPartHeight4x4に2をセットする。図84Bは、符号化対象画素ブロックが8x8画素ブロック予測、かつ参照画素ブロックが4x4画素ブロック予測の場合である。
図100Aは、符号化対象4x4サブブロックがマクロブロック中の左上8x8画素ブロックに属している場合、図100Bは符号化対象4x4サブブロックがマクロブロック中の右上8x8画素ブロックに属している場合、図100Cは符号化対象4x4サブブロックがマクロブロック中の左下8x8画素ブロックに属している場合、図100Dは符号化対象4x4サブブロックがマクロブロック中の右下8x8画素ブロックに属している場合をそれぞれ示している。
図99A及び図99B、図100A、図100B、図100C及び図100Dに示した各テーブルは、符号化対象ブロックにおける4x4画素ブロック位置フレームの上左端4x4画素ブロックからの位置)(O4x, O4y)から参照すべきleft_ref_blkの4x4画素ブロック位置(left_ref_blk_pos4x4_x, left_ref_blk_pos4x4_y)及びupper_ref_blkの4x4画素ブロック位置(upper_ref_blk_pos4x4_x、 upper_ref_blk_pos4x4_y)を表す水平及び垂直方向成分(4x4画素ブロック単位)である。upper_ref_blk及びleft_ref_blkは下式に従って導出される。
但し、left_ref_blkが8x8画素予測の場合、符号化対象8x8画素ブロック内の全ての4x4画素ブロックが予測モードleft_ref_pred_modeを保持するものとする。また、upper_ref_blkが8x8画素予測の場合、符号化対象8×8ブロック内の全ての4x4画素ブロックが予測モードupper_ref_pred_modeを保持するものとする。left_ref_blk_pos4x4_x , left_ref_blk_pos4x4_y, upper_ref_blk_pos4x4_x及び upper_ref_blk_pos4x4_y が示す4x4画素ブロック位置は、left_ref_blk及び upper_ref_blk中の画素のうち、符号化対象画素ブロックの左上端4x4画素ブロックから最も距離が近い4x4画素ブロックの位置を指し示す。
また、本実施形態では、符号化対象画素ブロックから最も距離の近い、且つ同一の予測モードセットを所持する上方向の画素ブロック及び左方向の画素ブロックを参照しているが、必ずしも最も距離の近い画素ブロックを参照する必要は無く、同一の予測モードを所持する上方向の画素ブロック及び左方向の画素ブロックを参照しても良い。
更に、本実施形態では外挿/内挿ブロック予測を適用する画素ブロックが順次ブロック予測を適用する画素ブロックを参照する場合、及び順次ブロック予測を適用する画素ブロックが外挿/内挿ブロック予測を適用する画素ブロックを参照する場合にはDC予測を表すインデックスをleft_ref_pred_mode若しくはupper_ref_pred_modeとしていたが、別の実施形態として予測処理を行っても良い。例えば、図81に示した予測モードセットの場合、予測方法に関わらずインデックス0〜4はそれぞれ同一の予測方向である。従って、これらのインデックス0〜4の場合には、前述の通り、参照画素ブロックの予測モードをleft_ref_pred_mode若しくはupper_ref_pred_modeとして設定しても良い。
また、本実施形態ではN=17として説明を行ったが、必ずしもN=17である必要は無く、Nは他の値を設定しても良い。例えば、N=9、N=33またはN=65といった予測モードの種類数では、上記と同様のシンタクス構造が利用できる。但し、rem_intra4x4_bipred_mode[ luma4x4BlkIdx ]はN=9の場合3ビット、N=33種類の場合5ビット、N=65の場合6ビットが必要である。また、rem_intra4x4_bipred_mode[ luma4x4BlkIdx ]の符号化に可変長符号を使用することでNが上記に示した以外の値であっても適用可能である。
8x8画素予測の際のシンタクスについては、図86A及び図86Bに示した通り4x4画素予測の際のシンタクスと同様であるため説明を省略する。
<第8の実施形態:画像復号化装置>
次に、第7の実施形態に対応する第8の実施形態に係る画像復号化装置について説明する。ここでは、特に図75中のエントロピー復号部305及び予測モードインデックス情報331について述べる。
次に、第7の実施形態に対応する第8の実施形態に係る画像復号化装置について説明する。ここでは、特に図75中のエントロピー復号部305及び予測モードインデックス情報331について述べる。
符号化対象マクロブロックが、双方向予測を行うマクロブロック(mb_bipred_intra_flagがTRUE)である場合を考える。用意された複数の予測モードのうちどの予測モードを符号化対象4x4画素ブロックに用いるかを示すデータをIntra4x4PredModeとすると、4x4画素ブロックのインデックスluma4x4BlkIdxの予測モードIntra4x4PredMode[ luma4x4BlkIdx ]は、prev_intra4x4_bipred_mode_flag[ luma4x4BlkIdx ]及びrem_intra4x4_bipred_mode[ luma4x4BlkIdx ]の2つのシンタクスによって表現される。
フラグprev_intra4x4_bipred_mode_flag[ luma4x4BlkIdx ]は、前述の隣接ブロックから導出された予測モードの予測値ref_pred_modeと符号化対象4x4画素ブロックの予測モードが同一であるか否かを示すフラグである。フラグprev_intra4x4_bipred_mode_flag[ luma4x4BlkIdx ]を復号し、これがTRUEである場合、ref_pred_modeが符号化対象4x4画素ブロックの予測モードとなるため、1ビットで予測モードの情報を復号することができる。
一方、prev_intra4x4_bipred_mode_flag[ luma4x4BlkIdx ]がFALSEの場合、更にrem_intra4x4_bipred_mode[ luma4x4BlkIdx ]が復号される。ref_pred_modeは符号化対象4x4画素ブロックの予測モードではないことから、符号化対象予測モードはref_pred_modeを除いた予測モードから復号される。
具体的には、図101に示されるように、rem_intra4x4_bipred_mode[ luma4x4BlkIdx ]がref_pred_mode以上の値である場合、rem_intra4x4_bipred_mode[ luma4x4BlkIdx ]の値を1インクリメントした値が符号化対象4x4画素ブロックに用いる予測モードIntra4x4PredMode[ luma4x4BlkIdx ]となる。
その他、参照予測モードの算出に関しては符号化側と同様であるため、説明を省略する。
上述したように、本発明の実施形態によると予測順を選択可能としたことによって、例えば左や上の画素との相関を利用する外挿予測のみではなく、右や下の画素との相関を効果的に利用した内挿予測を行うことができる。また、
従って、符号化効率の高い画像符号化及び符号化された画像の復号化を実現できる。
従って、符号化効率の高い画像符号化及び符号化された画像の復号化を実現できる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明は、動画像や静止画像の高能率圧縮符号化/復号技術に利用することが可能である。
Claims (45)
- 入力画像信号のフレームを分割した複数の画素ブロックの各々に対応する複数の第1予測信号を生成するために、予測方向の異なる複数の予測モードに従って、符号化済み画素を参照画素に用いて前記画素ブロックを予測すること;
前記複数の予測モードの予測方向と、前記画素ブロック中の予測画素と前記参照画素との間の空間的距離とに応じて重み係数を設定すること;
前記画素ブロックに対応する一つの第2予測信号を生成するために、前記複数の予測信号を前記重み係数に従って加重平均すること;及び
符号化データを生成するために、前記画素ブロックの画像信号と前記第2予測信号との差を表す予測残差信号を符号化すること;を具備する画像符号化方法。 - 入力画像信号のフレームを分割した複数の画素ブロックの各々に対応する複数の第1予測信号を生成するために、予測方向の異なる複数の予測モードに従って、符号化済み画素を参照画素に用いて前記画素ブロックを予測するように構成される複数方向予測部;
前記複数の予測モードの予測方向と、前記画素ブロック中の予測画素と前記参照画素との間の空間的距離とに応じて重み係数を設定するように構成される設定部;
前記画素ブロックに対応する一つの第2予測信号を生成するために、前記複数の第1予測信号を前記重み係数に従って加重平均するように構成される加重平均部;及び
符号化データを生成するために、前記画素ブロックの画像信号と、少なくとも前記第2予測信号との差を表す予測残差信号を符号化するように構成される符号化部;を具備する画像符号化装置。 - 前記複数の予測モードの少なくとも一つは、フレーム内予測モードである請求項2記載の画像符号化装置。
- 前記画素ブロックの各々に対応する一つの第3予測信号を生成するために、単一の予測モードに従って、符号化済み画素を参照画素に用いて前記画素ブロックを予測するように構成される単方向予測部;
前記第2予測信号及び第3予測信号のいずれかを選択するように構成される選択部;及び
前記第2予測信号が選択された場合は前記画素ブロックの画像信号と前記第2予測信号との差をとって前記予測残差信号を生成し、前記第3予測信号が選択された場合は前記画素ブロックの画像信号と前記第3予測信号との差をとって前記予測残差信号を生成するように構成される減算部
をさらに具備する請求項2記載の画像符号化装置。 - 前記選択部は、複数種類の予測モード数から選択された予測モード数に従って前記第2予測信号及び第3予測信号のいずれかを選択するように構成され、
前記符号化部は、前記符号化データを生成するために、前記選択された予測モード数を示す情報も符号化するように構成される請求項2記載の画像符号化装置。 - 前記設定部は、つ前記重み係数を前記予測方向及び前記空間的距離に応じて算出することにより設定するように構成される請求項2記載の画像符号化装置。
- 前記設定部は、前記複数の予測モード毎の前記空間的距離に基づく信頼度の和を分母とし、該信頼度を分子として算出することにより前記重み係数を設定するように構成される請求項2記載の画像符号化装置。
- 前記信頼度は、前記空間的距離に応じて単調減少するように構成される請求項7記載の画像符号化装置。
- 前記信頼度は、前記予測方向及び前記空間的距離に応じて(a)等方相関モデル・楕円相関モデルを含む自己相関関数モデル、(b)比例・逆比例モデル、(c)N次関数(N≧1)モデル、(d)一般化ガウス分布モデル、及び(e)予測モードの数に応じた重み係数を記述したテーブルの少なくとも一つに従うように構成される請求項7記載の画像符号化装置。
- 前記設定部は、前記空間的距離を分離した複数の距離成分のそれぞれについて前記距離成分毎の評価規則に従って前記距離成分毎の信頼度成分を求め、前記信頼度成分から前記信頼度を求めるように構成される請求項7記載の画像符号化装置。
- 前記設定部は、前記空間的距離を分離した水平距離成分及び垂直距離成分のそれぞれについて前記距離成分毎の評価規則に従って前記距離成分毎の信頼度成分を求め、前記信頼度成分から前記信頼度を求めるように構成される請求項7記載の画像符号化装置。
- 前記設定部は、前記重み係数をシーケンス、ピクチャ、スライス、マクロブロック及びサブブロックの少なくとも一つの単位毎に複数セット用意し、
前記加重平均部は、前記重み係数のセットを選択的に使用するように構成される請求項2記載の画像符号化装置。 - 前記符号化部は、前記符号化データを生成するために、前記加重平均部により使用される前記重み係数のセットを示す情報も符号化するように構成される請求項12記載の画像符号化装置。
- 前記加重平均部は、前記重み係数のセットを符号化済みの隣接ブロックにおける画素の相関関係及び分散の少なくとも一つを含むアクティビティ情報に応じて選択するように構成される請求項12記載の画像符号化装置。
- 前記設定部は、前記信頼度をシーケンス、ピクチャ、スライス、マクロブロック及びサブブロックの少なくとも一つの単位毎に複数セット用意し、
前記加重平均部は、前記信頼度のセットを選択的に使用するように構成される請求項6または7のいずれか1項記載の画像符号化装置。 - 前記符号化部は、前記符号化データを生成するために、前記加重平均部により使用される前記信頼度のセットを示す情報も符号化するように構成される請求項15記載の画像符号化装置。
- 前記加重平均部は、前記信頼度のセットを符号化済みの隣接ブロックにおける画素の相関関係及び分散の少なくとも一つを含むアクティビティ情報に応じて選択するように構成される請求項15記載の画像符号化装置。
- 画像信号のフレームを分割した複数の画素ブロックの各々に対応する予測残差信号を生成するために、前記予測残差信号を含む符号化データを復号すること;
前記画素ブロックに対応する複数の第1予測信号を生成するために、予測方向の異なる複数の予測モードに従って復号済み画素を参照画素に用いて前記画素ブロックを予測すること;
前記複数の予測モードの予測方向と、前記画素ブロック中の予測画素と前記参照画素との間の空間的距離とに応じて重み係数を設定すること;
前記画素ブロックに対応する一つの第2予測信号を生成するために、前記複数の第1予測信号を前記重み係数に従って加重平均すること;及び
前記予測残差信号と、少なくとも前記第2予測信号を用いて復号画像信号を生成すること;を具備する画像復号化方法。 - 画像信号のフレームを分割した複数の画素ブロックの各々に対応する予測残差信号を生成するために、前記予測残差信号を含む符号化データを復号するように構成される復号部;
前記画素ブロックに対応する複数の第1予測信号を生成するために、予測方向の異なる複数の予測モードに従って、復号済み画素を参照画素に用いて前記画素ブロックを予測するように構成される複数方向予測部;
前記複数の予測モードの予測方向と、前記画素ブロック中の予測画素と前記参照画素との間の空間的距離とに応じて重み係数を設定するように構成される設定部;
前記画素ブロックに対応する一つの第2予測信号を生成するために、前記複数の第1予測信号を前記重み係数に従って加重平均するように構成される加重平均部;及び
前記予測残差信号と、少なくとも第2予測信号を用いて復号画像信号を生成するように構成される生成部;を具備する画像復号化装置。 - 前記複数の予測モードの少なくとも一つは、フレーム内予測モードである請求項19記載の画像復号化装置;
- 前記画素ブロックの各々に対応する一つの第3予測信号を生成するために、単一の予測モードに従って、復号化済み画素を参照画素に用いて前記画素ブロックを予測するように構成される単方向予測部;及び
前記第2予測信号及び第3予測信号のいずれかを選択する選択部;をさらに具備し、
前記復号部は、前記第2予測信号が選択された場合は前記予測残差信号と前記第2予測信号を用いて前記復号画像信号を生成し、前記第3予測信号が選択された場合は前記予測残差信号と前記第3予測信号を用いて前記復号画像信号を生成するように構成される請求項19記載の画像復号化装置。 - 前記選択部は、複数種類の予測モード数から選択された予測モード数に従って前記第2予測信号及び第3予測信号のいずれかを選択するように構成され、
前記復号部は、前記選択された予測モード数を示す情報も生成するために、前記符号化データを復号するように構成される請求項21記載の画像復号化装置。 - 前記設定部は、前記重み係数を前記予測方向及び前記空間的距離に応じて算出することにより設定するように構成される請求項19記載の画像復号化装置。
- 前記設定部は、前記重み係数を前記複数の予測モード毎の前記空間的距離に基づく信頼度の和を分母とし、該信頼度を分子として算出することにより設定するように構成される請求項19記載の画像復号化装置。
- 前記信頼度は、前記空間的距離に応じて単調減少するように構成される請求項24記載の画像復号化装置。
- 前記信頼度は、前記予測方向及び前記空間的距離に応じて(a)等方相関モデル・楕円相関モデルを含む自己相関関数モデル、(b)比例・逆比例モデル、(c)N次関数(N≧1)モデル、(d)一般化ガウス分布モデル、及び(e)予測モードの数に応じた重み係数を記述したテーブルの少なくとも一つに従うように構成される請求項24項記載の画像復号化装置。
- 前記設定部は、前記重み係数をシーケンス、ピクチャ、スライス、マクロブロック及びサブブロックの少なくとも一つの単位毎に複数セット用意し、
前記加重平均部は、前記重み係数のセットを前記加重平均部により選択的に使用するように構成される請求項19記載の画像復号化装置。 - 前記符号化データは、さらに前記復号画像信号を生成するために前記加重平均部により使用される前記重み係数のセットを示す情報を含み、
前記復号部は、さらに前記重み係数のセットを示す情報も生成するために、前記符号化データを復号するように構成される請求項27記載の画像復号化装置。 - 前記加重平均部は、重み係数のセットを復号化済みの隣接ブロックにおける画素の相関関係及び分散の少なくとも一つを含むアクティビティ情報に応じて選択するように構成される請求項27記載の画像復号化装置。
- 入力画像信号のフレームを分割した複数の画素ブロックの各々に対応する予測信号を生成するために、複数の予測モードに従って前記画素ブロックを予測すること;
前記画素ブロックの画像信号と前記予測信号との差を表す予測残差信号を符号化すること;及び
前記複数の予測モードを表すモードインデックスを値の大きい順に符号化すること;を具備する画像符号化方法。 - 入力画像信号のフレームを分割した複数の画素ブロック毎に、該画素ブロックに対応する予測信号を生成するために、複数の予測モードに従って前記画素ブロックを予測する予測部;
前記画素ブロックの画像信号と前記予測信号との差を表す予測残差信号を符号化し、及び前記複数の予測モードを表すモードインデックスを値の大きい順に符号化する符号化部;を具備する画像符号化装置。 - 前記符号化部は、前記モードインデックスを符号化する際に、既に符号化された第1モードインデックスを有する第1予測モードから次に符号化すべき第2モードインデックスを有する第2予測モードを予測し、前記第2モードインデックスが取り得る値の最大値を予測し、該最大値を表現するのに最低限必要な符号長で前記第2モードインデックスを符号化するように構成される請求項31記載の画像符号化装置。
- 入力画像信号のフレームを分割した複数の画素ブロックの各々をさらに分割した複数のサブブロックに対する予測順を定められた複数の予測順の中から選択すること;
前記複数の予測順に対応して予め定められた、予測方向の異なる複数の予測モードをそれぞれ含む複数の予測モードセットの中から、選択された予測順に従って、第1予測モード及び第2予測モードを含む一つの予測モードセットを選択すること;
前記画素ブロックに対応する複数の予測信号を生成するために、前記第1予測モードに従って前記画素ブロックを前記サブブロック単位で予測すること;
参照予測モードを生成するために、前記第2予測モードに従って予測された符号化済み画素ブロックに対応する前記第2予測モードを利用して前記第1予測モードを予測すること;
前記第1予測信号を前記複数の予測モードの予測方向と、前記画素ブロック中の予測画素と参照画素との間の空間的距離とに応じて重み係数を設定すること;
前記画素ブロックに対応する一つの第2予測信号を生成するために、前記第1予測信号を前記重み係数に従って加重平均すること;及び
前記画素ブロックの画像信号と前記第2予測信号との差を表す予測残差信号と、選択された予測順を示す情報、及び前参照予測モードに基づいて生成される、前記第1予測モードを表すモード情報を符号化すること;を具備する画像符号化方法。 - 入力画像信号のフレームを分割した複数の符号化対象画素ブロックの各々をさらに分割した複数のサブブロックに対する予測順を定められた複数の予測順の中から選択するように構成される第1の選択部;
前記複数の予測順に対応して予め定められた、予測方向の異なる複数の予測モードをそれぞれ含む複数の予測モードセットの中から、選択された予測順に従って、第1予測モード及び第2予測モードを含む一つの予測モードセットを選択するように構成される第2の選択部;
前記符号化対象画素ブロックに対応する複数の予測信号を生成するために、前記第1予測モードに従って前記符号化対象画素ブロックを前記サブブロック単位で予測するように構成される第1の予測部;
参照予測モードを生成するために、前記第2予測モードに従って予測される符号化済み画素ブロックに対応する前記第2予測モードを利用して前記第1予測モードを予測するように構成される第2の予測部;
前記第1予測信号を前記複数の予測モードの予測方向と、前記符号化対象画素ブロック中の予測画素と前記参照画素との間の空間的距離とに応じて重み係数を設定するように構成される設定部;
前記符号化対象画素ブロックに対応する一つの第2予測信号を生成するために、前記重み係数に従って加重平均するように構成される加重平均部;及び
前記符号化対象画素ブロックの画像信号と前記第2予測信号との差を表す予測残差信号と、選択された予測順を示す情報、及び前参照予測モードに基づいて生成される、前記第1予測モードを表すモード情報を符号化するように構成される符号化部;を具備する画像符号化装置。 - 前記モード情報は前記第1予測モードと前記参照予測モードが同一か否かを示すフラグを含み、さらに前記第1予測モードと前記参照予測モードが異なる場合には前記第1予測モードと前記参照予測モードとの差を含む請求項第34記載の画像符号化装置。
- 前記符号化済み画素ブロックは、前記符号化対象画素ブロックと最も距離が近い左及び上の画素ブロックである請求項34記載の画像符号化装置。
- 前記第2の予測部は、前記参照画素ブロックと前記符号化対象画素ブロックで前記予測順が異なる場合には、予め決められた定数を前記参照予測モードとして生成するように構成される請求項34記載の画像符号化装置。
- 前記第1の選択部は、矩形状の前記符号化対象画素ブロックを分割した4つのサブブロックの順番の組合せである24通りの予測順の中から、前記4つのサブブロックに対する予測順を選択するように構成される請求項34記載の画像符号化装置。
- 前記予測順選択部は、矩形状の前記符号化対象画素ブロックを分割した4つのサブブロックに対する予測順を(a)右下画素ブロック→右上画素ブロック→左下画素ブロック→左上画素ブロックの予測順、(b)右下画素ブロック→左下画素ブロック→右上画素ブロック→左上画素ブロックの予測順、及び(c)左上画素ブロック→右上画素ブロック→左下画素ブロック→右下画素ブロックの予測順の中から選択するように構成される請求項34記載の画像符号化装置。
- 画像信号のフレームを分割した複数の画素ブロック毎に、予測残差信号、選択された予測順を示す情報、及び第1予測モードを表すモード情報を生成するために符号化データを復号すること;
復号対象画素ブロックを分割した複数のサブブロックに対する予測順を定められた複数の予測順の中から選択すること;
前記複数の予測順に対応して予め定められた、予測方向の異なる複数の予測モードをそれぞれ含む複数の予測モードセットの中から、選択された予測順に従って、第1予測モード及び第2予測モードを含む一つの予測モードセットを選択すること;
前記復号対象画素ブロックに対応する複数の予測信号を生成するために、復号されたモード情報によって示される第1予測モードに従って前記復号対象画素ブロックを前記サブブロック単位で予測すること;
前記第1予測信号を前記複数の予測モードの予測方向と、前記復号対象画素ブロック中の予測画素と参照画素との間の空間的距離とに応じて重み係数を設定すること;
前記復号対象画素ブロックに対応する一つの第2予測信号を生成するために、前記複数の第2予測信号を前記重み係数に従って加重平均すること;及び
前記第2予測信号及び前記予測残差信号を用いて復号画像信号を生成すること;を具備する画像復号化方法。 - 画像信号のフレームを分割した複数の画素ブロック毎に、予測残差信号、選択された予測順を示す情報、及び第1予測モードを表すモード情報を生成するために前記符号化データを復号するように構成される復号部;
復号対象画素ブロックを分割した複数のサブブロックに対する予測順を定められた複数の予測順の中から選択するように構成される第1の選択部;
前記複数の予測順に対応して予め定められた、予測方向の異なる複数の予測モードをそれぞれ含む複数の予測モードセットの中から、選択された予測順に従って、第1予測モード及び第2予測モードを含む一つの予測モードセットを選択するように構成される第2の選択部;
前記復号対象画素ブロックに対応する複数の予測信号を生成するために、復号されたモード情報によって示される第1予測モードに従って前記復号対象画素ブロックを前記サブブロック単位で予測するように構成される予測部;
前記第1予測信号を前記複数の予測モードの予測方向と、前記復号対象画素ブロック中の予測画素と参照画素との間の空間的距離とに応じて重み係数を設定するように構成される設定部;
前記復号対象画素ブロックに対応する一つの第2予測信号を生成するために、前記複数の第1予測信号を前記重み係数に従って加重平均するように構成される加重平均部;及び
前記第2予測信号及び前記予測残差信号を用いて復号画像信号を生成するように構成される生成部;
を具備する画像復号化装置。 - 前記モード情報は、前記第1予測モードと前記参照予測モードが同一か否かを示すフラグを含みし、さらに前記第1予測モードと前記参照予測モードが異なる場合には前記第1予測モードと前記参照予測モードとの差を含む請求項41記載の画像復号化装置。
- 前記復号化済み画素ブロックは、前記復号対象画素ブロックと最も距離が近い左及び上の画素ブロックである請求項41記載の画像復号化装置。
- 前記第1の選択部は、矩形状の前記復号対象画素ブロックを分割した4つのサブブロックの順番の組合せである24通りの予測順の中から、前記4つのサブブロックに対する予測順を選択するように構成される請求項41記載の画像復号化装置。
- 前記第1の選択部は、矩形状の前記符号化対象画素ブロックを分割した4つのサブブロックに対する予測順を(a)右下画素ブロック→右上画素ブロック→左下画素ブロック→左上画素ブロックの予測順、(b)右下画素ブロック→左下画素ブロック→右上画素ブロック→左上画素ブロックの予測順、及び(c)左上画素ブロック→右上画素ブロック→左下画素ブロック→右下画素ブロックの予測順の中から選択する請求項41記載の画像復号化装置。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007001835 | 2007-01-09 | ||
JP2007001835 | 2007-01-09 | ||
JP2007107499 | 2007-04-16 | ||
JP2007107499 | 2007-04-16 | ||
JP2007265957 | 2007-10-11 | ||
JP2007265957 | 2007-10-11 | ||
PCT/JP2008/050158 WO2008084817A1 (ja) | 2007-01-09 | 2008-01-09 | 画像符号化と復号化の方法及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2008084817A1 true JPWO2008084817A1 (ja) | 2010-05-06 |
Family
ID=39608705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008553107A Abandoned JPWO2008084817A1 (ja) | 2007-01-09 | 2008-01-09 | 画像符号化と復号化の方法及び装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20100118943A1 (ja) |
EP (1) | EP2136564A1 (ja) |
JP (1) | JPWO2008084817A1 (ja) |
WO (1) | WO2008084817A1 (ja) |
Families Citing this family (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9330060B1 (en) | 2003-04-15 | 2016-05-03 | Nvidia Corporation | Method and device for encoding and decoding video image data |
US8238428B2 (en) | 2007-04-17 | 2012-08-07 | Qualcomm Incorporated | Pixel-by-pixel weighting for intra-frame coding |
WO2009004985A1 (ja) | 2007-06-29 | 2009-01-08 | Sharp Kabushiki Kaisha | 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、プログラム、および記録媒体 |
US8873625B2 (en) * | 2007-07-18 | 2014-10-28 | Nvidia Corporation | Enhanced compression in representing non-frame-edge blocks of image frames |
KR20090095317A (ko) * | 2008-03-05 | 2009-09-09 | 삼성전자주식회사 | 영상 부호화 및 복호화 방법 및 장치 |
WO2010043806A2 (fr) * | 2008-10-14 | 2010-04-22 | France Telecom | Codage et decodage avec elimination d'un ou plusieurs predicteurs predetermines |
JP5238523B2 (ja) * | 2009-01-13 | 2013-07-17 | 株式会社日立国際電気 | 動画像符号化装置、動画像復号化装置、および、動画像復号化方法 |
JP4748245B2 (ja) * | 2009-04-10 | 2011-08-17 | 株式会社デンソー | 回転機の制御装置 |
CN108810532B (zh) * | 2010-02-24 | 2022-08-19 | 威勒斯媒体国际有限公司 | 图像解码装置 |
US9507827B1 (en) * | 2010-03-25 | 2016-11-29 | Excalibur Ip, Llc | Encoding and accessing position data |
US8588303B2 (en) * | 2010-03-31 | 2013-11-19 | Futurewei Technologies, Inc. | Multiple predictor sets for intra-frame coding |
US20110249735A1 (en) * | 2010-04-09 | 2011-10-13 | Jie Zhao | Methods and Systems for Intra Prediction |
US20110249733A1 (en) * | 2010-04-09 | 2011-10-13 | Jie Zhao | Methods and Systems for Intra Prediction |
US20110249734A1 (en) * | 2010-04-09 | 2011-10-13 | Segall Christopher A | Methods and Systems for Intra Prediction |
US20110249741A1 (en) * | 2010-04-09 | 2011-10-13 | Jie Zhao | Methods and Systems for Intra Prediction |
US8619857B2 (en) | 2010-04-09 | 2013-12-31 | Sharp Laboratories Of America, Inc. | Methods and systems for intra prediction |
US8644375B2 (en) * | 2010-04-09 | 2014-02-04 | Sharp Laboratories Of America, Inc. | Methods and systems for intra prediction |
US20110317757A1 (en) * | 2010-06-25 | 2011-12-29 | Qualcomm Incorporated | Intra prediction mode signaling for finer spatial prediction directions |
EP4106331A1 (en) | 2010-07-15 | 2022-12-21 | Velos Media International Limited | Image intra-prediction mode estimation device, image encoding device, image decoding device, and encoded image data |
KR101530284B1 (ko) * | 2010-07-16 | 2015-06-19 | 삼성전자주식회사 | 영상의 인트라 예측 부호화, 복호화 방법 및 장치 |
US11284072B2 (en) | 2010-08-17 | 2022-03-22 | M&K Holdings Inc. | Apparatus for decoding an image |
US9716886B2 (en) * | 2010-08-17 | 2017-07-25 | M&K Holdings Inc. | Method for restoring an intra prediction mode |
KR20140071507A (ko) * | 2010-08-17 | 2014-06-11 | 엠앤케이홀딩스 주식회사 | 예측 블록 생성 장치 |
WO2012035640A1 (ja) * | 2010-09-16 | 2012-03-22 | 株式会社 東芝 | 動画像符号化方法及び動画像復号化方法 |
JP2012080370A (ja) * | 2010-10-01 | 2012-04-19 | Sony Corp | 画像処理装置及び画像処理方法 |
US8968080B1 (en) | 2010-11-05 | 2015-03-03 | Wms Gaming, Inc. | Display of third party content on a wagering game machine |
JP5625124B2 (ja) * | 2010-12-21 | 2014-11-12 | 株式会社Nttドコモ | 平面表現を用いる拡張されたイントラ予測符号化 |
JP5592779B2 (ja) * | 2010-12-22 | 2014-09-17 | 日本電信電話株式会社 | 画像符号化方法、画像復号方法、画像符号化装置、及び画像復号装置 |
WO2012090286A1 (ja) * | 2010-12-27 | 2012-07-05 | 株式会社 東芝 | 動画像符号化方法及び動画像復号化方法 |
KR101604959B1 (ko) * | 2011-01-12 | 2016-03-18 | 미쓰비시덴키 가부시키가이샤 | 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법 및 화상 복호 방법 |
GB2488334B (en) * | 2011-02-23 | 2015-07-22 | Canon Kk | Method of decoding a sequence of encoded digital images |
WO2012121575A2 (ko) * | 2011-03-10 | 2012-09-13 | 한국전자통신연구원 | 인트라 예측 방법 및 그 장치 |
US20130336398A1 (en) * | 2011-03-10 | 2013-12-19 | Electronics And Telecommunications Research Institute | Method and device for intra-prediction |
JP2012253722A (ja) * | 2011-06-07 | 2012-12-20 | Sony Corp | 画像符号化装置と画像復号装置およびその方法とプログラム |
HUE035495T2 (en) | 2011-06-28 | 2018-05-02 | Samsung Electronics Co Ltd | A method and apparatus for video coding and a method and apparatus for decoding video, associated with intra prediction |
CN103650496B (zh) * | 2011-07-12 | 2018-09-21 | 华为技术有限公司 | 用于在hevc中编码的基于像素的帧内预测 |
SI3217667T1 (sl) * | 2011-10-17 | 2020-12-31 | Kabushiki Kaisha Toshiba | Kodirni postopek in dekodirni postopek |
EP2777258B1 (en) | 2011-11-04 | 2017-01-11 | Huawei Technologies Co., Ltd. | Binarization of prediction residuals for lossless video coding |
US9781447B1 (en) | 2012-06-21 | 2017-10-03 | Google Inc. | Correlation based inter-plane prediction encoding and decoding |
JP5885604B2 (ja) * | 2012-07-06 | 2016-03-15 | 株式会社Nttドコモ | 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法及び動画像予測復号プログラム |
US9167268B1 (en) | 2012-08-09 | 2015-10-20 | Google Inc. | Second-order orthogonal spatial intra prediction |
US9344742B2 (en) | 2012-08-10 | 2016-05-17 | Google Inc. | Transform-domain intra prediction |
US9380298B1 (en) * | 2012-08-10 | 2016-06-28 | Google Inc. | Object-based intra-prediction |
US9906786B2 (en) | 2012-09-07 | 2018-02-27 | Qualcomm Incorporated | Weighted prediction mode for scalable video coding |
WO2014050971A1 (ja) * | 2012-09-28 | 2014-04-03 | 日本電信電話株式会社 | イントラ予測符号化方法、イントラ予測復号方法、イントラ予測符号化装置、イントラ予測復号装置、それらのプログラム並びにプログラムを記録した記録媒体 |
US9774869B2 (en) * | 2013-03-25 | 2017-09-26 | Blackberry Limited | Resilient signal encoding |
JP2015015595A (ja) * | 2013-07-04 | 2015-01-22 | 富士通株式会社 | 動画像符号化装置、符号化モード判定方法及び符号化プログラム |
GB2516425B (en) * | 2013-07-17 | 2015-12-30 | Gurulogic Microsystems Oy | Encoder and decoder, and method of operation |
CN104853196B (zh) * | 2014-02-18 | 2018-10-19 | 华为技术有限公司 | 编解码方法和装置 |
US9438923B2 (en) * | 2014-06-05 | 2016-09-06 | Blackberry Limited | Apparatus and method to support encoding and decoding video data |
US10306229B2 (en) | 2015-01-26 | 2019-05-28 | Qualcomm Incorporated | Enhanced multiple transforms for prediction residual |
CN107925771B (zh) * | 2015-05-29 | 2022-01-11 | 深圳市大疆创新科技有限公司 | 视频处理的方法、系统、存储介质和成像装置 |
WO2017073362A1 (ja) * | 2015-10-30 | 2017-05-04 | ソニー株式会社 | 画像処理装置および方法 |
WO2017073360A1 (ja) * | 2015-10-30 | 2017-05-04 | ソニー株式会社 | 画像処理装置および方法 |
WO2017086738A1 (ko) * | 2015-11-19 | 2017-05-26 | 한국전자통신연구원 | 영상 부호화/복호화 방법 및 장치 |
KR20170058838A (ko) * | 2015-11-19 | 2017-05-29 | 한국전자통신연구원 | 화면간 예측 향상을 위한 부호화/복호화 방법 및 장치 |
US11032550B2 (en) * | 2016-02-25 | 2021-06-08 | Mediatek Inc. | Method and apparatus of video coding |
KR20170102806A (ko) * | 2016-03-02 | 2017-09-12 | 한국전자통신연구원 | 비디오 신호 부호화/복호화 방법 및 이를 위한 장치 |
CN116506602A (zh) | 2016-03-11 | 2023-07-28 | 数字洞察力有限公司 | 视频编码方法以及装置 |
US10623774B2 (en) | 2016-03-22 | 2020-04-14 | Qualcomm Incorporated | Constrained block-level optimization and signaling for video coding tools |
KR102228474B1 (ko) | 2016-10-14 | 2021-03-16 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 비디오 코딩을 위한 디바이스들 및 방법들 |
CN110024402B (zh) * | 2016-11-29 | 2023-08-22 | 韩国电子通信研究院 | 图像编码/解码方法和装置以及存储有比特流的记录介质 |
FI20175006A1 (en) * | 2017-01-03 | 2019-02-15 | Nokia Technologies Oy | Video and image coding using wide-angle intra-prediction |
US20190020888A1 (en) * | 2017-07-11 | 2019-01-17 | Google Llc | Compound intra prediction for video coding |
JP7194539B2 (ja) * | 2017-09-14 | 2022-12-22 | 日本放送協会 | 符号化装置、復号装置及びプログラム |
CN111345042A (zh) * | 2017-10-09 | 2020-06-26 | 艾锐势有限责任公司 | 自适应不等权重平面预测 |
CN110337811A (zh) * | 2018-02-14 | 2019-10-15 | 北京大学 | 运动补偿的方法、装置和计算机系统 |
WO2019229683A1 (en) | 2018-05-31 | 2019-12-05 | Beijing Bytedance Network Technology Co., Ltd. | Concept of interweaved prediction |
TWI850252B (zh) * | 2018-09-03 | 2024-08-01 | 大陸商北京字節跳動網絡技術有限公司 | 部分交織的預測 |
CN110876063B (zh) * | 2018-09-03 | 2023-01-31 | 北京字节跳动网络技术有限公司 | 交织预测的快速编码方法 |
US11323748B2 (en) | 2018-12-19 | 2022-05-03 | Qualcomm Incorporated | Tree-based transform unit (TU) partition for video coding |
WO2020140951A1 (en) | 2019-01-02 | 2020-07-09 | Beijing Bytedance Network Technology Co., Ltd. | Motion vector derivation between color components |
CN113892268A (zh) * | 2019-03-20 | 2022-01-04 | 现代自动车株式会社 | 基于预测模式估计的帧内预测装置和方法 |
CN116506628B (zh) * | 2023-06-27 | 2023-10-24 | 苇创微电子(上海)有限公司 | 一种基于像素块的编码预测器方法、编码系统及编码装置 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US35158A (en) * | 1862-05-06 | Improvement in coal-oil lamps | ||
US5442462A (en) * | 1992-06-10 | 1995-08-15 | D.V.P. Technologies Ltd. | Apparatus and method for smoothing images |
JP2970417B2 (ja) * | 1994-08-22 | 1999-11-02 | 日本電気株式会社 | 動画像符号化方式 |
ES2190935T3 (es) * | 1996-05-28 | 2003-09-01 | Matsushita Electric Ind Co Ltd | Procedimiento y dispositivo de anticipacion y de codificado/descodificado de imagen. |
KR100440522B1 (ko) * | 1996-08-29 | 2004-10-15 | 마츠시타 덴끼 산교 가부시키가이샤 | 화상메모리특유의하드웨어스펙에기인하는각종지연요인을저장방식및판독방식의개선에의해극복한화상복호장치및화상메모리 |
JP2002315004A (ja) * | 2001-04-09 | 2002-10-25 | Ntt Docomo Inc | 画像符号化方法及び装置、画像復号方法及び装置、並びに画像処理システム |
US6980596B2 (en) * | 2001-11-27 | 2005-12-27 | General Instrument Corporation | Macroblock level adaptive frame/field coding for digital video content |
EP1827027A1 (en) * | 2002-01-18 | 2007-08-29 | Kabushiki Kaisha Toshiba | Video encoding method and apparatus and video decoding method and apparatus |
US7170937B2 (en) * | 2002-05-01 | 2007-01-30 | Texas Instruments Incorporated | Complexity-scalable intra-frame prediction technique |
US7813429B2 (en) * | 2002-08-13 | 2010-10-12 | Lsi Corporation | System and method for segmentation of macroblocks |
JP4290972B2 (ja) * | 2002-12-18 | 2009-07-08 | 日本電信電話株式会社 | 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,画像符号化プログラム,画像復号プログラム,画像符号化プログラムを記録した記録媒体および画像復号プログラムを記録した記録媒体 |
HUP0301368A3 (en) * | 2003-05-20 | 2005-09-28 | Amt Advanced Multimedia Techno | Method and equipment for compressing motion picture data |
EP1658728A1 (en) * | 2003-08-26 | 2006-05-24 | Thomson Licensing | Method and apparatus for decoding hybrid intra-inter coded blocks |
JP4470431B2 (ja) * | 2003-10-01 | 2010-06-02 | ソニー株式会社 | データ処理装置およびその方法 |
KR100597402B1 (ko) * | 2003-12-01 | 2006-07-06 | 삼성전자주식회사 | 스케일러블 비디오 코딩 및 디코딩 방법, 이를 위한 장치 |
US7881386B2 (en) * | 2004-03-11 | 2011-02-01 | Qualcomm Incorporated | Methods and apparatus for performing fast mode decisions in video codecs |
JP2005348093A (ja) * | 2004-06-03 | 2005-12-15 | Sony Corp | 画像処理装置、そのプログラムおよびその方法 |
KR100679025B1 (ko) * | 2004-11-12 | 2007-02-05 | 삼성전자주식회사 | 다 계층 기반의 인트라 예측 방법, 및 그 방법을 이용한비디오 코딩 방법 및 장치 |
KR101037855B1 (ko) * | 2005-07-22 | 2011-05-31 | 미쓰비시덴키 가부시키가이샤 | 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법 및 화상 복호 방법 |
JP2007116351A (ja) * | 2005-10-19 | 2007-05-10 | Ntt Docomo Inc | 画像予測符号化装置、画像予測復号装置、画像予測符号化方法、画像予測復号方法、画像予測符号化プログラム、及び画像予測復号プログラム |
US7843995B2 (en) * | 2005-12-19 | 2010-11-30 | Seiko Epson Corporation | Temporal and spatial analysis of a video macroblock |
US20080126278A1 (en) * | 2006-11-29 | 2008-05-29 | Alexander Bronstein | Parallel processing motion estimation for H.264 video codec |
-
2008
- 2008-01-09 EP EP08703029A patent/EP2136564A1/en not_active Withdrawn
- 2008-01-09 WO PCT/JP2008/050158 patent/WO2008084817A1/ja active Application Filing
- 2008-01-09 JP JP2008553107A patent/JPWO2008084817A1/ja not_active Abandoned
- 2008-01-09 US US12/522,614 patent/US20100118943A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP2136564A1 (en) | 2009-12-23 |
WO2008084817A1 (ja) | 2008-07-17 |
US20100118943A1 (en) | 2010-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPWO2008084817A1 (ja) | 画像符号化と復号化の方法及び装置 | |
KR101011303B1 (ko) | 화상 부호화 및 복호화 방법 및 장치 | |
RU2408161C1 (ru) | Способ кодирования изображения/декодирования изображения, устройство кодирования изображения/декодирования изображения | |
KR100995226B1 (ko) | 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법, 화상 부호화 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체, 화상 복호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
TWI639333B (zh) | Decoding method and decoding device | |
CN104054343B (zh) | 图像解码装置、图像编码装置 | |
WO2012087034A2 (ko) | 화면 내 예측 방법 및 이러한 방법을 사용하는 장치 | |
CN112369022A (zh) | 图像编码/解码方法和装置以及存储比特流的记录介质 | |
JP2019515570A (ja) | 画面内予測を利用した映像符号化/復号化方法および装置 | |
JP2010135864A (ja) | 画像符号化方法及び装置並びに画像復号化方法及び装置 | |
CN110089113A (zh) | 图像编码/解码方法、设备以及用于存储比特流的记录介质 | |
JPWO2008120577A1 (ja) | 画像符号化及び復号化の方法及び装置 | |
WO2013051794A1 (ko) | 두 개의 후보 인트라 예측 모드를 이용한 화면 내 예측 모드의 부/복호화 방법 및 이러한 방법을 사용하는 장치 | |
WO2012035640A1 (ja) | 動画像符号化方法及び動画像復号化方法 | |
CN110366850A (zh) | 基于帧内预测模式处理图像的方法和用于该方法的设备 | |
CN117041592A (zh) | 图像信号编码/解码方法及其设备 | |
WO2012042654A1 (ja) | 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置、画像復号プログラム、及び画像符号化プログラム | |
RU2427976C2 (ru) | Способ и устройство для кодирования и декодирования изображения | |
JP2008092456A (ja) | 画像符号化装置および画像復号装置 | |
WO2012090286A1 (ja) | 動画像符号化方法及び動画像復号化方法 | |
KR102038818B1 (ko) | 화면 내 예측 방법 및 이러한 방법을 사용하는 장치 | |
MX2009000832A (es) | Metodo y aparato de codificacion y decodificacion de imagenes. | |
TW202439821A (zh) | 編碼方法及記憶裝置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101105 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101105 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20120220 |