JP4379444B2 - 復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置 - Google Patents

復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置 Download PDF

Info

Publication number
JP4379444B2
JP4379444B2 JP2006202973A JP2006202973A JP4379444B2 JP 4379444 B2 JP4379444 B2 JP 4379444B2 JP 2006202973 A JP2006202973 A JP 2006202973A JP 2006202973 A JP2006202973 A JP 2006202973A JP 4379444 B2 JP4379444 B2 JP 4379444B2
Authority
JP
Japan
Prior art keywords
decoding
coefficient data
syntax element
value
specific
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006202973A
Other languages
English (en)
Other versions
JP2008034920A (ja
Inventor
大乗 重本
雅 宮崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to JP2006202973A priority Critical patent/JP4379444B2/ja
Application filed by Sony Corp filed Critical Sony Corp
Priority to TW96122081A priority patent/TW200818921A/zh
Priority to PCT/JP2007/062834 priority patent/WO2008013020A1/ja
Priority to KR20087031550A priority patent/KR20090048547A/ko
Priority to CN2007800281573A priority patent/CN101496289B/zh
Priority to EP07767640A priority patent/EP2045925A1/en
Priority to US12/309,702 priority patent/US8189674B2/en
Publication of JP2008034920A publication Critical patent/JP2008034920A/ja
Application granted granted Critical
Publication of JP4379444B2 publication Critical patent/JP4379444B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置に関し、例えばITU(International Telecommunication Union) -T
H.264 方式のデコーダに適用することができる。本発明は、値が0等の特定値のシンタックスエレメントの連続数を検出し、この検出結果に基づいてこのシンタックスエレメントを復号することにより、従来に比して復号化処理を高速度化することができるようにする。
従来、MPEG(Moving Picture Experts Group)−2、MPEG−4等の符号化処理では、所定の符号化処理単位で画像データを直交変換処理し、その結果得られる係数データを可変長符号化処理している。またこの可変長符号化処理では、ジグザグスキャンの順序で得られる係数データ列において、値0の係数の連続する長さ(ラン)と、続く値0でない係数データの係数値とを組み合わせた符号語毎に、可変長符号テーブルを参照して可変長符号化データを生成している。
この符号化処理に関して、例えば特開2002−76908号公報には、ラン長と値0でない係数値とを同時並列的に処理して、処理速度を向上する工夫が提案されている。
これに対してITU-T H.264 方式のCAVLC(Context Adaptive Variable Length Coding )処理では、ラン数と値0でない係数値とを個別に可変長符号化処理している。より具体的に、ITU-T H.264 方式のCAVLC処理では、値0でない係数値を適応可変長符号化処理する。また未処理のラン数の総数に応じて複数の可変長符号化テーブルから1つの可変長符号化テーブルを選択し、この選択した可変長符号化テーブルでラン数を符号化処理している。
ここで図12は、ITU-T H.264 方式のCAVLC処理におけるシンタックスエレメントを示す図表である。なお以下において、各シンタックスエレメントは、例えばTotalCoeffのシンタックスエレメントをTotalCoeffと記載して、シンタックスエレメントの表記を省略する。これらのシンタックスエレメントにおいて、TotalCoeffは、符号化処理する処理ブロック中に存在する値0でない係数(以下、非0係数と呼ぶ)の数である。従って図13(A)に示すように係数データが計算された場合にあって、低次の側からジグザグスキャンした係数データ列が図13(B)で示される場合、値+23、−4、+11、+8、−3、+1、−1の7個の係数データがTotalCoeffの対象となり、TotalCoeffは値7となる。なおここで図13(A)は、4×4画素の処理ブロックを直交変換処理して得られる係数データを示す図であり、係数値を数字で示し、矢印で低次側から高次側へのジグザクスキャンを示す。また図13(B)は、図13(A)の係数値をスキャン順に並べた表である。
TrailingOnesは、処理ブロック中において最後に連続する絶対値1の係数の個数である。なおTrailingOnesは、絶対値1の係数の個数が3個以上の場合、3個とされる。また間に含まれる値0の係数は、無視される。従って図13(A)の例では、図13(B)に示すように、値+1、0、−1で連続する係数データのうちの値+1、−1の係数データがTrailingOnesで表され、この場合、TrailingOnesは値2となる。
coeff token は、TotalCoeffとTrailingOnesとを組み合わせたシンタックスエレメントであり、図13(B)の例では、〔2,7〕で表される。
trailing ones sign flag は、最後に連続する絶対値1の係数の符号である。従ってtrailing ones sign flag は、TrailingOnesで表された係数値が対象となり、図13(B)の例では、値+1、0、−1で連続する係数データのうちの値+1、−1の係数データがTrailingOnesで表されることから、この場合、この値+1、−1の係数データの符号がtrailing ones sign flag で表される。trailing ones sign flag は、高次側より、+及び−がそれぞれ0及び1で表される。
level prefixは、係数を符号化した際のprefix部分であり、level suffixは、係数を符号化した際のsuffix部分である。level は、DCT係数値であり、trailing ones sign flag で定義される絶対値が値1の係数データ、値0の係数データは除外される。
total zeros は、0係数の総数であり、最後の非0係数以前の0係数の個数である。従って図13の例では、total zeros は、値5である。
run beforeは、係数データ列を高次側から見た場合に、各非0係数の直前の0係数の連続個数である。従って図13の例では、値+23、−4、+11、+8、−3、+1、−1の7個の係数データが非0係数であり、値−1の係数データが高次側の先頭、非0係数であることから、図13(B)に示すように、run beforeは、値−1、+1、−3、+8、+11、−4、+23の係数データに対して、それぞれ値1、2、0、2、0、0となる。
zerosLeft は、total zeros の内の未処理の0係数の数である。従って図13(B)の例において、値−1の係数データが処理対象である場合、zerosLeft は、値5となる。
ITU-T H.264 方式のCAVLC処理では、この図12で定義される各シンタックスエレメントが、図14に示す順序でビットストリーム中に格納される。なおここで図14(A)は、直交変換処理による係数データを示し、level11 〜level0は、level で定義される係数データであり、0は、値0の係数データである。またt1-2〜t1-0は、trailing ones sign flag で定義される係数データである。
すなわちビットストリームは、初めにcoeff token が割り当てられ、続いてtrailing ones sign flag が順次高次側から割り当てられる。また続いてlevel が高次側から割り当てられ、total zeros が割り当てられる。また続いてrun beforeが高次側から割り当てられる。
従って図13の例では、図15に示すように、coeff token 〔2,7〕、trailing ones sign flag −、trailing ones sign flag +、level −3、level +8、level +11、level −4、level +23、total zeros 5、run before 1、run before 2、run before 0、run before 2のシンタックスエレメントが順次ビットストリーム中に格納される。ここで値+8に対するrun before 2を処理することによりzerosLeftが0になり値+11と値−4の係数データに対するrun beforeの処理は行わない。
このシンタックスエレメントの格納順序に対応してCAVLC処理では、図16及び図17に示す処理手順を符号化処理単位毎に実行して、各シンタックスエレメントを符号化処理する。
すなわちCAVLCの符号化処理は、ステップSP1からステップSP2に移り、coeff token を符号化処理する。ここで符号化処理は、ラスタ走査開始端側に隣接する符号化処理ブロックから可変長符号化テーブルの選択基準値nCを求める。なおここでこのラスタ走査開始端側に隣接する符号化処理ブロックは、真上及び左側の符号化処理ブロックである。また選択基準値nCは、例えばこの2つの符号化処理ブロックにおけるDCT係数の平均値である。符号化処理は、この選択基準値nCに応じてcoeff token を符号化処理する複数の可変長符号化テーブルから1つの可変長符号化テーブルを選択し、この選択した可変長符号化テーブルでcoeff token を符号化処理する。
なおここで図18〜図21に、coeff token を符号化処理する可変長符号化テーブルを示す。coeff token には、選択基準値nCが値0以上、値2未満の場合、選択基準値nCが値2以上、値4未満の場合、選択基準値nCが値4以上、値8未満の場合、選択基準値nCが値8以上の場合、選択基準値nCが値−1の場合の、5のテーブルが用意されている。従って図13の例によるcoeff token 〔2,7〕は、選択基準値nCに応じて、図19の上から7段目の「0000 0000 101 」、「0000 0010 1 」、「0010 01 」又は「0110 10 」に符号化処理されることになる。従って例えば選択基準値nCが値0以上、値2未満の場合、coeff token 〔2,7〕は、「0000 0000 101 」にエンコードされる。
続いて符号化処理は、ステップSP3に移り、係数データの総数TotalCoeff が0個でないことを確認する。またここで係数データの総数TotalCoeff が0個の場合、ステップSP3からステップSP4に移り、この符号化ブロックの処理を完了する。
これに対して係数データの総数TotalCoeff が0個でない場合、ステップSP3からステップSP5に移る。このステップSP5において、符号化処理は、TrailingOnesが値0で無いことを確認し、ステップSP5からステップSP6に移る。
このステップSP6において、TrailingOnesの値t1s をtrailing ones sign flag の処理回数をカウントするカウント値nにセットする。また続くステップSP7において、TrailingOnesに設定した係数データのうちの、カウント値nで特定される係数データ(この場合は、TrailingOnesに設定した最も高次の係数データである)の符号を判定し、trailing ones sign flag をセットする。またカウント値nを値1だけディクリメントし、続くステップSP8において、このカウント値の判定によりtrailing ones sign flag のセットを全て完了したか否か判断する。ここで否定結果が得られると、符号化処理は、ステップSP7に戻り、続くtrailing ones sign flag をセットする。これに対してtrailing ones sign flag のセットを全て完了すると、ステップSP8からステップSP9に移る。なおステップSP5において、TrailingOnesが値0であることが確認された場合、このステップSP5から直接ステップSP9に移る。
従ってこの図16に示す処理では、trailing ones sign flag の数だけステップSP7の処理を実行し、図13(B)の例では、2つのtrailing ones sign flag を「10」に符号化処理する。
続くステップSP9において、符号化処理は、TotalCoeffの値が、TrailingOnesの値と一致しないことを確認する。ここでTotalCoeffの値が、TrailingOnesの値と一致しないことを確認すると、符号化処理は、ステップSP10に移り、TotalCoeffの値からTrailingOnesの値を減算し、trailing ones sign flag にセットされていない非0係数の数を計算する。またこの計算した値非0係数の処理回数をカウントするカウント値nにセットする。
符号化処理は、続いてステップSP11に移り、カウント値nで特定される非0係数のlevel をコンテキスト計算して符号化処理する。またカウント値nを値1だけディクリメントし、続くステップSP12において、このカウント値nの判定により非0係数のlevel を全て処理したか否か判断する。ここで否定結果が得られると、符号化処理は、ステップSP11に戻り、続く非0係数のlevel を符号化処理する。これに対して非0係数のlevel を全て処理すると、ステップSP12からステップSP13に移る。
このステップSP13において、TotalCoeffが取り得る値の最大値でないことを確認する。ここでTotalCoeffが取り得る値の最大値の場合、既に全ての係数データの符号化処理が完了していることから、ステップSP13からステップSP14に移ってこの処理手順を終了する。これに対してTotalCoeffが取り得る値の最大値でないことが確認されると、ステップSP13からステップSP15に移る。なおステップSP9において、TotalCoeffの値が、TrailingOnesの値と一致することが確認された場合、ステップSP9から直接ステップSP15に移る。
従って符号化処理は、TotalCoeffの値の数だけ、ステップSP11の処理を実行して非0係数のlevel をデコードし、図13(B)の例では、−3、+8、+11、−4 、+23のlevel を順次処理して「0001 0000 0001 0000 0010 0111 1000 0011 00」の符号化データ列を生成する。
続くステップSP15において、符号化処理は、符号化テーブルを用いてtotal zeros
を符号化処理する。ここで図22及び図23に、それぞれ4×4ブロック及び2×2ブロックの符号化処理単位に用意されたtotal zeros を符号化処理する可変長符号化テーブルを示す。total zeros には、TotalCoeffの各値に応じてテーブルが用意されている。従って符号化処理は、TotalCoeffの値に応じてテーブルを選択し、この選択したテーブルを用いてtotal zeros を符号化処理する。従って図13(B)の例によるtotal zeros の値5は、TotalCoeffが値7であることから、「11」に符号化処理される。
また続いてzerosLeft の初期値にtotal zeros の値をセットする。またzerosLeft の処理回数をカウントするカウント値nにTotalCoeffの値をセットする。続いてステップSP16に移り、total zeros の値が0でないことを確認し、total zeros の値が0の場合、ステップSP16からステップSP14に移ってこの処理手順を終了する。これに対してtotal zeros の値が0でない場合、ステップSP16からステップSP17に移る。
このステップSP17において、符号化処理は、処理回数を示すカウント値nで特定される非0係数(この場合、最も高次側の非0係数である)のrun beforeを符号化処理し、zerosLeft 、カウント値nを更新する。また続くステップSP18において、zerosLeft を判定して未だ未処理のrun beforeが存在するか否か判断し、ここで否定結果が得られると、ステップSP18からステップSP14に移ってこの処理手順を終了する。これに対してステップSP18で肯定結果が得られると、ステップSP18からステップSP19に移り、カウント値nの判定により未だ未処理の係数処理のrun beforeが存在するか否か判断する。ここで否定結果が得られると、ステップSP19からステップSP14に移ってこの処理手順を終了する。これに対してステップSP19で肯定結果が得られると、ステップSP19からステップSP17に移って続くrun beforeを符号化処理する。
ここで図24は、run beforeの符号化処理の処理手順を示すフローチャートである。なおこの図24の処理手順は、図17のステップSP17−SP18−SP19−SP17の処理手順を詳細に示すものである。従って以下の説明は、言うまでもなく図16及び図17の説明と重複する部分がある。
符号化処理は、この処理手順を開始すると、ステップSP31からステップSP32に移り、TotalCoeffを処理回数を示すカウント値nにセットする。また未処理の0係数の数であるzerosLeft の初期値にtotal zeros をセットする。
また続くステップSP33において、zerosLeftの値でrun beforeを符号化処理するテーブルを選択する。ここで図25に、run beforeを符号化処理するテーブルを示す。run beforeには、未処理の0係数の数であるzerosLeft の値が値1の場合、zerosLeft の値が値2の場合、zerosLeft の値が値3の場合、zerosLeft の値が値4の場合、zerosLeftの値が値5の場合、zerosLeft の値が値6の場合、zerosLeft の値が値6より多い場合の、7個のテーブルが用意されており、zerosLeft の値に応じて符号化処理に使用するテーブルが選択される。ここで図13(B)の場合、total zeros は5であることから、この場合、total zeros が値5のテーブルが選択される。
続いて符号化処理は、ステップSP34に移り、ステップSP33で選択したテーブルを用いて、カウント値nで特定されるrun beforeを符号化処理する。従って図13(B)の例では、高次側から5番目の−1の係数について、この係数の直前の0係数の連続する個数である値1のrun beforeが、「10」に符号化処理される。
続いてCAVLC処理では、ステップSP35に移り、zerosLeft の値から、直前のステップSP34で符号化処理したrun beforeの値を減算し、未処理の0係数の数であるzerosLeft の値を更新する。また処理回数を示すカウント値nを値1だけ減算する。
続いてCAVLC処理では、zerosLeft の値の判定により、全てのrun beforeの符号化処理を完了したか否か判断し、ここで肯定結果が得られると、ステップSP37に移ってこの処理手順を終了する。これに対してステップSP36で否定結果が得られると、ステップSP36からステップSP38に移る。
ここでCAVLC処理では、処理回数を示すカウント値nの判定により全てのrun beforeの符号化処理を完了したか否か判断し、ここで肯定結果が得られると、ステップSP37に移ってこの処理手順を終了する。これに対してステップSP38で否定結果が得られると、ステップSP38からステップSP40に移る。またこのステップSP40において、zerosLeft の値でrun beforeを符号化処理するテーブルを選択し、ステップSP34に移る。
従って図13(B)の例では、このステップSP34の処理において、zerosLeft の値が4である場合のテーブルが選択され、このテーブルを用いて、高次側から7番目の+1の係数について、この係数の直前の0係数の連続する個数である値2のrun beforeが、「01」に符号化処理される。また続くステップSP35で、zerosLeft の値が値2に更新された後、ステップSP36、SP38からステップSP40に移り、ここでzerosLeft が値2のテーブルを選択する。またこのテーブルを用いて、高次側から10番目の−3の係数について、run before値0を「1」に符号化処理する。また同様の処理の繰り返しによって、続く値+8の係数データのrun beforeの値2を、zerosLeft の値2のテーブルを用いて「00」に符号化処理し、run beforeの符号化処理を完了する。
図16、図17及び図24の処理により、図13(B)に示す例では、「0000 0000 1011 0000 1000 0000 1000 0001 0011 1100 0001 1001 1100 1100 」のビットストリームが生成される。なお図26は、この図13(B)を例に取って示す符号化処理を示す図表である。
これに対して復号時、符号化時と同一の順序で順次ビットストリームを処理してシンタックスを順次デコードし、このデコードしたシンタックスを用いて各係数データを復号する。なおこの復号時は、テーブルの検索方法、コンテキストの処理方法が復号化の処理に対応するように実行される点を除いて、図16、図17の処理手順を順次実行して符号化処理時と同一に実行される。従って復号時の処理は、図16及び図17を流用して説明する。また図27は、図13の例による「0000 0000 1011 0000 1000 0000 1000 0001 0011 1100 0001 1001 1100 1100 」の入力ビットストリームを復号化処理する場合の、一連の処理を示す図表である。
この場合、復号化処理では、選択基準値nCを計算して図18〜図21に示すテーブルから符号化時に選択したテーブル選択され、このテーブルを用いたパターンマッチングにより、入力ビットストリームの先頭側、11ビットの「0000 0000 101 」をcoeff token 〔2,7〕にデコードする(図16、ステップSP2)。またこの先頭側、11ビット分だけ入力ビットストリームをビットシフトさせる。
また続いてcoeff token 〔2,7〕のデコード結果からTrailingOnesが値2であることを検出し、この検出結果に基づいて、続く2ビット「10」をtrailing ones sign flag −及び+にデコードする(図16、ステップSP7)。またこの2ビット分だけ入力ビットストリームをビットシフトさせる。
続いてcoeff token 〔2,7〕のデコード結果からTotalCoeff が値7であることが判り、またTrailingOnesが値2であることから、5個の係数0係数のlevel をコンテキスト計算して復号化処理する(図17、ステップSP11)。またこのlevel をデコードした分だけ、入力ビットストリームをビットシフトさせ、図13の例では、「1 1100 1100」のビットストリームが残ることになる。
復号化処理では、続いてTotalCoeffが値7のテーブル(図22、図23)を選択し、この残るビットストリームをパターンマッチング処理し、この残る入力ビットストリームの先頭2ビット「11」をtotal zeros の値5に復号する(図17、ステップSP15)。またこの2ビット分だけ、残る入力ビットストリーム「1 1100 1100 」をビットシフトさせ、入力ビットストリーム「100 1100 」とする。
続いて復号化処理は、残る入力ビットストリーム「100 1100」を順次処理して、run
beforeをデコードする。
ここで図28は、図24との対比により、run beforeの復号化処理手順を示すフローチャートである。復号化処理は、この処理手順を開始すると、ステップSP41からステップSP42に移り、TotalCoeffを処理回数を示すカウント値nにセットする。また未処理の0係数の数であるzerosLeft の初期値にtotal zeros をセットする。
また続くステップSP43において、zerosLeftの値でrun beforeを復号化処理するテーブルを選択する。続いて復号化処理は、ステップSP44に移り、ステップSP43で選択したテーブルを用いて、カウント値nで特定されるrun beforeを復号化処理する。従って図13(B)の例では、高次側から5番目の−1の係数について、残る入力ビットストリーム「100 1100 」の先頭2ビット「10」をrun beforeの値1に復号する。またこの2ビット分だけ、残る入力ビットストリーム「100 1100 」をビットシフトさせ、入力ビットストリームを「0 1100 」とする。
続いて復号化処理は、ステップSP45に移り、zerosLeft の値から、直前のステップSP44で復号化処理したrun beforeの値を減算し、未処理の0係数の数であるzerosLeft の値を更新する。また処理回数を示すカウント値nを値1だけ減算する。
続いて復号化処理は、zerosLeft の値の判定により、全てのrun beforeの復号化処理を完了したか否か判断し、ここで肯定結果が得られると、ステップSP47に移ってこの処理手順を終了する。これに対してステップSP46で否定結果が得られると、ステップSP46からステップSP48に移る。
ここで復号化処理では、処理回数を示すカウント値nの判定により全てのrun beforeの復号化処理を完了したか否か判断し、ここで肯定結果が得られると、ステップSP47に移ってこの処理手順を終了する。これに対してステップSP48で否定結果が得られると、ステップSP48からステップSP49に移る。またこのステップSP49において、zerosLeft の値でrun beforeを符号化処理するテーブルを選択し、ステップSP44に移る。
従って図13(B)の例では、このステップSP44の処理において、zerosLeft の値が4である場合のテーブルが選択され、このテーブルを用いたパターンマッチング処理により、高次側から7番目の+1の係数について、残る入力ビットストリーム「0 1100」の先頭2ビット「01」をrun beforeの値2に復号する。またこの2ビット分だけ、残る入力ビットストリーム「0 1100」をビットシフトさせ、入力ビットストリームを「100」とする。
また続くステップSP45で、zerosLeft の値が値2に更新された後、ステップSP46、SP48からステップSP44に移り、ここでzerosLeft が値2のテーブルを選択する。またこのテーブルを用いたパターンマッチング処理により、高次側から10番目の−3の係数について、残る入力ビットストリーム「100」の先頭1ビット「1」をrun beforeの値0に復号する。またこの1ビット分だけ、残る入力ビットストリーム「100」をビットシフトさせ、入力ビットストリームを「00」とする。また同様の処理の繰り返しによって、続く値+8の係数データについて、zerosLeftが値2のテーブルを選択してパターンマッチング処理し、残る入力ビットストリーム「00」の先頭2ビット「00」をrun beforeの値2に復号する。続いてステップSP45でzerosLeftの値が値0に更新され、ステップSP46で肯定結果となり復号処理を終了する。
ところで上述した復号処理では、直前の処理結果でテーブルを選択して、特定のシンタックスエレメントを復号していることになる。具体的に、run beforeを復号する場合、復号に使用する可変長テーブルを、未処理のラン数の総数により切り換えており、この未処理のラン数の総数は、直前のrun beforeの復号によって確定する。従ってrun beforeの復号処理では、結局、連続するrun beforeを順次処理する必要があり、復号化処理を高速度化できない問題があった。
特開2002−76908号公報
本発明は以上の点を考慮してなされたもので、従来に比して復号化処理を高速度化することができる復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置を提案しようとするものである。
上記の課題を解決するため請求項1の発明は、所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法に適用して、前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が0である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有するようにする。
また請求項6の発明は、所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法のプログラムに適用して、前記復号化方法は、前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が0である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有するようにする。
また請求項7の発明は、所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法のプログラムを記録した記録媒体に適用して、前記復号化方法は、前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が0である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有するようにする。
また請求項8の発明は、所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化装置に適用して、前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択部と、前記テーブル選択部で選択したテーブルを用いて、前記特定値の係数データの数が0である前記特定のシンタックスエレメントの連続数を検出する連続数検出部と、前記連続数検出部で検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号部と、前記連続数検出部、前記特定シンタックスエレメントの復号部の処理に応じて、前記特定値の未処理の係数データの数を更新する更新部と、前記連続数検出部で検出した連続数と、前記特定シンタックスエレメントの復号部の復号結果とに基づいて、前記係数データ列を復号する係数データの復号部とを有するようにする。
請求項1、請求項6、請求項7又は請求項8の構成によれば、特定値の係数データの数が0である特定のシンタックスエレメントは、連続するシンタックスエレメントがまとめて検出されて復号化され、また続く特定値の係数データの数が0でない特定のシンタックスエレメントについても、同時に復号される。従ってこれらの特定のシンタックスエレメントは、1つのシンタックスエレメント毎に処理することなく、まとめて処理することができ、従来に比して復号化処理を高速度化することができる。
本発明によれば、従来に比して復号化処理を高速度化することができる。
以下、適宜図面を参照しながら本発明の実施例を詳述する。
(1)実施例の構成
図2は、本発明の実施例1の復号化装置を示すブロック図である。この復号化装置1は、CAVLC処理により、順次入力されるITU-T H.264方式の入力ビットストリームbitstream から各符号化処理単位の係数データを復号する。この復号化装置1は、run beforeの処理を除いて、この係数データを復号するための各シンタックスエレメントの処理が、図16及び図17を用いて説明した従来の復号化装置と同一に実行される。復号化装置1は、復号した係数データを逆量子化、逆DCT部2で逆量子化処理、逆DCT処理した後、図示しないイントラ予測部、インター予測部で生成される予測値と逆量子化、逆DCT部2の出力データS1とを加算し、元の画像データを復号する。
この復号化装置1は、例えばディジタルシグナルプロセッサ等の演算処理部によりこの図2に示す各機能ブロックが形成される。なおこの実施例において、この演算処理部が実行するプログラムは、この復号化装置1に事前にインストールされて提供されるものの、これに代えて光ディスク、磁気ディスク、メモリカード等の記録媒体に記録して提供するようにしてもよく、またインターネット等のネットワークを介して提供するようにしてもよい。また復号化装置1は、ハードウエアにより構成するようにしてもよい。
この復号化装置1において、可変長符号テーブル比較部3は、制御部4の制御に従ってcoeff token の復号化に使用する可変長復号化テーブルを選択し、この選択した可変長復号化テーブルを使用したパターンマッチングにより、coeff token を復号化して制御部4に通知する。また同様にして、total zeroの復号結果を制御部4に通知する。
ラン数複数同時可変長符号テーブル比較部5は、制御部4の制御に従って入力ビットストリームbitstream から値0のrun beforeが連続する個数xと、値0以外のrun beforeの値を検出して出力する。
有意テーブル作成部6は、ラン数複数同時可変長符号テーブル比較部5から出力される値0のrun beforeが連続する個数xと、値0以外のrun beforeの値とから、非0係数の配列を示す有意テーブルを作成する。より具体的に、値0以外のrun beforeの値は、対応する非0係数データに続く値0の係数データの数を示すことになる。これに対して値0のrun beforeが連続する個数xは、対応する非0係数データに続く非0係数の個数を示すことになる。これらの関係を利用して有意テーブル作成部6は、入力ビットストリームbitstream におけるシンタックスエレメントの配列の順序で、非0係数と、値0の係数とを識別する識別情報をテーブル形式で表した有意テーブルを作成する。有意テーブル作成部6は、この有意テーブルの識別データを低次側から逆量子化、逆DCT部2の処理に対応する順序で出力する。
係数復号部7は、制御部4の制御に従って入力ビットストリームbitstream からtrailing ones sign flag 、level を順次復号して出力する。
係数一時格納部8は、係数復号部7から出力される復号結果を一時格納し、逆量子化、逆DCT部2の処理に対応する順序に並べ替える。またこの並べ替えた復号化結果を、有意テーブル作成部6から対応する識別データが出力されるタイミングで順次出力する。
係数格納部9は、有意テーブル作成部6から出力される識別データが値0の係数を示している場合には、値0の係数値を格納するのに対し、有意テーブル作成部6から出力される識別データが非0係数を示している場合、係数一時格納部8から出力される復号化結果を格納し、符号化処理単位の係数データを再生する。係数格納部9は、この係数データを逆量子化、逆DCT部2の処理に対応する順序で順次出力する。
逆量子化、逆DCT部2は、係数格納部9の出力データを逆量子化処理、逆DCT処理して出力する。
制御部4は、この復号化装置1全体の動作を制御する制御部である。制御部4は、各符号化処理単位の復号を開始すると、選択基準値nCを計算し、この計算結果から処理に使用するテーブルを指示して、可変長符号テーブル比較部3にcoeff token の復号を指示する。また可変長符号テーブル比較部3からcoeff token の復号結果を取得し、TotalCoeff、TrailingOnesを検出する。
またこの検出したTrailingOnesに基づいて係数復号部7にtrailing ones sign flag の復号を指示し、さらにTotalCoeffに基づいて係数復号部7にlevel の復号を指示する。
さらに制御部4は、続くtotal zeros の復号を可変長符号テーブル比較部3に指示し、復号結果を取得する。制御部4は、この取得したtotal zeros の復号結果に基づいて、run beforeの復号をラン数複数同時可変長符号テーブル比較部5に指示する。またcoeff token の復号結果とtotal zeros の復号結果に基づいて有意テーブル作成部6に、ラン数複数同時可変長符号テーブル比較部5から出力される復号結果の処理を指示する。
従ってこの復号化装置1では、図14との対比により図3に示すように、従来と同一の順序で入力ビットストリームbitstream から各シンタックスエレメントを復号化するようにして、run beforeの復号をまとめて実行する。
図1は、ラン数複数同時可変長符号テーブル比較部5を詳細に示すブロック図である。連続数判定部11は、制御部4の制御により、zerosLeftの値に応じて複数のテーブルから1つのテーブルを選択し、この選択したテーブルを用いた入力ビットストリームbitstream のパターンマッチングにより、値0が連続するrun beforeの数xを検出する。
ここで図25に示すrun beforeのテーブルでは、run beforeの値が0の場合、zerosLeftの値に応じたビット長で値1を出力するように構成されている。従ってzerosLeftが値1又は値2の場合、値1で連続するビット数が、値0のrun beforeが連続する数xであると判る。またzerosLeftが値3〜値6の場合、値1で連続するビット数を値2で割り算した値が、値0のrun beforeが連続する数xであると判る。またzerosLeftが値7以上の場合、値1で連続するビット数を値3で割り算した値が、値0のrun beforeが連続する数xであると判る。
このzerosLeftと値0のrun beforeが連続する数xとの関係に基づいて、連続数判定部11は、zerosLeftが値1又は値2の場合、図4のテーブルを選択してパターンマッチングの処理を実行し、値0のrun beforeが連続する数xを検出する。またzerosLeftが値3〜値6の場合、図5のテーブルを選択してパターンマッチングの処理を実行し、値0のrun beforeが連続する数xを検出する。またzerosLeftが値7以上の場合、図6のテーブルを選択してパターンマッチングの処理を実行し、値0のrun beforeが連続する数xを検出する。
なお連続数判定部11は、パターンマッチングする入力ビットストリームbitstream のビット長を未処理Coeff 数に応じて可変し、処理の負担を軽減する。この図4〜図6において、このパターンマッチングする範囲を丸印により示す。連続数判定部11は、各範囲内で検出された値0のrun beforeが連続する数のうちで、最も値の大きな数を選択し、値0のrun beforeが連続する数xとする。またこれに対応するビットシフト量を検出してバレルシフト12に出力する。
バレルシフト12は、連続数判定部11で値0のrun beforeが連続する数xが検出されれると、連続数判定部11から出力されるビットシフト量の分だけ、入力ビットストリームbitstream をビットシフトさせ、値0以外のrun beforeに対応する入力ビットストリームbitstream を選択的にrun before復号部13に出力する。
run before復号部13は、図7に示すテーブルを用いたパターンマッチングにより、バレルシフト12から出力される入力ビットストリームbitstream からrun beforeを復号する。ここでこのバレルシフト12から出力される入力ビットストリームbitstream は、連続数判定部11で値0のrun beforeが連続する数xが検出されて、値0以外のrun beforeに対応する入力ビットストリームbitstream であることから、この図7に示すテーブルは、図25に示す従来のrun beforeのテーブルから値0のrun beforeを除いて作成される。
図8は、このラン数複数同時可変長符号テーブル比較部5を制御する制御部4の処理手順を詳細に示すフローチャートである。制御部4は、この処理手順を開始すると、ステップSP51からステップSP52に移る。ここで制御部4は、TotalCoeffを処理回数をカウントするカウント値nにセットする。また未処理の0係数の数であるzerosLeft の初期値にtotal zeros をセットする。
また続くステップSP53で、zerosLeftに基づいて、図4〜図6のテーブルの選択を連続数判定部11に指示する。
続いて制御部4は、ステップSP54に移り、連続数判定部11で、値0で連続するrun beforeの数xを検出し、また続く値0以外のrun beforeの復号結果をrun before復号部13で検出する。
続いて制御部4は、ステップSP55において、直前のステップSP54で処理した分、zerosLeftの値、処理回数を示すカウント値nを更新する。
また続くステップSP56において、zerosLeft の値の判定により、全てのrun beforeの符号化処理を完了したか否か判断し、ここで肯定結果が得られると、ステップSP57に移ってこの処理手順を終了する。
これに対してステップSP56で否定結果が得られると、制御部4は、ステップSP56からステップSP58に移る。ここで制御部4は、処理回数を示すカウント値nの判定により全てのrun beforeの符号化処理を完了したか否か判断し、ここで肯定結果が得られると、ステップSP57に移ってこの処理手順を終了する。
これに対してステップSP58で否定結果が得られると、ステップSP58からステップSP59に移る。またこのステップSP59において、現在のzerosLeft の値に基づいて、図4〜図6のテーブルの選択を連続数判定部11に指示し、ステップSP54に移る。
(2)実施例の動作
以上の構成において、この復号化装置1(図2)では、ITU-T H.264方式の入力ビットストリームbitstream が可変長符号テーブル比較部3に入力され、選択基準値nCに応じたテーブル(図18〜図21)を用いたパターンマッチングにより、TrailingOnesが復号される。またこのTrailingOnesに基づいて、続くtrailing ones sign flag 、level が係数復号部7で復号される。また続くtotal zeros が可変長符号テーブル比較部3で復号され(図22及び図23)、続くrun beforeがラン数複数同時可変長符号テーブル比較部5で処理される。またこのラン数複数同時可変長符号テーブル比較部5の処理結果が有意テーブル作成部6で処理され、この有意テーブル作成部6の処理結果と、係数一時格納部8を介して得られる係数復号部7のlevel の処理結果とから、直交変換処理した符号化処理単位をジグザグスキャンした係数データ列が生成される(図3、図13、図14)。この復号化装置1では、この係数データ列が逆量子化、逆DCT部2で処理された後、画像データに復号される。
このラン数複数同時可変長符号テーブル比較部5、有意テーブル作成部6におけるrun beforeの処理において(図1)、入力ビットストリームbitstream は、連続数判定部11で、現在のzerosLeftの値に応じたテーブルを用いたパターンマッチングにより値0のrun beforeが連続する個数xが検出され、この検出結果に基づいて、続く値0でないrun beforeがrun before復号部13で復号される。またこの連続数判定部11、run before復号部13における処理によって、zerosLeftの値が更新され、さらに続く値0のrun beforeが連続する個数が検出され、この検出結果に基づいて、続く値0でないrun beforeがrun before復号部13で復号される(図1及び図8)。復号化装置1では、このラン数複数同時可変長符号テーブル比較部5における処理が繰り返され、またこのラン数複数同時可変長符号テーブル比較部5の処理結果が有意テーブル作成部6で処理され、この有意テーブル作成部6の処理結果に従って係数格納部9に係数データ列が格納される。この復号化装置1では、このラン数複数同時可変長符号テーブル比較部5、有意テーブル作成部6におけるrun before の処理によって、従来に比して復号化処理を高速度化することができる。
すなわち図28で説明した従来のrun beforeの復号では、run beforeのシンタックスエレメントの数だけ、ステップSP44−SP45の処理を繰り返すことが必要になる。しかしながらこの実施例では、値0の連続するrun beforeの数と、続く値0でないrun beforeとをまとめて処理することができる。従って図28のステップSP44−SP45に対応する図8のステップSP54−SP55の処理回数を、図28の場合に比して格段的に少なくすることができ、run beforeの処理に要する時間を短くして復号化処理を高速度化することができる。
なおこのように値0の連続するrun beforeの数を検出して処理する場合、値0の連続するrun beforeの数が多くなれば多くなる程、ステップSP54−SP55の処理回数を少なくすることができる。従って値0のrun beforeの数が多くなれば、値0の連続するrun
beforeの数も増大することから、ステップSP54−SP55の処理回数を少なくして処理時間を短くすることができる。
しかしながら逆の見方をすれば、run beforeが値0でない場合には、それ程、ステップSP54−SP55の処理回数を少なくすることができず、復号化処理の時間短縮を図れないようにも思われる。しかしながらrun beforeが値0でない場合には、その分、入力ビットストリーム中のlevel の個数も少なくなり、値0の係数データが多くなる。従ってこの場合には、元々、復号化処理には、時間を要しないことになり、高速度に復号化処理することができる。
実際上、図14に示すように、入力ビットストリームにおいて、level のシンタックスエレメントが12個であり、run beforeのシンタックスエレメントが14である場合、図28に示す従来方法では、14回、ステップSP54−SP55の処理を繰り返す必要がある。これに対して復号化装置1では、これら14個のrun beforeのシンタックスエレメントのうちの13個が値0であり、最後の1個が値1であることから、これら14個のrun beforeのシンタックスエレメントを同時に処理することができる。
なおこのような値0で連続するrun beforeのシンタックスエレメントの数を検出する処理に代えて、図25に示す従来のrun beforeのテーブルを拡張して、複数のrun beforeを同時並列的に復号することにより処理速度を高速度化することも考えられる。しかしながらこの場合、run beforeを復号するテーブルの構成が格段的に大型化する欠点がある。これに対してこの実施例によれば、テーブルの大型化を有効に回避して、複数のrun beforeシンタックスエレメントをまとめて処理して処理速度を高速度化することができる。
(3)実施例の効果
以上の構成によれば、例えば値が0の特定値のシンタックスエレメントの連続数を検出し、この検出結果に基づいてこのシンタックスエレメントを復号することにより、従来に比して復号化処理を高速度化することができる。
またこの特定のシンタックスエレメントが、run beforeのシンタックスエレメントであることにより、run beforeの処理を高速度化して、従来に比して復号化処理を高速度化することができる。
またこの復号する入力ビットストリームが、ITU-T H.264 方式のCAVLC処理によるビットストリームであることにより、ITU-T H.264 方式のCAVLC処理による入力ビットストリームを従来に比して高速度に復号することができる。
より具体的に、coeff token 、total zeros のシンタックスエレメントを復号するステップを設けることにより、ITU-T H.264 方式のCAVLC処理による入力ビットストリームを従来に比して高速度に復号することができる。
またlevel のシンタックスエレメントを復号するlevel の復号ステップを有することにより、ラン数と値0でない係数値とを個別に可変長符号化した入力ビットストリームの処理に適用して、入力ビットストリームを従来に比して高速度に復号することができる。
図9は、図2との対比により、本発明の実施例2の復号化装置を示すブロック図である。この復号化装置21は、ラン数複数同時可変長符号テーブル比較部5、有意テーブル作成部6、係数格納部9に代えて、ラン数複数同時可変長符号テーブル比較部22、係数格納部23が設けられる点を除いて、実施例1の復号化装置1と同一に構成される。
ここでラン数複数同時可変長符号テーブル比較部22は、制御部4の制御により、zerosLeftの値に応じて複数のテーブルから1つのテーブルを選択し、この選択したテーブルを用いた入力ビットストリームbitstream のパターンマッチングにより、値0が連続するrun beforeの数x、続くrun beforeの復号結果を同時に検出し、この値0が連続するrun
beforeの数xと、続くrun beforeの復号結果とを対にして出力する。
ここで図10及び図11は、zerosLeft が1の場合を例に取って、ラン数複数同時可変長符号テーブル比較部22に保持されるテーブルを示す図表である。このテーブルは、図4〜図7について上述したテーブルをzerosLeft 毎に、1つにまとめて、値0が連続するrun beforeの数x、続くrun beforeの復号結果とを同時に検出できるように形成される。
係数格納部23は、このラン数複数同時可変長符号テーブル比較部22の出力データに基づいて、係数データを構築して保持し、続く量子化、逆DCT部2に出力する。
この実施例のように値0の連続するrun beforeの数xを検出するテーブルと続くrun beforeを復号するテーブルとを一体化して、これら値0の連続するrun beforeの数xと続くrun beforeの復号結果とを対にして出力するようにしても、上述の実施例と同様の効果を得ることができる。
なお上述の実施例1においては、有意テーブル作成部6で非0係数と、値0の係数とを識別する識別データを用いて有意テーブルを作成し、この有意テーブルを用いて係数格納部9で元の係数データ列を復号する場合について述べたが、本発明はこれに限らず、ラン数複数同時可変長符号テーブル比較部22の処理結果に基づいて値0の係数値を生成し、この生成した係数値を係数格納部9に格納して元の係数データ列を復号するようにしてもよい。このようにすれば有意テーブル作成部を省略することができる。
またこれとは逆に、値0のrun beforeが連続する個数xを直接、係数格納部9に入力し、この個数xに基づいて値0の係数を係数格納部9で生成するようにして、処理サイクルを削減するようにしてもよい。
また上述の実施例においては、本発明を復号化装置に適用する場合について述べたが、本発明はこれに限らず、符号化機能を有する復号化装置に本発明を適用して、図4〜図7のテーブルを符号化処理に使用するようにしてもよい。なおこの場合に、実施例2について上述したテーブルを使用すれば、複数のラン数を同時可変長符号化処理することができる。
また上述の実施例においては、run beforeである特定のシンタックスエレメントについて、値0で連続するシンタックスエレメントを検出してこれら連続する複数のシンタックスエレメントをまとめて処理する場合について述べたが、本発明はこれに限らず、種々の値で連続する種々のシンタックスエレメントの数を検出してこれら連続する複数のシンタックスエレメントをまとめて処理するようにして、処理に要する時間を短くすることができる。
また上述の実施例においては、ITU -T H.264方式のCAVLC処理による入力ビットストリームの復号処理に本発明を適用した場合について述べたが、本発明はこれに限らず、種々のフォーマットによる入力ビットストリームを復号化する場合に広く適用することができる。
本発明は、例えばITU -T H.264方式のCAVLC処理による入力ビットストリームの復号処理に適用することができる。
本発明の実施例1の復号化装置のラン数複数同時可変長符号テーブル比較部を詳細に示すブロック図である。 本発明の実施例1の復号化装置を示すブロック図である。 図2の復号化装置における入力ビットストリームの構成を示す図表である。 図1のラン数複数同時可変長符号テーブル比較部における連続数判定部の、zerosLeftが値1又は値2の場合のテーブルを示す図表である。 図1のラン数複数同時可変長符号テーブル比較部における連続数判定部の、zerosLeftが値3〜値6の場合のテーブルを示す図表である。 図1のラン数複数同時可変長符号テーブル比較部における連続数判定部の、zerosLeftが値7以上の場合のテーブルを示す図表である。 図1のラン数複数同時可変長符号テーブル比較部におけるrun before復号部のテーブルを示す図表である。 図1のラン数複数同時可変長符号テーブル比較部における処理手順を示すフローチャートである。 本発明の実施例2の復号化装置を示すブロック図である。 図9の復号化装置に適用されるテーブルを示す図表である。 図9の続きを示す図表である。 ITU-T H.264 方式のCAVLC処理におけるシンタックスエレメントを示す図表である。 CAVLC処理におけるビットストリームの構成の説明に供する図表である。 図13とは異なる例によるCAVLC処理におけるビットストリームの構成の説明に供する図表である。 シンタックスエレメントの順番を示す図表である。 CAVLC処理における符号化処理手順を示すフローチャートである。 図16の続きを示すフローチャートである。 coeff token を符号化処理する可変長符号化テーブルを示す図表である。 図18の続きを示す図表である。 図19の続きを示す図表である。 図20の続きを示す図表である。 4×4ブロックの符号化処理単位に用意されたtotal zeros を符号化処理する可変長符号化テーブルを示す図表である。 2×2ブロックの符号化処理単位に用意されたtotal zeros を符号化処理する可変長符号化テーブルを示す図表である。 run beforeの符号化処理手順を示すフローチャートである。 run beforeの符号化処理テーブルを示す図表である。 図13の例による係数データ列を符号化処理する場合の処理手順を示す図表である。 図13の例による係数データ列を復号化処理する場合の処理手順を示す図表である。 run beforeの復号化処理手順を示すフローチャートである。
符号の説明
1、21……復号化装置、3……可変長符号テーブル比較部、4……制御部、5、22……ラン数複数同時可変長符号テーブル比較部、7……係数復号部、9、23……係数格納部、11……連続数判定部、13……run before復号部

Claims (8)

  1. 所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法において、
    前記入力ビットストリームは、
    前記係数データ列における特定値の未処理の係数データの数に応じて選択されたテーブルを用いて、前記特定値でない前記係数データ毎に、前記係数データ列における続く前記特定値の係数データの数を示す特定のシンタックスエレメントが少なくとも割り当てられ、
    前記復号化方法は、
    前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、
    前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が0である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、
    前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、
    前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、
    前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有する
    ことを特徴とする復号化方法。
  2. 前記特定のシンタックスエレメントが、
    run beforeのシンタックスエレメントである
    ことを特徴とする請求項1に記載の復号化方法。
  3. 前記入力ビットストリームが、
    ITU-T H.264 方式のCAVLC処理によるビットストリームである
    ことを特徴とする請求項2に記載の復号化方法。
  4. coeff token のシンタックスエレメントを復号するcoeff token の復号ステップと、
    total zeros のシンタックスエレメントを復号するtotal zeros の復号ステップとを有する
    ことを特徴とする請求項3に記載の復号化方法。
  5. level のシンタックスエレメントを復号するlevel の復号ステップを有する
    ことを特徴とする請求項2に記載の復号化方法。
  6. 所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法のプログラムにおいて、
    前記入力ビットストリームは、
    前記係数データ列における特定値の未処理の係数データの数に応じて選択されたテーブルを用いて、前記特定値でない前記係数データ毎に、前記係数データ列における続く前記特定値の係数データの数を示す特定のシンタックスエレメントが少なくとも割り当てられ、
    前記復号化方法は、
    前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、
    前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が0である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、
    前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、
    前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、
    前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有する
    ことを特徴とする復号化方法のプログラム。
  7. 所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化方法のプログラムを記録した記録媒体において、
    前記入力ビットストリームは、
    前記係数データ列における特定値の未処理の係数データの数に応じて選択されたテーブルを用いて、前記特定値でない前記係数データ毎に、前記係数データ列における続く前記特定値の係数データの数を示す特定のシンタックスエレメントが少なくとも割り当てられ、
    前記復号化方法は、
    前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択ステップと、
    前記テーブル選択ステップで選択したテーブルを用いて、前記特定値の係数データの数が0である前記特定のシンタックスエレメントの連続数を検出する連続数検出ステップと、
    前記連続数検出ステップで検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号ステップと、
    前記連続数検出ステップ、前記特定シンタックスエレメントの復号ステップの処理に応じて、前記特定値の未処理の係数データの数を更新する更新ステップと、
    前記連続数検出ステップで検出した連続数と、前記特定シンタックスエレメントの復号ステップの復号結果とに基づいて、前記係数データ列を復号する係数データの復号ステップとを有する
    ことを特徴とする復号化方法のプログラムを記録した記録媒体。
  8. 所定の符号化処理単位で直交変換処理した係数データ列を入力ビットストリームから復号する復号化装置において、
    前記入力ビットストリームは、
    前記係数データ列における特定値の未処理の係数データの数に応じて選択されたテーブルを用いて、前記特定値でない前記係数データ毎に、前記係数データ列における続く前記特定値の係数データの数を示す特定のシンタックスエレメントが少なくとも割り当てられ、
    前記復号化装置は、
    前記特定値の未処理の係数データの数に応じてテーブルを選択するテーブル選択部と、
    前記テーブル選択部で選択したテーブルを用いて、前記特定値の係数データの数が0である前記特定のシンタックスエレメントの連続数を検出する連続数検出部と、
    前記連続数検出部で検出した連続数の前記特定のシンタックスエレメントに続く前記特定のシンタックスエレメントを復号する特定シンタックスエレメントの復号部と、
    前記連続数検出部、前記特定シンタックスエレメントの復号部の処理に応じて、前記特定値の未処理の係数データの数を更新する更新部と、
    前記連続数検出部で検出した連続数と、前記特定シンタックスエレメントの復号部の復号結果とに基づいて、前記係数データ列を復号する係数データの復号部とを有する
    ことを特徴とする復号化装置。
JP2006202973A 2006-07-26 2006-07-26 復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置 Active JP4379444B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2006202973A JP4379444B2 (ja) 2006-07-26 2006-07-26 復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置
PCT/JP2007/062834 WO2008013020A1 (en) 2006-07-26 2007-06-20 Decoding method, program for decoding method, recording media with recorded program for decoding method, and decoding device
KR20087031550A KR20090048547A (ko) 2006-07-26 2007-06-20 복호화 방법, 복호화 방법의 프로그램, 복호화 방법의 프로그램을 기록한 기록 매체, 복호화 장치
CN2007800281573A CN101496289B (zh) 2006-07-26 2007-06-20 解码方法以及解码装置
TW96122081A TW200818921A (en) 2006-07-26 2007-06-20 Decoding method, program for decoding method, recording media with recorded program for decoding method, and decoding device
EP07767640A EP2045925A1 (en) 2006-07-26 2007-06-20 Decoding method, program for decoding method, recording media with recorded program for decoding method, and decoding device
US12/309,702 US8189674B2 (en) 2006-07-26 2007-06-20 Decoding method, program for decoding method, recording medium with recorded program for decoding method, and decoding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006202973A JP4379444B2 (ja) 2006-07-26 2006-07-26 復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置

Publications (2)

Publication Number Publication Date
JP2008034920A JP2008034920A (ja) 2008-02-14
JP4379444B2 true JP4379444B2 (ja) 2009-12-09

Family

ID=38981336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006202973A Active JP4379444B2 (ja) 2006-07-26 2006-07-26 復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置

Country Status (7)

Country Link
US (1) US8189674B2 (ja)
EP (1) EP2045925A1 (ja)
JP (1) JP4379444B2 (ja)
KR (1) KR20090048547A (ja)
CN (1) CN101496289B (ja)
TW (1) TW200818921A (ja)
WO (1) WO2008013020A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008227946A (ja) * 2007-03-13 2008-09-25 Toshiba Corp 画像復号装置
JP4945513B2 (ja) * 2008-06-04 2012-06-06 ルネサスエレクトロニクス株式会社 可変長復号装置およびそれを用いた動画復号装置
KR101501568B1 (ko) * 2008-07-04 2015-03-12 에스케이 텔레콤주식회사 영상 부호화 및 복호화 장치 및, 방법
JP2010278668A (ja) * 2009-05-27 2010-12-09 Sony Corp 符号化装置及び符号化方法、並びに復号装置及び復号方法
JP2011188431A (ja) * 2010-03-11 2011-09-22 Hitachi Kokusai Electric Inc 可変長復号装置
US10091529B2 (en) 2010-07-09 2018-10-02 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding/decoding a transform coefficient
AU2011274680B2 (en) 2010-07-09 2015-06-11 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding/decoding a transform coefficient

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0562662A (ja) 1991-09-03 1993-03-12 Matsushita Electric Ind Co Ltd 非水電解質二次電池
JP3721639B2 (ja) 1996-06-21 2005-11-30 住友化学株式会社 パラアラミド系多孔質フィルムおよびそれを使用した電池用セパレーター
JP4038868B2 (ja) 1997-03-26 2008-01-30 住友化学株式会社 パラアラミド系多孔質フィルムおよびそれを用いた電池用セパレーターとリチウム二次電池
JP2002076908A (ja) 1999-06-09 2002-03-15 Matsushita Electric Ind Co Ltd 可変長符号復号化装置、デジタル放送受信装置及びdvd再生装置
JP2002355938A (ja) 2001-05-30 2002-12-10 Tonen Chem Corp 複合膜、その製造方法及びそれを用いた電池用セパレータ又はフィルター
US6795584B2 (en) * 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
KR100959532B1 (ko) * 2003-12-18 2010-05-27 엘지전자 주식회사 Cavlc 복호 방법
JP2005209570A (ja) 2004-01-26 2005-08-04 Teijin Ltd 非水系二次電池用セパレータ、その製造法および非水系二次電池
US20050259742A1 (en) * 2004-05-21 2005-11-24 Hellman Timothy M System and method for choosing tables in CAVLC
JP2006054846A (ja) * 2004-07-12 2006-02-23 Sony Corp 符号化方法、符号化装置、復号方法、復号装置およびそれらのプログラム
JP4502384B2 (ja) 2004-11-25 2010-07-14 キヤノン株式会社 可変長符号復号化装置及び可変長符号復号化方法
US20060126744A1 (en) * 2004-12-10 2006-06-15 Liang Peng Two pass architecture for H.264 CABAC decoding process
JP4271134B2 (ja) * 2004-12-10 2009-06-03 株式会社東芝 可変長符号化デコーダおよびデコード方法
US7751636B2 (en) * 2005-09-23 2010-07-06 Faraday Technology Corp. Method for decoding transform coefficients corresponding to an image
US7245242B2 (en) * 2005-11-28 2007-07-17 Conexant Systems, Inc. Decoding systems and methods
KR100813877B1 (ko) * 2006-05-11 2008-03-18 전자부품연구원 효율적인 h.264/avc cavlc 디코딩 방법
TWI314820B (en) * 2006-05-26 2009-09-11 Ind Tech Res Inst Pattern-search based method for context-adaptive variable length coding/decoding

Also Published As

Publication number Publication date
JP2008034920A (ja) 2008-02-14
EP2045925A1 (en) 2009-04-08
KR20090048547A (ko) 2009-05-14
CN101496289A (zh) 2009-07-29
TWI340599B (ja) 2011-04-11
CN101496289B (zh) 2012-08-08
TW200818921A (en) 2008-04-16
US8189674B2 (en) 2012-05-29
WO2008013020A1 (en) 2008-01-31
US20090316792A1 (en) 2009-12-24

Similar Documents

Publication Publication Date Title
JP4379444B2 (ja) 復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置
JP4768728B2 (ja) 値のブロックをエンコードする方法および装置
US7436332B2 (en) Runlength encoding of leading ones and zeros
US8755443B2 (en) Video source coding with decoder side information
JP2004518373A (ja) 圧縮情報信号のウォーターマーキング
US8457428B2 (en) Image coding apparatus, control method thereof, and storage medium
US8086942B2 (en) Parallel concatenated code with bypass
TW200937875A (en) Compression system for a bit-plane
JP4273426B2 (ja) 画像処理方法、画像処理装置、画像処理方法のプログラム及び画像処理方法のプログラムを記録した記録媒体
JP5396559B1 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラムおよび記録媒体
JP2008099134A (ja) データ復号装置及びプログラム
WO2007063612A1 (ja) 動画像符号化装置、動画像復号装置
JP5845202B2 (ja) 画像圧縮装置および画像処理システム
JP2007527055A (ja) 逆dct演算方法及び装置
JP4706567B2 (ja) 画像処理方法、画像処理方法のプログラム、画像処理方法のプログラムを記録した記録媒体、画像処理装置
JP3866539B2 (ja) 符号化方法,復号方法,符号化装置,復号装置,符号化プログラム,復号プログラムおよびそれらのプログラム記録媒体
JP6679777B2 (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP2005142673A (ja) 画像処理方法及び装置
JP2005130417A (ja) 変換符号化方法および変換復号化方法
JP3542572B2 (ja) 画像復号方法及び装置
JP2005072841A (ja) 情報埋め込み装置及び方法
JP2000083214A (ja) 画像処理装置及び方法
JPH07264591A (ja) 原画像データスキャン方法
JP2006340163A (ja) 画像圧縮装置
JP2004364127A (ja) 補填値補正復号器、補填値補正符号化復号システム、補填値補正復号方法、補填値補正符号化復号方法、補填値補正復号プログラム及び補填値補正符号化復号プログラム

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090331

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090403

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090825

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090907

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3