(57)【要約】【課題】可変長符号の符号語を格納するために必要な記憶容量を削減することができる符号化装置とその方法およびコンピュータプログラムを提供する。【解決手段】最長の符号長よりも長いビット長Ｌ１を持った記憶部１の複数の記憶領域に、可変長符号の符号語がそれぞれ格納される。ビット長Ｌ１の記憶領域中において符号語が格納されない余分の領域は、当該領域の境界に隣接する符号語のビットの値に対し論理反転した値を持つビットデータで埋められる。ビット検出部３は、符号化対象のデータＤｉｎに応じて記憶部１から読み出されるビット長Ｌ１のデータＳ２において、上述した余分の領域に属する読み出しデータＳ２の末端のビットの値に対し論理反転した値を持ち、かつ、この末端のビットに最も近いビットの位置を検出する。符号語抽出部４は、この検出されたビット位置に基づいて、読み出しデータＳ２に含まれる符号語を抽出する。【選択図】      図１
2006140772.tif 000002
【特許請求の範囲】
【請求項１】
第１の可変長符号における最長の符号長よりも長い第１のビット長を持った複数の記憶領域を有し、上記第１の可変長符号の符号語を上記複数の記憶領域にそれぞれ格納し、上記記憶領域中において上記符号語が格納されない余分の領域を、当該余分の領域の境界に隣接する上記符号語のビットの値に対し論理反転した値を持つビットデータで埋めた記憶部と、
上記符号化対象のデータを入力し、当該入力データに応じて選択した上記記憶部の記憶領域からデータを読み出す読み出し部と、
上記読み出し部において読み出されるデータの中から、上記余分の領域に属する当該読み出しデータの末端のビットの値に対し論理反転した値を持ち、かつ、当該末端のビットに最も近いビットの位置を検出するビット位置検出部と、
上記ビット位置検出部において検出されるビットの位置に基づいて、上記読み出しデータに含まれる符号語を抽出する符号語抽出部と、
を有する符号化装置。
【請求項２】
上記記憶部は、上記記憶領域の最下位ビットまたは最上位ビットの一方の側に詰めて上記符号語を格納する、
請求項１に記載の符号化装置。
【請求項３】
上記符号語抽出部は、上記読み出し部において順次に読み出されるデータから抽出した一連の符号語を連結してデータストリームを生成する、
請求項１に記載の符号化装置。
【請求項４】
第１の可変長符号における最長の符号長よりも長い第１のビット長を持った複数の記憶領域を有し、上記第１の可変長符号の符号語を上記複数の記憶領域にそれぞれ格納し、上記記憶領域中において上記符号語が格納されない余分の領域を、当該余分の領域の境界に隣接する上記符号語のビットの値に対し論理反転した値を持つビットデータで埋めた記憶装置にアクセスし、上記複数の記憶領域のうち、上記符号化対象のデータに応じて選択した記憶領域からデータを読み出す第１の工程と、
上記第１の工程において読み出されるデータの中から、上記余分の領域に属する当該読み出しデータの末端のビットの値に対し論理反転した値を持ち、かつ、当該末端のビットに最も近いビットの位置を検出する第２の工程と、
上記第２の工程において検出されるビット位置に基づいて、上記読み出しデータに含まれる符号語を抽出する第３の工程と、
を有する符号化方法。
【請求項５】
第１の可変長符号における最長の符号長よりも長い第１のビット長を持った複数の記憶領域を有し、上記第１の可変長符号の符号語を上記複数の記憶領域にそれぞれ格納し、上記記憶領域中において上記符号語が格納されない余分の領域を、当該余分の領域の境界に隣接する上記符号語のビットの値に対し論理反転した値を持つビットデータで埋めた記憶装置にアクセスし、上記複数の記憶領域のうち、上記符号化対象のデータに応じて選択した記憶領域からデータを読み出す第１のステップと、
上記第１のステップにおいて読み出されるデータの中から、上記余分の領域に属する当該読み出しデータの末端のビットの値に対し論理反転した値を持ち、かつ、当該末端のビットに最も近いビットの位置を検出する第２のステップと、
上記第２のステップにおいて検出されるビット位置に基づいて、上記読み出しデータに含まれる符号語を抽出する第３のステップと、
を有する処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハフマン符号などの可変長符号によってデータを符号化する符号化装置とその方法、ならびに可変長符号化処理のコンピュータプログラムに関するものである。
【背景技術】
【０００２】
音声や動画などのデータを圧縮する方法として、例えばハフマン符号などの可変長符号による方法が広く用いられている。可変長符号は、生起確率の高いデータに符号長の短い符号語を割り当てることにより、全体のデータ長を短くするデータ圧縮技術である。
【０００３】
下記の特許文献１には、符号語とその符号長のデータを格納した符号化テーブルを用いて可変長符号化データを生成する回路が記載されている。
【特許文献１】特開平０５−９０９７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
可変長符号において用いられる符号語の符号長は固定されていないが、この符号語を格納するメモリの記憶領域は一般に固定長である。そのため、通常は、符号語の上位側に値‘０’のビットデータを必要数だけ付加することにより、可変長の符号語から固定長のデータを作成し、これをメモリに格納する。
【０００５】
この固定長のデータは、付加された値‘０’のビットデータを符号語そのものから区別するために必要な情報を含んでいない。そのため、このデータをメモリから読み出しても、それだけでは符号語を得ることができない。そこで、一般には、例えば特許文献１における符号化テーブルのように、符号語と符号長とを一対一に対応付けたテーブルをメモリ上に構成する方法が用いられる。符号語を含んだ固定長のデータをテーブルから読み出す際には、これに対応する符号長の情報もテーブルから読み出す。そして、読み出した符号長の情報に基づいて、固定長のデータに含まれる符号語を取り出す。
【０００６】
しかしながら、このようなテーブルを用いる方法では、符号語と別に符号長を格納する記憶領域が必要になる。
例えば、最も長い符号長が１５ビットのハフマン符号について上述したテーブルを構成する場合、符号語と符号長の１セットを格納する記憶領域は最大１９ビット（符号語１５ビット＋符号長４ビット）になる。記憶単位が１６ビットのメモリ上にこのようなテーブルを構成すると、１セットで３２ビットが使用されるため、符号語数がＮ個の場合には、全体で４Ｎバイト（＝３２Ｎビット）が必要になる。すなわち、符号語だけを格納する場合に比べて２倍の記憶領域が必要になる。
その結果、テーブルを構成するために必要なメモリの容量が大きくなり、回路規模や消費電力の増大といった不利益が生じる。
【０００７】
また、メモリへのアクセスは通常その記憶単位ごとに行われる。そのため、符号長の情報を格納するために記憶単位の使用数が増えると、それだけメモリへのアクセス回数が多くなる。例えば上述の例では、符号長をメモリから読み出すために、メモリに対して余計に１回アクセスしなくてはならない。
従って、メモリへのアクセスの繰り返しに伴う遅延の発生や、消費電力の増大といった不利益が生じる。
【０００８】
本発明はかかる事情に鑑みてなされたものであり、その目的は、可変長符号の符号語を格納するために必要な記憶容量を削減することができる符号化装置とその符号化方法、ならびに可変長符号化処理のコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記の目的を達成するため、本発明の第１の観点に係る符号化装置は、記憶部と、読み出し部と、ビット位置検出部と、符号抽出部とを有する。
上記記憶部は、第１の可変長符号における最長の符号長よりも長い第１のビット長を持った複数の記憶領域を有し、上記第１の可変長符号の符号語を上記複数の記憶領域にそれぞれ格納し、上記記憶領域中において上記符号語が格納されない余分の領域を、当該余分の領域の境界に隣接する上記符号語のビットの値に対し論理反転した値を持つビットデータで埋める。
上記読み出し部は、上記符号化対象のデータを入力し、当該入力データに応じて選択した上記記憶部の記憶領域からデータを読み出す。
上記ビット位置検出部は、上記読み出し部において読み出されるデータの中から、上記余分の領域に属する当該読み出しデータの末端のビットの値に対し論理反転した値を持ち、かつ、当該末端のビットに最も近いビットの位置を検出する。
上記符号語抽出部は、上記ビット位置検出部において検出されるビットの位置に基づいて、上記読み出しデータに含まれる符号語を抽出する。
【００１０】
上記第１の観点によれば、上記第１の可変長符号における最長の符号長よりも長い第１のビット長を持った上記記憶部の複数の記憶領域に、上記第１の可変長符号の符号語がそれぞれ格納される。上記記憶領域中において上記符号語が格納されない余分の領域は、当該余分の領域の境界に隣接する上記符号語のビットの値に対し論理反転した値を持つビットデータによって埋められる。
上記読み出し部に、上記符号化対象のデータが入力されると、当該入力データに応じて選択した上記記憶部の記憶領域からデータが読み出される。上記ビット位置検出部では、この読み出しデータの中から、上記余分の領域に属する当該読み出しデータの末端のビットの値に対し論理反転した値を持ち、かつ、当該末端のビットに最も近いビットの位置が検出される。上記符号語抽出部では、上記ビット位置検出部において検出されるビットの位置に基づいて、上記読み出しデータに含まれる符号語が抽出される。
【００１１】
好適には、上記記憶部は、上記記憶領域の最下位ビットまたは最上位ビットの一方の側に詰めて上記符号語を格納する。
【００１２】
また、上記符号語抽出部は、上記読み出し部において順次に読み出されるデータから抽出した一連の符号語を連結してデータストリームを生成しても良い。
【００１３】
本発明の第２の観点に係る符号化方法は、第１の可変長符号における最長の符号長よりも長い第１のビット長を持った複数の記憶領域を有し、上記第１の可変長符号の符号語を上記複数の記憶領域にそれぞれ格納し、上記記憶領域中において上記符号語が格納されない余分の領域を、当該余分の領域の境界に隣接する上記符号語のビットの値に対し論理反転した値を持つビットデータで埋めた記憶装置にアクセスし、上記複数の記憶領域のうち、上記符号化対象のデータに応じて選択した記憶領域からデータを読み出す第１の工程と、上記第１の工程において読み出されるデータの中から、上記余分の領域に属する当該読み出しデータの末端のビットの値に対し論理反転した値を持ち、かつ、当該末端のビットに最も近いビットの位置を検出する第２の工程と、上記第２の工程において検出されるビット位置に基づいて、上記読み出しデータに含まれる符号語を抽出する第３の工程とを有する。
【００１４】
上記第２の観点によると、上記第１の工程において、上記記憶装置の複数の記憶領域のうち、上記符号化対象のデータに応じて選択した記憶領域から上記第１のビット長のデータが読み出される。上記第２の工程において、上記読み出されたデータの中から、上記余分の領域に属する当該読み出しデータの末端のビットの値に対し論理反転した値を持ち、かつ、当該末端のビットに最も近いビットの位置が検出される。上記第３の工程において、上記検出されたビット位置に基づいて、上記読み出しデータに含まれる符号語が抽出される。
【００１５】
本発明の第３の観点に係るプログラムは、第１の可変長符号における最長の符号長よりも長い第１のビット長を持った複数の記憶領域を有し、上記第１の可変長符号の符号語を上記複数の記憶領域にそれぞれ格納し、上記記憶領域中において上記符号語が格納されない余分の領域を、当該余分の領域の境界に隣接する上記符号語のビットの値に対し論理反転した値を持つビットデータで埋めた記憶装置にアクセスし、上記複数の記憶領域のうち、上記符号化対象のデータに応じて選択した記憶領域からデータを読み出す第１のステップと、上記第１のステップにおいて読み出されるデータの中から、上記余分の領域に属する当該読み出しデータの末端のビットの値に対し論理反転した値を持ち、かつ、当該末端のビットに最も近いビットの位置を検出する第２のステップと、上記第２のステップにおいて検出されるビット位置に基づいて、上記読み出しデータに含まれる符号語を抽出する第３のステップとを有する処理をコンピュータに実行させる。
【発明の効果】
【００１６】
本発明よれば、可変長の符号語を格納する所定ビット長の記憶領域内において符号語が格納されていない余分の領域に埋め込まれるビットデータの値と、この余分の領域の境界に隣接する符号語のビットの値とが異なることを利用して、符号語の格納領域を特定することができる。これにより、符号長の情報を格納する特別な記憶領域が不要になり、符号語の格納に必要な記憶容量を削減することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態について、図面を参照して説明する。
【００１８】
図１は、本発明に係る符号化装置の構成の一例を示す図である。
図１に示す符号化装置は、記憶部１と、読み出し部２と、ビット位置検出部３と、符号語抽出部４とを有する。
記憶部１は、本発明の記憶部の一実施形態である。
読み出し部２は、本発明の読み出し部の一実施形態である。
ビット位置検出部３は、本発明のビット位置検出部の一実施形態である。
符号語抽出部４は、本発明の符号抽出部の一実施形態である。
【００１９】
記憶部１は、例えばハフマン符号など、所定の可変長符号の符号語をそれぞれ格納した複数の記憶領域を有する。各記憶領域は、可変長符号の最長の符号長よりも長いビット長Ｌ１を有する。
【００２０】
可変長符号の符号語がビット長Ｌｗを有する場合、ビット長Ｌ１の記憶領域中には、この符号語が格納されない（Ｌ１−Ｌｗ）ビットの余分の領域が生じる。記憶部１は、この余分の領域を、特定の値を持つビットデータで埋める。すなわち、余分の領域の境界に隣接する符号語のビットの値に対し論理反転した値を持つビットデータで、余分の領域を埋める。
【００２１】
例えば、記憶部１は、可変長符号の符号語を、ビット長Ｌ１の記憶領域の最下位ビット側に詰めて格納する。この場合、符号語の最上位ビットより上位側の範囲は、上述した余分の領域となる。記憶部１は、この余分の領域に、当該領域の境界に隣接する符号語のビット、すなわち符号語の最上位ビットの値に対し論理反転した値を持つビットデータを埋める。例えば、符号語の最上位ビットが値‘０’の場合、これより上位側の余分の領域には全て値‘１’のビットデータを格納する。逆に、符号語の最上位ビットが値‘１’の場合、これより上位側の余分の領域には全て値‘０’のビットデータを格納する。
【００２２】
図２は、ビット長Ｌ１が１６ビットの記憶領域に、可変長符号の符号語を最下位ビット側に詰めて格納する例を示す図である。
図２によると、例えば符号長が４ビットの符号語‘０１１０’は、１６ビットのデータ‘１１１１１１１１１１１１０１１０’に変換されて記憶部１に格納される。この場合、符号語‘０１１０’が格納されない上位側の１２ビットには、符号語‘０１１０’の最上位ビットの値‘０’に対し論理反転した値‘１’のビットデータが格納される。
また、３ビットの符号語‘１１１’は、１６ビットのデータ‘０００００００００００００１１１’に変換されて記憶部１に格納される。この場合、符号語‘１１１’が格納されない上位側の１３ビットには、符号語‘１１１’の最上位ビットの値‘１’に対し論理反転した値‘０’のビットデータが格納される。
５ビットの符号語‘０１１１１’は、１６ビットのデータ‘１１１１１１１１１１１０１１１１’に変換されて記憶部１に格納される。この場合、符号語‘０１１１１’が格納されない上位側の１１ビットには、符号語‘０１１１１’の最上位ビットの値‘０’に対し論理反転した値‘１’のビットデータが格納される。
【００２３】
読み出し部２は、符号化対象のデータＤｉｎを入力し、この入力データＤｉｎに応じて、記憶部１のビット長Ｌ１の記憶領域を選択する。そして、選択した記憶領域から、符号語を含むビット長Ｌ１のデータを読み出す。
【００２４】
読み出し部２は、例えば、入力データＤｉｎとこれに対応する記憶部１のアドレスとを対応付けたテーブルを有する。読み出し部２は、このテーブルから、入力データＤｉｎに対応するアドレスを取得し、当該取得した記憶部１のアドレスから、符号語を含むビット長Ｌ１のデータを読み出す。
【００２５】
あるいは、読み出し部２は、入力データＤｉｎに所定の演算処理を行ってアドレスを計算し、当該計算した記憶部１のアドレスから、符号語を含むビット長Ｌ１のデータを読み出しても良い。
【００２６】
また、記憶部１には、入力データＤｉｎの値によって直接指示されるアドレスに、この入力データＤｉｎの符号語を格納することも可能である。この場合、読み出し部２は、入力データＤｉｎの値によって指示される記憶部１のアドレスから、そのまま符号語を含むビット長Ｌ１のデータを読み出すことができる。
【００２７】
ビット位置検出部３は、読み出し部２において読み出されるビット長Ｌ１のデータＳ２の中から、上述した余分の領域に属する読み出しデータＳ２の末端のビットの値に対し論理反転した値を持ち、かつ、この末端のビットに最も近いビットの位置を検出する。
ビット位置検出部３において検出されるビットの位置は、余分の領域の境界に隣接する符号語の末端のビットの位置を示す。
【００２８】
例えば、記憶部１において、前述したようにビット長Ｌ１の記憶領域の最下位ビット側に詰めて可変長符号の符号語が格納されるものとする。この場合、読み出し部２において読み出されるビット長Ｌ１のデータの最上位ビットは、符号語が格納されない余分の領域に属する。ビット位置検出部３は、この余分の領域に属する読み出しデータＳ２の最上位ビットの値に対し論理反転した値を持ち、かつ、最上位ビットに最も近いビットの位置を検出する。例えば、読み出しデータＳ２の最上位ビットが値‘０’のとき、読み出しデータＳ２の中で値‘１’を持つ最も上位側のビットの位置を検出する。逆に、読み出しデータＳ２の最上位ビットが値‘１’のとき、読み出しデータＳ２の中で値‘０’を持つ最も上位側のビットの位置を検出する。この場合、ビット位置検出部３で検出されるビット位置は、符号語の最上位ビットの位置を示す。
【００２９】
符号語抽出部４は、ビット位置検出部３において検出されるビットの位置の情報Ｓ３に基づいて、ビット長Ｌ１の読み出しデータＳ２に含まれる符号語を抽出する。そして、読み出し部２において順次に読み出されるデータから抽出される一連の符号語を連結し、可変長符号化データストリームＤｏｕｔを生成する。
【００３０】
符号語抽出部４は、例えば、データストリームを連結して格納するためのレジスタを有しており、読み出しデータＳ２から抽出した符号語を、このレジスタに既に格納されるデータストリームの末尾に順次連結して格納する。レジスタに格納されるデータストリームがある固定ビット長に達した場合、この固定ビット長分のデータストリームを後段のバッファメモリ等に移動させ、レジスタの残りのデータ（データストリームの末尾）をレジスタの先頭側に詰める。次に抽出した符号語は、この先頭側に詰められたデータの末尾に連結して格納する。このような操作を繰り返すことにより、抽出した符号語を連結して固定ビット長ずつ出力することが可能である。
この場合、符号語抽出部４は、例えば、ビット位置検出部３において検出されるビットの位置に基づいて、読み出しデータＳ２に含まれる符号語の符号長を算出する回路や、算出した符号長を積算する回路、積算した符号長に基づいて読み出しデータＳ２に含まれる符号語をビットシフトさせるバレルシフタ等を用いて構成することが可能である。
【００３１】
次に、上述した構成を有する符号化装置による可変長符号化処理の流れについて、図３に示すフローチャートを参照して説明する。
なお、本フローチャートのステップＳＴ１は、本発明の第１の工程ならびに第１のステップに相当する。ステップＳＴ２は、本発明の第２の工程ならびに第２のステップに相当する。ステップＳＴ３は、本発明の第３の工程ならびに第３のステップに相当する。
【００３２】
ステップＳＴ１：
記憶部１が読み出し部２によってアクセスされる。このアクセスにより、記憶部１の複数の記憶領域から、符号化対象の入力データＤｉｎに応じた記憶領域が選択され、当該選択された記憶領域に格納されるビット長Ｌ１のデータが読み出される。図２の例を参照すると、入力データＤｉｎが‘−４’のとき、これに対応する可変長符号の符号語が４ビットのデータ‘０１１０’であり、記憶部１からは１６ビットのデータ‘１１１１１１１１１１１１０１１０’が読み出される。
【００３３】
ステップＳＴ２：
読み出し部２によって読み出されたデータの中から、ビット位置検出部３によって符号語の末端のビットが検出される。すなわち、符号語が格納されない余分の領域に属する読み出しデータＳ２の末端のビットの値に対し論理反転した値を持ち、かつ、当該末端のビットに最も近いビットの位置が検出される。
【００３４】
例えば、図２に示すように、符号語が最下位ビット側に詰めて格納されているものとすると、１６ビットのデータ‘１１１１１１１１１１１１０１１０’の最上位ビット（＝‘１’）は、符号語が格納されない余分の領域に属する。余分の領域に属するビットデータの値は、この領域の境界に隣接する符号語の最上位ビットの値を論理反転した値であるため、符号語の最上位ビットは‘０’であることが分かる。１６ビットのデータ‘１１１１１１１１１１１１０１１０’において、最上位ビットに最も近い値‘０’のビットは、最上位から１３番目（最下位から４番目）のビットである。このビットの位置がビット位置検出部３によって検出される。
【００３５】
ステップＳＴ３：
ビット位置検出部３において、読み出しデータＳ２中の符号語の末端ビットが検出されると、符号語抽出部４において、読み出しデータＳ２の中から可変長符号の符号語が抽出される。
また、符号語抽出部４において、抽出された符号語が順次に連結されて、可変長符号化データストリームが生成される。
【００３６】
以上説明したように、本実施形態に係る符号化装置によれば、所定の可変長符号における最長の符号長よりも長いビット長Ｌ１を持った記憶部１の複数の記憶領域に、この可変長符号の符号語がそれぞれ格納される。ビット長Ｌ１の記憶領域中において符号語が格納されない余分の領域は、この余分の領域の境界に隣接する符号語のビットの値に対し論理反転した値を持つビットデータによって埋められる。例えば、記憶領域の最下位ビット側に詰めて符号語が格納される場合、記憶領域の最上位ビット側に存在する余分の領域は、この余分の領域の境界に隣接する符号語の最上位ビットの値を論理反転した値を持つビットデータによって埋められる。
読み出し部２に、符号化対象のデータＤｉｎが入力されると、この入力データＤｉｎに応じて選択した記憶部１の記憶領域からビット長Ｌ１のデータＳ２が読み出される。ビット位置検出部３では、この読み出しデータＳ２の中から、余分の領域に属する読み出しデータＳ２の末端のビットの値に対し論理反転した値を持ち、かつ、この末端のビットに最も近いビットの位置が検出される。例えば、記憶領域の最下位ビット側に詰めて符号語が格納される場合、読み出しデータＳ２の最上位ビットの値に対し論理反転した値を持ち、かつ、この最上位ビットに最も近いビットの位置が検出される。ビット位置検出部３において検出されるビットの位置は、余分の領域の境界に隣接する符号語の末端のビットの位置を示す。
符号語抽出部４では、ビット位置検出部３において検出されるビットの位置に基づいて、読み出しデータＳ２に含まれる符号語が抽出される。
従って、本実施形態に係る符号化装置によれば、可変長の符号語を格納する所定ビット長の記憶領域内において符号語が格納されていない余分の領域に埋め込まれるビットデータの値と、この余分の領域の境界に隣接する符号語のビットの値とが異なることを利用して、符号語の格納領域を特定し、符号語を抽出することができる。これにより、符号語とその符号長の情報とをセットにしたテーブルを構成する従来の符号化装置のように、符号長の情報を格納する特別な記憶領域を設ける必要がなくなる。その結果、可変長符号化処理において符号語の格納に利用する記憶容量を削減することができる。
【００３７】
また、符号長の情報を格納する特別な記憶領域が不要なため、従来の符号化装置のように、符号長の情報を取得するための余計なメモリアクセスがなくなる。その結果、メモリへのアクセスの繰り返しに伴う遅延の発生や、消費電力の増大を回避し、効率の良い処理を実現することができる。
【００３８】
以上、本発明の好適な実施形態について説明したが、本発明は上記の形態にのみ限定されるものではなく、種々のバリエーションを含む。
【００３９】
上述の実施形態では、記憶領域の最下位ビット側に詰めて符号語を格納する例を挙げているが、本発明はこれに限定されない。例えば、記憶領域の最上位側に詰めて符号語を格納しても良い。
【００４０】
図４は、ビット長Ｌ１が１６ビットの記憶領域に、可変長符号の符号語を最上位ビット側に詰めて格納する例を示す図である。
図４によると、例えば符号長が４ビットの符号語‘０１１０’は、１６ビットのデータ‘０１１０１１１１１１１１１１１１’に変換されて記憶部１に格納される。また、５ビットの符号語‘０１１１１’は、１６ビットのデータ‘０１１１１０００００００００００’に変換されて記憶部１に格納される。何れのデータも、符号語の最下位ビットの論理反転値を持つビットデータによって下位側の余分の領域が埋められている。
この場合、ビット位置検出部３は、読み出しデータＳ２の最下位ビットに対して論理反転した値を持つ最も下位側のビットを検出する。これにより、符号語の最下位ビットの位置を検出することが可能である。
【００４１】
ところで、符号語を最下位ビット側や最上位ビット側の何れにも詰めて格納しない場合、記憶領域の両側に余分の領域が生じる。その場合には、両側の余分の領域についてそれぞれ上述と同様なビット位置の検出を行うことにより、符号語の両端のビット位置を特定することが可能である。
【００４２】
また、本発明において、符号語の格納に用いる記憶領域のビット長Ｌ１は、記憶部１の記憶単位（記憶部１においてアクセス可能な最小のデータ単位）のビット長Ｌｕと等しくても良いし、これより長くても良い。すなわち、符号語の格納に用いる記憶領域のビット長Ｌ１は、記憶単位のビット長Ｌｕと等しくても良いし、ビット長Ｌｕの整数倍（２倍以上）の長さを有するものでも良い。
【００４３】
記憶領域のビット長Ｌ１が記憶単位のビット長Ｌｕより長い場合、記憶領域内のデータは複数の記憶単位に分かれて格納されることになる。その場合、記憶領域内のデータは、記憶部１内の連続したアドレスに格納されても良いし、そうでなくても良い。仮に、ビット長Ｌ１の記憶領域が不連続なアドレスに分かれて格納される場合でも、これらをつなぎ合わせて得られるビット長Ｌ１のデータは連続しており、そのデータ中におけるビットデータの配列は変化しない。従って、この場合においても、上述したビット位置検出部３によって符号語の末端のビット位置は検出可能である。
【００４４】
本発明の符号化装置は、例えば図１に示すように各構成要素をハードウェアによって構成することも可能であるし、その少なくとも一部の処理をコンピュータ上でプログラムに基づいて実行させることも可能である。
プログラムによってビット位置検出部３の処理を実現する場合には、例えば、多くの一般的なプロセッサでサポートされているビット位置の検出命令（最上位ビットに対し論理反転した値を持つ最も上位のビットを検出する命令）などを利用することが可能であるため、本発明の符号化処理を単純な手順で高速に実行することが可能である。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施形態に係る符号化装置の構成の一例を示す図である。
【図２】１６ビットの記憶領域の最下位ビット側に詰めて可変長符号の符号語を格納する例を示す図である。
【図３】図１に示す符号化装置における処理の流れの一例を示すフローチャートである。
【図４】１６ビットの記憶領域の最上位ビット側に詰めて可変長符号の符号語を格納する例を示す図である。
【符号の説明】
【００４６】
１…記憶部、２…読み出し部、３…ビット位置検出部、４…符号語抽出部
【図１】
2006140772.tif 000003
【図２】
2006140772.tif 000004
【図３】
2006140772.tif 000005
【図４】
2006140772.tif 000006