(57)【要約】  本発明の可変長復号化装置は、可変長復号化部（１００）により復号された成分値が特定の値であるか否かを判定するデータ判定部（１０１）と、特定の値でない成分値のみを保持するデータバッファ（１０３）と、ブロック内の最終の前記特定の値以外の成分値を判定する最終有効データ判定部（１０６）と、ブロック内の最終の特定の値以外の成分値までのそれぞれの成分値に対応するフラグであって、特定の値でないか特定の値であるかを示すフラグを保持するフラグバッファ（１０４）と、フラグを設定するフラグバッファ制御部（１０７）と、データバッファ（１０３）への書き込みを制御するデータバッファ制御部（１０５）と、ゼロかデータバッファからの係数を選択する選択部（１０９）とを備える。
2010095181.tif 000002
【特許請求の範囲】
【請求項１】
可変長符号を含む符号化データを、ブロックを構成する複数の成分値に復号する可変長復号化装置であって、
前記符号化データを前記成分値に復号する可変長復号化部と、
復号された成分値が特定の値であるか否かを判定するデータ判定部と、
復号された成分値のうち、前記データ判定部によって特定の値でないと判定された成分値のみを保持するデータバッファと、
復号された成分値が、ブロック内の前記特定の値以外の成分値のうちのブロック内の最終の成分値であるか否かを判定する最終判定部と、
ブロックの先頭の成分値から前記最終判定部によって前記最終の成分値であると判定された成分値までのそれぞれに対応するフラグであって、対応する成分値が前記特定の値でないか特定の値であるかを示すフラグを保持するフラグバッファと、
前記データ判定部による判定結果のうち、ブロックの先頭の成分値から前記最終判定部によって前記最終の成分値であると判定された成分値までに対応する判定結果のそれぞれを、前記フラグとして前記フラグバッファに設定し、前記最終の成分値であると判定された成分値に対応するデータバッファのアドレスである最終アドレスを保持するフラグバッファ制御部と、
フラグバッファに設定されたフラグに基づいて、前記データ判定部によって前記特定の値でないと判定された成分値のみを前記データバッファに書き込む制御と、前記データバッファから前記特定の値でない成分値を読み出す制御とを行うデータバッファ制御部と、
データバッファから読み出された成分値およびゼロのうち一方を選択する選択部と
を備え、
前記フラグバッファ制御部は、前記フラグバッファに保持されたフラグおよび前記最終アドレスとに基づいて前記選択部の選択を制御する
可変長復号化装置。
【請求項２】
前記特定の値はゼロであり、
前記可変長復号化部は、さらに前記符号化データからの第１パラメータおよび第２パラメータのうち少なくとも１つを検出し、
前記第１パラメータは、ブロック内の当該パラメータ以降の成分値が前記最終の成分値であることを示すＥＯＢ符号であり、
前記第２パラメータは、ブロック内に含まれる前記特定の値以外の成分値の個数を示す第１の符号と、ブロックにおいて前記最終の成分値より前に含まれる前記特定の値の成分値の個数を表す第２符号とを含み、
前記最終判定部は、前記可変長復号化部により検出された第１パラメータおよび第２パラメータの少なくとも１つに基づいて、復号された成分値が前記最終の成分値であるか否かを判定する請求項１に記載の可変長復号化装置。
【請求項３】
さらに、外部から設定される任意の判定用データを記録し、当該判定用データを前記特定の値として前記データ判定部に供給する判定データ記憶部を備える請求項１に記載の可変長復号化装置。
【請求項４】
前記判定データ記憶部に設定される判定用データは、前記符号化データに対応する符号化規格がＭＰＥＧ２、Ｈ．２６４またはＶＣ−１である場合、ゼロ値である請求項３に記載の可変長復号化装置。
【請求項５】
前記フラグバッファに設定される各フラグは、データ判定部によって対応する成分値が前記特定の値であると判定された場合は"０"を、前記特定の値以外であると判定された場合は"１"を示す請求項１に記載の可変長復号化装置。
【請求項６】
前記符号化データに対応する符号化規格がＭＰＥＧ２もしくはＨ．２６４、ＶＣ−１である場合、前記フラグバッファに設定される各フラグは、データ判定部によって対応する成分値がゼロであると判定された場合は"０"を、ゼロ以外であると判定された場合は"１"を示す請求項２に記載の可変長復号化装置。
【請求項７】
前記フラグバッファ制御部は、さらに、前記最終の成分値に対応するフラグの次のフラグとして"０"を前記フラグバッファに設定する請求項６に記載の可変長復号化装置。
【請求項８】
前記最終判定部は、前記第1パラメータおよび第２パラメータのどちらを用いて前記最終の成分値の判定を行うかを選択する請求項２に記載の可変長復号化装置。
【請求項９】
前記最終判定部は、前記符号化データに対応する符号化規格がＭＰＥＧもしくはＶＣ−１である場合は前記第１パラメータを、符号化規格がＨ．２６４である場合は前記第２パラメータを選択する請求項８に記載の可変長復号化装置。
【請求項１０】
前記最終判定部は、復号された成分値が前記最終の成分値であると判定した場合に、前記フラグバッファ制御部に書き込み停止要求を通知し、
前記フラグバッファ制御部は、前記最終判定部から出力される前記書き込み停止要求の通知を受けたとき、前記フラグバッファへのフラグの設定を停止する請求項１に記載の可変長復号化装置。
【請求項１１】
前記最終判定部は、さらに、前記選択部から出力された成分の個数が１ブロック内の前記最終の成分値までの個数に達したとき、前記フラグバッファ制御部に更新停止要求を通知し、
前記フラグバッファ制御部は、前記最終判定部から読み出し停止要求が通知されたとき、当該ブロック内の前記最終の成分値より後の成分値の読み出しにおいて前記フラグバッファの読み出しポインタの更新を停止し、フラグとしてゼロをデータバッファ制御部に出力する請求項１に記載の可変長復号化装置。
【請求項１２】
前記フラグバッファ制御部は前記ブロックに対応する符号化データの復号開始前または復号終了後に、フラグバッファの１ブロックに対応する領域をゼロに初期化する請求項１に記載の可変長復号化装置。
【請求項１３】
さらに、前記データバッファの空き領域と前記フラグバッファの空き領域とを管理し、空き領域に応じて、前記可変長復号化部に対して復号停止要求または次ブロックの復号許可を出力する残量管理部を備える請求項１に記載の可変長復号化装置。
【請求項１４】
前記残量管理部は、復号された成分が前記最終の成分値であると前記最終判定部によって判定されたとき、前記データバッファおよび前記フラグバッファに空き領域がある場合に、前記可変長復号化部に対して次ブロックの復号許可を出力する請求項１３に記載の可変長復号化装置。
【請求項１５】
前記フラグバッファは、少なくとも６４個のフラグを保持する領域を有する請求項１３に記載の可変長復号化装置。
【請求項１６】
前記データバッファ制御部は、前記ブロックに対応する符号化データの復号開始前もしくは復号終了後に、データバッファ内の１ブロックに対応する領域をゼロ値に初期化する請求項１に記載の可変長復号化装置。
【請求項１７】
前記データバッファの１ブロックに対応する領域は、６４個の成分値を保持可能である請求項１５に記載の可変長復号化装置。
【請求項１８】
前記残量管理部は、前記データバッファおよび前記フラグバッファの一方に空き領域がないとき、前記可変長復号化部に対して復号停止要求を出力する請求項１３に記載の可変長復号化装置。
【請求項１９】
可変長符号を含む符号化データを、ブロックを構成する複数の成分値に復号する可変長復号化装置であって、
前記符号化データから、ブロック内に含まれる非ゼロ係数の個数を示す第１符号であるＴｏｔａｌＣｏｅｆｆと、ブロック内の最終の非ゼロ値係数より前に含まれるゼロ係数の個数を示す第２符号であるｔｏｔａｌｚｅｒｏと、非ゼロ係数の値を示す第３符号であるＬＥＶＥＬと、前記ＬＥＶＥＬの前のゼロ係数の連続個数を示す第４符号であるｒｕｎ＿ｂｅｆｏｒｅを検出および復号する可変長復号化部と、
前記第１符号および前記第２符号に基づいて、ブロック内の非ゼロ係数のうちの最終の非ゼロ係数を判定する最終判定部と、
ブロック内の先頭の係数から、前記最終判定部に判定された最終の非ゼロ係数までのそれぞれの係数に対応するフラグであって、対応する係数の値がゼロであるか非ゼロであるかを示すフラグを保持するフラグバッファと、
復号された係数のうち、非ゼロ係数のみを保持するデータバッファと、
復号された第１符号から第４符号に基づいて、ブロック内の先頭の係数から前記最終の非ゼロ係数までのそれぞれの係数について、非ゼロであるかゼロであるかを示すフラグを前記フラグバッファに設定し、前記最終の非ゼロ係数に対応するデータバッファのアドレスである最終アドレスを保持するフラグバッファ制御部と、
フラグバッファに設定されたフラグに基づいて、非ゼロ係数のみを前記データバッファに書き込む制御と、前記データバッファから非ゼロの係数を読み出す制御とを行うデータバッファ制御部と、
データバッファから読み出された係数およびゼロのうち一方を選択する選択部と
を備え、
前記フラグバッファ制御部は、フラグバッファに保持されたフラグおよび前記最終アドレスとに基づいて前記選択部の選択を制御する
可変長復号化装置。
【請求項２０】
可変長符号を含む符号化データを、ブロックを構成する複数の成分値に復号する可変長復号化装置であって、
前記符号化データから、ブロック内に含まれる非ゼロ係数のうち最終の非ゼロ係数を示す符号であるＥＯＢと、非ゼロ係数の値を示す符号であるＬＥＶＥＬと、非ゼロ係数の前に連続するゼロ係数の個数を示す符号であるＲＵＮとを検出および復号する可変長復号化部と、
前記ＥＯＢに基づいて、ブロック内の非ゼロ係数のうちの最終の非ゼロ係数を判定する最終判定部と、
ブロック内の先頭の係数から、前記最終判定部に判定された最終の非ゼロ係数までのそれぞれの係数に対応するフラグであって、対応する係数の値がゼロであるか非ゼロであるかを示すフラグを保持するフラグバッファと、
復号された係数のうち、非ゼロ係数のみを保持するデータバッファと、
前記ＬＥＶＥＬおよび前記ＲＵＮに基づいて、ブロック内の先頭の係数から前記最終の非ゼロ係数までのそれぞれの係数について、非ゼロであるかゼロであるかを示すフラグを前記フラグバッファに設定し、前記最終の非ゼロ係数に対応するデータバッファのアドレスである最終アドレスを保持するフラグバッファ制御部と、
フラグバッファに設定されたフラグに基づいて、非ゼロ係数のみを前記データバッファに書き込む制御と、前記データバッファから非ゼロの係数を読み出す制御とを行うデータバッファ制御部と、
データバッファから読み出された係数およびゼロのうち一方を選択する選択部と
を備え、
前記フラグバッファ制御部は、フラグバッファに保持されたフラグおよび前記最終アドレスに基づいて前記選択部の選択を制御する
可変長復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は可変長符号を含む符号化データを、ブロックを構成する複数の成分値に復号する可変長復号化装置に関し、特に、画像符号化／復号化処理における基幹処理である可変長復号装置に関する。
【背景技術】
【０００２】
現行の動画圧縮／伸張は、動画符号化規格としてＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４、Ｈ．２６４／ＡＶＣ、ＶＣ−１等のＭＰＥＧ（Ｍｏｖｉｎｇ  ｐｉｃｔｕｒｅ  ｅｘｐｅｒｔ  ｇｒｏｕｐ）が存在し、画像の大きさや利用媒体などの違いによって、それぞれに対応できるように規格で定められている。例えば、ＭＰＥＧ１、ＭＰＥＧ２であればＤＶＤ等の比較的画像サイズの大きな媒体に対して使用され、ＭＰＥＧ４やＨ．２６４／ＡＶＣの一方式では携帯電話や１ｓｅｇ等の比較的画像サイズの小さい媒体に対して使用され、Ｈ．２６４／ＡＶＣ、ＶＣ−１ではＨＤＴＶ等の画像サイズが非常に大きい媒体に対して使用される。昨今、ＨＤＴＶの急速な普及や２Ｋ４Ｋといった高解像度の画質の処理が必要不可欠となっており動画像処理の効率化も必須となっている。【０００３】
図１７は、従来技術における代表的な画像圧縮処理フローを示す図である。動画符号化を行う場合は、動画像をマクロブロック（ＭＢ）と呼ばれる処理単位に分割し処理を行う。ＭＢは輝度成分と色差成分とで構成されており、輝度成分はＹ０、Ｙ１、Ｙ２、Ｙ３の４個で成り、また色差成分はＣｂ、Ｃｒの２個で成っている。各Ｙ、Ｃ成分は８×８のブロックの６４個の画素成分で構成されている。ＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４、Ｈ．２６４／ＡＶＣ、ＶＣ−１に共通する処理として直交変換処理や可変長符号化処理、量子化処理等がある。【０００４】
直交変換処理１０はＹ０、Ｙ１、Ｙ２、Ｙ３、Ｃｂ、Ｃｒブロック毎に行われる処理であり、空間成分である動画像信号を周波数成分に変換する技術である。図１８は、直交変換されたブロックの周波数成分を示す図である。直交変換処理を行うことによって、図１８に示すように自然画像などは周波数成分に変換した際にデータの偏りが発生し、可変長符号化等でのデータ圧縮に有効に作用する。【０００５】
量子化処理１１は各符号化規格によってそれぞれ処理方式が異なるが、外部から設定される量子化値を用いて直交変換されたＤＣＴ係数を除算することで量子化係数を生成する。この処理によって画質にさほど影響を与えないＤＣＴ係数の高周波領域にゼロ値を集中させることにより後段の可変長符号化処理の符号化効率を更に高める。【０００６】
更に、可変長符号化処理１２にて図１９に示すようなジグザグスキャンの順でゼロ値の個数を表すＲＵＮと符号化係数の大きさを表すＬＥＶＥＬとを組み合わせてランレングスデータを生成する。それらの組み合わせの出現率に応じて長さの異なる符号を割り当てることでデータの容量を小さくする。【０００７】
図２０は、従来技術における代表的な画像復号化処理フローを示す図である。図１８の画像圧縮処理によって符号化された符号化データを復号する画像復号化処理を示す、可変長復号処理２０、逆量子化処理２１、及び逆直交変換処理２２からなる。【０００８】
可変長復号処理２０は、可変長符号化データをＲＵＮとＬＥＶＥＬとの組み合わせとして復号した上で、ＲＵＮの大きさ分だけゼロ値を生成し、生成したゼロ値とＬＥＶＥＬとを組み合わせる。この動作が８×８ブロック単位で繰り返される。逆量子化処理２１は上記で生成された８×８ブロック単位の符号化データを量子化時に使用した量子化係数を乗算することで圧縮前のデータである逆量子化係数に復元する。逆直交変換処理２２は、上記生成された逆量子化係数を周波数領域から空間領域に変換することで画像データとして復号する。【０００９】
この従来の可変長復号処理２０の構成について図２１を用いて説明する。図２１は、従来技術における可変長復号処理２０の構成を示す図である。入力部４００から入力される可変長符号データを可変長復号部４０１においてゼロ値の個数を表すＲＵＮと係数値の大きさを表すＬＥＶＥＬの組み合わせとして復号する。書き込み制御部４０２は復号されたＲＵＮの個数だけデータバッファ４０５へゼロ値を書き込むようにデータ選択部４０３に選択信号を供給し、ＲＵＮの個数だけゼロ値を書き込んだ後、ＬＥＶＥＬで表される係数をデータバッファ４０５へ書き込む。この動作が８×８画素分生成されるまで繰り返された後、読み出し制御部４０４によってデータバッファ４０５からジグザグスキャン（図１９）で順次読み出し、後段処理部４０６である逆量子化処理２１へ出力する。しかしながら、上記従来の構成では、ＲＵＮの個数分だけゼロ値である係数を連続してデータバッファに書き込みしているためデータバッファへの無駄なアクセスが発生してしまう課題があった。【００１０】
上記問題の解決案の一つとして、特許文献１において公開しているランレングス符号の復号回路がある。その１例について図２２を用いて説明する。【００１１】
図２２において、入力部５００は可変長符号化・ランレングス符号化データを入力する。可変長復号化手段５０１は入力部５００から入力されたデータを、ゼロ値の個数を表すＲＵＮと、係数値の大きさを表すＬＥＶＥＬとの組み合わせとして順次復号する。データバッファ５０８はＬＥＶＥＬを格納する。アドレス加算手段５０２はＲＵＮによるゼロ値の個数に基づいてこのデータに対応するＬＥＶＥＬのアドレスを演算する。情報レジスタ５０９はアドレス加算手段５０２の結果を記憶するＭ×Ｎビットのレジスタである。書き込み制御手段５０３はアドレス加算手段５０２からの情報に基づいてＬＥＶＥＬをデータバッファ５０８へ格納する。読み出し制御手段５０４は情報レジスタ５０９の値に基づいてデータバッファ５０８からＬＥＶＥＬを読み出す。データ選択手段５０５は情報レジスタ５０９の値に基づいて、データバッファ５０８に格納されているＬＥＶＥＬとゼロ値のうちいずれかを選択して出力する。後段処理手段５０６はデータ選択手段５０５からのデータを後段処理する。出力手段５０７は後段処理手段５０６からのデータを出力する。【００１２】
入力部５００から可変長符号化・ランレングス符号化データが入力されると、可変長復号化手段５０１は、入力される可変長符号化・ランレングス符号化データを、ゼロ値の個数を表すＲＵＮと係数値の大きさを表すＬＥＶＥＬとの組み合わせとして順次復号する。【００１３】
アドレス加算手段５０２は、復号化したデータにおいて、図１９に示すジグザグスキャンの順に、すなわち１→２→９→１７・・・という順に、復号されたＲＵＮの大きさに基づいてアドレスを演算する。情報レジスタ５０９は、ＲＵＮの大きさ分だけジグザグスキャン順に例えばゼロ値を連続して記憶し、その後の位置にＬＥＶＥＬのアドレスとして例えば"１"を記憶する。書き込み制御手段５０３は、アドレス加算手段５０２が演算したアドレスにＬＥＶＥＬを書き込む。書き込み制御手段５０３は、１ブロック分のＬＥＶＥＬの書き込みが終了したか否かを判断し、未終了であると判断するときは復号の最初のステップに戻り、終了したと判断するときは読み出しの処理に進む。可変長復号化手段５０１によって１ブロックに相当するＲＵＮとＬＥＶＥＬとの組み合わせが復号されたうえでＬＥＶＥＬの書き込みが終了すると、読み出し制御手段５０４は、後段処理手段５０６からの読み出し許可を示す制御信号に基づいて情報レジスタ５０９の記憶内容を判断してその判断結果に基づいて読み出し処理を制御する。すなわち、読み出し制御手段５０４は、情報レジスタ５０９に"１"が格納されているビットに相当するアドレスをデータバッファ５０８に出力したうえで、そのアドレスに格納されているＬＥＶＥＬを読み出す。データ選択手段５０５では読み出し制御手段５０４が情報レジスタ５０９を判断する際、同時に、情報レジスタ５０９のビットがゼロ値の場合は、後段処理手段５０６にゼロ値を出力し、"１"の場合は、後段処理手段５０６にデータバッファ５０８から読み出した出力データＬＥＶＥＬを出力する。後段処理手段５０６はデータ選択手段５０５を介して受け取ったデータを後段処理したうえで、出力手段５０７から処理したデータを出力する。【００１４】
上記の従来の技術によれば、データバッファ５０８の後段にデータ選択手段５０５を設けたうえで、データバッファ５０８には、ゼロ値を格納することなく、ＬＥＶＥＬのみを格納する。これにより、ゼロ値は後段のデータ選択手段５０５において選択される。可変長復号化手段５０１はその動作を停止させる必要がなく、高速化に有利となる。そして、必要最低限の構成で、アドレスの保持器の情報に基づいてＬＥＶＥＬのみを読み出すことで、データバッファ５０８へのアクセスを削減できることから、低消費電力の可変長復号器を提供することができる。【００１５】
また、動画符号化規格の１つであるＨ．２６４／ＡＶＣでは、ブロック中の非ゼロ係数の個数を表すＴｏｔａｌＣｏｅｆｆと、非ゼロ係数値の大きさを表すｌｅｖｅｌと、データスキャン方向において最後のｌｅｖｅｌより前のゼロ係数の個数を表すｔｏｔａｌ＿ｚｅｒｏｓと、データスキャン方向においてｌｅｖｅｌの前のゼロ係数の連続個数を表すｒｕｎ＿ｂｅｆｏｒｅが符号化されていることであり、ＲＵＮとＬＥＶＥＬとが組み合わせとして符号化されていないことである。Ｈ．２６４に関しては、インプレス標準教科書Ｈ．２６４／ＡＶＣ  教科書に詳細な説明がある。【００１６】
図２３に示す上記のＨ．２６４／ＡＶＣに対応した特許文献２において公開しているランレングス符号の復号回路がある。上記特許文献２も上記特許文献１と同様に非ゼロ値を書き込むデータバッファのアドレスをＴｏｔａｌＣｏｅｆｆやｔｏｔａｌ＿ｚｅｒｏｓ、ｒｕｎ＿ｂｅｆｏｒｅを用いて決定し、データバッファに対するゼロ値の書き込み／読み出しアクセスを削減することを目的としている。【００１７】
本発明の目的は、複数の符号化規格を処理する場合において、上記に示す非ゼロ値を格納するデータバッファの更なる有効利用を行うとともに、上記に示すゼロ値か非ゼロ値かを判断する情報レジスタに関してもデータバッファ同様に有効活用することで、可変長復号化処理の効率化を実現する。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２００６−７４１９７号公報
【特許文献２】特開２００７−３２９９０３号公報
【非特許文献】
【００１９】
【非特許文献１】インプレス標準教科書Ｈ．２６４／ＡＶＣ  教科書
【発明の概要】
【発明が解決しようとする課題】
【００２０】
先に示した、特許文献１と特許文献２とに共通する課題として、２点存在する。１つ目はアドレス加算手段５０２でデータバッファ５０８の非ゼロ係数値の書き込み位置を決めるため、ゼロ値に対応するアドレスのデータバッファは無効なデータが存在することとなる。２つ目は、直交変換処理された係数は高周波領域になるに連れてゼロ値の連続回数が増加する。その場合、情報レジスタ５０９に関しても"０"が登録された領域が連続して存在することになる。情報レジスタの特定の領域に全て"０"が登録されていることがわかっているのであれば、上記の特定の領域全てに"０"を登録することは冗長な動作である。更に情報レジスタの限られた資源を"０"だけで埋めてしまうのは非効率である。【００２１】
例えば、昨今の半導体集積回路では複雑かつ様々な動画符号化処理の実現や、高解像度画像処理の実現が要求されている。また、環境対策の観点での低消費電力化も必須である。このような背景の中で、非ゼロ係数値の書き込み／読み出しアクセス削減だけでは電力削減や処理の効率化といった観点では十分な効果を得ることはできない。【００２２】
本発明は上記の問題を解決するものであり、非ゼロ係数を格納するデータバッファの効率化に加えて情報レジスタの効率化も合わせて実現し、消費電力を低減する可変長復号化装置を提供することを目的とする。
【課題を解決するための手段】
【００２３】
上記課題を解決するために本発明の可変長復号装置は、可変長符号を含む符号化データを、ブロックを構成する複数の成分値に復号する可変長復号化装置であって、前記符号化データを前記成分値に復号する可変長復号化部と、復号された成分値が特定の値であるか否かを判定するデータ判定部と、復号された成分値のうち、前記データ判定部によって特定の値でないと判定された成分値のみを保持するデータバッファと、復号された成分値が、ブロック内の前記特定の値以外の成分値のうちのブロック内の最終の成分値であるか否かを判定する最終判定部と、ブロックの先頭の成分値から前記最終判定部によって前記最終の成分値であると判定された成分値までのそれぞれに対応するフラグであって、対応する成分値が前記特定の値でないか特定の値であるかを示すフラグを保持するフラグバッファと、前記データ判定部による判定結果のうち、ブロックの先頭の成分値から前記最終判定部によって前記最終の成分値であると判定された成分値までに対応する判定結果のそれぞれを、前記フラグとして前記フラグバッファに設定し、前記最終の成分値であると判定された成分値に対応するデータバッファのアドレスである最終アドレスを保持するフラグバッファ制御部と、フラグバッファに設定されたフラグに基づいて、前記データ判定部によって前記特定の値でないと判定された成分値のみを前記データバッファに書き込む制御と、前記データバッファから前記特定の値でない成分値を読み出す制御とを行うデータバッファ制御部と、データバッファから読み出された成分値およびゼロのうち一方を選択する選択部とを備え、前記フラグバッファ制御部は、前記フラグバッファに保持されたフラグおよび前記最終アドレスとに基づいて前記選択部の選択を制御する。【００２４】
この構成によれば、フラグバッファ（従来技術における情報レジスタに対応する。）は、ブロック内の全ての成分値（係数）と同数のフラグを保持するのではなく、ブロック内の先頭の成分値から、前記特定の値以外の成分値のうちのブロック内の最終の成分値までの成分値の個数のフラグを保持し、最終の成分値以降の成分値に対応するフラグを保持しない。これにより、フラグバッファおよびデータバッファにおける１ブロックあたりの必要な記憶領域のサイズを削減し、フラグバッファおよびデータバッファを効率よく使用することができる。【００２５】
すなわち、ブロック内の末尾には通常は通常ゼロの成分値が連続するので、ブロック末尾に連続するゼロの成分値と同数のフラグを保持する領域を節約することができ、フラグバッファおよびデータバッファの領域を効率よく利用することができる。【００２６】
また、ブロック末尾に連続するゼロの成分値と同数のフラグの書込みおよび読出し回数を削減するので、消費電力を低減することができる。【００２７】
ここで、前記特定の値はゼロであり、前記可変長復号化部は、さらに前記符号化データからの第１パラメータおよび第２パラメータのうち少なくとも１つを検出し、前記第１パラメータは、ブロック内の当該パラメータ以降の成分値が前記最終の成分値であることを示すＥＯＢ符号であり、前記第２パラメータは、ブロック内に含まれる前記特定の値以外の成分値の個数を示す第１の符号と、ブロックにおいて前記最終の成分値より前に含まれる前記特定の値の成分値の個数を表す第２符号とを含み、前記最終判定部は、前記可変長復号化部により検出された第１パラメータおよび第２パラメータの少なくとも１つに基づいて、復号された成分値が前記最終の成分値であるか否かを判定するようにしてもよい。この構成によれば、最終判定部は符号化データに含まれる第１パラメータ（ＥＯＢ符号）または第２パラメータにより前記最終の成分値を検出するので、異なる規格に準拠して符号化された複数種類の符号化データに対応することができる。【００２８】
ここで、前記可変長復号化装置は、さらに、外部から設定される任意の判定用データを記録し、当該判定用データを前記特定の値として前記データ判定部に供給する判定データ記憶部を備えていてもよい。この構成によれば、特定の値（判定用データ）は、任意に設定することが可能である。例えば、特定の値は、典型的には"０"であるが、"０"を表すコードであってもよいし、"０"以外の任意の値であってもよいし、"０"以外の任意の値を表すコードであってもよい。【００２９】
ここで、前記判定データ記憶部に設定される判定用データは、前記符号化データに対応する符号化規格がＭＰＥＧ２、Ｈ．２６４またはＶＣ−１である場合、ゼロ値であってもよい。【００３０】
ここで、前記フラグバッファに設定される各フラグは、データ判定部によって対応する成分値が前記特定の値であると判定された場合は"０"を、前記特定の値以外であると判定された場合は"１"を示す構成としてもよい。この構成によれば、フラグ"０"はブロック中の存在確率が高い成分値に対応するので、フラグバッファを予め０クリアしておけば"０"を設定する処理を削減し、さらに低消費電力を図ることができる。また、フラグが"１"の場合のみ、データバッファ制御部はデータバッファへの書込みおよび読出しの動作をすればよいので、フラグによりデータバッファへの書き込みおよび読み出しを容易に制御することができる。【００３１】
ここで、前記符号化データに対応する符号化規格がＭＰＥＧ２もしくはＨ．２６４、ＶＣ−１である場合、前記フラグバッファに設定される各フラグは、データ判定部によって対応する成分値がゼロであると判定された場合は"０"を、ゼロ以外であると判定された場合は"１"を示す構成としてもよい。【００３２】
ここで、前記フラグバッファ制御部は、さらに、前記最終の成分値に対応するフラグの次のフラグとして"０"を前記フラグバッファに設定してもよい。この構成によれば、最終の成分値に後続するブロック末尾までの連続するゼロ係数に対応する複数のフラグ（従来技術におけるブロック末尾の複数のフラグ）を、１ビットのフラグで代表することができ、明示的にフラグのビット数を圧縮することができる。【００３３】
ここで、前記最終判定部は、前記第１パラメータおよび第２パラメータのどちらを用いて前記最終の成分値の判定を行うかを選択するようにしてもよい。【００３４】
ここで、前記最終判定部は、前記符号化データに対応する符号化規格がＭＰＥＧもしくはＶＣ１である場合は前記第１パラメータを、符号化規格がＨ．２６４である場合は前記第２パラメータを選択するようにしてもよい。この構成によれば、符号化データの種類（どの規格に準拠して符号化されているか）に応じて、最終判定部の動作を切り換えることができる。【００３５】
ここで、前記最終判定部は、復号された成分値が前記最終の成分値であると判定した場合に、前記フラグバッファ制御部に書き込み停止要求を通知し、前記フラグバッファ制御部は、前記最終判定部から出力される前記書き込み停止要求の通知を受けたとき、前記フラグバッファへのフラグの設定を停止するようにしてもよい。この構成によれば、前記最終の成分値より後の成分値に対応するフラグの設定を停止する処理を高速に行うことができる。【００３６】
ここで、前記最終判定部は、さらに、前記選択部から出力された成分の個数が１ブロック内の前記最終の成分値までの個数に達したとき、前記フラグバッファ制御部に更新停止要求を通知し、前記フラグバッファ制御部は、前記最終判定部から読み出し停止要求が通知されたとき、当該ブロック内の前記最終の成分値より後の成分値の読み出しにおいて前記フラグバッファの読み出しポインタの更新を停止し、フラグとしてゼロをデータバッファ制御部に出力するようにしてもよい。この構成によれば、ブロック内の成分値の読み出し動作が、前記最終の成分値にまで完了したとき、前記最終の成分値より後の成分値から当該ブロックの末尾の成分値までフラグとして"０"を繰り返し出力する。これにより、フラグバッファおよびデータバッファの読み出し動作においても消費電力を低減することができる。【００３７】
ここで、前記フラグバッファ制御部は前記ブロックに対応する符号化データの復号開始前または復号終了後に、フラグバッファの１ブロックに対応する領域をゼロに初期化してもよい。この構成によれば、フラグバッファを予め０クリアする初期化によって、ゼロの成分値毎に０を設定する処理を削減し、さらに低消費電力を図ることができる。【００３８】
ここで、前記可変長復号装置は、さらに、前記データバッファの空き領域と前記フラグバッファの空き領域とを管理し、空き領域に応じて、前記可変長復号化部に対して復号停止要求または次ブロックの復号許可を出力する残量管理部を備える構成としてもよい。この構成によれば、前記フラグバッファは、前記最終の成分値の次の成分値からブロック末尾の成分値までの個数のフラグを保持しないので、その個数分の空き領域をフラグバッファおよびデータバッファに確保することができる。この空き領域を次ブロックのために有効に利用することができる。また、先行して次ブロックの可変長復号化処理を行うので、処理性能を向上させることができる。【００３９】
ここで、前記残量管理部は、復号された成分が前記最終の成分値であると前記最終判定部によって判定されたとき、前記データバッファおよび前記フラグバッファに空き領域がある場合に、前記可変長復号化部に対して次ブロックの復号許可を出力するようにしてもよい。この構成によれば、上記の空き領域を次ブロックのために有効に利用することができる。また、先行して次ブロックの可変長復号化処理を行うので、処理性能を向上させることができる。【００４０】
ここで、前記フラグバッファは、少なくとも６４個のフラグを保持する領域を有する構成としてもよい。【００４１】
ここで、前記データバッファ制御部は、前記ブロックに対応する符号化データの復号開始前もしくは復号終了後に、データバッファ内の１ブロックに対応する領域をゼロ値に初期化するようにしてもよい。【００４２】
ここで、前記データバッファの１ブロックに対応する領域は、６４個の成分値を保持可能な構成としてもよい。【００４３】
ここで、前記バッファ残量管理部は、前記データバッファおよび前記フラグバッファの一方に空き領域がないとき、前記可変長復号化部に対して復号停止要求を出力するようにしてもよい。【００４４】
また、本発明の他の可変長復号装置は、可変長符号を含む符号化データを、ブロックを構成する複数の成分値に復号する可変長復号化装置であって、前記符号化データから、ブロック内に含まれる非ゼロ係数の個数を示す第１の符号であるＴｏｔａｌＣｏｅｆｆと、ブロック内の最終の非ゼロ値係数より前に含まれるゼロ係数の個数を示す第２符号であるｔｏｔａｌｚｅｒｏと、非ゼロ係数の値を示す第３符号であるＬＥＶＥＬと、前記ＬＥＶＥＬの前のゼロ係数の連続個数を示す第４符号であるｒｕｎ＿ｂｅｆｏｒｅを検出および復号する可変長復号化部と、前記第１符号および前記第２符号に基づいて、ブロック内の非ゼロ係数のうちの最終の非ゼロ係数を判定する最終判定部と、ブロック内の先頭の係数から、前記最終判定部に判定された最終の非ゼロ係数までのそれぞれの係数に対応するフラグであって、対応する係数の値がゼロであるか非ゼロであるかを示すフラグを保持するフラグバッファと、復号された係数のうち、非ゼロ係数のみを保持するデータバッファと、復号された第１符号から第４符号に基づいて、ブロック内の先頭の係数から前記最終の非ゼロ係数までのそれぞれの係数について、非ゼロであるかゼロであるかを示すフラグを前記フラグバッファに設定し、前記最終の非ゼロ係数に対応するデータバッファのアドレスである最終アドレスを保持するフラグバッファ制御部と、フラグバッファに設定されたフラグに基づいて、非ゼロ係数のみを前記データバッファに書き込む制御と、前記データバッファから非ゼロの係数を読み出す制御とを行うデータバッファ制御部と、データバッファから読み出された係数およびゼロのうち一方を選択する選択部とを備え、前記フラグバッファ制御部は、フラグバッファに保持されたフラグおよび前記最終アドレスとに基づいて前記選択部の選択を制御する。【００４５】
また、本発明のさらに他の可変長復号装置は、可変長符号を含む符号化データを、ブロックを構成する複数の成分値に復号する可変長復号化装置であって、前記符号化データから、ブロック内に含まれる非ゼロ係数のうち最終の非ゼロ係数を示す符号であるＥＯＢと、非ゼロ係数の値を示す符号であるＬＥＶＥＬと、非ゼロ係数の前に連続するゼロ係数の個数を示す符号であるＲＵＮとを検出および復号する可変長復号化部と、前記ＥＯＢに基づいて、ブロック内の非ゼロ係数のうちの最終の非ゼロ係数を判定する最終判定部と、ブロック内の先頭の係数から、前記最終判定部に判定された最終の非ゼロ係数までのそれぞれの係数に対応するフラグであって、対応する係数の値がゼロであるか非ゼロであるかを示すフラグを保持するフラグバッファと、復号された係数のうち、非ゼロ係数のみを保持するデータバッファと、前記ＬＥＶＥＬおよび前記ＲＵＮに基づいて、ブロック内の先頭の係数から前記最終の非ゼロ係数までのそれぞれの係数について、非ゼロであるかゼロであるかを示すフラグを前記フラグバッファに設定し、前記最終の非ゼロ係数に対応するデータバッファのアドレスである最終アドレスを保持するフラグバッファ制御部と、フラグバッファに設定されたフラグに基づいて、非ゼロ係数のみを前記データバッファに書き込む制御と、前記データバッファから非ゼロの係数を読み出す制御とを行うデータバッファ制御部と、データバッファから読み出された係数およびゼロのうち一方を選択する選択部とを備え、前記フラグバッファ制御部は、フラグバッファに保持されたフラグおよび前記最終アドレスとに基づいて前記選択部の選択を制御する。
【発明の効果】
【００４６】
本発明の可変長復号化装置によれば、フラグバッファおよびデータバッファにおける１ブロックあたりの必要な記憶領域のサイズを削減し、フラグバッファおよびデータバッファを効率よく使用することができる。また、フラグの書込みおよび読出し回数を削減するので、消費電力を低減することができる。さらに、可変長復号の処理性能を向上させることができる。
【図面の簡単な説明】
【００４７】
【図１】図１は、本発明の実施の形態１における可変長復号化装置の構成を示す図である。
【図２Ａ】図２Ａは、ＭＰＥＧ２でのブロック内の係数の配置を示す図である。
【図２Ｂ】図２Ｂは、ＭＰＥＧ２でのブロック内の係数に対応するアドレスを示す図である。
【図３】図３は、従来技術における情報レジスタと、本実施形態におけるデータバッファおよびフラグバッファのデータ例を示す図である。
【図４Ａ】図４Ａは、フラグバッファのアドレスであるＦＷＰおよびＦＲＰとの関係を示す図である。
【図４Ｂ】図４Ｂは、ＦＲＰの更新停止および再開を制御する回路例を示す図である。
【図５】図５は、フラグバッファの空き領域を活用して先行して次ブロックの復号した場合のフラグバッファのデータ例を示す図である。
【図６】図６は、マクロブロック単位で復号化処理をした場合のフラグバッファのデータ例を示す図である。
【図７】図７は、次の世代のマクロブロックを先行して復号した場合のフラグバッファのデータ例を示す図である。
【図８】図８は、本発明の実施の形態３における可変長復号化装置の構成を示す図である。
【図９】図９は、４×４係数からなるブロックの一例を示す図である。
【図１０】図１０は、４×４ブロックをジグザグスキャンの逆順に並べたデータ例を示す図である。
【図１１】図１１は、復号結果の一例を示す図である。
【図１２】図１２は、４×４ブロックの復号処理を説明するための図である。
【図１３Ａ】図１３Ａは、４×４ブロックの復号処理におけるフラグバッファ、ＦＷＰおよびＦＲＰを示す図である。
【図１３Ｂ】図１３Ｂは、ＦＷＰの更新および再開を制御する回路例を示す図である。
【図１４】図１４は、８×８係数からなるブロックの説明図である。
【図１５】図１５は、本発明の実施の形態５における可変長復号化装置の構成を示す図である。
【図１６】図１６は、フラグバッファのアドレスであるＦＷＰおよびＦＲＰとの関係を示す図である。
【図１７】図１７は、従来技術における代表的な画像圧縮処理フローを示す図である。
【図１８】図１８は、直交変換されたブロックの周波数成分を示す図である。
【図１９】図１９は、ジグザグスキャンを示す図である。
【図２０】図２０は、従来技術における代表的な画像復号化処理フローを示す図である。
【図２１】図２１は、従来技術における可変長復号化部の構成を示す図である。
【図２２】図２２は、従来技術におけるランレングス符号の復号回路を示す図である。
【図２３】図２３は、従来技術におけるＨ．２６４／ＡＶＣに対応したランレングス符号の復号回路を示す図である。
【発明を実施するための形態】
【００４８】
（実施の形態１）
以下、本発明の実施の形態１について、図面を参照しながら説明する。
【００４９】
図１は、本発明の実施の形態１における可変長復号化装置の構成を示す図である。なお、本実施の形態においては、１ブロックが８×８個で構成されている場合で且つ、ＭＰＥＧ２の符号化処理を行う場合について説明する。
【００５０】
図１において、可変長復号化装置は、可変長復号化部１００、データ判定部１０１、判定データ記憶部１０２、データバッファ１０３、フラグバッファ１０４、データバッファ制御部１０５、最終有効データ判定部１０６、フラグバッファ制御部１０７、バッファ残量管理部１０８、選択部１０９及び後段処理部１１０を備える。
【００５１】
可変長復号化部１００は、符号化データを成分値（すなわち係数）に復号する。
【００５２】
データ判定部１０１は、復号された成分値が特定の値であるか否かを判定する。ここで、特定の値は、典型的には"０"であるが、"０"を表すコードであってもよいし、"０"以外の任意の値であってもよいし、"０"以外の任意の値を表すコードであってもよい。
【００５３】
判定データ記憶部１０２は、特定の値を示す判定データを記憶し、データ判定部１０１に出力する。
【００５４】
データバッファ１０３は、復号された成分値のうち、データ判定部１０１によって特定の値でないと判定された成分値（例えば非ゼロ係数）のみを保持するデータバッファである。
【００５５】
最終有効データ判定部１０６は、復号された成分値が、ブロック内の特定の値以外の成分値のうちのブロック内の最終の成分値であるか否かを判定する。つまり、復号された成分値が、ブロック内の最後の非ゼロ係数であるか否かを判定する。
【００５６】
フラグバッファ１０４は、ブロックの先頭の成分値から、最終有効データ判定部１０６によって最終の成分値であると判定された成分値まで、のそれぞれに対応するフラグであって、対応する成分値が特定の値でないか特定の値であるかを示すフラグを保持するフラグバッファである。例えば、フラグ"０"は特定の値の成分値（ゼロ係数）に、フラグ"１"は、特定の値以外の成分値（非ゼロ係数）に対応する。
【００５７】
フラグバッファ制御部１０７は、データ判定部１０１による判定結果のうち、ブロックの先頭の成分値から最終有効データ判定部１０６によって最終の成分値であると判定された成分値までに対応する判定結果のそれぞれを、フラグとしてフラグバッファに設定する。さらに、フラグバッファ制御部１０７は、最終の成分値に対応するフラグの次のフラグとして"０"を設定してもよい。このフラグ"０"は、最終の成分値に後続するブロック末尾までの連続するゼロ係数に対応する複数のフラグの代表として設定される１ビットのフラグである。さらに、フラグバッファ制御部１０７は、フラグバッファ１０４にフラグを書き込むためのアドレスであるフラグバッファライトポインタＦＷＰを保持するレジスタと、フラグバッファ１０４からフラグを読み出すためのアドレスであるフラグバッファリードポインタＦＲＰを保持するレジスタとを有する。また、フラグバッファ制御部１０７は、最終の成分値であると判定された成分値に対応するデータバッファのアドレスである最終アドレスを保持するレジスタを有する。また、フラグバッファ制御部１０７は、フラグバッファ１０４に保持されたフラグおよび最終アドレスに基づいて選択部１０９の選択を制御する。
【００５８】
データバッファ制御部１０５は、フラグバッファ１０４に設定されたフラグに基づいて、データ判定部１０１によって特定の値でないと判定された成分値のみをデータバッファ１０３に書き込む制御と、データバッファ１０３から特定の値でない成分値を読み出す制御とを行う。この制御のために、データバッファ制御部１０５は、データバッファ１０３に特定値以外の成分値（非ゼロ係数）を書き込むためのアドレスであるデータバッファライトポインタＤＷＰを保持するレジスタと、データバッファ１０３から非ゼロ係数を読み出すためのアドレスであるデータバッファリードポインタＤＲＰを保持するレジスタとを有する。
【００５９】
バッファ残量管理部１０８はフラグバッファ１０４及びデータバッファ１０３の容量管理を行う。
【００６０】
選択部１０９は、データバッファ１０３から読み出された成分値および判定データ記憶部１０２に記憶された判定データ（例えばゼロ）のうち一方を選択して、選択結果を後段処理部１１０からの読み出し要求への応答として出力する。
【００６１】
後段処理部１１０は、選択部１０９からの復号された係数を後段処理する後段処理部である。
【００６２】
まず、可変長復号化部１００に入力された符号化データは、可変長復号化処理をされ図１９に示されるジグザグスキャン順でデータ判定部１０１に出力される。このとき、上記で示したように直交変換部により周波数領域に変換されているため出力される係数の多数がゼロ値である。図２Ａは、ＭＰＥＧ２でのブロック内の係数の配置と係数の一例とを示す図である。図２Ｂは、ＭＰＥＧ２でのブロック内の係数に対応するアドレスの一例を示す図である。図２Ａでは、丸印の１２の値をもつ係数より後ろの係数が全てゼロ値になっている。
【００６３】
上記に示す特徴により、判定データ記憶部１０２にはゼロ値を設定する。前記データ判定部１０１に出力された成分値（つまり、復号化された係数であり、以下単に係数と呼ぶ。）はゼロ値と逐次比較され結果を前記フラグバッファ１０４に通知する。判定結果が設定値と等しければ、つまり係数がゼロ値であれば前記フラグバッファに"０"を格納し、ゼロ値でなければ"１"を格納する。
【００６４】
前記フラグバッファに格納される値が"１"である場合、前記フラグバッファより前記データバッファ制御部１０５に対して前記データバッファ１０３の書き込みポインタ位置（以下、ＤＷＰ）の更新を通知し、その際の非ゼロ値を前記データバッファに格納する。上記の動作により前記データバッファには非ゼロ値のみが登録される。
【００６５】
上記処理は１ブロック単位、つまり８×８の６４個の係数からなるブロック単位で行われる。ＭＰＥＧ２の符号化規格では図２Ａ、図２Ｂで示すように、上記６４個の係数のうちある係数以降は全てゼロ値であるという情報を別途保持している。これをＥＯＢ（Ｅｎｄ  Ｏｆ  Ｂｌｏｃｋ）と呼ぶ。前記ＥＯＢを可変長符号化処理中に検出した場合、前記最終有効データ判定部に対して出力する。前記最終有効データ判定部は前記ＥＯＢを用いて、前記フラグバッファ制御部に対してＤＷＰの値を保持するとともに、ＤＷＰの更新を停止する制御を行う。
【００６６】
図３は、データバッファおよびフラグバッファの保持されたデータ（このデータは図２Ａのブロックに対応する。）の一例を示す図である。同図では、従来技術の情報レジスタのデータ例も示している。同図のように、データバッファ１０３は、非ゼロ係数のみを格納する。フラグバッファ１０４は、ブロック内の先頭の係数から、最終有効データ判定部１０６に判定された最終の非ゼロ係数（同図では１２の値をもつ係数）までのそれぞれの係数に対応するフラグを保持する。各フラグは、対応する係数の値がゼロであるか非ゼロであるかを示す。同図では、フラグが"１"のとき非ゼロであることを、"０"のときゼロであることを示す。さらに、フラグバッファ１０４は、最終の非ゼロ係数に対応するフラグの次のフラグとして"０"を保持する。最終の非ゼロ係数に対応するフラグの次のフラグ"０"は、４６個のフラグを代表するフラグであり、言い換えれば、４６個のフラグが１個のフラグに圧縮されている。
【００６７】
上記制御により通常は全６４個分のフラグバッファの個数が必要であったものを、ＥＯＢを検出するまでの係数の個数分で対応することが可能となる。また、前記データバッファに関してもＥＯＢを検出するまでの非ゼロ係数のみを格納すればよい。
【００６８】
次に、前記データバッファに登録された係数を前記後段処理部へ出力する。後段処理部より前記フラグバッファ制御部に読み出し要求がだされた場合、フラグバッファ制御部はフラグバッファに対して読み出しポインタ位置（以下、ＦＲＰ）の更新を通知し、その際フラグバッファのＦＲＰ位置の値が"０"であった場合は、前記データバッファ制御部に対してデータバッファの読み出しポインタ位置（以下、ＤＲＰ）の更新停止を要求し、判定データ記憶部に格納されているゼロ値を出力するとともに前記選択部の出力を判定データ記憶部の出力に切り替え、前記後段処理部にデータを出力する。ＦＲＰ位置の値が"１"であった場合は、ＤＲＰを更新させデータバッファに格納されている係数を出力するとともに、前記選択部の出力をデータバッファの出力に切り替え、前記後段処理部にデータを出力する。
【００６９】
更に、前記後段処理部の読み出し要求は、前記最終有効データ判定部に対しても入力され読み出し回数をカウントする。読み出し回数と前記ＥＯＢの値もしくはＦＷＰの値とを比較し等しい場合は、前記後段処理部の読み出し要求がある場合でも前記フラグバッファのＦＲＰは更新せずにＦＲＰは常に同じ位置を読み出す。上記処理は、例えば最終有効データ判定部１０６内に図４Ｂに示すような回路を備えることにより実現される。これにより、ＥＯＢ以降のフラグバッファのＷＲＰ更新がなされていなかった部分を連続して読み出すことを可能にする。つまり、ＥＯＢ以降のゼロ値は、フラグバッファに登録される係数１個分の情報に圧縮されたことと等価となり見かけ上フラグバッファを削減した効果を得られる。
【００７０】
図４Ａは、フラグバッファ１０４のアドレスであるＦＷＰおよびＦＲＰとの関係を示す図である。同図のように、フラグバッファ制御部１０７は、ＦＷＰおよびＦＲＰを更新しながらフラグをフラグバッファ１０４に設定する。さらに、フラグバッファ制御部１０７は、ＥＯＢが検出されたとき、最終の非ゼロ係数に対応するフラグの次のアドレスにＦＷＰを更新し、圧縮されたフラグ"０"を設定する。
【００７１】
このように、ＥＯＢ以降の係数がフラグバッファ上で圧縮された場合、通常６４個分の領域を必要とするフラグバッファが６４−Ｎ個分未使用になる。その際、前記バッファ残量管理部は、フラグバッファの残量を確認し前記可変長復号化部に対して次のブロックの復号化を要求する。上記処理により、通常フラグバッファが係数６４個分を格納するまで次のブロックの処理を実施できなかったものを、前記後段処理部とは独立して先行的に処理することが可能となり、可変長復号化処理の処理性能向上の効果を得られる（図５）。上記処理を実現する場合、可変長復号化部は、ＥＯＢ以降の係数の出力を行わない機能も有する。図５に、先行して次のブロックを処理した場合のフラグバッファ１０４のデータ例を示す。同図上段は、Ｙ０ブロックの復号完了時にデータ例を示す。同図下段は、Ｙ０ブロックの復号後に、次のＹ１ブロックと次の次のＹ２ブロックとを先行して復号しているデータ例を示す。
【００７２】
更に、ブロック単位ではなくブロックがＹ０、Ｙ１、Ｙ２、Ｙ３、Ｃｂ、Ｃｒの６個で構成されたマクロブロック（以下、ＭＢ）単位で上記処理を実現する（図６、図７）。動画像はＭＢの塊を複数で構成される。つまり動画像全体の処理性能向上を実現する場合は、ＭＢ単位での処理性能を向上させることが必須となる。図６、図７では、図５で示すフラグバッファの有効利用をＭＢ単位にまで発展させた場合である。ＥＯＢまでの係数が少ないブロック／マクロブロックが多く存在することが考えられる場合などフラグバッファの領域が確保できる可能な限り可変長復号化処理の先行処理を実現できる本実施の形態は、更に可変長復号化処理性能を向上させることが可能となる。
【００７３】
（実施の形態２）
以下、本発明の実施の形態２について図面を参照しながら説明する。本発明の実施の形態２の構成図は、本発明の実施の形態１と同じ図１を用いているため説明を省略する。
【００７４】
実施の形態２において、前記最終有効データ判定部に通知する情報がＥＯＢでなくＴｏｔａｌＣｏｅｆｆとｔｏｔａｌｚｅｒｏｓである点において実施の形態１と異なる可変長復号化装置であって、かかる構成によれば、ＴｏｔａｌＣｏｅｆｆとｔｏｔａｌｚｅｒｏｓを加算した値から、全ブロック数を減算することによって、ＥＯＢと同様に以降ゼロ値が連続する値を得ることが可能であり、実施の形態１と同様の効果を得られる。
【００７５】
（実施の形態３）
以下、本発明の実施の形態３について、図面を参照しながら説明する。
【００７６】
図８は、本発明の実施の形態３における可変長復号化装置の構成図である。なお、本実施の形態においては、１ブロックが４×４個で構成されている場合で且つ、Ｈ．２６４／ＡＶＣの符号化処理を行う場合について説明する。
【００７７】
図８において、可変長復号化装置は、可変長復号化部２００、データバッファ２０３、フラグバッファ２０４、データバッファ制御部２０５、最終有効データ判定部２０６、フラグバッファ制御部２０７、バッファ残量管理部２０８、選択部２０９及び後段処理部２１０を備える。
【００７８】
可変長復号化部２００は、符号化データから、ブロック内に含まれる非ゼロ係数の個数を示す第１の符号であるＴｏｔａｌＣｏｅｆｆと、ブロック内の最終の非ゼロ値係数より前に含まれるゼロ係数の個数を示す第２符号であるｔｏｔａｌｚｅｒｏと、非ゼロ係数の値を示す第３符号であるＬＥＶＥＬと、ＬＥＶＥＬの前のゼロ係数の連続個数を示す第４符号であるｒｕｎ＿ｂｅｆｏｒｅを検出および復号する。
【００７９】
データバッファ２０３は、復号された係数のうち、非ゼロ係数のみを保持する。
【００８０】
フラグバッファ２０４は、ブロック内の先頭の係数から、最終有効データ判定部２０６に判定された最終の非ゼロ係数までのそれぞれの係数に対応するフラグであって、対応する係数の値がゼロであるか非ゼロであるかを示すフラグを保持する。
【００８１】
データバッファ制御部２０５は、フラグバッファ２０４に設定されたフラグに基づいて、非ゼロ係数のみをデータバッファ２０３に書き込む制御と、データバッファ２０３から非ゼロの係数を読み出す制御とを行う。
【００８２】
最終有効データ判定部２０６は、第１符号および第２符号に基づいて、ブロック内の非ゼロ係数のうちの最終の非ゼロ係数を判定する。すなわち、最終有効データ判定部２０６はＴｏｔａｌＣｏｅｆｆとｔｏｔａｌｚｅｒｏｓとを用いて１ブロック（４×４ブロック）の最終の非ゼロ係数の位置を検索し、フラグバッファ制御部２０７に通知する。
【００８３】
フラグバッファ制御部２０７は、復号された第１符号から第４符号に基づいて、ブロック内の先頭の係数から最終の非ゼロ係数までのそれぞれの係数について、非ゼロであるかゼロであるかを示すフラグをフラグバッファ２０４に設定し、また、最終の非ゼロ係数に対応するデータバッファのアドレスである最終アドレスを保持する。また、フラグバッファ制御部２０７は、フラグバッファ２０４に保持されたフラグおよび最終アドレスに基づいて選択部２０９の選択を制御する。
【００８４】
バッファ残量管理部２０８はフラグバッファ及びデータバッファの容量管理を行う。
【００８５】
選択部２０９は、データバッファ２０３から読み出された係数およびゼロのうち一方を選択し、選択結果を後段処理部１１０からの読み出し要求への応答として出力する。
【００８６】
後段処理部２１０は選択部２０９からの復号された係数を後段処理する。
【００８７】
まず、可変長復号化部２００は、非ゼロ係数の個数を表すＴｏｔａｌＣｏｅｆｆと、非ゼロ係数値の大きさを表すｌｅｖｅｌと、データスキャン方向において最後のｌｅｖｅｌより前のゼロ係数の個数を表すｔｏｔａｌｚｅｒｏｓと、データスキャン方向においてｌｅｖｅｌの前のゼロ係数の連続個数を表すｒｕｎ＿ｂｅｆｏｒｅとを順次復号する。
【００８８】
図９に順次復号された例を示す。復号化処理ではジグザグスキャンの逆順にデータが復号される。図１０は、図９の４×４ブロックデータをジグザグスキャンの逆順に並べたものである。図１１は、図８で示した一例の復号例である。
【００８９】
復号化の手順としては、１６個の係数のうちの非ゼロ係数（＋２３、−４、＋１１、＋８、−３、＋１、−１）の個数であるＴｏｔａｌＣｏｅｆｆ＝７が復号される。次に、非ゼロ係数の大きさを示すｌｅｖｅｌが、逆ジグザグスキャン順に、−１→＋１→−３→＋８→＋１１→−４→＋２３と、順次復号される。次に、ジグザグスキャン順の最後のｌｅｖｅｌ＝−１の前に存在するゼロ値の総個数ｔｏｔａｌｚｅｒｏｓ＝５が復号される。最後にｌｅｌｖｅの前に存在するゼロ値の個数ｒｕｎ＿ｂｅｆｏｒｅが逆ジグザグスキャン順に、１→２→１→１→０→０が順次復号される。
【００９０】
復号化データにおいて、
・ｌｅｖｅｌ＝−１の前に存在するゼロ値の個数は１である、
・ｌｅｖｅｌ＝＋１の前に存在するゼロ値の個数は２である、
・ｌｅｖｅｌ＝−３の前に存在するゼロ値の個数は１である、
・ｌｅｖｅｌ＝＋８の前に存在するゼロ値の個数は１である、
・ｌｅｖｅｌ＝＋１１の前に存在するゼロ値の個数は０（存在しない）である、
・ｌｅｖｅｌ＝−４の前に存在するゼロ値の個数は０である、
・ｌｅｖｅｌ＝＋２３の前に存在するゼロ値の個数は０である、
という結果が得られる。
【００９１】
この結果に基づいてｒｕｎ＿ｂｅｆｏｒｅは、逆ジグザグスキャン順に、１→２→１→１→０→０となる。
【００９２】
図１２を用いて処理の流れを説明する。
【００９３】
まず、ｌｅｖｅｌ値は非ゼロ値のみしか存在しないので、ゼロ値との比較の必要はなく連続でデータバッファに書き込む。
【００９４】
次に、ＴｏｔａｌＣｏｅｆｆ＝７とｔｏｔａｌｚｅｒｏｓ＝５の値が復号されるので上記２つの値を最終有効データ判定部に通知する。ブロックの構成数が１６個であることがわかっているので、１６−１２＝４がゼロ値の連続する回数である。Ｈ．２６４の場合は逆スキャン順でデータが復号されるのでフラグバッファの書き込みポインタＦＷＰの更新を係数４つ分停止する。
【００９５】
係数５つ目は必ずｌｅｖｅｌ値であることがわかっているので、ＦＷＰを１つ進めた位置のフラグバッファの値は"１"を設定する。この"１"に対応するｌｅｖｅｌが最初の係数である１である。
【００９６】
次に、ｒｕｎ＿ｂｅｆｏｒｅの値を使って（図１３Ａ、図１３Ｂ参照）、フラグバッファのＦＷＰをスキップし、スキップされた区間のフラグバッファには"０"を格納する。ｒｕｎ＿ｂｅｆｏｒｅは、データスキャン方向でＬＥＶＥＬの前のゼロ係数の連続個数を表すものである。つまり、ＦＷＰに"１"を格納した次のＦＷＰが"１"になるのはｒｕｎ＿ｂｅｆｏｒｅ分だけ進んだ先になるからである。
【００９７】
上記のように、最初のＦＷＰの停止とｒｕｎ＿ｂｅｆｏｒｅ値分のＦＷＰのスキップを最終有効データ判定部とフラグバッファ制御部を用いることで実現が可能となり、実施の形態１と同様、符号化係数４つ分のフラグバッファの見かけ上削減が実現可能となる。
【００９８】
次に、係数の読み出しでは、実施の形態１とは逆となり、ＴｏｔａｌＣｏｅｆｆ＝７とｔｏｔａｌｚｅｒｏｓ＝５の値から算出されたＦＷＰの更新停止期間係数４個分を読み出し開始時に停止させ、その後、連続してフラグバッファとデータバッファを用いて係数を読み出す。
【００９９】
更に、かかる構成によれば、Ｈ．２６４／ＡＶＣの符号化規格において、実施の形態１同様フラグバッファとデータバッファの効率化を実現でき、更に可変長復号化部の性能向上も実現できる。
【０１００】
（実施の形態４）
以下、本発明の実施の形態４について図面を参照しながら説明する。本発明の実施の形態４の構成図は、本発明の実施の形態３と同じ図２を用いているため説明を省略する。
【０１０１】
実施の形態４において、構成する１ブロックが４×４でなく８×８である点が実施の形態３と異なる可変長復号化装置である。かかる構成によれば、図１４で示すように８×８を構成するブロックは、可変長復号化処理時は４×４単位で処理されデータバッファに出力される際にスキャン順に出力され、ブロック構成を変更するため４×４単位で高周波成分がゼロ値であった場合には、８×８ブロック構成になってもゼロ値を多数含むため、実施の形態３と同様の効果を得られる。
【０１０２】
（実施の形態５）
以下、本発明の実施の形態５について、図面を参照しながら説明する。
【０１０３】
図１５は請求項２０に示すものであり、本発明の実施の形態５における可変長復号化装置の構成図である。なお、本実施の形態においては、１ブロックが８×８個で構成されている場合で且つ、ＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４、ＶＣ−１の符号化処理を行う場合について説明する。
【０１０４】
図１５において、可変長復号化装置は、可変長復号化部３００、データバッファ３０３、フラグバッファ３０４、データバッファ制御部３０５、最終有効データ判定部３０６、フラグバッファ制御部３０７、バッファ残量管理部３０８、選択部３０９および後段処理部３１０を備える。
【０１０５】
可変長復号化部３００は、符号化データから、ブロック内に含まれる非ゼロ係数のうち最終の非ゼロ係数を示す符号であるＥＯＢと、非ゼロ係数の値を示す符号であるＬＥＶＥＬと、非ゼロ係数の前に連続するゼロ係数の個数を示す符号であるＲＵＮとを検出および復号する。
【０１０６】
最終有効データ判定部３０６は、ＥＯＢに基づいて、ブロック内の非ゼロ係数のうちの最終の非ゼロ係数を判定する。
【０１０７】
データバッファ３０３は、復号された係数のうち、非ゼロ係数のみを保持する。
【０１０８】
フラグバッファ３０４は、ブロック内の先頭の係数から、最終有効データ判定部３０６に判定された最終の非ゼロ係数までのそれぞれの係数に対応するフラグであって、対応する係数の値がゼロであるか非ゼロであるかを示すフラグを保持する。
【０１０９】
フラグバッファ制御部３０７は、ＬＥＶＥＬおよびＲＵＮに基づいて、ブロック内の先頭の係数から最終の非ゼロ係数までのそれぞれの係数について、非ゼロであるかゼロであるかを示すフラグをフラグバッファ３０４に設定し、最終の非ゼロ係数に対応するデータバッファのアドレスである最終アドレスを保持する。また、フラグバッファ制御部３０７は、フラグバッファに保持されたフラグおよび最終アドレスに基づいて選択部３０９の選択を制御する。
【０１１０】
データバッファ制御部３０５は、フラグバッファ３０４に設定されたフラグに基づいて、非ゼロ係数のみをデータバッファ３０３に書き込む制御と、データバッファ３０３から非ゼロの係数を読み出す制御とを行う。
【０１１１】
バッファ残量管理部３０８はフラグバッファ及びデータバッファの容量管理を行う。
【０１１２】
選択部３０９は、データバッファから読み出された係数およびゼロのうち一方を選択する。
【０１１３】
後段処理部３１０は選択部３０９からの復号された係数を後段処理する。
【０１１４】
実施の形態５において、可変長復号された係数を逐次判定値と比較し、比較結果をフラグバッファおよびデータバッファに格納するのではなく、連続するゼロ値の値によってフラグバッファを更新する点において実施の形態１と異なる可変長復号化装置である。
【０１１５】
本実施の形態の可変長復号化部は、ゼロ値の連続する個数ＲＵＮと非ゼロ値ＬＥＶＥＬを復号するものであり、上記ＲＵＮの値を前記フラグバッファ制御部に通知することで図１６に示すようにフラグバッファのＦＷＰをＲＵＮの値分スキップさせ、スキップされた区間の符号化係数はゼロ値となり、その区間はフラグバッファを"０"を格納する。更に、スキップした先のフラグバッファに"１"を書き込み上記フラグバッファに対応するＬＥＶＥＬ値がデータバッファに格納される。
【０１１６】
また、最終有効データの判定は、実施の形態１同様ＥＯＢを用いて行いＥＯＢが検出された場合はＦＷＰとＦＲＰはゼロ値が連続する期間フラグバッファは同じ部分を参照し、フラグバッファの見かけ上の削減を実現する。
【０１１７】
かかる構成によれば、符号化規格を限定した場合において、前記記載のデータ判定部や判定データ記憶部を使用せずに実施の形態１と同様の効果を実現することが可能である。
【０１１８】
（実施の形態６）
実施の形態６に関しては、上記に示す実施の形態１から実施の形態５までに共通する部分に関することであるため詳細な説明は省略する。全実施の形態に記載されているフラグバッファは判定結果が判定値と等しい場合かもしくは、ゼロ値である場合、ないしは、ｒｕｎ＿ｂｅｆｏｒｅ、ＲＵＮ値によってポインタがスキップすることによるフラグへの"０"を格納する処理を割愛するために、１ブロックの読み出し終了時に対象のフラグバッファを全て"０"に更新する初期化処理を行うことも可能である。
【０１１９】
かかる構成によれば、フラグバッファに"０"を格納する処理を省略することで更に可変長復号化処理の処理性能向上を実現できる。
【産業上の利用可能性】
【０１２０】
本発明にかかる可変調復号化装置は、ＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４、Ｈ．２６４／ＡＶＣ、ＶＣ−１の動画像符号化規格の可変長復号化処理の面積削減と処理性能向上を可能とするため動画像符号化などの画像符号化の分野において有用である。
【符号の説明】
【０１２１】
１０  直交変換処理
１１  量子化処理
１２  可変長符号化処理
２０  可変長復号処理
２１  逆量子化処理
２２  逆直交変換処理
１００  可変長復号化部
１０１  データ判定部
１０２  判定データ記憶部
１０３  データバッファ
１０４  フラグバッファ
１０５  データバッファ制御部
１０６  最終有効データ判定部
１０７  フラグバッファ制御部
１０８  バッファ残量管理部
１０９  選択部
１１０  後段処理部
２００  可変長復号化部
２０３  データバッファ
２０４  フラグバッファ
２０５  データバッファ制御部
２０６  最終有効データ判定部
２０７  フラグバッファ制御部
２０８  バッファ残量管理部
２０９  選択部
２１０  後段処理部
３００  可変長復号化部
３０３  データバッファ
３０４  フラグバッファ
３０５  データバッファ制御部
３０６  最終有効データ判定部
３０７  フラグバッファ制御部
３０８  バッファ残量管理部
３０９  選択部
３１０  後段処理部
４００  入力部
４０１  可変長復号部
４０２  書き込み制御部
４０３  データ選択部
４０４  読み出し制御部
４０５  データバッファ
４０６  後段処理部
５００  入力部
５０１  可変長復号化手段
５０２  アドレス加算手段
５０３  書き込み制御手段
５０４  読み出し制御手段
５０５  データ選択手段
５０６  後段処理手段
５０７  出力手段
５０８  データバッファ
５０９  情報レジスタ
【図１】
2010095181.tif 000003
【図２Ａ】
2010095181.tif 000004
【図２Ｂ】
2010095181.tif 000005
【図３】
2010095181.tif 000006
【図４Ａ】
2010095181.tif 000007
【図４Ｂ】
2010095181.tif 000008
【図５】
2010095181.tif 000009
【図６】
2010095181.tif 000010
【図７】
2010095181.tif 000011
【図８】
2010095181.tif 000012
【図９】
2010095181.tif 000013
【図１０】
2010095181.tif 000014
【図１１】
2010095181.tif 000015
【図１２】
2010095181.tif 000016
【図１３Ａ】
2010095181.tif 000017
【図１３Ｂ】
2010095181.tif 000018
【図１４】
2010095181.tif 000019
【図１５】
2010095181.tif 000020
【図１６】
2010095181.tif 000021
【図１７】
2010095181.tif 000022
【図１８】
2010095181.tif 000023
【図１９】
2010095181.tif 000024
【図２０】
2010095181.tif 000025
【図２１】
2010095181.tif 000026
【図２２】
2010095181.tif 000027
【図２３】
2010095181.tif 000028
【手続補正書】
【提出日】平成23年8月17日(2011.8.17)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は可変長符号を含む符号化データを、ブロックを構成する複数の成分値に復号する可変長復号化装置に関し、特に、画像符号化／復号化処理における基幹処理である可変長復号装置に関する。
【背景技術】
【０００２】
現行の動画圧縮／伸張は、動画符号化規格としてＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４、Ｈ．２６４／ＡＶＣ、ＶＣ−１等のＭＰＥＧ（Ｍｏｖｉｎｇ  ｐｉｃｔｕｒｅ  ｅｘｐｅｒｔ  ｇｒｏｕｐ）が存在し、画像の大きさや利用媒体などの違いによって、それぞれに対応できるように規格で定められている。例えば、ＭＰＥＧ１、ＭＰＥＧ２であればＤＶＤ等の比較的画像サイズの大きな媒体に対して使用され、ＭＰＥＧ４やＨ．２６４／ＡＶＣの一方式では携帯電話や１ｓｅｇ等の比較的画像サイズの小さい媒体に対して使用され、Ｈ．２６４／ＡＶＣ、ＶＣ−１ではＨＤＴＶ等の画像サイズが非常に大きい媒体に対して使用される。昨今、ＨＤＴＶの急速な普及や２Ｋ４Ｋといった高解像度の画質の処理が必要不可欠となっており動画像処理の効率化も必須となっている。
【０００３】
図１７は、従来技術における代表的な画像圧縮処理フローを示す図である。動画符号化を行う場合は、動画像をマクロブロック（ＭＢ）と呼ばれる処理単位に分割し処理を行う。ＭＢは輝度成分と色差成分とで構成されており、輝度成分はＹ０、Ｙ１、Ｙ２、Ｙ３の４個で成り、また色差成分はＣｂ、Ｃｒの２個で成っている。各Ｙ、Ｃ成分は８×８のブロックの６４個の画素成分で構成されている。ＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４、Ｈ．２６４／ＡＶＣ、ＶＣ−１に共通する処理として直交変換処理や可変長符号化処理、量子化処理等がある。
【０００４】
直交変換処理１０はＹ０、Ｙ１、Ｙ２、Ｙ３、Ｃｂ、Ｃｒブロック毎に行われる処理であり、空間成分である動画像信号を周波数成分に変換する技術である。図１８は、直交変換されたブロックの周波数成分を示す図である。直交変換処理を行うことによって、図１８に示すように自然画像などは周波数成分に変換した際にデータの偏りが発生し、可変長符号化等でのデータ圧縮に有効に作用する。
【０００５】
量子化処理１１は各符号化規格によってそれぞれ処理方式が異なるが、外部から設定される量子化値を用いて直交変換されたＤＣＴ係数を除算することで量子化係数を生成する。この処理によって画質にさほど影響を与えないＤＣＴ係数の高周波領域にゼロ値を集中させることにより後段の可変長符号化処理の符号化効率を更に高める。
【０００６】
更に、可変長符号化処理１２にて図１９に示すようなジグザグスキャンの順でゼロ値の個数を表すＲＵＮと符号化係数の大きさを表すＬＥＶＥＬとを組み合わせてランレングスデータを生成する。それらの組み合わせの出現率に応じて長さの異なる符号を割り当てることでデータの容量を小さくする。
【０００７】
図２０は、従来技術における代表的な画像復号化処理フローを示す図である。図１８の画像圧縮処理によって符号化された符号化データを復号する画像復号化処理を示す、可変長復号処理２０、逆量子化処理２１、及び逆直交変換処理２２からなる。
【０００８】
可変長復号処理２０は、可変長符号化データをＲＵＮとＬＥＶＥＬとの組み合わせとして復号した上で、ＲＵＮの大きさ分だけゼロ値を生成し、生成したゼロ値とＬＥＶＥＬとを組み合わせる。この動作が８×８ブロック単位で繰り返される。逆量子化処理２１は上記で生成された８×８ブロック単位の符号化データを量子化時に使用した量子化係数を乗算することで圧縮前のデータである逆量子化係数に復元する。逆直交変換処理２２は、上記生成された逆量子化係数を周波数領域から空間領域に変換することで画像データとして復号する。
【０００９】
この従来の可変長復号処理２０の構成について図２１を用いて説明する。図２１は、従来技術における可変長復号処理２０の構成を示す図である。入力部４００から入力される可変長符号データを可変長復号部４０１においてゼロ値の個数を表すＲＵＮと係数値の大きさを表すＬＥＶＥＬの組み合わせとして復号する。書き込み制御部４０２は復号されたＲＵＮの個数だけデータバッファ４０５へゼロ値を書き込むようにデータ選択部４０３に選択信号を供給し、ＲＵＮの個数だけゼロ値を書き込んだ後、ＬＥＶＥＬで表される係数をデータバッファ４０５へ書き込む。この動作が８×８画素分生成されるまで繰り返された後、読み出し制御部４０４によってデータバッファ４０５からジグザグスキャン（図１９）で順次読み出し、後段処理部４０６である逆量子化処理２１へ出力する。しかしながら、上記従来の構成では、ＲＵＮの個数分だけゼロ値である係数を連続してデータバッファに書き込みしているためデータバッファへの無駄なアクセスが発生してしまう課題があった。
【００１０】
上記問題の解決案の一つとして、特許文献１において公開しているランレングス符号の復号回路がある。その１例について図２２を用いて説明する。
【００１１】
図２２において、入力部５００は可変長符号化・ランレングス符号化データを入力する。可変長復号化手段５０１は入力部５００から入力されたデータを、ゼロ値の個数を表すＲＵＮと、係数値の大きさを表すＬＥＶＥＬとの組み合わせとして順次復号する。データバッファ５０８はＬＥＶＥＬを格納する。アドレス加算手段５０２はＲＵＮによるゼロ値の個数に基づいてこのデータに対応するＬＥＶＥＬのアドレスを演算する。情報レジスタ５０９はアドレス加算手段５０２の結果を記憶するＭ×Ｎビットのレジスタである。書き込み制御手段５０３はアドレス加算手段５０２からの情報に基づいてＬＥＶＥＬをデータバッファ５０８へ格納する。読み出し制御手段５０４は情報レジスタ５０９の値に基づいてデータバッファ５０８からＬＥＶＥＬを読み出す。データ選択手段５０５は情報レジスタ５０９の値に基づいて、データバッファ５０８に格納されているＬＥＶＥＬとゼロ値のうちいずれかを選択して出力する。後段処理手段５０６はデータ選択手段５０５からのデータを後段処理する。出力手段５０７は後段処理手段５０６からのデータを出力する。
【００１２】
入力部５００から可変長符号化・ランレングス符号化データが入力されると、可変長復号化手段５０１は、入力される可変長符号化・ランレングス符号化データを、ゼロ値の個数を表すＲＵＮと係数値の大きさを表すＬＥＶＥＬとの組み合わせとして順次復号する。
【００１３】
アドレス加算手段５０２は、復号化したデータにおいて、図１９に示すジグザグスキャンの順に、すなわち１→２→９→１７・・・という順に、復号されたＲＵＮの大きさに基づいてアドレスを演算する。情報レジスタ５０９は、ＲＵＮの大きさ分だけジグザグスキャン順に例えばゼロ値を連続して記憶し、その後の位置にＬＥＶＥＬのアドレスとして例えば"１"を記憶する。書き込み制御手段５０３は、アドレス加算手段５０２が演算したアドレスにＬＥＶＥＬを書き込む。書き込み制御手段５０３は、１ブロック分のＬＥＶＥＬの書き込みが終了したか否かを判断し、未終了であると判断するときは復号の最初のステップに戻り、終了したと判断するときは読み出しの処理に進む。可変長復号化手段５０１によって１ブロックに相当するＲＵＮとＬＥＶＥＬとの組み合わせが復号されたうえでＬＥＶＥＬの書き込みが終了すると、読み出し制御手段５０４は、後段処理手段５０６からの読み出し許可を示す制御信号に基づいて情報レジスタ５０９の記憶内容を判断してその判断結果に基づいて読み出し処理を制御する。すなわち、読み出し制御手段５０４は、情報レジスタ５０９に"１"が格納されているビットに相当するアドレスをデータバッファ５０８に出力したうえで、そのアドレスに格納されているＬＥＶＥＬを読み出す。データ選択手段５０５では読み出し制御手段５０４が情報レジスタ５０９を判断する際、同時に、情報レジスタ５０９のビットがゼロ値の場合は、後段処理手段５０６にゼロ値を出力し、"１"の場合は、後段処理手段５０６にデータバッファ５０８から読み出した出力データＬＥＶＥＬを出力する。後段処理手段５０６はデータ選択手段５０５を介して受け取ったデータを後段処理したうえで、出力手段５０７から処理したデータを出力する。
【００１４】
上記の従来の技術によれば、データバッファ５０８の後段にデータ選択手段５０５を設けたうえで、データバッファ５０８には、ゼロ値を格納することなく、ＬＥＶＥＬのみを格納する。これにより、ゼロ値は後段のデータ選択手段５０５において選択される。可変長復号化手段５０１はその動作を停止させる必要がなく、高速化に有利となる。そして、必要最低限の構成で、アドレスの保持器の情報に基づいてＬＥＶＥＬのみを読み出すことで、データバッファ５０８へのアクセスを削減できることから、低消費電力の可変長復号器を提供することができる。
【００１５】
また、動画符号化規格の１つであるＨ．２６４／ＡＶＣでは、ブロック中の非ゼロ係数の個数を表すＴｏｔａｌＣｏｅｆｆと、非ゼロ係数値の大きさを表すｌｅｖｅｌと、データスキャン方向において最後のｌｅｖｅｌより前のゼロ係数の個数を表すｔｏｔａｌ＿ｚｅｒｏｓと、データスキャン方向においてｌｅｖｅｌの前のゼロ係数の連続個数を表すｒｕｎ＿ｂｅｆｏｒｅが符号化されていることであり、ＲＵＮとＬＥＶＥＬとが組み合わせとして符号化されていないことである。Ｈ．２６４に関しては、インプレス標準教科書Ｈ．２６４／ＡＶＣ  教科書に詳細な説明がある。
【００１６】
図２３に示す上記のＨ．２６４／ＡＶＣに対応した特許文献２において公開しているランレングス符号の復号回路がある。上記特許文献２も上記特許文献１と同様に非ゼロ値を書き込むデータバッファのアドレスをＴｏｔａｌＣｏｅｆｆやｔｏｔａｌ＿ｚｅｒｏｓ、ｒｕｎ＿ｂｅｆｏｒｅを用いて決定し、データバッファに対するゼロ値の書き込み／読み出しアクセスを削減することを目的としている。
【００１７】
本発明の目的は、複数の符号化規格を処理する場合において、上記に示す非ゼロ値を格納するデータバッファの更なる有効利用を行うとともに、上記に示すゼロ値か非ゼロ値かを判断する情報レジスタに関してもデータバッファ同様に有効活用することで、可変長復号化処理の効率化を実現する。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２００６−７４１９７号公報
【特許文献２】特開２００７−３２９９０３号公報
【非特許文献】
【００１９】
【非特許文献１】インプレス標準教科書Ｈ．２６４／ＡＶＣ  教科書
【発明の概要】
【発明が解決しようとする課題】
【００２０】
先に示した、特許文献１と特許文献２とに共通する課題として、２点存在する。１つ目はアドレス加算手段５０２でデータバッファ５０８の非ゼロ係数値の書き込み位置を決めるため、ゼロ値に対応するアドレスのデータバッファは無効なデータが存在することとなる。２つ目は、直交変換処理された係数は高周波領域になるに連れてゼロ値の連続回数が増加する。その場合、情報レジスタ５０９に関しても"０"が登録された領域が連続して存在することになる。情報レジスタの特定の領域に全て"０"が登録されていることがわかっているのであれば、上記の特定の領域全てに"０"を登録することは冗長な動作である。更に情報レジスタの限られた資源を"０"だけで埋めてしまうのは非効率である。
【００２１】
例えば、昨今の半導体集積回路では複雑かつ様々な動画符号化処理の実現や、高解像度画像処理の実現が要求されている。また、環境対策の観点での低消費電力化も必須である。このような背景の中で、非ゼロ係数値の書き込み／読み出しアクセス削減だけでは電力削減や処理の効率化といった観点では十分な効果を得ることはできない。
【００２２】
本発明は上記の問題を解決するものであり、非ゼロ係数を格納するデータバッファの効率化に加えて情報レジスタの効率化も合わせて実現し、消費電力を低減する可変長復号化装置を提供することを目的とする。
【課題を解決するための手段】
【００２３】
上記課題を解決するために本発明の可変長復号装置は、可変長符号を含む符号化データを、ブロックを構成する複数の成分値に復号する可変長復号化装置であって、前記符号化データを前記成分値に復号する可変長復号化部と、復号された成分値が特定の値であるか否かを判定するデータ判定部と、復号された成分値のうち、前記データ判定部によって特定の値でないと判定された成分値のみを保持するデータバッファと、復号された成分値が、ブロック内の前記特定の値以外の成分値のうちのブロック内の最終の成分値であるか否かを判定する最終判定部と、ブロックの先頭の成分値から前記最終判定部によって前記最終の成分値であると判定された成分値までのそれぞれに対応するフラグであって、対応する成分値が前記特定の値でないか特定の値であるかを示すフラグを保持するフラグバッファと、前記データ判定部による判定結果のうち、ブロックの先頭の成分値から前記最終判定部によって前記最終の成分値であると判定された成分値までに対応する判定結果のそれぞれを、前記フラグとして前記フラグバッファに設定し、前記最終の成分値であると判定された成分値に対応するデータバッファのアドレスである最終アドレスを保持するフラグバッファ制御部と、フラグバッファに設定されたフラグに基づいて、前記データ判定部によって前記特定の値でないと判定された成分値のみを前記データバッファに書き込む制御と、前記データバッファから前記特定の値でない成分値を読み出す制御とを行うデータバッファ制御部と、データバッファから読み出された成分値およびゼロのうち一方を選択する選択部とを備え、前記フラグバッファ制御部は、前記フラグバッファに保持されたフラグおよび前記最終アドレスとに基づいて前記選択部の選択を制御する。
【００２４】
この構成によれば、フラグバッファ（従来技術における情報レジスタに対応する。）は、ブロック内の全ての成分値（係数）と同数のフラグを保持するのではなく、ブロック内の先頭の成分値から、前記特定の値以外の成分値のうちのブロック内の最終の成分値までの成分値の個数のフラグを保持し、最終の成分値以降の成分値に対応するフラグを保持しない。これにより、フラグバッファおよびデータバッファにおける１ブロックあたりの必要な記憶領域のサイズを削減し、フラグバッファおよびデータバッファを効率よく使用することができる。
【００２５】
すなわち、ブロック内の末尾には通常は通常ゼロの成分値が連続するので、ブロック末尾に連続するゼロの成分値と同数のフラグを保持する領域を節約することができ、フラグバッファおよびデータバッファの領域を効率よく利用することができる。
【００２６】
また、ブロック末尾に連続するゼロの成分値と同数のフラグの書込みおよび読出し回数を削減するので、消費電力を低減することができる。
【００２７】
ここで、前記特定の値はゼロであり、前記可変長復号化部は、さらに前記符号化データからの第１パラメータおよび第２パラメータのうち少なくとも１つを検出し、前記第１パラメータは、ブロック内の当該パラメータ以降の成分値が前記最終の成分値であることを示すＥＯＢ符号であり、前記第２パラメータは、ブロック内に含まれる前記特定の値以外の成分値の個数を示す第１の符号と、ブロックにおいて前記最終の成分値より前に含まれる前記特定の値の成分値の個数を表す第２符号とを含み、前記最終判定部は、前記可変長復号化部により検出された第１パラメータおよび第２パラメータの少なくとも１つに基づいて、復号された成分値が前記最終の成分値であるか否かを判定するようにしてもよい。この構成によれば、最終判定部は符号化データに含まれる第１パラメータ（ＥＯＢ符号）または第２パラメータにより前記最終の成分値を検出するので、異なる規格に準拠して符号化された複数種類の符号化データに対応することができる。
【００２８】
ここで、前記可変長復号化装置は、さらに、外部から設定される任意の判定用データを記録し、当該判定用データを前記特定の値として前記データ判定部に供給する判定データ記憶部を備えていてもよい。この構成によれば、特定の値（判定用データ）は、任意に設定することが可能である。例えば、特定の値は、典型的には"０"であるが、"０"を表すコードであってもよいし、"０"以外の任意の値であってもよいし、"０"以外の任意の値を表すコードであってもよい。
【００２９】
ここで、前記判定データ記憶部に設定される判定用データは、前記符号化データに対応する符号化規格がＭＰＥＧ２、Ｈ．２６４またはＶＣ−１である場合、ゼロ値であってもよい。
【００３０】
ここで、前記フラグバッファに設定される各フラグは、データ判定部によって対応する成分値が前記特定の値であると判定された場合は"０"を、前記特定の値以外であると判定された場合は"１"を示す構成としてもよい。この構成によれば、フラグ"０"はブロック中の存在確率が高い成分値に対応するので、フラグバッファを予め０クリアしておけば"０"を設定する処理を削減し、さらに低消費電力を図ることができる。また、フラグが"１"の場合のみ、データバッファ制御部はデータバッファへの書込みおよび読出しの動作をすればよいので、フラグによりデータバッファへの書き込みおよび読み出しを容易に制御することができる。
【００３１】
ここで、前記符号化データに対応する符号化規格がＭＰＥＧ２もしくはＨ．２６４、ＶＣ−１である場合、前記フラグバッファに設定される各フラグは、データ判定部によって対応する成分値がゼロであると判定された場合は"０"を、ゼロ以外であると判定された場合は"１"を示す構成としてもよい。
【００３２】
ここで、前記フラグバッファ制御部は、さらに、前記最終の成分値に対応するフラグの次のフラグとして"０"を前記フラグバッファに設定してもよい。この構成によれば、最終の成分値に後続するブロック末尾までの連続するゼロ係数に対応する複数のフラグ（従来技術におけるブロック末尾の複数のフラグ）を、１ビットのフラグで代表することができ、明示的にフラグのビット数を圧縮することができる。
【００３３】
ここで、前記最終判定部は、前記第１パラメータおよび第２パラメータのどちらを用いて前記最終の成分値の判定を行うかを選択するようにしてもよい。
【００３４】
ここで、前記最終判定部は、前記符号化データに対応する符号化規格がＭＰＥＧもしくはＶＣ１である場合は前記第１パラメータを、符号化規格がＨ．２６４である場合は前記第２パラメータを選択するようにしてもよい。この構成によれば、符号化データの種類（どの規格に準拠して符号化されているか）に応じて、最終判定部の動作を切り換えることができる。
【００３５】
ここで、前記最終判定部は、復号された成分値が前記最終の成分値であると判定した場合に、前記フラグバッファ制御部に書き込み停止要求を通知し、前記フラグバッファ制御部は、前記最終判定部から出力される前記書き込み停止要求の通知を受けたとき、前記フラグバッファへのフラグの設定を停止するようにしてもよい。この構成によれば、前記最終の成分値より後の成分値に対応するフラグの設定を停止する処理を高速に行うことができる。
【００３６】
ここで、前記最終判定部は、さらに、前記選択部から出力された成分の個数が１ブロック内の前記最終の成分値までの個数に達したとき、前記フラグバッファ制御部に更新停止要求を通知し、前記フラグバッファ制御部は、前記最終判定部から読み出し停止要求が通知されたとき、当該ブロック内の前記最終の成分値より後の成分値の読み出しにおいて前記フラグバッファの読み出しポインタの更新を停止し、フラグとしてゼロをデータバッファ制御部に出力するようにしてもよい。この構成によれば、ブロック内の成分値の読み出し動作が、前記最終の成分値にまで完了したとき、前記最終の成分値より後の成分値から当該ブロックの末尾の成分値までフラグとして"０"を繰り返し出力する。これにより、フラグバッファおよびデータバッファの読み出し動作においても消費電力を低減することができる。
【００３７】
ここで、前記フラグバッファ制御部は前記ブロックに対応する符号化データの復号開始前または復号終了後に、フラグバッファの１ブロックに対応する領域をゼロに初期化してもよい。この構成によれば、フラグバッファを予め０クリアする初期化によって、ゼロの成分値毎に０を設定する処理を削減し、さらに低消費電力を図ることができる。
【００３８】
ここで、前記可変長復号装置は、さらに、前記データバッファの空き領域と前記フラグバッファの空き領域とを管理し、空き領域に応じて、前記可変長復号化部に対して復号停止要求または次ブロックの復号許可を出力する残量管理部を備える構成としてもよい。この構成によれば、前記フラグバッファは、前記最終の成分値の次の成分値からブロック末尾の成分値までの個数のフラグを保持しないので、その個数分の空き領域をフラグバッファおよびデータバッファに確保することができる。この空き領域を次ブロックのために有効に利用することができる。また、先行して次ブロックの可変長復号化処理を行うので、処理性能を向上させることができる。
【００３９】
ここで、前記残量管理部は、復号された成分が前記最終の成分値であると前記最終判定部によって判定されたとき、前記データバッファおよび前記フラグバッファに空き領域がある場合に、前記可変長復号化部に対して次ブロックの復号許可を出力するようにしてもよい。この構成によれば、上記の空き領域を次ブロックのために有効に利用することができる。また、先行して次ブロックの可変長復号化処理を行うので、処理性能を向上させることができる。
【００４０】
ここで、前記フラグバッファは、少なくとも６４個のフラグを保持する領域を有する構成としてもよい。
【００４１】
ここで、前記データバッファ制御部は、前記ブロックに対応する符号化データの復号開始前もしくは復号終了後に、データバッファ内の１ブロックに対応する領域をゼロ値に初期化するようにしてもよい。
【００４２】
ここで、前記データバッファの１ブロックに対応する領域は、６４個の成分値を保持可能な構成としてもよい。
【００４３】
ここで、前記バッファ残量管理部は、前記データバッファおよび前記フラグバッファの一方に空き領域がないとき、前記可変長復号化部に対して復号停止要求を出力するようにしてもよい。
【００４４】
また、本発明の他の可変長復号装置は、可変長符号を含む符号化データを、ブロックを構成する複数の成分値に復号する可変長復号化装置であって、前記符号化データから、ブロック内に含まれる非ゼロ係数の個数を示す第１の符号であるＴｏｔａｌＣｏｅｆｆと、ブロック内の最終の非ゼロ値係数より前に含まれるゼロ係数の個数を示す第２符号であるｔｏｔａｌｚｅｒｏと、非ゼロ係数の値を示す第３符号であるＬＥＶＥＬと、前記ＬＥＶＥＬの前のゼロ係数の連続個数を示す第４符号であるｒｕｎ＿ｂｅｆｏｒｅを検出および復号する可変長復号化部と、前記第１符号および前記第２符号に基づいて、ブロック内の非ゼロ係数のうちの最終の非ゼロ係数を判定する最終判定部と、ブロック内の先頭の係数から、前記最終判定部に判定された最終の非ゼロ係数までのそれぞれの係数に対応するフラグであって、対応する係数の値がゼロであるか非ゼロであるかを示すフラグを保持するフラグバッファと、復号された係数のうち、非ゼロ係数のみを保持するデータバッファと、復号された第１符号から第４符号に基づいて、ブロック内の先頭の係数から前記最終の非ゼロ係数までのそれぞれの係数について、非ゼロであるかゼロであるかを示すフラグを前記フラグバッファに設定し、前記最終の非ゼロ係数に対応するデータバッファのアドレスである最終アドレスを保持するフラグバッファ制御部と、フラグバッファに設定されたフラグに基づいて、非ゼロ係数のみを前記データバッファに書き込む制御と、前記データバッファから非ゼロの係数を読み出す制御とを行うデータバッファ制御部と、データバッファから読み出された係数およびゼロのうち一方を選択する選択部とを備え、前記フラグバッファ制御部は、フラグバッファに保持されたフラグおよび前記最終アドレスとに基づいて前記選択部の選択を制御する。
【００４５】
また、本発明のさらに他の可変長復号装置は、可変長符号を含む符号化データを、ブロックを構成する複数の成分値に復号する可変長復号化装置であって、前記符号化データから、ブロック内に含まれる非ゼロ係数のうち最終の非ゼロ係数を示す符号であるＥＯＢと、非ゼロ係数の値を示す符号であるＬＥＶＥＬと、非ゼロ係数の前に連続するゼロ係数の個数を示す符号であるＲＵＮとを検出および復号する可変長復号化部と、前記ＥＯＢに基づいて、ブロック内の非ゼロ係数のうちの最終の非ゼロ係数を判定する最終判定部と、ブロック内の先頭の係数から、前記最終判定部に判定された最終の非ゼロ係数までのそれぞれの係数に対応するフラグであって、対応する係数の値がゼロであるか非ゼロであるかを示すフラグを保持するフラグバッファと、復号された係数のうち、非ゼロ係数のみを保持するデータバッファと、前記ＬＥＶＥＬおよび前記ＲＵＮに基づいて、ブロック内の先頭の係数から前記最終の非ゼロ係数までのそれぞれの係数について、非ゼロであるかゼロであるかを示すフラグを前記フラグバッファに設定し、前記最終の非ゼロ係数に対応するデータバッファのアドレスである最終アドレスを保持するフラグバッファ制御部と、フラグバッファに設定されたフラグに基づいて、非ゼロ係数のみを前記データバッファに書き込む制御と、前記データバッファから非ゼロの係数を読み出す制御とを行うデータバッファ制御部と、データバッファから読み出された係数およびゼロのうち一方を選択する選択部とを備え、前記フラグバッファ制御部は、フラグバッファに保持されたフラグおよび前記最終アドレスとに基づいて前記選択部の選択を制御する。
【発明の効果】
【００４６】
本発明の可変長復号化装置によれば、フラグバッファおよびデータバッファにおける１ブロックあたりの必要な記憶領域のサイズを削減し、フラグバッファおよびデータバッファを効率よく使用することができる。また、フラグの書込みおよび読出し回数を削減するので、消費電力を低減することができる。さらに、可変長復号の処理性能を向上させることができる。
【図面の簡単な説明】
【００４７】
【図１】図１は、本発明の実施の形態１における可変長復号化装置の構成を示す図である。
【図２Ａ】図２Ａは、ＭＰＥＧ２でのブロック内の係数の配置を示す図である。
【図２Ｂ】図２Ｂは、ＭＰＥＧ２でのブロック内の係数に対応するアドレスを示す図である。
【図３】図３は、従来技術における情報レジスタと、本実施形態におけるデータバッファおよびフラグバッファのデータ例を示す図である。
【図４Ａ】図４Ａは、フラグバッファのアドレスであるＦＷＰおよびＦＲＰとの関係を示す図である。
【図４Ｂ】図４Ｂは、ＦＲＰの更新停止および再開を制御する回路例を示す図である。
【図５】図５は、フラグバッファの空き領域を活用して先行して次ブロックの復号した場合のフラグバッファのデータ例を示す図である。
【図６】図６は、マクロブロック単位で復号化処理をした場合のフラグバッファのデータ例を示す図である。
【図７】図７は、次の世代のマクロブロックを先行して復号した場合のフラグバッファのデータ例を示す図である。
【図８】図８は、本発明の実施の形態３における可変長復号化装置の構成を示す図である。
【図９】図９は、４×４係数からなるブロックの一例を示す図である。
【図１０】図１０は、４×４ブロックをジグザグスキャンの逆順に並べたデータ例を示す図である。
【図１１】図１１は、復号結果の一例を示す図である。
【図１２】図１２は、４×４ブロックの復号処理を説明するための図である。
【図１３Ａ】図１３Ａは、４×４ブロックの復号処理におけるフラグバッファ、ＦＷＰおよびＦＲＰを示す図である。
【図１３Ｂ】図１３Ｂは、ＦＷＰの更新および再開を制御する回路例を示す図である。
【図１４】図１４は、８×８係数からなるブロックの説明図である。
【図１５】図１５は、本発明の実施の形態５における可変長復号化装置の構成を示す図である。
【図１６】図１６は、フラグバッファのアドレスであるＦＷＰおよびＦＲＰとの関係を示す図である。
【図１７】図１７は、従来技術における代表的な画像圧縮処理フローを示す図である。
【図１８】図１８は、直交変換されたブロックの周波数成分を示す図である。
【図１９】図１９は、ジグザグスキャンを示す図である。
【図２０】図２０は、従来技術における代表的な画像復号化処理フローを示す図である。
【図２１】図２１は、従来技術における可変長復号化部の構成を示す図である。
【図２２】図２２は、従来技術におけるランレングス符号の復号回路を示す図である。
【図２３】図２３は、従来技術におけるＨ．２６４／ＡＶＣに対応したランレングス符号の復号回路を示す図である。
【発明を実施するための形態】
【００４８】
（実施の形態１）
以下、本発明の実施の形態１について、図面を参照しながら説明する。
【００４９】
図１は、本発明の実施の形態１における可変長復号化装置の構成を示す図である。なお、本実施の形態においては、１ブロックが８×８個で構成されている場合で且つ、ＭＰＥＧ２の符号化処理を行う場合について説明する。
【００５０】
図１において、可変長復号化装置は、可変長復号化部１００、データ判定部１０１、判定データ記憶部１０２、データバッファ１０３、フラグバッファ１０４、データバッファ制御部１０５、最終有効データ判定部１０６、フラグバッファ制御部１０７、バッファ残量管理部１０８、選択部１０９及び後段処理部１１０を備える。
【００５１】
可変長復号化部１００は、符号化データを成分値（すなわち係数）に復号する。
【００５２】
データ判定部１０１は、復号された成分値が特定の値であるか否かを判定する。ここで、特定の値は、典型的には"０"であるが、"０"を表すコードであってもよいし、"０"以外の任意の値であってもよいし、"０"以外の任意の値を表すコードであってもよい。
【００５３】
判定データ記憶部１０２は、特定の値を示す判定データを記憶し、データ判定部１０１に出力する。
【００５４】
データバッファ１０３は、復号された成分値のうち、データ判定部１０１によって特定の値でないと判定された成分値（例えば非ゼロ係数）のみを保持するデータバッファである。
【００５５】
最終有効データ判定部１０６は、復号された成分値が、ブロック内の特定の値以外の成分値のうちのブロック内の最終の成分値であるか否かを判定する。つまり、復号された成分値が、ブロック内の最後の非ゼロ係数であるか否かを判定する。
【００５６】
フラグバッファ１０４は、ブロックの先頭の成分値から、最終有効データ判定部１０６によって最終の成分値であると判定された成分値まで、のそれぞれに対応するフラグであって、対応する成分値が特定の値でないか特定の値であるかを示すフラグを保持するフラグバッファである。例えば、フラグ"０"は特定の値の成分値（ゼロ係数）に、フラグ"１"は、特定の値以外の成分値（非ゼロ係数）に対応する。
【００５７】
フラグバッファ制御部１０７は、データ判定部１０１による判定結果のうち、ブロックの先頭の成分値から最終有効データ判定部１０６によって最終の成分値であると判定された成分値までに対応する判定結果のそれぞれを、フラグとしてフラグバッファに設定する。さらに、フラグバッファ制御部１０７は、最終の成分値に対応するフラグの次のフラグとして"０"を設定してもよい。このフラグ"０"は、最終の成分値に後続するブロック末尾までの連続するゼロ係数に対応する複数のフラグの代表として設定される１ビットのフラグである。さらに、フラグバッファ制御部１０７は、フラグバッファ１０４にフラグを書き込むためのアドレスであるフラグバッファライトポインタＦＷＰを保持するレジスタと、フラグバッファ１０４からフラグを読み出すためのアドレスであるフラグバッファリードポインタＦＲＰを保持するレジスタとを有する。また、フラグバッファ制御部１０７は、最終の成分値であると判定された成分値に対応するデータバッファのアドレスである最終アドレスを保持するレジスタを有する。また、フラグバッファ制御部１０７は、フラグバッファ１０４に保持されたフラグおよび最終アドレスに基づいて選択部１０９の選択を制御する。
【００５８】
データバッファ制御部１０５は、フラグバッファ１０４に設定されたフラグに基づいて、データ判定部１０１によって特定の値でないと判定された成分値のみをデータバッファ１０３に書き込む制御と、データバッファ１０３から特定の値でない成分値を読み出す制御とを行う。この制御のために、データバッファ制御部１０５は、データバッファ１０３に特定値以外の成分値（非ゼロ係数）を書き込むためのアドレスであるデータバッファライトポインタＤＷＰを保持するレジスタと、データバッファ１０３から非ゼロ係数を読み出すためのアドレスであるデータバッファリードポインタＤＲＰを保持するレジスタとを有する。
【００５９】
バッファ残量管理部１０８はフラグバッファ１０４及びデータバッファ１０３の容量管理を行う。
【００６０】
選択部１０９は、データバッファ１０３から読み出された成分値および判定データ記憶部１０２に記憶された判定データ（例えばゼロ）のうち一方を選択して、選択結果を後段処理部１１０からの読み出し要求への応答として出力する。
【００６１】
後段処理部１１０は、選択部１０９からの復号された係数を後段処理する後段処理部である。
【００６２】
まず、可変長復号化部１００に入力された符号化データは、可変長復号化処理をされ図１９に示されるジグザグスキャン順でデータ判定部１０１に出力される。このとき、上記で示したように直交変換部により周波数領域に変換されているため出力される係数の多数がゼロ値である。図２Ａは、ＭＰＥＧ２でのブロック内の係数の配置と係数の一例とを示す図である。図２Ｂは、ＭＰＥＧ２でのブロック内の係数に対応するアドレスの一例を示す図である。図２Ａでは、丸印の１２の値をもつ係数より後ろの係数が全てゼロ値になっている。
【００６３】
上記に示す特徴により、判定データ記憶部１０２にはゼロ値を設定する。前記データ判定部１０１に出力された成分値（つまり、復号化された係数であり、以下単に係数と呼ぶ。）はゼロ値と逐次比較され結果を前記フラグバッファ１０４に通知する。判定結果が設定値と等しければ、つまり係数がゼロ値であれば前記フラグバッファに"０"を格納し、ゼロ値でなければ"１"を格納する。
【００６４】
前記フラグバッファに格納される値が"１"である場合、前記フラグバッファより前記データバッファ制御部１０５に対して前記データバッファ１０３の書き込みポインタ位置（以下、ＤＷＰ）の更新を通知し、その際の非ゼロ値を前記データバッファに格納する。上記の動作により前記データバッファには非ゼロ値のみが登録される。
【００６５】
上記処理は１ブロック単位、つまり８×８の６４個の係数からなるブロック単位で行われる。ＭＰＥＧ２の符号化規格では図２Ａ、図２Ｂで示すように、上記６４個の係数のうちある係数以降は全てゼロ値であるという情報を別途保持している。これをＥＯＢ（Ｅｎｄ  Ｏｆ  Ｂｌｏｃｋ）と呼ぶ。前記ＥＯＢを可変長符号化処理中に検出した場合、前記最終有効データ判定部に対して出力する。前記最終有効データ判定部は前記ＥＯＢを用いて、前記フラグバッファ制御部に対してＤＷＰの値を保持するとともに、ＤＷＰの更新を停止する制御を行う。
【００６６】
図３は、データバッファおよびフラグバッファの保持されたデータ（このデータは図２Ａのブロックに対応する。）の一例を示す図である。同図では、従来技術の情報レジスタのデータ例も示している。同図のように、データバッファ１０３は、非ゼロ係数のみを格納する。フラグバッファ１０４は、ブロック内の先頭の係数から、最終有効データ判定部１０６に判定された最終の非ゼロ係数（同図では１２の値をもつ係数）までのそれぞれの係数に対応するフラグを保持する。各フラグは、対応する係数の値がゼロであるか非ゼロであるかを示す。同図では、フラグが"１"のとき非ゼロであることを、"０"のときゼロであることを示す。さらに、フラグバッファ１０４は、最終の非ゼロ係数に対応するフラグの次のフラグとして"０"を保持する。最終の非ゼロ係数に対応するフラグの次のフラグ"０"は、４６個のフラグを代表するフラグであり、言い換えれば、４６個のフラグが１個のフラグに圧縮されている。
【００６７】
上記制御により通常は全６４個分のフラグバッファの個数が必要であったものを、ＥＯＢを検出するまでの係数の個数分で対応することが可能となる。また、前記データバッファに関してもＥＯＢを検出するまでの非ゼロ係数のみを格納すればよい。
【００６８】
次に、前記データバッファに登録された係数を前記後段処理部へ出力する。後段処理部より前記フラグバッファ制御部に読み出し要求がだされた場合、フラグバッファ制御部はフラグバッファに対して読み出しポインタ位置（以下、ＦＲＰ）の更新を通知し、その際フラグバッファのＦＲＰ位置の値が"０"であった場合は、前記データバッファ制御部に対してデータバッファの読み出しポインタ位置（以下、ＤＲＰ）の更新停止を要求し、判定データ記憶部に格納されているゼロ値を出力するとともに前記選択部の出力を判定データ記憶部の出力に切り替え、前記後段処理部にデータを出力する。ＦＲＰ位置の値が"１"であった場合は、ＤＲＰを更新させデータバッファに格納されている係数を出力するとともに、前記選択部の出力をデータバッファの出力に切り替え、前記後段処理部にデータを出力する。
【００６９】
更に、前記後段処理部の読み出し要求は、前記最終有効データ判定部に対しても入力され読み出し回数をカウントする。読み出し回数と前記ＥＯＢの値もしくはＦＷＰの値とを比較し等しい場合は、前記後段処理部の読み出し要求がある場合でも前記フラグバッファのＦＲＰは更新せずにＦＲＰは常に同じ位置を読み出す。上記処理は、例えば最終有効データ判定部１０６内に図４Ｂに示すような回路を備えることにより実現される。これにより、ＥＯＢ以降のフラグバッファのＷＲＰ更新がなされていなかった部分を連続して読み出すことを可能にする。つまり、ＥＯＢ以降のゼロ値は、フラグバッファに登録される係数１個分の情報に圧縮されたことと等価となり見かけ上フラグバッファを削減した効果を得られる。
【００７０】
図４Ａは、フラグバッファ１０４のアドレスであるＦＷＰおよびＦＲＰとの関係を示す図である。同図のように、フラグバッファ制御部１０７は、ＦＷＰおよびＦＲＰを更新しながらフラグをフラグバッファ１０４に設定する。さらに、フラグバッファ制御部１０７は、ＥＯＢが検出されたとき、最終の非ゼロ係数に対応するフラグの次のアドレスにＦＷＰを更新し、圧縮されたフラグ"０"を設定する。
【００７１】
このように、ＥＯＢ以降の係数がフラグバッファ上で圧縮された場合、通常６４個分の領域を必要とするフラグバッファが６４−Ｎ個分未使用になる。その際、前記バッファ残量管理部は、フラグバッファの残量を確認し前記可変長復号化部に対して次のブロックの復号化を要求する。上記処理により、通常フラグバッファが係数６４個分を格納するまで次のブロックの処理を実施できなかったものを、前記後段処理部とは独立して先行的に処理することが可能となり、可変長復号化処理の処理性能向上の効果を得られる（図５）。上記処理を実現する場合、可変長復号化部は、ＥＯＢ以降の係数の出力を行わない機能も有する。図５に、先行して次のブロックを処理した場合のフラグバッファ１０４のデータ例を示す。同図上段は、Ｙ０ブロックの復号完了時にデータ例を示す。同図下段は、Ｙ０ブロックの復号後に、次のＹ１ブロックと次の次のＹ２ブロックとを先行して復号しているデータ例を示す。
【００７２】
更に、ブロック単位ではなくブロックがＹ０、Ｙ１、Ｙ２、Ｙ３、Ｃｂ、Ｃｒの６個で構成されたマクロブロック（以下、ＭＢ）単位で上記処理を実現する（図６、図７）。動画像はＭＢの塊を複数で構成される。つまり動画像全体の処理性能向上を実現する場合は、ＭＢ単位での処理性能を向上させることが必須となる。図６、図７では、図５で示すフラグバッファの有効利用をＭＢ単位にまで発展させた場合である。ＥＯＢまでの係数が少ないブロック／マクロブロックが多く存在することが考えられる場合などフラグバッファの領域が確保できる可能な限り可変長復号化処理の先行処理を実現できる本実施の形態は、更に可変長復号化処理性能を向上させることが可能となる。
【００７３】
（実施の形態２）
以下、本発明の実施の形態２について図面を参照しながら説明する。本発明の実施の形態２の構成図は、本発明の実施の形態１と同じ図１を用いているため説明を省略する。
【００７４】
実施の形態２において、前記最終有効データ判定部に通知する情報がＥＯＢでなくＴｏｔａｌＣｏｅｆｆとｔｏｔａｌｚｅｒｏｓである点において実施の形態１と異なる可変長復号化装置であって、かかる構成によれば、ＴｏｔａｌＣｏｅｆｆとｔｏｔａｌｚｅｒｏｓを加算した値から、全ブロック数を減算することによって、ＥＯＢと同様に以降ゼロ値が連続する値を得ることが可能であり、実施の形態１と同様の効果を得られる。
【００７５】
（実施の形態３）
以下、本発明の実施の形態３について、図面を参照しながら説明する。
【００７６】
図８は、本発明の実施の形態３における可変長復号化装置の構成図である。なお、本実施の形態においては、１ブロックが４×４個で構成されている場合で且つ、Ｈ．２６４／ＡＶＣの符号化処理を行う場合について説明する。
【００７７】
図８において、可変長復号化装置は、可変長復号化部２００、データバッファ２０３、フラグバッファ２０４、データバッファ制御部２０５、最終有効データ判定部２０６、フラグバッファ制御部２０７、バッファ残量管理部２０８、選択部２０９及び後段処理部２１０を備える。
【００７８】
可変長復号化部２００は、符号化データから、ブロック内に含まれる非ゼロ係数の個数を示す第１の符号であるＴｏｔａｌＣｏｅｆｆと、ブロック内の最終の非ゼロ値係数より前に含まれるゼロ係数の個数を示す第２符号であるｔｏｔａｌｚｅｒｏと、非ゼロ係数の値を示す第３符号であるＬＥＶＥＬと、ＬＥＶＥＬの前のゼロ係数の連続個数を示す第４符号であるｒｕｎ＿ｂｅｆｏｒｅを検出および復号する。
【００７９】
データバッファ２０３は、復号された係数のうち、非ゼロ係数のみを保持する。
【００８０】
フラグバッファ２０４は、ブロック内の先頭の係数から、最終有効データ判定部２０６に判定された最終の非ゼロ係数までのそれぞれの係数に対応するフラグであって、対応する係数の値がゼロであるか非ゼロであるかを示すフラグを保持する。
【００８１】
データバッファ制御部２０５は、フラグバッファ２０４に設定されたフラグに基づいて、非ゼロ係数のみをデータバッファ２０３に書き込む制御と、データバッファ２０３から非ゼロの係数を読み出す制御とを行う。
【００８２】
最終有効データ判定部２０６は、第１符号および第２符号に基づいて、ブロック内の非ゼロ係数のうちの最終の非ゼロ係数を判定する。すなわち、最終有効データ判定部２０６はＴｏｔａｌＣｏｅｆｆとｔｏｔａｌｚｅｒｏｓとを用いて１ブロック（４×４ブロック）の最終の非ゼロ係数の位置を検索し、フラグバッファ制御部２０７に通知する。
【００８３】
フラグバッファ制御部２０７は、復号された第１符号から第４符号に基づいて、ブロック内の先頭の係数から最終の非ゼロ係数までのそれぞれの係数について、非ゼロであるかゼロであるかを示すフラグをフラグバッファ２０４に設定し、また、最終の非ゼロ係数に対応するデータバッファのアドレスである最終アドレスを保持する。また、フラグバッファ制御部２０７は、フラグバッファ２０４に保持されたフラグおよび最終アドレスに基づいて選択部２０９の選択を制御する。
【００８４】
バッファ残量管理部２０８はフラグバッファ及びデータバッファの容量管理を行う。
【００８５】
選択部２０９は、データバッファ２０３から読み出された係数およびゼロのうち一方を選択し、選択結果を後段処理部１１０からの読み出し要求への応答として出力する。
【００８６】
後段処理部２１０は選択部２０９からの復号された係数を後段処理する。
【００８７】
まず、可変長復号化部２００は、非ゼロ係数の個数を表すＴｏｔａｌＣｏｅｆｆと、非ゼロ係数値の大きさを表すｌｅｖｅｌと、データスキャン方向において最後のｌｅｖｅｌより前のゼロ係数の個数を表すｔｏｔａｌｚｅｒｏｓと、データスキャン方向においてｌｅｖｅｌの前のゼロ係数の連続個数を表すｒｕｎ＿ｂｅｆｏｒｅとを順次復号する。
【００８８】
図９に順次復号された例を示す。復号化処理ではジグザグスキャンの逆順にデータが復号される。図１０は、図９の４×４ブロックデータをジグザグスキャンの逆順に並べたものである。図１１は、図８で示した一例の復号例である。
【００８９】
復号化の手順としては、１６個の係数のうちの非ゼロ係数（＋２３、−４、＋１１、＋８、−３、＋１、−１）の個数であるＴｏｔａｌＣｏｅｆｆ＝７が復号される。次に、非ゼロ係数の大きさを示すｌｅｖｅｌが、逆ジグザグスキャン順に、−１→＋１→−３→＋８→＋１１→−４→＋２３と、順次復号される。次に、ジグザグスキャン順の最後のｌｅｖｅｌ＝−１の前に存在するゼロ値の総個数ｔｏｔａｌｚｅｒｏｓ＝５が復号される。最後にｌｅｌｖｅの前に存在するゼロ値の個数ｒｕｎ＿ｂｅｆｏｒｅが逆ジグザグスキャン順に、１→２→１→１→０→０が順次復号される。
【００９０】
復号化データにおいて、
・ｌｅｖｅｌ＝−１の前に存在するゼロ値の個数は１である、
・ｌｅｖｅｌ＝＋１の前に存在するゼロ値の個数は２である、
・ｌｅｖｅｌ＝−３の前に存在するゼロ値の個数は１である、
・ｌｅｖｅｌ＝＋８の前に存在するゼロ値の個数は１である、
・ｌｅｖｅｌ＝＋１１の前に存在するゼロ値の個数は０（存在しない）である、
・ｌｅｖｅｌ＝−４の前に存在するゼロ値の個数は０である、
・ｌｅｖｅｌ＝＋２３の前に存在するゼロ値の個数は０である、
という結果が得られる。
【００９１】
この結果に基づいてｒｕｎ＿ｂｅｆｏｒｅは、逆ジグザグスキャン順に、１→２→１→１→０→０となる。
【００９２】
図１２を用いて処理の流れを説明する。
【００９３】
まず、ｌｅｖｅｌ値は非ゼロ値のみしか存在しないので、ゼロ値との比較の必要はなく連続でデータバッファに書き込む。
【００９４】
次に、ＴｏｔａｌＣｏｅｆｆ＝７とｔｏｔａｌｚｅｒｏｓ＝５の値が復号されるので上記２つの値を最終有効データ判定部に通知する。ブロックの構成数が１６個であることがわかっているので、１６−１２＝４がゼロ値の連続する回数である。Ｈ．２６４の場合は逆スキャン順でデータが復号されるのでフラグバッファの書き込みポインタＦＷＰの更新を係数４つ分停止する。
【００９５】
係数５つ目は必ずｌｅｖｅｌ値であることがわかっているので、ＦＷＰを１つ進めた位置のフラグバッファの値は"１"を設定する。この"１"に対応するｌｅｖｅｌが最初の係数である１である。
【００９６】
次に、ｒｕｎ＿ｂｅｆｏｒｅの値を使って（図１３Ａ、図１３Ｂ参照）、フラグバッファのＦＷＰをスキップし、スキップされた区間のフラグバッファには"０"を格納する。ｒｕｎ＿ｂｅｆｏｒｅは、データスキャン方向でＬＥＶＥＬの前のゼロ係数の連続個数を表すものである。つまり、ＦＷＰに"１"を格納した次のＦＷＰが"１"になるのはｒｕｎ＿ｂｅｆｏｒｅ分だけ進んだ先になるからである。
【００９７】
上記のように、最初のＦＷＰの停止とｒｕｎ＿ｂｅｆｏｒｅ値分のＦＷＰのスキップを最終有効データ判定部とフラグバッファ制御部を用いることで実現が可能となり、実施の形態１と同様、符号化係数４つ分のフラグバッファの見かけ上削減が実現可能となる。
【００９８】
次に、係数の読み出しでは、実施の形態１とは逆となり、ＴｏｔａｌＣｏｅｆｆ＝７とｔｏｔａｌｚｅｒｏｓ＝５の値から算出されたＦＷＰの更新停止期間係数４個分を読み出し開始時に停止させ、その後、連続してフラグバッファとデータバッファを用いて係数を読み出す。
【００９９】
更に、かかる構成によれば、Ｈ．２６４／ＡＶＣの符号化規格において、実施の形態１同様フラグバッファとデータバッファの効率化を実現でき、更に可変長復号化部の性能向上も実現できる。
【０１００】
（実施の形態４）
以下、本発明の実施の形態４について図面を参照しながら説明する。本発明の実施の形態４の構成図は、本発明の実施の形態３と同じ図２を用いているため説明を省略する。
【０１０１】
実施の形態４において、構成する１ブロックが４×４でなく８×８である点が実施の形態３と異なる可変長復号化装置である。かかる構成によれば、図１４で示すように８×８を構成するブロックは、可変長復号化処理時は４×４単位で処理されデータバッファに出力される際にスキャン順に出力され、ブロック構成を変更するため４×４単位で高周波成分がゼロ値であった場合には、８×８ブロック構成になってもゼロ値を多数含むため、実施の形態３と同様の効果を得られる。
【０１０２】
（実施の形態５）
以下、本発明の実施の形態５について、図面を参照しながら説明する。
【０１０３】
図１５は請求項２０に示すものであり、本発明の実施の形態５における可変長復号化装置の構成図である。なお、本実施の形態においては、１ブロックが８×８個で構成されている場合で且つ、ＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４、ＶＣ−１の符号化処理を行う場合について説明する。
【０１０４】
図１５において、可変長復号化装置は、可変長復号化部３００、データバッファ３０３、フラグバッファ３０４、データバッファ制御部３０５、最終有効データ判定部３０６、フラグバッファ制御部３０７、バッファ残量管理部３０８、選択部３０９および後段処理部３１０を備える。
【０１０５】
可変長復号化部３００は、符号化データから、ブロック内に含まれる非ゼロ係数のうち最終の非ゼロ係数を示す符号であるＥＯＢと、非ゼロ係数の値を示す符号であるＬＥＶＥＬと、非ゼロ係数の前に連続するゼロ係数の個数を示す符号であるＲＵＮとを検出および復号する。
【０１０６】
最終有効データ判定部３０６は、ＥＯＢに基づいて、ブロック内の非ゼロ係数のうちの最終の非ゼロ係数を判定する。
【０１０７】
データバッファ３０３は、復号された係数のうち、非ゼロ係数のみを保持する。
【０１０８】
フラグバッファ３０４は、ブロック内の先頭の係数から、最終有効データ判定部３０６に判定された最終の非ゼロ係数までのそれぞれの係数に対応するフラグであって、対応する係数の値がゼロであるか非ゼロであるかを示すフラグを保持する。
【０１０９】
フラグバッファ制御部３０７は、ＬＥＶＥＬおよびＲＵＮに基づいて、ブロック内の先頭の係数から最終の非ゼロ係数までのそれぞれの係数について、非ゼロであるかゼロであるかを示すフラグをフラグバッファ３０４に設定し、最終の非ゼロ係数に対応するデータバッファのアドレスである最終アドレスを保持する。また、フラグバッファ制御部３０７は、フラグバッファに保持されたフラグおよび最終アドレスに基づいて選択部３０９の選択を制御する。
【０１１０】
データバッファ制御部３０５は、フラグバッファ３０４に設定されたフラグに基づいて、非ゼロ係数のみをデータバッファ３０３に書き込む制御と、データバッファ３０３から非ゼロの係数を読み出す制御とを行う。
【０１１１】
バッファ残量管理部３０８はフラグバッファ及びデータバッファの容量管理を行う。
【０１１２】
選択部３０９は、データバッファから読み出された係数およびゼロのうち一方を選択する。
【０１１３】
後段処理部３１０は選択部３０９からの復号された係数を後段処理する。
【０１１４】
実施の形態５において、可変長復号された係数を逐次判定値と比較し、比較結果をフラグバッファおよびデータバッファに格納するのではなく、連続するゼロ値の値によってフラグバッファを更新する点において実施の形態１と異なる可変長復号化装置である。
【０１１５】
本実施の形態の可変長復号化部は、ゼロ値の連続する個数ＲＵＮと非ゼロ値ＬＥＶＥＬを復号するものであり、上記ＲＵＮの値を前記フラグバッファ制御部に通知することで図１６に示すようにフラグバッファのＦＷＰをＲＵＮの値分スキップさせ、スキップされた区間の符号化係数はゼロ値となり、その区間はフラグバッファを"０"を格納する。更に、スキップした先のフラグバッファに"１"を書き込み上記フラグバッファに対応するＬＥＶＥＬ値がデータバッファに格納される。
【０１１６】
また、最終有効データの判定は、実施の形態１同様ＥＯＢを用いて行いＥＯＢが検出された場合はＦＷＰとＦＲＰはゼロ値が連続する期間フラグバッファは同じ部分を参照し、フラグバッファの見かけ上の削減を実現する。
【０１１７】
かかる構成によれば、符号化規格を限定した場合において、前記記載のデータ判定部や判定データ記憶部を使用せずに実施の形態１と同様の効果を実現することが可能である。
【０１１８】
（実施の形態６）
実施の形態６に関しては、上記に示す実施の形態１から実施の形態５までに共通する部分に関することであるため詳細な説明は省略する。全実施の形態に記載されているフラグバッファは判定結果が判定値と等しい場合かもしくは、ゼロ値である場合、ないしは、ｒｕｎ＿ｂｅｆｏｒｅ、ＲＵＮ値によってポインタがスキップすることによるフラグへの"０"を格納する処理を割愛するために、１ブロックの読み出し終了時に対象のフラグバッファを全て"０"に更新する初期化処理を行うことも可能である。
【０１１９】
かかる構成によれば、フラグバッファに"０"を格納する処理を省略することで更に可変長復号化処理の処理性能向上を実現できる。
【産業上の利用可能性】
【０１２０】
本発明にかかる可変調復号化装置は、ＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４、Ｈ．２６４／ＡＶＣ、ＶＣ−１の動画像符号化規格の可変長復号化処理の面積削減と処理性能向上を可能とするため動画像符号化などの画像符号化の分野において有用である。
【符号の説明】
【０１２１】
１０  直交変換処理
１１  量子化処理
１２  可変長符号化処理
２０  可変長復号処理
２１  逆量子化処理
２２  逆直交変換処理
１００  可変長復号化部
１０１  データ判定部
１０２  判定データ記憶部
１０３  データバッファ
１０４  フラグバッファ
１０５  データバッファ制御部
１０６  最終有効データ判定部
１０７  フラグバッファ制御部
１０８  バッファ残量管理部
１０９  選択部
１１０  後段処理部
２００  可変長復号化部
２０３  データバッファ
２０４  フラグバッファ
２０５  データバッファ制御部
２０６  最終有効データ判定部
２０７  フラグバッファ制御部
２０８  バッファ残量管理部
２０９  選択部
２１０  後段処理部
３００  可変長復号化部
３０３  データバッファ
３０４  フラグバッファ
３０５  データバッファ制御部
３０６  最終有効データ判定部
３０７  フラグバッファ制御部
３０８  バッファ残量管理部
３０９  選択部
３１０  後段処理部
４００  入力部
４０１  可変長復号部
４０２  書き込み制御部
４０３  データ選択部
４０４  読み出し制御部
４０５  データバッファ
４０６  後段処理部
５００  入力部
５０１  可変長復号化手段
５０２  アドレス加算手段
５０３  書き込み制御手段
５０４  読み出し制御手段
５０５  データ選択手段
５０６  後段処理手段
５０７  出力手段
５０８  データバッファ
５０９  情報レジスタ
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
可変長符号を含む符号化データを、ブロックを構成する複数の成分値に復号する可変長復号化装置であって、
前記符号化データを前記成分値に復号する可変長復号化部と、
復号された成分値が特定の値であるか否かを判定するデータ判定部と、
復号された成分値のうち、前記データ判定部によって特定の値でないと判定された成分値のみを保持するデータバッファと、
復号された成分値が、ブロック内の前記特定の値以外の成分値のうちのブロック内の最終の成分値であるか否かを判定する最終判定部と、
ブロックの先頭の成分値から前記最終判定部によって前記最終の成分値であると判定された成分値までのそれぞれに対応するフラグであって、対応する成分値が前記特定の値でないか特定の値であるかを示すフラグを保持するフラグバッファと、
前記データ判定部による判定結果のうち、ブロックの先頭の成分値から前記最終判定部によって前記最終の成分値であると判定された成分値までに対応する判定結果のそれぞれを、前記フラグとして前記フラグバッファに設定し、前記最終の成分値であると判定された成分値に対応するデータバッファのアドレスである最終アドレスを保持するフラグバッファ制御部と、
フラグバッファに設定されたフラグに基づいて、前記データ判定部によって前記特定の値でないと判定された成分値のみを前記データバッファに書き込む制御と、前記データバッファから前記特定の値でない成分値を読み出す制御とを行うデータバッファ制御部と、
データバッファから読み出された成分値およびゼロのうち一方を選択する選択部と
を備え、
前記フラグバッファ制御部は、前記フラグバッファに保持されたフラグおよび前記最終アドレスとに基づいて前記選択部の選択を制御する
可変長復号化装置。
【請求項２】
前記特定の値はゼロであり、
前記可変長復号化部は、さらに前記符号化データからの第１パラメータおよび第２パラメータのうち少なくとも１つを検出し、
前記第１パラメータは、ブロック内の当該パラメータ以降の成分値が前記最終の成分値であることを示すＥＯＢ符号であり、
前記第２パラメータは、ブロック内に含まれる前記特定の値以外の成分値の個数を示す第１の符号と、ブロックにおいて前記最終の成分値より前に含まれる前記特定の値の成分値の個数を表す第２符号とを含み、
前記最終判定部は、前記可変長復号化部により検出された第１パラメータおよび第２パラメータの少なくとも１つに基づいて、復号された成分値が前記最終の成分値であるか否かを判定する請求項１に記載の可変長復号化装置。
【請求項３】
さらに、外部から設定される任意の判定用データを記録し、当該判定用データを前記特定の値として前記データ判定部に供給する判定データ記憶部を備える請求項１に記載の可変長復号化装置。
【請求項４】
前記判定データ記憶部に設定される判定用データは、前記符号化データに対応する符号化規格がＭＰＥＧ２、Ｈ．２６４またはＶＣ−１である場合、ゼロ値である請求項３に記載の可変長復号化装置。
【請求項５】
前記フラグバッファに設定される各フラグは、データ判定部によって対応する成分値が前記特定の値であると判定された場合は"０"を、前記特定の値以外であると判定された場合は"１"を示す請求項１に記載の可変長復号化装置。
【請求項６】
前記符号化データに対応する符号化規格がＭＰＥＧ２もしくはＨ．２６４、ＶＣ−１である場合、前記フラグバッファに設定される各フラグは、データ判定部によって対応する成分値がゼロであると判定された場合は"０"を、ゼロ以外であると判定された場合は"１"を示す請求項２に記載の可変長復号化装置。
【請求項７】
前記フラグバッファ制御部は、さらに、前記最終の成分値に対応するフラグの次のフラグとして"０"を前記フラグバッファに設定する請求項６に記載の可変長復号化装置。
【請求項８】
前記最終判定部は、前記第1パラメータおよび第２パラメータのどちらを用いて前記最終の成分値の判定を行うかを選択する請求項２に記載の可変長復号化装置。
【請求項９】
前記最終判定部は、前記符号化データに対応する符号化規格がＭＰＥＧもしくはＶＣ−１である場合は前記第１パラメータを、符号化規格がＨ．２６４である場合は前記第２パラメータを選択する請求項８に記載の可変長復号化装置。
【請求項１０】
前記最終判定部は、復号された成分値が前記最終の成分値であると判定した場合に、前記フラグバッファ制御部に書き込み停止要求を通知し、
前記フラグバッファ制御部は、前記最終判定部から出力される前記書き込み停止要求の通知を受けたとき、前記フラグバッファへのフラグの設定を停止する請求項１に記載の可変長復号化装置。
【請求項１１】
前記最終判定部は、さらに、前記選択部から出力された成分の個数が１ブロック内の前記最終の成分値までの個数に達したとき、前記フラグバッファ制御部に更新停止要求を通知し、
前記フラグバッファ制御部は、前記最終判定部から読み出し停止要求が通知されたとき、当該ブロック内の前記最終の成分値より後の成分値の読み出しにおいて前記フラグバッファの読み出しポインタの更新を停止し、フラグとしてゼロをデータバッファ制御部に出力する請求項１に記載の可変長復号化装置。
【請求項１２】
前記フラグバッファ制御部は前記ブロックに対応する符号化データの復号開始前または復号終了後に、フラグバッファの１ブロックに対応する領域をゼロに初期化する請求項１に記載の可変長復号化装置。
【請求項１３】
さらに、前記データバッファの空き領域と前記フラグバッファの空き領域とを管理し、空き領域に応じて、前記可変長復号化部に対して復号停止要求または次ブロックの復号許可を出力する残量管理部を備える請求項１に記載の可変長復号化装置。
【請求項１４】
前記残量管理部は、復号された成分が前記最終の成分値であると前記最終判定部によって判定されたとき、前記データバッファおよび前記フラグバッファに空き領域がある場合に、前記可変長復号化部に対して次ブロックの復号許可を出力する請求項１３に記載の可変長復号化装置。
【請求項１５】
前記フラグバッファは、少なくとも６４個のフラグを保持する領域を有する請求項１３に記載の可変長復号化装置。
【請求項１６】
前記データバッファ制御部は、前記ブロックに対応する符号化データの復号開始前もしくは復号終了後に、データバッファ内の１ブロックに対応する領域をゼロ値に初期化する請求項１に記載の可変長復号化装置。
【請求項１７】
前記データバッファの１ブロックに対応する領域は、６４個の成分値を保持可能である請求項１５に記載の可変長復号化装置。
【請求項１８】
前記残量管理部は、前記データバッファおよび前記フラグバッファの一方に空き領域がないとき、前記可変長復号化部に対して復号停止要求を出力する請求項１３に記載の可変長復号化装置。
【請求項１９】
可変長符号を含む符号化データを、ブロックを構成する複数の成分値に復号する可変長復号化装置であって、
前記符号化データから、ブロック内に含まれる非ゼロ係数の個数を示す第１符号であるＴｏｔａｌＣｏｅｆｆと、ブロック内の最終の非ゼロ値係数より前に含まれるゼロ係数の個数を示す第２符号であるｔｏｔａｌｚｅｒｏと、非ゼロ係数の値を示す第３符号であるＬＥＶＥＬと、前記ＬＥＶＥＬの前のゼロ係数の連続個数を示す第４符号であるｒｕｎ＿ｂｅｆｏｒｅを検出および復号する可変長復号化部と、
前記第１符号および前記第２符号に基づいて、ブロック内の非ゼロ係数のうちの最終の非ゼロ係数を判定する最終判定部と、
ブロック内の先頭の係数から、前記最終判定部に判定された最終の非ゼロ係数までのそれぞれの係数に対応するフラグであって、対応する係数の値がゼロであるか非ゼロであるかを示すフラグを保持するフラグバッファと、
復号された係数のうち、非ゼロ係数のみを保持するデータバッファと、
復号された第１符号から第４符号に基づいて、ブロック内の先頭の係数から前記最終の非ゼロ係数までのそれぞれの係数について、非ゼロであるかゼロであるかを示すフラグを前記フラグバッファに設定し、前記最終の非ゼロ係数に対応するデータバッファのアドレスである最終アドレスを保持するフラグバッファ制御部と、
フラグバッファに設定されたフラグに基づいて、非ゼロ係数のみを前記データバッファに書き込む制御と、前記データバッファから非ゼロの係数を読み出す制御とを行うデータバッファ制御部と、
データバッファから読み出された係数およびゼロのうち一方を選択する選択部と
を備え、
前記フラグバッファ制御部は、フラグバッファに保持されたフラグおよび前記最終アドレスとに基づいて前記選択部の選択を制御する
可変長復号化装置。
【請求項２０】
可変長符号を含む符号化データを、ブロックを構成する複数の成分値に復号する可変長復号化装置であって、
前記符号化データから、ブロック内に含まれる非ゼロ係数のうち最終の非ゼロ係数を示す符号であるＥＯＢと、非ゼロ係数の値を示す符号であるＬＥＶＥＬと、非ゼロ係数の前に連続するゼロ係数の個数を示す符号であるＲＵＮとを検出および復号する可変長復号化部と、
前記ＥＯＢに基づいて、ブロック内の非ゼロ係数のうちの最終の非ゼロ係数を判定する最終判定部と、
ブロック内の先頭の係数から、前記最終判定部に判定された最終の非ゼロ係数までのそれぞれの係数に対応するフラグであって、対応する係数の値がゼロであるか非ゼロであるかを示すフラグを保持するフラグバッファと、
復号された係数のうち、非ゼロ係数のみを保持するデータバッファと、
前記ＬＥＶＥＬおよび前記ＲＵＮに基づいて、ブロック内の先頭の係数から前記最終の非ゼロ係数までのそれぞれの係数について、非ゼロであるかゼロであるかを示すフラグを前記フラグバッファに設定し、前記最終の非ゼロ係数に対応するデータバッファのアドレスである最終アドレスを保持するフラグバッファ制御部と、
フラグバッファに設定されたフラグに基づいて、非ゼロ係数のみを前記データバッファに書き込む制御と、前記データバッファから非ゼロの係数を読み出す制御とを行うデータバッファ制御部と、
データバッファから読み出された係数およびゼロのうち一方を選択する選択部と
を備え、
前記フラグバッファ制御部は、フラグバッファに保持されたフラグおよび前記最終アドレスに基づいて前記選択部の選択を制御する
可変長復号化装置。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2010095181.tif 000029
【図２Ａ】
2010095181.tif 000030
【図２Ｂ】
2010095181.tif 000031
【図３】
2010095181.tif 000032
【図４Ａ】
2010095181.tif 000033
【図４Ｂ】
2010095181.tif 000034
【図５】
2010095181.tif 000035
【図６】
2010095181.tif 000036
【図７】
2010095181.tif 000037
【図８】
2010095181.tif 000038
【図９】
2010095181.tif 000039
【図１０】
2010095181.tif 000040
【図１１】
2010095181.tif 000041
【図１２】
2010095181.tif 000042
【図１３Ａ】
2010095181.tif 000043
【図１３Ｂ】
2010095181.tif 000044
【図１４】
2010095181.tif 000045
【図１５】
2010095181.tif 000046
【図１６】
2010095181.tif 000047
【図１７】
2010095181.tif 000048
【図１８】
2010095181.tif 000049
【図１９】
2010095181.tif 000050
【図２０】
2010095181.tif 000051
【図２１】
2010095181.tif 000052
【図２２】
2010095181.tif 000053
【図２３】
2010095181.tif 000054
【国際調査報告】
2010095181.tif 000055
2010095181.tif 000056
2010095181.tif 000057
2010095181.tif 000058