(57)【要約】【課題】マクロブロックペア単位の画像符号化および画像復号化処理に用いられ、回路規模の増加を抑えたデータ保持装置、画像符号化装置および画像復号化装置を提供する。【解決手段】マクロブロックペア毎にフィールド構造とフレーム構造の何れかを選択し、マクロブロック単位に画像を符号化または復号化する画像処理に用いられるデータ保持装置であって、符号化または復号化の対象となるカレントマクロブロックに関するパラメータ群を保持するカレントレジスタと、カレントマクロブロックに対して隣接関係を有するマクロブロックに関するパラメータ群を保持するためのレジスタ群とを備え、前記レジスタ群中の少なくともレジスタ１０４は、前記隣接関係を有するマクロブロックのうちの異なるマクロブロックに関するパラメータ群を順次択一的に保持する。【選択図】図１
2006197011.tif 000002
【特許請求の範囲】
【請求項１】
マクロブロックペア毎にフィールド構造とフレーム構造の何れかを選択し、マクロブロック単位に画像を符号化または復号化する画像処理に用いられるデータ保持装置であって、
符号化または復号化の対象となるカレントマクロブロックに関するパラメータ群を保持するカレントレジスタと、
カレントマクロブロックに対して隣接関係を有するマクロブロックに関するパラメータ群を保持するためのレジスタ群と
を備え、
前記レジスタ群中の少なくとも１つのレジスタは、前記隣接関係を有するマクロブロックのうちの異なるマクロブロックに関するパラメータ群を順次択一的に保持する
ことを特徴とするデータ保持装置。
【請求項２】
前記レジスタ群中の１つのレジスタは、
カレントマクロブロックがマクロブロックペア内の下側のマクロブロックである場合には、カレントマクロブロックの上側に隣接するマクロブロックに関するパラメータ群を保持し、
カレントマクロブロックがマクロブロックペア内の上側のマクロブロックである場合には、カレントマクロブロックの上側に隣接するマクロブロックペア内の上側のマクロブロックに関するパラメータ群を保持する
ことを特徴とする請求項１記載のデータ保持装置。
【請求項３】
前記レジスタ群は、
カレントマクロブロックの上側に隣接するマクロブロックペアにおける上側のマクロブロックに関するパラメータ群と、カレントマクロブロックの属するマクロブロックペアの上側のマクロブロックに関するパラメータ群との一方を択一的に保持する第１レジスタと、
カレントマクロブロックの上側に隣接するマクロブロックペアにおける下側のマクロブロックに関するパラメータ群を保持する第２レジスタと、
カレントマクロブロックの左側に隣接するマクロブロックペアにおける上側のマクロブロックに関するパラメータ群を保持する第３レジスタと、
カレントマクロブロックの左側に隣接するマクロブロックペアにおける下側のマクロブロックに関するパラメータ群を保持する第４レジスタと
を備え、
前記第１レジスタは、カレントマクロブロックがマクロブロックペア内の下側のマクロブロックである場合には、カレントマクロブロックの上側に隣接するマクロブロックに関するパラメータ群を保持し、カレントマクロブロックがマクロブロックペア内の上側のマクロブロックである場合には、カレントマクロブロックの上側に隣接するマクロブロックペア内の上側のマクロブロックに関するパラメータ群を保持する
ことを特徴とする請求項１記載のデータ保持装置。
【請求項４】
前記カレントマクロブロックは、第１遷移と第２遷移とを繰り返し、
第１遷移は、カレントマクロブロックがマクロブロックペアにおける上側のマクロブロックから下側のマクロブロックに遷移することであり、
第２遷移は、カレントマクロブロックがマクロブロックペアにおける下側のマクロブロックから右上のマクロブロックに遷移することであり、
前記データ保持装置は、さらに、
少なくとも２マクロブロックライン分の符号化または復号化済のマクロブロックに関するパラメータ群を保持するパラメータメモリと、
第１遷移時に、カレントレジスタから出力されるパラメータ群を選択し、第２遷移時に、遷移後のカレントマクロブロックの上側に隣接するマクロブロックペアにおける上側のマクロブロックに関するパラメータ群をパラメータメモリから選択し、前記第１レジスタに出力する第１セレクタを備える
ことを特徴とする請求項３記載のデータ保持装置。
【請求項５】
前記データ保持装置は、さらに、
第１遷移時に、第１レジスタから出力されるパラメータ群を選択し、第２遷移時に、遷移後のカレントマクロブロックの左側に隣接するマクロブロックペアにおける上側のマクロブロックに関するパラメータ群をパラメータメモリから選択し、前記第３レジスタに出力する第２セレクタを備える
ことを特徴とする請求項４記載のデータ保持装置。
【請求項６】
前記カレントレジスタは、さらに、カレントマクロブロックペア内のカレントマクロブロック以外のマクロブロックに関するパラメータ群を保持し、
前記データ保持装置は、さらに、少なくとも２マクロブロックライン分の符号化または復号化済のマクロブロックに関するパラメータ群を保持するパラメータラインメモリと、
カレントマクロブロックペア毎に符号化または復号化処理における水平処理と垂直処理を指定するタイミング信号を生成する制御回路と、
前記制御回路からのタイミング信号に応じて、カレントマクロブロックペアのパラメータ群を保持しているカレントレジスタを選択し、次いで、カレントマクロブロックペアの上に隣接するマクロブロックペアのパラメータ群をパラメータラインメモリから選択するセレクタと
を備え、
前記レジスタ群は、前記セレクタにより選択されたマクロブロックペアに関するパラメータ群を保持する
ことを特徴とする請求項１記載のデータ保持装置。
【請求項７】
前記レジスタ群は、
前記セレクタにより選択されたマクロブロックペアに関するパラメータ群のうち、上側のマクロブロックに関するパラメータ群を保持する第１レジスタと、
前記セレクタにより選択されたマクロブロックペアに関するパラメータ群のうち、下側のマクロブロックに関するパラメータ群を保持する第２レジスタと
を備えることを特徴とする請求項６記載のデータ保持装置。
【請求項８】
前記カレントマクロブロックは、第１遷移と第２遷移とを繰り返し、
第１遷移は、カレントマクロブロックがマクロブロックペアにおける上側のマクロブロックから下側のマクロブロックに遷移することであり、
第２遷移は、カレントマクロブロックがマクロブロックペアにおける下側のマクロブロックから右上のマクロブロックに遷移することであり、
前記パラメータ群は、マクロブロックペア内の２つのマクロブロックに共通のパラメータと個別のパラメータとを含み、
前記カレントレジスタは、共通のパラメータを保持する共通用レジスタと、個別のパラメータを保持する個別用レジスタとを有し、
前記データ保持装置は、さらに、共通用レジスタへのデータ入力を、第１遷移時にオフし、第２遷移時にオンするスイッチを備える
ことを特徴とする請求項１〜３の何れかに記載のデータ保持装置。
【請求項９】
マクロブロックペア毎にフィールド構造とフレーム構造の何れかを選択し、マクロブロック単位に画像を符号化する画像符号化装置であって、
符号化または復号化の対象となるカレントマクロブロックに関するパラメータ群を保持するカレントレジスタと、
カレントマクロブロックに対して隣接関係を有するマクロブロックに関するパラメータ群を保持するためのレジスタ群と
を備え、
前記レジスタ群中の少なくとも１つのレジスタは、前記隣接関係を有するマクロブロックのうちの異なるマクロブロックに関するパラメータ群を順次択一的に保持する
ことを特徴とする画像符号化装置。
【請求項１０】
マクロブロックペア毎にフィールド構造とフレーム構造の何れかを選択し、マクロブロック単位に画像を復号化する画像復号化装置であって、
復号化の対象となるカレントマクロブロックに関するパラメータ群を保持するカレントレジスタと、
カレントマクロブロックに対して隣接関係を有するマクロブロックに関するパラメータ群を保持するためのレジスタ群と
を備え、
前記レジスタ群中の少なくとも１つのレジスタは、前記隣接関係を有するマクロブロックのうちの異なるマクロブロックに関するパラメータ群を順次択一的に保持する
ことを特徴とする画像復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マクロブロックペア単位にフィールド構造とフレーム構造とを切り替え可能で、マクロブロック単位に画像を符号化又は復号化する画像符号化装置および画像復号化装置に用いられるデータ保持装置に関する。
【背景技術】
【０００２】
図５は、従来技術におけるＭＰＥＧ−２（非特許文献１参照）に従う画像符号化装置および画像復号化装置に備えられるデータ保持装置の構成を示すブロック図である。同図においてデータ保持装置は、レジスタ５０１〜５０３、パラメータラインメモリ５０４、条件判定回路５０５を備える。
【０００３】
レジスタ５０１は、符号化または復号化の対象となるマクロブロック（以下カレントマクロブロックと呼ぶ。）に関するパラメータ群を保持する。マクロブロックの符号化または復号化の順を図６に示す。図６のように、１画面を構成するマクロブロックは、水平方向のマクロブロックラインを左から右へ順に走査するように符号化されていく。
【０００４】
レジスタ５０２、５０３は、符号化または復号化済のマクロブロックに関するパラメータ群を保持する。すなわち、レジスタ５０２は、図７に示すようにカレントマクロブロックの左に隣接するマクロブロックに関するパラメータ群を保持する。レジスタ５０３は、図７に示すようにカレントマクロブロックの上に隣接するマクロブロックに関するパラメータ群を保持する。ここで、パラメータ群とは、マクロブロックの動きベクトルなどを含み、当該マクロブロックの符号化または復号化の条件を表す。
【０００５】
パラメータラインメモリ５０４は、符号化または復号化済のマクロブロックに関するパラメータ群を記憶する。具体的には、カレントマクロブロックが属するマクロブロックラインの１つ上のマクロブロックラインの各マクロブロックに関するパラメータ群を記憶する。パラメータラインメモリ５０４が符号化または復号化済のマクロブロックのパラメータを記憶しているのは、図８に示すように、処理済（符号化または復号化済）マクロブロックが、１マクロブロックライン下に隣接するマクロブロックがカレントマクロブロックであるときに参照されるからである。ここで、右に隣接するマクロブロックは、次に符号化または復号化されるマクロブロックである。１マクロブロックライン下に隣接するマクロブロックは、１ライン後に符号化または復号化されるマクロブロックである。
【０００６】
条件判定回路５０５は、レジスタ５０１〜５０３のパラメータに基づいてカレントマクロブロックに対する符号化または復号化条件を判定する。
【０００７】
図５のデータ保持回路において、カレントマクロブロックの符号化（または復号化）処理が行われる前に、直前に処理されたマクロブロックに関するパラメータ群が、左側に隣接するマクロブロックが有するパラメータ群として、レジスタ５０１から左側隣接マクロブロック用レジスタ５０２へ転送される。また、同時に、パラメータラインメモリ５０４に退避されていた１マクロブロックライン前に処理されたマクロブロックに関するパラメータ群は、カレントマクロブロックの上側に隣接するマクロブロックに関するパラメータ群として読み出され、レジスタ５０３に格納される。カレントマクロブロックにおける符号化（または復号化）処理は、これら、カレントマクロブロックに関するパラメータ群が書き込まれたレジスタ５０１、左側隣接マクロブロックに関するパラメータ群が書き込まれたレジスタ５０２、および上側隣接マクロブロックに関するパラメータ群が書き込まれたレジスタ５０３に基づく。条件判定回路５０５は、それぞれのパラメータ群を用いて符号化（または復号化）の条件を判定する。
【０００８】
上記したように、カレントマクロブロックにおける符号化（または復号化）の処理が完了すると、レジスタ５０１に書き込まれていた該カレントマクロブロックに関するパラメータ群は、右側に隣接するマクロブロックがカレントマクロブロックとなった時に、その左側隣接マクロブロックに関するパラメータ群として再び必要となる為、レジスタ５０２に転送される。また同時に、レジスタ５０１に書き込まれていた該カレントマクロブロックに関するパラメータ群が、１マクロブロックライン後、即ち下側に隣接するマクロブロックがカレントマクロブロックとなった時に、その上側隣接マクロブロックに関するパラメータ群として再び必要となる為、パラメータラインメモリ５０４に退避される。
【０００９】
上記のような一連の処理がマクロブロック毎に繰り返し実行され、画面全体の符号化（または復号化）が行われる。
【非特許文献１】INTERNATIONAL STANDARD ISO/IEC 13818-2: 2000, "Information technology-Generic coding of moving pictures and associated audio information: Video"
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来のデータ保持装置によれば、上下に隣接するマクロブロックペア単位にフィールド構造とフレーム構造とを切り替え可能な画像符号化処理（または画像複合化処理）には対応できない。また、従来のデータ保持装置と同様に隣接するマクロブロックと同数のレジスタを設けるとすれば、レジスタ数ひいては回路規模が増加するという問題が生じると考えられる。この問題について以下具体的に説明する。
【００１１】
従来の画像符号化（または画像復号化）処理においては、図６に示した通り、画面内の符号化（または復号化）処理において、マクロブロックが基本単位である。近年更なる符号化効率の向上を目指して、ISO/IECとITU-Tが共同で、次世代画像符号化方式となるMPEG4 AVCおよびITU H.264の標準化を進めている。この新しい画像符号化技術の特徴の一つに、上記したような画面内におけるマクロブロックの基本単位が、図９に示すような上下に連なる２つのマクロブロックをペアとした構造を取り得る場合がある。このようなマクロブロックペアの構造を基本単位とする符号化（または復号化）処理においては、図９に示すように、符号化（または復号化）処理が行われる順序がカレントマクロブロックペア内の上下の遷移を優先としたラスター走査となる。しかも、マクロブロックペア構造を成す場合、同一画面内において、マクロブロックペア単位でフレーム構造とフィールド構造の何れかを切り替えることが許されている。図１０は、フレーム構造のマクロブロックペアとフィールド構造のマクロブロックペアとが混在する例を示す図である。図１０において、縦線のみのハッチングはフィールド構造のマクロブロックペアにおける上側、即ちトップフィールドのマクロブロックを、横線のみのハッチングはフィールド構造のマクロブロックペアにおける下側、即ちボトムフィールドのマクロブロックを示す。縦線と横線の両方のハッチングはフレーム構造のマクロブロックペアを示す。
【００１２】
その結果、カレントマクロブロックに対してパラメータ群の参照先となる隣接関係を持ち得るマクロブロックの数が従来と比較して増加し、またその隣接関係もより複雑となっている。
【００１３】
図１１（ａ）〜（ｈ）は、カレントマクロブロックと、隣接関係を持つマクロブロックの関係を示す図である。図中の矢線は、カレントマクロブロックに対してパラメータ群の参照先となるマクロブロックを示している。図１１（ａ）〜（ｄ）はカレントマクロブロックの属するマクロブロックペアがフレーム構造をとる場合を、図１１（ｅ）〜（ｈ）カレントマクロブロックの属するマクロブロックペアがフィールド構造をとる場合を示している。図１１（ａ）、（ｂ）のように、カレントマクロブロックの属するマクロブロックペアがフレーム構造でありかつ左側隣接マクロブロックペアもフレーム構造である場合には、左側隣接マクロブロックペア内の左に隣接するマクロブロックが参照先マクロブロックとなる。加えて、カレントマクロブロックの属するマクロブロックペアがフレーム構造でありかつ上隣のマクロブロックペアもフレーム構造である場合には、直ぐ上に隣隣接するマクロブロックが参照先マクロブロックとなる。
【００１４】
図１１（ｃ）のように、カレントマクロブロックの属するマクロブロックペアがフレーム構造でありかつ左隣のマクロブロックペアがフィールド構造である場合には、左隣のマクロブロックペア内の上側のマクロブロックと下側のマクロブロックとが参照先マクロブロックとなる。加えて、カレントマクロブロックがマクロブロックペア内の上側であって、そのマクロブロックペアがフレーム構造でありかつ上側隣接のマクロブロックペアがフィールド構造である場合には、上側に隣接するマクロブロックペア内の上側マクロブロックと下側マクロブロックとが参照先となる。
【００１５】
図１１（ｄ）のように、カレントマクロブロックの属するマクロブロックペアがフレーム構造でありかつ左隣のマクロブロックペアがフィールド構造である場合には、左隣のマクロブロックペア内の上側のマクロブロックと下側のマクロブロックとが参照先マクロブロックとなる。加えて、カレントマクロブロックがマクロブロックペア内の下側であって、そのマクロブロックペアがフレーム構造である場合には、カレントマクロブロックと同じマクロブロックペア内の上側に隣接するマクロブロックが参照先となる。
【００１６】
図１１（ｅ）、（ｆ）のように、カレントマクロブロックの属するマクロブロックペアがフィールド構造でありかつ左隣のマクロブロックペアがフレーム構造である場合には、左隣のマクロブロックペア内の上側のマクロブロックと下側のマクロブロックとが参照先マクロブロックとなる。加えて、カレントマクロブロックの属するマクロブロックペアがフィールド構造でありかつ上側に隣接するマクロブロックペアがフレーム構造である場合には、上側に隣接するマクロブロックペア内の下側マクロブロックが参照先となる。
【００１７】
図１１（ｇ）のように、カレントマクロブロックの属するマクロブロックペアがフィールド構造でありかつ左隣のマクロブロックペアもフィールド構造である場合には、左側に隣接するマクロブロックとが参照先となる。加えて、カレントマクロブロックがマクロブロックペア内の上側であって、カレントマクロブロックが属するマクロブロックペアがフィールド構造でありかつ上側に隣接するマクロブロックペアもフィールド構造である場合には、上側に隣接するマクロブロックペア内の上側マクロブロックが参照先となる。
【００１８】
図１１（ｈ）のように、カレントマクロブロックの属するマクロブロックペアがフィールド構造でありかつ左隣のマクロブロックペアもフィールド構造である場合には、左側に隣接するマクロブロックとが参照先となる。加えて、カレントマクロブロックがマクロブロックペア内の下側であって、カレントマクロブロックが属するマクロブロックペアがフィールド構造でありかつ上側に隣接するマクロブロックペアもフィールド構造である場合には、上側に隣接するマクロブロックペア内の下側マクロブロックが参照先となる。
【００１９】
このように、従来と比較して、上記したような更なる符号化効率の向上を目指した新しい画像符号化技術においては、カレントマクロブロックと参照すべき隣接関係を持つマクロブロックの数が増加し、左側隣接マクロブロックおよび上側隣接マクロブロックにおけるパラメータ群も増加する。それゆえ、図５に示した従来のデータ保持装置では対応できない。
【００２０】
もし仮に、隣接関係を持つ得るマクロブロックに対応するレジスタを設けるとすれば、図１２のようになると考えられる。図１２に示すデータ保持装置は、レジスタ６０１〜６０７、スイッチ６０８、セレクタ６０９、条件判定回路６１０、メモリ６１１を備えるであろう。ここで、レジスタ６０１はカレントマクロブロック用である。レジスタ６０２は左側に隣接するマクロブロックペア内の下マクロブロック用である。レジスタ６０３は左側に隣接するマクロブロックペア内の上マクロブロック用である。レジスタ６０４はレジスタ６０３の１つ前のマクロブロック処理時の一時保存用である。６０５はカレントマクロブロックの上側に隣接するマクロブロック用である。６０６は上側に隣接するマクロブロックペア内の下側マクロブロック用である。６０７は上側に隣接するマクロブロックペア内の上側マクロブロック用である。このデータ保持装置の構成では、図５と比較して、レジスタ数が２個から７個（レジスタ６０１〜６０７）に増加している。このように、データ保持装置がマクロブロックペアに対応するためには、レジスタ数が大幅に増加し、回路規模が増大するという問題が生じる。
【００２１】
上記課題を解決するため本発明は、マクロブロックペア単位にフィールド構造とフレーム構造とを切り替え可能な画像符号化処理および画像復号化処理に用いられ、回路規模の増加を抑えたデータ保持装置、画像符号化装置および画像復号化装置を提供することを目的とする。
【課題を解決するための手段】
【００２２】
上記課題を解決するために、本発明のデータ保持装置は、マクロブロックペア毎にフィールド構造とフレーム構造の何れかを選択し、マクロブロック単位に画像を符号化または復号化する画像処理に用いられるデータ保持装置であって、符号化または復号化の対象となるカレントマクロブロックに関するパラメータ群を保持するカレントレジスタと、カレントマクロブロックに対して隣接関係を有するマクロブロックに関するパラメータ群を保持するためのレジスタ群とを備え、前記レジスタ群中の少なくとも１つのレジスタは、前記隣接関係を有するマクロブロックのうちの異なるマクロブロックに関するパラメータ群を順次択一的に保持する。
【００２３】
この構成によれば、１つのマクロブロックに関するパラメータ群に１つのレジスタを備えるのではなく、複数のマクロブロックに関する複数のパラメータ群が１つのレジスタに順次択一的に保持され、言い換えれば、少なくとも１つのレジスタは、複数のマクロブロックの複数のパラメータ群に兼用されるので、より少ないレジスタ数でデータ保持装置を構成することができ、回路規模の増大を抑制する事ができる。
【００２４】
ここで、前記レジスタ群中の１つのレジスタは、カレントマクロブロックがマクロブロックペア内の下側のマクロブロックである場合には、カレントマクロブロックの上側に隣接するマクロブロックに関するパラメータ群を保持し、カレントマクロブロックがマクロブロックペア内の上側のマクロブロックである場合には、カレントマクロブロックの上側に隣接するマクロブロックペア内の上側のマクロブロックに関するパラメータ群を保持するようにしてもよい。
【００２５】
この構成によれば、１つのレジスタに兼用されるパラメータ群は、カレントマクロブロックの上側に隣接するマクロブロックに関するパラメータ群と、カレントマクロブロックの上側に隣接するマクロブロックペア内の上側のマクロブロックに関するパラメータ群とである。ここで兼用されるパラメータ群は、カレントマクロブロックのマクロブロックペア内の位置(上側か下側か)に応じて択一的に保持することができる。
【００２６】
ここで、前記レジスタ群は、カレントマクロブロックの上側に隣接するマクロブロックペアにおける上側のマクロブロックに関するパラメータ群と、カレントマクロブロックの属するマクロブロックペアの上側のマクロブロックに関するパラメータ群との一方を択一的に保持する第１レジスタと、カレントマクロブロックの上側に隣接するマクロブロックペアにおける下側のマクロブロックに関するパラメータ群を保持する第２レジスタと、カレントマクロブロックの左側に隣接するマクロブロックペアにおける上側のマクロブロックに関するパラメータ群を保持する第３レジスタと、カレントマクロブロックの左側に隣接するマクロブロックペアにおける下側のマクロブロックに関するパラメータ群を保持する第４レジスタとを備え、前記第１レジスタは、カレントマクロブロックがマクロブロックペア内の下側のマクロブロックである場合には、カレントマクロブロックの上側に隣接するマクロブロックに関するパラメータ群を保持し、カレントマクロブロックがマクロブロックペア内の上側のマクロブロックである場合には、カレントマクロブロックの上側に隣接するマクロブロックペア内の上側のマクロブロックに関するパラメータ群を保持するようにしてもよい。
【００２７】
この構成によれば、７個のレジスタを要する図１２と比較して、カレントレジスタおよび第１〜第４の５個のレジスタ数で構成することができ、回路規模の増加を抑えることができる。
【００２８】
ここで、前記カレントマクロブロックは、第１遷移と第２遷移とを繰り返し、第１遷移は、カレントマクロブロックがマクロブロックペアにおける上側のマクロブロックから下側のマクロブロックに遷移することであり、第２遷移は、カレントマクロブロックがマクロブロックペアにおける下側のマクロブロックから右上のマクロブロックに遷移することであり、前記データ保持装置は、さらに、少なくとも２マクロブロックライン分の符号化または復号化済のマクロブロックに関するパラメータ群を保持するパラメータメモリと、
第１遷移時に、カレントレジスタから出力されるパラメータ群を選択し、第２遷移時に、遷移後のカレントマクロブロックの上側に隣接するマクロブロックペアにおける上側のマクロブロックに関するパラメータ群をパラメータメモリから選択し、前記第１レジスタに出力する第１セレクタを備えるようにしてもよい。
【００２９】
この構成によれば、第１遷移時に第１レジスタにはカレントレジスタから第１セレクタを介して出力されたパラメータ群が転送されるので、カレントレジスタに保持されたパラメータ群をカレントレジスタの遷移時に再利用することができる。この再利用は、メモリを介さないので高速にパラメータ群を転送することができる。
【００３０】
ここで、前記データ保持装置は、さらに、第１遷移時に、第１レジスタから出力されるパラメータ群を選択し、第２遷移時に、遷移後のカレントマクロブロックの左側に隣接するマクロブロックペアにおける上側のマクロブロックに関するパラメータ群をパラメータメモリから選択し、前記第３レジスタに出力する第２セレクタを備えるようにしてもよい。
【００３１】
この構成によれば、第１遷移時に第３レジスタには第１レジスタから第２セレクタを介して出力されたパラメータ群が転送されるので、第１レジスタに保持されたパラメータ群をカレントレジスタの遷移時に再利用することができる。この再利用は、メモリを介さないのでパラメータ群を高速に転送することができる。
【００３２】
ここで、前記カレントレジスタは、さらに、カレントマクロブロックペア内のカレントマクロブロック以外のマクロブロックに関するパラメータ群を保持し、前記データ保持装置は、さらに、少なくとも２マクロブロックライン分の符号化または復号化済のマクロブロックに関するパラメータ群を保持するパラメータラインメモリと、カレントマクロブロックペア毎に符号化または復号化処理における水平処理と垂直処理を指定するタイミング信号を生成する制御回路と、前記制御回路からのタイミング信号に応じて、カレントマクロブロックペアのパラメータ群を保持しているカレントレジスタを選択し、次いで、カレントマクロブロックペアの上に隣接するマクロブロックペアのパラメータ群をパラメータラインメモリから選択するセレクタとを備え、前記レジスタ群は、前記セレクタにより選択されたマクロブロックペアに関するパラメータ群を保持するようにしてもよい。
【００３３】
この構成によれば、カレントレジスタはカレントマクロブロックの属するマクロブロックペア内の２つのマクロブロックのパラメータ群を保持、つまりマクロブロックペア単位にパラメータを保持し、同様にレジスタ群もマクロブロックペア単位にパラメータを保持する。しかも、レジスタ群は、セレクタを介して、カレントマクロブロックの左隣のマクロブロックペアに関するパラメータ群と、カレントマクロブロックの上に隣接するマクロブロックペアに関するパラメータ群とを順次択一的に保持する。言い換えれば、レジスタ群は、左に隣接するマクロブロックペア用と、上に隣接するマクロブロックペア用とで時系列的に兼用することができる。
【００３４】
ここで、前記レジスタ群は、前記セレクタにより選択されたマクロブロックペアに関するパラメータ群のうち、上側のマクロブロックに関するパラメータ群を保持する第１レジスタと、前記セレクタにより選択されたマクロブロックペアに関するパラメータ群のうち、下側のマクロブロックに関するパラメータ群を保持する第２レジスタとを備えるようにしてもよい。
【００３５】
この構成によれば、第１レジスタは、左に隣接するマクロブロックペアにおける上側マクロブロック用と、上に隣接するマクロブロックペアにおける上側マクロブロック用とで時系列的に兼用することができる。また、第２レジスタは、左に隣接するマクロブロックペアにおける下側マクロブロック用と、上に隣接するマクロブロックペアにおける下側マクロブロック用とで時系列的に兼用することができる。
【００３６】
ここで、前記パラメータ群は、マクロブロックペア内の２つのマクロブロックに共通のパラメータと個別のパラメータとを含み、前記カレントレジスタは、共通のパラメータを保持する共通用レジスタと、個別のパラメータを保持する個別用レジスタとを有し、前記データ保持装置は、さらに、共通用レジスタへのデータ入力を、第１遷移時にオフし、第２遷移時にオンするスイッチを備えるようにしてもよい。
【００３７】
この構成によれば、個別のパラメータはマクロブロック単位に更新され、共通のパラメータはマクロブロックペア単位に更新されるので、データ転送の無駄を削減することができる。しかも、共通のパラメータに誤って上書きすることを防止することができる。
【００３８】
また、本発明の画像符号化装置および画像復号化装置についても上記と同様の手段を有するので、省略する。
【発明の効果】
【００３９】
本発明のデータ保持装置によれば、少なくとも１つのレジスタが、複数のマクロブロックの複数のパラメータ群に兼用されるので、より少ないレジスタ数でデータ保持装置を構成することができ、回路規模の増大を抑制する事ができる。
【００４０】
また、レジスタデータの再利用によって、メモリを介さないのでパラメータ群を高速に転送することができる。
【００４１】
さらに、マクロブロックペア内で共通のパラメータについてもデータ転送の無駄を削減し、高速化することができる。
【発明を実施するための最良の形態】
【００４２】
（実施の形態１）
図１は本発明の実施の形態１に係るデータ保持制御回路を説明した図である。同図のデータ保持制御回路は、カレントマクロブロック用レジスタ１０１と、左側隣接マクロブロックペアにおける上側マクロブロック用レジスタ１０３と、左側隣接マクロブロックペアにおける下側マクロブロック用レジスタ１０２と、パラメータラインメモリ１１０と、上側隣接マクロブロックペアにおける上側マクロブロック用レジスタ１０４と、上側隣接マクロブロックペアにおける下側マクロブロック用レジスタ１０５と、分配器１２０と、セレクタ１３０と、セレクタ１３１と、条件判定回路１４０とを備える。各機能について説明する。
【００４３】
カレントマクロブロック用レジスタ１０１は、カレントマクロブロックに関する符号化（または復号化）パラメータ群を格納する。ここで、パラメータ群とは、当該マクロブロックの符号化または復号化の条件を表し、例えばマクロブロックの動きベクトル、デブロックフィルタの境界強度（Boundary Strength）、フレーム構造／フィールド構造、参照ピクチャを示す参照インデックス、ピクチャ符号化タイプを示すイントラ／インター、量子化パラメータＱＰ、量子化処理のインデックスα、βなどを含む。
【００４４】
左側隣接マクロブロックペアにおける上側マクロブロック用レジスタ１０３は、前記カレントマクロブロック用レジスタ１０１に格納されたパラメータ群を左側隣接マクロブロックペアの上側に位置するマクロブロックのパラメータ群として再利用する為に一時的に保持する。
【００４５】
左側隣接マクロブロックペアにおける下側マクロブロック用レジスタ１０２は、同じく前記カレントマクロブロック用レジスタ１０１に格納されたパラメータ群を左側隣接マクロブロックペアの下側に位置するマクロブロックのパラメータ群として再利用する為に一時的に保持する。
【００４６】
パラメータラインメモリ１１０は、前記カレントマクロブロック用レジスタ１０１に格納されたパラメータ群を上側隣接マクロブロックペアのパラメータ群として再利用する為に一時的に記憶する。
【００４７】
上側隣接マクロブロックペアにおける上側マクロブロック用レジスタ１０４は、前記パラメータラインメモリ１１０に格納されたパラメータ群を上側隣接マクロブロックペアの上側に位置するマクロブロックのパラメータ群として再利用する為に一時的に格納するか、またはカレントマクロブロック用レジスタ１０１に格納されたパラメータ群を前記カレントマクロブロックペアにおける上側マクロブロックのパラメータ群として再利用する為に一時的に保持する。
【００４８】
上側隣接マクロブロックペアにおける下側マクロブロック用レジスタ１０５は、同じく前記パラメータラインメモリに格納されたパラメータ群を上側隣接マクロブロックペアの下側に位置するマクロブロックのパラメータ群として再利用する為に一時的に保持する。
【００４９】
分配器１２０は、前記カレントマクロブロック用レジスタ１０１に格納されたパラメータ群を左側隣接マクロブロックペアの上側または下側の左側隣接マクロブロックペア用レジスタ１０２または１０３に出力する。また、分配器１２０は、マクロブロックペア単位ではなくマクロブロック単位で符号化（または復号化)がなされる場合には、常にセレクタ１３０側に出力する。
【００５０】
セレクタ１３０は、前記左側隣接マクロブロックペアにおける上側マクロブロック用レジスタ１０３に、前記分配器１２０によって左側隣接マクロブロックペアの上側マクロブロックに関する情報として分配されたパラメータ群か、上側隣接マクロブロックペアにおける上側マクロブロック用レジスタ１０４に格納されたパラメータ群の何れかを選択する。
【００５１】
セレクタ１３１は、前記上側マクロブロック用レジスタに、パラメータラインメモリより読み出されたパラメータ群か、またはカレントマクロブロック用レジスタに格納されたパラメータ群の何れかを選択する。
【００５２】
条件判定回路１４０は、カレントマクロブロック用レジスタ１０１と、左側隣接マクロブロックペアにおける上側マクロブロック用レジスタ１０３と、左側隣接マクロブロックペアにおける下側マクロブロック用レジスタ１０２と、上側隣接マクロブロックペアにおける上側マクロブロック用レジスタ１０４と、上側隣接マクロブロックペアにおける下側マクロブロック用レジスタ１０５とからカレントマクロブロックにおける符号化（または復号化）処理に関する条件判定を行う。
【００５３】
カレントマクロブロック用レジスタに設定された符号化（または復号化）に関するパラメータ群と、左側隣接マクロブロック用レジスタに格納されたパラメータ群と、上側隣接マクロブロック用レジスタに格納されたパラメータ群とから、カレントマクロブロックにおける画像符号化（または復号化）処理の為に必要な条件判定が行われる。また、カレントマクロブロックにおける画像符号化（または復号化）処理に必要な条件判定が完了した後、カレントマクロブロック用レジスタに格納されているパラメータ群を、その後のマクロブロックがカレントマクロブロックとなった場合に、再び隣接マクロブロックのパラメータ群として利用する為に、左側に隣接するマクロブロックのパラメータとして、カレントマクロブロックの条件判定が完了した直後に退避される経路と、上側に隣接するマクロブロックのパラメータとして、一旦パラメータラインメモリに格納した後、長くとも２マクロブロックライン後にこのパラメータラインメモリより読み出して、上側隣接マクロブロック用レジスタに転送する経路とを含む回路の構成を示している。
【００５４】
このような回路構成において、図８に示すような、マクロブロックペアではなくマクロブロック単位でのマクロブロックに対する処理が完了した時、カレントマクロブロックに関する符号化（または復号化）パラメータ群は、その右側に位置するマクロブロック、またはその下側に位置するマクロブロックがカレントマクロブロックとなった時に、それぞれ左側隣接マクロブロック、または上側隣接マクロブロックとして再度必要となる。また、画像符号化（または復号化）の処理は一般的に図７または図６に示すように、左から右へ、そして上から下へと、ラスター走査の順序に従って行われる。そのため、左側に隣接するマクロブロックに関するパラメータとしては、カレントマクロブロックとしての処理が完了した直後に再度利用可能な状態にある必要がある。一方、上側に隣接するマクロブロックに関するパラメータとしては、カレントマクロブロックとしての処理が完了した後、短くとも１マクロブロックライン後まで再度利用される事がない為、この期間、パラメータラインメモリ１１０に一旦退避される。
【００５５】
例えばＨ．２６４／ＭＰＥＧ−４  ＡＶＣにおいては、図９に示すような上下に連なったマクロブロックがペアとなり、このマクロブロックペアを基本単位として符号化（または復号化）することも可能となっている。また、図１０に示すように同一画面内において、フレーム構造のマクロブロックと、フィールド構造のマクロブロックとが、マクロブロックペア毎に入れ替わる事も可能であり、従って、カレントマクロブロックに対して隣接関係を成すマクロブロックは図１１に示す通りとなる。
【００５６】
これに対応するため、条件判定回路１４０では、画像符号化（または復号化）の為の条件判定のみならず、カレントマクロブロックペアと隣接するマクロブロックペアとの構造上の関係や、カレントマクロブロックペア内におけるカレントマクロブロックの位置によって、隣接するマクロブロックの位置関係を判定する役割も果たす。
【００５７】
このようにしてカレントマクロブロックと隣接マクロブロックとの構造や位置の関係によって、カレントマクロブロック用レジスタに格納されていた画像符号化（または復号化）に関するパラメータ群を退避、格納するに当たっては、左側に隣接マクロブロック用レジスタ、並びに上側に隣接するマクロブロック用レジスタ、それぞれ２つ備えられているレジスタの内、その何れかを分配器１２０、セレクタ１３０、１３１によって切換えられるようになっている。
【００５８】
例えば、今、カレントマクロブロックがカレントマクロブロックペアの上側に位置する場合、このカレントマクロブロックに関する符号化（または復号化）の処理が完了した後、カレントマクロブロック用レジスタに格納されたパラメータ群が再び左側隣接マクロブロックのパラメータ群として用いられるまでには、図９の動作を考慮すると、２マクロブロック後となる為、一度上側隣接マクロブロックペアの上側マクロブロック用レジスタ１０４に格納される。この為、セレクタ１３１によって、予めレジスタ１０４にパラメータが書き込まれるように条件判定回路１４０より切換え信号が出力される。また、この動作によって必然的にカレントマクロブロックのパラメータ群が再び上側隣接マクロブロックのパラメータ群として用いられるのは、図９の動作を考慮すると、直後のマクロブロックとなる為、先程のレジスタ１０４に退避されたパラメータをそのまま利用する事ができる。
【００５９】
このように、カレントマクロブロックがカレントマクロブロックペアの上側に位置する場合、上側隣接マクロブロックペアの上側マクロブロック用レジスタ１０４にカレントマクロブロックのパラメータ群を保持させる事を可能としている理由には、図９の動作を考慮すると、次のマクロブロックの位置がカレントマクロブロックペア内の下側となるとなる為、図１１から明らかなように、カレントマクロブロックがカレントマクロブロックペアの下側に位置する場合には、上側に隣接するマクロブロックペアの上側マクロブロックが持つパラメータを用いる事がない事にある。一方、カレントマクロブロックのパラメータ群が再び上側隣接マクロブロックペアの上側マクロブロックに関するパラメータ群として用いられるまでには、図９の動作を考慮すると、短くとも１マクロブロックペアライン後となる為、一度パラメータラインメモリ１１０に退避される。
【００６０】
続いて、カレントマクロブロックがカレントマクロブロックペアの下側に位置する場合、このカレントマクロブロックに関する符号化（または復号化）の処理が完了した後、カレントマクロブロック用レジスタに格納されたパラメータ群が再び左側隣接マクロブロックのパラメータ群として用いられるまでには、図９の動作を考慮すると、２マクロブロック後となる為、左側隣接マクロブロックペアの下側マクロブロック用レジスタ１０２に直接格納される。このように、先程のような上側隣接マクロブロックペアの上側マクロブロック用レジスタ１０４にカレントマクロブロックのパラメータ群を退避させる必要がない理由には、図９に示すように、次にカレントマクロブロックとなるマクロブロックは右側に隣接するマクロブロックペアの上側マクロブロックである為、カレントマクロブロックに関するパラメータ群が直ちに左側に隣接するマクロブロックペアの下側マクロブロックのパラメータ群として必要となる事が挙げられる。一方、カレントマクロブロックのパラメータ群が再び上側隣接マクロブロックペアの下側マクロブロックに関するパラメータ群として用いられるまでには、図９の動作を考慮すると、短くとも１マクロブロックペアライン後となる為、一度パラメータラインメモリ１１０に退避される。
【００６１】
このように左側に隣接するマクロブロックのパラメータとしては、長くとも２マクロブロック後には必要とされる為、隣接マクロブロック用レジスタへ直ちに退避されるが、上側に隣接するマクロブロックのパラメータとしては、短くとも１マクロブロックライン後に必要とされる為、一旦パラメータラインメモリ１１０に退避させた後、再びこの退避されたパラメータ群が上側に隣接するマクロブロックペアのパラメータとして必要となった時に、先程のパラメータラインメモリ１１０より上側に隣接するマクロブロックペアの上側、または下側のマクロブロック用レジスタ１０４、１０５に転送される。
【００６２】
今、カレントマクロブロックがカレントマクロブロックペアの上側に位置する場合、その直前にパラメータラインメモリ１１０より読み出された上側隣接マクロブロックペアに関するパラメータの内、上側のマクロブロックに関するパラメータ群がレジスタ１０４に格納されるよう、条件判定回路１４０によりセレクタ１３１に対して切換え信号が出力される。一方、下側のマクロブロックに関するパラメータ群は、そのままレジスタ１０５に格納される。
【００６３】
続いて、カレントマクロブロックがカレントマクロブロックペアの下側に位置する場合、上側に隣接するマクロブロックペアの上側マクロブロック用レジスタ１０４に格納されていたパラメータ群は、既に説明したように、今後必要とされる事がない為、上側に隣接するマクロブロックペアの上側マクロブロック用レジスタ１０４には、カレントマクロブロック用レジスタに格納されていたパラメータ群が格納される。一方、上側に隣接するマクロブロックペアの下側マクロブロック用レジスタ１０５には、前回、カレントマクロブロックがカレントマクロブロックペアの上側に位置している時に既にパラメータ群が格納されている為、同じパラメータがパラメータラインメモリ１１０より転送されてきてもよいし、また特にパラメータを更新する必要もない。
【００６４】
このようにして、順次マクロブロックの位置が変化する度に上記した動作を繰り返し行う。
【００６５】
以上説明してきたように、７個のレジスタを要する図１２と比較して、本実施の形態におけるデータ保持回路では、カレントマクロブロック用のレジスタ１０１およびレジスタ１０２〜１０５の５個のレジスタ数で構成することができ、回路規模の増加を抑えることができる。
【００６６】
（実施の形態２）
図２は本発明の実施の形態２に係るデータ保持制御装置を説明した図である。同図のデータ保持制御装置は、カレント上側レジスタＡ０１、カレント下側レジスタＡ０２、隣接下側レジスタＡ０３、隣接上側レジスタＡ０４、パラメータラインメモリＡ１０、セレクタＡ３１〜Ａ３４、条件判定回路Ａ４０、垂直・水平処理切換部Ａ５０を備える。
【００６７】
カレント上側レジスタＡ０１は、カレントマクロブロックの属するマクロブロックペア（以下カレントマクロブロックペアと呼ぶ。）における上側のマクロブロックに関するパラメータ群を保持する。
【００６８】
カレント下側レジスタＡ０２は、カレントマクロブロックペアにおける下側のマクロブロックに関するパラメータ群を保持する。
【００６９】
隣接下側レジスタＡ０３は、セレクタＡ３１により選択されたマクロブロックペアに関するパラメータ群のうち、上側のマクロブロックに関するパラメータ群を保持する。
【００７０】
隣接上側レジスタＡ０４は、セレクタＡ３２により選択されたマクロブロックペアに関するパラメータ群のうち、下側のマクロブロックに関するパラメータ群を保持する。
【００７１】
パラメータラインメモリＡ１０は、少なくとも２マクロブロックライン分の符号化または復号化済のマクロブロックに関するパラメータ群を一時的に記憶する。
【００７２】
セレクタＡ３１は、垂直・水平処理切換部Ａ５０から出力される垂直処理／水平処理信号が水平処理から垂直処理に切り換わったとき（つまりカレントマクロブロックペアが切り替わったとき）、直前のカレントマクロブロックペアにおける下側マクロブロックに関するパラメータ群を保持しているカレント下側レジスタＡ０２の出力を選択し、隣接下側レジスタＡ０３に出力し、次いで、垂直処理／水平処理信号が垂直処理から水平処理に切り換わったとき、カレントマクロブロックペアに隣接するマクロブロックペアにおける下側マクロブロックに関するのパラメータ群をパラメータラインメモリＡ１０から選択し、隣接下側レジスタＡ０３に出力する。
【００７３】
セレクタＡ３２は、垂直・水平処理切換部Ａ５０から出力される垂直処理／水平処理信号が水平処理から垂直処理に切り換わったとき、直前のカレントマクロブロックペアにおける上側マクロブロックに関するパラメータ群を保持しているカレント上側レジスタＡ０１の出力を選択し、隣接上側レジスタＡ０４に出力し、次いで、垂直処理／水平処理信号が垂直処理から水平処理に切り換わったとき、カレントマクロブロックペアに隣接するマクロブロックペアにおける下側マクロブロックに関するのパラメータ群をパラメータラインメモリから選択し、隣接上側レジスタＡ０４に出力する。
【００７４】
条件判定回路Ａ４０は、カレント上側レジスタＡ０１、カレント下側レジスタＡ０２、セレクタＡ３３、Ａ３４からの出力される各パラメータ群に基づいて、カレントマクロブロックｐに対する符号化処理（または復号化処理）の条件を判定する。
【００７５】
セレクタＡ４１は、条件判定回路Ａ４０による条件判定の結果に応じて、カレント上側レジスタＡ０１の出力と、隣接下側レジスタＡ０３の出力とのうち一方を選択し、条件判定回路Ａ４０に出力する。
【００７６】
セレクタＡ４２は、条件判定回路Ａ４０による条件判定の結果に応じて、隣接下側レジスタＡ０３の出力と隣接上側レジスタＡ０４の出力とのうち一方を選択し、条件判定回路Ａ４０に出力する。
【００７７】
垂直・水平処理切換部Ａ５０は、カレントマクロブロックペア毎に符号化または復号化処理における水平処理と垂直処理のタイミングを指定する垂直処理／水平処理信号を生成する。
【００７８】
図３は、図２に示した上記レジスタＡ０１〜Ａ０４とマクロブロックとの対応関係を時系列的に示す説明図である。同図において、第１に、直前のカレントマクロブロックペアの処理完了直後には、カレントマクロブロックペアの上側マクロブロックおよび下側マクロブロックに関するパラメータ群がカレント上側レジスタＡ０１およびカレント下側レジスタＡ０２に保持されている。
【００７９】
第２に、カレントマクロブロックペアが右に隣接するマクロブロックペアに遷移すると、垂直・水平処理切換部Ａ５０から出力される垂直処理／水平処理信号が水平処理から垂直処理に切り換わる。これにより、カレント上側レジスタＡ０１及びカレント下側レジスタＡ０２に保持された各パラメータ群は、セレクタＡ３２およびＡ３１を介して隣接上側レジスタＡ０４および隣接下側レジスタＡ０３に転送される。この状態で条件判定回路Ａ４０は、例えば、垂直境界処理のための条件判定を行う。この条件判定に従って画像符号化（又は復号化処理）では垂直境界処理がなされる。
【００８０】
第３に、垂直・水平処理切換部Ａ５０から出力される垂直処理／水平処理信号が垂直処理から水平処理に切り換わると、隣接上側レジスタＡ０４および隣接下側レジスタＡ０３の各パラメータ群はパラメータラインメモリＡ１０に退避される。さらに、パラメータラインメモリＡ１０から、カレントマクロブロックペアの上に隣接するマクロブロックペアにおける上側マクロブロックおよび下側マクロブロックに関するパラメータ群が隣接上側レジスタＡ０４および隣接下側レジスタＡ０３に転送される。この状態で条件判定回路Ａ４０は、水平境界処理のための条件判定を行う。この条件判定に従って画像符号化（又は復号化処理）では垂直境界処理がなされる。
【００８１】
これにより第４に、カレントマクロブロックペアの処理完了直後の状態になり、これ以降、マクロブロックペア単位に上記を繰り返す。
【００８２】
以上説明してきたように、本実施の形態におけるデータ保持制御装置によれば、レジスタＡ０１およびＡ０２はカレントマクロブロックの属するマクロブロックペア内の２つのマクロブロックのパラメータ群を保持、つまりマクロブロックペア単位にパラメータを保持し、同様に隣接マクロブロックペア用のレジスタＡ０４およびＡ０３もマクロブロックペア単位にパラメータを保持する。しかも、レジスタＡ０４およびＡ０３は、セレクタＡ３２およびＡ３１を介して、カレントマクロブロックの左隣のマクロブロックペアに関するパラメータ群と、カレントマクロブロックの上に隣接するマクロブロックペアに関するパラメータ群とを順次択一的に保持する。言い換えれば、レジスタ群は、左に隣接するマクロブロックペア用と、上に隣接するマクロブロックペア用とで時系列的に兼用することができる。
【００８３】
レジスタＡ０４は、左に隣接するマクロブロックペアにおける上側マクロブロック用と、上に隣接するマクロブロックペアにおける上側マクロブロック用とで時系列的に兼用することができる。また、レジスタＡ０３は、左に隣接するマクロブロックペアにおける下側マクロブロック用と、上に隣接するマクロブロックペアにおける下側マクロブロック用とで時系列的に兼用することができる。
【００８４】
このようにして、順次マクロブロックの位置が変化する度に上記した動作を繰り返し行う。
【００８５】
また、このような符号化（または復号化）処理を時系列的に分割し、左側に隣接するマクロブロックに関するパラメータ群と上側に隣接するマクロブロックに関するパラメータ群とを格納する隣接マクロブロック用レジスタの共用は、実施の形態１において説明したような、マクロブロックペアに対してもマクロブロックペア用のレジスタを備えるだけで適用可能となる。
【００８６】
（実施の形態３）
図４は本発明の実施の形態３に係るデータ保持制御装置を説明した図である。このデータ保持制御回路は、マクロブロックペア内のマクロブロックに個別のパラメータ群が格納されるカレントマクロブロック用レジスタ９０１と、マクロブロックペア内のマクロブロックに共通のパラメータ群が格納されるカレントマクロブロック用レジスタ９０２と、スイッチ９５０と、左側隣接マクロブロックペアにおける上側マクロブロック用レジスタ９０４と、左側隣接マクロブロックペアにおける下側マクロブロック用レジスタ９０３と、パラメータラインメモリ９１０と、上側隣接マクロブロックペアにおける上側マクロブロック用レジスタ９０５と、上側隣接マクロブロックペアにおける下側マクロブロック用レジスタ９０６と、スイッチ９５１と、分配器９２０と、セレクタ９３０と、セレクタ９３１と条件判定回路９４０とを備える。各機能について説明する。
【００８７】
カレントマクロブロック用レジスタ９０１は、カレントマクロブロックに関する符号化（または復号化）パラメータ群の内、マクロブロックペア内のマクロブロックに個別のパラメータ群を保持する。
【００８８】
共通用カレントマクロブロック用レジスタ９０２は、カレントマクロブロックに関する符号化（または復号化）パラメータ群の内、マクロブロックペア内のマクロブロックに共通のパラメータ群を保持する。
【００８９】
スイッチ９５０は、前記マクロブロックペア毎に変化するパラメータ群が格納されるカレントマクロブロック用レジスタ９０２に対して、誤ったパラメータ群による上書きを防ぐ事を目的とした、マクロブロックペアの遷移タイミングのみに書込みを可能とする。
【００９０】
左側隣接マクロブロックペアにおける上側マクロブロック用レジスタ９０４は、カレントマクロブロック用レジスタに格納されたパラメータ群を左側隣接マクロブロックペアの上側に位置するマクロブロックのパラメータ群として再利用する為に一時的に保持する。
【００９１】
左側隣接マクロブロックペアにおける下側マクロブロック用レジスタ９０３は、同じく前記カレントマクロブロック用レジスタに格納されたパラメータ群を左側隣接マクロブロックペアの下側に位置するマクロブロックのパラメータ群として再利用する為に一時的に保持する。
【００９２】
パラメータラインメモリ９１０は、前記カレントマクロブロック用レジスタに格納されたパラメータ群を上側隣接マクロブロックペアのパラメータ群として再利用する為に一時的に記憶する。
【００９３】
上側隣接マクロブロックペアにおける上側マクロブロック用レジスタ９０５は、パラメータラインメモリに格納されたパラメータ群を上側隣接マクロブロックペアの上側に位置するマクロブロックのパラメータ群として再利用する為に一時的に格納するか、またはカレントマクロブロック用レジスタ９０１および９０２に格納されたパラメータ群を前記カレントマクロブロックペアにおける上側マクロブロックのパラメータ群として再利用する為に一時的に保持する。
【００９４】
上側隣接マクロブロックペアにおける下側マクロブロック用レジスタ９０６は、同じく前記パラメータラインメモリに格納されたパラメータ群を上側隣接マクロブロックペアの下側に位置するマクロブロックのパラメータ群として再利用する為に一時的に保持する。
【００９５】
スイッチ９５１は、上側隣接マクロブロックペアの下側に位置するマクロブロックのパラメータ群はマクロブロックペア毎に変化するパラメータ群が書き込まれる為、該パラメータ群が書き込まれるレジスタに対して、誤ったパラメータ群による上書きを防ぐ事を目的とした、マクロブロックペアの遷移タイミングのみに書込みを可能とする。
【００９６】
分配器９２０は、カレントマクロブロック用レジスタに格納されたパラメータ群を左側隣接マクロブロックペアの上側か、または下側、何れかの左側隣接マクロブロックペア用レジスタ９０４または９０３に出力する。
【００９７】
セレクタ９３０は、左側隣接マクロブロックペアにおける上側マクロブロック用レジスタ９０４に、前記分配器によって左側隣接マクロブロックペアの上側マクロブロックの情報として分配されたパラメータ群か、または上側隣接マクロブロックペアにおける上側マクロブロック用レジスタ９０５に格納されたパラメータ群の何れかを出力する。
【００９８】
セレクタ９３１は、上側マクロブロック用レジスタ９０５に、パラメータラインメモリ９１０より読み出されたパラメータ群か、またはカレントマクロブロック用レジスタ９０１および９０２に格納されたパラメータ群の何れかを出力する。
【００９９】
条件判定回路９４０は、カレントマクロブロック用レジスタ９０１および９０２と、左側隣接マクロブロックペアにおける上側マクロブロック用レジスタ９０４と、左側隣接マクロブロックペアにおける下側マクロブロック用レジスタ９０３と、上側隣接マクロブロックペアにおける上側マクロブロック用レジスタ９０５と、上側隣接マクロブロックペアにおける下側マクロブロック用レジスタ９０４とからカレントマクロブロックにおける符号化（または復号化）処理に関する条件判定を行う。
【０１００】
図４は、既に説明した実施の形態１の構成に加えて、カレントマクロブロックに関する符号化（または復号化）パラメータ群の内、マクロブロックペア毎に与えられるパラメータを格納するレジスタ９０２、並びにカレントマクロブロックペアが遷移しないタイミングにおいて、前記マクロブロックペア毎に与えられるパラメータを格納するレジスタ９０２に対してパラメータの更新を防ぐスイッチ９５０、更に上側に隣接するマクロブロックペアの内、下側のマクロブロック用レジスタに対してマクロブロックペアが遷移しないタイミングにおけるパラメータの更新を防ぐスイッチ９５１を含む回路の構成を示している。
【０１０１】
このような回路構成において、条件判定回路９４０では、既に実施の形態１で説明したように、画像符号化（または復号化）の為の条件判定だけではなく、カレントマクロブロックペアと隣接するマクロブロックペアとの構造上の関係や、カレントマクロブロックペア内におけるカレントマクロブロックの位置によって、隣接するマクロブロックの位置関係を判定し、カレントマクロブロックと隣接マクロブロックとの構造や位置の関係によって、カレントマクロブロック用レジスタに格納されていた画像符号化（または復号化）に関するパラメータ群は、左側に隣接するマクロブロック用レジスタ、並びに上側に隣接するマクロブロック用レジスタ、それぞれ２つ備えられているレジスタの内の何れかに退避、格納されるよう、分配器９２０、セレクタ９３０、９３１によって切換えられる。また同時に、マクロブロックペア毎に与えられるパラメータに関しては、カレントマクロブロックペアが遷移するタイミング、即ち、カレントマクロブロックがカレントマクロブロックペア内の上側に位置している場合にのみパラメータが格納されるよう、条件判定回路９４０より出力される制御信号によって、スイッチ９５０、および９５１がＯＮ状態となる。
【０１０２】
例えば、今、カレントマクロブロックがカレントマクロブロックペアの上側に位置する場合、このカレントマクロブロックに関する符号化（または復号化）の処理が完了した後、カレントマクロブロック用レジスタに格納されたパラメータ群が再び左側に隣接するマクロブロックのパラメータ群として用いられるまでには、図９の動作を考慮すると、２マクロブロック後となる為、一度、上側に隣接するマクロブロックペアの上側マクロブロック用レジスタ９０４に退避、格納される。この為、セレクタ９３１によって、予めレジスタ９０４にパラメータが書き込まれるように条件判定回路９４０より切換え信号が出力される。また、この動作によって必然的にカレントマクロブロックのパラメータ群が再び上側隣接マクロブロックのパラメータとして用いられるのは、図９の動作を考慮すると、直後のマクロブロックとなる為、先程のレジスタ９０４に退避されたパラメータをそのまま利用する事ができる。このように、上側に隣接するマクロブロックペアの上側マクロブロック用レジスタにカレントマクロブロックのパラメータ群を退避させる事を可能としている理由には、図９の動作を考慮すると、次のマクロブロックの位置がカレントマクロブロックペア内の下側となるとなる為、図１１から明らかなように、カレントマクロブロックがカレントマクロブロックペアの下側に位置する場合には、上側に隣接するマクロブロックペアの上側マクロブロックが持つパラメータを用いる事がない事にある。一方、カレントマクロブロックのパラメータ群が再び上側に隣接するマクロブロックペアの上側マクロブロックに関するパラメータ群として用いられるまでには、図９の動作を考慮すると、短くとも１マクロブロックペアライン後となる為、一旦パラメータラインメモリ９１０に退避される。
【０１０３】
続いて、カレントマクロブロックがカレントマクロブロックペアの下側に位置する場合、このカレントマクロブロックに関する符号化（または復号化）の処理を完了した後、カレントマクロブロック用レジスタに格納されたパラメータ群が再び左側に隣接するマクロブロックのパラメータ群として用いられるまでには、図９の動作を考慮すると、２マクロブロック後となる為、左側に隣接するマクロブロックペアの下側マクロブロック用レジスタ９０２に直接格納される。このように、先程のような上側に隣接するマクロブロックペアの上側マクロブロック用レジスタにカレントマクロブロックのパラメータ群を退避させる必要がない理由には、図９に示すように、次にカレントマクロブロックとなるマクロブロックは、右側に隣接するマクロブロックペアの上側マクロブロックとなる為、カレントマクロブロックに関するパラメータ群が直ちに左側に隣接するマクロブロックペアの下側マクロブロックのパラメータ群として必要となる事が挙げられる。一方、カレントマクロブロックのパラメータ群が再び上側に隣接するマクロブロックペアの下側マクロブロックに関するパラメータ群として用いられるまでには、図９の動作を考慮すると、１マクロブロックペアライン後となる為、一旦パラメータラインメモリ９１０に退避される。
【０１０４】
このように左側に隣接するマクロブロックのパラメータとしては、長くとも２マクロブロック後には必要とされる為、隣接マクロブロック用レジスタへ直ちに退避されるが、上側に隣接するマクロブロックのパラメータとしては、短くとも１マクロブロックライン後に必要とされる為、一旦パラメータラインメモリ９１０に退避させた後、再びこの退避されたパラメータ群が上側に隣接するマクロブロックペアのパラメータとして必要となった時に、先程のパラメータラインメモリ９１０より上側に隣接するマクロブロックペアの上側、または下側のマクロブロック用レジスタ９０４、９０５に転送される。
【０１０５】
今、カレントマクロブロックがカレントマクロブロックペアの上側に位置する場合、その直前にパラメータラインメモリ９１０より読み出された上側隣接マクロブロックペアに関するパラメータの内、上側のマクロブロックに関するパラメータ群がレジスタ１０９に格納されるよう、条件判定回路９４０によりセレクタ９３１に対して切換え信号が出力される。一方、下側のマクロブロックに関するパラメータ群もレジスタ１０５に格納されるよう、同じく条件判定回路９４０によりスイッチ９５１に対してＯＮ信号が出力される。
【０１０６】
続いて、カレントマクロブロックがカレントマクロブロックペアの下側に位置する場合、上側に隣接するマクロブロックペアの上側マクロブロック用レジスタ９０４に格納されていたパラメータ群は、既に説明したように、今後必要とされる事がない為、上側に隣接するマクロブロックペアの上側マクロブロック用レジスタ９０４には、カレントマクロブロック用レジスタ９０１に格納されていたパラメータ群が退避、格納される。一方、上側に隣接するマクロブロックペアの下側マクロブロック用レジスタ９０５には、前回、カレントマクロブロックがカレントマクロブロックペアの上側に位置している時、既に必要とされるパラメータ群が格納されている為、誤ったパラメータがパラメータラインメモリより転送され、上書きされないよう、条件判定回路９４０によりスイッチ９５１に対してＯＦＦ信号が出力される。
【０１０７】
以上説明してきたように本実施の形態におけるデータ保持装置によれば、個別のパラメータはマクロブロック単位に更新され、共通のパラメータはマクロブロックペア単位に更新されるので、データ転送の無駄を削減することができる。しかも、共通のパラメータに誤って上書きすることを防止することができることから、上位層（例えばＣＰＵやＤＳＰ）において共通パラメータの有無を判断することなくレジスタへ設定できるため、プログラムのステップ数を削減することができる。
【産業上の利用可能性】
【０１０８】
本発明は、画像を符号化又は復号化するする符号化装置、復号化装置およびそれらに備えられるデータ保持制御装置に適しており、動画配信するウェブサーバー、それを受信するネットワーク端末、動画の記録再生可能なデジタルカメラ、カメラ付き携帯電話機、ＤＶＤ録画／再生機、デジタルＴＶ、ＰＤＡ、パーソナルコンピュータ等に適している。
【図面の簡単な説明】
【０１０９】
【図１】実施の形態１におけるデータ保持制御装置の構成
【図２】実施の形態２におけるデータ保持制御装置の構成
【図３】パラメータ群の転送順を示す説明図
【図４】実施の形態３におけるデータ保持制御装置の構成３
【図５】従来技術におけるデータ保持制御装置の構成
【図６】従来技術におけるマクロブロックの処理順序
【図７】従来技術におけるカレントマクロブロックと隣接マクロブロックとの関係
【図８】従来技術におけるカレントマクロブロックと隣接マクロブロックとの関係
【図９】マクロブロックペアの処理順序を示す図
【図１０】カレントマクロブロックと隣接マクロブロックとの関係
【図１１】カレントマクロブロックと隣接マクロブロックとの関係
【図１２】データ保持装置の他の例
【符号の説明】
【０１１０】
１０１  カレントマクロブロック用レジスタ
１０２  左側隣接マクロブロックペア下側マクロブロック用レジスタ
１０３  左側隣接マクロブロックペア上側マクロブロック用レジスタ
１０４  上側隣接マクロブロックペア上側マクロブロック用レジスタ
１０５  上側隣接マクロブロックペア下側マクロブロック用レジスタ
１１０  パラメータラインメモリ
１２０  分配器
１３０、１３１  セレクタ
１４０  条件判定回路
Ａ０１  カレント上側レジスタ
Ａ０２  カレント下側レジスタ
Ａ０３  隣接下側レジスタ
Ａ０４  隣接上側レジスタ
Ａ１０  パラメータラインメモリ
Ａ３１〜Ａ３４  セレクタ
Ａ４０  条件判定回路
Ａ５０  垂直・水平処理切換部
９０１  個別パラメータカレントマクロブロック用レジスタ
９０２  共通パラメータカレントマクロブロック用レジスタ
９０３  左側隣接マクロブロックペア下側マクロブロック用レジスタ
９０４  左側隣接マクロブロックペア上側マクロブロック用レジスタ
９０５  上側隣接マクロブロックペア上側マクロブロック用レジスタ
９０６  上側隣接マクロブロックペア下側マクロブロック用レジスタ
９１０  パラメータラインメモリ
９５０、９５１  スイッチ
９２０  分配器
９３０、９３１  セレクタ
９４０、条件判定回路
【図１】
2006197011.tif 000003
【図２】
2006197011.tif 000004
【図３】
2006197011.tif 000005
【図４】
2006197011.tif 000006
【図５】
2006197011.tif 000007
【図６】
2006197011.tif 000008
【図７】
2006197011.tif 000009
【図８】
2006197011.tif 000010
【図９】
2006197011.tif 000011
【図１０】
2006197011.tif 000012
【図１１】
2006197011.tif 000013
【図１２】
2006197011.tif 000014