(57)【要約】【課題】  画像符号化を好適に実行する。【解決手段】  一連のデータ列によって構成されるデータ群（符号化画像）内に所定の値を有するデータが存在することを検出するステップと、前記データ群内に存在する前記所定の値を他の値に変換するステップと、前記データ群内の所望の位置に前記所定の値を有するデータを存在させるステップと、を有する。【選択図】  図１
2006295683.tif 000002
【特許請求の範囲】
【請求項１】
一連のデータ列によって構成されるデータ群内に所定の値を有するデータが存在することを検出するステップと、
前記データ群内に存在する前記所定の値を他の値に変換するステップと、
前記データ群内の所望の位置に前記所定の値を有するデータを存在させるステップと、を有する画像符号化方法。
【請求項２】
前記データ群内の前記所望の位置は、複数の画素からなる画素ブロックを形成するためのサブデータ群の境界を示す位置である請求項１記載の画像符号化方法。
【請求項３】
前記データ群内の前記所望の位置に存在させられた前記所定の値を画像復号時に自動的に消去するためのデータを、前記データ群内に含ませる請求項１又は２記載の画像符号化方法。
【請求項４】
一連のデータ列によって構成されるデータ群内に所定の値を有するデータが存在することを検出する所定値検出手段と、
前記データ群内に存在する前記所定の値を他の値に変換する所定値変換手段と、
前記データ群内の所望の位置に前記所定の値を有するデータを存在させる所定値挿入手段と、
を有する画像符号化装置。
【請求項５】
前記データ群内の前記所望の位置は、複数の画素からなる画素ブロックを形成するためのサブデータ群の境界を示す位置である請求項４記載の画像符号化装置。
【請求項６】
前記データ群内の前記所望の位置に存在させられた前記所定の値を画像復号時に自動的に消去するためのデータを、前記データ群内に含ませる請求項４又は５記載の画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化方法及び画像符号化装置に関する。
【背景技術】
【０００２】
特許文献１には、符号化データの境目が検出されるごとに、その処理単位画像の符号化データの開始位置の位置情報と終了位置の位置情報とを記憶し、記憶されている位置情報に基づいて、位置情報に対応する境界位置を特定する圧縮画像データの抽出方法が開示されている。
【０００３】
この特許文献１に開示された技術では、圧縮画像データから所望の部分画像の符号化データを抽出することを目的として、その部分画像の境界が特定できる位置情報を別途記憶しておいて利用するものである。
【特許文献１】特開平１０−２１５３６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、画像符号化を好適に実行できる方法を実現することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために本発明にあっては、以下の構成を採用する。すなわち、
一連のデータ列によって構成されるデータ群内に所定の値を有するデータが存在することを検出するステップと、
前記データ群内に存在する前記所定の値を他の値に変換するステップと、
前記データ群内の所望の位置に前記所定の値を有するデータを存在させるステップと、を有する画像符号化方法である。
【０００６】
また、
一連のデータ列によって構成されるデータ群内に所定の値を有するデータが存在することを検出する所定値検出手段と、
前記データ群内に存在する前記所定の値を他の値に変換する所定値変換手段と、
前記データ群内の所望の位置に前記所定の値を有するデータを存在させる所定値挿入手段と、
を有する画像符号化装置である。
【発明の効果】
【０００７】
本発明によると、画像符号化を好適に実行することができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施形態について説明する。
【０００９】
本発明の画像符号化方法及び画像符号化装置は、デジタル画像を符号化する符号化方法及び装置に関するものである。特に、JPEG（Joint Photographic Experts Group）と呼ばれる静止画像の符号化においては、通常の符号化で境界位置の特定を特定するような符号化ができないという点から、本発明が適用される好ましい形態である。
【００１０】
本発明の実施形態について、JPEG画像に適用する場合を例に挙げ、図１を用いて以下に具体的に説明する。
【００１１】
図１は、JPEG画像の符号化器（画像符号化装置）の概要を示すブロック図である。まず、JPEG画像の符号化方法の概要について、図１を用いて簡単に説明する。
【００１２】
ＤＣＴ処理部１０５は、入力される入力画像１０８に対し、ＤＣＴ（Discrete Cosine Transform、離散コサイン変換）を施して空間領域から周波数領域へ変換する箇所である
。入力画像１０８は、図２で示すように、輝度Ｙおよび色差Ｃｂ、色差Ｃｒごとに８×８画素のブロックを単位に分割される。そして、それぞれのブロックに対してＤＣＴ変換処理が実施される。
【００１３】
量子化処理部１０６は、ＤＣＴ処理部１０５によってＤＣＴ変換された画素値に対し、ＤＣＴ処理部１０５と同じく８×８画素のブロック単位で量子化処理を実施する箇所である。量子化とは、８×８画素ブロック内の各画素に対する除算演算である。除算に使用する係数の集合を量子化テーブルとよび、８×８画素ブロックのそれぞれの画素値に対して個別に値が設定され、テーブル化されている。この量子化テーブルは、輝度および色差ごとに設定可能であり、また、符号化画像ごとにテーブルを変更することが可能となっている。
【００１４】
エントロピー符号化部１０７は、量子化処理部１０６により量子化された画素値に対し、エントロピー符号化を実施する箇所である。エントロピー符号化は、例えばハフマン符号化や算術符号化などであるが、一般的なJPEG画像に関してはハフマン符号化が利用されている。ここで、JPEG画像におけるハフマン符号化処理について、図３を用いて簡単に説明する。
【００１５】
ハフマン符号化処理は量子化された画素ごとに実施される。また、量子化された画素は８×８画素の二次元ブロック単位で構成されているため、左上からジグザグに一次元化され、符号化処理が実施される。
【００１６】
まず、Ｓ３０１に示すステップにより、ハフマン符号化する対象画素の前に連なるゼロの数（以下ラン）を計測する。図３に示した例においては“ラン＝４”である。次に、Ｓ３０２に示すステップにより、符号化する対象画素値を表現するために必要なビット数（以下カテゴリ）を算出する。図３に示した例においては、符号化を行う対象画素値が“５”であるため、必要なカテゴリは“３”となる。そして、Ｓ３０３に示すステップにより、カテゴリとランから一意に決定されるハフマンコードが符号化データとして出力される。図３に示すハフマンコード“１１１１１１１１１００１０１１０”は一例であり、ハフマンコードは符号化画像ごとに異なるコードを設定することが可能となっている。最後にＳ３０４で示すステップにより、符号化対象画素の値を示すビット列が出力される。図３に示す例においては、符号化対象画素“５”を示すビット列“１０１”が出力される。
【００１７】
以上説明したハフマン符号化処理により、図１において、エントロピー符号化部１０７から符号化画像（一連のデータ列によって構成されるデータ群）１０９が出力される。以上がJPEGの符号化方法の概要である。
【００１８】
次に、本発明の構成要件について、図１を用いて説明をする。図１において、所定値検出手段としての符号化コード検出部１０１は、エントロピー符号化部１０７より入力される符号化されたコード（符号化画像）について、特定の符号化コード（所定の値を有するデータ）が含まれるかどうかを検出する箇所である。ここで、特定の符号化コードとは、所定値挿入手段としての境界コード挿入部１０３により挿入される、境界を特定するための符号化コードなどである。
【００１９】
符号化コード検出部１０１において実施される符号化コード検出方法は、エントロピー符号化部１０７より入力されるビット列に対して、特定の符号化コードとのビット比較を行い、特定の符号化コードを検出する方法が考えられる。また、符号化コードを検出するタイミングは、画素が符号化される度に実施する方法、一つの画素ブロックが符号化されるたびに実施する方法、一つの画像すべて符号化された後に実施する方法などがある。特に、画素単位で検出する方法は、符号化データを一時蓄積する容量を節約できる点から好ましいといえる。ただし、隣接する画素間での組み合わせにより特定の符号化コードが形成される場合もあるため、画素ごとに比較する場合においても、隣接する画素と連結した符号化データ列で検出を実施する必要がある。
【００２０】
また、特定の符号化コードをバイトアラインされた状態で挿入する場合、バイトアラインされていない特定の符号化コードが検出された場合は、これを無視してもよい。
【００２１】
所定値変換手段としての符号化コード変換部１０２は、符号化コード検出部１０１において検出された特定の符号化コードを、特定の符号化コードとは異なる他の符号化コードに変換する変換処理部である。符号化コードを変換する方法としては、符号化コードを直接変換する方法と、エントロピー符号化部１０７によって符号化される前の状態において変換する方法などがある。特に、符号化コードを直接変換する方法は、再度エントロピー符号化部１０７によって符号化する処理を省くことが可能となるため、処理効率の観点から好ましい方法である。また、変換する符号化コードは、上記図３を用いて説明したハフマン符号化方法のとおり、ハフマンコードと、符号化対象画素値によって構成されている。したがって、変換する符号化コードとしては、ハフマンコードと符号化対象画素値とを含んだ符号化コード全体、符号化対象画素値のみ、などとなる。この中で、変換後の画像の、画質に与える影響の大きさから、符号化対象画素値のみ、であることが好ましいといえる。
【００２２】
符号化コードの変換における、前記好ましい例である符号化対象画素値のみの変換では、元の画像への影響を極力なくすために、符号化対象画素値の下位のビット変換にとどめることが好ましい。
【００２３】
境界コード挿入部１０３は、ブロック境界など、特定の位置を検出するための特定の符号化コードを挿入する処理部である。境界コード挿入部１０３において挿入される特定の符号化コードは、符号化する画素の一部を変更して挿入される。したがって、変更された画素は、本来符号化される画素とは異なるものとなり、画質劣化をもたらす。この画質劣化を抑制するため、復号処理の過程で、挿入された符号化コードを消去（０クリアなど）する処理が必要となる。
【００２４】
特定の符号化コードを挿入する位置は、複数個の画素の終了位置、ブロック終了位置、ＭＣＵ（Minimum Coded Unit、最小符号化単位）終了位置、などである。この中で特に、ブロック終了位置への特定の符号化コードの挿入が最も好ましいといえる。JPEGの符号化方法では、ブロック境界を特定するためのマーカコードが用意されていない。そのため、図４に示すように、JPEG符号化画像の復号過程において、ブロックの復号途中で処理を打ち切り、次のブロックの復号処理を開始するということができないという課題がある。図４は、隣接するブロック（輝度Ｙおよび色差Ｃｂ）について、ハフマン復号の順序を矢印で示した図である。輝度Ｙのブロックにおいて、グレー部分の復号を終了した後、色差Ｃｂの先頭の復号を開始するためには、色差Ｃｂの先頭位置を特定する必要がある。しかし、JPEG符号化画像においては、これを特定するために、輝度Ｙブロックのすべての画素を復号した後でないと色差Ｃｂのブロックの先頭を特定できない。そこで、前記好ましい場合として示したとおり、ブロックの終了位置に特定の符号化コードを挿入する。この特定の符号化コードがブロック境界に挿入されたJPEG画像においては、特定の符号化コードの
検出により、ブロックの境界を特定可能となる。
【００２５】
また、ブロックの終了位置に挿入する他の観点からの利点としては、特定の符号化コードを挿入することによって引き起こされる画質劣化を、極力抑えることが可能となる点がある。ブロックの終了位置は、量子化後の画素としては高周波成分領域にあたり、比較的画質への影響が少ない画素である。よって、例えば、図４に示すようにブロックの最後の位置（６３番目）に特定の符号化コードを挿入し、復号処理の過程でこれを消去（０クリア）した場合においても、復号後の画素値への影響は小さくなる。以上の点から、ブロックの終了位置に特定の符号化コードを挿入することが最も好ましいといえる。
【００２６】
特定の符号化コードを挿入するビット位置については、バイトアラインされた位置に挿入する、バイトアラインを気にしないで挿入する、などが考えられる。バイトアラインされた位置に挿入する場合、バイトアラインをするためにビットを挿入しなければならず、符号化データが多少増加する課題がある。しかし、特定の符号化コードを検出する時の処理効率と、バイトアラインという制約を設けることによる、符号化画像内での特定の符号化コード発生率の低下を考慮すると、バイトアラインされた位置への挿入が好ましいといえる。
【００２７】
バイトアラインされた位置へ挿入する方式を採用した場合、符号化コード検出部１０１において検出する、特定の符号化コードは、バイトアラインされた状態のものと限定できる。バイトの先頭から始まらない特定の符号化コードについては、符号化コード検出部１０１において検出する必要はない。
【００２８】
特定の符号化コードをバイトアラインされた位置へ挿入する方法の例を、図５を用いて説明する。図５はJPEG規格書（JISX4301：連続階調静止画像のデジタル圧縮及び符号処理）に記載の、典型的なハフマンコード表について説明をしたものである。これ以外のハフマンコード表を利用する場合においても同様のことが可能である。
【００２９】
図５（ａ）に示すように、特定の符号化コードは、ブロックの終了位置（６３番目の係数位置）に挿入されるが、バイトアラインするために隣接する左の画素値と上の画素値も同時に利用する。このため、復号処理の過程において、消去しなければならない画素は、ブロックの終了位置の画素（６３番目）だけでなく、その隣の画素（６２番目）と上の画素（６１番目）の三画素となる。
【００３０】
はじめに、６１番目の画素に１を挿入しておき、６２番目の画素のゼロランを０に固定する。そして、検出用の特定の符号化コードを６３番目の画素に挿入する。図５（ａ）においては、検出用の特定の符号化コードとして、“１０１０１０１０１０（６８２）”を使用している。そして、６１番目の画素の符号化を終了した時点でのビット位置のずれを吸収することを目的とするような、６２番目の画素の符号化を行う。
【００３１】
図５の（ｂ）では、ビット位置のずれが０の場合を説明している。ビットのずれが０の場合、８ビットの符号化コードを挿入すればよい。したがって、（ｂ）のように、ハフマンコード４ビット、カテゴリ４の符号化コード（合計長８）を挿入する。これにより、特定の符号化コードの先頭がバイトアラインに保たれる。
【００３２】
図５の（ｃ）では、ビット位置のずれが７の場合を説明している。ずれを吸収するため、ハフマンコード８ビット、カテゴリ７の符号化コード（合計長１５）を挿入する。（ｃ）に示すとおり、７ビットのずれを吸収し、特定の符号化コードの先頭をバイトアラインすることが可能となる。
【００３３】
図５の（ｄ）の表では、ビット操作しなければならない値ごとに、挿入すべき符号化コードを示している。これらの符号化コードを６２番目の係数の符号化コードとして使用することで、検出用の特定の符号化コードをバイトアラインすることが可能となる。なお、図５で示した符号化コードは一例であり、その他の符号化コードを利用してバイトアライン処理を実施することも可能である。
【００３４】
また、図１の境界コード挿入部１０３において挿入される特定の符号化コードは、上記説明したとおり、復号の過程で消去される必要がある。特定の符号化コードに対してそのまま復号処理を施してしまうと、特定の符号化コードが異常値として復号され劣悪な画質低下を招くからである。特定の符号化コードの挿入方法としては、挿入された特定の符号化コード値を復号時に意識して消去する方法、自動で消去されるように挿入する方法などがある。特に、挿入された特定の符号化コードが復号処理の過程で自動的に消去されるように挿入する方法が、復号処理における簡易性の側面から好ましいといえる。
【００３５】
図６を用いて、復号処理過程において、特定の符号化コードを自動に消去されるように挿入する方法について説明する。この方法は厳密にはJPEG規格書から逸脱したものである。
【００３６】
図６では、JPEGの復号処理過程について示している。JPEGの復号処理は、図６（ａ）のように、図１を用いて説明したJPEGの符号化処理方法の手順を逆に実施することで実現される。まず、エントロピー復号処理６０１が符号化コードに対して行われる。ハフマン復号処理後は図６の（ｂ）に示すような状態となる。図６の（ｂ）は復号されたブロックの一部（右下部分）を示すものである。エントロピー復号処理６０１の後、逆量子化処理６０２が実施される。そしてＩＤＣＴ処理６０３により、画素の復号（復元）が終了する。
【００３７】
特定の符号化コードの自動消去方法は、このJPEGの復号処理過程における、逆量子化処理６０２を利用して行われる。逆量子化処理６０２は、エントロピー復号処理６０１後の画素に対して乗算を行う処理である。乗算はＪＰＥＧの符号化処理過程における量子化処理（除算）で利用した量子化テーブルを用いて実施される。ここで、図６の（ｂ）において、右下の三つの画素は復号処理の過程で消去しなければならない画素であるとする。これを逆量子化処理６０２において消去するためには、図６の（ｃ）に示すように、三つの画素に対応する量子化テーブル値を０とすればよい。乗算処理であるため、０の乗算後は、図６の（ｄ）に示すように０にクリアされる。
【００３８】
量子化テーブルにおいて、消去すべき画素に対応するテーブル値を変換する箇所が、図１における量子化係数変換部１０４である。量子化係数変換部１０４は、符号化処理時において、画像復号化処理時の消去すべき画素に対応するテーブル値を０とするように、量子化に利用した量子化テーブルの一部を変換する。変換された量子化テーブルは、JPEG符号化画像の一部として送出される。
【００３９】
好ましい変換方法としては、特定の符号化コードを消去するために０を挿入する方法である。もしくは、適当な値に変換しておき、その値が発生した箇所の符号化係数を、復号側で意図的に消去する方法などもある。
【００４０】
その他、特定の符号化コードの選択方法としては、利用するハフマンテーブルに存在し得ない特定の符号化コードの選択、ハフマンテーブルに存在し得る特定の符号化コードの選択などであるが、図１の符号化コード変換部１０２における処理の容易性の側面から、ハフマンテーブルに存在し得ない特定の符号化コードの選択が好ましい。特定の符号化コードが、ハフマンコードに存在し得る場合、符号化コード変換部１０２において、ハフマンコードの変換（ランとカテゴリの変換）を実施しなければならない可能性が生じるから
である。
【実施例１】
【００４１】
以下、具体的な実施例を挙げて、本発明を詳しく説明する。
【００４２】
本実施例は、図１に示されるJPEG符号化画像の符号化処理に適用した例である。適用条件として、特定の符号化コードはブロック境界にバイトアラインして挿入するものとする。ブロック境界への特定の符号化コードの挿入方法は、図５で説明した方法により実施する。JPEG符号処理において利用する、ハフマンテーブルは、JPEG規格書（JISX4301：連続階調静止画像のデジタル圧縮及び符号処理）記載の典型的なハフマンコード表を使用することとする。
【００４３】
以下、本実施例を、図７に示すフローチャートによって説明する。はじめに、図７のステップＳ７０１において、境界検出用符号化コード（以下、BORDER_CODE）を決定する。
本実施例では、図５で示した値“１０１０１０１０１０（６８２）”をBORDER_CODEと決
定する。このBORDER_CODEは使用するハフマンコード表においては存在しないビット列で
ある。
【００４４】
次のステップＳ７０２より、JPEG画像の符号化処理が開始される。ステップＳ７０２において、ブロックのＤＣＴ処理が実施される。これは、図１におけるＤＣＴ処理部１０５で処理されるステップである。
【００４５】
その後、ステップＳ７０３により、８×８画素ブロックの量子化処理が実施される。これは、図１における量子化処理部１０６で処理されるステップである。量子化処理で利用される量子化テーブルは、図１の量子化係数変換部１０４で変換される前の量子化テーブルである。
【００４６】
ステップＳ７０４により、ＤＣＴ係数（量子化された後の画素値）のハフマン符号化が行われる。このとき、ハフマン符号化後の符号化コードに対し、その前後の符号化コードとともに、ステップＳ７０５においてハフマン符号化コードがBORDER_CODEを含むか含ま
ないかを判定する。この判定は、図１における符号化コード検出部１０１において実施される。本実施例においては、BORDER_CODEをバイトアラインして挿入するため、バイトア
ラインされていないBORDER_CODEが検出された場合は無視する。
【００４７】
バイトアラインされたBORDER_CODEを含む場合、ステップＳ７０６において、ＤＣＴ符
号化係数値の変換を実施し、BORDER_CODEを含まない形式とする。この処理は、図１にお
ける符号化コード変換部１０２において実施される。ここで、BORDER_CODEを含まない形
式とするために、実施形態で述べた、符号化対象画素値のみの変換とする。例えば、実際の符号化画素値に“６８２”という画素値が存在した場合は、これを“６８３”などに変換して、BORDER_CODEの発生を防ぐ。
【００４８】
ステップＳ７０７で、ブロックの境界を判定する。本実施例では、BORDER_CODE挿入の
ために、図５に示すように、ブロックの終了側からの三画素を利用する。したがって、ブロックの終了側より四画素目（ブロックの先頭から６０番目の画素）の符号化が終了した時点でブロックの境界であると判定する。
【００４９】
ステップＳ７０７でブロックの境界を判定した場合、ステップＳ７０８でBORDER_CODE
の挿入を行う。これは図１における、境界コード挿入部１０３で実施される。BORDER_CODEの挿入方法は、前記実施形態で図５を用いて説明したとおりであり、ビット位置のずれ
によって挿入する符号化コードを変化させて、バイトアラインされた状態で挿入（置換）
する。
【００５０】
ステップＳ７０９で入力画像内全てのブロックの符号化処理が終了したことを判定し、終了していない場合は、ステップＳ７０２からステップＳ７０８までの処理を繰り返し実行する。
【００５１】
なお、本実施例では、JPEG画像の復号処理の過程でBORDER_CODEを消去する方法を採用
するため、ステップＳ７０９においてさらに、量子化テーブルの変換を実施する。変換は各符号化ブロックに挿入されたBORDER_CODEに対応する、量子化テーブル内の終了側から
の三係数を０に変換する（図５（ｂ）参照）。そして変換された量子化テーブルを含む、JPEG画像のヘッダ部分と、ステップＳ７０２からステップＳ７０８により符号化された符号化コードとにより、JPEG符号化画像が作成される。
【００５２】
以上の説明により作成されたJPEG符号化画像には、ブロックの境界を特定可能なBORDER_CODEが含まれたものとなっている。このため、JPEG符号化画像だけからJPEG符号化画像
の境界を特定することができる。したがって、JPEG符号化画像だけのデータを用いた復号処理の過程において、どのような位置からでもブロックの終了位置を特定することが実現できる。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施形態に係る符号化器を表すブロック図である。
【図２】JPEG符号化処理における符号化単位であるブロックについての図である。
【図３】JPEG符号化処理におけるハフマン符号化の手順を説明する図である。
【図４】JPEG復号処理における課題を説明するための図である。
【図５】本発明の実施形態に係るバイトアラインされた符号化コードを挿入する方法を説明する図である。
【図６】本発明の実施形態に係る復号の過程で符号化コードを消去する方法を示す図である。
【図７】本発明の実施例を説明するためのフローチャートである。
【符号の説明】
【００５４】
１０１ 符号化コード検出部
１０２ 符号化コード変換部
１０３ 境界コード挿入部
１０４ 量子化係数変換部
１０５ ＤＣＴ処理部
１０６ 量子化処理部
１０７ エントロピー符号化部
１０８ 入力画像
１０９ 符号化画像
６０１ エントロピー復号処理
６０２ 逆量子化処理
６０３ ＩＤＣＴ処理
【図１】
2006295683.tif 000003
【図２】
2006295683.tif 000004
【図３】
2006295683.tif 000005
【図４】
2006295683.tif 000006
【図５】
2006295683.tif 000007
【図６】
2006295683.tif 000008
【図７】
2006295683.tif 000009