(57)【特許請求の範囲】
【請求項１】
符号化された画像データのビットレートに基づいて、その符号化における参照リストに含まれる参照ピクチャの枚数を１枚に決定する参照画数決定手段と、
前記参照画数決定手段により前記参照リストに含まれる参照ピクチャの枚数が１枚に決定された場合、画像データの中から１枚の画像データを前記参照ピクチャとして決定する参照ピクチャ決定手段と
を備える符号化装置。
【請求項２】
前記参照画数決定手段は、前記ビットレートが閾値以上である場合、前記参照リストに含まれる参照ピクチャの枚数を１枚に決定する
請求項１に記載の符号化装置。
【請求項３】
前記参照画数決定手段は、前記符号化された画像データのビットレートと、前記符号化された画像データのファイルサイズの閾値とに基づいて、前記参照リストに含まれる参照ピクチャの枚数を１枚に決定する
請求項１に記載の符号化装置。
【請求項４】
前記参照画数決定手段は、前記符号化された画像データの各時刻のビットレートが、前記ファイルサイズの閾値に対応する各時刻のビットレートに基づく閾値以上である場合、前記参照リストに含まれる参照ピクチャの枚数を１枚に決定する
請求項３に記載の符号化装置。
【請求項５】
前記参照画数決定手段は、前記符号化された画像データの各時刻のビットレートと、前記ファイルサイズの閾値に対応する各時刻のビットレートとに基づいて、各時刻において、前記符号化された画像データのファイルサイズが、前記ファイルサイズの閾値を超過する量であるファイル超過量を予測し、前記ファイル超過量が閾値以上である場合、前記参照リストに含まれる参照ピクチャの枚数を１枚に決定する
請求項３に記載の符号化装置。
【請求項６】
前記参照ピクチャ決定手段は、符号化対象のピクチャの動き量、ＭＥ残差、およびＭＶ長の少なくとも１つが所定の閾値以上である場合、前記符号化対象のピクチャとフィールドの種類が同一のピクチャに比べて前記符号化対象のピクチャとの時間距離が短いピクチャを、前記参照ピクチャとする
請求項１に記載の符号化装置。
【請求項７】
前記参照ピクチャ決定手段は、符号化対象のピクチャの動き量、ＭＥ残差、およびＭＶ長の少なくとも１つが所定の閾値より小さい場合、前記符号化対象のピクチャとフィールドの種類が同一のピクチャを、前記参照ピクチャとする
請求項１に記載の符号化装置。
【請求項８】
前記参照ピクチャ決定手段は、符号化対象のピクチャの動き量、ＭＥ残差、およびＭＶ長の少なくとも１つが所定の閾値より小さく、かつ、前記符号化対象のピクチャのボケ量が所定の閾値以上である場合、前記符号化対象のピクチャとフィールドの種類が同一のピクチャに比べて前記符号化対象のピクチャとの時間距離が短いピクチャを、前記参照ピクチャとする
請求項１に記載の符号化装置。
【請求項９】
前記参照ピクチャ決定手段は、符号化対象のピクチャの動き量、ＭＥ残差、およびＭＶ長の少なくとも１つが所定の閾値より小さく、かつ、前記符号化対象のピクチャのボケ量が所定の閾値より小さい場合、前記符号化対象のピクチャとフィールドの種類が同一のピクチャを、前記参照ピクチャとする
請求項１に記載の符号化装置。
【請求項１０】
前記符号化の方式は、AVC（Advanced Video Coding）方式であり、
前記参照画数決定手段は、前記ビットレートに基づいて、前記符号化された画像データのスライスヘッダ内のnum_ref_idx_l0_active_minus1を０に設定する
請求項１に記載の符号化装置。
【請求項１１】
前記参照画数決定手段は、前記ビットレートに基づいて、前記符号化された画像データのスライスヘッダ内のnum_ref_idx_l1_active_minus1を０に設定する
請求項１０に記載の符号化装置。
【請求項１２】
符号化装置が、
符号化された画像データのビットレートに基づいて、その符号化における参照リストに含まれる参照ピクチャの枚数を１枚に決定する参照画数決定ステップと、
前記参照画数決定ステップの処理により前記参照リストに含まれる参照ピクチャの枚数が１枚に決定された場合、画像データの中から１枚の画像データを前記参照ピクチャとして決定する参照ピクチャ決定ステップと
を含む符号化方法。
【請求項１３】
コンピュータを、
符号化された画像データのビットレートに基づいて、その符号化における参照リストに含まれる参照ピクチャの枚数を１枚に決定する参照画数決定手段と、
前記参照画数決定手段により前記参照リストに含まれる参照ピクチャの枚数が１枚に決定された場合、画像データの中から１枚の画像データを前記参照ピクチャとして決定する参照ピクチャ決定手段と
して機能させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、符号化方法、プログラム、および記録媒体に関し、特に、マクロブロック単位でオーバーヘッドを削減することができるようにした符号化装置、符号化方法、プログラム、および記録媒体に関する。
【背景技術】
【０００２】
AVC（Advanced Video Coding）方式では、マルチリファレンスと呼ばれる、複数の参照画像を動き補償に利用する機構が導入されている。マルチリファレンスにより、マクロブロック単位で最適な参照画像を選択することができ、その結果、符号化効率を向上させることができる。
【０００３】
一方、AVC方式の符号化を行う装置としては、MPEG2（Moving Picture Experts Group phase 2）方式の放送用のビットストリームを、低ビットレートのAVC方式のビットストリームに変換して記録メディアに蓄積するセットトップボックス、Blu-ray(登録商標)レコーダなどがある。
【０００４】
このような装置において、HD（High Definition）画像を2Mbps程度の低ビットレートで高画質を保ったまま圧縮するためには、様々な工夫が必要になる。
【０００５】
そこで、マルチリファレンスを利用した符号化装置において、参照画像を動的に切り替えることにより符号化効率を向上させることが提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−６３０９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のAVC方式のインターレース符号化では、一般的に、カレントピクチャは、２フィールド以上の画像を参照画像として符号化される。従って、２フィールド以上の参照画像を指定するために、RefIdxと呼ばれるシンタックスを送信する必要があり、これにより、オーバーヘッドが大きくなる。RefIdxは、マクロブロック単位で送信されるため、RefIdxの送信は、特に低ビットレートの符号化において大きな負荷となる。
【０００８】
本発明は、このような状況に鑑みてなされたものであり、AVC方式で符号化を行う場合において、マクロブロック単位でオーバーヘッドを削減することができるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の一側面の符号化装置は、符号化された画像データのビットレートに基づいて、その符号化における参照リストに含まれる参照ピクチャの枚数を１枚に決定する参照画数決定手段と、前記参照画数決定手段により前記参照リストに含まれる参照ピクチャの枚数が１枚に決定された場合、画像データの中から１枚の画像データを前記参照ピクチャとして決定する参照ピクチャ決定手段とを備える符号化装置である。
【００１０】
本発明の一側面の符号化方法、プログラム、および記録媒体に記録されるプログラムは、本発明の一側面の符号化装置に対応する。
【００１１】
本発明の一側面においては、符号化された画像データのビットレートに基づいて、その符号化における参照リストに含まれる参照ピクチャの枚数が１枚に決定され、前記参照リストに含まれる参照ピクチャの枚数が１枚に決定された場合、画像データの中から１枚の画像データが前記参照ピクチャとして決定される。
【発明の効果】
【００１２】
本発明の一側面によれば、マクロブロック単位でオーバーヘッドを削減することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明を適用した符号化装置の一実施の形態の構成例を示すブロック図である。
【図２】参照画像のフィールド数の第１の決定方法を説明する図である。
【図３】参照画像のフィールド数の第２の決定方法を説明する図である。
【図４】デフォルトの参照画像を説明する図である。
【図５】デフォルトの参照画像を説明する図である。
【図６】デフォルトの参照画像を説明する図である。
【図７】デフォルトの参照画像を説明する図である。
【図８】参照画像の変更の判断例を説明する図である。
【図９】参照画像の変更の判断例を説明する図である。
【図１０】参照画像の変更の判断例を説明する図である。
【図１１】参照画像の変更の判断例を説明する図である。
【図１２】参照画像変更指示処理を説明するフローチャートである。
【図１３】参照画像変更処理を説明するフローチャートである。
【図１４】AVC規格のMacroblock prediction syntaxを示す図である。
【図１５】コンピュータの一実施の形態の構成例を示す図である。
【発明を実施するための形態】
【００１４】
＜一実施の形態＞
［符号化装置の一実施の形態の構成例］
図１は、本発明を適用した符号化装置の一実施の形態の構成例を示すブロック図である。
【００１５】
符号化装置１０のA／D変換部１１は、外部から入力されるアナログ信号であるフィールド単位の画像信号に対してA/D変換を行い、ディジタル信号である画像データを得る。そして、A/D変換部１１は、そのフィールド単位の画像データを画像並べ替えバッファ１２に供給する。
【００１６】
画像並べ替えバッファ１２は、A/D変換部１１からのフィールド単位の画像データを一時記憶し、必要に応じてピクチャとして読み出すことで、符号化装置１０の出力であるビットストリームのGOP(Group of Pictures)構造に応じて、ピクチャを符号化順に並べ替える並べ替えを行う。
【００１７】
画像並べ替えバッファ１２から読み出されたピクチャのうちの、イントラ符号が行われるイントラピクチャは、スライスヘッダ生成部１３に供給される。
【００１８】
スライスヘッダ生成部１３は、画像並べ替えバッファ１２から供給されるイントラピクチャに付加するスライスヘッダを生成し、そのイントラピクチャに付加して演算部１４に供給する。
【００１９】
演算部１４は、スライスヘッダ生成部１３から供給されるイントラピクチャの画素値から、必要に応じて、イントラ予測部２５から供給される予測画像の画素値を減算し、直交変換部１５に供給する。
【００２０】
直交変換部１５は、イントラピクチャ（の画素値、又は、予測画像の画素値が減算された減算値）に対して、離散コサイン変換や、カルーネン・レーベ変換等の直交変換を施し、その結果得られる変換係数を、量子化部１６に供給する。
【００２１】
量子化部１６は、直交変換部１５からの変換係数を量子化し、その結果得られる量子化値を、可逆符号化部１７に供給する。
【００２２】
可逆符号化部１７は、量子化部１６からの量子化値に対して、可変長符号化や、算術符号化等の可逆符号化を施し、その結果得られる符号化データを、蓄積バッファ１８に供給する。
【００２３】
蓄積バッファ１８は、可逆符号化部１７からの符号化データを一時記憶し、所定のレートでビットストリームとして伝送する。
【００２４】
参照画数決定部１９（参照画数決定手段）は、蓄積バッファ１８に一時記憶される符号化データのビットレートを監視しており、そのビットレート等に基づき、ノンイントラピクチャの参照画像のフィールド数を決定する。そして、参照画数決定部１９は、決定された参照画像のフィールド数をスライスヘッダ生成部１３に供給する。
【００２５】
なお、参照画像のフィールド数とは、１つの時間方向の参照画像のフィールド数である。従って、例えば、符号化対象がＢピクチャであり、参照画像のフィールド数が１である場合、参照画像は、符号化対象より前の１つのピクチャと、符号化対象より後の１つのピクチャの計２つのピクチャとなる。
【００２６】
レート制御部２０は、蓄積バッファ１８の符号化データの蓄積量を監視しており、その蓄積量に基づき、量子化部１６の量子化ステップ等の、量子化部１６の挙動を制御する。
【００２７】
量子化部１６で得られる量子化値は、可逆符号化部１７に供給される他、逆量子化部２１にも供給される。逆量子化部２１は、量子化部１６からの量子化値を、変換係数に逆量子化し、逆直交変換部２２に供給する。
【００２８】
逆直交変換部２２は、逆量子化部２１からの変換係数を逆直交変換し、演算部２３に供給する。
【００２９】
演算部２３は、逆直交変換部２２から供給されるデータに対して、必要に応じて、イントラ予測部２５から供給される予測画像の画素値を加算することで、イントラピクチャの復号画像を得て、フレームメモリ２４に供給する。
【００３０】
フレームメモリ２４は、演算部２３から供給される復号画像を一時記憶し、その復号画像を、必要に応じて、予測画像を生成するのに用いる参照画像として、イントラ予測部２５や動き予測／動き補償部２６に供給する。
【００３１】
イントラ予測部２５は、イントラピクチャの中で、演算部１４で処理の対象となっている部分（ブロック）の近傍の画素のうちの、既にフレームメモリ２４に記憶されている画素から予測画像を生成し、演算部１４および演算部２３に供給する。
【００３２】
イントラ符号化が行われるピクチャについて、上述したようにして、イントラ予測部２５から演算部１４に予測画像が供給される場合、演算部１４では、スライスヘッダ生成部１３から供給されるピクチャから、イントラ予測部２５から供給される予測画像が減算される。
【００３３】
また、演算部２３では、演算部１４で減算された予測画像が、逆直交変換部２２から供給されるデータに加算される。
【００３４】
一方、インター符号化が行われるノンイントラピクチャは、画像並べ替えバッファ１２から、スライスヘッダ生成部１３に供給される。
【００３５】
スライスヘッダ生成部１３（参照ピクチャ決定手段）は、参照画数決定部１９から供給される参照画像のフィールド数、ノンイントラピクチャの種類、および参照画制御部２７からの指示に基づいて、画像並べ替えバッファ１２から入力されるピクチャの中から、そのフィールド数のピクチャを参照画像として決定する。スライスヘッダ生成部１３は、決定された参照画像を指定する情報（以下、参照画像情報という）を含むスライスヘッダを生成し、ノンイントラピクチャに付加する。そして、スライスヘッダ生成部１３は、スライスヘッダが付加されたノンイントラピクチャを演算部１４と動き予測/動き補償部２６に供給する。
【００３６】
動き予測／動き補償部２６は、スライスヘッダ生成部１３から供給されるノンイントラピクチャに付加されたスライスヘッダに含まれる参照画像情報に基づいて、フレームメモリ２４から、ノンイントラピクチャの動き予測に際して参照される復号画像のピクチャを、参照画像として読み出す。さらに、動き予測／動き補償部２６は、フレームメモリ２４からの参照画像を用いて、スライスヘッダ生成部１３からのノンイントラピクチャについて、動きベクトル探索（ME（Motion Estimation））を行い、動きベクトル、ME残差、MV（Motion Vector）長等を検出する。
【００３７】
そして、動き予測／動き補償部２６は、動きベクトルにしたがい、参照画像に動き補償を施すことで、ノンイントラピクチャの予測画像を生成し、演算部１４および演算部２３に供給する。
【００３８】
また、動き予測/動き補償部２６は、ノンイントラピクチャのボケ量を検出する。なお、ボケ量としては、ノンイントラピクチャの画面全体の画素分散値（Variance）、ノンイントラピクチャに対してSobel filterやCanny filterを用いることにより抽出されたエッジ成分の量が用いられる。動き予測/動き補償部２６は、ノンイントラピクチャのME残差、MV長、およびボケ量を参照画制御部２７に供給する。
【００３９】
参照画制御部２７は、デフォルトの参照画像を用いて符号化された符号化対象のノンイントラピクチャの発生符号量および量子化値等に基づいて、以下の式（１）により、動き量を求める。具体的には、例えば、符号化対象のノンイントラピクチャがＰピクチャである場合、そのＰピクチャに対応するＩピクチャと、デフォルトの参照画像を用いて符号化された符号化対象のＰピクチャの発生符号量および量子化値に基づいて、以下の式（１）により、動き量を求める。なお、発生符号量は、可逆符号化部１７から供給され、量子化値は、量子化部１６から供給される。
【００４０】
Motion Intensity=Complex_P/Complex_I
Complex_I=I_bit×I_qscale
Complex_P=P_bit×P_qscale
・・・（１）
【００４１】
なお、式（１）において、Motion Intensityは、動き量を表し、I_bit,P_bitは、それぞれ、Ｉピクチャの発生符号量、Ｐピクチャの発生符号量を表す。また、I_qscale,P_qscaleは、それぞれ、Ｉピクチャの量子化値、Ｐピクチャの量子化値を表す。
【００４２】
式（１）によれば、符号化対象のＰピクチャの動きが大きい場合、Complex_Pが大きくなり、動き量Motion Intensityは大きくなる。一方、符号化対象のＰピクチャに動きが全くない場合、動き量Motion Intensityはゼロに近づく。
【００４３】
参照画制御部２７は、この動き量と、動き予測/動き補償部２６から供給されるME残差、MV長、およびボケ量とに基づいて、参照画像を変更するかどうかを判定する。参照画制御部２７は、参照画像を変更すると判定した場合、参照画像の変更をスライスヘッダ生成部１３に指示する。
【００４４】
演算部１４では、スライスヘッダ生成部１３から供給されるノンイントラピクチャから、イントラ予測部２５および動き予測/動き補償部２６から供給される予測画像が減算され、以下、イントラピクチャの場合と同様にして、符号化が行われる。
【００４５】
なお、イントラ予測部２５が予測画像を生成するモードであるイントラ予測モードは、イントラ予測部２５から可逆符号化部１７に供給される。また、動き予測／動き補償部２６で得られる動きベクトル、及び、動き予測／動き補償部２６が動き補償を行うモードである動き補償予測モードは、動き予測／動き補償部２６から可逆符号化部１７に供給される。
【００４６】
可逆符号化部１７では、イントラ予測モード、動きベクトル、動き補償予測モード、その他、各ピクチャのピクチャタイプ等の、復号に必要な情報が可逆符号化され、符号化データのヘッダに含められる。
【００４７】
［参照画像のフィールド数の決定方法の説明］
図２は、参照画数決定部１９における参照画像のフィールド数の第１の決定方法を説明する図である。なお、図２のグラフにおいて、横軸は時刻を表し、縦軸はビットレートを表している。
【００４８】
第１の決定方法では、図２に示すように、参照画数決定部１９は、外部から指定されるファイルサイズ（以下、指定ファイルサイズという）に対応するビットレート（以下、ターゲットビットレートという）に基づいて、最終的な実際の符号化データのファイルサイズが指定ファイルサイズを越えると推測される、各時刻のビットレートの最低値を、各時刻のビットレートの閾値として決定する。
【００４９】
そして、参照画数決定部１９は、蓄積バッファ１８を監視し、各時刻の符号化データのビットレートが閾値以上である場合、参照画像のフィールド数を１に設定する。一方、各時刻の符号化データのビットレートが閾値より小さい場合、参照画数決定部１９は、参照画像のフィールド数をデフォルト値のままにする。即ち、図２の例では、各時刻の符号化データのビットレートが閾値以上である区間Ａにおいて、参照画像のフィールド数は１に設定され、区間Ａ以外において、参照画像のフィールド数はデフォルト値に設定される。
【００５０】
図３は、参照画数決定部１９における参照画像のフィールド数の第２の決定方法を説明する図である。
【００５１】
なお、図３のグラフにおいて、横軸は時刻を表し、縦軸はファイル超過量を表している。ファイル超過量とは、最終的な実際の符号化データのファイルサイズが指定ファイルサイズを超過する量である。
【００５２】
第２の決定方法では、図３に示すように、参照画数決定部１９は、各時刻の符号化データのビットレートおよびターゲットビットレートに基づいて、各時刻におけるファイル超過量を予測する。参照画数決定部１９は、各時刻のファイル超過量が閾値（Threshold）以上である場合、参照画像のフィールド数を１に設定する。一方、各時刻のファイル超過量が閾値より小さい場合、参照画数決定部１９は、参照画像のフィールド数をデフォルト値のままにする。即ち、図３の例では、各時刻のファイル超過量が閾値以上である区間Ｂにおいて、参照画像のフィールド数は１に設定され、区間Ｂ以外において、参照画像のフィールド数はデフォルト値に設定される。
【００５３】
なお、ファイル超過量の閾値は、最終的な実際の符号化データのファイルサイズが指定ファイルサイズを超えると推測される、各時刻のファイル超過量の最低値である。
【００５４】
以上のような第１の決定方法および第２の決定方法によれば、最終的な実際の符号化データのファイルサイズが指定ファイルサイズを超えると推測される場合に、参照画像のフィールド数が１に設定される。ここで、後述するように、参照画像のフィールド数が１である場合、RefIdxと呼ばれるシンタックスを送信する必要がなくなるため、マクロブロック単位のオーバーヘッドが削減される。従って、第１の決定方法および第２の決定方法によれば、最終的な実際の符号化データのファイルサイズが指定ファイルサイズを超えると推測される場合に、マクロブロック単位のオーバーヘッドが削減され、その結果、最終的なファイル超過量が抑制される。
【００５５】
［デフォルトの参照画像の説明］
図４乃至図７は、デフォルトの参照画像を説明する図である。
【００５６】
なお、図４乃至図７の例において、ビットストリームのGOP構造は、Ｉ，Ｐ，Ｂ，Ｂ，Ｂ，Ｂ，Ｐ，Ｐピクチャの順に並ぶ構造となっている。
【００５７】
図４乃至図７に示すように、符号化対象のピクチャのデフォルトの参照画像は、そのピクチャと同一の種類のフィールドのピクチャである。
【００５８】
具体的には、例えば、図４に示すように、符号化対象のピクチャがGOPの先頭から７番目のトップフィールド（top field）のＰピクチャ４１である場合、デフォルトの参照画像は、トップフィールドのＩピクチャ４２である。
【００５９】
一方、図５に示すように、符号化対象のピクチャがGOPの先頭から８番目のボトムフィールド（bottom field）のＰピクチャ５１である場合、デフォルトの参照画像は、ボトムフィールドのＰピクチャ４３である。
【００６０】
また、図６に示すように、符号化対象のピクチャがGOPの先頭から３番目のトップフィールドのＢピクチャ６１である場合、デフォルトの参照画像は、トップフィールドの、Ｂピクチャ６１より前のＩピクチャ４２、Ｂピクチャ６１より後ろのＰピクチャ４１である。
【００６１】
一方、図７に示すように、符号化対象のピクチャがGOPの先頭から４番目のボトムフィールドのＢピクチャである場合、デフォルトの参照画像は、ボトムフィールドの、Ｂピクチャ７１より前のＰピクチャ４３と、Ｂピクチャ７１より後ろのＰピクチャ５１である。
【００６２】
以上のように、符号化対象のピクチャのデフォルトの参照画像は、そのピクチャと同一の種類のフィールドのピクチャとなっているが、図４乃至図７に示すように、同一の種類のフィールドのピクチャどうしの時間距離は、必ずしも近くはない。
【００６３】
例えば、図４に示すように、符号化対象のＰピクチャ４１と、そのＰピクチャ４１のデフォルトの参照画像であるＩピクチャ４２との時間距離は、Ｐピクチャ４１と、ボトムフィールドのＰピクチャ４３との時間距離より遠い。
【００６４】
また、図５に示すように、符号化対象のＰピクチャ５１と、そのＰピクチャ５１のデフォルトの参照画像であるＰピクチャ４３との時間距離は、Ｐピクチャ５１と、トップフィールドのＰピクチャ４１との時間距離より遠い。
【００６５】
さらに、図６に示すように、符号化対象のＢピクチャ６１と、そのＢピクチャ６１より後のデフォルトの参照画像であるＰピクチャ４１との時間距離は、Ｂピクチャ６１と、ボトムフィールドのＰピクチャ５１との時間距離より近い。しかしながら、Ｂピクチャ６１と、そのＢピクチャ６１より前のデフォルトの参照画像であるＩピクチャ４２との時間距離は、Ｂピクチャ６１と、ボトムフィールドのＰピクチャ４３との時間距離より遠い。
【００６６】
また、図７に示すように、符号化対象のＢピクチャ７１と、そのＢピクチャ７１より前のデフォルトの参照画像であるＰピクチャ４３との時間距離は、Ｂピクチャ７１と、トップフィールドのＩピクチャ４２との時間距離より近い。しかしながら、Ｂピクチャ７１と、そのＢピクチャ７１より後のデフォルトの参照画像であるＰピクチャ５１との時間距離は、Ｂピクチャ７１と、トップフィールドのＰピクチャ４１との時間距離より遠い。
【００６７】
従って、符号化対象のピクチャの時間相関を空間相関に比べて重視すべきである場合、即ち時間距離が近い画像を参照画像として符号化を行うことが望ましい場合、符号化装置１０は、符号化対象のピクチャの参照画像を、そのピクチャと時間距離が近い画像に変更する。
【００６８】
［参照画像の変更の判断例の説明］
図８乃至図１１は、参照画制御部２７による参照画像の変更の判断例を説明する図である。
【００６９】
図８に示すように、例えば、符号化対象のピクチャの動き量、ＭＥ残差、およびＭＶ長が大きく、ボケ量が多い場合、参照画制御部２７は、符号化対象のピクチャの時間相関を空間相関に比べて重視すべきと判断し、参照画像を変更すると判定する。これにより、符号化対象のピクチャの参照画像が、そのピクチャとフィールドの種類が同一のデフォルトの参照画像から、そのピクチャとの時間距離が短いピクチャに変更される。
【００７０】
即ち、符号化対象のピクチャのボケ量が多い場合、フィールドの種類の違いによる位相差が問題にならないので、符号化対象のピクチャの動き量、ＭＥ残差、およびＭＶ長が大きいことが考慮されて、符号化対象のピクチャとの時間距離が短いピクチャが参照画像とされる。
【００７１】
また、図９に示すように、例えば、符号化対象のピクチャの動き量、ＭＥ残差、およびＭＶ長の値が小さく、ボケ量が少ない場合、参照画制御部２７は、符号化対象のピクチャの時間相関を空間相関に比べて重視すべきではないと判断し、参照画像を変更しないと判定する。これにより、符号化対象のピクチャの参照画像は、そのピクチャとフィールドの種類が同一のデフォルトの参照画像のままとなる。
【００７２】
即ち、符号化対象のピクチャのボケ量が少ない場合、フィールドの種類の違いによる位相差が問題になるので、符号化対象のピクチャの参照画像は、そのピクチャとフィールドの種類が同一のデフォルトの参照画像のままとなる。
【００７３】
さらに、図１０に示すように、符号化対象のピクチャの動き量、ＭＥ残差、およびＭＶ長が小さいが、ボケ量が多い場合、参照画制御部２７は、符号化対象のピクチャの時間相関を空間相関に比べて重視すべきではないと判断し、参照画像を変更しないと判定する。これにより、符号化対象のピクチャの参照画像は、そのピクチャとフィールドの種類が同一のデフォルトの参照画像のままとなる。
【００７４】
即ち、符号化対象のピクチャのボケ量が多い場合、フィールドの種類の違いによる位相差は問題にならないが、符号化対象のピクチャの動き量、ＭＥ残差、およびＭＶ長が小さいことが考慮されて、符号化対象のピクチャの参照画像は、そのピクチャとフィールドの種類が同一のデフォルトの参照画像のままとなる。
【００７５】
また、図１１に示すように、符号化対象のピクチャの動き量、ＭＥ残差、およびＭＶ長が大きいが、ボケ量が少ない場合、参照画制御部２７は、符号化対象のピクチャの時間相関を空間相関に比べて重視すべきであると判断し、参照画像を変更すると判定する。これにより、符号化対象のピクチャの参照画像が、そのピクチャとフィールドの種類が同一のデフォルトの参照画像から、そのピクチャとの時間距離が短いピクチャに変更される。
【００７６】
即ち、符号化対象のピクチャのボケ量が少ない場合、フィールドの種類の違いによる位相差が問題になるが、符号化対象のピクチャの動き量、ＭＥ残差、およびＭＶ長が大きいことが考慮されて、符号化対象のピクチャとの時間距離が短いピクチャが参照画像とされる。
【００７７】
以上のように、参照画制御部２７は、符号化対象のピクチャの動き量、ＭＥ残差、ＭＶ長等の動きを表す情報とボケ量とに基づいて、適切な参照画像を設定するので、符号化対象と参照画像の相関を高めることができる。その結果、予測画像と符号化対象の残差が小さくなり、符号量が小さくなる。
【００７８】
［符号化装置の処理の説明］
図１２は、図１の符号化装置１０の参照画制御部２７による参照画像変更指示処理を説明するフローチャートである。この参照画像変更指示処理は、例えば、符号化対象のノンイントラピクチャごとに行われる。
【００７９】
図１２のステップＳ１１において、参照画制御部２７は、符号化対象のノンイントラピクチャの動き量に基づいて、符号化対象のノンイントラピクチャの動きが大きいかどうかを判定する。具体的には、参照画制御部２７は、符号化対象のノンイントラピクチャの動き量が所定の閾値以上である場合、動きが大きいと判定し、動き量が所定の閾値より小さい場合、動きが小さいと判定する。
【００８０】
ステップＳ１１で符号化対象のノンイントラピクチャの動きが大きいと判定された場合、処理はステップＳ１２に進む。ステップＳ１２において、参照画制御部２７は、動き予測/動き補償部２６から供給されるＭＥ残差に基づいて、符号化対象のノンイントラピクチャの動きベクトルに時間方向の相関がないかどうか、即ち動き予測が当たりにくいかどうかを判定する。具体的には、ＭＥ残差が所定の閾値以上である場合、参照画制御部２７は、動きベクトルに時間方向の相関がないと判定し、ＭＥ残差が所定の閾値より小さい場合、動きベクトルに時間方向の相関があると判定する。
【００８１】
ステップＳ１２で動きベクトルに時間方向の相関がないと判定された場合、ステップＳ１３において、参照画制御部２７は、動き予測/動き補償部２６から供給されるＭＶ長に基づいて、符号化対象のノンイントラピクチャの動きベクトルが長いかどうかを判定する。具体的には、ＭＶ長が所定の閾値以上である場合、参照画制御部２７は、動きベクトルが長いと判定し、ＭＶ長が所定の閾値より小さい場合、動きベクトルが長くはないと判定する。
【００８２】
ステップＳ１３で動きベクトルが長いと判定された場合、ステップＳ１４において、参照画制御部２７は、内部のReferenceListFlagをMotionに設定する。即ち、参照画制御部２７は、スライスヘッダ生成部１３に参照画像の変更を指示する。そして、処理は終了する。
【００８３】
一方、ステップＳ１１で動きが大きくはないと判定された場合、ステップＳ１２で動きベクトルに時間方向の相関がないと判定された場合、または、ステップＳ１３で動きベクトルが長くはないと判定された場合、処理はステップＳ１５に進む。
【００８４】
ステップＳ１５において、参照画制御部２７は、動き量、ＭＥ残差、およびＭＶ長に基づいて、符号化対象のノンイントラピクチャの動きが小さく、動きベクトルに時間方向の相関があり、かつ動きベクトルが短いかどうかを判定する。
【００８５】
ステップＳ１５で符号化対象のノンイントラピクチャの動きが小さく、動きベクトルに時間方向の相関があり、かつ動きベクトルが短いと判定された場合、処理はステップＳ１７に進む。
【００８６】
一方、ステップＳ１５で符号化対象のノンイントラピクチャの動きが大きいか、動きベクトルに時間方向の相関がないか、または動きベクトルが長いと判定された場合、処理はステップＳ１６に進む。
【００８７】
ステップＳ１６において、参照画制御部２７は、動き予測/動き補償部２６から供給されるボケ量に基づいて、ボケが多いかどうかを判定する。具体的には、ボケ量が所定の閾値以上である場合、参照画制御部２７は、ボケが多いと判定し、ボケ量が所定の閾値より小さい場合、ボケが多くはないと判定する。
【００８８】
ステップＳ１６でボケが多いと判定された場合、処理はステップＳ１４に進み、参照画制御部２７は、内部のReferenceListFlagをMotionに設定する。そして処理は終了する。
【００８９】
一方、ステップＳ１６でボケが多くはないと判定された場合、処理はステップＳ１７に進む。
【００９０】
ステップＳ１７において、参照画制御部２７は、内部のReferenceListFlagをDefaultに設定する。即ち、参照画制御部２７は、スライスヘッダ生成部１３に参照画像の変更を指示しない。そして、処理は終了する。
【００９１】
図１３は、図１の符号化装置１０による参照画像変更処理を説明するフローチャートである。この参照画像変更処理は、例えば、符号化対象のノンイントラピクチャごとに行われる。
【００９２】
ステップＳ３１において、参照画数決定部１９は、図２で説明した第１の決定方法や図３で説明した第２の決定方法により、参照画像のフィールド数を１に設定するかどうかを判定する。
【００９３】
ステップＳ３１で参照画像のフィールド数を１に設定すると判定された場合、ステップＳ３２において、スライスヘッダ生成部１３は、参照画制御部２７のReferenceListFlagがMotionに設定されているかどうかを判定する。
【００９４】
ステップＳ３２でReferenceListFlagがMotionに設定されていると判定された場合、ステップＳ３３において、スライスヘッダ生成部１３は、画像並べ変えバッファ１２から供給される符号化対象のピクチャがＢピクチャであるかどうかを判定する。
【００９５】
ステップＳ３３で符号化対象のピクチャがＢピクチャであると判定された場合、ステップＳ３４において、スライスヘッダ生成部１３は、符号化対象のピクチャがトップフィールドのピクチャであるかどうかを判定する。
【００９６】
ステップＳ３４で符号化対象のピクチャがトップフィールドのピクチャであると判定された場合、処理はステップＳ３５に進む。ステップＳ３５において、スライスヘッダ生成部１３は、スライスヘッダ内の符号化対象のピクチャより前の参照画像のフィールド数から１を減算した値を表す「num_ref_idx_l0_active_minus1」の値を０に設定する。即ち、スライスヘッダ生成部１３は、符号化対象のピクチャより前の参照画像のフィールド数が１であることをスライスヘッダに記述する。
【００９７】
また、スライスヘッダ生成部１３は、スライスヘッダ内の符号化対象のピクチャより後の参照画像のフィールド数から１を減算した値を表す「num_ref_idx_l1_active_minus1」の値を０に設定する。即ち、スライスヘッダ生成部１３は、符号化対象のピクチャより後の参照画像のフィールド数が１であることをスライスヘッダに記述する。
【００９８】
さらに、スライスヘッダ生成部１３は、スライスヘッダ内の符号化対象のピクチャより前の参照画像としてデフォルトの参照画像を用いるかどうかを表す「ref_pic_list_reordering_flag_l0」の値を、デフォルトの参照画像を用いないことを表す１に設定する。
【００９９】
また、スライスヘッダ生成部１３は、符号化対象のピクチャより前のデフォルトの参照画像より時間距離が近い、符号化対象のピクチャより前のピクチャを、スライスヘッダ内の符号化対象のピクチャより前の参照画像の参照画像情報としてのリスト「List0」の０番のインデックス「RefIdx0」のピクチャに設定する。例えば、符号化対象のピクチャが図６のＢピクチャ６１である場合、Ｉピクチャ４２より時間距離が近いＰピクチャ４３が、リスト「List0」の０番のインデックス「RefIdx0」のピクチャに設定される。そして、処理は終了する。
【０１００】
一方、ステップＳ３４で符号化対象のピクチャがトップフィールドのピクチャではないと判定された場合、即ち符号化対象のピクチャがボトムフィールドのピクチャである場合、処理はステップＳ３６に進む。
【０１０１】
ステップＳ３６において、スライスヘッダ生成部１３は、スライスヘッダ内の「num_ref_idx_l0_active_minus1」の値を０に設定するとともに、「num_ref_idx_l1_active_minus1」の値を０に設定する。
【０１０２】
また、スライスヘッダ生成部１３は、スライスヘッダ内の符号化対象のピクチャより後の参照画像としてデフォルトの参照画像を用いるかどうかを表す「ref_pic_list_reordering_flag_l1」の値を、デフォルトの参照画像を用いないことを表す１に設定する。
【０１０３】
さらに、スライスヘッダ生成部１３は、符号化対象のピクチャより後のデフォルトの参照画像より時間距離が近い、符号化対象のピクチャより後のピクチャを、スライスヘッダ内の符号化対象のピクチャより後の参照画像の参照画像情報としてのリスト「List1」の０番のインデックス「RefIdx0」のピクチャに設定する。例えば、符号化対象のピクチャが図７のＢピクチャ７１である場合、Ｐピクチャ５１より時間距離が近いＰピクチャ４１が、リスト「List1」の０番のインデックス「RefIdx0」のピクチャに設定される。そして、処理は終了する。
【０１０４】
一方、ステップＳ３３で符号化対象のピクチャがＢピクチャではないと判定された場合、即ち符号化対象のピクチャがＰピクチャである場合、処理はステップＳ３７に進む。
【０１０５】
ステップＳ３７において、スライスヘッダ生成部１３は、スライスヘッダ内の「num_ref_idx_l0_active_minus1」の値を０に設定する。また、スライスヘッダ生成部１３は、デフォルトの参照画像より時間距離が近い、符号化対象のピクチャより前のピクチャをリスト「List0」の０番のインデックス「RefIdx0」のピクチャに設定する。
【０１０６】
例えば、符号化対象のピクチャが図４のＰピクチャ４１である場合、Ｉピクチャ４２より時間距離が近いＰピクチャ４３が、リスト「List0」の０番のインデックス「RefIdx0」のピクチャに設定される。また、符号化対象のピクチャが図５のＰピクチャ５１である場合、Ｐピクチャ４３より時間距離が近いＰピクチャ４１が、リスト「List0」の０番のインデックス「RefIdx0」のピクチャに設定される。そして、処理は終了する。
【０１０７】
一方、ステップＳ３２でReferenceListFlagがMotionに設定されていないと判定された場合、即ちReferenceListFlagがDefaultに設定されている場合、処理はステップＳ３８に進む。
【０１０８】
ステップＳ３８において、スライスヘッダ生成部１３は、画像並べ変えバッファ１２から供給される符号化対象のピクチャがＢピクチャであるかどうかを判定する。
【０１０９】
ステップＳ３８で符号化対象のピクチャがＢピクチャであると判定された場合、ステップＳ３９において、スライスヘッダ生成部１３は、スライスヘッダ内の「num_ref_idx_l0_active_minus1」の値を０に設定するとともに、「num_ref_idx_l1_active_minus1」の値を０に設定する。そして、処理は終了する。
【０１１０】
一方、ステップＳ３８で符号化対象のピクチャがＢピクチャではないと判定された場合、即ち符号化対象のピクチャがＰピクチャであると判定された場合、処理はステップＳ４０に進む。
【０１１１】
ステップＳ４０において、スライスヘッダ生成部１３は、スライスヘッダ内の「num_ref_idx_l0_active_minus1」の値を０に設定し、処理は終了する。
【０１１２】
また、ステップＳ３１で参照画像のフィールド数を１に設定しないと判定された場合、処理は終了する。この場合、例えば、通常の参照画像設定処理が行われる。
【０１１３】
［本発明の効果の例の説明］
図１４は、AVC規格のMacroblock prediction syntaxを示す図である。
【０１１４】
図１４の１９段落目および２０段落目に示すように、Macroblock prediction syntaxでは、「num_ref_idx_l0_active_minus1」が０より大きい場合に、リスト「List0」のRefIdxを読み出すことが記述されている。また、２２段落目および２３段落目に示すように、Macroblock prediction syntaxでは、「num_ref_idx_l1_active_minus1」が０より大きい場合に、リスト「List1」のRefIdxを読み出すことが記述されている。
【０１１５】
従って、「num_ref_idx_l0_active_minus1」および「num_ref_idx_l1_active_minus1」が０である場合、即ち、参照画像のフィールド数が１である場合、リスト「List0」およびリスト「List1」のRefIdxは読み出されない。よって、参照画像のフィールド数が１である場合、マクロブロック単位でオーバーヘッドが削減され、符号化効率が改善する。
【０１１６】
なお、上述した説明では、符号化対象のピクチャの動き量、ＭＥ残差、ＭＶ長、およびボケ量の全てに基づいて、参照画像が決定されたが、符号化対象のピクチャの動き量、ＭＥ残差、ＭＶ長、およびボケ量の少なくとも１つに基づいて、参照画像が決定されるようにしてもよい。
【０１１７】
また、参照画像の決定方法は、上述した方法に限定されない。例えば、参照画像の決定方法は、参照画像の複数の候補をそれぞれ参照画像として動き補償を施し、その結果得られる予測画像と符号化対象との差分の絶対値が最小になる参照画像の候補を参照画像として決定する方法であってもよい。本発明は、AVC方式以外の方式で符号化を行う符号化装置にも適用することができる。
【０１１８】
[本発明を適用したコンピュータの説明]
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０１１９】
そこで、図１５は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０１２０】
プログラムは、コンピュータに内蔵されている記録媒体としての記憶部２０８やROM（Read Only Memory）２０２に予め記録しておくことができる。
【０１２１】
あるいはまた、プログラムは、リムーバブルメディア２１１に格納（記録）しておくことができる。このようなリムーバブルメディア２１１は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブルメディア２１１としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
【０１２２】
なお、プログラムは、上述したようなリムーバブルメディア２１１からドライブ２１０を介してコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵する記憶部２０８にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
【０１２３】
コンピュータは、CPU(Central Processing Unit)２０１を内蔵しており、CPU２０１には、バス２０４を介して、入出力インタフェース２０５が接続されている。
【０１２４】
CPU２０１は、入出力インタフェース２０５を介して、ユーザによって、入力部２０６が操作等されることにより指令が入力されると、それに従って、ROM２０２に格納されているプログラムを実行する。あるいは、CPU２０１は、記憶部２０８に格納されたプログラムを、RAM(Random Access Memory)２０３にロードして実行する。
【０１２５】
これにより、CPU２０１は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU２０１は、その処理結果を、必要に応じて、例えば、入出力インタフェース２０５を介して、出力部２０７から出力、あるいは、通信部２０９から送信、さらには、記憶部２０８に記録等させる。
【０１２６】
なお、入力部２０６は、キーボードや、マウス、マイク等で構成される。また、出力部２０７は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
【０１２７】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含む。
【０１２８】
また、プログラムは、１のコンピュータ（プロセッサ）により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０１２９】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０１３０】
１０  符号化装置，  １３  スライスヘッダ生成部，  １９  参照画数決定部
【図１】
0005625512.tif 000002
【図２】
0005625512.tif 000003
【図３】
0005625512.tif 000004
【図４】
0005625512.tif 000005
【図５】
0005625512.tif 000006
【図６】
0005625512.tif 000007
【図７】
0005625512.tif 000008
【図８】
0005625512.tif 000009
【図９】
0005625512.tif 000010
【図１０】
0005625512.tif 000011
【図１１】
0005625512.tif 000012
【図１２】
0005625512.tif 000013
【図１３】
0005625512.tif 000014
【図１４】
0005625512.tif 000015
【図１５】
0005625512.tif 000016