(57)【要約】【課題】  ブロック内の画素ごとに、量子化ステップを設定可能となり、かつ、隣り合うブロックの境界でのノイズ発生を抑制する。【解決手段】符号化対象の画像データを複数のブロックに分割する分割部と、該分割部で得られた前記複数のブロックのそれぞれを解析し、各ブロックの特徴量から、個々のブロックの量子化代表値を設定する設定部と、前記複数のブロックにおける着目ブロック内の各画素位置の量子化ステップ値を、当該着目ブロックの量子化代表値、並びに、前記着目ブロックに隣接する隣接ブロックの量子化代表値から導出する導出部と、前記着目ブロック内の各画素位置の画素値を、前記導出部で導出した量子化ステップ値を用いて量子化する量子化部と、該量子化部による量子化後の画素値を符号化する符号化部と、該符号化部で得られた符号化データ及び前記設定部により設定された各ブロックの量子化代表値を示す情報を出力する出力部とを有する。【選択図】  図１
2017085498.tif 000002
【特許請求の範囲】
【請求項１】
符号化対象の画像データを複数のブロックに分割する分割手段と、
該分割手段で得られた前記複数のブロックのそれぞれを解析し、それぞれのブロックの量子化代表値を設定する設定手段と、
前記複数のブロックにおける着目ブロック内の各画素位置の量子化ステップ値を、当該着目ブロックの量子化代表値、並びに、前記着目ブロックに隣接する隣接ブロックの量子化代表値から導出する導出手段と、
前記着目ブロック内の各画素位置の画素値を、前記導出手段で導出した量子化ステップ値を用いて量子化する量子化手段と、
該量子化手段による量子化後の画素値を符号化する符号化手段と、
該符号化手段で得られた符号化データ及び前記設定手段により設定された各ブロックの量子化代表値を示す情報を出力する出力手段と
を有することを特徴とする符号化装置。
【請求項２】
前記導出手段は、
着目ブロックをＡ、前記着目ブロックＡの量子化代表値をＱA、前記着目ブロックＡ内の着目画素から前記着目ブロックＡの中心までの距離をＬA、前記着目ブロックＡに隣接し、前記着目画素に最も近い隣接ブロックをＢ、当該隣接ブロックの量子化代表値をＱB、前記着目画素から前記隣接ブロックＢの中心位置までの距離をＬBとしたとき、
前記着目画素の量子化ステップ値ＱTを、
ＱT＝（ＬA×ＱB＋ＬB×ＱA）／（ＬA＋ＬB）
として求めることを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記導出手段は、
着目ブロックをＡ、前記着目ブロックＡの量子化代表値をブロックＡの量子化代表値をＱA、ブロックＡの中心の座標を（ＸA、ＹA）、着目ブロックＡにおける着目画素の位置を（ＸT、ＹT）、前記着目ブロックＡに隣接するブロックの中で前記着目画素に近い３つのブロックＢ、Ｃ、Ｄの量子化代表値をＱB、ＱC、ＱD、そして、ブロックＢ，Ｃ，Ｄの中心の座標を（ＸB、ＹB）、（ＸC、ＹC）、（ＸD、ＹD）としたとき、
前記着目画素の量子化ステップ値ＱTを、
2017085498.tif 000004
として求めることを特徴とする請求項１に記載の符号化装置。
【請求項４】
前記符号化対象の画像における予め設定された矩形領域に、文字列で示される画像を埋め込む埋め込み手段を更に有し、
前記分割手段は、前記矩形領域を前記ブロックの１つとし、前記埋め込み手段で前記文字列を示す画像の埋め込み後の前記符号化対象の画像を分割し、
前記設定手段は、前記文字列を示す画像が埋め込まれたブロックについては、予め設定された特定の値を量子化代表値として設定し、
前記着目ブロックの量子化代表値が前記特定の値であった場合、前記導出手段及び前記量子化手段は前記着目ブロック内の画素位置の量子化ステップ値の導出、量子化をスキップする
ことを特徴とする請求項１乃至３のいずれか１項に記載の符号化装置。
【請求項５】
前記符号化対象の画像を、ハイパスフィルタ及びローパスフィルタを用いて、複数のサブバンドに分割するフィルタ手段を更に有し、
前記分割手段は、前記フィルタ手段で得られた１つのサブバンドを、前記符号化対象の画像データとして分割する
ことを特徴とする請求項１乃至３に記載の符号化装置。
【請求項６】
前記フィルタ手段はウェーブレット変換手段であって、
前記導出手段は、
前記着目ブロックが、サブバンドＨＬに属する場合は、当該着目ブロックの量子化代表値、並びに、前記着目ブロックの垂直方向に隣接する隣接ブロックの量子化代表値から着目ブロック内の各画素位置の量子化ステップ値を導出し、
前記着目ブロックが、サブバンドＬＨに属する場合は、当該着目ブロックの量子化代表値、並びに、前記着目ブロックの水平方向に隣接する隣接ブロックの量子化代表値から着目ブロック内の各画素位置の量子化ステップ値を導出し、
前記着目ブロックが、サブバンドＬＬ、ＨＨのいずれかに属する場合には、請求項２または３に従って、前記着目画素の量子化ステップ値ＱTを導出する
ことを特徴とする符号化装置。
【請求項７】
前記設定手段は、前記ブロック内の画素値の分散値を求め、当該分散値に基づきブロックの量子化代表値を設定することを特徴とする請求項１乃至６のいずれか１項に記載の符号化装置。
【請求項８】
符号化データストリームから、符号化された画像を構成する複数のブロックの量子化代表値を示す情報と、各ブロックの符号化データとに分離する分離手段と、
前記符号化データを復号する復号手段と、
前記複数のブロックにおける着目ブロック内の各画素位置の量子化ステップ値を、当該着目ブロックの量子化代表値、並びに、前記着目ブロックに隣接する隣接ブロックの量子化代表値から導出する導出手段と、
前記復号手段で得られた着目ブロック内の各画素値を、前記導出手段で導出した量子化ステップ値を用いて逆量子化する逆量子化手段と、
該逆量子化手段による逆量子化後の各ブロックを統合し、復元画像を生成する生成手段と
を有することを特徴とする復号装置。
【請求項９】
符号化対象の画像データを複数のブロックに分割する分割工程と、
該分割工程で得られた前記複数のブロックのそれぞれを解析し、それぞれのブロックの量子化代表値を設定する設定工程と、
前記複数のブロックにおける着目ブロック内の各画素位置の量子化ステップ値を、当該着目ブロックの量子化代表値、並びに、前記着目ブロックに隣接する隣接ブロックの量子化代表値から導出する導出工程と、
前記着目ブロック内の各画素位置の画素値を、前記導出工程で導出した量子化ステップ値を用いて量子化する量子化工程と、
該量子化工程による量子化後の画素値を符号化する符号化工程と、
該符号化工程で得られた符号化データ及び前記設定工程により設定された各ブロックの量子化代表値を示す情報を出力する出力工程と
を有することを特徴とする符号化装置の制御方法。
【請求項１０】
コンピュータに読み込ませ実行させることで、前記コンピュータを、請求項９に記載の方法の各工程を実行させるためのプログラム。
【請求項１１】
符号化データストリームから、符号化された画像を構成する複数のブロックの量子化代表値を示す情報と、各ブロックの符号化データとに分離する分離工程と、
前記符号化データを復号する復号工程と、
前記複数のブロックにおける着目ブロック内の各画素位置の量子化ステップ値を、当該着目ブロックの量子化代表値、並びに、前記着目ブロックに隣接する隣接ブロックの量子化代表値から導出する導出工程と、
前記復号工程で得られた着目ブロック内の各画素値を、前記導出工程で導出した量子化ステップ値を用いて逆量子化する逆量子化工程と、
該逆量子化工程による逆量子化後の各ブロックを統合し、復元画像を生成する生成工程と
を有することを特徴とする復号装置の制御方法。
【請求項１２】
コンピュータに読み込ませ実行させることで、前記コンピュータを、請求項１２に記載の方法の各工程を実行させるためのプログラム。
【請求項１３】
請求項１１または１３に記載のプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの符号化技術に関するものである。
【背景技術】
【０００２】
画像データの符号化技術に、画像データを複数のブロックに分割し、ブロック単位に符号化を行う手法が知られている。そして、符号化効率を上げるため、ブロック単位に符号化する際に、ＭＰＥＧやＨ．２６４のように量子化ステップのサイズを適応的に変更することが考えられる。
【０００３】
しかしながら、隣り合うブロックでの量子化ステップのサイズの差が大きくなると、復号した画像におけるブロック境界に、ノイズとなって現れる。ブロック毎の量子化ステップのサイズの差が起因となるノイズの発生を抑制する技術を開示する文献として、例えば特許文献１、特許文献２を挙げることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−１８９５５号公報
【特許文献２】特開平４−３２１３９１号公報
【特許文献３】特開２００３−３４８６０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１、特許文献２に開示された技術は、ブロック内の画素に対して一括で量子化ステップを設定する構成となっている。そのため、画素毎で適応的に量子化ステップ値を設定することができない。
【０００６】
本発明は、ブロック内の画素ごとに、量子化ステップを設定可能としつつ、隣り合うブロックの境界でのノイズ発生を抑制する技術を提供しようとするものである。
【課題を解決するための手段】
【０００７】
この課題を解決するため、例えば本発明の符号化装置は以下の構成を備える。すなわち、
符号化対象の画像データを複数のブロックに分割する分割手段と、
該分割手段で得られた前記複数のブロックのそれぞれを解析し、それぞれのブロックの量子化代表値を設定する設定手段と、
前記複数のブロックにおける着目ブロック内の各画素位置の量子化ステップ値を、当該着目ブロックの量子化代表値、並びに、前記着目ブロックに隣接する隣接ブロックの量子化代表値から導出する導出手段と、
前記着目ブロック内の各画素位置の画素値を、前記導出手段で導出した量子化ステップ値を用いて量子化する量子化手段と、
該量子化手段による量子化後の画素値を符号化する符号化手段と、
該符号化手段で得られた符号化データ及び前記設定手段により設定された各ブロックの量子化代表値を示す情報を出力する出力手段とを有する。
【発明の効果】
【０００８】
本発明によれば、ブロック内の画素ごとに、量子化ステップを設定可能となり、かつ、隣り合うブロックの境界でのノイズ発生を抑制することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１の符号化装置のブロック構成図。
【図２】サブバンド分割例を示す図。
【図３】ベイヤ配列を示す図。
【図４】量子化代表値を設定する箇所を示す図。
【図５】画素毎の量子化ステップのサイズの計算に用いる関数をグラフで表す図。
【図６】実施形態１の符号化装置の符号化処理を示すフローチャート。
【図７】実施形態１の復号装置のブロック構成図。
【図８】実施形態１の復号装置の復号処理を示すフローチャート。
【図９】実施形態２の画素毎の量子化ステップのサイズの計算を説明するための図。
【図１０】実施形態２の符号化装置の符号化処理を示すフローチャート。
【図１１】実施形態２の復号装置の復号処理を示すフローチャート。
【図１２】実施形態３の符号化装置のブロック構成図。
【図１３】実施形態３における文字列の埋め込むためのブロックを示す図。
【図１４】実施形態３の符号化装置の符号化処理を示すフローチャート。
【図１５】実施形態３の復号装置の復号処理を示すフローチャート。
【図１６】実施形態４の符号化装置のブロック構成図。
【図１７】実施形態４の符号化装置の符号化処理を示すフローチャート。
【図１８】実施形態４の復号装置のブロック構成図。
【図１９】実施形態４の復号装置の復号処理を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施形態を説明する。ただし、本発明は以下に説明する実施形態に限定されるものではない。
【００１１】
［第１実施形態］
第１実施形態では、撮像部を有する電子機器に適用した例を説明する。具体的な電子機器として示すのであれば、デジタルカメラ、携帯電話、スマートホン、タブレットなどがあげられる。第１の実施形態での電子機器は、撮像して得た画像データを符号化しメモリカードなどの記憶媒体に格納する処理、並びに、撮像した画像を表示するため、記憶媒体に格納された符号化データを復号する処理を行う。そのため、電子機器は、符号化装置と復号装置を合わせ持つ構成である。なお、符号化装置、復号装置がそれぞれ単独の装置であっても構わない。そこで、第１の実施形態では、符号化装置と復号装置に分けて説明する。
【００１２】
＜符号化装置について＞
第１実施形態の符号化装置１００の構成及び処理の流れについて、図１のブロック図を参照しながら説明を行う。
【００１３】
ユーザからの指示入力部１０１に対する撮影指示入力があると、指示入力部１０１は、その指示入力を検出して、被写体の撮影命令を示す信号（以下、撮影命令信号）を制御部１０２に供給する。指示入力部１０１の構成は特に問わない。例えば、指示入力部１０１は、シャッタースイッチの様な押しボタンを有し、そのボタンの押下の検出により撮影命令信号を発生しても良い。あるいは、指示入力部１０１はタッチパネルと有し、ユーザによるタッチパネルへのタッチの検出により、撮影命令信号を発生しても良い。
【００１４】
制御部１０２は、ＣＰＵと当該ＣＰＵが実行する制御プログラムを格納するメモリで構成される。制御部１０２が指示入力部１０１より送られた撮影命令信号を受けて、撮像部１０３や符号化装置１００などを制御する。具体的には、制御部１０２は、撮影命令信号を受信すると、撮像部１０３を制御し、被写体像を示す電気号を取得させる。撮像部１０３は撮像レンズと、図３で示すベイヤ配列のカラーフィルターを有するセンサから構成される。そして、撮像部１０３は、センサに結像した被写体の光学像に対応する電気信号を生成する。なお、撮像部１０３におけるセンサはＣＭＯＳやＣＣＤで構成される。
【００１５】
撮像部１０３で被写体の光学像から変換された電気信号は信号処理部１０４に送られ、信号処理部１０４によって修復処理が施される。修復処理には、撮像部１０３のセンサにおける欠落画素や信頼性の低い画素の値に対し、周辺画素値を用いて修復対象の画素を補間したり、所定のオフセット値を減算したりする処理が含まれる。
【００１６】
また、信号処理部１０４は、修復処理した電気信号をデジタルデータに変換し、そのデジタルデータを現像部１０５に供給する。現像部１０５は、供給されたベイヤ配列のデジタルデータを現像処理（デモザイク処理など）を施し、１画素当たり例えばＲ，Ｇ，Ｂの３成分の画像データを生成する。そして、現像部１０５は、生成した画像データを画像分割部１０６に供給する。なお、現像部１０５として、特許文献３に示す現像処理を行っても良い。
【００１７】
画像分割部１０６は、内部に画像データを１枚分格納するメモリを有し、そのメモリに、信号処理部１０４からの画像データを一旦格納する。そして、画像分割部１０６は、メモリに格納された画像を、予め設定されたサイズのブロックに分割し、各ブロックを特徴抽出部１０７に供給する。
【００１８】
ここで、第１の実施形態の画像分割部１０６によって生成された各ブロックの形状及びサイズは同じとする。これは説明を簡単にするためであり、ブロックの形状、サイズは異なっても構わない。なお、画像分割部１０６が、特徴抽出部１０７に供給するブロックの順番は、ブロックを単位とするラスタースキャン順として説明を続ける。
【００１９】
特徴抽出部１０７は、画像分割部１０６から送られた着目ブロックを解析し、着目ブロックの特徴量を抽出する。そして、特徴抽出部１０７は、抽出した特徴量を設定部１０８に供給する。第１の実施形態における特徴抽出部１０７は、着目ブロックの画素値の分散値を算出し、その算出した分散値を着目ブロックから抽出した特徴量として設定部１０８に供給する。なお、特徴抽出部１０７は、着目ブロック内の各画素のＲ，Ｇ，Ｂの３成分から１つの輝度、２つの色差成分への色空間変換を行って、輝度値についての分散を求めることとする。だたし、３成分それぞれの分散値を求めても構わない。
【００２０】
設定部１０８は、特徴抽出部１０７から供給された着目ブロックの特徴量に基づき、着目ブロックを量子化するための、代表となる１個の量子化ステップ値を決定し、量子化マップ記録部１０９に送る。なお、この代表量子化ステップ値を、以降、量子化代表値と呼称する。なお、分散値が小さいほど、量子化代表値（量子化ステップ値）は大きい値となる。量子化代表値Ｑ、分散値をσ2と定義したとき、設定部１０８は、予め設定された関数ｆ（）に従って量子化代表値を算出する。
Ｑ＝ｆ（σ2）
なお、設定部１０８は、関数の代わりに、テーブルを参照して、量子化代表値を決定しても構わない。
【００２１】
量子化マップ記録部１０９は、設定部１０８によって決定した着目ブロックの量子化代表値を、その着目ブロックが示す位置を示す情報と関連付けて記憶保持する。そのため、量子化マップ記録部１０９は、内部にＲＡＭなどのメモリを有する。以降、ブロック毎の、量子化代表値とそのブロックの位置を示す情報とを量子化マップ情報と呼称する。
【００２２】
量子化ステップ計算部１１０、ストリーム生成部１１３は、量子化マップ記録部１０９に記録されている量子化マップ情報（量子化代表値とブロックの位置情報）を読み出すことができる。
【００２３】
以上のようにして、符号化対象の画像データを構成する全ブロックの量子化マップ情報が生成される。この量子化マップ情報を生成するために、画像分割部１０６が特徴抽出部１０７に各ブロックを供給する処理を第１パスと呼ぶ。この第１パスを終えると、画像分割部１０６は、第２パスとして、符号化対象の画像データの各ブロックを、ブロックを単位とするラスタースキャン順に量子化部１１１に供給する処理を行う。以下は、第２パスにおける各処理部の説明である。なお、動画像の符号化の場合、着目フレームの画像データの第２パスの処理を行っている間、着目フレームに後続するフレームの第１パス目の処理を行っても構わない。
【００２４】
量子化ステップ計算部１１０は、内部に１ブロック分の量子化ステップ値を記憶するメモリを有する。そして量子化ステップ計算部１１０は、量子化マップ記録部１０９から、量子化処理をしようとする着目ブロックの量子化代表値と、着目ブロックに隣接するブロックの量子化代表値とを読み出す。そして、量子化ステップ計算部１１０は、次の方法で、着目ブロックの画素毎の量子化ステップ値を計算し、内部のメモリに格納する。以下、量子化ステップ計算部１１０による着目ブロック内の各画素の量子化ステップ値の計算法を説明する。
【００２５】
量子化ステップ値の計算を行う上で、図４（ａ）に示すように量子化代表値を着目ブロックの中心に位置する画素に設定する。ブロックの中心に位置する画素は、量子化代表値を量子化ステップ値として用いることで量子化される。画素毎の量子化ステップ値の計算を説明するための記号の定義を次に示す。量子化ステップ値を計算する対象の画素をＴ、画素Ｔを含む着目ブロックをＡ、着目ブロックＡの量子化代表値をＱA、Ｔから着目ブロックＡの中心座標までの距離をＬAと定義する。また、着目ブロックＡに隣接するブロックの中で、画素Ｔに最も近いブロックを隣接ブロックＢ、隣接ブロックＢの量子化代表値をＱB、画素Ｔから隣接ブロックＢの中心座標までの距離をＬBと定義する。この定義の下で、着目ブロック内の着目画素Ｔの量子化ステップ値ＱTは次式（１）で与えられる。
ＱT＝（ＬA×ＱB＋ＬB×ＱA）／（ＬA＋ＬB）  …（１）
量子化ステップ計算部１１０ は、着目ブロックＡに含まれる全画素の量子化ステップ値を、上式の線形補間式に従って算出する。
【００２６】
ここで、着目ブロックＡ内の画素Ｔに近い隣接ブックＢの候補が複数存在する場合がある。この場合、第１の実施形態では、“左、上、右、下、左上、右上、右上、左下、右下”の順に優先順位を設けてブロックＢを決定する。例えば画素Ｔに近いブロックとして、左隣、上隣の２つのブロックが存在する場合は、左隣のブロックをブロックＢであるものとして決定する。ただし、着目ブロックが、画像の左端に位置する場合には、左、左上、左下に隣接するブロックは存在しない。このように存在しないブロックは、除外してブロックＢを決定する。
【００２７】
なお、第１の実施形態では、図４（ａ）に示すように量子化代表値をブロックの中心の画素に設定したが、ブロックの水平、垂直何れかの画素数が偶数であった場合については、中心に位置する複数の画素に量子化代表値を設定してもよい。この場合、Ｔに最も近い画素の座標が量子化ステップ値の計算に用いられる。
【００２８】
また、量子化代表値をブロックの中心の画素に設定するのではなく、図４（ｂ）に示すように量子化代表値を分割境界付近から所定画素隔てた範囲に設定してもよい。この場合、画素Ｔに最も近い画素の座標が量子化ステップ値の計算に用いられる。ここで、図４（ｂ）の斜線部分に該当する領域に含まれる画素については、量子化代表値を量子化ステップ値として使用する。
【００２９】
また、第１の実施形態では線形補間式に基づいて画素毎の量子化ステップ値を設定したが、例えば図５（ａ）に示すグラフを描くようなブロックの中心付近と境界付近で傾きが違う関数を用いてもよい。さらに、図５（ｂ）に示すグラフを描くような分割境界を中心としてＳ字カーブを描く非線形関数を用いてもよい。
【００３０】
画素毎に適応的に量子化ステップ値を設定することで、隣接する２つのブロックのブロック境界付近の画素の量子化ステップ値の差が小さくできる。ブロック境界上のノイズの発生は、隣接するブロックにおけるブロック境界付近で量子化ステップ値の差が大きいことに起因している。これに対し、実施形態によれば、隣接する２つのブロックのブロック境界付近の画素の量子化ステップ値の差が小さくなるので、そのブロック境界上のノイズの発生を抑制することができる。
【００３１】
量子化部１１１は、量子化ステップ計算部１１０から送られた画素毎の量子化ステップ値を用いて、画像分割部１０６から供給された着目ブロック内の画像データを量子化して量子化画像データを生成し、圧縮部１１２に送る。量子化部１１１は、符号化対象の画像データの全ブロックについて、この処理を行うことになる。
【００３２】
圧縮部１１２は、量子化部１１１から送られた量子化画像データを、圧縮符号化して圧縮画像データを生成し、ストリーム生成部１１３に送る。ここで圧縮部１１２はハフマン符号化やゴロム符号化などの処理の軽い、あるいは、回路規模が小さくて済む符号化が望ましい。
【００３３】
ストリーム生成部１１３は、量子化マップ記録部１０９から読みだした量子化マップ情報、及び圧縮部１１２から送られた圧縮画像データを１つのデータストリームにまとめ、メモリＩ／Ｆ部１１４を介して記録媒体１１５（例えばＳＤメモリカード）に向けて出力し、記録媒体１１５に格納させる。ここで、ストリーム生成部１１３は量子化マップ記録部１０９から読み出した量子化マップ情報を可逆符号化した後に、画像データの符号化データとまとめてデータストリームを生成しても良い。可逆符号化の種類は特に問わないが、ここではハフマン符号化とする。
【００３４】
ストリーム生成部１１３は生成したデータストリームを、磁気ディスクや半導体メモリなどで構成される記録媒体１１５はファイルとして格納する。
【００３５】
続いて、第１実施形態の符号化装置の制御部１０２の処理を図６に示すフローチャートに従って説明する。
【００３６】
制御部１０２は、Ｓ６０１にて、指示入力部１０１から撮影命令信号を受信する。そして、制御部１０２は、Ｓ６０２にて、撮像部１０３を制御し、被写体の撮像を行わせ、被写体の光学像の電気信号を生成させる。次いで、制御部１０２はＳ６０３にて信号処理部１０４を制御し、被写体の電気信号の修復処理を行わせる。制御部１０２は、Ｓ６０４にて、現像部１０５を制御し、修復処理後の被写体の電気信号について現像処理を行わせ、デジタルの画像データを生成させる。制御部１０２は、Ｓ６０５にて、画像分割部１０６を制御し、現像部１０５からの画像データを複数のブロックに分割させる。
【００３７】
後続するＳ６０６乃至Ｓ６０９のループは、複数のブロック中の１つのブロックに対する処理である。この処理対象の１つのブロックを以降、着目ブロックと言う。画像分割部１０６が画像データをＭ×Ｎ個のブロックに分割した場合、着目ブロックの位置は、ブロックを単位とするラスタースキャン順に移動することになる。
【００３８】
まず、制御部１０２は、Ｓ６０６にて、特徴抽出部１０７を制御して、着目ブロックの特徴量（実施形態では分散値）を抽出させる。次いで、Ｓ６０７にて、制御部１０２は設定部１０８を制御し、着目ブロックの量子化代表値を設定する。次いで、制御部１０２は、Ｓ６０８にて、量子化マップ記録部１０９を制御し、設定した量子化代表値と着目ブロックの位置とで構成される量子化マップを生成し、量子化マップ記録部１０９内のメモリに記憶させる。そして、制御部１０２は、Ｓ６０９にて、画像分割部１０６が生成した全ブロックの量子化マップ情報の生成処理を終えたか否かを判定する。否の場合には、Ｓ６０６に処理を戻す。
【００３９】
こうして、全ブロックの量子化マップ情報の生成を終えると、制御部１０２は処理をＳ６１０乃至Ｓ６１９のループ処理を行う。このループ処理では、ブロック毎の、量子化処理及び符号化処理が符号化処理が行われる。それ故、Ｓ６１０乃至６１９の処理でも、量子化、符号化対象の着目ブロックと言う。
【００４０】
まず、制御部１０２は、Ｓ６１０にて、着目ブロックを、先に示した式（１）におけるブロックＡとして指定する。そして、制御部１０２は、Ｓ６１１にて、ブロックＡの量子化代表値ＱAを量子化マップ記録部１０９から読み出す。そして、制御部１０２は、Ｓ６１２にて、ブロックＡ内の量子化対象の１つの画素Ｔの位置を指定する。ここで指定する画素Ｔの位置は、ブロックＡ内をラスタースキャン順に移動するものとする。従って、ブロックＡ内の最初に量子化する画素は、ブロックＡ内の左上隅の画素となる。次に、制御部１０２は、Ｓ６１３にて、ブロックＡに隣接し、実在する隣接ブロックの中から、画素Ｔの位置に最も近いブロックを、ブロックＢとして設定する。次いで、制御部１０２は、Ｓ６１４にて、ブロックＢの量子化代表値ＱBを量子化マップ記録部１０９から読み出す。そして、制御部１０２は、Ｓ６１５にて、画素Ｔの位置、ブロックＡの量子化代表値ＱA、ブロックＢの量子化代表値ＱBを、量子化ステップ計算部１１０に与えることで、画素Ｔの位置における量子化ステップ値ＱTを算出させる。算出された量子化ステップ値ＱTは、量子化ステップ計算部１１０内のメモリに格納される。制御部１０２は、Ｓ６１６にて、ブロックＡ内の全画素位置における量子化ステップ値の算出を終えたか否かを判定する。否の場合には、画素位置Ｔをラスタースキャン順に従って１画素分移動させ、Ｓ６１２に処理を戻す。
【００４１】
上記のようにして、ブロックＡ内の全画素位置の量子化ステップ値の算出を終えると、制御部１０２はＳ６１７にて、量子化部１１１に量子化処理を行うように制御する。量子化部１１１は、画像分割部１０６からブロックＡ内の画素値をラスタースキャン順に読み出す。そして、量子化部１１１は、量子化ステップ計算部１１０内のメモリからも該当する画素位置の量子化ステップ値を読み出す。そして、量子化部１１１は、読み出した画素値を、同じく読み出した量子化ステップ値を用いて量子化（除算処理）し、量子化後の画素値を圧縮部１１２に供給する。この処理は、ブロックＡの全画素に対して行われる。制御部１０２は、Ｓ６１８にて、圧縮部１１２を制御し、ブロックＡ内の量子化後の画素値の符号化処理を実行させる。この結果、圧縮部１１２は、ブロックＡの符号化データを生成する。生成されたブロックＡの符号化データはストリーム生成部１１３に供給される。制御部１０２は、Ｓ６１９にて、全ブロックの符号化処理を終えたか否かを判定する。否の場合、制御部１０２は、Ｓ６１８にて符号化処理を行ったブロックに後続するブロックを、新ブロックＡとして指定するため、処理をＳ６１０に戻す。
【００４２】
一方、全ブロックの符号化処理を終えた場合、制御部１０２は、ストリーム生成部１１３を制御し、符号化データのストリームを生成させる。ストリーム生成部１１３を、量子化マップ記録部１０９の内部メモリに記憶された量子化マップ情報と、圧縮部１１２から供給された各ブロックの符号化データを結合し、ストリームを生成する。そして、ストリーム生成部１１３は、生成したストリームを、メモリ１１４Ｉ／Ｆ部１１４に供給し、記録媒体１１５に記録する。なお、記録媒体１１５にファイルとして保存する場合には、ストリーム生成部１１３は、復号に必要な情報を含むヘッダを先頭にしたファイルを記録する。復号に必要な情報は、画像データの水平、垂直方向の画素数、水平、垂直方向にいくつのブロックに分割したかを示す情報を含む。
【００４３】
なお、上記では量子化マップ情報は特に符号化しないものしたが、隣接するブロックの量子化代表値には比較的高い相関性が期待できる。従って、ブロックを単位とするラスタースキャン順に、量子化代表値の差分を求めていき、その差分を可逆符号化するようにしても良い。
【００４４】
＜復号装置について＞
次に、実施形態１の復号装置の構成及び処理の流れを、図７のブロック構成図を参照して説明する。
【００４５】
制御部７０２は、指示入力部７０１からの復号命令信号を受け付ける。なお、指示入力部７０１は、ボタンスイッチ、タッチパネル等のいずれであっても良く、その種類は問わない。制御部７０２は、ＣＰＵと、当該ＣＰＵが実行する制御プログラムを格納するメモリ（ＲＯＭ）、並びにワークメモリ（ＲＡＭ）で構成される。そして、指示入力部７０１を介してのユーザからの指示入力に応じて、復号装置７００を制御することになる。
【００４６】
制御部７０２は、指示入力部７０１より復号命令信号を受信した場合、メモリＩ／Ｆ部７０３を介して記録媒体７０４から符号化データストリームを読み出し、ストリーム分離部７０５に供給する。読出される符号化データストリームは、量子化マップ情報、符号化データで構成される。
【００４７】
ストリーム分離部７０５は、供給されたデータストリームから、量子化マップ情報、符号化データを分離する。そして、ストリーム分離部７０５は、量子化マップ情報を量子化マップ展開部７０６に、符号化データを伸長部７０７にそれぞれ供給する。ここで、実施形態１では符号化データは、ブロックを単位とするラスタースキャン順に結合されたブロック符号化データの集合である。
【００４８】
量子化マップ展開部７０６は、データストリームに格納されている量子化マップ情報を記憶するためのメモリを持つ。量子化マップ情報は、ブロック毎に設定された量子化ステップ値とブロックの位置の情報を持つ。なお、ブロック毎に設定された量子化ステップ値を、上記の符号化装置と同様に、量子化代表値と呼称する。
【００４９】
伸長部７０７は、ストリーム分離部７０５から送られた符号化データを伸長（復号）してブロック単位の量子化画像データを生成し、逆量子化部７０８に供給する。
【００５０】
量子化ステップ計算部７０９は、１ブロック分の量子化ステップ値を記憶するメモリを有する。そして、量子化ステップ計算部７０９は、量子化マップ展開部７０６から逆量子化処理をしようとする着目ブロックに対応する量子化代表値と、隣接するブロックに対応する量子化代表値を読み出す。そして、量子化ステップ計算部７０９は、次の方法で着目ブロック内の画素毎の量子化ステップ値を計算し、内部のメモリに記憶する。
【００５１】
ここで、量子化マップ情報で示される各量子化代表値は、図４（ａ）に示すように、各ブロックの中心に位置する画素用の量子化代表値とみなす。つまり、逆量子化部７０８は、伸長部７０７で伸長した量子化画素値のうち、着目ブロックの中心位置の量子化画素値を、着目ブロックの量子化代表値を量子化ステップ値として用いて逆量子化する。そして、中心位置からずれる量子化画素値については、以下のようにして量子化ステップ値を決定する。
【００５２】
着目ブロックをＡ，着目ブロックＡ内の逆量子化対象位置にある画素をＴ、着目ブロックの量子化代表値をＱA、画素ＴからブロックＡの中心座標までの距離をＬAとする。そして、着目ブロックＡに隣接するブロックの候補の中で、画素Ｔに最も近いブロックをＢ、隣接ブロックＢの量子化代表値をＱB、画素Ｔから隣接ブロックＢの中心画素までの距離をＬBと定義する。
【００５３】
画素Ｔに最も近いブロックが複数存在する場合、符号化時に用いた優先順位に従ってブロックＢが選択される。例えば符号化時のブロックＢの選択で、“左、上、右、下、左上、右上、右上、左下、右下”と優先順位が設けられているとする。ここで、画素Ｔに近い隣接ブロックの候補が左隣と上隣の２つ存在する場合、この優先順位に従って左隣のブロックがブロックＢとして選択される。なお、着目ブロックＡが、例えば画像の左端の境界に位置するとき、着目ブロックの左上、左、左下にはブロックは実在しない。このように実在しないブロックは、選択候補から除外されるものとする。
【００５４】
さて、以上の記号の定義の下、画素Ｔの位置の量子化ステップ値ＱTを次式の線形補間で求める。
ＱT＝（ＬA×ＱB＋ＬB×ＱA）／（ＬA＋ＬB）
量子化ステップ計算部７０９は上記の量子化ステップ値の計算を、ブロック内のすべての画素位置に適用することで、着目ブロック内の全画素の位置の量子化ステップ値を求め、内部のメモリに格納する。
【００５５】
また、実施形態１では、図４（ａ）に示すように量子化代表値をブロックの中心の画素に設定したが、ブロックの水平、垂直何れかの画素数が偶数であった場合については、中心に位置する複数の画素に量子化代表値を設定してもよい。この場合、画素Ｔに最も近い画素の座標が量子化ステップ値の計算に用いられる。
【００５６】
また、実施形態１では、図４（ａ）に示すように量子化代表値をブロックの中心の画素に設定したが、符号化側で図４（ｂ）に示すように量子化代表値を分割境界付近に設定するなどした場合でも対応することができる。この場合、画素Ｔに最も近い画素の座標が量子化ステップ値の計算に用いられる。ここで、図４（ｂ）の斜線部分に該当する領域に含まれる画素の量子化ステップ値が、該当するブロックの量子化代表値であるものとして使用される。
【００５７】
また、実施形態１では線形補間に基づいて画素毎の量子化ステップ値を設定したが、符号化側の量子化で、例えば図５（ａ）に示すグラフを描くようなブロックの中心付近と境界付近で傾きが違う関数を用いても良い。また、また図５（ｂ）に示すグラフを描くような分割境界を中心としてＳ字曲線を描く関数を用いても構わない。
【００５８】
逆量子化部７０８は、量子化ステップ計算部７０９内のメモリに格納された、着目ブロック内の全画素に対する量子化ステップ値を用いて、伸長部７０７から送られた着目ブロックの量子化後の全画素値を逆量子化する。そして逆量子化部７０８は、着目ブロックの逆量子化後の全画素を分割画像統合部７１０に供給する。
【００５９】
分割画像統合部７１０は、逆量子化部７０８から送られたブロックの画像データを結合し、オリジナルのサイズの画像データを生成し、メモリＩ／Ｆ部７０３を介して記録媒体７０４に書き込む、あるいは表示部７１１に供給する。
【００６０】
表示部７１１は、分割画像統合部７１０から送られた画像データに対して、ガンマ補正などの処理をかけた後に、ディスプレイに表示する。ここで、表示部７１１のディスプレイについてはカメラのパネルなどを用いることができる。以上、実施形態１の復号装置の構成と処理の流れを説明した。
【００６１】
続いて、実施形態１の復号装置の復号処理を図８のフローチャートに基づき説明する。
【００６２】
まず始めに、制御部７０２は、Ｓ８０１にて、指示入力部７０１から符号化画像データの表示開始命令を受信する。制御部７０２は、Ｓ８０２にて、該当する符号化データを示すデータストリームを、メモリＩ／Ｆ部７０３を介して記録媒体７０４から読み出す。制御部７０２は、Ｓ８０３にて、ストリーム分離部７０５を制御し、読み出されたデータストリームを、量子化マップ情報と圧縮画像データに分離させる。制御部７０２は、Ｓ８０４にて、量子化マップ情報を量子化マップ展開部７０６内のメモリに記録する。そして、制御部７０２は、Ｓ８０５にて、復号対象の着目ブロックをブロックＡとして指定する。復号する順番は、ブロックを単位とするラスタースキャン順とする。従って、Ｓ８０５にブロックＡとして指定されるのは、画像の左上隅のブロックとなる。
【００６３】
次に、制御部７０２は、Ｓ８０６にて、伸長部７０７を制御し、ブロックＡの符号化データの伸長処理（復号処理）を行わせる。制御部７０２は、Ｓ８０７にて、量子化マップ展開部７０６が有するメモリから、ブロックＡの量子化代表値ＱAを読み出す。そして、制御部７０２は、Ｓ８０８にて、ブロックＡ内の量子化ステップ値を求める対象の画素Ｔの位置を指定する。ここで画素Ｔの位置は、ブロックＡ内のラスタースキャン順に移動するものとする。従って、ブロックＡの最初の画素Ｔの位置は、ブロックＡの左上隅の位置となる。
【００６４】
次に、制御部７０２では、Ｓ８０９にて、ブロックＡに隣接し、実在するブロック候補の中から、画素Ｔに最も近いブロックをブロックＢとして設定する。そして、制御部７０２は、Ｓ８１０にて、量子化マップ展開部７０６が有するメモリから、ブロックＢの量子化代表値ＱBを読み出す。そして、制御部７０２は、Ｓ８１１にて、ブロックＢがブロックＡのいずれの方向に隣接しているかを示す情報、並びに、ＱA、ＱB、そして、画素Ｔの位置を示す情報を量子化ステップ計算部７０９に渡す。量子化ステップ計算部７０９は、これらの情報に基づき。画素Ｔの位置における量子化ステップ値を算出し、内部のメモリに格納する。そして、制御部７０２は、Ｓ８１２にて、ブロックＡ内の全画素の位置における量子化ステップ値の算出を終えたか否かを判定し、否の場合には、Ｓ８０８に処理を戻る。Ｓ８０８に処理を戻した場合、制御部７０２は、直前のＳ８１１で求めた画素Ｔの位置から、ラスタースキャン順に沿って１画素進んだ画素位置を、新たな画素Ｔとして指定することになる。
【００６５】
上記のようにして、ブロックＡ内の全画素の位置の量子化ステップ値の算出を終えると、制御部７０２はＳ８１３にて、逆量子化部７０８を制御し、逆量子化処理を行わせる。逆量子化部７０８は、伸長部７０７からのブロックＡ内の着目画素の量子化画素値に、量子化ステップ計算部７０６内のメモリに格納された着目画素の量子化ステップ値を乗算することで、逆量子化する。逆量子化部７０８は、この処理を、ブロックＡ内の全画素の量子化画素値に対して行い、その結果得られたブロックＡが示す画像データを分割画像統合部７１０に供給する。
【００６６】
制御部７０２は、Ｓ８１４にて、全ブロックに対する逆量子化を終えたか否かを判定する。否の場合には、制御部７０２は、ブロックＡを次の位置に進めるため、処理をＳ８０６に戻す。
【００６７】
また、全ブロックの逆量子化処理を終えた場合、制御部７０２は、Ｓ８１５にて、分割画像統合部７１０を制御し、ブロックの画像データを結合し、オリジナルの画像に対する復号画像データとして生成させる。そして、制御部７０２は、Ｓ８１６にて、復号画像データを表示部７１１に供給し、表示させる。この後、制御部７０２は、Ｓ８１７にて、指示入力部７０１から、復元画像データの記録命令信号があるか否かを判定する。そして、記録命令が有る場合は、制御部７０２は、Ｓ８１８にて、メモリＩ／Ｆ部７０３を介して記録媒体７０４に復号画画像データを書き込み、処理を終了する。記録命令が無い場合は、そのまま処理を終了する。
【００６８】
以上説明したように、実施形態１によれば、ブロック毎に量子化代表値を設定できる。しかも、着目ブロック内の全画素の量子化ステップ値を、着目ブロックとその隣接するブロックそれぞれの量子化代表値を用いて線形補間することで導出する。その結果、隣接するブロック境界における量子化ステップ値の差を小さくでき、ブロックノイズの発生を抑制することも可能となる。
【００６９】
［実施形態２］
実施形態２の符号化装置及び復号装置の構成及び処理の流れを説明する。第１の実施形態では、ブロックＡ内の画素Ｔの位置の量子化ステップ値を、ブロックＡ、画素Ｔに最も近い隣接ブロックＢの２つの量子化代表値から求めるものであった。実施形態２では、それよりも多い量子化代表値を用いて、ブロックＡ内の画素Ｔの位置における量子化ステップ値を求める例を説明する。説明を単純化するため、画素Ｔに最寄りの４つの隣接ブロックの量子化代表値を用いる例を説明する。
【００７０】
＜符号化装置について＞
実施形態２における符号化装置の構成は実施形態１の図１と同じである。異なる点は、量子化ステップ計算部１１０の処理内容にある。従って、以下では、実施形態２における量子化ステップ計算部１１０について説明することとする。
【００７１】
本実施形態２でも、量子化代表値は、図４（ａ）に示すようにブロックの中心位置に設定されている。つまり、ブロックの中心位置の画素は、そのブロックの量子化代表値で示される量子化ステップ値で量子化される。
【００７２】
実施形態２におけるブロック内の画素毎の量子化ステップ値の計算を説明するための記号を図９を参照して定義する。まずはブロックＡ内の量子化ステップ値の計算対象の画素をＴとして、Ｔの座標を（ＸT、ＹT）とする。ブロックＡの量子化代表値をＱA、ブロックＡの中心の座標を（ＸA、ＹA）とする。ブロックＡに隣接するブロックの中で画素Ｔに近いブロックＢ、Ｃ、Ｄについても同様に定義する。つまり、Ｂの量子化代表値をＱB、ブロックＢの中心の座標を（ＸB、ＹB）とする。また、ブロックＣの量子化代表値をＱC、ブロックＣの中心の座標を（ＸC、ＹC）とする。また、ブロックＤの量子化代表値をＱD、ブロックＤの中心の座標を（ＸD、ＹD）と設定する。上記定義の基で画素Ｔの量子化ステップ値ＱTは次式（２）で示す線形補間式で求められる。
【００７３】
【数１】
2017085498.tif 000003
【００７４】
実施形態２における量子化ステップ計算部１１０は、上式（２）を用いて、ブロックＡ内の全画素位置の量子化ステップ値を求め、内部のメモリに記憶保持する。なお、実施形態２の量子化ステップ値の計算では、画素Ｔに近いブロックが３つである場合を例とした。ここで、Ｔに近いブロックが４つ以上存在する場合には、“左、左上、上、右上、右、左下、下、右下”と優先順位を設定し、その上位３つをブロックＢ，Ｃ，Ｄとして決定する。例えば隣接ブロックとして、左上、上、右上、左、右の５つのブロックが候補として挙がる場合は、左上、上、左の隣接ブロックが選択される。ただし、ここで示した優先順位は、一例である点に留意願いたい。要は、符号化装置と復号装置との間で一義的に決まっていればよい。
【００７５】
続いて、実施形態２の符号化装置の符号化処理について図１０に示すフローチャートに基づき説明する。
【００７６】
制御部１０２は、Ｓ１００１にて、指示入力部１０１から撮影開始命令信号を受信する。そして、制御部１０２は、Ｓ１００２にて、撮像部１０３を制御し、被写体の撮像を行わせ、被写体の光学像の電気信号を生成させる。次いで、制御部１０２はＳ１００３にて信号処理部１０４を制御し、被写体の電気信号の修復処理を行わせる。制御部１０２は、Ｓ１００４にて、現像部１０５を制御し、修復処理後の被写体の電気信号について現像処理を行わせ、デジタルの画像データを生成させる。次いで、制御部１０２は、Ｓ１００５にて、画像分割部１０６を制御し、現像部１０５からの画像データを複数のブロックに分割させる。
【００７７】
次に、制御部１０２は、Ｓ１００６にて、特徴抽出部１０７を制御して、着目ブロックの特徴量（分散値）を抽出させる。そして、Ｓ１００７にて、制御部１０２は設定部１０８を制御し、着目ブロックの特徴量に基づき量子化代表値を設定する。次いで、制御部１０２は、Ｓ１００８にて、量子化マップ記録部１０９を制御し、設定した量子化代表値と着目ブロックの位置とで構成される量子化マップを生成し、量子化マップ記録部１０９内のメモリに記憶させる。そして、制御部１０２は、Ｓ１００９にて、画像分割部１０６が生成した全ブロックの量子化マップ情報の生成処理を終えたか否かを判定する。否の場合には、Ｓ１００６に処理を戻し、後続するブロックの量子化マップ情報の生成処理を行う。
【００７８】
全ブロックの量子化マップ情報の生成を終えると、制御部１０２は処理をＳ１０１０に進め、着目ブロックを、先に示した式（２）におけるブロックＡとして指定する。そして、制御部１０２は、Ｓ１０１１にて、ブロックＡの量子化代表値ＱAを量子化マップ記録部１０９から読み出す。そして、制御部１０２は、Ｓ１０１２にて、ブロックＡ内の量子化対象の１つの画素Ｔの位置を指定する。次に、制御部１０２は、Ｓ１０１３にて、ブロックＡに隣接し、実在する隣接ブロックの中から、画素Ｔの位置に最も近い３つのブロックを、ブロックＢ、Ｃ，Ｄとして設定する。次いで、制御部１０２は、Ｓ１０１４にて、ブロックＢ、Ｃ，Ｄの量子化代表値ＱB、ＱC、ＱDを量子化マップ記録部１０９から読み出す。そして、制御部１０２は、Ｓ１０１５にて、画素Ｔの位置、ブロックＡの量子化代表値ＱA、ブロックＢ、Ｃ，ＤのブロックＡに対する相対位置とその量子化代表値ＱB、ＱC、ＱDを、量子化ステップ計算部１１０に与える。この結果、量子化ステップ計算部１１０は、式（２）に従い画素Ｔの位置における量子化ステップ値ＱTを算出し、算出した量子化ステップ値ＱTを、量子化ステップ計算部１１０内のメモリに格納する。制御部１０２は、Ｓ１０１６にて、ブロックＡ内の全画素位置における量子化ステップ値の算出を終えたか否かを判定する。否の場合には、画素位置Ｔをラスタースキャン順に従って１画素分移動させ、Ｓ１０１２に処理を戻す。
【００７９】
上記のようにして、ブロックＡ内の全画素位置の量子化ステップ値の算出を終えると、制御部１０２はＳ１０１７にて、量子化部１１１に量子化処理を行うように制御する。量子化部１１１は、画像分割部１０６からブロックＡ内の画素値をラスタースキャン順に読み出す。そして、量子化部１１１は、量子化ステップ計算部１１０内のメモリからも該当する画素位置の量子化ステップ値を読み出す。そして、量子化部１１１は、読み出した画素値を、同じく読み出した量子化ステップ値を用いて量子化（除算処理）し、量子化後の画素値を圧縮部１１２に供給する。この処理は、ブロックＡの全画素に対して行われる。制御部１０２は、Ｓ１０１８にて、圧縮部１１２を制御し、ブロックＡ内の量子化後の画素値の符号化処理を実行させる。この結果、圧縮部１１２は、ブロックＡの符号化データを生成する。生成されたブロックＡの符号化データはストリーム生成部１１３に供給される。制御部１０２は、Ｓ１０１９にて、全ブロックの符号化処理を終えたか否かを判定する。否の場合、制御部１０２は、Ｓ１０１８にて符号化処理を行ったブロックに後続するブロックを、新ブロックＡとして指定するため、処理をＳ１０１０に戻す。
【００８０】
一方、全ブロックの符号化処理を終えた場合、制御部１０２は、ストリーム生成部１１３を制御し、符号化データのストリームを生成させる。ストリーム生成部１１３は、量子化マップ記録部１０９の内部メモリに記憶された量子化マップ情報と、圧縮部１１２から供給された各ブロックの符号化データを結合し、ストリームを生成する。そして、ストリーム生成部１１３は、生成したストリームを、メモリ１１４Ｉ／Ｆ部１１４に供給し、記録媒体１１５に記録する。
【００８１】
＜復号装置について＞
実施形態２における復号装置の構成も実施形態１の図７と同じである。異なる点は、量子化ステップ計算部７０９の処理である。従って以下では、量子化ステップ計算部７０９について説明し、構成についての説明は省略する。
【００８２】
実施形態２においても、量子化マップ情報で示される各量子化代表値は、図４（ａ）に示すように、各ブロックの中心に位置する画素用の量子化ステップ値とみなす。
【００８３】
着目ブロックをＡ、着目ブロックＡの中心画素の座標を（ＸA、ＹA）、そして着目ブロックＡの量子化代表値をＱAとする。また、着目ブロックＡ内の逆量子化を求める対象位置にある画素Ｔの座標を（ＸT,ＹT）とする。そして、着目ブロックＡに隣接するブロックの候補の中で、“左、左上、上、右上、右、左下、下、右下”の順に、画素Ｔに最も近い上位３つの隣接ブロックをブロックＢ，Ｃ，Ｄと定義する。そして、ブロックＢの量子化代表値をＱB、隣接ブロックＢの中心画素の位置を（ＸB，ＹB）とする。同様に、ブロックＣの量子化代表値をＱC、隣接ブロックＣの中心画素の位置を（ＸC，ＹC）とする。そして、ブロックＤの量子化代表値をＱD、隣接ブロックＤの中心画素の位置を（ＸD，ＹD）とする。そして、量子化ステップ計算部７０９は、式（２）に従って、画素Ｔの位置における量子化ステップ値ＱTを算出し、量子化ステップ計算部７０９内のメモリに格納する。そして、量子化ステップ計算部７０９は、ブロックＡ内の全画素位置における量子化ステップ値を同様に算出し、メモリに格納する。
【００８４】
続いて、実施形態２の復号装置の復号処理について図１１に示すフローチャートに基づき説明する。
【００８５】
まず始めに、制御部７０２は、Ｓ１１０１にて、指示入力部７０１から符号化画像データの表示開始命令信号を受信する。制御部７０２は、Ｓ１１０２にて、該当する符号化データを示すデータストリームを、メモリＩ／Ｆ部７０３を介して記録媒体７０４から読み出す。制御部７０２は、Ｓ１１０３にて、ストリーム分離部７０５を制御し、読み出されたデータストリームを、量子化マップ情報と圧縮画像データに分離させる。制御部７０２は、Ｓ１１０４にて、量子化マップ情報を量子化マップ展開部７０６内のメモリに記録する。そして、制御部７０２は、Ｓ１１０５にて、復号対象の着目ブロックをブロックＡとして指定する。復号する順番は、ブロックを単位とするラスタースキャン順とする。従って、Ｓ１１０５にブロックＡとして指定されるのは、画像の左上隅のブロックとなる。
【００８６】
次に、制御部７０２は、Ｓ１１０６にて、伸長部７０７を制御し、ブロックＡの符号化データの伸長処理（復号処理）を行わせる。制御部７０２は、Ｓ１１０７にて、量子化マップ展開部７０６が有するメモリから、ブロックＡの量子化代表値ＱAを読み出す。そして、制御部７０２は、Ｓ１１０８にて、ブロックＡ内の量子化ステップ値を求める画素Ｔの位置を指定する。
【００８７】
次に、制御部７０２では、Ｓ１１０９にて、ブロックＡに隣接する隣接ブロック候補の中から、画素Ｔに最も近い３つのブロックＢ，Ｃ，Ｄを、優先順位“左、左上、上、右上、右、左下、下、右下”に従って決定する。そして、制御部７０２は、Ｓ１１１０にて、量子化マップ展開部７０６が有するメモリから、ブロックＢ、Ｃ，Ｄの量子化代表値ＱB、ＱC、ＱDを読み出す。そして、制御部７０２は、Ｓ１１１１にて、ブロックＡ，Ｂ、Ｃ，Ｄの中心画素位置の座標、画素Ｔの座標、並びに、ＱA、ＱB、ＱC、ＱDを、量子化ステップ計算部７０６に渡す。量子化ステップ計算部７０９は、これらの情報に基づき、式（２）に従って画素Ｔの位置における量子化ステップ値を算出し、内部のメモリに格納する。そして、制御部７０２は、Ｓ１１１２にて、ブロックＡ内の全画素の位置における量子化ステップ値の算出を終えたか否かを判定し、否の場合には、Ｓ１１０８に処理を戻る。Ｓ１１０８に処理を戻した場合、制御部７０２は、直前のＳ１１１１で求めた画素Ｔの位置から、ラスタースキャン順に沿って１画素進んだ画素位置を、新たな画素Ｔとして指定することになる。
【００８８】
上記のようにして、ブロックＡ内の全画素の位置の量子化ステップ値の算出を終えると、制御部７０２はＳ１１１３にて、逆量子化部７０８を制御し、逆量子化処理を行わせる。逆量子化部７０８は、伸長部７０７からのブロックＡ内の着目画素の量子化画素値に、量子化ステップ計算部７０９内のメモリに格納された着目画素の量子化ステップ値を乗算することで、逆量子化する。逆量子化部７０８は、この処理を、ブロックＡ内の全画素の量子化画素値に対して行い、その結果得られたブロックＡが示す画像データを分割画像統合部７１０に供給する。
【００８９】
制御部７０２は、Ｓ１１１４にて、全ブロックに対する逆量子化を終えたか否かを判定する。否の場合には、制御部７０２は、ブロックＡを次の位置に進めるため、処理をＳ１１０６に戻す。
【００９０】
また、全ブロックの逆量子化処理を終えた場合、制御部７０２は、Ｓ１１１５にて、分割画像統合部７１０を制御し、ブロックの画像データを結合し、オリジナルの画像に対する復号画像データとして生成させる。そして、制御部７０２は、Ｓ１１１６にて、復号画像データを表示部７１１に供給し、表示させる。この後。制御部７０２は、Ｓ１１１７にて、指示入力部７０１から復元画像データの記録命令信号を受信したか否かを判定する。そして、記録命令信号を受信した場合は、制御部７０２は、Ｓ１１１８にて、メモリＩ／Ｆ部７０３を介して記録媒体７０４に復号画画像データを書き込み、処理を終了する。記録命令信号の受信がなかった場合は、そのまま処理を終了する。
【００９１】
以上のように、実施形態２によれば、実施形態１と同様、ブロック毎に量子化代表値を設定できる。しかも、着目ブロック内の全画素の量子化ステップ値を、着目ブロックとその隣接する３つのブロックそれぞれの量子化代表値を用いて線形補間することで導出する。この結果、隣接するブロック境界における量子化ステップ値の差を小さくでき、ブロックノイズの発生を抑制するこが可能となる。
【００９２】
［実施形態３］
続いて、実施形態３の符号化装置、及び復号装置の構成及び処理の流れを説明を行う。実施形態３では、画像に文字や数字などの記号列を埋め込む際に、その記号列を示す部分の画質劣化を抑制する例を説明する。
【００９３】
実施形態３の符号化装置、復号装置は、画像にタイムコードを直接埋め込むような電子機器（監視カメラなど）を想定している。
【００９４】
＜符号化装置について＞
実施形態３の符号化装置の構成及び処理の流れを、図１２のブロック図を参照しながら説明を行う。
【００９５】
図１２において、実施形態１における図１と同様の構成については、同じ参照符号を付した。従って、実施形態３の符号化装置の構成において、図１と異なる点は、画像分割部１０６、特徴抽出部１０７、設定部１０８、量子化ステップ計算部１１０の処理内容と、新規な構成である埋め込み部１２０１を設けた点である。よって、これら以外についての説明は省略する。
【００９６】
埋め込み部１２０１は、現像部１０５より送られた画像データに矩形領域を設け、矩形領域に対して文字列を示す画像を埋め込む。例えば、図１３に示す画像データにおける斜線で示した矩形領域が、文字列の画像の埋め込み対象となる。埋め込む文字列としては特に制限はないが、実施形態では撮影日時を表す文字列とする。
【００９７】
実施形態３の画像分割部１０６は、埋め込み部１２０１による文字列を示す画像の埋め込み対象となる矩形領域を１つのブロックとみなして、撮像して得た画像を分割する。例えば、図１３で示した場合、斜線で示した予め設定された領域が１つのブロックとみなされる。実施形態３の特徴抽出部１０７は、埋め込み部１２０１により文字列を示す画像が埋め込まれたブロックについて、文字列が埋め込まれていることを表す情報を、画像の特徴の代わりとして設定部１０８に送る。
【００９８】
実施形態３の設定部１０８は、実施形態１、２と同様の量子化ステップ値の計算を行う。ただし、実施形態３の設定部１０８は、文字列を示す画像が埋め込まれたブロックについては、例外的に、そのブロックの量子化代表値を、特定な値、例えば“０”を設定する。量子化ステップ値は画素値に対する除数として働くので、“０”が用いられることは無い。よって、文字列が入力されているか否かを量子化ステップ計算部１１０に判別させるための情報として“０”として都合がよい。
【００９９】
実施形態３の量子化ステップ計算部１１０及び量子化部１１１は、量子化ステップ値の算出対象となったブロックＡの量子化代表値が“０”であった場合、その処理をスキップする。また、量子化ステップ計算部１１０は、量子化ステップ値の算出対象となったブロックＡに隣接するブロックの中に、量子化代表値が“０”のブロックが存在するとき、その量子化代表値“０”のブロックは、量子化ステップ値の計算には用いない。
【０１００】
続いて、実施形態３の符号化装置の符号化処理を図１４に示すフローチャートに基づき説明する。
【０１０１】
制御部１０２は、Ｓ１４０１にて、指示入力部１０１から撮影開始信号を受信する。そして、制御部１０２は、Ｓ１４０２にて、撮像部１０３を制御し、被写体の撮像を行わせ、被写体の光学像の電気信号を生成させる。次いで、制御部１０２は、Ｓ１４０３にて、信号処理部１０４を制御し、被写体の電気信号の修復処理を行わせる。制御部１０２は、Ｓ１４０４にて、現像部１０５を制御し、修復処理後の被写体の電気信号について現像処理を行わせ、デジタルの画像データを生成させる。制御部１０２は、Ｓ１４０５にて、埋め込み部１２０１を制御し、現像部１０５により生成された画像データ内の予め設定された矩形領域（図１３参照）に、撮影日時の文字列を表す画像（各文字のフォントパターンで示される画像）を埋め込ませる。そして、制御部１０２は、Ｓ１４０６にて、画像分割部１０６を制御し、埋め込み部１２０１からの画像データを複数のブロックに分割させる。このとき、先に説明したように、画像分割部１０６は、制撮影日時を示す文字列画像を埋め込んだ矩形領域も１つのブロックとして、分割処理を行う。
【０１０２】
後続するＳ１４０７乃至Ｓ１４１１のループは、複数のブロック中の１つのブロックに対する処理である。この処理対象の１つのブロックを、以降、着目ブロックと言う。
【０１０３】
まず、制御部１０２は、Ｓ１４０７にて、着目ブロックが、文字列の画像の埋め込んだブロックであるか否かを判定する。着目ブロックが文字列の画像の埋め込んだブロックであると判断した場合、制御部１０２は、設定部１０８を制御して、着目ブロックの量子化代表値として“０”を設定させる。また、着目ブロックが、文字列の画像の埋め込んだブロックではないと判断した場合、制御部１０２は、Ｓ１４０９にて、設定部１０８を制御し、着目ブロックの量子化代表値を設定させる。次いで、制御部１０２は、Ｓ１４１０にて、量子化マップ記録部１０９を制御し、設定した量子化代表値と着目ブロックの位置とで構成される量子化マップを生成し、量子化マップ記録部１０９内のメモリに記憶させる。そして、制御部１０２は、Ｓ１４１１にて、画像分割部１０６が生成した全ブロックの量子化マップ情報の生成処理を終えたか否かを判定する。否の場合には、Ｓ１４０７に処理を戻す。
【０１０４】
こうして、全ブロックの量子化マップ情報の生成を終えると、制御部１０２は処理をＳ１４１２乃至Ｓ１４１９のループ処理を行う。このループ処理では、ブロック毎の、量子化処理及び符号化処理が行われる。それ故、Ｓ１４１２乃至Ｓ１４１９の処理でも、量子化、符号化対象の着目ブロックと言う。
【０１０５】
まず、制御部１０２は、Ｓ１４１２にて、着目ブロックを、先に示した式（１）におけるブロックＡとして指定する。そして、制御部１０２は、Ｓ１４１３にて、ブロックＡの量子化代表値ＱAを量子化マップ記録部１０９から読み出す。そして、制御部１０２は、Ｓ１４１４にて、読み出したブロックＡの量子化代表値が“０”であるか否かを判定する。ブロックＡの量子化代表値が“０”である場合、ブロックＡは撮影日時の文字列を示す画像が埋め込まれたブロックである。それ故、制御部１０２は、量子化部１１０，１１１を制御し、ブロックＡに対する処理をスキップさせる。この結果、量子化部１１１は、画像分割部１０６から供給されたブロックＡの画像内の各画素に対する量子化を行わず、そのまま圧縮部１１２に供給することになる。
【０１０６】
また、制御部１０２は、Ｓ１４１４にて、ブロックＡの量子化代表値ＱAが非ゼロであると判定した場合、処理をＳ１４１６に進める。制御部１０２は、Ｓ１４１６にて、ブロックＡ内の全画素位置における量子化ステップ値の算出を行わせる。このＳ１４１６の処理としては、実施形態１におけるＳ６１２乃至Ｓ６１６の処理、または、実施形態２のＳ１０１２乃至Ｓ１０１６の処理を適用できる。次に、制御部１０２は、Ｓ１４１７にて、量子化部１１１を制御し、ブロックＡ内の全画素を量子化（除算処理）する。量子化部１１１は、ブロックＡ内の全画素の量子化後の全画素値を圧縮部１１２に供給する。そして、制御部１０２は、圧縮部１１２を制御し、ブロックＡの符号化処理を行わせる。生成されたブロックＡの符号化データはストリーム生成部１１３に供給される。制御部１０２は、Ｓ１４１９にて、全ブロックの符号化処理を終えたか否かを判定する。否の場合、制御部１０２は、Ｓ１４１２にて符号化処理を行ったブロックに後続するブロックを、新ブロックＡとして指定するため、処理をＳ１４１２に戻す。
【０１０７】
一方、全ブロックの符号化処理を終えた場合、制御部１０２は、Ｓ１４２０にて、量子化マップ記録部１０９から量子化マップ情報を読み出し、ストリーム生成部１１３に供給する。そして、制御部１０２は、Ｓ１４２１にて、ストリーム生成部１１３を制御し、量子化マップ記録部１０９からの量子化マップ情報、並びに、圧縮部１１１２からの各ブロックの符号化データとを結合し、ストリームを生成させる。そして、Ｓ１４２２にて、ストリーム生成部１１３を制御し、生成したストリームを、メモリ１１４Ｉ／Ｆ部１１４に供給し、記録媒体１１５に記録させる。
【０１０８】
＜復号装置について＞
次に実施形態３にける復号装置の処理内容を説明する。なお、実施形態３の復号装置の構成は実施形態１の図７と同じである。異なる点は、量子化ステップ計算部７０９の処理内容である。従って、量子化ステップ計算部７０９以外の構成についての説明は省略する。
【０１０９】
実施形態３の量子化ステップ計算部７０９は、逆量子化しようとするブロックＡの量子化代表値が非“０”の場合には、実施形態１または２で説明した量子化ステップ値の計算と同様の処理を行う。そして、逆量子化しようとするブロックＡの量子化代表値が“０”であった場合、ブロックＡの全画素位置の量子化ステップ値が“１”であるものして設定する。また、ブロックＡに隣接するブロックの中に量子化代表値が“０”のブロックが存在したとき、量子化代表値が“０”のブロックブックは量子化ステップ値の計算には参照しない。
【０１１０】
かかる点を踏まえ、実施形態３の復号装置の復号処理を図１５に示すフローチャートに基づき説明する。
【０１１１】
制御部７０２は、Ｓ１５０１にて、指示入力部７０１から符号化画像データの表示開始命令信号を受信する。制御部７０２は、Ｓ１５０２にて、該当する符号化データを示すデータストリームを、メモリＩ／Ｆ部７０３を介して記録媒体７０４から読み出す。制御部７０２は、Ｓ１５０３にて、ストリーム分離部７０５を制御し、読み出されたデータストリームを、量子化マップ情報と符号化データに分離させる。制御部７０２は、Ｓ１５０４にて、量子化マップ情報を量子化マップ展開部７０６内のメモリに記録する。そして、制御部７０２は、Ｓ１５０５にて、復号対象の着目ブロックをブロックＡとして指定する。復号する順番は、ブロックを単位とするラスタースキャン順とする。従って、Ｓ８０５にブロックＡとして指定されるのは、画像の左上隅のブロックとなる。
【０１１２】
次に、制御部７０２は、Ｓ１５０６にて、伸長部７０７を制御し、ブロックＡの符号化データの伸長処理（復号処理）を行わせる。制御部７０２は、Ｓ１５０７にて、量子化マップ展開部７０６が有するメモリから、ブロックＡの量子化代表値ＱAを読み出す。そして、制御部７０２は、Ｓ１５０８にて、量子化代表値ＱAが“０”であるか否かを判定する。量子化代表値ＱAが“０”である場合、着目しているブロックＡは文字列が示す画像が埋め込まれたブロックであると判定する。それ故、制御部７０２は、Ｓ１５０９にて、逆量子化部７０８を制御し、ブロックＡ内の逆量子化処理をスキップさせる。この結果、逆量子化部７０８は、伸長部７０７で得られたブロックＡ内の画素値をそのまま分割画像統合部７１０に供給する。
【０１１３】
一方、量子化代表値ＱAが非“０”であった場合、制御部７０２は、Ｓ１５１０に処理を進める。Ｓ１５１０にて、制御部７０２は、量子化ステップ計算部７０９を制御し、ブロックＡ内の全画素位置における量子化ステップ値を算出させる。Ｓ１５１０における量子化ステップ計算処理としては、実施形態１の図８のフローチャートのＳ８０８乃至Ｓ８１２、または実施形態２の図１１のＳ１１０８乃至Ｓ１１１２に示す処理のいずれでもよい。そして、制御部７０２は、Ｓ１５１１にて、逆量子化部７０８を制御し、ブロックＡの逆量子化処理を実行させる。逆量子化部７０８は、伸長部７０７で得られたブロックＡ内の各画素値を、量子化ステップ計算部７０９内のメモリに格納された該当する量子化ステップ値を用いて逆量子化（積算）する。そして、逆量子化部７０８は、ブロックＡ内の逆量子化した全画素データを分割画像統合部７１０に供給する。
【０１１４】
制御部７０２は、Ｓ１５１２にて、全ブロックに対する逆量子化を終えたか否かを判定する。否の場合には、制御部７０２は、ブロックＡを次の位置に進めるため、処理をＳ１５０５に戻す。
【０１１５】
また、全ブロックの逆量子化処理を終えた場合、制御部７０２は、Ｓ１５１３にて、分割画像統合部７１０を制御し、ブロックの画像データを結合し、復号画像データとして生成させる。そして、制御部７０２は、Ｓ１５１４にて、復号画像データを表示部７１１に供給し、表示させる。この後、制御部７０２は、Ｓ１５１５にて、指示入力部７０１から復元画像データの記録指示命令を受信したか否かを判定する。そして、記録指示信号を受信した場合は、制御部７０２は、Ｓ１５１６にて、メモリＩ／Ｆ部７０３を介して記録媒体７０４に復号画画像データを書き込み、処理を終了する。記録指示信号を受信しない場合は、そのまま処理を終了する。
【０１１６】
以上のように、実施形態３によれば、実施形態１、２と同様に、ブロック毎に設定された量子化代表値を設定可能になる。そして、画素毎に量子化ステップ値を設定することができる。しかも、ブロック間の量子化代表値を基に、ブロック内の全画素の量子化ステップ値を線形補間によって導出する。その結果、隣接するブロック境界における量子化ステップ値の差を小さくできるので、ブロックノイズの発生を抑制するこが可能となる。さらに、実施形態３によれば、監視カメラなどの用途で文字列が画像に埋め込まれた場合は、文字列が埋め込まれた領域に対して、別途量子化ステップ値を設定することができる。特に、符号化時において、文字列が埋め込まれたブロックについての量子化処理をスキップすることで該当する文字列が不鮮明になることを抑制できる。
【０１１７】
［実施形態４］
続いて、実施形態４を説明する。実施形態４では、符号化対象の画像データをサブバンド分割する点は実施形態と異なる。
【０１１８】
＜符号化装置について＞
実施形態４における符号化装置の構成及び処理の流れについて、図１６を参照して説明する。
【０１１９】
なお、実施形態４における符号化装置と、実施形態１の符号化装置（図１）との相違は、量子化ステップ計算部１１０の処理と、サブバンド分割部１６０１を追加した点である。これら以外は、実施形態１の符号化装置と同様であるため、ここでの説明は省略する。
【０１２０】
サブバンド分割部１６０１は、低域通過フィルタ（ローパスフィルタ）と高域通過フィルタ（ハイパスフィルタ）の２種類のフィルタを有する。実施形態４におけるサブバンド分割部１６０１が有するフィルタとしては、ハールウェーブレットやＪＰＥＧ２０００で採用されている５／３タップ整数フィルタ、９／７タップ実数フィルタが利用できる。そして、サブバンド分割部１６０１は、現像部１０５より送られた画像データに対し、水平方向、及び、垂直方向にこれら２種類のフィルタを適用するフィルタ処理を行うことで、ＬＬ、ＨＬ，ＬＨ，ＨＨの４つのサブバンドを生成する。ここで各サブバンドは、複数の係数データで構成される。サブバンド分割部１６０１に後続する位置に画像分割部１０６が存在するので、各サブバンドに含まれる係数データを便宜的に画素データと称する。サブバンド分割部１６０１は、１つ前のフィルタ処理で得られたサブバンドＬＬに対して再帰的にフィルタ処理を実行可能である。実施形態４では、フィルタ処理を２回実行するものとする。図２（ａ）はオリジナルの画像を示し、図２（ｂ）は１回目のフィルタ処理で得られるサブバンドを示している。そして、図２（ｃ）は、１回目のサブバンドＬＬに対して２回目のフィルタ処理を行った場合のサブバンドを示している。１回目と２回目とを区別するため、各サブバンドの右端には１回目、２回目であることを示す添え字を付した。なお、サブバンドＬＬに対して再帰的にフィルタ処理が適用されるので、サブバンドＬＬはフィルタ処理の回数によらず１つとなる。それ故、サブバンドＬＬには添え字は付さない。サブバンド分割部１６０１は、上記のフィルタ処理で得られた各サブバンドを画像分割部１０６に供給する。
【０１２１】
画像分割部１０６は、サブバンド分割部１６０１から供給された各サブバンドを、複数のブロックに分割する。例えば、画像分割部１０６は、サブバンドＨＬ１を複数のブロックに分割する。他のサブバンドについても同様である。従って、処理対象の着目ブロックは、サブバンドＬＬ，ＨＬ２，ＬＨ２，ＨＨ２、ＨＬ１，ＬＨ１，ＨＨ１のいずれかに属することになる点に注意されたい。
【０１２２】
実施形態４の設定部１０８は、サブバンドの種類に応じて、各サブバンド内のブロックの量子化代表値を求める。そして、量子化ステップ計算部１１０は、サブバンドの種類に基づき、着目ブロック内の各画素位置の量子化ステップのサイズを計算し、自身のメモリに格納する。
【０１２３】
例えば、着目ブロックがサブバンドＨＬ（ＨＬ１またはＨＬ２）内にあるとする。サブバンドＨＬは、画像データの水平方向の高域の周波数帯域を抽出した成分である。よって、サブバンドＨＬでは、垂直方向に強い相関を持っていると推定できる。そのため、量子化ステップ計算部１１０は、着目ブロックの量子化代表値と、着目ブロックに対して垂直方向に隣接するブロックの量子化代表値とから、着目ブロック内の各画素位置の量子化ステップのサイズを算出する。
【０１２４】
また、着目ブロックがサブバンドＬＨ（ＬＨ１またはＬＨ２）内にあるとする。サブバンドＬＨは、画像データの垂直方向の高域の周波数帯域を抽出した成分である。よって、サブバンドＬＨは水平方向に強い相関を持っていると推定できる。そのため、量子化ステップ計算部１１０は、着目ブロックの量子化代表値と、水平方向に隣接するブロックの量子化代表値とから、着目ブロック内の各画素位置の量子化ステップのサイズを算出する。
【０１２５】
サブバンドＨＨ（ＨＨ１またはＨＨ２）は、水平方向及び垂直方向の双方で高域の周波数帯域を抽出した成分であり、ＨＬ、ＬＨと比べて垂直方向または水平方向に強い相関を持っているわけではない。そのため、ＨＨのサブバンドにおいては、実施形態１、２と同様に隣接ブロックを設定する。
【０１２６】
サブバンドＬＬは、画像データを縮小したようなものであるため、これも実施形態１、２と同様に隣接ブロックを設定する。
【０１２７】
以上を踏まえ、実施形態４における符号化装置の符号化処理を図１７のフローチャートに従って説明する。
【０１２８】
制御部１０２は、Ｓ１８０１にて、指示入力部１０１から撮影開始命令信号を受信する。そして、制御部１０２は、Ｓ１８０２にて、撮像部１０３を制御し、被写体の撮像を行わせ、被写体の光学像の電気信号を生成させる。次いで、制御部１０２はＳ１８０３にて信号処理部１０４を制御し、被写体の電気信号の修復処理を行わせる。制御部１０２は、Ｓ１８０４にて、現像部１０５を制御し、修復処理後の被写体の電気信号について現像処理を行わせ、デジタルの画像データを生成させる。制御部１０２は、Ｓ１８０５にて、サブバンド分割部１６０１を制御し、現像部１０５からの画像データを複数のサブバンド（実施形態では、サブバンドＬＬ，ＨＬ２，ＬＨ２，ＨＨ２、ＨＬ１，ＬＨ１，ＨＨ１の７つ）に分割する。サブバンド分割部１６０１は、分割して得られた各サブバンドを、例えばサブバンドＬＬ，ＨＬ２，ＬＨ２，ＨＨ２、ＨＬ１，ＬＨ１，ＨＨ１の順番に、画像分割部１０６に供給する。次に制御部１０２は、画像分割部１０６を制御し、サブバンド分割部１６０１からサブバンドのデータを複数のブロックに分割させる。例えば、サブバンド分割部１６０１からサブバンドＬＬを受信した場合、画像分割部１０６はサブバンドＬＬを複数の複数のブロックに分割する。
【０１２９】
後続するＳ１８０６乃至Ｓ１８２４のループは、１つのサブバンドに着目した処理である。実施形態では７つのサブバンドが生成されるので、Ｓ１８０６乃至Ｓ１８２４のループは、７回実行される点に注意されたい。
【０１３０】
制御部１０２は、Ｓ１８０６にて、１つのサブバンドを処理対象として設定する。そして、制御部１０２は、Ｓ１８０７にて、画像分割部１０６を制御し、設定したサブバンドを複数のブロックに分割させる。ここで、分割して得られた複数のブロックのうちの１つを着目ブロックと称する。制御部１０２は、Ｓ１８０８にて、特徴抽出部１０７を制御して、着目ブロックの特徴量（実施形態では分散値）を抽出させる。次いで、ステップＳ１８０９にて、制御部１０２は設定部１０８を制御し、着目ブロックの量子化代表値を設定する。このとき、着目ブロックがどのサブバンドに属するのかを示す情報も含めて量子化代表値を設定しても良い。次いで、制御部１０２は、Ｓ１８１０にて、量子化マップ記録部１０９を制御し、設定した量子化代表値と着目ブロックの位置とで構成される量子化マップを生成し、量子化マップ記録部１０９内のメモリに記憶させる。そして、制御部１０２は、Ｓ１８１１にて、画像分割部１０６が生成した全ブロックの量子化マップ情報の生成処理を終えたか否かを判定する。否の場合には、Ｓ１８０８に処理を戻す。
【０１３１】
こうして、着目サブバンド内の全ブロックの量子化マップ情報の生成を終えると、制御部１０２は処理をＳ１８１２乃至Ｓ１８２３のループ処理を行う。このループ処理では、ブロック毎の、量子化処理及び符号化処理が符号化処理が行われる。それ故、Ｓ１８１２乃至１８２３の処理でも、量子化、符号化対象の着目ブロックと言う。
【０１３２】
まず、制御部１０２は、Ｓ１８１２にて、着目ブロックを、実施形態１または２におけるブロックＡとして指定する。そして、制御部１０２は、Ｓ１８１３にて、ブロックＡの量子化代表値ＱAを量子化マップ記録部１０９から読み出す。そして、制御部１０２は、Ｓ１８１４にて、ブロックＡがサブバンドＨＬに属するのか否かを判定する。ブロックＡがサブバンドＨＬに属する場合、制御部１０２はＳ１８１５にて量子化ステップ計算部１１０を制御し、ブロックＡの上下に隣接するブロックの少なくとも１つを参照ブロックＲとして設定する。
【０１３３】
また、制御部１０２は、Ｓ１８１４にて、ブロックＡがサブバンドＨＬに属しないと判定した場合には、Ｓ１８１６に進める。Ｓ１８１６にて、制御部１０２は、ブロックＡがサブバンドＬＨに属するのか否かを判定する。ブロックＡがサブバンドＬＨに属する場合、制御部１０２はＳ１８１７にて量子化ステップ計算部１１０を制御し、ブロックＡの左右に隣接するブロックの少なくとも１つを参照ブロックＲとして設定する。
【０１３４】
また、制御部１０２は、Ｓ１８１５にて、ブロックＡがサブバンドＨＬに属しないと判定した場合、処理をＳ１８１８に進める。この場合、ブロックＡはサブバンドＬＬ，ＨＨのいずれかに属することになる。この場合、実施形態１または２に従って参照ブロックＲを決定する。例えば、実施形態１を適用するなら、実施形態１で決定したブロックＢを参照ブロックＲとする。また、実施形態２を適用するなら、実施形態２で決定した３つのブロックＢ，Ｃ，Ｄを参照ブロックＲとする。
【０１３５】
制御部１０２は、Ｓ１８１９にて、ブロックＡの量子化代表値ＱAと、参照ブロックＲの量子化代表値ＱRを読み出す。そして、制御部１０２は、Ｓ１８２０にて、量子化ステップ計算部１１０を制御し、ブロックＡ内の全画素位置の量子化ステップのサイズを、ＱA、ＱRと、ブロックＡ内の各画素位置に基づき算出させる。ここで、Ｓ１８２０の量子化ステップ計算処理は、実施形態１における図６のＳ６１２乃至Ｓ６１６を用いることができる。または、実施形態２の図１０のＳ１０１２乃至Ｓ１０１６に示す処理を用いても良い。算出した量子化ステップ値は、量子化ステップ計算部１１０内のメモリに格納される。
【０１３６】
制御部１０２は、Ｓ１８２１にて、量子化部１１１を制御し、ブロックＡ内の全画素データの量子化処理を行わせる。そして、制御部１０２は、Ｓ１８２２にて、圧縮部１１２を制御し、ブロックＡ内の量子化後の画素値の符号化処理を実行させる。この結果、圧縮部１１２は、ブロックＡの符号化データを生成する。生成されたブロックＡの符号化データはストリーム生成部１１３に供給される。制御部１０２は、Ｓ１８２３にて、着目サブアンド内の全ブロックの符号化処理を終えたか否かを判定する。否の場合、制御部１０２は、処理をＳ１８１２に戻し、符号化処理を行ったブロックに後続するブロックを、新ブロックＡとして指定し、上記処理を繰り返す。
【０１３７】
一方、着目サブバンド内の全ブロックの符号化処理を終えた場合、制御部１０２は、Ｓ１８２４にて、全サブバンドの符号化処理を終えたか否かを判定する。未符号化のサブバンドが存在する場合、制御部１０２は、そのサブバンドの符号化を行うため、処理をＳ１８０６に戻す。
【０１３８】
そして、全サブバンドの符号化処理を終えた場合、制御部１０２はＳ１８２５に進める。Ｓ１８２５にて、制御部１０２は、量子化マップ記録部１０９の内部メモリに記憶された量子化マップ情報（各サブバンド内のブロックの量子化代表値）を読み込み、ストリーム生成部１１３に供給する。そして、制御部１０２は、Ｓ１８２６にて、ストリーム生成部１１３を制御し、符号化データのストリームを生成させる。ストリーム生成部１１３は、量子化マップ記録部１０９の内部メモリに記憶された量子化マップ情報（各サブバンド内のブロックの量子化代表値）と、圧縮部１１２から供給された各ブロックの符号化データを結合し、ストリームを生成する。そして、制御部１０２は、ストリーム生成部１１３が生成したストリームを、メモリ１１４Ｉ／Ｆ部１１４に供給し、記録媒体１１５に記録させる。
【０１３９】
＜復号装置について＞
次に実施形態４における復号装置の構成及び処理の流れを図１８を参照して説明する。実施形態４の復号装置は、実施形態１の復号装置（図７）と対し、逆量子化ステップ計算部７０９、分割画像統合部７１０の処理内容が異なる。また、実施形態４では、サブバンド合成部１９０１を設けた点も異なる。これら以外は実施形態１と同じであるものとし、その説明は省略する。
【０１４０】
実施形態４の分割画像統合部７１０は、ブロックを統合して１つのサブバンドを形成する。サブバンド合成部１９０１は、分割画像統合部７１０によって生成された各サブバンドについて、符号化装置とは逆の処理を行い、１枚の復元画像データを生成する。サブバンド合成部１９０１によって生成された復元画像データは、メモリＩ／Ｆ部１１４を介して記録媒体２１５に書き戻される。サブバンド合成部１９０１は、ハールウェーブレットやＪＰＥＧ２０００で採用されている５／３タップ整数フィルタや９／７タップ実数フィルタなどに基づいて構成することができる。
【０１４１】
実施形態４の量子化ステップ計算部７０９は、実施形態４における量子化ステップ計算部７０９と同様の処理を行う。
【０１４２】
例えば、着目ブロックがサブバンドＨＬに属する場合、画像データの水平方向の高域の周波数帯域を抽出した成分であることから、垂直方向に強い相関を持っていると推定できる。そのため、逆量子化ステップ計算部７０９は、着目ブックに対して垂直方向に隣接するブロックを参照して、着目ブロック内の全画素位置の量子化ステップのサイズを計算する。
【０１４３】
また、着目ブロックがサブバンドＬＨに属する場合、画像データの垂直方向の高域の周波数帯域を抽出した成分であることから、水平方向に強い相関を持っていると推定できる。そのため、逆量子化ステップ計算部７０９は、着目ブロックに対して水平方向に隣接するブロックを参照して、着目ブロック内の全画素位置の量子化ステップのサイズを計算する。
【０１４４】
また、着目ブロックがサブバンドＨＨに属する場合、水平方向及び垂直方向の双方で高域の周波数帯域を抽出した成分であり、ＨＬ、ＬＨと比べて垂直方向または水平方向に強い相関を持っているわけではない。そのため、逆量子化ステップ計算部７０９は、着目ブロック内の全画素位置の量子化ステップ値を、実施形態１または実施形態２と同様の処理に従って算出する。
【０１４５】
そして、着目ブロックがサブバンドＬＬに属する場合、サブバンドＬＬは画像データを縮小したものとみなせる。よって、量子化ステップ計算部７０９は、着目ブロック内の全画素位置の量子化ステップ値を、実施形態１または実施形態２と同様の処理に従って算出する。
【０１４６】
続いて、実施形態４の復号装置の復号処理を図１９に示すフローチャートを参照して説明する。
【０１４７】
まず始めに、制御部７０２は、Ｓ２００１にて、指示入力部７０１から符号化画像データの表示開始命令信号を受信する。制御部７０２は、Ｓ２００２にて、該当する符号化データを示すデータストリームを、メモリＩ／Ｆ部７０３を介して記録媒体７０４から読み出す。制御部７０２は、Ｓ２００３にて、ストリーム分離部７０５を制御し、読み出されたデータストリームを、量子化マップ情報と圧縮画像データに分離させる。制御部７０２は、Ｓ２００４にて、量子化マップ情報を量子化マップ展開部７０６内のメモリに記録する。この結果、量子化マップ展開部７０６のメモリには、各サブバンドに含まれるブロックの量子化代表値が格納されることになる。
【０１４８】
そして、制御部７０２は、Ｓ２００５にて、復号する対象のサブバンドを設定する。そして、制御部７０２は、Ｓ２００６にて、設定したサブバンド内に、復号対象の着目ブロックをブロックＡとして指定する。復号する順番は、ブロックを単位とするラスタースキャン順とする。従って、Ｓ２００６にて、ブロックＡとして指定されるのは、設定したサブバンド内の左上隅のブロックとなる。
【０１４９】
次に、制御部７０２は、Ｓ２００７にて、伸長部７０７を制御し、ブロックＡの符号化データの伸長処理（復号処理）を行わせる。制御部７０２は、Ｓ２００８にて、量子化マップ展開部７０６が有するメモリから、ブロックＡの量子化代表値ＱAを読み出す。
【０１５０】
制御部７０２は、Ｓ２００９にて、ブロックＡがサブバンドＨＬに属するのか否かを判定する。ブロックＡがサブバンドＨＬに属する場合、制御部７０２はＳ２０１０にて、量子化ステップ計算部７０９を制御し、ブロックＡの上下に隣接するブロックの少なくとも１つを参照ブロックＲとして設定する。
【０１５１】
また、制御部７０２は、Ｓ２００９にて、ブロックＡがサブバンドＨＬに属しないと判定した場合には、Ｓ２０１１に処理を進める。Ｓ２０１１にて、制御部７０２は、ブロックＡがサブバンドＬＨに属するのか否かを判定する。ブロックＡがサブバンドＬＨに属する場合、制御部７０２はＳ２０１２にて量子化ステップ計算部７０９を制御し、ブロックＡの左右に隣接するブロックの少なくとも１つを参照ブロックＲとして設定する。
【０１５２】
また、制御部７０２は、Ｓ２０１１にて、ブロックＡがサブバンドＨＬに属しないと判定した場合、処理をＳ２０１３に進める。この場合、ブロックＡはサブバンドＬＬ，ＨＨのいずれかに属することになる。よって実施形態１または２に従って参照ブロックＲを決定する。例えば、実施形態１を適用するなら、実施形態１で決定したブロックＢを参照ブロックＲとする。また、実施形態２を適用するなら、実施形態２で決定した３つのブロックＢ，Ｃ，Ｄを参照ブロックＲとする。
【０１５３】
制御部２０７は、Ｓ２０１４にて、ブロックＡ、参照ブロックＲそれぞれの量子化代表値を、量子化マップ展開部７０６内のメモリから読み込み、量子化ステップ計算部７０９に渡す。そして、制御部２０７は、Ｓ２０１５にて、量子化ステップ計算部７０９を制御し、ブロックＡ内の全画素位置における量子化ステップ値の算出を行わせる。ここで、Ｓ２０１５の逆量子化ステップ処理は、実施形態１の復号装置の図８のＳ８０８乃至Ｓ８１２に沿えばよい。あるいは、実施形態２の図１１のＳ１１０８乃至Ｓ１１１２に示す処理に沿って処理を行っても構わない。算出した量子化ステップ値は、逆量子化ステップ計算部７０６内のメモリに格納される。そして、制御部２０７は、Ｓ２０１６にて、逆量子化部７０８を制御し、ブロックＡ内の画素データの逆量子化処理を実行させる。逆量子化部７０８は、伸長部７０７からのブロックＡの量子化画素データを、量子化ステップ計算部７０９内のメモリに格納された量子化ステップ値を用いて逆量子化（積算）を行う。そして逆量子化部７０８は、ブロックＡの逆量子化後の画素データを分割画像統合部に供給する。
【０１５４】
制御部２０７は、Ｓ２０１７にて、着目サブバンドの全ブロックの逆量子化処理を終えたか否かを判定する。否の場合には、処理をＳ２００６に戻し、他のブロックに対する逆量子化処理を行う。また、制御部２０７は、Ｓ２０１７にて、着目サブバンドの全ブロックの逆量子化処理を終えたと判定した場合、処理をＳ２０１８に進める。Ｓ２０１８にて、制御部２０７は、分割画像統合部７１０を制御し、各ブロックを統合することで、着目サブバンドを形成する。そして、制御部２０７は、Ｓ２０１９にて、全サブバンドの形成処理を終えたか否かを判定する。否の場合には、制御部２０７は他のサブバンドの処理を行うために処理をＳ２００５に戻す。また。全サブバンドの形成処理を終えたと判定した場合、制御部２０７は、Ｓ２０２０にて、サブバンド合成部１９０１を制御し、復元画像データを生成させる。具体的には、サブバンドに対して逆ウェーブレット変換を行うことになる。そして、制御部２０７は、Ｓ２０２１にて、得られた復元画像データを表示部７１１に供給し、表示させる。この後、制御部７０２は、Ｓ２０２２にて、指示入力部７０１から復元画像データの記録命令信号を受信したか否かを判定する。そして、記録命令信号を受信した場合は、制御部７０２は、Ｓ２０２３にて、メモリＩ／Ｆ部７０３を介して記録媒体７０４に復号画画像データを書き込み、処理を終了する。記録命令信号を受信していない場合は、そのまま処理を終了する。
【０１５５】
以上のように、実施形態４によれば、実施形態１、２と同様に、ブロック毎に設定された量子化代表値を基に、画素毎に量子化ステップ値を設定することができる。そして、ブロック間の量子化代表値を基に、ブロック内の全画素の量子化ステップ値を線形補間によって導出する。その結果、隣接するブロック境界における量子化ステップ値の差を小さくできるので、ブロックノイズの発生を抑制するこが可能となる。さらに、実施形態４によれば、符号化対象の画像データは一旦、サブバンドに分割し、サブバンドに分割した量子化、符号化処理を行うことになる。故に、サブバンドごとに、適正な量子化を行えることになり、画像の劣化を抑制した符号化データを生成することも可能になる。
【０１５６】
［実施形態５］
実施形態１〜４で説明した様々な機能、処理及び方法は、パーソナルコンピュータ、マイクロコンピュータ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などがプログラムを用いて実現することもできる。以下、実施形態５では、パーソナルコンピュータ、マイクロコンピュータ、ＣＰＵなどを「コンピュータＸ」と呼ぶ。また、実施形態５では、コンピュータＸを制御するためのプログラムであって、実施形態１〜４で説明した様々な機能、処理及び方法を実現するためのプログラムを「プログラムＹ」と呼ぶ。
【０１５７】
実施形態１〜４で説明した様々な機能、処理及び方法は、コンピュータＸがプログラムＹを実行することによって実現される。この場合において、プログラムＹは、コンピュータ読み取り可能な記憶媒体を介してコンピュータＸに供給される。実施形態５におけるコンピュータ読み取り可能な記憶媒体は、ハードディスク装置、磁気記憶装置、光記憶装置、光磁気記憶装置、メモリカード、揮発性メモリ、不揮発性メモリなどの少なくとも一つを含む。実施形態５におけるコンピュータ読み取り可能な記憶媒体は、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ（非一時的）な記憶媒体である。
【符号の説明】
【０１５８】
１００…符号化装置、１０１…指示入力部、１０２…制御部、１０３…撮像部、１０４…信号処理部、１０５…現像部、１０６…画像分割部、１０７…特徴抽出部、１０８…設定部、１０９…量子化ステップ記録ブ、１１０…量子化ステップ計算部、１１１…量子化部、１１２…圧縮部、１１３…ストリーム生成部、１１４…メモリＩ／Ｆ部、１１５…記録媒体
【図１】
2017085498.tif 000005
【図２】
2017085498.tif 000006
【図３】
2017085498.tif 000007
【図４】
2017085498.tif 000008
【図５】
2017085498.tif 000009
【図６】
2017085498.tif 000010
【図７】
2017085498.tif 000011
【図８】
2017085498.tif 000012
【図９】
2017085498.tif 000013
【図１０】
2017085498.tif 000014
【図１１】
2017085498.tif 000015
【図１２】
2017085498.tif 000016
【図１３】
2017085498.tif 000017
【図１４】
2017085498.tif 000018
【図１５】
2017085498.tif 000019
【図１６】
2017085498.tif 000020
【図１７】
2017085498.tif 000021
【図１８】
2017085498.tif 000022
【図１９】
2017085498.tif 000023