(57)【要約】      （修正有）【課題】可変長符号化された符号化データの復号処理時間の短縮を図る。【解決手段】復号装置１０は、切出部１２と、復号部１６と、を備える。切出部１２は、可変長符号化された複数の符号化データを含む入力データを、複数の符号化データの最大符号長以上の予め定めた第１符号長毎に切出す。格納部１４は、切出部１２で切出された切出データを格納する。復号部１６は、切出した切出データに含まれる符号化データを可変長復号する。復号部１６は、判断部１６Ａを備える。判断部１６Ａは、格納部１４に格納されているデータを解析し、格納データに基づいた可変長復号が可能か否かを判断する。【選択図】図１
2014116835.tif 000002
【特許請求の範囲】
【請求項１】
可変長符号化された複数の符号化データを含む入力データを、前記複数の符号化データの最大符号長以上の予め定めた第１符号長毎に切出す切出部と、
切出した切出データに含まれる前記符号化データを可変長復号する復号部と、
を備えた復号装置。
【請求項２】
前記切出部は、前記切出データを格納データとして格納部に格納し、
前記復号部は、前記格納部に格納された前記格納データに含まれる前記符号化データを可変長復号する、
請求項１に記載の復号装置。
【請求項３】
前記復号部は、前記格納データに基づいた可変長復号が可能か否かを判断する判断部を含み、
前記切出部は、前記判断部によって可変長復号が可能と判断された場合、前記入力データからの前記切出しを停止する、
請求項２に記載の復号装置。
【請求項４】
前記格納部は、
前記第１符号長の２倍値から前記複数の符号化データの最小符号長を減算した減算値以上の記憶容量を有する、
請求項２に記載の復号装置。
【請求項５】
前記入力データは、最大符号長の異なる複数種類の符号化データを含み、
前記復号部は、前記複数種類の符号化データの少なくとも１種の可変長復号と、該種類以外の他の種類の可変長復号と、を並列して実行する、
請求項１に記載の復号装置。
【請求項６】
符号化対象情報を可変長符号化する符号化部と、
可変長符号化によって得られた複数の符号化データの結合データを、前記複数の符号化データの最大符号長以上の予め定めた第１符号長毎に出力する結合部と、
を備えた符号化装置。
【請求項７】
可変長符号化された複数の符号化データを含む入力データを、前記複数の符号化データの最大符号長以上の予め定めた第１符号長毎に切出すこと、
切出した切出データに含まれる前記符号化データを可変長復号すること、
を備えた復号方法。
【請求項８】
符号化対象情報を可変長符号化すること、
可変長符号化によって得られた複数の符号化データの結合データを、前記複数の符号化データの最大符号長以上の予め定めた第１符号長毎に出力すること、
を備えた符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、復号装置、符号化装置、復号方法、及び符号化方法に関する。
【背景技術】
【０００２】
画像データの符号化方法として、符号長が固定の固定長符号化や、符号長が一様でない可変長符号化が知られている。例えば、符号化方式の一つであるＭＰＥＧ−２では、量子化パラメータは０〜３１までの範囲で設定可能であり、５ビットの固定長符号化を行うことが知られている。また、Ｈ．２６４等の符号化方式では、可変長符号化を採用することが知られている。
【０００３】
可変長符号化を行った場合、固定長符号化に比べて高い圧縮率の符号化データを得ることが出来る。しかし、可変長符号化により得られた符号化データの復号は、固定長符号化により得られた符号化データの復号に比べて時間がかかることが知られている。一方、固定長符号化により得られた符号化データは、復号時に要する処理時間は可変長符号化に比べて短いものの、圧縮率効率が低いことが知られている。
【０００４】
また、可変長符号化された符号化データを、重要度の高い固定長のパケットと重要度の低い固定長のパケットに分割し、伝送障害時に重要度の高いパケットを再送する技術も開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１０１４１６号公報
【特許文献２】特許第３６６２１７１号公報
【特許文献３】特許第３６６９２７７号公報
【特許文献４】特許第３６６９２８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来では、可変長符号化された符号化データを、高速に復号することは困難であった。
【０００７】
本発明が解決しようとする課題は、可変長符号化された符号化データの復号処理時間の短縮を図ることができる、復号装置、符号化装置、復号方法、及び符号化方法を提供することである。
【課題を解決するための手段】
【０００８】
実施形態の復号装置は、切出部と、復号部と、を備える。切出部は、可変長符号化された複数の符号化データを含む入力データを、前記複数の符号化データの最大符号長以上の予め定めた第１符号長毎に切出す。復号部は、切出した切出データに含まれる前記符号化データを可変長復号する。
【図面の簡単な説明】
【０００９】
【図１】復号装置のブロック図。
【図２】復号処理の手順を示すフローチャート。
【図３】符号化データを示す模式図。
【図４】切出データの切出しの説明図。
【図５】格納データの模式図。
【図６】ルックアップテーブルのデータ構造の模式図。
【図７】ルックアップテーブルのデータ構造の模式図。
【図８】格納データの模式図。
【図９】ルックアップテーブルのデータ構造の模式図。
【図１０】復号処理の処理タイミングの説明図。
【図１１】復号処理の他の手順を示すフローチャート。
【図１２】復号装置のブロック図。
【図１３】復号処理の手順を示すフローチャート。
【図１４】復号処理の他の手順を示すフローチャート。
【図１５】復号処理の他の手順を示すフローチャート。
【図１６】復号処理の他の手順を示すフローチャート。
【図１７】復号処理の処理タイミングの説明図。
【図１８】符号化装置のブロック図。
【図１９】出力データのデータ構造の模式図。
【図２０】符号化処理の手順を示すフローチャート。
【図２１】可変長符号化及びパケット化の説明図。
【図２２】出力データのデータ構造の模式図。
【図２３】出力データのデータ構造の模式図。
【発明を実施するための形態】
【００１０】
（実施の形態１）
図１は、本実施の形態の復号装置１０の機能的構成を示すブロック図である。復号装置１０は、画像復号を行う装置である。復号装置１０は、例えば、ＰＣ（パーソナルコンピュータ）の画面等、主に、ＣＧ（コンピュータグラフィックス）画像を扱う装置やシステムに組み込まれる。
【００１１】
復号装置１０は、画像復号ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェアで実装された装置に組み込まれる。復号装置１０による復号処理によって高速に復号を行うことで、例えば、ディスプレイへの表示応答性を高めることができる。
【００１２】
本実施の形態の復号装置１０は、復号対象の入力データを受け付け、復号し、復号データを出力する。
【００１３】
復号装置１０が受け付ける入力データは、可変長符号化された複数の符号化データを含む。符号化データは、符号化装置（詳細後述）による可変長符号化によって得られたデータを示す。符号化データには、量子化パラメータの差分や、動きベクトル等が挙げられるが、これらに限定されない。
【００１４】
復号装置１０は、切出部１２、格納部１４、及び復号部１６を備える。
【００１５】
切出部１２は、復号装置１０で受け付けた入力データを、予め定めた第１符号長毎に切出す。
【００１６】
第１符号長は、受け付けた入力データに含まれる複数の符号化データの各々の符号長の内、最大符号長以上の値である。最大符号長とは、入力データを可変長符号化した場合にとりうる符号長のうち最大値を示す。最大符号長は、用いる可変長符号化の手法等で定まる。また、第１符号長は、入力データのデータ長以下の値である。なお、第１符号長は、復号装置１０が受け付ける対象の入力データ毎に予め定められており、復号装置１０の図示を省略するメモリ等に予め記憶されているものとする。
【００１７】
例えば、入力データのデータ長がＸビットであったとする（Ｘは１以上の整数）。また、第１符号長がＭビットであったとする（Ｍは１以上Ｘ以下の整数）。この場合、切出部１２は、入力データを、第１符号長であるＭビット毎に切出す。なお、第１符号長であるＭビットを、以下では、単に「第１符号長Ｍ」と称して説明する場合がある。
【００１８】
格納部１４は、切出部１２で切出された切出データを格納する。格納部１４は、公知の記憶媒体である。復号部１６は、切出データに含まれる符号化データを可変長復号する。復号部１６は、判断部１６Ａを備える。判断部１６Ａは、格納部１４に格納されているデータ（以下、格納データと称する）を解析し、格納データに基づいた可変長復号が可能か否かを判断する。
【００１９】
図２は、復号装置１０が実行する復号処理の手順を示すフローチャートである。
【００２０】
復号装置１０では、入力データを受け付けると、図２に示す復号処理を実行する。
【００２１】
まず、切出部１２が、受け付けた入力データを、第１符号長毎に切出す（ステップＳ１００）。そして、切出部１２は、切出した切出データを、格納部１４へ格納する（ステップＳ１０２）。なお、切出部１２は、格納部１４にデータが格納されている場合には、このデータの終端に、新たに切出した切出データを結合して格納部１４に格納する。格納データは、詳細は後述するが、切出部１２によって切出されて格納部１４に格納された切出データの内、格納部１４に残存しているデータを示す。
【００２２】
次に、復号部１６が、格納部１４に格納されている格納データに含まれる符号化データを復号する（ステップＳ１０４）（詳細後述）。そして復号部１６は、復号データを出力する。なお、復号部１６は、復号した符号化データを、格納部１４の格納データから削除する。このため、格納部１４には、切出部１２によって格納部１４に格納された切出データの内、未復号の未復号データが格納データとして残った状態となる。
【００２３】
次に、判断部１６Ａが、格納部１４に格納されている格納データを解析し（ステップＳ１０６）、格納データに基づいた可変長復号が可能か否かを判断する（ステップＳ１０８）（詳細後述）。
【００２４】
ステップＳ１０８で肯定判断すると（ステップＳ１０８：Ｙｅｓ）、ステップＳ１０４へ戻る。
【００２５】
一方、ステップＳ１０８で否定判断すると（ステップＳ１０８：Ｎｏ）、ステップＳ１１０へ進む。ステップＳ１１０では、切出部１２が、復号対象の入力データに、未復号の未復号データが有るか否かを判断する（ステップＳ１１０）。切出部１２は、例えば、入力データの全データが切出部１２によって切出されたか否かを判別することによって、ステップＳ１１０の判断を行う。
【００２６】
ステップＳ１１０で肯定判断すると（ステップＳ１１０：Ｙｅｓ）、上記ステップＳ１００へ戻る。一方、ステップＳ１１０で否定判断すると（ステップＳ１１０：Ｎｏ）、本ルーチンを終了する。
【００２７】
次に、復号装置１０が実行する復号処理の詳細を、具体例を挙げて説明する。
【００２８】
図３は、入力データに含まれる複数の符号化データの一例を示す模式図である。なお、図３では、符号化データが、量子化パラメータの差分（図３中、ｄｅｌｔａ＿ｑｐ参照、以下、単に、ｄｅｌｔａ＿ｑｐと称して説明する場合がある）を符号化した符号化データである場合を示している。また、図３中に示す符号化データは、各量子化パラメータの差分に対応する可変長符号化されたデータである。また、図３中、符号長は、対応する符号化データの符号長を示す。
【００２９】
例えば、図３に示すように、ｄｅｌｔａ＿ｑｐの値が、−４〜＋４であるものとし、各ｄｅｌｔａ＿ｑｐに対応する符号化データが、図３に示す値であったとする。また、各符号化データの符号長が図３に示す値であったとする。
【００３０】
具体的には、ｄｅｌｔａ＿ｑｐ「−２」に対応する符号化データは、２進数で「００１１」であり、符号長は「４」である。なお、以下では、２進数を表現する場合、“ｂ”を付して表現する。すなわち、２進数の「００１１」は、「００１１ｂ」と表記する。
【００３１】
図３に示す、複数の符号化データにおける最大符号長は、「６」である。このため、入力データが図２に示す複数の符号化データを含むデータである場合、復号装置１０は、最大符号長「６」として切出しを行う。
【００３２】
図４は、切出部１２による切出データの切出しを示す説明図である。図４に示すように、切出部１２は、図３に示す複数の符号化データを含む入力データから、これらの符号化データの最大符号長以上の予め定めた第１符号長Ｍ毎に切出しを行う。本実施の形態では、第１符号長Ｍが「６」である場合を想定して説明する。また、入力データのデータ長がＸビット（Ｘは、Ｍより大きい整数）である場合を想定して説明する。
【００３３】
なお、本実施の形態では、第１符号長Ｍは、１つの入力データに対して一定の値であるものとして説明する。なお、第１符号長Ｍは、１つの入力データに対して一定の値を用いることが、高速に復号処理を行う観点から好ましいが、１つの入力データに対する第１符号長Ｍの値は、入力データに含まれる符号化データの配列に応じて変更してもよい。具体的には、符号化データの符号長が規則的に変更する順に配列されている場合には、該変更規則に沿って第１符号長Ｍを変更してもよい。
【００３４】
切出部１２は、入力データの先頭から順に、該入力データを第１符号長Ｍ毎に切出す。そして、切出部１２は、切出したＭビットの切出データを、順次、格納部１４へ格納する。図４に示すように、格納部１４に残存データ（例えば、αビット）が存在する場合、切出部１２は、残存データの終端に、切出データを結合させる。このため、切出部１２による切出し（図２中、ステップＳ１００参照）及び格納（図２中、ステップＳ１０２参照）によって、例えば、格納部１４には、Ｍ＋αビットのデータ長の格納データが格納された状態となる。
【００３５】
なお、詳細は後述するが、復号部１６は、格納データから符号化データを読取り復号する。このとき、復号部１６は、格納部１４に格納されている格納データから復号対象の符号化データを切出して、切出した符号化データを復号する。このため、格納部１４には、切出部１２が切出した切出データの内、復号部１６によって未復号のデータが格納データとして格納されている状態となる。
【００３６】
図４に示すように、入力データのデータ長Ｘが、切出部１２による切出単位である第１符号長Ｍの整数倍とならない場合もある。この場合、切出部１２は、入力データを先頭から順に切出したときの最後の切出し時には、残存している第１符号長Ｍ未満のデータ長（Ｘ／Ｍの余りの値）のデータを切出せばよい。
【００３７】
切出データを格納する格納部１４の記憶容量（以下、メモリサイズと称する）は、装置小型化等の観点から、最小限であることが好ましい。本実施の形態では、格納部１４のメモリサイズは、下記式（１）によって示されるメモリサイズ以上であることが好ましい。
【００３８】
格納部１４のメモリサイズ＝Ｍ×２−Ｌ      ・・・式（１）
【００３９】
式（１）中、Ｍは、第１符号長を示す。Ｌは、入力データに含まれる符号化データの最小符号長を示す。
【００４０】
格納部１４にデータが格納されていない状態で、切出部１２が切出データを格納部１４に格納すると、格納部１４に格納されている格納データのデータ長のとりうる最大値は第１符号長Ｍとなる。また、復号部１６が格納データから復号対象の符号化データを切出して復号すると、格納部１４における格納データのデータ長は、復号前の状態の格納データのデータ長から復号した符号化データのデータ長を減算した減算値となる。このため、復号部１６による復号後の状態における、格納部１４に格納されている格納データのデータ長のとりうる最大値は、第１符号長Ｍから、入力データに含まれる符号化データの最小符号長Ｌを減算した減算値（Ｍ−Ｌの値）となる。
【００４１】
この「Ｍ−Ｌ」のデータ長の格納データが格納部１４に格納された状態で、更に、切出部１２による次の切出し（ステップＳ１００）及び格納（ステップＳ１０２）が行われたとする。この状態における格納データのデータ長のとりうる最大値は、「（Ｍ−Ｌ）＋Ｍ」となる。
【００４２】
このため、格納部１４は、「（Ｍ−Ｌ）＋Ｍ」、すなわち、上記式（１）によって示される「Ｍ×２−Ｌ」のメモリサイズを少なくとも有する必要がある。このため、格納部１４のメモリサイズは、上記式（１）によって示されるメモリサイズ以上であることが好ましい。
【００４３】
なお、本実施の形態では、格納部１４のメモリサイズは、上記式（１）によって示されるメモリサイズである場合を説明する。
【００４４】
次に、復号部１６による符号化データの復号について説明する。本実施の形態では、復号部１６は、格納部１４に格納されている格納データの先頭からデータを読込むことで符号化データ（例えばＮバイト）を切出し、復号する。
【００４５】
このため、格納部１４に格納されている格納データのデータ長が「Ｍ×２−Ｌ」の状態で復号部１６が復号を実行すると、格納データのデータ長は、「Ｍ×２−Ｌ−Ｎ」となる。
【００４６】
本実施の形態では、復号部１６は、ルックアップテーブルを用いて復号を行う場合を説明する。
【００４７】
具体的には、復号対象の入力データに含まれる複数の符号化データが、図３に示す符号化データであったとする。また、格納部１４には、格納データとして、残存データ「０１ｂ」と切出データ「０１１０００ｂ」とからなる格納データ「０１０１１０００ｂ」が格納された状態であったとする。
【００４８】
復号部１６は、まず、復号対象の符号化データのデータ長を取得するためのルップアップテーブルを生成する。
【００４９】
図６は、復号部１６による復号時に生成する生成途中のルックアップテーブルのデータ構造の一例を示す模式図である。図６中、「Ｘ」は任意の値（０または１）を示す。読込データは、復号部１６が格納データから読込む対象のデータである。復号部１６は、図６に示す「Ｘ」の組合せを全て展開し、読込データから符号化データ、及び該符号化データの切出長を取得するためのルックアップテーブルを作成する。
【００５０】
図７は、復号部１６が復号時に生成したルックアップテーブルのデータ構造の一例を示す模式図である。図７に示すように、ｄｅｌｔａ＿ｑｐが「０」の場合、２進数で示したときの先頭１ビット目の値は「１」である。このため、第１符号長Ｍの値である「６」に対して、残り５ビットは、どのような値でもよい。よって、復号部１６は、図７に示すように、格納データから読み込んだ読込データの値が「３２」〜「６３」の範囲であれば、ｄｅｌｔａ＿ｑｐの値は「０」であり、切出長は「１」であると解析する。
【００５１】
図５は、格納データの一例を示す模式図である。復号部１６が、図５に示す格納データから、図７に示すルックアップテーブルに基づいて復号を行うとする。この場合、格納データにおける先頭から６ビット（第１符号長Ｍ）分のデータは、「０１０１１０ｂ」である。このため、この格納データは、図６に示すルックアップテーブルにおける、「０１０ＸＸＸ」に相当することから、ｄｅｌｔａ＿ｑｐは「−１」、切出長は「３」であることがわかる。
【００５２】
このため、復号部１６は、格納データ「０１０１１０００ｂ」から復号データとして、量子化パラメータの差分（ｄｅｌｔａ＿ｑｐ）＝「−１」を出力し、復号に用いた３ビット分のデータ「０１０ｂ」を格納データから切出す。図８は、格納部１４に格納されている、残存している格納データの一例を示す模式図である。図８に示すように、この場合、復号後に格納部１４に格納されている格納データは、「１１０００ｂ」の５ビットのデータとなる。
【００５３】
次に、復号部１６の判断部１６Ａが、格納部１４に残存する格納データを解析し、可変長復号可能か否かを判断する（図２中、ステップＳ１０６及びステップＳ１０８参照）。
【００５４】
詳細には、判断部１６Ａは、格納部１４に格納されている格納データを読込み、解析することで、復号が可能か否かを判断する。この解析及び判断方法の一つとして、実際に復号を行い、符号化データが得られるか否かを判断する方法が挙げられる。
【００５５】
この場合に、復号部１６が、格納部１４に格納されている格納データに対して、図６及び図７のルックアップテーブルを利用するときには工夫が必要となる。
【００５６】
図６及び図７に示すルックアップテーブルは、上述したように、入力データに含まれる、可変長符号化された符号化データの内の最大符号長に基づいて作成したものである。このため、格納部１４のメモリサイズを、上記式（１）を満たす値に最小化している本実施の形態では、格納データのデータ長は、第１符号長Ｍ未満の値となる。
【００５７】
このため、この場合、復号部１６は、図６及び図７に示すルックアップテーブルの下位ビットを削除したルップアップテーブルを作成する必要がある。
【００５８】
具体的には、格納部１４に、図８に示す格納データが格納されているとする。この格納データのデータ長は５ビット（「１１０００ｂ」）である。このため、復号部１６は、「６−５＝１」ビット分を、図７に示すルックアップテーブルの下位ビットから削除し、図９に示すルックアップテーブルを作成する。
【００５９】
図９は、下位ビットを削除したルックアップテーブルの一例を示す模式図である。
【００６０】
すなわち、格納データが「００００１ｂ」である場合、切出長は「６」である。この場合、符号化データのデータ長が１ビット分足りないことが判明する。このため、この場合、判断部１６Ａは、格納データに基づいた可変長復号が不可能であると判断する（図２中、ステップＳ１０８：Ｎｏ）。
【００６１】
なお、図８に示す例では、格納部１４に残存している格納データが「１ＸＸＸＸｂ」であるため、復号データとしてのｄｅｌｔａ＿ｑｐは「０」、切出長は「１」であることが判明する。このため、この場合、判断部１６Ａは、格納データに基づいた可変長復号が可能と判断する（図２中、ステップＳ１０８：Ｙｅｓ）。
【００６２】
なお、図２におけるステップＳ１０８の可変長復号が可能か否かの判断を、復号を行うことにより実行する場合には、ステップＳ１０８で肯定判断すると（ステップＳ１０８：Ｙｅｓ）、ステップＳ１０４の処理を省略し、ステップＳ１０６の処理を実行してもよい。これにより、復号処理効率の向上を更に図ることができる。
【００６３】
なお、上記では、復号部１６は、ステップＳ１０８の判断を、格納データについて復号を行うことにより実行する場合を説明した。しかし、復号部１６は、下記方法を用いることで、復号を行うことなく、格納データに基づいた可変長復号が可能か否かを判断してもよい。
【００６４】
例えば、復号部１６は、格納部１４に格納されている格納データの上位４ビットの論理和演算結果が「０」であるか「１」であるかを判別することで、格納データに基づいた可変長復号が可能か否かの判断を行ってもよい。
【００６５】
例えば、格納部１４に格納されている格納データが、図８に示す格納データ「１１０００ｂ」であったとする。
【００６６】
この場合、復号部１６は、格納データの上位４ビットについて論理和演算（ＯＲ演算と称される場合もある）した結果が「０」であれば、可変長復号は不可能と判断する。これは、格納データの上位４ビットの論理和演算結果が「０」となる格納データは、「００００ＸＸｂ」、すなわち、「００００１０ｂ」または「００００１１ｂ」であるためである。すなわち、この場合、復号には６ビット必要であるが、格納データのデータ長は５ビットであり、データが足りないためである。
【００６７】
一方、復号部１６は、格納データの上位４ビットの論理和演算結果が「０」ではない場合、すなわち「１」である場合には、可変長復号可能と判断する。
【００６８】
このように、復号部１６は、格納データの上位４ビットの論理和演算結果が「０」であるか否かを判別することで、格納データから可変長復号可能か否かを判断してもよい。この場合、復号を行いつつ可変長復号可能か否かを判断する方法に比べて、処理の簡略化及び処理時間の短縮を図ることができる。
【００６９】
次に、復号部１６が、復号対象の入力データに、未復号の未復号データが有るか否かを判断する判断処理（図２中、ステップＳ１１０参照）について説明する。
【００７０】
ステップＳ１１０において、復号部１６は、復号対象の入力データにおける未復号データのデータ長を読取る。なお、この入力データは、切出部１２によって切出データの切出された残りのデータである。このため、復号部１６は、復号対象の入力データの残りのデータ長を読取ることで、未復号データのデータ長を読取ればよい。
【００７１】
そして、復号部１６は、未復号データのデータ長が「０」では無いか否かを判別することで、未復号データが有るか否かを判断する。具体的には、復号部１６は、未復号データのデータ長が「０」である場合には、ステップＳ１１０で否定判断（ステップＳ１１０：Ｎｏ）する。そして、復号処理を終了する。一方、復号部１６は、未復号データのデータ長が「０」ではない場合には、ステップＳ１１０で肯定判断（ステップＳ１１０：Ｙｅｓ）し、切出部１２による切出し（ステップＳ１００）へ戻る。
【００７２】
以上説明したように、本実施の形態の復号装置１０では、可変長符号化された複数の符号化データを含む入力データを、最大符号長以上の予め定めた第１符号長Ｍ毎に切出し、切出した切出データに含まれる符号化データを可変長復号する。
【００７３】
ここで、従来では、入力データを先頭から読出し、先頭位置（０番目）に位置する符号化データを復号することで該符号化データの符号長（データ長）を解析し、該符号長に応じた可変長復号を該符号化データに対して行っていた。このように、従来では、入力データの先頭から順に検索して処理する、いわゆるシーケンシャルな処理を実行していた。
【００７４】
一方、本実施の形態の復号装置１０では、上述したように、可変長符号化された複数の符号化データを含む入力データを、最大符号長以上の予め定めた第１符号長Ｍ毎に切出し、切出した切出データに含まれる符号化データを可変長復号する。
【００７５】
図１０は、本実施の形態の復号装置１０による、復号対象の入力データに対する復号処理の処理タイミングの説明図である。
【００７６】
図１０に示すように、本実施の形態の復号装置１０では、切出部１２が、復号対象の入力データを先頭から順に読出し（図１０中、矢印Ｙ方向参照）、予め定めた第１符号長Ｍ毎にデータ切出しを行う（図１０中、データ切出し♯０、データ切出し♯１、データ切出し♯２参照）。このため、復号部１６では、切出部１２において全てのデータが切出されるのを待つ事なく、切出部１２で０番目（図１０中、♯０参照）のデータ切出しが行われることで切出された切出データについて、復号を開始する。すなわち、復号部１６では、切出部１２による切出しの実行中に、既に切出された切出データに対して復号を実行する。このため、本実施の形態の復号装置１０では、切出部１２によるデータ切出しと、復号部１６による復号と、の少なくとも一部を並列して実行することができる。
【００７７】
このように、本実施の形態の復号装置１０では、復号対象の入力データから高速にデータを切出して復号処理を実行することができる。
【００７８】
従って、本実施の形態の復号装置１０では、可変長符号化された符号化データを高速に復号することができる。
【００７９】
また、上述のように、本実施の形態の復号装置１０では、切出部１２が入力データから切出データを切出す単位である第１符号長Ｍの値を、入力データにおける複数の符号化データの最大符号長以上の値に定めている。このため、本実施の形態の復号装置１０では、復号部１６による復号に必要なデータ長以上のデータを格納部１４に格納することができるので、復号処理の短縮を図ることができる。
【００８０】
また、本実施の形態の復号装置１０では、切出部１２が切出した切出データを格納部１４に格納した後に、復号部１６で順次読み出して復号する。このため、復号によって符号化データの符号長が確定する前に、入力データから切出データを切出すことが出来る。よって、異なるタイミングで切出された切出データに含まれる複数の符号化データについて、並列復号したり、パイプライン処理による高速復号が可能となる。
【００８１】
また、本実施の形態では、復号部１６（判断部１６Ａ）が、格納部１４に格納されている格納データに基づいて、可変長復号可能か否かを判断する。そして、格納データを用いた復号が不可能であると判断された場合に、切出部１２が、入力データから第１符号長の切出データを切出して格納部１４に格納する。このため、格納部１４には、復号部１６において復号に用いる必要最小限のデータ長のデータのみを格納することができる。このように、本実施の形態では、復号に用いるデータが不足している場合にのみ、入力データから第１符号長の切出データを切出す。このため、格納部１４のメモリサイズの最小化を図ることができる。
【００８２】
なお、本実施の形態では、入力データに含まれる符号化データが、ｄｅｌｔａ＿ｑｐ（量子化パラメータの差分）の符号化データである場合を説明した。しかし、入力データに含まれる符号化データは、量子化パラメータの差分の符号化データに限られない。例えば、入力データは、量子化パラメータの差分（ｄｅｌｔａ＿ｑｐ）、動きベクトル（ｍｖ＿ｘ、ｍｖ＿ｙ）等、最大符号長の異なる複数種類の符号化パラメータを含んでいてもよい。入力データが、複数種類の符号化データを含む場合、復号装置１０では、符号化データの種類に応じた回数の復号処理を実行すればよい。
【００８３】
また、本実施の形態の復号装置１０では、格納データの解析及び格納データについて可変長復号可能か否かの判断を行う場合を説明した。しかし、復号装置１０では、図２に示す復号処理における、格納データの解析、及び可変長復号可能か否かの判断（図２中、ステップＳ１０６、及びステップＳ１０８参照）を省略してもよい。
【００８４】
この場合、復号装置１０は、図１１に示す復号処理を実行すればよい。図１１は、復号処理の他の手順を示すフローチャートである。
【００８５】
まず、切出部１２が入力データを第１符号長Ｍ毎に切出し（ステップＳ２００）、格納部１４へ格納する（ステップＳ２０２）。次に、復号部１６が、格納部１４に格納されている格納データを復号する（ステップＳ２０４）。次に、復号部１６が、未復号データが有るか否かを判断する（ステップＳ２０６）。そして、ステップＳ２０６で肯定判断すると（ステップＳ２０６：Ｙｅｓ）、上記ステップＳ２００へ戻る。一方、ステップＳ２０６で否定判断すると（ステップＳ２０６：Ｎｏ）、ステップＳ２０８へ進む。ステップＳ２０８では、復号部１６が、格納部１４に格納されている全ての格納データを復号する（ステップＳ２０８）。そして、本ルーチンを終了する。
【００８６】
なお、ステップＳ２００、ステップＳ２０２、ステップＳ２０４、ステップＳ２０６の処理は、図２におけるステップＳ１００、ステップＳ１０２、ステップＳ１０４、ステップＳ１１０の各々と同様である。
【００８７】
このように、復号装置１０が、図２に示す復号処理に替えて図１１に示す復号処理を実行することで、格納データの解析を行う必要が無くなり、復号処理の更なる簡略化を図ることができる。ただし、図１１に示す復号処理を実行する場合には、格納部１４に残存する格納データが、図２に示す復号処理を実行する場合に比べて大きくなる場合がある。
【００８８】
具体的には、図１１に示す復号処理を実行する場合には、格納部１４に格納される格納データのデータ量は、上述した「Ｍ×２−Ｌ」よりはるかに大きいデータ量となる。このため、図１１に示す復号処理を実行する場合には、入力データのデータサイズが大きいほど、メモリサイズのより大きい格納部１４を用意する必要がある。
【００８９】
このため、復号装置１０が、図１１に示す復号処理を実行する場合には、図２に示す復号処理を実行する場合に比べてメモリサイズの大きいメモリを格納部１４として搭載可能な装置に、復号装置１０を適用することが好ましい。
【００９０】
なお、図２に示す復号処理に替えて図１１に示す復号処理を実行する場合、ステップＳ２００〜ステップＳ２０６の処理を実行し、ステップＳ２０６で否定判断（ステップＳ２０６：Ｎｏ）した場合には、ステップＳ２０８において、格納部１４に格納されている全ての格納データを復号することが必要となる。このステップＳ２０８の復号は、ステップＳ２０４の復号処理と同様の処理であるため、復号処理全体の処理量が図２に示す復号処理に比べて増加することはない。
【００９１】
（実施の形態２）
本実施の形態では、実施の形態１における、入力データから切出した切出データを格納した格納データに基づく復号処理に加えて、入力データに含まれる符号化データに対する復号処理を行う形態を説明する。
【００９２】
図１２は、本実施の形態の復号装置１０Ａの機能的構成を示すブロック図である。復号装置１０Ａは、可変長符号化された複数の符号化データを含む入力データを受け付ける。
【００９３】
本実施の形態の復号装置１０Ａでは、入力データが、最大符号長の異なる複数種類の符号化データを含む場合を説明する。
【００９４】
復号装置１０Ａは、切出部１２、格納部１４、第１復号部１７Ａ、及び第２復号部１７Ｂを備える。第１復号部１７Ａは、判断部１７０Ａを含む。切出部１２、及び格納部１４は、実施の形態１と同様である。また、第１復号部１７Ａ、及び判断部１７０Ａは、実施の形態１の復号部１６及び判断部１６Ａの各々と同様である。
【００９５】
第２復号部１７Ｂは、入力データに含まれる複数種類の符号化データの内、最大符号長が予め定めた値以上の種類の符号化データを順次切出し、復号する（以下、第２復号と称する場合がある）。一方、第１復号部１７Ａは、入力データに含まれる複数種類の符号化データの内、該第２復号部１７Ｂで切出す種類以外の種類の符号化データを順次切出し、復号する（以下、第１復号と称する場合がある）。
【００９６】
この予め定めた値は、復号装置１０Ａで扱う入力データに含まれる符号化データの符号化方法に応じて予め設定すればよい。
【００９７】
なお、本実施の形態の復号装置１０Ａでは、入力データが、最大符号長の異なる２種類の符号化データを含む場合を説明する。このため、第１復号部１７Ａは、２種類の符号化データの内、最大符号長の小さい種類（以下、第１種類と称する場合がある）の符号化データを切出し、復号する。一方、第２復号部１７Ｂは、２種類の符号化データの内、最大符号長の大きい種類（以下、第２種類と称する場合がある）の符号化データを切出し、復号する。
【００９８】
最大符号長の小さい第１種類の符号化データは、例えば、量子化パラメータの差分の符号化データである。最大符号長の大きい第２種類の符号化データは、例えば、ＭＰＥＧで用いられる直交変換係数の符号化データである。
【００９９】
また、本実施の形態において用いる入力データでは、最大符号長の小さい第１種類の符号化データが複数と、最大符号長の大きい第２種類の符号化データと、がこの順に該入力データの先頭から配列されている場合を想定して説明する。
【０１００】
図１３は、復号装置１０Ａが実行する復号処理の手順を示すフローチャートである。
【０１０１】
まず、切出部１２が、受け付けた入力データにおける、最大符号長の小さい第１種類の符号化データの群を、第１符号長毎に切出す（ステップＳ３００）。そして、切出部１２は、切出した切出データを、格納部１４へ格納する（ステップＳ３０２）。これらのステップＳ３００及びステップＳ３０２の処理は、実施の形態１のステップＳ１００及びステップＳ１０２の処理と同様である。また、第１符号長の定義も、実施の形態１の第１符号長（第１符号長Ｍ）と同様である。
【０１０２】
次に、第２復号部１７Ｂが、入力データから最大符号長の大きい第２種類の符号化データを直接読取り、該符号化データを復号する第２復号を行う（ステップＳ３０４）。
【０１０３】
次に、第１復号部１７Ａが、実施の形態１の復号部１６によるステップＳ１０４〜ステップＳ１１０と同様にして、格納部１４に格納された格納データにおける第１種類の符号化データについて、ステップＳ３０６〜ステップＳ３１２の処理を実行する。
【０１０４】
なお、本実施の形態では、実施の形態１におけるステップＳ１０８の判断に相当するステップＳ３１０で肯定判断すると（ステップＳ３１０：Ｙｅｓ）、ステップＳ３０４へ戻る。一方、ステップＳ３１０で否定判断すると（ステップＳ３１０：Ｎｏ）、ステップＳ３１２へ進む。そして、ステップＳ３１２で肯定判断すると（ステップＳ３１２：Ｙｅｓ）、上記ステップＳ３００へ戻る。一方、ステップＳ３１２で否定判断すると（ステップＳ３１２：Ｎｏ）、本ルーチンを終了する。
【０１０５】
以上説明したように、本実施の形態では、最大符号長が小さい第１種類の符号化データについては、切出部１２で第１符号長Ｍ毎に切出して格納部１４に格納した後に第１復号部１７Ａで順次復号（第１復号）する。一方、最大符号長が大きい第２種類の符号化データについては、格納部１４に格納することなく、第２復号部１７Ｂが入力データから直接切出して復号（第２復号）する。
【０１０６】
従って、本実施の形態の復号装置１０Ａでは、実施の形態１の効果に加えて更に、復号処理速度の向上を図ることができる。
【０１０７】
また、例えば、復号対象の入力データに含まれる符号化データが、ＭＰＥＧで用いられる直交変換係数の符号化データのような最大符号長の大きい第２種類の符号化データである場合、格納部１４には、実施の形態１に比べてメモリサイズの大きい格納部１４を用意する必要がある。
【０１０８】
一方、本実施の形態の復号装置１０Ａでは、最大符号長が大きい第２種類の符号化データについては、格納部１４に格納することなく、第２復号部１７Ｂが入力データから直接切出して復号（第２復号）する。このため、実施の形態１の効果に加えて更に、格納部１４のメモリサイズを小さくすることができる。
【０１０９】
なお、図１３では、復号装置１０Ａが、第２復号部１７Ｂによる第２復号の実行後に、第１復号部１７Ａによる第１復号を実行する場合を説明した。しかし、第１復号部１７Ａによる第１復号の実行後に第２復号部１７Ｂによる第２復号を実行してもよい。
【０１１０】
この場合、復号装置１０Ａは、図１４に示す復号処理を実行すればよい。
【０１１１】
図１４は、復号装置１０Ａが実行する復号処理の他の手順を示すフローチャートである。
【０１１２】
まず、図１３と同様に、切出部１２が、受け付けた入力データにおける、最大符号長の小さい第１種類の符号化データの群を、第１符号長毎に切出す（ステップＳ３００）。そして、切出部１２は、切出した切出データを、格納部１４へ格納する（ステップＳ３０２）。
【０１１３】
次に、第１復号部１７Ａが、上記ステップＳ３０６と同様にして第１復号を行う（ステップＳ３０４０）。次に、第２復号部１７Ｂが、上記ステップＳ３０４と同様にして、入力データから最大符号長の大きい第２種類の符号化データを直接読取り、該符号化データを復号する第２復号を行う（ステップＳ３０６０）。
【０１１４】
次に、上記ステップＳ３０８〜ステップＳ３１２と同様の処理を行い、本ルーチンを終了する。
【０１１５】
このように、第１復号部１７Ａによる第１復号と、第２復号部１７Ｂによる第２復号との順を逆にしてもよい。
【０１１６】
なお、本実施の形態では、第１復号部１７Ａ及び第２復号部１７Ｂの何れか一方による復号を実行した後に、他方による復号を実行する形態を説明した。しかし、第１復号部１７Ａによる第１復号と、第２復号部１７Ｂによる第２復号と、を並列に実行してもよい。
【０１１７】
この場合には、復号装置１０Ａは、図１５及び図１６に示す処理を実行すればよい。
【０１１８】
図１５及び図１６は、本実施の形態の復号装置１０Ａで実行する復号処理の他の手順を示すフローチャートである。
【０１１９】
まず、切出部１２が、受け付けた入力データにおける、最大符号長の小さい第１種類の符号化データの群を、第１符号長毎に切出す（ステップＳ４００）。そして、切出部１２は、切出した切出データを、格納部１４へ格納する（ステップＳ４０２）。次に、第２復号部１７Ｂが、入力データから最大符号長の大きい第２種類の符号化データを直接読取り、該符号化データを復号する第２復号を行う（ステップＳ４０４）。
【０１２０】
これらのステップＳ４００〜ステップＳ４０４の処理は、上記ステップＳ３００〜ステップＳ３０４の処理と同様である。
【０１２１】
次に、第１復号部１７Ａが、実施の形態１の復号部１６によるステップＳ１０６〜ステップＳ１１０と同様にして、格納データの解析、可変長復号可能か否かの判断、及び未復号データ有りか否かの判断を実行する（ステップＳ４０６〜ステップＳ４１０）。そして、ステップＳ４１０で肯定判断すると（ステップＳ４１０：Ｙｅｓ）、上記ステップＳ４００へ戻る。一方、ステップＳ４１０で否定判断すると（ステップＳ４１０：Ｎｏ）、本ルーチンを終了する。
【０１２２】
そして、復号装置１０Ａでは、図１５の復号処理を実行中に、第１復号部１７Ａが図１６に示す並列処理を並列して実行する。
【０１２３】
図１６は、第１復号部１７Ａが実行する並列処理の手順を示すフローチャートである。
【０１２４】
まず、第１復号部１７Ａは、格納部１４に格納データが格納済か否かを判断する（ステップＳ５００）。ステップＳ５００で否定判断すると（ステップＳ５００：Ｎｏ）、本ルーチンを終了する。一方、ステップＳ５００で肯定判断すると（ステップＳ５００：Ｙｅｓ）、ステップＳ５０２へ進む。ステップＳ５０２では、第１復号部１７Ａは、ステップＳ４０８と同様にして、可変長復号可能か否かを判断する（ステップＳ５０２）。
【０１２５】
ステップＳ５０２で否定判断すると（ステップＳ５０２：Ｎｏ）、上記ステップＳ５００へ戻る。一方、ステップＳ５０２で肯定判断すると（ステップＳ５０２：Ｙｅｓ）、ステップＳ５０４へ進む。
【０１２６】
ステップＳ５０４では、第１復号部１７Ａは、ステップＳ３０６と同様にして第１復号を実行する（ステップＳ５０４）。そして、本ルーチンを終了する。
【０１２７】
復号装置１０Ａが、図１５に示す復号処理中に、図１６に示す並列処理を実行することで、復号装置１０Ａでは、第１復号部１７Ａによる第１復号と、第２復号部１７Ｂによる第２復号と、を並列に実行することができる。
【０１２８】
このため、実施の形態１の効果に加えて更に、処理時間の短縮を図ることができる。
【０１２９】
以上説明したように、本実施の形態の復号装置１０Ａによれば、入力データが、最大符号長の異なる複数種類の符号化データを含む場合であっても、入力データに対して高速で復号処理を実行することができる。
【０１３０】
ここで、入力データが、最大符号長の大きく異なる複数種類の符号化データを含む場合であって、特に、符号化データの最大符号長の小さい（例えば、♯ａ）第１種類の符号化データと、符号化データの最大符号長の大きい（例えば、♯ｂ）第２種類の符号化データと、が混在する形態であったとする。このような場合、復号処理時間が大きくなる場合がある。
【０１３１】
一方、本実施の形態では、最大符号長の異なる複数種類の符号化データが混在している場合であっても、復号処理のための待ち時間の発生を抑制することができる。
【０１３２】
図１７は、本実施の形態の復号装置１０Ａによる、復号対象の入力データに対する復号処理の処理タイミングの説明図である。
【０１３３】
図１７に示すように、本実施の形態の復号装置１０Ａでは、切出部１２が、受け付けた入力データを先頭から順に読出し（図１７中、矢印Ｙ方向参照）、最大符号長の小さい第１種類の符号化データの群を、第１符号長Ｍ毎に切出す（図１７中、データ切出し♯ａ０）。切出した切出データは、格納部１４へ格納される。
【０１３４】
そして、この切出した切出データに対して、第１復号部１７Ａが第１復号を実行しているときに（復号処理♯ａ０参照）、第２復号部１７Ｂが並列して入力データから直接読み出した、最大符号長の大きい第２種類の符号化データを第２復号する（復号処理♯ｂ０参照）。
【０１３５】
このため、本実施の形態の復号装置１０Ａによれば、同じ入力データに対して、複数の復号処理を並列して実行することが可能となる。
【０１３６】
従って、実施の形態１による効果に加えて、更に、高速で復号処理を実行することができる。
【０１３７】
（実施の形態３）
本実施の形態では、実施の形態１及び実施の形態２で復号する対象の入力データを作成する符号化装置を説明する。
【０１３８】
図１８は、本実施の形態の符号化装置５０の機能的構成を示すブロック図である。
【０１３９】
本実施の形態の符号化装置５０は、復号対象の情報を、可変長符号化方式を用いて符号化することで、符号化データを作成する。符号化装置５０は、作成した符号化データを含む出力データを出力する。上述した復号装置１０及び復号装置１０Ａでは、符号化装置５０で作成された符号化データを含む該出力データを、復号対象の入力データとして受け付ける。
【０１４０】
符号化装置５０は、画像符号化ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェアで実装された装置に組み込まれる。符号化装置５０による符号化によって得られた符号化データを用いることで、例えば、ディスプレイへの表示応答性を高めることができる。
【０１４１】
符号化装置５０は、第１符号化部５２と、第２符号化部５４と、結合部５６と、を備える。第１符号化部５２及び第２符号化部５４は、各々、異なる可変長符号化方式により符号化対象情報を符号化する（詳細後述）。結合部５６は、第１符号化部５２で生成された符号化データを結合し、予め定めたデータ長でパケット化して順次出力する（詳細後述）。
【０１４２】
図１９は、符号化装置５０が出力する出力データのデータ構造の一例を示す模式図である。
【０１４３】
図１９（Ａ）に示すように、出力データは、第１符号化部５２及び第２符号化部５４で符号化された符号化データを含む。符号化装置５０は、これらの符号化データを、予め定めたデータ長（詳細後述、例えば、Ｍバイト毎）にパケット化し（図１９（Ｂ）参照）、順次出力する（図１９中、パケット♯０〜パケット♯１等参照）。なお、パケットは、結合データに相当する。
【０１４４】
図２０は、符号化装置５０が実行する符号化処理の手順を示すフローチャートである。
【０１４５】
なお、符号化装置５０が符号化する対象の符号化対象データには、符号化による最大符号長の異なる複数種類の符号化対象情報が含まれているものとする。なお、本実施の形態では、２種類の符号化対象情報が含まれている場合を想定して説明する。また、本実施の形態では、これらの２種類の符号化対象情報を、第１データ、第２データと称して説明する。
【０１４６】
また、第１データは、可変長符号化を行ったときの最大符号長が比較的小さいデータである。第１データは、例えば、ＭＰＥＧにおける量子化パラメータの差分（ｄｅｌｔａ＿ｑｐ）である。このように、第１データは、値のダイナミックレンジが比較的小さい（例えば、Ｈ．２６４では−５１〜＋５１）データである。
【０１４７】
第２データは、可変長符号化を行ったときの最大符号長が比較的大きいデータである。第２データは、該第２データの取り得る値の範囲が大きい、あるいは複数の情報を含む、といった特徴を有する。第２データは、例えば、ＭＰＥＧにおける直交変換係数である。このように、第２データは、値のダイナミックレンジが比較的大きいデータである（例えば、Ｈ．２６４では、−３２７６８〜３２７６７）。また、第２データを符号化するときに、１６×１６画素ブロック単位で符号化処理を行う場合には、直交変換係数を２５６個符号化することとなる。
【０１４８】
なお、この第１データを符号化した符号化データが、上述した、最大符号長の小さい第１種類の符号化データに相当する。また、この第２データを符号化した符号化データが、上述した、最大符号長の大きい第２種類の符号化データに相当する。
【０１４９】
まず、第１符号化部５２が、符号化対象データに含まれる第１データを可変長符号化する（ステップＳ６００）。第１符号化部５２は、符号化データを結合部５６へ出力する。
【０１５０】
結合部５６は、第１符号化部５２で符号化された符号化データを結合する（ステップＳ６０２）。
【０１５１】
次に、結合部５６が、１パケット分の符号化データを結合したか否かを判断する（ステップＳ６０４）。結合部５６は、予め定めたデータ長（詳細後述）の符号化データを結合したか否かを判別することで、ステップＳ６０４の判断を行う。
【０１５２】
ステップＳ６０４で否定判断すると（ステップＳ６０４：Ｎｏ）、上記ステップＳ６００へ戻る。一方、ステップＳ６０４で肯定判断すると（ステップＳ６０４：Ｙｅｓ）、ステップＳ６０６へ進む。
【０１５３】
ステップＳ６０６では、第２符号化部５４が、第２データを可変長符号化する（ステップＳ６０６）。
【０１５４】
次に、第１符号化部５２が、符号化対象データに未符号化の未符号化データが残っているか否かを判断する（ステップＳ６０８）。ステップＳ６０８で肯定判断すると（ステップＳ６０８：Ｙｅｓ）、上記ステップＳ６００へ戻る。一方、ステップＳ６０８で否定判断すると（ステップＳ６０８：Ｎｏ）、本ルーチンを終了する。
【０１５５】
次に、符号化装置５０が実行する符号化処理について詳細に説明する。
【０１５６】
まず、第１符号化部５２が、符号化対象データに含まれる第１データを可変長符号化する処理について説明する。なお、この処理は、上記ステップＳ６００に相当する。
【０１５７】
第１符号化部５２は、可変長符号化方式を用いて、符号化処理を実行する。可変長符号化方式は、どのような方式の者であっても構わない。例えば、第１データが、量子化パラメータの差分（ｄｅｌｔａ＿ｑｐ）である場合、図３に示すゴロム符号を用いた符号化方式を用いてもよい。
【０１５８】
図２１は、第１符号化部５２による可変長符号化と、結合部５６による結合（パケット化）の説明図である。
【０１５９】
具体的には、第１符号化部５２が、図３に示す量子化パラメータの差分（ｄｅｌｔａ＿ｑｐ）を、「−１」、「０」、「＋３」、「＋１」の順番に可変長符号化したとする。すると、各量子化パラメータの差分に対応する符号化データは、図２１に示すように、各々、「０１０ｂ」、「１ｂ」、「０００１１ｂ」、「０１１ｂ」となる。
【０１６０】
第１符号化部５２は、符号化によって得られたこれらの符号化データを、順次結合部５６へ出力する。結合部５６は、第１符号化部５２から受け付けた符号化データを結合し、予め定めたデータ長のパケットを生成する（図２０のステップＳ６０２〜ステップＳ６０４の処理に相当）。
【０１６１】
このパケット生成時に用いる予め定めたデータ長には、第１データ及び第２データの各々を可変長符号化した際の最大符号長以上の値を定める。これは、１つのパケットを復号したときに、少なくとも１つの第１データが得られるようにするためである。すなわち、このデータ長には、実施の形態１及び実施の形態２で用いた、第１符号長Ｍと同じ値を定めることとなる。
【０１６２】
図３に示すように、本実施の形態では、第１データとしての量子化パラメータの差分であるｄｅｌｔａ＿ｑｐの最大符号長は６である。このため、本実施の形態では、結合部５６は、６ビットのデータ長のパケットを生成する。
【０１６３】
上記ステップＳ６０４の、１パケット分の符号化データを結合したか否かを判断するステップにおいて、結合部５６が肯定判断すると（ステップＳ６０４：Ｙｅｓ）、結合部５６は、結合したパケット（結合データ）を出力する。
【０１６４】
一方、結合部５６は、１パケット分の符号化データを結合していない場合には、ステップＳ６０４で否定判断し（ステップＳ６０４：Ｎｏ）、上記ステップＳ６００へ戻る。
【０１６５】
例えば、第１符号化部５２が、符号化対象の符号化データに含まれる複数の第１データの内、量子化パラメータの差分「ｄｅｌｔａ＿ｑｐ」＝「−１」を符号化した段階では、結合データのデータ量は３ビットである。このため、この場合、ステップＳ６０４で否定判断する。そして、第１符号化部５２による、量子化パラメータの差分「ｄｅｌｔａ＿ｑｐ」＝「０」の符号化によって、１ビットの符号化データが作成されると、結合データは４ビットとなる。この段階においても、６ビットに満たないことから、ステップＳ６０４で否定判断する。
【０１６６】
そして、第１符号化部５２による、量子化パラメータの差分「ｄｅｌｔａ＿ｑｐ」＝「＋３」の符号化によって、５ビットの符号化データが作成されると、結合データは、９ビットとなる。この段階となると、結合部５６は、ステップＳ６０４の判断において肯定判断する（ステップＳ６０４：Ｙｅｓ）。
【０１６７】
図２２は、符号化装置５０が出力する出力データの一例を示す模式図である。
【０１６８】
結合部５６から１パケット分（本実施の形態では６ビット）の符号化データが出力されることで、先頭のパケット（図２２中、パケット♯０参照）には、量子化パラメータの差分「ｄｅｌｔａ＿ｑｐ」＝「−１」の符号化データ（図２２中、符号化データＡ♯０）と、量子化パラメータの差分「ｄｅｌｔａ＿ｑｐ」＝「０」の符号化データ（図２２中、符号化データＡ♯１）と、量子化パラメータの差分「ｄｅｌｔａ＿ｑｐ」＝「＋３」の符号化データの一部（図２２中、符号化データＡ♯２ａ参照）と、を含む１パケット分の符号化データが出力される。
【０１６９】
以降、結合部５６は、順次パケットを生成して出力する（図２２中、パケット♯１参照）。
【０１７０】
図２０に戻り、次に、第２符号化部５４が第２データを可変長符号化する（図２０中、ステップＳ６０６参照）。
【０１７１】
第２符号化部５４は、可変長符号化方式を用いて、第２データを可変長符号化する。第１符号化部５２が可変長符号化する方式はどのようなものであっても構わない。
【０１７２】
例えば、第２データが直交変換係数であったとする。この場合、第２符号化部５４は、例えば、ＭＰＥＧ−２で用いるハフマン符号を用いた可変長符号化を行う。
【０１７３】
第２符号化部５４は、第２データを可変長符号化した符号化データのパケット（結合データ）を、出力するが、符号化装置５０では、第１符号化部５２から出力されるパケット単位の符号化データと、第２符号化部５４から出力される符号化データと、を交互に出力する。このため、符号化装置５０が出力する出力データは、図２２に示すデータ構造となる。
【０１７４】
すなわち、図２２に示すように、符号化装置５０が出力する出力データは、第１データを可変長符号化した符号化データを１パケット分まとめたものと、第２データを可変長符号化した符号化データと、を交互に並べた構造となる。
【０１７５】
図２０に戻り、図２０におけるステップＳ６０８の処理において肯定判断すると（ステップＳ６０８：Ｙｅｓ）、上記ステップＳ６００へ戻る。一方、ステップＳ６０８で否定判断すると（ステップＳ６０８：Ｎｏ）、本ルーチンを終了する。
【０１７６】
以上説明したように、本実施の形態の符号化装置５０は、可変長符号化した際の最大符号長の小さい第１データについては、可変長符号化した符号化データを固定長毎にパケット化する。
【０１７７】
従って、本実施の形態の符号化装置５０では、復号処理時に高速に符号化データを切出して復号処理可能な出力データを生成することができる。
【０１７８】
なお、本実施の形態では、上述のように、可変長符号化した際の最大符号長の小さい第１データに関しては、上記データ長Ｍ分の符号化を行うパケット化を行う。このため、可変長符号化した際の最大符号長の大きい第２データの符号化を実行する前に、繰り返し第１データの符号化が行われる。
【０１７９】
このため、符号化装置５０で符号化する対象の符号化対象データに含まれる、第１データの数と、第２データの数と、が同じ数であれば、第１データの符号化が先に終了し、第２データが未符号化のままで残る場合もある。このため、図２０に示す符号化処理において、第１データの符号化処理が終了したときには、該第１データの符号化処理（すなわち、第１符号化部５２及び結合部５６によるステップＳ６００〜ステップＳ６０４の処理）を省略することが好ましい。
【０１８０】
また、ステップＳ６０８における未符号化データが有るか否かの判断において、未符号化データ中に、第１データ及び第２データの各々が残っているか否かを更に判断してもよい。そして、未符号化データ中に、第１データ及び第２データの双方が残っていると判断した場合には、第２符号化部５４によるステップＳ６０６の処理に進むようにすればよい。なお、未符号化データ中に、第１データのみが残っている場合には、ステップＳ６００へ戻るようにすればよい。
【０１８１】
また、第２符号化部５４が、第２データを可変長符号化した符号化データを出力するタイミングを、第１データが可変長符号化された分だけ行うようにしてもよい。
【０１８２】
図２３は、符号化装置５０が出力する出力データの他の一例を示す模式図である。
【０１８３】
すなわち、最初のパケット（図２３中、パケット♯０）には、第１データの０番目の符号化データ（図２３中、符号化データＡ♯０）と、第１データの１番目の符号化データ（図２３中、符号化データＡ♯１）と、が含まれている。このため、第２符号化部５４は、第２データの符号化を１番目まで行う。
【０１８４】
図２２に示すデータ構造の出力データを入力データとして受け付けて復号する復号装置（１０、１０Ａ）側では、１番目の第１データの符号化データ（図２２中、符号化データＡ♯１）と、１番目の第２データの符号化データ（図２２中、符号化データＢ♯１）と、の復号化時に、第１データについては、３番目のデータまで保持しておく必要がある。このため、より大きいメモリサイズの格納部１４を用意する必要がある。
【０１８５】
一方、出力データを、図２３に示すデータ構造とすれば、該出力データを入力データとして受け付けて復号する復号装置（１０、１０Ａ）側では、該復号化時に、第１データについては、２番目のデータの途中までのデータ（図２３中、符号化データＡ♯２ａ参照）を保持しておけばよい。このため、出力データを図２２に示すデータ構造とする場合に比べて、出力データを図２３に示すデータ構造とすることで、復号装置（１０、１０Ａ）側のメモリ（格納部１４）のメモリサイズを抑えることができる。
【０１８６】
なお、上記実施の形態における復号装置１０、復号装置１０Ａ、及び符号化装置５０で実行される復号処理及び符号化処理の各々を実行するためのプログラムは、ＲＯＭ等に予め組み込まれて提供される。
【０１８７】
上記実施の形態における復号装置１０、復号装置１０Ａ、及び符号化装置５０で実行される復号処理及び符号化処理の各々を実行するためのプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読取り可能な記録媒体に記録して提供するように構成してもよい。
【０１８８】
さらに、上記実施の形態における復号装置１０、復号装置１０Ａ、及び符号化装置５０で実行される復号処理及び符号化処理の各々を実行するためのプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上記実施の形態における復号装置１０、復号装置１０Ａ、及び符号化装置５０で実行される復号処理及び符号化処理の各々を実行するためのプログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１８９】
上記実施の形態における復号装置１０、復号装置１０Ａ、及び符号化装置５０で実行される復号処理及び符号化処理の各々を実行するためのプログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記ＲＯＭからプログラムを読み出して実行することにより該各部が主記憶装置上にロードされ、該各部が主記憶装置上に生成されるようになっている。なお、上記実施の形態における復号装置１０、復号装置１０Ａ、及び符号化装置５０の各部を回路等のハードウェアで構成してもよい。
【０１９０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１９１】
１０、１０Ａ  復号装置
１２  切出部
１４  格納部
１６  復号部
１６Ａ  判断部
１７Ａ  第１復号部
１７Ｂ  第２復号部
【図１】
2014116835.tif 000003
【図２】
2014116835.tif 000004
【図３】
2014116835.tif 000005
【図４】
2014116835.tif 000006
【図５】
2014116835.tif 000007
【図６】
2014116835.tif 000008
【図７】
2014116835.tif 000009
【図８】
2014116835.tif 000010
【図９】
2014116835.tif 000011
【図１０】
2014116835.tif 000012
【図１１】
2014116835.tif 000013
【図１２】
2014116835.tif 000014
【図１３】
2014116835.tif 000015
【図１４】
2014116835.tif 000016
【図１５】
2014116835.tif 000017
【図１６】
2014116835.tif 000018
【図１７】
2014116835.tif 000019
【図１８】
2014116835.tif 000020
【図１９】
2014116835.tif 000021
【図２０】
2014116835.tif 000022
【図２１】
2014116835.tif 000023
【図２２】
2014116835.tif 000024
【図２３】
2014116835.tif 000025