(57)【要約】【課題】  エラー耐性の高い符号化データを生成する。【解決手段】  VQエンコーダは、VQ符号化用ブロック１個分のデータ入力されたところで、VQ符号化用ブロックに含まれる画素の画素値のダイナミックレンジ（DR）と最小値（MIN）を求めて、これを用いて、VQコードを生成する。そして、DRおよびMIN、並びにVQコードからなるVQ符号化データを生成し分離部５２に供給する。分離部５２は、DRおよびMINの部分とVQコードの部分分離し、それぞれ、スクランブラ５３に供給すると共に、VQコードの部分については、合成部５４に供給する。スクランブラ５３は、VQコードで、DRおよびMINの部分をスクランブル処理し、スクランブルデータF_VQ（DR，MIN）を生成し合成部に出力する。合成部５４は、スクランブルデータF_VQ（DR，MIN）とVQコードを合成し、VQ符号化データとして出力する。【選択図】  図８
2005117548.tif 000002
【特許請求の範囲】
【請求項１】
入力データを所定の演算形式で演算し、その演算結果を出力する演算手段と、
前記演算手段の演算結果に基づいて、入力データをコードに変換するコード変換手段と、
前記演算結果を前記コードでスクランブル処理するスクランブル手段と、
前記スクランブル手段によりスクランブル処理された演算結果と、前記コードとを用いて、前記入力データを符号化する符号化手段と
を備えることを特徴とする符号化装置。
【請求項２】
前記入力データは、画像データである
ことを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記演算手段は、複数の前記入力データよりダイナミックレンジと最小値を演算し、演算結果として出力する
ことを特徴とする請求項１に記載の符号化装置。
【請求項４】
前記演算手段は、複数の前記入力データより平均値と正規化要素を演算し、演算結果として出力する
ことを特徴とする請求項１に記載の符号化装置。
【請求項５】
前記コード変換手段は、前記演算手段の演算結果に基づいて、入力データをベクトル量子化コードに変換する
ことを特徴とする請求項１に記載の符号化装置。
【請求項６】
前記コードに基づいて、ランダム関数を発生するランダム関数発生手段をさらに備え、
前記スクランブル手段は、前記演算結果を前記ランダム関数でスクランブル処理する
ことを特徴とする請求項１に記載の符号化装置。
【請求項７】
入力データを所定の演算形式で演算し、その演算結果を出力する演算ステップと、
前記演算ステップの処理での演算結果に基づいて、入力データをコードに変換するコード変換ステップと、
前記演算結果を前記コードでスクランブル処理するスクランブルステップと、
前記スクランブルステップの処理でスクランブル処理された演算結果と、前記コードとを用いて、前記入力データを符号化する符号化ステップと
を含むことを特徴とする符号化方法。
【請求項８】
入力データを所定の演算形式で演算し、その演算結果を出力する演算ステップと、
前記演算ステップの処理での演算結果に基づいて、入力データをコードに変換するコード変換ステップと、
前記演算結果を前記コードでスクランブル処理するスクランブルステップと、
前記スクランブルステップの処理でスクランブル処理された演算結果と、前記コードとを用いて、前記入力データを符号化する符号化ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項９】
入力データを所定の演算形式で演算し、その演算結果を出力する演算ステップと、
前記演算ステップの処理での演算結果に基づいて、入力データをコードに変換するコード変換ステップと、
前記演算結果を前記コードでスクランブル処理するスクランブルステップと、
前記スクランブルステップの処理でスクランブル処理された演算結果と、前記コードとを用いて、前記入力データを符号化する符号化ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項１０】
入力データを所定の演算形式で演算することにより求められた前記演算結果に基づいて、前記入力データが変換されたコードと、前記コードによりスクランブル処理された前記演算結果とを含む符号化された入力データを復号する復号装置において、
前記符号化された入力データに含まれるコードにより、前記スクランブル処理された前記演算結果をデスクランブル処理するデスクランブル手段と、
前記符号化された入力データに含まれるコードのエラーを検出するエラー検出手段と、
前記デスクランブル手段によりデスクランブル処理された前記演算結果を記憶する記憶手段と、
前記記憶手段に記憶されている、前記エラー検出手段によりエラーが検出されなかった場合の処理で使用された演算結果に基づいて、前記スクランブル処理された前記演算結果より、前記コードを推定する推定手段と、
前記エラー検出手段のエラー検出結果に基づいて、前記デスクランブル手段によりデスクランブル処理された前記演算結果と、前記符号化された入力データに含まれるコードより、または、前記デスクランブル手段によりデスクランブル処理された前記演算結果と、前記推定手段により推定されたコードより、前記符号化された入力データを復号する復号手段と
を備えることを特徴とする復号装置。
【請求項１１】
前記入力データは、画像データである
ことを特徴とする請求項１０に記載の復号装置。
【請求項１２】
前記演算結果は、複数の前記入力データに基づいたダイナミックレンジと最小値である
ことを特徴とする請求項１０に記載の符号化装置。
【請求項１３】
前記演算結果は、複数の前記入力データに基づいた平均値と正規化要素である
ことを特徴とする請求項１０に記載の符号化装置。
【請求項１４】
前記コードは、前記演算結果に基づいたベクトル量子化コードである
ことを特徴とする請求項１０に記載の符号化装置。
【請求項１５】
前記符号化された入力データに含まれるコードに基づいて、ランダム関数を発生するランダム関数発生手段をさらに備え、
デスクランブル手段は、前記ランダム関数発生手段により発生されたランダム関数を用いて、前記符号化された入力データに含まれるコードに基づいたランダム関数により前記スクランブル処理された前記演算結果をデスクランブル処理する
ことを特徴とする請求項１０に記載の符号化装置。
【請求項１６】
入力データを所定の演算形式で演算することにより求められた前記演算結果に基づいて、前記入力データが変換されたコードと、前記コードによりスクランブル処理された前記演算結果とを含む符号化された入力データを復号する復号装置の復号方法において、
前記符号化された入力データに含まれるコードにより、前記スクランブル処理された前記演算結果をデスクランブル処理するデスクランブルステップと、
前記符号化された入力データに含まれるコードのエラーを検出するエラー検出ステップと、
前記デスクランブルステップの処理でデスクランブル処理された前記演算結果を記憶する記憶ステップと、
前記記憶ステップの処理により記憶されている、前記エラー検出ステップの処理でエラーが検出されなかった場合の処理で使用された演算結果に基づいて、前記スクランブル処理された前記演算結果より、前記コードを推定する推定ステップと、
前記エラー検出ステップの処理でのエラー検出結果に基づいて、前記デスクランブルステップの処理でデスクランブル処理された前記演算結果と、前記符号化された入力データに含まれるコードより、または、前記デスクランブルステップの処理でデスクランブル処理された前記演算結果と、前記推定ステップの処理で推定されたコードより、前記符号化された入力データを復号する復号ステップと
を含むことを特徴とする復号方法。
【請求項１７】
入力データを所定の演算形式で演算することにより求められた前記演算結果に基づいて、前記入力データが変換されたコードと、前記コードによりスクランブル処理された前記演算結果とを含む符号化された入力データを復号する復号装置を制御するプログラムが記録された記録媒体において、
前記符号化された入力データに含まれるコードにより、前記スクランブル処理された前記演算結果をデスクランブル処理するデスクランブルステップと、
前記符号化された入力データに含まれるコードのエラーを検出するエラー検出ステップと、
前記デスクランブルステップの処理でデスクランブル処理された前記演算結果の記憶を制御する記憶制御ステップと、
前記記憶制御ステップの処理により記憶が制御されている、前記エラー検出ステップの処理でエラーが検出されなかった場合の処理で使用された演算結果に基づいて、前記スクランブル処理された前記演算結果より、前記コードを推定する推定ステップと、
前記エラー検出ステップの処理でのエラー検出結果に基づいて、前記デスクランブルステップの処理でデスクランブル処理された前記演算結果と、前記符号化された入力データに含まれるコードより、または、前記デスクランブルステップの処理でデスクランブル処理された前記演算結果と、前記推定ステップの処理で推定されたコードより、前記符号化された入力データを復号する復号ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１８】
入力データを所定の演算形式で演算することにより求められた前記演算結果に基づいて、前記入力データが変換されたコードと、前記コードによりスクランブル処理された前記演算結果とを含む符号化された入力データを復号する復号装置を制御するコンピュータに、
前記符号化された入力データに含まれるコードにより、前記スクランブル処理された前記演算結果をデスクランブル処理するデスクランブルステップと、
前記符号化された入力データに含まれるコードのエラーを検出するエラー検出ステップと、
前記デスクランブルステップの処理でデスクランブル処理された前記演算結果の記憶を制御する記憶制御ステップと、
前記記憶制御ステップの処理により記憶が制御されている、前記エラー検出ステップの処理でエラーが検出されなかった場合の処理で使用された演算結果に基づいて、前記スクランブル処理された前記演算結果より、前記コードを推定する推定ステップと、
前記エラー検出ステップの処理でのエラー検出結果に基づいて、前記デスクランブルステップの処理でデスクランブル処理された前記演算結果と、前記符号化された入力データに含まれるコードより、または、前記デスクランブルステップの処理でデスクランブル処理された前記演算結果と、前記推定ステップの処理で推定されたコードより、前記符号化された入力データを復号する復号ステップと
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置および方法、復号装置および方法、記録媒体、並びにプログラムに関し、特に、高圧縮で、かつ、高エラー耐性の符号化を実現できるようにした符号化装置および方法、復号装置および方法、記録媒体、並びにプログラムに関する。
【背景技術】
【０００２】
画像データや音声データを符号化することで圧縮して通信する技術が実用化されている。
【０００３】
圧縮率を高めた符号化を可能にする技術として、ADRC（Adaptive Dynamic Range Coding）コードに符号化された符号化データを、ベクトル量子化（VQ）コードに変換し、圧縮率を高める技術がある（例えば、特許文献１参照）。
【特許文献１】特許第２５１８２１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、一般に、データは、圧縮率を高くするほど伝送時に生じるエラーに対する復号時の劣化が著しい。例えば、圧縮率が１０倍である場合、伝送ビットの重みは非圧縮時の１０ビット分となる。
【０００５】
結果として、高圧縮率の符号化方式においては、伝送路で符号化されたコードにエラーが生じると、復号時に大きな劣化が生じてしまうと言う課題があった。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、特に、高圧縮率で、かつ、高エラー耐性の符号化を実現させるものである。
【課題を解決するための手段】
【０００７】
本発明の符号化装置は、入力データを所定の演算形式で演算し、その演算結果を出力する演算手段と、演算手段の演算結果に基づいて、入力データをコードに変換するコード変換手段と、演算結果をコードでスクランブル処理するスクランブル手段と、スクランブル手段によりスクランブル処理された演算結果と、コードとを用いて、入力データを符号化する符号化手段とを備えることを特徴とする。
【０００８】
前記入力データは、画像データとすることができる。
【０００９】
前記演算手段には、複数の入力データよりダイナミックレンジと最小値を演算させ、演算結果として出力させるようにすることができる。
【００１０】
前記演算手段には、複数の入力データより平均値と正規化要素を演算させ、演算結果として出力させるようにすることができる。
【００１１】
前記コード変換手段には、演算手段の演算結果に基づいて、入力データをベクトル量子化コードに変換させるようにすることができる。
【００１２】
前記コードに基づいて、ランダム関数を発生するランダム関数発生手段をさらに設けるようにさせることができ、スクランブル手段には、演算結果をランダム関数でスクランブル処理させるようにすることができる。
【００１３】
本発明の符号化方法は、入力データを所定の演算形式で演算し、その演算結果を出力する演算ステップと、演算ステップの処理での演算結果に基づいて、入力データをコードに変換するコード変換ステップと、演算結果をコードでスクランブル処理するスクランブルステップと、スクランブルステップの処理でスクランブル処理された演算結果と、コードとを用いて、入力データを符号化する符号化ステップとを含むことを特徴とする。
【００１４】
本発明の第１の記録媒体のプログラムは、入力データを所定の演算形式で演算し、その演算結果を出力する演算ステップと、演算ステップの処理での演算結果に基づいて、入力データをコードに変換するコード変換ステップと、演算結果をコードでスクランブル処理するスクランブルステップと、スクランブルステップの処理でスクランブル処理された演算結果と、コードとを用いて、入力データを符号化する符号化ステップとを含むことを特徴とする。
【００１５】
本発明の第１のプログラムは、入力データを所定の演算形式で演算し、その演算結果を出力する演算ステップと、演算ステップの処理での演算結果に基づいて、入力データをコードに変換するコード変換ステップと、演算結果をコードでスクランブル処理するスクランブルステップと、スクランブルステップの処理でスクランブル処理された演算結果と、コードとを用いて、入力データを符号化する符号化ステップとをコンピュータに実行させることを特徴とする。
【００１６】
本発明の復号装置は、符号化された入力データに含まれるコードにより、スクランブル処理された演算結果をデスクランブル処理するデスクランブル手段と、符号化された入力データに含まれるコードのエラーを検出するエラー検出手段と、デスクランブル手段によりデスクランブル処理された演算結果を記憶する記憶手段と、記憶手段に記憶されている、エラー検出手段によりエラーが検出されなかった場合の処理で使用された演算結果に基づいて、スクランブル処理された演算結果より、コードを推定する推定手段と、エラー検出手段のエラー検出結果に基づいて、デスクランブル手段によりデスクランブル処理された演算結果と、符号化された入力データに含まれるコードより、または、デスクランブル手段によりデスクランブル処理された演算結果と、推定手段により推定されたコードより、符号化された入力データを復号する復号手段とを備えることを特徴とする。
【００１７】
前記入力データは、画像データとするようにすることができる。
【００１８】
前記演算結果は、複数の入力データに基づいたダイナミックレンジと最小値とするようにすることができる。
【００１９】
前記演算結果は、複数の入力データに基づいた平均値と正規化要素とするようにすることができる。
【００２０】
前記コードは、演算結果に基づいたベクトル量子化コードとするようにすることができる。
【００２１】
前記符号化された入力データに含まれるコードに基づいて、ランダム関数を発生するランダム関数発生手段をさらに設けるようにさせることができ、デスクランブル手段には、ランダム関数発生手段により発生されたランダム関数を用いて、符号化された入力データに含まれるコードに基づいたランダム関数によりスクランブル処理された演算結果をデスクランブル処理させるようにすることができる。
【００２２】
本発明の復号方法は、符号化された入力データに含まれるコードにより、スクランブル処理された演算結果をデスクランブル処理するデスクランブルステップと、符号化された入力データに含まれるコードのエラーを検出するエラー検出ステップと、デスクランブルステップの処理でデスクランブル処理された演算結果を記憶する記憶ステップと、記憶ステップの処理により記憶されている、エラー検出ステップの処理でエラーが検出されなかった場合の処理で使用された演算結果に基づいて、スクランブル処理された演算結果より、コードを推定する推定ステップと、エラー検出ステップの処理でのエラー検出結果に基づいて、デスクランブルステップの処理でデスクランブル処理された演算結果と、符号化された入力データに含まれるコードより、または、デスクランブルステップの処理でデスクランブル処理された演算結果と、推定ステップの処理で推定されたコードより、符号化された入力データを復号する復号ステップとを含むことを特徴とする。
【００２３】
本発明の第２の記録媒体のプログラムは、符号化された入力データに含まれるコードにより、スクランブル処理された演算結果をデスクランブル処理するデスクランブルステップと、符号化された入力データに含まれるコードのエラーを検出するエラー検出ステップと、デスクランブルステップの処理でデスクランブル処理された演算結果の記憶を制御する記憶制御ステップと、記憶制御ステップの処理により記憶が制御されている、エラー検出ステップの処理でエラーが検出されなかった場合の処理で使用された演算結果に基づいて、スクランブル処理された演算結果より、コードを推定する推定ステップと、エラー検出ステップの処理でのエラー検出結果に基づいて、デスクランブルステップの処理でデスクランブル処理された演算結果と、符号化された入力データに含まれるコードより、または、デスクランブルステップの処理でデスクランブル処理された演算結果と、推定ステップの処理で推定されたコードより、符号化された入力データを復号する復号ステップとを含むことを特徴とする。
【００２４】
本発明の第２のプログラムは、符号化された入力データに含まれるコードにより、スクランブル処理された演算結果をデスクランブル処理するデスクランブルステップと、符号化された入力データに含まれるコードのエラーを検出するエラー検出ステップと、デスクランブルステップの処理でデスクランブル処理された演算結果の記憶を制御する記憶制御ステップと、記憶制御ステップの処理により記憶が制御されている、エラー検出ステップの処理でエラーが検出されなかった場合の処理で使用された演算結果に基づいて、スクランブル処理された演算結果より、コードを推定する推定ステップと、エラー検出ステップの処理でのエラー検出結果に基づいて、デスクランブルステップの処理でデスクランブル処理された演算結果と、符号化された入力データに含まれるコードより、または、デスクランブルステップの処理でデスクランブル処理された演算結果と、推定ステップの処理で推定されたコードより、符号化された入力データを復号する復号ステップとを実行させることを特徴とする。
【００２５】
本発明の符号化装置および方法、並びに第１のプログラムにおいては、入力データが所定の演算形式で演算され、その演算結果が出力され、演算結果に基づいて、入力データがコードに変換され、演算結果がコードでスクランブル処理され、スクランブル処理された演算結果と、コードとが用いられて、入力データが符号化される。
【００２６】
本発明の復号装置および方法、並びに第２のプログラムにおいては、符号化された入力データに含まれるコードにより、スクランブル処理された演算結果がデスクランブル処理され、符号化された入力データに含まれるコードのエラーが検出され、デスクランブル処理された演算結果が記憶され、記憶されている、エラーが検出されなかった場合の処理で使用された演算結果に基づいて、スクランブル処理された演算結果より、コードが推定され、エラー検出結果に基づいて、デスクランブル処理された演算結果と、符号化された入力データに含まれるコードより、または、デスクランブル処理された演算結果と、推定されたコードより、符号化された入力データが復号される。
【００２７】
本発明の符号化装置、および、復号装置は、独立した装置であっても良いし、符号化、および、復号を行うブロックであっても良い。
【発明の効果】
【００２８】
本発明によれば、高圧縮率で、かつ、高エラー耐性の符号化が可能となる。
【発明を実施するための最良の形態】
【００２９】
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が本明細書に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００３０】
さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
【００３１】
即ち、本発明の符号化装置は、入力データを所定の演算形式で演算し、その演算結果を出力する演算手段（例えば、図８のVQエンコーダ５１）と、演算手段の演算結果に基づいて、入力データをコードに変換するコード変換手段（例えば、図８のVQエンコーダ５１）と、演算結果をコードでスクランブル処理するスクランブル手段（例えば、図８のスクランブラ５３）と、スクランブル手段によりスクランブル処理された演算結果と、コードとを用いて、入力データを符号化する符号化手段（例えば、図８の合成部５４）とを備えることを特徴とする。
【００３２】
前記コードに基づいて、ランダム関数を発生するランダム関数発生手段（例えば、図１４のランダム関数発生部９１）をさらに設けるようにさせることができ、スクランブル手段（例えば、図１４のスクランブラ９２）には、演算結果をランダム関数でスクランブル処理させるようにすることができる。
【００３３】
本発明の符号化方法は、入力データを所定の演算形式で演算し、その演算結果を出力する演算ステップ（例えば、図９のフローチャートのステップＳ４２の処理）と、演算ステップの処理での演算結果に基づいて、入力データをコードに変換するコード変換ステップ（例えば、図９のフローチャートのステップＳ４２の処理）と、演算結果をコードでスクランブル処理するスクランブルステップ（例えば、図９のフローチャートのステップＳ４５の処理）と、スクランブルステップの処理でスクランブル処理された演算結果と、コードとを用いて、入力データを符号化する符号化ステップ（例えば、図９のフローチャートのステップＳ４６の処理）とを含むことを特徴とする。
【００３４】
本発明の復号装置は、符号化された入力データに含まれるコードにより、スクランブル処理された演算結果をデスクランブル処理するデスクランブル手段（例えば、図１２のデスクランブラ７２）と、符号化された入力データに含まれるコードのエラーを検出するエラー検出手段（例えば、図１２のエラー検出部７７）と、デスクランブル手段によりデスクランブル処理された演算結果を記憶する記憶手段（例えば、図１２のメモリ７３）と、記憶手段に記憶されている、エラー検出手段によりエラーが検出されなかった場合の処理で使用された演算結果に基づいて、スクランブル処理された演算結果より、コードを推定する推定手段（例えば、図１２のエラー処理部７４）と、エラー検出手段のエラー検出結果に基づいて、デスクランブル手段によりデスクランブル処理された演算結果と、符号化された入力データに含まれるコードより、または、デスクランブル手段によりデスクランブル処理された演算結果と、推定手段により推定されたコードより、符号化された入力データを復号する復号手段（例えば、図１２のVQデコーダ７６）とを備えることを特徴とする。
【００３５】
前記符号化された入力データに含まれるコードに基づいて、ランダム関数を発生するランダム関数発生手段（例えば、図１７のランダム関数発生装置１０１）をさらに設けるようにさせることができ、デスクランブル手段（例えば、図１７のランダム関数発生装置１０２）には、ランダム関数発生手段により発生されたランダム関数を用いて、符号化された入力データに含まれるコードに基づいたランダム関数によりスクランブル処理された演算結果をデスクランブル処理させるようにすることができる。
【００３６】
本発明の復号方法は、符号化された入力データに含まれるコードにより、スクランブル処理された演算結果をデスクランブル処理するデスクランブルステップ（例えば、図１３のフローチャートのステップＳ６２の処理）と、符号化された入力データに含まれるコードのエラーを検出するエラー検出ステップ（例えば、図１３のフローチャートのステップＳ６４の処理）と、デスクランブルステップの処理でデスクランブル処理された演算結果を記憶する記憶ステップ（例えば、図１３のフローチャートのステップＳ６６の処理）と、記憶ステップの処理により記憶されている、エラー検出ステップの処理でエラーが検出されなかった場合の処理で使用された演算結果に基づいて、スクランブル処理された演算結果より、コードを推定する推定ステップ（例えば、図１３のフローチャートのステップＳ６３の処理）と、エラー検出ステップの処理でのエラー検出結果に基づいて、デスクランブルステップの処理でデスクランブル処理された演算結果と、符号化された入力データに含まれるコードより、または、デスクランブルステップの処理でデスクランブル処理された演算結果と、推定ステップの処理で推定されたコードより、符号化された入力データを復号する復号ステップ（例えば、図１３のフローチャートのステップＳ６８の処理）とを含むことを特徴とする。
【００３７】
図１は、本発明を適用した通信システムの一実施の形態の構成を示す図である。
【００３８】
符号化装置１は、入力データである画像データを画像の画素のブロック毎に、ADRC（Adaptive Dynamic Range Coding）符号化するか、または、VQ（Vector Quantization）符号化して、出力する。
【００３９】
復号装置２は、符号化装置１により符号化された画像データを取得すると、画像中の画素のブロック毎の符号化方式に対応して、ADRC復号するか、または、VQ復号することにより、符号化データより入力データである画像データを再生し、図示せぬディスプレイなどに表示する。
【００４０】
次に、符号化装置１の構成について説明する。
【００４１】
ブロック化部１１は、入力画像よりVQ符号化用の画素のブロックを、順次（例えば、ラスタスキャン順に）抽出して、VQ符号化部１２に供給すると共に、ADRC符号化用の画素のブロックを順次（例えば、ラスタスキャン順に）抽出して、ADRC符号化部１３に供給する。例えば、VQ符号化用の画素のブロック（以下、VQ符号化用ブロックとも称する）は、４画素×４画素の画素のブロックであり、ADRC符号化用の画素のブロック（以下、ADRC符号化用ブロックとも称する）は、８画素×８画素である。尚、各符号化方式に対応する画素のブロックのサイズは、これに限るものではない。
【００４２】
VQ符号化部１２は、ブロック化部１１より供給されたVQ符号化用ブロックの各画素の画素値に基づいてコードブック１５を参照して、ブロック毎にVQ符号化し、符号化したデータを選択部１４に供給する。尚、VQの符号化処理については、詳細を後述する。
【００４３】
ADRC符号化部１３は、ブロック化部１１より供給されたADRC符号化用の画素のブロックの各画素の画素値を用いて、ブロック毎にADRC符号化し、符号化したデータを選択部１４に供給する。
【００４４】
選択部１４は、VQ符号化部１２より供給されたVQ符号化された符号化データと、ADRC符号化された符号化データのダイナミックレンジ（以下、DRとも称する）を所定の閾値と比較し、比較結果に応じてADRC符号化データか、または、VQ符号化データを出力する。
【００４５】
結果として、選択部１４により選択される符号化方式で、ブロック毎に符号化方式が異なる符号化データが生成されることになり、例えば、１フレームの画像が図２で示されるようにブロック毎に符号化方式が異なる形式で、画像が符号化される。すなわち、図２においては、斜線が付されたマス目が、４画素×４画素のVQ符号化用のブロックであり、白のマス目が、８画素×８画素のADRC符号化用のブロックである。より詳細には、ADRC符号化データが選択されると、８画素×８画素のブロック分のADRC符号化データが用いられるが、VQ符号化データが選択されると、８画素×８画素分に相当する４個のVQ符号化用ブロックのVQ符号化データが用いられることになる（VQ符号化用ブロックは４画素×４画素のブロックであるので、同等の領域を符号化するには４ブロック分必要となる）。
【００４６】
図２においては、選択部１４の選択結果により、１の画像中において、１０個のADRC符号化用ブロックに属する画素がADRC符号化され、さらに、５６個のVQ符号化用ブロックに属する画素がVQ符号化されていることが示されている。
【００４７】
次に、復号装置２の構成について説明する。
【００４８】
判別部２１は、符号化装置１より供給された符号化データを取得すると、それらの符号化データが、VQ符号化されたデータであるのか、または、ADRC符号化されたデータであるのかを判別し、VQ符号化されたデータであると判定した場合、取得した符号化データをVQ復号部２２に供給する。また、取得した符号化データが、ADRC符号化データであると判定された場合、判別部２１は、取得した符号化データをADRC復号部２３に供給する。
【００４９】
VQ復号部２２は、判別部２１より供給された符号化データをコードブック２５に基づいて、VQ復号して合成部２４に供給する。尚、コードブック２５は、コードブック１５と同様のものである。ADRC復号部２３は、判別部２１より供給された符号化データをADRC復号して合成部２４に供給する。合成部２４は、VQ復号部２２より供給されたVQ復号された入力画像のデータをVQ符号化ブロックに対応付けて記憶すると共に、ADRC復号部２３より供給されたADRC復号された入力画像のデータをブロック毎に記憶し、最終的に１枚の画像を構成するデータが全て揃ったところで、それらの復号された入力画像のデータを合成して、入力画像を生成して出力し、図示せぬディスプレイなどに表示する。
【００５０】
次に、図３のフローチャートを参照して、符号化装置１による符号化処理について説明する。
【００５１】
ステップＳ１において、ブロック化部１１は、VQ符号化部１２に対しては、VQ符号化用ブロック単位で入力画像の画素より抽出して供給し、ADRC符号化部１３に対しては、ADRC符号化用ブロック単位で入力画像の画素より抽出して供給する。
【００５２】
ステップＳ２において、ADRC符号化部１３は、ブロック化部１１より供給されたADRC符号化用ブロックの各画素の画素値を用いて、各画素をADRC符号化し、選択部１４に供給する。
【００５３】
すなわち、ADRC符号化とは、入力された画像のデータのダイナミックレンジ（DR）に適応した可変長の符号を出力する可変長符号化である。そこで、まず、ADRC符号化部１３は、供給されたADRC符号化用ブロックに含まれる画素値の最大値および最小値の差であるダイナミックレンジを検出する。
【００５４】
すなわち、例えば、ADRC符号化用ブロックが、図４で示されている場合、以下のように計算される。尚、図４においては、説明の都合上、ADRC符号化用ブロックは、各画素Ｐ１乃至Ｐ４からなる２画素×２画素のブロックであり、各画素の画素値は、Ｐ１乃至Ｐ４で示されるものとする。例えば、図４の各画素の画素値が図５で示されるような場合、DR（＝MAX−MIN）は、最大値である画素Ｐ４の画素値Ｐ４と、最小値である画素Ｐ３の差分（Ｐ４−Ｐ３）となる。尚、図５においては、MAXは、画素Ｐ１乃至Ｐ４の画素値の最大値を示しており、MINは、最小値を示している。
【００５５】
さらに、ADRC符号化部１３は、求められたDRに基づいて、各画素値を元の量子化ビットよりも少ないビット数で再量子化する。すなわち、図５で示されるような場合、DRが最も小さい場合、１ビットで再量子化すると、各画素のコードは、閾値ｔｈ１（＝MIN＋DR/2）との比較により決定することになる。すなわち、閾値ｔｈ１よりも大きい場合、コードを「１」とし、閾値ｔｈ１よりも小さい場合、コードを「０」とすると、画素Ｐ１の画素値のコードは「０」、画素Ｐ２の画素値のコードは「１」、画素Ｐ３の画素値のコードは「０」、さらに、画素Ｐ１の画素値のコードは「１」となる。
【００５６】
そして、ADRC符号化部１３は、これらの各画素のコードを順次配列し、ブロック単位のADRCコードを生成する。図５の場合、ADRC符号化部１３は、例えば、画素Ｐ１乃至Ｐ４の順序でコードを配列して、１ビットのADRCコードを生成するものとすると、図４のブロックのADRCコードは、「０１０１」となる。
【００５７】
ビット数は、DRに比例して設定されるものであり、例えば、DRが大きく、量子化ビットを２にすると、図５の場合、閾値ｔｈ０（＝MIN＋１×DR/4＝MIN＋１×DR/（２2））（DR/（２n）は、量子化幅、ｎは、量子化ビット数）よりも小さいとき、コードを「００」とし、閾値ｔｈ０以上で閾値ｔｈ１（＝MIN＋２×DR/4）よりも小さいとき、コードを「０１」とし、閾値ｔｈ１以上で閾値ｔｈ２（＝MIN＋３×DR/４）よりも小さいとき、コードを「１０」とし、閾値ｔｈ２以上のとき、コードを「１１」とすると、画素Ｐ１のコードは、「００」となり、画素Ｐ２のコードは、「１０」となり、画素Ｐ３のコードは、「００」となり、画素Ｐ４のコードは、「１１」となる。
【００５８】
従って、このような場合、ADRC符号化部１３は、図４のブロックの符号化コードとして「００１０００１１」を生成することになる。
【００５９】
さらに、DRが大きくなるに従って、再量子化に用いられるビット数は、増大し、例えば、最大４ビットに割り付けられる。
【００６０】
ADRC符号化は、このように、ダイナミックレンジが小さいほど、少ないビット数で再量子化することができ、量子化歪の増大を抑えつつ、画素の画素値の冗長度のみを除去して、更にデータ量を少なくすることが可能である。
【００６１】
尚、ADRC符号化部は、生成したADRCコードに、DRとMINの情報を付してADRC符号化データとして選択部１４に供給する。
【００６２】
ステップＳ３において、VQ符号化部１２は、ブロック化部１１より供給されたVQ符号化用ブロックの各画素の画素値を用いて、各画素をVQ符号化し、選択部１４に供給する。
【００６３】
すなわち、VQ符号化部１２は、VQ符号化用ブロックの複数の画素をまとめてベクトルとして量子化する。
【００６４】
すなわち、VQ符号化部１２は、例えば、VQ符号化用ブロックが図４で示されるような場合、ADRCコードに変換されたコードを10進数にした値を標本化し、これを連続した複数の標本値を要素とするベクトルVbを生成する。すなわち、図４の場合、上述したように、画素Ｐ１乃至Ｐ４が２ビットでADRC符号化されると、それぞれ、「００」、「１０」、「００」、および「１１」となる。そこで、これらを10進変換すると、画素Ｐ１に対応するコードＣ（Ｐ１）は「０」、画素Ｐ２に対応するコードＣ（Ｐ２）は、「１」、画素Ｐ３に対応するコードＣ（Ｐ３）は「２」、画素Ｐ４に対応するコードＣ（Ｐ４）は「３」となる。従って、VQ符号化部１２は、図４のVQ符号化用ブロックに対して、標本値からなるベクトルVb＝（Ｃ（Ｐ１），Ｃ（Ｐ２），Ｃ（Ｐ３），Ｃ（Ｐ４））は、Vｂ＝（Ｃ（Ｐ１），Ｃ（Ｐ２），Ｃ（Ｐ３），Ｃ（Ｐ４））＝（０，１，０，３）となる。
【００６５】
次に、VQ符号化部１２は、コードブック１５を参照し、登録された複数の代表ベクトルと、計算により求められたベクトルVbと最も近い代表ベクトルに対応するVQコードを、そのブロックのVQコードとして決定する。
【００６６】
ここで、コードブック１５とは、例えば、図６で示されるようなものである。図６においては、左側にVQコードが示されており、今の場合、上から「００」、「０１」、「１０」、および、「１１」と示されている。また、右側には、各VQコードに対応する代表ベクトルの各要素が示されており、今の場合、代表ベクトルは、上から（Ｃ（Ｐ１），Ｃ（Ｐ２），Ｃ（Ｐ３），Ｃ（Ｐ４））＝（５，７，２，１０），（６，７，１０，１１），（２，９，１０，１２），（０，１，０，３）と示されている。すなわち、図６においては、VQコード「００」に対応する代表ベクトルは、（５，７，２，１０）であり、VQコード「０１」に対応する代表ベクトルは、（６，７，１０，１１）であり、VQコード「１０」に対応する代表ベクトルは、（２，９，１０，１２）であり、VQコード「１１」に対応する代表ベクトルは、（０，１，０，３）であることが示されている。
【００６７】
図６の場合、VQ符号化部１２は、VQコード「１１」に対応する代表ベクトルと、計算により求められたベクトルVbは、同一であるので、VQコード「１１」に対応する代表ベクトルを、ベクトルVbに最も近い代表ベクトルとして選択し、対応するVQコードとして「１１」が選択されて、VQ符号化データとして選択部１４に供給されることになる。
【００６８】
尚、VQ符号化部１２は、生成したVQコードに、DRとMINの情報を付してVQ符号化データとして選択部１４に供給するが、この詳細については後述する。
【００６９】
ここで、図３のフローチャートの説明に戻る。
【００７０】
ステップＳ４において、選択部１４は、ADRC符号化部１３より供給されたADRC符号化データに付されているDRを所定の閾値と比較し、DRが所定の閾値よりも大きいと判定したとき、その処理は、ステップＳ５に進む。
【００７１】
ステップＳ５において、選択部１４は、ADRC符号化部１３より供給されたADRC符号化データを伝送路に出力する。
【００７２】
ステップＳ６において、ブロック化部１１は、画像の入力がなくなったか否かを判定し、画像の入力が終わったと判定されなかった場合、その処理は、ステップＳ１に戻り、それ以降の処理が繰り返される。
【００７３】
ステップＳ４において、DRが所定の閾値よりも大きいくないと判定されたとき、ステップＳ６において、選択部１４は、ADRC符号化部１３より供給されたADRC符号化データに対応するADRC符号化用ブロックに対応する領域のVQ符号化用ブロックのVQ符号化データを伝送路に出力する。すなわち、閾値の比較に用いられたADRC符号化用ブロックに対応する４個のVQ符号化用ブロックのVQ符号化データが出力される。
【００７４】
以上の処理により、ADRC符号化用ブロックのDRが所定の閾値よりも大きい場合、VQ符号化データよりもエラー耐性の高いADRC符号化データを採用し、逆に、ADRC符号化用ブロックのDRが所定の閾値よりも小さい場合、ADRC符号化データよりも高圧縮であるVQ符号化方式を採用することにより、高画質かつ高エラー耐性の符号化を実現することができる。即ち、ADRC符号化方式の特徴である符号化の高エラー耐性を維持しながら、DRの小さいエラー耐性を犠牲にしてもあまり影響しない部分を高圧縮率のVQ符号化データとすることにより、高圧縮率の符号化を実現することができる。
【００７５】
次に、図７のフローチャートを参照して、復号処理装置２による復号処理について説明する。
【００７６】
ステップＳ２１において、判別部２１は、符号化装置１より送信されてきた符号化データを取得する。
【００７７】
ステップＳ２２において、判別部２１は、取得した符号化データが、ADRC符号化データであるかあるか否かを判定し、例えば、ADRC符号化データであると判定した場合、取得した符号化データをADRC復号部２３に供給する。
【００７８】
ステップＳ２３において、ADRC復号部２３は、取得した符号化データをADRC復号し、復号結果である画像のデータを合成部２４に供給する。すなわち、ADRC復号部２３は、符号化データに付されているADRC符号化用ブロック毎のDRとMINの情報に基づいて、各コードについて、（DR／（２＾（量子化ビット数））×ADRCコード＋MIN）を演算することにより各コードを復号する。ここで、「＾」は、べき乗を表す。
【００７９】
一方、ステップＳ２２において、取得した符号化データが、ADRC符号化されたものではない、すなわち、VQ符号化されたものであると判定された場合、ステップＳ２４において、VQ復号部２２は、符号化データに含まれるVQコードを、コードブック２５に基づいてVQ復号し、復号結果である画像データを合成部２４に供給する。すなわち、VQコードに対応する代表ベクトルの各要素から各画素の画素値を復号する。
【００８０】
ステップＳ２５において、合成部２４は、１フレーム分の復号画像データが供給されたか否かを判定し、例えば、１フレーム分の画像データが供給されていると判定された場合、ステップＳ２６において、それらの復号画像データを１フレーム分の画像として合成して出力し、図示せぬディスプレイに表示させる。
【００８１】
ステップＳ２７において、判別部２１は、符号化データの供給が終了したか否かを判定し、終了していないと判定された場合、その処理はステップＳ２１に戻り、それ以降の処理が繰り返される。ステップＳ２７において、符号化データの供給が終了したと判定された場合、その処理は終了する。
【００８２】
ステップＳ２５において、１フレーム分の復号された画像データが蓄えられていないと判定された場合、ステップＳ２６の処理はスキップされる。すなわち、１フレーム分の符号された画像データが蓄えられた場合にのみ、ステップＳ２６の処理により、画像データが出力される。
【００８３】
以上のように、復号装置２では、符号化データの符号化データの符号化方式を判別して符号化データを復号するようにしたので、VQ符号化方式により得られるVQ符号化データと、ADRC符号化方式により得られるADRC符号化データとが混在する符号化データを復号することが可能となり、高画質の復号画像を得ることが可能となる。
【００８４】
なお、符号化データが、VQ符号化データまたはADRC符号化データのうちのいずれであるかは、例えば、VQ符号化データとADRC符号化データのそれぞれに、それらを識別するフラグを付すようにして、そのフラグに基づいて判定するようにすることが可能である。符号化データが、VQ符号化データまたはADRC符号化データのうちのいずれであるかは、その他、そのようなフラグを用いない任意の方法を採用することも可能である。
【００８５】
次に、図８を参照して、VQ符号化部１２の詳細な構成について説明する。
【００８６】
VQエンコーダ５１は、VQ符号化用ブロックとして入力された各画素の画素値によりベクトルを生成し、そのベクトルに最も近いコードブック１５の代表ベクトルに対応するVQコードを決定することにより、VQエンコード処理を実行し、エンコードの結果生成されるDR、MIN（DR、および、MINは、ベクトルVbを生成する際に求められる演算結果の一部）、およびVQコードからなるVQ符号化データを生成し、分離部５２に供給する。
【００８７】
分離部５２は、VQエンコーダ５１より供給されたVQ符号化データのうち、DRおよびMINからなる部分と、VQコードからなる部分とを分離し、DRおよびMINからなる部分をスクランブラ５３に供給すると共に、VQコードを、スクランブラ５３および合成部５４に供給する。
【００８８】
スクランブラ５３は、分離部５２より供給された、DRおよびMINからなる部分を、VQコードでスクランブル処理したスクランブルデータF_VQ（DR，MIN）を生成し、合成部５４に出力する。
【００８９】
合成部５４は、スクランブルデータF_VQ（DR，MIN）と、分離部５２より供給されたVQコードを合成し、これをVQ符号化データとして出力する。
【００９０】
次に、図９のフローチャートを参照して、図８のVQ符号化部１２によるVQエンコード処理について説明する。
【００９１】
ステップＳ４１において、VQエンコーダ５１は、VQ符号化用ブロック１個分の画像データが供給されてきたか否かを判定し、VQ符号化用ブロック１個分の画像データが供給されてきたと判定されるまで、その処理を繰り返す。そして、ステップＳ４１において、VQ符号化用ブロック１個分の画像データが供給されてきたと判定された場合、その処理は、ステップＳ４２に進む。
【００９２】
ステップＳ４２において、VQエンコーダ５１は、取得したVQ符号化用ブロックの画素値データに基づいて、DR、および、MINを求めて、上述したADRC符号化方式により符号化した後、さらに、ベクトルVbを生成して、さらに、コードブック１５に基づいて、ベクトルVbに最も近い代表ベクトルに対応するVQコードを決定する。
【００９３】
ステップＳ４３において、VQエンコーダ５１は、例えば、図１０で示されるように、DR、MIN、および、VQコードからなるVQ符号化データを生成し、分離部５２に供給する。尚、図１０においては、DRおよびMINは、それぞれ８ビットであり、VQコードは１６ビットであるが、それ以外のビット数であってもよい。
【００９４】
ステップＳ４４において、分離部５２は、VQエンコーダ５１より供給されたDRおよびMINの部分と、VQコードの部分を分離し、分離したDRおよびMINの部分をスクランブラ５３に供給すると共に、分離したVQコードの部分をスクランブラ５３、および、合成部５４に供給する。
【００９５】
ステップＳ４５において、スクランブラ５３は、分離されたDRおよびMINの部分を分離されたVQコードでスクランブル処理し、その結果生成されるスクランブルデータF_VQ（DR，MIN）を合成部５４に供給する。スクランブル処理は、分離されたDRおよびMINの部分と、VQコードの部分のデータにより可逆的に演算可能な方法でスクランブル処理されていれば、いかなる方法であってもよく、例えば、DRおよびMINの部分は、合計１６ビットであり、また、VQコードも１６ビットであるので、これらの各ビット毎にEXOR（Exclusive OR：排他的論理回路）処理するようにしてもよい。
【００９６】
ステップＳ４６において、合成部５４は、スクランブラ５３より供給されるスクランブルデータF_VQ（DR，MIN）と、分離部５２より供給されたVQコードとを合成し、例えば、図１１で示されるようなVQ符号化データを生成し、出力する。図１１においては、スクランブルデータF_VQ（DR，MIN）は１６ビットで構成され、VQコードは、図１０と同様に１６ビットである。
【００９７】
ステップＳ４７において、VQエンコーダ５１は、VQ符号化用ブロックの画像データが終了したか否かを判定し、終了していないと判定された場合、その処理は、ステップＳ４１に戻り、それ以降の処理が繰り返され、画像データが終了したと判定された場合、その処理は終了する。
【００９８】
以上の処理により、DRおよびMINのデータ部分が、VQコードによりスクランブル処理されて、スクランブルデータF_VQ（DR，MIN）としてVQ符号化データに付されることになるため、例えば、VQ符号化データを復号する際、伝送路上でVQデータが破壊された場合にでも、VQデータが破壊されているVQ符号化ブロックの近傍のVQ符号化ブロックのDRおよびMINのデータに基づいて、スクランブルデータF_VQ（DR，MIN）よりVQコードを抽出することで、VQコードを推定（復元）することが可能となり、結果として、エラー耐性を向上させることが可能となる。
【００９９】
次に、図１２を参照して、VQ符号化部２２の構成の詳細について説明する。
【０１００】
分離部７１は、上述した合成部５４により合成されたスクランブルデータF_VQ（DR，MIN）とVQコードからなるVQ符号化データを取得し、スクランブルデータF_VQ（DR，MIN）とVQコードを分離して、スクランブルデータF_VQ（DR，MIN）をデスクランブラ７２およびエラー処理部７４に、VQコードをデスクランブラ７２、切替部７５の端子７５ａ、および、エラー検出部７７にそれぞれ供給する。
【０１０１】
デスクランブラ７２は、分離部７１より供給されたスクランブルデータF_VQ（DR，MIN）を、VQコードでデスクランブル処理し、元のDRおよびMINのデータを生成し、メモリ７３および切替部７８の端子７８ａに供給する。具体的な処理は、図８のスクランブラ５３によりスクランブル処理される場合の変換処理に対する逆変換処理である。
【０１０２】
メモリ７３は、デスクランブラ７２より供給されたDRおよびMINのデータをそれぞれ２個分記憶しており、データがいっぱいになった場合、古いデータからエラー処理部７４および切替部７８の端子７８ｂに供給し、新しいデータを上書きする。このような処理により、メモリ７３は、今、デスクランブラ７２で処理しているVQ符号化用ブロックよりも前に処理されたVQ符号化用ブロックのDRおよびMINのデータをエラー処理部７４に供給する。
【０１０３】
また、メモリ７３は、エラー検出部７７がエラーを検出しない場合、新しいデータを上書きする。すなわち、VQコードにエラーが生じていない場合、デスクランブラ７２は、正しいデスクランブル処理が実行できず、デスクランブル処理されたDRおよびMINは正確な値に戻されていない可能性があるため、新たに記憶されないようにするためである。
【０１０４】
エラー処理部７４は、分離部７１より供給されたスクランブルデータから、メモリ７３より読み出したDRおよびMINのデータを用いて、VQコードを推定（復元）し、切替部７５の端子７５ｂに供給する。
【０１０５】
切替部７５は、エラー検出部７７により制御され、スイッチ７５ｃが、端子７５ａに接続された場合、分離部７１より供給されたVQコードをVQデコーダ７６に供給する。また、スイッチ７５ｃが端子７５ｂに接続された場合、エラー処理部７４により復元されたVQコードがVQデコーダ７６に供給される。
【０１０６】
VQデコーダ７６は、切替部７５より供給される、分離部７１より供給されるVQコード、または、エラー処理部７４により推定されたVQコードのいずれかをコードブック２５を参照し、切替部７８より供給されるDRおよびMINのデータ基づいてデコード処理し、すなわち、VQコードに対応する代表ベクトルのベクトル要素を用いて画素値を決定し、デコード処理した画像データを図示せぬディスプレイなどに出力し、表示させる。
【０１０７】
エラー検出部７７は、分離部７１より供給されるVQコードにエラーが発生しているか否かを判定し、判定結果に基づいて、メモリ７３および切替部７５，７８を制御する。
【０１０８】
切替部７８は、エラー検出部７７により制御され、スイッチ７８ｃが、端子７８ａに接続された場合、デスクランブラ７２より供給されたDRおよびMINのデータをVQデコーダ７６に供給する。また、スイッチ７８ｃが端子７８ｂに接続された場合、メモリ７３より供給されたDRおよびMINのデータがVQデコーダ７６に供給される。
【０１０９】
次に、図１３のフローチャートを参照して、図１２のVQ復号部２２によるVQデコード処理について説明する。ステップＳ６１において、分離部６１は、図１１で示されるようなVQ符号化データを、スクランブルデータF_VQ（DR，MIN）とVQコードとに分離し、スクランブルデータF_VQ（DR，MIN）をデスクランブラ７２およびエラー処理部７４に、VQコードをデスクランブラ７２、切替部７５の端子７５ａ、および、エラー検出部７７にそれぞれ供給する。
【０１１０】
ステップＳ６２において、デスクランブラ７２は、スクランブルデータF_VQ（DR，MIN）をVQコードを用いてデスクランブル処理し、元のDRおよびMINを生成してメモリ７３、および、切替部７８の端子７８ａに出力する。
【０１１１】
ステップＳ６３において、エラー処理部７４は、メモリ７３に記憶されている過去に出スクランブル処理されて生成された、DRおよびMINのうち、最も最近のDRおよびMINを読出し、これを用いて分離部７１より供給されたスクランブルデータF_VQ（DR，MIN）からVQコードを復元する。
【０１１２】
尚、ここで、今の処理しようとしているVQ符号化用ブロックが、１フレーム画像上のｎ番目のVQ符号化用ブロックｎであったとすると、この処理でメモリ７３より読み出されるDRおよびMINは、直近のVQコードにエラーが生じなかった（ｎ−Ｘ）番目に処理されたVQ符号化用ブロック（ｎ−Ｘ）のものである。ここで、直前に処理されたVQ符号化用ブロックにおいてVQコードにエラーが無ければX＝１となる。従って、厳密な意味では、供給されたスクランブルデータF_VQ（DR，MIN）をデスクランブルして求められるDRおよびMINではない。しかしながら、DRおよびMINは、画像の特徴から近傍のVQ符号化用ブロック間においては相関が高いため、後述するようにVQコードにエラーが生じて、スクランブルデータF_VQ（DR，MIN）に対応するVQコードが欠落してしまったような場合にでも、近傍のVQ符号化用ブロックのDRおよびMINにより比較的近いVQコードを推定することが可能となる。
【０１１３】
ステップＳ６４において、エラー検出部７７は、分離部７１より供給されたVQコードにエラーが生じていないか、例えば、１６ビット以外のビット数のデータになっていたりしていないかを判定し、エラーが生じていないと判定した場合、その処理は、ステップＳ６５に進む。
【０１１４】
ステップＳ６５において、エラー検出部７７は、切替部７５，７８のスイッチ７５ｃ，７８ｃをそれぞれ制御して、端子７５ａ，７８ａに接続する。
【０１１５】
ステップＳ６６において、エラー検出部７７は、今デスクランブラ７２より供給されたDRおよびMINの値が信頼のおけるものであるとみなし、メモリ７３に対して古いDRおよびMINの値に置き換えて記憶させる。
【０１１６】
ステップＳ６８において、VQデコーダ７６は、切替部７８より供給されるDRおよびMINに基づいて、切替部７５より供給されるVQコードをコードブック２５を参照して、対応する代表ベクトルの各様子から画素値を決定することによりデコードする。すなわち、今の場合、DRおよびMINは、デスクランブラ７２より供給されたものであり、VQコードは、分離部７１より供給されたものであるので、VQデコーダ７６は、本来の処理すべきVQ符号化用ブロックのVQ符号化データをデコードすることになる。
【０１１７】
ステップＳ６９において、分離部７１は、VQ符号化データの供給が終了したか否かを判定し、終了していないと判定された場合、その処理は、ステップＳ６１に戻り、それ以降の処理が繰り返され、VQ符号化データの供給が終了したと判定した場合、その処理を終了する。
【０１１８】
一方、ステップＳ６４において、エラーが検出された場合、ステップＳ６７において、エラー検出部７７は、切替部７５，７８のスイッチ７５ｃ，７８ｃをそれぞれ制御して、端子７５ｂ，７８ｂに接続する。
【０１１９】
すなわち、DRおよびMINは、メモリ７３より供給されたものであり、VQコードは、エラー処理部７４より供給されたものであるので、この場合、ステップＳ６８においては、VQデコーダ７６は、本来の処理すべきVQ符号化用ブロックの近傍のVQ符号化用ブロックのDRおよびMINを用いて、スクランブルデータF_VQ（DR，MIN）から推定（復元）されたVQコード（近傍のVQ符号化用ブロックのDRおよびMINを用いて、スクランブルデータF_VQ（DR，MIN）から推定されるVQコード）をデコードすることになる。
【０１２０】
以上の処理により、VQ符号化データのうち、VQコードが伝送路で破壊され、エラーが生じても、処理しようとするVQ符号化用ブロックの近傍のVQ符号化用ブロックのDRおよびMINを利用することによって、エラーを起こしたVQコードを推測することが可能となり、結果として、符号化通信におけるエラー耐性を向上させることが可能となる
【０１２１】
尚、以上においては、VQ符号化データに含まれるDRおよびMINを、VQコードでスクランブル処理する例について説明してきたが、VQコードを用いてDRおよびMINにスクランブル処理をすると、VQコードが隣接してしまうような場合、エラー検出部７７でエラーを検出できない程度のノイズがVQコードに影響してしまうと、DRおよびMINを正確にデスクランブルすることができなくなる（VQコード間で干渉してしまう）恐れがある。
【０１２２】
そこで、DRおよびMINを直接VQコードでスクランブル処理するのではなく、VQコードに対応付けられるランダム関数によりスクランブル処理するようにしてもよい。
【０１２３】
図１４は、DRおよびMINを直接VQコードでスクランブル処理するのではなく、VQコードに対応付けられるランダム関数によりスクランブル処理するようにしたVQ符号化部１２の構成を示している。尚、図８のVQ符号化部１２と同一の構成については、同一の番号を付しており、その説明は適宜省略するものとする。
【０１２４】
図１４において、図８のVQ符号化部１２と異なる点は、ランダム関数発生部９１を新たに設け、スクランブラ５３に代えて、スクランブラ９２を設けた点である。ランダム関数発生部９１は、VQコードと個々に対応するが、VQコード間の変化とは無関係なコードを発生する。より詳細には、ランダム関数発生部９１は、本来長い循環のパターンで「１」および「０」からなる信号パターンを発生するが、初期値として与えられる値により先頭から所定のビット数までは同じパターンで「１」または「０」が発生する。ここで、初期値の連続性と、発生する所定のビット数までのコードの連続性は無関係である（すなわち、例えば、３個の初期値として１，２，３を考える場合、初期値のそれぞれは相互に連続する値（隣接する値）となっているが、それぞれの初期値で発生するランダム関数のパターンには連続性がない）。
【０１２５】
すなわち、例えば、VQコードが２ビットのコードであって、このコードが初期値としてランダム関数発生部９１に入力されると、例えば、図１５で示すようなパターンのコードを生成する。図１５においては、先頭から１６ビット目までのパターンが示されている。
【０１２６】
すなわち、図１５において、ランダム関数発生部９１に入力される初期値の値である２ビットのVQコードとして、「００」、「０１」、「１０」、および、「１１」が示されており、それぞれに対応する先頭から１６ビットまでのパターンがそれぞれ示されている。図１５においては、初期値としてVQコードが「００」の場合、ランダム関数発生部９１は、「０１０１０１０１０１０１０１０１」のパターンを発生し、初期値としてVQコードが「０１」の場合、ランダム関数発生部９１は、「０１１１０００１１１０００１１１」のパターンを発生し、初期値としてVQコードが「１０」の場合、ランダム関数発生部９１は、「１１１０００１１１０００１１１０」のパターンを発生し、初期値としてVQコードが「１１」の場合、ランダム関数発生部９１は、「１００１００１１０１１０１１００」のパターンを発生することが示されている。図１５で示されるように、連続するVQコードを初期値としても、ランダム関数発生部９１により発生されるランダム関数のパターン間には連続性がないことが明らかなので、デスクランブルの際、干渉が生じ難くなる。
【０１２７】
そこで、ランダム関数発生部９１は、初期値としてVQコードが与えられると、それぞのVQコードには１対１で対応するが、ランダムな「１」、および「０」のパターンを発生し、スクランブラ９２は、これによりDRおよびMINをスクランブル処理する。
【０１２８】
次に、図１６のフローチャートを参照して、図１４のVQ符号化部１２によるVQエンコード処理について説明する。尚、図１６のフローチャートのステップＳ８１乃至Ｓ８４、および、ステップＳ８７，Ｓ８８の処理は、図９のフローチャートを参照して説明したステップＳ１乃至Ｓ４、および、Ｓ４６，Ｓ４７の処理と同様であるので、その説明は省略する。
【０１２９】
ステップＳ８５において、ランダム関数発生部９１は、分離部５２より供給されたVQコードに基づいて、ランダム関数を発生し、スクランブラ９２に供給する。
【０１３０】
ステップＳ８６において、スクランブラ９２は、分離されたDRおよびMINの部分を、ランダム関数発生部９１により発生されたランダム関数でスクランブル処理し、その結果生成されるスクランブルデータF’_VQ（DR，MIN）を合成部５４に供給する。
【０１３１】
以上の処理により、ランダム関数でDRおよびMINにスクランブル処理を掛けることが可能となるので、伝送路上でVQコードに多少ノイズが含まれても、全く異なる値でスクランブルデータF’_VQ（DR，MIN）をデスクランブルさせることが可能となるので、エラー耐性を向上させることが可能となる。
【０１３２】
次に、図１７を参照して、上述の図１４のVQ符号化部１２に対応するVQ復号部２２について説明する。尚、図１２のVQ復号部２２と同一の構成については、同一の番号を付しており、その説明は適宜省略するものとする。
【０１３３】
図１７において、図１２のVQ復号部２２と異なる点は、ランダム関数発生部１０１を新たに設け、デスクランブラ７２、メモリ７３、および、エラー処理部７４に代えて、デスクランブラ１０２、メモリ１０３、および、エラー処理部１０４を設けた点である。
【０１３４】
ランダム関数発生部１０１は、図１４のランダム関数発生部９１と同様のものであり、初期値となるVQコードによって発生するパターンも同様のものであり、発生したランダム関数をデスクランブラ１０２およびメモリ１０３に供給する。
【０１３５】
デスクランブラ１０２は、ランダム関数発生部１０１により発生されたランダム関数によりスクランブルデータF’_VQ（DR，MIN）をデスクランブル処理し、切替部７８の端子７８ａおよびメモリ１０３に出力する。
【０１３６】
メモリ１０３は、基本的には、メモリ７３と同様のものであるが、デスクランブルされたDRおよびMINに対応付けて、そのときのランダム関数を記憶する。
【０１３７】
エラー検出部１０４は、分離部７１より供給されたスクランブルデータから、メモリ１０３より読み出したDRおよびMIN、並びに、対応するランダム関数のデータを用いて、VQコードを推定（復元）し、切替部７５の端子７５ａに供給する。
【０１３８】
次に、図１８のフローチャートを参照して、図１７のVQ復号部２２によるVQデコード処理について説明する。尚、図１８のフローチャートのステップＳ１０１、および、Ｓ１０５，Ｓ１０６、および、Ｓ１０８乃至Ｓ１１０の処理は、図１３のフローチャートを参照して説明したステップＳ６１、および、Ｓ６４，Ｓ６５、および、Ｓ６７乃至Ｓ６９の処理と同様であるのでその説明は省略する。
【０１３９】
ステップＳ１０２において、ランダム関数発生部１０１は、分離部７１より供給されたVQコードに基づいて、ランダム関数を発生し、デスクランブラ１０２に供給する。
【０１４０】
ステップＳ１０３において、デスクランブラ１０２は、スクランブルデータF’_VQ（DR，MIN）をランダム関数発生部１０１より発生されたランダム関数を用いてデスクランブル処理し、元のDRおよびMINを生成してメモリ１０３、および、切替部７８の端子７８ａに出力する。
【０１４１】
ステップＳ１０４において、エラー処理部７４は、メモリ７３に記憶されているDRおよびMIN、並びに、ランダム関数を読出し、これを用いて分離部７１より供給されたスクランブルデータF’_VQ（DR，MIN）からVQコードを復元する。
【０１４２】
ステップＳ１０７において、エラー検出部７７は、今デスクランブラ１０２より供給されたDRおよびMIN、および、ランダム関数発生部１０１より供給されたランダム関数の値が信頼のおけるものであるとみなし、メモリ１０３に対して古いDRおよびMIN、並びに、ランダム関数の値に置き換えて記憶させる。
【０１４３】
以上の処理により、ランダム関数によりスクランブル処理されたDRおよびMINを、VQコードにより発生されるランダム関数によりデスクランブルするようにしたので、デスクランブル時に生じやすい干渉を抑制することができ、結果として、エラー耐性を向上させることが可能となる。
【０１４４】
尚、以上においては、DRおよびMINが、VQコード、または、ランダム関数によりスクランブルされる場合について説明してきたが、スクランブルされる値は、DRおよびMINでなくてもよく、例えば、VQ符号化ブロックの各画素の画素値により得られる平均値と標準偏差などであってもよい。また、ADRC符号化方式においては、DRおよびMINと称する値は、VQ符号化ブロックの各画素の画素値によりADRC符号化データを生成する際の正規化係数とオフセット値であるともいえるので、それらをスクランブルするようにしてもよい。
【０１４５】
また、以上においては、VQコード、または、ランダム関数によりスクランブル処理されるのは、DRおよびMINであったが、これは、画像データの特性上、画素間、または、VQ符号化用ブロック間で、その近傍の値と相関のあるデータであればよいので、DRのみ、または、MINのみをVQコード、または、ランダム関数でスクランブル処理してもよい。
【０１４６】
以上によれば、符号化データを生成する際、DRやMINなどのVQ符号化用ブロック間で、その近傍の値と相関のあるデータを、VQコードなどのVQ符号化用ブロック間で、その近傍の値と相関のないデータでスクランブルことにより、相関性のあるデータ（例えば、DRやMIN）に、相関性のないデータ（例えば、VQコード）を埋め込むことが可能となるので、伝送路上で、相関性のないデータが欠落するようなことがあっても、相関性のあるデータの相関に基づいて、欠落したデータを推定することが可能となり、結果として、高圧縮率で、かつ、高エラー耐性の符号化データによる通信を可能にする。
【０１４７】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【０１４８】
図１９は、図１の符号化装置１、および、復号装置２の電気的な内部構成をソフトウェアにより実現する場合のパーソナルコンピュータの一実施の形態の構成を示している。パーソナルコンピュータのCPU２０１は、パーソナルコンピュータの全体の動作を制御する。また、CPU２０１は、バス２０４および入出力インタフェース２０５を介してユーザからキーボードやマウスなどからなる入力部２０６から指令が入力されると、それに対応してROM(Read Only Memory) ２０２に格納されているプログラムを実行する。あるいはまた、CPU２０１は、ドライブ２１０に接続された磁気ディスク２１１、光ディスク２１２、光磁気ディスク２１３、または半導体メモリ２１４から読み出され、記憶部２０８にインストールされたプログラムを、RAM(Random Access Memory)２０３にロードして実行する。これにより、上述した図１の符号化装置１、および、復号装置２の機能が、ソフトウェアにより実現されている。さらに、CPU２０１は、通信部２０９を制御して、外部と通信し、データの授受を実行する。
【０１４９】
プログラムが記録されている記録媒体は、図１９に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク２１１（フレキシブルディスクを含む）、光ディスク２１２（CD-ROM(Compact Disc-Read Only Memory)，DVD（Digital Versatile Disk）を含む）、光磁気ディスク２１３（MD（Mini-Disc）を含む）、もしくは半導体メモリ２１４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM２０２や、記憶部２０８に含まれるハードディスクなどで構成される。
【０１５０】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【０１５１】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０１５２】
【図１】本発明を適用した通信システムの構成を示す図である。
【図２】画像データのブロック化を説明する図である。
【図３】図１の符号化装置の符号化処理を説明するフローチャートである。
【図４】ADRCを説明する図である。
【図５】ADRCを説明する図である。
【図６】コードブックを説明する図である。
【図７】図１の復号装置の復号処理を説明するフローチャートである。
【図８】図１のVQ符号化部の構成を示すブロック図である。
【図９】図８のVQ符号化部によるVQエンコード処理を説明するフローチャートである。
【図１０】VQ符号化データを説明する図である。
【図１１】DRおよびMINがスクランブル処理されたVQ符号化データを説明する図である。
【図１２】図１のVQ復号部の構成を示すブロック図である。
【図１３】図１２のVQ復号部によるVQデコード処理を説明するフローチャートである。
【図１４】図１のVQ符号化部のその他の構成を示すブロック図である。
【図１５】図１４のランダム関数発生部により発生されるランダム関数を説明する図である。
【図１６】図１４のVQ符号化部によるVQエンコード処理を説明するフローチャートである。
【図１７】図１のVQ復号部のその他の構成を示すブロック図である。
【図１８】図１７のVQ復号部によるVQデコード処理を説明するフローチャートである。
【図１９】記録媒体を説明する図である。
【符号の説明】
【０１５３】
１  符号化装置，  ２  復号装置，  １２  VQ符号化部，  ２２  VQ復号部，  ５１  VQエンコーダ，  ５２  分離部，  ５３  スクランブラ，  ５４  合成部，  ７１  分離部，  ７２  デスクランブラ，  ７３  メモリ，  ７４  エラー処理部，  ７５  切替部，  ７６  VQデコーダ，  ７７  エラー検出部，  ９１  ランダム関数発生部，  ９２  スクランブラ，  １０１  ランダム関数発生部，  １０２  デスクランブラ，  １０３  メモリ，  １０４  エラー検出部
【図１】
2005117548.tif 000003
【図２】
2005117548.tif 000004
【図３】
2005117548.tif 000005
【図４】
2005117548.tif 000006
【図５】
2005117548.tif 000007
【図６】
2005117548.tif 000008
【図７】
2005117548.tif 000009
【図８】
2005117548.tif 000010
【図９】
2005117548.tif 000011
【図１０】
2005117548.tif 000012
【図１１】
2005117548.tif 000013
【図１２】
2005117548.tif 000014
【図１３】
2005117548.tif 000015
【図１４】
2005117548.tif 000016
【図１５】
2005117548.tif 000017
【図１６】
2005117548.tif 000018
【図１７】
2005117548.tif 000019
【図１８】
2005117548.tif 000020
【図１９】
2005117548.tif 000021