(57)【要約】【課題】エントロピー復号処理を高速に実行可能にする。【解決手段】算術復号処理の状態を表す状態変数、及び、シンボルの確率状態を表すコンテキスト変数を用いて、入力された符号化データに算術復号を行う復号装置が提供される。この復号装置は、第１記憶部と第２記憶部に保持されている、第１のコンテキスト変数と第１の状態変数に基づいて第２の状態変数を算出するとともに算術復号処理の結果である選択すべきシンボルを示す選択信号を決定する状態変数算出部を有する。コンテキスト変数算出部は、第１のコンテキスト変数と選択信号に基づいて第２のコンテキスト変数を算出し、第１記憶部を更新する。また、再正規化部は、符号化データと第２の状態変数を用いて第３の状態変数を算出し、第２記憶部を更新する。そして、状態変数算出部は、決定された選択信号を、コンテキスト変数算出部及び前記正規化部の動作を待たずに、後段の処理によって利用可能に出力する。【選択図】  図１
2008118303.tif 000002
【特許請求の範囲】
【請求項１】
算術復号処理の状態を表す状態変数、及び、シンボルの確率状態を表すコンテキスト変数を用いて、入力された符号化データに算術復号を行う復号装置であって、
第１のコンテキスト変数を保持する第１記憶手段と、
第１の状態変数を保持する第２記憶手段と、
前記第１のコンテキスト変数と前記第１の状態変数に基づいて第２の状態変数を算出するとともに算術復号処理の結果である選択すべきシンボルを示す選択信号を決定する状態変数算出手段と、
前記第１のコンテキスト変数と前記選択信号に基づいて第２のコンテキスト変数を算出し、前記第１記憶手段の内容を前記第２のコンテキスト変数でもって更新するコンテキスト変数算出手段と、
前記符号化データと前記第２の状態変数を用いて第３の状態変数を算出し、前記第２記憶手段の内容を前記第３の状態変数でもって更新する再正規化手段とを備え、
前記状態変数算出手段で決定された前記選択信号は、前記コンテキスト変数算出手段及び前記正規化手段の動作を待たずに、後段の処理によって利用されることを特徴とする復号装置。
【請求項２】
前記コンテキスト変数算出手段と前記再正規化手段とが並列動作することを特徴とする請求項１に記載の復号装置。
【請求項３】
前記コンテキスト変数は優勢シンボルとその確立状態を表し、
前記選択信号は優勢シンボルを選択すべきか否かを示し、
前記第１のコンテキスト変数が示す優勢シンボルと前記選択信号に基づいてシンボルデータを生成する生成手段を更に備えることを特徴とする請求項１に記載の復号装置。
【請求項４】
前記シンボルデータを用いてシンタックス要素の最終シンボルであるか否かを判定する判定手段を更に備えることを特徴とする請求項１乃至３のいずれか１項に記載の復号装置。
【請求項５】
前記コンテキスト変数算出手段と前記再正規化手段と前記判定手段とが並列動作することを特徴とする請求項４に記載の復号装置。
【請求項６】
前記判定手段がシンタックス要素の最終シンボルであると判定した場合に、前記シンボルデータを用いて逆２値化処理を行う逆２値化手段を更に備えることを特徴とする請求項４に記載の復号装置。
【請求項７】
前記判定手段は、シンボルデータの値がゼロであることを検出することによって、最終シンボルが否かを判定することを特徴とする請求項４に記載の復号装置。
【請求項８】
算術復号処理の状態を表す状態変数、及び、シンボルの確率状態を表すコンテキスト変数を用いて、入力された符号化データに算術復号を行う復号方法であって、
第１記憶手段が保持する第１のコンテキスト変数と第２記憶手段が保持する第１の状態変数に基づいて第２の状態変数を算出するとともに算術復号処理の結果である選択すべきシンボルを示す選択信号を決定する状態変数算出工程と、
前記第１のコンテキスト変数と前記選択信号に基づいて第２のコンテキスト変数を算出し、前記第１記憶手段の内容を前記第２のコンテキスト変数でもって更新するコンテキスト変数算出工程と、
前記符号化データと前記第２の状態変数を用いて第３の状態変数を算出し、前記第２記憶手段の内容を前記第３の状態変数でもって更新する再正規化工程とを備え、
前記状態変数算出工程で決定された前記選択信号は、前記コンテキスト変数算出工程及び前記正規化工程の動作を待たずに、後段の処理によって利用されることを特徴とする復号方法。
【請求項９】
前記コンテキスト変数算出工程と前記再正規化工程とが並列動作することを特徴とする請求項８に記載の復号方法。
【請求項１０】
前記コンテキスト変数は優勢シンボルとその確立状態を表し、
前記選択信号は優勢シンボルを選択すべきか否かを示し、
前記第１のコンテキスト変数が示す優勢シンボルと前記選択信号に基づいてシンボルデータを生成する生成工程を更に備えることを特徴とする請求項８に記載の復号方法。
【請求項１１】
前記シンボルデータを用いてシンタックス要素の最終シンボルであるか否かを判定する判定工程を更に備えることを特徴とする請求項８乃至１０のいずれか１項に記載の復号方法。
【請求項１２】
前記コンテキスト変数算出工程と前記再正規化工程と前記判定工程とが並列動作することを特徴とする請求項１１に記載の復号方法。
【請求項１３】
前記判定工程がシンタックス要素の最終シンボルであると判定した場合に、前記シンボルデータを用いて逆２値化処理を行う逆２値化工程を更に備えることを特徴とする請求項１１に記載の復号方法。
【請求項１４】
前記判定工程は、シンボルデータの値がゼロであることを検出することによって、最終シンボルが否かを判定することを特徴とする請求項１１に記載の復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号装置及び復号方法に関する。特に、本発明は、動画像或いは静止画像の符号化に用いられる圧縮方式の一つであるエントロピー符号化／復号処理の高速化に関するものである。更に、本発明は、特にエントロピー復号方法として算術復号処理に好適なものである。
【背景技術】
【０００２】
高能率動画符号化方式として、近年ＪＶＴにおいてＨ．２６４（ITU-T Rec.H.264｜ISO/IEC  14496-10  AVC）符号化方式が標準化された。Ｈ．２６４では、静止画の符号化方式として知られるＪＰＥＧや、動画符号化方式として知られるＭＰＥＧ−２或いはＭＰＥＧ−４（version 2）と同様に、画像情報はデジタルとして取り扱われる。特に、動画像符号化方式においては、効率の高い情報の伝送、蓄積を目的とし、画面間（時間方向）の冗長情報の削減と、画面内（空間方向）の画素がもつ冗長情報の削減を行うハイブリット符号化を用いた圧縮が行われる。このハイブリット符号化においては、離散コサイン変換等の直交変換及び動き補償と共に、エントロピー符号化が用いられている。エントロピー符号化は、情報の偏りを利用して可変長符号化を行う技術である。
【０００３】
Ｈ．２６４において用いられるエントロピー符号化は、プロファイルに応じてハフマン符号化を用いるＣＡＶＬＣ方式、或いは算術符号化を用いるＣＡＢＡＣ方式が規定されている。通信アプリケーション向けに処理の複雑度が低い符号化ツール群から構成されるベースライン・プロファイルにおいてはＣＡＶＬＣ方式が選択される。また、符号化効率を重視したメイン・プロファイル或いはハイ・プロファイルにおいてはＣＡＢＡＣ方式が選択されている。
【０００４】
一般的に、ＣＡＢＡＣ等の算術符号化において高速化を試みようとした場合の技術的課題として、最終シンボルの判定が困難であることが知られている。例えば非特許文献１のＨ．２６４勧告書（ITU-T  Rec.H.264｜ISO/IEC  14496-10  AVC）に記載されているＣＡＢＡＣ復号処理のフローチャートを図１０に示す。図１０のフローチャートに関する細かい説明は省略するが、ステップＳ２０４において、シンタックス要素ＳＥの２値化処理を行うBinarizaition(SE)が起動される。これは、Ｓ２０９で行われる最終シンボル判定で２値データとの比較を行うためである。
【０００５】
図１０に示される処理では、算術復号処理はステップＳ２０８で行われる。ステップＳ２０８では、算術復号の処理であるDecodeBin(ctxIdx)が実行され、シンボルデータが得られる。ステップＳ２０９では、ステップＳ２０８で得られたシンボルデータがステップＳ２０４の２値化処理で得られた２値化データに存在するか否かにより、シンタックス要素ＳＥの最終シンボルであるか否かを判定している。即ち、ステップＳ２０９では、１シンボル毎に復号されるDecodeBin(ctxIdx)の結果が、復号対象としているシンタックス要素ＳＥの予めとり得る全ての値を２値化した莫大なシンボルの組み合わせ内に存在しているか否かを判定する。そして、この判定の結果に基づいて、シンタックス要素ＳＥの最終シンボルであるか否かの判定が実現されている。
【０００６】
しかしながら、この処理フローをソフトウエア或いはハードウエアにより実装することは技術的に困難であることは自明である。
【０００７】
一方、Ｈ．２６４のリファレンスソフトウエアとして知られるJoint Modelにおいて実現されているcoef_abs_level_minus1のＣＡＢＡＣ処理の復号プログラムを図１１に示す。また、図１２に、coef_abs_level_minus1における連結ユーナリ結合／ｋ次指数Golomb符号化による２値化処理の結果を示す。図１２から２値化後のシンボルデータ列の最終シンボルが値１４以下であればユーナリ符号化が適用され必ず０で終了していることが分かる。また、値１４より大きい場合にはGolomb符号が適用されており、値０を境界としてプリフィックスとサフィックスから構成されている。Joint Modelにおいては、図１１に示す様に連結ユーナリ結合／ｋ次指数Golomb符号化のシンボル出現の特性を利用することで、最終シンボルの判定を行っていることがわかる。
【０００８】
また、図１３にはJoint Modelの技術を用いて、ＣＡＢＡＣ処理をハードウエアで実現した場合のブロック図を示す。更に、非特許文献２に開示されている算術復号化部５０１で行われる算術復号処理を図１４に示し、再正規化部５０２で行われる再正規化処理を図１５に示す。なお、DecodeBin(ctxIdx)の処理は算術符号化処理であるDecodeDecision(ctxIdx)及び固定長符号化であるDecodeBypass処理（図示しない）からなる。但し、ここでは単純な処理であるDecodeBypass処理は省略する。
【非特許文献１】ITU-T  Rec.H.264｜ISO/IEC  14496-10  AVC
【非特許文献２】H.264 Reference Software Joint Model ver9.0
【発明の開示】
【発明が解決しようとする課題】
【０００９】
画像のハイビジョン化に代表される高解像度化が近年急速に進むに従い、高速に処理する符号化装置及び復号装置が必要とされている。Ｈ．２６４に代表されるハイブリット符号化においては、特にエントロピー復号装置の高速化が復号装置全体の処理速度を決定する要因の一つである。
【００１０】
しかしながら、前述の非特許文献１に記載された復号処理（図１０）をハードウエアで実装することは技術的に困難である。また、特許文献２に記載された復号処理をハードウエアに実装した場合でも、図１４及び図１５で示されるような、コンテキストメモリ５０３を介した非常に多くの論理を含むフィードバックループが存在する。更には、最終シンボル判定部５０４にシンボルが入力されるのは、図１４及び図１５に示される全ての処理を終了した後であるので、１サイクルで１シンボルの復号化を実現するハードウエアを構成することは困難である。
【００１１】
本発明は、上記の課題に鑑みてなされたものであり、エントロピー復号処理を高速に実行可能にすることを目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を達成するための本発明による復号す値は以下の構成を備える。即ち、
算術復号処理の状態を表す状態変数、及び、シンボルの確率状態を表すコンテキスト変数を用いて、入力された符号化データに算術復号を行う復号装置であって、
第１のコンテキスト変数を保持する第１記憶手段と、
第１の状態変数を保持する第２記憶手段と、
前記第１のコンテキスト変数と前記第１の状態変数に基づいて第２の状態変数を算出するとともに算術復号処理の結果である選択すべきシンボルを示す選択信号を決定する状態変数算出手段と、
前記第１のコンテキスト変数と前記選択信号に基づいて第２のコンテキスト変数を算出し、前記第１記憶手段の内容を前記第２のコンテキスト変数でもって更新するコンテキスト変数算出手段と、
前記符号化データと前記第２の状態変数を用いて第３の状態変数を算出し、前記第２記憶手段の内容を前記第３の状態変数でもって更新する再正規化手段とを備え、
前記状態変数算出手段で決定された前記選択信号は、前記コンテキスト変数算出手段及び前記正規化手段の動作を待たずに、後段の処理によって利用される。
【発明の効果】
【００１３】
本発明によれば、エントロピー復号処理を高速に実行できる。
【発明を実施するための最良の形態】
【００１４】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００１５】
図１は、本実施形態によるエントロピー復号装置（算術復号装置）の構成例を示すブロック図である。本実施形態のエントロピー復号装置は、Ｈ．２６４符号化方式のエントロピー符号化であるＣＡＢＡＣ符号化によって得られた符号化データを復号する。図１の参照番号１０１〜１０６で示される構成により図１０のステップＳ２０８の復号処理が遂行される。また、最終シンボル判定部１０７はステップＳ２０９の処理を遂行する。
【００１６】
コンテキスト変数記憶部１０３には、Ｈ．２６４勧告書（非特許文献１）において規定される、すべてのコンテキストインデックスに対応するコンテキスト変数である優勢シンボルの値MPS及び確率状態を表すpStateIdxが保存されている。尚、本実施形態においては符号化データは２値であるので、優勢シンボルは０か１を表すことになる。ここで、コンテキスト変数記憶部１０３から出力されるコンテキスト変数を、第１のコンテキスト変数と称する。また、状態変数記憶部１０２には、復号エンジン状態変数であるcodlRange及びcodlOffsetが保存されており、状態変数記憶部１０２から出力される復号エンジン状態変数を第１の状態変数と称する。
【００１７】
状態変数算出部１０１は、第１のコンテキスト変数（MPS、pStateIdx）と第１の状態変数（codlRange、codlOffset）を入力として、第２の状態変数（codlRange'、codlOffset'）を算出する。また、状態変数算出部１０１は、第１のコンテキスト変数と第１の状態変数から、復号結果のシンボルデータが優勢シンボルか否かを示すシンボル選択信号（MPSorNot）を算出する。ここで、第１のコンテキスト変数はMPS、pStateIdxである。また、第１の状態変数とはcodlRange、codlOffsetである。また、シンボル選択信号はMPSorNotである。
【００１８】
図２は、本実施形態の状態変数算出部１０１における内部構成を示すブロック図である。シフタ８０１は、入力された第１の状態変数のうちのcodlRangeを右に６ビットシフトし、下位の２ビットを出力する。シフタ８０１から出力された２ビットの信号は、第１のコンテキスト変数のうちのpStateIdxとともに、rangeTabLPSテーブル８０２へのインデックスとして用いられる。rangeTabLPSテーブル８０２のインデックスのビット長は、pStateIdx[5:0]とqCodlRnageIdx[1:0]を結合した８ビットである。rangeTabLPSテーブル８０２からは、入力されたインデックスに応じた値２〜２４０までの整数値が、codRangeLPSとして出力される。このcodlRangeLPSは、減算部８０３によって、入力された第１の状態変数に含まれているcodlRangeから減算され、codlRange_tmp（codlRange−codlRangeLPS）が生成される。以上の処理は、図１４のステップＳ６０２の処理に対応する。
【００１９】
また、もう一方の第１の状態変数であるcodlOffsetは減算部８０６によって、codlRangeLPSを減算されcodlOffset_tmpが生成される（codlOffset_tmp＝codlOffset−codlRangeLPS）。
【００２０】
比較部８０５は、図１４中のステップＳ６０４の比較演算に対応する処理を行う。比較部８０５は、codlOffsetとcodlRange_tmpを比較し、codlOffset＜codlRange_tmpの場合は優勢シンボルを選択することを表すMPSorNot信号を出力する。また、codlOffset≧codlRange_tmpの場合は優勢シンボルを選択しないことを表すMPSorNot信号を出力する。即ち、MPSorNot信号は、シンボルがMPSであるか否かを示す信号である。
【００２１】
比較部８０５から出力されたMPSorNot信号は、選択部８０４及び選択部８０７に出力される。選択部８０４及び選択部８０７は、MPSorNot信号により第２の状態変数を出力する。より具体的には、MPSorNot信号がMPSを表す場合、選択部８０４はcodlRange_tmpを第２の状態変数のcodlRange'として出力する。また、このとき、選択部８０７は、第１の状態変数のcodlOffsetを第２の状態変数のcodlOffset'として出力する。一方、MPSorNot信号がMPSでないことをを表す場合、選択部８０４はcodlRangeLPSを第２の状態変数のcodlRange'として出力する。また、このとき、選択部８０７は、codlOffset_tmpを第２の状態変数のcodlOffset'として出力する。以上の処理は、図１４におけるステップＳ６０３、Ｓ６０５、Ｓ６０４の一部に対応する。
【００２２】
図３は、シンボル生成部１０４の内部構成を示すブロック図である。シンボル生成部１０４は、コンテキスト変数記憶部１０３から入力される第１のコンテキスト変数のうちのMPSと、状態変数算出部１０１からのMPSorNot信号を入力し、シンボルデータを出力する。より具体的には、選択部９０２には、入力されたMPSの信号と、反転器９０１によって入力されたMPSの論理が反転された信号が入力される。そして、選択部９０２は、これらの入力信号の一方を、MPSorNot信号に基づいて選択する。選択部９０２は、MPSorNot信号がMPSを選択することを表す場合は入力されたMPS信号をシンボルデータとして出力し、MPSorNot信号がMPSを選択しないことを表す場合は反転されたMPS信号をシンボルデータとして出力する。シンボル生成部１０４の処理は図１４のステップS６０４或いはＳ６０５におけるbinVAlの決定に相当する。
【００２３】
図４は、本実施形態によるコンテキスト変数算出部１０５の内部構成を示すブロック図である。選択部１００６及び選択部１００５以外は、状態変数算出部１０１の処理結果を用いていないので、状態変数算出部１０１と並行して動作する。また、シンボル生成部１０４とコンテキスト変数算出部１０５とは並行して動作する。
【００２４】
コンテキスト変数記憶部１０３から入力される第１のコンテキスト変数であるpStateIdxの６ビットの値をインデックスとして、transIdxLPSテーブル１００１及びtransIdxMPSテーブル１００２が並行にテーブル引きされる。この結果、pStateIdxの次の確率状態を表す２つの候補値であるpStateIdx_LPS及びpStateIdx_MPSが選択部１００６に入力される。更に、もう一方のコンテキスト変数であるMPSは、入力されるpStateIdxと比較部１００３において"000000"と比較される。選択部１００４はこの比較部１００３の結果出力に応じて、入力されたMPS又はその論理を反転した値のいずれかを選択する。具体的には、比較部１００３の比較結果が一致を示す場合（図１４のステップＳ６０６においてpstateIdx=０の場合）は、選択部１００４は入力されたMPSの論理を反転した値を出力する。一方、比較部１００３の比較結果が不一致を示す場合は、選択部１００４は入力されたMPSをそのまま出力する。
【００２５】
選択部１００６及び選択部１００５においては、状態変数算出部１０１から入力されるMPSorNot信号に応じて、それぞれに入力されている２つの信号から１つを選択して出力する。こうして、コンテキスト変数算出部１０５は、第２のコンテキスト変数のpStateIdx'及びMPS'を出力し、これらをコンテキスト変数記憶部１０３に保存する。より具体的には、MPSorNot信号がMPSを選択することを表す場合、選択部１００６からはpStateIdx_MPSが、選択部１００５からは入力されたMPSが出力される。また、MPSorNot信号がMPSを選択しないことを表す場合、選択部１００６からはpStateIdx_LPSが、選択部１００５からは選択部１００４から入力された信号（MPS又はその反転信号）が出力される。以上の処理は、図１４のステップＳ６０４、Ｓ６０６〜Ｓ６０８に対応する。コンテキスト変数記憶部１０３に保存された第２のコンテキスト変数は、次回の復号処理において、第１のコンテキスト変数として用いられる。
【００２６】
図５は、本実施形態による再正規化部１０６の内部構成を示すブロック図である。再正規化部１０６には、状態変数算出手段１０１から出力された第２の状態変数（codlRange'及びcodlOffset'）と符号化データ（Cin）が入力される。シフト量検出部１１０は、第２の状態変数のうちのcodlRange'のMSBからLSBに向けて始めにビット値"１"が出現したビット位置を検出することによってシフト量を検出する。図６は、シフト量検出部１１０１の処理を説明する図である。図中のＸで示されたビットの値は０或いは１のどちらでもよいことを表す。
【００２７】
切り出し部１１０４は、シフト量検出部１１０１からのシフト量で指示されるビット数分だけ、入力された符号化データ（Cin）のMSB側から切り出し、その左側に０を付加して９ビットのデータ（切り出された符号化データ）を生成する。図７は、シフト量に応じた符号化データの切り出し処理を説明する図である。図７中のCin[7:0]は入力される符号化データのMSBから８ビットのデータを表す。
【００２８】
第１シフト部１１０２は、第２の状態変数のうちのcodlRange'のデータを、シフト量検出部１１０１で検出されたシフト量だけ左ビットシフトし、その結果を第３の状態変数のcodlRange''として出力する。
【００２９】
第２シフト部１１０３は、第２の状態変数のうちのcodlOffset'のデータを、シフト量検出部１１０１で検出されたシフト量だけ左ビットシフトする。論理和演算部１１０５は、第２シフト部１１０３からのシフト結果（codlOffset'が左シフトされた信号）と、切り出し部１１０４からの切り出された符号化データとを論理和演算し、結果を第３の状態変数のcodlRange''として出力する。再正規化部１０６は、以上のようにして取得した第３の状態変数を、状態変数記憶部１０２へ保存する。以上の処理は、図１５に示した処理に対応する。
【００３０】
図８は、本実施形態による最終シンボル判定部１０７の構成を示すブロック図である。本実施形態では、最終シンボル判定部１０７の構成は、最終シンボルの判定が困難である結合ユーナリ／Ｋ次指数Golomb符号によって２値化されたシンタックス要素を対象とした場合を説明する。
【００３１】
最終シンボル判定部１０７は、シンボル生成部１０４から出力されたシンボルデータとbinIdxを入力し、最終シンボル判定を行う。尚、binIdxは、不図示の外部カウンタによって計数された、同一シンタックス要素内における現在入力されているシンボルデータの先頭からの位置を示す値である。
【００３２】
比較部１４０１は、シンボル生成部１０４から出力されたシンボルデータと値０とを比較することにより、当該シンボルデータが０であるか否かを判定する。一方、BinIdxは、減算部１４０２において定数uCoffと減算される。この定数uCoffは、例えばシンタックス要素がcoeff_abs_level_minus1の場合には値１５である。また、定数uCoffは、シンタックス要素が動きベクトルを表現したmvd_l0[][][0]或いはmvd_l1[][][0]或いはmvd_l0[][][1]或いはmvd_l1[][][1]の場合には値１０である。減算部１４０２の演算結果により得られるMSBの値（符号）は、現在のシンボルデータがユーナリ符号或いはGolomb符号のどちらで２値化されたかを示す信号となる。
【００３３】
減算部１４０２の減算結果が正である場合には、ユーナリ符号によって２値化されたシンボルデータであり、比較部１４０１によってシンボルデータが値０である場合には最終シンボルデータである事を示す信号が、最終シンボル判定部１０７から出力される。
【００３４】
一方、減算部１４０２の減算結果が負である場合には、Golomb符号により２値化されたシンボルデータである。この場合には、比較部１４０１によって最初に検出された値０であるシンボルデータのサイクルで、減算結果の値がラッチ部１４０６にラッチされる。Golomb符号では、最初に現れた０を中心として左と右のビット数が同じになる。例えば“00011”の場合、３つめの０を中心に左右対称のビット数“00”“11”からなる符号となる。従って、ラッチ部１４０６にラッチされる値はGolomb符号のサフィックスのシンボル数を表す値である。また、同時にカウンタ部１４０７は、比較部１４０１によって最初に検出された値０であるシンボルデータのサイクルでシンボルデータのカウントアップを始める。比較部１４０８は、カウンタ部１４０７のカウント値とラッチ部１４０６にラッチされたGolomb符号のサフィックスのシンボル数とを比較する。比較部１４０８は、両入力値が一致した場合、即ち、２つの信号の値が等しくなったサイクルで、最終シンボルデータであることを示す信号を出力する。
【００３５】
逆２値化部１０８は、例えば図１２で示したような２値化処理の逆動作を行う。即ち、図１２の右側に示されるシンボルデータ列を左側の欄に示されるシンボルに変換する。
【００３６】
以上説明した本実施形態によるエントロピー復号装置の動作を、図９のフローチャートを用いて更に説明する。
【００３７】
ステップＳ１５０２において、状態変数算出部１０１はコンテキスト変数記憶部１０３と状態変数記憶部１０２から第１のコンテキスト変数と第１の状態変数を読み出す。そして、ステップＳ１５０３において、状態変数算出部１０１は、これら第１のコンテキスト変数と第１の状態変数を用いて、シンボル選択信号を決定するとともに、コンテキスト変数の更新及び再正規化処理に利用可能な第２の状態変数を算出する。
【００３８】
ステップＳ１５０４において、シンボル生成部１０４は、上記シンボル選択信号に基づいてシンボルを生成し、これを最終シンボル判定部１０７へ送る。ステップＳ１５０７において、最終シンボル判定部１０７は、シンボル生成部１０４から送られてきたシンボルからシンボルデータ列を生成し、最終シンボル判定を行う。そして、最終シンボルでなければ、処理をステップＳ１５０２に戻す。
【００３９】
一方、ステップＳ１５０５では、コンテキスト変数算出部１０５が、ステップＳ１５０４で出力された第２の状態変数とシンボル選択信号、及び上記第１のコンテキスト変数を用いて第２のコンテキスト変数を算出する。そして、ステップＳ１５０８において、コンテキスト変数算出部１０５は、ステップＳ１５０５で算出した第２のコンテキスト変数をコンテキスト変数記憶部１０３に書き込む。コンテキスト変数記憶部１０３に書き込まれた第２のコンテキスト変数は、次にステップＳ１５０２の処理が実行された場合に、第１のコンテキスト変数として用いられる。
【００４０】
また、ステップＳ１５０６では、再正規化部１０６が第２の状態変数と復号対象の符号化データを用いて、第３の状態変数を算出する。そして、ステップＳ１５０９において、再正規化部１０６は、ステップＳ１５０６で算出した第３の状態変数を状態変数記憶部１０２に書き込む。状態変数記憶部１０２に書き込まれた第３の状態変数は、次にステップＳ１５０２の処理が実行された場合に、第１の状態変数として用いられる。
【００４１】
以上説明したように、本実施形態の復号装置は、算術復号処理の状態を表す状態変数、及び、シンボルの確率状態を表すコンテキスト変数を用いて、入力された符号化データを復号する復号装置である。尚、状態変数はcodlRange、codlOffsetを含み、コンテキスト変数はMPS、pStateIdxを含む。そして、状態変数算出部１０１が状態変数及びコンテキスト変数を用いて決定したシンボル選択信号（MPSorNot）は、コンテキスト変数算出部１０５及び再正規化部１０６の動作を待たずに、後段の処理によって利用されるように構成されている。このため、本実施形態の復号装置は処理速度を向上させることができる。
【００４２】
また、本実施形態によれば、コンテキスト変数算出部１０５と再正規化部１０６とを並列動作させることにより、状態変数及びコンテキスト変数の更新処理を高速化し、復号処理全体の速度を向上させている。
【００４３】
更に、本実施形態によれば、シンボル生成部１０４〜最終シンボル判定部１０７の処理と、コンテキスト変数算出部１０５の処理と、再正規化部１０６の処理とを並列に実行させることにより、復号処理全体の速度を向上させている。即ち、状態変数算出部１０１において、シンボル選択信号と最終的な状態変数（再正規化処理により得られる状態変数）を算出する前の第２の状態変数を算出し、これによりシンボル生成、コンテキスト変数生成及び再正規化処理を並行に実行させる。このため、最終シンボル判定部１０７に必要なシンボルデータが、コンテキスト変数算出部１０５と再正規化部１０６の処理が除外された論理で生成されることになり、高速な最終シンボルの判定が可能となる。更に、シンボル生成処理の出力を用いて最終シンボルであるか否かの判定を行うため、処理の重たい最終シンボル判定処理と、コンテキスト変数及び再正規化処理とを並列に実行できることになり、エントロピー復号化処理を高速に実現出来る。この結果、例えば、１シンボル／サイクルで処理可能な高速な算術復号化を用いたエントロピー復号化装置を提供することができる。
【００４４】
＜他の実施形態＞
なお、上記では、ハードウェア構成による算術復号装置を説明したが、ソフトウェアを利用して算術復号装置を構成するようにしてもよい。その場合、上述した並列動作をマルチスレッド（マルチプロセッサ）で実現すればよい。
【００４５】
従って、本発明の目的は前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体に格納されたプログラムコードを、コンピュータ（又はＣＰＵ、ＭＰＵ）が読み出し実行することによっても、達成されることは言うまでもない。例えば、上記記録媒体はシステム或いは装置に供給され、そのシステム或いは装置のコンピュータが記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００４６】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００４７】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現される場合に限られるものではない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOperating System（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００４８】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれ、ＣＰＵなどにより実行される場合も含まれる。この場合、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００４９】
【図１】実施形態によるエントロピー復号装置（算術復号装置）の構成例を示すブロック図である。
【図２】実施形態の状態変数算出部１０１における内部構成を示すブロック図である。
【図３】実施形態によるシンボル生成部１０４の内部構成を示すブロック図である。
【図４】実施形態によるコンテキスト変数算出部１０５の内部構成を示すブロック図である。
【図５】実施形態による再正規化部１０６の内部構成を示すブロック図である。
【図６】実施形態によるシフト量検出部１１０１の処理を説明する図である。
【図７】シフト量に応じた符号化データの切り出し処理を説明する図である。
【図８】実施形態による最終シンボル判定部１０７の構成を示すブロック図である。
【図９】実施形態による復号装置の動作を示すフローチャートである。
【図１０】ＣＡＢＡＣ復号処理CABACParsing（）を示すフローチャートである。
【図１１】H.264 Reference SoftwareによるＣＡＢＡＣ処理のソースコードを示す図である。
【図１２】連結ユーナリ／Ｋ次指数Golomb符号化の処理例を示す図である。
【図１３】H.264 Reference SoftwareによるＣＡＢＡＣ処理のハードウエア構成を説明するブロック図である。
【図１４】ＣＡＢＡＣ復号処理における、DecodeDecision（）のフローチャートである。
【図１５】ＣＡＢＡＣ復号処理における、RenormD（）のフローチャートである。
【図１】
2008118303.tif 000003
【図２】
2008118303.tif 000004
【図３】
2008118303.tif 000005
【図４】
2008118303.tif 000006
【図５】
2008118303.tif 000007
【図６】
2008118303.tif 000008
【図７】
2008118303.tif 000009
【図８】
2008118303.tif 000010
【図９】
2008118303.tif 000011
【図１０】
2008118303.tif 000012
【図１１】
2008118303.tif 000013
【図１２】
2008118303.tif 000014
【図１３】
2008118303.tif 000015
【図１４】
2008118303.tif 000016
【図１５】
2008118303.tif 000017