| 【発明の名称】 |
データ復号化装置およびその方法 |
| 【発明者】 |
【氏名】堀込 ひとみ 【住所又は居所】神奈川県横浜市保土ヶ谷区神戸町134番地 ソニー・エルエスアイ・デザイン株式会社内
|
| 【要約】 |
【課題】JPEG符号化されたデータストリームを、簡易な構成で高速に復号化できるデータ復号化装置およびその方法を提供する。
【解決手段】第1の復号部20は、データストリームDinの先頭に含まれる全てのハフマン符号を復号化でき、第2の復号部41〜44は5ビット長までのハフマン符号が復号化できる復号テーブルをそれぞれ有している。1つ目の符号化データのデータ長L1によって、復号化するデータ位置が1ビットづつずれた複数の第2の復号部の中から1つが選択され、その復号化データRS2に応じて、2つ目の符号化データ長L2が算出される。データ長L2とデータ長L1との和に応じて、データ抽出位置がシフトされる。1つ目の符号化データ長が3〜6ビット以外の場合や、2つ目のハフマン符号が5ビット以上の場合には、2つ目の復号化データRS2が無効であることを示す信号Sivが生成される。 |
【特許請求の範囲】
【請求項1】 供給される符号化データストリームを復号化するデータ復号化装置であって、上記符号化データストリームの先頭から所定データ長のデータ列を抽出するデータ抽出手段と、上記データ抽出手段において抽出されたデータ列の先頭から、所定の可変長符号テーブルに含まれる可変長符号を検索し、当該検索した可変長符号に対応する復号化データを出力する第1の復号手段と、上記第1の復号手段の復号化データと、当該復号化データに対応する上記可変長符号のデータ長とに基づいて、当該復号化データに対応する符号化データのデータ長を算出し、第1のデータ長として出力する第1のデータ長算出手段と、上記データ抽出手段において抽出されたデータ列の先頭に対して複数の異なるデータ数だけ末尾側にずれたデータ位置から、上記可変長符号テーブルの一部の可変長符号をそれぞれ検索し、当該検索した可変長符号に対応する復号化データを出力し、当該検索において該当する可変長符号が見つからない場合には検索エラー信号を出力する複数の第2の復号手段と、上記複数の第2の復号化手段の中から、上記第1のデータ長に応じて選択した第2復号手段の復号化データまたは上記検索エラー信号を出力し、該当する第2の復号手段が無い場合には選択エラー信号を出力する選択手段と、上記選択手段において選択された第2の復号手段の復号化データと、当該復号化データに対応する上記可変長符号のデータ長とに基づいて、当該復号化データに対応する符号化データのデータ長を算出し、第2のデータ長として出力する第2のデータ長算出手段と、上記選択手段において選択された第2の復号手段から上記検索エラー信号が出力される場合、または上記選択手段から上記選択エラー信号が出力される場合に、上記第2の復号手段の復号化データが無効であることを知らせる無効信号を生成する無効信号生成手段と、上記第1のデータ長と上記第2のデータ長との和に応じたデータ数だけ、上記データ抽出手段のデータ列抽出位置を上記符号化データストリームの末尾側にシフトさせ、上記無効信号が生成される場合には、上記第1のデータ長に応じたデータ数だけ上記抽出位置を上記末尾側へシフトさせるデータ抽出位置シフト手段とを有するデータ復号化装置。 【請求項2】 上記符号化データストリームは、上記可変長符号と付加データとで構成された符号化データを含み、上記第1の復号手段の復号化データに含まれた上記付加データのデータ長の情報に基づいて、上記データ抽出手段の抽出データ列から上記付加データを更に抽出する第1の付加データ抽出手段と、上記選択手段から出力される復号化データに含まれた上記付加データのデータ長の情報に基づいて、上記データ抽出手段の抽出データ列から上記付加データを更に抽出する第2の付加データ抽出手段とを有する、請求項1に記載のデータ復号化装置。 【請求項3】 上記符号化データストリームは、所定値のデータが連続する数と、当該所定値のデータに続く他の値のデータとに応じて、所望のデータストリームを所定データ数の単位ブロックごとに符号化して生成されたデータストリームを含み、上記第1の復号手段の復号化データと上記選択手段に選択された第2の復号手段の復号化データとに含まれる上記連続数の情報に応じて、上記単位ブロック内で復号化されたデータの数を計数し、上記無効信号が生成される場合に、上記選択された第2の復号手段の復号化データに含まれる上記連続数の情報を無効にして上記計数を行ない、当該計数値が上記所定データ数に達した場合には、当該計数値を初期化する計数手段を有する、請求項1に記載のデータ復号化装置。 【請求項4】 上記計数手段は、計数値が上記所定データ数より大きくなる場合に計数エラー信号を出力し、上記無効信号生成手段は、上記第1の復号手段の復号化データに上記単位ブロックの末尾を示す所定の情報が含まれる場合、または上記計数手段において計数エラー信号が出力される場合に上記無効信号を生成する、請求項3に記載のデータ復号化装置。 【請求項5】 上記複数の第2の復号化手段の少なくとも一部から、上記第1のデータ長ないし第nのデータ長(符号nは、所定の自然数Nに対して1≦n≦Nを満たす任意の自然数を示す)の総和に応じて選択した第2の復号手段の復号化データおよび上記検索エラー信号を出力し、該当する第2の復号手段が無い場合には第nの選択エラー信号を出力する複数の選択手段と、上記選択手段において上記第1のデータ長ないし第nのデータ長の総和に応じて選択された第2の復号部の復号化データと、当該復号化データに対応する上記可変長符号のデータ長とに基づいて、当該復号化データに対応する符号化データのデータ長を算出し、第(n+1)のデータ長として出力する複数の第2のデータ長算出手段と、上記選択手段において上記第1のデータ長ないし第nのデータ長の総和に応じて選択された第2の復号手段から上記検索エラー信号が出力される場合、または上記選択手段から上記第nの選択エラー信号が出力される場合に、上記第1のデータ長ないし第mのデータ長(符号mは、所定の自然数Nに対してn≦m≦Nを満たす任意の自然数を示す)の総和に応じて選択された第2の復号手段の復号化データが全て無効であることを知らせる第nの無効信号を生成する複数の無効信号生成手段とを有し、上記データ抽出位置シフト手段は、上記第1のデータ長ないし第Nのデータ長の総和に応じたデータ数だけ、上記データ抽出手段のデータ列抽出位置を上記符号化データストリームの末尾側にシフトさせ、上記第nの無効信号が生成される場合には、上記第1のデータ長ないし第nのデータ長の総和に応じたデータ数だけ上記抽出位置を上記末尾側へシフトさせる、請求項1に記載のデータ復号化装置。 【請求項6】 上記符号化データストリームは、上記可変長符号と付加データとで構成された符号化データを含み、上記第1の復号手段の復号化データに含まれた上記付加データのデータ長の情報に基づいて、上記データ抽出手段の抽出データ列から上記付加データを更に抽出する第1の付加データ抽出手段と、上記複数の選択手段において選択された第2の復号手段の復号化データに含まれる上記付加データのデータ長の情報に基づいて、上記データ抽出手段の抽出データ列から上記付加データを更に抽出する複数の第2の付加データ抽出手段とを有する、請求項5に記載のデータ復号化装置。 【請求項7】 上記符号化データストリームは、所定値のデータが連続する数と、当該所定値のデータに続く他の値のデータとに応じて、所望のデータストリームを所定データ数の単位ブロックごとに符号化して生成されたデータストリームを含み、上記第1の復号手段の復号化データと上記複数の選択手段において選択された第2の復号手段の復号化データとに含まれる上記連続数の情報に応じて、上記単位ブロック内で復号化されたデータの数を計数し、上記第nの無効信号が生成される場合は、上記第1のデータ長ないし第mのデータ長の総和に応じて選択された第2の復号手段の復号化データに含まれる上記連続数の情報を全て無効にして上記計数を行ない、当該計数値が上記所定データ数に達した場合には、当該計数値を初期化する計数手段を有する、請求項5に記載のデータ復号化装置。 【請求項8】 上記計数手段は、計数値が上記所定データ数より大きくなる場合に、上記第1のデータ長ないし第mのデータ長の総和に応じて選択された第2の復号手段の復号化データに含まれる上記連続数の情報を全て無効にした計数値が上記所定データ数より大きくなる最小の自然数nにおいて、第nの計数エラー信号を出力し、上記無効信号生成手段は、上記第1の復号手段の復号化データに上記単位ブロックの末尾を示す所定の情報が含まれる場合に第1の無効信号を生成し、第1のデータ長ないし第nのデータ長の総和に応じて選択された第2の復号手段の復号化データに当該所定の情報が含まれる場合に第(n+1)の無効信号を生成し、上記計数手段において第nの計数エラー信号が出力される場合に第nの無効信号を生成する、請求項7に記載のデータ復号化装置。 【請求項9】 供給される符号化データストリームを復号化するデータ復号化方法であって、上記符号化データストリームの先頭から所定データ長のデータ列を抽出するステップと、上記抽出したデータ列の先頭から、所定の可変長符号テーブルに含まれる可変長符号を検索し、当該検索した可変長符号に対応する第1の復号化データを生成するステップと、上記生成された第1の復号化データと、当該第1の復号化データに対応する上記可変長符号のデータ長とに基づいて、当該第1の復号化データに対応する符号化データのデータ長を第1のデータ長として算出するステップと、上記データ抽出ステップにおいて抽出されたデータ列の先頭に対して複数の異なるデータ数だけ末尾側にずれたデータ位置から、上記第1の可変長符号テーブルの一部の可変長符号をそれぞれ検索し、当該検索した可変長符号に対応する第2の復号化データを生成し、当該検索において該当する可変長符号が見つからない場合には検索エラー信号を生成する第2の復号ステップと、上記生成された複数の第2の復号化データまたは検索エラー信号の中から、上記第1のデータ長に応じたデータ位置における上記可変長符号の検索によって生成された第2の復号化データまたは検索エラー信号を選択し、該当する第2の復号化データまたは検索エラー信号が無い場合には選択エラー信号を生成するステップと、上記選択された第2の復号化データと、当該第2の復号化データに対応する上記可変長符号のデータ長とに基づいて、当該第2の復号化データに対応する符号化データのデータ長を第2のデータ長として算出するステップと、上記選択ステップにおいて上記検索エラー信号が選択される場合、または上記選択エラー信号が生成される場合に、上記第2の復号化データが無効であることを知らせる無効信号を生成するステップと、上記第1のデータ長と上記第2のデータ長との和に応じたデータ数だけ、上記データ抽出ステップのデータ列抽出位置を上記符号化データストリームの末尾側にシフトさせ、上記無効信号が生成される場合には、上記第1のデータ長に応じたデータ数だけ上記抽出位置を上記末尾側へシフトさせるステップとを有するデータ復号化方法。 【請求項10】 上記符号化データストリームは、上記可変長符号と付加データとで構成された符号化データを含み、上記第1の復号化データに含まれる上記付加データのデータ長の情報に基づいて、上記データ抽出ステップの抽出データ列から上記付加データを更に抽出するステップと、上記選択された第2の復号化データに含まれる上記付加データのデータ長の情報に基づいて、上記データ抽出ステップの抽出データ列から上記付加データを更に抽出するステップとを有する、請求項9に記載のデータ復号化方法。 【請求項11】 上記符号化データストリームは、所定値のデータが連続する数と、当該所定値のデータに続く他の値のデータとに応じて、所望のデータストリームを所定データ数の単位ブロックごとに符号化して生成されたデータストリームを含み、上記第1の復号化データと上記選択された第2の復号化データとに含まれる上記連続数の情報に応じて、上記単位ブロック内で復号化されたデータの数を計数し、上記無効信号が生成される場合に、上記選択された第2の復号化データに含まれる上記連続数の情報を無効にして上記計数を行ない、当該計数値が上記所定データ数に達した場合には、当該計数値を初期化するステップを有する、請求項9に記載のデータ復号化方法。 【請求項12】 上記計数ステップにおいて、上記計数値が上記所定データ数より大きくなる場合に計数エラー信号を生成し、上記無効信号を生成するステップにおいて、上記第1の復号化データに上記単位ブロックの末尾を示す所定の情報が含まれる場合、または上記計数エラー信号が生成される場合に上記無効信号を生成する、請求項11に記載のデータ復号化方法。 【請求項13】 上記生成された複数の第2の復号化データまたは検索エラー信号の少なくとも一部から、上記第1のデータ長ないし第nのデータ長の総和に応じたデータ位置における可変長符号の検索によって生成された第2の復号化データまたは検索エラー信号を選択し、該当する第2の復号化データまたは検索エラー信号が無い場合には第nの選択エラー信号を生成するステップと、上記選択ステップにおいて上記第1のデータ長ないし第nのデータ長の総和に応じて上記検索エラー信号が選択される場合、上記第1のデータ長ないし第mのデータ長(符号mは、所定の自然数Nに対してn≦m≦Nを満たす任意の自然数を示す)の総和に応じて選択された第2の復号化データが全て無効であることを知らせる第nの無効信号を生成するステップと、上記第1のデータ長ないし第nのデータ長の総和に応じて選択された第2の復号化データと、当該第2の復号化データに対応する上記可変長符号のデータ長とに基づいて、当該第2の復号化データに対応する符号化データのデータ長を第(n+1)のデータ長として算出するステップとを、所定の自然数Nに対して1≦n≦Nを満たす範囲で反復し、上記データの抽出位置をシフトするステップにおいて、上記第1のデータ長ないし第Nのデータ長の総和に応じたデータ数だけ、上記抽出位置を上記符号化データストリームの末尾側にシフトさせ、上記第nの無効信号が生成される場合には、上記第1のデータ長ないし第nのデータ長の総和に応じたデータ数だけ上記抽出位置を上記末尾側へシフトさせる、請求項9に記載のデータ復号化方法。 【請求項14】 上記符号化データストリームは、上記可変長符号と付加データとで構成された符号化データを含み、上記第1の復号化データに含まれた上記付加データのデータ長の情報に基づいて、上記データ抽出ステップの抽出データ列から上記付加データを更に抽出するステップと、上記選択された第2の復号化データに含まれる上記付加データのデータ長の情報に基づいて、上記データ抽出ステップの抽出データ列から上記付加データを更に抽出するステップとを有する、請求項13に記載のデータ復号化方法。 【請求項15】 上記符号化データストリームは、所定値のデータが連続する数と、当該所定値のデータに続く他の値のデータとに応じて、所望のデータストリームを所定データ数の単位ブロックごとに符号化して生成されたデータストリームを含み、上記第1の復号化データと上記選択された複数の第2の復号化データとに含まれる上記連続数の情報に応じて、上記単位ブロック内で復号化されたデータの数を計数し、上記第nの無効信号が生成される場合は、上記第1のデータ長ないし第mのデータ長の総和に応じて選択された第2の復号化データに含まれる上記連続数の情報を全て無効にして上記計数を行ない、当該計数値が上記所定データ数に達した場合には、当該計数値を初期化するステップを有する、請求項13に記載のデータ復号化方法。 【請求項16】 上記計数ステップにおいて、上記計数値が上記所定データ数より大きくなる場合において、上記第1のデータ長ないし第mのデータ長の総和に応じて選択された第2の復号化データに含まれる上記連続数の情報を全て無効にした計数値が上記所定データ数より大きくなる最小の自然数nにおいて、第nの計数エラー信号を生成し、上記無効信号を生成するステップにおいて、上記第1の復号化データに上記単位ブロックの末尾を示す所定の情報が含まれる場合に第1の無効信号を生成し、上記第1のデータ長ないし第mのデータ長の総和に応じて選択された第2の復号化データに当該所定の情報が含まれる場合に第(n+1)の無効信号を生成し、上記第nの計数エラー信号が出力される場合に第nの無効信号を生成する、請求項15に記載のデータ復号化方法。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、ハフマン符号などの可変長符号によって符号化されたデータストリームを復号化するデータ復号化装置とその方法に係り、例えば、JPEG(joint photographic experts group)方式によって符号化されたデータストリームを復号化するデータ復号化装置とその方法に関するものである。 【0002】 【従来の技術】図17は、ハフマン符号によって符号化されたデータストリームを復号化する従来のデータ復号化装置の構成例を示すブロック図である。図17に示すデータ復号化装置は、データシフト部1、復号部2a〜復号部2r、およびセレクタ3を有する。 【0003】データシフト部1は、ハフマン符号化されたデータストリームDinの先頭ビットから16ビット分のデータ列S1を抽出して、復号部2a〜復号部2rに入力する。また、シフト信号S3に応じて、データ列の抽出位置をデータストリームDinの先頭から末尾方向へシフトさせる。 【0004】復号部2aは、ハフマン符号とそのデータ長および復号語が互いに関連付けられたデータテーブルを有しており、このデータテーブルを参照して、抽出データ列S1の先頭ビットから16ビット分のデータ列に含まれるハフマン符号を検索し、ハフマン符号のデータ長L1と復号語Dout1を出力する。ただし、この例においてハフマン符号は最長16ビットである。 【0005】復号部2b〜復号部2rも、復号部2aと同様なデータテーブルを有しており、抽出データ列S1の先頭ビットからそれぞれ1〜16ビットだけずれたビット位置から16ビット分のデータ列に含まれるハフマン符号を検索する。そして、検索されたハフマン符号の復号語とデータ長をセレクタ3に出力する。ただし、復号部2b〜復号部2rが出力するデータ長は、検索されたハフマン符号のデータ長と、それぞれの復号部がセレクタ3で選択される場合のデータ長L1とを加算した値を有している。例えば、復号部2gにおいてデータ長pのハフマン符号が検索された場合、この復号部2gから出力されるデータ長は(p+6)である。 【0006】セレクタ3は、復号部2aにおいて検索されたハフマン符号のデータ長L1に応じて、復号部2b〜復号部2rのうちの何れか1つを選択し、その復号語Dout2を出力する。また、そのデータ長をシフト信号S3としてデータシフト部1に出力する。 【0007】上述した構成を有する図17のデータ復号化装置によれば、まず、データシフト部1においてデータストリームDinの先頭ビットから32ビット分のデータ列S1が抽出され、そのさらに先頭ビットから16ビット分のデータ列に含まれるハフマン符号が復号部2aによって検索される。これにより、抽出データ列S1の先頭から1つ目のハフマン符号が見つけ出され、その復号語Dout1とデータ長L1が復号部2aから出力される。 【0008】データ長L1によって2つ目のハフマン符号の先頭ビットの位置がわかるので、次に、このビット位置を先頭にしてハフマン符号の検索を行なっている復号部がセレクタ3により選択される。例えばデータ長L1が7ビットの場合、抽出データ列S1の8ビット目を先頭にしてハフマン符号の検索を行っている復号部2hが選択される。このようにして2つ目のハフマン符号が検索され、その復号語Dout2がセレクタ3より出力される。 【0009】セレクタ3から出力されるシフト信号S3は、1つ目のハフマン符号と2つ目のハフマン符号のデータ長の和を示す信号であり、このシフト信号S3によって、2つ目に復号されたハフマン符号に続く次のハフマン符号の先頭ビット位置が特定される。データシフト部1のデータ抽出位置は、この特定された先頭ビット位置と一致するようにシフト信号S3によってシフトされるので、上述と同様に、この先頭ビットから2つのハフマン符号が復号される。こうした動作を繰り返しながら、1回のデータ抽出位置のシフトに対して2つのハフマン符号が同時に復号される。 【0010】 【発明が解決しようとする課題】しかしながら、図17に示すデータ復号化装置では、復号部2a〜復号部2rにおいてハフマン符号を復号化するためのデータテーブルが個別に設けられるため、全部で17個ものデータテーブルが必要となる。したがって、このデータテーブルのための記憶容量が非常に大きくなり、回路規模が増大してしまう問題がある。また、JPEG方式で圧縮符号化されたデータストリームには、ハフマン符号の他に付加ビットと呼ばれるDCT(discrete cosine transform)係数の具体的な値を指定するためのデータが含まれているので、ハフマン符号の復号化しか考慮されていない図17のデータ復号化装置をJPEG復号化装置に適用することはできない。 【0011】本発明はかかる事情に鑑みてなされたものであり、その目的は、可変長符号化されたデータストリームを簡易な構成で高速に復号化できるデータ復号化装置およびその方法を提供することにある。 【0012】 【課題を解決するための手段】上記の目的を達成するため、本発明の第1の観点に係るデータ復号化装置は、供給される符号化データストリームを復号化するデータ復号化装置であって、上記符号化データストリームの先頭から所定データ長のデータ列を抽出するデータ抽出手段と、上記データ抽出手段において抽出されたデータ列の先頭から、所定の可変長符号テーブルに含まれる可変長符号を検索し、当該検索した可変長符号に対応する復号化データを出力する第1の復号手段と、上記第1の復号手段の復号化データと、当該復号化データに対応する上記可変長符号のデータ長とに基づいて、当該復号化データに対応する符号化データのデータ長を算出し、第1のデータ長として出力する第1のデータ長算出手段と、上記データ抽出手段において抽出されたデータ列の先頭に対して複数の異なるデータ数だけ末尾側にずれたデータ位置から、上記可変長符号テーブルの一部の可変長符号をそれぞれ検索し、当該検索した可変長符号に対応する復号化データを出力し、当該検索において該当する可変長符号が見つからない場合には検索エラー信号を出力する複数の第2の復号手段と、上記複数の第2の復号化手段の中から、上記第1のデータ長に応じて選択した第2復号手段の復号化データまたは上記検索エラー信号を出力し、該当する第2の復号手段が無い場合には選択エラー信号を出力する選択手段と、上記選択手段において選択された第2の復号手段の復号化データと、当該復号化データに対応する上記可変長符号のデータ長とに基づいて、当該復号化データに対応する符号化データのデータ長を算出し、第2のデータ長として出力する第2のデータ長算出手段と、上記選択手段において選択された第2の復号手段から上記検索エラー信号が出力される場合、または上記選択手段から上記選択エラー信号が出力される場合に、上記第2の復号手段の復号化データが無効であることを知らせる無効信号を生成する無効信号生成手段と、上記第1のデータ長と上記第2のデータ長との和に応じたデータ数だけ、上記データ抽出手段のデータ列抽出位置を上記符号化データストリームの末尾側にシフトさせ、上記無効信号が生成される場合には、上記第1のデータ長に応じたデータ数だけ上記抽出位置を上記末尾側へシフトさせるデータ抽出位置シフト手段とを有する。 【0013】本発明の第1の観点に係るデータ復号化装置によれば、上記データ抽出手段において、上記符号化データストリームの先頭から所定データ長のデータ列が抽出され、この抽出されたデータ列の先頭から、所定の可変長符号テーブルに含まれる可変長符号が第1の復号手段において検索される。そして、この検索された可変長符号に対応する復号化データが出力される。出力された上記第1の復号手段の復号化データと、当該復号化データに対応する上記可変長符号のデータ長とに基づいて、当該復号化データに対応する符号化データのデータ長が第1のデータ長算出手段において算出され、第1のデータ長として出力される。また、上記データ抽出手段において抽出されたデータ列の先頭に対して複数の異なるデータ数だけ末尾側にずれたデータ位置から、上記可変長符号テーブルの一部の可変長符号が第2の復号手段においてそれぞれ検索され、当該検索された可変長符号に対応する復号化データが出力される。当該検索において該当する可変長符号が見つからない場合には、検索エラー信号が出力される。上記複数の第2の復号化手段の中から、上記第1のデータ長に応じて選択された第2復号手段の復号化データまたは上記検索エラー信号が上記選択手段から出力される。該当する第2の復号手段が無い場合には選択エラー信号が出力される。上記選択手段において選択された第2の復号手段の復号化データと、当該復号化データに対応する上記可変長符号のデータ長とに基づいて、当該復号化データに対応する符号化データのデータ長が第2のデータ長算出手段において算出され、第2のデータ長として出力される。上記選択手段において選択された第2の復号手段から上記検索エラー信号が出力される場合、または上記選択手段から上記選択エラー信号が出力される場合には、上記第2の復号手段の復号化データが無効であることを知らせる無効信号が上記無効信号生成手段において生成される。上記データ抽出手段のデータ列抽出位置は、上記データ抽出位置シフト手段によって、上記第1のデータ長と上記第2のデータ長との和に応じたデータ数だけ上記符号化データストリームの末尾側にシフトされる。上記無効信号が生成される場合には、上記第1のデータ長に応じたデータ数だけ上記抽出位置を上記末尾側へシフトされる。 【0014】また、上記符号化データストリームは、上記可変長符号と付加データとで構成された符号化データを含み、上記第1の復号手段の復号化データに含まれた上記付加データのデータ長の情報に基づいて、上記データ抽出手段の抽出データ列から上記付加データを更に抽出する第1の付加データ抽出手段と、上記選択手段から出力される復号化データに含まれた上記付加データのデータ長の情報に基づいて、上記データ抽出手段の抽出データ列から上記付加データを更に抽出する第2の付加データ抽出手段とを有しても良い。 【0015】また、上記第1の復号手段の復号化データと上記選択手段に選択された第2の復号手段の復号化データとに含まれる上記連続数の情報に応じて、上記単位ブロック内で復号化されたデータの数を計数し、上記無効信号が生成される場合に、上記選択された第2の復号手段の復号化データに含まれる上記連続数の情報を無効にして上記計数を行ない、当該計数値が上記所定データ数に達した場合には、当該計数値を初期化する計数手段を有しても良い。また、上記計数手段は、計数値が上記所定データ数より大きくなる場合に計数エラー信号を出力し、上記無効信号生成手段は、上記第1の復号手段の復号化データに上記単位ブロックの末尾を示す所定の情報が含まれる場合、または上記計数手段において計数エラー信号が出力される場合に上記無効信号を生成しても良い。 【0016】また、上記複数の第2の復号化手段の少なくとも一部から、上記第1のデータ長ないし第nのデータ長(符号nは、所定の自然数Nに対して1≦n≦Nを満たす任意の自然数を示す)の総和に応じて選択した第2の復号手段の復号化データおよび上記検索エラー信号を出力し、該当する第2の復号手段が無い場合には第nの選択エラー信号を出力する複数の選択手段と、上記選択手段において上記第1のデータ長ないし第nのデータ長の総和に応じて選択された第2の復号部の復号化データと、当該復号化データに対応する上記可変長符号のデータ長とに基づいて、当該復号化データに対応する符号化データのデータ長を算出し、第(n+1)のデータ長として出力する複数の第2のデータ長算出手段と、上記選択手段において上記第1のデータ長ないし第nのデータ長の総和に応じて選択された第2の復号手段から上記検索エラー信号が出力される場合、または上記選択手段から上記第nの選択エラー信号が出力される場合に、上記第1のデータ長ないし第mのデータ長(符号mは、所定の自然数Nに対してn≦m≦Nを満たす任意の自然数を示す)の総和に応じて選択された第2の復号手段の復号化データが全て無効であることを知らせる第nの無効信号を生成する複数の無効信号生成手段とを有し、上記データ抽出位置シフト手段は、上記第1のデータ長ないし第Nのデータ長の総和に応じたデータ数だけ、上記データ抽出手段のデータ列抽出位置を上記符号化データストリームの末尾側にシフトさせ、上記第nの無効信号が生成される場合には、上記第1のデータ長ないし第nのデータ長の総和に応じたデータ数だけ上記抽出位置を上記末尾側へシフトさせても良い。この場合、さらに、上記第1の復号手段の復号化データと上記複数の選択手段において選択された第2の復号手段の復号化データとに含まれる上記連続数の情報に応じて、上記単位ブロック内で復号化されたデータの数を計数し、上記第nの無効信号が生成される場合は、上記第1のデータ長ないし第mのデータ長の総和に応じて選択された第2の復号手段の復号化データに含まれる上記連続数の情報を全て無効にして上記計数を行ない、当該計数値が上記所定データ数に達した場合には、当該計数値を初期化する計数手段を有しても良い。また、上記計数手段は、計数値が上記所定データ数より大きくなる場合に、上記第1のデータ長ないし第mのデータ長の総和に応じて選択された第2の復号手段の復号化データに含まれる上記連続数の情報を全て無効にした計数値が上記所定データ数より大きくなる最小の自然数nにおいて、第nの計数エラー信号を出力し、上記無効信号生成手段は、上記第1の復号手段の復号化データに上記単位ブロックの末尾を示す所定の情報が含まれる場合に第1の無効信号を生成し、第1のデータ長ないし第nのデータ長の総和に応じて選択された第2の復号手段の復号化データに当該所定の情報が含まれる場合に第(n+1)の無効信号を生成し、上記計数手段において第nの計数エラー信号が出力される場合に第nの無効信号を生成しても良い。 【0017】本発明の第2の観点に係るデータ復号化方法は、供給される符号化データストリームを復号化するデータ復号化方法であって、上記符号化データストリームの先頭から所定データ長のデータ列を抽出するステップと、上記抽出したデータ列の先頭から、所定の可変長符号テーブルに含まれる可変長符号を検索し、当該検索した可変長符号に対応する第1の復号化データを生成するステップと、上記生成された第1の復号化データと、当該第1の復号化データに対応する上記可変長符号のデータ長とに基づいて、当該第1の復号化データに対応する符号化データのデータ長を第1のデータ長として算出するステップと、上記データ抽出ステップにおいて抽出されたデータ列の先頭に対して複数の異なるデータ数だけ末尾側にずれたデータ位置から、上記第1の可変長符号テーブルの一部の可変長符号をそれぞれ検索し、当該検索した可変長符号に対応する第2の復号化データを生成し、当該検索において該当する可変長符号が見つからない場合には検索エラー信号を生成する第2の復号ステップと、上記生成された複数の第2の復号化データまたは検索エラー信号の中から、上記第1のデータ長に応じたデータ位置における上記可変長符号の検索によって生成された第2の復号化データまたは検索エラー信号を選択し、該当する第2の復号化データまたは検索エラー信号が無い場合には選択エラー信号を生成するステップと、上記選択された第2の復号化データと、当該第2の復号化データに対応する上記可変長符号のデータ長とに基づいて、当該第2の復号化データに対応する符号化データのデータ長を第2のデータ長として算出するステップと、上記選択ステップにおいて上記検索エラー信号が選択される場合、または上記選択エラー信号が生成される場合に、上記第2の復号化データが無効であることを知らせる無効信号を生成するステップと、上記第1のデータ長と上記第2のデータ長との和に応じたデータ数だけ、上記データ抽出ステップのデータ列抽出位置を上記符号化データストリームの末尾側にシフトさせ、上記無効信号が生成される場合には、上記第1のデータ長に応じたデータ数だけ上記抽出位置を上記末尾側へシフトさせるステップとを有する。 【0018】また、上記生成された複数の第2の復号化データまたは検索エラー信号の少なくとも一部から、上記第1のデータ長ないし第nのデータ長の総和に応じたデータ位置における可変長符号の検索によって生成された第2の復号化データまたは検索エラー信号を選択し、該当する第2の復号化データまたは検索エラー信号が無い場合には第nの選択エラー信号を生成するステップと、上記選択ステップにおいて上記第1のデータ長ないし第nのデータ長の総和に応じて上記検索エラー信号が選択される場合、上記第1のデータ長ないし第mのデータ長(符号mは、所定の自然数Nに対してn≦m≦Nを満たす任意の自然数を示す)の総和に応じて選択された第2の復号化データが全て無効であることを知らせる第nの無効信号を生成するステップと、上記第1のデータ長ないし第nのデータ長の総和に応じて選択された第2の復号化データと、当該第2の復号化データに対応する上記可変長符号のデータ長とに基づいて、当該第2の復号化データに対応する符号化データのデータ長を第(n+1)のデータ長として算出するステップとを、所定の自然数Nに対して1≦n≦Nを満たす範囲で反復し、上記データの抽出位置をシフトするステップにおいて、上記第1のデータ長ないし第Nのデータ長の総和に応じたデータ数だけ、上記抽出位置を上記符号化データストリームの末尾側にシフトさせ、上記第nの無効信号が生成される場合には、上記第1のデータ長ないし第nのデータ長の総和に応じたデータ数だけ上記抽出位置を上記末尾側へシフトさせても良い。 【0019】 【発明の実施の形態】以下、本発明の2つの実施形態について、JPEG符号化データストリームを復号化するJPEG復号化装置に本発明を適用した場合を例として説明するが、その前に、以降の説明を理解し易くするため、JPEG符号化方式の概要についてまず簡単に説明する。 【0020】自然画像は隣接する画素値が相関性を有している場合が多く、ある微小な領域内で見た場合における画素値の空間的な変動(空間周波数)が小さくなる性質がある。このような自然画像を直交変換により空間周波数領域のデータへ変換すると、変換されたデータは低周波成分が高周波成分より大きくなる傾向がある。そこで、空間周波数領域のデータを符号化する場合に、高周波側のデータに割り当てる符号長を低周波側のデータに比べて短くすると、データ全体の平均符号長が短くなるので、情報量を圧縮することができる。 【0021】JPEGのDCT利用型符号化方式では、入力の画像データが8×8画素ごとのブロックに分割され、この各ブロックに対して直交変換の1つであるDCT(Discrete Cosine Transform :離散コサイン変換)が実行される。これにより、1ブロックの64個の画像データは64個のDCT係数に変換される。このDCT係数は、係数ごとに定められた量子化ステップで量子化された後、1個のDC成分とそれ以外の63個のAC成分とがそれぞれ異なる方法でハフマン符号に符号化される。 【0022】DCT係数がDC成分の場合は、連続したブロック間におけるDCT係数の差分値に対して、その大きさに応じて定められたハフマン符号が生成される。これは、自然画像においては、隣接するブロック間のDC成分が相関性を有している場合が多く、差分値の分散が小さくなるためである。また、DC成分のハフマン符号には4ビットのカテゴリSSSSと呼ばれるデータがそれぞれ対応しており、カテゴリSSSSによって指定されるデータ長を有した付加ビットがハフマン符号に続いて付加され、1つの符号化データが構成される。この付加ビットによって、差分値の具体的な大きさが指定される。 【0023】DCT係数がAC成分の場合は、空間周波数の大きさに応じた順序に並び替えられたDCT係数のデータ列を作り、このデータ列においてゼロ値のDCT係数が連続する個数(ゼロランレングスRRRR)と、このゼロ値のDCT係数に続く非ゼロのDCT係数の大きさに応じて定められたカテゴリSSSSとの組み合わせに応じて、1つのハフマン符号が生成される。これは、量子化後のDCT変換係数が高周波側でゼロになり易い性質を利用して圧縮効率を高めるためである。 【0024】なお、上述のデータ列においてゼロ値のAC成分が16個以上連続する場合には、この16個の連続するゼロ値のAC成分に対して1つの符号ZRL(zero run length)が生成される。また、1ブロックの最後までゼロ値のAC成分が続く場合には、その個数に係わらず1つの符号EOB(end of block)が生成される。いずれの場合にも、複数のゼロ値のAC成分に対して1つの符号が一括して与えられることにより圧縮効率が高められる。 【0025】<第1の実施形態>図1は、本発明に係るJPEG復号化装置の概略的な構成例を示すブロック図である。図1に示すJPEG復号化装置は、バッファ1001、ハフマン復号化器1002、逆量子化器1003および逆DCT器1004を有する。 【0026】バッファ1001は、入力されるJPEG符号化データを一時的に蓄積し、要求に応じて順次ハフマン復号化装置1002に出力する。ハフマン復号化器1002は、バッファ1001に蓄積されたJPEG符号化データを順次読み出し、そのハフマン符号を復号化してDCT係数を再生する。逆量子化器1003は、ハフマン復号化器1002において再生されたDCT係数に対して所定の逆量子化係数を乗ずる逆量子化処理を行う。逆DCT器1004は、逆量子化器1003において逆量子化されたDCT係数に対して8×8画素ブロックごとに逆DCTを行ない、元画像の各画素データを再生する。 【0027】上述したハフマン復号化器1002の更に詳細な構成例について説明する。図2は、本発明の第1の実施形態に係る、図1のハフマン復号化器1002の構成例を示す概略的なブロック図である。図2に示すハフマン復号化器は、データ抽出部10、第1の復号部20、第1のデータ長算出部30、第2の復号部41〜第2の復号部44、選択部50、第2のデータ長算出部60、無効信号生成部70、データ抽出位置シフト部80、計数部90、DCT係数出力部101およびDCT係数出力部102を有する。 【0028】データ抽出部10は、バッファ1001に蓄積されたJPEG符号化データストリームDinの先頭から、27ビットのデータ列を抽出する。ハフマン符号は最長で16ビットであり、付加ビットは最長で11ビットであるので、ハフマン符号と付加ビットとで構成される1つのJPEG符号化データのデータ長は最長で16+11=27ビットとなる。したがって、データ抽出部10により1つ分のJPEG符号化データが確実に抽出される。また、データ抽出部10は、そのデータ抽出位置をJPEG符号化データストリームDinの先頭から末尾に向かってシフト信号Sftに応じてシフトさせる。 【0029】第1の復号部20は、データ抽出部10において抽出されたデータ列Dsの先頭ビットから、ハフマン符号の最長データに相当する16ビット分のデータ列を入力し、この入力したデータ列の中から所定のハフマン符号テーブルに含まれるハフマン符号を検索して、対応する復号化データRS1を出力する。入力される符号化データがDCT係数のDC成分の場合には、このDC成分の具体的な値を指定する付加ビットのカテゴリSSSSが復号化データRS1として出力される。また、入力される符号化データがDCT係数のAC成分の場合には、値ゼロのAC成分が連続する数を指定するゼロランレングスRRRRと、このゼロ値のAC成分に続く非ゼロのAC成分の具体的な値を指定する付加ビットのカテゴリSSSSとが復号化データRS1として出力される。このように、第1の符号部20は、DCT係数のDC成分およびAC成分を共に復号化することができる。 【0030】この第1の復号部20は、例えば図2に示すように、入力される16ビットのデータ列から所定のハフマン符号を検索して、それに対応する復号テーブルのアドレスを生成するアドレス算出部201と、この生成されたアドレスに格納されたDC成分のカテゴリSSSS、またはAC成分のゼロランレングスRRRRおよびカテゴリSSSSを復号化データRS1として出力する復号テーブル202とによって構成することができる。 【0031】第1のデータ長算出部30は、第1の復号部20の復号化データRS1と、この復号化データRS1に対応するハフマン符号のデータ長とに基づいて、復号化データRS1に対応する符号化データ(ハフマン符号+付加ビット)のデータ長を算出し、データ長L1として出力する。 【0032】第2の復号部41〜第2の復号部44は、データ抽出部10において抽出されたデータ列Dsの先頭ビットに対してそれぞれ3ビット〜6ビットだけデータストリームの末尾側にずれたデータ位置から5ビット分のデータ列を入力し、この入力したデータ列に含まれる所定のハフマン符号をそれぞれ検索する。そして、検索したハフマン符号に対応する復号化データRS21〜復号化データRS24をそれぞれ出力する。なお、上述したように、ハフマン符号のデータ長は最長で16ビットだが、この第2の復号部において復号できるハフマン符号のデータ長は最長で5ビットまでなので、第2の復号部が持つハフマン符号のデータテーブルは、全てのハフマン符号を復号できる第1の復号部20のデータテーブルの一部分だけで良い。 【0033】また、第2の復号部41〜第2の復号部44は、入力したデータ列に含まれるハフマン符号のデータ長が5ビットよりも長く、該当するハフマン符号をデータテーブルから見つけることができない場合に、それぞれ検索エラー信号Esr1〜検索エラー信号Esr4を出力する。 【0034】選択部50は、第2の復号部41〜第2の復号部44の中から、データ長L1に応じて1つの第2の復号部を選択し、その復号化データRs2または検索エラー信号Esrを出力する。図2の例では、データ長L1が3ビットの場合に第2の復号部41を、4ビットの場合に第2の復号部42を、5ビットの場合に第2の復号部43を、6ビットの場合に第2の復号部44を選択する。また、これに該当する第2の復号部が無い場合、すなわちデータ長L1が3ビット〜6ビットの範囲に含まれない場合には、選択エラー信号Eselを出力する。 【0035】第2のデータ長算出部60は、選択部50において選択された第2の復号部の復号化データRS2と、この復号化データRS2に対応するハフマン符号のデータ長とに基づいて、復号化データRS2に対応する符号化データのデータ長を算出し、データ長L2として出力する。 【0036】無効信号生成部70は、選択部50において選択された第2の復号部から検索エラー信号Esrが出力される場合、または選択部50から選択エラー信号Eselが出力される場合に、復号化データRS2が無効であることを知らせる無効信号Sivを生成する。また、第1の復号部20の復号化データRS1として、符号化の単位ブロックの末尾を示す符号EOBが含まれる場合や、後述する計数部90において計数エラー信号Ecntが出力される場合にも、無効信号Sivを生成する。 【0037】データ抽出位置シフト部80は、データ長L1とデータ長L2との和に応じたデータ数だけ、データ抽出部10のデータ列抽出位置をデータストリームの末尾側にシフトさせるシフト信号Sftを生成する。また、無効信号Sivが生成される場合には、データ長L1に応じたデータ数だけデータ抽出手段10の抽出位置を末尾側へシフトさせるシフト信号Sftを生成する。 【0038】計数部90は、復号化データRS1と復号化データRS2とに含まれるゼロランレングスRRRRに応じて、64個のDCT係数からなる単位ブロック内で復号化されたAC成分のDCT係数を計数する。なお、無効信号生成部70において無効信号Sivが生成される場合には、復号化データRS2に含まれるゼロランレングスRRRRを無効にしてAC成分のDCT係数を計数する。すなわち、復号化データRS2のゼロランレングスRRRRは計数値に含めない。AC成分の計数値が63個(単位ブロック全体のDCT係数64個−DC成分のDCT係数1個)に達した場合には、この計数値Scntをゼロに初期化して、再びAC成分の計数を行う。 【0039】また、AC成分の計数値が63個より大きくなる場合には、計数エラー信号Ecntを出力し、復号化データRS2を無効にする。AC成分の計数値が63個より大きくなる場合、第1の復号部20において復号化されたDCT係数で単位ブロックの末尾に到達するので、復号化データRS2によって復号されるDCT係数は、次の単位ブロックの先頭データとなる。ところが、単位ブロックの先頭データはDC成分なので、第2の復号部41〜第2の復号部44においては復号することができない。したがって、この場合には復号化データRS2が無効となるように計数エラー信号Ecntを出力する。 【0040】DCT係数出力部101は、復号化データRS1に基づいて抽出データ列Dsから付加データを抽出し、この抽出した付加データからDC成分またはAC成分のDCT係数D1を算出して出力する。DCT係数出力部102は、復号化データRS2に基づいて抽出データ列Dsから付加データを抽出し、この抽出した付加データからAC成分のDCT係数D2を算出して出力する。 【0041】ここで、図2に示すハフマン復号化器において、2つの復号化データ(復号化データRS1および復号化データRS2)に基づいて2つのDCT係数を出力するDCT係数出力部の具体的な構成例について、図3を参照して説明する。図3において、符号1011および符号1021は付加データ抽出部を、符号1012および符号1022はDCT係数算出部をそれぞれ示す。 【0042】付加データ抽出部1011は、データ抽出部10の抽出データ列Dsから27ビット全てのデータ列を入力し、この入力したデータ列から、復号化データRS1に含まれるカテゴリSSSSに基づいて付加データAD1を抽出する。 【0043】付加データ抽出部1021は、データ抽出部10の抽出データ列Dsの先頭ビットに対して3ビットだけシフトしたビット位置から13ビット分のデータ列を入力し、この入力したデータ列から、復号化データRS2に含まれるカテゴリSSSSに基づいて付加データAD2を抽出する。第2の復号部において復号されるハフマン符号の最長データは5ビットであり、この場合の付加ビットの最長データは5ビットなので、付加ビットの抽出範囲は、第2の復号部に入力されるデータ列の先頭ビットから10ビットの範囲となる。したがって、付加データAD2の抽出範囲は、第2の復号部41に入力されるデータ列の先頭ビットから、第2の復号部44に入力される10ビットのデータ列の末尾までの13ビットの範囲となる。 【0044】DCT係数算出部1012は、付加データ抽出部1011において抽出された付加データAD1と復号化データRS1とに基づいて、DC成分またはAC成分のDCT係数を算出する。DC成分は、前の単位ブロックにおいて算出されたDC成分に、付加データAD1とカテゴリSSSSとから求められる正または負の差分値を加算することによって算出する。また、ゼロ値のAC成分はゼロランレングスRRRRに応じて算出し、非ゼロ値のAC成分は付加データAD2とカテゴリSSSSとに応じて算出する。DCT係数算出部1022は、付加データ抽出部1021において抽出された付加データAD2と復号化データRS2とに基づいて、AC成分のDCT係数を算出する。 【0045】次に、上述した図1〜図3に示すJPEG復号化装置の動作について、ハフマン復号化器1002を中心に説明する。 【0046】図4は、データ抽出部10で抽出される27ビットのデータ列中において、復号部20および復号部41〜復号部44が復号化可能な符号化データの範囲を示す図である。図4に示すように、第1の復号部20は、抽出データ列Dsの先頭ビット‘0’から末尾ビット‘26’までの符号化データを復号化することができる。これに対し、第2の復号部41は抽出データ列Dsのビット‘3’からビット‘12’まで、第2の復号部42はビット‘4’からビット‘13’まで、第2の復号部43はビット‘5’からビット‘14’まで、第2の復号部44はビット‘6’からビット‘15’までの範囲の符号化データをそれぞれ復号化することができる。何れの第2の復号部からの出力を選択するかは、第1のデータ長算出部30において算出された、1つ目の符号化データのデータ長L1に応じて決定される。 【0047】図5は、抽出データ列Dsに含まれる2つの符号化データの一例を示す図である。図5において、抽出データ列Dsの先頭ビット‘0’からビット‘4’までの5ビット分が1つ目の符号化データ1、ビット‘5’からビット‘10’までの6ビット分が2つ目の符号化データ2となっている。また符号化データ1の前半2ビットはハフマン符号、後半3ビットは付加ビットとなっており、符号化データ2の前半3ビットはハフマン符号、後半3ビットは付加ビットとなっている。 【0048】この場合、バッファ1001からデータ抽出部10により抽出された27ビット抽出データDsは、先頭ビット‘0’から16ビット分のデータ列が第1の復号部20に入力され、その入力されたデータ列の先頭2ビットからハフマン符号が検索される。そして、検索されたハフマン符号に対応したゼロランレングスRRRRおよびカテゴリSSSSが復号化データRS1として出力される。 【0049】第1の復号部20の復号化データRS1は、DCT係数出力部101に入力され、この復号化データRS1と抽出データ列Dsとに基づいて、符号化データ1のDCT係数D1が算出される。 【0050】第1のデータ長算出部30では、この復号化データRS1のカテゴリSSSSで指定される付加ビットのデータ長と、復号化データRS1に対応するハフマン符号のデータ長との和に応じて、符号化データ1のデータ長L1が算出される。図5の例では、ハフマン符号の2ビットと付加ビットの3ビットとの和から、データ長L1として5ビットが算出される。 【0051】算出されたデータ長L1は選択部50に入力され、このデータ長L1に応じて第2の復号部が選択される。図5の例では、抽出データ列Dsの先頭ビット‘0’に対して6ビット目のビット‘5’からハフマン符号の検索を行う第2の復号部43が選択される。そして、その復号化データRS23および検索エラー信号Esr3が、それぞれ復号化データRS2および検索エラー信号Esrとして選択部50から出力される。 【0052】ただし、図5の例では、符号化データ1のデータ長L1は5ビットであり、3ビット〜6ビットの範囲に含まれているので、この場合、選択エラー信号Eselは出力されない。また、符号化データ2のハフマン符号は3ビットであり、5ビットを越えていないので、第2の復号部43から検索エラー信号Esr3は出力されない。したがって、選択部50から検索エラー信号Esrは出力されない。 【0053】選択部50において選択された復号化データRS2は、DCT係数出力部102に入力され、この復号化データRS2と抽出データ列Dsとに基づいて、符号化データ2のDCT係数D2が算出される。 【0054】第2のデータ長算出部60では、この復号化データRS2のカテゴリSSSSで指定される付加ビットのデータ長と、復号化データRS2に対応するハフマン符号のデータ長との和に応じて、符号化データ2のデータ長L2が算出される。図5の例では、ハフマン符号の3ビットと付加ビットの3ビットとの和から、データ長L2として6ビットが算出される。 【0055】算出されたデータ長L1およびデータ長L2は、ともにデータ抽出位置シフト部80に入力され、無効信号Sivが生成されていない場合、これらのデータ長の和に応じたシフト信号Sftが生成される。これにより、図5の例では、抽出データ列Dsのビット‘11’にデータ抽出位置がシフトされ、次の2つの符号化データはこの位置から復号される。無効信号Sivが生成されている場合には、符号化データ2の復号化データRS2が無効であるので、データ長L2によるシフト分は無視され、データ長L1のみに応じたシフト信号Sftが生成される。これにより、図5の例では、抽出データ列Dsのビット‘5’にデータ抽出位置がシフトされる。 【0056】また、復号部20から出力される復号化データRS1と、選択部50から出力される復号化データRS2は共に計数部90に入力され、これらの復号化データに含まれるゼロランレングスRRRRから、単位ブロック内で復号化されたAC成分の数が計数される。例えばゼロランレングスRRRRが7の場合、7つのゼロ値と1つの非ゼロ値のAC成分が復号化されるので、これにより復号化数8が計数値Ecntに加算される。こうした復号化数が、復号化データRS1および復号化データRS2の各々のゼロランレングスRRRRに対して算出され、計数値Ecntに加算される。計数値Scntが63を越える場合は、符号化データ2が単位ブロックの先頭データであるので、この復号化データRS2を無効にするための計数エラー信号Ecntが出力される。 【0057】図5の例では、選択エラー信号Eselおよび検索エラー信号Esrは何れも出力されていないので、これによる無効信号Sivは生成されない。復号化データRS1に単位ブロックの末尾を示す符号EOBが含まれる場合や、計数部90において計数エラー信号Ecntが出力される場合において、無効信号Sivが生成される。無効信号Sivが生成されると、復号化データRS2に基づいて復号されるAC成分のDCT係数D2や、データ長L2、計数部90における計数値Scntなどが無効なデータとして処理される。 【0058】図6は、符号化データ2に含まれるハフマン符号長が5ビットを越えるために検索エラー信号Esrが出力される例を示す。図6において、抽出データ列Dsの先頭ビット‘0’からビット‘4’までの5ビット分が1つ目の符号化データ1、ビット‘5’からビット‘18’までの14ビット分が2つ目の符号化データ2となっている。また符号化データ1の前半2ビットはハフマン符号、後半3ビットは付加ビットとなっており、符号化データ2の前半7ビットはハフマン符号、後半7ビットは付加ビットとなっている。 【0059】図6の例でも、符号化データ1のデータ長L1が5ビットなので、選択部50において第2の復号部43が選択されるが、符号化データ2のハフマン符号長は7ビットであるため、第2の復号部43ではこのハフマン符号を検索することができず、第2の復号部43から検索エラー信号Esr3が出力されている。この検索エラー信号が選択されるため、選択部50からは検索エラー信号Esrが無効信号生成部70に出力され、無効信号Sivが生成される。 【0060】したがって、図6の例では、データ抽出位置シフト部80においてデータ長L2が無効にされ、データ抽出位置はデータ長L1のみに応じてシフトされる。すなわち、次の符号化データを復号化する先頭ビットは抽出データ列Dsのビット‘5’に設定される。また、無効信号Sivが生成されるため、DCT係数出力部102から出力されるDCT係数D2は、逆量子化器1003および逆DCT器1004において無効なデータとして処理される。さらに、復号化データRS2のゼロランレングスRRRRに対応する復号化数は計数部90において無効とされ、この分の復号化数は計数値Scntに加算されない。 【0061】図7は、符号化データ1のデータ長が3ビット〜6ビットの範囲に含まれないために選択エラー信号Eselが出力される例を示す。図7において、抽出データ列Dsの先頭ビット‘0’からビット‘6’までの7ビット分が1つ目の符号化データ1、ビット‘7’からビット‘11’までの5ビット分が2つ目の符号化データ2となっている。また符号化データ1の前半4ビットはハフマン符号、後半3ビットは付加ビットとなっており、符号化データ2の前半2ビットはハフマン符号、後半3ビットは付加ビットとなっている。 【0062】図7の例では、符号化データ1のデータ長L1が7ビットであり、3ビット〜6ビットの範囲を越えているので、これに対応する第2の復号部を選択部50において選択することができず、選択部50から選択エラー信号Eselが出力される。これにより、無効信号生成部70において無効信号Sivが生成される。 【0063】したがって、図7の例においても、データ抽出位置シフト部80においてデータ長L2が無効にされ、データ抽出位置はデータ長L1のみに応じてシフトされる。すなわち、次の符号化データを復号化する先頭ビットは抽出データ列Dsのビット‘7’に設定される。また、DCT係数出力部102から出力されるDCT係数D2は、逆量子化器1003および逆DCT器において無効なデータとして処理される。さらに、復号化データRS2のゼロランレングスRRRRに対応する復号化数は計数部90において無効とされ、この分の復号化数は計数値Scntに加算されない。 【0064】図8は、一般的な20枚の画像をJPEG符号化した場合において、ハフマン符号のデータ長ごとの出現数を調べた結果の一例を示す図である。画像sample1〜画像sample20のそれぞれについて、2ビットから6ビットまでのハフマン符号の出現数および出現率(%)が示されている。一番右の列は、各画像におけるハフマン符号の総数を示す。また図9は、一般的な20枚の画像をJPEG符号化した場合において、ハフマン符号と付加ビットとの和のデータ長について、図8と同様に出現数を調べた結果の一例を示す図である。 【0065】図8から分かるように、一般的な画像をJPEG符号化した場合におけるハフマン符号のデータ長は、全体の約75%以上が2ビット〜4ビットの範囲に含まれ、約85%以上が2ビット〜5ビットの範囲に含まれる。また図9から分かるように、ハフマン符号と付加ビットとを合わせたデータ長は、全体の55%程度が3ビット〜5ビットの範囲に含まれ、70%程度が3ビット〜6ビットの範囲に含まれる。 【0066】図2のハフマン復号化器は、このようなハフマン符号長の出現率の偏りを利用して、必要なハフマン符号のデータテーブルの記憶容量を削減するものである。すなわち、第1の復号部20には、DC成分およびAC成分の全ハフマン符号が復号可能なデータテーブルを持たせている一方で、第2の復号部41〜第2の復号部44には、1つ目の符号化データ1のデータ長(ハフマン符号長+付加ビット長)が3ビット〜6ビットまでの場合(出現率70%程度)で、かつ、2つ目の符号化データ2が2ビット〜5ビットまでのハフマン符号を含む場合(出現率85%程度)において、この符号化データを復号化できる最小限のデータテーブルを持たせている。 【0067】したがって、図17の従来例に比べてデータテーブルに必要な記憶容量を大幅に削減することができ、回路構成を簡易化することができる。また、図17の従来例のように、2つの符号化データを100%復号化することはできないが、比較的高い頻度(70%×85%=約60%)で2つの符号化データを同時に復号化することができ、JPEG符号化データストリームの高速な復号化を実現できる。 【0068】<第2の実施形態>次に、本発明の第2の実施形態について説明する。第1の実施形態においては、同時に2つまでの符号化データを復号化することができたが、第2の実施形態においては、同時にそれ以上の符号化データを復号化することができる。 【0069】図10は、本発明の第2の実施形態に係る、図1のハフマン復号化器1002の構成例を示す概略的なブロック図である。図2と図10の同一符号は同一の構成要素を示す。その他、図10に示すハフマン復号化器は、第2の復号部45〜第2の復号部410、選択部51および選択部52、第2のデータ長算出部61および第2のデータ長算出部62、無効信号生成部71および無効信号生成部72、データ抽出位置シフト部80’、計数部90’およびDCT係数出力部103を有する。 【0070】第2の復号部45〜第2の復号部410は、データ抽出部10において抽出されたデータ列Dsの先頭ビットに対してそれぞれ7ビット〜12ビットだけデータストリームの末尾側にずれたデータ位置から5ビット分のデータ列を入力し、この入力したデータ列に含まれる所定のハフマン符号をそれぞれ検索する。そして、検索したハフマン符号に対応する復号化データRS25〜復号化データRS210をそれぞれ出力する。また、入力したデータ列に含まれるハフマン符号のデータ長が5ビットよりも長く、該当するハフマン符号をデータテーブルから見つけることができない場合に、それぞれ検索エラー信号Esr5〜検索エラー信号Esr10を出力する。 【0071】選択部51は、図2の選択部50と同等なブロックであり、第2の復号部41〜第2の復号部44の中から、データ長L1に応じて1つの第2の復号部を選択し、その復号化データRs2または検索エラー信号Esr_1を出力するとともに、該当する第2の復号部が無い場合には、第1の選択エラー信号Esel_1を出力する。 【0072】選択部52は、第2の復号部44〜第2の復号部410の中から、データ長L1とデータ長L2との和に応じて1つの第2の復号部を選択し、その復号化データRs2_2または検索エラー信号Esr_2を出力する。図12の例では、データ長L1とデータ長L2との和が6ビットの場合に第2の復号部44を、7ビットの場合に第2の復号部45を、8ビットの場合に第2の復号部46を、9ビットの場合に第2の復号部47を、10ビットの場合に第2の復号部48を、11ビットの場合に第2の復号部49を、12ビットの場合に第2の復号部410を選択する。また、これに該当する第2の復号部が無い場合、すなわちデータ長L1とデータ長L2との和が6ビット〜12ビットの範囲に含まれない場合には、第2の選択エラー信号Esel_2を出力する。 【0073】第2のデータ長算出部61は、図2の第2のデータ長算出部60と同等のブロックであり、復号化データRs2_1とこれに対応するハフマン符号のデータ長とに基づいて、復号化データRS2_1に対応する符号化データのデータ長L2を算出する。 【0074】第2のデータ長算出部62は、選択部52において選択された第2の復号部の復号化データRs2_2と、この復号化データRS2に対応するハフマン符号のデータ長とに基づいて、復号化データRS2_2に対応する符号化データのデータ長を算出し、データ長L3として出力する。 【0075】無効信号生成部71は、図2の無効信号生成部70と同等のブロックであり、検索エラー信号Esr_1または第1の選択エラー信号Esel_1が出力される場合に、復号化データRS2_1および復号化データRS2_2が無効であることを知らせる第1の無効信号Siv_1を生成する。また、復号化データRS1に符号EOBが含まれる場合や、計数部90’において第1の計数エラー信号Ecnt_1が出力される場合にも、この第1の無効信号Siv_1を生成する。 【0076】無効信号生成部72は、選択部52において選択された第2の復号部から検索エラー信号Esr_2が出力される場合、または選択部52から第2の選択エラー信号Esel_2が出力される場合に、復号化データRS2_2が無効であることを知らせる無効信号Siv_2を生成する。また、復号化データRS2_1に符号EOBが含まれる場合や、計数部90’において第2の計数エラー信号Ecnt_2が出力される場合にも、この第2の無効信号Siv_2を生成する。 【0077】データ抽出位置シフト部80’は、データ長L1〜データ長L3の総和に応じたデータ数だけ、データ抽出部10のデータ列抽出位置をデータストリームの末尾側にシフトさせるシフト信号Sftを生成する。また、第1の無効信号Siv_1が生成される場合には、データ長L1に応じたデータ数だけデータ抽出手段10の抽出位置を末尾側へシフトさせるシフト信号Sftを生成する。第2の無効信号Siv_2が生成される場合には、データ長L1とデータ長L2との和に応じたデータ数だけデータ抽出手段10の抽出位置を末尾側へシフトさせるシフト信号Sftを生成する。 【0078】計数部90’は、復号化データRS1、復号化データRS2_1および復号化データRS2_2に含まれるゼロランレングスRRRRに応じて、単位ブロック内で復号化されたAC成分のDCT係数を計数する。 【0079】なお、無効信号生成部71において第1の無効信号Siv_1が生成される場合には、復号化データRS2_1および復号化データRS2_2に含まれるゼロランレングスRRRRを両方とも無効にしてAC成分のDCT係数を計数する。すなわち、復号化データRS2_1および復号化データRS2_2のゼロランレングスRRRRは計数値に含めない。これに対し、無効信号生成部72において第1の無効信号Siv_2が生成される場合には、復号化データRS2_2に含まれるゼロランレングスRRRRのみを無効にしてAC成分のDCT係数を計数する。この場合、復号化データRS2_1に含まれるゼロランレングスRRRRは計数値Scntに含まれる。 【0080】AC成分の計数値Scntが63個(単位ブロック全体のDCT係数64個−DC成分のDCT係数1個)に達した場合には、この計数値Scntをゼロに初期化して、再びAC成分の計数を行う。 【0081】また、AC成分の計数値Scntが63個より大きくなる場合において、復号化データRS2_1および復号化RS2_2のゼロランレングスRRRRを共に無効にしても計数値Scntが63個より大きくなる場合は、第1の計数エラー信号Ecnt_1を生成する。この場合、抽出データ列Dsの2つ目の符号化データが単位ブロックの先頭データになっている。また、復号化RS2_2のゼロランレングスRRRRを無効にしたときに計数値Scntが63個より大きくなり、復号化データRS2_1および復号化RS2_2のゼロランレングスRRRRを無効にしたときに計数値Scntが63個以下となる場合は、第2の計数エラー信号Ecnt_2を生成する。この場合、3つ目の符号化データが単位ブロックの先頭データになっている。 【0082】DCT係数出力部103は、復号化データRS3に基づいて抽出データ列Dsから付加データを抽出し、この抽出した付加データからAC成分のDCT係数D3を算出して出力する。 【0083】ここで、図10に示すハフマン復号化器において、3つの復号化データ(復号化データRS1、復号化データRS2_1および復号化データRS2_2)に基づいて3つのDCT係数を出力するDCT係数出力部の具体的な構成例について、図11を参照して説明する。図3と図11の同一符号は同一の構成要素を示す。また図11において、符号1031は付加データ抽出部を、符号1032はDCT係数算出部をそれぞれ示す。 【0084】付加データ抽出部1021は、データ抽出部10の抽出データ列Dsの先頭ビットに対して3ビットだけシフトしたビット位置から13ビット分のデータ列を入力し、この入力したデータ列から、復号化データRS2_1に含まれるカテゴリSSSSに基づいて付加データAD2を抽出する。付加データ抽出部1031は、データ抽出部10の抽出データ列Dsの先頭ビットに対して6ビットだけシフトしたビット位置から16ビット分のデータ列を入力し、この入力したデータ列から、復号化データRS2_2に含まれるカテゴリSSSSに基づいて付加データAD3を抽出する。 【0085】DCT係数算出部1022は、付加データ抽出部1021において抽出された付加データAD2と復号化データRS2_1とに基づいて、AC成分のDCT係数D2を算出する。DCT係数算出部1032は、付加データ抽出部1031において抽出された付加データAD3と復号化データRS2_2とに基づいて、AC成分のDCT係数D3を算出する。 【0086】次に、上述した図10および図11に示すハフマン復号化器の動作について説明する。 【0087】図12は、データ抽出部10で抽出される27ビットのデータ列中において、図10の復号部20および復号部41〜復号部410が復号化可能な符号化データの範囲を示す図である。図12に示すように、第1の復号部20は、抽出データ列Dsの先頭ビット‘0’から末尾ビット‘26’までの符号化データを復号化することができる。これに対し、第2の復号部41は抽出データ列Dsのビット‘3’からビット‘12’まで、第2の復号部42はビット‘4’からビット‘13’まで、第2の復号部43はビット‘5’からビット‘14’まで、第2の復号部44はビット‘6’からビット‘15’まで、第2の復号部45はビット‘7’からビット‘16’まで、第2の復号部46はビット‘8’からビット‘17’まで、第2の復号部47はビット‘9’からビット‘18’まで、第2の復号部48はビット‘10’からビット‘19’まで、第2の復号部49はビット‘11’からビット‘20’まで、第2の復号部410はビット‘12’からビット‘21’までの範囲の符号化データをそれぞれ復号化することができる。 【0088】また、抽出データ列Dsの1つ目の符号化データの復号化に用いる復号化データRS1は、第1の復号部20によって生成される。2つ目の符号化データの復号化に用いる復号化データRS2_1は、1つ目の符号化データのデータ長L1に応じて、第2の復号部41〜第2の復号部44のうちの何れかの復号化データから選択される。3つ目の符号化データの復号化に用いる復号化データRS2_2は、1つ目の符号化データのデータ長L1と2つ目の符号化データのデータ長L2との和に応じて、第2の復号部44〜第2の復号部410のうちの何れかの復号化データから選択される。 【0089】図13は、抽出データ列Dsに含まれる3つの符号化データの一例を示す図である。図13において、抽出データ列Dsの先頭ビット‘0’からビット‘5’までの6ビット分が1つ目の符号化データ1、ビット‘6’からビット‘10’までの5ビット分が2つ目の符号化データ2、ビット‘11’からビット‘20’までの10ビット分が3つ目の符号化データ3となっている。また符号化データ1の前半3ビットはハフマン符号、後半3ビットは付加ビットとなっている。符号化データ2の前半2ビットはハフマン符号、後半3ビットは付加ビットとなっている。符号化データ3の前半5ビットはハフマン符号、後半5ビットは付加ビットとなっている。 【0090】この場合、抽出データDsの先頭ビット‘0’から16ビット分のデータ列が第1の復号部20に入力され、その入力されたデータ列の先頭3ビットからハフマン符号が検索される。そして、検索されたハフマン符号に対応したゼロランレングスRRRRおよびカテゴリSSSSが復号化データRS1として出力される。 【0091】第1の復号部20の復号化データRS1は、DCT係数出力部101に入力され、この復号化データRS1と抽出データ列Dsとに基づいて、符号化データ1のDCT係数D1が算出される。 【0092】第1のデータ長算出部30のおいては、この復号化データRS1のカテゴリSSSSで指定される付加ビットのデータ長と、復号化データRS1に対応するハフマン符号のデータ長との和に応じて、符号化データ1のデータ長L1が算出される。図13の例では、ハフマン符号の3ビットと付加ビットの3ビットとの和から、データ長L1として6ビットが算出される。 【0093】算出されたデータ長L1は選択部51に入力され、このデータ長L1に応じて第2の復号部が選択される。図13の例では、抽出データ列Dsの先頭ビット‘0’に対して7ビット目のビット‘6’からハフマン符号の検索を行う第2の復号部44が選択される。そして、その復号化データRS24および検索エラー信号Esr4が、それぞれ復号化データRS2_1および検索エラー信号Esr_1として選択部51から出力される。 【0094】ただし、図13の例では、符号化データ1のデータ長は6ビットであり、3ビット〜6ビットの範囲に含まれているので、この場合、選択エラー信号Esel_1は出力されない。また、符号化データ2のハフマン符号は2ビットであり、5ビットを越えていないので、第2の復号部44から検索エラー信号Esr4は出力されない。したがって、選択部51から検索エラー信号Esr_1は出力されない。 【0095】選択部51において選択された復号化データRS2_1は、DCT係数出力部102に入力され、この復号化データRS2_1と抽出データ列Dsとに基づいて、符号化データ2のDCT係数D2が算出される。 【0096】第2のデータ長算出部61においては、この復号化データRS2_1のカテゴリSSSSで指定される付加ビットのデータ長と、復号化データRS2_1に対応するハフマン符号のデータ長との和に応じて、符号化データ2のデータ長L2が算出される。図13の例では、ハフマン符号の2ビットと付加ビットの3ビットとの和から、データ長L2として5ビットが算出される。 【0097】算出されたデータ長L1とデータ長L2は、ともに選択部52に入力され、データ長L1とデータ長L2との和に応じて第2の復号部が選択される。図13の例では、抽出データ列Dsのビット‘11’からハフマン符号の検索を行う第2の復号部49が選択される。そして、その復号化データRS29および検索エラー信号Esr9が、それぞれ復号化データRS2_2および検索エラー信号Esr_2として選択部52から出力される。 【0098】選択部52において選択された復号化データRS2_2は、DCT係数出力部103に入力され、この復号化データRS2_2と抽出データ列Dsとに基づいて、符号化データ3のDCT係数D3が算出される。 【0099】ただし、図13の例において、符号化データ1と符号化データ2のデータ長の和は11ビットであり、6ビット〜12ビットの範囲に含まれているので、この場合、選択エラー信号Esel_1は出力されない。また、符号化データ3のハフマン符号は5ビットであり、5ビットを越えていないので、第2の復号部49から検索エラー信号Esr9は出力されない。したがって、選択部52から検索エラー信号Esr_2は出力されない。 【0100】算出されたデータ長L1〜データ長L3は、ともにデータ抽出位置シフト部80’に入力され、第1の無効信号Siv_1および第2の無効信号Siv_2が何れも生成されていない場合に、これらのデータ長の総和に応じたシフト信号Sftが生成される。この場合、図13の例では、抽出データ列Dsのビット‘21’にデータ抽出位置がシフトされ、次の3つの符号化データはこの位置から復号化される。第1の無効信号Siv_1が生成されている場合には、復号化データRS2_1および復号化データRS2_2が共に無効であるので、データ長L2およびデータ長L3によるシフト分は無視され、データ長L1のみに応じたシフト信号Sftが生成される、この場合、図13の例では、抽出データ列Dsのビット‘6’にデータ抽出位置がシフトされる。第2の無効信号Siv_2が生成されている場合には、復号化データRS2_2が無効であるので、データ長L3によるシフト分は無視され、データ長L1とデータ長L2との和に応じたシフト信号Sftが生成される、この場合、図13の例では、抽出データ列Dsのビット‘11’にデータ抽出位置がシフトされる。 【0101】また、復号部20から出力される復号化データRS1、選択部51から出力される復号化データRS2_1、および選択部52から出力される復号化データRS2_2は共に計数部90’に入力され、これらの復号化データに含まれるゼロランレングスRRRRから、単位ブロック内で復号化されたAC成分の数が計数される。計数値Scntが63個を越える場合において、64個のDCT計数からなる単位ブロックの末尾のデータが符号化データ1に含まれる場合には第1の計数エラー信号Ecnt_1が生成され、符号化データ2に含まれる場合には第2の計数エラー信号Ecnt_2が生成される。この末尾のデータが符号化データ3に含まれる場合は、計数値Scntが63個を越えないので、計数エラー信号は生成されない。 【0102】図13の例では、第1の選択エラー信号Esel_1、第2の選択エラー信号Ssel_2、検索エラー信号Esr_1および検索エラー信号Esr_2は何れも出力されていないので、これによる無効信号は生成されない。復号化データRS1に単位ブロックの末尾を示す符号EOBが含まれる場合や、計数部90’において第1の計数エラー信号Ecnt_1が出力される場合に、第1の無効信号Siv_1が生成される。また、復号化データRS2_1に単位ブロックの末尾を示す符号EOBが含まれる場合や、計数部90’において第2の計数エラー信号Ecnt_2が出力される場合に、第2の無効信号Siv_2が生成される。 【0103】図14は、符号化データ3のハフマン符号長が5ビットを越えるために検索エラー信号Esrが出力される例を示す。図14において、抽出データ列Dsの先頭ビット‘0’からビット‘4’までの5ビット分が1つ目の符号化データ1、ビット‘5’からビット‘8’までの4ビット分が2つ目の符号化データ2、ビット‘9’からビット‘20’までの12ビットが3つ目の符号化データとなっている。また符号化データ1の前半2ビットはハフマン符号、後半3ビットは付加ビットとなっている。符号化データ2の前半2ビットはハフマン符号、後半2ビットは付加ビットとなっている。符号化データ3の前半6ビットはハフマン符号、後半6ビットは付加ビットとなっている。 【0104】図14の例では、符号化データ1のデータ長L1が5ビットなので、選択部51において第2の復号部43が選択される。また、符号化データ1と符号化データ2のデータ長の和は9ビットであるので、選択部52において第2の復号部47が選択される。この第2の復号部47に入力される符号化データ3のハフマン符号長は、図14に示すように6ビットであるため、第2の復号部47ではこのハフマン符号を検索することができず、第2の復号部47から検索エラー信号Esr7が出力される。この検索エラー信号が選択部52において選択されるため、選択部52からは検索エラー信号Esr_2が出力され、第2の無効信号Siv_2が生成される。 【0105】したがって、図14の例では、データ抽出位置シフト部80’においてデータ長L3が無効にされ、データ抽出位置はデータ長L1とデータ長L2との和に応じてシフトされる。すなわち、次の3つの符号化データを復号化する先頭ビットは抽出データ列Dsのビット‘9’に設定される。また、第2の無効信号Siv_2が生成されるため、DCT係数出力部103から出力されるDCT係数D3は、逆量子化器1003および逆DCT器1004において無効なデータとして処理される。さらに、復号化データRS2_2のゼロランレングスRRRRに対応する復号化数は計数部90’において無効とされ、この分の復号化数は計数値Scntに加算されない。 【0106】図15は、符号化データ1のデータ長と符号化データ2のデータ長との和が6ビット〜12ビットの範囲に含まれないために、第2の選択エラー信号Esel_2が出力される例を示す。図15において、抽出データ列Dsの先頭ビット‘0’からビット‘5’までの6ビット分が1つ目の符号化データ1、ビット‘6’からビット‘15’までの10ビット分が2つ目の符号化データ2、ビット‘16’からビット‘20’までの5ビット分が3つ目の符号化データ3となっている。また符号化データ1の前半3ビットはハフマン符号、後半3ビットは付加ビットとなっている。符号化データ2の前半5ビットはハフマン符号、後半5ビットは付加ビットとなっている。符号化データ3の前半2ビットはハフマン符号、後半3ビットは付加ビットとなっている。 【0107】図15の例では、符号化データ1のデータ長L1が6ビットであるので、選択部51においては第2の復号部44が選択される。一方、符号化データ1のデータ長L1と符号化データ長L2との和は16ビットであり、6ビット〜12ビットの範囲を越えているので、選択部52においては第2の復号部を選択することができず、第2の選択エラー信号Esel_2が出力される。これにより、無効信号生成部72において第2の無効信号Siv_2が生成される。 【0108】したがって、図15の例においても図14と同様に、データ抽出位置シフト部80’においてデータ長L3が無効にされ、データ抽出位置はデータ長L1とデータ長L2との和に応じてシフトされる。この例において、次に抽出される符号化データの先頭ビットは、抽出データ列Dsのビット‘16’に設定される。また、第2の無効信号Siv_2が生成されるため、DCT係数出力部103から出力されるDCT係数D3は、逆量子化器1003および逆DCT器1004において無効なデータとして処理される。さらに、復号化データRS2_2のゼロランレングスRRRRに対応する復号化数は計数部90’において無効とされ、この分の復号化数は計数値Scntに加算されない。 【0109】図16は、符号化データ1のデータ長が3ビット〜6ビットの範囲に含まれないために、第1の選択エラー信号Esel_1が出力される例を示す。図16において、抽出データ列Dsの先頭ビット‘0’からビット‘6’までの7ビット分が1つ目の符号化データ1、ビット‘7’からビット‘11’までの5ビット分が2つ目の符号化データ2、ビット‘12’からビット‘21’までの10ビット分が3つ目の符号化データ3となっている。また符号化データ1の前半4ビットはハフマン符号、後半3ビットは付加ビットとなっている。符号化データ2の前半2ビットはハフマン符号、後半3ビットは付加ビットとなっている。符号化データ3の前半5ビットはハフマン符号、後半5ビットは付加ビットとなっている。 【0110】図16の例では、符号化データ1のデータ長L1が7ビットであり、3ビット〜6ビットの範囲を越えているので、選択部51においては第2の復号部を選択することができず、第1の選択エラー信号Esel_1が出力される。これにより、無効信号生成部71において第1の無効信号Siv_1が生成される。 【0111】第1の無効信号Siv_1が生成されると、第2の無効信号Sivが出力されているか否かに関わらず、復号化データRS2_1および復号化データRS2_2が何れも無効になる。したがって、図16の例では、データ抽出位置シフト部80’においてデータ長L2およびデータ長L3が共に無効にされ、データ抽出位置はデータ長L1のみに応じてシフトされる。この例において、次に抽出される符号化データの先頭ビットは、抽出データ列Dsのビット‘7’に設定される。また、第1の無効信号Siv_1が生成されるため、DCT係数出力部102から出力されるDCT係数D2およびDCT係数出力部103から出力されるDCT係数D3は、逆量子化器1003および逆DCT器1004において何れも無効なデータとして処理される。さらに、復号化データRS2_1および復号化データRS2_2のゼロランレングスRRRRに対応する復号化数は、計数部90’において何れも無効とされ、この分の復号化数は計数値Scntに加算されない。 【0112】ところで、図10のハフマン復号化器において3つの符号化データが同時に復号化できるのは、1つ目の符号化データのデータ長が3ビット〜6ビットとなり、2つ目の符号化データのデータ長も3〜6ビットとなり、かつ、3つ目の符号化データのハフマン符号長が5ビット以内の場合である。図8および図9の例を参照して、それぞれのハフマン符号が出現する頻度を掛け合わせると、3つの符号化データを同時に復号化できる頻度は、70%×70%×85%=約42%となる。また、図10のハフマン復号化器において1つの符号化データしか復号化できないのは、1つ目の符号化データのデータ長が3ビット〜6ビットの範囲に含まれない場合であり、その頻度は約30%である。したがって、図10のハフマン復号化器において同時に復号化できる符号化データの平均数は、1×30%+2×(100%−42%−30%)+3×42%=約2.1個となる。このように、図10のハフマン符号器では、図17に示す従来例と同等以上の速さでハフマン符号化されたデータストリームを復号化できる。また、図17に示す従来例と比較して、必要なハフマン復号化用データテーブルの記憶容量を小さくすることができるので、回路構成を簡略化できる。 【0113】なお、本発明は上述した実施形態に限定されず、当業者に自明な種々の改変が可能である。例えば、本発明の実施形態を説明するための例としてJPEG復号化装置を示しているが、本発明はこの例に限定されない。同様な他の方式で符号化されたデータストリームのデータ復号化装置にも、本発明は適用可能である。 【0114】本発明の実施形態を説明するための例において処理されるデータのデータ長やビット位置、第2の復号部などのブロックの数は、本発明を何ら限定するものではなく、何れも任意に改変可能である。 【0115】図10の例では、選択部51において4つの復号部(第2の復号部41〜第2の復号部44)から1つを選択させているが、この選択する復号部を更に増やすこともできる。例えば、10個全ての復号部(第2の復号部41〜第2の復号部410)から1つを選択させても良い。これにより、2つ目の符号化データを復号化できる確率が高くなるので、復号化の効率を更に高めることができる。 【0116】上述した第2の実施形態においては3つの符号化データを同時に復号化可能なハフマン復号化器の例が示されているが、本発明によれば、4つ以上の符号化データを同時に復号化できるデータ復号化装置も実現可能である。 【0117】 【発明の効果】本発明によれば、可変長符号化されたデータストリームを、簡易な構成で高速に復号化できる。
|
| 【出願人】 |
【識別番号】000002185 【氏名又は名称】ソニー株式会社 【住所又は居所】東京都品川区北品川6丁目7番35号
|
| 【出願日】 |
平成13年12月4日(2001.12.4) |
| 【代理人】 |
【識別番号】100094053 【弁理士】 【氏名又は名称】佐藤 隆久
|
| 【公開番号】 |
特開2003−174366(P2003−174366A) |
| 【公開日】 |
平成15年6月20日(2003.6.20) |
| 【出願番号】 |
特願2001−370406(P2001−370406) |
|