(57)【要約】画像の１区画をＤＣＴ等の直交変換により変換し、得られた変換係数の各成分の一部を補正する。補正値は、画質の歪みを反映した特微量と符号量を反映する特微量の両方に基づくコスト関数を計算し、そのコスト関数を最小化するように決定する。補正係数の候補は、補正係数のサイズに応じて多数あるため、遺伝的アルゴリズムや勾配法等を用いて、補正の試行回数を削減する。これにより符号化効率を著しく低下させる変換係数を、適正に補正できる。本発明は、映像信号をデジタル処理により圧縮し符号化する技術に属し、ビデオ符号化装置等に利用できる。
2012127706.tif 000002
【特許請求の範囲】
【請求項１】
予測差分もしくは原画像に対して周波数変換を行う周波数変換部と、該周波数変換部が出力する変換係数に対して量子化を行う量子化部と、該変換係数に対して補正を行う変換係数補正部と、該補正された変換係数に対し符号の発生確率に応じた符号化を施す可変長符号化部とを有し、
該変換係数補正部は、該補正に用いる値として複数の候補を生成し、該複数の候補の中から可変長符号化の効率が最も高くなる１つの値を探索し、該１つの値を補正値として量子化前もしくは量子化後の前記変換係数に対して補正を行い、
前記可変長符号化部は、該補正された前記変換係数に符号化を施して、符号化ストリームとして出力することを特徴とする画像符号化装置。
【請求項２】
前記変換係数補正部は、前記複数の候補を、遺伝的アルゴリズム若しくは勾配法によって動的に生成することを特徴とする請求項２記載の画像符号化装置。
【請求項３】
前記変換係数補正部は、前記補正値を探索する際に、補正された前記変換係数を可変長符号化した場合の符号量と、該補正された前記変換係数を用いて画像を復号した場合の歪み量とを、パラメータとしてコスト計算を行うことを特徴とする請求項２記載の画像符号化装置。
【請求項４】
前記変換係数補正部は、最適な補正値を探索する際に、補正された前記変換係数を可変長符号化した場合の符号量と、補正された前記変換係数を逆量子化した時の歪み量をパラメータとしてコスト計算を行うことを特徴とする請求項２記載の画像符号化装置。
【請求項５】
前記変換係数補正部は、最適な補正値を探索する際に、補正された前記変換係数を可変長符号化した場合の符号量と、補正値の大きさをパラメータとしてコスト計算を行うことを特徴とする請求項２記載の画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化装置に関し、特にDCT係数を適切に補正して符号化効率を向上させた動画像符号化装置に関する。
【背景技術】
【０００２】
大容量の動画像情報をデジタルデータ化して記録、伝達する手法として、ＭＰＥＧ（Moving Picture Experts Group）方式等の符号化方式が策定され、ＭＰＥＧ−１規格、ＭＰＥＧ−２規格、ＭＰＥＧ−４規格、Ｈ．264／ＡＶＣ（Advanced Video Coding）規格等として国際標準の符号化方式となっている。【０００３】
これらの規格では、ブロック単位で予測技術と変換技術を組み合わせて符号化するハイブリッド画像符号化技術が採用されている。すなわち、ブロック単位で計算された予測画像に対して原画像からの差分（予測差分）を計算し、周波数変換技術の一つであるDCT（Discrete Cosine Transform：離散コサイン変換）を施してその係数を量子化し、可変長符号化する。
一般に自然画像では、DCT係数が低周波成分に集中する性質があるため、上記可変長符号化方式は高周波成分に０などの小さい値が集中するほど符号化効率が高められるように設計されている。また予測差分が大きい場合には、高周波成分に対して強い量子化をかけたり、高周波成分の係数を強制的に切り捨てたりすることで、符号量を大きく削減している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２００５４１号公報
【特許文献２】特開２０１１−１３０１９２号公報
【特許文献３】特開２０１０−１１８７２９号公報
【特許文献４】特開２００７−２５１６７２号公報
【特許文献５】特開２００６−２３７７０９号公報
【非特許文献】
【０００５】
【非特許文献１】En-Hui  Yang,  Xiang  Yu,  “Rate  Distortion  Optimization  for  H.264  Interframe  Coding:A  General  Framework  and  Algorithms”,  IEEE  TRANSATIONS  ON  IMAGE  PROCESSING,  IEEE,  JULY  ２００７,  VOL.１６,  NO.７,  p.１７７４-１７８４
【非特許文献２】G. Sullivan and T.Wiegand,  “Rate-DistortionOptimization for Video Compression”, IEEE Signal Processing Magazine, vol.１５, no.６, pp.７４-９０, １９９８.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の予測と変換を基本とするハイブリッド画像符号化では、可変長符号化の性能がDCT係数の分布に大きく依存し、符号化性能を大きく左右する。予測差分情報が大きいため切り捨てた場合、高周波成分だけを対象にした係数補正しか行わない。そのため高周波成分に電力が集中した場合に十分に対処できず、場合によっては著しく符号化効率が低下するという問題があった。
一方で、符号量と画質のトレードオフを適正に評価することができれば、高周波成分だけでなく、低〜中程度の周波数成分に対しても係数操作を行うことにより、符号化効率の向上を見込むことができる。
本発明では、上記DCT係数の補正を適正に行うことにより、符号化効率を向上させた動画像符号化装置等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る動画像符号化装置あるいは方法は、
予測差分もしくは原画像に対して周波数変換を行う周波数変換部と、該周波数変換部が出力する変換係数に対して量子化を行う量子化部と、該変換係数に対して補正を行う変換係数補正部と、該補正された変換係数に対し符号の発生確率に応じた符号化を施す可変長符号化部とを有し、
該変換係数補正部は、該補正に用いる値として複数の候補を生成し、該複数の候補の中から可変長符号化の効率が最も高くなる１つの値を探索し、該１つの値を補正値として量子化前もしくは量子化後の前記変換係数に対して補正を行い、
前記可変長符号化部は、該補正された前記変換係数に符号化を施して、符号化ストリームとして出力することを特徴とする。
上記補正値には、もしそれが最適であれば、何も補正しない補正値も含まれうる。【０００８】
また、前記変換係数補正部は、前記複数の候補を、遺伝的アルゴリズム若しくは勾配法によって動的に生成することを特徴とする。【０００９】
また、前記変換係数補正部は、前記補正値を探索する際に、補正された前記変換係数を可変長符号化した場合の符号量と、該補正された前記変換係数を用いて画像を復号した場合の歪み量とを、パラメータとしてコスト計算を行う。
或いは、前記変換係数補正部は、最適な補正値を探索する際に、補正された前記変換係数を可変長符号化した場合の符号量と、補正された前記変換係数を逆量子化した時の歪み量をパラメータとしてコスト計算を行うことを特徴とする請求項２記載の画像符号化装置。
或いは、変換係数補正部は、最適な補正値を探索する際に、補正された前記変換係数を可変長符号化した場合の符号量と、補正値の大きさをパラメータとしてコスト計算を行う。
【発明の効果】
【００１０】
本発明によれば、DCT係数の適切な補正により、少ない符号量で高画質の復号画像を得ることができる。
【図面の簡単な説明】
【００１１】
【図１】動画像符号化装置のブロック図（実施例１〜３
【図２】変換係数補正部１１１のブロック図（実施例１
【図３】変換係数補正部１１１Ａのブロック図（実施例２
【図４】変換係数補正部１１１Ｂのブロック図（実施例３
【図５】DCTに関する概念的な説明図
【図６】ハイブリッド符号化の手順を示す概念図
【図７】実施形態に係るDCT係数の補正方法に関する概念図
【図８】実施形態に係る補正係数探索処理に関する概念図
【図９】補正係数候補の決定過程の一例を示す図
【図１０】補正係数候補の決定過程の一例を示す図
【図１１】補正係数候補の決定過程の一例を示す図
【図１２】補正係数の値域に関する説明図
【図１３】画像符号化処理の流れ図（実施例１〜３
【図１４】補正係数探索処理に関する概念図（実施例２
【図１５】補正係数探索処理の流れ図（実施例２
【図１６】補正係数探索処理に関する概念図（実施例３
【図１７】補正係数探索処理の流れ図（実施例３
【図１８】DCT係数の補正方法に関する概念的な説明図
【図１９】動画像符号化装置のブロック図（実施例４
【発明を実施するための形態】
【００１２】
以下、本発明の実施例に係る動画像符号化装置を、図面を参照して説明する。本例の動画像符号化装置は、H.264/AVC等のハイブリッド符号化方式に基づいて符号化を行うものであり、最初に、H.264/AVC符号化について概説する。
【００１３】
MPEG-4やH.264/AVCなどのハイブリッド符号化方式では、符号化処理が完了した画像情報を利用して符号化対象画像を予測し、原画像との予測差分を符号化することによって、動画像の持つ冗長性を減らして符号量を削減している。ここでは、動画像の局所的性質を利用したきめ細かな予測を実現するために、画像を細かく分割したブロック単位で予測が行われる。
上記予測差分は、周波数変換手法の一つであるDCTにより周波数成分（変換係数）に分解され、その係数値が符号化される。以下、上記の規格に合わせてDCTを周波数変換方式として用いた場合について説明する。
【００１４】
図５は、予測差分がDCTにより周波数成分に分解される様子について概念的に示している。DCTは、基底信号６０３の係数値による加重和によって入力信号を表現する周波数変換の一手法であり、予測差分６０１に対してDCTを適用することによりその係数値６０２が低周波成分に偏る性質を利用して、係数値を効率的に符号化している。
【００１５】
図６に、各ブロックに対する予測差分信号の符号化手順について示す。まず対象ブロックの予測差分６０１に対してDCTを施し、取得されたDCT係数６０２に対して量子化を行う。続いて、量子化後のDCT係数６０３に対し、低周波成分から高周波成分に向かって２次元的なジグザグ方向のスキャン６０４を行って係数値を一次元展開し、取得された１次元データに対して可変長符号化(VLC：Variable length coding)６０５を施して符号語を生成する。
【００１６】
図７は、本発明の実施形態において、DCT係数に対して補正を行って符号化効率を高める方法の概念図である。ここでは、例として量子化後のDCT係数に対して補正を行う方法について示している。まず、量子化済みDCT係数６０３に対する補正値(以後、補正係数)の候補７０２を複数用意し、これらの中から符号化効率を最も高められる最適解７０３を決定するための補正係数探索を行う。次に、得られた補正係数７０３を量子化済みDCT係数６０３に足し合わせることによりDCT係数の補正を行い、補正済みDCT係数７０４を取得する。以後、この補正済みDCT係数に対して通常の符号化処理１次元展開、VLC)を行い、符号語を生成する。補正係数としては、量子化済みDCT係数に現れる大きさが２や１の要素１つを１や０に置き換えるようなものを用いれば符号量の低下が十分期待でき、複数の非ゼロの要素を有するものを多数試行することで量子化による欠損を補って歪を小さくするような補正係数が見つかる可能性もある。
【００１７】
図８は、本発明の実施形態における、補正係数探索処理の概念図である。まず、補正係数の候補８０１の中から一つを選び８０２）、量子化済みDCT係数６０３に足し合わせて、補正係数候補で補正したDCT係数(以後、補正後係数候補)８０４を生成する。続いて、これに対して逆量子化および逆DCTを施し、補正後係数候補を用いた予測差分の復号値８０５を取得する。これと符号化前の予測差分８０６を比較８０７し、それらの差分値として表される誤差８０８を計算する。誤差としては、例えば以下に示すブロック内各画素値の絶対値誤差和SAD（um of Absolute Difference)や二乗誤差和SSD（um of Squared Difference)を用いると効果的である。
【００１８】
【数１】
2012127706.tif 000003
【数２】
2012127706.tif 000004
ここで、p(i,j)は座標(i,j)における予測差分８０６の値を、q(i,j)は座標(i,j)における予測差分の復号値８０５の値を示している。
【００１９】
一方、補正後係数候補８０４に対して一次元展開を行い、VLCを施して符号量８１０を計測する。最後に、計測した誤差８０８と符号量８１０をもとにコスト計算を行う。例えば、以下に示すコスト値を利用すると効果的である。
【００２０】
【数３】
2012127706.tif 000005
ただし、DistはSADやSSDなどの誤差値、Rateは符号量、Weight１は重み係数を表す。ここで、Weight１の値を調整することにより、画質と符号量のトレードオフを制御することができる。例えば画質を多少劣化させても符号量を大幅に低下させたければ、コスト値に対する符号量の寄与率が大きくなるようにWeigh１の値を高めに設定すればよい。または、画質歪みと符号量の統計的性質から誤差と符号量のトレードオフについて適正に評価するため、非特許文献１に記載されているRD-Optimization方式を利用してコスト計算してもよい。
以上の処理を補正係数の候補すべてに対して実施し、その結果コスト値を最小にする候補を最適な補正係数として決定する。なお、補正係数候補の生成や選出の仕方により、いくつかの補正係数探索処理が考えられる。図９〜図１１を参照して、３種類の方法に分けて説明する。
【００２１】
図９は、補正係数候補の決定過程の一例を示す図である。例えば４×４サイズのブロック単位でDCTを施す場合、DCT係数９０１も４×４サイズの行列となる。この場合、補正係数も４×４サイズの行列(以後、補正係数行列)として計算する。簡単のため、補正係数行列の各要素が取り得る値を±１１, ０, １の３種類)に限定すると、９０２に示す 通りの候補が存在する。この中からコスト値を最小とする補正係数行列９０３を決定し、補正を行う９０４）。
しかし、この例では、通りの候補すべてに対してコスト計算を行う必要があるため、莫大な計算量が必要となる。さらに、現実には補正係数行列の各要素が取り得る値の範囲は上記の例よりもさらに広く、補正係数探索のための計算量は、各要素が取り得る値の数に対して指数関数的に増大する。そのため、図９のようにすべての候補に対してコスト計算を行うことは現実的ではない。そこで、効率的な探索アルゴリズムを利用することにより、探索精度の低下を抑えつつ計算量を大幅に削減する方法について、以下に述べる。
【００２２】
図１０は、遺伝的アルゴリズムを応用した補正係数行列の決定方法の模式図である。
遺伝的アルゴリズムは、データ列を遺伝子として見立てた複数の個体に対し、選択、交叉、突然変異などの遺伝子操作を繰り返すことにより、適応度の高い個体が選択淘汰されていく自然界の様子を模した探索アルゴリズムである。ここでは、個体として補正係数行列の候補を、適応度としてコスト値の逆数(コスト値が低いほど適応度が高くなるように設定)を設定している。例えば、第n世代として１００１に示す６種類の個体(Ａ〜Ｆ)が選ばれているとする。ここで、次世代の個体集合を決定するために、遺伝子操作を行う。まず、適応度に応じて現世代の個体を次世代に残す選択処理により、例えば適応度の最も高い２つの個体Ａ１００２およびＢ１００３が残る。
続いて、２種類の異なる個体に対して、一部のデータ列を入れ替える交叉処理では、例えば個体Ｃの第２行および第３行を個体Ｄと入れ替えた１００４と、個体Ａの第２列および第４列を個体Ｃと入れ替えた１００５を生成する。この場合、交叉を行う個体は無作為に選択してもよいが、各個体の選択確率がその適応度に応じて偏った分布になるように抽出するとより効果的である。また、どの行もしくは列のデータを入れ替えるかについても、無作為に決定すると効果的である。続いて、個体のデータ列の一部が突発的に別の値に変化する突然変異処理では、例えば個体Ａの第２, ３成分と４, ４成分の値が変化した１００６を生成する。この場合も、突然変異を起こす個体と、データ列のどの値を変化させるかについては、無作為もしくは適応度に応じて決定すると良い。なお、交叉と突然変異を組み合わせて１００７のような個体を生成するのも効果的である。
以上のように、第n世代の個体に対して遺伝子操作を行って生成される第n+１世代の個体１００８を各個体の適応度によって整列すると、全体的に第n世代よりも適応度が上昇していることがわかる。この処理を、適応度が十分大きくなるか収束するまで繰り返し、最終的に最も適応度の高い個体が最適解となる。
【００２３】
図１１は、勾配法を応用した補正係数行列の決定方法の模式図である。ここでは、局所的なコスト分布の傾きに応じて解の推定値を繰り返し更新する。すなわち、現時点での推定値に対して、局所的な周辺探索を行い、コスト関数を最小化する方向に推定値を更新していく。
例えば、第n回目の試行後によって補正係数行列１１０１が最適解として推定されているとする。第n＋１回目の試行では、任意の成分、例えば第１,  １成分の値を変化させた補正係数行列１１０２〜１１０４を用いてコスト値を計算し、その結果補正係数行列１１０４のコストが最も小さかった場合、これを第n+１番目の推定結果とする。この処理を、変化させる成分を変えながらコスト値が十分小さくなるか収束するまで繰り返す。なお、この方法は局所解に陥りやすいため、初期推定値を変化させて何度か上記探索処理を行い、得られた複数解の中からコストを最小化するものを最終的に選択すると効果的である。
【００２４】
これらの全試行に拠らない方法においても、同時に封数の補正係数候補が挙がることがある。ハードウェアに実装する際は、複数の候補について並列処理できるようにしてもよい。
【００２５】
図１２は、補正係数の値域について、その一例を示している。補正係数の値は量子化パラメータによって変化するが、例えば１２０１に示すように補正係数行列のすべての要素について±１０（１０, -９, …, ０, …, ９, １０）の範囲で変化させると効果的である。また、DCT係数の低周波成分に対して強い補正を行うと画質に大きく影響するため、あまり大きな値で補正を行うことは望ましくない。そのため、１２０２に示すように、周波数成分によって補正係数の値の範囲に差を設けると効果的である。
【実施例１】
【００２６】
図１は、実施例１に係る動画像符号化装置のブロック図である。本例の動画像符号化装置は、入力された原画像１０１を保持する入力画像メモリ１０２と、入力画像を小領域に分割するブロック分割部１０３と、ブロック単位で過去のフレームからの動き量を探索する動き探索部１０４と、ブロック単位で画面内予測を行う画面内予測部１０５と、動き探索部１０４にて検出された動き量をもとにブロック単位で画面間予測を行う画面間予測部１０６と、画像の性質に合った予測モード（予測手段およびブロックサイズ）を決定するモード選択部１０７と、予測差分を生成するための減算部１０８と、予測差分を量子化済み変換係数へ処理する周波数変換部１０９および量子化処理部１１０と、変換係数に補正を加える変換係数部１１１と、補正済みＤＣＴ係数等を符号の発生確率に応じて適応的符号化する可変長符号化部１１２と、補正済み変換係数から予測差分を復元（復号化）する逆量子化処理部１１３および逆周波数変換部１１４と、復元された予測差分を用いて復号化画像を生成するための加算部１１５と、復号化画像を保持して後の予測に活用するための参照画像メモリ１１６を有する。【００２７】
入力画像メモリ１０２は、原画像１０１（映像４１と同義）の中から一枚の画像を符号化対象画像として保持し、これをブロック分割部１０３にて細かなブロックに分割し、動き探索部１０４、画面内予測部１０５、画面間予測部１０６、および減算部１０８に渡す。
動き探索部１０４では、参照画像メモリ１１６に格納されている復号化済み画像を用いて該当ブロックの動き量を計算し、動きベクトルを画面間予測部１０６に渡す。【００２８】
画面内予測部１０５および画面間予測部１０６は、それぞれ、周辺ブロックの原画像を用いた画面内予測処理および符号化済みの別画像を参照した画面間予測処理を、複数のブロックサイズで実行する。
モード選択部１０７は、両予測部において複数のブロックサイズで実行された中から、最適な予測モードを選択し、その予測画像を減算部１０８および加算部１１５に送る。【００２９】
減算部１０８は、対象ブロックの原画像と、モード選択部１０７で選択された予測画像との差分（予測差分）を生成し、周波数変換部１０９に渡す。
周波数変換部１０９および量子化処理部１１０は、送られてきた予測差分に対して指定された大きさのブロック単位で、ＤＣＴなどによる周波数変換および量子化マトリクスによる量子化処理をそれぞれ行い、得られた変換係数あるいは量子化済み変換係数を変換係数補正部１１３に渡す。【００３０】
変換係数補正部１１１は、量子化済みの変換係数に対し、最適な補正値を決定して補正を行い、可変長符号化部１１２および逆量子化部１１３に渡す。
可変長符号化処理部１１２では、補正済みの変換係数と動きベクトルなどのヘッダ情報を、記号の発生確率に基づいて符号化を行って符号化ストリームを生成する。
また、逆量子化処理部１１３および逆周波数変換部１１４では、量子化後の周波数変換係数に対して、それぞれ逆量子化および逆DCTなどの逆周波数変換を施し、予測差分を取得して加算部１１５に送る。
加算部１１５では、予測画像と復号化済み予測差分を加算して復号化画像を生成し、参照画像メモリ１１６に格納する。【００３１】
図２は、実施例１の変換係数補正部１１１について、その詳細の一例を示したものである。変換係数補正部１１１は、補正係数候補を生成する補正係数候補生成部２０１と、補正係数候補と変換係数を足し合わせるための加算器２０２と、変換係数に対して符号化を行う可変長符号化部２０３と、予測差分を復号化するための逆量子化処理部２０４および逆周波数変換部２０５と、符号化前の予測差分と復号化済み予測差分の差分値を計算するための誤差計算部２０６と、コスト計算を行うためのコスト評価部２０７と、コスト最小の補正係数候補を格納するための最適補正係数格納部２０８と、最適な補正係数を用いて変換係数を補正する加算部２０９を有する。【００３２】
補正係数候補生成部２０１は、補正係数候補を生成して１つずつ加算部２０２へ送る。加算部２０２では、取得した補正係数候補を量子化処理部１１０から送られてきた量子化済み変換係数と足し合わせて、可変長符号化部２０３および逆量子化処理部２０４へ送る。可変長符号化部２０３では、送られてきた補正後係数候補に対して符号化を行い、符号量を計測してコスト評価部２０７へ送る。
一方で、逆量子化処理部２０４および逆周波数変換部２０５では、同じ補正後係数候補に対して逆量子化および逆周波数変換を施して予測差分を復号し、誤差計算部２０６へ送る。誤差計算部２０６では、[式１]、［式２］等により予測差分の復号値と符号化前の予測差分に対して誤差計算を行い、コスト評価部２０７へ送る。【００３３】
コスト評価部２０７では、送られてきた符号量と誤差情報を用いて［式３］等の計算式にてコスト計算を行い、それがこれまでに計算されたどの補正係数候補のコストよりも小さければ、その補正係数とコスト値を最適補正係数格納部へ送る。補正係数候補生成部２０１が出すすべての候補に対して上記処理を完了した時点で、最適補正係数格納部２０８に格納されている補正係数は加算部２０９へ送られ、量子化処理部１１０から送られてくる量子化済み変換係数と足し合わされ補正済み変換係数として可変長符号化部１１２へと送られる。【００３４】
図１３は、実施例１における１フレームの符号化処理手順について示している。まず、符号化対象となるフレーム内に存在するすべてのブロックに対して（１３０１）、以下の処理を行う。すなわち、該当ブロックに対して一度すべての符号化モード(予測方法とブロックサイズの組み合わせ)に対して予測処理を実行し、予測差分を計算する。ここでは、予測方法として、画面内予測１３０２、および画面間予測１３０３を実施し、すべての符号化モードの中から最適なモードを選択するモード選択処理１３０４を行う。
続いて、選択された符号化モードの予測差分に対して、周波数変換処理１３０５および量子化処理１３０６を施して量子化済み変換係数を算出する。続いて、変換係数を補正するための補正係数を決定するための補正係数探索処理を行う（１３０７）。すなわち、補正係数の候補を１つ算出し（１３０８）、量子化済み変換係数と足し合わせて補正後係数候補を生成する（１３０９）。さらに、補正後係数候補に対して可変長符号化を施して符号量を計算する一方（１３１０）、同じ補正後係数候補に対して逆量子化および逆周波数変換を施して予測誤差の復号値を取得する（１３１１）。これと予測差分との誤差を計算し（１３１２）、上記符号量と誤差情報を用いてコスト計算を行う（１３１３）。さらに、算出されたコスト値がこれまでで最小なら（１３１４）、補正係数とコスト値を更新する（１３１５）。上記処理をすべての補正係数候補に対して行い、コストが最小となる係数を最適な補正係数とする。【００３５】
続いて、上記最適補正係数で変換係数を補正し（１３１６）、可変長符号化処理１３１７を施して符号化ストリームを生成する。一方で、補正済み変換係数に対して逆量子化処理（１３１８と逆周波数変換処理１３１９を施して予測差分を復号化し、復号化画像を生成して参照画像メモリに格納する（１３２０）。以上の処理をすべてのブロックに対して完了すれば、画像１フレーム分の符号化は終了する（１３２１）。
なお、ループ２（１３０７）の終了条件として、コスト値が所定値以下になること、試行回数が上限に達すること、などを含めてもよく、試行回数の上限は、入力画像１０２メモリに溜まった処理待ち画像の量に応じて設定することができる。またループ２において、また１３１０で得られる可変長符号化の符号量が、試行済みの補正後係数候補の符号量或いは補正係数を用いないときの符号量を超えた時点で、現在の補正係数候補を諦め次の候補を試行するようにしてもよい。
後述の実施例２以降では、本フローチャートのうちで補正係数を決定する補正係数探索処理のみ異なるため、ループ２（１３０７のみ示しその他の動作は図１３と同様とする。
【実施例２】
【００３６】
実施例２に係る補正係数探索処理は、実施例１に対し、画質の劣化を周波数領域で評価するように変更し、計算量を削減したものである。なお、実施例２以降では、実施例１に対し変換係数補正部１１１の細部が異なる他は、実施例１と同様の構成であり、それらの部分の説明は割愛する。【００３７】
図１４に、実施例２による補正係数探索処理について示す。まず、補正係数の候補１４０１の中から一つの候補１４０２を選び、量子化済みDCT係数６０３に足し合わせて補正後係数候補１４０４を生成する。続いて、これに対して逆量子化を施し、補正後係数候補を用いた場合のDCT係数の復号値１４０５を取得する。これと量子化前のDCT係数１４０６を比較し、それらの差分値として表される誤差１４０８を計算する。誤差としては、先に述べた絶対値誤差和SADや二乗誤差和SSDを利用できる。また、DCT係数については、低周波成分の誤差が画質に与える影響が大きいため、低周波成分の誤差に対する重みを大きく設定するとさらに効果的である、SADおよびSSDに対してそれぞれ重みを設定したWSAD(Weighted SAD)、WSSD(Weighted SSD)は以下の通りである。【００３８】
【数４】
2012127706.tif 000006
【数５】
2012127706.tif 000007
ただし、Ｐ(i,j)は量子化前DCT係数１４０６の(i,j)成分を、Ｑ(i,j)は補正したDCT係数の逆量子化値１４０５の(i,j)成分を、関数W(i,j)は、iおよびjが大きいほど値が小さくなる関数である。一方、補正後係数候補１４０４に対して一次元展開を行い、VLCを施して符号量１４１０を計測する。最後に、計測した誤差１４０８と符号量１４１０をもとにコスト計算を行う。ここでは、例えば以下に示すコスト値を利用すると効果的である。【００３９】
【数６】
2012127706.tif 000008
ただし、DistはSADやSSD、WSAD、WSSDなどの誤差値、Rateは符号量、Weight２は重み係数を表す。ここでも、Weight２の値を調整することにより、画質と符号量のトレードオフを制御することができる。例えば画質を多少劣化させても符号量を大幅に低下させたければ、コスト値に対する符号量の寄与率が大きくなるようにWeigh２の値を高めに設定すればよい。【００４０】
図３は、実施例２における変換係数補正１１１Ａについて、その詳細の一例を示したものである。変換係数補正部１１１Ａは、実施例１の変換係数補正部１１１に替えて設けられるものであり、補正係数候補を生成する補正係数候補生成部３０１と、補正係数候補と変換係数を足し合わせるための加算器３０２と、変換係数に対して符号化を行う可変長符号化部３０３と、変換係数を復号化するための逆量子化処理部３０４と、量子化前の変換係数と復号化済み変換係数の差分値を計算するための誤差計算部３０５と、コスト計算を行うためのコスト評価部３０６と、コスト最小の補正係数候補を格納するための最適補正係数格納部３０７と、最適な補正係数を用いて変換係数を補正する加算部３０８を有する。【００４１】
補正係数候補生成部３０１は、補正係数候補を生成して１つずつ加算部３０２へ送る。加算部３０２では、取得した補正係数候補を量子化処理部１１０から送られてきた量子化済み変換係数と足し合わせて、可変長符号化部３０３および逆量子化処理部３０４へ送る。可変長符号化部３０３では、送られてきた補正後係数候補に対して符号化を行い、符号量を計測してコスト評価部３０６へ送る。一方で、逆量子化処理部３０４では、同じ補正後係数候補に対して逆量子化を施して変換係数を復号し、誤差計算部３０５へ送る。誤差計算部３０５では、［式１］［式２］［式４］［式５］等により変換係数の復号値と量子化前変換係数の誤差計算を行い、コスト評価部３０６へ送る。【００４２】
コスト評価部３０６では、送られてきた符号量と誤差情報を用いて［式６］等の計算式にてコスト計算を行い、これまでに計算されたどの補正係数候補のコストよりも小さければ、その補正係数とコスト値を最適補正係数格納部３０７へ送る。補正係数候補生成部３０１が出すすべての候補に対して上記処理を完了した時点で、最適補正係数格納部３０７に格納されている補正係数は加算部３０８へと送られ、量子化処理部１１０から送られてくる量子化済み変換係数と足し合わされて補正済み変換係数として可変長符号化部１１２へと送られる。【００４３】
図１５は、実施例２における補正係数の決定処理手順について説明している。まず、補正係数の候補を１つ算出し（１５０１）、量子化済み変換係数と足し合わせて補正後係数候補を生成する（１５０２）。さらに、補正後係数候補に対して可変長符号化を施して符号量を計算する一方（１５０３）、同じ補正後係数候補に対して逆量子化を施して変換係数の復号値を取得する（１５０４）。これと量子化前変換係数との誤差を計算し（１５０５）、上記符号量と誤差情報を用いてコスト計算を行う（１５０６）。さらに、算出されたコスト値がこれまでで最小なら（１５０７）、補正係数とコスト値を更新する（１５０８）。上記処理をすべての補正係数候補に対して終了すれば、コストが最小となる係数を最適な補正係数として補正係数の決定処理を終了する。
【実施例３】
【００４４】
実施例２による補正係数探索処理でもなお、補正係数候補のそれぞれについて補正処理、逆量子化、可変長符号化を行う必要があった。本実施例３では、さらに逆量子化を行うことなく探索処理を可能にする方法について示す。
図１６に、実施例３による補正係数探索処理について示す。まず、補正係数の候補１６０１の中から一つを選び１６０２）、量子化済みDCT係数６０３に足し合わせて補正後係数候補１６０４を生成する。続いて、補正係数候補１６０２の大きさを計算する１６０５。補正係数候補の大きさとしては、補正係数行列の各要素の絶対値和SAE（um of Absolute Element)や、低周波数成分に大きな重みを設定した重みつき絶対値和WSAE(Weighted SAE)を利用すると効果的である。【００４５】
【数７】
2012127706.tif 000009
【数８】
2012127706.tif 000010
ただし、s(i,j)は補正係数候補１６０２の(i,j)成分を、関数W(i,j)は、iおよびjが大きいほど値が小さくなる関数であるとする。一方、補正後係数候補１４０４に対して一次元展開を行い、VLCを施して符号量１６０７を計測する。最後に、計測した補正係数の大きさ１６０５と符号量１６０７をもとにコスト計算を行う。ここでは、例えば以下に示すコスト値を利用すると効果的である。
【数９】
2012127706.tif 000011
ただし、DistはSAEやWSAEなどの補正係数候補の大きさ、Rateは符号量、Weight３は重み係数を表す。ここでも、Weight３の値を調整することにより、画質と符号量のトレードオフを制御することができる。例えば画質を多少劣化させても符号量を大幅に低下させたければ、コスト値に対する符号量の寄与率が大きくなるようにWeigh３の値を高めに設定すればよい。【００４６】
図４は、本実施例３における変換係数補正部１１１Bについて、その詳細の一例を示したものである。変換係数補正部１１１Bは、補正係数候補を生成する補正係数候補生成部４０１と、補正係数候補の大きさを計算するための補正係数加算器４０２と、補正係数候補と変換係数を足し合わせるための加算器４０３と、変換係数に対して符号化を行う可変長符号化部４０４と、コスト計算を行うためのコスト評価部４０５と、コスト最小の補正係数候補を格納するための最適補正係数格納部４０６と、最適な補正係数を用いて変換係数を補正する加算部４０７を有する。【００４７】
補正係数候補生成部４０１は、補正係数候補を生成して１つずつ加算部４０２へ送る。加算部４０２では、取得した補正係数候補を量子化処理部１１０から送られてきた量子化済み変換係数と足し合わせて、補正係数加算部４０３および可変長符号化部４０４へ送る。補正係数加算部４０３では、［式７］［式８］等により補正係数候補の大きさを計算し、コスト評価部４０７へ送る。
可変長符号化部４０４では、補正後係数候補に対して符号化を行い、符号量を計測してコスト評価部４０５へ送る。コスト評価部４０５では、送られてきた符号量と補正係数候補の大きさを用いて［式９］等の計算式にてコスト計算を行い、これまでに計算されたどの補正係数候補のコストよりも小さければ、その補正係数とコスト値を最適補正係数格納部４０６へ送る。補正係数候補生成部４０１が出すすべての候補に対して上記処理を完了した時点で、最適補正係数格納部４０６に格納されている補正係数は加算部４０７へと送られ、量子化処理部１１０から送られてくる量子化済み変換係数と足し合わされて補正済み変換係数として可変長符号化部１１２へと送られる。【００４８】
図１７は、実施例３における補正係数の決定処理手順について説明している。まず、補正係数の候補を１つ算出し（１７０１）、量子化済み変換係数と足し合わせて補正後係数候補を生成する（１７０２）。さらに、補正後係数候補に対して可変長符号化を施して符号量を計算する一方（１７０３）、補正係数候補の大きさを算出する（１７０４）。続いて上記符号量と補正係数の大きさを用いてコスト計算を行う（１７０５）。算出されたコスト値がこれまでで最小なら（１７０６）、補正係数とコスト値を更新する（１７０７）。上記処理をすべての補正係数候補に対して終了すれば、コストが最小となる係数を最適な補正係数として補正係数の決定処理を終了する。【００４９】
上記の実施例１〜３実施例で使用される重み関数W(i,j)は、どのようなものでも構わないが、以下にその一例を示す。
【数１０】
2012127706.tif 000012
【実施例４】
【００５０】
図１８は、実施例４に係る動画像符号化装置のブロック図であり、実施例１の動画像符号化装置に、第１パス符号化部１４１と、選択部１４２を追加し、明示的に２パス符号化を行う構成が示されている。【００５１】
第１パス符号化部１４１は、ＤＣＴ係数の補正を行わない従来のH.264符号化ストリームを出力する部分であり、ブロック分割部１０３〜量子化処理部１１０及び逆量子化処理部１１３〜参照画像メモリ１１６の構成を備えている。以下、ブロック分割部１０３〜参照画像メモリ１１６の構成を、便宜的に第２パス符号化部と呼ぶ。本例では、第１及び第２パス符号化部はＣＡＢＡＣが利用できる。
第１パス符号化部１４１はまた、符号化中に決定した各種符号化パラメータ、動き情報等を、第２パス符号化部のために出力する。【００５２】
選択部１４２は、マクロブロック単位或いはそれよりも大きな単位（以下、選択単位と呼ぶ）で、第１パス符号化部１４１と第２パス符号化部（可変長符号化部１１２から入力される符号化ストリームの内、望ましい一方を選択して出力するとともに、選択されたパスの符号化結果を他方のパスの参照画像メモリにコピーするなどして、第１及び第２パスとの間で参照画像を同じに保つ制御を行う。
選択部１４２は、コスト評価部２０７と同様のコスト評価部２４７を有しており、コスト評価部２４７は、入力画像メモリから読み出した原画像と、各パスの参照画像メモリなどから読み出した符号化結果の部分画像とから、各パスの歪みを計測するとともに、各パスの符号化ストリームの量を計測し、Ｒ−Ｄ最適化等の手法に基づき、どちらのパスのコストが低いかを判断する。歪は、視覚特性を考慮して計測することが望ましく、視覚的に重要でない画像領域であることが分っている場合、第２パス符号化部を一時的に停止させてもよい。【００５３】
次に、本例の動作を説明する。
第２パス符号化部は、第１パス符号化部１４１よりも１ブロックから選択単位程度の時間遅れて動作し、第１パス符号化部１４１の符号化結果（レートと歪、マクロブロックのパーティショニング、ブロックの予測モード選択など）を参照しつつ、より高い効率を目指してチューニングされた符号化を行う。
ＤＣＴ係数の補正はチューニングの対象の１つであり、各ブロックで常に行う必要なく、第１パスにおいて選択単位中でコストが顕著に大きかった１つのブロックのみで行うようにしてもよい。また１つのブロックにおいて補正係数７０３を試行する回数は１回だけにしてもよく、その場合は確実に符号量或いは歪の低減が期待できる補正係数を用いることが望ましい。
選択単位は一例として、レート制御におけるBasic Unitの様な、１ないし複数のマクロブロックからなる単位とすることができる。【００５４】
上記の実施例１〜３では、どれも予測および周波数変換をブロック単位で行っているが、それ以外にも例えば画像の背景から分離したオブジェクト単位で算出しても良い。また、周波数変換の一例としてDCTを挙げているが、DST(Discrete Sine Transformation：離散サイン変換)、WT(Wavelet Transformation：ウェーブレット変換)、DFT(Discrete Fourier Transformation：離散フーリエ変換)、KLT(Karhunen-Loeve Transformation：カルーネン-レーブ変換)など、画素間相関除去に利用する直交変換ならどんなものでも構わない。
これらの実施例では、図７のように量子化後のDCT係数に対して補正を行うものとして説明したが、図１９に示すように、量子化前のDCT係数に対して補正を行っても良い。この場合、量子化前のDCT係数１８０１に対して補正係数探索１８０２を行い、得られた補正係数１８０３を量子化前DCT係数に足し合わせることによりDCT係数の補正を行う。補正済みDCT係数１８０４に対しては、通常の符号化処理(量子化、１次元展開、VLC)を行い、符号語を生成する。
また、例えばMPEG-１やMPEG-２のイントラ符号化のように、特に予測を行わずに原画像に対して周波数変換を施しても構わない。可変長符号化も特に行わなくて良い。
【産業上の利用可能性】
【００５５】
本発明は、H.261、MPEG-１、H.262/MPEG-２、MPEG-4、H.263、H.264/AVCなど周波数変換を用いる方式ならどのような動画像符号化方式にも適用できるだけでなく、JPEG、JPEG-２０００など周波数変換を用いる静止画像符号化方式にも適用可能である。また、画像だけでなく、周波数変換と可変長符号化を組み合わせて用いる音声符号化などにも適用可能である。
【符号の説明】
【００５６】
１０１…原画像、１０２…入力画像メモリ、１０３…ブロック分割部、１０４…動き探索部、１０５…画面内予測部、１０６…画面間予測部、１０７…モード選択部、１０８…現残部、１０９…周波数変換部、１１０…量子化処理部、１１１…変換係数補正部、１１２…可変長符号化部、１１３…逆量子化処理部、１１４…逆周波数変換部、１１５…加算部、１１６…参照画像メモリ、２０１…補正係数候補生成部、２０２…加算部、２０３…可変長符号化部、２０４…逆量子化処理部、２０５…逆周波数変換部、２０６…誤差計算部、２０７…コスト評価部、２０８…最適補正係数格納部、２０９…加算部。
【図１】
2012127706.tif 000013
【図２】
2012127706.tif 000014
【図３】
2012127706.tif 000015
【図４】
2012127706.tif 000016
【図５】
2012127706.tif 000017
【図６】
2012127706.tif 000018
【図７】
2012127706.tif 000019
【図８】
2012127706.tif 000020
【図９】
2012127706.tif 000021
【図１０】
2012127706.tif 000022
【図１１】
2012127706.tif 000023
【図１２】
2012127706.tif 000024
【図１３】
2012127706.tif 000025
【図１４】
2012127706.tif 000026
【図１５】
2012127706.tif 000027
【図１６】
2012127706.tif 000028
【図１７】
2012127706.tif 000029
【図１８】
2012127706.tif 000030
【図１９】
2012127706.tif 000031
【国際調査報告】
2012127706.tif 000032
2012127706.tif 000033
2012127706.tif 000034