(57)【要約】【課題】本発明は、復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置に関し、例えばITU-T H.264 方式のデコーダに適用して、従来に比して復号化処理を高速度化する。【解決手段】本発明は、例えば値が０等の、特定値のシンタックスエレメントの連続数を検出し、この検出結果に基づいてこのシンタックスエレメントを復号する。【選択図】        図１
2008034920.tif 000002
【特許請求の範囲】
【請求項１】
所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法において、
前記入力ビットストリームは、
前記係数データ列における特定値の未処理の係数データの数に応じて選択されたテーブルを用いて、前記特定値でない前記係数データ毎に、前記係数データ列における続く前記特定値の係数データの数を示す特定のシンタックスエレメントが少なくとも割り当てられ、
前記復号化方法は、
前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、
前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が０である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、
前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、
前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、
前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有する
ことを特徴とする復号化方法。
【請求項２】
前記特定のシンタックスエレメントが、
run beforのシンタックスエレメントである
ことを特徴とする請求項１に記載の復号化方法。
【請求項３】
前記入力ビットストリームが、
ITU-T H.264 方式のＣＡＶＬＣ処理によるビットストリームである
ことを特徴とする請求項２に記載の復号化方法。
【請求項４】
coeff token のシンタックスエレメントを復号するcoeff token の復号ステップと、
total zeros のシンタックスエレメントを復号するtotal zeros の復号ステップとを有する
ことを特徴とする請求項３に記載の復号化方法。
【請求項５】
level のシンタックスエレメントを復号するlevel の復号ステップを有する
ことを特徴とする請求項２に記載の復号化方法。
【請求項６】
所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法のプログラムにおいて、
前記入力ビットストリームは、
前記係数データ列における特定値の未処理の係数データの数に応じて選択されたテーブルを用いて、前記特定値でない前記係数データ毎に、前記係数データ列における続く前記特定値の係数データの数を示す特定のシンタックスエレメントが少なくとも割り当てられ、
前記復号化方法は、
前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、
前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が０である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、
前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、
前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、
前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有する
ことを特徴とする復号化方法のプログラム。
【請求項７】
所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法のプログラムを記録した記録媒体において、
前記入力ビットストリームは、
前記係数データ列における特定値の未処理の係数データの数に応じて選択されたテーブルを用いて、前記特定値でない前記係数データ毎に、前記係数データ列における続く前記特定値の係数データの数を示す特定のシンタックスエレメントが少なくとも割り当てられ、
前記復号化方法は、
前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、
前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が０である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、
前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、
前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、
前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有する
ことを特徴とする復号化方法のプログラムを記録した記録媒体。
【請求項８】
所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化装置において、
前記入力ビットストリームは、
前記係数データ列における特定値の未処理の係数データの数に応じて選択されたテーブルを用いて、前記特定値でない前記係数データ毎に、前記係数データ列における続く前記特定値の係数データの数を示す特定のシンタックスエレメントが少なくとも割り当てられ、
前記復号化装置は、
前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択部と、
前記テーブル選択部で選択したテーブルを用いて、前記特定値の係数データの数が０である前記特定のシンタックスエレメントの連続数を検出する連続数検出部と、
前記連続数検出部で検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号部と、
前記連続数検出部、前記特定シンタックスエレメントの復号部の処理に応じて、前記特定値の未処理の係数データの数を更新する更新部と、
前記連続数検出部で検出した連続数と、前記特定シンタックスエレメントの復号部の復号結果とに基づいて、前記係数データ列を復号する係数データの復号部とを有する
ことを特徴とする復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置に関し、例えばITU(International Telecommunication Union) -T
H.264 方式のデコーダに適用することができる。本発明は、値が０等の特定値のシンタックスエレメントの連続数を検出し、この検出結果に基づいてこのシンタックスエレメントを復号することにより、従来に比して復号化処理を高速度化することができるようにする。
【背景技術】
【０００２】
従来、ＭＰＥＧ（Moving Picture Experts Group）−２、ＭＰＥＧ−４等の符号化処理では、所定の符号化処理単位で画像データを直交変換処理し、その結果得られる係数データを可変長符号化処理している。またこの可変長符号化処理では、ジグザグスキャンの順序で得られる係数データ列において、値０の係数の連続する長さ（ラン）と、続く値０でない係数データの係数値とを組み合わせた符号語毎に、可変長符号テーブルを参照して可変長符号化データを生成している。
【０００３】
この符号化処理に関して、例えば特開２００２−７６９０８号公報には、ラン長と値０でない係数値とを同時並列的に処理して、処理速度を向上する工夫が提案されている。
【０００４】
これに対してITU-T H.264 方式のＣＡＶＬＣ（Context Adaptive Variable Length Coding ）処理では、ラン数と値０でない係数値とを個別に可変長符号化処理している。より具体的に、ITU-T H.264 方式のＣＡＶＬＣ処理では、値０でない係数値を適応可変長符号化処理する。また未処理のラン数の総数に応じて複数の可変長符号化テーブルから１つの可変長符号化テーブルを選択し、この選択した可変長符号化テーブルでラン数を符号化処理している。
【０００５】
ここで図１２は、ITU-T H.264 方式のＣＡＶＬＣ処理におけるシンタックスエレメントを示す図表である。なお以下において、各シンタックスエレメントは、例えばTotalCoeffのシンタックスエレメントをTotalCoeffと記載して、シンタックスエレメントの表記を省略する。これらのシンタックスエレメントにおいて、TotalCoeffは、符号化処理する処理ブロック中に存在する値０でない係数（以下、非０係数と呼ぶ）の数である。従って図１３（Ａ）に示すように係数データが計算された場合にあって、低次の側からジグザグスキャンした係数データ列が図１３（Ｂ）で示される場合、値＋２３、−４、＋１１、＋８、−３、＋１、−１の７個の係数データがTotalCoeffの対象となり、TotalCoeffは値７となる。なおここで図１３（Ａ）は、４×４画素の処理ブロックを直交変換処理して得られる係数データを示す図であり、係数値を数字で示し、矢印で低次側から高次側へのジグザクスキャンを示す。また図１３（Ｂ）は、図１３（Ａ）の係数値をスキャン順に並べた表である。
【０００６】
TrailingOnesは、処理ブロック中において最後に連続する絶対値１の係数の個数である。なおTrailingOnesは、絶対値１の係数の個数が３個以上の場合、３個とされる。また間に含まれる値０の係数は、無視される。従って図１３（Ａ）の例では、図１３（Ｂ）に示すように、値＋１、０、−１で連続する係数データのうちの値＋１、−１の係数データがTrailingOnesで表され、この場合、TrailingOnesは値２となる。
【０００７】
coeff token は、TotalCoeffとTrailingOnesとを組み合わせたシンタックスエレメントであり、図１３（Ｂ）の例では、〔２，７〕で表される。
【０００８】
trailing ones sign flag は、最後に連続する絶対値１の係数の符号である。従ってtrailing ones sign flag は、TrailingOnesで表された係数値が対象となり、図１３（Ｂ）の例では、値＋１、０、−１で連続する係数データのうちの値＋１、−１の係数データがTrailingOnesで表されることから、この場合、この値＋１、−１の係数データの符号がtrailing ones sign flag で表される。trailing ones sign flag は、高次側より、＋及び−がそれぞれ０及び１で表される。
【０００９】
level prefixは、係数を符号化した際のprefix部分であり、level suffixは、係数を符号化した際のsuffix部分である。level は、ＤＣＴ係数値であり、trailing ones sign flag で定義される絶対値が値１の係数データ、値０の係数データは除外される。
【００１０】
total zeros は、０係数の総数であり、最後の非０係数以前の０係数の個数である。従って図１３の例では、total zeros は、値５である。
【００１１】
run beforeは、係数データ列を高次側から見た場合に、各非０係数の直前の０係数の連続個数である。従って図１３の例では、値＋２３、−４、＋１１、＋８、−３、＋１、−１の７個の係数データが非０係数であり、値−１の係数データが高次側の先頭、非０係数であることから、図１３（Ｂ）に示すように、run beforeは、値−１、＋１、−３、＋８、＋１１、−４、＋２３の係数データに対して、それぞれ値１、２、０、２、０、０となる。
【００１２】
zerosLeft は、total zeros の内の未処理の０係数の数である。従って図１３（Ｂ）の例において、値−１の係数データが処理対象である場合、zerosLeft は、値５となる。
【００１３】
ITU-T H.264 方式のＣＡＶＬＣ処理では、この図１２で定義される各シンタックスエレメントが、図１４に示す順序でビットストリーム中に格納される。なおここで図１４（Ａ）は、直交変換処理による係数データを示し、level11 〜level0は、level で定義される係数データであり、０は、値０の係数データである。またt1-2〜t1-0は、trailing ones sign flag で定義される係数データである。
【００１４】
すなわちビットストリームは、初めにcoeff token が割り当てられ、続いてtrailing ones sign flag が順次高次側から割り当てられる。また続いてlevel が高次側から割り当てられ、total zeros が割り当てられる。また続いてrun beforeが高次側から割り当てられる。
【００１５】
従って図１３の例では、図１５に示すように、coeff token 〔２，７〕、trailing ones sign flag −、trailing ones sign flag ＋、level −３、level ＋８、level ＋１１、level −４、level ＋２３、total zeros ５、run before  １、run before  ２、run before  ０、run before  ２のシンタックスエレメントが順次ビットストリーム中に格納される。ここで値＋８に対するrun before ２を処理することによりzerosLeftが０になり値＋１１と値−４の係数データに対するrun beforeの処理は行わない。
【００１６】
このシンタックスエレメントの格納順序に対応してＣＡＶＬＣ処理では、図１６及び図１７に示す処理手順を符号化処理単毎に実行して、各シンタックスエレメントを符号化処理する。
【００１７】
すなわちＣＡＶＬＣの符号化処理は、ステップＳＰ１からステップＳＰ２に移り、coeff token を符号化処理する。ここで符号化処理は、ラスタ走査開始端側に隣接する符号化処理ブロックから可変長符号化テーブルの選択基準値ｎＣを求める。なおここでこのラスタ走査開始端側に隣接する符号化処理ブロックは、真上及び左側の符号化処理ブロックである。また選択基準値ｎＣは、例えばこの２つの符号化処理ブロックにおけるＤＣＴ係数の平均値である。符号化処理は、この選択基準値ｎＣに応じてcoeff token を符号化処理する複数の可変長符号化テーブルから１つの可変長符号化テーブルを選択し、この選択した可変長符号化テーブルでcoeff token を符号化処理する。
【００１８】
なおここで図１８〜図２１に、coeff token を符号化処理する可変長符号化テーブルを示す。coeff token には、選択基準値ｎＣが値０以上、値２未満の場合、選択基準値ｎＣが値２以上、値４未満の場合、選択基準値ｎＣが値４以上、値８未満の場合、選択基準値ｎＣが値８以上の場合、選択基準値ｎＣが値−１の場合の、５のテーブルが用意されている。従って図１３の例によるcoeff token 〔２，７〕は、選択基準値ｎＣに応じて、図１９の上から７段目の「0000 0000 101 」、「0000 0010 1 」、「0010 01 」又は「011010」に符号化処理されることになる。従って例えば選択基準値ｎＣが値０以上、値２未満の場合、coeff token 〔２，７〕は、「0000 0000 101 」にエンコードされる。
【００１９】
続いて符号化処理は、ステップＳＰ３に移り、係数データの総数TotalCoeff が０個でないことを確認する。またここで係数データの総数TotalCoeff が０個の場合、ステップＳＰ３からステップＳＰ４に移り、この符号化ブロックの処理を完了する。
【００２０】
これに対して係数データの総数TotalCoeff が０個でない場合、ステップＳＰ３からステップＳＰ５に移る。このステップＳＰ５において、符号化処理は、TrailingOnesが値０で無いことを確認し、ステップＳＰ５からステップＳＰ６に移る。
【００２１】
このステップＳＰ６において、TrailingOnesの値t1s をtrailing ones sign flag の処理回数をカウントするカウント値ｎにセットする。また続くステップＳＰ７において、TrailingOnesに設定した係数データのうちの、カウント値ｎで特定される係数データ（この場合は、TrailingOnesに設定した最も高次の係数データである）の符号を判定し、trailing ones sign flag をセットする。またカウント値ｎを値１だけディクリメントし、続くステップＳＰ８において、このカウント値の判定によりtrailing ones sign flag のセットを全て完了したか否か判断する。ここで否定結果が得られると、符号化処理は、ステップＳＰ７に戻り、続くtrailing ones sign flag をセットする。これに対してtrailing ones sign flag のセットを全て完了すると、ステップＳＰ８からステップＳＰ９に移る。なおステップＳＰ５において、TrailingOnesが値０であることが確認された場合、このステップＳＰ５から直接ステップＳＰ９に移る。
【００２２】
従ってこの図１６に示す処理では、trailing ones sign flag の数だけステップＳＰ７の処理を実行し、図１３（Ｂ）の例では、２つのtrailing ones sign flag を「10」に符号化処理する。
【００２３】
続くステップＳＰ９において、符号化処理は、TotalCoeffの値が、TrailingOnesの値と一致しないことを確認する。ここでTotalCoeffの値が、TrailingOnesの値と一致しないことを確認すると、符号化処理は、ステップＳＰ１０に移り、TotalCoeffの値からTrailingOnesの値を減算し、trailing ones sign flag にセットされていない非０係数の数を計算する。またこの計算した値が非０係数の処理回数をカウントするカウント値ｎにセットする。
【００２４】
符号化処理は、続いてステップＳＰ１１に移り、カウント値ｎで特定される非０係数のlevel をコンテキスト計算して符号化処理する。なおこのlevel 符号化処理の詳細は後述する。またカウント値ｎを値１だけディクリメントし、続くステップＳＰ１２において、このカウント値ｎの判定により非０係数のlevel を全て処理したか否か判断する。ここで否定結果が得られると、符号化処理は、ステップＳＰ１１に戻り、続く非０係数のlevel
を符号化処理する。これに対して非０係数のlevel を全て処理すると、ステップＳＰ１２からステップＳＰ１３に移る。
【００２５】
このステップＳＰ１３において、TotalCoeffが取り得る値の最大値でないことを確認する。ここでTotalCoeffが取り得る値の最大値の場合、既に全ての係数データの符号化処理が完了していることから、ステップＳＰ１３からステップＳＰ１４に移ってこの処理手順を終了する。これに対してTotalCoeffが取り得る値の最大値でないことが確認されると、ステップＳＰ１３からステップＳＰ１５に移る。なおステップＳＰ９において、TotalCoeffの値が、TrailingOnesの値と一致することが確認された場合、ステップＳＰ９から直接ステップＳＰ１５に移る。
【００２６】
従って符号化処理は、TotalCoeffの値の数だけ、ステップＳＰ１１の処理を実行して非０係数のlevel をデコードし、図１３（Ｂ）の例では、−３、＋８、＋１１、−4 、＋２３のlevel を順次処理して「0001 0000 0001 0000 0010 0111 1000 0011 00」の符号化データ列を生成する。
【００２７】
続くステップＳＰ１５において、符号化処理は、符号化テーブルを用いてtotal zeros
を符号化処理する。ここで図２２及び図２３に、それぞれ４×４ブロック及び２×２ブロックの符号化処理単位に用意されたtotal zeros を符号化処理する可変長符号化テーブルを示す。total zeros には、TotalCoeffの各値に応じてテーブルが用意されている。従って符号化処理は、TotalCoeffの値に応じてテーブルを選択し、この選択したテーブルを用いてtotal zeros を符号化処理する。従って図１３（Ｂ）の例によるtotal zeros の値５は、TotalCoeffが値７であることから、「11」に符号化処理される。
【００２８】
また続いてzerosLeft の初期値にtotal zeros の値をセットする。またzerosLeft の処理回数をカウントするカウント値ｎにTotalCoeffの値をセットする。続いてステップＳＰ１６に移り、total zeros の値が０でないことを確認し、total zeros の値が０の場合、ステップＳＰ１６からステップＳＰ１４に移ってこの処理手順を終了する。これに対してtotal zeros の値が０でない場合、ステップＳＰ１６からステップＳＰ１７に移る。
【００２９】
このステップＳＰ１７において、符号化処理は、処理回数を示すカウント値ｎで特定される非０係数（この場合、最も高次側の非０係数である）のrun beforeを符号化処理し、zerosLeft 、カウント値ｎを更新する。また続くステップＳＰ１８において、zerosLeft を判定して未だ未処理のrun beforeが存在するか否か判断し、ここで否定結果が得られると、ステップＳＰ１８からステップＳＰ１４に移ってこの処理手順を終了する。これに対してステップＳＰ１８で肯定結果が得られると、ステップＳＰ１８からステップＳＰ１９に移り、カウント値ｎの判定により未だ未処理の係数処理のrun beforeが存在するか否か判断する。ここで否定結果が得られると、ステップＳＰ１９からステップＳＰ１４に移ってこの処理手順を終了する。これに対してステップＳＰ１９で肯定結果が得られると、ステップＳＰ１９からステップＳＰ１７に移って続くrun beforeを符号化処理する。
【００３０】
ここで図２４は、run beforeシンタックスエレメントの符号化処理の処理手順を示すフローチャートである。なおこの図２４の処理手順は、図１７のステップＳＰ１７−ＳＰ１８−ＳＰ１９−ＳＰ１７の処理手順を詳細に示すものである。従って以下の説明は、言うまでもなく図１６及び図１７の説明と重複する部分がある。
【００３１】
符号化処理は、この処理手順を開始すると、ステップＳＰ３１からステップＳＰ３２に移り、TotalCoeffの値から値１を減算し、処理回数を示すカウント値ｎに減算値をセットする。
【００３２】
また続くステップＳＰ３３において、total zeros の値でrun beforeを符号化処理するテーブルを選択する。ここで図２５に、run beforeを符号化処理するテーブルを示す。run beforeには、未処理の０係数の数であるzerosLeft の値が値１の場合、zerosLeft の値が値２の場合、zerosLeft の値が値３の場合、zerosLeft の値が値４の場合、zerosLeft
の値が値５の場合、zerosLeft の値が値６の場合、zerosLeft の値が値６より多い場合の、７個のテーブルが用意されており、zerosLeft の値に応じて符号化処理に使用するテーブルが選択される。ここで図１３（Ｂ）の場合、total zeros は５であることから、この場合、total zeros が値５のテーブルが選択される。
【００３３】
続いて符号化処理は、ステップＳＰ３４に移り、ステップＳＰ３３で選択したテーブルを用いて、カウント値ｎで特定されるrun beforeを符号化処理する。従って図１３（Ｂ）の例では、高次側から５番目の−１の係数について、この係数の直前の０係数の連続する個数である値１のrun beforeが、「10」に符号化処理される。
【００３４】
続いてＣＡＶＬＣ処理では、ステップＳＰ３５に移り、total zeros の値から、直前のステップＳＰ３４で符号化処理したrun beforeの値を減算し、未処理の０係数の数であるzerosLeft の値にセットする。また処理回数を示すカウント値ｎを値１だけ減算する。
【００３５】
続いてＣＡＶＬＣ処理では、zerosLeft の値の判定により、全てのrun beforeの符号化処理を完了したか否か判断し、ここで肯定結果が得られると、ステップＳＰ３７に移ってこの処理手順を終了する。これに対してステップＳＰ３６で否定結果が得られると、ステップＳＰ３６からステップＳＰ３８に移る。
【００３６】
ここでＣＡＶＬＣ処理では、処理回数を示すカウント値ｎの判定により全てのrun beforeの符号化処理を完了したか否か判断し、ここで肯定結果が得られると、ステップＳＰ３７に移ってこの処理手順を終了する。これに対してステップＳＰ３８で否定結果が得られると、ステップＳＰ３８からステップＳＰ４０に移る。またこのステップＳＰ４０において、zerosLeft の値でrun beforeを符号化処理するテーブルを選択し、ステップＳＰ３４に移る。
【００３７】
従って図１３（Ｂ）の例では、このステップＳＰ３４の処理において、zerosLeft の値が４である場合のテーブルが選択され、このテーブルを用いて、高次側から７番目の＋１の係数について、この係数の直前の０係数の連続する個数である値２のrun beforeが、「01」にデコードされる。また続くステップＳＰ３５で、zerosLeft の値が値２に更新された後、ステップＳＰ３６、ＳＰ３８からステップＳＰ４０に移り、ここでzerosLeft が値２のテーブルを選択する。またこのテーブルを用いて、高次側から１０番目の−３の係数について、run before値０を「１」にデコードする。また同様の処理の繰り返しによって、続く値＋８の係数データのrun beforeの値２を、zerosLeft の値２のテーブルを用いて「00」にデコードし、run beforeの符号化処理を完了する。
【００３８】
図１６、図１７及び図２４の処理により、図１３（Ｂ）に示す例では、「0000 0000 1011 0000 1000 0000 1000 0001 0011 1100 0001 1001 1100 1100 」のビットストリームが生成される。なお図２６は、この図１３（Ｂ）を例に取って示す符号化処理を示す図表である。
【００３９】
これに対して復号時、符号化時と同一の順序で順次ビットストリームを処理して図１４のシンタックスを順次デコードし、このデコードしたシンタックスを用いて各係数データを復号する。なおこの復号時は、テーブルの検索方法、コンテキストの処理方法が復号化の処理に対応するように実行される点を除いて、図１６、図１７の処理手順を順次実行して符号化処理時と同一に実行される。従って復号時の処理は、図１６及び図１７を流用して説明する。また図２７は、図１３の例による「0000 0000 1011 0000 1000 0000 1000 0001 0011 1100 0001 1001 1100 1100」の入力ビットストリームを復号化処理する場合の、一連の処理を示す図表である。
【００４０】
この場合、復号化処理では、選択基準値ｎＣを計算して図１８〜図２１に示すテーブルから符号化時に選択したテーブルを選択し、このテーブルを用いたパターンマッチングにより、入力ビットストリームの先頭側、１１ビットの「0000 0000 101 」をcoeff token
〔２，７〕にデコードする（図１６、ステップＳＰ２）。またこの先頭側、１１ビット分だけ入力ビットストリームをビットシフトさせる。
【００４１】
また続いてcoeff token 〔２，７〕のデコード結果からTrailingOnesが値２であることを検出し、この検出結果に基づいて、続く２ビット「10」をtrailing ones sign flag −及び＋にデコードする（図１６、ステップＳＰ７）。またこの２ビット分だけ入力ビットストリームをビットシフトさせる。
【００４２】
続いてcoeff token 〔２，７〕のデコード結果からTotalCoeff が値７であることが判り、またTrailingOnesが値２であることから、５個の係数０係数のlevel をコンテキスト計算して復号化処理する（図１７、ステップＳＰ１１）。またこのlevel をデコードした分だけ、入力ビットストリームをビットシフトさせ、図１３の例では、「1 1100 1100」のビットストリームが残ることになる。
【００４３】
復号化処理では、続いてtotalCoeff が値７のテーブル（図２２、図２３）を選択し、この残るビットストリームをパターンマッチング処理し、この残る入力ビットストリームの先頭２ビット「11」をtotal zeros の値５に復号する（図１７、ステップＳＰ１５）。またこの２ビット分だけ、残る入力ビットストリーム「1 1100 1100」をビットシフトさせ、入力ビットストリーム「100 1100」とする。
【００４４】
続いて復号化処理は、残る入力ビットストリーム「100 1100」を順次処理して、run
beforeをデコードする。
【００４５】
ここで図２８は、図２４との対比により、run beforeの復号化処理手順を示すフローチャートである。復号化処理は、この処理手順を開始すると、ステップＳＰ４１からステップＳＰ４２に移り、TotalCoeffの値から値１を減算し、処理回数を示すカウント値ｎに減算値をセットする。
【００４６】
また続くステップＳＰ４３において、total zeros の値でrun beforeを復号化処理するテーブルを選択する。続いて復号化処理は、ステップＳＰ４４に移り、ステップＳＰ４３で選択したテーブルを用いて、カウント値ｎで特定されるrun beforeを符号化処理する。従って図１３（Ｂ）の例では、高次側から５番目の−１の係数について、残る入力ビットストリーム「100 1100」の先頭２ビット「10」をrun beforeの値１に復号する。またこの２ビット分だけ、残る入力ビットストリーム「100 1100」をビットシフトさせ、入力ビットストリームを「0 1100」とする。
【００４７】
続いて復号化処理は、ステップＳＰ４５に移り、total zeros の値を、直前のステップＳＰ４４で復号化処理したrun beforeの値から減算し、未処理の０係数の数であるzerosLeft の値にセットする。また処理回数を示すカウント値ｎを値１だけ減算する。
【００４８】
続いて復号化処理は、zerosLeft の値の判定により、全てのrun beforeの復号化処理を完了したか否か判断し、ここで肯定結果が得られると、ステップＳＰ４７に移ってこの処理手順を終了する。これに対してステップＳＰ４６で否定結果が得られると、ステップＳＰ４６からステップＳＰ４８に移る。
【００４９】
ここで復号化処理では、処理回数を示すカウント値ｎの判定により全てのrun beforeの復号化処理を完了したか否か判断し、ここで肯定結果が得られると、ステップＳＰ４７に移ってこの処理手順を終了する。これに対してステップＳＰ４８で否定結果が得られると、ステップＳＰ４８からステップＳＰ４９に移る。またこのステップＳＰ４９において、zerosLeft の値でrun beforeを符号化処理するテーブルを選択し、ステップＳＰ４４に移る。
【００５０】
従って図１３（Ｂ）の例では、このステップＳＰ４４の処理において、zerosLeft の値が４である場合のテーブルが選択され、このテーブルを用いたパターンマッチング処理により、高次側から７番目の＋１の係数について、残る入力ビットストリーム「0 1100」の先頭２ビット「01」をrun beforeの値２に復号する。またこの２ビット分だけ、残る入力ビットストリーム「0 1100」をビットシフトさせ、入力ビットストリームを「100」とする。
【００５１】
また続くステップＳＰ４５で、zerosLeft の値が値２に更新された後、ステップＳＰ４６、ＳＰ４８からステップＳＰ４４に移り、ここでzerosLeft が値２のテーブルを選択する。またこのテーブルを用いたパターンマッチング処理により、高次側から１０番目の−３の係数について、残る入力ビットストリーム「100」の先頭１ビット「1」をrun beforeの値０に復号する。またこの１ビット分だけ、残る入力ビットストリーム「100」をビットシフトさせ、入力ビットストリームを「00」とする。また同様の処理の繰り返しによって、続く値＋２の係数データについて、zerosLeftが値２のテーブルを選択してパターンマッチング処理し、残る入力ビットストリーム「00」の先頭２ビット「00」をrun beforeの値２に復号する。続いてステップＳＰ４５でzerosLeftの値が値０に更新され、ステップＳＰ４６で肯定結果となり復号処理を終了する。
【００５２】
ところで上述した復号処理では、直前の処理結果でテーブルを選択して、特定のシンタックスエレメントを復号していることになる。具体的に、run beforeを復号する場合、復号に使用する可変長テーブルを、未処理のラン数の総数により切り換えており、この未処理のラン数の総数は、直前のrun beforeの復号によって確定する。従ってrun beforeの復号処理では、結局、連続するrun beforeを順次処理する必要があり、復号化処理を高速度化できない問題があった。
【特許文献１】特開２００２−７６９０８号公報
【発明の開示】
【発明が解決しようとする課題】
【００５３】
本発明は以上の点を考慮してなされたもので、従来に比して復号化処理を高速度化することができる復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置を提案しようとするものである。
【課題を解決するための手段】
【００５４】
上記の課題を解決するため請求項１の発明は、所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法に適用して、前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が０である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有するようにする。
【００５５】
また請求項６の発明は、所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法のプログラムに適用して、前記復号化方法は、前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が０である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有するようにする。
【００５６】
また請求項７の発明は、所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法のプログラムを記録した記録媒体に適用して、前記復号化方法は、前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が０である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有するようにする。
【００５７】
また請求項８の発明は、所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化装置に適用して、前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択部と、前記テーブル選択部で選択したテーブルを用いて、前記特定値の係数データの数が０である前記特定のシンタックスエレメントの連続数を検出する連続数検出部と、前記連続数検出部で検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号部と、前記連続数検出部、前記特定シンタックスエレメントの復号部の処理に応じて、前記特定値の未処理の係数データの数を更新する更新部と、前記連続数検出部で検出した連続数と、前記特定シンタックスエレメントの復号部の復号結果とに基づいて、前記係数データ列を復号する係数データの復号部とを有するようにする。
【００５８】
請求項１、請求項６、請求項７又は請求項８の構成によれば、特定値の係数データの数が０である特定のシンタックスエレメントは、連続するシンタックスエレメントがまとめて検出されて復号化され、また続く特定値の係数データの数が０でない特定のシンタックスエレメントについても、同時に復号される。従ってこれらの特定のシンタックスエレメントは、１つのシンタックスエレメント毎に処理することなく、まとめて処理するこができ、従来に比して復号化処理を高速度化することができる。
【発明の効果】
【００５９】
本発明によれば、従来に比して復号化処理を高速度化することができる。
【発明を実施するための最良の形態】
【００６０】
以下、適宜図面を参照しながら本発明の実施例を詳述する。
【実施例１】
【００６１】
（１）実施例の構成
図２は、本発明の実施例１の復号化装置を示すブロック図である。この復号化装置１は、ＣＡＶＬＣ処理により、順次入力されるITU-T H.264方式の入力ビットストリームbitstream から各符号化処理単位の係数データを復号する。この復号化装置１は、run beforeの処理を除いて、この係数データを復号するための各シンタックスエレメントの処理が、図１６及び図１７を用いて説明した従来の復号化装置と同一に実行される。復号化装置１は、復号した係数データを逆量子化、逆ＤＣＴ部２で逆量子化処理、逆ＤＣＴ処理した後、図示しないイントラ予測部、インター予測部で生成される予測値と逆量子化、逆ＤＣＴ部２の出力データＳ１とを加算し、元の画像データを復号する。
【００６２】
この復号化装置１は、例えばディジタルシグナルプロセッサ等の演算処理部によりこの図２に示す各機能ブロックが形成される。なおこの実施例において、この演算処理部が実行するプログラムは、この復号化装置１に事前にインストールされて提供されるものの、これに代えて光ディスク、磁気ディスク、メモリカード等の記録媒体に記録して提供するようにしてもよく、またインターネット等のネットワークを介して提供するようにしてもよい。また復号化装置１は、ハードウエアにより構成するようにしてもよい。
【００６３】
この復号化装置１において、可変長符号テーブル比較部３は、制御部４の制御に従ってcoeff token の復号化に使用する可変長復号化テーブルを選択し、この選択した可変長復号化テーブルを使用したパターンマッチングにより、coeff token を復号化して制御部４に通知する。また同様にして、total zeroの復号結果を制御部４に通知する。
【００６４】
ラン数複数同時可変長符号テーブル比較部５は、制御部４の制御に従って入力ビットストリームbitstream から値０のrun beforeが連続する個数ｘと、値０以外のrun beforeの値を検出して出力する。
【００６５】
有意テーブル作成部６は、ラン数複数同時可変長符号テーブル比較部５から出力される値０のrun beforeが連続する個数ｘと、値０以外のrun beforeの値とから、非０係数の配列を示す有意テーブルを作成する。より具体的に、値０以外のrun beforeの値は、対応する非０係数データに続く値０の係数データの数を示すことになる。これに対して値０のrun beforeが連続する個数ｘは、対応する非０係数データに続く非０係数の個数を示すことになる。これらの関係を利用して有意テーブル作成部６は、入力ビットストリームbitstream におけるシンタックスエレメントの配列の順序で、非０係数と、値０の係数とを識別する識別情報をテーブル形式で表した有意テーブルを作成する。有意テーブル作成部６は、この有意テーブルの識別データを低次側から逆量子化部、逆ＤＣＴ部２の処理に対応する順序で出力する。
【００６６】
係数復号部７は、制御部４の制御に従って入力ビットストリームbitstream からtrailing ones sign flag 、level を順次復号して出力する。
【００６７】
係数一時格納部８は、係数復号部７から出力される復号結果を一時格納し、逆量子化部、逆ＤＣＴ部２の処理に対応する順序に並べ替える。またこの並べ替えた復号化結果を、有意テーブル作成部６から対応する識別データが出力されるタイミングで順次出力する。
【００６８】
係数格納部９は、有意テーブル作成部６から出力される識別データが値０の係数を示している場合には、値０の係数値を格納するのに対し、有意テーブル作成部６から出力される識別データが非０係数を示している場合、係数一時格納部８から出力される復号化結果を格納し、符号化処理単位の係数データを再生する。係数格納部９は、この係数データを逆量子化部、逆ＤＣＴ部２の処理に対応する順序で順次出力する。
【００６９】
逆量子化部、逆ＤＣＴ部２は、係数格納部９の出力データを逆量子化処理、逆ＤＣＴ処理して出力する。
【００７０】
制御部４は、この復号化装置１全体の動作を制御する制御部である。制御部４は、各符号化処理単位の復号を開始すると、選択基準値ｎＣを計算し、この計算結果から処理に使用するテーブルを指示して、可変長符号テーブル比較部３にcoeff token の復号を指示する。また可変長符号テーブル比較部３からcoeff token の復号結果を取得し、TotalCoeff、TrailingOnesを検出する。
【００７１】
またこの検出したTrailingOnesに基づいて係数復号部７にtrailing ones sign flag の復号を指示し、さらにTotalCoeffに基づいて係数復号部７にlevel の復号を指示する。
【００７２】
さらに制御部４は、続くtotal zeros の復号を可変長符号テーブル比較部３に指示し、復号結果を取得する。制御部４は、この取得したtotal zeros の復号結果に基づいて、run beforeの復号をラン数複数同時可変長符号テーブル比較部５に指示する。またcoeff token の復号結果とtotal zeros の復号結果に基づいて有意テーブル作成部６に、ラン数複数同時可変長符号テーブル比較部５から出力される復号結果の処理を指示する。
【００７３】
従ってこの復号化装置１では、図１４との対比により図３に示すように、従来と同一の順序で入力ビットストリームbitstream から各シンタックスエレメントを復号化するようにして、run beforeの復号をまとめて実行する。
【００７４】
図１は、ラン数複数同時可変長符号テーブル比較部５を詳細に示すブロック図である。連続数判定部１１は、制御部４の制御により、zerosLeftの値に応じて複数のテーブルから１つのテーブルを選択し、この選択したテーブルを用いた入力ビットストリームbitstream のパターンマッチングにより、値０が連続するrun beforeの数ｘを検出する。
【００７５】
ここで図２５に示すrun beforeのテーブルでは、run beforeの値が０の場合、zerosLeftの値に応じたビット長で値１を出力するように構成されている。従ってzerosLeftが値１又は値２の場合、値１で連続するビット数が、値０のrun beforeが連続する数ｘであると判る。またzerosLeftが値３〜値６の場合、値１で連続するビット数を値２で割り算した値が、値０のrun beforeが連続する数ｘであると判る。またzerosLeftが値７以上の場合、値１で連続するビット数を値３で割り算した値が、値０のrun beforeが連続する数ｘであると判る。
【００７６】
このzerosLeftと値０のrun beforeが連続する数ｘとの関係に基づいて、連続数判定部１１は、zerosLeftが値１又は値２の場合、図４のテーブルを選択してパターンマッチングの処理を実行し、値０のrun beforeが連続する数ｘを検出する。またzerosLeftが値３〜値６の場合、図５のテーブルを選択してパターンマッチングの処理を実行し、値０のrun beforeが連続する数ｘを検出する。またzerosLeftが値７以上の場合、図６のテーブルを選択してパターンマッチングの処理を実行し、値０のrun beforeが連続する数ｘを検出する。
【００７７】
なお連続数判定部１１は、パターンマッチングする入力ビットストリームbitstream のビット長を未処理Coeff 数に応じて可変し、処理の負担を軽減する。この図４〜図６において、このパターンマッチングする範囲を丸印により示す。連続数判定部１１は、各範囲内で検出された値０のrun beforeが連続する数のうちで、最も値の大きな数を選択し、値０のrun beforeが連続する数ｘとする。またこれに対応するビットシフト量を検出してバレルシフタ１２に出力する。
【００７８】
バレルシフタ１２は、連続数判定部１１で値０のrun beforeが連続する数ｘが検出されれると、連続数判定部１１から出力されるビットシフト量の分だけ、入力ビットストリームbitstream をビットシフトさせ、値０以外のrun beforeに対応する入力ビットストリームbitstream を選択的にrun before復号部１３に出力する。
【００７９】
run before復号部１３は、図７に示すテーブルを用いたパターンマッチングにより、バレルシフタ１２から出力される入力ビットストリームbitstream からrun beforeを復号する。ここでこのバレルシフタ１２から出力される入力ビットストリームbitstream は、連続数判定部１１で値０のrun beforeが連続する数ｘが検出されて、値０以外のrun beforeに対応する入力ビットストリームbitstream であることから、この図７に示すテーブルは、図２５に示す従来のrun beforeのテーブルから値０のrun beforeを除いて作成される。
【００８０】
図８は、このラン数複数同時可変長符号テーブル比較部５を制御する制御部４の処理手順を詳細に示すフローチャートである。制御部４は、この処理手順を開始すると、ステップＳＰ５１からステップＳＰ５２に移る。ここで制御部４は、TotalCoeffから値１を減算し、処理回数をカウントするカウント値ｎに減算値をセットする。
【００８１】
また続くステップＳＰ５３で、total zeros の値をzerosLeftにセットし、このzeros
Leftに基づいて、図４〜図６のテーブルの選択を連続数判定部１１に指示する。
【００８２】
続いて制御部４は、ステップＳＰ５４に移り、連続数判定部１１で、値０で連続するrun beforeの数ｘを検出し、また続く値０以外のrun beforeの復号結果をrun before復号部１３で検出する。
【００８３】
続いて制御部４は、ステップＳＰ５５において、直前のステップＳＰ５４で処理した分、zerosLeftの値、処理回数を示すカウント値ｎを更新する。
【００８４】
また続くステップＳＰ５６において、zerosLeft の値の判定により、全てのrun beforeの符号化処理を完了したか否か判断し、ここで肯定結果が得られると、ステップＳＰ５７に移ってこの処理手順を終了する。
【００８５】
これに対してステップＳＰ５６で否定結果が得られると、制御部４は、ステップＳＰ５６からステップＳＰ５８に移る。ここで制御部４は、処理回数を示すカウント値ｎの判定により全てのrun beforeの符号化処理を完了したか否か判断し、ここで肯定結果が得られると、ステップＳＰ５７に移ってこの処理手順を終了する。
【００８６】
これに対してステップＳＰ５８で否定結果が得られると、ステップＳＰ５８からステップＳＰ５９に移る。またこのステップＳＰ５９において、現在のzerosLeft の値に基づいて、図４〜図６のテーブルの選択を連続数判定部１１に指示し、ステップＳＰ５４に移る。
【００８７】
（２）実施例の動作
以上の構成において、この復号化装置１（図２）では、ITU-T H.264方式の入力ビットストリームbitstream が可変長符号テーブル比較部３に入力され、選択基準値ｎＣに応じたテーブル（図１８〜図２１）を用いたパターンマッチングにより、TrailingOnesが復号される。またこのTrailingOnesに基づいて、続くtrailing ones sign flag 、level が係数復号部７で復号される。また続くtotal zeros が可変長符号テーブル比較部３で復号され（図２２及び図２３）、続くrun beforeがラン数複数同時可変長符号テーブル比較部５で処理される。またこのラン数複数同時可変長符号テーブル比較部５の処理結果が有意テーブル作成部６で処理され、この有意テーブル作成部６の処理結果と、係数一時格納部８を介して得られる係数復号部７のlevel の処理結果とから、直交変換処理した符号化処理単位をジグザグスキャンした係数データ列が生成される（図３、図１３、図１４）。この復号化装置１では、この係数データ列が逆量子化部、逆ＤＣＴ部２で処理された後、画像データに復号される。
【００８８】
このラン数複数同時可変長符号テーブル比較部５、有意テーブル作成部６におけるrun
beforeの処理において（図１）、入力ビットストリームbitstream は、連続数判定部１１で、現在のzerosLeftの値に応じたテーブルを用いたパターンマッチングにより値０のrun beforeが連続する個数ｘが検出され、この検出結果に基づいて、続く値０でないrun beforeがrun before復号部１３で復号される。またこの連続数判定部１１、run before復号部１３における処理によって、zerosLeftの値が更新され、さらに続く値０のrun beforeが連続する個数が検出され、この検出結果に基づいて、続く値０でないrun beforeがrun before復号部１３で復号される（図８）。復号化装置１では、このラン数複数同時可変長符号テーブル比較部５における処理が繰り返され、またこのラン数複数同時可変長符号テーブル比較部５の処理結果が有意テーブル作成部６で処理され、この有意テーブル作成部６の処理結果に従って係数格納部９に係数データ列が格納される。この復号化装置１では、このラン数複数同時可変長符号テーブル比較部５、有意テーブル作成部６におけるrun beforeの処理によって、従来に比して復号化処理を高速度化することができる。
【００８９】
すなわち図３２で説明した従来のrun beforeの復号では、run beforeのシンタックスエレメントの数だけ、ステップＳＰ４４−ＳＰ４５の処理を繰り返すことが必要になる。しかしながらこの実施例では、値０の連続するrun beforeの数と、続く値０でないrun beforeとをまとめて処理することができる。従って図３２のステップＳＰ４４−ＳＰ４５に対応する図８のステップＳＰ５４−ＳＰ５５の処理回数を、図３２の場合に比して格段的に少なくすることができ、run beforeの処理に要する時間を短くして復号化処理を高速度化することができる。
【００９０】
なおこのように値０の連続するrun beforeの数を検出して処理する場合、値０の連続するrun beforeの数が多くなれば多くなる程、ステップＳＰ５４−ＳＰ５５の処理回数を少なくすることができる。従って値０のrun beforeの数が多くなれば、値０の連続するrun 
beforeの数も増大することから、ステップＳＰ５４−ＳＰ５５の処理回数を少なくして処理時間を短くすることができる。
【００９１】
しかしながら逆の見方をすれば、run beforeが値０でない場合には、それ程、ステップＳＰ５４−ＳＰ５５の処理回数を少なくすることができず、復号化処理の時間短縮を図れないようにも思われる。しかしながらrun beforeが値０でない場合には、その分、入力ビットストリーム中のlevel の個数も少なくなり、値０の係数データが多くなる。従ってこの場合には、元々、復号化処理には、時間を要しないことになり、高速度に復号化処理することができる。
【００９２】
実際上、図１４に示すように、入力ビットストリームにおいて、level のシンタックスエレメントが１２個であり、run beforeのシンタックスエレメントが１４である場合、従来方法では、１４回、ステップＳＰ５４−ＳＰ５５の処理を繰り返す必要がある。これに対して復号化装置１では、これら１４個のrun beforeのシンタックスエレメントのうちの１３個が値０であり、最後の１個が値１であることから、これら１４個のrun beforeのシンタックスエレメントを同時に処理することができる。
【００９３】
なおこのような値０で連続するrun beforeのシンタックスエレメントの数を検出する処理に代えて、図２５に示す従来のrun beforeのテーブルを拡張して、複数のrun beforeを同時並列的に復号することにより処理速度を高速度化することも考えられる。しかしながらこの場合、run beforeを復号するテーブルの構成が格段的に大型化する欠点がある。これに対してこの実施例によれば、テーブルの大型化を有効に回避して、複数のrun beforeシンタックスエレメントをまとめて処理して処理速度を高速度化することができる。
【００９４】
（３）実施例の効果
以上の構成によれば、例えば値が０の特定値のシンタックスエレメントの連続数を検出し、この検出結果に基づいてこのシンタックスエレメントを復号することにより、従来に比して復号化処理を高速度化することができる。
【００９５】
またこの特定のシンタックスエレメントが、run beforのシンタックスエレメントであることにより、run beforeの処理を高速度化して、従来に比して復号化処理を高速度化することができる。
【００９６】
またこの復号する入力ビットストリームが、ITU-T H.264 方式のＣＡＶＬＣ処理によるビットストリームであることにより、ITU-T H.264 方式のＣＡＶＬＣ処理による入力ビットストリームを従来に比して高速度に復号することができる。
【００９７】
より具体的に、coeff token 、total zeros のシンタックスエレメントを復号するステップを設けることにより、さらにはITU-T H.264 方式のＣＡＶＬＣ処理による入力ビットストリームを従来に比して高速度に復号することができる。
【００９８】
またlevel のシンタックスエレメントを復号するlevel の復号ステップを有することにより、ラン数と値０でない係数値とを個別に可変長符号化した入力ビットストリームの処理に適用して、入力ビットストリームを従来に比して高速度に復号することができる。
【実施例２】
【００９９】
図９は、図２との対比により、本発明の実施例２の復号化装置を示すブロック図である。この復号化装置２１は、ラン数複数同時可変長符号テーブル比較部５、有意テーブル作成部６、係数格納部９に代えて、ラン数複数同時可変長符号テーブル比較部２２、係数格納部２３が設けられる点を除いて、実施例１の復号化装置１と同一に構成される。
【０１００】
ここでラン数複数同時可変長符号テーブル比較部２２は、制御部４の制御により、zerosLeftの値に応じて複数のテーブルから１つのテーブルを選択し、この選択したテーブルを用いた入力ビットストリームbitstream のパターンマッチングにより、値０が連続するrun beforeの数ｘ、続くrun beforeの復号結果を同時に検出し、この値０が連続するrun
beforeの数ｘと、続くrun beforeの復号結果とを対にして出力する。
【０１０１】
ここで図１０及び図１１は、zerosLeft が１の場合を例に取って、ラン数複数同時可変長符号テーブル比較部５に保持されるテーブルを示す図表である。このテーブルは、図４〜図７について上述したテーブルをzerosLeft 毎に、１つにまとめて、値０が連続するrun beforeの数ｘ、続くrun beforeの復号結果とを同時に検出できるように形成される。
【０１０２】
係数格納部２３は、このラン数複数同時可変長符号テーブル比較部２２の出力データに基づいて、係数データを構築して保持し、続く量子化、逆ＤＣＴ部２に出力する。
【０１０３】
この実施例のように値０の連続するrun beforeの数ｘを検出するテーブルと続くrun beforeを復号するテーブルとを一体化して、これら値０の連続するrun beforeの数ｘと続くrun beforeの復号結果とを対にして出力するようにしても、上述の実施例と同様の効果を得ることができる。
【実施例３】
【０１０４】
なお上述の実施例１においては、有意テーブル作成部６で非０係数と、値０の係数とを識別する識別データを用いて有意テーブルを作成し、この有意テーブルを用いて係数格納部９で元の係数データ列を復号する場合について述べたが、本発明はこれに限らず、ラン数複数同時可変長符号テーブル比較部２２の処理結果に基づいて値０の係数値を生成し、この生成した係数値を係数格納部９に格納して元の係数データ列を復号するようにしてもよい。このようにすれば有意テーブル作成部を省略することができる。
【０１０５】
またこれとは逆に、値０のrun beforeが連続する個数ｘを直接、係数格納部９に入力し、この個数ｘに基づいて値０の係数を係数格納部９で生成するようにして、処理サイクルを削減するようにしてもよい。
【０１０６】
また上述の実施例においては、本発明を復号化装置に適用する場合について述べたが、本発明はこれに限らず、符号化機能を有する復号化装置に本発明を適用して、図４〜図７のテーブルを符号化処理に使用するようにしてもよい。なおこの場合に、実施例２について上述したテーブルを使用すれば、複数のラン数を同時可変長符号化処理することができる。
【０１０７】
また上述の実施例においては、run beforeである特定のシンタックスエレメントについて、値０で連続するシンタックスエレメントを検出してこれら連続する複数のシンタックスエレメントをまとめて処理する場合について述べたが、本発明はこれに限らず、種々の値で連続する種々のシンタックスエレメントの数を検出してこれら連続する複数のシンタックスエレメントをまとめて処理するようにして、処理に要する時間を短くすることができる。
【０１０８】
また上述の実施例においては、ITU -T H.264方式のＣＡＶＬＣ処理による入力ビットストリームの復号処理に本発明を適用した場合について述べたが、本発明はこれに限らず、種々のフォーマットによる入力ビットストリームを復号化する場合に広く適用することができる。
【産業上の利用可能性】
【０１０９】
本発明は、例えばITU -T H.264方式のＣＡＶＬＣ処理による入力ビットストリームの復号処理に適用することができる。
【図面の簡単な説明】
【０１１０】
【図１】本発明の実施例１の復号化装置のラン数複数同時可変長符号テーブル比較部を詳細に示すブロック図である。
【図２】本発明の実施例１の復号化装置を示すブロック図である。
【図３】図２の復号化装置における入力ビットストリームの構成を示す図表である。
【図４】図１のラン数複数同時可変長符号テーブル比較部における連続数判定部の、zerosLeftが値１又は値２の場合のテーブルを示す図表である。
【図５】図１のラン数複数同時可変長符号テーブル比較部における連続数判定部の、zerosLeftが値３〜値６の場合のテーブルを示す図表である。
【図６】図１のラン数複数同時可変長符号テーブル比較部における連続数判定部の、zerosLeftが値７以上の場合のテーブルを示す図表である。
【図７】図１のラン数複数同時可変長符号テーブル比較部におけるrun before復号部のテーブルを示す図表である。
【図８】図１のラン数複数同時可変長符号テーブル比較部における処理手順を示すフローチャートである。
【図９】本発明の実施例２の復号化装置を示すブロック図である。
【図１０】図９の復号化装置に適用されるテーブルを示す図表である。
【図１１】図９の続きを示す図表である。
【図１２】ITU-T H.264 方式のＣＡＶＬＣ処理におけるシンタックスエレメントを示す図表である。
【図１３】ＣＡＶＬＣ処理におけるビットストリームの構成の説明に供する図表である。
【図１４】図１３とは異なる例によるＣＡＶＬＣ処理におけるビットストリームの構成の説明に供する図表である。
【図１５】シンタックスエレメントの順番を示す図表である。
【図１６】ＣＡＶＬＣ処理における符号化処理手順を示すフローチャートである。
【図１７】図１６の続きを示すフローチャートである。
【図１８】coeff token を符号化処理する可変長符号化テーブルを示す図表である。
【図１９】図１８の続きを示す図表である。
【図２０】図１９の続きを示す図表である。
【図２１】図２０の続きを示す図表である。
【図２２】４×４ブロックの符号化処理単位に用意されたtotal zeros を符号化処理する可変長符号化テーブルを示す図表である。
【図２３】２×２ブロックの符号化処理単位に用意されたtotal zeros を符号化処理する可変長符号化テーブルを示す図表である。
【図２４】run beforeの符号化処理手順を示すフローチャートである。
【図２５】run beforeの符号化処理テーブルを示す図表である。
【図２６】図１３の例による係数データ列を符号化処理する場合の処理手順を示す図表である。
【図２７】図１３の例による係数データ列を復号化処理する場合の処理手順を示す図表である。
【図２８】run beforeの復号化処理手順を示すフローチャートである。
【符号の説明】
【０１１１】
１、２１……復号化装置、３……可変長符号テーブル比較部、４……制御部、５、２２……ラン数複数同時可変長符号テーブル比較部、７……係数復号部、９、２３……係数格納部、１１……連続数判定部、１３……run before復号部
【図１】
2008034920.tif 000003
【図２】
2008034920.tif 000004
【図３】
2008034920.tif 000005
【図４】
2008034920.tif 000006
【図５】
2008034920.tif 000007
【図６】
2008034920.tif 000008
【図７】
2008034920.tif 000009
【図８】
2008034920.tif 000010
【図９】
2008034920.tif 000011
【図１０】
2008034920.tif 000012
【図１１】
2008034920.tif 000013
【図１２】
2008034920.tif 000014
【図１３】
2008034920.tif 000015
【図１４】
2008034920.tif 000016
【図１５】
2008034920.tif 000017
【図１６】
2008034920.tif 000018
【図１７】
2008034920.tif 000019
【図１８】
2008034920.tif 000020
【図１９】
2008034920.tif 000021
【図２０】
2008034920.tif 000022
【図２１】
2008034920.tif 000023
【図２２】
2008034920.tif 000024
【図２３】
2008034920.tif 000025
【図２４】
2008034920.tif 000026
【図２５】
2008034920.tif 000027
【図２６】
2008034920.tif 000028
【図２７】
2008034920.tif 000029
【図２８】
2008034920.tif 000030
【手続補正書】
【提出日】平成18年8月8日(2006.8.8)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
符号化処理は、続いてステップＳＰ１１に移り、カウント値ｎで特定される非０係数のlevel をコンテキスト計算して符号化処理する。またカウント値ｎを値１だけディクリメントし、続くステップＳＰ１２において、このカウント値ｎの判定により非０係数のlevel を全て処理したか否か判断する。ここで否定結果が得られると、符号化処理は、ステップＳＰ１１に戻り、続く非０係数のlevel を符号化処理する。これに対して非０係数のlevel を全て処理すると、ステップＳＰ１２からステップＳＰ１３に移る。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
ここで図２４は、run beforeの符号化処理の処理手順を示すフローチャートである。なおこの図２４の処理手順は、図１７のステップＳＰ１７−ＳＰ１８−ＳＰ１９−ＳＰ１７の処理手順を詳細に示すものである。従って以下の説明は、言うまでもなく図１６及び図１７の説明と重複する部分がある。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
符号化処理は、この処理手順を開始すると、ステップＳＰ３１からステップＳＰ３２に移り、TotalCoeffを処理回数を示すカウント値ｎにセットする。また未処理の０係数の数であるzerosLeft の初期値にtotal zeros をセットする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
また続くステップＳＰ３３において、zerosLeftの値でrun beforeを符号化処理するテーブルを選択する。ここで図２５に、run beforeを符号化処理するテーブルを示す。run beforeには、未処理の０係数の数であるzerosLeft の値が値１の場合、zerosLeft の値が値２の場合、zerosLeft の値が値３の場合、zerosLeft の値が値４の場合、zerosLeftの値が値５の場合、zerosLeft の値が値６の場合、zerosLeft の値が値６より多い場合の、７個のテーブルが用意されており、zerosLeft の値に応じて符号化処理に使用するテーブルが選択される。ここで図１３（Ｂ）の場合、total zeros は５であることから、この場合、total zeros が値５のテーブルが選択される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
続いてＣＡＶＬＣ処理では、ステップＳＰ３５に移り、zerosLeft の値から、直前のステップＳＰ３４で符号化処理したrun beforeの値を減算し、未処理の０係数の数であるzerosLeft の値を更新する。また処理回数を示すカウント値ｎを値１だけ減算する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
従って図１３（Ｂ）の例では、このステップＳＰ３４の処理において、zerosLeft の値が４である場合のテーブルが選択され、このテーブルを用いて、高次側から７番目の＋１の係数について、この係数の直前の０係数の連続する個数である値２のrun beforeが、「01」に符号化処理される。また続くステップＳＰ３５で、zerosLeft の値が値２に更新された後、ステップＳＰ３６、ＳＰ３８からステップＳＰ４０に移り、ここでzerosLeft が値２のテーブルを選択する。またこのテーブルを用いて、高次側から１０番目の−３の係数について、run before値０を「１」に符号化処理する。また同様の処理の繰り返しによって、続く値＋８の係数データのrun beforeの値２を、zerosLeft の値２のテーブルを用いて「00」に符号化処理し、run beforeの符号化処理を完了する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】変更
【補正の内容】
【００３９】
これに対して復号時、符号化時と同一の順序で順次ビットストリームを処理してシンタックスを順次デコードし、このデコードしたシンタックスを用いて各係数データを復号する。なおこの復号時は、テーブルの検索方法、コンテキストの処理方法が復号化の処理に対応するように実行される点を除いて、図１６、図１７の処理手順を順次実行して符号化処理時と同一に実行される。従って復号時の処理は、図１６及び図１７を流用して説明する。また図２７は、図１３の例による「0000 0000 1011 0000 1000 0000 1000 0001 0011 1100 0001 1001 1100 1100 」の入力ビットストリームを復号化処理する場合の、一連の処理を示す図表である。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
この場合、復号化処理では、選択基準値ｎＣを計算して図１８〜図２１に示すテーブルから符号化時に選択したテーブルが選択され、このテーブルを用いたパターンマッチングにより、入力ビットストリームの先頭側、１１ビットの「0000 0000 101 」をcoeff token 〔２，７〕にデコードする（図１６、ステップＳＰ２）。またこの先頭側、１１ビット分だけ入力ビットストリームをビットシフトさせる。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
復号化処理では、続いてTotalCoeffが値７のテーブル（図２２、図２３）を選択し、この残るビットストリームをパターンマッチング処理し、この残る入力ビットストリームの先頭２ビット「11」をtotal zeros の値５に復号する（図１７、ステップＳＰ１５）。またこの２ビット分だけ、残る入力ビットストリーム「1 1100 1100 」をビットシフトさせ、入力ビットストリーム「100 1100 」とする。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】変更
【補正の内容】
【００４５】
ここで図２８は、図２４との対比により、run beforeの復号化処理手順を示すフローチャートである。復号化処理は、この処理手順を開始すると、ステップＳＰ４１からステップＳＰ４２に移り、TotalCoeffを処理回数を示すカウント値ｎにセットする。また未処理の０係数の数であるzerosLeft の初期値にtotal zeros をセットする。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００４６
【補正方法】変更
【補正の内容】
【００４６】
また続くステップＳＰ４３において、zerosLeftの値でrun beforeを復号化処理するテーブルを選択する。続いて復号化処理は、ステップＳＰ４４に移り、ステップＳＰ４３で選択したテーブルを用いて、カウント値ｎで特定されるrun beforeを復号化処理する。従って図１３（Ｂ）の例では、高次側から５番目の−１の係数について、残る入力ビットストリーム「100 1100 」の先頭２ビット「10」をrun beforeの値１に復号する。またこの２ビット分だけ、残る入力ビットストリーム「100 1100 」をビットシフトさせ、入力ビットストリームを「0 1100 」とする。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
続いて復号化処理は、ステップＳＰ４５に移り、zerosLeft の値から、直前のステップＳＰ４４で復号化処理したrun beforeの値を減算し、未処理の０係数の数であるzerosLeft の値を更新する。また処理回数を示すカウント値ｎを値１だけ減算する。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００８０
【補正方法】変更
【補正の内容】
【００８０】
図８は、このラン数複数同時可変長符号テーブル比較部５を制御する制御部４の処理手順を詳細に示すフローチャートである。制御部４は、この処理手順を開始すると、ステップＳＰ５１からステップＳＰ５２に移る。ここで制御部４は、TotalCoeffを処理回数をカウントするカウント値ｎにセットする。また未処理の０係数の数であるzerosLeft の初期値にtotal zeros をセットする。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００８１
【補正方法】変更
【補正の内容】
【００８１】
また続くステップＳＰ５３で、zerosLeftに基づいて、図４〜図６のテーブルの選択を連続数判定部１１に指示する。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００８８
【補正方法】変更
【補正の内容】
【００８８】
このラン数複数同時可変長符号テーブル比較部５、有意テーブル作成部６におけるrun beforeの処理において（図１）、入力ビットストリームbitstream は、連続数判定部１１で、現在のzerosLeftの値に応じたテーブルを用いたパターンマッチングにより値０のrun beforeが連続する個数ｘが検出され、この検出結果に基づいて、続く値０でないrun beforeがrun before復号部１３で復号される。またこの連続数判定部１１、run before復号部１３における処理によって、zerosLeftの値が更新され、さらに続く値０のrun beforeが連続する個数が検出され、この検出結果に基づいて、続く値０でないrun beforeがrun before復号部１３で復号される（図１及び図８）。復号化装置１では、このラン数複数同時可変長符号テーブル比較部５における処理が繰り返され、またこのラン数複数同時可変長符号テーブル比較部５の処理結果が有意テーブル作成部６で処理され、この有意テーブル作成部６の処理結果に従って係数格納部９に係数データ列が格納される。この復号化装置１では、このラン数複数同時可変長符号テーブル比較部５、有意テーブル作成部６におけるrun  before の処理によって、従来に比して復号化処理を高速度化することができる。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００８９
【補正方法】変更
【補正の内容】
【００８９】
すなわち図２８で説明した従来のrun beforeの復号では、run beforeのシンタックスエレメントの数だけ、ステップＳＰ４４−ＳＰ４５の処理を繰り返すことが必要になる。しかしながらこの実施例では、値０の連続するrun beforeの数と、続く値０でないrun beforeとをまとめて処理することができる。従って図２８のステップＳＰ４４−ＳＰ４５に対応する図８のステップＳＰ５４−ＳＰ５５の処理回数を、図２８の場合に比して格段的に少なくすることができ、run beforeの処理に要する時間を短くして復号化処理を高速度化することができる。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００９２
【補正方法】変更
【補正の内容】
【００９２】
実際上、図１４に示すように、入力ビットストリームにおいて、level のシンタックスエレメントが１２個であり、run beforeのシンタックスエレメントが１４である場合、図２８に示す従来方法では、１４回、ステップＳＰ５４−ＳＰ５５の処理を繰り返す必要がある。これに対して復号化装置１では、これら１４個のrun beforeのシンタックスエレメントのうちの１３個が値０であり、最後の１個が値１であることから、これら１４個のrun beforeのシンタックスエレメントを同時に処理することができる。
【手続補正１８】
【補正対象書類名】図面
【補正対象項目名】図８
【補正方法】変更
【補正の内容】
【図８】
2008034920.tif 000031
【手続補正１９】
【補正対象書類名】図面
【補正対象項目名】図１６
【補正方法】変更
【補正の内容】
【図１６】
2008034920.tif 000032
【手続補正２０】
【補正対象書類名】図面
【補正対象項目名】図２４
【補正方法】変更
【補正の内容】
【図２４】
2008034920.tif 000033
【手続補正２１】
【補正対象書類名】図面
【補正対象項目名】図２６
【補正方法】変更
【補正の内容】
【図２６】
2008034920.tif 000034
【手続補正２２】
【補正対象書類名】図面
【補正対象項目名】図２７
【補正方法】変更
【補正の内容】
【図２７】
2008034920.tif 000035
【手続補正２３】
【補正対象書類名】図面
【補正対象項目名】図２８
【補正方法】変更
【補正の内容】
【図２８】
2008034920.tif 000036
【手続補正書】
【提出日】平成19年7月3日(2007.7.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法において、
前記入力ビットストリームは、
前記係数データ列における特定値の未処理の係数データの数に応じて選択されたテーブルを用いて、前記特定値でない前記係数データ毎に、前記係数データ列における続く前記特定値の係数データの数を示す特定のシンタックスエレメントが少なくとも割り当てられ、
前記復号化方法は、
前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、
前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が０である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、
前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、
前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、
前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有する
ことを特徴とする復号化方法。
【請求項２】
前記特定のシンタックスエレメントが、
run beforeのシンタックスエレメントである
ことを特徴とする請求項１に記載の復号化方法。
【請求項３】
前記入力ビットストリームが、
ITU-T H.264 方式のＣＡＶＬＣ処理によるビットストリームである
ことを特徴とする請求項２に記載の復号化方法。
【請求項４】
coeff token のシンタックスエレメントを復号するcoeff token の復号ステップと、
total zeros のシンタックスエレメントを復号するtotal zeros の復号ステップとを有する
ことを特徴とする請求項３に記載の復号化方法。
【請求項５】
level のシンタックスエレメントを復号するlevel の復号ステップを有する
ことを特徴とする請求項２に記載の復号化方法。
【請求項６】
所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法のプログラムにおいて、
前記入力ビットストリームは、
前記係数データ列における特定値の未処理の係数データの数に応じて選択されたテーブルを用いて、前記特定値でない前記係数データ毎に、前記係数データ列における続く前記特定値の係数データの数を示す特定のシンタックスエレメントが少なくとも割り当てられ、
前記復号化方法は、
前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、
前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が０である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、
前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、
前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、
前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有する
ことを特徴とする復号化方法のプログラム。
【請求項７】
所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法のプログラムを記録した記録媒体において、
前記入力ビットストリームは、
前記係数データ列における特定値の未処理の係数データの数に応じて選択されたテーブルを用いて、前記特定値でない前記係数データ毎に、前記係数データ列における続く前記特定値の係数データの数を示す特定のシンタックスエレメントが少なくとも割り当てられ、
前記復号化方法は、
前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、
前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が０である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、
前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、
前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、
前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有する
ことを特徴とする復号化方法のプログラムを記録した記録媒体。
【請求項８】
所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化装置において、
前記入力ビットストリームは、
前記係数データ列における特定値の未処理の係数データの数に応じて選択されたテーブルを用いて、前記特定値でない前記係数データ毎に、前記係数データ列における続く前記特定値の係数データの数を示す特定のシンタックスエレメントが少なくとも割り当てられ、
前記復号化装置は、
前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択部と、
前記テーブル選択部で選択したテーブルを用いて、前記特定値の係数データの数が０である前記特定のシンタックスエレメントの連続数を検出する連続数検出部と、
前記連続数検出部で検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号部と、
前記連続数検出部、前記特定シンタックスエレメントの復号部の処理に応じて、前記特定値の未処理の係数データの数を更新する更新部と、
前記連続数検出部で検出した連続数と、前記特定シンタックスエレメントの復号部の復号結果とに基づいて、前記係数データ列を復号する係数データの復号部とを有する
ことを特徴とする復号化装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
このシンタックスエレメントの格納順序に対応してＣＡＶＬＣ処理では、図１６及び図１７に示す処理手順を符号化処理単位毎に実行して、各シンタックスエレメントを符号化処理する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
なおここで図１８〜図２１に、coeff token を符号化処理する可変長符号化テーブルを示す。coeff token には、選択基準値ｎＣが値０以上、値２未満の場合、選択基準値ｎＣが値２以上、値４未満の場合、選択基準値ｎＣが値４以上、値８未満の場合、選択基準値ｎＣが値８以上の場合、選択基準値ｎＣが値−１の場合の、５のテーブルが用意されている。従って図１３の例によるcoeff token 〔２，７〕は、選択基準値ｎＣに応じて、図１９の上から７段目の「0000 0000 101 」、「0000 0010 1 」、「0010 01 」又は「0110 10 」に符号化処理されることになる。従って例えば選択基準値ｎＣが値０以上、値２未満の場合、coeff token 〔２，７〕は、「0000 0000 101 」にエンコードされる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
続くステップＳＰ９において、符号化処理は、TotalCoeffの値が、TrailingOnesの値と一致しないことを確認する。ここでTotalCoeffの値が、TrailingOnesの値と一致しないことを確認すると、符号化処理は、ステップＳＰ１０に移り、TotalCoeffの値からTrailingOnesの値を減算し、trailing ones sign flag にセットされていない非０係数の数を計算する。またこの計算した値を非０係数の処理回数をカウントするカウント値ｎにセットする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
また続くステップＳＰ４５で、zerosLeft の値が値２に更新された後、ステップＳＰ４６、ＳＰ４８からステップＳＰ４４に移り、ここでzerosLeft が値２のテーブルを選択する。またこのテーブルを用いたパターンマッチング処理により、高次側から１０番目の−３の係数について、残る入力ビットストリーム「100」の先頭１ビット「1」をrun beforeの値０に復号する。またこの１ビット分だけ、残る入力ビットストリーム「100」をビットシフトさせ、入力ビットストリームを「00」とする。また同様の処理の繰り返しによって、続く値＋８の係数データについて、zerosLeftが値２のテーブルを選択してパターンマッチング処理し、残る入力ビットストリーム「00」の先頭２ビット「00」をrun beforeの値２に復号する。続いてステップＳＰ４５でzerosLeftの値が値０に更新され、ステップＳＰ４６で肯定結果となり復号処理を終了する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００５８
【補正方法】変更
【補正の内容】
【００５８】
請求項１、請求項６、請求項７又は請求項８の構成によれば、特定値の係数データの数が０である特定のシンタックスエレメントは、連続するシンタックスエレメントがまとめて検出されて復号化され、また続く特定値の係数データの数が０でない特定のシンタックスエレメントについても、同時に復号される。従ってこれらの特定のシンタックスエレメントは、１つのシンタックスエレメント毎に処理することなく、まとめて処理することができ、従来に比して復号化処理を高速度化することができる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
有意テーブル作成部６は、ラン数複数同時可変長符号テーブル比較部５から出力される値０のrun beforeが連続する個数ｘと、値０以外のrun beforeの値とから、非０係数の配列を示す有意テーブルを作成する。より具体的に、値０以外のrun beforeの値は、対応する非０係数データに続く値０の係数データの数を示すことになる。これに対して値０のrun beforeが連続する個数ｘは、対応する非０係数データに続く非０係数の個数を示すことになる。これらの関係を利用して有意テーブル作成部６は、入力ビットストリームbitstream におけるシンタックスエレメントの配列の順序で、非０係数と、値０の係数とを識別する識別情報をテーブル形式で表した有意テーブルを作成する。有意テーブル作成部６は、この有意テーブルの識別データを低次側から逆量子化、逆ＤＣＴ部２の処理に対応する順序で出力する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
係数一時格納部８は、係数復号部７から出力される復号結果を一時格納し、逆量子化、逆ＤＣＴ部２の処理に対応する順序に並べ替える。またこの並べ替えた復号化結果を、有意テーブル作成部６から対応する識別データが出力されるタイミングで順次出力する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００６８
【補正方法】変更
【補正の内容】
【００６８】
係数格納部９は、有意テーブル作成部６から出力される識別データが値０の係数を示している場合には、値０の係数値を格納するのに対し、有意テーブル作成部６から出力される識別データが非０係数を示している場合、係数一時格納部８から出力される復号化結果を格納し、符号化処理単位の係数データを再生する。係数格納部９は、この係数データを逆量子化、逆ＤＣＴ部２の処理に対応する順序で順次出力する。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
逆量子化、逆ＤＣＴ部２は、係数格納部９の出力データを逆量子化処理、逆ＤＣＴ処理して出力する。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
なお連続数判定部１１は、パターンマッチングする入力ビットストリームbitstream のビット長を未処理Coeff 数に応じて可変し、処理の負担を軽減する。この図４〜図６において、このパターンマッチングする範囲を丸印により示す。連続数判定部１１は、各範囲内で検出された値０のrun beforeが連続する数のうちで、最も値の大きな数を選択し、値０のrun beforeが連続する数ｘとする。またこれに対応するビットシフト量を検出してバレルシフト１２に出力する。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００７８
【補正方法】変更
【補正の内容】
【００７８】
バレルシフト１２は、連続数判定部１１で値０のrun beforeが連続する数ｘが検出されれると、連続数判定部１１から出力されるビットシフト量の分だけ、入力ビットストリームbitstream をビットシフトさせ、値０以外のrun beforeに対応する入力ビットストリームbitstream を選択的にrun before復号部１３に出力する。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００７９
【補正方法】変更
【補正の内容】
【００７９】
run before復号部１３は、図７に示すテーブルを用いたパターンマッチングにより、バレルシフト１２から出力される入力ビットストリームbitstream からrun beforeを復号する。ここでこのバレルシフト１２から出力される入力ビットストリームbitstream は、連続数判定部１１で値０のrun beforeが連続する数ｘが検出されて、値０以外のrun beforeに対応する入力ビットストリームbitstream であることから、この図７に示すテーブルは、図２５に示す従来のrun beforeのテーブルから値０のrun beforeを除いて作成される。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００８７
【補正方法】変更
【補正の内容】
【００８７】
（２）実施例の動作
以上の構成において、この復号化装置１（図２）では、ITU-T H.264方式の入力ビットストリームbitstream が可変長符号テーブル比較部３に入力され、選択基準値ｎＣに応じたテーブル（図１８〜図２１）を用いたパターンマッチングにより、TrailingOnesが復号される。またこのTrailingOnesに基づいて、続くtrailing ones sign flag 、level が係数復号部７で復号される。また続くtotal zeros が可変長符号テーブル比較部３で復号され（図２２及び図２３）、続くrun beforeがラン数複数同時可変長符号テーブル比較部５で処理される。またこのラン数複数同時可変長符号テーブル比較部５の処理結果が有意テーブル作成部６で処理され、この有意テーブル作成部６の処理結果と、係数一時格納部８を介して得られる係数復号部７のlevel の処理結果とから、直交変換処理した符号化処理単位をジグザグスキャンした係数データ列が生成される（図３、図１３、図１４）。この復号化装置１では、この係数データ列が逆量子化、逆ＤＣＴ部２で処理された後、画像データに復号される。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００９５
【補正方法】変更
【補正の内容】
【００９５】
またこの特定のシンタックスエレメントが、run beforeのシンタックスエレメントであることにより、run beforeの処理を高速度化して、従来に比して復号化処理を高速度化することができる。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００９７
【補正方法】変更
【補正の内容】
【００９７】
より具体的に、coeff token 、total zeros のシンタックスエレメントを復号するステップを設けることにより、ITU-T H.264 方式のＣＡＶＬＣ処理による入力ビットストリームを従来に比して高速度に復号することができる。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】０１０１
【補正方法】変更
【補正の内容】
【０１０１】
ここで図１０及び図１１は、zerosLeft が１の場合を例に取って、ラン数複数同時可変長符号テーブル比較部２２に保持されるテーブルを示す図表である。このテーブルは、図４〜図７について上述したテーブルをzerosLeft 毎に、１つにまとめて、値０が連続するrun beforeの数ｘ、続くrun beforeの復号結果とを同時に検出できるように形成される。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】０１０２
【補正方法】変更
【補正の内容】
【０１０２】
係数格納部２３は、このラン数複数同時可変長符号テーブル比較部２２の出力データに基づいて、係数データを構築して保持し、続く逆量子化、逆ＤＣＴ部２に出力する。