(57)【要約】      （修正有）【課題】注目領域を含む画像データを、その注目領域は高画質を維持し、注目領域外の符号量制御を可能にするだけでなく、注目領域、注目領域外を同じアルゴリズムで効率よく符号化データを生成する。【解決手段】画像符号化装置は、符号化対象画像データにおける注目領域を設定する設定部と、符号化対象画像データを１ライン単位に入力して、複数のサブバンドに変換する変換部と、各サブバンド内に注目領域の画素を参照して得た変換係数が有るか否かを判定する判定部と、判定部が無しを示す場合、各サブバンドの変換係数を予め設定された量子化パラメータに従って量子化した後エントロピー符号化し、判定部が有りを示す場合、各サブバンドの変換係数における、注目領域内の画素を参照しないで得た変換係数は量子化パラメータに従って丸め処理を行い、注目領域内の画素を参照して得た変換係数とともにエントロピー符号化する符号化部とを有する。【選択図】図１
2020102704.tif 000002
【特許請求の範囲】
【請求項１】
画像符号化装置であって、
符号化対象画像データにおける注目領域を設定する設定手段と、
前記符号化対象画像データを所定のサイズのブロック単位に入力して、当該ブロックが示す画像データを複数のサブバンドに変換する変換手段と、
前記符号化対象画像データの注目ブロックの画像データから得た各サブバンド内に、前記注目領域の画素を参照して得た変換係数が有るか否かを判定する判定手段と、
該判定手段の判定結果が無しを示す場合、前記注目ブロックの画像データから得た各サブバンドの変換係数を予め設定された量子化パラメータに従って量子化し、当該量子化後の変換係数をエントロピー符号化し、
前記判定手段の判定結果が有りを示す場合、前記注目ブロックの画像データから得た各サブバンドの変換係数における、前記注目領域内の画素を参照しないで得た変換係数については前記量子化パラメータに従って丸め処理を行い、当該丸め処理で得た変換係数と、前記注目領域内の画素を参照して得た変換係数とをエントロピー符号化する符号化手段と
を有することを特徴とする画像符号化装置。
【請求項２】
前記符号化手段は、前記注目領域内の画素を参照しないで得た変換係数を前記量子化パラメータに従って量子化、そして、逆量子化することで、前記丸め処理を行うことを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記符号化手段は、
前記判定手段の判定結果が無しを示す場合に得られた符号化データのヘッダには、当該符号化データを生成する際に用いた量子化ステップ幅を示す情報を格納し、
前記判定手段の判定結果が有りを示す場合に得られた符号化データのヘッダには、当該符号化データを生成する際に用いた量子化ステップ幅が“１”であることを示す情報、もしくは量子化していないことを示す情報を格納する
ことを特徴とする請求項１に記載の画像符号化装置。
【請求項４】
前記符号化手段が行う前記丸め処理は、
前記変換係数が示す値の絶対値が予め設定された閾値以下となる条件を満たす場合の、当該変換係数をゼロに変更する処理を含む
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像符号化装置。
【請求項５】
前記変換手段が行う変換は、整数型フィルタを用いた離散ウェーブレット変換である
ことを特徴とする請求項１乃至４のいずれか１項に記載の画像符号化装置。
【請求項６】
前記整数型フィルタは、ＪＰＥＧ２０００に規定される５−３タップフィルタであることを特徴とする請求項５に記載の画像符号化装置。
【請求項７】
前記符号化手段は、
変換係数のランを符号化するランレングス符号化手段と、
変換係数を予測符号化する予測符号化手段と、
前記エントロピー符号化しようとしている注目変換係数がいずれのサブバンドに属するか、及び、前記注目変換係数の周囲の符号化済みの複数の変換係数の関係に基づいて、前記注目変換係数をランの始点として前記ランレングス符号化手段により符号化するか、前記注目変換係数を前記予測符号化手段を用いて符号化するかを選択する選択手段と
を含むことを特徴とする請求項１乃至６のいずれか１項に記載の画像符号化装置。
【請求項８】
画像符号化装置の制御方法であって、
符号化対象画像データにおける注目領域を設定する設定工程と、
前記符号化対象画像データを所定のサイズのブロック単位に入力して、当該ブロックが示す画像データを複数のサブバンドに変換する変換工程と、
前記符号化対象画像データの注目ブロックの画像データから得た各サブバンド内に、前記注目領域の画素を参照して得た変換係数が有るか否かを判定する判定工程と、
該判定工程の判定結果が無しを示す場合、前記注目ブロックの画像データから得た各サブバンドの変換係数を予め設定された量子化パラメータに従って量子化し、当該量子化後の変換係数をエントロピー符号化し、
前記判定工程の判定結果が有りを示す場合、前記注目ブロックの画像データから得た各サブバンドの変換係数における、前記注目領域内の画素を参照しないで得た変換係数については前記量子化パラメータに従って丸め処理を行い、当該丸め処理で得た変換係数と、前記注目領域内の画素を参照して得た変換係数とをエントロピー符号化する符号化工程と
を有することを特徴とする画像符号化装置の制御方法。
【請求項９】
コンピュータが読み込み実行することで、前記コンピュータに、請求項８に記載の制御方法の各工程を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像データの圧縮符号化技術に関するものである。
【背景技術】
【０００２】
従来から、顔認識などで抽出された領域や、像域分離により分離された文字・線画領域を注目領域：ＲＯＩ(Region of Interest)として特定し、ＲＯＩ以外の領域の符号量を削減し、圧縮する技術が様々知られている。ＲＯＩの圧縮技術として、より簡易なものは、画像をタイルなどの矩形領域に分割し、ＲＯＩ領域が含まれる矩形領域とそれ以外の矩形領域で画質を変える方法が知られている。国際標準符号化方式であるＪＰＥＧ２０００を用いて、このようなＲＯＩ符号化を実現する方法は特許文献１に記載されている。
【０００３】
さらに、ＪＰＥＧ２０００では、離散ウェーブレット変換(DWT:Discrete wavelet transform)を用い、ＲＯＩに含まれるＤＷＴ変換係数をビットシフトするマックスシフト法と呼ばれる方式により画素単位でＲＯＩ領域を特定し符号化する方法が知られている。この仕組みを使ったＲＯＩ符号化を実現する方法は特許文献２に記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３３９０４７号公報
【特許文献２】特開２００４−２３５９３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＲＯＩ符号化といっても、ＲＯＩ領域もある程度の画質劣化を許容できる場合と、ＲＯＩ領域はロスレス圧縮する方が望ましい場合とがある。
【０００６】
たとえば、文字・線画領域は劣化により認識できなくなる恐れがあり、ロスレス圧縮することが望ましい。あるいは、複数のカメラで撮影された人物の多視点映像から自由視点画像を合成する場合には、被写体の詳細について対応点を取る必要があり、各カメラの撮影画像における自由視点画像合成の対象物の領域はロスレス圧縮とすることが望ましい。
【０００７】
しかしながら、ＲＯＩ領域のロスレス圧縮を想定すると、あらかじめ決められた矩形領域を単位としてＲＯＩ符号化を行うような従来技術では、符号データの削減が困難である。なぜなら、矩形領域サイズに対して重要領域が小さい場合には、ロスレス圧縮と判定される矩形領域が大きくなり、ＲＯＩ領域外のデータもロスレス圧縮されてしまうため、符号量を小さくすることが難しい。逆に、ＲＯＩ領域として設定可能な最小領域サイズに合わせて矩形領域サイズを決定すると、各矩形領域に付随するヘッダデータが符号量全体に占める割合が大きくなりすぎるため、やはり符号量を小さくすることが難しくなる。矩形領域サイズをある程度の大きさに限定し、ライン単位で量子化ステップを制御することも可能である。しかし、その場合は、高さ方向のみの制御になり、矩形領域の高さと重要領域の高さが同じになると、その矩形領域をロスレス圧縮することになり、符号量を小さくすることができない。
【０００８】
一方、ＪＰＥＧ２０００のマックスシフト法により、画素単位でＲＯＩ領域を決定すると、符号データの無駄は生じない。しかし、係数全体をビットシフトして、ＲＯＩ領域以外の下位ビットを削除することは、２のｎ乗の量子化に相当し、ロッシー領域の画質を細かく制御できないという課題がある。さらに、ＲＯＩが設定されたタイルはデコード時に、シフトした分だけ戻す処理が必要になるため、ＲＯＩが設定されているタイルとそうではないタイルでデコード処理が異なってしまうという課題もある。
【０００９】
本発明は、かかる課題に鑑み成されたものであり、注目領域を含む画像データを、その注目領域については高画質を維持しつつ、且つ、注目領域外の符号量制御を可能にするだけでなく、注目領域、注目領域外を同じアルゴリズムで効率よく復号可能な符号化データを生成させる技術を提供しようとするものである。
【課題を解決するための手段】
【００１０】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
画像符号化装置であって、
符号化対象画像データにおける注目領域を設定する設定手段と、
前記符号化対象画像データを所定のサイズのブロック単位に入力して、当該ブロックが示す画像データを複数のサブバンドに変換する変換手段と、
前記符号化対象画像データの注目ブロックの画像データから得た各サブバンド内に、前記注目領域の画素を参照して得た変換係数が有るか否かを判定する判定手段と、
該判定手段の判定結果が無しを示す場合、前記注目ブロックの画像データから得た各サブバンドの変換係数を予め設定された量子化パラメータに従って量子化し、当該量子化後の変換係数をエントロピー符号化し、
前記判定手段の判定結果が有りを示す場合、前記注目ブロックの画像データから得た各サブバンドの変換係数における、前記注目領域内の画素を参照しないで得た変換係数については前記量子化パラメータに従って丸め処理を行い、当該丸め処理で得た変換係数と、前記注目領域内の画素を参照して得た変換係数とをエントロピー符号化する符号化手段とを有する。
【発明の効果】
【００１１】
本発明によれば、注目領域を含む画像データを、その注目領域については高画質を維持しつつ、且つ、注目領域外の符号量の制御を可能にするだけでなく、注目領域、注目領域外を同じアルゴリズムで効率よく復号可能な符号化データを生成することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態における符号化装置の構成を示すブロック図。
【図２】第１の実施形態における画像の符号化処理を示すフローチャート。
【図３】第１の実施形態における符号化対象画像におけるＲＯＩと、ＤＷＴを説明するための図。
【図４】各サブバンドの量子化ステップと、符号化データの構造を示す図。
【図５】第１の実施形態におけるＲＯＩ用の符号化処理を示すフローチャート。
【図６】第１の実施形態におけるＲＯＩ非参照変換係数の修正処理を示すフローチャート。
【図７】第１の実施形態におけるサブバンドのＤＷＴ変換係数の符号化処理を示すフローチャート。
【図８】注目変換係数と、周辺の符号化済みの変換係数との位置関係を示す図。
【図９】第２の実施形態におけるＲＯＩ非参照変換係数の修正処理を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【００１４】
［第１の実施形態］
図１（ａ）は本実施形態における注目領域（ＲＯＩ: Region Of Interest）を含む画像の符号化を行う画像符号化装置のブロック構成図である。この画像符号化装置は、ＣＰＵ１０１、入力部１０２、ＲＯＩ設定部１０３、符号データ生成部１０４、表示部１０５、メモリ１０６、及び、蓄積部１０７を有する。
【００１５】
ＣＰＵ１０１は、各構成の処理にかかわり、装置全体の制御を司る。入力部１０２は、ユーザからの指示や、符号化対象の画像データなどを入力する。このため、入力部１０２は、キーボードやマウスなどのポインティングデバイスを含み、画像データを入力するためのインターフェースをふくむ。ＲＯＩ設定部１０３は、符号化対象の画像データ中の注目領域ＲＯＩを設定する。符号データ生成部１０４は、符号化対象の画像データが有する画素値に対し、離散ウェーブレット変換（ＤＷＴ：Discrete Wavelet Transform）を実行し、得られたＤＷＴ変換係数を、ランレングス符号化と予測符号化のいずれかを適宜切り替えて符号化する（詳細後述）。表示部１０５は、通常は液晶ディスプレイなどが用いられる。メモリ１０６は、ＲＯＭ、ＲＡＭで構成され、ＣＰＵ１０１が実行するプログラムや各種パラメータの格納、並びに、ＣＰＵ１０１のワークエリアとして使用される。蓄積部１０７は、画像データ、プログラムなどを蓄積する部分で、通常はハードディスクなどが用いられる。また、後述するフローチャートの処理に必要な制御プログラムは、蓄積部１０７に格納されているか、メモリ１０６のＲＯＭに格納されているものとする。蓄積部１０７に格納されている場合は、ＣＰＵ１０１は、一旦メモリ１０６内のＲＡＭにそのプログラムを読み出して実行される。なお、システム構成については、上記以外にも様々な構成要素が存在するが、本発明の主眼ではないので、その説明は省略する。
【００１６】
実施形態の符号データ生成部１０４は、符号化対象の画像データをＤＷＴし、得られたＤＷＴ変換係数を量子化し、符号化する。そして、符号化対象の画像データにおけるＲＯＩ内の画素をロスレス（可逆）符号化し、ＲＯＩ外の画素はロッシー（非可逆）符号化する。このため、ウェーブレット変換では可逆な５−３タップのＤＷＴフィルタを用いるものとするが、フィルタの種類やサイズはこれに限定されるものでない。ＲＯＩ内の画素をロスレス符号化するためには、ＲＯＩ内の画素を参照して生成されたＤＷＴ変換係数をロスレス符号化すればよい。言い換えれば、フィルタが持つ５入力の少なくとも１つが、ＲＯＩの画素データを入力した場合、そのフィルタで算出されるＤＷＴ変換係数をロスレス符号化する。そして、ＲＯＩ内の画素を参照しないで生成されたＤＷＴ変換係数についてはロッシー符号化を許容する。
【００１７】
図１（ｂ）は、符号データ生成部１０４のブロック構成図である。符号データ生成部１０４は、ＤＷＴ部１１０、量子化部１１１、符号化方式選択部１１２、ランレングス符号化部１１３、予測符号化部１１４、符号列生成部１１６、及び、スイッチ１０９、１１０を含む。
【００１８】
ＤＷＴ部１１０は、符号化対象の画像データを１ライン単位に入力し、その入力したライン（以下、注目ラインという）に含まれる各画素に対してＤＷＴフィルタを用いてＤＷＴを行い、複数のサブバンドを生成する。
【００１９】
量子化部１１１は、ＲＯＩ領域設定部１０３から供給されるＲＯＩ領域情報を参照して、注目サブバンド内の注目ラインがＲＯＩ内の画素を参照して生成されたＤＷＴ変換係数を含むか否かを判定する。なお、以降、ＤＷＴ変換係数を単に変換係数と呼ぶ。そして、ＲＯＩ内（注目領域内）の画素を参照して生成されたＤＷＴ変換係数をＲＯＩ参照変換係数と記し、ＲＯＩ内の画素を参照しない、すなわち、ＤＷＴフィルタに入力される全画素がＲＯＩ外の画素であった場合に生成されたＤＷＴ変換係数をＲＯＩ非参照変換係数と呼ぶ。
【００２０】
注目ラインがＲＯＩ参照変換係数を含まない場合、量子化部１１１は、予め設定された量子化パラメータに従って注目ラインより得た全サブバンドの変換係数を量子化し、量子化後の変換係数を、スイッチ１０９を介して符号化方式選択部１１２に供給する。
【００２１】
一方、注目ラインがＲＯＩ参照変換係数を含む場合、量子化部１１１は設定された量子化パラメータに従って注目ラインより得た全サブバンドの変換係数のうち、ＲＯＩ参照変換係数については量子化ステップ“１”で量子化（量子化しないのと等価）し、ＲＯＩ非参照変換係数については予め設定された量子化パラメータに従って量子化する。そして、量子化部１１１は、得られた量子化後の変換係数を、スイッチ１０９を介して、係数修正部１２０に供給する。
【００２２】
係数修正部１２０は、ＲＯＩ情報に基づき、量子化部１１１から供給された、注目ラインの変換係数のうち、ＲＯＩ非参照変換係数を修正する。具体的に説明すると、係数修正部１２０は、量子化部１１１から供給された、ＲＯＩ参照変換係数はその値を維持し、ＲＯＩ非参照変換係数については逆量子化する。この結果、注目ラインから得た各サブバンドの変換係数のうち、ＲＯＩ参照変換係数はＤＷＴの直後の値のままとなり、可逆性が維持される。また、ＲＯＩ非参照変換係数は量子化ステップ値に依存した誤差を含むので非可逆となるものの、ＤＷＴで得た係数のレベルまで復元した値となり、符号化効率に寄与したデータとすることができる。
【００２３】
なお、注目ラインの変換係数の符号化データを生成するとき、ライン単位に量子化パラメータを示す情報がそのラインの符号化データもヘッダに格納される。このため、係数修正部１２０を経た変換係数の符号化データのヘッダには、量子化ステップ幅が“１”であることを示す情報が格納される。また、係数修正部１２０を経ない、変換係数の符号化データのヘッダには、設定された量子化パラメータを示す情報が格納されることになる。
【００２４】
符号化方式選択部１１２は、変換係数ごとに、ランレングス符号化部１１３または、予測符号化部１１４のいずれかに出力する。ランレングス符号化部１１３、予測符号化部１１４は、それぞれに応じた符号化処理を行い、生成した符号データを、符号データ出力部１１５内のバッファ１１５ａに格納する。すべてのサブバンドの変換係数の符号データがバッファ１１５ａに格納されると、符号列生成部１１６は、その符号化データを所定の順に並べて、符号化列（符号ストリーム）として成形し、出力する。
【００２５】
本実施形態では、説明を単純化するため、符号化対象の画像データは単一成分（例えば輝度）で表され、１画素当たり８ビットで表されるモノクロ多値画像データとして説明する。ただし、１画素のビット数が１０ビット、１２ビット、１４ビットなど８ビット以外のビット数で輝度値を表現している画像データにも適用できる。また、１画素が、ＲＧＢやＣＭＹＫなどの複数の色成分で構成される場合には、成分毎に分離した画像データを符号化対象とすればよいので、符号化対象がモノクロ多値画像データに限定されるものではない。１画素８ビットで、モノクロ多値画像データとするのは、あくまで例示であると理解されたい。
【００２６】
次に、実施形態における符号データ生成部１０４における画像の符号化処理を図２のフローチャートを参照して説明する。
【００２７】
Ｓ２０１にて、符号データ生成部１０４は、入力部１０２より入力された符号化対象画像の水平方向の画素数Ｗと垂直方向の画素数Ｈを取得する。符号化対象の画像データが撮像素子から得られた画像データの場合には、その撮像素子の解像度（水平、垂直方向画素数）を示す情報をＣＰＵ１０１が、符号データ生成部１０４に設定すればよい。また、符号化対象画像データが、ファイル形式で保存されていれば、ＣＰＵ１０１は、そのファイルヘッダから、Ｗ，Ｈの情報を取得し、符号データ生成部１０４に設定すればよい。
【００２８】
Ｓ２０２にて、符号データ生成部１０４は、ＲＯＩ設定部１０３からＲＯＩ領域情報（ＲＯＩの形状、位置を示す情報）を取得する。ＲＯＩ領域の特定法は、本願の主眼ではなく、如何なる手法を採用しても良い。例えば、入力部１０２から入力された画像から文字・線画領域や顔、特定の物体などの自動検出結果をＲＯＩ領域として自動的に取得してもよい。あるいは、マウスなどを使ってユーザが指定した任意の閉領域をＲＯＩ領域として取得してもよい。本実施形態においてはあらかじめ学習した特定の物体の自動検出結果をＲＯＩ領域として取得するものとし、図３（ａ）の領域３０１がＲＯＩ領域として取得されたものとする。
【００２９】
Ｓ２０３にて、符号データ生成部１０４は、ＤＷＴの実行回数と、ＤＷＴによって得られる各サブバンドを量子化する際の量子化ステップ値を特定する量子化パラメータを取得する。これらの値は、ユーザが予め入力部１０２により設定するものとする。サブバンド数は、『ＤＷＴの実行回数×３＋１』で求めることができる。本実施形態ではＤＷＴの実行回数は“２”としている。したがって、生成されるサブバンドの数は、図３（ｂ）に示すように、２ＬＬ，２ＨＬ，２ＬＨ，２ＨＨ，１ＨＬ，１ＬＨ，１ＨＨの計７つとなる。また、それらのサブバンドそれぞれに対して図４（ａ）に示す量子化ステップ値が決められており、符号データ生成部１０４は、これらの値を取得する。また、符号データ生成部１０４は、ＤＷＴの実行回数とＤＷＴフィルタサイズに基づき、変換係数がＲＯＩ参照変換係数、ＲＯＩ非参照変換係数のいずれであるかを判定する。
【００３０】
Ｓ２０４にて、符号データ生成部１０４は、符号化対象の画像データの垂直方向の位置を示すカウンタｙに“０”を代入し、初期化する。実施形態では、符号化対象の画像の垂直方向の画素数をＨとしているので、カウンタｙの値は０〜Ｈ−１の範囲を取り得ることになる。
【００３１】
Ｓ２０５にて、符号データ生成部１０４は、ｙ行目の１ライン分の画像データをＤＷＴ部１１０内のラインバッファ（不図示）に取得する。
【００３２】
そして、Ｓ２０６にて、符号データ生成部１０４はＤＷＴ部１１０を制御し、ラインバッファに格納された画像データに対してＪＰＥＧ２０００で採用されている整数型フィルタである、５−３タップフィルタを用いて、ＤＷＴを２回実行する。一般に、２次元ＤＷＴは１次元ＤＷＴを変換対象の画像の水平・垂直方向にそれぞれ適用することで実現できる。なお、水平方向のＤＷＴは１ライン分の画像データに対して実行できるが、垂直方向のＤＷＴを行う場合には、フィルタのサイズとＤＷＴの実行回数に依存したライン数の画像データが必要なる。つまり、実際には、ＤＷＴ部１１０には、その容量のバッファメモリを有し、入力したラインに対して或る程度遅延してＤＷＴを実行し、その結果を出力することになる。ここでは、単純化するため、１ライン分の画像データが入力されるたびに、そのラインから７つのサブバンドの変換係数が得られものとして説明を継続する。
【００３３】
Ｓ２０７にて、符号データ生成部１０４は、ｙ行、すなわち、注目ラインの画像データから得た変換係数内に、ＲＯＩ参照変換係数があるか否かを判定する。注目ラインの変換係数内にＲＯＩ参照変換係数が存在すると判定した場合、符号データ生成部１０４は処理をＳ２１５に進め、ＲＯＩ用の符号化処理を実行する。このＳ２１５に処理が進むのが、図１（ｂ）における、量子化部１１１による量子化で得た変換係数がスイッチ１０９を介して係数修正部１２０に供給される場合に相当することになる。
【００３４】
一方、注目ラインから得た変換係数内にＲＯＩ参照変換係数が無いと判定した場合、すなわち、全変換係数がＲＯＩ非参照変換係数である場合、符号データ生成部１０４は、処理をＳ２０９へ進める。本実施形態の場合、図３（ａ）からもわかるように、最初の数ラインはＲＯＩ領域外であるので、初期段階の数ラインの符号化では、Ｓ２０７からＳ２０９に分岐する。このＳ２０９に処理が進むのが、図１（ｂ）における、量子化部１１１による量子化で得た変換係数が、ダイレクトに（係数修正部１２０の介在無し）、符号化方式選択部１１２に供給される場合に相当する。
【００３５】
Ｓ２０９にて、符号データ生成部１０４は、サブバンドのカウンタｓに“０”を代入して初期化する。本実施形態では、２ＬＬ乃至１ＨＨの７つのサブバンドに対して、それぞれカウンタｓの値“０”〜“６”が割り当てられているものとする。また、カウンタｓが示すサブバンドを単にサブバンドｓと表記する。
【００３６】
Ｓ２１０にて、符号データ生成部１０４は、量子化部１１１を制御し、サブバンドｓの変換係数を、Ｓ２０３で取得した、対応する量子化ステップを使って量子化する。
【００３７】
Ｓ２１１にて、符号データ生成部１０４は、サブバンドｓの量子化ステップ幅を示す情報を、サブバンドｓの符号データのヘッダに付加するため、符号データ出力部１１５内に予め確保されたサブバンドｓ用の一時保存バッファにその情報を格納する。
【００３８】
Ｓ２１２にて、符号データ生成部１０４は、Ｓ２１０で生成されたサブバンドｓの量子化後の変換係数について、ランレングス符号化部１１３、予測符号化部１１４のいずれを用いるかの判定を行い、その判定結果に基づいて選択された符号化部を用いて符号化を行わせる。選択された符号化部は、生成した符号化データを、符号データ出力部１１５内のサブバンドｓのヘッダに後続するように格納する。
【００３９】
ここで、符号データ出力部１１５内に確保される各サブバンドの符号データ一時保存バッファは、図４（ｂ）に示すように、ラインの量子化ステップ幅を示す情報に続けて、そのラインの変換係数の符号データが保存される。そして、先頭ラインから最終ラインまで、量子化ステップ幅と符号データの組み合わせが順に保存されていく。このＳ２１２の符号化処理の詳細は、図７を参照して後述する。
【００４０】
Ｓ２１３にて、符号データ生成部１０４は、サブバンドカウンタｓに“１”を加算し、更新する。Ｓ２１４にて、符号データ生成部１０４は、カウンタｓとサブバンドの総数『１＋(ＤＷＴ回数×３)』を比較する。sがサブバンド総数と同じであれば、注目ラインに対する全サブバンドの符号化が終了したことになるので、処理をＳ２１６に進める。また、符号データ生成部１０４は、ｓとサブバンド総数が異なる場合、残りのサブバンドの符号化を行うため、処理をＳ２１０に戻す。
【００４１】
Ｓ２１６にて、符号データ生成部１０４は、ラインカウンタｙに“１”を加算し更新する。そして、Ｓ２１７にて、符号データ生成部１０４は、ラインカウンタｙと画像の高さＨを比較する。ｙとＨが一致していれば、全ラインについての符号化処理を終えたことになるので、処理をＳ２１８へ進める。ｙとＨが不一致の場合、符号データ生成部１０４は処理をＳ２０５へ戻し、次のラインを処理する。
【００４２】
Ｓ２１８にて、符号データ生成部１０４は、符号列生成部１１６を制御し、各サブバンドの符号データを、あらかじめ決められた順に並べ、符号化データ列（ストリーム）を成形及び出力を行い、このフローを終了する。本実施形態では、図４（ｂ）に示すように、低周波サブバンドから順に並べた符号化データ列が生成、出力される。
【００４３】
次に、Ｓ２１５の処理を図５のフローチャートを参照して説明する。
【００４４】
Ｓ５０１にて、符号データ生成部１０４は、ＲＯＩ内の画素を参照して生成された変換係数を識別するための、ロスレス係数位置情報Ｐ（ｓ, ｘ）を生成する。このロスレス係数位置情報Ｐ（ｓ,ｘ）における、ｓがサブバンドを、ｘが水平方向の位置を表す。符号データ生成部１０４は、サブバンドｓ、水平方向ｘに位置する変換係数が、ＲＯＩ参照変換係数であれば“１”を、そうでなく、ＲＯＩ非参照変換係数であれば“０”の値を持つＰ（ｓ, ｘ）を生成する。
【００４５】
Ｓ５０２にて、符号データ生成部１０４は、予め決められた量子化対象とするサブバンド番号の最小値Ｎを取得する。このＮは、ＣＰＵ１０１によって符号データ生成部１０４に設定されるものであり、本実施形態ではＮ＝４であるとする。つまり、分解レベル１（最大解像度）の高周波サブバンド１ＨＬ（サブバンド番号４）, １ＬＨ（サブバンド番号５）, １ＨＨ（サブバンド番号６）のＤＷＴ変換係数が量子化対象となる。
【００４６】
Ｓ５０３にて、符号データ生成部１０４は、カウンタｓにゼロを代入し、初期化する。なお、カウンタｓが示すサブバンドを単にサブバンドｓとも表記する。Ｓ５０４にて、符号データ生成部１０４は、カウンタｓとＮとを比較することで、サブバンドｓの変換係数が量子化対象かどうかを判定する。符号データ生成部１０４は、カウンタｓがＳ５０２で取得したＮ以上であれば量子化対象と判定し、処理をＳ５０５へ進む。そうでなければ、符号データ生成部１０４は、処理をＳ５０６に進める。
【００４７】
Ｓ５０５にて、符号データ生成部１０４は、係数修正部１２０を制御し、注目ラインから得たサブバンドｓの変換係数のうちＲＯＩ非参照変換係数の修正を行う。このＲＯＩ非参照変換係数の修正方法については、図６のフローを用いて、後に詳しく説明する。
【００４８】
Ｓ５０６にて、符号データ生成部１０４は、サブバンドｓの注目ラインの変換係数を量子化する際に用いる量子化ステップ幅“１”をそのヘッダに格納するため、符号データ出力部１１５内のサブバンドｓの符号データ一時保存バッファに出力する。次のＳ５０７にて、符号データ生成部１０４は、サブバンドｓの変換係数を符号化する。この処理の詳細は図７を用いて後述する。Ｓ５０８にて、符号データ生成部１０４は、サブバンドのカウンタｓに“１”を加算し更新する。そして、Ｓ５０９にて、符号データ生成部１０４は、サブバンド番号ｓとサブバンド総数『１＋（ＤＷＴの実行回数×３）』を比較する。両者が一致すれば、すべてのサブバンドについて符号化が終了したことになるので、符号データ生成部１０４は、このフローを終了する。一方、不一致である場合、符号データ生成部１０４は、処理をＳ５０４に戻し、他のサブバンドの符号化を行う。
【００４９】
次に、図６のフローを参照して、図５のＳ５０５の非ロスレス符号化するＲＯＩ非係数の修正処理について説明する。
【００５０】
Ｓ６０１にて、符号データ生成部１０４は、注目サブバンドの１ラインのＤＷＴ変換係数の個数ｓＷを取得する。ＤＷＴ変換係数の数は、サブバンド番号毎に異なっており、ＤＷＴにより分割する画素、またはＤＷＴ変換係数の数Ｘの１／２になる。ただし、ＤＷＴをかける画素またはＤＷＴ変換係数の数Ｘが奇数の時には、サブバンドＬＨ、ＬＬは、（Ｘ＋１）／２となり、サブバンドＨＬ、ＨＨは（Ｘ−１）／２となる。
【００５１】
Ｓ６０２にて、符号データ生成部１０４は、カウンタｓＸに“０”を代入することで初期化する。Ｓ６０３にて、Ｓ５０１で生成したロスレス係数位置情報Ｐ（ｓ、ｓＸ）を参照し、その値が“１”であるかどうかを判定する。“１”であれば、ｓＸ番目の変換係数［ｓＸ］はＲＯＩ参照変換係数であり、修正は行わない。それ故、符号データ生成部１０４は、処理をＳ６０５に進める。
【００５２】
一方、Ｐ（ｓ、ｓＸ）が“０”であった場合、ｓＸ番目の変換係数［ｓＸ］はＲＯＩ非参照変換係数であることになる。それ故、符号データ生成部１０４は処理をＳ６０４に進める。このＳ６０４にて、符号データ生成部１０４は、ｓＸ番目の変換係数［ｓＸ］を、Ｓ２０４で取得した量子化ステップ幅に従った丸め処理を行う。具体的には、符号データ生成部１０４は、変換係数［ｓＸ］を量子化ステップ幅で量子化して得た値を、同量子化ステップ幅で逆量子化する。そして、符号データ生成部１０４は、その逆量子化で得た変換係数を、ｓＸ番目の新たな変換係数［ｓＸ］として出力する。なお、このＳ６０４を経て得られる変換係数は、用いる量子化ステップは幅が大きいほど、丸め誤差が大きくなるものの、取り得る値の限られたものとなり、符号化効率を上げることができる。特に、注目サブバンドが高周波サブバンドである場合は、Ｓ６０４の処理による修正後の変換係数の多くが“０”となり、符号化効率を上げることができることになる。
【００５３】
Ｓ６０５にて、符号データ生成部１０４は、カウンタｓＸに“１”を加算し、更新する。そして、Ｓ６０６にて、符号データ生成部１０４は、カウンタｓＸとＳ６０１で取得した、１ラインの変換係数の数ｓＷとを比較する。ｓＸ＝ｓＷである場合、符号データ生成部１０４は、注目サブバンドの注目ラインにおけるＲＯＩ非参照変換係数の修正が終了したものと判定し、このフローを終了する。ｓＸ＜ｓＷの場合、未修正のＲＯＩ非参照変換係数が存在する可能性があることを意味する。それ故、符号データ生成部１０４は、処理をＳ６０３へ処理を戻す。
【００５４】
次に、サブバンドの変換係数の符号化処理を、図７のフローチャートを参照して説明する。この処理は、図２のＳ２１２、及び、図５のＳ５０７の処理でもある。
【００５５】
Ｓ７０１にて、符号データ生成部１０４は、注目サブバンドの１ライン分の変換係数の個数ｓＷを取得する。そして、Ｓ７０２にて、符号データ生成部１０４は、１個の変換係数の特定するためのカウンタｓＸに“０”を代入し、初期化する。カウンタｓＸの値は、変換係数の左端から位置を示すものである。
【００５６】
続く、Ｓ７０３乃至７０５の処理は、符号データ生成部１０４における符号化方式選択部１１２の処理である。
【００５７】
符号化方式の判定処理は、図８に示すように、注目変換係数の位置をｘとしたとき、その周辺の変換係数ａ，ｂ，ｃの値を参照して行われる。そして、これら３つの周辺変換係数ａ、ｂ、ｃを参照し、符号化方式選択部１１２は注目変換係数ｘの符号化方式を判定し、注目変換係数ｘをランレングス符号化部１１３、予測符号化部１１４のいずれかに供給する。実施形態における符号化方式の選択基準は、低周波成分であるサブバンドＬＬと、それ以外の高周波成分のサブバンドで異なっている。それ故、Ｓ７０３にて、符号化方式選択部１１２は、カウンタｓに基づき、サブバンドＬＬの変換係数を符号化しようとしているのか否かを判定する。
【００５８】
サブバンドＬＬの変換係数を符号化しようとしていると判定した場合、符号化方式選択部１１２は処理をＳ７０５に進める。一方、サブバンドＬＬ以外であると判定した場合、符号化方式選択部１１２は処理をＳ７０４に進める。
【００５９】
Ｓ７０４にて、符号化方式選択部１１２は、注目変換係数ｘの左隣の変換係数ａが“０”であるか否かを判定する。変換係数ａが“０”である場合、符号化方式選択部１１２は処理をＳ７０５に進める。一方、変換係数ａが“０”以外である場合、符号化方式選択部１１２は処理をＳ７０８に進める。
【００６０】
Ｓ７０５にて、符号化方式選択部１１２は、周辺の変換係数ａ，ｂ，ｃの全てが同じ値であるか否かを判定する。変換係数ａ，ｂ，ｃの全てが同じ値であった場合、符号化方式選択部１１２は処理をＳ７０６に進め、変換係数ａ，ｂ，ｃの中に一つでも他と異なる値があった場合、符号化方式選択部１１２は処理をＳ７０８に進める。
【００６１】
なお、Ｓ７０４の判定結果がＹｅｓ，かつ、Ｓ７０５の判定結果がＹｅｓとなった場合の周辺の変換係数ａ，ｂ，ｃの関係は、ａ＝ｂ＝ｃ＝０である。また、符号化対象の変換係数ｘがサブバンドの左端にあるときは、変換係数ａは存在しない。また、変換係数ｘがサブバンドの最初のライン内にあるときは、変換係数ｂ、ｃは存在しない。このように存在しない変換係数は予め設定された値（例えば“０”）であると見なして処理を行うものとする（復号側と共通の認識となっていれば、その値は特に問わない）。
【００６２】
上記のＳ７０３乃至７０５の判定処理を分かり易く説明するのであれば、次の通りである。
【００６３】
一般に、同じ値が連続する状況下では、予測符号化よりもランレングス符号化の方が符号化効率で優れている。サブバンドＬＬに含まれる全変換係数は、オリジナルの画像の水平、垂直とも１／４のサイズの縮小画像と見ることができる。それ故、サブバンドＬＬの場合、同じ値が連続する可能性が高いか否かは、注目変換係数の周囲にある複数の変換係数が同じ値となっているか否かで推定できる。それ故、周囲の変換係数ａ，ｂ，ｃが同じ値の場合には、注目変換係数をランの始点とするランレングス符号化を開始する。一方、連続性が期待できない場合には、注目変換係数を符号化済みの周囲の変換係数に基づく予測符号化を行う。
【００６４】
一方、サブバンドＬＬ以外の高周波成分の変換係数は、その性質上、“０”が連続ことはあっても、“０”以外の、同じ値が連続するこことは稀である。そこで、高周波成分については、注目変換係数の周囲の変換係数ａ，ｂ，ｃが全て“０”である場合に限って、注目変換係数をランの始点とするランレングス符号化を開始する。周囲の変換係数ａ，ｂ，ｃのうち、１つでも“０”で無い場合、連続性が期待できないので、注目変換係数を符号化済みの周囲の変換係数に基づく予測符号化を行う。
【００６５】
上記の通りなので、Ｓ７０６に処理が進んだ場合、符号データ生成部１０４は、ランレングス符号化部１１３を制御し、注目変換係数［ｓＸ］を始点とするラン長を計数させる。ランレングス符号化部１１３は、ランが途切れた場合に、計数したランを示す符号を出力する。そして、Ｓ７０７にて、Ｓ７０６で計数されたラン長をカウンタｓＸに加算し、次に、符号化方式選択部へ入力する注目係数の位置を更新する。その後、符号データ生成部１０４、ラン終端の係数を予測符号化するため、処理をＳ７０８へ進める。
【００６６】
Ｓ７０８にて、符号データ生成部１０４は予測符号化部１１４を制御し、注目変換係数ｘに対する予測符号化を実行させる。予測符号化部１１４は、周辺の符号化済み変換係数ａ、ｂ、ｃから予測値ｐ（単純にはｐ＝ａである）を求め、注目変換係数ｘと予測値ｐとの差分ｄ（＝ｘ−ａ）をエントロピー符号化する。
【００６７】
この後、Ｓ７０９にて、符号データ生成部１０４は、次の変換係数の符号化を行うためにカウンタｓＸに“１”を加算する。そして、Ｓ７１０にて、符号データ生成部１０４は、カウンタｓＸと１ラインの変換係数の数ｓＷとを比較する。ｓＸ＝ｓＷの場合、注目ラインの全変換係数の符号化を終えたことになるので、符号データ生成部１０４は、このフローを終了する。それ以外の場合、符号データ生成部１０４は、次の変換係数の符号化を行うために処理をＳ７０３に戻す。
【００６８】
以上が、実施形態における符号データ生成部１０４の処理内容である。上記の処理を行うと、高周波サブバンドはゼロの係数が多いほどランレングス符号化されやすい。そのため、ＲＯＩに含まれないＤＷＴ変換係数は量子化されることで、“０”となる可能性が高くなり、結果、ランレングス符号化に移行しやすくなり、高い圧縮率が期待できる。つまり、ＲＯＩ以外の領域の符号量を小さくできる。
【００６９】
本実施形態の手法を用いると、図３（ｃ）の領域３０２、３０３のラインの符号化データのヘッダには、各サブバンドに対応した量子化ステップ幅が記載される。そして、領域３０４、３０５およびＲＯＩが含まれるラインの符号化データのヘッダには、量子化ステップ幅“１”が格納されることになる。また、領域３０４、３０５の多くは、ＲＯＩ領域内の画素を参照しないで得られたＤＷＴ変換係数であるので、量子化→逆量子化の処理を経た符号化データとなる。そのため、量子化ステップ幅が“１”と記載されていても、復号時にＲＯＩ領域と、それ以外の非ＲＯＩ領域のＤＷＴ変換係数を区別することなく復号することもでき、処理が簡略化され、高速な復号も期待できる。
【００７０】
さらに、本実施形態では、ＲＯＩ領域を含むＤＷＴ変換係数のライン(量子化ステップ幅として“１”の係数ライン)のうち、サブバンド１ＨＬ、１ＬＨ，１ＨＨについては、ＲＯＩ領域外のＤＷＴ変換係数を修正対象として量子化したが、このサブバンドの数を動的に変更してもよい。たとえば、ロスレス圧縮とするＲＯＩの画像全体に占める割合が小さい場合には、全体の符号量もあまり大きくならない。そのため、本実施形態のサブバンド１ＨＬ，１ＬＨ，１ＨＨのみを量子化対象とし、なるべくＲＯＩ領域外の画質劣化を防止する。逆に、ロスレス圧縮とする注目領域の画像全体に占める割合が大きい場合には、全体の符号量が大きくなりがちであるため、ＬＬサブバンド以外の高周波サブバンドすべてを量子化対象として、符号量を小さくしても良い。そのため、ＲＯＩが大きいか否かを判定するための閾値を設け、それに従って量子化対象を決定しても良い。
【００７１】
さらに、ＲＯＩを含まないＤＷＴ変換係数の量子化ステップ幅を２のべき乗よりも細かく制御することができ、画像全体の符号量を制御しやすいだけでなく、ＲＯＩ領域外の画質を細かく制御することができる。
【００７２】
また、ＤＷＴ変換係数を１ライン毎に処理可能なため、符号化時の使用メモリ量を小さくすることができる。
【００７３】
なお、上記実施形態では、符号化データ生成部１０４は図２の構成を持つものとして説明したが、ＣＰＵ１０１が、上記の説明で参照した各フローチャートに対応するコンピュータプログラムを実行させて実現させても構わない。
【００７４】
［第２の実施形態］
上記第１の実施形態では、ＲＯＩ参照変換係数を含むライン内の、ＲＯＩ非参照変換係数の修正処理（図５のＳ５０５）の詳細を図６のフローチャートに参照して説明した。その際、ＲＯＩ非参照変換係数については、量子化→逆量子化を行うことも説明した。
【００７５】
本実施形態では、ＲＯＩ非参照係数のうち、予め設定された範囲の値を持つ変換係数をゼロにする例について説明する。
【００７６】
本第２の実施形態における、図５のＳ５０５の処理の詳細を、図９のフローチャートを参照して以下に説明する。同図のうち、第１の実施形態と同じ処理については、図６と同じ参照符号を付し、その詳しい説明は割愛する。
【００７７】
Ｓ６０１，Ｓ６０２は第１の実施形態の説明と同じである。Ｓ９０１にて、符号データ生成部１０４は，ゼロに置き換えるための係数範囲を規定する正の閾値Ｂを取得する。閾値Ｂが正とするのは、ゼロに置き換えるＤＷＴ変換係数の取り得る範囲を絶対値で判定できるようにするためである。なお、この閾値Ｂは、ユーザの指示入力に従ってＣＰＵ１０１がその値を決定し、符号データ生成部１０４に設定するものとする。また、閾値Ｂは、そのサブバンドに用いる量子化ステップ幅よりは大きな値とする。
【００７８】
Ｓ６０３にて、符号データ生成部１０４は、ロスレス係数位置情報Ｐ（ｓ、ｓＸ）を参照し、その値が“１”か否かを判定する。ロスレス係数位置情報Ｐ（ｓ、ｓＸ）が“１”である場合、注目変換係数［ｓＸ］がＲＯＩ参照変換係数であり、ロスレス符号化しなければならない。それ故、符号データ生成部１０４は、注目変換係数については修正せずし、処理をＳ６０５に進める。
【００７９】
ロスレス係数位置情報Ｐ（ｓ、ｓＸ）が“１”ではなく、“０”である場合、注目変換係数［ｓＸ］はＲＯＩ非参照変換係数であり、修正対象となる。したがって、符号データ生成部１０４は、Ｓ６０３からＳ９０２に処理を分岐する。Ｓ９０２にて、符号データ生成部１０４は、注目変換係数［ｓＸ］の絶対値と値Ｂとを比較する。注目変換係数［ｓＸ］の絶対値が値Ｂ以下である場合、符号データ生成部１０４は、処理をＳ９０３に進める。このＳ９０３にて、符号データ生成部１０４は、注目変換係数［ｓＸ］をゼロに置き換える。
【００８０】
Ｓ６０４，Ｓ６０５，Ｓ６０６の処理は、第１の実施形態と同様である。
【００８１】
なお、Ｓ９０２では、注目変換係数［ｓＸ］の絶対値と閾値Ｂとを比較するものとして説明したが、以下の条件を満たすか否かの判定を行うことと等価である。
条件：−Ｂ≦注目変換係数［ｓＸ］≦Ｂ
【００８２】
上記の結果、符号化対象の画像データの注目ラインから得たＤＷＴ変換係数に、ＲＯＩ内の画素を参照して算出されたＲＯＩ参照変換係数が含まれ、且つ、そのＲＯＩ参照変換係数の絶対値が閾値以下であると判定された場合には、“０”に置き換える。この結果、第１の実施形態と比較して、“０”の発生する確率が高くなり、より符号化効率を上げることができる。
【００８３】
［その他の実施形態］
上記第２の実施形態では、サブバンドによって一律にある一定範囲のＤＷＴ変換係数をゼロに修正するものとしたが、第１、第２の実施形態を組み合わせてもよい。すなわち、サブバンド２ＨＬ、２ＬＨ、２ＨＨについては第１の実施形態の方法で係数を修正し、より高周波なサブバンド１ＨＬ，１ＬＨ，１ＨＨについては第２の実施形態の方法で修正してもよい。
【００８４】
また、第２の実施形態では、ゼロに置き換えるＤＷＴ変換係数の範囲を規定する値Ｂを動的に変更してもよい。たとえば、サブバンドの種類によって、この値Ｂを変更しても良い。すなわち、例えばサブバンド１ＨＨは、より大きい値Ｂを設定し、広範囲なＤＷＴ変換係数をゼロにし、低周波に近いサブバンドに対しては値Ｂを小さくし、画質の過度な低下を防止してもよい。あるいは、符号化対象の画像データに対するＲＯＩが示す面積の比率から値Ｂを設定してもよい。画像全体に占めるＲＯＩの面積の比率が大きいときには、Ｂの値を大きくし、符号量を抑制する。一方、その比率が小さい場合には、値Ｂを小さくし、ＲＯＩ領域とそれ以外の画素の画質の差を小さくしてもよい。
【００８５】
なお、本実施形態では、説明を簡単にするために、ＤＷＴの実行回数を“２”として説明したが、ＤＷＴの実行回数に制限はない。
【００８６】
また、実施形態では、符号化対象の画像データをタイル分割せずに符号化する方法について説明したが、複数のタイルに分割するようにしても良い。その場合、各タイルの符号化を図２のフローを用いて符号化すればよい。また、実施形態によれば、ＲＯＩを含むタイルとそうではないタイルで、まったく同じ方法でデコードすることができる点も特徴ということができる。
【００８７】
本実施形態では、各ラインのＤＷＴ変換係数の符号データ先頭に量子化ステップ幅を記載したが、それらをサブバンド毎やタイル毎、画像毎に１か所にまとめて記載してもよい。また、タイル分割した際に、ＲＯＩ外のタイルのサブバンドは量子化ステップ幅が１つに決まる。その場合には、各タイルの各サブバンドに１回だけ量子化ステップ幅を記載してもよい。また、量子化ステップ幅を圧縮して符号データに格納してもよい。
【００８８】
また、上記実施形態では、画像データを１ライン単位に入力し、符号化する例を説明したが、予め設定された所定サイズのブロック単位に入力し、ブロック単位に符号化しても良い。
【００８９】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９０】
１０１…ＣＰＵ、１０２…入力部、１０３…ＲＯＩ設定部、１０４…符号データ生成部、１０５…表示部、１０６…メモリ、１０７…蓄積部、１１０…ＤＷＴ部、１１１…量子化部、１１２…符号化方式選択部、１１３…ランレングス符号化部、１１４…予測符号化部、１１５…符号データ出力部、１１６…符号列生成部
【図１】
2020102704.tif 000003
【図２】
2020102704.tif 000004
【図３】
2020102704.tif 000005
【図４】
2020102704.tif 000006
【図５】
2020102704.tif 000007
【図６】
2020102704.tif 000008
【図７】
2020102704.tif 000009
【図８】
2020102704.tif 000010
【図９】
2020102704.tif 000011