(57)【特許請求の範囲】
【請求項１】
１ブロック内の可変長符号成分以外の長さと終端符号の長さとの合計が、可変長符号語の最大長のビット数から１ビットを差し引いたビット長以上となる画像圧縮伸張フォーマットによりパッキングされた画像データをデパッキングして可変長復号する符号化画像データ復号装置において、
１ビデオセグメント分の符号列を格納しているメモリ手段と、
前記メモリ手段から出力される符号列を可変長復号するデコード手段と、
前記メモリ手段と前記デコード手段との間に挿入されて１ブロック分の符号列を格納可能なブロック記憶手段と、
前記ブロック記憶手段を含み、前記メモリ手段より供給された符号列が１ブロック分の符号列でない場合に順次供給された符号列の中から必要な部分を適宜組み合わせて１ブロック分の符号列を完成させて前記デコード手段に供給するデパッキング手段と、
を備えることを特徴とする符号化画像データ復号装置。
【請求項２】
前記ブロック記憶手段の入力に、ブロック記憶手段２つ分の入力が可能な符号列結合手段を挿入し、その一方の入力をブロック記憶手段に、もう一方の入力をメモリ手段に接続したことを特徴とする請求項１に記載の符号化画像データ復号装置。
【請求項３】
前記ブロックの終わりを示すブロック終了符号が検出されなかったブロックに関し、ブロック記憶手段の内容をメモリ手段に書き戻すことを特徴とする請求項１に記載の符号化画像データ復号装置。
【請求項４】
１ブロック内の可変長符号成分以外の長さと終端符号の長さとの合計が、可変長符号語の最大長のビット数から１ビットを差し引いたビット長以上となる画像圧縮伸張フォーマットによりパッキングされた、画像データにおける少なくとも１ビデオセグメント分の符号列を格納するステップと、
前記符号列を少なくとも１ブロック分ずつ取り出すステップと、
取り出された１ブロック分の符号列がデパッキング前の１纏まりのブロックであるか否かを判定するステップと、
判定されたブロックがデパッキング前の１纏まりのブロックである場合にそのブロックの符号列を復号するステップと、
取り出された１ブロック分の符号列がデパッキング前の１纏まりのブロックでない場合に、前記１セグメントの分のブロックの符号列を順次取り入れてデパッキング前の１纏まりの１ブロック分の符号列を連結するステップと、
連結された１ブロック分の符号列を復号するステップと、
を備える符号化画像データ復号方法。
【請求項５】
１ブロック内の可変長符号成分以外の長さと終端符号の長さとの合計が、可変長符号語の最大長のビット数から１ビットを差し引いたビット長以上となる画像圧縮伸張フォーマットによりパッキングされた、画像データにおける少なくとも１ビデオセグメント分の符号列を格納する手順と、
前記符号列を少なくとも１ブロック分ずつ取り出す手順と、
取り出された１ブロック分の符号列がデパッキング前の１纏まりのブロックであるか否かを判定する手順と、
判定されたブロックがデパッキング前の１纏まりのブロックである場合にそのブロックの符号列を復号する手順と、
取り出された１ブロック分の符号列がデパッキング前の１纏まりのブロックでない場合に、前記１ビデオセグメントの分のブロックの符号列を順次取り入れてデパッキング前の１纏まりの１ブロック分の符号列を連結する手順と、
連結された１ブロック分の符号列を復号する手順と、
を備える符号化画像データ復号プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像復号化装置に係り、特にパッキングされたデータをデパッキング処理しながら復号化する画像復号装置に関する。
【０００２】
【従来の技術】
画像の符号化および復号化処理技術において、パッキング／デパッキング処理とは、ブロック毎に長さの異なる可変長符号を、決められた容量のエリアに格納するために、上限を超えて長い可変長符号を途中で切断し、容量の余っている別のブロックに格納する、いわば「データの格納容量を融通し合う処理」のことである。
【０００３】
本発明におけるパッキング／デパッキング処理は、一例として「ＤＶフォーマット」、すなわち、「ＨＤデジタルＶＣＲ協議会（HD digital VCR Conference）」により規格化されたＤＶＣ（Digital VCR for Consumer use―ユーザ使用のためのデジタルＶＣＲ―）と呼ばれる方式のフォーマットを想定しているが、必ずしも上記のみに限られたものではなく、他の所定のフォーマットによりパッキングされた可変長符号画像データのデパッキング処理に対して広く適用することができることはもちろんである。
【０００４】
パッキング／デパッキング処理の詳細については、必要な文献(例えば、久保田編著『図解デジタルビデオ読本』など。)に記載されているので、これらの文献を参照してほしい。
【０００５】
デパッキング処理は、複数ブロックに分割格納されているデータを切出／連結して、元の可変長符号列を再生する処理であるが、単純にパッキングと逆の処理を行なうと、連結データの一時保存用メモリ(４４００ビット程度)が必要になってしまう。そこで、メモリの確保を極力避けて、ポインタ演算を多用することにより省メモリ化を実現した方式が、例えば特開平８−２７５１６２号公報により提案されている。
【０００６】
この従来の復号回路が図２１に示されている。図２１において、メインメモリ１よりバッファメモリ２に入力されたコードデータは、図示されないコードアドレス記憶回路からのバイト情報によってバレルシフタ３にバイト単位でコードデータを供給している。デコード回路４はバレルシフタ３と可変長符号テーブル５とより構成されており、バレルシフタ３では、デコード回路４の可変長符号テーブル５から返される符号長と図示されない前記コードアドレス記憶回路からのビット情報とにより、復号されなかったコードデータをシフトしてバッファメモリ２から供給されたコードデータを接続している。なお、上述した図２１は、前記先行文献（特願平８−２７５１６２号）の図１の要部のみを示しているので、コードアドレス記憶回路、ブロックカウント回路等については図示を省略している。
【０００７】
【発明が解決しようとする課題】
この従来の画像復号方式によれば、連結データの一時保存用メモリを省くことができるが、一方で、１ビデオセグメント（Video Segment）分のデータ(３０４０ビット)を保持するバッファメモリ２へのアクセスが頻繁かつ不規則に発生してしまい、バスを占有してしまうという欠点があった。これは、可変長符号のデコードが済んで「空きができた分だけ」を逐次バレルシフタに供給する (バッファメモリからのデータ供給は８ビット単位)という方式をとっているためである。このため、メモリバンド幅を確保するという観点から、実質的にはバッファメモリをメインメモリとは分離して確保せざるを得ないので、省メモリ化の効果が低減されてしまうという結果となっていた。
【０００８】
特に近年、更なる省メモリ化のため復号すべきデータをメインメモリ上に置き、バッファメモリを削減したいという要求が強いが、メインメモリへのアクセスが増大するため、バッファサイズの決定は性能に大きな影響を及ぼす重要事項となる。
【０００９】
本願の発明者たちは、ＤＶフォーマットのコード体系を詳細に分析した結果、一見して可変長符号データに見える処理内容であっても実際には１１２ビットの固定長処理に類するフォーマットに分割する処理が可能であることを見出した。バッファメモリのサイズをこの長さに固定して、メモリアクセスをこの長さ単位で行なうことにより、メモリバスを占有する度合いを大幅に軽減することが可能になる。
【００１０】
本発明は上記問題を解決するためになされたものであり、デパッキング処理における可変長符号列を、例えば１１２ビットの固定長処理の繰り返しとして処理することにより、メモリ領域を節約したままでも、メモリアクセス頻度を削減することのできる符号化画像データ復号装置、方法およびプログラムを提供することを目的としている。
【００１１】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の基本構成に係る符号化画像データ復号装置は、１ブロック内の可変長符号成分以外の長さと終端符号の長さとの合計が、可変長符号語の最大長のビット数から１ビットを差し引いたビット長以上となる画像圧縮伸張フォーマットによりパッキングされた画像データをデパッキングして可変長復号する画像復号装置において、１ビデオセグメント分の符号列を格納しているメモリ手段と、該メモリ手段から出力される符号列を可変長復号するデコード手段と、前記メモリ手段と前記デコード手段との間に挿入されて１ブロック分の符号列を格納可能なブロック記憶手段と、前記ブロック記憶手段を含み、前記メモリ手段より供給された符号列が１ブロック分の符号列でない場合に順次供給された符号列の中から必要な部分を適宜組み合わせて１ブロック分の符号列を完成させて前記デコード手段に供給するデパッキング手段と、を備えることを特徴としている。
【００１２】
前記メモリ手段には、所定のフォーマットによりパッキングされた画像データの１ビデオセグメント分が格納されており、ブロック記憶手段を含むデパッキング手段は、メモリ手段より供給された符号列が１ブロック分の符号列でない場合に必要部分を順次組み合わせて１ブロック分の符号列とすることによりパッキングされた過程と逆の過程を経てデパッキング処理を行ない、デパッキングされた符号列をデコード手段に供給し、デコード手段はこの符号列を復号している。
【００１３】
なお、前記第１の基本構成に係る画像符号化データ復号装置において、前記ブロック記憶手段の入力に、ブロック記憶手段２つ分の入力が可能な符号列結合手段を挿入し、その一方の入力をブロック記憶手段に、もう一方の入力をメモリ手段に接続しても良い。
【００１４】
また、前記第１の基本構成に係る画像符号化データ復号装置において、前記ブロックの終わりを示すブロック終了符号が検出されなかったブロックに関し、ブロック記憶手段の内容をメモリ手段に書き戻すようにしても良い。
【００１５】
本発明の第２の基本構成に係る符号化画像データ復号方法は、１ブロック内の可変長符号成分以外の長さと終端符号の長さとの合計が、可変長符号語の最大長のビット数から１ビットを差し引いたビット長以上となる画像圧縮伸張フォーマットによりパッキングされた、画像データにおける少なくとも１ビデオセグメント分の符号列を格納するステップと、前記符号列を少なくとも１ブロック分ずつ取り出すステップと、取り出された１ブロック分の符号列がデパッキング前の１纏まりのブロックであるか否かを判定するステップと、判定されたブロックがデパッキング前の１纏まりのブロックである場合にそのブロックの符号列を復号するステップと、取り出された１ブロック分の符号列がデパッキング前の１纏まりのブロックでない場合に、前記１ビデオセグメントの分のブロックの符号列を順次取り入れてデパッキング前の１纏まりの１ブロック分の符号列を連結するステップと、連結された１ブロック分の符号列を復号するステップと、を備えている。
【００１６】
さらに、本発明の第３の基本構成に係る符号化画像データ復号プログラムは、１ブロック内の可変長符号成分以外の長さと終端符号の長さとの合計が、可変長符号語の最大長のビット数から１ビットを差し引いたビット長以上となる画像圧縮伸張フォーマットによりパッキングされた、画像データにおける少なくとも１ビデオセグメント分の符号列を格納する手順と、前記符号列を少なくとも１ブロック分ずつ取り出す手順と、取り出された１ブロック分の符号列がデパッキング前の１纏まりのブロックであるか否かを判定する手順と、判定されたブロックがデパッキング前の１纏まりのブロックである場合にそのブロックの符号列を復号する手順と、取り出された１ブロック分の符号列がデパッキング前の１纏まりのブロックでない場合に、前記１ビデオセグメントの分のブロックの符号列を順次取り入れてデパッキング前の１纏まりの１ブロック分の符号列を連結する手順と、連結された１ブロック分の符号列を復号する手順と、を備えている。
【００１７】
【発明の実施の形態】
以下、本発明に係る符号化画像データ復号装置、方法およびプログラムの実施の形態について、添付図面を用いて詳細に説明する。具体的な実施形態を説明する前に、本発明の第１の基本構成に基づく第１実施形態に係る符号化画像データ復号装置について、図１を参照しながら説明する。
【００１８】
図１は、本発明の第１実施形態に係る符号化画像データ復号装置の構成を示すブロック図である。この第１実施形態に係る符号化画像データ復号装置１０は、１ブロック内の可変長符号成分以外の長さと終端符号の長さとの合計が、可変長符号語の最大長のビット数から１ビットを差し引いたビット長以上となる画像圧縮伸張フォーマットによりパッキングされた画像データをデパッキングして可変長復号する画像復号装置である。
【００１９】
図１において、復号装置１０は、基本的には、１ビデオセグメント分の符号列を格納しているメモリ手段１１と、該メモリ手段１１から出力される符号列を可変長復号するデコード手段１２と、前記メモリ手段１１と前記デコード手段１２との間に挿入されて１ブロック分の符号列を格納可能に構成されると共に連結された２ブロック分の符号列を格納するブロック記憶手段１５と、このブロック記憶手段１５を含み、前記メモリ手段１１より供給された符号列が１ブロック分の符号列でない場合に順次供給された符号列の中から必要な部分を適宜組み合わせて１ブロック分の符号列を完成させて前記デコード手段１２に供給するデパッキング手段１６と、を備えている。
【００２０】
前記デコード手段１２は、図２１に示した従来のデコード回路２と同様に、バレルシフタ１３と可変長符号テーブル１４とを備えており、バレルシフタ１３は、ブロック記憶回路１５より出力されたデパッキング前の１纏まりとなった１ブロック分の符号列に対して、デコード手段１２の可変長符号テーブル１４から返される符号長と図示されない前記コードアドレス記憶回路からのビット情報とによって、復号されなかったコードデータをシフトしてブロック記憶手段１５から供給されたコードデータを接続している。したがって、デコード手段１２の動作は従来の復号回路のデコード回路４に対応している。
【００２１】
以上のように構成することにより、第１実施形態に係る復号装置によれば、例えばバッファメモリ等により構成されたブロック記憶手段１５のメモリ量を例えば１１２ビット程度の少ない容量でも対応することができ、一般的な方法や従来の復号装置のバッファを備えている場合と比較して遙かに少なくすることができる。また、例えばメインメモリ等により構成されたメモリ手段１１へのアクセス頻度をバッファを備えない従来の復号装置に比べて低くすることができる。
【００２２】
図２は、この状態を比較して示す表であり、この表に示されたように、バッファメモリ量の節約とメインメモリへのアクセス頻度の両面において一般的な方法や従来の装置に比べて優れた効果を奏する。本発明の趣旨は、デパッキング処理において可変長符号列の処理を「固定長（１１２ビット）処理の繰り返し」に帰着させることにより、省メモリ性を保ったままで、メモリアクセス頻度を削減する復号回路方式を提案することにあり、最も基本的な第１実施形態に係る復号装置により従来の復号回路と比較しても顕著な効果が得られること分かる。
【００２３】
次に、より具体的な実施例としての第２実施形態に係る符号化画像データ復号装置について、図３ないし図１６を参照しながら詳細に説明する。本発明の第２実施形態に係る符号化画像データ復号装置が、図３に示されている。図３において図１と同一符号を付した構成要素は、図１に示す第１実施形態に係る復号装置と同一もしくは相当する構成要素を示すものとする。
【００２４】
図３において、第２実施形態に係る符号化画像データ復号装置１０は、１ビデオセグメント分の符号化された画像データを格納するメインメモリ１１と、メインメモリ１１から供給される符号化画像データを復号するデコード回路１２と、１ブロック分ずつの符号化画像データをメインメモリ１１より読み出す１１２ビットレジスタ１５と、メインメモリ１１より１ブロック分ずつのデータをレジスタ１５が読出してパッキングされる前に１纏まりの符号化データとされていた１ブロック分のデータに連結するようにデパッキング処理を制御するＣＰＵ１７と、メインメモリ１１とレジスタ１５との間の符号化データの送受を仲介するデータバス１８と、を備えている。この第２実施形態に係る復号装置１０においては、レジスタ１５およびＣＰＵ１７とによりデパッキング手段１６が構成されている。
【００２５】
以上の構成を有する第２実施形態に係る復号装置は、メインメモリ１１とバレルシフタ１３との間に１１２ビット長のレジスタ１５が挿入されている。ここで符号化画像データのデータ構造について、図４を参考にして説明すると、１ビデオセグメント分の符号列(３０４０ビット程度)はメインメモリ１１に格納されており、以下に示す手順に従って、順次１１２ビットレジスタに読み込まれて処理される。ＤＶフォーマットの仕様では、輝度成分（Ｙ）の４ブロックの容量はそれぞれ１１２ビット（１４バイト）、色差成分（Ｃｒ，Ｃｂ）の２ブロックの容量はそれぞれ８０ビット（１０バイト）と決められているが、容量以外の処理は共通であるため同一のデータ構造／ハードウェアを共用することができる。ＣＰＵは全体の制御を行なうのに加え、この第２実施形態の復号装置においては、後述する符号列の連結も行なっている。また、制御のための少量のメモリ領域を有している。
【００２６】
上記データ構造を踏まえて、第２実施形態に係る符号化画像データ復号装置におけるデパッキング手段１６は、以下に示すような第１ないし第３段階の手順にしたがって、デパッキング処理を行なっている。図４に加えて、図５（ａ）（ｂ）の説明図も用いて、第２実施形態に係る復号装置におけるデパッキング処理について説明する。図４において、縦１列が１バイトすなわち８ビット分のデータを表しており、１ブロックのデータの最初の１２ビットの部分にはＤＣ成分等の固定長データ部が割り当てられている。
【００２７】
まず、第１の段階の手順では、各ブロックのデータをレジスタ１５に読み込んで、順次バレルシフタに供給すると共に、ブロックの終わりを示すＥＯＢ（End Of Block）符号を含む第１パターンのブロックであるか、ＥＯＢ符号を含まない第２パターンのブロックであるかを検出する。レジスタ１５が読み込んだブロックが、第１パターンのブロックである場合には、そのブロックに対応する終了フラグをセットして、ＥＯＢ符号の後に続く符号列は復号しないでそのまま残しておくものとする。また、レジスタ１５が読み込んだブロックが第２パターンのブロックすなわちＥＯＢ符号が検出されなかったブロックについては、途中で切れている最後の符号語のみを残し、結果としてその１つ前の符号語までがバレルシフタ１３へと出力されることとなる。
【００２８】
次に、第２段階の手順としては、ＥＯＢ符号を含む前記第１パターンのブロックとＥＯＢ符号を含まない第２パターンのブロックとを１つずつ選択して、第１パターンが後ろになるように連結してレジスタ１５に格納してから上記第１段階の手順を繰り返している。その結果、ＥＯＢ符号が検出された第２パターンのブロックを空にして終了フラグをセットし、その次の第１パターンまたは第２パターンのブロックを読み込むことになる。読み込んだブロックの符号の中にＥＯＢ符号が検出されなかったら、残りを第２パターンのブロックに書き戻して、第１パターンのブロックを空にしてから次の第１パターンおよび第２パターンのブロックを読み込むことになる。
【００２９】
第３段階の手順は、同一のビデオセグメント内で上記第２段階の手順を繰り返し、以下、そのビデオセグメント内のブロックの符号列のデパッキングおよび復号処理が行なわれる。そのビデオセグメント内の符号列の処理が終了すると、次のビデオセグメント内の符号列の処理が順次ブロック単位で行なわれ、全ての符号列の処理が行なわれる。
【００３０】
なお、第２段階の手順の最後で、第１パターンのブロックを空にしてから次の第１パターンおよび第２パターンのブロックの読み込み処理に関しては、改善された異なる手法による書き戻し処理の操作も存在しているため、詳細については後述する。
【００３１】
また、この第１ないし第３段階の手順による処理によってデパッキングと可変長復号が同時に終了する。この手順は少々複雑であるため、具体的な例を挙げて説明する。図４に示したＤＶフォーマットのブロック構造を併せ参照しながら、図６ないし図１６を用いて説明する。また、図４で説明したアドレス記憶回路および終了フラグメモリは、従来例（特開平８−２７５１６２号公報）の復号回路においては、それぞれ「コードアドレス記憶回路」、「フラグメモリ」に相当するものであり、この第２実施形態においてはＣＰＵの内部の機能として設けられているものと仮定している。
【００３２】
図６ないし図８においては、１つのビデオセグメントは３０ブロックから構成されているので、本来ならば１つのビデオセグメントの全体を表示すべきであるが、図面の表記が非常に煩雑となるため省略して図示する。デパッキング処理の第１および第２段階の手順は合計６ブロックのブロックおよびマクロブロック内で処理が完結しているので、以下の説明においては、マクロブロック単位で図示することとする。第１段階の処理の状況を図６（ａ）〜（ｃ）ないし図８（ａ）〜（ｃ）を参照しながら説明し、第２段階の手順の説明を図９（ａ）〜（ｃ）ないし図１６（ａ）〜（ｃ）により行なうものとする。
【００３３】
図６（ａ）において、レジスタ１５は、まず、メインメモリ１１から先頭のブロックを読み込み、先頭から符号列を順次バレルシフタへ供給していく。その結果、このブロックにはＥＯＢがなかったので、デパッキングおよび復号化処理を一旦中断する第２パターンのブロックであることが分かる。したがって、復号化できなかった最後の部分の符号語の余りのみがこのブロックでは残されることになる。残りのビット数、この場合３ビット分を、残りの符号語の位置として図６（ｂ）のアドレス記憶回路２１の記憶領域に記憶させると共に、終了フラグメモリ２２には終了フラグを立てないで「０」とする。
【００３４】
次に、図７（ａ）〜（ｃ）を用いて、２番目のブロックの復号およびデパッキング処理について説明する。図７（ａ）の２つ目のブロックをレジスタ１５に読み込んでいる。この２番目のブロックには、ＥＯＢが存在しているので、このブロックは上述した第１パターンのブロックであることが分かる。したがって、ＥＯＢの最後のビットまでデパッキングおよび復号化を行なってそこで処理を中断して図７（ｂ）のアドレス記憶回路２１にはそのビット数、ここでは３７を記憶すると共に図７（ｃ）の終了フラグメモリ２２には終了フラグ「１」を立ててこれを記憶する。図７（ａ）のレジスタ１５に読み込まれたブロックにおけるＥＯＢよりも後の部分には他のブロックの符号が記憶されているので、このブロックに存在している符号だけでは復号を行なうことができない。
【００３５】
次に、図８（ａ）〜（ｃ）を用いて３番目ないし６番目のブロックの復号を行なう。図８（ａ）において、メインメモリ１１に格納されている３番目のブロックは、ＥＯＢがない第２パターンのブロックであるので、図８（ｂ）のアドレス記憶回路２１にはそのビット数１０を書き込むと共に、第２パターンのブロックのため終了フラグが立てられず、図８（ｃ）のメモリ２２には「０」が書き込まれる。以下、４番目のブロックも第２パターンのため図８（ｂ）のアドレス記憶回路２１にはそのビット数５が書き込まれ、図８（ｃ）の終了フラグメモリ２２には「０」が書き込まれる。５番目のブロックは第１パターンのため図８（ｂ）のアドレス記憶回路２１にはそのビット数１９が書き込まれ、図８（ｃ）の終了フラグメモリ２２には「１」が書き込まれる。６番目のブロックも第１パターンのため図８（ｂ）のアドレス記憶回路２１にはそのビット数１４が書き込まれ、図８（ｃ）の終了フラグメモリ２２には「１」が書き込まれる。
【００３６】
次に、図９ないし図１６を参照しながら第２段階の処理について説明する。上記の第１段階の処理において、通常は１つのビデオセグメントについて連続して行なわれるため、１番目から３０番目のブロックの全てについて第１段階の処理が行なわれるが、説明の便宜上、１番目ないし６番目のブロックの復号化およびデパッキング処理を行なっていたのと同様に、この第２段階の処理についても６つのブロックを例にして説明する。
【００３７】
この第２段階の具体例としては処理の内容を分かり易くするために、第１段階のデパッキングおよび復号化処理後に残ったブロックに対して、第２段階の連結処理と復号化とを行なうものとして図示している。実際にはメモリ１１の内容は何ら更新されていないし、復号済みの部分もクリアされている訳ではない。アドレス記憶回路２１の内容から区切り位置を知ることができる。これ以降の説明においても、特に明記しない限り、メモリ１１の内容は更新されない。
【００３８】
図９は最初の２ブロックがレジスタ１５内で連結される状態を示し、図１０は連結されたレジスタ１５内のブロックが復号された後の状態を示している。したがって、図１０（ｂ）（ｃ）には、連結後復号化された後に書き換えられたアドレス記憶回路２１の１番目および２番目の欄と、終了フラグ「１」が立てられた終了フラグメモリ２２の１番目の欄とが示されている。
【００３９】
図９（ａ）〜（ｃ）に示すように、第１パターンおよび第２パターンのブロックを１つずつ取り出してレジスタ１５の中で連結する。第１パターンのブロックは終了フラグメモリに「１」が立っているのに対して、第２パターンのブロックには「０」が書き込まれている。なお、第１パターンのブロックとは終了フラグ「１」が立っていてアドレス記憶回路２１の内容がゼロでないブロックであり、第２パターンのブロックとは終了フラグ「１」が立っていないブロックである。レジスタ１５の中で２種類のパターンのブロックを連結する場合には、連結の順番は必ず第２パターンのブロックが前に来るようにして連結する。
【００４０】
次に、図１０（ａ）に示すように、レジスタ１５に記憶された符号の中にはＥＯＢ符号が検出されており、このレジスタ１５内を復号すると、図１０（ｂ）に示すように、第２パターンのブロックに対応するアドレス記憶回路２１の１番目の欄が「０」になり、図１０（ｃ）に示すように、終了フラグメモリ２２の１番目のブロックには終了フラグ「１」が立てられる。２番目のブロックは、第１段階の復号化およびデパッキング処理の後、３０ビット分復号されているので、アドレス記憶回路２１の２番目の欄には、復号の残りビット数７が書き込まれる。なお図１０（ａ）では、レジスタ１５の内容をメモリ１１の２番目のブロックに反映させるように示しているが、実際にはメモリの内容は更新されていない。
【００４１】
図１１および図１２は、メモリ１１内の連結および復号化が終わっていない次の２ブロック、すなわち２番目および３番目のブロックの連結と復号化の処理が示されている。
【００４２】
次の連結および復号化処理は、次の順番の２ブロックであって、パターンが異なる２つのブロックを、図１１（ａ）に示すように、第２パターンのブロックの方が前になるようにして連結する。図１１（ａ）で２番目のブロックと３番目のブロックを比較すると、第２パターンのブロックは３番目のブロックなので、レジスタ１５内では、図示のように３番目のブロックの符号を前にすると共に２番目のブロックにおけるＥＯＢより後ろの符号を３番目のブロックの符号の後に連結する。次に、レジスタ１５に記憶されている符号を復号する。
【００４３】
復号化後の状態は、図１２に示すようになっており、レジスタ１５内には復号の残り４ビットのみ含まれ、ＥＯＢは検出されていない。メインメモリ１１の２番目のブロックまで復号化処理を終えているので、図１２（ｂ）に示すように、アドレス記憶回路２１の２番目の欄は復号化が終了したことを示す「０」ビットとなり、３番目の欄は復号前の「１０」ビットから復号化後の残りである「４」ビットへと書き換えられる。実際にはメモリ１１の内容は更新されないが、この３番目のブロックは、ＥＯＢを含まない残り４ビットを有するブロックであるものとして扱うことができる。
【００４４】
次に、メインメモリ１１の次の２ブロックを比較すると、この３番目のブロックも次の４番目のブロックもＥＯＢを含まない第２パターンのブロックであるので、この２つを連結することはできない。したがって、図１３（ａ）に示すように、３番目と５番目のブロックとを第２パターンのブロックが前に来るようにして連結する。連結しただけの状態では、図１３（ｂ）（ｃ）のアドレス記憶回路２１と終了フラグメモリ２２の記憶内容に変化はないので、図１２（ｂ）（ｃ）の内容と同じである。
【００４５】
次に、連結した３番目および５番目のブロックの復号を行なう。５番目のブロックのＥＯＢより後の符号は復号化され、レジスタ１５内には６ビット分の符号が残されるので、第１パターンの５番目に対応するアドレス記憶回路２１の５番目の欄は復号化終了済みの「０」ビットが書き込まれ、レジスタ１５の残りは３番目のブロックに対応するアドレス記憶回路２１の３番目の欄に「６」ビットとして書き込まれる。
【００４６】
次に、メインメモリ１１の復号化未処理のブロックを見ると、３番目、４番目および６番目の３つが未処理であるが、連結する２つのブロックは第２パターンと第１パターンとの符号であるので、順番に３番目と６番目のブロックを図１５（ａ）に示すようにレジスタ１５内で連結する。レジスタ１５内の符号を復号化すると、２ビット分だけ復号化されずに残されるので、図１６（ａ）に示すようにレジスタ１５内には残り２ビットの符号があり、これがメインメモリ１１の３番目に書き戻されると考えると、図１６（ｂ）に示すように、アドレス記憶回路２１の３番目の欄には「２」ビットが書き込まれ、６番目の欄は残り「０」ビットとなる。終了フラグメモリ２２は、図１６（ｃ）に示すように、１，２，５，６番目の欄に終了フラグ「１」が立ち、３，４番目の欄には終了フラグが立てられておらず、この２つの欄に対応するメインメモリ１１の３番目および４番目のブロックの復号化が終了していないことになる。
【００４７】
上述したようにビデオセグメントのブロック数は３０ブロックあるので、６ブロックずつの復号化およびデパッキング処理を行なうと、この第２段階までの処理を５回繰り返すことになる。したがって、前の方のブロックから順次に復号化とデパッキングを行ない、第２段階までの処理で復号化し切れなかったブロックに関して再度第２段階の処理を行なうと、すべてのブロックのデパッキングおよび復号化が終了することになる。この第２段階後に再度第２段階の処理を行なうことが第３段階の処理である。
【００４８】
このアルゴリズムを利用すれば、１１２ビットレジスタ内でほとんどの処理が完結するため、使用メモリ量の増加を抑えながら、メインメモリへのアクセスを大幅に軽減することができる。メインメモリ１１からの符号データの読み込みは第１段階、第２段階および第３段階のそれぞれのブロック処理の先頭のみで行なわれ、符号データの書き込みは第２段階および第３段階の各ブロック処理が終了した時に行なわれる。
【００４９】
このアルゴリズムの最大のポイントは、ＤＶフォーマットの仕様を詳細に検討した結果、「上記第１パターンのブロックと第２パターンのブロックの符号列を結合しても、結合後の符号長が必ず１１２ビット以内に収まる」という性質を見出し、それを積極的に活用したところにある。
【００５０】
具体的な数値を例にとって説明すると、第１パターンのブロックに残った符号列の長さが最大になるのは、１２ビットのＤＣ成分等の固定長エリアの直後に４ビットのＥＯＢが存在する場合なので、
最大符号長＝１１２−１２−４＝９６
となり、９６ビットとなる。つまり「１６ビットしか空きがない状態」が最大符号長であるのに対し、第２パターンのブロックに残った符号列の最大長は１５ビット（ＤＶにおける符号語の最大長は１６ビット）にすぎない。したがって、その合計は必ず１つのブロック内に収まることになる。
【００５１】
一般化して説明すると、このアルゴリズムが適用できるためには、画像信号圧縮フォーマットの仕様が、
（１ブロック内の可変長符号以外の長さ）＋（終端符号の長さ） ＞＝（可変長符号語の最大長）−１
の条件を満たしている必要がある。
【００５２】
また、このときに必要となるレジスタ長は、１ブロックの長さと等しい（上記第１段階の手順を行なうため１ブロック未満にはできない）が、もしも、可変長符号以外の部分（ＤＣ成分等）の処理を別途行なうのであれば、
（１ブロックの長さ）−（可変長符号以外の長さ）
−（終端符号の長さ）＋（可変長符号語の最大長）−１
で済むことになる。ＤＶフォーマットの場合、この値は１１１ビットとなる。
【００５３】
前述した第２段階の手順において、２つのブロックの符号を連結するして復号化した後、復号化の残りをメインメモリ１１に書き戻す操作が含まれるが、この処理による負担は、以下の２つの理由から非常に軽いものだと考えられる。
【００５４】
すなわち、書き戻されるデータは常に１５ビット以下であり、かつ、その位置が常にブロックの最後尾で固定されているため、１６ビットの書き込み動作を１回行なうだけで作業を完了することができること、および
マクロブロックの最後でない限り、書き戻されたデータは、その直後にすぐ使われるので、手順を工夫することにより書き戻し回数をさらに削減することも可能であることの２つの理由である。この削減の度合いは、各マクロブロック毎に１回まで可能であり、これについては後述する第３実施形態で詳述する。
【００５５】
また、書き戻されるデータ長が短いことは、書き戻しの際のオーバーフロー防止にもなる。輝度ブロック（１１２ビット）と色差ブロック（８０ビット）のようなサイズ差のあるブロック間でデータの移動が起こるのは上記書き戻し操作だけであるが、その最大長が１５ビットであるゆえに、オーバーフローは起こり得ず、これにより輝度ブロックと色差ブロックとを同一のアルゴリズムで処理できることが保証される。
【００５６】
もちろん、上記従来例（特開平８−２７５１６２号）の図２および図３に示すように、ハードウェアを付加することにより書き戻しを省略することも可能である。ただし、この方式はパッキング・デパッキングの仕様が第４段階、第５段階…と増加した場合に、その都度ハードウェアを変更しなくてはならない必要性がある。
【００５７】
本発明によるメモリアクセスの頻度を低減させる様子が、図１７に示されている。図１７では（ａ）従来例におけるメモリアクセス頻度と、（ｂ）本発明によるメモリアクセス頻度とを比較して示している。図１７（ａ）（ｂ）のようなビット長の符号列が入力された場合、図１７（ａ）に示された従来例では８ビット単位のメモリアクセス（図中の↑）が不規則、かつ、頻繁に発生してしまうのに対して、図１７（ｂ）本発明ではメモリアクセスは最初と最後のみであることが分かる。
【００５８】
次に、本発明の第３実施形態に係る符号化画像データ復号装置について、図１８を用いて詳細に説明する。この第３実施形態に係る復号装置においては、上述したように異なるパターンの２つのブロックの連結のためにハードウェアによる符号列連結回路が設けられており、この発明の原理的な実施形態である第１実施形態の構成を示す図１のデパッキング手段１６内の符号列結合手段１７が具体的な回路構成により実現されている。
【００５９】
図１８においては、第３実施形態に係るデータ復号装置は、符号化された画像データを格納するメインメモリ１１と、１１２ビットレジスタ１５との間に符号列連結回路２５が挿入されている。この連結回路２５は２つの入力を有し、レジスタ１５の出力内容と、メモリ１１から入力された内容とをビットシフトして連結し、その結果を再びレジスタ１５に書き戻す機能を有している。これにより、上記第２実施形態の第２段階の手順および第３段階の手順におけるブロックの連結をハードウェア構成により行なうことができる。連結する順番は、必ず第１パターンのブロックの符号列が後ろであるが、「レジスタ１５中に残されている符号列」と「メモリ１１から読み込まれる符号列」の何れの符号列が第１パターンまたは第２パターンであるのかについては、終了条件によって異なっている。そのため、この連結回路２５には供給されてきたブロックの終了条件が第１パターンに関するものか第２パターンに関するものかによって、連結する順番を変更できる機能が含まれていなければならない。
【００６０】
この第３実施形態においては、上述したメインメモリ１１への書き戻し処理の削減が施されている。そのため、デパッキング処理の手順も上述した第２実施形態とは少し異なることになる。具体的には、第２段階の手順と第３段階の手順とを以下のように修正する。
【００６１】
まず、第２段階では、同一マクロブロック内で、上記第１パターンと第２パターンとに相当するブロックを「先頭から１つずつ」選択して、第２パターンが前になり第１パターンが後ろになるようにして２つの符号列を結合させ、結合させた符号列をレジスタ１５に格納してから、再び第１段階の手順を繰り返すことになる。
【００６２】
その結果、ＥＯＢが検出されたら、 第２パターンのブロックを空にして終了フラグ「１」をセットして、次の第２パターンのブロックを読み込み、ＥＯＢが検出されなかったら、第１パターンのブロックを空にして、次の第１パターンのブロックを読み込むことになる。
【００６３】
さらに、各マクロブロックの最終ブロックが第２パターンのブロックである場合には、以下の処理が追加される。すなわち、第３段階の処理が終わった後に、残された符号列を第２パターンのブロックに書き戻すことになる。第３段階の処理としては、第２実施形態に係る復号装置の動作と同様に、同一のビデオセグメント内で、上記第２段階の復号・デパッキング処理を繰り返すことになる。
【００６４】
要するに、この第３実施形態によるアルゴリズムを利用すれば、メインメモリ周りのトラフィックを上記第２実施形態よりもさらに軽減することができる。メインメモリから読み込みは、第１ないし第３段階共にそれぞれの各ブロック処理の先頭のみで行なわれ、書き込みは第２段階の各マクロブロック処理終了時のみに行なわれる。また、第２および第３実施形態とも、レジスタおよび連結回路を複数並列に配置することにより、並列して動作させることも可能である。
【００６５】
次に、上記第１ないし第３実施形態に係る符号化画像データ復号装置で適用される処理ステップを含む第４実施形態に係る符号化画像データ復号方法について図１９のフローチャートに従い詳細に説明する。
【００６６】
図１９において、第４実施形態の画像データ復号方法は、１ブロック内の可変長符号成分以外の長さと終端符号の長さとの合計が、可変長符号語の最大長のビット数から１ビットを差し引いたビット長以上となる画像圧縮伸張フォーマットによりパッキングされた、画像データにおける少なくとも１ビデオセグメント分の符号列をメモリに格納する第１のステップＳＴ１と、前記符号列を少なくとも１ブロック分ずつ取り出す第２のステップＳＴ２と、取り出された１ブロック分の符号列がデデパッキング前の１纏まりのブロックであるか否かを判定する第３のステップＳＴ３と、判定されたブロックがデデパッキング前の１纏まりのブロックである場合にそのブロックの符号列を復号する第４のステップＳＴ４と、取り出された１ブロック分の符号列がデデパッキング前の１纏まりのブロックでない場合に、前記１ビデオセグメントの分のブロックの符号列を順次取り入れて１ブロック分の符号列を連結する第５のステップＳＴ５と、を備えている。
【００６７】
上記第５のステップＳＴ５で連結された１ブロック分の符号列は、前記第４のステップＳＴ４において復号化されており、第１のステップＳＴ１で格納された１ビデオセグメント分の符号列に対するデパッキングおよび復号化処理が終了したか否かが第６のステップで判断され、１ビデオセグメント分の処理が終了していない場合には上記第２ないし第５のステップＳＴ２〜ＳＴ５の処理が繰り返される。
【００６８】
第６のステップＳＴ６で１ビデオセグメント分の処理が終了したものと判断された場合には、第７のステップＳＴ７において復号化すべき符号化画像データがまだ残されているか否かが判断される。第７のステップで復号化すべき画像データが残っているものと判断された場合には上記第１ないし第６のステップＳＴ１〜ＳＴ６を繰り返し、残っていないものと判断された場合には符号化画像データのデパッキングおよび復号化の処理が終了する。
【００６９】
次に、第４実施形態に係る符号化画像データ復号方法を中央処理装置（ＣＰＵ―Central Processing Unit―）やマイクロプロセッサ等のプログラム実行手段に実行させるための第５実施形態に係る符号化画像データ復号プログラムについて図２０の機能ブロック図を用いて説明する。図２０における各部は、復号プログラムにおけるそれぞれの処理手順を示している。
【００７０】
図２０において、第５実施形態に係る復号プログラム３０は、１ブロック内の可変長符号成分以外の長さと終端符号の長さとの合計が、可変長符号語の最大長のビット数から１ビットを差し引いたビット長以上となる画像圧縮伸張フォーマットによりパッキングされた、画像データにおける少なくとも１ビデオセグメント分の符号列を格納する符号列格納機能３１と、前記符号列を少なくとも１ブロック分ずつ取り出すブロック取出し機能３２と、取り出された１ブロック分の符号列がデパッキング前の１纏まりのブロックであるか否かを判定する判定機能３３と、判定されたブロックがデパッキング前の１纏まりのブロックである場合にそのブロックの符号列を復号する復号機能３４と、取り出された１ブロック分の符号列がデデパッキング前の１纏まりのブロックでない場合に、前記１ビデオセグメント分のブロックの符号列を順次取り入れて復号機能３４で復号されなかった符号列とを連結する連結機能３５と、を備えている。連結機能３５において連結された１ブロック分の符号列は復号機能３４において復号されて符号出力される。
【００７１】
上述した第４および第５の実施形態に係る画像データ復号方法および復号プログラムの各ステップおよび各機能において連結されるブロックは、第３実施形態による画像データ復号装置において説明した第１および第２パターンのブロックであり、そのブロックの中にＥＯＢが含まれているか否かにより第１パターンのブロックであるか第２パターンのブロックであるかが分類されている。したがって、第５のステップＳＴ５または連結機能３５の処理内容または手順は、より詳細には図６ないし図１６の第１ないし第３段階の処理に分けて説明することもできるが、記載の重複をさけるためにここでは説明されていない。
【００７２】
【発明の効果】
以上詳細に説明したように、本発明に係る符号化画像データ復号装置、方法およびプログラムによれば、少なくとも１ビデオセグメント中の複数のブロックの符号化画像データを終端符号を含む第パターンのブロックと終端符号を含まない第２パターンのブロックとに分けて捉え、第１段階で復号できなかったブロックの符号を第２パターンブロック符号から第１パターンブロック符号へと連結して第２段階および第３段階の復号を行なうことにより画像データのデパッキングと復号化とを行なう主要構成を用いることにより、たとえばレジスタ等のブロックを記憶しておく構成要素における可変長復号処理中にはメモリアクセスが発生せず、たとえばメインメモリ等の画像データを記憶しておく構成要素の周りのトラフィックを大幅に軽減することができる。
【００７３】
また、第２パターンのブロックと第１パターンのブロックのそれぞれの符号列を連結させるためにハードウェア構成を用いることにより、２つのブロックの符号列をハードウェアによって連結できるため、処理が簡素になるのに加えて、上記の主要構成の場合に比べて、より一層のたとえばメインメモリ等の画像データを記憶しておく構成要素の周りのトラフィックを軽減できる。
【００７４】
また、ブロックの終わりを示すブロック終了符号が検出されなかったブロックに関して、ブロックを記憶する構成要素の内容を画像データの記憶要素に書き戻すことことにより、デパッキングの規格が４段階以上になっても、ハードウェアの構成を変更せずに用いることができる。
【図面の簡単な説明】
【図１】本発明の基本概念としての第１実施形態に係る符号化画像データ復号装置の構成を示すブロック構成図である。
【図２】本発明に係る画像復号装置および方法を一般的および従来の画像復号との比較しながら示す表である。
【図３】本発明の第２実施形態に係る符号化画像データ復号装置の構成を示すブロック図である。
【図４】図３のレジスタ１５の符号データの格納状態を模式的に示す説明図である。
【図５】図４と同様に、符号データの格納状態を模式的に示し、（ａ）ＥＯＢが検出された第１パターンの場合の最長余りと、（ｂ）ＥＯＢがなかった第２パターンの場合の最長余りとをそれぞれ示す模式図である。
【図６】第１段階の１番目のブロックの処理手順における、（ａ）レジスタ１５とメインメモリ１１間の符号の読み込み処理、（ｂ）アドレス記憶回路のビット数、（ｃ）終了フラグメモリの終了フラグを示すブロック図である。
【図７】第１段階の２番目のブロックの処理手順における、（ａ）レジスタ１５とメインメモリ１１間の符号の読み込み処理、（ｂ）アドレス記憶回路のビット数、（ｃ）終了フラグメモリの終了フラグを示すブロック図である。
【図８】第１段階の３番目ないし６番目のブロックの処理手順における、（ａ）レジスタ１５とメインメモリ１１間の符号の読み込み処理、（ｂ）アドレス記憶回路のビット数、（ｃ）終了フラグメモリの終了フラグを示すブロック図である。
【図９】第２段階の１番目と２番目のブロックの連結処理手順における、（ａ）レジスタ１５とメインメモリ１１間の符号の読み込み処理、（ｂ）アドレス記憶回路のビット数、（ｃ）終了フラグメモリの終了フラグを示すブロック図である。
【図１０】第２段階の１番目と２番目のブロックの連結処理手順における、（ａ）レジスタ１５とメインメモリ１１間の符号の読み込み処理、（ｂ）アドレス記憶回路のビット数、（ｃ）終了フラグメモリの終了フラグを示すブロック図である。
【図１１】第２段階の２番目と３番目のブロックの連結処理手順における、（ａ）レジスタ１５とメインメモリ１１間の符号の読み込み処理、（ｂ）アドレス記憶回路のビット数、（ｃ）終了フラグメモリの終了フラグを示すブロック図である。
【図１２】第２段階の２番目と３番目のブロックの連結処理手順における、（ａ）レジスタ１５からメインメモリ１１への書き戻し処理、（ｂ）アドレス記憶回路のビット数、（ｃ）終了フラグメモリの終了フラグを示すブロック図である。
【図１３】第２段階の３番目と５番目のブロックの連結処理手順における、（ａ）レジスタ１５とメインメモリ１１間の符号の読み込み処理、（ｂ）アドレス記憶回路のビット数、（ｃ）終了フラグメモリの終了フラグを示すブロック図である。
【図１４】第２段階の３番目と６番目のブロックの連結処理手順における、（ａ）レジスタ１５からメインメモリ１１への書き戻し処理、（ｂ）アドレス記憶回路のビット数、（ｃ）終了フラグメモリの終了フラグを示すブロック図である。
【図１５】第２段階の３番目と６番目のブロックの連結処理手順における、（ａ）レジスタ１５とメインメモリ１１間の符号の読み込み処理、（ｂ）アドレス記憶回路のビット数、（ｃ）終了フラグメモリの終了フラグを示すブロック図である。
【図１６】第２段階の３番目と５番目のブロックの連結処理手順における、（ａ）レジスタ１５からメインメモリ１１への書き戻し処理、（ｂ）アドレス記憶回路のビット数、（ｃ）終了フラグメモリの終了フラグを示すブロック図である。
【図１７】（ａ）従来例のメモリアクセス頻度と、（ｂ）本発明のメモリアクセス頻度とを比較して示す説明図である。
【図１８】本発明の第３実施形態に係る符号化画像データ復号装置の構成を示すブロック図である。
【図１９】本発明の第４実施形態に係る符号化画像データ復号方法の処理ステップを示すフローチャートである。
【図２０】本発明の第５実施形態に係る符号化画像データ復号プログラムの機能構成を示すブロック図である。
【図２１】従来の符号化画像データ復号装置の概略構成を示すブロック図である。
【符号の説明】
１０  符号化画像データ復号装置
１１  メモリ手段（メインメモリ）
１２  デコード手段
１３  バレルシフタ
１４  可変長テーブル
１５  ブロック記憶手段（１１２ビットレジスタ）
１６  デパッキング手段
１７  符号列結合手段（ＣＰＵ）
１８  データバス
２１  アドレス記憶回路
２２  終了フラグメモリ
２５  符号列連結回路
３０  符号化画像データ復号プログラム
３１  符号列格納機能
３２  ブロック取出し機能
３３  判定機能
３４  復号機能
３５  連結機能
【図１】
0003930280.tif 000002
【図２】
0003930280.tif 000003
【図３】
0003930280.tif 000004
【図４】
0003930280.tif 000005
【図５】
0003930280.tif 000006
【図６】
0003930280.tif 000007
【図７】
0003930280.tif 000008
【図８】
0003930280.tif 000009
【図９】
0003930280.tif 000010
【図１０】
0003930280.tif 000011
【図１１】
0003930280.tif 000012
【図１２】
0003930280.tif 000013
【図１３】
0003930280.tif 000014
【図１４】
0003930280.tif 000015
【図１５】
0003930280.tif 000016
【図１６】
0003930280.tif 000017
【図１７】
0003930280.tif 000018
【図１８】
0003930280.tif 000019
【図１９】
0003930280.tif 000020
【図２０】
0003930280.tif 000021
【図２１】
0003930280.tif 000022