(57)【要約】      （修正有）【課題】待機時間を削減することによって復号処理の高速化を図ることが可能な、画像処理装置を得る。【解決手段】復号部１は、ＮＤ復号部ＤＣ０〜ＤＣ１５を有し、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤを復号する第１の処理部と、ＦＬＥＸ ＢＩＴ群ＰＦＢを復号する第２の処理部と、セレクタ４とを備える。第２の処理部によるＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号処理に並行して、ＮＤ復号部ＤＣ０〜ＤＣ１５は、データストリームＤＳにおける復号処理の開始位置を異ならせて、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理を実行する。セレクタ４は、第２の処理部によるＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号処理の結果に基づいて、ＮＤ復号部ＤＣ０〜ＤＣ１５のうち、ＦＬＥＸ ＢＩＴ群ＰＦＢ０の終端位置に連続する位置が復号処理の開始位置に設定されている一つのＮＤ復号部ＤＣを選択する。【選択図】図１
2010093522.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロック内に含まれる複数のデータを復号する画像処理装置であって、
各前記ブロック内には、複数のデータが含まれ、
各前記データは、上位側の桁範囲内の上位データと、下位側の桁範囲内の下位データとを有し、
前記画像処理装置には、第１ブロックの上位データ群と、第１ブロックの下位データ群と、第２ブロックの上位データ群とがこの順に並ぶデータストリームが入力され、
前記画像処理装置は、
複数の復号部を有し、上位データ群を復号する第１の処理部と、
下位データ群を復号する第２の処理部と、
前記複数の復号部のうちの一つを選択する選択部と
を備え、
前記第２の処理部による前記第１ブロックの下位データ群に関する復号処理に並行して、前記複数の復号部は、前記データストリームにおける復号処理の開始位置を異ならせて、前記第２ブロックの上位データ群に関する復号処理を実行し、
前記選択部は、前記第２の処理部による前記第１ブロックの下位データ群に関する復号処理の結果に基づいて、前記複数の復号部のうち、前記第１ブロックの下位データ群の終端位置に連続する位置が復号処理の開始位置に設定されている一つの復号部を選択する、画像処理装置。
【請求項２】
各前記ブロック内には、Ｎ個（Ｎは２以上の自然数）の前記データが含まれ、
前記第１の処理部は、Ｎ＋１個の前記復号部を有する、請求項１に記載の画像処理装置。
【請求項３】
前記第１ブロックの上位データ群に関する復号処理の結果に基づいて、前記データストリームにおける前記第２ブロックの上位データの開始位置に関する候補位置を求める、第３の処理部をさらに備え、
前記Ｎ＋１個の前記復号部のうち、前記候補位置の個数に相当する個数の復号部のみが、前記第２ブロックの上位データ群に関する復号処理を実行する、請求項２に記載の画像処理装置。
【請求項４】
各前記ブロック内には、Ｎ個（Ｎは２以上の自然数）の前記データが含まれ、
前記第１の処理部は、Ｍ個（Ｍは２以上でＮ以下の自然数）の前記復号部を有し、
前記Ｍ個の前記復号部の中に、前記終端位置に連続する位置が復号処理の開始位置に設定されていた復号部が存在しない場合には、前記Ｍ個の前記復号部のうちの任意の一つの復号部によって、前記終端位置に連続する位置を開始位置として、前記第２ブロックの上位データ群に関する復号処理が実行される、請求項１に記載の画像処理装置。
【請求項５】
前記第１ブロックの上位データ群に関する復号処理の結果に基づいて、前記データストリームにおける前記第２ブロックの上位データの開始位置に関する候補位置を求める、第３の処理部をさらに備え、
前記候補位置の個数がＭ個未満である場合には、前記Ｍ個の前記復号部のうち、前記候補位置の個数に相当する個数の復号部のみが、前記第２ブロックの上位データ群に関する復号処理を実行する、請求項４に記載の画像処理装置。
【請求項６】
前記データは、ＨＤ Ｐｈｏｔｏにおけるハイパス成分又はローパス成分の周波数データである、請求項１〜５のいずれか一つに記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関し、特に、ＨＤ Ｐｈｏｔｏにおけるデコーダに関する。
【背景技術】
【０００２】
近年、ＪＰＥＧよりも高画質で、ＪＰＥＧ２０００よりも回路構成及び演算処理が簡素化された静止画ファイルフォーマットとして、マイクロソフト社よりＨＤ Ｐｈｏｔｏ（又はＪＰＥＧ ＸＲ）が提案されている。
【０００３】
ＨＤ Ｐｈｏｔｏにおけるエンコーダは、色変換部、プレフィルタ、周波数変換部、量子化部、予測部、及び符号化部を備えて構成されている。
【０００４】
周波数変換部は、入力された画素信号に対して所定の周波数変換処理（ＰＣＴ）を実行することにより、ハイパス成分、ローパス成分、及び直流成分の周波数データ（係数データ）を出力する。縦１６画素×横１６画素の１個のマクロブロック内には、輝度Ｙ、色差Ｕ、及び色差Ｖの各々毎に、ハイパス成分の２４０個の周波数データと、ローパス成分の１５個の周波数データと、直流成分の１個の周波数データとが含まれる。
【０００５】
量子化部は、周波数変換部から入力された各成分の周波数データのうち、量子化係数で規定される桁数に相当する下位データをそれぞれ削除することにより、量子化後の周波数データ（ハイパス成分、ローパス成分、及び直流成分）を出力する。
【０００６】
符号化部は、予測部から入力された各成分の周波数データを、上位側の桁範囲内の上位データ（ＮＯＲＭＡＬ ＤＡＴＡ）と、下位側の桁範囲内の下位データ（ＦＬＥＸ ＢＩＴ）とに分割する。そして、符号化部は、各成分のＮＯＲＭＡＬ ＤＡＴＡに対して、エントロピー符号化処理をそれぞれ実行して出力する。また、符号化部は、各成分のＦＬＥＸ ＢＩＴを、エントロピー符号化することなく出力する。
【０００７】
また、ＨＤ Ｐｈｏｔｏにおけるデコーダは、色逆変換部、ポストフィルタ、周波数逆変換部、逆量子化部、逆予測部、及び復号部を備えて構成されている。デコーダは、エンコーダにおける処理と逆順序の処理を実行することによって、符号化された周波数データから画素信号を復元する。
【０００８】
なお、ＨＤ Ｐｈｏｔｏの詳細については、例えば下記非特許文献１に開示されており、ＪＰＥＧ ＸＲの詳細については、例えば下記非特許文献２又は下記非特許文献３に開示されている。
【０００９】
【非特許文献１】"HD Photo -Photographic Still Image File Format", [online], ２００６年１１月７日, Microsoft Corporation, [２００７年１０月１０日検索], インターネット＜URL: http://www.microsoft.com/whdc/xps/hdphotodpk.mspx＞
【非特許文献２】"Coding of Still Pictures -JBIG JPEG", [online], 19 December 2007, ISO/IEC JTC 1/SC 29/WG1 N 4392, [２００８年３月４日検索], インターネット＜URL: http://www.itscj.ipsj.or.jp/sc29/open/29view/29n9026t.doc＞
【非特許文献３】"Coding of Still Pictures -JBIG JPEG", [online], 14 September 2008, ISO/IEC JTC 1/SC 29/WG1 N 4739, [２００８年９月１７日検索], インターネット＜URL: http://www.itscj.ipsj.or.jp/sc29/open/29view/29n9749t.doc＞
【発明の開示】
【発明が解決しようとする課題】
【００１０】
図１０は、ＨＤ Ｐｈｏｔｏにおける一つの周波数データＦＤを示す図である。周波数データＦＤは、エンコーダの符号化部によって、上位側の桁範囲Ｒ１内のＮＯＲＭＡＬ ＤＡＴＡ（以下「ＮＤ」と略称する場合もある）と、下位側の桁範囲Ｒ２内のＦＬＥＸ ＢＩＴ（以下「ＦＢ」と略称する場合もある）とに分割される。桁範囲Ｒ１と桁範囲Ｒ２との境界（つまりＦＬＥＸ ＢＩＴのデータ長）は、所定のパラメータ（ＭＯＤＥＬ ＢＩＴ）によって任意に設定可能である。
【００１１】
図１１は、ＨＤ Ｐｈｏｔｏにおけるデコーダのうち、復号部における処理の流れを簡略化して示すフローチャートである。まずステップＳＰ１において、直流成分（ＤＣ成分）の周波数データに関する復号処理が実行される。但し、処理対象であるマクロブロック内の全ての直流成分のＮＯＲＭＡＬ ＤＡＴＡがゼロである場合には、そのマクロブロックに関してはステップＳＰ１の処理は実行されずにパスされる。
【００１２】
次にステップＳＰ２において、ローパス成分（ＬＰ成分）の周波数データに関する復号処理が実行される。但し、上記と同様に、処理対象であるマクロブロック内の全てのローパス成分のＮＯＲＭＡＬ ＤＡＴＡがゼロである場合には、そのマクロブロックに関してはステップＳＰ２の処理は実行されずにパスされる。
【００１３】
次にステップＳＰ３において、ハイパス成分（ＨＰ成分）の周波数データに関する復号処理が実行される。但し、上記と同様に、処理対象であるマクロブロック内の全てのハイパス成分のＮＯＲＭＡＬ ＤＡＴＡがゼロである場合には、そのマクロブロックに関してはステップＳＰ３の処理は実行されずにパスされる。
【００１４】
次にステップＳＰ４において、全てのマクロブロック（ＭＢ）に関する復号処理が完了したか否かが判定される。未処理のマクロブロックが残っている場合（つまりステップＳＰ４における判定の結果が「ＮＯ」である場合）は、ステップＳＰ５において処理対象が次のマクロブロックに更新された後、ステップＳＰ１以降の処理が再び実行される。一方、全てのマクロブロックに関する処理が完了した場合（つまりステップＳＰ４における判定の結果が「ＹＥＳ」である場合）は、処理が終了される。
【００１５】
図１２は、図１１に示したハイパス成分の復号処理（ステップＳＰ３）を具体的に示すフローチャートである。まずステップＳＰ３１において、処理対象であるブロック内に、ゼロではないＮＯＲＭＡＬ ＤＡＴＡが少なくとも１個含まれているか否かが判定される。
【００１６】
ゼロではないＮＯＲＭＡＬ ＤＡＴＡが含まれている場合（つまりステップＳＰ３１における判定の結果が「ＹＥＳ」である場合）は、次にステップＳＰ３２において、そのブロック内に含まれている１５個のＮＯＲＭＡＬ ＤＡＴＡに関して、復号処理が実行される。一方、そのブロック内に含まれている全てのＮＯＲＭＡＬ ＤＡＴＡがゼロである場合（つまりステップＳＰ３１における判定の結果が「ＮＯ」である場合）は、そのブロックに関してはステップＳＰ３２の処理は実行されずにパスされる。
【００１７】
次にステップＳＰ３３において、そのブロック内に含まれている１５個のＦＬＥＸ ＢＩＴに関して、復号処理が実行される。
【００１８】
次にステップＳＰ３４において、全てのブロックに関する復号処理が完了したか否かが判定される。未処理のブロックが残っている場合（つまりステップＳＰ３４における判定の結果が「ＮＯ」である場合）は、ステップＳＰ３５において処理対象が次のブロックに更新された後、ステップＳＰ３１以降の処理が再び実行される。
【００１９】
一方、全てのブロックに関する処理が完了した場合（つまりステップＳＰ３４における判定の結果が「ＹＥＳ」である場合）は、次にステップＳＰ３６において、Ｙ成分、Ｕ成分、及びＶ成分の全てに関する処理が完了したか否かが判定される。未処理の成分が残っている場合（つまりステップＳＰ３６における判定の結果が「ＮＯ」である場合）は、ステップＳＰ３７において処理対象が次の成分に更新された後、ステップＳＰ３１以降の処理が再び実行される。一方、全ての成分に関する処理が完了した場合（つまりステップＳＰ３６における判定の結果が「ＹＥＳ」である場合）は、処理が終了される。
【００２０】
図１３は、ＨＤ Ｐｈｏｔｏにおけるデコーダのうち、復号部１０１の構成を示すブロック図である。復号部１０１は、バレルシフタ１０２と、ＮＯＲＭＡＬ ＤＡＴＡを復号するＮＤ復号部１０３と、ＦＬＥＸ ＢＩＴを復号するＦＢ復号部１０４と、処理部１０５とを備えて構成されている。
【００２１】
上記の通り、１個のマクロブロック内には、ハイパス成分の２４０個の周波数データと、ローパス成分の１５個の周波数データと、直流成分の１個の周波数データとが含まれている。復号部１０１は、ハイパス成分及びローパス成分に関しては、１５個の周波数データを含むブロックを処理単位として、復号処理を実行する。従って、復号部１０１は、１個のマクロブロックに関して、ハイパス成分の１６個のブロックと、ローパス成分の１個のブロックとを処理する。
【００２２】
以下、ハイパス成分の周波数データに対する復号処理について説明する。図１３を参照して、バレルシフタ１０２には、符号化された周波数データに関するデータストリームＤＳが入力される。
【００２３】
図１４は、データストリームＤＳの一部を示す図である。データストリームＤＳにおいては、第０ブロックに関する１５個のＮＯＲＭＡＬ ＤＡＴＡを含むＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０、第０ブロックに関する１５個のＦＬＥＸ ＢＩＴを含むＦＬＥＸ ＢＩＴ群ＰＦＢ０、第１ブロックに関する１５個のＮＯＲＭＡＬ ＤＡＴＡを含むＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１、第１ブロックに関する１５個のＦＬＥＸ ＢＩＴを含むＦＬＥＸ ＢＩＴ群ＰＦＢ１、・・・がこの順に並んでいる。
【００２４】
図１３，１４を参照して、まず、バレルシフタ１０２は、時刻Ｔ１において、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０（図１３におけるデータＤ１０１）を、ＮＤ復号部１０３に入力する。ＮＤ復号部１０３は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０をエントロピー復号することにより、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０に関する復号データＤ１０２を出力する。ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０に関する復号データＤ１０２は、処理部１０５に入力される。また、ＮＤ復号部１０３は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０に関する復号処理が完了した後、データストリームＤＳにおけるＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０の終端位置に関する情報を、データＤ１０３としてバレルシフタ１０２に通知する。
【００２５】
次に、バレルシフタ１０２は、時刻Ｔ２において、ＦＬＥＸ ＢＩＴ群ＰＦＢ０（図１３におけるデータＤ１０４）を、ＦＢ復号部１０４に入力する。ここで、バレルシフタ１０２は、ＮＤ復号部１０３から入力されたデータＤ１０３に基づき、データストリームＤＳにおけるＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０の終端位置に連続する位置を、ＦＬＥＸ ＢＩＴ群ＰＦＢ０の先頭位置として設定する。ＦＢ復号部１０４は、ＦＬＥＸ ＢＩＴ群ＰＦＢ０を復号することにより、ＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号データＤ１０５を出力する。ＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号データＤ１０５は、処理部１０５に入力される。また、ＦＢ復号部１０４は、ＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号処理が完了した後、データストリームＤＳにおけるＦＬＥＸ ＢＩＴ群ＰＦＢ０の終端位置に関する情報を、データＤ１０６としてバレルシフタ１０２に通知する。
【００２６】
次に、バレルシフタ１０２は、時刻Ｔ３において、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１（図１３におけるデータＤ１０１）を、ＮＤ復号部１０３に入力する。ここで、バレルシフタ１０２は、ＦＢ復号部１０４から入力されたデータＤ１０６に基づき、データストリームＤＳにおけるＦＬＥＸ ＢＩＴ群ＰＦＢ０の終端位置に連続する位置を、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の先頭位置として設定する。ＮＤ復号部１０３は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１をエントロピー復号することにより、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号データＤ１０２を出力する。ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号データＤ１０２は、処理部１０５に入力される。また、ＮＤ復号部１０３は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理が完了した後、データストリームＤＳにおけるＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の終端位置に関する情報を、データＤ１０３としてバレルシフタ１０２に通知する。
【００２７】
以降は同様にして、ＦＬＥＸ ＢＩＴ群ＰＦＢ１、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ２、ＦＬＥＸ ＢＩＴ群ＰＦＢ２、・・・の復号処理が順に実行される。処理部１０５は、ＮＤ復号部１０３から入力された複数の復号データＤ１０２、及びＦＢ復号部１０４から入力された複数の復号データＤ１０５に対して、データの並び替え及び結合等の処理を実行し、処理後の復号データを次段の処理回路（逆予測部）に送出する。
【００２８】
図１３，１４に示した例によると、ＮＯＲＭＡＬ ＤＡＴＡ群に関する復号処理と、ＦＬＥＸ ＢＩＴ群に関する復号処理とがシリアルに実行されている。従って、あるＮＯＲＭＡＬ ＤＡＴＡ群に関する復号処理が完了しても、そのＮＯＲＭＡＬ ＤＡＴＡ群に対応するＦＬＥＸ ＢＩＴ群に関する復号処理が完了するまで、次のＮＯＲＭＡＬ ＤＡＴＡ群に関する復号処理の開始を待機する必要がある。ＨＤ Ｐｈｏｔｏにおけるデコーダでは、この待機時間が復号処理におけるボトルネックとなっている。
【００２９】
本発明はかかる事情に鑑みて成されたものであり、待機時間を削減することによって復号処理の高速化を図ることが可能な、画像処理装置を得ることを目的とする。
【課題を解決するための手段】
【００３０】
本発明の第１の態様に係る画像処理装置は、複数のブロック内に含まれる複数のデータを復号する画像処理装置であって、各前記ブロック内には、複数のデータが含まれ、各前記データは、上位側の桁範囲内の上位データと、下位側の桁範囲内の下位データとを有し、前記画像処理装置には、第１ブロックの上位データ群と、第１ブロックの下位データ群と、第２ブロックの上位データ群とがこの順に並ぶデータストリームが入力され、前記画像処理装置は、複数の復号部を有し、上位データ群を復号する第１の処理部と、下位データ群を復号する第２の処理部と、前記複数の復号部のうちの一つを選択する選択部とを備え、前記第２の処理部による前記第１ブロックの下位データ群に関する復号処理に並行して、前記複数の復号部は、前記データストリームにおける復号処理の開始位置を異ならせて、前記第２ブロックの上位データ群に関する復号処理を実行し、前記選択部は、前記第２の処理部による前記第１ブロックの下位データ群に関する復号処理の結果に基づいて、前記複数の復号部のうち、前記第１ブロックの下位データ群の終端位置に連続する位置が復号処理の開始位置に設定されている一つの復号部を選択することを特徴とするものである。
【００３１】
第１の態様に係る画像処理装置によれば、第１の処理部は、複数の復号部を有する。そして、複数の復号部は、第２の処理部による第１ブロックの下位データ群に関する復号処理に並行して、第２ブロックの上位データ群に関する復号処理を実行する。従って、第２ブロックの上位データ群に関する復号処理の開始を、第１ブロックの下位データ群に関する復号処理が完了するまで待機する必要がない。その結果、待機時間が削減されることによって、復号処理の高速化を図ることが可能となる。
【００３２】
しかも、複数の復号部は、データストリームにおける復号処理の開始位置を異ならせて、第２ブロックの上位データ群に関する復号処理を実行する。そして、選択部は、複数の復号部のうち、第１ブロックの下位データ群の終端位置に連続する位置が復号処理の開始位置に設定されている一つの復号部を選択する。従って、第１ブロックの下位データ群が可変長であることに起因して、データストリームにおける第２ブロックの上位データ群の開始位置が変化する場合にも、適切に対応することが可能となる。つまり、予め開始位置を異ならせた複数のパターンで第２ブロックの上位データ群に関する復号処理を実行しておくことにより、第１ブロックの下位データ群に関する復号処理が完了してデータ長が確定した時点で、複数のパターンの中から適切な一つを選択することができる。その結果、第２ブロックの上位データ群に関して、正確な復号データを得ることが可能となる。
【００３３】
本発明の第２の態様に係る画像処理装置は、第１の態様に係る画像処理装置において特に、各前記ブロック内には、Ｎ個（Ｎは２以上の自然数）の前記データが含まれ、前記第１の処理部は、Ｎ＋１個の前記復号部を有することを特徴とするものである。
【００３４】
第１ブロックの下位データ群のデータ長は、Ｎ個の下位データのうち１ビットの符号ビットが付加されるデータの個数に応じて、Ｎ＋１通りのパターンとなる。従って、データストリームにおける第２ブロックの上位データ群の開始位置も、最大でＮ＋１通りのパターンが想定される。第２の態様に係る画像処理装置によれば、第１の処理部はＮ＋１個の復号部を有しているため、Ｎ＋１通りの全てのパターンに関して、第２ブロックの上位データ群の復号処理を実行することができる。従って、Ｎ＋１個の復号部によって得られるＮ＋１個の復号データの中には、復号処理の開始位置が適切に設定された適切な復号データが必ず存在する。仮にそのような適切な復号データが存在しない場合には、第１ブロックの下位データ群に関する復号処理が完了した後に、第２ブロックの上位データ群に関する復号処理を再実行する必要があるが、第２の態様に係る画像処理装置によれば、適切な復号データが必ず存在するため、復号処理の再実行が必要となる可能性はなく、その結果、復号処理の高速化を図ることが可能となる。
【００３５】
本発明の第３の態様に係る画像処理装置は、第２の態様に係る画像処理装置において特に、前記第１ブロックの上位データ群に関する復号処理の結果に基づいて、前記データストリームにおける前記第２ブロックの上位データの開始位置に関する候補位置を求める、第３の処理部をさらに備え、前記Ｎ＋１個の前記復号部のうち、前記候補位置の個数に相当する個数の復号部のみが、前記第２ブロックの上位データ群に関する復号処理を実行することを特徴とするものである。
【００３６】
第３の態様に係る画像処理装置によれば、候補位置が絞られることによって必ずしもＮ＋１個の復号部の全てを駆動する必要がない場合には、余剰の駆動部を駆動させないことにより、消費電力の低減を図ることが可能となる。
【００３７】
本発明の第４の態様に係る画像処理装置は、第１の態様に係る画像処理装置において特に、各前記ブロック内には、Ｎ個（Ｎは２以上の自然数）の前記データが含まれ、前記第１の処理部は、Ｍ個（Ｍは２以上でＮ以下の自然数）の前記復号部を有し、前記Ｍ個の前記復号部の中に、前記終端位置に連続する位置が復号処理の開始位置に設定されていた復号部が存在しない場合には、前記Ｍ個の前記復号部のうちの任意の一つの復号部によって、前記終端位置に連続する位置を開始位置として、前記第２ブロックの上位データ群に関する復号処理が実行されることを特徴とするものである。
【００３８】
第４の態様に係る画像処理装置によれば、第１ブロックの下位データ群のデータ長は、Ｎ個の下位データのうち１ビットの符号ビットが付加されるデータの個数に応じて、Ｎ＋１通りのパターンとなる。従って、データストリームにおける第２ブロックの上位データ群の開始位置も、最大でＮ＋１通りのパターンが想定される。第４の態様に係る画像処理装置によれば、第１の処理部は、Ｎ＋１個の復号部を有するのではなく、それよりも少ないＭ個の復号部を有する。従って、Ｎ＋１個の復号部を設ける場合と比較して、回路規模を削減することが可能となる。第４の態様に係る画像処理装置においては、Ｍ個の復号部によって得られるＭ個の復号データの中に、復号処理の開始位置が適切に設定された復号データが存在しない場合もあり得る。しかし、この場合には、第１ブロックの下位データ群に関する復号処理が完了して終端位置が確定した後に、その終端位置に連続する位置を開始位置として、第２ブロックの上位データ群に関する復号処理を再実行することにより、正確な復号データを得ることが可能となる。
【００３９】
本発明の第５の態様に係る画像処理装置は、第４の態様に係る画像処理装置において特に、前記第１ブロックの上位データ群に関する復号処理の結果に基づいて、前記データストリームにおける前記第２ブロックの上位データの開始位置に関する候補位置を求める、第３の処理部をさらに備え、前記候補位置の個数がＭ個未満である場合には、前記Ｍ個の前記復号部のうち、前記候補位置の個数に相当する個数の復号部のみが、前記第２ブロックの上位データ群に関する復号処理を実行することを特徴とするものである。
【００４０】
第５の態様に係る画像処理装置によれば、候補位置が絞られることによって必ずしもＭ個の復号部の全てを駆動する必要がない場合には、余剰の駆動部を駆動させないことにより、消費電力の低減を図ることが可能となる。
【００４１】
本発明の第６の態様に係る画像処理装置は、第１〜第５のいずれか一つの態様に係る画像処理装置において特に、前記データは、ＨＤ Ｐｈｏｔｏにおけるハイパス成分又はローパス成分の周波数データであることを特徴とするものである。
【００４２】
第６の態様に係る画像処理装置によれば、ＨＤ Ｐｈｏｔｏのハイパス成分に関しては、１個のマクロブロック内には、ＹＵＶの各成分毎に複数個（１６個）のブロックが含まれ、１個のブロック内に複数個（１５個）の周波数データが含まれ、各周波数データは、上位側の桁範囲内のＮＯＲＭＡＬ ＤＡＴＡと、下位側の桁範囲内のＦＬＥＸ ＢＩＴとを有する。また、ＨＤ Ｐｈｏｔｏのローパス成分に関しては、１個のマクロブロック内には、ＹＵＶの各成分毎に１個のブロックが含まれ、１個のブロック内に複数個（１５個）の周波数データが含まれ、各周波数データは、上位側の桁範囲内のＮＯＲＭＡＬ ＤＡＴＡと、下位側の桁範囲内のＦＬＥＸ ＢＩＴとを有する。従って、本発明の適用対象としてＨＤ Ｐｈｏｔｏにおけるデコーダは好適であり、本発明をＨＤ Ｐｈｏｔｏにおけるデコーダに適用することによって、復号処理の高速化を図ることが可能となる。
【発明の効果】
【００４３】
本発明によれば、待機時間を削減することによって復号処理の高速化を図ることが可能となる。
【発明を実施するための最良の形態】
【００４４】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。なお、以下の説明では、本発明をＨＤ Ｐｈｏｔｏにおけるデコーダに適用する例（特にハイパス成分の周波数データに関する復号処理）について述べるが、本発明の適用対象はＨＤ Ｐｈｏｔｏにおけるデコーダに限定されるものではなく、本発明は、複数のブロック内に含まれる複数のデータを復号する任意のデコーダに適用することが可能である。
【００４５】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態に係る画像処理装置の構成を示すブロック図である。特に、図１には、ＨＤ Ｐｈｏｔｏにおけるデコーダのうち、復号部１の構成を示している。復号部１は、バッファ２と、ＮＯＲＭＡＬ ＤＡＴＡを復号する第１の処理部と、ＦＬＥＸ ＢＩＴを復号する第２の処理部と、シフタ制御部３と、処理部５とを備えて構成されている。第１の処理部は、１６個のバレルシフタＢＳ０〜ＢＳ１５と、１６個のＮＤ復号部ＤＣ０〜ＤＣ１５と、セレクタ４とを有している。ＮＤ復号部ＤＣ０〜ＤＣ１５の各入力は、バレルシフタＢＳ０〜ＢＳ１５の各出力にそれぞれ接続されている。セレクタ４の入力は、ＮＤ復号部ＤＣ０〜ＤＣ１５の各出力に接続されている。セレクタ４の出力は、処理部５の入力に接続されている。第２の処理部は、バレルシフタＢＳ１６とＦＢ復号部ＤＣ１６とを有している。ＦＢ復号部ＤＣ１６の入力は、バレルシフタＢＳ１６の出力に接続されている。ＦＢ復号部ＤＣ１６の出力は、処理部５の入力に接続されている。バレルシフタＢＳ０〜ＢＳ１６の各入力は、バッファ２の出力に接続されている。また、シフタ制御部３は、ＮＤ復号部ＤＣ０〜ＤＣ１５、ＦＢ復号部ＤＣ１６、バレルシフタＢＳ０〜ＢＳ１６、及びセレクタ４に接続されている。
【００４６】
バッファ２には、符号化された周波数データに関するデータストリームＤＳが入力され、バッファ２は、入力されたデータストリームＤＳを一時的に保存する。
【００４７】
図２は、データストリームＤＳの一部を示す図である。データストリームＤＳにおいては、第０ブロックに関するＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０、第０ブロックに関するＦＬＥＸ ＢＩＴ群ＰＦＢ０、第１ブロックに関するＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１、第１ブロックに関するＦＬＥＸ ＢＩＴ群ＰＦＢ１、・・・がこの順に並んでいる。
【００４８】
図３は、一つのＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ及び一つのＦＬＥＸ ＢＩＴ群ＰＦＢを並べて示す図である。ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤは１５個のＮＯＲＭＡＬ ＤＡＴＡ（ＮＤ０〜ＮＤ１４）を含み、ＦＬＥＸ ＢＩＴ群ＰＦＢは１５個のＦＬＥＸ ＢＩＴ（ＦＢ０〜ＦＢ１４）を含む。例えばＮＯＲＭＡＬ ＤＡＴＡ（ＮＤ０）は周波数データＦＤ０の上位データに相当し、ＦＬＥＸ ＢＩＴ（ＦＢ０）は周波数データＦＤ０の下位データに相当する。
【００４９】
各周波数データＦＤ０〜ＦＤ１４において、ＮＯＲＭＡＬ ＤＡＴＡの値がゼロでない場合（図３の例ではＦＤ０，ＦＤ３，ＦＤ１４）は、そのＮＯＲＭＡＬ ＤＡＴＡに、１ビットの符号ビット（ＳＢ０，ＳＢ３，ＳＢ１４）が付加されている。また、ＮＯＲＭＡＬ ＤＡＴＡの値がゼロであり、ＦＬＥＸ ＢＩＴの値がゼロでない場合（図３の例ではＦＤ１）は、そのＦＬＥＸ ＢＩＴに、１ビットの符号ビット（ＳＢ１）が付加されている。また、ＮＯＲＭＡＬ ＤＡＴＡの値及びＦＬＥＸ ＢＩＴの値がいずれもゼロである場合（図３の例ではＦＤ２）は、符号ビットは付加されていない。
【００５０】
このように、ＮＯＲＭＡＬ ＤＡＴＡの値及びＦＬＥＸ ＢＩＴの値に応じて、ＦＬＥＸ ＢＩＴに符号ビットが付加される場合とそうでない場合とが生じる。従って、符号ビットが付加されるＦＬＥＸ ＢＩＴの個数に応じて、ＦＬＥＸ ＢＩＴ群ＰＦＢのデータ長は可変である。１５個全てのＦＬＥＸ ＢＩＴに符号ビットが付加されていない場合に、ＦＬＥＸ ＢＩＴ群ＰＦＢのデータ長は最も短くなり、そのデータ長は、“ＭＯＤＥＬ ＢＩＴ＊１５＋０”ビットとなる。１５個全てのＦＬＥＸ ＢＩＴに符号ビットが付加されている場合に、ＦＬＥＸ ＢＩＴ群ＰＦＢのデータ長は最も長くなり、そのデータ長は、“ＭＯＤＥＬ ＢＩＴ＊１５＋１５”ビットとなる。よって、ＦＬＥＸ ＢＩＴ群ＰＦＢのデータ長は、１５個のＦＬＥＸ ＢＩＴのうち１ビットの符号ビットが付加されているＦＬＥＸ ＢＩＴの個数に応じて、１６（＝１５＋１）通りのパターンとなる。
【００５１】
図４は、復号部１による複数のＮＯＲＭＡＬ ＤＡＴＡ群及び複数のＦＬＥＸ ＢＩＴ群の処理順序を示すタイミングチャートである。また、図５は、復号部１によるＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０，ＰＮＤ１及びＦＬＥＸ ＢＩＴ群ＰＦＢ０の処理を詳細に示すタイミングチャートである。以下、図１，４，５を参照して、復号部１の動作について説明する。
【００５２】
まず、バレルシフタＢＳ０は、シフタ制御部３から入力されたデータＡ０に基づいて、時刻Ｔ１において、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０（図１におけるデータＢ０）を、ＮＤ復号部ＤＣ０に入力する。ＮＤ復号部ＤＣ０は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０をエントロピー復号することにより、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０に関する復号データＤ０を出力する。ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０に関する復号データＤ０は、セレクタ４を介して処理部５に入力される。また、ＮＤ復号部ＤＣ０は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０に関する復号処理が完了した後、データストリームＤＳにおけるＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０の終端位置に関する情報を、データＣ０としてシフタ制御部３に通知する。
【００５３】
次に、バレルシフタＢＳ１６は、時刻Ｔ２において、ＦＬＥＸ ＢＩＴ群ＰＦＢ０（図１におけるデータＢ１６）を、ＦＢ復号部ＤＣ１６に入力する。ここで、シフタ制御部３は、ＮＤ復号部ＤＣ０から入力されたデータＣ０に基づき、データストリームＤＳにおけるＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０の終端位置に連続する位置を、ＦＬＥＸ ＢＩＴ群ＰＦＢ０の先頭位置として設定する。そして、シフタ制御部３は、ＦＬＥＸ ＢＩＴ群ＰＦＢ０の先頭位置に関する情報を、データＡ１６としてバレルシフタＢＳ１６に通知する。ＦＢ復号部ＤＣ１６は、ＦＬＥＸ ＢＩＴ群ＰＦＢ０を復号することにより、ＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号データＤ１６を出力する。ＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号データＤ１６は、処理部５に入力される。また、ＦＢ復号部ＤＣ１６は、ＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号処理が完了した後、データストリームＤＳにおけるＦＬＥＸ ＢＩＴ群ＰＦＢ０の終端位置に関する情報を、データＣ１６としてシフタ制御部３に通知する。
【００５４】
また、時刻Ｔ２において、シフタ制御部３は、データストリームＤＳにおけるＦＬＥＸ ＢＩＴ群ＰＦＢ０の先頭位置から、第１の候補ＦＬＥＸ ＢＩＴ群ＰＦＢ００（図５参照）のデータ長である“ＭＯＤＥＬ ＢＩＴ＊１５＋０”ビット後方の位置を、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の第１の先頭候補位置として設定する。ＭＯＤＥＬ ＢＩＴに関する情報は、予めシフタ制御部３に教示されている。そして、シフタ制御部３は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の第１の先頭候補位置に関する情報を、データＡ０としてバレルシフタＢＳ０に通知する。同様に、シフタ制御部３は、ＦＬＥＸ ＢＩＴ群ＰＦＢ０の先頭位置から、第２の候補ＦＬＥＸ ＢＩＴ群ＰＦＢ０１のデータ長である“ＭＯＤＥＬ ＢＩＴ＊１５＋１”ビット後方の位置を、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の第２の先頭候補位置として設定し、その情報をデータＡ１としてバレルシフタＢＳ１に通知する。同様に、シフタ制御部３は、ＦＬＥＸ ＢＩＴ群ＰＦＢ０の先頭位置から、第３の候補ＦＬＥＸ ＢＩＴ群ＰＦＢ０２のデータ長である“ＭＯＤＥＬ ＢＩＴ＊１５＋２”ビット後方の位置を、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の第３の先頭候補位置として設定し、その情報をデータＡ２としてバレルシフタＢＳ２に通知する。バレルシフタＢＳ３〜ＢＳ１５についても同様に、１ビットずつずれた第４〜第１６の先頭候補位置が、データＡ３〜Ａ１５としてシフタ制御部３から通知される。
【００５５】
時刻Ｔ２において、バレルシフタＢＳ０〜ＢＳ１５は、シフタ制御部３から入力されたデータＡ０〜Ａ１５に基づいて、候補ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１０〜ＰＮＤ１１５（図１におけるデータＢ０〜Ｂ１５）を、ＮＤ復号部ＤＣ０〜ＤＣ１５にそれぞれ入力する。ＮＤ復号部ＤＣ０〜ＤＣ１５は、時刻Ｔ２において、候補ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１０〜ＰＮＤ１１５に関するエントロピー復号処理をそれぞれ開始する。
【００５６】
時刻Ｔ３において、ＦＢ復号部ＤＣ１６によるＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号処理が完了すると、ＦＬＥＸ ＢＩＴ群ＰＦＢ０の終端位置に関する情報（データＣ１６）が、ＦＢ復号部ＤＣ１６からシフタ制御部３に通知される。これにより、シフタ制御部３は、１６個の候補ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１０〜ＰＮＤ１１５の中から、正しい１個を選択することができる。図５を参照して、例えば、第３の候補ＦＬＥＸ ＢＩＴ群ＰＦＢ０２の終端位置ＢＸを示すデータＣ１６が通知された場合には、シフタ制御部３は、終端位置ＢＸに連続する位置ＢＹが先頭位置として設定されている候補ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１２を、正しいＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１として選択する。この選択に関する情報はシフタ制御部３からセレクタ４に通知され、セレクタ４は、候補ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１２の復号処理を実行しているＮＤ復号部ＤＣ２を選択する。ＮＤ復号部ＤＣ２から出力されたＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号データＤ２は、セレクタ４を介して処理部５に入力される。また、ＮＤ復号部ＤＣ２は、時刻Ｔ４においてＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理が完了すると、データストリームＤＳにおけるＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の終端位置に関する情報を、データＣ２としてシフタ制御部３に通知する。
【００５７】
以降は、全てのブロックに関する処理が完了するまで、上記と同様の処理が繰り返し実行される。処理部５は、ＮＤ復号部ＤＣ０〜ＤＣ１５から入力された複数の復号データＤ０〜Ｄ１５、及びＦＢ復号部ＤＣ１６から入力された複数の復号データＤ１６に対して、データの並び替え及び結合等の処理を実行し、処理後の復号データを次段の処理回路（逆予測部）に送出する。
【００５８】
第１の実施の形態に係る復号部１によれば、第１の処理部は、複数のＮＤ復号部ＤＣ０〜ＤＣ１５を有する。そして、複数のＮＤ復号部ＤＣ０〜ＤＣ１５は、ＦＢ復号部ＤＣ１６によるＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号処理に並行して、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理を実行する。従って、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理の開始を、ＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号処理が完了するまで待機する必要がない。その結果、待機時間が削減されることによって、復号処理の高速化を図ることが可能となる。
【００５９】
しかも、複数のＮＤ復号部ＤＣ０〜ＤＣ１５は、データストリームＤＳにおける復号処理の開始位置を異ならせて、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理を実行する。そして、セレクタ４は、複数のＮＤ復号部ＤＣ０〜ＤＣ１５のうち、ＦＬＥＸ ＢＩＴ群ＰＦＢ０の終端位置ＢＸに連続する位置ＢＹが復号処理の開始位置に設定されている一つのＮＤ復号部（上記の例ではＮＤ復号部ＤＣ２）を選択する。従って、ＦＬＥＸ ＢＩＴ群ＰＦＢ０が可変長であることに起因して、データストリームＤＳにおけるＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の先頭位置が変化する場合にも、適切に対応することが可能となる。つまり、予め開始位置を異ならせた複数のパターン（候補ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１０〜ＰＮＤ１１５）でＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理を実行しておくことにより、ＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号処理が完了してデータ長が確定した時点で、複数のパターンの中から適切な一つを選択することができる。その結果、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関して、正確な復号データを得ることが可能となる。
【００６０】
また、ＦＬＥＸ ＢＩＴ群ＰＦＢ０のデータ長は、１５個のＦＬＥＸ ＢＩＴのうち１ビットの符号ビットが付加されるデータの個数に応じて、１６通りのパターンとなる。従って、データストリームＤＳにおけるＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の開始位置も、最大で１６通りのパターンが想定される。第１の実施の形態に係る復号部１によれば、第１の処理部は１６個のＮＤ復号部ＤＣ０〜ＤＣ１５を有しているため、１６通りの全てのパターンに関して、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の復号処理を実行することができる。従って、１６個のＮＤ復号部ＤＣ０〜ＤＣ１５によって得られる１６個の復号データＤ０〜Ｄ１５の中には、復号処理の開始位置が適切に設定された適切な復号データ（上記の例では復号データＤ２）が必ず存在する。仮にそのような適切な復号データが存在しない場合には、ＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号処理が完了した後に、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理を再実行する必要があるが、第１の実施の形態に係る復号部１によれば、適切な復号データが必ず存在するため、復号処理の再実行が必要となる可能性はなく、その結果、復号処理の高速化を図ることが可能となる。
【００６１】
また、第１の実施の形態に係る復号部１によれば、ＨＤ Ｐｈｏｔｏのハイパス成分に関しては、１個のマクロブロック内に複数個（１６個）のブロックが含まれ、１個のブロック内に複数個（１５個）の周波数データが含まれ、各周波数データは、上位側の桁範囲内のＮＯＲＭＡＬ ＤＡＴＡと、下位側の桁範囲内のＦＬＥＸ ＢＩＴとを有する。従って、本発明の適用対象としてＨＤ Ｐｈｏｔｏにおけるデコーダは好適であり、本発明をＨＤ Ｐｈｏｔｏにおけるデコーダに適用することによって、復号処理の高速化を図ることが可能となる。
【００６２】
＜第１の実施の形態の変形例＞
図６は、本発明の第１の実施の形態に係る画像処理装置の変形例を示すブロック図である。図６では、図１に示した復号部１の構成うち、バッファ２、セレクタ４、バレルシフタＢＳ１６、ＦＢ復号部ＤＣ１６、及び処理部５の図示が省略されている。復号部１は、駆動制御部１０を有している。駆動制御部１０は、ＮＤ復号部ＤＣ０〜ＤＣ１５、バレルシフタＢＳ０〜ＢＳ１５、及びシフタ制御部３に接続されている。
【００６３】
図４に示したように、バレルシフタＢＳ０は、シフタ制御部３から入力されたデータＡ０に基づいて、時刻Ｔ１において、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０（図６におけるデータＢ０）を、ＮＤ復号部ＤＣ０に入力する。ＮＤ復号部ＤＣ０は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０をエントロピー復号することにより、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０に関する復号データＤ０を出力する。その際、ＮＤ復号部ＤＣ０は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０に含まれる１５個のＮＯＲＭＡＬ ＤＡＴＡ（ＮＤ０〜ＮＤ１４）のうち、値がゼロではないデータの個数をカウントする。そして、ＮＤ復号部ＤＣ０は、そのカウントの結果（以下、その値を「Ｗ」とする）に関する情報を、データＥ０として駆動制御部１０に通知する。
【００６４】
駆動制御部１０は、データＥ０に基づいて、次回のＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理において駆動させないバレルシフタＢＳ（ＢＳ０〜ＢＳ１５）及びＮＤ復号部ＤＣ（ＤＣ０〜ＤＣ１５）の個数を決定する。具体的に、駆動制御部１０は、バレルシフタＢＳとＮＤ復号部ＤＣとの対の総数である「１６」のうち、データＥ０で与えられる値Ｗに相当する数を、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理において駆動させない、バレルシフタＢＳとＮＤ復号部ＤＣとの対の個数として決定する。
【００６５】
図４に示したように、時刻Ｔ２において、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理が開始される。ここで、駆動制御部１０は、バレルシフタＢＳ１５から順に遡って、値Ｗに相当する個数のバレルシフタＢＳに対して、駆動させない旨の制御信号Ｆ０〜Ｆ１５を入力する。同様に、駆動制御部１０は、ＮＤ復号部ＤＣ１５から順に遡って、値Ｗに相当する個数のＮＤ復号部ＤＣに対して、駆動させない旨の制御信号Ｇ０〜Ｇ１５を入力する。また、駆動制御部１０は、値Ｗに関する情報を、データＨとしてシフタ制御部３に通知する。ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理において、シフタ制御部３は、バレルシフタＢＳ１５から順に遡って、値Ｗに相当する個数のバレルシフタＢＳに対しては、データＡ０〜Ａ１５を入力しない。
【００６６】
値Ｗが例えば「１０」である場合には、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理において、１０個のバレルシフタＢＳ６〜ＢＳ１５及び１０個のＮＤ復号部ＤＣ６〜ＤＣ１５は駆動されない。また、駆動されない１０個のバレルシフタＢＳ６〜ＢＳ１５には、シフタ制御部３からデータＡ６〜Ａ１５は入力されない。
【００６７】
図３を参照して、各周波数データＦＤ０〜ＦＤ１４において、ＮＯＲＭＡＬ ＤＡＴＡの値がゼロでない場合（図３の例ではＦＤ０，ＦＤ３，ＦＤ１４）は、そのＮＯＲＭＡＬ ＤＡＴＡに符号ビット（ＳＢ０，ＳＢ３，ＳＢ１４）が付加されている。従って、ＮＯＲＭＡＬ ＤＡＴＡの値がゼロではない周波数データＦＤに関しては、ＦＬＥＸ ＢＩＴには符号ビットが付加されない。よって、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０に含まれる１５個のＮＯＲＭＡＬ ＤＡＴＡのうち、値がゼロではないデータの個数に応じて、ＦＬＥＸ ＢＩＴ群ＰＦＢ０のデータ長の候補を絞ることができる。また、それに応じて、候補ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１０〜ＰＮＤ１１５の個数も絞ることができる。
【００６８】
本変形例に係る復号部１によれば、候補位置が絞られることによって必ずしも１６個のＮＤ復号部ＤＣ０〜ＤＣ１５（及びバレルシフタＢＳ０〜ＢＳ１５）の全てを駆動する必要がない場合には、余剰のＮＤ駆動部ＤＣ（及びバレルシフタＢＳ）を駆動させないことにより、消費電力の低減を図ることが可能となる。
【００６９】
＜第２の実施の形態＞
図７は、本発明の第２の実施の形態に係る画像処理装置（復号部１）の構成を示すブロック図である。上記第１の実施の形態とは異なり、第１の処理部は、５個のバレルシフタＢＳ０〜ＢＳ４と、５個のＮＤ復号部ＤＣ０〜ＤＣ４とを有している。但し、バレルシフタＢＳ及びＮＤ復号部ＤＣの各個数は、５個に限定されるものではなく、１個のブロックに含まれるＮＯＲＭＡＬ ＤＡＴＡの個数（１５個）以下の任意の複数であれば良い。復号部１は、予測部２０を有している。予測部２０は、シフタ制御部３に接続されている。
【００７０】
図８（図８の（Ａ）及び（Ｂ））は、復号部１による複数のＮＯＲＭＡＬ ＤＡＴＡ群及び複数のＦＬＥＸ ＢＩＴ群の処理順序を示すタイミングチャートである。以下、図７及び図８の（Ａ）を参照して、復号部１の動作について説明する。
【００７１】
まず、バレルシフタＢＳ０は、シフタ制御部３から入力されたデータＡ０に基づいて、時刻Ｔ１において、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０（図７におけるデータＢ０）を、ＮＤ復号部ＤＣ０に入力する。ＮＤ復号部ＤＣ０は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０をエントロピー復号することにより、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０に関する復号データＤ０を出力する。ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０に関する復号データＤ０は、セレクタ４を介して処理部５に入力される。また、ＮＤ復号部ＤＣ０は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０に関する復号処理が完了した後、データストリームＤＳにおけるＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０の終端位置に関する情報を、データＣ０としてシフタ制御部３に通知する。
【００７２】
次に、バレルシフタＢＳ１６は、時刻Ｔ２において、ＦＬＥＸ ＢＩＴ群ＰＦＢ０（図７におけるデータＢ１６）を、ＦＢ復号部ＤＣ１６に入力する。ここで、シフタ制御部３は、ＮＤ復号部ＤＣ０から入力されたデータＣ０に基づき、データストリームＤＳにおけるＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０の終端位置に連続する位置を、ＦＬＥＸ ＢＩＴ群ＰＦＢ０の先頭位置として設定する。そして、シフタ制御部３は、ＦＬＥＸ ＢＩＴ群ＰＦＢ０の先頭位置に関する情報を、データＡ１６としてバレルシフタＢＳ１６に通知する。ＦＢ復号部ＤＣ１６は、ＦＬＥＸ ＢＩＴ群ＰＦＢ０を復号することにより、ＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号データＤ１６を出力する。ＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号データＤ１６は、処理部５に入力される。また、ＦＢ復号部ＤＣ１６は、ＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号処理が完了した後、データストリームＤＳにおけるＦＬＥＸ ＢＩＴ群ＰＦＢ０の終端位置に関する情報を、データＣ１６としてシフタ制御部３に通知する。
【００７３】
また、時刻Ｔ２において、予測部２０からシフタ制御部３に、ＦＬＥＸ ＢＩＴ群ＰＦＢ０のデータ長に関する予測値Ｊが入力される。予測部２０による予測値Ｊの決定方法は任意である。第１の例として、予測部２０は、処理対象であるブロックに隣接するブロックに関する復号結果を参照し、その参照ブロックに関して既に求められたＦＬＥＸ ＢＩＴ群ＰＦＢ０のデータ長を、予測値Ｊとして採用する。参照ブロックとしては、例えば、エンコーダの符号化部の前段に配置されている予測部での予測処理において採用されたブロックを用いることができる。第２の例として、予測部２０は、色差成分Ｕ，Ｖを処理する場合には、同一ブロックの輝度成分Ｙに関して既に求められたＦＬＥＸ ＢＩＴ群ＰＦＢ０のデータ長を、予測値Ｊとして採用する。
【００７４】
シフタ制御部３は、データストリームＤＳにおけるＦＬＥＸ ＢＩＴ群ＰＦＢ０の先頭位置から、予測値Ｊだけ後方の位置を、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の第１の先頭候補位置として設定する。そして、シフタ制御部３は、第１の先頭候補位置に関する情報を、データＡ２としてバレルシフタＢＳ２に通知する。
【００７５】
また、シフタ制御部３は、第１の先頭候補位置に対して、２ビット前方の位置、１ビット前方の位置、１ビット後方の位置、及び２ビット後方の位置を、それぞれ第２の先頭候補位置、第３の先頭候補位置、第４の先頭候補位置、及び第５の先頭候補位置として設定する。そして、シフタ制御部３は、第２の先頭候補位置、第３の先頭候補位置、第４の先頭候補位置、及び第５の先頭候補位置に関する情報を、それぞれデータＡ０，Ａ１，Ａ３，Ａ４としてバレルシフタＢＳ０，ＢＳ１，ＢＳ３，ＢＳ４に通知する。
【００７６】
時刻Ｔ２において、バレルシフタＢＳ０〜ＢＳ４は、シフタ制御部３から入力されたデータＡ０〜Ａ４に基づいて、候補ＮＯＲＭＡＬ ＤＡＴＡ群（図７におけるデータＢ０〜Ｂ４）を、ＮＤ復号部ＤＣ０〜ＤＣ４にそれぞれ入力する。ＮＤ復号部ＤＣ０〜ＤＣ４は、時刻Ｔ２において、候補ＮＯＲＭＡＬ ＤＡＴＡ群に関するエントロピー復号処理をそれぞれ開始する。
【００７７】
時刻Ｔ３において、ＦＢ復号部ＤＣ１６によるＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号処理が完了すると、ＦＬＥＸ ＢＩＴ群ＰＦＢ０の終端位置に関する情報（データＣ１６）が、ＦＢ復号部ＤＣ１６からシフタ制御部３に通知される。これにより、シフタ制御部３は、５個の候補ＮＯＲＭＡＬ ＤＡＴＡ群の中から、正しい１個を選択することができる。この選択に関する情報はシフタ制御部３からセレクタ４に通知され、セレクタ４は、正しい候補ＮＯＲＭＡＬ ＤＡＴＡ群の復号処理を実行している１個のＮＤ復号部ＤＣ（この例ではＮＤ復号部ＤＣ１とする）を選択する。ＮＤ復号部ＤＣ１から出力されたＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号データＤ１は、セレクタ４を介して処理部５に入力される。また、ＮＤ復号部ＤＣ１は、時刻Ｔ４においてＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理が完了すると、データストリームＤＳにおけるＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の終端位置に関する情報を、データＣ１としてシフタ制御部３に通知する。
【００７８】
一方、図８の（Ｂ）を参照して、５個の候補ＮＯＲＭＡＬ ＤＡＴＡ群の中に正しいものが含まれていない場合には、時刻Ｔ３において、ＮＤ復号部ＤＣ０〜ＤＣ４による候補ＮＯＲＭＡＬ ＤＡＴＡ群に関する復号処理が中止される。また、シフタ制御部３は、ＦＢ復号部ＤＣ１６から入力されたデータＣ１６に基づき、データストリームＤＳにおけるＦＬＥＸ ＢＩＴ群ＰＦＢ０の終端位置に連続する位置を、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の先頭位置として設定する。そして、シフタ制御部３は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の先頭位置に関する情報を、データＡ０としてバレルシフタＢＳ０に通知する。但し、バレルシフタＢＳ０ではなく他のバレルシフタＢＳ１〜ＢＳ４の一つに通知しても良い。
【００７９】
バレルシフタＢＳ０は、時刻Ｔ３において、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１を、ＮＤ復号部ＤＣ０に入力する。ＤＣ復号部ＤＣ０は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１を復号することにより、復号データＤ０を出力する。復号データＤ０は、セレクタ４を介して処理部５に入力される。また、ＤＣ復号部ＤＣ０は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理が完了した後、データストリームＤＳにおけるＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の終端位置に関する情報を、データＣ０としてシフタ制御部３に通知する。
【００８０】
第２の実施の形態に係る復号部１によれば、ＦＬＥＸ ＢＩＴ群ＰＦＢ０のデータ長は、１５個のＦＬＥＸ ＢＩＴのうち１ビットの符号ビットが付加されるデータの個数に応じて、１６通りのパターンとなる。従って、データストリームＤＳにおけるＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１の先頭位置も、最大で１６通りのパターンが想定される。第２の実施の形態に係る復号部１によれば、第１の処理部は、１６個のＮＤ復号部ＤＣを有するのではなく、それよりも少ない個数（上記の例では５個）のＮＤ復号部ＤＣ０〜ＤＣ４を有する。従って、１６個のＮＤ復号部ＤＣ０〜ＤＣ１５を設ける場合と比較して、回路規模を削減することが可能となる。
【００８１】
第２の実施の形態に係る復号部１においては、５個のＮＤ復号部ＤＣ０〜ＤＣ４によって得られる５個の復号データＤ０〜Ｄ４の中に、復号処理の開始位置が適切に設定された復号データが存在しない場合もあり得る。しかし、この場合には、図８の（Ｂ）に示したように、ＦＬＥＸ ＢＩＴ群ＰＦＢ０に関する復号処理が完了して終端位置が確定した後に、その終端位置に連続する位置を開始位置として、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理を再実行することにより、正確な復号データを得ることが可能となる。
【００８２】
＜第２の実施の形態の変形例＞
図９は、本発明の第２の実施の形態に係る画像処理装置の変形例を示すブロック図である。図９では、図７に示した復号部１の構成うち、バッファ２、セレクタ４、バレルシフタＢＳ１６、ＦＢ復号部ＤＣ１６、予測部２０、及び処理部５の図示が省略されている。復号部１は、駆動制御部１０を有している。駆動制御部１０は、ＮＤ復号部ＤＣ０〜ＤＣ４、バレルシフタＢＳ０〜ＢＳ４、及びシフタ制御部３に接続されている。
【００８３】
図８の（Ａ）に示したように、バレルシフタＢＳ０は、シフタ制御部３から入力されたデータＡ０に基づいて、時刻Ｔ１において、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０（図９におけるデータＢ０）を、ＮＤ復号部ＤＣ０に入力する。ＮＤ復号部ＤＣ０は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０をエントロピー復号することにより、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０に関する復号データＤ０を出力する。その際、ＮＤ復号部ＤＣ０は、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ０に含まれる１５個のＮＯＲＭＡＬ ＤＡＴＡ（ＮＤ０〜ＮＤ１４）のうち、値がゼロではないデータの個数をカウントする。そして、ＮＤ復号部ＤＣ０は、そのカウントの結果（値Ｗ）に関する情報を、データＥ０として駆動制御部１０に通知する。
【００８４】
駆動制御部１０は、データＥ０に基づいて、次回のＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理において駆動させないバレルシフタＢＳ（ＢＳ０〜ＢＳ４）及びＮＤ復号部ＤＣ（ＤＣ０〜ＤＣ４）の個数を決定する。具体的に、駆動制御部１０は、ＦＬＥＸ ＢＩＴ群ＰＦＢ０のデータ長がとり得る最大パターン数である「１６」から、データＥ０で与えられる値Ｗを減算する。そして、その減算の結果として得られた値（以下、その値を「Ｐ」とする）が、バレルシフタＢＳとＮＤ復号部ＤＣとの対の総数である「５」よりも小さい場合に、「５」と「Ｐ」との差に相当する数（以下、その値を「Ｑ」とする）を、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理において駆動させない、バレルシフタＢＳとＮＤ復号部ＤＣとの対の個数として決定する。
【００８５】
図８の（Ａ）に示したように、時刻Ｔ２において、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理が開始される。ここで、駆動制御部１０は、バレルシフタＢＳ４から順に遡って、値Ｑに相当する個数のバレルシフタＢＳに対して、駆動させない旨の制御信号Ｆ０〜Ｆ４を入力する。同様に、駆動制御部１０は、ＮＤ復号部ＤＣ４から順に遡って、値Ｑに相当する個数のＮＤ復号部ＤＣに対して、駆動させない旨の制御信号Ｇ０〜Ｇ４を入力する。また、駆動制御部１０は、値Ｑに関する情報を、データＨとしてシフタ制御部３に通知する。ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理において、シフタ制御部３は、バレルシフタＢＳ４から順に遡って、値Ｑに相当する個数のバレルシフタＢＳに対しては、データＡ０〜Ａ４を入力しない。
【００８６】
値Ｗが例えば「１３」である場合には、値Ｐは「３」（＝１６−１３）となり、値Ｑは「２」（＝５−３）となる。この場合、ＮＯＲＭＡＬ ＤＡＴＡ群ＰＮＤ１に関する復号処理において、２個のバレルシフタＢＳ３，ＢＳ４及び２個のＮＤ復号部ＤＣ３，ＤＣ４は駆動されない。また、駆動されない２個のバレルシフタＢＳ３，ＢＳ４には、シフタ制御部３からデータＡ３，Ａ４は入力されない。
【００８７】
本変形例に係る復号部１によれば、候補位置が絞られることによって必ずしも５個のＮＤ復号部ＤＣ０〜ＤＣ４（及びバレルシフタＢＳ０〜ＢＳ４）の全てを駆動する必要がない場合には、余剰のＮＤ駆動部ＤＣ（及びバレルシフタＢＳ）を駆動させないことにより、消費電力の低減を図ることが可能となる。
【００８８】
なお、以上の説明では、ＨＤ Ｐｈｏｔｏのハイパス成分に関して本発明を適用する例について述べたが、本発明は、ＨＤ Ｐｈｏｔｏのローパス成分に関して適用することも可能である。ＨＤ Ｐｈｏｔｏのローパス成分に関しては、１個のマクロブロック内には、ＹＵＶの各成分毎に１個のブロックが含まれる。つまり、１個のマクロブロック内に複数のブロックが含まれる。また、１個のブロック内に複数個（１５個）の周波数データが含まれ、各周波数データは、上位側の桁範囲内のＮＯＲＭＡＬ ＤＡＴＡと、下位側の桁範囲内のＦＬＥＸ ＢＩＴとを有する。従って、ＨＤ Ｐｈｏｔｏのローパス成分に関して本発明を適用することが可能であり、上記と同様の効果を得ることができる。
【図面の簡単な説明】
【００８９】
【図１】本発明の第１の実施の形態に係る画像処理装置の構成を示すブロック図である。
【図２】データストリームの一部を示す図である。
【図３】一つのＮＯＲＭＡＬ ＤＡＴＡ群及び一つのＦＬＥＸ ＢＩＴ群を並べて示す図である。
【図４】復号部による複数のＮＯＲＭＡＬ ＤＡＴＡ群及び複数のＦＬＥＸ ＢＩＴ群の処理順序を示すタイミングチャートである。
【図５】復号部によるＮＯＲＭＡＬ ＤＡＴＡ群及びＦＬＥＸ ＢＩＴ群の処理を詳細に示すタイミングチャートである。
【図６】本発明の第１の実施の形態に係る画像処理装置の変形例を示すブロック図である。
【図７】本発明の第２の実施の形態に係る画像処理装置の構成を示すブロック図である。
【図８】復号部による複数のＮＯＲＭＡＬ ＤＡＴＡ群及び複数のＦＬＥＸ ＢＩＴ群の処理順序を示すタイミングチャートである。
【図９】本発明の第２の実施の形態に係る画像処理装置の変形例を示すブロック図である。
【図１０】ＨＤ Ｐｈｏｔｏにおける一つの周波数データを示す図である。
【図１１】ＨＤ Ｐｈｏｔｏにおけるデコーダのうち、復号部における処理の流れを簡略化して示すフローチャートである。
【図１２】図１１に示したハイパス成分の復号処理を具体的に示すフローチャートである。
【図１３】ＨＤ Ｐｈｏｔｏにおけるデコーダのうち、復号部の構成を示すブロック図である。
【図１４】データストリームの一部を示す図である。
【符号の説明】
【００９０】
１  復号部
３  シフタ制御部
４  セレクタ
１０  駆動制御部
ＤＣ０〜ＤＣ１５  ＮＤ復号部
ＤＣ１６  ＦＢ復号部
ＤＳ  データストリーム
ＰＮＤ  ＮＯＲＭＡＬ ＤＡＴＡ群
ＰＦＢ  ＦＬＥＸ ＢＩＴ群
ＮＤ０〜ＮＤ１４  ＮＯＲＭＡＬ ＤＡＴＡ
ＦＢ０〜ＦＢ１５  ＦＬＥＸ ＢＩＴ
【図１】
2010093522.tif 000003
【図２】
2010093522.tif 000004
【図３】
2010093522.tif 000005
【図４】
2010093522.tif 000006
【図５】
2010093522.tif 000007
【図６】
2010093522.tif 000008
【図７】
2010093522.tif 000009
【図８】
2010093522.tif 000010
【図９】
2010093522.tif 000011
【図１０】
2010093522.tif 000012
【図１１】
2010093522.tif 000013
【図１２】
2010093522.tif 000014
【図１３】
2010093522.tif 000015
【図１４】
2010093522.tif 000016