(57)【要約】【課題】復号化部内の下位データ処理部の処理時間を短縮することで、全体的な処理効率を高めることが可能な画像復号化装置を提供する。【解決手段】画像復号化装置は、ビットストリーム解析部、ＶＬＣ復号化部１０、適応型スキャン部、係数逆予測部、逆量子化部、周波数逆変換部、及び色空間逆変換部とを備える。ＶＬＣ復号化部１０は、上位データの復号化処理、復号データの分配を実施する上位データ処理部１６と下位データの抽出、符号付き数値化処理を並列に実施する下位データ処理部２１、上位データと下位データを連結するデータ並列連結部１３を備え、前記下位データ処理部２１は、下位データ並列抽出部２２、下位データ並列符号有無判定部２３、下位データ分配部２５から構成される。【選択図】図２
2015065510.tif 000002
【特許請求の範囲】
【請求項１】
ｎ個の係数データを１つのブロック単位として符号化された画像圧縮データから、前記係数データの上位部分のデータである上位データを復号化する上位データ復号化部と、前記係数データの下位部分のデータである下位データを抽出する下位データ処理部と、前記上位データと前記下位データとを連結して、係数データを復元するデータ連結部とからなる復号化部と、
前記復号化部により復号化されたブロック単位の係数データを逆量子化する逆量子化部と、
前記逆量子化部により逆量子化されたブロック単位の係数データを周波数逆変換して画像データを生成する周波数逆変換部とを備えた画像復号化装置において、
前記下位データ処理部は、前記下位データと該下位データの正負を示すサインフラグの組の並びの取り得る全組み合せについて、ブロック単位で下位データの候補及びサインフラグの候補を並列的に抽出する下位データ並列抽出部と、
前記上位データと前記下位データの候補に基づいて、前記下位データに後続するサインフラグが存在するか否かを示す符号有無判定情報を並列的に生成する下位データ並列符号有無判定部と、
前記符号有無判定情報に基づき、前記下位データの候補及び前記サインフラグの候補の中から、ブロック単位のｎ組の下位データとサインフラグを並列的に選択し分配する下位データ分配部とを備えて構成されることを特徴とする画像復号化装置。
但し、前記ｎは２以上の整数である。
【請求項２】
前記下位データ処理部は、ブロック単位のそれぞれｎ個の下位データおよび上位データを、１つのサイクルでの処理数をｍ個として、１つのサイクル又は複数のサイクルの繰り返しで処理するように構成されていることを特徴とする請求項１記載の画像復号化装置。
但し、前記ｎは２以上の整数であり、前記ｍは２以上ｎ以下の整数であり、処理の繰り返しが、１つのサイクルで終了するものであるときは、ｍとｎは等しくなる。
【請求項３】
前記下位データ並列抽出部は、ｑビット長の下位データと、その下位データに後続して、存するときと存しないときのある１ビット長のサインフラグとを１つの組として、その組がｍ個連続して連接された下位データ群の中から、１〜ｍ番目までの下位データとサインフラグの取り得る組み合せについて、下位データの候補とサインフラグの候補の全てを並列的に抽出することを特徴とする請求項２記載の画像復号化装置。
但し、前記下位データに後続する前記サインフラグが存しない場合のサインフラグの候補には０か１のダミーの値を入れるものとし、前記ｎは２以上の整数であり、前記ｍは２以上ｎ以下の整数であり、前記ｑは１〜ｐの整数であり、前記ｐは１以上の整数である。
【請求項４】
前記下位データ並列符号有無判定部は、上位データがゼロで下位データが非ゼロであるときのみ、下位データに後続するサインデータが存するという条件を基に、一意的に確定される１番目の下位データと対応する上位データから、１番目の下位データに後続するサインフラグの有無を判定し、１番目のサインフラグの有無の判定により２番目の下位データの開始位置ずれを推定して、２番目の下位データの候補の中から２番目の下位データを判定し、判定した２番目の下位データと対応する上位データより、２番目の下位データに後続するサインフラグの有無を判定し、３番目の下位データについては、前番目までの下位データに後続するサインフラグが存した累計数により該番目の下位データの開始位置ずれを推定して、該番目の下位データの候補の中から該番目の下位データを判定し、判定した該番目の下位データと対応する上位データより、該番目の下位データに後続するサインフラグの有無を判定し、以降、同様に１〜ｍ番目まで、各番目の下位データに後続するサインフラグの有無を並列的に判定し、判定した１〜ｍ番目までの各番目の下位データに後続するサインフラグの有無の判定情報を符号有無判定情報として出力することを特徴とする請求項２記載の画像復号化装置。
但し、前記ｎは２以上の整数であり、前記ｍは２以上ｎ以下の整数である。
【請求項５】
前記下位データ分配部は、一意的に確定される１番目の下位データとサインフラグはそのまま選択し、１番目の下位データの符号有無判定情報により２番目の下位データの開始位置ずれを推定して、２番目の下位データの候補とサインフラグの候補の中から、２番目の下位データとサインフラグを選択し、３番目の下位データとサインフラグについては、前番目までの各下位データの符号有無判定情報の存在数の累計により該番目の下位データの開始位置ずれを推定して、該番目の下位データの候補とサインフラグの候補の中から、該番目の下位データとサインフラグを選択し、以降、同様に１〜ｍ番目まで、各番目の下位データとサインフラグを並列的に選択して、選択した１〜ｍ番目までの各番目の下位データとサインフラグを出力し分配することを特徴とする請求項２記載に画像復号化装置。
但し、サインフラグが存しないとされる場合のサインフラグには、０か１のダミーの値を入れるものとし、前記ｎは２以上の整数であり、前記ｍは２以上ｎ以下の整数である。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化データを伸長して復号化する画像復号化装置に関する。
【背景技術】
【０００２】
従来、通信における負担等の軽減を目的として、画像データを圧縮し、符号化する画像符号化装置があり、その逆処理である符号化した画像データを伸長し、元の画像に復元する画像復号化装置も知られている。そして、近年では、より高い圧縮率で圧縮可能な符号化の規格が提案されている（非特許文献１参照）。
【０００３】
前記規格に従った画像復号化装置の概略構成を図１１に示す。同図１１に示すように、この画像復号化装置１００は、ビットストリーム解析部１１０と、ＶＬＣ復号化部１２０と、適応型スキャン部１３０と、係数逆予測部１４０と、逆量子化部１５０と、周波数逆変換部１６０と、色空間逆変換部１７０とからなる。尚、前記ＶＬＣ復号化部１２０の名称中のＶＬＣは、Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇの略称で可変長符号化方式のことである。
【０００４】
前記ビットストリーム解析部１１０は、入力されたビットストリームを解析し、画像情報を抽出するとともに、符号化された画像データを分離し、前記ＶＬＣ復号化部１２０に入力する。
【０００５】
前記符号化された画像データは、画像の最小単位である画素（ピクセル）の内、１６画素（水平方向）×１６画素（垂直方向）の２５６画素からなる画素領域をマクロブロックとし、そのマクロブロックを水平方向，垂直方向にそれぞれ４分割した各４×４画素（１６画素）のブロックに分割して、圧縮時に周波数変換された周波数帯域の高いものから、第１階層データ（１６ブロックのＨＰ係数）、第２階層データ（１ブロックのＬＰ係数）及び第３階層データ（１画素のＤＣ係数）に分離して構成されている。
【０００６】
尚、第１階層データは、ＨＰ（ハイパス）係数と呼ばれ、各１６個のブロックの４×４画素の左上の画素を除く１５画素に当たり、第２階層データは、ＬＰ（ローパス）係数と呼ばれ、第１階層データの左上のブロックを除く各１５個のブロックの４×４画素の左上の画素を集めて周波数変換された１５画素に当たり、第３階層データは、ＤＣ（ダイレクトカレント）係数と呼ばれ、直流成分に相当し、第１階層データの左上のブロックの４×４画素の該ブロックの左上の画素が周波数変換された１画素に当たる。
【０００７】
前記ＶＬＣ復号化部１２０は、前記ビットストリーム解析部１１０で分離された画像符号化データである第１階層データ、２階層データ及び第３階層データに対して、ＶＬＣ復号化処理である可変長復号処理を施し、復号化した上位データと抽出した下位データとを連結した係数データとして、前記適応型スキャン部１３０に出力する。
【０００８】
ＶＬＣ復号化部１２０は、図１２に示すように、マクロブロックカウンタ部１２１、モデルビッツ更新部１２２、データ連結部１２３、上位データ処理部１２６、下位データ処理部１３１から構成され、前記上位データ処理部１２６は、上位データ復号化部１２７、上位データ記憶部１２８、上位データ分配部１２９からなり、下位データ処理部１３１は、下位データ抽出部１３２、下位データ符号決定部１３３、下位データ符号反転部１３４、下位データ選択部１３５からなる。以下、図１５に示すＶＬＣ復号化部の処理フローの各ステップと照合しながら説明する。
【０００９】
まず、係数データの上位部分である上位データＵ（ｉ）は隣接するマクロブロックやブロック間の係数との相関が高く、隣接ブロック間の差分処理で、ゼロ値付近の数値となるため、ＶＬＣ（可変長）符号化されるが、係数データの下位部分である下位データＬ（ｉ）は、隣接するマクロブロックやブロック間の係数との相関が低く、前記差分処理によっても、係数にランダム性が残り、可変長符号化してもあまり圧縮されないため、元のデータのまま、連接されている。
【００１０】
このＶＬＣ復号化部１２０では、上位データ処理部１２６で復号化された上位データＵ（ｉ）と、下位データ処理部１３１で抽出された下位データＬ（ｉ）とをデータ連結部１２３により、図１６に示すように連結して、係数データＺ（ｉ）を生成する。例えば、上位データＵ（ｉ）の長さが４ビット長、下位データＬ（ｉ）の長さが１２ビット長であれば、係数データＺ（ｉ）の長さである係数長は１６ビット長となる。そして、この係数長は、その１つの画像を処理する条件が決まれば、その画像処理内では一定の値となる。
【００１１】
尚、上記下位データの長さは、非特許文献１の規格においては、そのビット長を示すモデルビッツと呼ばれる変数の値（初期値は、ＤＣ＝８、ＬＰ＝４、ＨＰ＝０）となっており、本項でもモデルビッツと称する。このモデルビッツは、マクロブロック毎にモデルビッツ更新部１２２で更新（ステップＳ４７）され、下位データ処理部で用いられる。
【００１２】
以下、順を追ってＶＬＣ復号化部の処理を説明する。
【００１３】
上位データ処理部１２６は、上位データ復号化部１２７により復号化した上位データＵ（ｉ）を上位データ記憶部１２６に記憶し、記憶した上位データＵ（ｉ）を、処理の必要に応じ、上位データ分配部１２９から出力して分配する。
【００１４】
具体的には、上位データ復号化部１２７は、ビットストリーム解析部１１０により分離した符号化データ群のデータを上位データ復号化部１２７で１符号ずつ復号化して、上位データＵ（ｉ）を生成し、上位データ記憶部１２６及びマクロブロックカウンタ部１２１へ出力する。この際、モデルビッツの値がゼロであれば、上位データＵ（ｉ）の復号化のみを行い（ステップＳ３２）、モデルビッツの値が非ゼロであれば、上位データＵ（ｉ）の復号化（ステップＳ３３）の後、下位データＬ（ｉ）の抽出を行う。
【００１５】
上位データ記憶部１２８は、上位データ復号化部１２７から入力された上位データＵ（ｉ）を、ブロック単位の１５個になるまで記憶する。また、マクロブロックカウンタ部１２１は、上位データ復号化部１２７から入力された上位データＵ（ｉ）の個数をカウントし、ブロック単位の１５個やブロック１６個分のマクロブロック単位に達したか否かを判断し、ＶＬＣ復号化部内に通知する。
【００１６】
また、モデルビッツ更新分１２２は、マクロブロックカウンタ部１２１で１つのマクロブロック分の上位データの復号化が終了し、データ連結部１２３より、そのマクロブロックの最後のデータの連結が終了した際、それまでに蓄積していた上位データＬ（ｉ）の非ゼロに関する統計情報を基に、モデルビッツの値を更新する（ステップＳ４７）。
【００１７】
下位データ処理部は、下位データ抽出部１３２と上位データ分配部１２９からのデータを下位データ符号決定部１３３に入力し、下位データ符号決定部１３３は、このデータの情報を基に、下位データの正負の符号を決定し、この決定情報を基に、下位データ選択部にて、元のままの下位データか下位データ符号反転部１３４により符号反転された下位データかのどちらかを選択して、データ連結部１２３に入力する。ここで、符号反転とは、下位データの前に−（マイナス）符号をつけることをいう。例えば、下位データが３（０００３ｈ）であれば、符号反転した値は、−３（ＦＦＦＤｈ）となる。
【００１８】
具体的には、下位データ抽出部１３２は、ビットストリーム解析部１１０より入力された下位データ群の中から、モデルビッツ更新部１２２より入力されたモデルビッツの値を基に、下位データＬ（ｉ）と正負の符号を示すサインフラグＳ（ｉ）を抽出する。
【００１９】
図１３に示すように、下位データ抽出器１４１は入力された下位データ群より、モデルビッツの長さ分の下位データＬ（ｉ）を抽出し（ステップＳ３５）、さらに、サインフラグ抽出器１４２は、下位データＬ（ｉ）に後続する１ビット長のサインフラグＳ（ｉ）を抽出する。
【００２０】
また、下位データＬ（ｉ）とサインフラグＳ（ｉ）の分離を図示したものを図１７に示す。モデルビッツ長の下位データＬ（ｉ）と１ビット長のサインフラグＳ（ｉ）とが分離されるが、同図１７の上図のようにサインフラグＳ（ｉ）が存在する場合と下図のようにサインフラグＳ（ｉ）が存在しない場合があり、本分離の際には、サインフラグＳ（ｉ）の有無の決定はできないので、サインフラグＳ（ｉ）があるものとして、仮にサインフラグＳ（ｉ）を抽出しておく。
【００２１】
下位データ抽出部１３２により抽出された下位データＬ（ｉ）は、下位データ符号決定部１３３、下位データ符号反転部１３４、下位データ選択部１３５に入力され、サインフラグＳ（ｉ）は、下位データ符号決定部１３３のみに入力される。
【００２２】
下位データ符号決定部１３３は、下位データ抽出部１３２より入力された下位データＬ（ｉ）とサインフラグＳ（ｉ）及び上位データ分配部１２９より入力された上位データＵ（ｉ）に基づいて、下位データ符号情報Ｋ（ｉ）を決定する。
【００２３】
下位データ符号情報Ｋ（ｉ）の決定は、図１４に示すように行われる。即ち、上位データ正負ゼロ判定器１４３は、入力された上位データＵ（ｉ）が非ゼロかゼロかを判定し（ステップＳ３６，Ｓ３７）、その判定情報を下位データ符号選択器１４６に入力し、その上位データＵ（ｉ）が非ゼロである場合には、そのデータが正であるのか負であるのかを示す符号を判定し（ステップＳ３８）、上位符号情報として、下位データ符号選択器１４６に入力する。
【００２４】
下位データ非ゼロ判定器１４５は、入力された下位データＬ（ｉ）が非ゼロかゼロかを判定し（ステップＳ３９）、その判定情報をサインフラグ選択器１４４に入力する。サインフラグ選択器１４４は、入力された判定情報が非ゼロであれば、下位データ抽出部より入力されたサインフラグＳ（ｉ）を選択し（ステップＳ４０）、その判定情報がゼロであれば、０の値を選択し、下位符号として下位データ符号選択器１４６へ入力する。
【００２５】
下位データ符号選択器１４６は、上位データ正負ゼロ判定器１４３からの判定情報を基に、その判定情報が非ゼロであれば、上位データ正負ゼロ判定器１４３から入力された上位符号を選択し、その判定情報がゼロであれば、サインフラグ選択器１４４から入力された下位符号を選択して、下位データ符号情報Ｋ（ｉ）として下位データ選択部１３５へ入力する。
【００２６】
下位データ符号反転部１３４は、下位データ抽出部１３２から入力された下位データＬ（ｉ）の正負の符号を反転させたデータを下位データ選択部１３５へ入力し（ステップＳ４２）、下位データ選択部１３５は、下位データ符号決定部１３３からの下位データ符号情報Ｋ（ｉ）に基づいて、その判定情報が正であれば、下位データ抽出部１３２より入力された下位データＬ（ｉ）を選択し、その判定情報が負であれば、下位データ符号反転部１３４より入力された符号反転データを選択して、符号付きの下位データＬ（ｉ）として、データ連結部１２３へ入力する。
【００２７】
データ連結部１２３は、上位データ分配部１２９から入力された上位データＵ（ｉ）と下位データ選択部１３５から入力された下位データＬ（ｉ）とを連結して係数データＺ（ｉ）として、適応型スキャン部１３０へ出力する（ステップＳ４３）。
【００２８】
下位データＬ（ｉ）の処理は、１つのデータ毎になされ、１ブロック単位の１５個のデータの処理が終了するまで、下位データ処理部での処理を繰り返す（ステップＳ３５〜Ｓ４５）。また、上記の各ブロックの処理を１つのマクロブロックを構成する１６ブロック分繰り返す（ステップＳ４６）。
【００２９】
そして、データ連結部１２３は、マクロブロックの処理が完了し、最後の上位データＵ（ｉ）と下位データＬ（ｉ）の連結が完了した際、その完了信号をモデルビッツ更新部１２２へ入力し、モデルビッツ更新部１２２にて、モデルビッツの更新が実施される（ステップＳ４７）。尚、本ＶＬＣ復号化処理は、１画像データ内の全マクロブロックの処理が終了するまで繰り返される（ステップＳ４８）。
【００３０】
前記ＶＬＣ復号化部１２０の１つのブロックの処理が終了する毎に、前記適応型スキャン部１３０は、圧縮時に定められた手法によって画素順を入れ替えられた第１階層データ及び第２階層データについて、その係数データを圧縮とは逆の手順によって入れ替え、元の画素順に戻す処理を行う。この入替処理は、圧縮の際にブロックの左上部の周波数帯域の低い側に非ゼロの係数を集めることで（逆に右下部の周波数帯域の高い側に係数値がゼロのものが集まる）、符号化において圧縮率を高めるために行われるものである。
【００３１】
前記係数逆予測部１４０は、前記適応型スキャン部１３０から入力した、ブロック毎の前記第１階層データ、第２階層データ、及び第３階層データについて、それぞれ、隣接するブロック間での係数の比較を行って予測モードを導出し、予測モードに対し、設定された演算式に従って、相関の高いブロックの対応する画素の値を、対象画素に足し込むことで、圧縮における予測処理前の画素値を復元（逆予測）する。そして、逆予測後の第１階層データ、第２階層データ及び第３階層データをブロック毎に逆量子化部１５０に入力する。
【００３２】
前記逆量子化部１５０は、前記係数逆予測部１４０により逆予測された第１階層データ、第２階層データ及び第３階層データを、それぞれ設定された量子化パラメータで乗算して逆量子化する処理を行い、処理後の第１階層データ、第２階層データ及び第３階層データを、ブロック毎に周波数逆変換部１６０に入力する。
【００３３】
前記周波数逆変換部１６０は、前記逆量子化部１５０によって逆量子化された係数データを、４×４画素を一つのブロックとしてラスター方向に順次処理し、各周波数帯域毎の係数データを画素データに変換する処理を行う。この周波数逆変換部１６０は、各周波数帯域毎に分離していた第１階層データ、第２階層データ及び第３階層データを、色成分毎に、１ブロック（４×４画素）の２次元空間データに戻して、前記色空間逆変換部１７０に入力する。
【００３４】
前記色空間逆変換部１７０は、前記周波数逆変換部１６０から入力された各色成分毎の画像データを画素毎に処理し、色空間逆変換が不要な場合は、色空間逆変換せず、色空間逆変換が必要な場合は、色空間逆変換を行って、処理後の画素データを、外部に１画像分の画像データとして出力する。
【００３５】
尚、色空間逆変換の要否は、非特許文献１の規格で定められた画像の形式を表わすピクセルフォーマットというものに依存し、そのピクセルフォーマットが変換を必要とするものである場合には、逆変換前の画像データがＹＵＶフォーマットである画像は、ＲＧＢフォーマットに変換され、逆変換前の画像データがＹＵＶＫフォーマットである画像は、ＣＭＹＫフォーマットに変換される。また、そのピクセルフォーマットが色空間逆変換を必要とするものでない場合には、色空間逆変換されない。
【先行技術文献】
【非特許文献】
【００３６】
【非特許文献１】ＪＰＥＧ  ＸＲ勧告書ITU-T T.832 : Information technology -JPEG XR image coding system - Image coding specification. [online].Recommendation T.832(01/12). Approval 2012-01-13. Status : In force.Retrieved from the Internet : <URL : http://www.itu.int/rec/T-REC-T.832-201201-I/en>.
【発明の概要】
【発明が解決しようとする課題】
【００３７】
伸長対象の画像圧縮データは、技術進歩に伴う解像度の向上によって、そのデータ量が急増しており、上記従来の画像復号化装置１００では、データ量の増加によって、その処理に長時間を要するため、更なる効率化が求められている。
【００３８】
特に、前記ＶＬＣ復号化部１２０内の下位データ処理部１３１では、ブロック毎の上位データＵ（ｉ）のＶＬＣ復号化後、下位データ群より、条件に依存して発生するサインフラグＳ（ｉ）を検出して、下位データＬ（ｉ）を抽出し、上位データＵ（ｉ）に連結する処理を、当該処理を１サイクルとして、連結後の係数データＺ（ｉ）の個数分だけ、そのサイクルを繰り返す処理を行うので、第１階層データ、第２階層データ及び第３階層データの総数と同じサイクル数だけ処理を繰り返さなければならず、その処理に長時間を要していた。このため、この従来の下位データ処理部１３１の処理は、当該画像復号化装置１００における処理効率を低下させるネック要因の一つになっていた。
【００３９】
但し、背景技術で述べたように、下位データＬ（ｉ）には、サインフラグＳ（ｉ）が存在する場合と存在しない場合があり、背景技術のように１係数ずつ処理する場合には、実現の際、特に問題とはならないが、このデータ処理を複数の下位データについて同時に処理する場合には、下位データＬ（ｉ）とサインデータＳ（ｉ）の並びの場合の数が増大する。特に、復号処理の場合、連接されたデータが存在し、それを現在の復号位置から順に追って、抽出していかなければならないので、下位データＬ（ｉ）とサインフラグＳ（ｉ）の抽出が困難であった。
【００４０】
図１８に、下位データ群から、連続する３個の下位データＬ（ｉ）をサインフラグＳ（ｉ）とともに抽出する場合の一例を示す。最初の下位データＬ（１）は、現在の復号位置からモデルビッツ長の位置の所までの位置で一定であるが、下位データＬ（１）に伴うサインフラグＳ（１）については、存在する場合［（Ａ）〜（Ｄ）］と存在しない場合［（Ｅ）〜（Ｈ）］とがある。
【００４１】
下位データＬ（２）は、サインフラグＳ（１）が存在する場合には、サインフラグＳ（１）の後に存在するため、モデルビッツ長＋１ビットの位置の１つ後の位置からモデルビッツ長の長さの位置まで存在するが、サインフラグＳ（１）が存在しない場合は、下位データＬ（１）のすぐ後に存在するため、モデルビッツ長の位置の１つ後の位置からモデルビッツ長の長さの位置まで存在することになる。
【００４２】
さらに下位データＬ（２）に伴うサインフラグＳ（２）が存在する場合［（Ａ），（Ｂ），（Ｅ），（Ｆ）］と存在しない場合［（Ｃ），（Ｄ），（Ｇ），（Ｈ）］で、サインフラグＳ（２）とその次の下位データＬ（３）の存在位置が異なってくる。また、下位データＬ（３）に伴うサインフラグＳ（３）が存在する場合［（Ａ），（Ｃ），（Ｅ），（Ｇ）］と存在しない場合［（Ｂ），（Ｄ），（Ｆ），（Ｈ）］で、サインフラグＳ（３）の存在位置が異なってくる。
【００４３】
斯くして、図１８の下の点線状の楕円で囲った矢印で示すように、各データの開始位置の場合分けとしては、下位データＬ（１）とサインフラグＳ（１）は１通り、下位データＬ（２）とサインフラグＳ（２）は２通り、下位データＬ（３）とサインフラグＳ（３）は３通りと順に１通りずつ開始位置の場合の数が増えていくことになる。尚、これは、同時に処理する下位データの数を４以上に増やしたときも同様で、Ｌ（ｉ）の引数ｉが１つ増える毎に、開始位置の場合の数は１通りずつ増えていく。
【００４４】
このように画像圧縮データの伸長時、下位データ群からの抽出を並列的に実施して、処理効率を高めようとすると、下位データＬ（ｉ）とサインフラグＳ（ｉ）について、サインフラグＳ（ｉ）の有無に伴う各下位データＬ（ｉ）とサインフラグＳ（ｉ）の開始位置がどの位置を取るときでも、対応できる構成としなければならない。
【００４５】
尚、この従来のＶＬＣ復号化処理のタイミングを表したものが図１９であり、点線状の楕円で囲んだ部分のＬＰとＨＰの下位データ処理の矢印で表した処理に時間が掛かることが問題であった。そこで、図２０のタイミング図のように、点線状の楕円で囲んだ部分の下位データ処理の矢印で表した部分の処理時間が短縮されれば、ＶＬＣ復号化器の処理時間、ひいては、画像復号化装置全体の処理時間の高速化を達成できる。また、同図１９，図２０に示すように、非特許文献１の規格では、ＨＰの処理は１６ブロック分あり、１６個のブロックについて処理の繰り返しがあるため、特にＨＰにおける下位データ処理の時間短縮効果が大きいと考えられる。
【００４６】
本発明は、以上の実情に鑑み、なされたものであって、ＶＬＣ復号化部における下位データ処理部の処理時間を短縮することで、全体的な処理効率を高めることが可能な画像復号化装置の提供を、その目的とする。
【課題を解決するための手段】
【００４７】
上記課題を解決するため、本発明の画像復号化装置は、ｎ個の係数データを１つのブロック単位として符号化された画像圧縮データから、前記係数データの上位部分のデータである上位データを復号化する上位データ復号化部と、前記係数データの下位部分のデータである下位データを抽出する下位データ処理部と、前記上位データと前記下位データとを連結して、係数データを復元するデータ連結部とからなる復号化部と、
前記復号化部により復号化されたブロック単位の係数データを逆量子化する逆量子化部と、
前記逆量子化部により逆量子化されたブロック単位の係数データを周波数逆変換して画像データを生成する周波数逆変換部とを備えた画像復号化装置において、
前記下位データ処理部は、前記下位データと該下位データの正負を示すサインフラグの組の並びの取り得る全組み合せについて、ブロック単位で下位データの候補及びサインフラグの候補を並列的に抽出する下位データ並列抽出部と、
前記上位データと前記下位データの候補に基づいて、前記下位データに後続するサインフラグが存在するか否かを示す符号有無判定情報を並列的に生成する下位データ並列符号有無判定部と、
前記符号有無判定情報に基づき、前記下位データの候補及び前記サインフラグの候補の中から、ブロック単位のｎ組の下位データとサインフラグを並列的に選択し分配する下位データ分配部とを備える。
但し、前記ｎは２以上の整数である。
【００４８】
上記構成を備えた本発明に係る画像復号化装置によれば、まず、下位データ並列抽出部において、下位データとサインフラグの組の並びのいくつかの組み合わせをもった画像圧縮データの中から、全組み合せについての下位データの候補とサインフラグの候補を並列的に抽出する。
【００４９】
そして、下位データ並列符号有無判定部において、上位データと抽出した下位データの候補に基づいて、下位データに後続するサインデータが存在するかどうかを示す符号有無判定情報を並列的に生成する。
【００５０】
最後に、下位データ分配部において、下位データ並列抽出部によって抽出した下位データの候補とサインフラグの候補の中から、下位データ並列符号有無判定部によって生成した符号有無判定情報を用いて、選定されるべき下位データとサインフラグを並列的に選択し、出力および分配する。
【００５１】
このように、連続する下位データとサインフラグのデータの中から、全組み合せの下位データの候補とサインフラグの候補を挙げておき、サインフラグが存在する条件を判定し、選定されるべき下位データとサインフラグをブロック単位のｎ個分、並列的に取得することができるようになる。
【００５２】
また、本発明の画像復号化装置の下位データ処理部は、ブロック単位のそれぞれｎ個の下位データおよび上位データを、１つのサイクルでの処理数をｍ個として、１つのサイクル又は複数のサイクルの繰り返しで処理する。
但し、前記ｎは２以上の整数であり、前記ｍは２以上ｎ以下の整数であり、処理の繰り返しが、１つのサイクルで終了するものであるときは、ｍとｎは等しくなる。
【００５３】
上記構成を備えた本発明に係る画像符号化装置によれば、従来ｎ個のサイクルで実施していた、前述のブロック単位でのｎ個の下位データとサインフラグの取得を、１つのサイクルまたは複数のサイクルで実施できるようになる。
【００５４】
ここで、１つのサイクルで処理する個数ｍは２以上であるので、複数のサイクルで実施する場合でも、従来のｎ個のサイクルで処理することに比べ、半分以下のサイクルで処理することができる。
【００５５】
さらに、本発明の画像復号化装置の下位データ並列抽出部は、ｑビット長の下位データと、その下位データに後続して、存するときと存しないときのある１ビット長のサインフラグとを１つの組として、その組がｍ個連続して連接された下位データ群の中から、１〜ｍ番目までの下位データとサインフラグの取り得る組み合せについて、下位データの候補とサインフラグの候補の全てを並列的に抽出する。
但し、前記下位データに後続する前記サインフラグが存しない場合のサインフラグの候補には０か１のダミーの値を入れるものとし、前記ｎは２以上の整数であり、前記ｍは２以上ｎ以下の整数であり、前記ｑは１〜ｐの整数であり、前記ｐは１以上の整数である。
【００５６】
上記構成を備えた本発明に係る画像復号化装置の下位データ並列抽出部によれば、ｑビット長の下位データと、その後に存在する場合としない場合がある１ビット長のサインフラグを１つの組として、その組がｍ個連接されている下位データ群の中から、１つのサイクルの処理数ｍ個分の下位データの候補とサインフラグの候補を、全ての組み合せの中から網羅的に同時に抽出することができる。尚、サインフラグが存在しない場合もあるが、その際は、０か１のダミーの値を入れておく。
【００５７】
具体的には、１番目の下位データについては、データの先頭にあるため、下位データの候補は１個となるが、２番目の下位データの候補はその前にサインフラグが入る場合があり、２個の候補となり、３番目の下位データの候補は２つ目のサインフラグの有無でさらにずれる場合があり、３個というように、番数が増える毎に候補は１個ずつ増え、ｍ番目の下位データの候補はｍ個となる。
【００５８】
サインフラグについても同様で、１番目の下位データのサインフラグについては、１番目の下位データがデータの先頭にあるため、サインフラグの候補は１番目の下位データの位置の次にある１個の候補となる。そして、２番目のサインフラグの候補はさらにもう１ビットずれる場合があるため２個となり、３番目のサインフラグの候補は３個というように、番数が増える毎に候補は１個ずつ増え、ｍ番目のサインフラグの候補はｍ個となる。
【００５９】
また、本構成では、下位データのビット長をその取り得る範囲である１〜ｐの中の１つのｑとしているが、これは、このｑビット長のときの下位データについて、下位データの候補とサインフラグの候補が抽出できればよいという意味であって、この構成を例えば、１〜ｐの全てのビット長の下位データについて、網羅的に下位データの候補とサインフラグの候補を抽出しておき、最終的にｑのビット長の下位データの候補とサインフラグの候補を選択するようにしてもよい。
【００６０】
また、この構成を例えば、ビット長ｑを可変にしておき、最初から、この下位データのビット長ｑとサインフラグのビット長１についての下位データの候補とサインフラグの候補だけを網羅的に抽出できるようにしておいてもよい。
【００６１】
さらに、本発明の画像復号化装置の下位データ並列符号有無判定部は、上位データがゼロで下位データが非ゼロであるときのみ、下位データに後続するサインデータが存するという条件を基に、一意的に確定される１番目の下位データと対応する上位データから、１番目の下位データに後続するサインフラグの有無を判定し、１番目のサインフラグの有無の判定により２番目の下位データの開始位置ずれを推定して、２番目の下位データの候補の中から２番目の下位データを判定し、判定した２番目の下位データと対応する上位データより、２番目の下位データに後続するサインフラグの有無を判定し、３番目の下位データについては、前番目までの下位データに後続するサインフラグが存した累計数により該番目の下位データの開始位置ずれを推定して、該番目の下位データの候補の中から該番目の下位データを判定し、判定した該番目の下位データと対応する上位データより、該番目の下位データに後続するサインフラグの有無を判定し、以降、同様に１〜ｍ番目まで、各番目の下位データに後続するサインフラグの有無を並列的に判定し、判定した１〜ｍ番目までの各番目の下位データに後続するサインフラグの有無の判定情報を符号有無判定情報として出力する。
但し、前記ｎは２以上の整数であり、前記ｍは２以上ｎ以下の整数である。
【００６２】
上記構成を備えた本発明に係る画像復号化装置の下位データ並列符号有無判定部によれば、上位データがゼロで下位データが非ゼロであるときのみ、下位データに後続するサインデータが存するという条件を基に、１つのサイクルで処理されるｍ個の下位データにつき、後続するサインフラグの有無を並列的に判定し、判定した１〜ｍ番目までの各番目の下位データに後続するサインフラグの有無の判定情報を符号有無判定情報として出力することができる。
【００６３】
具体的には、前述のサインフラグが存在する条件より、各下位データにサインフラグが有るかどうかを判断していく。１番目の下位データについては、下位データの候補が１つしかないので、前記サインフラグ存在条件から容易に判定できる。
【００６４】
２番目の下位データについては、１番目の下位データにサインフラグがなければ、先頭から一番近い２番目の下位データの候補を選択し、１番目の下位データにサインフラグがあれば、先頭から二番目に近い２番目の下位データの候補を選択し、その選択した下位データと対応する上位データから、前記サインフラグ存在条件よりサインフラグの有無を判定する。
【００６５】
３番目の下位データについては、１番目と２番目の下位データの後にサインフラグが有った数を累積しておき、その数が０なら、先頭から一番近い３番目の下位データの候補を選択し、その数が１なら、先頭から二番目に近い３番目の下位データの候補を選択し、その数が２なら、先頭から三番目に近い３番目の下位データの候補を選択し、その選択した下位データと対応する上位データから、前記サインフラグ存在条件よりサインフラグの有無を判定する。
【００６６】
４番目以降の下位データについても、１番目からその前番目までの下位データの後にサインフラグが有った数を累積しておき、その数が小さい方から、先頭から近い順に、当該番目の下位データの候補を選択して、その選択した下位データと対応する上位データから、前記サインフラグ存在条件よりサインフラグの有無を判定する。
【００６７】
この処理を１つのサイクルでの処理数であるｍ番目までの下位データについて実施し、サインフラグの有無を判定する。
【００６８】
そして、１〜ｍ番目までについて並列的に判定したサインフラグの有無情報を符号有無判定情報として出力する。
【００６９】
さらに、本発明の画像復号化装置の下位データ分配部は、一意的に確定される１番目の下位データとサインフラグはそのまま選択し、１番目の下位データの符号有無判定情報により２番目の下位データの開始位置ずれを推定して、２番目の下位データの候補とサインフラグの候補の中から、２番目の下位データとサインフラグを選択し、３番目の下位データとサインフラグについては、前番目までの各下位データの符号有無判定情報の存在数の累計により該番目の下位データの開始位置ずれを推定して、該番目の下位データの候補とサインフラグの候補の中から、該番目の下位データとサインフラグを選択し、以降、同様に１〜ｍ番目まで、各番目の下位データとサインフラグを並列的に選択して、選択した１〜ｍ番目までの各番目の下位データとサインフラグを出力し分配する。
但し、サインフラグが存しないとされる場合のサインフラグには、０か１のダミーの値を入れるものとし、前記ｎは２以上の整数であり、前記ｍは２以上ｎ以下の整数である。
【００７０】
上記構成を備えた本発明に係る画像復号化装置の下位データ分配部によれば、下位データ並列符号有無判定部により生成された符号有無判定情報に基づいて、下位データ並列抽出部により生成された１〜ｍ番目までの下位データの候補の中から選定すべき下位データを選択し、下位データ並列抽出部により生成された１〜ｍ番目までのサインフラグの候補の中から選定すべきサインフラグを選択し、選択された１〜ｍ番目までの下位データとサインフラグを出力して分配する。
【００７１】
具体的には、１番目の下位データおよびサインフラグの候補はそれぞれ１つずつしかないので、そのまま出力する。尚、以降も同様であるが、サインフラグが存在しない場合には、サインフラグの出力には、０か１のダミーの値を入れておく。
【００７２】
２番目の下位データおよびサインフラグの候補はそれぞれ２つずつあり、１番目の下位データに対する符号有無判定情報が無しの場合には、先頭から一番近い２番目の下位データの候補およびサインフラグの候補を選択し、出力する。
【００７３】
３番目の下位データおよびサインフラグの候補はそれぞれ３つずつあり、１番目と２番目の下位データの後にサインフラグが有った数を累積しておき、その数が０なら、先頭から一番近い３番目の下位データの候補およびサインフラグの候補を選択し、その数が１なら、先頭から二番目に近い３番目の下位データの候補およびサインフラグの候補を選択し、その数が２なら、先頭から三番目に近い３番目の下位データの候補およびサインフラグの候補を選択し、出力する。
【００７４】
４番目以降の下位データおよびサインフラグについても、１番目からその前番目までの下位データの後にサインフラグが有った数を累積しておき、その数が小さい方から、先頭から近い順に、当該番目の下位データの候補およびサインフラグの候補を選択し、出力する。
【００７５】
この処理を１つのサイクルでの処理数であるｍ番目までの下位データおよびサインフラグについて実施し、選択した下位データおよびサインフラグを出力する。
【００７６】
そして、１〜ｍ番目までについて並列的に上記処理を実施する。
【発明の効果】
【００７７】
復号化処理の内、下位データおよびサインフラグの抽出・選択について、所定数番目までの下位データの候補およびサインフラグの候補を網羅的に抽出し、該所定数番目までの各下位データに後続するサインフラグに係る符号有無判定情報を生成し、その符号有無判定情報を用いて、選定すべき該所定数番目までの下位データおよびサインフラグを並列的に選択できるので、下位データおよびサインフラグの抽出・選択処理を並列化でき、１つのサイクル又は比較的少ない回数のサイクルに分割して並列処理することにより、従来に比べ、下位データ処理部の処理に掛かるサイクル数を削減することが可能となり、画像復号化装置全体の処理速度を向上させることができる。
【図面の簡単な説明】
【００７８】
【図１】本発明の一実施形態に係る画像復号化装置の概略構成を示したブロック図である。
【図２】本実施形態に係るＶＬＣ復号化部の構成を示したブロック図である。
【図３】本実施形態に係る下位データ並列抽出部の構成を示したブロック図である。
【図４】本実施形態に係る第３下位データ抽出部の構成を示したブロック図である。
【図５】本実施形態に係る第３サインフラグ抽出部の構成を示したブロック図である。
【図６】本実施形態に係る下位データ並列符号有無判定部の構成を示したブロック図である。
【図７】本実施形態に係る下位データ並列符号決定部の構成を示したブロック図である。
【図８】本実施形態に係る下位データ分配部の構成を示したブロック図である。
【図９】本実施形態に係るＶＬＣ復号化部における処理手順を示したフローチャートである。
【図１０】本実施形態に係るＶＬＣ復号化部における処理手順の一部を示したフローチャートである。
【図１１】従来の画像復号化装置の概略構成を示したブロック図である。
【図１２】従来のＶＬＣ復号化部の構成を示したブロック図である。
【図１３】従来の下位データ抽出部の構成を示したブロック図である。
【図１４】従来の下位データ符号決定部の構成を示したブロック図である。
【図１５】従来のＶＬＣ復号化部における処理手順を示したフローチャートである。
【図１６】従来のＶＬＣ符号化部の上位データと下位データの連結の一例を説明するための説明図である。
【図１７】従来のＶＬＣ復号化部の下位データとサインフラグの分離の一例を説明するための説明図である。
【図１８】３個の下位データが連接された符号化データの下位データとサインフラグの出現の組み合わせを説明するための説明図である。
【図１９】従来のＶＬＣ復号化部におけるタイミングチャートの一例を説明するための説明図である。
【図２０】課題解決となるＶＬＣ復号化部におけるタイミングチャートの一例を説明するための説明図である。
【発明を実施するための形態】
【００７９】
以下、本発明の具体的な実施形態について、図面を参照しながら説明する。尚、図１は本実施形態に係る画像復号化装置１の構成を示したブロック図である。
【００８０】
図１に示すように、本例の画像復号化装置１は、図１１の従来の画像復号化装置１００におけるＶＬＣ復号化部１２０に替えて、これとはその構成が異なるＶＬＣ復号化部１０を備えるもので、この点においてのみ、従来の画像復号化装置１００とその構成が異なっている。したがって、他の構成については、上記画像復号化装置１００におけるものと同一の符号を付して、その詳しい説明は省略する。
【００８１】
前記ＶＬＣ復号化部１０は、図２に示すように、マクロブロックカウンタ部１１、モデルビッツ更新部１２、データ並列連結部１３、上位データ処理部１６、下位データ処理部２１から構成され、前記上位データ処理部１６は、上位データ復号化部１７、上位データ記憶部１８、上位データ分配部１９からなり、下位データ処理部２１は、下位データ並列抽出部２２、下位データ並列符号有無判定部２３、下位データ並列符号決定部２４、下位データ分配部２５、下位データ並列符号反転部２６、下位データ並列選択部２７からなる。
【００８２】
このＶＬＣ復号化部１０においても、前述したＶＬＣ復号化部１２０と同様に、前記ビットストリーム解析部１１０から出力される符号データ中の第１階層データ及び第２階層データについては、マクロブロック単位で扱われ、更に各マクロブロックでは、ブロック単位で処理を行う。尚、以下では、第１階層データの処理について説明するが、第２階層データの処理についても同様である。
【００８３】
以上の構成を備えた本実施形態の画像復号化装置１によれば、まず、前記ビットストリーム解析部１１０は、入力されたビットストリームを解析し、画像情報を抽出するとともに、符号化された画像の係数データの内、上位データ群と下位データ群を抽出して、前記ＶＬＣ復号化部１０に入力する。
【００８４】
本実施形態に係るＶＬＣ復号化部１０も、従来のＶＬＣ復号化部１２０と同様、前記ビットストリーム解析部１１０から入力された第１階層データ、２階層データ及び第３階層データの上位データ群と下位データ群に対して、ブロック毎に、上位データ群をＶＬＣ復号化し上位データとし、下位データ群より下位データを抽出し、上位データと下位データとを連結して係数データとして、適応型スキャン部１３０へ入力する。
【００８５】
図２における、ＶＬＣ復号化部１０の構成と動作を説明するが、下位データ処理部２１以外のＶＬＣ復号化部の構成および動作は、従来技術とほぼ同様であるので、簡単に説明し、下位データ処理部２１の動作を詳述する。また、図９に示すＶＬＣ復号化の処理フローの各ステップと図１０に示すステップＳ６の詳細ステップとを照合しながら説明する。尚、本実施形態における画像復号化装置の下位データ処理では、１つのサイクルで３個の下位データを処理し、これを５回（５つのサイクルで）繰り返し、１つのブロックを処理する場合の例を示す。
【００８６】
前記ＶＬＣ復号化部１０は、モデルビッツ更新部１２にて初期設定又は更新されたモデルビッツの値がゼロか否かを判断し（ステップＳ１）、モデルビッツがゼロであれば、上位データ復号化部１７にて、ビットストリーム解析部１１０より入力した係数データの上位データ群から、上位データＵ（ｉ）の復号化のみ実施する（ステップＳ２）。復号化した上位データＵ（ｉ）は上位データ記憶部１８に入力し、ブロック単位で記憶しておく。
【００８７】
モデルビッツがゼロでなければ、上位データ復号化部１７にて、上位データ群から、上位データＵ（ｉ）の復号化を実施し（ステップＳ３）、下位データ処理部２１にて、ビットストリーム解析部１１０より入力した係数データの下位データ群から、下位データＬ（ｉ）の抽出を行い、データ並列連結部にて上位データＵ（ｉ）と下位データＬ（ｉ）を連結する（ステップＳ１３）。
【００８８】
尚、モデルビッツの更新は、マクロブロックカウンタ部１１における上位データの復号のカウントがマクロブロック分の数量に達し、かつ、マクロブロックの最後の上位データと下位データの連結処理が終了した際に、モデルビッツ更新部１２にて実施される（ステップＳ１７）。
【００８９】
１ブロック分の上位データＵ（ｉ）の復号化が終了後（ステップＳ３）、下位データ並列抽出部２２は、ビットストリーム解析部より下位データ群を取得し（ステップＳ５）、１個目から３個目までの下位データＬ（ｉ）とサインフラグＳ（ｉ）を抽出する（ステップＳ６）。
【００９０】
下位データ並列抽出部２２は、図３に示すように、上側の下位データ抽出部と下側のサインフラグ抽出部より構成される。上位データ抽出部は、モデルビッツの長さが１〜１５のそれぞれに対応した第１下位データ抽出部３１ａ〜第１５下位データ抽出部３１ｏよりなり、各モデルビッツに対応した連続した３個の下位データＬ（ｉ）の組み合わせを並列的に抽出する。各マクロブロック毎にモデルビッツの値は１つに定まるので、第１〜第１５下位データ抽出部で抽出した３番目までの下位データＬ（ｉ）の組み合わせの中から現在のモデルビッツに対応する３番目までの下位データＬ（ｉ）の組み合わせを選択する（ステップＳ２１）。尚、本３番目までの下位データＬ（ｉ）の組み合わせは図１８に示したものと同じである。
【００９１】
さらに詳細に説明すれば、モデルビッツの長さが３の第３下位データ抽出部については、図４に示すように下位データＬ_１_１抽出部３１ｃ１〜下位データＬ_３_３抽出部３１ｃ６の６個の抽出器から構成される。尚、各抽出器の名称の中央の、例えばＬ_３_２は、下位データＬの３番目の係数の２番目の組み合せに係るＬ（ｉ）を対象とすることを示している。
【００９２】
図１８の下に示したモデルビッツ長＝３の場合のビット位置例を対照すると、各抽出器の出力Ｌ_１_１〜Ｌ_３_３に対応して、Ｌ_１_１は［０：２］、Ｌ_２_１は、［３：５］、Ｌ_２_２は［４：６］、Ｌ_３_１は［６：８］、Ｌ_３_２は［７：９］、Ｌ_３_３は［８：１０］のビット切り出しを実施する。尚、下位データ群の先頭からの各ビットの切り出し位置を［＊：＊］で表している。
【００９３】
非特許文献１に規定されている全モデルビッツの値について、本切り出しを実施しているので、３番目までの下位データＬ（ｉ）については、全ての場合を網羅できていることになる。切り出しは、個別、並列的に実施され、現在のモデルビッツに対応したものだけが選択されるので、高速な下位データの組み合わせの抽出が実現できる。
【００９４】
図３の下側のサインフラグの抽出部についても同様で、モデルビッツの長さ１〜１５に対応して、第１サインフラグ抽出部３３ａ〜第１５サインフラグ抽出部３３ｏからなり、プレサインフラグ選択部３４で、現在のマクロブロックに対応したモデルビッツに対応したサインフラグの組み合わせのものが選択される。
【００９５】
モデルビッツの長さが３である第３サインフラグ抽出部を例にとって説明すると、第３サインフラグ抽出部は、サインフラグＳ_１_１抽出部３３ｃ１〜サインフラグＳ_３_３抽出部３３ｃ６の６個の抽出器から構成される。そして、下位データＬ（ｉ）の場合と同様、図１８のモデルビッツ長＝３の場合のビット位置例を対照すると、Ｓ_１_１は［３］、Ｓ_２_１は、［６］、Ｓ_２_２は［７］、Ｓ_３_１は［９］、Ｓ_３_２は［１０］、Ｓ_３_３は［１１］のビット切り出しを実施する。尚、サインフラグは、１ビット長のため、切り出し位置を下位データ群の先頭を起点として、［＊］で表している。
【００９６】
サインフラグの組み合わせの抽出も、３番目までの下位データについて、個別・網羅的に、並列に実施しているので、高速なサインフラグの組み合わせの抽出が実現できる。
【００９７】
下位データ並列符号有無判定部２３は、上位データＵ（ｉ）とモデルビッツの値に基づき、下位データ並列抽出部２２で抽出した３番目までの下位データＬ（ｉ）について、各下位データＬ（ｉ）に後続するサインフラグＳ（ｉ）の存在（有るか無いか）を判定して、符号有無判定情報Ｊ（ｉ）を生成する（ステップＳ２２）。
【００９８】
下位データ並列符号有無判定部２３は、図６に示すように、６個の非ゼロ判定器３５，３７ａ，３７ｂ，３９ａ〜３９ｃと３個のゼロ判定器３６，３８，４０と３個の論理積器４１ａ〜４１ｃと２個の選択器４２ａ，４２ｂ，３個の加算器４３ａ〜４３ｃ及び乗算器４４から構成される。
【００９９】
下位データＬ（ｉ）の後に、サインフラグＳ（ｉ）が存在する条件は、下位データＬ（ｉ）に対応する上位データＵ（ｉ）がゼロで（ステップＳ８）、かつ、その下位データＬ（ｉ）が非ゼロであることである（ステップＳ１０）。但し、後続する下位データＬ（ｉ＋１）については、直前の下位データＬ（ｉ）がサインフラグＳ（ｉ）を有するか有しないかで、比較するべき下位データＬ（ｉ＋１）が変わってくる。このために、前番目までの下位データのサインフラグの存在情報（有：１，無：０）を加算しておき、この加算情報で、比較すべき下位データＵ（ｉ）を選択器で選択する構成としている。
【０１００】
具体的には、１番目の下位データＬ_１_１を非ゼロ判定器３５に入力し、それに対応する上位データＵ_１をゼロ判定器３６に入力し、それらの結果（真：１，偽：０）を論理積器４１ａに入力し、その結果を１番目の符号有無判定情報Ｊ_１として出力する。Ｊ_１が１であれば、サインフラグは存在し、Ｊ_１が０であればサインフラグは存在しないことになる。
【０１０１】
２番目の下位データについては、Ｌ_２_１とＬ_２_２の２通りの場合があり、Ｌ_２_１とＬ_２_２をそれぞれ非ゼロ判定器３７ａと３７ｂに入力し、符号有無判定情報Ｊ_１が０であれば、非ゼロ判定器３７ａの出力を、符号有無判定情報Ｊ_１が１であれば、非ゼロ判定器３７ｂの出力を、選択器４２ａは選択し、２番目の上位データＵ_２をゼロ判定器３８に入力した結果の出力とともに、論理積器４１ｂに入力し、その論理積の結果を２番目の符号有無判定情報Ｊ_２として出力する。尚、Ｊ_１とＪ_２は３番目の下位データの選択に用いるため、その両方を加算器４３ａに入力して、その加算結果を出力しておく。
【０１０２】
３番目の下位データについては、Ｌ_３_１，Ｌ_３_２，Ｌ_３_３の３通りの場合があり、Ｌ_３_１，Ｌ_３_２，Ｌ_３_３をそれぞれ非ゼロ判定器３９ａ，３９ｂ，３９ｃに入力し、上記で出力していた加算器４３ａの出力が０であれば、非ゼロ判定器３９ａの出力を、加算器４３ａの出力が１であれば、非ゼロ判定器３９ｂの出力を、加算器４３ａの出力が２であれば、非ゼロ判定器３９ｃの出力を選択器４３ｂは選択し、３番目の上位データＵ_３をゼロ判定器４０に入力した結果の出力とともに、論理積器４１ｃに入力し、その論理積の結果を３番目の符号有無判定情報Ｊ_３として出力する。尚、Ｊ_１，Ｊ_２，Ｊ_２の加算結果は次の符号化されたデータ準備のためのビットシフト情報の生成に用いるため、Ｊ_１とＪ_２の加算結果である加算器４３ａの出力とＪ_３のそれぞれを加算器４３ｃに入力して、その加算結果を出力しておく。
【０１０３】
処理する下位データは３個であるので、モデルビッツの値を乗算器４４に入力し、これを３倍した出力結果と上記で出力しておいた加算器４３ｂの出力をそれぞれ加算器４３ｃに入力し、その出力結果を実際に使用する処理符号長として、ビットストリーム解析部１１０へ入力する。
【０１０４】
この構成により、３個の下位データに対して、各サインフラグが有るか否かの符号有無判定情報Ｊ（ｉ）を確実に生成することができ、実際に使用するデータのビット長をビットストリーム解析部１１０へ伝達することができるようになる。
【０１０５】
下位データ並列符号決定部２４は、３つの下位データのそれぞれの符号を並列的に決定するもので、上位データＵ（ｉ）、符号有無判定情報Ｊ（ｉ）及び後述する下位データ分配部２５で最終的に分配されたサインフラグＳ’（ｉ）に基づいて決定する。
【０１０６】
下位データ並列符号決定部２４は、図７に示すように、３個の下位データ符号決定部４５〜４７からなり、前記４５〜４７の符号に対応して、それぞれ１個ずつの上位データ正負ゼロ判定器４５ａ〜４７ｃ、サインフラグ選択器４５ｂ〜４７ｂ、下位データ符号選択器４５ｃ〜４７ｃから構成されており、各下位データ符号決定部へは異なったデータが入力され、動作は同様で並列的に処理を実行する。
【０１０７】
下位データ符号決定部４５は３個の下位データの内、１番目の下位データの符号を決定し、下位データ符号決定部４６は２番目の下位データの符号を決定し、下位データ符号決定部４７は３番目の下位データの符号を決定する。
【０１０８】
下位データ符号決定部４５を例にとると、上位データ正負ゼロ判定器４５ａは、上位データ分配部１９より上位データＵ_１が入力され、上位データが非ゼロであるかゼロであるかの非ゼロ／ゼロ情報および上位データの符号を下位データ符号選択器４５ｃに入力し、サインフラグ選択器は４５ｂは、下位データ並列符号有無判定部２３からの符号有無判定情報Ｊ_１の選択信号と下位データ分配部２５からの最終的なサインフラグＳ’_１が入力され、Ｊ_１が１（有り）ならＳ’_１を選択し、Ｊ_１が０（無し）なら０の値を選択し、それを下位データ符号として、下位データ符号選択器４５ｃに入力する。
【０１０９】
下位データ符号選択器４５ｃは、上位データ正負ゼロ判定器４５ａより入力された非ゼロ／ゼロ情報が非ゼロであれば、上位符号を選択し、非ゼロ／ゼロ情報がゼロであれば、下位符号を選択し、それを下位データ符号決定情報Ｋ_１として、下位データ並列選択部２７へ出力する。
【０１１０】
下位データ符号決定部４６については、２番目の入力データとして、符号有無判定情報Ｊ_２、上位データＵ_２、最終的なサインフラグＳ’_２が入力され、上記と同様の処理で、２番目の下位データ符号決定情報Ｋ_２を生成して、下位データ並列選択部２７へ出力する。
【０１１１】
下位データ符号決定部４７については、３番目の入力データとして、符号有無判定情報Ｊ_３、上位データＵ_３、最終的なサインフラグＳ’_３が入力され、上記と同様の処理で、３番目の下位データ符号決定情報Ｋ_３を生成して、下位データ並列選択部２７へ出力する。
【０１１２】
上記下位データ符号決定情報Ｋ_１〜Ｋ_３は同時に生成されるため、下位データ並列選択部２７では、下位データへの符号付加処理を並列的に実施できる。
【０１１３】
下位データ分配部２５は、下位データ並列符号有無判定部２３より入力された符号有無判定情報Ｊ（ｉ）に基づいて、下位データ並列抽出部２２より入力された下位データ候補Ｌ（ｉ）とサインフラグ候補Ｓ（ｉ）の中から、選定されるべき下位データＬ’（ｉ）とサインフラグＳ’（ｉ）を選択して、サインフラグＳ’（ｉ）を下位データ並列符号決定部２４へ入力し、下位データＬ’（ｉ）を下位データ並列符号反転部２６及び下位データ並列選択部２７へ入力する（ステップＳ２３）。
【０１１４】
下位データ分配部２５は、図８に示すように、２個の加算器４８ａ，４８ｂと４個の選択器４９ａ〜４９ｄで構成される。下位データの選択は、１番目及び２番目の符号有無判定情報Ｊ_１及びＪ_２により制御される。
【０１１５】
１番目の下位データＬ_１_１には他の候補がないので、そのまま下位データＬ’_１として出力され、２番目の下位データＬ_２_１及びＬ_２_２については、選択器４９ａにより、符号有無判定情報Ｊ_１が０なら、Ｌ_２_１が選択され、符号有無判定情報Ｊ_１が１なら、Ｌ_２_２が選択され、それが選択された下位データＬ’_２として出力される。尚、符号有無判定情報Ｊ_１とＪ_２は、３番目の下位データの選択に用いるため、それぞれ加算器４８ａに入力され、加算される。
【０１１６】
３番目の下位データＬ_３_１，Ｌ_３_２，Ｌ_３_３については、選択器４９ｂにより、符号有無判定情報Ｊ_１とＪ_２の加算値である加算器４８ａの出力が０なら、Ｌ_３_１が選択され、前記加算器４８ａの出力が１なら、Ｌ_３_２が選択され、前記加算器４８ａの出力が２なら、Ｌ_３_３が選択され、それが選択された下位データＬ’_３として出力される。
【０１１７】
サインフラグの選択および分配については、上記と同様で、１番目のサインフラグＳ_１_１には他の候補がないので、そのまま下位データＳ’_１として出力され、２番目のサインフラグＳ_２_１及びＳ_２_２については、選択器４９ｃにより、符号有無判定情報Ｊ_１が０なら、Ｓ_２_１が選択され、符号有無判定情報Ｊ_１が１なら、Ｓ_２_２が選択され、それが選択された下位データＳ’_２として出力される。尚、符号有無判定情報Ｊ_１とＪ_２は、３番目のサインフラグの選択に用いるため、それぞれ加算器４８ｂに入力され、加算される。
【０１１８】
３番目のサインフラグＳ_３_１，Ｓ_３_２，Ｓ_３_３については、選択器４９ｄにより、符号有無判定情報Ｊ_１とＪ_２の加算値である加算器４８ｂの出力が０なら、Ｓ_３_１が選択され、前記加算器４８ｂの出力が１なら、Ｓ_３_２が選択され、前記加算器４８ｂの出力が２なら、Ｓ_３_３が選択され、それが選択された下位データＳ’_３として出力される。
【０１１９】
このように、下位データ並列符号有無判定部２３にて生成された符号有無判定情報Ｊ（ｉ）を用いることで、下位データ及びサインフラグの複数の候補の中から、選定されるべき下位データ及びサインフラグを確実の選択できるようになる。
【０１２０】
下位データ並列符号反転部２６は、下位データ分配部２５より入力された３個の下位データＬ’（ｉ）を並列的に符号反転させる（ステップＳ１２）。ここで、符号反転とは、下位データの前に−（マイナス）符号をつけることをいう。例えば、下位データが３（０００３ｈ）であれば、符号反転した値は、−３（ＦＦＦＤｈ）となる。
【０１２１】
下位データ並列選択部２７は、３個の下位データについて、下位データ並列符号決定部２４からの下位データ符号情報Ｋ（ｉ）が正（＋）であれば、下位データ分配部２５からの下位データＬ’（ｉ）を選択し、下位データ符号情報Ｋ（ｉ）が負（−）であれば、下位データＬ’（ｉ）を下位データ並列符号反転部２６で符号反転した下位データを選択し（ステップＳ９）、それを下位データＬ”（ｉ）として、データ並列連結部１３に入力する。これにより、３個の下位データを並列的に符号付きデータとすることが可能となる。
【０１２２】
データ並列連結部１３は、下位データ並列選択部２７により選択された３個の下位データＬ”（ｉ）とそれに対応する上位データ分配部１９からの上位データＵ（ｉ）とを並列的に連結して、係数データＺ（ｉ）として、適応型スキャン部１３０へ入力する（ステップＳ１３）。これにより、３対の上位データと下位データを並列的に３個の係数データとすることが可能となる。連結の状態は、図１６について前述した通りである。
【０１２３】
下位データＬ（ｉ）の処理は、３個のデータ毎になされ（ステップＳ１４）、１ブロック単位の１５個のデータの処理が終了するまで（ステップＳ１５）、下位データ処理部での処理を繰り返す（ステップＳ５〜Ｓ１５）。また、上記の各ブロックの処理を１つのマクロブロックを構成する１６ブロック分繰り返す（ステップＳ１６）。
【０１２４】
そして、データ並列連結部１３は、マクロブロックの処理が完了し、最後の上位データＵ（ｉ）と下位データＬ”（ｉ）の連結が完了した際、その完了信号をモデルビッツ更新部１２へ入力し、モデルビッツ更新部１２にて、モデルビッツの更新が実施される（ステップＳ１７）。尚、本ＶＬＣ復号化処理は、１画像データ内の全マクロブロックの処理が終了するまで繰り返される（ステップＳ１８）。
【０１２５】
適応型スキャン部１３０は、第１階層データ及び第２階層データについて、ブロック毎にその係数データを入れ替える処理を行う。この入替処理は、圧縮時の周波数変換後のデータについて、ブロック内の画素位置が小さい側（低周波数側）に非ゼロの係数を集め、ブロックの画素位置が大きい側（高周波数側）にゼロ値が連続する係数データを集めることで符号化の際の圧縮率を高めるために実施されている。係数データが入れ替えられた第１階層データ，第２階層データ及び入替処理が実施されない第３階層データは、前記係数逆予測部１４０に入力される。
【０１２６】
前記係数逆予測部１４０は、同じくブロック毎の第１階層データ、第２階層データ及び第３階層データについて予測モードを導出し、予測モードに対し、設定された演算式に従って、相関の高いブロックの対応する画素の値を対象画素に足し込むことで、圧縮における予測処理前の画素値を復元（逆予測）する。そして、逆予測後の第１階層データ、第２階層データ及び第３階層データをブロック毎に逆量子化部１５０に入力する。
【０１２７】
前記逆量子化部１５０は、係数逆予測部１４０により逆予測された第１階層データ、第２階層データ及び第３階層データを、それぞれ設定された量子化パラメータで乗算して逆量子化する処理を行い、処理後の第１階層データ、第２階層データ及び第３階層データを周波数逆変換部１６０に入力する。
【０１２８】
周波数逆変換部１６０は、マクロブロック単位（１６×１６画素）を細分化したブロック単位（４×４画素）で、ラスター方向に順次処理して行き、周波数帯域毎の係数データを各画素の画像データに変換する処理を行い、処理後の画像データをブロック毎に色空間逆変換部１７０に入力する。
【０１２９】
前記色空間逆変換部１７０は、前記周波数逆変換部１６０より入力された画像データを、画像データのピクセルフォーマットに対応して、その画像データが色空間逆変換され、又は色空間逆変換されず、最終的な画像データとして外部に出力される。
【０１３０】
以上詳述したように、本例の画像復号化装置１によれば、そのＶＬＣ復号化部１０内の下位データ処理部２１において、下位データ群から下位データを抽出する処理につき、１つのサイクルで３個の下位データを処理し、この処理を５つのサイクルで実行するので、従来の下位データ処理部１３１に比べて、その処理時間を短縮し、効率的に下位データの抽出処理を行うことができ、その結果、画像復号化装置１全体の処理速度を速めることができ、効率的な復号化処理を実現することができる。
【０１３１】
尚、１サイクルの処理は、処理のタイミングとして用いられるクロックの、１クロック内で処理されるものであり、したがって、本例では、５クロックで１個のブロックの下位データ抽出処理が実行される。
【０１３２】
以上、本発明の一実施形態について説明したが、本発明が採り得る具体的な態様は、何らこれに限定されるものではない。例えば、上例では、ＶＬＣ復号化部１０内の下位データ処理部２１における下位データ抽出処理を５つのサイクルで生成するようにしているが、これに限られるものではなく、５つ以外の複数のサイクルで下位データを抽出するようにしても良く、また、可能であれば、１つのサイクルで１ブロックを構成する１５個の下位データを抽出するようにしても良い。
【０１３３】
この場合、処理サイクルの数に応じて、１サイクルで処理する下位データの抽出数を設定する必要があるが、前記下位データ並列抽出部２２における下位データの抽出数は、本発明の趣旨から言って、係数データの数よりも少ないサイクル数で処理できるようにすることが肝要である。
【０１３４】
また、下位データ並列抽出部２２は、各モデルビッツに対応して、第１〜１５の抽出部を設け、プレ選択部でモデルビッツにより、下位データとサインフラグの候補を選定する構成にしているが、これに限定されるものではなく、バレルシフタを用いて、モデルビッツの値から直接、下位データとサインフラグの候補を選定する構成としてもよい。
【０１３５】
さらに、下位データ並列符号決定部２４は、下位データ並列符号有無判定部２３からの符号有無判定情報Ｊ（ｉ）を用いて、サインフラグＳ’（ｉ）の選択をしているが、これに限定されるものではなく、上位データＵ（ｉ）がゼロで下位データＬ（ｉ）が非ゼロの条件を用いてサインフラグＳ’（ｉ）の選択をするようにしてもよい。
【符号の説明】
【０１３６】
１    画像復号化装置
１０  ＶＬＣ復号化部
１１  マクロブロックカウンタ部
１２  モデルビッツ更新部
１３  データ並列連結部
１６  上位データ処理部
１７  上位データ復号化部
１８  上位データ記憶部
１９  上位データ分配部
２１  下位データ処理部
２２  下位データ並列抽出部
２３  下位データ並列符号有無判定部
２４  下位データ並列符号決定部
２５  下位データ分配部
２６  下位データ並列符号反転部
２７  下位データ並列選択部
３１ａ〜３１ｏ  下位データ抽出部
３１ｃ１〜３１ｃ６  下位データ抽出器
３２  プレ下位データ選択部
３３ａ〜３３ｏ  サインフラグ抽出部
３３ｃ１〜３３ｃ６  サインフラグ抽出器
３４  プレサインフラグ選択部
３５  非ゼロ判定器
３６  ゼロ判定器
３７ａ，３７ｂ  非ゼロ判定器
３８  ゼロ判定器
３９ａ〜３９ｃ  非ゼロ判定器
４０  ゼロ判定器
４１ａ〜４１ｃ  論理積器
４２ａ，４２ｂ  選択器
４３ａ〜４３ｃ  加算器
４４  乗算器
４５〜４７  下位データ符号決定部
４５ａ〜４７ａ  上位データ正負ゼロ判定器
４５ｂ〜４７ｂ  サインフラグ選択器
４５ｃ〜４７ｃ  下位データ符号選択器
４８ａ，４８ｂ  加算器
４９ａ〜４９ｄ  選択器
１１０  ビットストリーム解析部
１２０  ＶＬＣ復号化部
１２１  マクロブロックカウンタ部
１２２  モデルビッツ更新部
１２３  データ連結部
１２６  上位データ処理部
１２７  上位データ復号化部
１２８  上位データ記憶部
１２９  上位データ分配部
１３０  適応型スキャン部
１３１  下位データ処理部
１３２  下位データ抽出部
１３３  下位データ符号決定部
１３４  下位データ符号反転部
１３５  下位データ選択部
１４０  係数逆予測部
１４１  下位データ抽出器
１４２  サインフラグ抽出器
１４３  上位データ正負ゼロ判定器
１４４  サインフラグ選択器
１４５  下位データ非ゼロ判定器
１４６  下位データ符号選択器
１５０  逆量子化部
１６０  周波数逆変換部
１７０  色空間逆変換部
【図１】
2015065510.tif 000003
【図２】
2015065510.tif 000004
【図３】
2015065510.tif 000005
【図４】
2015065510.tif 000006
【図５】
2015065510.tif 000007
【図６】
2015065510.tif 000008
【図７】
2015065510.tif 000009
【図８】
2015065510.tif 000010
【図９】
2015065510.tif 000011
【図１０】
2015065510.tif 000012
【図１１】
2015065510.tif 000013
【図１２】
2015065510.tif 000014
【図１３】
2015065510.tif 000015
【図１４】
2015065510.tif 000016
【図１５】
2015065510.tif 000017
【図１６】
2015065510.tif 000018
【図１７】
2015065510.tif 000019
【図１８】
2015065510.tif 000020
【図１９】
2015065510.tif 000021
【図２０】
2015065510.tif 000022