JP4829720B2 - 可変長符号復号装置 - Google Patents

可変長符号復号装置 Download PDF

Info

Publication number
JP4829720B2
JP4829720B2 JP2006231882A JP2006231882A JP4829720B2 JP 4829720 B2 JP4829720 B2 JP 4829720B2 JP 2006231882 A JP2006231882 A JP 2006231882A JP 2006231882 A JP2006231882 A JP 2006231882A JP 4829720 B2 JP4829720 B2 JP 4829720B2
Authority
JP
Japan
Prior art keywords
decoding
bits
address
format
length code
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
JP2006231882A
Other languages
English (en)
Other versions
JP2008060657A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2006231882A priority Critical patent/JP4829720B2/ja
Priority to US11/845,850 priority patent/US7535386B2/en
Publication of JP2008060657A publication Critical patent/JP2008060657A/ja
Priority to US12/467,556 priority patent/US7864082B2/en
Priority to US12/961,017 priority patent/US8264386B2/en
Application granted granted Critical
Publication of JP4829720B2 publication Critical patent/JP4829720B2/ja
Priority to US13/602,360 priority patent/US8884792B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • H03M7/425Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory for the decoding process only
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Description

本発明は、可変長符号の復号処理装置に係り、特に、可変長符号を用いて圧縮を施されたデータを復号する際に使用するテーブルメモリサイズを抑制可能な可変長符号復号装置に関する。
本発明に係わる背景技術に特許文献1に示された方法がある。特許文献1では、復号処理用の表を参照する際、可変長符号語の共通ビットに着目し、1回の復号処理用の表参照において可変長符号から切り出し参照するビットをあるビット数(mビットとする)に制限し、mビット以上で構成される符号語については、一旦MSB側の共通ビット部分のみを処理することで、1個の復号処理用の表サイズをmビット分に対応するエントリ数である2のm乗エントリまで小さくしている。符号語の共通ビット以降の部分については、共通ビットの後の部分に対応する別の復号処理用の表を参照して復号処理を継続し、復号動作を完了する。この際、2回目以降の復号処理用の表参照でも、その表参照に用いる符号語部分、すなわち前回の表参照で共通ビットとして取り扱われたビットより後の部分、がmビット以上であれば、その符号語部分についてMSB側にある共通ビットを除いた部分で次の表の参照を繰り返し行い、復号処理を完了する。
特開2003−309471号公報
しかしながら、特許文献1に示された方法は、各回の復号処理用の表参照において、mビット以上で構成される符号語の共通ビットに注目し、共通ビットの後の部分の復号に用いる表、すなわち次の回で使用する復号処理用の表は一意に定まる必要がある。したがって、符号表を構成するmビット以上の符号語全てについてMSB側の共通ビットが一意に決まる必要があり、mが既に決まっているハードウェアを使用する場合では、mビットにMSB側の共通ビットが収まらない符号表の構成では復号処理に対応できない。また逆にいえば、符号表の構成により、mに利用可能な最低値が定まり、復号処理用の表のエントリ数を削減する上で支障となる。
特許文献1に示された方法では、共通ビットより後の部分から次の復号処理用の表を参照するため、表参照に使用するビット数より共通ビット部分が短い場合、その差のビット分については、次の表参照でも利用する。すなわち、そのビット分は複数回参照が行われるため、その分復号処理用の表のエントリが余分に必要となる。
復号処理に用いる表の傾向として、切り出すビット数が短いほど復号に必要な表のサイズの合計は小さくなるが、表引きの回数が多くなり復号処理が遅くなるというトレードオフが存在する。しかし、特許文献1に示された方法では、最初に参照する表でも2回目以降で参照する表でも符号語から常に同じビット数を切り出して表を参照するため、このトレードオフを考慮して、切り出すビット数を調整することができない。
そこで、本発明の目的は、符号表の共通ビット部分に依存せず1回の復号用の表引きあたりに関し符号語から参照するビット数を調整でき、復号処理時に符号語から切り出したビットの複数回参照を抑制して復号に必要な表に含まれる無駄なエントリを抑制し、さらに復号に必要な表のサイズと復号処理速度のトレードオフを調整可能な可変長符号復号装置を提供することにある。
復号用の表を構成する際に、表の各エントリに復号処理完了か継続かを示す1ビットのフラグを設ける。復号処理完了のエントリには復号結果と有効ビット数を記録する。復号処理継続のエントリには次の処理に利用する復号用の表を識別する情報と、次の表の参照時に利用する符号語から切り出すビット数を記録する。復号処理開始時、すなわち最初の表を参照する際、符号語と共に、利用する表を識別する情報と表参照に際して符号語のMSB側から参照するビット数を指定する。
復号処理に際しては、表のエントリが処理継続エントリであれば、符号語から既に参照した分のビットを読み進め、当該エントリの内容に基づき次に参照する表を選択し、次の表の参照時に符号語から参照するビット数を決定する。次の表に関しても同様の処理を繰り返す。表のエントリが処理完了エントリとなったら、当該エントリの内容から復号結果を得る。
本発明によれば、可変長符号の復号処理において、処理性能と復号に必要な表のサイズのトレードオフの調整が可能となり、復号に用いる表の合計サイズに対して効果的に処理性能を向上できる。
以下に、本発明の実施例を図を用いて詳細に示す。
本発明では、ある符号表に対応する可変長符号の復号を行う際に、図1で示したフォーマットのデータを格納したエントリで構成される復号処理用の表を複数用い、復号処理用の表を順次参照することで復号処理を行う。但し、復号処理用の表が1個で済むケースもある。まず本発明の主な特徴である表のエントリに格納するデータフォーマットの構成例について説明し、符号表に対応する復号処理用の表の作成方法は後述する。尚、図1では表のエントリが16ビットであることを想定しているが、実装によってはビット幅を変更することもあり得る。
図1に示すように、表のエントリに格納するデータにはフォーマット1とフォーマット2の2種類があり、どちらのフォーマットであるかは、格納データのMSBで判別可能である。すなわち、MSBが0(101)であればフォーマット1であり、MSBが1(201)であればフォーマット2である。フォーマット識別にはMSB以外のビットを割り当てることも可能であるし、必要に応じて2ビット以上の部分を割り当てることも考えられる。
フォーマット1は可変長符号復号処理継続を示すデータフォーマットで、次表参照ビット数102及び次表アドレス103で構成する。本発明では、復号処理用の表を順次参照する必要があるので、次表アドレス103を用いて次に参照する表を識別する。次表アドレス103は次に参照する表が格納されたメモリ上のアドレスを示す。このアドレスは現在参照している復号処理用の表が格納されたメモリ領域の直後のアドレスからの相対アドレスである。但し、直接アドレスを用いる実装も考えられるし、次表アドレスが格納されたエントリからの相対アドレスを用いる実装も考えられる。図1に示すデータフォーマットでは1エントリが16ビットを想定しているので、16ビット単位のアドレス、すなわちバイト単位のアドレスを1ビット右シフトしたアドレスを格納して、アドレスのLSB1ビット分を節約する。ただし、バイト単位のアドレスで格納する実装も考えられる。
次表アドレス103の代わりに次表を識別可能なインデックス番号を用いる実装も可能である。インデックス番号から表の場所を特定する表を別途用意すれば、インデックス番号から次表を特定可能である。すなわち、次表アドレス103は次に参照する表を特定できる手段であれば代用可能である。
次表参照ビット数102は次表参照時に可変長符号から何ビット切り出して表参照を行うかを示す部分である。すなわちここのフィールドが1であれば1ビットを可変長符号から切り出して次表の参照に用い、2であれば2ビット、というように可変長符号から切り出すビット数を特定する。このビット数をnとすると、次表は2のn乗個のエントリで構成することになる。
フォーマット2は可変長符号復号完了を示すデータフォーマットで、有効ビット数204と復号結果205で構成する。復号結果205は可変長符号の復号結果を格納する部分である。復号結果には通常符号語番号を格納するが、符号語番号からさらに表引き処理で別の値に変換する必要がある場合、最終的な結果を格納する場合も考えられる。
有効ビット数204は、現在の表引きに際して可変長符号から実際に取り出すビット長を示す。復号処理用の表参照に当たっては、前回の表引き結果あるいは復号処理時開始時のパラメータから表参照時に可変長符号から切り出すビット数が指定されるが、可変長符号の最後の部分の長さは必ずしも表引きの際に切り出すビット長と一致しないため、現在復号中の可変長符号の終端を特定するために有効ビット数204の情報が必要となる。有効ビット数204は可変長符号の終端部分以外の表参照に対応するフォーマット1では不要であるため、フォーマット1には存在しない。
有効ビット数204は存在し得ないビットパターン検出にも利用可能である。可変長符号の構成によっては、可変長符号として割り当てられていないビットパターンが存在し得る。このような異常なビットパターンを検出するため、異常なビットパターンであることが確定するエントリのデータでは有効ビット数204に0を登録する。有効ビット数204は正常に復号処理ができた場合は必ず1以上になるので、有効ビット数204が0であることを検出して、異常を検出可能である。
次に図2に符号表の例を示し、図2に対応する図1で示したフォーマットのデータを格納したエントリで構成される復号処理用の表のセットの作成方法について説明する。図2の可変長符号表に対応する復号処理用の表のセットの構成例は図3から図6に示すようになる。本発明では、復号処理に通常複数の表、すなわち表のセットが必要であり、図3から図6全体で復号処理用の表のセットの一例に対応する。
図3から図6に示した表の各エントリは図1で示したフォーマットのデータで構成するため、次表アドレス103と次表参照ビット数102の組み合わせか、有効ビット数204と復号結果205の組み合わせのいずれかとなる。
図2の可変長符号表には、符号語番号と、符号語(可変長符号)、及び符号語のビット数の関係が示してある。可変長符号の復号処理とはすなわち符号語からそれに対応する符号語番号を得ることである。但し、実際の応用においては、符号語番号を元に再度変換処理を施す場合もあり、このような場合、復号結果として符号語番号を変換した値を直接得ることも考えられる。符号語のビット数とは、符号語を構成するビット数を示している。
図3から図6に示す復号処理用の表のセットを構成する表Aから表Dにおいて、符号語は復号処理対象の可変長符号の一部分に相当する。本発明では復号処理において可変長符号を一部分ずつ参照して処理を進めるが、表Aから表Dにおける符号語は、このとき各表を参照する際に可変長符号から参照する部分のビットに対応する。
復号処理用の表参照で参照するエントリを決定するためには、当該エントリのオフセットアドレスを求める必要があるが、オフセットアドレスは可変長符号から参照するビット部分を2進数とみなした値と等価であるので、簡単に算出可能である。尚、表Aから表Dにおいてオフセットアドレスは何番目のエントリであるか示しており、1エントリ16ビットの構成ではオフセットアドレス1個分で2バイト分に相当する。
可変長符号表から本発明に用いる復号用の表は次の手順で作成する。まず、復号処理用の表で、可変長符号を原則として何ビットずつ参照するか決める。図3から図6に示した復号処理用の表は2ビットずつ参照する場合に対応する。復号処理用の表はnビット参照する場合2のn乗エントリで構成されるため、参照ビット数を増加させると、復号処理に必要な表のセットを構成する表の数は減少するが、個々の復号処理用の表のサイズは指数関数的に大きくなるので、結果的に表のセットのサイズが大きくなる。しかし、参照ビット数が少ないと、符号語の長い可変長符号を復号する際に復号処理用の表を順次参照する回数が増加し、復号処理時間が必要となる。さらに次の表を辿る情報、すなわち図1のフォーマット1に対応する情報が増加し、復号処理に用いる表のセットのサイズが増加する要因となる。そこで、これらの事情を考慮して参照ビット数を決定する必要があるが、通常は2から4ビット単位程度で参照するのが良い。
復号処理用の表で参照するビット数を決定したら、符号表で符号語をそのビット数単位で区切って考える。図3から図6に示した復号処理用の表作成では、原則2ビット単位で参照した場合に対応する。
最初に参照する表の作成では、図2の可変長符号表で符号語のMSBから最初の2ビットに着目する。この場合、2ビットの全ての組み合わせ、すなわち00、01、10、11についてのエントリを持つ表を作成する。この表を図3に表Aとして示す。
図2の符号表に従うと、00と11は2ビットで符号語が完結するので、表Aでは当該エントリに図1に示すフォーマット2で有効ビット数204と復号結果205を格納する。有効ビット数204については、符号語00、11ともに図2の符号表で符号語のビット数が2であるため、ともに2を格納する。復号結果205については、00のエントリでは符号語00に対応する符号語番号である0を、11のエントリでは符号語11に対応する符号語番号である1を格納する。01と10は2ビットでは符号語は完結しないので、表Aでは当該エントリに図1に示すフォーマット1で次表アドレス103と次表参照ビット数102を格納する。次表参照ビット数102には、01と10のエントリでは次表の参照時も符号語から2ビットを参照して行うこととして2を指定する。次表アドレス103には、メモリにどのように表を格納するか依存するので、参照する表の名称を記入している。
表Aで参照した符号語のMSB2ビットが01である場合に、この2ビットに続くビットの復号処理を行うため、表Bを復号処理用の表として用意する。表Bの内容を図4に示す。表Bは符号語のMSBから数えて3ビット、4ビット目を参照し復号処理を行うための表である。
表Bでも2ビットに着目して処理を行うため、2ビットの全ての組み合わせについての表を作成する。00、10及び11のエントリでは、表Aに続いて表Bを参照することで符号語が完結するので、図1に示すフォーマット2で有効ビット数204と復号結果205を格納する。この際、有効ビット数204については、00、10及び11のエントリで、符号語の完結に2ビット全体を参照する必要があるため、2を格納する。復号結果205については、表Aでの参照ビットも含めて考え、00のエントリでは符号語0100に対応する符号語番号である7を、10のエントリでは符号語0110に対応する6を、11のエントリでは符号語0111に対応する8を格納する。01のエントリについては 図2の符号表で符号語が割り当てられていないため、図1に示したフォーマット2で有効ビット長204にエラーを示す0を格納する。有効ビット長0は通常あり得ないので、後にエラーとして検出可能である。
表Aで参照した符号語のMSB2ビットが10である場合に、この2ビットに続くビットの復号処理を行うため、表Cを復号処理用の表として用意する。表Cの内容を図5に示す。表Cは符号語のMSBから数えて3ビット、4ビット目を参照し復号処理を行うための表である。
表Cでも2ビットに着目して処理を行うため、2ビットの全ての組み合わせについての表を作成する。00、10及び11のエントリでは、表Aに続いて表Cを参照することで符号語が完結するので、図1に示すフォーマット2で有効ビット数204と復号結果205を格納する。この際、有効ビット数204については、00のエントリで、符号語の完結に2ビット全体を参照する必要があるため、2を格納する。10及び11のエントリでは最初の1ビットの部分で符号語が完結するため、1を格納する。すなわち10及び11のエントリは同一の符号語に対応するエントリである。同一の符号語に対して2個のエントリを使用するのは、表C参照における2ビット目が復号処理対象の符号語でなく、次の符号語の先頭部分に相当するため、次の符号語次第で0にも1にもなり得るからである。復号結果については表Bと同様に表Aでの参照ビットも含めて考え、00のエントリでは符号語1000に対応する符号語番号である4を、10及び11のエントリでは符号語101に対応する3を格納する。
表Cの01のエントリでは、表A、表Cと参照してもまだ符号語が完結しないので、図1で示すフォーマット1で次表アドレス103と次表参照ビット数102を格納する。次表参照ビット数102には、1を指定する。これは、次の表参照では必ず1ビット以内で符号語が完結するため、2ビット参照にすると表に無駄が生じるからである。すなわち、復号処理用の表ごとに参照ビット数が設定可能であるため、参照ビット数を変更して復号処理用の表のサイズを抑制する。
表Cで01のエントリを参照した場合に、この2ビットに続くビットの復号処理を行うため、表Dを復号処理用の表として用意する。表Dの内容を図6に示す。表Dは符号語のMSBから数えて5ビット目を参照し復号処理を行うための表である。
表Dでは1ビットに着目して処理を行うため、1ビットの全ての組み合わせについての表を作成する。0及び1のエントリでは、表A、表Cに続いて表Dを参照することで符号語が完結するので、図1に示すフォーマット2で有効ビット数204と復号結果205を格納する。0及び1のエントリ共に符号語から1ビット参照することで符号語が完結するので、有効ビット数204には1を格納する。復号結果205には表A、表Cでの参照ビットも含めて考え、0のエントリでは符号語10010に対応する符号語番号2を、1のエントリでは符号語10011に対応する符号語番号5を格納する。
図2から図6を用いて具体的な可変長符号表とそれに対応する復号処理用の表を示したが、この方法は符号語番号が復号結果205に格納可能な範囲に収まる任意の可変長符号に対応可能である。復号処理用の表作成に当たっては、一般的には次のように行う。まず、ある復号処理用の表で可変長符号の何ビットを参照するか決定し、その表で参照したビットで可変長符号が完結する場合、図1のフォーマット2を登録する。この際、参照したビットより短いビットで可変長符号が完結する場合、余ったビット部分については全ての組み合わせについて同じ登録を行う。可変長符号が完結しない場合、エントリごとに次に参照する復号処理用の表を新たに割り当てる。新たに割り当てた表は、可変長符号から既に参照した部分を除いたビットに注目して、最初と同様の方法で作成する。この操作を再帰的に行うことで、復号処理に必要な全ての表を作成する。
個々の復号処理用の表は、その表からエントリを選択する際、可変長符号から何ビット参照するかによりエントリ数が決まる。先にも説明したように、可変長符号のnビットを参照する場合、復号処理用の表は2のn乗エントリで構成するため、nの増大は復号処理用の表のサイズを指数関数的に増大させる点に配慮が必要である。
本発明による復号処理では個々の復号処理用の表毎に可変長符号から参照するビット数を指定可能である。一方、可変長符号は一般的に短い符号長の出現頻度が高くなるように設計されている。さらに、可変長符号のMSB側に対応する復号処理用の表は復号処理毎に毎回利用する。そこで、可変長符号のMSB側に対応する表、すなわち最初に参照する表だけ可変長符号から参照するビット数を多くする方法も考えられる。
復号処理用の表を用いて実際に復号処理を行う手順を図7に示す。復号処理を行うに当たり、可変長符号に加えて、最初に用いる復号処理用の表の指定と、その表を参照する際に可変長符号から参照するビット数を指定する必要がある。S301では指定に基づき、初期の復号処理用の表を選択する。S302では指定に基づき参照ビット数の初期値を設定する。
S303では、可変長符号から参照ビット数分を復号処理用の表参照用に切り出す。この時点では可変長符号から参照した部分を捨てる操作は行わない。S304では選択されている復号処理用の表からS303で切り出した参照ビットで選択されるエントリを参照する。S305で参照したエントリのフォーマットを確認しフォーマット2でなければS306へ移行する。
S306では参照ビット数分を可変長符号から読み捨てる。すなわち、可変長符号で次回参照する部分を参照ビット数分進める。S307及びS308ではS305で参照したエントリの内容に基づき、復号処理用の表を切り替え、参照するビット数を変更する。そしてS303へ戻り処理を繰り返す。
S305で参照したエントリのフォーマットがフォーマット2であれば、S310でエントリの有効ビット数204の値を確認する。有効ビット数204が0である場合、S320でエラー処理を行い、復号処理完了となる。有効ビット数204が0でない場合、S311において有効ビット数204で指定されたビット数分だけ可変長符号を読み捨て、次の符号語の復号処理に備える。最後にS312でエントリに格納されている復号結果205から復号結果を得る。
図3から図6に示した復号処理用の表をメモリに格納した例を図8に示す。図8に示した例では、表Aの領域410から表Dの領域440まで順に密に詰めている。表の格納順序を変更することも可能であるし、表と表の間に隙間があっても構わない。但し、本実施例では次表アドレス103は相対アドレスであることを想定しているので、次表アドレス103に割り当てられているビット数の都合、表は密に配置したほうが良い。また、次表アドレス103は符号なしを想定しているので、ある表から次に参照する表として指定される表は、必ず後方のアドレスに配置する必要がある。
本実施例において、図8に示すように表を配置した場合、図3に示す表Aでオフセットアドレス1のエントリに格納する次表アドレス103は表Bの格納領域420が表A格納領域410の直後に存在するので0となる。オフセットアドレス2のエントリに格納する次表アドレス103は表Cの格納領域430が表Aの格納領域410直後から8バイト先に存在するため8を1ビット右シフトして4となる。同様に図5に示す表Cでオフセットアドレス1のエントリに格納する次表アドレス103は表Dの格納領域440が表Cの格納領域430の直後に存在するので0となる。
図9に本発明を用いた可変長符号復号処理装置の構成例を示す。図9に示す構成例では、入力として可変長符号の他に初期テーブル開始アドレスと初期テーブル参照ビット数が存在する。初期テーブル開始アドレスは復号処理に際して最初に参照する復号処理用の表の場所を特定するために用いる。初期テーブル開始アドレスを指定することで、複数種類の符号表に対応する復号処理用の表のセットを持つ場合に、どの復号処理用の表を使用するか選択可能である。初期テーブル参照ビット数は最初の復号処理用の表を参照する際に、符号語から切り出し参照するビット数である。最初に参照する表に関しては、符号語から参照するビット数を復号処理装置内部からは得ることができないため、外部から入力する必要がある。
ビット切り出し部520は入力される可変長符号から、復号処理用の表参照に利用するビットを切り出し、また参照処理の終わった部分を破棄してシフト処理を行う部分である。テーブルアドレス計算部530は復号処理のため選択している復号処理用の表の開始アドレスとビット切り出し部520から取得した参照ビットを元に、復号処理用の表のエントリのアドレスを計算する。テーブルメモリ制御部540はテーブルアドレス計算部530からテーブルメモリ550へのアクセス要求と、外部からのテーブルメモリ設定信号を調停し、またテーブルメモリ550から読み出したデータを復号制御部510へ出力する。外部からのテーブルメモリ設定信号は、テーブルメモリ550に復号処理用の表を書き込む際に利用する。テーブルメモリ550はRAMを利用するが、ある決まった符号表の復号に対応する場合には、その符号表に対応する復号処理用の表の部分をROMで実装することも考えられる。
復号制御部510は復号処理全体を管理し、ビット切り出し部520へシフト指令を出し、復号処理用の表参照に利用する切り出しビット量を指示する。またテーブルメモリ制御部540経由でテーブルメモリ550から読み出した内容、すなわち復号処理用の表のエントリの内容に基づき、次の復号処理用の表のアドレスを計算して復号処理用の表の開始アドレスを更新し、表参照に利用する切り出しビット量の更新を行う。さらに、復号処理用の表を参照した際の復号処理完了を検出し、復号結果を出力する。
テーブルメモリ制御部540により、外部からテーブルメモリ550を書き換え可能なため、復号対象とする符号表に応じてテーブルメモリ550を書き換えて、複数種類の符号表に対応可能である。また、テーブルメモリ550の容量が十分であれば、予め複数の符号表に対応する復号処理用の表セットを全てテーブルメモリ550に書き込んで利用することも可能である。最初に利用する復号処理用の表は初期テーブル開始アドレスにより選択する。
図9に示す構成により、図7に示したフローチャートに従った動作が可能となり、可変長復号処理装置を実現できる。
本発明では、ある符号表に対して通常複数の復号処理用の表を必要となるが、復号処理用の表ごとに符号語から参照するビット数を指定可能である。また、参照するビット数が多いほど、復号処理用の表参照処理回数が減少するため、複数の復号処理を行った際の平均的な復号処理速度が向上する。さらに、可変長符号では短い符号語の出現確率が高いため、符号語の最初の方のビット参照時に使用する復号処理用の表で長めのビットを参照することで、ある符号表に対応する復号処理用の表のセットのサイズ増加に対して、効果的に復号処理速度の向上が図れる。
さらに、本発明では可変長符号の割り当て状況とは独立に、復号処理用の表ごとに参照するビット数を制御可能なため、1個の可変長符号の復号に許容可能な最大処理時間を考慮して、復号処理用の表の最大参照可能回数を求め、それに応じて復号処理用の表を構成可能である。
本発明の第2の実施例は、実施例1で使用した復号処理用のエントリに格納するデータフォーマットを拡張した例である。実施例2に対応するデータフォーマットを図10に示す。実施例1ではフォーマット1とフォーマット2の2種類のデータフォーマットを使用したが、実施例2ではフォーマット1からフォーマット4の4種類のデータフォーマットを使用する。
実施例2は実施例1に対して復号結果が11ビットに収まらない場合に有効な例で、復号結果が11ビットで示される範囲を超える場合、フォーマット3及びフォーマット4を用いて対応することが可能となっている。
データフォーマットを拡張するため、実施例2ではフォーマット識別ビットに2ビットを割り当て、次表参照ビット数103、及び有効ビット数204を3ビットとしている。
実施例2においては、フォーマット1識別ビットの値は00、フォーマット2識別ビットの値は10となる。またフォーマット識別ビット3の値として11を割り当てている。
フォーマット4は、フォーマット3の拡張復号結果格納アドレス225により指し示される場所に格納するデータのフォーマットである。したがって、フォーマット識別ビットが存在せずともフォーマット識別可能な為、フォーマット識別ビットは存在しない。
フォーマット1及びフォーマット2は、ビットの割り当て方が異なる以外は実施例1と同様に利用する。フォーマット3は、復号結果が11ビットに収まらずフォーマット2で対応が不可能な場合に利用する。フォーマット3を利用する場合、拡張復号結果245が格納されているアドレスを拡張復号結果格納アドレス225で指定する。
フォーマット3の拡張復号結果格納アドレス225で指し示されるアドレスには必ずフォーマット4で拡張復号結果245を格納する。拡張復号結果245は16ビットであるので、11ビットを超える復号結果を格納することが可能である。
すなわち、フォーマット1、フォーマット2またはフォーマット3を用いて実施例1に示した復号処理用の表相当の表を用意し、フォーマット3で指し示したアドレスにフォーマット4で復号結果を別途用意する。
拡張復号結果格納アドレス225で指定するアドレスは、現在参照している復号処理用の表でフォーマット1からフォーマット3から構成される部分の直後のアドレスを起点とする相対アドレスである。しかし、実装によっては絶対アドレスを指定する場合も考えられるし、当該拡張復号結果格納アドレス225を格納したエントリを起点とする相対アドレスの場合も考えられる。
フォーマット4は、フォーマット1からフォーマット3で構成される部分とは別途用意するため、フォーマット4のみ32ビット幅など他のフォーマットは異なるビット幅にすることも可能である。すなわち必要に応じて実装でフォーマット4によりビット幅の大きいフォーマットを用いることで、値の範囲が広い復号結果に対応することが可能になる。
本発明の実施例1で示す復号処理用の表のエントリに格納するデータのフォーマット例である。 本発明の実施例1で示す符号表の例である。 図2の可変長符号表に対応する復号処理用の表のセット例の第1の表である。 図2の可変長符号表に対応する復号処理用の表のセット例の第2の表である。 図2の可変長符号表に対応する復号処理用の表のセット例の第3の表である。 図2の可変長符号表に対応する復号処理用の表のセット例の第4の表である。 可変長符号復号手順を示すフローチャートである。 図3から図6に示す表をメモリに格納した例である。 可変長復号処理を行う装置の構成例である。 本発明の実施例2で示す復号処理用の表のエントリに格納するデータのフォーマット例である。
符号の説明
101…フォーマット1識別ビット、102…次表参照ビット数、103…次表アドレス、201…フォーマット2識別ビット、204…有効ビット数、205…復号結果、221…フォーマット3識別ビット、225…拡張復号結果格納アドレス、245…拡張復号結果、410…表Aの格納領域、420…表Bの格納領域、430…表Cの格納領域、440…表Dの格納領域、510…復号制御部、520…ビット切り出し部、530…テーブルアドレス計算部、540…テーブルメモリ制御部、550…テーブルメモリ。

Claims (2)

  1. 可変長符号データの復号処理を行なう復号処理表を具備した復号処理手段を備え、
    前記復号処理表は、前記復号処理において次に実行する復号処理で参照すべき次表を指定する識別情報と前記次表を参照する際に、前記可変長符号データから切り出すべきビット数を示す識別情報とを格納した第1のフォーマットと、前記復号処理を繰り返して得られた復号結果と前記可変長符号データに対する参照すべき有効ビット数とを格納した第2のフォーマットの少なくとも2種類のフォーマットを有し、
    前記復号処理表の各エントリに格納されるデータが、前記第1のフォーマットおよび前記第2のフォーマットの少なくとも2種類のフォーマットのいずれかにより記述され、
    前記2種類のフォーマットは、データの格納位置をアドレスにより指定可能な記憶装置に格納され、
    前記2種類のフォーマットを複数用いて前記復号処理で参照する前記復号処理表を構成し、
    前記第1のフォーマットが含む前記次表を指定する識別情報は次表の先頭アドレスを相対アドレスで示し、前記相対アドレスの基準となるアドレスは、前記相対アドレスを格納したエントリを構成要素とする前記復号処理表の最後のエントリの次のアドレスであることを特徴とする可変長符号復号装置。
  2. 請求項1に記載の可変長符号復号装置において、
    前記次表を格納しているメモリのアドレスに、前記可変長符号復号装置のエントリのサイズ単位で割り振ったアドレスを使用することでアドレスの下位ビットを省略したことを特徴とする可変長符号復号装置。
JP2006231882A 2006-08-29 2006-08-29 可変長符号復号装置 Active JP4829720B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2006231882A JP4829720B2 (ja) 2006-08-29 2006-08-29 可変長符号復号装置
US11/845,850 US7535386B2 (en) 2006-08-29 2007-08-28 Variable length code decoding device and decoding method
US12/467,556 US7864082B2 (en) 2006-08-29 2009-05-18 Variable length code decoding device and decoding method
US12/961,017 US8264386B2 (en) 2006-08-29 2010-12-06 Variable length code decoding device and decoding method
US13/602,360 US8884792B2 (en) 2006-08-29 2012-09-04 Variable length code decoding device and decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006231882A JP4829720B2 (ja) 2006-08-29 2006-08-29 可変長符号復号装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011169945A Division JP4892639B2 (ja) 2011-08-03 2011-08-03 可変長符号復号装置

Publications (2)

Publication Number Publication Date
JP2008060657A JP2008060657A (ja) 2008-03-13
JP4829720B2 true JP4829720B2 (ja) 2011-12-07

Family

ID=39188022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006231882A Active JP4829720B2 (ja) 2006-08-29 2006-08-29 可変長符号復号装置

Country Status (2)

Country Link
US (4) US7535386B2 (ja)
JP (1) JP4829720B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4829720B2 (ja) 2006-08-29 2011-12-07 ルネサスエレクトロニクス株式会社 可変長符号復号装置
US8145000B2 (en) * 2007-10-29 2012-03-27 Kabushiki Kaisha Toshiba Image data compressing method and image data compressing apparatus
KR20090101037A (ko) * 2008-03-21 2009-09-24 한국전자통신연구원 가변 구조 코드의 생성 방법
JP4945513B2 (ja) * 2008-06-04 2012-06-06 ルネサスエレクトロニクス株式会社 可変長復号装置およびそれを用いた動画復号装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3008685B2 (ja) 1992-08-03 2000-02-14 日本電気株式会社 可変長符号の復号化回路
KR0152038B1 (ko) * 1994-10-17 1998-10-15 김광호 상대 주소를 이용한 가변장 복호화 장치
US5668548A (en) * 1995-12-28 1997-09-16 Philips Electronics North America Corp. High performance variable length decoder with enhanced throughput due to tagging of the input bit stream and parallel processing of contiguous code words
JP3600487B2 (ja) * 1999-08-31 2004-12-15 株式会社東芝 可変長復号器及びこれを用いた動画像復号装置
JP2002330076A (ja) * 2001-04-27 2002-11-15 Sanyo Electric Co Ltd ハフマン復号装置及び復号方法
JP2003309471A (ja) 2002-04-15 2003-10-31 Fujitsu Ltd 可変長符号データ復号装置および復号方法
WO2005013493A1 (en) * 2003-07-29 2005-02-10 Zakrytoe Aktsionernoe Obschestvo Intel A method for efficient variable length decoding
JP3720035B2 (ja) * 2003-09-22 2005-11-24 株式会社東芝 可変長符号復号化装置および可変長符号復号化方法
JP2006148729A (ja) * 2004-11-24 2006-06-08 Victor Co Of Japan Ltd 動画像復号装置及び動画像復号プログラム
JP2006231882A (ja) 2005-02-28 2006-09-07 Fuji Xerox Co Ltd 画像形成装置及び液体吐出状態判定方法
JP4829720B2 (ja) * 2006-08-29 2011-12-07 ルネサスエレクトロニクス株式会社 可変長符号復号装置

Also Published As

Publication number Publication date
US20110080308A1 (en) 2011-04-07
US7535386B2 (en) 2009-05-19
US20120326899A1 (en) 2012-12-27
US8264386B2 (en) 2012-09-11
US8884792B2 (en) 2014-11-11
US7864082B2 (en) 2011-01-04
US20090237278A1 (en) 2009-09-24
US20080068235A1 (en) 2008-03-20
JP2008060657A (ja) 2008-03-13

Similar Documents

Publication Publication Date Title
JP4468858B2 (ja) データ符号化装置、データ符号化方法、プログラム
JP4829720B2 (ja) 可変長符号復号装置
JP3410629B2 (ja) 可変長符号化回路及び可変長符号化方法
JP3341962B2 (ja) 可変長復号器及び可変長符号値を復号化する方法
EP2786495B1 (en) Methods and devices for encoding and decoding messages
JPH0869370A (ja) データ圧縮方法およびシステム
US20070022225A1 (en) Memory DMA interface with checksum
JP2003309471A (ja) 可変長符号データ復号装置および復号方法
JP4892639B2 (ja) 可変長符号復号装置
US6850648B2 (en) System for decoding packed coded image data while depacking same
JP2006254225A (ja) 可変長符号の復号装置及び復号方法
US6563442B1 (en) Multiple symbol length lookup table
AU713403B2 (en) Method and apparatus for generating a transform
US6462680B1 (en) Method and system for compressing data
US20050129023A1 (en) Method and device for compressing data packets
JP2006270330A (ja) 可変長符号復号回路
JP5209467B2 (ja) 改良されたマルチメディアデコーダに関する方法及び装置
WO2005013105A1 (ja) ルックアップテーブル及びデータ取得方法
US20060007925A1 (en) Methods, systems, and computer program products for compressing a multiprotocol label switching (MPLS) shim header in a packet
JPH07111461A (ja) 可変長符号復号化装置
JP3229690B2 (ja) 可変長符号復号器
US8760326B2 (en) Method for data transmission to an electronic control unit
JP2002262104A (ja) ファクシミリ装置
JP4166232B2 (ja) 信号処理回路
JP2008124600A (ja) 可変長復号装置および再生端末

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090223

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110401

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110803

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110810

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: 20110830

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: 20110916

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

Free format text: PAYMENT UNTIL: 20140922

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4829720

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350