(57)【特許請求の範囲】
【請求項１】
複数の画像の画像データを含む動画像データに対して、動き補償による画面間予測符号化を行う符号化装置であって、
符号化対象の画像データに含まれる符号化対象ブロックを符号化する際、前記符号化対象ブロックおよび複数の予測モードの各々に対応して利用される参照画像データの参照ブロックの各々の誤差量を、各予測モードの誤差量として検出する誤差量検出部と、
前記誤差量検出部で検出した前記各予測モードの誤差量を、変換データを用いて、前記各予測モードの推定符号量に変換する変換部と、
前記変換部で変換された前記各予測モードの推定符号量による評価値に基づいて、前記複数の予測モードのうちから１つの予測モードを決定する決定部と、
決定された予測モードに基づいて、前記符号化対象の画像データの符号化対象ブロックを符号化する符号化部と
を備え、
前記変換データは、
前記決定部によって決定された予測モードの誤差量と、
前記符号化対象ブロックの符号化後のデータ量である発生符号量と、
当該符号化対象ブロックを量子化する際に用いられる量子化スケールと、
当該量子化スケールよりも前に用いられた他の量子化スケールと
に基づいて決定され、
前記符号化対象ブロックを第１符号化対象ブロックとし、前記符号化対象ブロックの次以降に符号化される符号化対象ブロックを第２符号化対象ブロックとすると、
前記変換データは、前記決定部が前記第２符号化対象ブロックの予測モードを決定する際に、前記各予測モードの推定符号量を変換するために前記変換部によって用いられるデータであって、
前記決定部によって決定された予測モードの誤差量は、少なくとも前記第１符号化対象ブロックを含む、過去の符号化対象ブロックに関して決定された予測モードの誤差量であり、
前記符号化対象ブロックの符号化後のデータ量である発生符号量は、少なくとも前記第１符号化対象ブロックを含む、過去の符号化対象ブロックの符号化後の発生符号量であり、
当該符号化対象ブロックを量子化する際に用いられる量子化スケールは、前記第１符号化対象ブロックの量子化スケールであり、
当該量子化スケールよりも前に用いられた他の量子化スケールは、少なくとも前記第１符号化対象ブロックを含む、過去の符号化対象ブロックを符号化する際に用いられた量子化スケールであり、
前記変換データは、前記第１符号化対象ブロックの量子化スケールの関数として、前記予測モードの誤差量、および前記符号化対象ブロックの符号化後のデータ量である発生符号量の比と、当該符号化対象ブロックを量子化する際に用いられる量子化スケール、および当該量子化スケールよりも前に用いられた他の量子化スケールの比との積によって表される、符号化装置。
【請求項２】
前記変換データを決定するために用いられる、前記他の量子化スケールは、当該符号化対象の画像データの前方向に存在する画像データに含まれるブロックを符号化する際に使用された量子化スケールである、請求項１に記載の符号化装置。
【請求項３】
前記変換データを決定するために用いられる前記誤差量は、前記符号化対象の画像データの前方向に存在する画像データに含まれるブロックを符号化した際における、参照ブロックとの誤差量である、請求項１に記載の符号化装置。
【請求項４】
前記変換データは、ある範囲の誤差量において、推定符号量が所定の値になるように決定される、請求項１に記載の符号化装置。
【請求項５】
前記変換データは、ある範囲の誤差量において、推定符号量が「０」になるように決定される、請求項１に記載の符号化装置。
【請求項６】
前記変換データは、前記誤差量と、前記発生符号量と、当該符号化対象ブロックを量子化する際に用いられる量子化スケールと、前記他の量子化スケールとに基づいて、ある範囲の誤差量で、推定符号量が「０」になるように決定される、請求項３に記載の符号化装置。
【請求項７】
符号化対象の画像データに含まれる符号化対象ブロックを符号化する際において、当該符号化対象のブロック、及び、前記複数の予測モードの各々に対応して利用される参照画像データの参照ブロックの各々の動きベクトルを、前記各予測モードの動きベクトルとして検出する動きベクトル検出部と、
前記変換部で変換された前記各予測モードの推定符号量、及び、前記動きベクトル検出部で検出した前記各予測モードの動きベクトルによって、前記各予測モードの評価値を算出する評価部と
をさらに備え、
前記決定部は、前記評価部で算出された各予測モードの評価値に基づいて、前記複数の予測モードから１つの予測モードを決定する、請求項１に記載の符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の画像データを高能率に圧縮符号化する技術に関する。
【背景技術】
【０００２】
近年、マルチメディアアプリケーションの発展に伴い、あらゆるメディアの情報（たとえば画像・音声・テキスト）をデジタルデータ化し、統一的に扱うことが一般的になってきた。このうち、たとえば画像、特に動画像のデジタルデータ（画像データ）のデータ量は非常に多くなるため、蓄積・伝送のためには動画像データを高能率に圧縮する圧縮技術が必要とされている。動画像の圧縮符号化のために開発された圧縮技術として、例えばＩＳＯ（国際標準化機構）によって規格化されたＭＰＥＧ−１／２／４等の圧縮方式が知られている。
【０００３】
これらの圧縮方式においては、いずれも入力画像データを複数のブロックに分割し、各ブロックについて、画面内符号化（動き補償を行わない符号化モード）または画面間予測符号化（動き補償による予測を行う符号化モード）を選択して符号化することが可能である。このうち、画面間予測符号化の動き補償予測に対しては、動き補償に用いる動きベクトルの種類に応じて複数の予測モードが存在している。符号化時には、それらの中から適切な予測モードが選択されて各ブロックが符号化される。
【０００４】
予測モードは、予測方向によって前方向予測符号化、後方向予測符号化および双方向予測符号化の３つに大別される。その各々は、さらに、符号化するブロックのフレーム全体を対象としたフレーム予測符号化、および、第１（奇数）フィールド／第２（偶数）フィールドのそれぞれを対象としたフィールド予測符号化とに分けることができる。すなわち、予測モードは６種類存在しうる。
【０００５】
図１は、従来の動画像符号化装置１００の構成を示す。動画像符号化装置１００は、入力画像メモリ１０１、減算部１０２、直交変換部１０３、量子化部１０４、可変長符号化部１０５、逆量子化部１０６、逆直交変換部１０７、加算部１０８、参照画像メモリ１０９、動き検出部１１０、予測モード決定部１１１および動き補償部１１２を備えている。
【０００６】
上述の画面間予測符号化の動き補償予測に用いる予測モードの決定は、主として動き検出部１１０および予測モード決定部１１１によって行われる。
【０００７】
動き検出部１１０は、入力画像メモリ１０１から出力されたブロック単位の入力画像データに対して、参照画像メモリ１０９に格納されている参照画像データの指定された範囲から類似するブロック領域を検出し、移動量に相当する動きベクトルおよびブロックの類似度を示す誤差量を出力する。上述した６種類の予測モードが利用可能であるときには、それぞれの予測モードごとに指定された参照画像データについて動き検出を行う。
【０００８】
予測モード決定部１１１は、動き検出部１１０で検出された各予測モードの動きベクトルに対する誤差量に基づいて、動き補償部１１２で使用する予測モードを決定する。
【０００９】
ここで、従来の予測モードの決定方法を説明する。動き検出部１１０は、ある予測モードについて符号化対象ブロックと類似するブロックを検出するために、符号化対象ブロックと参照画像ブロックとの各画素位置での差分絶対値総和（誤差量）を計算して評価値として利用する。そして、誤差量が最も小さくなる位置までの移動量をその予測モードの動きベクトルとして採用し、誤差量と共に出力する。
【００１０】
例えば、ＭＰＥＧで使用される予測モードの一つである片方向フレーム予測に対する誤差量ＡＥ（ｉ，ｊ）は、数１によって算出することができる。なお「片方向フレーム予測」とは、前方向予測および後方向予測の総称である。
【００１１】
（数１）  ＡＥ（ｉ，ｊ）＝Σ｜Ｙ（ｘ，ｙ）−ＲｅｆＹ（ｉ＋ｘ，ｊ＋ｙ）｜
【００１２】
数１において、Ｙ（ｘ，ｙ）は入力画像データの符号化対象ブロックにおける位置（ｘ，ｙ）の画素値を表し、ＲｅｆＹ（ｉ＋ｘ，ｊ＋ｙ）は参照画像データの探索範囲内における位置（ｉ＋ｘ，ｊ＋ｙ）の画素値を表す。また、ＡＥ（ｉ，ｊ）はブロック間マッチングにおける誤差量を表している。動きベクトルは、誤差量ＡＥ（ｉ，ｊ）を最も小さくする位置（ｉ，ｊ）までの移動量として特定される。図２は、符号化対象ブロック（Ｙ）と、誤差量ＡＥ（ｉ，ｊ）を最も小さくする位置（ｉ，ｊ）に存在する、参照画像データ（ＲｅｆＹ）中のブロックの関係を示す。基準点（０，０）から（ｉ，ｊ）へのベクトルが動きベクトルである。
【００１３】
予測モード決定部１１１は、動き検出部１１０から出力された各予測モードの誤差量ＡＥを比較して誤差量ＡＥが最小となる予測モードを選択し、動き補償で使用する予測モードとして決定する。この方法は、誤差量が小さい方が一般的に符号化による歪も発生符号量も少ないという考え方に基づいたものである。
【００１４】
予測モードの決定方法は、他にも種々考え出されている。例えば特許文献１は、符号化の目標ビットレートと入力画像サイズ（画素数）の比が所定の閾値以上となった場合に双方向の予測モードを禁止し、前方向または後方向の予測モードのみを選択するという方法を開示している。
【００１５】
特許文献１の方法は、目標とするビットレートが低い場合に、動きベクトルに対する符号量が比較的多くなり、予測誤差画像データに対する符号量が相対的に少なくなって、結果として画質が劣化するという課題に着目したものである。双方向の予測モードの符号化量は前方向または後方向の予測モードの符号化量よりも大きくなると考えられるため、この方法では、上述した比が所定の閾値以上になったときには双方向の予測モードが禁止される。
【００１６】
ＭＰＥＧ規格の符号化ビットストリームに含まれる、ブロック単位の主な情報として、たとえば画面内符号化か画面間予測符号化かを示す情報、画面間予測符号化時の予測モードおよび動きベクトル、符号化画像データ（画面内符号化のときは入力画像データ、画面間予測符号化のときは予測誤差画像データに対する符号化データ）、量子化スケールがある。これらの情報のうち量子化によって生成される符号化画像データは、量子化スケールの設定次第でダイナミックに発生符号量を制御することが可能である。
【００１７】
しかし、量子化を伴う非可逆圧縮であるため、いかに発生符号量を抑えながら符号化ノイズを低減できるかが重要となる。一般に入力画像データの画像サイズに対して十分高い目標ビットレートで符号化する場合には、符号化データ全体に占める動きベクトルの割合は低く、予測誤差画像データに対する量子化歪と発生符号量のみを考慮して符号化ノイズの発生を抑えることが可能である。
【００１８】
特許文献２は、予測モードの決定方法の他の例を開示している。具体的には、特許文献２は、あらかじめ予測誤差画像データの各要素と動きベクトルに対する符号量の表を保持しておき、予測モードごとに予測誤差画像データと動きベクトルを含めた符号量を算出し、適切な符号量となる予測モードを選択する。この方法によれば、特に目標とするビットレートが低い場合に限らず、予測モードを選択することができる。
【特許文献１】特開２０００−１３８０２号公報
【特許文献２】特開平９−３２２１７６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
しかしながら、画面間予測符号化処理に関し、従来の予測モードの決定方法では、特にリアルタイムで符号化する用途への適用が困難であるという問題が存在する。リアルタイム符号化においては、目標ビットレートの高低にかかわらず、そのビットレートに対して発生符号量を適切に制御する必要がある。しかし、実際に入力される入力画像データには様々な種類（静止画像、動画像、高精細な画像、あるいはＳ／Ｎ比の低い画像等）があり、これらの入力画像データは刻々と変化している。よって、安定した画質を維持するためにはその時々に応じて適切な予測モードを選択することが重要となる。
【００２０】
例えば、特許文献１の予測モード決定方法では、入力画像データの画像サイズに対して低い目標ビットレートで符号化する場合に、常に予測モードが制限されるため、動き補償の精度が要求されるような画面間の相関が高い入力画像データにおいて、最適な予測モードを選択できない。
【００２１】
また、リアルタイム処理においては、特許文献２に記載されるような、予測誤差画像データの各要素と動きベクトルに対する符号量の表を予め保持することはできない。
【００２２】
本発明の目的は、動画像を符号化するための目標ビットレートの高低にかかわらず、可能な限り高画質でリアルタイムに動画像を符号化することである。
【課題を解決するための手段】
【００２３】
本発明による符号化装置は、複数の画像が切り替えられて表示される動画像のデータに対し、複数の予測モードのうちから決定された予測モードに基づいて、動き補償による画面間予測符号化を行う。前記符号化装置は、複数の予測モードの各々に対応して利用される参照画像のブロックに基づいて、符号化対象の画像に含まれるブロックの誤差量および動きベクトルを検出する検出部と、各誤差量と所定の第１係数との積、および、各動きベクトルに基づく予測ベクトルと第２係数との積の和を評価値として計算する評価部と、前記評価値に基づいて複数の予測モードのうちの１つを決定する決定部と、少なくとも、符号化対象の前記ブロックの量子化時に使用する量子化スケールを用いて前記比例係数を更新する係数更新部と、決定された予測モードに基づいて、符号化対象の前記ブロックのデータを符号化する符号化部とを備えている。
【００２４】
前記符号化装置は、符号化対象の前記ブロックの誤差量に対応するデータを、複数の周波数成分の係数に変換する変換部と、予め定められた量子化マトリクスおよび前記量子化スケールに基づいて各周波数成分の係数を量子化し、量子化値を生成する量子化部とをさらに備えていてもよく、前記符号化部は、決定された予測モードに基づいて各量子化値を符号化してもよい。
【００２５】
前記量子化部は、前記量子化マトリクスおよび予め定められた量子化スケールの積に基づいて前記ブロックごとの前記各周波数成分の係数を量子化し、量子化値を生成してもよい。
【００２６】
前記係数更新部は、過去に符号化されたブロックに関する予測モードの誤差量、符号化後のデータ量および前記量子化スケールと、符号化対象の前記ブロックに対応する量子化スケールとに基づいて、前記第１係数を更新してもよい。
【００２７】
前記係数更新部は、前記参照画像に対して定められる前記ブロックの存在範囲を示す画素数に基づいて、前記第２係数を特定してもよい。
【００２８】
前記評価部は、各予測モードの誤差量が、過去に符号化されたブロックに関する量子化変換係数の全ての係数が０となった誤差量の平均値よりも小さいとき、前記各予測モードの誤差量と所定の第１係数との積を０として前記評価値を計算してもよい。
【００２９】
前記評価部は、前記各誤差量と所定の第１係数との積に補正係数を加算し、加算結果と所定の閾値のうちの大きいほうの値を、各動きベクトルに基づく予測ベクトルと第２係数との積に加算して、前記評価値を計算してもよい。
【００３０】
前記係数更新部は、前記予測モードの誤差量のうち、前記誤差量に対応する量子化変換係数の全ての係数が０となった誤差量の平均値、前記誤差量に対応する量子化変換係数のいずれかの係数が０とならなかった誤差量の平均値に基づいて、前記第１係数を更新し、前記第１係数および前記誤差量に対応する量子化変換係数の全ての係数が０となった誤差量の平均値に基づいて前記補正係数を更新してもよい。
【００３１】
本発明による動画像記録システムは、複数の画像が切り替えられて表示される動画像の映像信号を受信して、動画像のデータを出力する映像信号受信部と、前記動画像のデータに対し、複数の予測モードのうちから決定された予測モードに基づいて動き補償による画面間予測符号化を行って符号化データを出力する符号化装置と、前記符号化データを記録媒体に書き込む記録部とを備えている。前記符号化装置は、複数の予測モードの各々に対応して利用される参照画像のブロックに基づいて、符号化対象の画像に含まれるブロックの誤差量および動きベクトルを検出する検出部と、各誤差量と所定の第１係数との積、および、各動きベクトルに基づく予測ベクトルと第２係数との積の和を評価値として計算する評価部と、前記評価値に基づいて複数の予測モードのうちの１つを決定する決定部と、少なくとも、符号化対象の前記ブロックの量子化時に使用する量子化スケールを用いて前記比例係数を更新する係数更新部とを備えている。
【発明の効果】
【００３２】
本発明によれば、画面間予測符号化の動き補償予測において、予測モードを決定するための評価値計算方法で利用する係数を符号化の過程で学習して更新する。係数の更新は、過去に符号化された画像（より詳細には画像のブロック）についての予測モードの誤差量、実際の発生符号量、量子化部で決定された量子化スケール（過去に利用されたものおよび現在の符号化対象ブロックについて利用されるものの両方）に基づいて行われる。そして、評価値の計算は、係数を乗じた誤差量のみならず動きベクトルに関する変化量をも利用して行う。これにより、誤差量のみを利用する場合と比較すると、実際の発生符号量に近い誤差量の推定が可能である。よって、常に適切な予測モードの決定が可能になり、安定した画質を得ることができる。
【発明を実施するための最良の形態】
【００３３】
以下、添付の図面を参照しながら、本発明によるデータ処理装置の実施形態を説明する。以下の説明においては、データ処理装置は動画像を録画するためのレコーダ、および／または、レコーダに含まれる動画像を圧縮符号化する符号化装置であるとする。
【００３４】
（実施形態１）
図３は、本実施形態によるレコーダ２００の構成を示す。レコーダ２００は、たとえばテレビ放送信号を受信して、リアルタイムでハードディスクや光ディスクに録画する番組の録画機として実現され、または、ユーザが被写体の映像／音声をリアルタイムでハードディスクや光ディスクに記録するカムコーダとして実現される。
【００３５】
レコーダ２００は、映像信号受信部２０５と、符号化装置２１０と、記録部２１５−１および２１５−２を有している。映像信号受信部２０５は、テレビ放送のアナログ信号を受信して、その信号をデジタル信号（デジタルデータ）に変換して出力するチューナである。または、映像信号受信部２０５は、被写体の映像をデジタルデータとして出力するＣＣＤ素子である。
【００３６】
符号化装置２１０は、動画像のデジタルデータを圧縮符号化して、符号化画像データを生成する。動画像は複数の画像が切り替えられて表示され、圧縮符号化は画像単位、より詳しくは画像を構成するブロック単位で行われる。符号化装置２１０は、たとえば１つの基板上に実装されてエンコーダボードとして実現される。
【００３７】
なお、以下では１枚の画像を構成する１６画素×１６画素の集合をマクロブロックと呼ぶ。そして、それより小さい単位のブロック（たとえば８画素×８画素の集合）をサブマクロブロックと呼ぶ。これは、たとえばＭＰＥＧ規格と同様である。ただし、符号化の処理によって単位が変わるため、以下では、マクロブロックおよびサブマクロブロックを総称して「ブロック」と呼ぶこととする。
【００３８】
記録部２１５−１は、たとえばハードディスクドライブである。また、記録部２１５−２は、たとえば光ディスクドライブである。ハードディスクドライブおよび光ディスクドライブは、それぞれ、ハードディスクおよび光ディスクに、符号化された画像データ（映像データストリーム）を書き込み、書き込まれたそのデータを読み出すことができる。なお、図面の簡単化のため、記録部２１５−２は光ディスクとして示されている。
【００３９】
符号化装置２１０は１つの筐体として実現することもできる。このときは、レコーダ２００は、たとえばチューナとしての映像信号受信部２０５、符号化装置２１０および記録装置２１５−１／２１５−２から構成される記録システムとして捉えることができる。
【００４０】
次に、符号化装置２１０を詳細に説明する。符号化装置２１０は、入力画像メモリ１０１と、減算部１０２と、直交変換部１０３と、量子化部１０４と、可変長符号化部１０５と、逆量子化部１０６と、逆直交変換部１０７と、加算部１０８と、参照画像メモリ１０９と、動き検出部１１０と、予測モード決定部２１１と、動き補償部１１２と、評価部２１３と、係数更新部２１４とを備えている。
【００４１】
符号化装置２１０は、動画像を構成する画像（ピクチャ）のデータを、２つの符号化方法のいずれかにより圧縮符号化する。すなわち、画面内（イントラ）符号化、および、画面間予測（インターまたはノン・イントラ）符号化である。
【００４２】
これらの符号化方法では、ブロック単位で画像データを符号化することができる。イントラ符号化では、符号化対象のブロックのデータのみが利用されて符号化が行われる。時間方向の予測は用いられない。イントラ符号化されたブロック（およびピクチャ）は、復号化処理においてもその画像データのみを用いて復号化が可能である。
【００４３】
一方、ノン・イントラ符号化では、他のピクチャの画像データが参照されて処理対象のブロックのデータが符号化される。この符号化方法は、時間的に前および／または後のピクチャの画像データを利用しており、時間方向の予測が用いられる。これにより、データの圧縮率をより高くすることができる。
【００４４】
図４（ａ）〜（ｃ）は、３種類の予測方法の概念を示す。図４（ａ）は、前方向予測の概念を示す。符号化対象の現フレームを構成するブロックは、時間的に前（過去）に表示されるフレームのデータを利用して符号化される。図４（ｂ）は、後方向予測の概念を示す。符号化対象の現フレームを構成するブロックは、時間的に後（未来）に表示されるフレームのデータを利用して符号化される。図４（ｃ）は、双方向予測の概念を示す。符号化対象の現フレームを構成するブロックは、時間的に前および後に表示される両方のフレームのデータを利用して符号化される。現フレームのデータを符号化する際に利用される他のフレームは、「参照フレーム」と呼ばれる。
【００４５】
イントラ符号化およびノン・イントラ符号化のいずれにおいても、符号化対象となるブロックを、一体的に符号化するか、または、そのブロックを第１（奇数）フィールドと第２（偶数）フィールドとに分けて各々のデータを別々に符号化するか、を切り替えることができる。これらを区別するため、本明細書では便宜的に前者を「フレームごとの符号化」、後者を「フィールドごとの符号化」と呼ぶ。ここでは、「フレーム」および「フィールド」という語は１枚のピクチャを意味するものではないことに留意されたい。
【００４６】
図５（ａ）および（ｂ）は、ノン・イントラ符号化に関する、符号化対象となるブロックと参照フレーム内のブロックとの関係を示す。図５（ａ）は、フレームごとの符号化の例を示している。符号化対象となる左側のブロックは、右側の参照フレーム内のブロック全体を参照して符号化される。一方、図５（ｂ）は、フィールドごとの符号化の例を示している。符号化対象となる左側のブロックの第１フィールドは、参照フレーム内のブロックの第１フィールドおよび第２フィールドを参照して符号化され、符号化対象となる左側のブロックの第２フィールドは、参照フレーム内のブロックの第１フィールドおよび第２フィールドを参照して符号化される。
【００４７】
上述の説明から明らかなように、ノン・イントラ符号化処理として下記の６種類の予測符号化方法のいずれかを採用可能である。
（１）前方向予測かつフレームごとの符号化
（２）前方向予測かつフィールドごとの符号化
（３）後方向予測かつフレームごとの符号化
（４）後方向予測かつフィールドごとの符号化
（５）双方向予測かつフレームごとの符号化
（６）双方向予測かつフィールドごとの符号化
である。これらは「予測モード」と呼ばれる。
【００４８】
次に、再び図３を参照しながら、符号化装置２１０の各構成要素を説明する。
【００４９】
入力画像メモリ１０１は、入力された各ピクチャの画像データを符号化時まで格納しておくためのメモリである。入力画像メモリ１０１は、符号化順序の変更による画像データの出力遅延に対して十分な記憶容量を有する。入力された各ピクチャの画像データは符号化時に複数のブロックに分割され、ブロック単位で符号化される。入力画像メモリ１０１は、ブロック単位で画像データを出力することができる。
【００５０】
減算部１０２は、入力画像メモリ１０１から出力されたブロック単位の入力画像データを正入力端子に入力する。動き補償予測を行わないイントラ符号化の場合は、正入力端子から入力された入力画像データをそのまま出力する。一方、動き補償予測を行うノン・イントラ符号化の場合は、動き補償部１１２から出力されたブロック単位の動き補償画像データを負入力端子に入力して減算を行い、減算結果としてブロック単位の予測誤差画像データを出力する。
【００５１】
直交変換部１０３は、減算部１０２から出力されたブロック単位の画像データを、直交変換して周波数成分に変換する。直交変換として、たとえば離散コサイン変換が知られている。
【００５２】
量子化部１０４は、量子化スケールと量子化マトリクスによって定められる量子化特性に従い、直交変換部１０３から出力された直交変換係数を量子化し、その結果を量子化変換係数として出力する。
【００５３】
以下、量子化スケールおよび量子化マトリクスを具体的に説明する。
【００５４】
ＭＰＥＧ−２規格では、２つのタイプの量子化スケールが規定されている。図６は、量子化スケールの割り当て表を示す。左欄の量子化スケールコード（ｑｕａｎｔｉｓｅｒ＿ｓｃａｌｅ＿ｃｏｄｅ）１〜３１のそれぞれに対して、タイプ０（ｑｓｃａｌｅ＿ｔｙｐｅ＝０）およびタイプ１（ｑｓｃａｌｅ＿ｔｙｐｅ＝１）が規定されており、いずれか一方の値が量子化スケールとして割り当てられる。
【００５５】
量子化部１０４は、たとえば目標ビットレートおよび符号化画像データの発生符号量に基づいて量子化スケールの値を決定する。例えば、目標ビットレートに対して過去の発生符号量に基づく実ビットレートが高い場合には、量子化スケールを大きくして実ビットレートを目標ビットレートに近づけるようにし、目標ビットレートに対して実ビットレートが低い場合には、量子化スケールを小さくして実ビットレートを目標ビットレートに近づけるようにする。
【００５６】
なお、量子化スケールタイプは、一般的にはタイプ０またはタイプ１のいずれか一方に固定されているが、固定されていなくてもよい。決定された量子化スケールは、図６のテーブルを参照して量子化スケールコード（ｑｕａｎｔｉｓｅｒ＿ｓｃａｌｅ＿ｃｏｄｅ）に対応づけられる。この量子化スケールコードは、後述する可変長符号化部１０５において符号化される。
【００５７】
なお、目標ビットレートは、たとえばユーザによって録画開始前に直接設定される。または、ユーザによって目標ビットレートと対応付けられた録画モードが選択されることによって設定される。目標ビットレートは圧縮符号化の符号化条件である。
【００５８】
次に、量子化マトリクスを説明する。ＭＰＥＧ−２規格では、標準的に用いられる量子化マトリクス（デフォルトマトリクス）が規定されている。図７は、ＭＰＥＧ−２規格のデフォルトマトリクス群を示す。図７の（ａ）および（ｂ）として示す各マトリクスは、それぞれイントラ符号化時およびノン・イントラ符号化に用いられる。
【００５９】
量子化部１０４は、決定した量子化スケールの値を量子化マトリクスの各要素値に乗算して各周波数成分の量子化特性を得る。ブロック単位の画像データは、この量子化特性に応じて量子化される。
【００６０】
再び図３を参照する。可変長符号化部１０５は、量子化部１０４から出力された量子化変換係数を可変長符号化し、符号化画像データを出力する。ノン・イントラ符号化の場合には、可変長符号化部１０５はさらに動き補償部１１２で求められた動きベクトル等の情報と共に量子化変換係数を可変長符号化し、符号化画像データを出力する。
【００６１】
逆量子化部１０６は、量子化部１０４から出力された量子化変換係数を、逆量子化して直交変換係数を生成する。このとき逆量子化に際しては、量子化部１０４で使用した量子化特性と同じ量子化特性が利用される。
【００６２】
逆直交変換部１０７は、逆量子化部１０６から出力された直交変換係数を逆直交変換して復号化画像データを生成する。このとき、減算部１０２においてイントラ符号化が選択された場合は、逆直交変換部１０７は、ブロック単位の入力画像データに対する復号化画像を生成する。一方、減算部１０２においてノン・イントラ符号化が選択された場合は、逆直交変換部１０７は、ブロック単位の予測誤差画像データに対する復号化画像を生成する。
【００６３】
加算部１０８は、予測誤差画像データの復号化画像と、動き補償部１１２から出力されたブロック単位の動き補償画像データとを加算し、最終的な復号化画像データを生成する。
【００６４】
参照画像メモリ１０９は、符号化時に使用される参照画像データを格納し保持しておくための記憶容量を有している。参照画像メモリ１０９は、イントラ符号化時には逆直交変換部１０７で生成されたブロック単位の復号化画像データをそのまま格納する。一方参照画像メモリ１０９は、ノン・イントラ符号化時には加算部１０８で生成されたブロック単位の復号化画像データを格納する。参照画像メモリ１０９に格納された復号化画像データは、以降の入力画像に対して、動き補償による画面間予測符号化を行う際の参照画像として用いられる。
【００６５】
動き検出部１１０は、入力画像メモリ１０１から出力されたブロック単位の入力画像データに対して、参照画像メモリ１０９に格納されている参照画像データの指定された範囲から類似するブロック領域を検出し、ブロックの類似度を示す誤差量および移動量に相当する動きベクトルを出力する。
【００６６】
誤差量は、上述した数１のＡＥ（ｉ，ｊ）として求められる。また、動きベクトルは、誤差量ＡＥ（ｉ，ｊ）を最も小さくする位置（ｉ，ｊ）までの移動量として特定される。
【００６７】
誤差量および動きベクトルを求める処理は動き検出処理と呼ばれる。動き検出部１１０は、上述した６種類の予測モードが利用可能であるときには、それぞれの予測モードごとに指定された参照画像データについて動き検出処理を行う。
【００６８】
動き補償部１１２は、参照画像メモリ１０９に格納されている画面間予測符号化用の参照画像から、動き検出部１１０で検出された動きベクトルのうち、後述の予測モード決定部２１１で決定された予測モードに対する動きベクトルを用いて、ブロック単位の動き補償画像データを生成する。
【００６９】
予測モード決定部２１１（以下「決定部」と記述する。）は、評価部２１３で算出された各予測モードの評価値に基づいて、動き補償部１１２で使用する予測モードを決定する。
【００７０】
評価部２１３は、予測モードごとに動き検出部１１０から出力された誤差量と動きベクトル、および係数更新部２１４で決定された比例係数（後述）を用いて各予測モードに対する評価値を算出する。例えば、ＭＰＥＧで使用される予測モードの一つである片方向フレーム予測に対する評価値Ｊを算出するための評価関数として、数２および数３に示す式を利用することができる。
【００７１】
（数２）Ｊ＝Ｋ１＊ＡＥ＋Ｋｍｖ＊ΔＭＶ
（数３）ΔＭＶ＝｜ＭＶｘ―ＰＭＶｘ｜＋｜ＭＶｙ−ＰＭＶｙ｜
【００７２】
数２のＫ１は予測誤差画像データに関する誤差量ＡＥに乗ずる比例係数、Ｋｍｖは動きベクトルに関する変化量（予測ベクトル）ΔＭＶに乗ずる比例係数である。
【００７３】
数２の右辺第１項は予測誤差画像データに関する評価値（推定符号量）に対応し、右辺第２項は動きベクトルに関する評価値（推定符号量）に対応する。
【００７４】
また、数３のＭＶｘおよびＭＶｙはそれぞれ動きベクトルの水平成分および垂直成分、ＰＭＶｘおよびＰＭＶｙはそれぞれ直前に符号化したブロックの動きベクトル（ＭＶｘおよびＭＶｙ）を表す。Ｋｍｖは、例えば、動き検出部１１０において検出の対象範囲に含まれる画素数（Ｎ）を用いて数４のように特定することができる。
【００７５】
（数４）Ｎ＜４００のときＫｍｖ＝０．８、Ｎ≧４００のときＫｍｖ＝０．４
【００７６】
数４のＫｍｖは、検出の対象範囲に含まれる画素数（Ｎ）が４００以上のとき、換言すれば検出の対象範囲が比較的広いときには、画素数（Ｎ）が４００より小さいときよりも小さく設定される。これは、動きベクトルが比較的大きくても効率よく符号化できる可変長符号化の特性を考慮したものである。
【００７７】
動き検出部１１０から出力された誤差量ＡＥと動きベクトル（ＭＶｘ，ＭＶｙ）を数２および数３に適用することによって、片方向フレーム予測に対する評価値Ｊを算出することができる。ただし、数３のＰＭＶｘおよびＰＭＶｙは直前に符号化したブロックのＭＶｘおよびＭＶｙをそれぞれ保持しておく。そして、入力画像データの最も左に位置するブロックについて評価値を算出する前に０にリセットする。
【００７８】
なお、「直前に符号化したブロックのＭＶｘおよびＭＶｙ」とは、たとえば画像の左上のブロックから順に右下のブロックに符号化する場合には、左隣のブロックの動きベクトル（ＭＶｘおよびＭＶｙ）を表している。
【００７９】
以上、片方向フレーム予測の例を示した。他の予測モードに関しても同様の方法で評価値を算出することができる。
【００８０】
そこで、実測値に近くなる評価値Ｊを求めることとしている。なお、本実施形態においては、できるだけ正確な評価値Ｊを求めるため、Ｋｍｖの選び方を適宜変えて、動きベクトルに関する推定符号量を求めている。
【００８１】
係数更新部２１４は、過去に符号化されたブロックについて、決定部２１１によって決定された予測モードの誤差量、可変長符号化部１０５から出力された発生符号量（すなわち符号化後のデータ量）、量子化部１０４で決定された量子化スケール（過去に利用されたものおよび現在の符号化対象ブロックについて利用されるものの両方）に基づいて比例係数を更新する。例えば、先に述べた数２のＫ１を更新する。Ｋ１の更新方法の例を数５に示す。
【００８２】
（数５）Ｋ１＝（Ｂ＿ａｖｅ＊Ｑ＿ａｖｅ）／（ＡＥ＿ａｖｅ＊Ｑｃｕｒ）
【００８３】
数５中のＡＥ＿ａｖｅ、Ｂ＿ａｖｅおよびＱ＿ａｖｅは、それぞれ過去の一定期間に符号化された入力画像データの各ブロックで使用された誤差量ＡＥ、発生符号量Ｂおよび量子化スケールＱの平均値である。予測モードはブロックごとに異なっていてもよい。また、Ｑｃｕｒは符号化対象ブロックで使用する量子化スケールである。
【００８４】
係数更新部２１４は、量子化スケールＱｃｕｒを量子化部１０４から受け取ると、比例係数Ｋ１を更新する。更新された比例係数Ｋ１は評価部２１３に送られ、評価部２１３は新たな係数を用いて符号量を評価する。
【００８５】
ここで、比例係数Ｋ１を利用した符号量の評価を説明する。
【００８６】
図８は、比例係数Ｋ１および誤差量ＡＥと、推定符号量Ｂとの関係を示すグラフである。推定符号量ＢはＢ＝Ｋ１・ＡＥとして得られる。これは、数２の右辺第１項に対応する。
【００８７】
上述した数５によれば、比例係数Ｋ１は量子化スケールＱｃｕｒの関数と捉えることができる。以下、図８の実線によって示される直線Ｂ＝Ｋ１・ＡＥを与えるＱｃｕｒを基準とする。このときのＱｃｕｒを「基準Ｑｃｕｒ」と呼ぶ。
【００８８】
数５によれば、Ｑｃｕｒを基準Ｑｃｕｒより大きくするとＫ１が小さくなる。すなわち、グラフの傾きが小さくなる。よって、基準Ｑｃｕｒを用いたときと比較すると、同じ誤差量ＡＥであっても推定符号量Ｂは小さくなるため、画質は粗くなる。一方、Ｑｃｕｒを基準Ｑｃｕｒより小さくするとＫ１が大きくなる。すなわち、グラフの傾きが急になる。よって、基準Ｑｃｕｒを用いたときと比較すると、同じ誤差量ＡＥであっても推定符号量Ｂは大きくなるため、画質は精細になる。実際の量子化処理においても、量子化スケールＱｃｕｒを大きくすると画質は粗くなり、量子化スケールＱｃｕｒを小さくすると画質は精細になるため、この係数を利用すると、的確に推定符号量を推定できる。
【００８９】
次に、符号化装置２１０の処理手順を説明する。図９は、符号化装置２１０における符号化処理の手順を示す。まずステップＳ９０において、評価部２１３は、比例係数Ｋ１の値を所定値（例えば、１／１６）として設定する。符号化開始時はまだＫ１が求められていないためである。
【００９０】
次に、ステップＳ９１において、符号化装置２１０は動画像データを受け取って、入力画像メモリ１０１に格納する。そしてステップＳ９２において、入力画像メモリ１０１はピクチャの一部（ブロック）ごとの画像データを出力する。
【００９１】
ステップＳ９３において、評価部２１３は、比例係数Ｋ１を用いて各予測モードに対応する評価値Ｊを算出する。そしてステップＳ９４において、評価部２１３は、各予測モードに対して算出された評価値Ｊを比較し、最小の評価値Ｊを与える予測モードを動き補償の予測モードとして選択する。
【００９２】
ステップＳ９５において、符号化装置２１０は、選択された予測モードでの面間予測符号化あるいは動き補償を行わない画面内符号化のいずれかによって対象ブロックの画像データを符号化する。
【００９３】
先のステップＳ９５において画面間予測符号化が行われた場合には、次のステップＳ９６において評価部２１３は、動き補償に使用した予測モードに対するＡＥ、Ｑ、Ｂを蓄積する。
【００９４】
さらに評価部２１３は、ステップＳ９７において、過去の一定期間に蓄積されたＡＥ、Ｑ、Ｂの平均値ＡＥ＿ａｖｅ、Ｑ＿ａｖｅ、Ｂ＿ａｖｅ、および次の対象ブロックの量子化スケールＱｃｕｒを用いて比例係数Ｋ１を更新する。
【００９５】
ステップＳ９８において、次に符号化装置２１０は、そのピクチャのすべてのブロックを符号化したか否かを判定する。すべてのブロックを符号化していないときはステップ９２からの処理を継続し、符号化が完了したときにはステップＳ９９に進む。ステップＳ９９において、符号化装置２１０はすべての動画像データの符号化が完了したか否かを判定する。完了していないときにはステップ９２からの処理を継続する。
【００９６】
なお、図９のフローチャートでは、ブロック毎にステップＳ９７の処理を行っているが、例えば、水平１列のブロック列毎や１画面毎に更新処理を行ってもよい。また、図９のフローチャートでは、ブロック単位の処理ステップ（Ｓ９２からＳ９７の処理）を全て終了してから次のブロックの処理に移っているが、これらの処理はパイプライン処理（例えば、Ｎ番目のブロックはＳ９２、（Ｎ−１）番目のブロックはＳ９３、（Ｎ−２）番目のブロックはＳ９４等）として並列的に実行しもよい。
【００９７】
また、本実施形態においては、予測誤差画像データの誤差量として、ブロック間の差分絶対値総和を用いたが、予測誤差画像データの二乗総和、二乗総和の平方根、分散、標準偏差のような予測誤差画像データの類似度に関連する値であれば他の統計量でもかまわない。
【００９８】
また、本実施形態においては、予測ベクトルとして、符号化対象ブロックの左隣ブロックの動きベクトルまたは大きさが０の動きベクトルのいずれかを用いた。しかし、予測ベクトルの決定方法はこれに限られない。例えば、符号化対象ブロックに隣接する一つ以上のブロックの動きベクトルの平均値、中央値、最頻値のいずれかを用いてベクトルを決定してもよい。
【００９９】
また、動きベクトル成分の評価値として、推定符号量ではなく、符号化対象ブロックの動きベクトルを実際に可変調符号化（ＶＬＣ）して得られる符号量を用いてもよい。または、可変長符号化を簡略化した算出式で求められる推定符号量を用いてもよい。
【０１００】
（実施形態２）
図１０は、本実施形態による符号化装置３００の構成を示す。符号化装置３００は、実施形態１において説明した符号化装置２１０に代えて、図３のレコーダ２００の一部として実装されうる。
【０１０１】
以下、符号化装置３００を説明する。なお、符号化装置３００の構成要素のうち、実施形態１による符号化装置２１０の構成要素と機能が共通するものに対しては同じ参照符号を付し、その説明は省略する。
【０１０２】
画像符号化装置３００は、入力画像メモリ１０１、減算部１０２、直交変換部１０３、量子化部１０４、可変長符号化部１０５、逆量子化部１０６、逆直交変換部１０７、加算部１０８、参照画像メモリ１０９、動き検出部１１０、予測モード決定部２１１、動き補償部１１２、評価部３１３、係数更新部３１４を備える。
【０１０３】
評価部３１３は、予測モードごとに、動き検出部１１０から出力された誤差量と動きベクトル、係数更新部３１４で決定された比例係数および補正係数を用いて各予測モードに対する評価値を算出する。例えば、ＭＰＥＧで使用される予測モードの一つである片方向フレーム予測に対する評価値Ｊを算出するための評価関数として、数６に示されるようなものが考えられる。数６の右辺第１項は予測誤差画像データに関する評価値（推定符号量）であり、右辺第２項は動きベクトルに関する評価値（推定符号量）にそれぞれ対応する。
【０１０４】
（数６）Ｊ＝Ｍａｘ（Ｋ１＊ＡＥ＋Ｋ２，０）＋Ｋｍｖ＊ΔＭＶ
【０１０５】
ここで、数６のＫ１は比例係数、Ｋ２は補正係数である。ＫｍｖおよびΔＭＶ
は実施の形態１と同じパラメータである。
【０１０６】
図１１は、数６の右辺第１項（予測誤差データに関する推定符号量）のグラフを示す。このグラフが図８に示す実施形態１による推定符号量のグラフと相違する点は、誤差量ＡＥの値が点ＡのＡＥ座標値よりも大きくなると推定符号量が増加し始める点である。
【０１０７】
すなわち図８に示すグラフによれば、誤差量ＡＥが小さい場合であっても符号量が発生すると推定されるのに対し、図１１に示すグラフは原点Ｏから点Ａの間は、推定符号量は０であると推定される。その理由は、誤差量ＡＥが小さいとき（ＡＥの値が原点Ｏから点Ａの間に含まれるとき）は、量子化によって変換係数が全て０になるため、符号量が発生しないと考えられるからである。なお、「０」に代えて、０近傍の値を利用してもよい。
【０１０８】
この理論に基づく計算手順を説明すると、評価部３１３は、各予測モードの誤差量が、過去に符号化されたブロックに関する量子化変換係数の全ての係数が０となった誤差量の平均値よりも小さいか否かを判断する。そして、小さい場合には、数６のＭａｘ（Ｋ１＊ＡＥ＋Ｋ２，０）＝０として評価値を計算する、これは、Ｋ１＊ＡＥ＋Ｋ２を０と計算することと同義である。なお、上述の説明においては、各予測モードの誤差量と、過去に符号化されたブロックに関する誤差量の平均値とを比較している。しかし、平均値ではなく、たとえば最大値であってもよい。
【０１０９】
本実施形態による推定は、実際の量子化処理を考慮して、推定量を計算していることが理解される。従って、図６のようにＫ１とＫ２を用いることによって、より精度の高い推定符号量を算出することができる。なお、数６において、誤差量ＡＥにＫ１を乗じてＫ２を加算した後に閾値０で下限を制限している理由は、推定符号量が負にならないようにするためである。
【０１１０】
係数更新部３１４は、比例係数および補正係数を更新する。これらの係数の更新にあたり、係数更新部３１４は、過去に符号化されたブロックについて、予測モード決定部２１１で決定された予測モードの誤差量、可変長符号化部１０５から出力された発生符号量、量子化部１０４で決定された量子化スケール（過去に利用されたものおよび現在の符号化対象ブロックについて利用されるものの両方）を利用する。
【０１１１】
係数更新部３１４は、たとえば上述の数６に含まれるＫ１およびＫ２を更新する。Ｋ１、Ｋ２の更新方法の例を数７、数８に示す。
【０１１２】
（数７）Ｋ１＝（Ｂ＿ａｖｅ＊Ｑ＿ａｖｅ）／｛（ＡＥ２＿ａｖｅ−ＡＥ１＿ａｖｅ）＊Ｑｃｕｒ｝
（数８）Ｋ２＝（−１）＊Ｋ１＊ＡＥ１＿ａｖｅ
【０１１３】
ここで、ＡＥ１＿ａｖｅ、ＡＥ２＿ａｖｅはそれぞれ、過去の一定期間に符号化された入力画像データにおいて各ブロックで使用した予測モードの予測誤差データのうち、量子化によって変換係数が全て０になったブロックの誤差量ＡＥの平均値、および量子化によって非０の変換係数が残ったブロックの誤差量ＡＥの平均値を示す。図６のグラフにおける点Ａは座標（ＡＥ１＿ａｖｅ，０）に相当する。また、Ｂ＿ａｖｅ、Ｑ＿ａｖｅ、Ｑｃｕｒは実施の形態１と同じパラメータである。
【０１１４】
数６から数８を利用して、量子化によって変換係数が０になるＡＥの範囲を考慮することにより、推定符号量をより高い精度で算出することができる。
【０１１５】
上述の符号化装置および復号化装置において実行される処理は、汎用コンピュータにおいてコンピュータプログラムを実行することによっても実現できる。そのようなコンピュータプログラムは、例えば図９に示すフローチャートに規定された処理を実行する命令を含んでいる。コンピュータプログラムは、光ディスクに代表される光記録媒体、ＳＤメモリカード、ＥＥＰＲＯＭに代表される半導体記録媒体、フレキシブルディスクに代表される磁気記録媒体等の記録媒体に記録されて、製品として市場を流通する。またはコンピュータプログラムは、インターネットに代表される通信ネットワークを介して伝送される。
【産業上の利用可能性】
【０１１６】
本発明にかかる符号化装置およびそのような符号化装置を実装した動画像記録装置は、動画像データを高能率に圧縮して符号化することができる。特に、画面間予測符号化の動き補償予測において、予測モードを決定するための評価値算出方法で利用する係数を符号化の過程で学習して更新するため、常に適切な予測モードを使用し、安定した画質を得ることができる。
【図面の簡単な説明】
【０１１７】
【図１】従来の動画像符号化装置１００の構成を示す図である。
【図２】符号化対象ブロック（Ｙ）と、誤差量ＡＥ（ｉ，ｊ）を最も小さくする位置（ｉ，ｊ）に存在する、参照画像データ（ＲｅｆＹ）中のブロックの関係を示す図である。
【図３】実施形態１によるレコーダ２００の構成を示す図である。
【図４】（ａ）〜（ｃ）は、３種類の予測方法の概念を示す図である。
【図５】（ａ）および（ｂ）は、ノン・イントラ符号化に関する、符号化対象となるブロックと参照フレーム内のブロックとの関係を示す図である。
【図６】量子化スケールの割り当て表を示す図である。
【図７】ＭＰＥＧ−２規格のデフォルトマトリクス群を示す図である。
【図８】比例係数Ｋ１および誤差量ＡＥと、推定符号量Ｂとの関係を示すグラフを示す図である。
【図９】符号化装置２１０における符号化処理の手順を示すフローチャートである。
【図１０】実施形態による符号化装置３００の構成を示す図である。
【図１１】予測誤差データに関する推定符号量（数６の右辺第１項）のグラフを示す図である。
【符号の説明】
【０１１８】
１００  従来の動画像の符号化装置
１０１  入力画像メモリ
１０２  減算部
１０３  直交変換部
１０４  量子化部
１０５  可変長符号化部
１０６  逆量子化部
１０７  逆直交変換部
１０８  加算部
１０９  参照画像メモリ
１１０  動き検出部
１１１、２１１  予測モード決定部
１１２  動き補償部
２００  レコーダ
２０５  映像信号受信部
２１０  実施形態１による動画像の符号化装置
２１３、３１３  評価部
２１４、３１４  係数更新部
２１５−１、２１５−２  記録部
３００  実施形態２による動画像の符号化装置
【図１】
0005173409.tif 000002
【図２】
0005173409.tif 000003
【図３】
0005173409.tif 000004
【図４】
0005173409.tif 000005
【図５】
0005173409.tif 000006
【図６】
0005173409.tif 000007
【図７】
0005173409.tif 000008
【図８】
0005173409.tif 000009
【図９】
0005173409.tif 000010
【図１０】
0005173409.tif 000011
【図１１】
0005173409.tif 000012