(57)【要約】【課題】大規模なハードウェアを用いずに高速なビット列生成処理を可能とする。【解決手段】プレフィックスとサフィックスとの組合せからなる可変長符号を少なくとも二つ結合して、一つの出力ビット列を生成するビット列生成装置であって、少なくとも二つの可変長符号のそれぞれにおけるプレフィックスの長さとサフィックスの長さとに基づいて、各可変長符号のサフィックスの先頭ビットの出力ビット列における位置を算出する。該位置に基づき、各可変長符号のサフィックスのシフト量を算出し、各可変長符号のサフィックスを該シフト量だけシフトさせた第１のビット長を有する第１のビット列を可変長符号毎に生成する。可変長符号毎の第１のビット列を分割して第２のビット長の複数の第２のビット列を生成し、該第２のビット列においてサフィックスを含むビット列を選択し結合して、出力ビット列を生成する。【選択図】  図１
2008283308.tif 000002
【特許請求の範囲】
【請求項１】
プレフィックスとサフィックスとの組合せからなる可変長符号を少なくとも二つ結合して、一つの出力ビット列を生成するビット列生成装置であって、
少なくとも二つの前記可変長符号のそれぞれにおける、前記プレフィックスの長さと、前記サフィックスの長さとに基づいて、各可変長符号の前記サフィックスの先頭ビットの前記出力ビット列における位置を算出するビット位置算出手段と、
前記ビット位置算出手段にて算出された前記先頭ビットの位置に基づき、前記各可変長符号の前記サフィックスのシフト量を算出し、前記各可変長符号の前記サフィックスを前記シフト量だけシフトさせ、該サフィックスを含むシフト後の長さよりも長い第１のビット長を有する第１のビット列を前記可変長符号毎に生成するシフト手段と、
前記可変長符号毎の前記第１のビット列を分割して、前記第１のビット長よりも短い第２のビット長の複数の第２のビット列を生成し、該第２のビット列において前記サフィックスを含むビット列を選択し結合し、前記出力ビット列を生成するビット列選択手段と
を備えることを特徴とするビット列生成装置。
【請求項２】
前記ビット位置算出手段は、前記少なくとも二つの前記可変長符号のそれぞれにおける、前記プレフィックスの長さと、前記サフィックスの長さとに基づいて、前記出力ビット列の有効ビット長を算出し、
前記ビット列選択手段は、前記有効ビット長に基づいて、結合された前記ビット列から前記出力ビット列を生成することを特徴とする請求項１に記載のビット列生成装置。
【請求項３】
前記シフト量は、前記先頭ビットの位置と、前記第２のビット長とに基づいて算出されることを特徴とする請求項１または２に記載のビット列生成装置。
【請求項４】
前記第１のビット長は、前記第２のビット長と、前記可変長符号におけるサフィックスの最大ビット長との和より大きく、さらに該第２のビット長の最小のＮ倍数（Ｎは２以上の整数）のビット長であることを特徴とする請求項３に記載のビット列生成装置。
【請求項５】
前記可変長符号はＧｏｌｏｍｂ−Ｒｉｃｅ符号であることを特徴とする請求項１乃至４のいずれか１項に記載のビット列生成装置。
【請求項６】
プレフィックスとサフィックスとの組合せからなる可変長符号を少なくとも二つ結合して、一つの出力ビット列を生成するビット列生成方法であって、
少なくとも二つの前記可変長符号のそれぞれにおける、前記プレフィックスの長さと、前記サフィックスの長さとに基づいて、各可変長符号の前記サフィックスの先頭ビットの前記出力ビット列における位置を算出するビット位置算出工程と、
前記ビット位置算出工程にて算出された前記先頭ビットの位置に基づき、前記各可変長符号の前記サフィックスのシフト量を算出し、前記各可変長符号の前記サフィックスを前記シフト量だけシフトさせ、該サフィックスを含むシフト後の長さよりも長い第１のビット長を有する第１のビット列を前記可変長符号毎に生成するシフト工程と、
前記可変長符号毎の前記第１のビット列を分割して、前記第１のビット長よりも短い第２のビット長の複数の第２のビット列を生成し、該第２のビット列において前記サフィックスを含むビット列を選択し結合し、前記出力ビット列を生成するビット列選択工程と
を備えることを特徴とするビット列生成方法。
【請求項７】
コンピュータを請求項１乃至５のいずれか１項に記載のビット列生成装置として機能させるための、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビット列生成装置、ビット列生成方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、動画像の圧縮符号化方式としてＨ.２６４と呼ばれる方式が規格化された。このＨ.２６４符号化方式では、ＭＰＥＧ２およびＭＰＥＧ４などの従来の圧縮符号化方式に比べて、多くの演算量が要求されるが、より高い符号化効率が実現されることが知られている。
【０００３】
このＨ．２６４符号化方式では可変長符号化方式として、コンテキスト適応型可変長符号化（ＣＡＶＬＣ）方式が定義されている。
【０００４】
ＣＡＶＬＣ方式では、各係数のレベル値をプレフィックスとサフィックスからなる可変長符号に変換する。そして可変長符号を非ゼロ係数の個数分だけ結合し、ビット列を生成する。レベルの可変長符号化テーブルは、図８に示すようになる。プレフィックスおよびサフィックスを結合してひとつのレベルを表す可変長符号になる。
【０００５】
レベルが最小値であるときは可変長符号は２ビットであるが、レベルが大きくなるにつれ、一つの可変長符号のビット長は大きくなり、最大２８ビットになるという特徴がある。このような可変長符号を複数個結合しビット列を生成する処理方法が提案されている。この提案方法では、複数の可変長符号のプレフィックスとサフィックスのビット長を累積加算して累積シフト量を求め、このシフト量だけ各可変長符号をシフトして整列した後に、論理和をとってビット列を生成する（特許文献１を参照）。
【特許文献１】特開２００３−２３６３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、このようなビット列生成処理では、複数の可変長符号を結合する際に、可変長符号の累積符号長だけシフト処理を行う必要がある。係数データによってはシフト量が大きくなり、処理時間の増加、シフト処理を行うハードウェア規模の増加につながってしまう。
【０００７】
また、複数の係数データを同時に可変長符号化し、より高速にビット列を生成するには、さらに多くのシフト処理が必要になり、さらなる処理時間の増加、シフト処理を行うハードウェア規模の増加につながるという問題がある。
【０００８】
そこで本発明は、大規模なハードウェアを用いずに高速なビット列生成処理を可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するための本発明は、
プレフィックスとサフィックスとの組合せからなる可変長符号を少なくとも二つ結合して、一つの出力ビット列を生成するビット列生成装置であって、
少なくとも二つの前記可変長符号のそれぞれにおける、前記プレフィックスの長さと、前記サフィックスの長さとに基づいて、各可変長符号の前記サフィックスの先頭ビットの前記出力ビット列における位置を算出するビット位置算出手段と、
前記ビット位置算出手段にて算出された前記先頭ビットの位置に基づき、前記各可変長符号の前記サフィックスのシフト量を算出し、前記各可変長符号の前記サフィックスを前記シフト量だけシフトさせ、該サフィックスを含むシフト後の長さよりも長い第１のビット長を有する第１のビット列を前記可変長符号毎に生成するシフト手段と、
前記可変長符号毎の前記第１のビット列を分割して、前記第１のビット長よりも短い第２のビット長の複数の第２のビット列を生成し、該第２のビット列において前記サフィックスを含むビット列を選択し結合し、前記出力ビット列を生成するビット列選択手段と
を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、大規模なハードウェアを用いずに高速にビット列生成処理を行うことができる。
【発明を実施するための最良の形態】
【００１１】
以下、添付する図面を参照して、発明の実施形態を説明する。
【００１２】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に対応するビット列生成装置の構成例を示す図である。図１において、ビット列生成装置１００は、ビット位置算出部１０１、シフト部１０２、ビット列選択部１０３を備えている。ビット列生成装置１００には、サフィックスとプレフィックスとの組合せにより構成される複数の可変長符号のプレフィックス長およびサフィックスが入力される。本実施形態では、可変長符号として、Ｇｏｌｏｍｂ−Ｒｉｃｅ符号を例に説明を行う。
【００１３】
ビット位置算出部１０１は、各可変長符号のプレフィックス長とサフィックス長からそれぞれのサフィックスの出力ビット列中における先頭ビット位置Ｂｎと、有効ビット長Ｖとを算出する論理回路である。シフト部１０２は、ビット位置算出部１０１で算出されたサフィックスの先頭ビット位置に応じて、各可変長符号のサフィックスをシフトして出力するバレルシフタ回路である。ビット列選択部１０３は、シフト部１０２において生成されたシフト後のビット列を部分ビット列に分割し、サフィックスを含む部分ビット列を選択し、有効ビット長Ｖに基づいて出力ビット列を生成する選択回路である。
【００１４】
本実施形態におけるビット列生成装置１００の動作の一例を以下に説明する。図２はビット列を構成する可変長符号の一例を示す図である。２０１は第１の可変長符号のプレフィックス、２０２は第１の可変長符号のサフィックス、２０３は第２の可変長符号のプレフィックス、２０４は第２の可変長符号のサフィックスである。また、２０５はビット列生成装置１００から出力されるビット列である。なお、本実施形態において、ハードウェア構成を単純化するため図８のテーブル（可変長符号化テーブルの一例）のlevel_prefixの最後の１ビットはサフィックスに分類するものとする。
【００１５】
第１の可変長符号のプレフィックス２０１が「０００００」、サフィックス２０２が「１１」であるためビット位置算出部１０１には第１の可変長符号のプレフィックス長として「５」、サフィックス長として「２」が入力される。同様に第２の可変長符号のプレフィックス２０３が「０００００００００００００００」、サフィックス２０４が「１０１１１１０００００１１」である。よって、ビット位置算出部１０１には第２の可変長符号のプレフィックス長として「１５」、サフィックス長として「１３」が入力される。なお、出力ビット列２０５の上に記載されている数字は、ビット位置を示すインデックスである。
【００１６】
ビット位置算出部１０１では出力ビット列２０５における第１のサフィックス２０２の開始ビット位置（Ｂ１）として「５」を算出する。これは第１のプレフィックス長と同じ値になる。同様に第２のサフィックス２０２の開始ビット位置（Ｂ２）として「２２」を算出する。これは、第１のプレフィックス長、第１のサフィックス長、および第２のプレフィックス長を加算することで求められる。
【００１７】
一度に結合する可変長符号の数が２以上の場合に、第Ｎのプレフィックス長をＰｎ、第Ｎのサフィックス長をＳｎとすると、第Ｎのサフィックスの開始ビット位置Ｂｎは以下の式で求められる。
【００１８】
[数１]
2008283308.tif 000003
また、このビット列の有効ビット長Ｖを出力する。有効ビット長Ｖは以下の式で与えられる。
【００１９】
[数２]
2008283308.tif 000004
本実施形態では３５となり、出力ビット列のうち左（先頭ビット）側から数えて３５ビットが有効になる。
【００２０】
図５にビット位置算出部１０１の内部ブロック図を示す。図５に示すように、ビット位置算出部１０１は、加算回路で構成することができる。図５において、Ｐ１は、第１の可変長符号のプレフィックス長であり、図２に示す例では、「５」となる。Ｓ１は、第１の可変長符号のサフィックス長であり、図２に示す例では、「２」となる。Ｐ２は、第２の可変長符号のプレフィックス長であり、図２に示す例では、「１５」となる。Ｓ２は、第２の可変長符号のサフィックス長であり、図２に示す例では、「１３」となる。なお、これらの例は、図５において括弧書きで示している。
【００２１】
次に、シフト部１０２では、まずビット位置算出部１０１で算出された各サフィックスの開始ビット位置Ｂｎに基づいて、各サフィックスのシフト量を算出する。シフト量の算出にあたり、出力ビット列の部分ビット列のビット長Ｍというパラメータを導入する。Ｍは１以上、出力ビット列の最大ビット長（図２の例では、３５）以下の整数である。Ｍが１であるときは、出力ビット列を１ビットずつの部分ビット列に分割していることになる。一方、Ｍが出力ビット列の最大ビット長であるときは部分ビット列に分割しないことになる。第Ｎのサフィックスに対するシフト量Ｒｎは以下の式で求められる。記号％はＭで割った余りを表す（モジュロ演算）。
【００２２】
[数３]
Ｒｎ ＝ Ｂｎ％Ｍ
本実施形態ではＭを１６とする。この場合、ＲｎはＢｎの下位４ビットの値として求められる。シフト部１０２では、可変長符号毎のサフィックス長ＳｎをＲｎビットだけ右シフト（先頭から後方にシフト）した値として、第１のビット列：ＳＲｎを出力する。ＳＲｎを格納するレジスタの最小ビット幅は、サフィックスの最大ビット長とＭを加算した値よりも大きい最小のＭの倍数（Ｎ倍数：Ｎは２以上の整数）である。図５の可変長符号の場合、サフィックスの最大ビット長は１３であるから、ＳＲｎのビット長（第１のビット長）は３２である。また、シフトされたビットには０値が入るものとする。
【００２３】
[数４]
ＳＲｎ = Ｓｎ ＞＞ Ｒｎ  （「＞＞」は右ビットシフトを表す。）
図２の可変長符号の場合にはＲ１ = ５、Ｒ２ = Ｂ２％Ｍ = ２２％１６ = ６となり、シフト部１０２から出力される値は図３のようになる。図３において、ＳＲ１は、第１の可変長符号のサフィックス２０２を５ビット分だけ右方向にシフトした３２ビット長（第１のビット長）のビット列である。ＳＲ２は、第２の可変長符号のサフィックス２０４を６ビット分だけ右方向にシフトした３２ビット長（第１のビット長）のビット列である。
【００２４】
シフト量Ｒｎは最大でもＭ−１であるため、シフト部１０２はＭ−１ビットのバレルシフタ回路で構成できる。本実施形態の場合には同時に結合する可変長符号は２つなので、Ｍ−１ビットのバレルシフタが２つ必要になる。これらの値はビット列選択部１０３に入力される。
【００２５】
ビット列選択部１０３における処理フローを図４に示す。ステップＳ４０１においてサフィックス番号ｎを１に初期化する。サフィックス番号ｎは、各可変長符号のサフィックスのＩＤを示す内部変数である。また、部分ビット列ＩＤを表すパラメータｐを０に初期化する。部分ビット列ＩＤは、出力ビット列中の各部分ビット列のＩＤを示す内部変数であり、最も左側（先頭側）に位置する部分ビット列のＩＤを０とする。なお、本実施形態では、ステップＳ４０２におけるＳＲｎの分割数に基づき、ｐが０から３までの値を取る。また、出力部分ビット列Ｓｐを０に初期化する。Ｓｐは出力ビット列中の各部分ビット列（Ｓ０、Ｓ１、Ｓ２及びＳ３）の値を示すＭビットの変数である。
【００２６】
続いてステップＳ４０２において、各ＳＲｎをＭビット（第２のビット長）の部分ビット列（第２のビット列）ＳＲｎ_ｋに分割する。ｋは１からＳＲｎのビット幅／Ｍまでの値をとる自然数である。Ｍを１６とすると、図２に示す可変長符号ではｋは１または２の値を取る。ＳＲ１およびＳＲ２を分割した部分ビット列を図７に示す。７０１は部分ビット列ＳＲ１_１であり、ＳＲ１の上位Ｍビット（１６ビット）を切り出したものである。７０２は部分ビット列ＳＲ１_２であり、ＳＲ１から次のＭビット（１６ビット）を切り出したものである。７０３は部分ビット列ＳＲ２_１であり、ＳＲ２の上位Ｍビット（１６ビット）を切り出したものである。７０４は部分ビット列ＳＲ２_２であり、ＳＲ２から次のＭビット（１６ビット）を切り出したものである。
【００２７】
続いてステップＳ４０３において各部分ビット列ＳＲｎ_ｋの部分ビット列番号Ｘｎ_ｋを算出する。各サフィックスの先頭の部分ビット列の番号Ｘｎ_ｋは以下の式で与えられる。なお、ｉｎｔ（）は小数点以下切り捨て演算である。
【００２８】
[数５]
Ｘｎ_ｋ= ｉｎｔ（Ｂｎ／Ｍ）+ ｋ-１
Ｍが１６の場合、ｉｎｔ（Ｂｎ／Ｍ）はＢｎの下位４ビットを除いた値として算出できる。本実施形態ではＸ１_１ = ０、Ｘ１_２ = １、Ｘ２_１ = １、Ｘ２_２ = ２となる。このＸｎ_ｋの値を保存しておく。
【００２９】
次にステップＳ４０４において、Ｘｎ_ｋ=ｐとなるｎおよびｋが存在するか否かを調べる。存在する場合にはステップＳ４０５に進み、存在しない場合にはステップＳ４０７に進む。
【００３０】
ｐ＝０の場合、Ｘ１_１=０ であるので、ステップＳ４０５においてＸｎ_ｋ=ｐを満たす（ｎ、ｋ）に対応するＳＲｎ_ｋとしてＳＲ１_１が選択される。続いてステップＳ４０６において、出力部分ビット列Ｓ０とステップＳ４０５で選択された全てのビット列の論理和をとり部分ビット列Ｓ０に格納しステップＳ４０７に進む。
【００３１】
ステップＳ４０７においてｐを１加算しステップＳ４０８に進む。続いてステップＳ４０８においてｐ＝４であるか否かを確認する。ｐが４でない場合には（ステップＳ４０８において「ＮＯ」）、ステップＳ４０４に戻り、残りのＳｐについてステップＳ４０４からステップＳ４０７までの処理を繰り返す。
【００３２】
ｐが４である場合は（ステップＳ４０８において「ＹＥＳ」）、Ｓ０からＳ３までの全てのＳｐの算出が終わっているとみなし、ステップＳ４０９に進む。ステップＳ４０９では、各出力部分ビット列Ｓ０からＳ３を番号順に接続して、ビット位置算出部１０１で算出された有効ビット長Ｖに一致するビット長を有する出力ビット列を出力する。
【００３３】
具体的に、ｐ＝１の場合には、Ｘ１_２=１、Ｘ２_１=１ であるので、ステップＳ４０５においてＳＲ１_２、ＳＲ２_１が選択される。続いてステップＳ４０６において、出力部分ビット列Ｓ１とステップＳ４０５で選択された全てのビット列の論理和をとり部分ビット列Ｓ１に格納し、ステップＳ４０７に進む。
【００３４】
ステップＳ４０７においてｐがインクリメントされるとｐ＝２となる。ｐ＝２の場合には、Ｘ２_２=２であるので、ステップＳ４０５においてＳＲ２_２が選択される。続いてステップＳ４０６において、出力部分ビット列Ｓ２とステップＳ４０５で選択されたビット列の論理和をとり、部分ビット列Ｓ２に格納し、ステップＳ４０７に進む。
【００３５】
ステップＳ４０７においてｐがインクリメントされるとｐ＝３となる。ｐ＝３の場合には、該当するｘｎ_ｋが存在しないので、ステップＳ４０７に移行してｐをインクリメントする。この結果、ｐ＝４となり、ステップＳ４０７に移行Ｓ４０８において「ＹＥＳ」の判定がなされ、ステップＳ４０９に移行する。
【００３６】
次に、図６を参照して、ビット列選択部１０３の内部構成の一例を説明する。図６において６０１は各サフィックスが存在する部分ビット列番号を算出し、セレクタ回路６０２_p、６０３_pを制御するコントローラ回路である。各セレクタ回路に対し、上記ステップＳ４０４及びＳ４０５における処理に基づき、部分ビット列ＳＲｎ_ｋを選択するための選択信号を出力する。
【００３７】
この選択信号は、ビット列ＳＲｎの分割数に基づくビット列として与えられ、たとえば、上述の実施形態のように２分割の場合には、「００」、「１０」、「０１」のいずれかの値を取る。上記のＳＲ１の部分ビット列ＳＲ１_１とＳＲ１_２とを考えた場合、「００」ではいずれの部分ビット列も選択されない。「１０」では、ＳＲ１_１のみが選択される。また、「０１」では、ＳＲ１_２が選択される。他方のビット列ＳＲ２についても同様である。
【００３８】
各セレクタ回路６０２_p及び６０３_pには、ＳＲ１とＳＲ２とが、ビットパラレルに入力され、コントローラ回路６０１から入力される選択信号に基づいて、部分ビット列ＳＲｎ_ｋを選択して出力を行う。なお、いずれの部分ビット列ＳＲｎ_ｋも選択されない場合には、「０」を出力する。ＯＲ回路６０４_pは、セレクタ回路６０２_p及び６０３_pからの複数の入力の論理和を出力する回路である。パラメータｐは、上述の部分ビット列ＩＤに対応する。
【００３９】
なお、上述の実施形態では、６０２_０に対して「１０」の選択信号が入力され、６０３_０に対して「００」の選択信号が入力され、Ｓ０としてＳＲ１_１が出力される。また、６０２_１に対して「０１」の選択信号が入力され、６０３_１に対して「１０」の選択信号が入力され、Ｓ１としてＳＲ１_２とＳＲ２_１との論理和が出力される。また、６０２_２に対して「００」の選択信号が入力され、６０３_２に対して「０１」の選択信号が入力され、Ｓ２としてＳＲ２_２が出力される。更に、６０２_３に対して「００」の選択信号が入力され、６０３_３に対して「００」の選択信号が入力され、Ｓ３として０が出力される。
【００４０】
なお、各セレクタ回路からの出力信号であるＳ０、Ｓ１、Ｓ２、Ｓ３が番号順に結合され、有効ビット長Ｖに一致するビット長を有する出力ビット列が得られる。
【００４１】
このようにビット列選択部１０３は、セレクタ回路、論理和回路、およびセレクタ制御のためのコントローラ回路などで構成可能である。
【００４２】
以上説明してきたように、本発明におけるビット列生成装置では、可変長符号のサフィックスを部分ビット列分だけシフトすることにより、一度に行うシフト量をＭ-１ビットに削減することができる。
【００４３】
なお、本実施形態では部分ビット列の大きさＭは１６としたが、必ずしも１６である必要はない。一度に処理する可変長符号の個数および、可変長符号の最大プレフィックス長、サフィックス長などにより最もハードウェア規模が小さくなる値を選択することが可能である。Ｍが大きければ一度に行うシフト量は大きくなるが、部分ビット列の数が少なくなりビット列選択部のハードウェア規模を少なく出来る。一方、Ｍが小さい場合には一度に行うシフト量は小さくなるが、部分ビット列の数が多くなりビット列選択部のハードウェア規模が増加する。
【００４４】
なお、本実施形態では、一度に結合する可変長符号は２つとしたが必ずしも２つに限定されるものではない。ビット位置算出部１０１、シフト部１０２、ビット列選択部１０３を複数個用いることで、一度に３つ以上の可変長符号を結合することも可能である。
【００４５】
また、本実施形態では、Ｈ．２６４のＣＡＶＬＣ方式で用いる可変長符号を例にあげて説明したが、可変長符号の種類はこれに限定されるものではない。プレフィックスとサフィックスが存在する可変長符号に対しては適用可能である。
【００４６】
以上の本発明によれば、可変長符号のサフィックスのみを累積符号長の一部分だけシフトすることにより複数の可変長符号を結合したビット列を生成することができる。そのため、複数の可変長符号の累積符号長全体分だけシフト処理を行う場合と比較して、シフト量を小さくすることができ、ビット列結合時間の短縮および、シフト処理を行うハードウェア規模の削減が可能になる。その結果、少ないハードウェアで高速にビット列生成処理を行うことが可能になる。
【００４７】
［その他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００４８】
また、本発明の目的は、前述した機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムに供給し、そのシステムがプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現し、そのプログラムコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【００４９】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【００５０】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００５１】
【図１】発明の実施形態に対応するビット列生成装置の構成例を示す図である。
【図２】発明の実施形態に対応する可変長符号の一例を示す図である。
【図３】発明の実施形態に対応するシフト部１０２から出力されるビット列ＳＲｎの一例を示す図である。
【図４】発明の実施形態に対応するビット列選択部１０３における処理の一例を示すフローチャートである。
【図５】発明の実施形態に対応するビット位置算出部１０１の構成例を示す図である。
【図６】発明の実施形態に対応するビット列選択部１０３の構成を示す図である。
【図７】発明の実施形態に対応する部分ビット列の一例を示す図である。
【図８】可変長符号化テーブルの一例を示す図である。
【符号の説明】
【００５２】
１０１  ビット位置算出部
１０２  シフト部
１０３  ビット列選択部
６０１  コントローラ回路
６０２_p  セレクタ回路
６０３_p  セレクタ回路
６０４_p  論理和回路
【図１】
2008283308.tif 000005
【図２】
2008283308.tif 000006
【図３】
2008283308.tif 000007
【図４】
2008283308.tif 000008
【図５】
2008283308.tif 000009
【図６】
2008283308.tif 000010
【図７】
2008283308.tif 000011
【図８】
2008283308.tif 000012