説明

可変長符号復号装置、符号システムおよび可変長符号復号方法

【課題】可変長符号を常に高速に復号可能とする。
【解決手段】可変長符号復号装置は、可変長符号を、連続したゼロ値の数が(M−1)個以上(Mは2以上の整数)の復号データに変換可能な第1テーブル格納部と、符号長がN(Nは2以上の整数)未満で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいはこの可変長符号と、対応する復号データのゼロ値がゼロ個以上で(M−2)個以下の可変長符号との組合せを、非ゼロ値およびゼロ値の合計が少なくとも(M−1)個である第2復号データに変換可能な第2テーブル格納部と、符号長がN以上で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいはこの可変符号と、対応する復号データのゼロ値がゼロ個以上で(M−2)個以下の可変長符号との組合せを非ゼロ値およびゼロ値の合計が少なくとも(M−1)個である第3復号データに変換可能な第3テーブル変換部と、ビットシフト部と、第4テーブル格納部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、可変長符号を復号する可変長符号復号装置、符号システムおよび可変長符号復号方法に関する。
【背景技術】
【0002】
MPEG−4やH.264等の規格に準拠した可変長符号は、符号長が一定でないため、入力ビットストリーム内の各符号の先頭位置を一意に決めることができない。このため、入力ビットストリームを先頭から順に復号して、次の符号の先頭位置を検出する逐次的な処理が必要となる。このことから、入力ビットストリームに含まれる可変長符号の数が多い場合には、そのすべてを復号するのにかなりのサイクル数を要する。
【0003】
サイクル数の削減のために、入力ビットストリームに含まれる連続した複数の可変長符号を並行して復号する手法がいくつか提案されている。例えば、複数個の可変長符号復号器を直列に接続して、パイプライン的に復号処理を行うことで、1サイクルに平均して2個以上の可変長符号を復号する手法がある。この手法では、1サイクルの周波数をあまり高くできない。また、可変長符号の種類によっては、効率よく復号化できない場合がある。
【0004】
別の手法として、可変長符号を復号データに変換するためのテーブルのサイズを大きくして、入力ビットストリームに含まれる連続した複数の可変長符号の組合せを一括して復号する手法がある。この手法では、大規模なテーブルを予め用意しなければならず、このテーブルを検索するための時間が増大し、周波数が高くできないという問題がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−158698号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、入力ビットストリーム内の可変長符号の種類に依存せずに、常に高速に復号することが可能な可変長符号復号装置、符号システムおよび可変長符号復号方法を提供するものである。
【課題を解決するための手段】
【0007】
本実施形態の一態様は、複数の可変長符号からなる入力ビットストリームを復号する可変長符号復号装置において、
前記可変長符号を、連続したゼロ値の数が(M−1)個以上(Mは2以上の整数)の第1復号データに変換可能な第1テーブル格納部と、
符号長がN(Nは2以上の整数)未満で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変長符号と、対応する復号データのゼロ値がゼロ個以上で(M−2)個以下の可変長符号との組合せを、非ゼロ値およびゼロ値の合計が少なくとも(M−1)個である第2復号データに変換可能な第2テーブル格納部と、
符号長がN以上で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変符号と、対応する復号データのゼロ値がゼロ個以上で(M−2)個以下の可変長符号との組合せを、非ゼロ値およびゼロ値の合計が少なくとも(M−1)個である第3復号データに変換可能な第3テーブル変換部と、
前記入力ビットストリームを所定ビット数シフトさせるビットシフト部と、
前記シフト後の入力ビットストリーム内の先頭の可変長符号を第4復号データに変換可能な第4テーブル格納部と、
前記第2または第3復号データと、前記第4復号データとを結合し、第5復号データを生成する結合部と、
前記第1復号データと、前記第5復号データとのいずれかを選択する最終選択部と、を備えることを特徴とする可変長符号復号装置を提供する。
【図面の簡単な説明】
【0008】
【図1】本発明の実施形態に係る復号システムの概略構成を示すブロック図。
【図2】MPEG−4の規格に準拠した可変長符号の一例を示す図。
【図3】可変長符号復号装置1の第1例の内部構成を示すブロック図。
【図4】第2テーブル12aの一例を示す図。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら、本発明の実施形態を説明する。
【0010】
図1は本発明の実施形態に係る復号システムの概略構成を示すブロック図である。図1の復号システム10は、可変長符号復号装置1と、逆量子化部2と、逆DCT部3と、参照画像メモリ4と、動き補償部5と、加算器6とを備えている。
【0011】
可変長符号復号装置1は、入力ビットストリームに含まれる可変長符号を、例えばDCT(Discrete Cosine Transform)係数に復号する。逆量子化部2は、可変長符号復号装置1から出力される復号データを逆量子化する。逆DCT部3は、逆量子化後のデータに対して逆離散コサイン変換を行って、周波数変換の情報から画素情報(画像データ)に変換する。動き補償部5は、逆DCT部3で変換した画像データを参照画像メモリ4に記憶された直前フレームの画像データと比較して動き補償量を検出する。加算器6は、逆DCT部3で変換した画像データに動き補償量を加算して、動き補償された最終的な復号データを生成する。
【0012】
次に、可変長符号復号装置1の内部構成および動作を詳細に説明する。以下では、MPEG−4規格に準拠した可変長符号を含む入力ビットストリームの復号処理を行なう例を説明する。本実施形態に係る可変長符号復号装置1は、入力ビットストリームをDCT係数に変換するまでの処理を行なう。以下では、可変長符号復号装置1から出力されるDCT係数を復号データと呼ぶ。この復号データは、逆量子化前のデータである。
【0013】
可変長符号復号装置1で生成される復号データは、ゼロ値と非ゼロ値を含んでいる。これらゼロ値と非ゼロ値はDCT係数である。すなわち、一つの可変長符号を復号して生成される復号データは、複数のDCT係数で構成される。
【0014】
(可変長符号復号装置1の第1例)
入力ビットストリームは、複数の可変長符号を含んでいる。可変長符号は、出現頻度の高いものほど符号長が短い。図2はMPEG−4の規格に準拠した可変長符号の一例を示す図である。可変長符号の欄の「s」は、正負を表すビット値であり、s=0なら正、s=1なら負を表す。この「s」も符号の一部であり、例えば可変長符号(10s)の符号長は3である。また、LASTは、8×8画素ブロック内の左上隅から右下隅に向けてジグザグにDCT係数を格納したときに、最後の非ゼロ値に対応する可変長符号かどうかを識別する情報である。最後の非ゼロ値に対応する可変長符号のLASTは「1」になり、それ以外の可変長符号のLASTは「0」になる。RUNは可変長符号に対応する復号データのゼロ値の数を表す。LEVELは、可変長符号に対応する復号データの非ゼロ値を表す。このLEVELの値が復号データの値となる。例えば、可変長符号(10s)の復号データは「1」である。
【0015】
なお、MPEG−4の規格に準拠した、Intraにおける可変長符号の最大符号長は13であり、最小符号長は3である。Runが0かつ符号長N<7未満の可変長符号は6個あり、符号長N≧7の可変長符号は29個ある。
【0016】
図3は可変長符号復号装置1の第1例の内部構成を示すブロック図である。図3の可変長符号復号装置1は、第1テーブル11aを格納する第1テーブル格納部11と、第2テーブル12aを格納する第2テーブル格納部12と、第3テーブル13aを格納する第3テーブル格納部13と、5〜15ビットシフタ14と、各ビットシフタ14に接続された計11個の第4テーブル格納部15と、符号長検出部16と、マルチプレクサ(復号データ選択部)17と、結合部18と、最終選択部19とを有する。
【0017】
第1テーブル11aは、可変長符号を、連続したゼロ値の数が(M−1)個以上(Mは2以上の整数)の第1復号データに変換するための変換テーブルである。
【0018】
第2テーブル12aは、以下の1)と2)の変換を行い、可変調符号またはその組合せを、変換後の非ゼロ値とゼロ値の合計が少なくとも(M−1)個の第2復号データに変換するための変換テーブルである。
【0019】
1)符号長がN(Nは2以上の整数)未満の可変長符号を、ゼロ値がゼロ個の復号データに変換する。
【0020】
2)符号長がN(Nは2以上の整数)未満の可変長符号と、この可変長符号の次に配置されて、対応する復号データのゼロ値がゼロ個以上(M−2)個以下の可変長符号と、を組合せて復号データに変換する。
【0021】
第3テーブル13aは、以下の3)と4)の変換を行い、可変調符号またはその組合せを、変換後の非ゼロ値とゼロ値の合計が少なくとも(M−1)個の第3復号データに変換するための変換テーブルである。
【0022】
3)符号長がN(Nは2以上の整数)以上の可変長符号を、ゼロ値がゼロ個の復号データに変換する。
【0023】
4)符号長がN(Nは2以上の整数)以上の可変長符号と、この可変長符号の次に配置されて、対応する復号データのゼロ値がゼロ個以上(M−2)個以下の可変長符号と、を組合せて復号データに変換する。
【0024】
上記条件により、第2および第3テーブル12a、13aに登録されている可変長符号またはその組合せは異なっている。条件1)と3)は、一つの可変長符号のみで復号データに変換する場合の条件であり、条件2)と4)は、二つ以上の可変長符号を組み合わせて復号データに変換する場合の条件である。いずれの場合も、原則として、復号データ内の非ゼロ値の数とゼロ値の数の総和は(M−1)個以上である。これにより、復号処理の1サイクルで、(M−1)個以上のDCT係数を生成できることになる。
【0025】
ここで、Mは、復号処理の1サイクルで復号されるDCT係数の数であり、必要とされる処理性能に応じて決定される。Nは第2テーブル12aと第3テーブル13aのサイズを決める値であり、Nが大きいほど第2テーブル12aが大きく、第3テーブル13aは小さくなり、Nが小さいほど第2テーブル12aは小さく、第3テーブル13aは大きくなる。
【0026】
図4は、M=4、N=7の場合の、第2テーブル12aの一例を示す図である。N=7であるため、図4の第2テーブル12aには、符号長が6以下の可変長符号とその組合せが登録されている。また、M=4であるため、復号データは最低3つの非ゼロ値を含んでいる。また、LAST=1となる可変長符号はそれが最終の符号であることを表すためそれ以降に符号を組み合わせることはしない。したがって、LAST=1の可変長符号を復号する場合は、復号データ内の非ゼロ値の数とゼロ値の数の総和が(M−1)個未満になることもありうる。
【0027】
図4の1行目のデータは、同じ可変長符号(10s)を3つ組み合わせたものであり、いずれもLASTは0で、符号長の合計は3×3=9ビットである。可変長符号(10s)は復号データ「1」に対応しており、(10s)(10s)(10s)の復号データは「1、1、1」になる。
【0028】
図4の第2テーブル12aには、一つの可変長符号だけで復号データに変換するものと、2個以上の可変長符号の組合せで復号データに変換するものとが含まれている。一つの可変長符号だけで復号データに変換するものは条件1)に該当し、2個以上の可変長符号の組合せで復号データに変換するものは条件2)に該当する。
【0029】
第3テーブル13aも、一つの可変長符号だけで復号データに変換するものと、2個以上の可変長符号の組合せで復号データに変換するものとが含まれている。
【0030】
第1テーブル格納部11は、第1テーブル11aを用いて可変調符号を第1復号データData1に変換して最終選択部19に出力する。
【0031】
第2テーブル格納部12は、第2テーブル12aを用いて可変長符号を復号データData2に変換して結合部18に出力し、復号データData2の復号前の符号長length2を符号長検出部16に出力する。同様に、第3テーブル格納部13は、第3テーブル13aを用いて可変長符号を復号データData3に変換して結合部18に出力し、復号データData3の復号前の符号長length3を符号長検出部16に出力する。
【0032】
第1〜第3テーブル格納部11〜13での復号データへの変換処理は、入力ビットストリームの先頭位置から行われる。また、それぞれの処理は並列に行われる。
【0033】
ビットシフタ14はそれぞれ、入力ビットストリームをビットシフトさせて、入力ビットストリームの先頭位置を更新する。これらビットシフタ14で、入力ビットストリームを例えば5〜15ビット分シフトさせる理由は、第2テーブル12aまたは第3テーブル13aを用いて復号した可変長符号またはその組合せの分だけ、入力ビットストリームをずらして、後続の可変長符号を復号するためである。したがって、これらビットシフタ14でシフトさせる量は、第2テーブル12aまたは第3テーブル13aに登録された可変長符号またはその組合せの符号長に依存する。例えば、第2テーブル12aまたは第3テーブル13aに登録された可変長符号またはその組合せの符号長に、5ビット未満のものあるいは16ビット以上のものがあれば、それに合わせた数だけビットシフトするビットシフタ14を設ける必要がある。図3では、第2テーブル12aまたは第3テーブル13aに登録された可変長符号またはその組合せの符号長が5〜15ビットであるとして、5〜15ビットシフタ14が設けられている。
【0034】
ビットシフタ14で入力ビットストリームをシフトすることにより、これらビットシフタ14に接続された第4テーブル格納部15には、それぞれ先頭位置が異なる入力ビットストリームが入力される。第4テーブル格納部15は、ビットシフタ14のそれぞれに対応して設けられる。これら第4テーブル格納部15は、同一内容の第4テーブル15aを有する。第4テーブル15aには、すべての可変長符号と、対応する復号データとが格納されている。
【0035】
第4テーブル格納部15は、入力ビットストリームのシフトされた先頭位置から始まる可変長符号を第4復号データに変換する。第4テーブル格納部15のそれぞれからは、5〜15ビットシフタ14でシフトした後の入力ビットストリームの先頭位置から始まる可変長符号に対応する復号データが出力される。第4テーブル15aは、すべての可変長符号に対応する復号データが登録されているため、いずれの第4テーブル格納部15からも、復号データが出力されることになる。
【0036】
ビットシフタ14と第4テーブル格納部15を用いた復号処理は、第2テーブル格納部12と第3テーブル格納部13を用いた復号処理と並行して行われる。
【0037】
符号長検出部16は、第2テーブル格納部12と第3テーブル格納部13のいずれかから符号長が出力された場合には、その符号長をマルチプレクサ17に通知する。
【0038】
マルチプレクサ17は、符号長検出部16が取得した符号長lengthに基づいて、第4テーブル格納部15のそれぞれから出力された復号データのうち一つを選択する。例えば、図4に示す第2テーブル12aにより可変長符号(10s)(1111s)(10s)に対応する復号データ「1、3、1」が選択された場合、第2テーブル格納部12からは符号長length2=11が出力される。符号長検出部16は、この符号長length2=11をマルチプレクサ17に供給する。よって、マルチプレクサ17は、11ビットシフト14に接続された第4テーブル格納部15から出力された復号データを選択する。これにより、この第4テーブル格納部15は、第2テーブル格納部12が可変長符号(10s)(1111s)(10s)に対応する復号データ「1、3、1」を出力するのに並行して、入力ビットストリームを11ビットシフトさせた後の可変長符号に対応する復号データを出力する。
【0039】
結合部18は、第2または第3復号データData2、Data3と、マルチプレクサ17で選択した第4復号データData4とを結合し、第5復号データData5を生成する。
【0040】
最終選択部19は、第1テーブル格納部11から出力された第1復号データData1と結合部18で結合された第5復号データData5とのいずれかを選択する。
【0041】
第1〜第4テーブル格納部11〜13,15は、各テーブルに該当する可変長符号が入力された場合には、対応する復号データを出力し、各テーブルに該当する可変長符号が入力されなかった場合には、無意味なデータ(エラーデータ)を出力する。したがって、第1〜第4テーブル格納部11〜13,15は、最終選択部19がエラーデータを結合することがないよう、第1〜第4テーブル格納部11〜13,15の出力データが意味のある復号データであるか否かを最終選択部19に通知する必要がある。例えば、第1テーブル格納部11が正規の復号データを出力する際には、合わせて可変長符号の符号長も出力するようにし、エラーデータを出力する際には符号長=0を出力するようにすれば、最終選択部19は、この符号長の値により、第1テーブル格納部11の出力データData1を選択すべきか否かを簡易かつ正確に判別できる。
【0042】
第1テーブル格納部11を用いて第1復号データData1が生成された場合は、第2〜第4テーブル格納部の処理結果は用いない。したがって、最終選択部19は第1復号データData1を選択する。一方、第1復号データData1が生成されない場合は、第2〜第4テーブル格納部を用いて復号データが生成されるので、最終選択部19は第5復号データData5を選択する。
【0043】
なお、第2または第3復号データData2、Data3と、第4復号データData4とを結合された第5復号データData5は、最低でもM個のDCT係数を含むことになる。一方、第1復号データData1は、M個のDCT係数を含む。
【0044】
以上より、第1テーブル格納部11を用いて復号データへの変換を行う場合も、第2〜第4テーブル格納部15を用いて復号データへの変換を行う場合も、各復号データ中に少なくともM個のDCT係数が含まれることになる。これは別の見方をすると、入力ビットストリーム中にどのような可変長符号が含まれている場合でも、復号処理の1サイクルの間に、少なくともM個のDCT係数を生成できることを意味し、効率的に復号を行えることがわかる。
【0045】
以下、図3に示す可変長符号復号装置1の第1例の動作を説明する。入力ビットストリームは、第1〜第3テーブル格納部11〜13およびビットシフタ14のそれぞれに入力される。第1〜第3テーブル格納部11〜13はそれぞれ、入力ビットストリームの先頭位置からビット単位で検索を開始して、入力ビットストリーム中に、第1〜第3テーブル11a〜13aに登録された可変長符号またはその組合せに一致するビットパターンが含まれるか否かを検索する。その結果、登録されている可変長符号またはその組合せに一致するビットパターンが検出されると、一致が検出されたテーブルから、対応する復号データが出力される。第1テーブル11aで一致が検出された場合の復号データのゼロ値と非ゼロ値の総数、すなわち、DCT係数の総数は、M個である。第2テーブル12aまたは第3テーブル13aで一致が検出された場合の復号データのDCT係数の総数は、(M−1)個以上である。
【0046】
このように、入力ビットストリームは、第1〜第3テーブル格納部11〜13に並行して入力されて、第1〜第3テーブル11a〜13a内の検索処理が並行して行わる。結果として、復号処理の1サイクルで、M個または(M−1)個以上のDCT係数を含む復号データが生成される。
【0047】
第2テーブル12aと第3テーブル13aには、互いに異なる可変長符号とその組合せが登録されているため、第2テーブル格納部12と第3テーブル格納部13から同タイミングで復号データが出力されることはない。したがって、いずれか一方のテーブル格納部のみから復号データと符号長が出力される。
【0048】
また、入力ビットストリームは、5〜15ビットシフタ14で5〜15ビット分シフトされ、入力ビットストリームの先頭位置がそれぞれずらされる。すなわち、第2または第3テーブル格納部で復号される可変調符号およびその組合せ以降の可変長符号を検出するために、ビットシフタ14で入力ビットストリームの先頭位置をシフトさせる。
【0049】
5〜15ビットシフタ14のそれぞれに接続された第4テーブル格納部15は、シフトされた入力ビットストリームの先頭位置から可変長符号を検出する。第4テーブル15aから検出された可変調符号に一致するビットパターンが検索され、対応する復号データがマルチプレクサ17に供給される。第2または第3テーブル格納部12,13で復号を行なう可変長符号の符号長分だけ、シフトされるようにビットシフタ14が設けられているため、少なくとも5〜15ビットシフタ14のいずれかで一致するビットパターンが検出され、復号データが出力される。
【0050】
第2または第3テーブル格納部12、13から出力された符号長は、符号長検出部16で検出され、マルチプレクサ17に出力される。マルチプレクサ17は、符号長検出部16からの符号長に基づいて、いずれか一つの第4テーブル格納部15から出力された復号データを選択する。
【0051】
第2または第3テーブル格納部12,13から出力された復号データData2、Data3と符号長に基づいて選択された復号データData4とは、結合部18で結合される。このように、第2〜第4テーブル格納部12,13、15で復号データが生成された場合は、合わせてM個以上のDCT係数を含む復号データが生成される。
【0052】
すなわち、第1テーブル格納部11で復号処理を行った場合も、第2〜第4テーブル格納部12,13,15で復号処理を行った場合も、1サイクルで少なくともM個のDCT係数を含む復号データが生成される。
【0053】
第1テーブル11aに登録された可変長符号は、第2および第3テーブル12a,13aに登録された可変長符号またはその組合せとは異なるため、第1テーブル格納部11にて復号データが生成された場合は、第2または第3テーブル格納部12,13では復号データの生成は行われない。逆に、第2または第3テーブル格納部12,13で復号データが生成された場合は、第1テーブル格納部11では復号データの生成は行われない。よって、最終選択部19は、第1復号データと、第5復号データとのいずれかを選択する。
【0054】
このように、可変長符号復号装置1の第1例では、入力ビットストリームを第1〜第4テーブル格納部11〜13,15を用いて並列的に復号処理を行うことにより、1サイクルで少なくともM個のDCT係数を含む復号データを生成でき、復号処理を高速に行うことができる。
【0055】
(可変長符号復号装置1の第2例)
図3の可変長符号復号装置1は、11個の第4テーブル格納部15を備えている。第4テーブル15aには、すべての可変長符号に対応する復号データが登録されており、可変長符号の種類が多い場合には、データ容量が多くなる。しかも、第4テーブル15aを11個も持たなければならないことは、回路規模の肥大化の要因になる。可変長符号復号装置1の第2例は、第4テーブル格納部15の数を減らすことを特徴としている。
【0056】
可変長符号復号装置1の第2例は、図3と同様のブロック構成を有するが、第2テーブル12aの内容が異なる。第2テーブル12aには、上述した条件1)と2)に加えて、以下の条件5)を満たす可変長符号およびその組合せが登録されている。
【0057】
5)可変長符号またはその組合せの合計符号長がK個(Kは2以上の整数)以上である。
【0058】
例えば、K=7の場合は、第2テーブル格納部12で復号される可変長符号またはその組合せの符号長が最低でも7ビットとなる。したがって、後続の可変長符号は、入力ビットストリームの先頭位置から7ビット以上シフトさせた位置から始まることになり、5ビットシフタ14および6ビットシフタ14と、これらに接続される2つの第4テーブル格納部15とは不要となる。その分、第2テーブル12aのサイズが大きくなることから、不要となるビットシフタ14と第4テーブル格納部15による回路規模の削減と、第2テーブル12aのサイズ拡大による回路規模の増加とを勘案して、最適なKを設定するのが望ましい。
【0059】
このように、第2テーブル格納部12で復号処理を行う対象となる可変長符号またはその組合せの合計符号長に制限を設けることで、ビットシフタ14と第4テーブル格納部15の数を削減でき、回路規模の縮小化を図ることができる。この第2例においても、上述した第1例と同様に、1サイクルで少なくともM個のDCT係数を含む復号データを生成でき、復号処理を高速に行うことができる。
【0060】
(可変長符号復号装置1の第3例)
復号処理の1サイクルで復号可能なDCT係数の数Mを増やせば、1サイクルで復号可能なDCT係数の数が増えることになり、入力ビットストリームを高速に復号することができる。その一方、Mの数を増やすと、第1テーブル11aの登録数は減るが、第2テーブル12aと第3テーブル13aの登録数が増えてしまう。すなわち、第2テーブル12aと第3テーブル13aでは、可変長符号の組合せ数が増える。このため、これらテーブルのデータ容量が大きくなって、検索に時間がかかるおそれがある。よって、第2テーブル12aと第3テーブル13aのデータ容量とこれらテーブルの検索時間を考慮に入れて、最適なMを決定すればよい。
【0061】
また、第1のテーブルに、上述した条件1)に加えて、以下の条件6)を付加してもよい。
【0062】
6)復号データのゼロ値がゼロ個以上(M−2)個以下の可変長符号を複数個組み合わせて復号データを生成し、復号データの非ゼロ値とゼロ値の合計が少なくともM個である。
【0063】
この条件6)を加えることで、第1のテーブル11aの登録数は増えるが、第2テーブル12aと第3テーブル13aの登録数を減らすことができ、全体的な回路規模を縮小できる。
【0064】
上述した実施形態では、主にMPEG−4の規格に準拠した可変長符号の復号処理について説明したが、本発明は、MPEG−2やH.264等を含めて、種々の可変長符号に適用可能である。
【0065】
上述した実施形態で説明した可変長符号復号装置1および復号システム10の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、可変長符号復号装置1および復号システム10の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【0066】
また、可変長符号復号装置1および復号システム10の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【0067】
本発明の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本発明の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【符号の説明】
【0068】
1 可変長符号復号装置、2 逆量子化部、3 逆DCT部、4 参照画像メモリ、5 動き補償部、6 加算器、11 第1テーブル格納部、11a 第1テーブル、12 第2テーブル格納部、12a 第2テーブル、13 第3テーブル格納部、13a 第3テーブル、14 ビットシフタ、15 第4テーブル格納部、15a 第4テーブル、16 符号長検出部、17 マルチプレクサ、18 結合部、19 最終選択部

【特許請求の範囲】
【請求項1】
複数の可変長符号からなる入力ビットストリームを復号する可変長符号復号装置において、
前記可変長符号を、連続したゼロ値の数が(M−1)個以上(Mは2以上の整数)の第1復号データに変換可能な第1テーブル格納部と、
符号長がN(Nは2以上の整数)未満で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変長符号と、対応する復号データのゼロ値がゼロ個以上で(M−2)個以下の可変長符号との組合せを、非ゼロ値およびゼロ値の合計が少なくとも(M−1)個である第2復号データに変換可能な第2テーブル格納部と、
符号長がN以上で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変符号と、対応する復号データのゼロ値がゼロ個以上で(M−2)個以下の可変長符号との組合せを、非ゼロ値およびゼロ値の合計が少なくとも(M−1)個である第3復号データに変換可能な第3テーブル変換部と、
前記入力ビットストリームを所定ビット数シフトさせるビットシフト部と、
前記シフト後の入力ビットストリーム内の先頭の可変長符号を第4復号データに変換可能な第4テーブル格納部と、
前記第2または第3復号データと、前記第4復号データとを結合し、第5復号データを生成する結合部と、
前記第1復号データと、前記第5復号データとのいずれかを選択する最終選択部と、を備えることを特徴とする可変長符号復号装置。
【請求項2】
前記ビットシフト部は、前記第2テーブル格納部および前記第3テーブル格納部で復号可能な可変長符号またはその組合せの符号長のそれぞれに対応したビット数分だけ前記入力ビットストリームをシフトさせる複数のビットシフタを有し、
前記第4テーブル格納部は、前記複数のビットシフタのそれぞれに対応して設けられる
ことを特徴とする請求項1に記載の可変長符号復号装置。
【請求項3】
前記第2または第3復号データの復号前の、可変長符号またはその組合せの符号長を検出する符号長検出部と、
前記入力ビットストリームを前記検出した符号長分シフトして、対応する前記第4テーブル格納部で変換した第4復号データを選択し、前記結合部に出力する復号データ選択部と、を備えることを特徴とする請求項1または2に記載の可変長符号復号装置。
【請求項4】
動き補償され、DCT(Discrete Cosine Transform)変換され、かつ量子化された可変長符号を含む入力ビットストリームに対して可変長符号復号を行って復号データを生成する可変長符号復号装置と、
前記復号データに対して逆量子化を行う逆量子化部と、
逆量子化されたデータに対して、逆離散コサイン変換を行うIDCT(Inverse Discrete Cosine)部と、
逆離散コサイン変換後のデータに対して動き補償を行う動き補償部と、を備え、
前記可変長符号復号装置は、
前記可変長符号を、連続したゼロ値の数が(M−1)個以上(Mは2以上の整数)の第1復号データに変換可能な第1テーブル格納部と、
符号長がN(Nは2以上の整数)未満で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変長符号と、対応する復号データのゼロ値がゼロ個以上で(M−2)個以下の可変長符号との組合せを非ゼロ値およびゼロ値の合計が少なくとも(M−1)個である第2復号データに変換可能な第2テーブル格納部と、
符号長がN以上で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変符号と、対応する復号データのゼロ値がゼロ個以上で(M−2)個以下の可変長符号との組合せを非ゼロ値およびゼロ値の合計が少なくとも(M−1)個である第3復号データに変換可能な第3テーブル変換部と、
前記入力ビットストリームを所定ビット数シフトさせるビットシフト部と、
前記シフト後の入力ビットストリーム内の先頭の可変長符号を第4復号データに変換可能な第4テーブル格納部と、
前記第2または第3復号データと、前記第4復号データとを結合し、第5復号データを生成する結合部と、
前記第1復号データと、前記第5復号データとのいずれかを、逆量子化を行なう復号データとして選択する最終選択部と、を有することを特徴とする復号システム。
【請求項5】
複数の可変長符号からなる入力ビットストリームを復号する可変長符号復号方法において、
前記可変長符号を、連続したゼロ値の数が(M−1)個以上(Mは2以上の整数)の前記復号データに変換可能な第1テーブルの中に、前記入力ビットストリームの先頭位置の可変長符号が含まれるか否かを検索し、
符号長がN(Nは2以上の整数)未満で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変長符号と、対応する復号データのゼロ値がゼロ個以上で(M−2)個以下の可変長符号との組合せを非ゼロ値およびゼロ値の合計が少なくとも(M−1)個である第2復号データに変換可能な第2テーブルの中に、前記入力ビットストリームの先頭位置の可変長符号またはその組合せが含まれるか否かを検索し、
符号長がN以上で、対応する復号データのゼロ値がゼロ個である可変長符号、あるいは、この可変符号と、対応する復号データのゼロ値がゼロ個以上で(M−2)個以下の可変長符号との組合せを非ゼロ値およびゼロ値の合計が少なくとも(M−1)個である第3復号データに変換可能な第3テーブルの中に、前記入力ビットストリームの先頭位置の可変長符号が含まれるか否かを検索し、
前記入力ビットストリームを所定ビット数シフトさせ、
前記シフト後の入力ビットストリーム内の先頭の可変長符号を第4復号データに変換し、
前記第2または第3テーブルと、前記第4復号データとを結合して、第5復号データを生成し、
前記第1テーブルと、前記第5復号データとのいずれかを選択することを特徴とする可変長符号復号方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2013−16897(P2013−16897A)
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願番号】特願2011−146343(P2011−146343)
【出願日】平成23年6月30日(2011.6.30)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】