(57)【特許請求の範囲】
【請求項１】
入力画像データを所定のブロツク単位毎に離散コサイン変換する演算手段と、
上記演算手段より出力された結果である注目ブロツク及び当該注目ブロツクに隣接するブロツクとの境界部分において上記ブロツク間の境界線を挟んで隣接する画素の画素値同士の差分の絶対値を上記境界部分毎に加算した和が所定しきい値未満である場合、上記注目ブロツク及び上記隣接するブロツクにそれぞれ所定の重み付け係数を乗算して加算することにより重み付き平均を算出する重み付き平均手段と、
上記重み付き平均手段より出力された平均ブロツクを量子化する量子化手段と、
上記量子化手段より出力された量子化ブロツクを符号化する符号化手段と
を具えることを特徴とする符号化装置。
【請求項２】
上記重み付き平均手段は、
上記注目ブロツクと上記複数の隣接するブロツクにそれぞれに異なつた重み付き係数を加えて演算する
ことを特徴とする請求項１に記載の符号化装置。
【請求項３】
入力画像データを所定のブロツク単位毎に離散コサイン変換する演算ステツプと、
上記演算ステツプより出力された結果である注目ブロツク及び当該注目ブロツクに隣接するブロツクとの境界部分において上記ブロツク間の境界線を挟んで隣接する画素の画素値同士の差分の絶対値を上記境界部分毎に加算した和が所定しきい値未満である場合、上記注目ブロツク及び上記隣接するブロツクにそれぞれ所定の重み付け係数を乗算して加算することにより重み付き平均を算出する重み付き平均ステツプと、
上記重み付き平均ステツプより出力された平均ブロツクを量子化する量子化ステツプと、
上記量子化ステツプより出力された量子化ブロツクを符号化する符号化ステツプと
を具えることを特徴とする符号化方法。
【発明の詳細な説明】
【０００１】
【目次】
以下の順序で本発明を説明する。
発明の属する技術分野
従来の技術（図１２〜図２０）
発明が解決しようとする課題
課題を解決するための手段
発明の実施の形態（図１〜図１１）
発明の効果
【０００２】
【発明の属する技術分野】
本発明は符号化装置及び符号化方法に関し、例えば画像データ等のデイジタルデータを圧縮符号化処理する符号化装置及び符号化方法に適用して好適なものである。
【０００３】
【従来の技術】
従来、画像データ等は、そのデータサイズが非常に大きなものであるため、そのままの状態では記録及び伝送する上で適さないものであつた。そのため、このような画像データ等は圧縮符号化処理を施して全体のデータサイズを縮小したデイジタルデータに変換した上で記録又は伝送するようになされている。
現在、このような画像圧縮方式として代表的なものにＭＰＥＧ（Moving Picture Experts Group）１方式及びＭＰＥＧ２方式がある。ＭＰＥＧ１方式及びＭＰＥＧ２方式はＩＳＯ（International Organization for Standardization、国際標準化機構）により提案された画像圧縮方式であり、詳細はＩＳＯ／ＩＥＣ11172-2 、ＩＳＯ／ＩＥＣ13818-2 に述べられている。
【０００４】
ここで図１２を用いて上述した画像圧縮方式について説明する。図１２において、１及び２はそれぞれ符号化装置、復号化装置を示す。符号化装置１は入力されるデイジタルデータでなる入力画像データＳ１を離散コサイン変換部３に供給する。離散コサイン変換部３は入力画像データＳ１を１フレーム単位毎に処理し、まず当該１フレームを８画素×８画素のブロツクに分割する。離散コサイン変換部３は当該各ブロツク毎に
【数１】
0004209954.tif 000002
に示す離散コサイン変換（Discrete Cosine Transform ）のための演算処理を施すことで、８画素×８画素のブロツク内の各画素値を周波数空間上のデータに変換する。離散コサイン変換部３は、こうした処理により入力画像データＳ１からＤＣＴデータＳ２を生成する。
【０００５】
離散コサイン変換部３はＤＣＴデータＳ２を量子化部４に供給する。量子化部４はＤＣＴデータＳ２に量子化処理を施して圧縮符号化データＳ３を生成する。具体的にＤＣＴデータＳ２はｉ行ｊ列（ｉ、ｊは０〜７）の行列式で表すことができ、各ｉ行ｊ列目のデータをＤｉｊで表現することができる。量子化部４はこのような各Ｄｉｊでなる成分毎に対応する重み係数ＱＳｉｊで各成分を割り算する。
また量子化部４は、このように量子化処理により得られる値に整数化処理（いわゆる丸め処理）を施す。すなわち量子化により得られる値は小数部分を含む値となつているため、量子化部４はこれらの値でなる各成分を例えば四捨五入することで整数化処理（丸め処理）を行い、圧縮符号化データＳ３を生成する。
符号化装置１は、こうして得られた圧縮符号化データＳ３に可変長符号化処理等を施して（図示せず）、復号化装置２に対して送出する。
【０００６】
復号化装置２は符号化装置１から与えられる圧縮符号化データＳ３を入力して、まず可変長復号化処理を行う（図示せず）。復号化装置２は、可変長復号化がなされた圧縮符号化データＳ３を逆量子化部５に与える。
逆量子化部５は圧縮符号化データＳ３に逆量子化処理を施す。具体的に逆量子化部５は、圧縮符号化データＳ３の各成分毎に上述した重み係数ＱＳｉｊを掛け算する。逆量子化部５は、こうして得られた逆量子化データＳ４を逆離散コサイン変換部６に供給する。逆離散コサイン変換部６は逆量子化データＳ４に
【数２】
0004209954.tif 000003
に示す逆離散コサイン変換（ＩＤＣＴ）のための演算処理を施すことで、上述した８画素×８画素でなる各ブロツクを復元する。逆離散コサイン変換部６は、こうして得られる出力画像データＳ５を出力する。
【０００７】
このように符号化装置１は離散コサイン変換、量子化処理及び整数化処理を施すことにより入力画像データＳ１を圧縮符号化した圧縮符号化データＳ３を得ることができ、また復号化装置２は逆量子化処理及び逆離散コサイン変換を施すことにより、圧縮符号化データＳ３を復号処理して出力画像データＳ５を得ることができる。なお、一般的には、量子化処理及び整数化処理の２つの処理を合わせて量子化処理と呼ぶことが多い。
【０００８】
ここでこうした符号化処理により圧縮符号化され、復号化によつて復元される画像データにはブロツク歪みが生じる場合がある。以下にブロツク歪みについて説明する。
符号化装置１及び復号化装置２では、量子化部３で重み係数ＱＳｉｊを用いてＤＣＴデータＳ２の各成分を除算して得られる値に丸め処理を施し、これにより生成される圧縮符号化データＳ３に重み係数ＱＳｉｊを乗算して逆量子化している。このため逆量子化により得られる逆量子化データＳ４には誤差が含まれていることになる。
【０００９】
すなわち量子化部４では、量子化処理の際に小数部分が含まれた値でなる各成分を四捨五入して整数化（すなわち丸め処理）しており、この小数部分を切り上げるか切り捨てるかに応じて正の誤差又は負の誤差が生じることになる。例えば画素値が0.4 でなる画素部分の場合、整数化によつて画像データが０となる。従つて、こうして整数化された画像データを復元した場合、このような値である画素部分は元々画素値が０であつた場合と同様のものとなる。このため、こうした整数化がなされた圧縮符号化データＳ４を復元して得られる画像には誤差が含まれることになり、上述した画素部分は0.4 でなる画素値を有していたにも係わらず、復元されないことになる。
【００１０】
図１３（Ａ）に示すように、１次元上に示す画像データを画像圧縮処理した場合、離散コサイン変換により当該画像データは８個単位でなる第１及び第２のブロツクに分割される。こうした画像データに整数化処理を行つた場合、第１のブロツクに負の誤差が生じ、また第２のブロツクに正の誤差が生じたとする。
図１３（Ｂ）に示すように、こうした誤差が各々生じた第１及び第２のブロツクを復元した場合、第１のブロツクの画像データは元の（すなわち原画像の）データに比して小さい値となり、また第２のブロツクの画像データは元のデータに比して大きな値となる。このため、第１及び第２のブロツクの境界部分には段差状の歪みが生じる。こうした歪みは２次元でなる画像データの場合にも言え、一般にブロツク歪みと呼ばれる。
【００１１】
図１４は２次元上に示す比較的単調な画像データを形成する８画素×８画素のブロツクＡ及びＢを示しており、上下方向が各画素データの値の大きさを示している。ここではブロツクＡ及びＢは図中に示す水平方向に隣接しており、奥側のブロツクＡが符号化処理対象となつているブロツクを、また手前側のブロツクＢがブロツクＡの一つ左側に隣接したブロツクを各々示している。また図１４との対応部分に同一符号を付して示す図１５は、上述したブロツクＡ及びＢを離散コサイン変換したことで得られる、周波数空間上でのデータである。
図１４に示すように、ブロツクＡ及びＢは水平方向に対してほぼ一定の値となつており、比較的滑らかな画像を形成している。このようなブロツクＡ及びＢを離散コサイン変換して得られる周波数空間上のデータは横方向の周波数成分、すなわちｉ行ｊ列でなるブロツク内で各成分をＤｉｊで表した場合のｉが０〜７かつｊが１〜７でなる部分、がほぼ０となる（図１５）。
【００１２】
図１６は１行０列の成分を示し、また図１７は２行０列でなる成分を示している。ブロツクＢ（図１４）は直流（ＤＣ）成分、１行０列の成分及び２行０列でなる成分でほぼ表すことができ、ｉが３〜７かつｊが０でなるようなその他の成分はほぼ０となる。ブロツクＢでは１行０列の成分に比して２行０列の成分が多く含まれているため、２行０列の成分である「１５」の方が１行０列の成分である「８」に比して値が大きくなつている（図１５）。ちなみに直流成分は「ＤＣ１」で示している。
【００１３】
一方、ブロツクＡ（図１４）も直流（ＤＣ）成分、１行０列の成分及び２行０列でなる成分でほぼ表すことができ、ｉが３〜７かつｊが０でなるようなその他の成分はほぼ０となる。ブロツクＡでは２行０列の成分に比して１行０列の成分が多く含まれているため、１行０列の成分である「１３」の方が２行０列の成分である「９」に比して値が大きくなつている。ちなみに直流成分は「ＤＣ２」で示している。
【００１４】
図１８に示すように、こうした離散コサイン変換により得られた周波数空間上のデータに対して重み係数を２０として量子化を行つた場合、直流成分を除く各成分は２０で割られた後、四捨五入されるので、ブロツクＢでは１行０列の成分である「８」が「０」となり、２行０列の成分である「１５」が「１」となる。またブロツクＡでは１行０列の成分である「１３」が「１」となり、２行０列の成分である「９」が「０」になる。ブロツクＡ及びＢの直流成分であるＤＣ１及びＤＣ２は重み係数を１として量子化がなされるため、そのままの値となる。またｉが３〜７かつｊが０でなるような成分、及び、ｉが０〜７かつｊが１〜７でなるような成分については、ほぼ０である値であるために量子化処理によつて各成分が「０」となる。
【００１５】
また図１９に示すように、このような量子化がなされたブロツクＡ及びＢを逆量子化した場合、すなわち各成分に対して上述した重み係数を乗算した場合、ブロツクＢでは１行０列の成分である「０」が「０」となり、２行０列の成分である「１」が「２０」となる。またブロツクＡでは１行０列の成分である「１」が「２０」となり、２行０列の成分である「０」が「０」になる。ブロツクＡ及びＢの直流成分であるＤＣ１及びＤＣ２は、そのままの値となる。またｉが３〜７かつｊが０でなるような成分、及び、ｉが０〜７かつｊが１〜７でなるような成分は「０」となる。
【００１６】
図２０に示すように、こうして逆量子化がなされたデータに対して逆離散コサイン変換を施して画像データを復元した場合、ブロツクＢは図中に示す垂直方向の中央部分が凹んだ画素値の状態となり、またブロツクＡは図中に示す垂直方向の一方にいくほど画素値が低くなる状態となる。したがつて符号化前のようにブロツク間が比較的滑らかである状態（図１４）に比して、ブロツク間の境界部分の画素値に段差状の差分（すなわちブロツク歪み）が生じる。
【００１７】
【発明が解決しようとする課題】
ところでかかる構成の符号化装置１及び復号化装置２においては、上述したように量子化の際の丸め処理により生じる誤差によつて、復元した画像データの８画素×８画素でなるブロツクと隣接する他のブロツクとの境界部分でブロツク歪みが生じる場合がある。このため圧縮符号化がなされた画像データを復号化して得られる復元画像では、ブロツク歪みを含んでいるために見にくい画像となつているという問題がある。
【００１８】
本発明は以上の点を考慮してなされたもので、ブロツク歪みを低減し得る符号化装置及び符号化方法を提案しようとするものである。
【００１９】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、入力画像データを所定のブロツク単位毎に離散コサイン変換する演算手段と、上記演算手段より出力された結果である注目ブロツク及び当該注目ブロツクに隣接するブロツクとの境界部分において上記ブロツク間の境界線を挟んで隣接する画素の画素値同士の差分の絶対値を上記境界部分毎に加算した和が所定しきい値未満である場合、上記注目ブロツク及び上記隣接するブロツクにそれぞれ所定の重み付け係数を乗算して加算することにより重み付き平均を算出する重み付き平均手段と、上記重み付き平均手段より出力された平均ブロツクを量子化する量子化手段と、上記量子化手段より出力された量子化ブロツクを符号化する符号化手段とを設けるようにした。
【００２０】
注目ブロツク及び隣接するブロツクの境界部分における画素値の差分の和が小さいことから画像が滑らかであると見なすことができる場合、注目ブロツクと当該注目ブロツクに隣接する複数のブロツクとの重み付け平均によつて新たな平均ブロツクを生成することにより、注目ブロツクの値を平均化した平均ブロツクと注目ブロツクに隣接するブロツクとの差分値を減少させることができ、平均ブロツク及び隣接ブロツクから復元する画像の境界部分を滑らかにすることができる。
【００２１】
【発明の実施の形態】
以下図面について、本発明の一実施例を詳述する。
【００２２】
図１２との対応部分に同一符号を付して示す図１において、１０は全体として符号化装置を示し、入力ポート１１を介して入力画像データＳ１を入力する。ここで符号化装置１０は入力ポート１１、制御回路１２、メモリ１３、演算器１４、出力ポート１５及びバス１６からなり、制御回路１２から制御信号Ｓ６を送出して入力ポート１１を制御することにより入力画像データＳ１をバス１６を介してメモリ１３に１フレーム単位毎に格納する。因みに符号化装置１０はＣＰＵ装置でなり、各機能部がＩＣチツプ内に一体で収められた構成でなる。
【００２３】
制御回路１２はメモリ１３に制御信号Ｓ７を送出して、メモリ１３に格納した入力画像データＳ１をバス１６を介して、８画素×８画素のブロツク単位毎に演算器１４に供給する。こうして入力画像データＳ１を供給された演算器１４は、制御回路１２から与えられる制御信号Ｓ８に応じて、入力画像データＳ１に例えば離散コサイン変換及び量子化処理等の所望の演算処理を施して圧縮符号化データＳ３を生成する。ここで演算器１４は離散コサイン変換及び量子化処理した際の演算結果をメモリ１３に格納しておき、後述する重み付き平均をとる際に読み出すようになされている。符号化装置１０は、こうして生成した圧縮符号化データＳ３をバス１６、及び制御回路１２から制御信号Ｓ９を送出して制御する出力ポート１５を介して出力する。
【００２４】
符号化装置１０は上述した演算器１４による所望の演算処理を、図２〜図６に示して説明する処理手順にしたがつて行うようになされている。図２に示すように、符号化装置１０はステツプＳＰ１で手順を開始する。次に符号化装置１０は、ステツプＳＰ２で、メモリ１３（図１）に格納されている入力画像データＳ１から、符号化処理対象である８画素×８画素のブロツクを取り出して演算器１４（図１）に供給する。符号化装置１０は演算器１４によつて、ステツプＳＰ３で、取り出したブロツクに離散コサイン変換（以下、これをＤＣＴと呼ぶ）のための演算処理を施す。また符号化装置１０は、こうしてＤＣＴ処理により周波数空間上のデータに変換された８行８列でなる各成分をＤｉｊとする。なお、ここでｉ及びｊは各々０〜７でなる変数である。
【００２５】
続いて符号化装置１０は演算器１４によつて、ステツプＳＰ４で、８×８でなるブロツク内の各成分Ｄｉｊに対して量子化処理を行う。具体的には、まず演算器１４は各成分Ｄｉｊに応じた重み係数ＱＳｉｊによつてＤｉｊを除算する。演算器１４はこうして得られる値を四捨五入することによつて丸め処理（整数化処理）する。この結果をＱｉｊとする。
【００２６】
符号化装置１０は演算器１４によつて、ステツプＳＰ５で、ｊが０以外の場合でなるＱｉｊ、すなわち変数ｉが０〜７であると共に変数ｊが１〜７である場合のＱｉｊの値が０であるか否かを判別する。ｊが０以外のときのＱｉｊの値に１つでも０以外の値がある場合、符号化装置１０はステツプＳＰ６に処理をすすめる。
また符号化装置１０は演算器１４によつて、ステツプＳＰ６で、ｉが０以外の場合でなるＱｉｊ、すなわち変数ｉが１〜７であると共に変数ｊが０〜７である場合のＱｉｊの値が０であるか否かを判別する。ｉが０以外の場合のＱｉｊの値に１つでも０以外の値がある場合、符号化装置１０はステツプＳＰ７に処理をすすめる。
【００２７】
符号化装置１０はｉが０以外の場合のＱｉｊの値に１つでも０以外の値があり、かつｊが０以外の場合のＱｉｊの値に１つでも０以外の値がある場合、ステツプＳＰ７で、Ｑｉｊを量子化処理により得られた圧縮符号化データＳ３として出力し、ステツプＳＰ８で手順を完了する。なお、符号化装置１０は処理すべき次のブロツクが存在する場合、ステツプＳＰ１に戻つて処理手順を繰り返す。
【００２８】
一方、ステツプＳＰ５で、ｊが０以外のときのＱｉｊが全て０であることを判別した場合、符号化装置１０はステツプＳＰ５１にジヤンプして処理を行う。図３に示すように、符号化装置１０は演算器１４によつて、ステツプＳＰ５１で、符号化処理対象となつているブロツクの隣接ブロツクが所定条件を満たしているか否かを判別する。具体的に符号化装置１０は、まず符号化処理対象となつているブロツクの１つ左及び１つ右にブロツクが存在するか否かを検出する。左右にブロツクが存在する場合、符号化装置１０は次にこれらのブロツクが符号化済であるか否かを検出する。符号化済であつた場合、符号化装置１０は続いてこれらのブロツクのＱｉｊが、ｊが０以外のときに全て０であるか否かを検出する。さらに符号化装置１０はｊが０以外のときにＱｉｊが全て０である場合、左右のブロツクとの境界が滑らかであるか否かを判別する。なお、「滑らかである」という意味は後述する。符号化装置１０はこれらの条件を全て満たす場合にステツプＳＰ５２に処理を進める。
【００２９】
符号化装置１０は上述の条件が全て満たされている場合に演算器１４によつて、ステツプＳＰ５２で、これら左右のブロツクのＤｉｊの値を加味して符号化処理対象となつているブロツクのＤｉｊを変更する。具体的には処理対象となるブロツクのＤｉｊに0.8 を乗算した値に、左のブロツクのＤｉｊに0.1 を乗算した値及び右のブロツクのＤｉｊに0.1 を乗算した値を加算して新たなＤｉｊの値を算出する。但し、ここでＤｉｊの変数ｉは１〜７であり、またｊは０である。すなわちｊが０以外の成分部分は、このステツプに処理がすすんだ時点で全て０であることがわかつているため、これらの値は敢えて算出しない。またｉ及びｊが０の成分部分については当該ブロツクの直流成分であるため、もとの値のままとする。符号化装置１０は、このように左右のブロツクとの重み付き平均を用いて新たなＤｉｊの値を算出する。
【００３０】
符号化装置１０は演算器１４によつて、ステツプＳＰ５３で、新たに得られたＤｉｊに対して量子化処理を行う。具体的には、まず演算器１４は各成分Ｄｉｊに応じた重み係数ＱＳｉｊによつてＤｉｊを除算する。なお、ここでＤｉｊは変数ｉ及びｊが０〜７の全ての成分である。演算器１４はこうして得られる値を四捨五入することによつて丸め処理（整数化処理）する。この結果をＱｉｊとする。符号化装置１０は、こうしてＱｉｊが得られたらステツプＳＰ７にジヤンプしてＱｉｊを出力して手順を終了する。
【００３１】
またステツプＳＰ５１で所定の条件を１つでも満たさない場合、符号化装置１０はステツプＳＰ５４にジヤンプする。図４に示すように、符号化装置１０は演算器１４によつて、ステツプＳＰ５４で、符号化処理対象となつているブロツクの１つ左にブロツクが存在するか否か、またブロツクが存在する場合にそのブロツクが符号化済であるか否か、さらに符号化済である場合にそのブロツクのＱｉｊがｊが０以外のときに全て０であるか否か、またｊが０以外のときにＱｉｊが全て０である場合に左のブロツクと処理対象のブロツクとの境界が滑らかであるか否かを判別する。これらの条件を全て満たすことを判別した場合、符号化装置１０はステツプＳＰ５５に手順を進める。
【００３２】
符号化装置１０は上述の条件が全て満たされている場合に演算器１４によつて、ステツプＳＰ５５で、左側のブロツクのＤｉｊの値を加味して符号化処理対象となつているブロツクのＤｉｊを変更する。具体的には処理対象となるブロツクのＤｉｊに0.8 を乗算した値に、左のブロツクのＤｉｊに0.2 を乗算した値を加算して新たなＤｉｊの値を算出する。但し、ここでＤｉｊの変数ｉは１〜７であり、またｊは０である。すなわちｊが０以外の成分部分は、このステツプに処理がすすんだ時点で全て０であることがわかつているため、これらの値は敢えて算出しない。またｉ及びｊが０の成分部分については当該ブロツクの直流成分であるため、もとの値のままとする。符号化装置１０は、このように左のブロツクとの重み付き平均を用いて新たなＤｉｊを算出する。
【００３３】
符号化装置１０は演算器１４によつて、ステツプＳＰ５６で、新たに得られたＤｉｊに対して量子化処理を行う。具体的には、まず演算器１４は各成分Ｄｉｊに応じた重み係数ＱＳｉｊによつてＤｉｊを除算する。なお、ここでＤｉｊは変数ｉ及びｊが０〜７の全ての成分である。演算器１４はこうして得られる値を四捨五入することによつて丸め処理（整数化処理）する。この結果をＱｉｊとする。符号化装置１０は、こうしてＱｉｊが得られたらステツプＳＰ７にジヤンプしてＱｉｊを出力して手順を終了する。
【００３４】
またステツプＳＰ５４で所定の条件を１つでも満たさない場合、符号化装置１０はステツプＳＰ５７にジヤンプする。符号化装置１０は演算器１４によつて、ステツプＳＰ５７で、符号化処理対象となつているブロツクの１つ右にブロツクが存在するか否か、またブロツクが存在する場合にそのブロツクが符号化済であるか否か、さらに符号化済である場合にそのブロツクのＱｉｊがｊが０以外のときに全て０であるか否か、またｊが０以外のときにＱｉｊが全て０である場合に右のブロツクと処理対象のブロツクとの境界が滑らかであるか否かを判別する。これらの条件を全て満たすことを判別した場合、符号化装置１０はステツプＳＰ５８に手順を進める。また上述の条件を１つでも満たさない場合、符号化装置１０はステツプＳＰ６にジヤンプする。
【００３５】
符号化装置１０は上述の条件が全て満たされている場合に演算器１４によつて、ステツプＳＰ５８で、右側のブロツクのＤｉｊの値を加味して符号化処理対象となつているブロツクのＤｉｊを変更する。具体的には処理対象となるブロツクのＤｉｊに0.8 を乗算した値に、右のブロツクのＤｉｊに0.2 を乗算した値を加算して新たなＤｉｊの値を算出する。但し、ここでＤｉｊの変数ｉは１〜７であり、またｊは０である。すなわちｊが０以外の成分部分は、このステツプに処理がすすんだ時点で全て０であることがわかつているため、これらの値は敢えて算出しない。またｉ及びｊが０の成分部分については当該ブロツクの直流成分であるため、もとの値のままとする。符号化装置１０は、このように右のブロツクとの重み付き平均を用いて新たなＤｉｊを算出する。
【００３６】
符号化装置１０は演算器１４によつて、ステツプＳＰ５９で、新たに得られたＤｉｊに対して量子化処理を行う。具体的には、まず演算器１４は各成分Ｄｉｊに応じた重み係数ＱＳｉｊによつてＤｉｊを除算する。なお、ここでＤｉｊは変数ｉ及びｊが０〜７の全ての成分である。演算器１４はこうして得られる値を四捨五入することによつて丸め処理（整数化処理）する。この結果をＱｉｊとする。符号化装置１０は、こうしてＱｉｊが得られたらステツプＳＰ７にジヤンプしてＱｉｊを出力して手順を終了する。
【００３７】
また一方、ステツプＳＰ６で、ｉが０以外のときのＱｉｊが全て０であることを判別した場合、符号化装置１０はステツプＳＰ６１にジヤンプして処理を行う。図５に示すように、符号化装置１０は演算器１４によつて、ステツプＳＰ６１で、符号化処理対象となつているブロツクの隣接ブロツクが所定条件を満たしているか否かを判別する。具体的に符号化装置１０は、まず符号化処理対象となつているブロツクの１つ上及び１つ下にブロツクが存在するか否かを検出する。上下にブロツクが存在する場合、符号化装置１０は次にこれらのブロツクが符号化済であるか否かを検出する。符号化済であつた場合、符号化装置１０は続いてこれらのブロツクのＱｉｊが、ｉが０以外のときに全て０であるか否かを検出する。さらに符号化装置１０はｉが０以外のときにＱｉｊが全て０である場合、上下のブロツクとの境界が滑らかであるか否かを判別する。符号化装置１０はこれらの条件を全て満たす場合にステツプＳＰ６２に処理を進める。
【００３８】
符号化装置１０は上述の条件が全て満たされている場合に演算器１４によつて、ステツプＳＰ６２で、これら上下のブロツクのＤｉｊの値を加味して符号化処理対象となつているブロツクのＤｉｊを変更する。具体的には処理対象となるブロツクのＤｉｊに0.8 を乗算した値に、上のブロツクのＤｉｊに0.1 を乗算した値及び下のブロツクのＤｉｊに0.1 を乗算した値を加算して新たなＤｉｊの値を算出する。但し、ここでＤｉｊの変数ｊは１〜７であり、またｉは０である。すなわちｉが０以外の成分部分は、このステツプに処理がすすんだ時点で全て０であることがわかつているため、これらの値は敢えて算出しない。またｉ及びｊが０の成分部分については当該ブロツクの直流成分であるため、もとの値のままとする。符号化装置１０は、このように上下のブロツクとの重み付き平均を用いて新たなＤｉｊを算出する。
【００３９】
符号化装置１０は演算器１４によつて、ステツプＳＰ６３で、新たに得られたＤｉｊに対して量子化処理を行う。具体的には、まず演算器１４は各成分Ｄｉｊに応じた重み係数ＱＳｉｊによつてＤｉｊを除算する。なお、ここでＤｉｊは変数ｉ及びｊが０〜７の全ての成分である。演算器１４はこうして得られる値を四捨五入することによつて丸め処理（整数化処理）する。この結果をＱｉｊとする。符号化装置１０は、こうしてＱｉｊが得られたらステツプＳＰ７にジヤンプしてＱｉｊを出力して手順を終了する。
【００４０】
またステツプＳＰ６１で所定の条件を１つでも満たさない場合、符号化装置１０はステツプＳＰ６４にジヤンプする。図６に示すように、符号化装置１０は演算器１４によつて、ステツプＳＰ６４で、符号化処理対象となつているブロツクの１つ上にブロツクが存在するか否か、またブロツクが存在する場合にそのブロツクが符号化済であるか否か、さらに符号化済である場合にそのブロツクのＱｉｊがｉが０以外のときに全て０であるか否か、またｉが０以外のときにＱｉｊが全て０である場合に上のブロツクと処理対象のブロツクとの境界が滑らかであるか否かを判別する。これらの条件を全て満たすことを判別した場合、符号化装置１０はステツプＳＰ６５に手順を進める。
【００４１】
符号化装置１０は上述の条件が全て満たされている場合に演算器１４によつて、ステツプＳＰ６５で、上側のブロツクのＤｉｊの値を加味して符号化処理対象となつているブロツクのＤｉｊを変更する。具体的には処理対象となるブロツクのＤｉｊに0.8 を乗算した値に、上のブロツクのＤｉｊに0.2 を乗算した値を加算して新たなＤｉｊの値を算出する。但し、ここでＤｉｊの変数ｊは１〜７であり、またｉは０である。すなわちｉが０以外の成分部分は、このステツプに処理がすすんだ時点で全て０であることがわかつているため、これらの値は敢えて算出しない。またｉ及びｊが０の成分部分については当該ブロツクの直流成分であるため、もとの値のままとする。符号化装置１０は、このように上のブロツクとの重み付き平均を用いて新たなＤｉｊを算出する。
【００４２】
符号化装置１０は演算器１４によつて、ステツプＳＰ６６で、新たに得られたＤｉｊに対して量子化処理を行う。具体的には、まず演算器１４は各成分Ｄｉｊに応じた重み係数ＱＳｉｊによつてＤｉｊを除算する。なお、ここでＤｉｊは変数ｉ及びｊが０〜７の全ての成分である。演算器１４はこうして得られる値を四捨五入することによつて丸め処理（整数化処理）する。この結果をＱｉｊとする。符号化装置１０は、こうしてＱｉｊが得られたらステツプＳＰ７にジヤンプしてＱｉｊを出力して手順を終了する。
【００４３】
またステツプＳＰ６４で所定の条件を１つでも満たさない場合、符号化装置１０はステツプＳＰ６７にジヤンプする。符号化装置１０は演算器１４によつて、ステツプＳＰ６７で、符号化処理対象となつているブロツクの１つ下にブロツクが存在するか否か、またブロツクが存在する場合にそのブロツクが符号化済であるか否か、さらに符号化済である場合にそのブロツクのＱｉｊがｉが０以外のときに全て０であるか否か、またｉが０以外のときにＱｉｊが全て０である場合に下のブロツクと処理対象のブロツクとの境界が滑らかであるか否かを判別する。これらの条件を全て満たすことを判別した場合、符号化装置１０はステツプＳＰ６８に手順を進める。また上述の条件を１つでも満たさない場合、符号化装置１０はステツプＳＰ７にジヤンプする。
【００４４】
符号化装置１０は上述の条件が全て満たされている場合に演算器１４によつて、ステツプＳＰ６８で、下側のブロツクのＤｉｊの値を加味して符号化処理対象となつているブロツクのＤｉｊを変更する。具体的には処理対象となるブロツクのＤｉｊに0.8 を乗算した値に、下のブロツクのＤｉｊに0.2 を乗算した値を加算して新たなＤｉｊの値を算出する。但し、ここでＤｉｊの変数ｊは１〜７であり、またｉは０である。すなわちｉが０以外の成分部分は、このステツプに処理がすすんだ時点で全て０であることがわかつているため、これらの値は敢えて算出しない。またｉ及びｊが０の成分部分については当該ブロツクの直流成分であるため、もとの値のままとする。符号化装置１０は、このように下のブロツクとの重み付き平均を用いて新たなＤｉｊを算出する。
【００４５】
符号化装置１０は演算器１４によつて、ステツプＳＰ６９で、新たに得られたＤｉｊに対して量子化処理を行う。具体的には、まず演算器１４は各成分Ｄｉｊに応じた重み係数ＱＳｉｊによつてＤｉｊを除算する。なお、ここでＤｉｊは変数ｉ及びｊが０〜７の全ての成分である。演算器１４はこうして得られる値を四捨五入することによつて丸め処理（整数化処理）する。この結果をＱｉｊとする。符号化装置１０は、こうしてＱｉｊが得られたらステツプＳＰ７にジヤンプしてＱｉｊを出力して手順を終了する。
【００４６】
なお、上述したブロツク間の境界部分が「滑らか」であるという意味を、ここで説明する。すなわち図７に示すように、隣接するブロツクと接している各々８個の画素同士の値の差が小さい場合、これらのブロツクの境界部分は「滑らか」であるとしている。したがつて符号化装置１０は滑らかであるか否かを判別する場合、演算器１４によつてＡｋの画素値からＢｋの画素値を減算した値（但し、ｋは０〜７）を求め、これら８個の画素値の差分の絶対値の和が予め設定される所定のしきい値未満であれば「滑らか」であるとし、しきい値以上であれば「滑らか」でないと判別するようになされている。
【００４７】
ブロツク歪みはブロツク間の境界部分が「滑らか」である比較的単調な画像の場合に特に目立つ。複雑な画像にブロツク歪みが生じた場合は、人間の視覚上の特性からブロツク歪みを判別し難い。このため、符号化装置１０はブロツク間が「滑らか」である原画像を符号化する場合に隣接ブロツクとの重み付き平均をとつたＤｉｊを新たに求め、元々ブロツク間に段差状の画素値の差分を有する「滑らか」でない原画像を符号化する場合にはＤＣＴ処理により得られたＤｉｊをそのまま量子化して出力する。
【００４８】
以上の構成において、入力画像データＳ１は上述した符号化処理手順に基づき演算器１４によつてＤＣＴ処理及び量子化処理がなされる。これにより圧縮符号化データＳ３が得られて出力される。入力画像データＳ１は上述した符号化処理手順により、まず符号化処理対象となる８画素×８画素でなるブロツク毎にＤＣＴ処理がなされてＤｉｊが得られ、またＤｉｊに量子化処理を行つてＱｉｊが得られる（図２、ＳＰ２〜ＳＰ４）。
【００４９】
次に量子化処理により得られたＱｉｊの値に基づいて、処理対象ブロツクの原画像が比較的単調な画像であるか否かの判別がなされる（ＳＰ５及び６）。すなわちｉ行ｊ列（ｉ及びｊは０〜７でなる変数）のブロツク内でｉが０以外の場合にＱｉｊが全て０であるということは、原画像が垂直方向に対して一定の値を持つ比較的単調な画像であることを示している。またｊが０以外の場合にＱｉｊが全て０であるということは、原画像が水平方向に対して一定の値を持つ比較的単調な画像であることを示している。この場合は符号化した画像データを復号処理して得られる復元画像に生じるブロツク歪みが上述したように目立つものであるため、Ｄｉｊの値は隣接するブロツクとの重み付き平均に基づいて新たに求められる。
一方、原画像が比較的単調な画像でない、複雑な画像であることが判別された場合は、復元画像にブロツク歪みが生じても判別し難いものであるため、そのまま得られているＱｉｊが圧縮符号化データＳ３として出力される（ＳＰ７）。
【００５０】
処理対象であるブロツクの原画像が比較的単調な画像であることが判別された場合、処理対象ブロツクに対して、符号化処理がなされている共にｉ又はｊが０以外の場合のＱｉｊの値が全て０であり、かつ処理対象ブロツクとの境界が滑らかである隣接ブロツクが存在するか否かが検出される（図３のＳＰ５１、図４のＳＰ５４及びＳＰ５７、図５のＳＰ６１、図６のＳＰ６４及びＳＰ６７）。
【００５１】
こうした条件を全て満たす隣接ブロツクの原画像は処理対象ブロツクの原画像と滑らかにつながる比較的単調な画像であるため、こうした隣接ブロツク間の境界部分にブロツク歪みが生じた場合、目立つものとなる。このため、このような隣接ブロツクの存在が検出された場合、処理対象ブロツクのＤｉｊの値は隣接ブロツクとの重み付き平均を用いて求められる新たな値に更新される（図３のＳＰ５２、図４のＳＰ５５及びＳＰ５８、図５のＳＰ６２、図６のＳＰ６５及びＳＰ６８）。なお上述の条件を一つでも満たさない場合、ブロツク歪みが生じたとしても目立つものとなり得ないため、そのままＱｉｊが出力される。
【００５２】
例えば処理対象ブロツクＡの１行０列の成分が１３でなると共に２行０列の成分が９であり、また処理対象ブロツクの左側に隣接するブロツクＢの１行０列の成分が８でなると共に２行０列の成分が１５である場合（図１５）、図８に示すように、上述の符号化処理手順によつて、
【数３】
0004209954.tif 000004
【数４】
0004209954.tif 000005
の演算がなされ、処理対象ブロツクＡの１行０列の成分は１２に、２行０列の成分は10.2に変更される。ここでｉ及びｊが０である直流成分はＤＣ２のままである。ただし、ブロツクＢは、既に符号化処理がなされているとする。
【００５３】
図９に示すように、こうして成分値の変更がなされた処理対象ブロツクＡ及び隣接ブロツクＢを重み係数を２０として量子化処理した場合（但し、直流成分に対する重み係数は１）、処理対象ブロツクＡの１行０列の成分は１、２行０列の成分は１として出力される。つまり、図８に示す値を２０で割つて四捨五入する。
図１０に示すように、こうして符号化処理された圧縮符号化データＳ３を重み係数を２０として逆量子化した場合、処理対象ブロツクＡの１行０列の成分は２０、２行０列の成分は２０として得られる。
【００５４】
図１１に示すように、こうして逆量子化がなされた成分値をＩＤＣＴ処理して画像データを復元した場合、従来の符号化処理により画像を復元した場合（図２０）に比して、隣接ブロツクとの境界部分に生じる画素値の段差（すなわちブロツク歪み）を軽減した復元画像を得ることができる。
すなわち処理対象ブロツクをＤＣＴ処理して得られるＤｉｊに対して隣接ブロツクのＤｉｊとの重み付き平均をとつて、処理対象ブロツクのＤｉｊの値を隣接ブロツクのＤｉｊの値に近づけたことにより、こうして得られた新たなＤｉｊを量子化した後に復号処理して復元される画像と隣接ブロツクの復元画像との境界部分を滑らかにすることができ、これによりブロツク歪みを低減することができる。
【００５５】
以上の構成によれば、処理対象ブロツクの原画像が比較的単調な画像であり、この処理対象ブロツクとの境界部分が滑らかにつながつている符号化済の隣接ブロツクが存在する場合に、処理対象ブロツクをＤＣＴ処理して得られる成分値Ｄｉｊを隣接ブロツクの成分値Ｄｉｊとの重み付き平均を用いて算出される新たな成分値Ｄｉｊに変更して量子化処理することにより、処理対象ブロツクの成分値Ｄｉｊと隣接ブロツクの成分値Ｄｉｊとの差分値を減少させて、境界部分の画素値の差分を低減させた復元画像を得ることができ、かくするにつき、ブロツク間の境界部分に生じるブロツク歪みを低減することができる。
【００５６】
なお上述の実施例においては、ＤＣＴ処理によりフレーム内のみで符号化を行う符号化装置１０の場合について述べたが、本発明はこれに限らず、例えばＢピクチヤ、Ｐピクチヤ等のフレーム間予測符号化を行う符号化装置に用いるようにしてもよい。
【００５７】
また上述の実施例においては、ＭＰＥＧ１及びＭＰＥＧ２方式でなる画像圧縮方式を用いた符号化装置１０の場合について述べたが、本発明はこれに限らず、例えばＪＰＥＧ等の静止画像の圧縮符号化を行う符号化装置に用いてもよい。すなわち、動画像又は静止画像に係わらず、画像圧縮を行う際に丸め処理を実行する符号化装置であれば、どのような符号化装置に適用してもよい。
【００５８】
また上述の実施例においては、演算処理手段、第１及び第２の符号化手段、検出手段及びデータ平均化手段を一体化したＣＰＵ装置でなる符号化装置１０の場合について述べたが、本発明はこれに限らず、例えば各機能ブロツク毎に分割した構成としてもよい。
【００５９】
さらに上述の実施例においては、処理対象ブロツクの重み付けの割合を0.8 とすると共に隣接するブロツクの重み付けを0.1 又は0.2 とし、左右に隣接ブロツクが存在する場合に処理対象ブロツクのＤｉｊの値に0.8 を乗算した値と、左右のブロツクのＤｉｊの値に各々0.1 又は0.2 を乗算した値とを加算して得られる値を処理対象ブロツクの新たなＤｉｊの値とする場合について述べたが、本発明はこれに限らず、例えば処理対象ブロツクの重み付けの割合を0.6 とすると共に隣接するブロツクの重み付けを0.2 又は0.4 とするようにしてもよい。重み付き平均は量子化処理の際の重み係数に応じて適応的に設定してもよい。
【００６０】
【発明の効果】
上述のように本発明によれば、入力画像データを所定のブロツク単位毎に離散コサイン変換する演算手段と、上記演算手段より出力された結果である注目ブロツク及び当該注目ブロツクに隣接するブロツクとの境界部分において上記ブロツク間の境界線を挟んで隣接する画素の画素値同士の差分の絶対値を上記境界部分毎に加算した和が所定しきい値未満である場合、上記注目ブロツク及び上記隣接するブロツクにそれぞれ所定の重み付け係数を乗算して加算することにより重み付き平均を算出する重み付き平均手段と、上記重み付き平均手段より出力された平均ブロツクを量子化する量子化手段と、上記量子化手段より出力された量子化ブロツクを符号化する符号化手段とを設けるようにして、注目ブロツク及び隣接するブロツクの境界部分における画素値の差分の和が小さいことから画像が滑らかであると見なすことができる場合、注目ブロツクと当該注目ブロツクに隣接する複数のブロツクとの重み付け平均によつて新たな平均ブロツクを生成することにより、注目ブロツクの値を平均化した平均ブロツクと注目ブロツクに隣接するブロツクとの差分値を減少させることができ、平均ブロツク及び隣接ブロツクから復元する画像の境界部分を滑らかにすることができ、かくして復元画像データに生じるブロツク歪みを低減し得る。
【図面の簡単な説明】
【図１】本発明の実施例による符号化装置の構成を示すブロツク図である。
【図２】実施例による符号化方法の処理手順を示すフローチヤートである。
【図３】実施例による符号化方法の処理手順を示すフローチヤートである。
【図４】実施例による符号化方法の処理手順を示すフローチヤートである。
【図５】実施例による符号化方法の処理手順を示すフローチヤートである。
【図６】実施例による符号化方法の処理手順を示すフローチヤートである。
【図７】隣接するブロツク間での「滑らかさ」の説明に供する略線図である。
【図８】実施例による重み付き平均を用いた量子化の説明に供する略線図である。
【図９】量子化後の各成分値を示す略線図である。
【図１０】逆量子化後の各成分値を示す略線図である。
【図１１】実施例によるブロツク歪みの軽減の説明に供する斜視図である。
【図１２】従来の符号化装置及び復号化装置の構成を示すブロツク図である。
【図１３】ブロツク歪みの１次元的な説明に供する略線図である。
【図１４】隣接したブロツクの符号化前の状態の説明に供する斜視図である。
【図１５】ＤＣＴがなされたブロツク内の成分状態の説明に供する略線図である。
【図１６】１行０列の成分を示す略線図である。
【図１７】２行０列の成分を示す略線図である。
【図１８】量子化がなされたブロツク内の説明に供する略線図である。
【図１９】逆量子化がなされたブロツク内の説明に供する略線図である。
【図２０】復元した画像データに生じたブロツク歪みの説明に供する斜視図である。
【符号の説明】
１、１０……符号化装置、２……復号化装置、３……離散コサイン変換部、４……量子化部、５……逆量子化部、６……逆離散コサイン変換部、１１……入力ポート、１２……制御回路、１３……メモリ、１４……演算器、１５……出力ポート、１６……バス。
【図１】
0004209954.tif 000006
【図７】
0004209954.tif 000007
【図２】
0004209954.tif 000008
【図３】
0004209954.tif 000009
【図５】
0004209954.tif 000010
【図４】
0004209954.tif 000011
【図６】
0004209954.tif 000012
【図８】
0004209954.tif 000013
【図９】
0004209954.tif 000014
【図１０】
0004209954.tif 000015
【図１１】
0004209954.tif 000016
【図１２】
0004209954.tif 000017
【図１３】
0004209954.tif 000018
【図１４】
0004209954.tif 000019
【図１５】
0004209954.tif 000020
【図１６】
0004209954.tif 000021
【図１７】
0004209954.tif 000022
【図１８】
0004209954.tif 000023
【図１９】
0004209954.tif 000024
【図２０】
0004209954.tif 000025