(57)【要約】【課題】シンボルを符号化してバイトバウンダリとする際に、本構成を有していない場合に比較して符号化されたデータに含まれるダミーデータの量を低減させる。【解決手段】複数のシンボルから構成されるグループを生成し、グループを格納する複数の符号化バッファ５８を備え、グループを構成するシンボルにおける最大ビット数のシンボルを検出し、最大ビット数に応じて、グループの格納先を複数の符号化バッファ５８から選択し、符号化バッファ５８に格納されたグループを構成するシンボルを、符号化バッファ５８毎に定められるビット数であって最大ビット数以上のビット数に置換し、置換されたシンボルから構成されるグループを、符号化バッファ５８毎に１又は複数個まとめて、符号量が８ビットの倍数であるスーパーグループを生成する。【選択図】図２
2014146972.tif 000002
【特許請求の範囲】
【請求項１】
複数のシンボルから構成されるグループを生成するグループ生成部と、
前記グループを格納する複数の符号化バッファと、
前記グループを構成するシンボルにおける最大ビット数のシンボルを検出し、前記最大ビット数に応じて、前記グループの格納先を前記複数の符号化バッファから選択する符号化バッファ選択部と、
前記符号化バッファに格納された前記グループを構成するシンボルを、前記符号化バッファ毎に定められるビット数であって前記最大ビット数以上のビット数に置換する等長符号語置換部と、
前記等長符号語置換部により置換されたシンボルから構成される前記グループを、前記符号化バッファ毎に１又は複数個まとめて、符号量が８ビットの倍数であるスーパーグループを生成するスーパーグループ生成部と、
前記グループの格納先である前記符号化バッファを識別する識別情報を生成する識別情報生成部と、
を有する符号化装置。
【請求項２】
前記スーパーグループ生成部は、前記スーパーグループを生成するためにまとめる前記グループの数を、当該グループを構成するシンボルの数及び前記符号化バッファ毎に定められるビット数に基づいて、前記符号化バッファ毎に定める、
ことを特徴とする、請求項１に記載の符号化装置。
【請求項３】
前記符号化バッファは、特定のビットパターンが設定されたパターン用符号化バッファを含み、
前記符号化バッファ選択部は、前記グループを構成するシンボルが前記特定のビットパターンである場合に、当該グループの格納先として前記パターン用符号化バッファを選択し、
前記等長符号語置換部は、前記パターン用符号化バッファに格納された前記グループを構成するシンボルのうち、０値を示すシンボルを削除しその他のシンボルを置換する、
ことを特徴とする、請求項１に記載の符号化装置。
【請求項４】
エントロピー符号化バッファと、
前記エントロピー符号化バッファに格納された前記グループを構成するシンボルを、エントロピー符号化するエントロピー符号化部、
をさらに有し、
前記符号化バッファ選択部は、前記グループに属するシンボルのビット数が所定の条件を満たす場合に、当該グループの格納先として前記エントロピー符号化バッファを選択し、
前記エントロピー符号化部は、前記エントロピー符号化バッファに格納された前記グループに属するシンボルをエントロピー符号化し、
前記識別情報は、前記グループの格納先である、前記符号化バッファ及び前記エントロピー符号化バッファを識別する、
ことを特徴とする、請求項１に記載の符号化装置。
【請求項５】
前記符号化バッファ選択部は、前記グループを構成するシンボルのうち、最大ビット数のシンボルと最小ビット数のシンボルとのビット数の差が所定値以上である場合に、当該グループの格納先として前記エントロピー符号化バッファを選択する、
ことを特徴とする、請求項４に記載の符号化装置。
【請求項６】
前記符号化バッファ選択部は、前記グループを構成するシンボルにおいて０値を示すシンボル数が所定値以上である場合に、当該グループの格納先として前記エントロピー符号化バッファを選択する、
ことを特徴とする、請求項４に記載の符号化装置。
【請求項７】
複数の符号化バッファに選択的に格納されたグループであって前記符号化バッファ毎に所定のビット数で等長符号語に置換された複数のシンボルから構成されるグループを１又は複数有し符号量が８ビットの倍数であるスーパーグループ、及び前記グループの格納先である前記符号化バッファを識別する識別情報を取得する取得部と、
前記符号化バッファにそれぞれ対応して設けられ、前記スーパーグループを前記グループに分割する複数の逆スーパーグループ化部と、
前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを構成するシンボルを、対応する前記符号化バッファ毎に定められた所定のビット数で復号する複数の復号手段と、
前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを格納する複数の復号バッファと、
前記識別情報に基づいて、前記復号バッファから前記グループを取得するグループ取得部と、
を有する復号装置。
【請求項８】
複数のシンボルから構成されるグループを生成するグループ生成部と、前記グループを格納する複数の符号化バッファと、前記グループを構成するシンボルにおける最大ビット数のシンボルを検出し、前記最大ビット数に応じて、前記グループの格納先を前記複数の符号化バッファから選択する符号化バッファ選択部と、前記符号化バッファに格納された前記グループを構成するシンボルを、前記符号化バッファ毎に定められるビット数であって前記最大ビット数以上のビット数に置換する等長符号語置換部と、前記等長符号語置換部により符号語に置換されたシンボルから構成される前記グループを、前記符号化バッファ毎に１又は複数個まとめて、符号量が８ビットの倍数であるスーパーグループを生成するスーパーグループ生成部と、前記グループの格納先である前記符号化バッファを識別する識別情報を生成する識別情報生成部と、を有する符号化装置と、
前記スーパーグループ及び前記識別情報を取得する取得部と、前記符号化バッファにそれぞれ対応して設けられ、前記スーパーグループを前記グループに分割する複数の逆スーパーグループ化部と、前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを構成するシンボルを、対応する前記符号化バッファ毎に定められた所定のビット数で復号する複数の復号手段と、前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを格納する複数の復号バッファと、前記識別情報に基づいて、前記復号バッファから前記グループを取得するグループ取得部と、を有する復号装置と、
を備える符号化・復号システム。
【請求項９】
コンピュータを、請求項１に記載の符号化装置として機能させるためのプログラム。
【請求項１０】
コンピュータを、請求項７に記載の復号装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、復号装置、符号化・復号システム、及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、可変長データの符号化装置及び復号化装置が開示されている。特許文献１に記載の発明では、可変長データをレジスタに保持してパラレルデータに変換しており、レジスタにおいて１つの可変調データ毎にシフト処理、末尾アドレスの管理、及び連結処理を行っている。
【０００３】
特許文献２には、可変長データのシンボルをグループ化し、当該グループに属するシンボルの最大ビット数に応じて、複数の連結器のうちから１の連結器を選択し、選択された連結器において当該グループに属するシンボルを前記最大ビット数で符号化して連結する技術が開示されている。特許文献２に記載の発明では、グループ毎に符号化されたシンボルの総ビット長がバイトバウンダリとなるように、グループ毎にダミーデータ（パディング）を挿入する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平３−２８０６２４号公報
【特許文献２】特開２００８−６７３５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、シンボルを符号化してバイトバウンダリとする際に、本構成を有していない場合に比較して符号化されたデータに含まれるダミーデータの量を低減させることを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に係る発明は、複数のシンボルから構成されるグループを生成するグループ生成部と、前記グループを格納する複数の符号化バッファと、前記グループを構成するシンボルにおける最大ビット数のシンボルを検出し、前記最大ビット数に応じて、前記グループの格納先を前記複数の符号化バッファから選択する符号化バッファ選択部と、前記符号化バッファに格納された前記グループを構成するシンボルを、前記符号化バッファ毎に定められるビット数であって前記最大ビット数以上のビット数に置換する等長符号語置換部と、前記等長符号語置換部により符号語に置換されたシンボルから構成される前記グループを、前記符号化バッファ毎に１又は複数個まとめて、符号量が８ビットの倍数であるスーパーグループを生成するスーパーグループ生成部と、前記グループの格納先である前記符号化バッファを識別する識別情報を生成する識別情報生成部と、を有する符号化装置である。
【０００７】
請求項２に係る発明は、前記スーパーグループ生成部は、前記スーパーグループを生成するためにまとめる前記グループの数を、当該グループを構成するシンボルの数及び前記符号化バッファ毎に定められるビット数に基づいて、前記符号化バッファ毎に定める、ことを特徴とする、請求項１に記載の符号化装置である。
【０００８】
請求項３に係る発明は、前記符号化バッファは、特定のビットパターンが設定されたパターン用符号化バッファを含み、前記符号化バッファ選択部は、前記グループを構成するシンボルが前記特定のビットパターンである場合に、当該グループの格納先として前記パターン用符号化バッファを選択し、前記等長符号語置換部は、前記パターン用符号化バッファに格納された前記グループを構成するシンボルのうち、０値を示すシンボルを削除しその他のシンボルを置換する、ことを特徴とする、請求項１に記載の符号化装置である。
【０００９】
請求項４に係る発明は、エントロピー符号化バッファと、前記エントロピー符号化バッファに格納された前記グループを構成するシンボルを、エントロピー符号化するエントロピー符号化部、をさらに有し、前記符号化バッファ選択部は、前記グループに属するシンボルのビット数が所定の条件を満たす場合に、当該グループの格納先として前記エントロピー符号化バッファを選択し、前記エントロピー符号化部は、前記エントロピー符号化バッファに格納された前記グループに属するシンボルをエントロピー符号化し、前記識別情報は、前記グループの格納先である、前記符号化バッファ及び前記エントロピー符号化バッファを識別する、ことを特徴とする、請求項１に記載の符号化装置である。
【００１０】
請求項５に係る発明は、前記符号化バッファ選択部は、前記グループを構成するシンボルのうち、最大ビット数のシンボルと最小ビット数のシンボルとのビット数の差が所定値以上である場合に、当該グループの格納先として前記エントロピー符号化バッファを選択する、ことを特徴とする、請求項４に記載の符号化装置である。
【００１１】
請求項６に係る発明は、前記符号化バッファ選択部は、前記グループを構成するシンボルにおいて０値を示すシンボル数が所定値以上である場合に、当該グループの格納先として前記エントロピー符号化バッファを選択する、ことを特徴とする、請求項４に記載の符号化装置である。
【００１２】
請求項７に係る発明は、複数の符号化バッファに選択的に格納されたグループであって前記符号化バッファ毎に所定のビット数で等長符号語に置換された複数のシンボルから構成されるグループを１又は複数有し符号量が８ビットの倍数であるスーパーグループ、及び前記グループの格納先である前記符号化バッファを識別する識別情報を取得する取得部と、前記符号化バッファにそれぞれ対応して設けられ、前記スーパーグループを前記グループに分割する複数の逆スーパーグループ化部と、前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを構成するシンボルを、対応する前記符号化バッファ毎に定められた所定のビット数で復号する複数の復号手段と、前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを格納する複数の復号バッファと、前記識別情報に基づいて、前記復号バッファから前記グループを取得するグループ取得部と、を有する復号装置である。
【００１３】
請求項８に係る発明は、複数のシンボルから構成されるグループを生成するグループ生成部と、前記グループを格納する複数の符号化バッファと、前記グループを構成するシンボルにおける最大ビット数のシンボルを検出し、前記最大ビット数に応じて、前記グループの格納先を前記複数の符号化バッファから選択する符号化バッファ選択部と、前記符号化バッファに格納された前記グループを構成するシンボルを、前記符号化バッファ毎に定められ前記最大ビット数以上の、等長符号語に置換する等長符号語置換部と、前記等長符号語置換部により符号語に置換されたシンボルから構成される前記グループを、前記符号化バッファ毎に１又は複数個まとめて、符号量が８ビットの倍数であるスーパーグループを生成するスーパーグループ生成部と、前記グループの格納先である前記符号化バッファを識別する識別情報を生成する識別情報生成部と、を有する符号化装置と、前記スーパーグループ及び前記識別情報を取得する取得部と、前記符号化バッファにそれぞれ対応して設けられ、前記スーパーグループを前記グループに分割する複数の逆スーパーグループ化部と、前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを構成するシンボルを、対応する前記符号化バッファ毎に定められた所定のビット数で復号する複数の復号手段と、前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを格納する複数の復号バッファと、前記識別情報に基づいて、前記復号バッファから前記グループを取得するグループ取得部と、を有する復号装置と、を備える符号化・復号システムである。
【００１４】
請求項９に係る発明は、コンピュータを、請求項１に記載の符号化装置として機能させるためのプログラムである。
【００１５】
請求項１０に係る発明は、コンピュータを、請求項７に記載の復号装置として機能させるためのプログラムである。
【発明の効果】
【００１６】
請求項１、及び７−１０に係る発明によれば、シンボルを符号化してバイトバウンダリとする際に、本構成を有していない場合に比較して符号化されたデータに含まれるダミーデータの量を低減させることができる。
【００１７】
請求項２に係る発明によれば、第１グループを構成するシンボルの数が変更された場合であっても、総ビット数が８の倍数である第２グループを生成することができる。
【００１８】
請求項３に係る発明によれば、符号化されるシンボルに特定のパターンが多数発生し当該パターンに０値を示すビットが多数含まれている場合に、本構成を有していない場合に比較して符号化後の符号量を低減させることができる。
【００１９】
請求項４に係る発明によれば、第１グループに属するシンボルのうち、最大ビット数のシンボルと最小ビット数のシンボルとのビット数の差が所定値以上である場合に、本構成を有していない場合に比較して符号後の符号量を低減させることができる。
【００２０】
請求項５に係る発明によれば、第１グループに属するシンボルのビット数が所定の条件を満たす場合に、本構成を有していない場合に比較して符号後の符号量を低減させることができる。
【００２１】
請求項６に係る発明によれば、第１グループに属するシンボルのうち、０値を示すシンボル数が所定値以上である場合に、本構成を有していない場合に比較して符号後の符号量を低減させることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態の一例である符号化装置１０及び復号装置２４のハードウェア構成を示した図である。
【図２】第１実施形態における符号化装置１０ａの機能構成を示すブロック図である。
【図３】符号化装置１０ａにおける符号化処理の流れを示すフローチャートである。
【図４】等長符号語置換部６０による符号化の様子を示す図である。
【図５】グループがスーパーグループ符号に連結される様子を示す図である。
【図６】グループがスーパーグループ符号に連結される他の例の様子を示す図である。
【図７】第２実施形態における符号化装置１０ｂの機能構成を示すブロック図である。
【図８】符号化装置１０ｂにおける符号化処理の流れを示すフローチャートである。
【図９】非ゼロシンボル抽出部１１４及びパターン用符号置換部１１６による符号化の様子を示す図である。
【図１０】第３実施形態における符号化装置１０ｃの機能構成を示すブロック図である。
【図１１】符号化装置１０ｃにおける符号化処理の流れを示すフローチャートである。
【図１２】符号化装置１０ｃにおける符号化処理の流れの他の例を示すフローチャートである。
【図１３】符号化装置１０ａに対応する復号装置２４ａの機能構成を示すブロック図である。
【図１４】復号装置２４ａにおける復号処理の流れを示すフローチャートである。
【図１５】符号化装置１０ｂに対応する復号装置２４ｂの機能構成を示すブロック図である。
【図１６】符号化装置１０ｃに対応する復号装置２４ｃの機能構成を示すブロック図である。
【発明を実施するための形態】
【００２３】
以下、本発明に係る符号化装置の例について説明する。以下に説明する実施形態では、画像データを符号化・復号する場合を例に説明するが、本発明は以下の実施形態に限定されるものではない。
【００２４】
図１は、本発明の実施形態の一例である符号化装置１０及び復号装置２４のハードウェア構成を示した図である。符号化装置１０は、画像処理装置等のコンピュータであり、演算等を行うプロセッサ１２、演算結果等を記憶する記憶装置１４、プロセッサ１２に指示等をするための入力装置１６、処理内容を表示する表示装置１８、ネットワーク４０を介して他の機器等と通信するための通信装置２０を含んで構成されている。復号装置２４も、印刷装置や画像処理装置などのコンピュータであり、符号化装置１０と同様、演算等を行うプロセッサ２６、演算結果等を記憶する記憶装置２８、プロセッサ２６に指示等をするための入力装置３０、処理内容を表示する表示装置３２、ネットワーク４０を介して他の機器等と通信するための通信装置３４を含んで構成されている。復号装置２４は、さらに、画像データを紙媒体等に印刷する出力装置３６を含んでいても良い。
【００２５】
符号化装置１０は、記憶装置１４に記憶されたプログラムをプロセッサ１２が読み出して実行することにより、データの符号化を行う。符号化のためのプログラムを符号化装置１０が読み取り可能な記憶媒体２２に記憶させ、符号化装置１０が記憶媒体２２から符号化のためのプログラムを読み出して実行するようにしても良い。
【００２６】
復号装置２４も符号化装置１０と同様に、記憶装置２８に記憶されたプログラムをプロセッサ２６が読み出して実行することにより、データの復号を行う。復号のためのプログラムを復号装置２４が読み取り可能な記憶媒体３８に記憶させ、復号装置２４が記憶媒体３８から復号のためのプログラムを読み出して実行するようにしても良い。
【００２７】
図２は、第１実施形態における符号化装置１０ａの機能構成を示すブロック図である。符号化装置１０ａは、シンボル取得部５０、グループ生成部５２、ビット数検出部５４、識別情報生成部５７を含む符号化バッファ選択部５６、複数の符号化バッファ５８、複数の等長符号語置換部６０、複数のスーパーグループ生成部６２、及びバッファＩＤ符号化部６４を含む機能構成となっている。
【００２８】
シンボル取得部５０は、画像データであるシンボルを取得する。シンボル取得部５０により取得されるシンボルは、等長であり非圧縮のデータである。例えば、０から２５５の値を取る８ビットの画素値が挙げられる。シンボル取得部５０は、取得した各シンボルを、シンボルが示す数値に基づいて、異なるビット数表現に変換する。簡単のために入力データが３ビットのシンボルである場合を例に説明すると、この場合取り得るシンボル値は０ｂ０００（＝０）、０ｂ００１（＝１）、０ｂ０１０（＝２）、０ｂ０１１（＝３）、０ｂ１００（＝−４）、０ｂ１０１（＝−３）、０ｂ１１０（＝−２）、０ｂ１１１（−１）の８種類である。このとき、例えば−１及び０を１ビット表現、−２及び１を２ビット表現、−４、−３，２、及び３を３ビット表現で変換する。出現頻度が多いと考えられるシンボル値には少ないビット数の表現を割り当てるのが好適である。
【００２９】
グループ生成部５２は、シンボル取得部５０から変換されたシンボルを順次受け取る。そして、シンボルを受け取った順に所定数まとめて、複数のシンボルから構成されるグループを生成する。ここで、まとめられるシンボルの数は任意であり、例えば、符号化装置１０ａが符号化するデータの種類に応じて定めることが可能である。
【００３０】
ビット数検出部５４は、グループ生成部５２で生成されたグループを構成するシンボルのビット数を検出する。例えば、ビット数検出部は、グループを構成するシンボルのうち、最大ビット数及び最小ビット数のシンボルを検出する。また、（１，３，２，５）や（２，１，４，０）といったような、グループを構成するシンボルのビットパターンを検出する。
【００３１】
符号化バッファ選択部５６は、ビット数検出部５４で検出されたビット数に基づいて、グループを複数の符号化バッファ５８に振り分けて格納する。符号化装置１０ａでは、符号化バッファ選択部５６は、グループを構成するシンボルの最大ビット数に応じて、グループを格納する符号化バッファ５８を選択する。また、符号化バッファ選択部５６に含まれる識別情報生成部５７は、各グループの格納先である符号化バッファ５８を識別する識別情報を含むバッファＩＤを生成する。識別情報生成部５７は、生成したバッファＩＤをバッファＩＤ符号化部６４へ出力する。
【００３２】
符号化バッファ５８は、複数設けられる。符号化装置１０ａでは、グループを構成するシンボルの最大ビット数に応じて、グループを符号化バッファに振り分けるため、シンボル取得部５０により取得されるシンボルが持ち得る最大ビット数と同じ数だけ符号化バッファ５８が用意される。
【００３３】
等長符号語置換部６０は、複数設けられ、符号化バッファ５８それぞれに対応して１つずつ設けられる。等長符号語置換部６０は、符号化バッファ５８に格納されたグループを構成する全てのシンボルを、符号化バッファ５８毎に定められたビット数であって、当該グループを構成するシンボルの最大ビット数以上のビット数に置換する。
【００３４】
スーパーグループ生成部６２は、複数設けられ、等長符号語置換部６０それぞれに対応して１つずつ設けられる。スーパーグループ生成部６２は、等長符号語置換部６０によってシンボルが置換されたグループを、符号化バッファ５８毎に定められた所定数まとめてスーパーグループを生成する。スーパーグループ生成部６２は、スーパーグループを構成するグループの数を、スーパーグループに属するシンボルの総ビット数が８の倍数となるように、当該グループが格納された符号化バッファ５８に定められたビット数及びグループを構成するシンボルの数に基づいて定める。さらに、スーパーグループ生成部６２は、スーパーグループに属するシンボルを連結してスーパーグループ符号を生成して出力する。
【００３５】
図２では、符号化バッファ５８、等長符号語置換部６０、及びスーパーグループ生成部６２が別々の機能ブロックとして示されているが、等長符号語置換部６０及びスーパーグループ生成部６２の機能を符号化バッファ５８の機能として含めても良い。すなわち、シンボルの置換及びスーパーグループの生成を符号化バッファ５８において行うようにしても良い。
【００３６】
バッファＩＤ符号化部６４は、符号化バッファ選択部５６からバッファＩＤを受け取り、バッファＩＤを符号化する。符号化されたバッファＩＤは、スーパーグループ符号と共に復号装置２４へ出力される。
【００３７】
バッファＩＤは、復号装置２４が復号時に参照するものである。符号化バッファ５８は複数設けられ、各グループは、複数の符号化バッファ５８に振り分けて格納される。したがって、グループ生成部５２で生成されたグループは、符号化バッファ選択部５６まではグル―プの生成順に並んでいると特定し得るが、複数の符号化バッファ５８に振り分けて格納された後は、各グループの並び順を特定することができなくなってしまう。そこで、識別情報生成部５７が、各グループの格納先である符号化バッファ５８を識別する識別情報を含むバッファＩＤを取得してバッファＩＤ符号化部６４へ出力し、バッファＩＤ符号化部６４がバッファＩＤを符号化した上で復号装置２４へ出力する。上述の通り、グループを構成するシンボルであって等長符号語置換部６０により置換されたシンボルのビット数及びスーパーグループを構成するグループの数は符号化バッファ５８毎に定められている。したがって、グループが格納された符号化バッファ５８を特定することで、各グループがいずれの符号化バッファ５８に格納されたかを特定すると共に、グループを構成するシンボルが置換された後のビット数及びスーパーグループを構成するグループの数を特定することができる。このように、バッファＩＤには、グループを構成するシンボルであって等長符号語置換部６０により置換されたシンボルのビット数、及びスーパーグループを構成するグループの数を示す情報が含まれる。
【００３８】
以下、符号化装置１０ａによる符号化処理の流れを説明する。図３は、符号化装置１０ａにおける符号化処理の流れを示すフローチャートである。図３に示された各ステップは、図２に示した各機能構成が実行するものであるが、実質的には符号化装置１０ａのプロセッサ１２が実行する。
【００３９】
ステップＳ１０において、シンボル取得部５０は、複数のシンボルを取得し、上述の通り、取得したシンボルをシンボルが示す数値に基づいて異なるビット数表現に変換する。
【００４０】
ステップＳ１２において、シンボル取得部５０は、所定数のシンボルを取得したか否かを判断する。所定数のシンボルを取得したと判断された場合（ステップＳ１２において「はい」）は、ステップＳ１４に進む。所定数のシンボルを取得していないと判断された場合（ステップＳ１２において「いいえ」）は、再度ステップＳ１０に戻り、シンボル取得部５０は新たにシンボルを取得する。ここで、所定数のシンボルとはグループを構成するシンボルを意味する。上述の通り、グループを構成するシンボルの数は任意の数とすることが可能であり、ステップＳ１２における所定数も符号化装置１０ａが符号化するデータの種類に応じて任意に定めることが可能である。本実施形態では、ステップＳ１２における所定数を４とする。すなわち、本実施形態では１つのグループを構成するシンボルの数は４となる。
【００４１】
ステップＳ１４において、グループ生成部５２は、シンボル取得部５０が取得したシンボルを受け取り、受け取ったシンボルを４つまとめてグループを生成する。
【００４２】
ステップＳ１６において、ビット数検出部５４は、グループを構成するシンボルのビット数を検出する。本実施形態では、グループを構成するシンボルにおける最大ビット数に基づいて、各グループを複数の符号化バッファ５８に振り分ける。したがって、本実施形態では、ビット数検出部５４は、少なくともグループを構成するシンボルにおける最大ビット数を検出する。
【００４３】
ステップＳ１８において、符号化バッファ選択部５６は、ビット数検出部５４で検出された、グループを構成するシンボルにおける最大ビット数に応じて、グループを格納する符号化バッファ５８を選択する。例えば、１つ目のグループを構成するシンボルの最大ビット数が１ビットであれば、１つ目のグループの格納先として符号化バッファ１を選択する。また、２つ目のグループを構成するシンボルの最大ビット数が２ビットであれば、２つ目のグループの格納先として符号化バッファ２を選択する。このように、本実施形態では、符号化バッファ選択部５６は、グループを構成するシンボルの最大ビット数がＮであれば、当該グループの格納先として符号化バッファＮを選択する。
【００４４】
ステップＳ２０において、識別情報生成部５７は、各グループの格納先である符号化バッファ５８を識別する識別情報を含むバッファＩＤを生成し、バッファＩＤ符号化部６４へ出力する。
【００４５】
ステップＳ２２において、符号化バッファ５８は、符号化バッファ５８に符号化バッファ５８毎に定められた所定数のグループが格納されたか否かを判断する。符号化バッファ５８毎に定められた所定数のグループが格納されたと判断された場合（ステップＳ２２において「はい」）は、ステップＳ２４に進む。符号化バッファ５８毎に定められた所定数のグループが格納されていないと判断された場合（ステップＳ２２において「いいえ」）は、ステップＳ１０に戻り、シンボル取得部５０は新たにシンボルを取得する。
【００４６】
ステップＳ２４において、等長符号語置換部６０は、符号化バッファ５８毎に定められた所定のビット数で、グループを構成するシンボルを置換する。
【００４７】
図４は、等長符号語置換部６０による置換の様子を示す図である。図４には、複数の符号化バッファ５８及び複数の等長符号語置換部６０の一部が示されている。符号化バッファ１には、グループを構成するシンボルの最大ビット数が１であるグループ６６及び６８が格納されている。同様に、符号化バッファ２にはグループを構成するシンボルの最大ビット数が２であるグループ７４及び７６が格納され、符号化バッファ３にはグループを構成するシンボルの最大ビット数が３であるグループ８２及び８４が格納されている。
【００４８】
本実施形態では、符号化バッファ５８毎に定められた所定のビット数として、対応する符号化バッファ５８に格納されたグループを構成するシンボルの最大ビット数とする。
【００４９】
等長符号語置換部１は、グループ６６及び６８を構成するシンボルを１ビットで置換し、グループ７０及び７２を生成する。
【００５０】
等長符号語置換部２は、グループ７４及び７６を構成するシンボルを２ビットで置換し、グループ７８及び８０を生成する。置換前であるグループ７４及び７６を構成するシンボルはそれぞれ（１，１０，１１，０）、（１０，１，１，０）であり、１ビット表現のシンボルと２ビット表現のシンボルが混在しているが、置換後であるグループ７８及び８０を構成するシンボルはそれぞれ（０１，１０，１１，００）、（１０，０１，０１，００）であり、グループ７８及び８０を構成する全てのシンボルが２ビット表現となる。
【００５１】
等長符号語置換部３も同様に、グループ８２及びグループ８４を構成するシンボルを３ビットで置換し、グループ８６及び８８を生成する。ここでも、置換前であるグループ８２及び８４を構成するシンボルはそれぞれ（１，１０，１１，１１１）、（１０１，０，１，１０）と１−３ビット表現のシンボルが混在しているが、置換後であるグループ８６及び８８を構成するシンボルは（００１，０１０，０１１，１１１）、（１０１，０００，００１，０１０）であり、グループ８６及び８８を構成する全てのシンボルが３ビット表現となる。
【００５２】
図３に戻って、ステップＳ２６において、スーパーグループ生成部６２は、グループを所定数まとめてスーパーグループを生成する。スーパーグループを構成するグループの数は、ステップＳ２２における所定数と同じ数であって良く、スーパーグループに含まれるシンボルの総ビット数が８の倍数となるように、グループを構成するシンボルの数及び符号化バッファ５８毎に定められるビット数、すなわち等長符号語置換部６０により置換されたシンボルのビット数に基づいて、符号化バッファ５８毎に定められる。例えば、グループを構成するシンボルの数が３であり、等長符号語置換部６０により置換されたシンボルのビットが１ビットの場合、ステップＳ２２では、符号化バッファ１にグループが８つ格納されたと判断した場合にステップＳ２４に進み、ステップＳ２６において１ビットのシンボルを３つから構成されるグループを８つまとめて、総ビット数が２４のスーパーグループを生成する。
【００５３】
スーパーグループ生成部６２は、所定数のグループをまとめてスーパーグループを生成した後、スーパーグループに含まれるシンボルを連結してスーパーグループ符号を生成する。
【００５４】
図５は、グループがスーパーグループ符号に連結される様子を示す図である。図５に示す等長符号語置換部１、２、及び３によってシンボルが置換されたグループ７０、７８、８０、８６、及び８８は、図４に示した例で置換されたグループである。スーパーグループ生成部１は、１ビットのシンボル４つから構成されるグループ７０とグループ７２とをまとめて、総ビット数が８ビットであるスーパーグループ９０を生成する。スーパーグループ生成部２は、２ビットのシンボル４つから構成されるグループ７８とグループ８０とをまとめて、総ビット数が１６ビットであるスーパーグループ９２を生成する。スーパーグループ生成部３は、３ビットのシンボル４つから構成されるグループ８６とグループ８８とをまとめて、総ビット数が２４ビットであるスーパーグループ９４を生成する。
【００５５】
図５に示した例では、スーパーグループ生成部１、２、及び３は、いずれもグループを２つまとめてスーパーグループを生成している。本実施形態では、１つのグループを構成するシンボルの数は４としたので、グループに含まれるシンボルの置換された後のビット数に関わらず、グループを２つまとめてスーパーグループとすれば、スーパーグループの総ビット数は８の倍数となる。したがって、１つのグループを構成するシンボルの数を４とした場合は、スーパーグループを構成するグループの数を２とすれば良い。
【００５６】
図６は、グループがスーパーグループ符号に連結される他の例の様子を示す図である。図５に示す例では、全てのスーパーグループ生成部６２が２つのグループをまとめてスーパーグループを生成するが、スーパーグループ生成部６２毎に異なる数のグループをまとめてスーパーグループを生成するようにしても良い。図６に示す例では、スーパーグループ生成部１及び３は、図５に示した例と同様に、それぞれ２つのグループをまとめてスーパーグループを生成している。一方、等長符号語置換部２により生成されたグループ７８は、２ビットに置換された４つのシンボルから構成されており、グループ７８を構成するシンボルの総ビット数は８となっている。したがって、スーパーグループ生成部２においては、グループ７８をそのままスーパーグループ１０２とすることが可能である。すなわち、スーパーグループ生成部２では、スーパーグループを構成するグループの数を１とすることが可能である。
【００５７】
符号化装置１０ａは、シンボルを符号化しバイトバウンダリとする際に必要なダミーデータを、符号化装置１０ａを用いない場合に比較して低減する。符号化装置１０ａでは、ダミーデータが必要になるのは、データ末尾のシンボルを符号化してバイトバウンダリとする場合のみである。符号化装置１０ａを用いない場合に比較してダミーデータの量が低減されることで、符号化後の符号量を低減し、符号化効率を高める。また、符号化装置１０ａでは、グループ生成部５２で生成されるグループを構成するシンボル数は任意の数であり、グループが如何なる数のシンボルから構成されても、ダミーデータを付加することなく符号化後のデータをバイトバウンダリとする。
【００５８】
本実施形態においては、スーパーグループの総ビット数が８の倍数になるようにグループをまとめたが、スーパーグループを処理する機器のプロセッサのデータ幅に応じて、スーパーグループの総ビットが１６の倍数・３２の倍数・６４の倍数等になるようにグループをまとめるようにしても良い。例えば、スーパーグループを処理する機器のプロセッサのデータ幅が６４ビットである場合は、スーパーグループ生成部６２は、スーパーグループの総ビット数が６４の倍数になるようにグループを１又は複数個まとめるようにする。
【００５９】
また、本実施形態においては、シンボル取得部５０により取得されたシンボルはシンボル取得部５０において、シンボルが示す数値に基づいて異なるビット数表現に変換されているが、ビット数表現の変換（圧縮）を等長符号語置換部６０において行うようにしても良い。この場合、ビット数検出部５４は、シンボルが示す数値に基づいて各シンボルを異なるビット数表現に読み替え、各シンボルの読み替えたビット数表現のビット数を検出する。例えば、グループを構成するシンボルが（０ｂ００１，０ｂ１１１，０ｂ０００，０ｂ１１０）である場合、上記例と同様にビット表現を読み替えると、当該グループの各シンボルのビット数はそれぞれ２ビット、１ビット、１ビット、２ビットとなり、このグループの最大ビット数は２ということになり、当該グループは符号化バッファ２に格納される。その後、当該グループは等長符号語置換部２において、例えば（１０，０１，００，１１）に置換される。
【００６０】
図７は、第２実施形態における符号化装置１０ｂの機能構成を示すブロック図である。符号化装置１０ａと同じ構成要件には同じ番号が付されており、符号化装置１０ａと同じ機能構成については説明を省略する。符号化装置１０ｂは、識別情報生成部１１１を含む符号化バッファ選択部１１０を有し、複数のパターン用符号化バッファ１１２、複数の非ゼロシンボル抽出部１１４、複数のパターン用符号置換部１１６、及び複数のパターン用スーパーグループ生成部１１８を含む機能構成となっている。
【００６１】
符号化バッファ選択部１１０は、グループを構成するシンボルの最大ビット数のみならず、ビット数検出部５４が検出するグループを構成するシンボルのビットパターンに基づいて、グループを複数の符号化バッファ５８及び複数のパターン用符号化バッファ１１２に振り分けて格納する。また、符号化バッファ選択部１１０に含まれる識別情報生成部１１１は、各グループの格納先である符号化バッファ５８及びパターン用符号化バッファ１１２を識別する識別情報を含むバッファＩＤを生成する。また、生成したバッファＩＤを、バッファＩＤ符号化部６４へ出力する。
【００６２】
パターン用符号化バッファ１１２は、任意の数設けられ、各パターン用符号化バッファ１１２には、それぞれビットパターンが設定されている。例えば、パターン用符号化バッファ１にはビットパターン（Ｘ，０，Ｘ，０）が設定されており、パターン用符号化バッファ２にはビットパターン（Ｘ，０，０，Ｘ）が設定されている。この場合、シンボル（１，０，１，０）から構成されるグループはパターン用符号化バッファ１に格納され、シンボル（１，０，０，１）から構成されるグループはパターン用符号化バッファ２に格納される。また、グループのビットパターンが同じであっても、グループを構成するシンボルの最大ビット数が異なる場合には、異なるパターン用符号化バッファ１１２に格納される。例えば、シンボル（１，０，１，０）から構成されるグループとシンボル（１１，０，１，０）から構成されるグループとではビットパターンは同じ（Ｘ，０，Ｘ，０）であるが、シンボル（１，０，１，０）から構成されるグループはパターン用符号化バッファ１に格納され、シンボル（１１，０，１，０）から構成されるグループは、パターン用符号化バッファ１とは異なる他のパターン用符号化バッファに格納される。
【００６３】
非ゼロシンボル抽出部１１４は、パターン用符号化バッファ１１２それぞれに対応して１つずつ設けられる。非ゼロシンボル抽出部１１４は、パターン用符号化バッファ１１２に格納されたグループを構成するシンボルのうち、０値を示すシンボルを削除する。たとえば、シンボル（１，０，１，０）から構成されるグループがパターン用符号化バッファ１に格納されている場合には、非ゼロシンボル抽出部１はシンボル（１，０，１，０）から０を削除し、（１，１）から構成されるグループを生成する。
【００６４】
パターン用符号置換部１１６は、非ゼロシンボル抽出部１１４それぞれに対応して１つずつ設けられる。パターン用符号置換部１１６は、非ゼロシンボル抽出部１１４によって生成されたグループを構成するシンボルを、パターン用符号置換部１１６毎に定められた符号化ビット数に置換する。
【００６５】
パターン用スーパーグループ生成部１１８は、パターン用符号置換部１１６それぞれに対応して１つずつ設けられる。パターン用スーパーグループ生成部１１８は、パターン用符号置換部１１６によってシンボルが置換されたグループを、パターン用符号化バッファ１１２毎に定められた所定数まとめてスーパーグループを生成する。パターン用スーパーグループ生成部１１８は、スーパーグループを構成するグループの数を、スーパーグループに属するシンボルの総ビット数が８の倍数となるように、当該グループを構成するシンボルがパターン用符号置換部１１６において置換されたビット数及び当該グループが格納されたパターン用符号化バッファ１１２に設定されたビットパターンの非ゼロシンボルの数とに基づいて定められる。
【００６６】
図７では、パターン用符号化バッファ１１２、非ゼロシンボル抽出部１１４、パターン用符号置換部１１６、及びパターン用スーパーグループ生成部１１８は別々の機能ブロックとして示されているが、非ゼロシンボル抽出部１１４、パターン用符号置換部１１６、及びパターン用スーパーグループ生成部１１８をパターン用符号化バッファ１１２の機能として、パターン用符号化バッファ１１２に含めても良い。
【００６７】
符号化装置１０ａと同様に、符号化装置１０ｂにおいて生成されるバッファＩＤにも、各グループの格納先である符号化バッファ５８及びパターン用符号化バッファ１１２を識別する識別情報含まれる。上述の通り、パターン用符号化バッファ１１２毎にビットパターンが設定されており、グループはビットパターンに基づいてパターン用符号化バッファ１１２に振り分けて格納される。したがって、グループが格納されたパターン用符号化バッファ１１２を特定することで、グループのビットパターンを特定することができる。したがって、符号化装置１０ｂにおいて生成されるバッファＩＤには、非ゼロシンボル抽出部１１４によりシンボルが削除される前のグループのビットパターンを示すパターン情報も含まれることになる。
【００６８】
図８は、符号化装置１０ｂにおける符号化処理の流れを示すフローチャートである。符号化装置１０ｂの符号化処理の流れは、図３に示した符号化装置１０ａの符号化処理の流れのステップＳ１０からステップＳ１６までは同じであるため、当該部分は説明を省略する。
【００６９】
ステップＳ３０において、符号化バッファ選択部１１０は、ビット数抽出部５４からグループを構成するシンボルのビット数情報を取得する。
【００７０】
ステップＳ３２において、符号化バッファ選択部１１０は、グループを構成するビットパターンを検出する。
【００７１】
ステップＳ３４において、符号化バッファ選択部１１０は、検出されたビットパターンがパターン用符号化バッファ１１２に設定されたビットパターンと一致するか否かを判断する。検出されたビットパターンが、いずれかのパターン用符号化バッファ１１２に設定されたビットパターンと一致すると判断された場合（ステップＳ３４において「はい」）は、ステップＳ３８に進む。検出されたビットパターンが、いずれのパターン用符号化バッファ１１２に設定されたビットパターンと一致しないと判断された場合（ステップＳ３４において「いいえ」）は、ステップＳ３６に進む。
【００７２】
ステップＳ３６において、図３に示すステップＳ１８と同様に、符号化バッファ選択部１１０は、ビット数検出部５４で検出された、グループを構成するシンボルにおける最大ビット数に応じて、グループを格納する符号化バッファ５８を選択し、図３のステップＳ２０へ進む。すなわち、グループのビットパターンがパターン用符号化バッファ１１２に設定したビットパターンに一致しない場合には、当該グループは第１実施形態と同じように、グループを構成するシンボルにおける最大ビット数に基づいて符号化バッファ５８へ格納され、以後符号化装置１０ａと同じように符号化される。
【００７３】
ステップＳ３８において、符号化バッファ選択部１１０は、検出されたビットパターンに基づいて、グループをパターン用符号化バッファ１１２へ格納する。具体的には、グループのビットパターンと同一のビットパターンが設定されているパターン用符号化バッファ１１２へグループを格納する。
【００７４】
ステップＳ４０において、符号化バッファ選択部１１０に含まれる識別情報生成部１１１は、各グループの格納先である符号化バッファ５８及びパターン用符号化バッファ１１２を識別する識別情報を含むバッファＩＤを生成し、バッファＩＤ符号化部６４へ出力する。
【００７５】
ステップＳ４２において、パターン用符号化バッファ１１２は、パターン用符号化バッファ１１２にパターン用符号化バッファ１１２毎に定められた所定数のグループが格納されたか否かを判断する。パターン用符号化バッファ１１２に、所定数のグループが格納されたと判断された場合（ステップＳ２２において「はい」）は、ステップＳ２４に進む。符号化バッファ５８に、所定数のグループが格納されていないと判断された場合（ステップＳ２２において「いいえ」）は、再度ステップＳ１０に戻り、シンボル取得部５０は新たにシンボルを取得する。
【００７６】
ステップＳ４４において、非ゼロシンボル抽出部１１４は、パターン用符号化バッファ１１２に格納されたグループを構成するシンボルのうち、０値を示すシンボルを削除し、グループをパターン用符号置換部１１６へ出力する。
【００７７】
ステップＳ４６において、パターン用符号置換部１１６は、パターン用符号化バッファ１１２毎に定められたビット数で、非ゼロシンボル抽出部１１４から取得したグループに含まれるシンボルを置換する。
【００７８】
図９は、非ゼロシンボル抽出部１１２及びパターン用符号置換部１１６による置換の様子を示す図である。図９には、一部のパターン用符号化バッファ１１２、非ゼロシンボル抽出部１１４、及びパターン用符号置換部１１６が示されている。パターン用符号化バッファ１には、ビットパターンが（Ｘ，０，Ｘ，０）であり、最大ビット数が１であるグループ１２０が格納されている。同様に、パターン用符号化バッファ２には、ビットパターンが（Ｘ，０，０，Ｘ）であり、最大ビット数が２であるグループ１２６及び１２８が格納されている。
【００７９】
非ゼロシンボル抽出部１は、グループ１２０を構成するシンボル（１，０，１，０）のうち０値を示すシンボルを削除し、シンボル（１，１）から構成されるグループ１２２を生成する。同様に、非ゼロシンボル抽出部２は、グループ１２６を構成するシンボル（１，０，０，１１）のうち０値を示すシンボルを削除してシンボル（１，１１）から構成されるグループ１３０を生成し、グループ１２８を構成するシンボル（１０，０，０，１）のうち０値を示すシンボルを削除してシンボル（１０，１）から構成されるグループ１３２を生成する。
【００８０】
パターン用符号置換部１は、グループ１２２を構成するシンボルを、グループ１２０を構成するシンボルの最大ビット数、すなわち１ビット数で置換し、グループ１２４を生成する。パターン用符号置換部２は、グループ１３０を構成するシンボル（１，１１）を、グループ１２６を構成するシンボルの最大ビット数、すなわち２ビットで置換し、シンボル（０１，１１）から構成されるグループ１３４を生成する。同様に、グループ１３２を構成するシンボル（１０，１）を２ビットで置換し、シンボル（１０，０１）から構成されるグループ１３６を生成する。
【００８１】
図８に戻って、ステップＳ４８において、パターン用スーパーグループ生成部１１８は、パターン用符号置換部１１６で生成されたグループを所定数まとめてスーパーグループを生成する。
【００８２】
ステップＳ５０において、パターン用スーパーグループ生成部１１８は、スーパーグループを生成した後、スーパーグループに含まれるシンボルを連結してスーパーグループ符号を生成する。
【００８３】
符号化装置１０ｂは、シンボルが特定のパターンを多く含む場合、特にそのパターンが０値を示すシンボルを多く含む場合に、符号化装置１０ａを用いた場合に比較して符号化量を低減させる。例えば、等長符号語置換部６０で（１１，０，０，０）というシンボルを置換する場合、符号化後のシンボルは（１１，００，００，００）となり８ビットであるが、パターン用符号置換部１１６で置換する場合、パターン用符号化バッファ１１２に（Ｘ，０，０，０）（Ｘは２ビット）というパターンを設定すれば、置換後のシンボルは（１１）の２ビットとなる。
【００８４】
図１０は、第３実施形態における符号化装置１０ｃの機能構成を示すブロック図である。符号化装置１０ａと同じ構成要件には同じ番号が付されており、符号化装置１０ａと同じ機能構成については説明を省略する。符号化装置１０ｃは、識別情報生成部１４１を含む符号化バッファ選択部１４０を有し、エントロピー符号化バッファ１４２及びエントロピー符号化部１４４を含む機能構成となっている。
【００８５】
符号化バッファ選択部１４０は、ビット数検出部５４が検出したグループを構成するシンボルのビット数の特徴に基づいて、グループを複数の符号化バッファ５８及びエントロピー符号化バッファ１４２に振り分けて格納する。また、識別情報生成部１４１は、各部ループの格納先である符号化バッファ５８及びエントロピー符号化バッファ１４２を識別する識別情報を含むバッファＩＤを生成する。また、生成したバッファＩＤを、バッファＩＤ符号化部６４へ出力する。
【００８６】
エントロピー符号化バッファ１４２は、シンボルのビット数が所定の条件を満たすグループを格納し、エントロピー符号化部１４４は、エントロピー符号化バッファ１４２に格納されたグループを構成するシンボルをエントロピー符号化する。エントロピー符号化とは、例えばハフマン符号化である。図１０では、エントロピー符号化バッファ１４２及びエントロピー符号化部１４４は別々の機能ブロックとして示されているが、エントロピー符号化部１４４をエントロピー符号化バッファ１４２の機能として、エントロピー符号化バッファ１４２に含めても良い。
【００８７】
図１１は、符号化装置１０ｃにおける符号化処理の流れを示すフローチャートである。符号化装置１０ｃの符号化処理におけるステップＳ１０−Ｓ１６は、図３に示した符号化装置１０ａの符号化処理におけるステップＳ１０−Ｓ１６と同じであるため、説明を省略する。
【００８８】
ステップＳ６０において、符号化バッファ選択部１４０は、ビット数抽出部５４からグループを構成するシンボルのビット数情報を取得する。
【００８９】
ステップＳ６２において、符号化バッファ選択部１４０は、グループを構成するシンボルのうち、最大ビット数のシンボルと最小ビット数のシンボルを検出する。
【００９０】
ステップＳ６４において、符号化バッファ選択部１４０は、最大ビット数のシンボルと最小ビット数のシンボルのビット数の差が所定値以上であるか否かを判断する。ビット数の差が所定値以上であると判断された場合（ステップＳ６４において「はい」）は、ステップＳ６８に進む。ビット数の差が所定値より小さいと判断された場合（ステップＳ３４において「いいえ」）は、ステップＳ６６に進む。
【００９１】
ステップＳ６６において、図３に示すステップＳ１８と同様に、符号化バッファ選択部１４０は、ビット数検出部５４で検出された、グループを構成するシンボルにおける最大ビット数に応じて、グループを格納する符号化バッファ５８を選択し、図３のステップＳ２０へ進む。すなわち、最大ビット数のシンボルと最小ビット数のシンボルのビット数の差が所定値より小さいと判断された場合には、当該グループは符号化装置１０ａと同じように、グループを構成するシンボルにおける最大ビット数に基づいて符号化バッファ５８へ格納され、以後符号化装置１０ａと同じように符号化される。
【００９２】
ステップＳ６８において、符号化バッファ選択部１４０は、グループをエントロピー符号化バッファ１４２に格納する。
【００９３】
ステップＳ７０において、識別情報生成部１４１は、各グループの格納先である符号化バッファ５８及びエントロピー符号化バッファ１４２を識別する識別情報を含むバッファＩＤを生成する。
【００９４】
ステップＳ７２において、エントロピー符号化部１４４は、エントロピー符号化バッファ１４２に格納されたグループを構成するシンボルをエントロピー符号化して出力する。
【００９５】
図１２は、符号化装置１０ｃにおける符号化処理の流れの他の例を示すフローチャートである。図１２に示す符号化処理の例は、図１１に示す符号化処理と比して、グループがエントロピー符号化バッファへ格納される条件が異なるものである。図１１に示す例と重複する部分については説明を省略する。
【００９６】
ステップＳ８０において、符号化バッファ選択部１４０は、グループを構成するシンボルのうち、０値を示すシンボル数を検出する。
【００９７】
ステップＳ８２において、符号化バッファ選択部１４０は、０値を示すシンボル数が所定値以上であるか否かを判断する。ビット数の差が所定値以上であると判断された場合（ステップＳ８２において「はい」）は、ステップＳ６８に進む。０値を示すシンボル数が所定値より小さいと判断された場合（ステップＳ３４において「いいえ」）は、ステップＳ６６に進む。ステップＳ６６及びステップＳ６８以降は、図１１において説明した処理と同様の処理を行う。
【００９８】
符号化装置１０ｃは、ある特定の特徴的なシンボル列を符号化する場合に、符号化装置１０ａを用いた場合に比較して符号化量を低減する。特徴的なシンボル列とは例えば、ほとんどのシンボルが示す値が０であるが、周期的に大きな値を示すシンボルが含まれるようなシンボル列を符号化する場合である。例えば、符号化装置１０ｃにおいてグループを構成するシンボル数が８であるときに、周期的に大きな値を示すシンボルが含まれるようなシンボル列をグループ化すると、（０，０，０，０，０，１１１１１，０，０）というようなシンボルからなるグループが生成されることになる。この場合、符号化装置１０ａでは、符号化後のシンボルは８×５＝４０ビットとなるが、符号化装置１０ｃでは最小で９ビット（１１１１１を１０に符号化し、０を０に符号化する）となる。
【００９９】
以上、本発明に係る符号化装置の例について説明した。以下、本発明に係る符号化装置に対応する復号装置の例について説明する。符号化装置の実施形態同様、本発明に係る復号装置は以下の実施形態に限定されるものではない。
【０１００】
図１３は、符号化装置１０ａに対応する復号装置２４ａの機能構成を示すブロック図である。復号装置２４ａは、複数のスーパーグループ取得部１５０、バッファＩＤ取得部１５２、バッファＩＤ復号部１５４、複数の逆スーパーグループ化部１５６、複数の復号部１６０、複数の復号バッファ１６２、及びグループ取得部１６４を含む機能構成となっている。
【０１０１】
スーパーグループ取得部１５０は、複数設けられ、符号化装置２４ａの符号化バッファ５８それぞれに対応して１つずつ設けられる。すなわち、スーパーグループ取得部１５０は符号化バッファ５８と同じ数設けられる。各スーパーグループ取得部１５０は、対応する符号化バッファ５８で生成されたスーパーグループ符号を取得し、取得したスーパーグループ符号をスーパーグループに切り出す。上述の通り、スーパーグループ取得部１５０が取得するスーパーグループに属するシンボルの総ビット数は８の倍数となっており、所定数のグループから構成されている。当該グループは、複数の符号化バッファ５８に選択的に格納され、所定の符号化ビット数で符号化された複数のシンボルから構成されている。
【０１０２】
バッファＩＤ取得部１５２は、バッファＩＤを取得する。上述の通り、バッファＩＤは符号化バッファ選択部５６により生成されるものであり、各グループの格納先である符号化バッファ５８を識別する識別情報が含まれる。
【０１０３】
バッファＩＤ復号部１５４は、バッファＩＤ取得部１５２が取得したバッファＩＤを復号する。
【０１０４】
逆スーパーグループ化部１５６は、複数設けられ、符号化バッファ５８及びスーパーグループ取得部１５０それぞれ対応して１つずつ設けられる。各逆スーパーグループ化部１５６は、対応するスーパーグループ取得部１５０からスーパーグループを受け取り、スーパーグループをグループに分割する。
【０１０５】
復号部１６０は、複数設けられ、符号化バッファ５８及び逆スーパーグループ化部１５６それぞれに対応して１つずつ設けられる。復号部１６０は、復号バッファ１６２に格納されるグループを構成するシンボルを、復号バッファ１６２毎に定められたビット数で復号する。
【０１０６】
復号バッファ１６２は、複数設けられ、符号化バッファ５８及び復号部１６０それぞれに対応して１つずつ設けられる。復号バッファ１６２は、復号部１６０から復号されたシンボルから構成されるグループを格納する。
【０１０７】
図１３では、復号部１６０及び復号バッファ１６２は、別々の機能ブロックとして示されているが、復号部１６０の機能を復号バッファ１６２の機能として含めても良い。すなわち、復号を復号バッファ１６２において行うようにしても良い。
【０１０８】
グループ取得部１６４は、バッファＩＤ復号部１５４からバッファＩＤを受け取り、バッファＩＤに含まれる識別情報に基づいて、複数の復号バッファ１６２から順番にグループを取得し、取得したグループを構成するシンボルを出力する。
【０１０９】
以下、復号装置２４ａによる復号処理の流れを説明する。図１４は、復号装置２４ａにおける復号処理の流れを示すフローチャートである。図１４に示された各ステップは、図１３に示した各機能構成が実行するものであるが、実質的には復号装置２４ａのプロセッサ２６が実行する。
【０１１０】
ステップＳ１００において、スーパーグループ取得部１５０は、スーパーグループ符号を取得し、スーパーグループに切り出す。
【０１１１】
ステップＳ１０２において、バッファＩＤ取得部１５２は、バッファＩＤを取得してバッファＩＤ復号部１５４へ出力する。バッファＩＤ復号部１５４は、受け取ったバッファＩＤを復号しグループ取得部１６４に出力する。
【０１１２】
ステップＳ１０４において、逆スーパーグループ化部１５６は、スーパーグループをグループに分割する。また、逆スーパーグループ化部１５６は、スーパーグループを分割して得られたグループを復号部１６０へ出力する。上述の通り、スーパーグループに含まれるグループの数は、符号化バッファ５８毎に定められおり、逆スーパーグループ化部１５６は符号化バッファに対応して設けられている。したがって、取得したスーパーグループを何個のグループに分割するかは、対応する符号化バッファ５８に定められたグループの数に応じて、逆スーパーグループ化部１５６毎に定められる。
【０１１３】
ステップＳ１０６において、復号部１６０は、復号バッファ１６２に格納されるグループを構成するシンボルを、復号部１６０毎に定められた所定のビット数で復号する。ここで、所定のビット数とは、復号バッファ１６２に格納されるグループを構成するシンボルのビット数、すなわち等長符号語置換部６０において置換された後のシンボルのビット数であり、復号部１６０毎に異なるビット数となる。
【０１１４】
ステップＳ１０８において、グループ取得部１６４は、バッファＩＤに含まれる識別上納に基づいて、複数の復号バッファ１６２から順番にグループを取得する。グループ取得部１６４は、識別情報を参照することで、グループが符号化バッファ５８に格納された順番、すなわち元のグループの並び順通りにグループを取得する。そして、グループを取得した順にグループを構成するシンボルを出力する。
【０１１５】
図１５は、符号化装置１０ｂに対応する復号装置２４ｂの機能構成を示すブロック図である。復号装置２４ｂは、パターン用スーパーグループ取得部１７０、パターン用逆スーパーグループ化部１７１、パターン用復号部１７２、パターン復元部１７４、及びパターン用復号バッファ１７６を含む機能構成となっている。復号装置２４ｂと復号装置２４ａで同一構成要件には同一符号が付されており、復号装置２４ａと同じ機能構成については説明を省略する。
【０１１６】
復号装置２４ｂのバッファＩＤ取得部１５２が取得するバッファＩＤには、各グループの格納先である符号化バッファ５８及びパターン用符号化バッファ１１２を識別する識別情報が含まれる。
【０１１７】
パターン用スーパーグループ取得部１７０は、複数設けられ、符号化装置２４ｂのパターン用符号化バッファ１１２それぞれに対応して１つずつ設けられる。すなわち、パターン用スーパーグループ取得部１７０はパターン用符号化バッファ１１２と同じ数設けられる。各パターン用スーパーグループ取得部１７０は、対応するパターン用符号化バッファ１１２で生成されたスーパーグループ符号を取得し、取得したスーパーグループ符号をスーパーグループに切り出す。
【０１１８】
パターン用逆スーパーグループ化部１７１は、複数設けられ、パターン用スーパーグループ取得部１７０それぞれに対応して１つずつ設けられる。各パターン用スーパーグループ化部１７１は、対応するパターン用スーパーグループ取得部１７０からスーパーグループを受け取り、スーパーグループをグループに分割する。
【０１１９】
パターン用復号部１７２は、複数設けられ、パターン用逆スーパーグループ化部１７１それぞれに対応して１つずつ設けられる。パターン用復号部１７２は、パターン用復号バッファ１７６に格納されるグループを構成するシンボルを、パターン用復号バッファ１７６毎に定められたビット数で復号する。
【０１２０】
パターン復元部１７４は、複数設けられ、パターン用復号部１７２それぞれに対応して１つずつ設けられる。パターン復元部１７４は、パターン用復号部１７２からグループを受け取り、当該グループのビットパターンを、符号化装置１０ｂの非ゼロシンボル抽出部１１４により０値を示すシンボルが削除される前のグループのビットパターンに復元する。例えば、シンボル（１，０，１，０）が符号化装置１０ｂにより符号化された場合、非ゼロシンボル抽出部１１４により０値を示すシンボルが削除され、符号化後の当該グループは（１，１）となっている。受け取ったグループ（１，１）に０値を付加し、元のビットパターン（１，０，１，０）に復元する。各パターン用符号化バッファ１７６には常に復元すべきビットパターンが同一であるグループが格納されるため、ビットパターンを復元するために０値を付加する位置は、パターン復元部１７４と非ゼロシンボル抽出部１１４との対応関係に基づいて、パターン復元バッファ１７６毎に定められる。
【０１２１】
パターン用復号バッファ１７６は、複数設けられ、パターン復元部１７４それぞれに対応して１つずつ設けられる。復号バッファ１６０が符号化バッファ５８に対応しているのと同じように、パターン用復号バッファ１７２とパターン用符号化バッファ１１２も対応しており、パターン用復号バッファ１７２は符号化バッファ５８と同じ数だけ設けられる。すなわち、パターン用符号化バッファ１に格納されていたグループはパターン用復号バッファ１に格納され、パターン用符号化バッファ２に格納されていたグループはパターン用復号バッファ２に格納される。
【０１２２】
図１５では、パターン用復号部１７２、パターン復元部１７４、及びパターン用復号バッファ１７６は別々の機能ブロックとして示されているが、パターン用復号部１７２及びパターン復元部１７４の機能をパターン用復号バッファ１７６の機能として含めても良い。すなわち、復号及びパターン復元をパターン用復号バッファ１７６において行うようにしても良い。
【０１２３】
図１６は、符号化装置１０ｃに対応する復号装置２４ｃの機能構成を示すブロック図である。復号装置２４ｃは、エントロピー符号取得部１８０、エントロピー符号復号部１８２、及びエントロピー符号用復号バッファ１８４を含む機能構成となっている。復号装置２４ｃと復号装置２４ａで同一構成要件には同一符号が付されており、復号装置２４ａと同じ機能構成については説明を省略する。
【０１２４】
復号装置２４ｃのバッファＩＤ取得部１５２が取得するバッファＩＤには、各グループの格納先である符号化バッファ５８及びエントロピー符号化バッファ１４２を識別する識別情報が含まれる。
【０１２５】
エントロピー符号取得部１８０は、エントロピー符号化されたシンボルから構成されるグループを取得する。スーパーグループ取得部１５０とエントロピー符号取得部１８０とを同一の機能ブロックとすることも可能である。この場合、取得したグループがスーパーグループであるか、エントロピー符号化されたシンボルから構成されるグループであるかの識別は、グループに含まれているシンボルのビット数が同一であるか否か等に基づいて行う。
【０１２６】
エントロピー符号復号部１８２は、エントロピー符号取得部１８０からグループを受け取り、グループを構成するエントロピー符号化されたシンボルを復号する。
【０１２７】
エントロピー符号用復号バッファ１８４は、復号されたシンボルから構成されるグループをエントロピー符号復号部１８２から受け取り、格納する。
【０１２８】
グループ取得部１６４は、バッファＩＤに含まれる識別情報に基づいて、複数の復号バッファ１６２及びエントロピー符号用バッファ１８４から順番にグループを取得し、取得したグループを構成するシンボルを出力する。
【符号の説明】
【０１２９】
１０，１０ａ，１０ｂ，１０ｃ  符号化装置、１２，２６  プロセッサ、１４，２８  記憶装置、１６，３０  入力装置、１８，３２  表示装置、２０，３４  通信装置、２２，３８  記憶媒体、２４，２４ａ，２４ｂ，２４ｃ  復号装置、３６  出力装置、４０  ネットワーク、５０  シンボル取得部、５２  グループ生成部、５４  ビット数検出部、５６，１１０，１４０  符号化バッファ選択部、５７，１１１，１４１  識別情報生成部、  ５８  符号化バッファ、６０  等長符号語置換部、６２  スーパーグループ生成部、６４  バッファＩＤ符号化部、６６，６８，７０，７２，７４，７６，７８，８０，８２，８４，８６，８８，１２０，１２２，１２４，１２６，１２８，１３０，１３２，１３４，１３６  グループ、９０，９２，９４，１０２  スーパーグループ、１１２  パターン用符号化バッファ、１１４  非ゼロシンボル抽出部、１１６  パターン用符号置換部、１１８  パターン用スーパーグループ生成部、１４２  エントロピー符号化バッファ、１４４  エントロピー符号化部、１５０  スーパーグループ取得部、１５２  バッファＩＤ取得部、１５４  バッファＩＤ復号部、１５６  逆スーパーグループ化部、１６０  復号部、１６２  復号バッファ、１６４  グループ取得部、１７０  パターン用スーパーグループ取得部、１７１  パターン用逆スーパーグループ化部、１７２  パターン用復号部、１７４  パターン復元部、１７６  パターン用復号バッファ、１８０  エントロピー符号取得部、１８２  エントロピー符号復号部、１８４  エントロピー符号用復号バッファ。
【図１】
2014146972.tif 000003
【図２】
2014146972.tif 000004
【図３】
2014146972.tif 000005
【図４】
2014146972.tif 000006
【図５】
2014146972.tif 000007
【図６】
2014146972.tif 000008
【図７】
2014146972.tif 000009
【図８】
2014146972.tif 000010
【図９】
2014146972.tif 000011
【図１０】
2014146972.tif 000012
【図１１】
2014146972.tif 000013
【図１２】
2014146972.tif 000014
【図１３】
2014146972.tif 000015
【図１４】
2014146972.tif 000016
【図１５】
2014146972.tif 000017
【図１６】
2014146972.tif 000018