JP4466382B2 - 符号語抽出装置とその方法、復号化装置、ならびに画像再生装置 - Google Patents

符号語抽出装置とその方法、復号化装置、ならびに画像再生装置 Download PDF

Info

Publication number
JP4466382B2
JP4466382B2 JP2005010098A JP2005010098A JP4466382B2 JP 4466382 B2 JP4466382 B2 JP 4466382B2 JP 2005010098 A JP2005010098 A JP 2005010098A JP 2005010098 A JP2005010098 A JP 2005010098A JP 4466382 B2 JP4466382 B2 JP 4466382B2
Authority
JP
Japan
Prior art keywords
codeword
unit
data
length
data stream
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
JP2005010098A
Other languages
English (en)
Other versions
JP2006203301A (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
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2005010098A priority Critical patent/JP4466382B2/ja
Publication of JP2006203301A publication Critical patent/JP2006203301A/ja
Application granted granted Critical
Publication of JP4466382B2 publication Critical patent/JP4466382B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は可変長符号化データストリームから符号語を抽出する符号語抽出装置とその方法、可変長符号化データストリームを復号化する復号化装置、ならびに、可変長符号化された画像のデータストリームを復号化して再生する画像再生装置に関するものである。
従来の可変長復号化方式は大きく二つに分類される。第1の方式は、可変長符号化データを1ビットずつシリアルに入力し、2進ツリーによる場合分けを行いながら復号化を行う方式である。第2の方式は、符号語のテーブルを予め用意し、入力される可変長符号化データと一致する符号語をテーブルから読み出す方式である。
図21は、従来の第1の方式による可変長復号化処理を説明するための図である。
図21に示すように、可変長符号化データストリームを先頭ビットから1ビットずつ順に調べていくことにより、これに含まれる符号語を抽出することが可能である。図21に示す2進ツリーでは、‘0’,‘1’,‘1’というビット列が1つの符号語‘011’を構成しており、これが‘4’というデータに復号される。
図22は、従来の第2の方式による可変長復号化処理を説明するための図である(例えば特許文献1の図3を参照)。
バレルシフタは、可変長符号化データストリームの先頭ビットから所定ビット長分のデータをテーブルマッチング器に入力する。テーブルマッチング器は、可変長符号の符号語とその符号長とを対応付けたテーブルを有しており、バレルシフタからの入力データとテーブル中の各符号語とを比較する。比較の結果、入力データと一致する符号語がテーブルから見つかった場合、テーブルマッチング器は、その符号長の情報をバレルシフタにフィードバックする。バレルシフタは、フィードバックされた符号長の情報に基づいて、入力される可変長符号化データストリームをビットシフトさせ、次の符号語の先頭ビットから所定ビット長分のデータをテーブルマッチング器に入力する。以上の動作を繰り返すことにより、可変長符号化データストリーム中から1つずつ符号語を抽出することができる。
特開平7−249994号公報
上述した第1の方式では、可変長符号化データストリームを1ビットずつ処理していくため、1クロックサイクルあたり1ビットの処理性能しか実現できない。従って、高レートの可変長符号化データストリームに本方式を適用することは困難である。
上述した第2の方式の場合、1クロックサイクルあたり1つの符号語を抽出することが可能である。しかしながら、半導体メモリにテーブルを格納すると、メモリにアクセスするための時間を要するため、1クロックサイクルでマッチングを完了することができない。これを実現するには、例えば図23に示すように、フリップフロップなどにテーブルを格納して、その内容を常に参照できるようにする必要がある。そのため、テーブルのサイズが大きくなるほど回路規模が大きくなるという問題が生じる。
このような従来の方式の他、特定の可変長符号の性質を利用して復号化処理を行うものがある。
MPEG2(motion picture experts group 2)で用いられる可変長符号は、符号化データストリームの先頭のビットパターンを調べることによって、符号長を求めることができる。例えば図24に示すように、符号語の先頭に‘00000000001’というビットパターンがある場合、その符号長は15ビットになる。
このような符号の性質を利用すると、簡易な回路構成で復号化処理を行うことが可能である。しかしながら、この方式は特定の可変長符号のみに適用可能であり、他の符号化方式には全く応用できないため、汎用性に欠けるという問題がある。
本発明はかかる事情に鑑みてなされたものであり、その目的は、回路規模の増大を抑えつつ高速に可変長符号化データストリームから符号語を抽出することができる符号語抽出装置とその方法を提供することにある。また、本発明の他の目的は、回路規模の増大を抑えつつ高速に可変長符号化データストリームを復号化できる復号化装置と、これを用いた画像再生装置を提供することにある。
本発明の第1の観点は、可変長符号化されたデータストリームから符号語を抽出する符号語抽出装置であって、上記データストリームの先頭から第1のデータ長のデータブロックを抽出し、入力される第1の信号に応じて当該抽出位置を上記データストリームの末尾側にシフトさせるデータストリームシフト部と、少なくとも1つの符号語を記憶可能な記憶部をそれぞれ有し、上記データストリームシフト部において抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと当該記憶部に記憶される符号語とを比較し、当該比較において一致する符号語を検出した場合、当該検出した符号語のデータ長に応じて上記抽出位置をシフトさせる上記第1の信号を出力し、該第1の信号を出力した後に新たに抽出したデータブロックの一致検出を行う、複数の一致検出部と、上記データストリームからの符号語の抽出を開始する際に、対応付けられた可変長符号のビットの数が少ない符号語を当該対応付けられた可変長符号のビットの数が多い符号語より優先する所定の順序において最も優先順位が高い少なくとも1つの符号語を上記複数の一致検出部の第1の一致検出部の記憶部にロードし、上記データストリームシフト部において新たなデータブロックが抽出された場合、上記複数の一致検出部の複数の第2の一致検出部において順番に1つの一致検出部を選択するとともに、複数の上記符号語から上記所定の順序に従って順番に少なくとも1つの符号語を選択し、当該選択した第2の一致検出部の記憶部に当該選択した符号語をロードする、符号語ロード部とを有する。
本発明の第2の観点は、可変長符号化されたデータストリームを復号化する復号化装置であって、この復号化装置は、上記データストリームから符号語を抽出する上記第1の観点の符号語抽出部と、上記符号語抽出部において抽出される符号語に基づいて、可変長符号化された情報を再生する情報再生部とを有する。
本発明の第3の観点は、可変長符号化された画像のデータストリームを復号化する復号化部を有し、当該復号化部において復号化される画像の情報に基づいて画像を再生する画像再生装置であって、この画像再生装置における上記復号化部は、上記データストリームから符号語を抽出する上記第1の観点の符号語抽出部と、上記符号語抽出部において抽出される符号語に基づいて、可変長符号化された画像の情報を再生する情報再生部とを有する。
上記第1、第2および第3の観点によると、上記データストリームシフト部において、上記データストリームの先頭から、上記第1のデータ長のデータブロックが抽出される。新たなデータブロックが上記データストリームシフト部において抽出されると、上記符号語ロード部では、上記複数の一致検出部から順番に1つの一致検出部が選択されるとともに、上記データストリームの可変長符号化に用いられる所定の複数の符号語から順番に少なくとも1つの符号語が選択される。そして、当該選択された一致検出部の記憶部に当該選択された符号語がロードされる。
上記符号語をロードされた上記一致検出部では、上記データストリームシフト部において抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと当該記憶部に記憶される符号語とが比較される。そして、この比較において一致する符号語が検出された場合、検出された符号語のデータ長に応じて上記データストリームシフト部の抽出位置をシフトさせる第1の信号が上記一致検出部から出力される。
上記データストリームシフト部では、この第1の信号に応じて、上記データブロックの抽出位置が上記データストリームの末尾側にシフトされ、このシフトされた位置において新たなデータブロックが抽出される。
上記符号語ロード部は、対応付けられた情報語の数が少ない符号語を当該対応付けられた情報語の数が多い符号語より優先する順序に従って、上記所定の複数の符号語から順番に少なくとも1つの符号語を選択し、上記一致検出部の記憶部にロードしても良い。
記符号語ロード部は、対応付けられた可変長符号のビットの数が等しい複数の符号語の中から、ランレングスが短い符号語をランレングスが長い符号語より優先して選択し、上記一致検出部の記憶部にロードしてもよい。
また、上記符号語ロード部は、上記ランレングスの長さが同じ場合、対応付けられた可変長符号のビットの数が等しい複数の符号語の中から、レベルが小さい符号語をレベルが大きい符号語より優先して選択し、上記一致検出部の記憶部にロードしてもよい
また、上記複数の一致検出部は、第1の一致検出部と、複数の第2の一致検出部とを含んでも良い。この場合、上記符号語ロード部は、上記データストリームからの符号語の抽出を開始する際に、上記順序において最も優先順位が高い少なくとも1つの符号語を上記第1の一致検出部の記憶部にロードしても良い。そして、上記データストリームシフト部において新たなデータブロックが抽出された場合、上記符号語ロード部は、上記複数の第2の一致検出部から順番に1つの一致検出部を選択するとともに、上記所定の複数の符号語から上記順序に従って順番に少なくとも1つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードしても良い。
本発明の第4の観点は、可変長符号化されたデータストリームから符号語を抽出する符号語抽出方法であって、上記データストリームからの符号語の抽出を開始する際に、上記符号語に対応するデータテーブルを第1の記憶部から複数の第2の記憶部にロードする第の工程と、対応付けられた可変長符号のビットの数が少ない符号語を当該対応付けられた可変長符号のビットの数が多い符号語より優先する所定の順序において最も優先順位が高い符号語を一致検出部の第1の一致検出部の第3の記憶部にロードし、新たなデータブロックが抽出される場合、上記所定の順序に従って優先順位が高い順序で上記複数の第2の記憶部1つを選択するとともに、当該選択した上記データテーブルのデータを上記一致検出部の複数の第2の一致検出部の第4の記憶部に順番にロードする第2の工程と、上記第2の工程において抽出されるデータブロック中の上記優先順位が最も高いデータと、上記第1の工程において上記第1の記憶部からロードされた上記データテーブルのデータと比較し一致検出を行う第3の工程と、上記第の工程において、新たなデータブロックが抽出される場合、当該抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと、上記第の工程において上記複数の第2の記憶部からロードされた上記データテーブルのデータとを上記複数の第2の一致検出部で順番に比較し、当該比較において一致する符号語を検出する第の工程と、を有し、上記第の工程において一致する符号語が検出された場合、当該検出された符号語のデータ長に応じて、上記第1の工程における上記データブロックの抽出位置を上記データストリームの末尾側にシフトさせて、上記第1の工程から上記第の工程を繰り返す。
上記第4の観点によると、上記第1の工程において、上記データストリームからの符号語の抽出を開始する際に、上記符号語に対応するデータテーブルを第1の記憶部から複数の第2の記憶部にロードする。上記第2のこうていでは、対応付けられた可変長符号のビットの数が少ない符号語を当該対応付けられた可変長符号のビットの数が多い符号語より優先する所定の順序において最も優先順位が高い符号語を一致検出部の第1の一致検出部の第3の記憶部にロードし、新たなデータブロックが抽出される場合、上記所定の順序に従って優先順位が高い順序で上記複数の第2の記憶部の1つを選択するとともに、当該選択した上記データテーブルのデータを上記一致検出部の複数の第2の一致検出部の第4の記憶部に順番にロードする。上記第3の工程では、上記第2の工程において抽出されるデータブロック中の上記優先順位が最も高いデータと、上記第1の工程において上記第1の記憶部からロードされた上記データテーブルのデータと比較し一致検出を行う。上記第4の工程では、上記第2の工程において、新たなデータブロックが抽出される場合、当該抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと、上記第1の工程において上記複数の第2の記憶部からロードされた上記データテーブルのデータとを上記複数の第2の一致検出部で順番に比較し、当該比較において一致する符号語を検出する。上記第の工程において一致する符号語が検出された場合、当該検出された符号語のデータ長に応じて、上記第1の工程における上記データブロックの抽出位置を上記データストリームの末尾側にシフトさせて、上記第1の工程から上記第の工程を繰り返す。
上記第4の工程において、上記符号語のデータ長が等しい場合、上記データブロックの一連のデータと上記データテーブルのデータと比較する上記順番は、ランレングスが短い符号語をランレングスが長い符号語より優先する
本発明によれば、第1に、フリップフロップ等の記憶装置に全ての符号語を格納することなく高速に可変長符号化データストリームから符号語を抽出できる。第2に、回路規模の増大を抑えつつ高速に可変長符号化データストリームを復号化できる。第3に、回路規模の増大を抑えながら、可変長符号化された高レートのデータストリームを復号化して、画像を再生することができる。
以下、本発明の実施形態について、図面を参照して説明する。
図1は、本発明の実施形態に係る画像再生装置の構成の一例を示す図である。
図1に示す画像再生装置は、データストリームバッファ1と、可変長復号化部2と、逆量子化部3と、逆DCT部4と、演算部5と、動き補償予測部6と、フレームメモリ7と、ディスプレイ部8とを有する。
なお、可変長復号化部2は、本発明の復号化部の一実施形態である。
データストリームバッファ1は、例えばBSやCSなどのデジタル放送のチューナや、DVDなどの記録媒体から可変長符号化された画像のデータストリームを入力し、一時的に記憶する。
可変長復号化部2は、データストリームバッファ1に格納されるデータストリームを先頭から順に入力し、これに可変長復号化処理を施す。すなわち、可変長符号化データストリームの先頭から順に符号語を抽出し、抽出した符号語を量子化DCT係数のランレングスとレベルに変換する。そして、このランレングスとレベルから、マクロブロック中の量子化DCT係数を求める。
また、可変長復号化部2は、量子化DCT係数の他にも、例えば量子化テーブルや動きベクトルなどをデータストリームから復号化する。
逆量子化部3は、可変長復号化部2において復号化される量子化テーブルに基づいて、量子化DCT係数を逆量子化し、DCT係数に変換する。
逆DCT部4は、逆量子化部3から供給されるDCT係数に対してマクロブロックごとに逆DCT処理を施し、予測残差画像に変換する。
動き補償予測部6は、可変長復号化部2において復号化される動きベクトルに応じて、フレームメモリ7から予測画像を読み出し、演算部5に供給する。
演算部5は、逆DCT部4から供給される予測残差画像と動き補償予測部6から供給される予測画像とを加算して、元の画像を再生する。
フレームメモリ7は、演算部5において再生された画像を格納する。フレームメモリ7に格納される画像は、その後に再生される画像の参照画像として用いられる。
ディスプレイ部8は、フレームメモリ7に格納される画像に基づいて動画像を再生し表示する。
図1に示す画像再生装置の動作を説明する。
デジタル放送のチューナや光ディスク等の記録媒体から入力される可変長符号化データストリームは、データストリームバッファ1に一時格納される。可変長復号化部2は、データストリームバッファ1に格納されるデータストリームを随時読み出して復号化する。
可変長復号化部2において復号化された量子化DCT係数および量子化テーブルは、マクロブロックごとに逆量子化部3に供給される。逆量子化部3は、量子化テーブルに応じて、マクロブロック内の各量子化DCT係数を逆量子化し、DCT係数に変換する。逆DCT部4は、このDCT係数に対してマクロブロックごとに逆DCT処理を施し、予測残差画像に変換して、演算部5に供給する。
一方、可変長復号化部2において復号化された動きベクトルは、動き補償予測部6に供給される。動き補償予測部6は、可変長復号化部2から供給される動きベクトルに応じた予測画像をフレームメモリから読み出して、演算部5に供給する。
演算部5は、逆DCT部4より供給される予測残差画像と動き補償予測部6より供給される予測画像とを加算して元の画像を再生し、フレームメモリ7に格納する。フレームメモリ7に格納される画像は、その後に再生される画像の参照画像として用いられるとともに、適宜読み出されてディスプレイ部8に供給され、動画像として表示される。
次に、可変長復号化部2の詳細な構成について説明する。
図2は、可変長復号化部2の構成の一例を示す図である。
図2に示す可変長復号化部2は、符号語抽出部21と、ラン/レベル変換部22とを有する。
ラン/レベル変換部22は、本発明の情報再生部の一実施形態である。
符号語抽出部21は、データストリームバッファ1に格納される可変長符号化データストリームを先頭から順に入力し、その中に含まれる符号語を抽出する。
ラン/レベル変換部22は、符号語抽出部21で抽出される符号語をそれぞれランレングスとレベルに変換する。例えば、ランレングスおよびレベルと符号語とを対応付けたテーブルを参照することにより、符号語抽出部21で抽出される符号語をランレングスとレベルに変換する。そして、得られたランレングスとレベルに基づいて、マクロブロックごとに量子化DCT係数を求める。
図3は、符号語抽出部21の構成の一例を示す図である。
図3に示す符号語抽出部21は、データストリームシフト部201と、符号語ロード部202と、一致検出部U0,U1,U2と、メモリ204と、論理和回路OR1,OR2と、フリップフロップFF1,FF2とを有する。
データストリームシフト部201は、本発明のデータストリームシフト部の一実施形態である。
符号語ロード部202は、本発明の符号語ロード部の一実施形態である。
一致検出部U0は、本発明の第1の一致検出部の一実施形態である。
一致検出部U1,U2は、本発明の第2の一致検出部の一実施形態である。
[データストリームシフト部201]
データストリームシフト部201は、データストリームバッファ1に格納されるデータストリームの先頭から16ビットのデータS_BSを抽出し、一致検出部U0,U1,U2に入力する。また、一致検出部U0,U1,U2において検出される符号語の符号長を示す信号S_BLに応じて、データブロックの抽出位置をデータストリームの末尾側にシフトさせる。
データストリームシフト部201において処理するデータストリームは、例えば図4に示すように、様々な長さの符号語(D1,D2,…)を順番に連結して形成されるデータの結合体である。データストリームシフト部201は、このデータの結合体の先頭部分から順番に16ビットのデータS_BSを抽出する。そして、後述する一致検出部U0〜U2において符号語が検出されるたびに、データS_BSの抽出位置をデータストリームの末尾方向へシフトさせる。
例えば、データストリームシフト部201は、一致検出部U0によって符号語D3が検出された場合、この検出された符号語D3のデータ長分だけ、データS_BSの抽出位置をデータストリームの末尾方向にシフトする。これにより、データストリームシフト部201は、次に一致検出部U0〜U2へ供給するデータS_BSとして、先頭部分に符号語D4を含んだ16ビットのデータをデータストリームから抽出する。
なお、符号語の最上位ビットがデータストリームの先頭側に位置するか末尾側に位置するかは任意である。図5(A)はデータストリームの先頭側に符号語の最上位ビット(MSB)がある場合を示し、図5(B)はデータストリームの末尾側に符号語の最上位ビットがある場合を示す。
以降の説明では、一例として、データストリームの先頭側に符号語の最上位ビットがあるものとする(図5(A))。
図3の例において、データストリームシフト部201は、制御部2011と、ビットシフト部2012と、フリップフロップFF4およびFF5とを有する。
フリップフロップFF4およびFF5は、それぞれ16ビットのデータを格納する。フリップフロップFF4の出力はフリップフロップFF5の入力に接続されており、制御部2011の制御に従って、フリップフロップFF4のデータをフリップフロップFF5にシフトする。
制御部2011は、一致検出部U0,U1,U2において検出される一連の符号語の符号長を、信号S_BLに基づいて積算する。そして、積算した符号長が16ビットに達した場合、フリップフロップFF4のデータをフリップフロップFF5にシフトさせるとともに、次に可変長復号化する16ビットのデータをデータストリームバッファ1から読み出して、フリップフロップFF4にロードする。また、符号長の積算値から16ビットを減算する。
ビットシフト部2012は、フリップフロップFF4およびFF5に保持される32ビットのデータの先頭から、制御部2011において算出される符号長の積算値に相当するビット長だけ末尾側にシフトした位置より16ビットのデータS_BSを抽出し、一致検出部U0,U1,U2に供給する。
図3に示すデータストリームシフト部201によると、フリップフロップFF4およびFF5は、次に抽出すべき符号語を含む32ビットのデータを格納する。フリップフロップFF5は、この32ビットのデータのうち先頭側の16ビットを格納し、フリップフロップFF4は、末尾側の16ビットを格納する。
一致検出部U0,U1,U2において符号語が検出されると、その符号長を示す信号S_BLが制御部2011に入力される。制御部2011は、この信号S_BLに基づいて、一致検出部U0,U1,U2が検出した一連の符号語の符号長を積算する。
制御部2011で積算された符号長は、ビットシフト部2012に入力される。ビットシフト部2012は、フリップフロップFF4およびFF5に格納される32ビットのデータの先頭から、制御部2011で算出された積算値に相当するビット長だけ末尾側にシフトした位置より16ビットのデータS_BSを抽出する。ビットシフト部2012で抽出された16ビットのデータS_BSは、次に抽出すべき符号語を含むデータストリームの先頭部分のデータとして、一致検出部U0,U1,U2に供給される。
符号長の積算値が16ビットに達すると、制御部2011は、フリップフロップFF4に格納される後半の16ビットのデータを、フリップフロップFF5にシフトさせる。そして、この16ビットデータの次に処理すべき16ビットのデータを、データストリームバッファ1からフリップフロップFF5にロードする。また、符号長の現在の積算値から16ビットを減算する。これにより、フリップフロップFF4,FF5に新たに設定された32ビットのデータの先頭から、新たな積算値によって示されるビット長だけ末尾側にシフトした位置は、次に抽出すべき符号語の先頭の位置と等しくなる。
[一致検出部U0,U1,U2]
一致検出部Un(nは、整数0、1、2のうちの任意の1つを示す)は、符号語ロード部202から供給される16の符号語を記憶するための記憶部を有する。一致検出部Unは、データストリームシフト部201において抽出される16ビットのデータS_BS中の少なくとも先頭のデータを含んだ一連のデータと、この記憶部に記憶される16の符号語とを比較する。比較結果、一致する符号語を検出した場合、一致検出部Unは、検出した符号語S_CWoとその符号長を示す信号S_BLo(以降、符号長S_BLoと表記する)を出力する。
図6は、一致検出部Unの構成の一例を示す図である。
図6に示す一致検出部Unは、フリップフロップFF6−0〜FF6−15と、一致検出回路E0〜E15と、論理和回路OR3およびOR4とを有する。
フリップフロップFF6−0〜FF6−15は、本発明の記憶部の一実施形態である。
フリップフロップFF6−m(mは、整数0〜15のうちの任意の1つを示す)は、符号語ロード部202から供給される符号語データを図示しないクロック信号CLKに同期してそれぞれラッチする。
図7は、符号語ロード部202からフリップフロップFF6−mにロードされる符号語データの一例を示す図である。
図7の例に示す符号語データは、符号語の本体を示すデータとその符号長を示すデータを含んでいる。すなわち、符号語データのビット長は全体で20ビットであり、そのうち下位の16ビットのデータが符号語を表し、上位6ビットのデータがその符号語の符号長を表す。符号語は、下位16ビットの中の最下位側に詰めて配置されており、この16ビット中の符号語でないビットは‘0’で埋められている。
一致検出回路Emは、フリップフロップFF6−mに格納される符号語データCWi中の符号語と、データストリームシフト部201から供給される16ビットのデータS_BSの先頭部分とを比較する。この比較の結果、データS_BSの先頭部分に符号語と一致するデータが見つかった場合、一致検出回路Emは、この符号語CWoを出力するとともに、符号語CWoの符号長を示す信号BLo(以降、符号長BLoと表記する)を出力する。これに対し、符号語と一致するデータが見つからない場合、一致検出回路Emは、符号語CWoおよび符号長BLoの全ビット値を‘0’に設定して出力する。
図8は、一致検出回路Emの構成の一例を示す図である。
図8に示す一致検出回路Emは、ビットシフト部2031と、シフト量演算部2032と、比較部2033と、論理積回路AND1,AND2とを有する。
シフト量演算部2032は、フリップフロップFF6−mに格納される符号語データCWiのうち、符号長を表す上位4ビットのデータに基づいて、ビットシフト部2031のシフト量(16ビット−符号長)を演算する。
ビットシフト部2031は、シフト量演算部2032において演算されたシフト量だけ、データS_BSをデータストリームの末尾側(16ビットの最下位側)にビットシフトさせる。また、このビットシフトによって生じる上位側の空きビットには‘0’を埋める。この結果、符号語データCWiにおいて指示される符号長のデータに相当するデータS_BSの先頭部分が、16ビットの最下位側に詰めて配置され、残りの上位ビットは‘0’で埋められる。
図9は、ビットシフト部2031の動作を説明するための図である。例えば符号語CWiの符号長がkビットの場合、ビットシフト部2031は、データS_BSをデータストリームの末尾側に‘16−k’ビットだけビットシフトさせるとともに、上位側の空きビット(kビット)に‘0’を埋める。
図10は、ビットシフト部2031のビットシフト操作の具体例を説明するための図である。
図10の例において、16ビットのデータS_BSは
‘0001101101011100’
である。また、符号語データCWiの上位4ビットは
‘0110’
であり、10進数の‘6’に等しい。この場合、ビットシフト部2031では、データS_BSを10ビット(=16ビット−4ビット)だけ下位側にビットシフトする操作が行われる。この操作により得られるデータは、図10に示すように、元のデータS_BSの上位6ビット
‘000110’
を最下位側に詰めて配置したものとなる。
比較部2033は、ビットシフト部2031においてビットシフトされた16ビットのデータと、符号語データCWiにおいて符号語を示す下位16ビットのデータとを比較する。比較の結果、両者が一致する場合に‘1’を出力し、両者が一致しない場合に‘0’を出力する。
符号語データCWiの下位16ビットのデータ内には、符号語データCWiの上位4ビットのデータで示される符号長を有する符号語が、最下位側に詰めて配置されている。また、ビットシフト部2031においてビットシフトされた16ビットのデータ内には、この符号語と等しいビット長を有するデータS_BSの先頭部分のデータが、最下位側に詰めて配置されている。そして、この2つの16ビットデータにおける上位側の残りのビットは、何れも‘0’のビットデータで埋められている。
従って、データS_BSの先頭部分に、符号語データCWiの符号語と等しいデータが存在する場合、ビットシフト部2031においてビットシフトされた16ビットのデータは、符号語データCWiの下位16ビットのデータと一致する。従って、この場合、比較部2033は‘1’を出力する。他方、データS_BSの先頭部分に、符号語データCWiの符号語と等しいデータが存在しない場合、比較部2033は‘0’を出力する。
論理積回路AND1は、比較部2033の出力信号と符号語データCWiの上位4ビットとの論理積をそれぞれ演算し、演算結果を4ビットの符号長BLoとして出力する。比較部2033から‘1’が出力される場合、符号長BLoは、符号長を表す符号語データCWiの上位4ビットのデータと等しくなる。他方、比較部2033から‘0’が出力される場合、符号長BLoの全ビットは‘0’になる。
論理積回路AND2は、比較部2033の出力信号と符号語データの下位16ビットの論理積をそれぞれ演算し、演算結果を符号語CWoとして出力する。比較部2033から‘1’が出力される場合、符号語CWoは、符号語を表す符号語データCWiの下位16ビットのデータと等しくなる。他方、比較部2033から‘0’が出力される場合、符号語CWoの全ビットは‘0’になる。
以上が、一致検出回路Emの説明である。
図6の説明に戻る。
論理和回路OR3は、一致検出回路E0〜E15から出力される符号長BLo同士の論理和を演算し、演算結果を4ビットの符号長S_BLoとして出力する。16の一致検出回路E0〜E15の1つが有効な符号長BLoを出力し、残りの一致検出回路が全ビット‘0’の符号長BLoを出力する場合、符号長S_BLoは、この有効な符号長BLoと等しくなる。他方、16の一致検出回路E0〜E15が何れも全ビット‘0’の符号長BLoを出力する場合、符号長S_BLoも全ビット‘0’になる。
論理和回路OR4は、一致検出回路E0〜E15から出力される符号語CWo同士の論理和を演算し、演算結果を16ビットの符号語S_CWoとして出力する。16の一致検出回路E0〜E15の1つが有効な符号語CWoを出力し、残り一致検出回路が全ビット‘0’の符号語CWoを出力する場合、符号語S_CWoは、この有効な符号語CWoと等しくなる。他方、16の一致検出回路E0〜E15が何れも全ビット‘0’の符号語CWoを出力する場合、符号語S_CWoも全ビット‘0’になる。
図11は、一致検出部Unにおける一致検出動作の一例を示す図である。
図11に示す例において、データS_BSの先頭には‘1000010101…’というビット列が含まれている。一致検出回路E0〜E15では、このデータS_BSの先頭部分と2ビットの符号語‘01’、3ビットの符号語‘101’、4ビットの符号語‘1101’、…、4ビットの符号語‘0000’、5ビットの符号語‘10000’、7ビットの符号語‘0000000’とがそれぞれ比較される。比較の結果、5ビットの符号語‘10000’のみがデータS_BSの先頭と一致するため、一致検出部Unは符号語S_CWoとして‘0000000000010000’を出力し、符号長S_BLoとして‘0101’(十進数で‘5’)を出力する。
なお、一致検出部U0,U1,U2は、後述する符号語ロード部202によって何れか1つが選択的に活性化される。活性化された一致検出部は、上述した一致検出動作を実行し、活性化されていない一致検出部は、符号長S_BLoおよび符号語CWoとして全ビット‘0’の無効な信号を出力する。そのため、後述するフリップフロップFF1およびFF2には、活性化された一致検出部より出力される符号長S_BLoおよび符号語CWoがラッチされる。
[論理和回路OR1、フリップフロップFF1]
論理和回路OR1は、上述した一致検出部U0,U1,U2から出力される符号長S_BLo同士の論理和を演算し、演算結果をフリップフロップFF1に入力する。
フリップフロップFF1は、論理和回路OR1から出力される4ビットの演算結果を図示しないクロック信号CLKに同期してラッチし、符号長の信号S_BL(以降、符号長S_BLと表記する)として出力する。
3つの一致検出部U0,U1,U2の1つが有効な符号長S_BLoを出力し、残りの一致検出部が全ビット‘0’の符号長S_BLoを出力する場合、符号長S_BLは、この有効な符号長S_BLoと等しくなる。他方、3つの一致検出部U0,U1,U2が何れも全ビット‘0’の符号長S_BLoを出力する場合、符号長S_BLも全ビット‘0’になる。
すなわち、一致検出部U0,U1,U2の何れか1つにおいてデータS_BSの先頭部と一致する符号語が検出された場合に、その符号長を示す4ビットの信号S_BLがフリップフロップFF1にラッチされる。他方、3つの一致検出部U0,U1,U2の何れにおいてもデータS_BSの先頭部と一致する符号語が検出されない場合には、フリップフロップFF1には全ビット‘0’の無効な信号S_BLがラッチされる。
[論理和回路OR2、フリップフロップFF2]
論理和回路OR2は、上述した一致検出部U0,U1,U2から出力される符号語S_CWo同士の論理和を演算し、演算結果をフリップフロップFF2に入力する。
フリップフロップFF2は、論理和回路OR2から出力される16ビットの演算結果を図示しないクロック信号CLKに同期してラッチし、符号語S_CWとして出力する。
3つの一致検出部U0,U1,U2の1つが有効な符号語S_CWoを出力し、残りの一致検出部が全ビット‘0’の符号語S_CWoを出力する場合、符号語S_CWは、この有効な符号語S_CWoと等しくなる。他方、3つの一致検出部U0,U1,U2が何れも全ビット‘0’の符号語S_CWoを出力する場合、符号語S_CWも全ビット‘0’になる。
すなわち、3つの一致検出部U0,U1,U2の何れか1つにおいてデータS_BSの先頭部と一致する符号語が検出された場合、その符号語S_CWがフリップフロップFF2にラッチされる。他方、3つの一致検出部U0,U1,U2の何れにおいてもデータS_BSの先頭部と一致する符号語が検出されない場合、全ビット‘0’の無効な符号語S_CWがフリップフロップFF2にラッチされる。
[符号語ロード部202]
符号語ロード部202は、データストリームシフト部201において新たな16ビットのデータS_BSが抽出された場合、3つの一致検出部U0,U1,U2から順番に1つの一致検出部を選択するとともに、データストリームの可変長符号化に用いられる所定の複数の符号語(以降、符号語テーブルと呼ぶ)から順番に16個の符号語の組(以降、符号語セットと呼ぶ)を選択する。そして、選択した一致検出部の記憶部(フリップフロップFF6−0〜FF6−15)に選択した符号語セットをロードする。
また、符号語ロード部202は、ランレングスの短い符号語をランレングスの長い符号語より優先して符号語テーブルから選択し、一致検出部U0,U1,U2の記憶部にロードする。
データストリームを構成する各符号語は、それぞれランレングスとレベルに対応付けられている。ランレングスは、マクロブロック中において連続する値ゼロの量子化係数の個数を表し、レベルは、値ゼロの量子化係数に続いて現れる非ゼロの量子化係数の値を表している。つまり、各符号語には、ゼロ個もしくは1つ以上のゼロの量子化係数と、1つの非ゼロの量子化係数とが、情報語として対応付けられている。そのため、ランレングスの値が大きい符号語ほど、対応付けられる情報語(量子化係数)の数が多くなる。
従って、符号語ロード部202は、対応付けられた情報語の数が少ない(すなわちランレングスが短い)符号語を、この数が多い(すなわちランレングスが長い)符号語より優先して符号語テーブルから選択し、一致検出部U0,U1,U2の記憶部にロードする。
更に、符号語ロード部202は、データストリームからの符号語の抽出を開始する際、まず始めに、ランレングスの最も短い符号語セットを一致検出部U0の記憶部にロードする。その後、データストリームシフト部201において新たな16ビットのデータS_BSが抽出された場合、符号語ロード部202は、2つの一致検出部U1,U2から順番に一方を選択するとともに、符号語テーブルの中からランレングスの短い順に符号語セットを順次選択する。そして、選択した一致検出部の記憶部に選択した符号語セットをロードする。
すなわち、符号語ロード部202は、データストリームの可変長符号化を開始する際に、ランレングスの最も短い符号語セットを一致検出部U0の記憶部にロードし、以降は、この符号語セットを一致検出部U0の記憶部に記憶させたままにする。そして、新しいデータS_BSがデータストリームシフト部201において抽出されるたびに、符号語テーブルの中からランレングスの短い順に選択した符号語セットを、2つの一致検出部U1,U2の記憶部へ交互にロードする。
なお、符号語ロード部202は、等しいランレングスを有する符号語については、符号長の短い符号語を符号長の長い符号語より優先して符号語テーブルから選択し、一致検出部U0,U1,U2の記憶部にロードする。
また、符号語ロード部202は、3つの一致検出部U0,U1,U2のうちの1つを選択的に活性化する制御を行う。
例えば、データストリームシフト部201において新しいデータS_BSが抽出された場合、次にデータS_BSが抽出されるまでの間、符号語ロード部202は、一致検出部U0,U1,U2,U1,U2,U1…の順番でこれらを活性化する。
上述したように、一致検出部U0の記憶部には、ランレングスの最も短い符号語セットが格納され、一致検出部U1,U2の記憶部には、ランレングスの短い順に交互に符号語セットがロードされる。そのため、3つの一致検出部を‘U0,U1,U2,U1,U2,U1…’の順番で活性化させた場合、ランレングスの短い符号語セットから順番にデータS_BSとの比較が行われる。
この符号語ロード部202は、例えば図3に示すように、アドレスデコーダ2021と、テーブル記憶部2022と、選択部2023と、制御部2024と、フリップフロップFF3とを有する。
アドレスデコーダ2021は、フリップフロップFF3にラッチされるデータをデコードし、テーブル記憶部2022の記憶領域を指定するアドレスを生成する。
テーブル記憶部2022は、並列に符号語データを読み出すことが可能な16ブロックのメモリを有しており、各メモリは所定数の符号語データを格納する。アドレスデコーダ2021からアドレスが入力されると、各メモリは、この入力アドレスに対応した記憶領域から符号語データを出力する。すなわち、テーブル記憶部2022は、アドレスデコーダ2021において生成されるアドレスに対応した16個の符号語データの組を、符号語セットとして出力する。
テーブル記憶部2022の上述したメモリは、例えば、16進数のアドレス‘00h’,‘01h’,…,‘1Fh’によって指定される32個の記憶領域を有しており、各記憶領域に符号語データを格納する。データストリームシフト部201において新しいデータS_BSが抽出されると、制御部2024の制御に従って、例えばアドレス値の小さい記憶領域から順番に符号語データが読み出される。
この場合、32個の記憶領域には、アドレス‘00h’,‘01h’,‘02h’,…の順にランレングスの短い符号語が格納され、アドレス‘00h’の記憶領域に最もランレングスの短い符号語が格納される。また、同一ランレングスの符号語を格納する記憶領域について比較すると、アドレス値の小さい記憶領域にはアドレス値の大きい記憶領域に比べて符号長の短い符号語が格納される。
選択部2023は、制御部2024の制御に従って、3つの一致検出部U0,U1,U2の中から1つを選択し、その記憶部にテーブル記憶部2022から読み出される符号語セットをロードする。
すなわち、選択部2023は、データストリームから符号語の抽出を開始する際、まず始めに一致検出部U0を選択し、その記憶部に最もランレングスの短い符号語セットをロードする。以降は、データストリームシフト部201において新たなデータS_BSが抽出されるたびに、一致検出部U1,U2,U1,U2,…の順で交互に一方の一致検出部を選択し、その記憶部にテーブル記憶部2022からランレングスの短い順に読み出される符号語セットをロードする。
制御部2024は、テーブル記憶部2022に対する符号語データの書き込み処理や読み出し処理、選択部2023における選択動作の制御を行う。また、一致検出部U0,U1,U2を選択的に活性化する処理を行う。
すなわち、データストリームから符号語を抽出する前に、制御部2024は、メモリ204から符号語テーブルを読み出して、テーブル記憶部2022の16ブロックのメモリにロードする。
データストリームから符号語の抽出を開始する際、制御部2024は、テーブル記憶部2022のアドレス‘00h’に対応するデータを生成して、フリップフロップFF3にラッチさせる。これにより、最もランレングスの短い符号語セットがテーブル記憶部2022から読み出される。制御部2024は、選択部2023を制御して、この読み出された符号語セットを一致検出部U0の記憶部にロードする。
以降、制御部2024は、データストリームシフト部201において新たなデータS_BSが抽出されるたびに、アドレス‘01h’,‘02h’,…の順でテーブル記憶部2022から符号語セットを読み出し、これを‘U1,U2,U1,U2,…’の順で交互に選択した一致検出部にロードする。
制御部2024は、3つの一致検出部U0,U1,U2に対する上述した符号語セットのロード処理と並行して、これらを選択的に活性化する処理も行う。
すなわち、制御部2024は、データストリームシフト部201において新たなデータS_BSが抽出されると、データストリームシフト部201において次のデータS_BSが抽出されるまで、‘U0,U1,U2,U1,U2,…’の順で3つの一致検出部を活性化させる。
なお、この場合、制御部2024は、データストリームシフト部201において新たなデータS_BSが抽出されるか否かの判断を、論理和回路OR1より出力される信号S_Mに基づいて行う。すなわち、信号S_Mの全ビットが‘0’の場合、現在活性化中の一致検出部において一致する符号語が検出されていないため、新たなデータS_BSは抽出されないと判断する。信号S_Mに‘1’のビットが存在する場合、現在活性化中の一致検出部において一致する符号語が検出されているため、新たなデータS_BSが抽出されると判断する。
制御部2024は、一致検出部の活性化処理と符号語データのロード処理を並列に実行する。例えば、一致検出部U1を活性化して検出動作を実行させるとき、これと並行して、次に活性化する予定の一致検出部U2に符号語データをロードする。
次に、上述した構成を有する符号語抽出部21の動作について、図12に示すフローチャートを参照して説明する。
始めに、符号語ロード部202は、メモリ204から符号語テーブルを読み出して、内部のテーブル記憶部2022にロードする(ステップST1)。テーブル記憶部2022に符号語テーブルの全体を格納できる場合、このロード処理は符号語の抽出開始時に一度だけ行えば良い。他方、テーブル記憶部2022に符号語テーブルの全体を格納できない場合、符号語ロード部202は、後述する一致検出処理の過程で必要な残りの符号語をメモリ204からテーブル記憶部2022へ適宜ロードする。
次に符号語ロード部202は、一致検出動作における種々の初期設定を行う(ステップST2)。例えば、データストリームから抽出する符号語の数を設定する。
初期設定の後、符号語抽出部21は、一致検出動作を開始する。画像再生装置の図示しないシステム制御部は、一致検出動作の終了を通知する符号語抽出部21の応答信号を待ち受ける状態になる(ステップST18)。なお、このとき、データストリームバッファ1には、デジタル放送などから受信したデータや、光ディスク等の記録媒体から入力したデータストリームが既に格納されている。
まず、データストリームシフト部201は、データストリームバッファ1に格納されるデータストリームの先頭から16ビットのデータB_BSを抽出する(ステップST3)。また、符号語ロード部202は、ランレングスの最も短い符号語セットを一致検出部U0にロードする(ステップST4)。
一致検出部U0に符号語セットがロードされると、符号語ロード部202は、一致検出部U0を活性化する。これにより、一致検出部U0は、ロードされた符号語セットの中の各符号語とデータS_BSの先頭部分とを比較し、一致する符号語を検出する(ステップST5)。また、符号語ロード部202は、次の一致検出動作に備えて、現在検出中の符号語セットの次にランレングスの短い符号語セットをテーブル記憶部2022から一致検出部U1の記憶部へロードする(ステップST6)。一致検出部U1に対する符号語セットのロード処理と、一致検出部U0の検出動作は並列に実行される。
一致検出部U0において検出動作が実行されると、符号語ロード部202は、その検出結果を論理和回路OR1の出力信号S_Mに基づいて判定する(ステップST7)。すなわち、出力信号S_Mの全ビットが‘0’の場合、一致する符号語が検出されなかったと判定し、出力信号S_Mに‘1’のビットが含まれている場合、一致する符号語が検出されたと判定する。
一致検出部U0において一致する符号語が検出されない場合、符号語ロード部202は、一致検出部U1を活性化する。これにより一致検出部U1は、ロードされた符号語セットを用いて、一致検出部U0と同様な一致検出動作を実行する(ステップST8)。また、符号語ロード部202は、次の検出動作に備えて、現在検出中の符号語セットの次にランレングスの短い符号語セットをテーブル記憶部2022から一致検出部U2の記憶部へロードする(ステップST9)。一致検出部U2に対する符号語セットのロード処理と、一致検出部U1の検出動作は並列に実行される。
一致検出部U1において検出動作が実行されると、符号語ロード部202は、その検出結果を論理和回路OR1の出力信号S_Mに基づいて判定する(ステップST10)。
一致検出部U1において一致する符号語が検出されない場合、符号語ロード部202は、一致検出部U2を活性化する。これにより一致検出部U2は、ロードされた符号語セットを用いて、一致検出部U0と同様な一致検出動作を実行する(ステップST11)。また、符号語ロード部202は、次の検出動作に備えて、現在検出中の符号セットの次にランレングスの短い符号語セットをテーブル記憶部2022から一致検出部U1の記憶部へロードする(ステップST12)。一致検出部U1に対する符号語セットのロード処理と、一致検出部U2の検出動作は並列に実行される。
一致検出部U2において検出動作が実行されると、符号語ロード部202は、その検出結果を論理和回路OR1の出力信号S_Mに基づいて判定する(ステップST13)。
一致検出部U2において一致する符号語が検出されない場合、符号語ロード部202は、再びステップST8およびST9に戻って、上述した処理を反復する。すなわち、データS_BSの先頭部分と一致する符号語が検出されるまで、一致検出部U1,U2の記憶部に対して交互に符号語セットをロードし、検出動作を実行させる。
ステップST7,ST10,ST13において一致する符号語が検出されたと判定される場合、フリップフロップFF2には、この検出された符号語S_CWがラッチされる。この符号語S_CWは、後段のラン/レベル変換部22に取り込まれ、ランレングスとレベルに変換される。
また、この場合、符号語ロード部202は、所定の終了条件に達しているか否かを判定する(ステップST14,ST15,ST16)。例えば、初期設定(ステップST2)で定めた数の符号語を抽出し終えたか否か判定する。
終了条件に達していない場合、データストリームシフト部201は、フリップフロップFF1に格納される符号長の信号S_BLに応じて、データの抽出位置をデータストリームの末尾側にシフトさせる。すなわち、符号語が未だ抽出されていないデータストリームの先頭へ抽出位置をシフトさせる。そして、このシフトした抽出位置から新たに16ビットのデータS_BSを抽出する(ステップST17)。
以降、符号語ロード部202は、再びステップST5およびST6に戻って、上述した処理を反復する。すなわち、データS_BSの先頭部分と一致する符号語が検出されるまで、一致検出部U1,U2の記憶部に対して交互に符号語セットをロードし、検出動作を実行させる。
ステップST14,ST15,ST16において終了条件に達したと判定した場合、符号語抽出部21は、図示しないシステム制御部に対して、符号抽出処理の終了を通知する信号を出力する。
次に、符号語抽出部21のより詳細な動作について、図13〜図15を参照して説明する。
図13は、符号語抽出部21の動作を説明するためのタイミングチャートである。
図13(A)は、符号語抽出部21の動作タイミングの基準となるクロック信号CLKを示す。
図13(B)は、符号語抽出部の動作状態を示す。
図13(C)は、不図示のシステム制御部から符号語抽出部21に対して符号抽出動作の開始を指示するスタート信号S_startを示す。
図13(D)は、符号語抽出部21から不図示のシステム制御部に対して符号語抽出動作の終了を通知するエンド信号S_endを示す。
図13(E)は、一致検出動作の結果を通知する信号S_mを示す。信号S_mは、論理和回路OR1の出力信号S_Mの全ビットが‘0’の場合に‘1’となり、それ以外の場合に‘0’となる信号である。この信号S_mは、一致検出部U0〜U2において一致する符号語が検出された場合に‘0’、検出されない場合に‘1’となる。
図13(F)は、アドレスデコーダ2021から出力されるアドレスデータS_ADRを示す。
図13(G)は、テーブル記憶部2022から読み出される符号語セットS_CWSを示す。
図13(H)は、一致検出部U0の記憶部に格納される符号語セットを示す。
図13(I)は、一致検出部U1の記憶部に格納される符号語セットを示す。
図13(J)は、一致検出部U2の記憶部に格納される符号語セットを示す。
なお、図13(H)〜(J)において太い線で示される枠は、活性化されている一致検出部を示す。
図14は、符号語抽出部21の状態遷移の一例を図解した図である。
符号語抽出部21は、4つの状態IDL,S0,S1,S2を有する。
状態IDLは、符号語抽出動作を開始する前の待ち状態である。不図示のシステム制御部から‘1’のスタート信号S_startが入力されると、符号語抽出部21は、状態IDLから状態S0へ遷移する。
状態S0は、一致検出部U0の記憶部にランレングスが最短の符号語セットをロードする状態である。符号語抽出部21は、クロック信号CKLの1サイクルで状態S0から状態S1へ遷移する。
状態S1は、一致検出部U0において検出動作が行われる状態である。信号S_mが‘0’の場合、符号語抽出部21は状態S1にとどまる。信号S_mが‘1’の場合、符号語抽出部21は状態S1から状態S2へ遷移する。エンド信号S_endが‘1’の場合、符号語抽出部21は状態S1から状態IDLへ戻る。
状態S2は、一致検出部U1またはU2において交互に検出動作が行われる状態である。信号S_mが‘1’の場合、符号語抽出部21は状態S2にとどまる。信号S_mが‘0’の場合、符号語抽出部21は状態S2から状態S1へ遷移する。エンド信号S_endが‘1’の場合、符号語抽出部21は状態S2から状態IDLへ戻る。
図15は、テーブル記憶部2022に入力されるアドレスデータS_ADRと、このアドレスデータS_ADRに応じてテーブル記憶部2022から読み出される符号語セットS_CWSと、その符号語セットのロード先の一致検出部との対応関係の一例を示す図である。
小さい値から順番に、
‘00h’,‘01h’,‘02h’,‘03h’,‘04h’,…;
というアドレスデータS_ADRがテーブル記憶部2022に入力されると、テーブル記憶部2022は、
‘#0’,‘#1’,‘#2’,‘#3’,‘#4’,…;
という符号語セットS_CWSを順次出力する。この符号語セットS_CWSは、
‘U0’,‘U1’,‘U2’,‘U1’,‘U2’,…;
という順番で一致検出部の記憶部にロードされる。
符号語セット‘#0’は、符号語テーブルの中で最もランレングスが短く、番号が大きくなるほどランレングスが長くなる。
クロックサイクルc0:
クロックサイクルc0において、符号語抽出部21は状態IDLにある。状態IDLにおいて、制御部2024は、アドレス‘00h’のデータをフリップフロップFF3にロードする。
クロックサイクルc1:
クロックサイクルc0においてスタート信号S_startが‘1’に設定されると、クロックサイクルc1において符号語抽出部21は状態IDLから状態S0へ遷移する。
状態S0において、制御部2024は、アドレス‘01h’のデータをフリップフロップFF3にロードする。また、テーブル記憶部2022は、アドレス‘00h’の記憶領域から符号語セット‘#0’を出力する。
クロックサイクルc2:
クロックサイクルc2において、符号語抽出部21は、状態S0から状態S1へ遷移する。
符号語ロード部202は、前のクロックサイクルc1においてテーブル記憶部2022から出力される符号語セット‘#0’を、一致検出部U0の記憶部にロードする。また、符号語ロード部202は、状態S1において、一致検出部U0を活性化する。
活性化された一致検出部U0は、検出動作を実行する。その結果、一致する符号語‘CW0’が検出されるため、信号S_mは‘0’になる。
信号S_mが‘0’になると、制御部2024は、次のサイクルにおける符号語セット‘#1’の読み出しに備えて、アドレス‘01h’のデータをフリップフロップFF3にロードする。
また、テーブル記憶部2022は、前のクロックサイクルc1においてフリップフロップFF3にロードされたデータに応じて、符号語セット‘#1’を出力する。
クロックサイクルc3:
前のクロックサイクルc2において信号S_mが‘0’であるため、クロックサイクルc3において符号語抽出部21は状態S1にとどまる。
符号語ロード部202は、前のクロックサイクルc2においてテーブル記憶部2022から出力される符号語セット‘#1’を、一致検出部U1の記憶部にロードする。また、符号語ロード部202は、状態S1において、一致検出部U0を活性化する。
活性化された一致検出部U0は、検出動作を実行する。その結果、一致する符号語が検出されないため、信号S_mは‘1’になる。
信号S_mが‘1’になると、制御部2024は、次のサイクルにおける符号語セット‘#2’の読み出しに備えて、アドレス‘02h’のデータをフリップフロップFF3にロードする。
また、テーブル記憶部2022は、前のクロックサイクルc2においてフリップフロップFF3にロードされたデータに応じて、符号語セット‘#1’を出力する。
クロックサイクルc4:
前のクロックサイクルc3において信号S_mが‘1’になるため、クロックサイクルc4において符号語抽出部21は状態S1から状態S2に遷移する。
符号語ロード部202は、前のクロックサイクルc3においてテーブル記憶部2022から出力される符号語セット‘#1’を、一致検出部U1の記憶部にロードする。また、符号語ロード部202は、状態S2において、一致検出部U1を活性化する。
活性化された一致検出部U1は、検出動作を実行する。その結果、一致する符号語‘CW1’が検出されるため、信号S_mは‘0’になる。
信号S_mが‘0’になると、制御部2024は、次のサイクルにおける符号語セット‘#1’の読み出しに備えて、アドレス‘01h’のデータをフリップフロップFF3にロードする。
また、テーブル記憶部2022は、前のクロックサイクルc4においてフリップフロップFF3にロードされたデータに応じて、符号語セット‘#2’を出力する。
クロックサイクルc5:
前のクロックサイクルc4において信号S_mが‘0’であるため、クロックサイクルc5において符号語抽出部21は状態S2から状態S1に遷移する。
符号語ロード部202は、前のクロックサイクルc4においてテーブル記憶部2022から出力される符号語セット‘#2’を、一致検出部U2の記憶部にロードする。また、符号語ロード部202は、状態S1において、一致検出部U0を活性化する。
活性化された一致検出部U0は、検出動作を実行する。その結果、一致する符号語が検出されないため、信号S_mは‘1’になる。
信号S_mが‘1’になると、制御部2024は、次のサイクルにおける符号語セット‘#2’の読み出しに備えて、アドレス‘02h’のデータをフリップフロップFF3にロードする。
また、テーブル記憶部2022は、前のクロックサイクルc4においてフリップフロップFF3にロードされたデータに応じて、符号語セット‘#1’を出力する。
クロックサイクルc6:
前のクロックサイクルc5において信号S_mが‘1’であるため、クロックサイクルc6において符号語抽出部21は状態S1から状態S2に遷移する。
符号語ロード部202は、前のクロックサイクルc5においてテーブル記憶部2022から出力される符号語セット‘#1’を、一致検出部U1の記憶部にロードする。また、符号語ロード部202は、状態S2において、一致検出部U1を活性化する。
活性化された一致検出部U1は、検出動作を実行する。その結果、一致する符号語が検出されないため、信号S_mは‘1’のまま保持される。
信号S_mが‘1’になると、制御部2024は、次のサイクルにおける符号語セット‘#3’の読み出しに備えて、アドレス‘03h’のデータをフリップフロップFF3にロードする。
また、テーブル記憶部2022は、前のクロックサイクルc5においてフリップフロップFF3にロードされたデータに応じて、符号語セット‘#2’を出力する。
クロックサイクルc7:
前のクロックサイクルc6において信号S_mが‘1’であるため、クロックサイクルc7において符号語抽出部21は状態S2にとどまる。
符号語ロード部202は、前のクロックサイクルc6においてテーブル記憶部2022から出力される符号語セット‘#2’を、一致検出部U2の記憶部にロードする。また、符号語ロード部202は、状態S2において、前サイクルと異なる一致検出部U2を活性化する。
活性化された一致検出部U2は、検出動作を実行する。その結果、一致する符号語‘CW2’が検出されるため、信号S_mは‘0’になる。
信号S_mが‘0’になると、制御部2024は、次のサイクルにおける符号語セット‘#1’の読み出しに備えて、アドレス‘01h’のデータをフリップフロップFF3にロードする。
また、テーブル記憶部2022は、前のクロックサイクルc4においてフリップフロップFF3にロードされたデータに応じて、符号語セット‘#3’を出力する。
以降同様に、符号語抽出部21は、前サイクルの信号S_mの値に応じて、状態S1または状態S2になる。
符号語ロード部202は、前サイクルにおいてテーブル記憶部2022から出力される符号語セットを、図15に示す対応関係を有する一致検出部へロードする。
また、符号語ロード部202は、状態S1において一致検出部U0を活性化する。状態S2においては、前サイクルで活性化したユニットが一致検出部U1であれば一致検出部U2を活性化し、前サイクルで活性化したユニットが一致検出部U2であれば一致検出部U1を活性化する。
活性化した一致検出部において一致する符号語が検出された場合(S_m==‘0’)、制御部2024は、次のサイクルで符号語セット‘#1’がテーブル記憶部2022から出力されるように、フリップフロップFF3へデータをロードする。他方、一致する符号語が検出されない場合(S_m==‘1’)、制御部2024は、前サイクルにおいてフリップフロップFF3にロードされたデータに対応する符号語セットの次にランレングスの長い符号語セットが次のサイクルで出力されるように、フリップフロップFF3へデータをロードする。
テーブル記憶部2022は、前サイクルにおいてフリップフロップFF3にロードされたデータに応じた符号語セットを出力する。
以上説明したように、図3に示す符号抽出装置21によれば、データストリームシフト部201において、可変長符号化されたデータストリームの先頭から、16ビットのデータS_BSが抽出される。新たなデータS_BSがデータストリームシフト部201において抽出されると、符号語ロード部202では、3つの一致検出部U0,U1,U2から所定の順序に従って1つの一致検出部が順番に選択されるとともに、可変長符号の符号語テーブルから所定の順序に従って符号語セット(16個の符号語の組)が順番に選択される。そして、選択された一致検出部の記憶部に選択された符号語セットがロードされる。符号語セットをロードされた一致検出部では、データS_BSの中の少なくとも先頭のデータを含んだ一連のデータと、フリップフロップFF6−0〜FF6−15に記憶される16の符号語とが比較される。そして、この比較の結果、一致する符号語が検出された場合、一致検出部からは、検出された符号語の符号長を示す信号が出力され、論理和回路OR1およびフリップフロップFF1を介してデータストリームシフト部201に供給される。データストリームシフト部201では、供給される符号長の信号S_BLに応じて、データS_BSの抽出位置がデータストリームの末尾側にシフトされ、このシフトされた位置から新たなデータS_BSが抽出される。
このように、図3に示す符号抽出装置では、複数の一致検出部に対する符号語のロードを繰り返しながら各一致検出部において符号語の検出動作が行われるため、符号語テーブルの全体を格納する記憶装置や、全ての符号語とデータストリームとの一致を検出する大規模な回路を必要としない。また、一致検出部において、複数の符号語とデータストリームとの一致検出を並列に実行することも可能である。従って、図3に示す符号抽出装置21によれば、回路規模の増大を抑えつつ高速に可変長符号化データストリームから符号語を抽出することができる。
また、図3に示す符号抽出装置21によれば、可変長符号の特定の性質を利用せずに、データストリーム中から符号語を抽出することができる。
従来の符号語抽出方法では、例えば符号語の先頭の数ビットが特定のビット列を持つ場合にその符号語の符号長が決まるといった、特定の可変長符号の性質を利用して符号語の抽出を行うものがある。そのような方法では、可変長符号化の方式や符号語テーブルに変更が生じた場合、全く使用することができなくなる。
これに対し、図3に示す符号抽出装置21によれば、データストリームから抽出した固定長のデータS_BSと予め与えられる符号語とを直接比較することによって符号語抽出が行われる。そのため、最長の符号長がデータS_BSのデータ長より短い限り、どのような可変長符号にも対応可能である。例えば符号語の規則性がない可変長符号であっても、符号語抽出が可能である。
更に、図3に示す符号語抽出部21によると、ランレングスの短い符号語セットが、ランレングスの長い符号語セットより優先して符号語テーブルから選択され、一致検出部U0,U1,U2の記憶部にロードされる。そして、ランレングスの短い符号語セットから順番にデータストリームと比較され、データストリームとの一致検出が行われる。そのため、対応付けられている情報語(量子化係数)の数が少ない符号語は短い処理サイクルで、対応付けられている情報語の数が多い符号語は長い処理サイクルをかけてデータストリームから抽出される。言い換えると、対応付けられている情報語の数に応じて、符号語の抽出に要する処理サイクルが変化する。
先に述べた図23に示す符号語抽出方式では、符号語テーブルの全体とデータテーブルとを一斉に比較し、1サイクルで検出結果を得ることができるため、符号語の種類に応じて処理サイクルが変化する本実施形態の方式と比べると、符号語の抽出処理は高速である。
符号語のランレングスが‘0’の場合、この符号語には非ゼロの量子化係数が1つだけ対応付けられている。これに対し、符号語のランレングスが1の場合、この符号語には、値がゼロの量子化係数と非ゼロの量子化係数とが対応付けられており、合計2つの量子化係数が1つの符号語に対応付けられている。そのため、1サイクルで1つの符号語をデータストリームから抽出するということは、1サイクルで1つ以上の量子化係数を生成することを意味する。
例えばMPEG2のデータストリームを処理する場合、可変長復号化の後段に続く逆量子化部3や逆DCT部4では、通常1マクロブロックあたり、量子化係数の数である384サイクルを必要とする。従って、仮に可変長復号化部2で1サイクルあたり1つ以上の量子化係数の処理を行っても、後段のユニットにおける処理がネックとなり、全体の処理速度は高速化されない。
言い換えると、1サイクルで1つ以上の量子化係数を生成し得る従来の符号語抽出方式は、後段の処理を考慮した場合、不必要に高速である。
これに対し、図3に示す符号語抽出部21では、ランレングスが‘0’の符号語については、一致検出部U0において1サイクルの処理で検出し、ランレングスが‘1’以上の符号語については、一致検出部U1,U2を交互に動作させることにより数サイクルで検出することができる。従って、図3に示す符号語抽出部21を設けた可変長復号化部2によれば、量子化係数を必要以上に高速に生成することなく、要求された適切な速度で生成することが可能になるため、従来のように大規模な回路を設けることなく、効率的に可変長復号化を行うことができる。
符号語抽出部21の処理速度は、一致検出部U0,U1,U2において並列に一致検出を行う符号語の数に依存する。すなわち、上述の例では一致検出部の内部に16個の一致検出回路を設けて、16の符号語の一致検出動作を並列に実行しているが、一致検出回路とフリップフロップの数を更に増やせば、それだけ高速に符号語を抽出することが可能になる。ただし、その場合、高速化するほど回路規模が大きくなる。
すなわち、図3に示す符号語抽出部21によれば、一致検出部U0,U1,U2において並列に一致検出を行う符号語の数を加減することにより、回路規模と処理速度のトレードオフを図りつつ、両者を適切に設定することが可能である。
符号語抽出部21における回路規模と処理速度との間のトレードオフ関係について、図16および図17を参照して説明する。
図16は、符号語テーブルの一例を示す第1の図である。
図17は、一致検出部U0,U1,U2に内蔵する一致検出回路の数と、特定の符号語の検出に必要なサイクル数との関係の一例を示す図である。
パターンAでは、一致検出部U0,U1,U2にそれぞれ16個の一致検出回路を設ける。パターンBでは、一致検出部U0に16個、一致検出部U1,U2にそれぞれ8個の一致検出回路を設ける。パターンCでは、一致検出部U0,U1,U2にそれぞれ8個の一致検出回路を設ける。回路規模はパターンAの場合が最も大きく、その次がパターンB、一番小さいのがパターンCである。
例えばデータストリームの先頭に符号語‘00000000010001’が存在する場合、パターンAの構成では、2サイクル目に一致検出部U1で一致が検出される。パターンBの構成では、3サイクル目に一致検出部U2で一致が検出される。パターンCの構成では、4サイクル目に一致検出部U1で一致が検出される。
このように、一致検出部において並列に検出する符号語の数を増やすことによって、符号語抽出処理の速度を向上させることができるが、その反面、回路規模が大きくなる。逆に、一致検出部において並列に検出する符号語の数を減らすことによって、回路規模を小さくすることができるが、その反面、検出に到るまでの処理サイクルが長くなる。
例えばハードディスクを内蔵したDVDレコーダーなどの場合、高レートの可変長符号化データストリームを復号化する必要がある。このような場合は、一致検出部において並列に検出する符号語の数を増やして、符号語抽出処理の速度の向上を図ることが好ましい。他方、一方、画素数の少ない低レートのデータストリームを復号化する携帯電話などの携帯機器の場合、一致検出部において並列に検出する符号語の数を減らすことによって、回路規模を小さくすることが好ましい。
このように、図3に示す符号語抽出部21によれば、適用される装置の要求に合わせて、回路規模と処理速度を適切に設定することが可能である。
しかも、図3に示す符号語抽出部21によれば、データストリームからの符号語の抽出を開始する際に、最もランレングスの短い符号語セットが一致検出部U0の記憶部にロードされる。その後、データストリームシフト部201において新たなデータS_BSが抽出される場合、一致検出部U1,U2から所定の順序で一方の一致検出部が順番に選択されるとともに、ランレングスの短い順に符号語テーブルから符号語セットが順番に選択される。そして、選択された一致検出部の記憶部に選択された符号語がロードされる。
もし、一致検出部U0へロードした最もランレングスの短い符号語セットが別の符号語セットに書き換えられてしまうと、1つの符号語の検出を終えて次の符号語の検出を始める際に、一致検出部U0へこの符号語セットを再びロードしなくてはならず、このロードを行うための余分な処理サイクルが発生してしまう。
これに対し、図3に示す符号語抽出部21のように、最もランレングスの短い符号語セットを常に一致検出部U0の記憶部に記憶させたままにすることで、上述した余分な処理サイクルの発生を防止できるため、処理速度の高速化を図ることができる。
以上、本発明の実施形態について詳細に説明したが、本発明は上述した形態のみに限定されるものではなく、種々のバリエーションを含んでいる。
上述した実施形態では、対応付けられた情報語の数が少ない符号語(例えばランレングスの短い符号語)を優先的に一致検出部の記憶部にロードし、データストリームとの一致検出を行っている。しかしながら、本発明はこれに限定されない。例えば、符号長の短い符号語を優先的に一致検出部の記憶部にロードしても良い。
図18は、符号語テーブルの一例を示す第2の図である。
図18において点線で囲った符号語‘010’のランレングスは‘1’、レベルは‘1’である。この符号語からは、ゼロの量子化係数と非ゼロの量子化係数がそれぞれ1つずつ復号化される。従って、平均として1サイクルに1つの量子化係数を復号化する場合、この符号語は最大2サイクルで処理すれば良い。
ところが、3つの一致検出部U0,U1,U2にそれぞれ16個の一致検出回路を設けた構成でこの符号語を処理する場合、図18で示すように3サイクルかかってしまう。
通常、可変長符号では、発生頻度の高い情報語に対して短い符号長の符号語を割り当てるため、3ビットの符号語‘010’は、比較的発生頻度が高いと推測される。もし、データストリームにこの符号語が多く含まれていると、2つの量子化係数を復号化するために3サイクルを使ってしまうため、平均として1サイクルに1つの量子化係数を復号化できなくなる。その結果、1フレームの画像データを規定時間内に処理できなくなってしまう。
そこで、例えば図19に示すように、符号語テーブルにおける符号語の優先順位を符号長の短いものほど高くすると、先ほどの符号語‘010’は1サイクルで検出可能になる。
従って、図3に示す符号語抽出部21によれば、回路構成を全く変えることなく、テーブル内における符号語の並び替え(具体的にはテーブル記憶部2022における符号語の格納順序の変更)を行うだけで、非常に容易に処理性能の改善を図ることが可能である。
なお、符号語テーブルにおける符号語の優先順位を符号長の短い順に設定する場合、同一符号長の符号語については、ランレングスの短い符号語(すなわち対応付けられた情報語の少ない符号語)に高い優先順位を与えても良い。
ところで、図3に示す符号語抽出部21では、テーブル内における符号語の並び替えを容易に行えることから、次のような応用も可能である。すなわち、一致検出の結果を監視して、どの符号語が頻繁に検出されたかを学習し、発生頻度に応じてテーブル内の符号語を動的に並び替えても良い。
図20は、そのような符号語抽出部の構成の一例を示す図である。
図20に示す符号語抽出部21Aは、図3に示す符号語抽出部21と同様の構成を有するとともに、順序決定部205を有する。ただし、符号語ロード部202は、符号語ロード部202Aに置き換えられる。
順序決定部205は、3つの一致検出部U0,U1,U2において一致が検出された一連の符号語に基づいて、各一致検出部に符号語をロードする順序を決定する。例えば、一致検出部U0,U1,U2において一致が検出された一連の符号語に重複して含まれる同一符号語の数を計数し、この計数結果に応じて順序を決定する。
符号語ロード部202Aは、順序決定部205において決定された順序に従って、符号語テーブルの中から順番に符号語セットを選択し、一致検出部U0,U1,U2の記憶部にロードする。具体的には、順序決定部205において決定された順序に従って、テーブル記憶部2022における符号語の格納順序を変更する。すなわち、符号語ロード部202では、常にランレングスの短い順に符号語テーブルの中から符号語セットを選択しているのに対し、符号語ロード部202Aでは、順序決定部205において決定された順序に従って、符号語テーブルの中から符号語セットを選択する。符号語ロード部202Aの他の動作は、符号語ロード部202と同様である。
このような構成によって、データストリームの性質に応じた適切な符号語抽出処理ならびに可変長符号化処理を行うことが可能である。
例えば動画像のデータストリームを扱う場合、シーンの切り替わりがない限り、前フレームと現フレームとの画像周波数成分の相関は強いと考えられる。従って、図20に示す符号語抽出部21Aをそのようなデータストリームの処理に適用した場合、例えばフレームごとに符号語の発生頻度を計測し、その計測結果に応じて符号語の優先順位を決定することが可能である。これにより、次のフレームのデコードを行う前に、発生頻度の計測結果に応じて符号語テーブルの並び替えを行うことが可能になり、符号語抽出処理の高速化を図ることが可能となる。
上述の実施形態では3つの一致検出部U0,U1,U2のうちの何れか1つを選択的に活性化して、検出動作を実行させているが、本発明はこれに限定されない。例えば、3つの一致検出部U0,U1,U2において並列に検出動作を実行させても良い。これにより、一致検出部を選択的に活性化する場合と比べて、並列に検出する符号語の数を増やすことができるため、処理速度を更に高速化することができる。
なお、複数の一致検出部において並列に検出動作を行う場合、処理の開始直後においては、一部の一致検出部に有効な符号語がロードされていない状態となるため、正常な検出動作が行われない。そのため、各一致検出部は、記憶部に有効な符号語がロードされていない初期の状態において、検出結果の出力(S_BLo,S_CWo)を未検出状態(全ビット‘0’)に設定することが好ましい。これにより、有効な符号語がロードされていない一致検出部が存在する場合でも、正しい検出結果が得られる。
図1の例は動画像の再生装置であるが、これに限らず、本発明は静止画像の再生装置にも適用可能である。
図3や図20に示す符号語抽出部における各構成要素の処理(例えば制御部2024)は、専用のハードウェアで実行しても良いし、その少なくとも一部をコンピュータによってプログラムに基づいて実行しても良い。
上述した実施形態で例として挙げている数値(データ長、一致検出部の数、一致検出回路の数、符号語の値など)は説明上の一例であり、他の任意の数値に変更可能である。
本発明の実施形態に係る画像再生装置の構成の一例を示す図である。 可変長復号化部の構成の一例を示す図である。 符号語抽出部の構成の一例を示す図である。 データストリームについて説明するための図である。 データストリーム中における符号語のビット配列について説明するための図である。 一致検出部の構成の一例を示す図である。 符号語ロード部から一致検出部の記憶部にロードされる符号語データの一例を示す図である。 一致検出回路の構成の一例を示す図である。 ビットシフト部の動作を説明するための図である。 ビットシフト部のビットシフト操作の具体例を説明するための図である。 一致検出部における一致検出動作の一例を示す図である。 符号語抽出部の動作を説明するためのフローチャートである。 符号語抽出部の動作を説明するためのタイミングチャートである 符号語抽出部の状態遷移の一例を図解した図である。 テーブル記憶部に入力されるアドレスデータと、このアドレスデータに応じてテーブル記憶部から読み出される符号語セットと、その符号語セットのロード先の一致検出部との対応関係の一例を示す図である。 符号語テーブルの一例を示す第1の図である。 一致検出部に内蔵される一致検出回路の数と、特定の符号語の検出に必要なサイクル数との関係の一例を示す図である。 符号語テーブルの一例を示す第2の図である。 符号語テーブルの一例を示す第3の図である。 符号語抽出部の変形例を示す図である。 従来の第1の方式による可変長復号化処理を説明するための図である。 従来の第2の方式による可変長復号化処理を説明するための図である。 第2の方式において、検出する全ての符号語をフリップフロップにラッチさせる構成を説明するための図である。 MPEG2で用いられる可変長符号の一例を示す図である。
符号の説明
1…データストリームバッファ1、2…可変長復号化部、3…逆量子化部、4…逆DCT部、5…演算部、6…動き補償予測部、7…フレームメモリ、8…ディスプレイ部、21…符号語抽出部、22…ラン/レベル変換部、201…データストリームシフト部、202,202A…符号語ロード部、U0,U1,U2…一致検出部、204…メモリ、205…順序決定部、2011,2024…制御部、2012…ビットシフト部、2021…アドレスデコーダ、2022…テーブル記憶部、2023…選択部、2031…ビットシフト部、2032…シフト量演算部、2033…比較部、OR1〜OR4…論理和回路、AND1,AND2…論理積回路、FF1〜FF5,FF6−0〜FF6−15…フリップフロップ、E0〜E15…一致検出回路。

Claims (15)

  1. 可変長符号化されたデータストリームから符号語を抽出する符号語抽出装置であって、
    上記データストリームの先頭から第1のデータ長のデータブロックを抽出し、入力される第1の信号に応じて当該抽出位置を上記データストリームの末尾側にシフトさせるデータストリームシフト部と、
    少なくとも1つの符号語を記憶可能な記憶部をそれぞれ有し、上記データストリームシフト部において抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと当該記憶部に記憶される符号語とを比較し、当該比較において一致する符号語を検出した場合、当該検出した符号語のデータ長に応じて上記抽出位置をシフトさせる上記第1の信号を出力し、該第1の信号を出力した後に新たに抽出したデータブロックの一致検出を行う、複数の一致検出部と、
    上記データストリームからの符号語の抽出を開始する際に、対応付けられた可変長符号のビットの数が少ない符号語を当該対応付けられた可変長符号のビットの数が多い符号語より優先する所定の順序において最も優先順位が高い少なくとも1つの符号語を上記複数の一致検出部の第1の一致検出部の記憶部にロードし、上記データストリームシフト部において新たなデータブロックが抽出された場合、上記複数の一致検出部の複数の第2の一致検出部において順番に1つの一致検出部を選択するとともに、複数の上記符号語から上記所定の順序に従って順番に少なくとも1つの符号語を選択し、当該選択した第2の一致検出部の記憶部に当該選択した符号語をロードする、符号語ロード部と、
    を有する符号語抽出装置。
  2. 上記符号語ロード部は、対応付けられた可変長符号のビットの数が等しい複数の符号語の中から、ランレングスが短い符号語をランレングスが長い符号語より優先して選択し、上記一致検出部の記憶部にロードする、
    請求項に記載の符号語抽出装置。
  3. 上記符号語ロード部は、上記ランレングスの長さが同じ場合、対応付けられた可変長符号のビットの数が等しい複数の符号語の中から、レベルが小さい符号語をレベルが大きい符号語より優先して選択し、上記一致検出部の記憶部にロードする、
    請求項に記載の符号語抽出装置。
  4. 上記複数の一致検出部において一致が検出された一連の符号語に基づいて、上記一致検出部に上記符号語をロードする順序を決定する順序決定部を有し、
    上記符号語ロード部は、上記順序決定部において決定された順序に従って、上記複数の符号語から順番に少なくとも1つの符号語を選択し、上記一致検出部の記憶部にロードする、
    請求項1に記載の符号語抽出装置。
  5. 上記順序決定部は、上記複数の一致検出部において一致が検出された一連の符号語に重複して含まれる同一符号語の数を計数し、当該計数結果に応じて上記順序を決定する、
    請求項に記載の符号語抽出装置。
  6. 可変長符号化されたデータストリームを復号化する復号化装置であって、
    上記データストリームから符号語を抽出する符号語抽出部と、
    上記符号語抽出部において抽出される符号語に基づいて、可変長符号化された情報を再生する情報再生部とを有し、
    上記符号抽出部は、
    上記データストリームの先頭から第1のデータ長のデータブロックを抽出し、入力される第1の信号に応じて当該抽出位置を上記データストリームの末尾側にシフトさせるデータストリームシフト部と、
    少なくとも1つの符号語を記憶可能な記憶部をそれぞれ有し、上記データストリームシフト部において抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと当該記憶部に記憶される符号語とを比較し、当該比較において一致する符号語を検出した場合、当該検出した符号語のデータ長に応じて上記抽出位置をシフトさせる上記第1の信号を出力し、該第1の信号を出力した後に新たに抽出したデータブロックの一致検出を行う、複数の一致検出部と、
    対応付けられた可変長符号のビットの数が少ない符号語を当該対応付けられた可変長符号のビットの数が多い符号語より優先する所定の順序において最も優先順位が高い少なくとも1つの符号語を上記複数の一致検出部の第1の一致検出部の記憶部にロードし、上記データストリームシフト部において新たなデータブロックが抽出された場合、上記複数の一致検出部の複数の第2の一致検出部において順番に1つの一致検出部を選択するとともに、複数の上記符号語から上記所定の順序に従って順番に少なくとも1つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードする、符号語ロード部とを含む、
    復号化装置。
  7. 上記符号語ロード部は、対応付けられた可変長符号のビットの数が等しい複数の符号語の中から、ランレングスが短い符号語をラレングスが長い符号語より優先して選択し、上記一致検出部の記憶部にロードする
    請求項6に記載の復号化装置
  8. 上記複数の一致検出部において一致が検出された一連の符号語に基づいて、上記一致検出部に上記符号語をロードする順序を決定する順序決定部を有し、
    上記符号語ロード部は、上記順序決定部において決定された順序に従って、上記複数の符号語から順番に少なくとも1つの符号語を選択し、上記一致検出部の記憶部にロードする、
    請求項6に記載の復号化装置
  9. 上記順序決定部は、上記複数の一致検出部において一致が検出された一連の符号語に重複して含まれる同一符号語の数を計数し、当該計数結果に応じて上記順序を決定する、
    請求項8に記載の復号化装置
  10. 可変長符号化された画像のデータストリームを復号化する復号化部を有し、当該復号化部において復号化される画像の情報に基づいて画像を再生する画像再生装置であって、
    上記復号化部は、
    上記データストリームから符号語を抽出する符号語抽出部と、
    上記符号語抽出部において抽出される符号語に基づいて、可変長符号化された画像の情報を再生する情報再生部とを有し、
    上記符号抽出部は、
    上記データストリームの先頭から第1のデータ長のデータブロックを抽出し、入力される第1の信号に応じて当該抽出位置を上記データストリームの末尾側にシフトさせるデータストリームシフト部と、
    少なくとも1つの符号語を記憶可能な記憶部をそれぞれ有し、上記データストリームシフト部において抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと当該記憶部に記憶される符号語とを比較し、当該比較において一致する符号語を検出した場合、当該検出した符号語のデータ長に応じて上記抽出位置をシフトさせる上記第1の信号を出力し、該第1の信号を出力した後に新たに抽出したデータブロックの一致検出を行う、複数の一致検出部と、
    対応付けられた可変長符号のビットの数が少ない符号語を当該対応付けられた可変長符号のビットの数が多い符号語より優先する所定の順序において最も優先順位が高い少なくとも1つの符号語を上記一致検出部の第1の一致検出部の記憶部にロードし、上記データストリームシフト部において新たなデータブロックが抽出された場合、上記複数の一致検出部の複数の第2の一致検出部において順番に1つの一致検出部を選択するとともに、複数の上記符号語から上記所定の順序に従って順番に少なくとも1つの符号語を選択し、当該選択した一致検出部の記憶部に当該選択した符号語をロードする、符号語ロード部とを含む、
    画像再生装置。
  11. 上記符号語ロード部は、対応付けられた可変長符号のビットの数が等しい複数の符号語の中から、ランレングスが短い符号語をランレングスが長い符号語より優先して選択し、上記一致検出部の記憶部にロードする
    請求項10に記載の画像再生装置
  12. 上記複数の一致検出部において一致が検出された一連の符号語に基づいて、上記一致検出部に上記符号語をロードする順序を決定する順序決定部を有し、
    上記符号語ロード部は、上記順序決定部において決定された順序に従って、上記複数の符号語から順番に少なくとも1つの符号語を選択し、上記一致検出部の記憶部にロードする、
    請求項10に記載の画像再生装置
  13. 上記順序決定部は、上記複数の一致検出部において一致が検出された一連の符号語に重複して含まれる同一符号語の数を計数し、当該計数結果に応じて上記順序を決定する、
    請求項12に記載の画像再生装置
  14. 可変長符号化されたデータストリームから符号語を抽出する符号語抽出方法であって、
    上記データストリームからの符号語の抽出を開始する際に、上記符号語に対応するデータテーブルを第1の記憶部から複数の第2の記憶部にロードする第の工程と、
    対応付けられた可変長符号のビットの数が少ない符号語を当該対応付けられた可変長符号のビットの数が多い符号語より優先する所定の順序において最も優先順位が高い符号語を一致検出部の第1の一致検出部の第3の記憶部にロードし、新たなデータブロックが抽出される場合、上記所定の順序に従って優先順位が高い順序で上記複数の第2の記憶部1つを選択するとともに、当該選択した上記データテーブルのデータを上記一致検出部の複数の第2の一致検出部の第4の記憶部に順番にロードする第2の工程と、
    上記第2の工程において抽出されるデータブロック中の上記優先順位が最も高いデータと、上記第1の工程において上記第1の記憶部からロードされた上記データテーブルのデータと比較し一致検出を行う第3の工程と
    上記第の工程において、新たなデータブロックが抽出される場合、当該抽出されるデータブロック中の少なくとも先頭のデータを含んだ一連のデータと、上記第の工程において上記複数の第2の記憶部からロードされた上記データテーブルのデータとを上記複数の第2の一致検出部で順番に比較し、当該比較において一致する符号語を検出する第の工程と、
    を有し、
    上記第の工程において一致する符号語が検出された場合、当該検出された符号語のデータ長に応じて、上記第1の工程における上記データブロックの抽出位置を上記データストリームの末尾側にシフトさせて、上記第1の工程から上記第の工程を繰り返す、
    符号語抽出方法。
  15. 上記第4の工程において、上記符号語のデータ長が等しい場合、上記データブロックの一連のデータと上記データテーブルのデータと比較する上記順番は、ランレングスが短い符号語をランレングスが長い符号語より優先する
    請求項14に記載の符号語抽出方法。
JP2005010098A 2005-01-18 2005-01-18 符号語抽出装置とその方法、復号化装置、ならびに画像再生装置 Active JP4466382B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005010098A JP4466382B2 (ja) 2005-01-18 2005-01-18 符号語抽出装置とその方法、復号化装置、ならびに画像再生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005010098A JP4466382B2 (ja) 2005-01-18 2005-01-18 符号語抽出装置とその方法、復号化装置、ならびに画像再生装置

Publications (2)

Publication Number Publication Date
JP2006203301A JP2006203301A (ja) 2006-08-03
JP4466382B2 true JP4466382B2 (ja) 2010-05-26

Family

ID=36960935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005010098A Active JP4466382B2 (ja) 2005-01-18 2005-01-18 符号語抽出装置とその方法、復号化装置、ならびに画像再生装置

Country Status (1)

Country Link
JP (1) JP4466382B2 (ja)

Also Published As

Publication number Publication date
JP2006203301A (ja) 2006-08-03

Similar Documents

Publication Publication Date Title
US7119723B1 (en) Decoding variable length codes while using optimal resources
US6014095A (en) Variable length encoding system
KR100748485B1 (ko) 가변 길이 코드워드 디코더 및 가변 길이 코드워드 디코딩 방법
KR100924907B1 (ko) 가변 길이 코딩된 비트스트림 디코딩 방법 및 장치와 기록 캐리어
US7343542B2 (en) Methods and apparatuses for variable length encoding
WO2006070925A1 (en) Device and data method for selective compression and decompression and data format for compressed data
US6809665B2 (en) Apparatus and method for decoding variable length code
US6546053B1 (en) System and method for decoding signal and method of generating lookup table for using in signal decoding process
JPH1065549A (ja) 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法
CZ288596A3 (en) Method of encoding color values in a picture and apparatus for making the same
US5696506A (en) Apparatus for variable-length decoding image signals using a run equivalent signal
US7728745B2 (en) Variable length code decoding apparatus and method with variation in timing of extracting bit string to be decoded depending on code word
KR19980702418A (ko) 가변 길이 디코더
US8228214B2 (en) Variable-length code decoding apparatus and method
JP4466382B2 (ja) 符号語抽出装置とその方法、復号化装置、ならびに画像再生装置
US6563442B1 (en) Multiple symbol length lookup table
US6781528B1 (en) Vector handling capable processor and run length encoding
JP2002026737A (ja) データ復号化装置とその方法
US6707398B1 (en) Methods and apparatuses for packing bitstreams
KR0152035B1 (ko) 가변장복호화방법 및 그 장치
JP2934603B2 (ja) 可変長さコードの復号化方法及びその装置
US6707397B1 (en) Methods and apparatus for variable length codeword concatenation
KR0184405B1 (ko) 가변길이 부호화 방법 및 장치
JP3093485B2 (ja) 復号装置
JPH1131973A (ja) 符号化装置、符号化方法、復号化装置、復号化方法、伝送媒体、および、情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070724

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091127

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

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

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

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3