(57)【特許請求の範囲】
【請求項１】
カレントブロックの動きベクトルが上記カレントブロックに隣接する複数のプリディクタの動きベクトルから予測され、予測動きベクトルと上記カレントブロックの動きベクトルとの差分がエントロピー符号化され、上記エントロピー符号化データを含む入力ストリームから上記動きベクトルが復号化される動きベクトル復号化方法であって、
上記カレントブロックの予測動きベクトルを生成するために参照される複数の上記プリディクタがピクチャレイヤの情報（Progressive ／Interlaced、ＮＵＭＲＥＦ＝０または１）と、マクロブロックレイヤの情報（１ＭＶ／４ＭＶ、Predictor flag＝０または１）とによって規定され、
複数の上記プリディクタの動きベクトルの中央値を予測動きベクトルとして選択する第１の予測方法と、上記予測動きベクトルと所定の上記プリディクタの動きベクトルとの差分の絶対値が予め設定されたしきい値より大きい場合に、複数の上記プリディクタの動きベクトルの中で所定の上記プリディクタの動きベクトルを上記予測動きベクトルとして選択すると共に、ＨＹＢＲＩＤＰＲＥＤシンタックスが存在するようになされる第２の予測方法の何れかによって復号を行う動きベクトル復号化方法において、
上記マクロブロックレイヤの情報がない状態で、可能性のある上記マクロブロックレイヤの情報のそれぞれと対応して上記予測動きベクトルを生成し、保持すると共に、生成された上記予測動きベクトルに対応して上記差分の絶対値が予め設定されたしきい値より大きいか否かを判定し、判定結果から上記ＨＹＢＲＩＤＰＲＥＤシンタックスの有無を示すフラグ情報ＵＳＥＤＨＹＢＲＩＤを生成し、生成した上記フラグ情報ＵＳＥＤＨＹＢＲＩＤを上記エントロピー符号化を復号するエントロピー復号化ステップに与え、
上記エントロピー復号化ステップにおいて、上記フラグ情報ＵＳＥＤＨＹＢＲＩＤに対応して上記ＨＹＢＲＩＤＰＲＥＤシンタックス要素の有無が決定され、上記エントロピー復号化ステップから、有ると決定された場合の上記ＨＹＢＲＩＤＰＲＥＤシンタックスと、上記マクロブロックレイヤの情報とが出力され、
上記有ると決定された場合の上記ＨＹＢＲＩＤＰＲＥＤシンタックスと、上記マクロブロックレイヤの情報とから最終的な予測動きベクトルを選択し、上記最終的な予測動きベクトルと上記エントロピー復号化ステップで得られた差分とを加算して動きベクトルを復号化する動きベクトル復号化ステップと
からなる動きベクトル復号化方法。
【請求項２】
上記カレントブロックおよび上記プリディクタは、マクロブロックまたはマクロブロックを分割したブロックである請求項１記載の動きベクトル復号化方法。
【請求項３】
上記エントロピー復号化ステップで得られた上記ピクチャレイヤの情報を使用することによって、生成すべき予測動きベクトルの種類を減少させる請求項１記載の動きベクトル復号化方法。
【請求項４】
カレントブロックの動きベクトルが上記カレントブロックに隣接する複数のプリディクタの動きベクトルから予測され、予測動きベクトルと上記カレントブロックの動きベクトルとの差分がエントロピー符号化され、上記エントロピー符号化データを含む入力ストリームから上記動きベクトルが復号化される動きベクトル復号化装置であって、
上記カレントブロックの予測動きベクトルを生成するために参照される複数の上記プリディクタがピクチャレイヤの情報（Progressive ／Interlaced、ＮＵＭＲＥＦ＝０または１）と、マクロブロックレイヤの情報（１ＭＶ／４ＭＶ、Predictor flag＝０または１）とによって規定され、
複数の上記プリディクタの動きベクトルの中央値を予測動きベクトルとして選択する第１の予測方法と、上記予測動きベクトルと所定の上記プリディクタの動きベクトルとの差分の絶対値が予め設定されたしきい値より大きい場合に、複数の上記プリディクタの動きベクトルの中で所定の上記プリディクタの動きベクトルを上記予測動きベクトルとして選択すると共に、ＨＹＢＲＩＤＰＲＥＤシンタックスが存在するようになされる第２の予測方法の何れかによって復号を行う動きベクトル復号化装置において、
上記マクロブロックレイヤの情報がない状態で、可能性のある上記マクロブロックレイヤの情報のそれぞれと対応して上記予測動きベクトルを生成し、保持すると共に、生成された上記予測動きベクトルに対応して上記差分の絶対値が予め設定されたしきい値より大きいか否かを判定し、判定結果から上記ＨＹＢＲＩＤＰＲＥＤシンタックスの有無を示すフラグ情報ＵＳＥＤＨＹＢＲＩＤを生成し、生成した上記フラグ情報ＵＳＥＤＨＹＢＲＩＤを上記エントロピー符号化を復号するエントロピー復号化部に与え、
上記エントロピー復号化部において、上記フラグ情報ＵＳＥＤＨＹＢＲＩＤに対応して上記ＨＹＢＲＩＤＰＲＥＤシンタックス要素の有無が決定され、上記エントロピー復号化部から、有ると決定された場合の上記ＨＹＢＲＩＤＰＲＥＤシンタックスと、上記マクロブロックレイヤの情報とが出力され、
上記有ると決定された場合の上記ＨＹＢＲＩＤＰＲＥＤシンタックスと、上記マクロブロックレイヤの情報とから最終的な予測動きベクトルを選択し、上記最終的な予測動きベクトルと上記エントロピー復号化部で得られた差分とを加算して動きベクトルを復号化する動きベクトル復号化部と
復号化された動きベクトルを蓄積する記憶部と
からなる動きベクトル復号化装置。
【請求項５】
上記カレントブロックおよび上記プリディクタは、マクロブロックまたはマクロブロックを分割したブロックである請求項４記載の動きベクトル復号化装置。
【請求項６】
上記エントロピー復号化部で得られた上記ピクチャレイヤの情報を使用することによって、生成すべき予測動きベクトルの種類を減少させる請求項４記載の動きベクトル復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、離散コサイン変換またはカルーネン・レーベ変換等の直交変換と動き補償によって画像情報を圧縮する画像符号化方法において、符号化された動きベクトルを復号化するのに適用される動きベクトル復号化方法および復号化装置に関する。
【背景技術】
【０００２】
近年、画像情報をディジタルとして取り扱い、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するＭＰＥＧなどの方式に準拠した画像情報符号化装置や復号化装置が、放送局などの情報配信、および一般家庭における情報受信の双方において普及しつつある。
【０００３】
特に、ＭＰＥＧ２（ＩＳＯ（International Organization for Standardization）／ＩＥＣ（International Electrotechnical Commition）１３８１８−２）は、汎用画像符号化方式として定義されている。またＭＰＥＧ２は、飛び越し走査画像および順次走査画像の双方、並びに標準解像度画像および高精細画像を網羅する標準で、現在、プロフェッショナル用途およびコンシューマー用途の広範なアプリケーションに広く用いられている。
【０００４】
ＭＰＥＧ２は、主として放送用に適合する高画質符号化を対象としていたが、ＭＰＥＧ１より小さい符号量（低ビットレート）、つまり、より高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してＭＰＥＧ４符号化方式の標準化が行われた。画像符号化方式に関しては、１９９８年１２月にＩＳＯ／ＩＥＣ１４４９６−２という規格が国際標準として承認された。
【０００５】
さらに、近年、当初テレビ会議用の画像符号化を目的として策定されたＨ. ２６Ｌ（ＩＴＵ（International Telecommunication Union ）−Ｔ  Ｑ６／１６  ＶＣＥＧ）という標準の規格化が進んでいる。Ｈ．２６Ｌは、ＭＰＥＧ２やＭＰＥＧ４といった従来の符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されることが知られている。また、現在、ＭＰＥＧ４の活動の一環として、このＨ．２６Ｌをベースに、Ｈ．２６Ｌではサポートされない機能も取り入れ、より高い符号化効率を実現する標準化がＪｏｉｎｔＭｏｄｅｌ  ｏｆ  Ｅｎｈａｎｃｅｄ−Ｃｏｍｐｒｅｓｓｉｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇとして行われ、２００３年３月には、Ｈ．２６４／ＡＶＣ（Advanced Video Coding ）という規格が国際標準として認められた。非特許文献１には、この規格に基づく処理の内容が記載されている。
【０００６】
【非特許文献１】「Draft Errata List with Revision-Marked Corrections for H.264/AVC」, JVT-1050, Thomas Wiegand et al., Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, 2003
【０００７】
さらに、２００３年９月にマイクロソフトがＳＭＰＴＥ(Society of Motion Picture and Television Engineers)に対してＷＭＶ９にインターレス対応のための拡張を追加したものを提出し、２００５年１０月にＳＭＰＴＥでの規格化作業が終了し、ＳＭＰＴＥ  ４２１Ｍとして発表された。この規格は、ＶＣ−１フォーマットと称される。ＶＣ−１フォーマットは、Ｈ．２６４／ＡＶＣと共通点と相違点を有しており、二つの方式の比較については、例えば下記の非特許文献２に記載されている。
【０００８】
【非特許文献２】日経エレクトロニクス２００４年３月２９日号，131−136頁，および日経エレクトロニクス２００４年４月１２日号，115−120頁，「ベールを脱ぐＷＭＶ９  Ｈ．２６４とはここが違う」
【０００９】
図１および図２は、非特許文献２に記載されているＶＣ−１フォーマットの符号化および復号化の流れを示すブロック図である。入力画像データが分割され、イントラ（フレーム内）予測符号化部１およびインター（フレーム間）予測符号化部２にそれぞれ入力される。イントラ予測符号化部１が直交変換部３および量子化部４からなり、量子化部４からの量子化された係数データがエントロピー符号化（可変長符号化）部５に供給される。エントロピー符号化部５から可変長符号化された符号化データが出力される。
【００１０】
インター予測符号化部２は、入力画像データと局部復号化画像データとの差分を得るための加算器６、差分を直交変換する直交変換部７および直交変換部７からの係数データを量子化する量子化部８とからなる。量子化部８からの量子化された係数データがエントロピー符号化部９に供給される。エントロピー符号化部９から可変長符号化された符号化データが出力される。
【００１１】
局部復号化のために、量子化部４および８のそれぞれの出力が供給される逆量子化部１０、直交変換の逆の変換を行う逆変換部１１、動き補償部１２、動き補償部１２の出力と逆変換部１１の出力を加算する加算器１３、加算器１３の出力が供給され、ブロック境界を平滑化するためのデブロックフィルタ１４、および入力画像データの動きを検出する動き予測部１５が設けられている。動き予測部１５で形成された動きベクトルが動き補償部１２に供給されると共に、予測符号化され、エントロピー符号化部９に対して供給される。
【００１２】
入力画像信号は、イントラ予測で符号化されるものと、インター予測で符号化されるものとに分離され、それぞれイントラ予測符号化部１およびインター予測符号化部２に対して供給される。イントラ予測符号化部１では、単一のフレームを用いて符号化が行われる。イントラ予測符号化部１では、入力画像の画素値と、イントラ予測で生成された画素値の差分情報が直交変換部３に入力され、ここで離散コサイン変換、カルーネン・レーベ変換等の直交変換が施される。直交変換部３の出力（変換係数）が量子化部４に提供され、量子化部４において量子化処理が施される。量子化部４からの量子化された変換係数がエントロピー符号化部５に供給されて可変長符号化が施される。
【００１３】
インター予測符号化部２では、複数のフレームの画像情報を用いて入力画像信号が符号化される。ローカル復号化によって動き補償部１２から得られた参照画像と入力画像との差分が加算器６の出力に得られる。動き補償部１２では、入力フレームと異なる他のフレームの画像情報の動き補償処理が行われ、参照画像情報が生成される。動き補償のために動き予測部１５からの動きベクトルが使用され、また、動きベクトル情報がエントロピー符号化部９に出力され、動きベクトル情報が可変長符号化され、画像圧縮情報のヘッダ部に挿入される。その他の処理はイントラ符号化に関するものと同様である。
【００１４】
次に、図２のブロック図を参照して、画像情報復号化装置について説明する。受け取った符号化データがイントラ予測で復号されるものと、インター予測で復号されるものとに分けられ、イントラ予測復号化部２１およびインター予測復号化部２２にそれぞれ供給される。
【００１５】
イントラ予測復号化部２１は、エントロピー復号化（可変長符号の復号化）部２３と、量子化の逆の処理を行う逆量子化部２４と、直交変換の逆の変換を行う逆変換部２５と、ブロック歪みの軽減のためのデブロッキング・フィルタ２６とからなる。デブロッキング・フィルタ２６の出力に復号画像が得られる。
【００１６】
インター予測復号化部２２は、エントロピー復号化部２３と、量子化の逆の処理を行う逆量子化部２８と、直交変換の逆の変換を行う逆変換部２９と、加算器３０と、ブロック境界を平滑化するためのデブロッキング・フィルタ３１と、動きベクトル復号化部３２と、復号された動きベクトルによって動き補償を行う動き補償部３３とからなる。動き補償部３３において、デブロッキング・フィルタ３１から得られる復号画像が動き補償され、復号画像が加算器３０に供給される。加算器３０において、逆変換部２９からの差分信号と復号画像信号とが加算される。
【００１７】
ＶＣ−１フォーマットは、ＭＰＥＧなどと異なる処理がなされている。非特許文献２によれば、主なものを列挙すると以下の通りである。
【００１８】
１．適応型ブロック・サイズによる直交変換
（複数のサイズの直交変換ブロックを使用して直交変換を行う。）
２．１６ビット処理を前提とした直交変換セット
（１６ビットの固定小数点演算を使用して逆変換を実装し、復号化時の演算量を抑える。）
３．動き補償
（探索ブロックと、動きベクトルの検出の画素単位と、予測値生成に使用するフィルタの種類との３つのパラメータの組合せによる４つの動き補償のモードを規定する。）
４．量子化と逆量子化
（２つの量子化の方法が切り換えられる。）
５．デブロッキング・フィルタ
（ブロック境界に不連続が生じるのを防止するために、Ｈ．２６４／ＡＶＣと同様にデブロッキング・フィルタを導入して、ブロック境界を平滑化している。）
６．２つのインタレース符号化方式
（インタレース符号化方式としてInterlaced fieldピクチャ符号化方式と、Interlaced frameピクチャ符号化方式との２つの方式が可能とされている。）
７．Ｂピクチャの符号化方式
（参照するピクチャに対するＢピクチャの位置関係を明示して符号化する等の特徴を有する。）
【００１９】
この発明は、上述したＶＣ−１フォーマットの復号化装置における動きベクトル復号化部３２における動きベクトルの予測復号に適用される。動きベクトルの符号量を減らすために、符号化対象のマクロブロック（カレントマクロブロックと称する）の上、右上、および左にそれぞれ隣接するマクロブロックの動きベクトルの中間値（動きベクトルのｘ成分およびｙ成分のそれぞれに関する中間値）を予測動きベクトルとし、カレントマクロブロックの動きベクトルと予測動きベクトルとの差分を符号化し、復号化時には、予測動きベクトルを生成し、生成した動きベクトルと差分とを加算して動きベクトルを復号化している。この処理は、第１の予測方法としてのメジアン予測（Median Prediction ）と呼ばれる。メジアン予測は、画面全体の動きベクトルの変化が緩やかな場合に、動きベクトルの符号量を大幅に削減することができる。
【００２０】
一方、メジアン予測の場合では、局所的に大きさ、方向が大幅に異なる動きベクトルが出現した場合、予測によってかえって差分が大きくなることがある。ＶＣ−１フォーマットでは、メジアン予測のみならず、メジアン予測を使用しないで、上または左に隣接するブロックの動きベクトルをそのまま予測値として利用するブロックを指定することが可能とされている。ＶＣ−１フォーマットでは、この動きベクトルの第２の予測方法がハイブリッド予測と称される。ハイブリッド予測については、後でより詳細に説明する。
【００２１】
次に、ＶＣ−１フォーマットにおいて規定されている動きベクトル予測方式を図面を参照して説明する。予測対象のマクロブロック（以下、カレントマクロブロックと称する）の動きベクトル、または予測対象のブロック（以下、カレントブロックと称する）の動きベクトルは、隣接する複数のマクロブロックまたはブロックの動きベクトルを使用してなされる。この予測に使用される隣接するマクロブロックまたはブロックをプリディクタと称する。また、隣接するマクロブロックまたはブロック中で使用される複数のプリディクタをパターンと称する。
【００２２】
また、この明細書では、「ＳＭＰＴＥ  ４２１Ｍ」 "DRAFT SMPTE STANDARD for Television:VC-1 Compressed Video Bitstream Format and Decoding Process" の中で使用さ
れているのと同様の用語を適宜使用する。用語の意味は、下記の通りである。
【００２３】
ＶＬＤ：可変長復号化部(Variable Length Decoder)
ＭＶＰ：動きベクトル予測部(Motion Vector Prediction)
ＭＶ：動きベクトル(Motion Vector)
ＭＢ：マクロブロック（１ＭＶmodeは、１ＭＢに１ＭＶのモードを意味し、４ＭＶmodeは、各ブロック（８×８のサイズ）に１ＭＶのモードを意味する。）
プリディクタＭＶ：周囲のＭＢ／ブロックの中から所定のアルゴリズムで検出される復号済みの動きベクトルであり、プリディクタＭＶを使用してカレントＭＢ／ブロックの予測動きベクトルが求められる。
イントラＭＢ／ブロック：動きベクトルを持たず、ブロックレイヤの情報のみで復号できるＭＢ／ブロック
インターＭＢ／ブロック：動きベクトルを持ち、復号のために復号済みピクチャの参照が必要なＭＢ／ブロック
ＤＭＶ：ＶＬＤがＭＶＤＡＴＡ、ＢＬＫＭＶＤＡＴＡシンタックス要素より復号する差分ベクトル値
ＰＭＶ：ＭＶＰがプリディクタＭＶから所定のアルゴリズムで計算するベクトル値
ＭＶＤＡＴＡ：１ＭＶmodeのときのＤＭＶ情報を表すシンタックス要素（可変長で、０〜１個／１ＭＢ）
ＢＬＫＭＶＤＡＴＡ：４ＭＶmodeのときのＤＭＶ情報を表すシンタックス要素（可変長で、０〜４個／１ＭＢ）
ＨＹＢＲＩＤＰＲＥＤ：ハイブリッド予測に使用されるシンタックス要素（１ビットで、０〜４個／１ＭＢ）
ビットプレーン：各ＭＢの１ビット情報を１ピクチャ分まとめて符号化したデータ構造で、ビットプレーン中に下記のＭＶＤＡＴＡＢＩＴが含まれている。
ＭＶＤＡＴＡＢＩＴ：１ＭＶ／４ＭＶmodeを指定するシンタックス要素（１ビットで、１個／１ＭＢまたはビットプレーン）
ＮＵＭＲＥＦ(Number of Reference Pictures)：インタレースＰフィールドヘッダにのみ存在する１ビットシンタックス要素である。ＮＵＭＲＥＦ＝０ならば、カレントインタレースＰフィールドピクチャが１フィールドを参照する。ＮＵＭＲＥＦ＝１ならば、カレントインタレースＰフィールドピクチャがディスプレイ順序において時間的に最も近いＩまたはＰフィールドピクチャを参照する。ＮＵＭＲＥＦは、Ｐフィールドピクチャの復号に使用される。
Predictor flag：Interlaced fieldで且つＮＵＭＲＥＦ＝１のとき１ビット存在するシンタックス要素
【００２４】
図３は、単一の動きベクトルによってマクロブロック（ＭＢ）の全ての６個のブロックが予測ブロックに置換される、Progressive  １−ＭＶ  Ｐピクチャにおける動きベクト
ル予測を説明するもので、カレントＭＢ（斜線で示す）と隣接する３個のＭＢを示している。図３Ａは、カレントＭＢの上のＭＢ（プリディクタＡ）、カレントＭＢの右上のＭＢ（プリディクタＢ）およびカレントＭＢの左のＭＢ（プリディクタＣ）を示す。これらのプリディクタのＭＶの中間値をカレントＭＢの予測動きベクトル（ＰＭＶ）とし、カレントＭＢの差分がＰＭＶと加算され、カレントＭＢのＭＶが復号される。
【００２５】
マクロブロック配列の行（ロウまたはスライスとも称される）の一番右端の場合には、右上のＭＢが存在しないので、図３Ｂに示すように、カレントＭＢの左上のＭＢがプリディクタＢとして使用される。処理の順序からカレントＭＢの復号化時では、ＰＭＶの生成に必要とされる３個のプリディクタが得られている。なお、隣接ブロックがイントラ符号化ブロックの場合には、プリディクタＭＶのＭＶがゼロとされる。
【００２６】
Ｐピクチャの他のタイプとして、Mixed−ＭＶ  Ｐピクチャがある。これは、各ＭＢが
１−ＭＶmodeＭＢまたは４−ＭＶmodeＭＢとして復号されるものである。４−ＭＶmodeＭＢでは、４個の輝度ブロックのそれぞれが動きベクトルを持つ。
【００２７】
図４は、Progressive  Mixed−ＭＶ  Ｐピクチャにおける１−ＭＶmodeＭＢの動きベクトルの予測を示す。図４において、大きい矩形が(16×16)のサイズのＭＢを示し、小さい矩形が(8×8)のサイズの直交変換の単位のブロックを示す。図４では、カレントマクロブロックの周囲の隣接ブロックが４−ＭＶmodeＭＢと仮定している。この場合では、各ＭＢの中の所定のブロックがプリディクタとして使用される。
【００２８】
１ＭＢ内の輝度信号の４個のブロックを規定するために、位置に応じてブロック０〜ブロック３が定義されている。すなわち、図面に向かって左上のブロックがブロック０であり、右上のブロックがブロック１であり、左下のブロックがブロック２であり、右下のブロックがブロック３である。図４Ａに示すように、右上の隣接ブロックのブロック２をプリディクタＢとし、上の隣接ブロックのブロック２をプリディクタＡとし、左の隣接ブロックのブロック１をプリディクタＣとする。これらのプリディクタＡ、ＢおよびＣを使用してカレントＭＢの１個のＰＭＶが計算される。
【００２９】
カレントＭＢが行の端の場合には、図４Ｂに示すように、上、左上、左の３個の隣接ＭＢのそれぞれのブロック２、ブロック３およびブロック１がプリディクタとして使用され、カレントＭＢの１個のＰＭＶが計算される。
【００３０】
図５は、Progressive  Mixed−ＭＶ  Ｐピクチャにおける４−ＭＶmodeＭＢの動きベクトルの予測を示す。カレントＭＢ内で４個のカレントブロック（ブロック０〜ブロック３）のそれぞれのＰＭＶが計算される。
【００３１】
図５Ａに示すように、カレントＭＢが行中の最初のＭＢでなければ、カレントＭＢの上、左上、左のＭＢが隣接ＭＢとされ、それぞれの中でカレントＭＢのブロック０の上、左上、左のブロックのそれぞれがプリディクタＡ、ＢおよびＣとして使用される。
【００３２】
図５Ｂに示すように、カレントＭＢが行中の最初のＭＢであれば、カレントＭＢの上のＭＢが隣接ＭＢとされ、隣接ＭＢの中でカレントＭＢのブロック０の上および右上のブロックのそれぞれがプリディクタＡおよびＢとして使用される。プリディクタＣのＭＶが０に設定される。
【００３３】
図５Ｃに示すように、カレントＭＢが行中の最後のＭＢでなければ、カレントＭＢの上および右上のＭＢが隣接ＭＢとされ、それぞれの中でカレントＭＢのブロック１の上および右上のブロックがプリディクタＡおよびＢとして使用される。プリディクタＣは、カレントＭＢ内のブロック１の左のブロックが使用される。
【００３４】
図５Ｄに示すように、カレントＭＢが行中の最後のＭＢであれば、カレントＭＢの上のＭＢが隣接ＭＢとされ、隣接ＭＢの中でカレントＭＢのブロック１の上および左上のブロックのそれぞれがプリディクタＡおよびＢとして使用される。プリディクタＣは、カレントＭＢ内のブロック１の左のブロックが使用される。
【００３５】
図５Ｅに示すように、カレントＭＢのブロック２に関しては、同じＭＢ内の上および右上のブロックがプリディクタＡおよびＢとされ、左の隣接ＭＢ内がプリディクタＣとして使用される。
【００３６】
図５Ｆに示すように、カレントブロックがカレントＭＢ内のブロック３の場合には、同一のＭＢ内の他の３個のブロックがそれぞれプリディクタＡ、ＢおよびＣとして使用される。
【００３７】
次に、インタレースの場合の動きベクトル予測について説明する。図６Ａは、Interlaced field  １−ＭＶ  Ｐピクチャにおける動きベクトル予測を説明するものである。前述したProgressive  １−ＭＶ  Ｐピクチャにおける動きベクトル予測（図３Ａ）と同様に
してＭＶが予測される。また、図６Ｂに示すように、行の最後の場合には、図３Ｂの場合と同様に、カレントＭＢの左上のＭＢがプリディクタＢとして使用される。
【００３８】
図７は、Interlaced fieldＰピクチャにおける１−ＭＶmodeＭＢの動きベクトルの予測を示す。図７において、大きい矩形が(16×16)のサイズのＭＢを示し、小さい矩形が(8×8)のサイズの直交変換の単位のブロックを示す。図７では、隣接ＭＢが４−ＭＶmodeＭＢと仮定している。この場合では、各隣接ＭＢの中の所定のブロックがプリディクタとして使用される。
【００３９】
図７Ａに示すように、右上の隣接ＭＢのブロック２をプリディクタＢとし、上の隣接ＭＢのブロック２をプリディクタＡとし、左の隣接ＭＢのブロック１をプリディクタＣとする。これらのプリディクタＡ、ＢおよびＣを使用してカレントＭＢの１個のＰＭＶが計算される。
【００４０】
カレントＭＢが行の最後の場合には、図７Ｂに示すように、上、左上、左の３個の隣接ＭＢのそれぞれのブロック２、ブロック２およびブロック１を使用してカレントＭＢの１個のＰＭＶが計算される。
【００４１】
図８は、Interlaced field Mixed−ＭＶ  Ｐピクチャにおける４−ＭＶmodeの動きベクトルの予測を示す。カレントＭＢ内の４個のカレントブロック（ブロック０〜ブロック３）のそれぞれのＰＭＶが計算される。
【００４２】
図８Ａ、図８Ｂおよび図８Ｃは、カレントＭＢの左上のブロック０の動きベクトルの予測を説明するものである。図８Ａに示すように、カレントＭＢが行の最初のＭＢでなければ、カレントＭＢの上のＭＢのブロック２、左上のＭＢのブロック３および左のＭＢのブロック１がプリディクタＡ、ＢおよびＣとして使用される。
【００４３】
図８Ｂに示すように、カレントＭＢが行中の最初のＭＢであれば、カレントＭＢの上のＭＢのブロック２およびブロック３がプリディクタＡおよびＢとして使用される。この場合では、プリディクタＣのＭＶが０とされる。
【００４４】
フレームが１ＭＢワイドである特殊な場合では、図８Ｃに示すように、プリディクタＢおよびＣのＭＶが０とされ、上のＭＢのブロック２のプリディクタがカレントブロックのＰＭＶとされる。
【００４５】
図８Ｄおよび図８Ｅは、カレントＭＢのブロック１の動きベクトルの予測を説明するものである。カレントＭＢが行の最後のＭＢでなければ、カレントＭＢの上のＭＢのブロック２、右上のＭＢのブロック２および同じＭＢのブロック０がプリディクタＡ、ＢおよびＣとして使用される。
【００４６】
図８Ｅに示すように、カレントＭＢが行中の最後のＭＢであれば、カレントＭＢの上のＭＢのブロック２およびブロック３がプリディクタＡおよびＢとしてそれぞれ使用される。この場合では、同じＭＢのブロック０がプリディクタＣとして使用される。
【００４７】
図８Ｆは、カレントＭＢのブロック２の動きベクトルの予測を説明するものである。同じＭＢのブロック０およびブロック１がプリディクタＡおよびＢとして使用され、左の隣接ＭＢのブロック３がプリディクタＣとして使用される。カレントＭＢが行の最初の場合では、プリディクタＣのＭＶが０とされる。
【００４８】
カレントＭＢのブロック３の動きベクトルは、図８Ｇに示すように、同じＭＢの他の３個のブロックがプリディクタＡ、ＢおよびＣとして使用して予測される。
【００４９】
フレームが１ＭＢワイドである特殊な場合では、図８Ｈに示すように、プリディクタＢおよびＣのＭＶが０とされ、同じＭＢのブロック０のプリディクタＡがカレントブロックのＰＭＶとされる。
【００５０】
上述したように、ピクチャレイヤの情報（Progressive／Interlaced、ＮＵＭＲＥＦ＝
０または１）と、マクロブロックレイヤの情報（１ＭＶ／４ＭＶ、Predictor flag＝０または１）と、行の端かどうかによって、動きベクトル予測に使用するプリディクタのパターンが相違する。
【００５１】
動きベクトル復号化部は、ＶＬＤ（可変長復号化部）とＭＶＰ（動きベクトル予測部）とにより構成される。ＶＣ−１フォーマットで圧縮されたビデオのビットストリームを復号する場合、ＶＬＤは、直前に復号した情報を利用してシンタックス要素の種類や数を判断する。ＶＬＤが復号した現在のシーケンスや、ピクチャや、スライスや、ＭＢの情報は、参照が容易なメモリの領域に保持しておき、その情報をＶＬＤが再帰的に利用することによって下位のレイヤの復号がなされる。
【００５２】
しかしながら、ＶＣ−１フォーマットに存在する、ハイブリッド予測に関するＨＹＢＲＩＤＰＲＥＤシンタックス要素は、ＭＶＰの処理結果を用いないと復号することができない。ＭＶＰは、上述したように、既に復号が終了し、確定した周囲のＭＶ情報と、ＶＬＤが復号した当該ＭＢ（カレントマクロブロック）情報を利用して当該ＭＢのＭＶを確定する。すなわち、ＭＶＰは、当該ＭＢに隣接するプリディクタＡ、プリディクタＢおよびプリディクタＣの情報を取得し、それぞれのベクトル値（ＰＭＶ Ａ，ＰＭＶ Ｂ，ＰＭＶ Ｃと表記する）をＶＣ−１フォーマットで定められた関数により変換して一つのベクトル値ＰＭＶを得る。
【００５３】
当該ＭＢの最終的なＭＶは、このＰＭＶにビットストリームから復号された差分（ＤＭＶ）を加算し、所定の範囲に収まるようにクリッピング処理して得られる。但し、ＰＭＶとＰＭＶ Ａの差分の絶対値が仕様に定められたしきい値より大きい場合、またはＰＭＶとＰＭＶ Ｃの差分の絶対値が仕様に定められたしきい値より大きい場合では、ビットストリーム中にＨＹＢＲＩＤＰＲＥＤシンタックス要素が存在することが仕様に規定されている。
【００５４】
ＨＹＢＲＩＤＰＲＥＤシンタックス要素は、１ビット固定長であり、これが０（論理的な０）の場合では、ＰＭＶ＝ＰＭＶ ＡとＰＭＶの値が設定し直され、これが１（論理的な１）の場合では、ＰＭＶ＝ＰＭＶ ＣとＰＭＶの値が設定し直される。このように更新されたＰＭＶにビットストリームから復号された差分（ＤＭＶ）を加算し、加算結果が所定の範囲に収まるようにクリッピング処理して最終的なＭＶが得られる。以上の処理がＶＣ−１フォーマット特有のＭＶ予測方式の概要であり、ＨＹＢＲＩＤＰＲＥＤシンタックス要素を利用してＰＭＶを設定し直す機能がハイブリッド予測と呼ばれる。
【００５５】
ハイブリッド予測は、全てのプロファイルのProgressiveＰピクチャと、Advanced ProfileのInterlaced fieldＰピクチャにおいて行われる。Ｂピクチャや、Interlaced frame
Ｐピクチャでは行われない。言うまでもないが、ＭＶのないＩ／ＢＩピクチャでは行われない。ハイブリッド予測が行われる全てのプロファイルのProgressiveＰピクチャと、Advanced ProfileのInterlaced fieldＰピクチャでは、１ＭＶmodeのとき、ＨＹＢＲＩＤＰ
ＲＥＤシンタックス要素は、１ＭＢ当たりで１つ存在し、Mixed ＭＶmodeのときＨＹＢＲＩＤＰＲＥＤシンタックス要素は、１ＭＢ当たりで４個存在する。
【００５６】
図９は、規格書に記載のアルゴリズムに沿って実装されたＭＶ復号化部３２の構成を示す。ＭＶ復号化部３２は、ＶＬＤ４１と、ＭＶＰ４２と、ＳＤＲＡＭ(Synchronous Dynamic Random Access Memory)等のＭＶ記憶領域４３とから構成される。ＭＶＰ４２は、ＰＭＶ算出部４２ａとＭＶ算出部４２ｂとを備えている。また、図１０は、ＶＬＤ４１とＭＶＰ４２との間のデータのやりとりを時間順に示す。
【００５７】
ＶＬＤ４１は、ＨＹＢＲＩＤＰＲＥＤシンタックス要素が存在する可能性のあるビットの手前まで復号を行い、それまでに得たピクチャパラメータをＭＶＰ４２のＰＭＶ算出部４２ａに伝送し（図１０中のステップＳＴ１）、さらに、ＭＢ情報（イントラ／１ＭＶ／４ＭＶmode、ＤＭＶ情報）をＭＶＰ４２のＭＶ算出部４２ｂに出力し（ステップＳＴ２）、その時点で復号を停止する。
【００５８】
ＰＭＶ算出部４２ａは、ＶＬＤ４１からのピクチャパラメータおよびＭＢ情報と、ＭＶ記憶領域４３に蓄積されている隣接ＭＢ／ブロックの３個のベクトル値（ＰＭＶ Ａ，ＰＭＶ Ｂ，ＰＭＶ Ｃ）とを使用してＶＣ−１で定められた関数による変換によってＰＭＶを得る。この方法がメジアン予測である。例えば、３個のベクトル値の中央値が選択される。ＭＶＰ４２は、ＰＭＶとＰＭＶ Ａの差分の絶対値が仕様に定められた値より大きい場合、またはＰＭＶとＰＭＶ Ｃの差分の絶対値が仕様に定められた値より大きい場合では、ビットストリーム中にＨＹＢＲＩＤＰＲＥＤシンタックス要素がＶＬＤに対する入力ストリーム中に存在すると判定し、判定結果を示す１ビットのフラグＵＳＥＤＨＹＢＲＩＤをＶＬＤ４１に対して出力する（ステップＳＴ３）。
【００５９】
ＵＳＥＤＨＹＢＲＩＤを受け取ったＶＬＤ４１は、ＭＶＰ４２がＨＹＢＲＩＤＰＲＥＤシンタックス要素有りと判定した場合は、ビットストリームの復号停止位置直後の１ビットをＨＹＢＲＩＤＰＲＥＤシンタックス要素としてＭＶＰ４２に出力する（ステップＳＴ４）。ＭＶＰ４２がＨＹＢＲＩＤＰＲＥＤシンタックス要素無しと判定した場合は、ＶＬＤ４１は、次のシンタックス要素の復号を再開する（ステップＳＴ５，ステップＳＴ６，・・・）。
【００６０】
ＵＳＥＤＨＹＢＲＩＤによってＨＹＢＲＩＤＰＲＥＤシンタックス要素が有りと判定された場合には、ステップＳＴ４においてＭＶＰ４２がＨＹＢＲＩＤＰＲＥＤシンタックス要素を受け取る。ＭＶＰ４２は、ＨＹＢＲＩＤＰＲＥＤシンタックス要素が０の場合は、ＰＭＶ＝ＰＭＶ ＡとＰＭＶの値を更新し、ＨＹＢＲＩＤＰＲＥＤシンタックス要素が１の場合は、ＰＭＶ＝ＰＭＶ ＣとＰＭＶの値を更新する。更新されたＰＭＶにビットストリームから復号されたＤＭＶを加算し、所定の範囲に加算結果が収まるようにクリッピング処理が行われ、当該ＭＢのＭＶが決定される。復号されたＭＶがＭＶ記憶領域４３に格納される。また、復号されたＭＶがＭＶ記憶領域４３から読み出され、動き補償のために使用される。
【発明の開示】
【発明が解決しようとする課題】
【００６１】
従来のＭＶ予測装置においては、図１０において、Ｗ１，Ｗ２，Ｗ３で示すようなデータ待ち時間が発生する。データ待ち時間Ｗ１は、ＭＶＰ４２がピクチャパラメータを受け取ってからＭＢ情報を受け取るまでに発生する。データ待ち時間Ｗ２は、ＭＶＰ４２がＨＹＢＲＩＤＰＲＥＤシンタックス要素の有無を判定し、ＶＬＤ４１が判定結果のフラグＵＳＥＤＨＹＢＲＩＤをＭＶＰ４２から受け取るまでに発生する。データ待ち時間Ｗ３は、ＵＳＥＤＨＹＢＲＩＤをＭＶＰ４２が出力してから次のデータをＭＶＰ４２がＶＬＤ４１から受け取るまでに発生する。
【００６２】
これらの待ち時間の中で、待ち時間Ｗ２は、ＨＹＢＲＩＤＰＲＥＤシンタックス要素の有無を判定するまで、復号を停止する時間であり、復号の相互依存を有するＶＣ−１フォーマット特有のものである。ＭＰＥＧ−４や、Ｈ．２６４／ＡＶＣには、ＭＶ予測の機能があるが、ＶＬＤが復号のためにＭＶＰの予測結果を必要としないので、ＭＶ復号において、ＶＬＤとＭＶＰ間に相互依存が起こることがない。
【００６３】
したがって、この発明の目的は、可変長復号処理と動きベクトル予測処理の相互依存により発生する待ち時間を低減し、処理時間の短縮化が可能な動きベクトル復号化方法および復号化装置を提供することにある。
【課題を解決するための手段】
【００６４】
上述した課題を解決するために、この発明は、カレントブロックの動きベクトルがカレントブロックに隣接する複数のプリディクタの動きベクトルから予測され、予測動きベクトルとカレントブロックの動きベクトルとの差分がエントロピー符号化され、エントロピー符号化データを含む入力ストリームから動きベクトルが復号化される動きベクトル復号化方法であって、
カレントブロックの予測動きベクトルを生成するために参照される複数のプリディクタがピクチャレイヤの情報（Progressive ／Interlaced、ＮＵＭＲＥＦ＝０または１）と、マクロブロックレイヤの情報（１ＭＶ／４ＭＶ、Predictor flag＝０または１）とによって規定され、
複数のプリディクタの動きベクトルの中央値を予測動きベクトルとして選択する第１の予測方法と、予測動きベクトルと所定のプリディクタの動きベクトルとの差分の絶対値が予め設定されたしきい値より大きい場合に、複数のプリディクタの動きベクトルの中で所定のプリディクタの動きベクトルを予測動きベクトルとして選択すると共に、ＨＹＢＲＩＤＰＲＥＤシンタックスが存在するようになされる第２の予測方法の何れかによって復号を行う動きベクトル復号化方法において、
マクロブロックレイヤの情報がない状態で、可能性のあるマクロブロックレイヤの情報のそれぞれと対応して予測動きベクトルを生成し、保持すると共に、生成された予測動きベクトルに対応して差分の絶対値が予め設定されたしきい値より大きいか否かを判定し、判定結果からＨＹＢＲＩＤＰＲＥＤシンタックスの有無を示すフラグ情報ＵＳＥＤＨＹＢＲＩＤを生成し、生成したフラグ情報ＵＳＥＤＨＹＢＲＩＤをエントロピー符号化を復号するエントロピー復号化ステップに与え、
エントロピー復号化ステップにおいて、フラグ情報ＵＳＥＤＨＹＢＲＩＤに対応してＨＹＢＲＩＤＰＲＥＤシンタックス要素の有無が決定され、エントロピー復号化ステップから、有ると決定された場合のＨＹＢＲＩＤＰＲＥＤシンタックスと、マクロブロックレイヤの情報とが出力され、
有ると決定された場合のＨＹＢＲＩＤＰＲＥＤシンタックスと、マクロブロックレイヤの情報とから最終的な予測動きベクトルを選択し、最終的な予測動きベクトルとエントロピー復号化ステップで得られた差分とを加算して動きベクトルを復号化する動きベクトル復号化ステップと
からなる動きベクトル復号化方法である。
【００６５】
この発明は、カレントブロックの動きベクトルがカレントブロックに隣接する複数のプリディクタの動きベクトルから予測され、予測動きベクトルとカレントブロックの動きベクトルとの差分がエントロピー符号化され、エントロピー符号化データを含む入力ストリームから動きベクトルが復号化される動きベクトル復号化装置であって、
カレントブロックの予測動きベクトルを生成するために参照される複数のプリディクタがピクチャレイヤの情報（Progressive ／Interlaced、ＮＵＭＲＥＦ＝０または１）と、マクロブロックレイヤの情報（１ＭＶ／４ＭＶ、Predictor flag＝０または１）とによって規定され、
複数のプリディクタの動きベクトルの中央値を予測動きベクトルとして選択する第１の予測方法と、予測動きベクトルと所定のプリディクタの動きベクトルとの差分の絶対値が予め設定されたしきい値より大きい場合に、複数のプリディクタの動きベクトルの中で所定のプリディクタの動きベクトルを予測動きベクトルとして選択すると共に、ＨＹＢＲＩＤＰＲＥＤシンタックスが存在するようになされる第２の予測方法の何れかによって復号を行う動きベクトル復号化装置において、
マクロブロックレイヤの情報がない状態で、可能性のあるマクロブロックレイヤの情報のそれぞれと対応して予測動きベクトルを生成し、保持すると共に、生成された予測動きベクトルに対応して差分の絶対値が予め設定されたしきい値より大きいか否かを判定し、判定結果からＨＹＢＲＩＤＰＲＥＤシンタックスの有無を示すフラグ情報ＵＳＥＤＨＹＢＲＩＤを生成し、生成したフラグ情報ＵＳＥＤＨＹＢＲＩＤをエントロピー符号化を復号するエントロピー復号化部に与え、
エントロピー復号化部において、フラグ情報ＵＳＥＤＨＹＢＲＩＤに対応してＨＹＢＲＩＤＰＲＥＤシンタックス要素の有無が決定され、エントロピー復号化部から、有ると決定された場合のＨＹＢＲＩＤＰＲＥＤシンタックスと、マクロブロックレイヤの情報とが出力され、
有ると決定された場合のＨＹＢＲＩＤＰＲＥＤシンタックスと、マクロブロックレイヤの情報とから最終的な予測動きベクトルを選択し、最終的な予測動きベクトルとエントロピー復号化部で得られた差分とを加算して動きベクトルを復号化する動きベクトル復号化部と
復号化された動きベクトルを蓄積する記憶部と
からなる動きベクトル復号化装置である。
【発明の効果】
【００６６】
この発明においては、動きベクトル復号化部において、マクロブロックレイヤの情報をエントロピー復号化部から受け取る前に、可能性のある全てのプリディクタのパターンに関して予測動きベクトルの生成処理を行い、プリディクタのパターンのそれぞれに関してＨＹＢＲＩＤＰＲＥＤシンタックス要素の有無を示すフラグ情報をエントロピー復号化部に戻すことによって、エントロピー復号化の復号化処理の待ち時間を減らし、動きベクトルの復号に要する時間を短縮化する。
【発明を実施するための最良の形態】
【００６７】
以下、図面を参照してこの発明の一実施の形態について説明する。この一実施の形態は、ＶＣ−１フォーマットに対してこの発明を適用した例である。但し、ＶＣ−１フォーマット以外のフォーマットであっても、動きベクトル予測の結果からシンタックス要素の有無を判定し、判定結果に基づいてシンタックス要素を切り出す相互依存性を有する復号化の処理に対して、この発明を適用することができる。
【００６８】
図１１に示すように、この発明によるＭＶ（動きベクトル）復号化部５０は、ＶＬＤ（可変長復号化部）５１と、ＭＶＰ（動きベクトル予測部）５２と、ＳＤＲＡＭ等のＭＶ記憶領域５３とから構成される。ＭＶＰ５２は、ＰＭＶ算出部５２ａと、セレクタ５２ｂと、ＭＶ算出部５２ｃとを備えている。また、図１２は、ＶＬＤ５１とＭＶＰ５２との間のデータのやりとりを時間順に示す。
【００６９】
ＰＭＶ算出部５２ａは、ＭＶ記憶領域５３に蓄積されている復号済みのＭＶの中から予測に必要とされる隣接ＭＢ／ブロック（プリディクタ）のＭＶのベクトル値をメモリに読み込む。メモリに保持されている３個のベクトル値（ＰＭＶ Ａ，ＰＭＶ Ｂ，ＰＭＶ
Ｃ）とを使用してＶＣ−１で定められた関数による変換例えば中央値を選択する方法によってＰＭＶを得る。この場合、ＭＢ（マクロブロック情報）なしの条件下でＰＭＶの算出がなされる。但し、ピクチャレイヤ以上の復号結果(Progressive,Interlaced field,NUMREF等)は与えられているものとする。例えばＶＬＤ５１からのピクチャパラメータの情報
からピクチャレイヤの復号結果が分かる。すなわち、ＰＭＶ算出部５２ａは、ＭＶ記憶領域５３に格納されているプリディクタのＭＶを使用して可能性のある全てのプリディクタパターンに関してＰＭＶ（例えば最大で４個存在する）を予め算出し、ＨＹＢＲＩＤＰＲＥＤシンタックス要素の有無を判定する。複数のＰＭＶの算出は、順次（直列）または並列の何れの処理で行っても良い。
【００７０】
上述したように、当該ＭＢに隣接するプリディクタＡ、プリディクタＢおよびプリディクタＣのベクトル値をＶＣ−１フォーマットで定められた関数により変換して一つのベクトル値ＰＭＶを得る。但し、ＰＭＶとＰＭＶ Ａの差分の絶対値が仕様に定められた値より大きい場合、またはＰＭＶとＰＭＶ Ｃの差分の絶対値が仕様に定められた値より大きい場合では、ビットストリーム中にＨＹＢＲＩＤＰＲＥＤシンタックス要素が存在すると判定される。すなわち、ＨＹＢＲＩＤＰＲＥＤシンタックス要素が０（論理的な０）の場合では、ＰＭＶ＝ＰＭＶ ＡとＰＭＶの値が設定し直され、これが１（論理的な１）の場合では、ＰＭＶ＝ＰＭＶ ＣとＰＭＶの値が設定し直される。ＰＭＶ算出部５２ａは、ＰＭＶを算出すると共に、各プリディクタのパターンに関して算出されたＰＭＶに関してＨＹＢＲＩＤＰＲＥＤシンタックス要素の有無を判定して、フラグを生成する。
【００７１】
そして、ＶＬＤ５１からＭＢ情報を取得した後に、セレクタ５２ｂによって本当のＰＭＶが選択され、選択されたＰＭＶがＭＶ算出部５２ｃに供給され、ＰＭＶにビットストリームから復号されたＤＭＶを加算し、所定の範囲に加算結果が収まるようにクリッピング処理が行われ、当該ＭＢのＭＶが決定される。復号されたＭＶがＭＶ記憶領域５３に格納される。また、復号されたＭＶがＭＶ記憶領域５３から読み出され、動き補償のために使用される。
【００７２】
ＭＢ情報には、カレントマクロブロック／ブロックが１ＭＶmodeおよび４ＭＶmodeの何れであるかの情報と、Predictor flag（１ビット）と、動きベクトルの差分ＤＭＶとが含まれる。したがって、ＰＭＶ算出部５２ａは、ＭＢ情報なしでＰＭＶの算出を行うために、ＰＭＶ算出部５２ａは、４通りのプリディクタのパターンに関してＰＭＶを算出して、４個のＰＭＶをセレクタ５２ｂに出力する。ＰＭＶ算出部５２ａでは、算出された４個のＰＭＶに対応する４ビット（ｂ０，ｂ１，ｂ２，ｂ３）のフラグＵＳＥＤＨＹＢＲＩＤが生成され、フラグｂ０〜ｂ３がＶＬＤ５１に供給される。算出された４個のＰＭＶおよび４ビットのフラグＵＳＥＤＨＹＢＲＩＤは、そのＭＢ／ブロックに関する処理が終了するまでＰＭＶ算出部５２ａが備えるメモリに保持される。
【００７３】
フラグの４ビットの各ビットの意味は、下記の通りである。
ｂ０：（１ＭＶ，Predictor flag＝０）
ｂ１：（４ＭＶ，Predictor flag＝０）
ｂ２：（１ＭＶ，Predictor flag＝１）
ｂ３：（４ＭＶ，Predictor flag＝１）
【００７４】
これらのビットｂ０〜ｂ３のそれぞれが示す各場合において、ＨＹＢＲＩＤＰＲＥＤシンタックス要素が有りと判定されると、ｂ０〜ｂ３の内の対応するビットの値が１とされ、これが無しと判定されると、ｂ０〜ｂ３の内の対応するビットの値が０の値とされる。フラグＵＳＥＤＨＹＢＲＩＤを受け取ったＶＬＤ５１は、ＭＢ情報とフラグとからＨＹＢＲＩＤＰＲＥＤシンタックス要素を切り出して出力する。
【００７５】
セレクタ５２ｂは、ＶＬＤ５１から出力されるＭＢ情報（イントラ／１ＭＶ／４ＭＶmode、ＤＭＶ情報）とＨＹＢＲＩＤＰＲＥＤシンタックス要素とからＰＭＶの中の本当のＰＭＶを選択してＭＶ算出部５２ｃに供給する。選択されたＰＭＶにＶＬＤ５１によって復号されたＤＭＶを加算し、所定の範囲に加算結果が収まるようにクリッピング処理が行われ、当該ＭＢのＭＶが決定される。復号されたＭＶがＰＭＶ算出部５２ａが備えるメモリに記憶されると共に、ＭＶ記憶領域５３に格納される。また、復号されたＭＶがＭＶ記憶領域５３から読み出され、動き補償のために使用される。
【００７６】
図１２のフローにしたがって説明すると、ＶＬＤ５１は、復号を行い、それまでに得たピクチャパラメータをＭＶＰ５２のＰＭＶ算出部５２ａに伝送し（図１２中のステップＳＴ１１）。
【００７７】
ＰＭＶ算出部５２ａは、想定される全ての条件でＭＶ予測を行い、各条件毎にハイブリッド予測がされるか否かを判定することによって、ＨＹＢＲＩＤＰＲＥＤシンタックス要素の有無を決定して４ビットのフラグＵＳＥＤＨＹＢＲＩＤを生成する。ステップＳＴ１２において、フラグＵＳＥＤＨＹＢＲＩＤがＶＬＤ５１に対して供給される。
【００７８】
フラグＵＳＥＤＨＹＢＲＩＤを受け取ったＶＬＤ５１は、入力ビットストリームから抽出したＭＢ情報、Predictor flagで規定される条件に対応するフラグＵＳＥＤＨＹＢＲＩＤ中の１ビットに基づいて、ＨＹＢＲＩＤＰＲＥＤシンタックス要素の有無を決定する。ＨＹＢＲＩＤＰＲＥＤシンタックス要素有りの場合は、ＶＬＤ５１は、ビットストリームのＭＢ情報と１ビットのＨＹＢＲＩＤＰＲＥＤシンタックス要素とをＭＶＰ５２に出力し、ＨＹＢＲＩＤＰＲＥＤシンタックス要素無しの場合は、ＶＬＤ５１は、ビットストリームのＭＢ情報をＭＶＰ５２に出力する（ステップＳＴ１３）。このように、ＶＬＤ５１は、ＭＢ情報とＨＹＢＲＩＤＰＲＥＤシンタックス要素とを一緒にＭＶＰ５２に対して出力することができる。
【００７９】
ＭＶＰ５２は、ステップＳＴ１２において、ＵＳＥＤＨＹＢＲＩＤ（４ビット）を出力してからＶＬＤ５１からＭＢ情報、ＨＹＢＲＩＤＰＲＥＤシンタックス要素（無い場合もある）を受け取るまでに、データ待ち時間Ｗ４が発生する。従来の処理（図９、図１０）においては、ＶＬＤがＭＢ情報を出力してからＭＶＰからＵＳＥＤＨＹＢＲＩＤを入力してもらうまで、ＶＬＤが全く復号を行うことができない待ち時間が存在する。この発明は、ＭＢ情報とＨＹＢＲＩＤＰＲＥＤシンタックス要素とを一緒にＶＬＤ５１が出力することができ、かかる待ち時間を解消することができ、ＶＬＤ５１の処理が止まることがない。
【００８０】
ＭＶＰ５２のセレクタ５２ｂは、マクロブロック情報およびＨＹＢＲＩＤＰＲＥＤシンタックス要素とから一つのＰＭＶを本当のＰＭＶとして選択してＭＶ算出部５２ｃに出力する。この場合、ＭＢ情報をＰＭＶ算出部５２ａに供給し、セレクタ５２ｂに対する制御信号をＰＭＶ算出部５２ａが生成しても良い。ＭＶ算出部５２ｃは、ＰＭＶにＤＭＶを加算し、所定の範囲に加算結果が収まるようにクリッピング処理が行われ、当該ＭＢのＭＶが決定される。
【００８１】
ここで、上述したＰＭＶ算出の処理に関する引数表を図１３に示す。すなわち、ＰＭＶ算出部５２ａが算出するＰＭＶの種類が図１３に示されている。ピクチャレイヤの情報と１ＭＶ／４ＭＶの情報とによって、ＰＭＶ算出処理が規定されている。１回のＭＶ予測が以下のような引数の組で表される。但し、１ＭＶmodeのときはblock＝0と表記することにする。
【００８２】
（１ＭＶ／４ＭＶ，block，Predictor flag）
【００８３】
上述した説明では、ＰＭＶが４個存在するものとして説明したが、ピクチャレイヤの情報が与えられることによって、実際に算出が必要がＰＭＶの数は、最大で４個であり、より少ない１個または２個のＰＭＶを算出すれば良いことが図１３から分かる。ピクチャレイヤの情報には、各ＭＢの１ＭＶ／４ＭＶを示す１ビットの情報が１ピクチャ分まとめられて圧縮符号化されたビットプレーンが含まれている。したがって、ＰＭ算出部５２ａは、ピクチャパラメータを受け取ると、その中のビットプレーンの情報から各ＭＢが１ＭＶ／４ＭＶの何れであるかが分かる。但し、Raw modeの場合は、このことが当てはまらない。
【００８４】
ピクチャレイヤおよびビットプレーンの情報を利用することによって、算出するＰＭＶの数を減少させることができる。例えばProgressiveの場合では、Raw mode以外では、各
ＭＢ／ブロック当たり１個のＰＭＶを算出すれば良い。
【００８５】
Interlaced field  ＮＵＭＲＥＦ＝１の場合には、Predictor flagが０または１と変化する可能性があるので、１ＭＶ当たりＰＭＶ算出を２回行う必要がある。１ＭＢでは、（１ＭＶ，０，０）、（１ＭＶ，０，１）の処理である。Interlaced field  ＮＵＭＲＥＦ＝１で、４ＭＶならば、１ブロック当たり２回ずつＰＭＶの算出処理がなされる。
【００８６】
一実施の形態においては、予めピクチャ内の全てのＭＢが１ＭＶ／４ＭＶmodeの何れかであることが分かるので、ＰＭＶの種類を減少することができ、その結果、ＰＭＶ算出の回数を減らすことができる。また、ＰＭＶ算出を行わなかった場合（プリディクタの組合せ）に対応するＵＳＥＤＨＹＢＲＩＤフラグのビットは、ＶＬＤ５１において参照されることがないので、どのような値であっても良い。
【００８７】
最多の４個のＰＭＶを算出する必要があるのは、図１４に示すように、ＭＢレイヤの復号をしなければ１ＭＶ／ＭＶmodeが確定しないRaw modeのときである。すなわち、１ＭＶ／４ＭＶmodeと、Predictor flagの０または１との可能性があるために、４種類のＰＭＶを算出する必要がある。Predictor flagは、各ＭＢを復号するまで確定できない。Predictor flagのビットによって、ＰＭＶと乗算する係数の値が変化する。
【００８８】
上述したこの発明の一実施の形態は、予め（先行して）ＰＭＶを算出するアルゴリズムであり、ＰＭＶの算出処理のために、プリディクタ保持用メモリの容量をなるべく少なくし、また、ＭＶ記憶領域５３から効率的にＭＶを読み出す必要がある。以下に、プリディクタを読み込む処理について説明する。
【００８９】
図１５および図１６において、斜線を付したＭＢがＭＶ記憶領域５３から取得済みのＭＶであり、実線で囲んだＭＢがカレントＭＢであり、点線で囲んだＭＢが復号前のＭＢを示す。カレントＭＢが属する行（スライスと呼ばれる場合もある）では、カレントＭＢの左側のＭＢがプリディクタＣとされる。カレントＭＢの属する行の上の行に属し、カレントＭＢの右上のＭＢがプリディクタＡとされ、上の行に属し、カレントＭＢの右上のＭＢがプリディクタＢとされる。
【００９０】
右側に１ＭＢシフトした次のカレントＭＢの処理においては、ＭＶ記憶領域５３から新たに取得するのは、カレントＭＢの右上のＭＢ（プリディクタＢ）のＭＶ情報のみで良い。すなわち、ＰＭＶの算出のために、１ＭＢ当たり１ＭＢ分のＭＶの読み込みを行えば良い。
【００９１】
カレントＭＢが画面の右端の場合では、右上のＭＢが存在しないので、上の行の上および左上のＭＢがプリディクタＡおよびＢとしてそれぞれ使用され、同じ行の左のＭＢがプリディクタＣとして使用される。これらは、既に取得済みのＭＢである。また、カレントＭＢが右端の場合では、図１６に示すように、カレントＭＢと同じ行の左端のＭＢのＭＶを読み込む。次に、カレントＭＢが下の行の左端の位置になった場合に、ＭＶ記憶領域５３から新たに右上のＭＢ（プリディクタＢ）のＭＶを読み込むだけで、ＰＭＶの算出のためのプリディクタのＭＶが得られる。
【００９２】
図１５および図１６の処理においては、カレントＭＢの位置が上の行の右端となってから、カレントＭＢの位置が同じ行の右端の一つ前の位置となるまでは、カレントＭＢが含まれる行の上の行のみからＭＶ記憶領域５３からＭＶが読み込まれる。すなわち、一つの行のみからＭＶが読み込まれるので、アクセスを容易、高速とすることができる。なお、ＶＣ−１フォーマットにおいては、ピクチャの最上部の行では、ＭＶ予測が行われず、（ＰＭＶ＝０ベクトル）と定められているので、ピクチャの全ての行において、行の境界を越えてＭＶを取得しなくて良い。
【００９３】
以上、この発明の一実施の形態について具体的に説明したが、この発明は、上述した一実施の形態に限定されるものではなく、この発明の技術的思想に基づく各種の変形が可能である。例えばこの発明は、ＶＣ−１フォーマットに限らず、動きベクトル予測において、メジアン予測とハイブリッド予測のように、２種類の予測方式が可能とされ、予測方式を判定してシンタックス要素を切り出すために、予測動きベクトルを算出し、算出された予測動きベクトルを使用する方式に対して適用することができる。
【図面の簡単な説明】
【００９４】
【図１】この発明を適用することができる符号化装置の一例のブロック図である。
【図２】この発明を適用することができる復号化装置の一例のブロック図である。
【図３】Progressive１ＭＶ Ｐピクチャにおける動きベクトル予測に使用するプリディクタのパターンを説明するための略線図である。
【図４】Progressive Mixed-ＭＶ Ｐピクチャにおける１ＭＶmodeマクロブロックの動きベクトル予測に使用するプリディクタのパターンを説明するための略線図である。
【図５】Progressive Mixed-ＭＶ Ｐピクチャにおける４ＭＶmodeマクロブロックの動きベクトル予測に使用するプリディクタのパターンを説明するための略線図である。
【図６】Interlaced field １ＭＶ Ｐピクチャにおける動きベクトル予測に使用するプリディクタのパターンを説明するための略線図である。
【図７】Interlaced field Ｐピクチャにおける１ＭＶmodeマクロブロックの動きベクトル予測に使用するプリディクタのパターンを説明するための略線図である。
【図８】Interlaced field Ｐピクチャにおける４ＭＶmodeマクロブロックの動きベクトル予測に使用するプリディクタのパターンを説明するための略線図である。
【図９】従来のＭＶ予測部のブロック図である。
【図１０】従来のＭＶ予測部の処理の流れを示すフローチャートである。
【図１１】この発明によるＭＶ予測部の一実施の形態のブロック図である。
【図１２】この発明の一実施の形態の処理の流れを示すフローチャートである。
【図１３】この発明の一実施の形態におけるＰＭＶ算出の引数表を示す略線図である。
【図１４】この発明の一実施の形態におけるRaw modeの場合の処理の説明に用いる略線図である。
【図１５】この発明の一実施の形態においてＰＭＶを算出するために読み込まれるプリディクタの説明に用いる略線図である。
【図１６】この発明の一実施の形態においてカレントマクロブロックが行の端の位置の場合に、ＰＭＶを算出するために読み込まれるプリディクタの説明に用いる略線図である。
【符号の説明】
【００９５】
１  イントラ予測符号化部
２  インター予測符号化部
２１  イントラ予測復号化部
２２  インター予測復号化部
３２，５０  動きベクトル復号化部
４１，５１  ＶＬＤ
４２，５２  ＭＶＰ
４２ａ，５２ａ  ＰＭＶ算出部
４２ｂ，５２ｃ  ＭＶ算出部
５２ｂ  セレクタ
４３，５３  ＭＶ記憶領域
【図１】
0004760551.tif 000002
【図２】
0004760551.tif 000003
【図３】
0004760551.tif 000004
【図４】
0004760551.tif 000005
【図５】
0004760551.tif 000006
【図６】
0004760551.tif 000007
【図７】
0004760551.tif 000008
【図８】
0004760551.tif 000009
【図９】
0004760551.tif 000010
【図１０】
0004760551.tif 000011
【図１１】
0004760551.tif 000012
【図１２】
0004760551.tif 000013
【図１３】
0004760551.tif 000014
【図１４】
0004760551.tif 000015
【図１５】
0004760551.tif 000016
【図１６】
0004760551.tif 000017