(57)【特許請求の範囲】
【請求項１】
入力されたビットストリームから、動きベクトルに関する情報と、フレーム識別フラグと、を分離する第１ステップと、
前記フレーム識別フラグが、フレーム間予測を示すものであった場合に、前記動きベクトルに関する情報と既に復号化済の参照画像とをもとに動き補償を行い、復号対象画像の予測画像を合成する第２ステップと、
前記予測画像を用いて前記復号対象画像を復号化する第３ステップとを有し、
前記第２ステップにおける処理状態には、
前記フレーム間予測が双方向予測であるとき、プラスの丸め込みを用いた動き補償により合成された第１の参照画像と、マイナスの丸め込みを用いた動き補償により合成された第２の参照画像とを平均化した画像を、前記復号対象画像の予測画像として用いる状態を含む
ことを特徴とする動画像の復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレーム間予測を行い、輝度または色の強度が量子化された数値として表される動画像符号化および復号化方法、ならびに動画像の符号化装置および復号化装置に関するものである。
【背景技術】
【０００２】
動画像の高能率符号化において、時間的に近接するフレーム間の類似性を活用するフレーム間予測（動き補償）は情報圧縮に大きな効果を示すことが知られている。現在の画像符号化技術の主流となっている動き補償方式は、動画像符号化方式の国際標準であるＨ．２６３、ＭＰＥＧ１、ＭＰＥＧ２に採用されている半画素精度のブロックマッチングである。この方式では、符号化しようとする画像を多数のブロックに分割し、ブロックごとにその動きベクトルを水平・垂直方向に隣接画素間距離の半分の長さを最小単位として求める。
【０００３】
この処理を数式を用いて表現すると以下のようになる。符号化しようとするフレーム（現フレーム ）の予測画像Ｐの座標(ｘ, ｙ)におけるサンプル値（輝度または色差の強度のサンプル値）をＰ(ｘ, ｙ)、参照画像Ｒ（Ｐと時間的に近接しており、既に符号化が完了しているフレームの復号画像）の座標(ｘ, ｙ)におけるサンプル値をＲ(ｘ, ｙ)とする。また、ｘとｙは整数であるとして、ＰとＲでは座標値が整数である点に画素が存在すると仮定する。また、画素のサンプル値は負ではない整数として量子化されているとする。このとき、ＰとＲの関係は、
【０００４】
【数１】
0005418710.tif 000002
【０００５】
で表される。ただし、画像はＮ個のブロックに分割されるとして、Ｂiは画像のｉ番目のブロックに含まれる画素、(ｕi, ｖi)はｉ番目のブロックの動きベクトルを表している。
【０００６】
ｕiとｖiの値が整数ではないときには、参照画像において実際には画素が存在しない点の強度値を求めることが必要となる。この際の処理としては、周辺４画素を用いた共１次内挿が使われることが多い。この内挿方式を数式で記述すると、ｄを正の整数、０≦ｐ,ｑ＜ｄとして、Ｒ(ｘ＋ｐ／ｄ, ｙ＋ｑ／ｄ)は、
【０００７】
【数２】
0005418710.tif 000003
【０００８】
で表される。ただし「//」は除算の一種で、通常の除算（実数演算による除算）の結果を近隣の整数に丸め込むことを特徴としている。
【０００９】
図１にＨ．２６３の符号化器の構成例１００を示す。Ｈ．２６３は、符号化方式として、ブロックマッチングとＤＣＴ（離散コサイン変換）を組み合わせたハイブリッド符号化方式（フレーム間／フレーム内適応符号化方式）を採用している。
【００１０】
減算器１０２は入力画像（現フレームの原画像）１０１とフレーム間／フレーム内符号化切り換えスイッチ１１９の出力画像１１３（後述）との差を計算し、誤差画像１０３を出力する。この誤差画像は、ＤＣＴ変換器１０４でＤＣＴ係数に変換された後に量子化器１０５で量子化され、量子化ＤＣＴ係数１０６となる。この量子化ＤＣＴ計数は伝送情報として通信路に出力されると同時に、符号化器内でもフレーム間予測画像を合成するために使用される。
【００１１】
以下に予測画像合成の手順を説明する。上述の量子化ＤＣＴ係数１０６は、逆量子化器１０８と逆ＤＣＴ変換器１０９を経て復号誤差画像１１０（受信側で再生される誤差画像と同じ画像）となる。これに、加算器１１１においてフレーム間／フレーム内符号化切り換えスイッチ１１９の出力画像１１３（後述）が加えられ、現フレームの復号画像１１２（受信側で再生される現フレームの復号画像と同じ画像）を得る。この画像は一旦フレームメモリ１１４に蓄えられ、１フレーム分の時間だけ遅延される。したがって、現時点では、フレームメモリ１１４は前フレームの復号画像１１５を出力している。この前フレームの復号画像と現フレームの入力画像１０１がブロックマッチング部１１６に入力され、ブロックマッチングの処理が行われる。
【００１２】
ブロックマッチングでは、画像を複数のブロックに分割し、各ブロックごとに現フレームの原画像に最も似た部分を前フレームの復号画像から取り出すことにより、現フレームの予測画像１１７が合成される。このときに、各ブロックが前フレームと現フレームの間でどれだけ移動したかを検出する処理（動き推定処理）を行う必要がある。動き推定処理によって検出された各ブロックごとの動きベクトルは、動きベクトル情報１２０として受信側へ伝送される。
【００１３】
受信側は、この動きベクトル情報と前フレームの復号画像から、独自に送信側で得られるものと同じ予測画像を合成することができる。予測画像１１７は、「０」信号１１８と共にフレーム間／フレーム内符号化切り換えスイッチ１１９に入力される。このスイッチは、両入力のいずれかを選択することにより、フレーム間符号化とフレーム内符号化を切り換える。予測画像１１７が選択された場合（図２はこの場合を表している）には、フレーム間符号化が行われる。一方、「０」信号が選択された場合には、入力画像がそのままＤＣＴ符号化されて通信路に出力されるため、フレーム内符号化が行われることになる。受信側が正しく復号化画像を得るためには、送信側でフレーム間符号化が行われたかフレーム内符号化が行われたかを知る必要がある。このため、識別フラグ１２１が通信路へ出力される。最終的なＨ．２６３符号化ビットストリーム１２３は多重化器１２２で量子化ＤＣＴ係数、動きベクトル、フレーム内／フレーム間識別フラグの情報を多重化することによって得られる。
【００１４】
図２に図１の符号化器が出力した符号化ビットストリームを受信する復号化器２００の構成例を示す。受信したＨ．２６３ビットストリーム２１７は、分離器２１６で量子化ＤＣＴ係数２０１、動きベクトル情報２０２、フレーム内／フレーム間識別フラグ２０３に分離される。量子化ＤＣＴ係数２０１は逆量子化器２０４と逆ＤＣＴ変換器２０５を経て復号化された誤差画像２０６となる。この誤差画像は加算器２０７でフレーム間／フレーム内符号化切り換えスイッチ２１４の出力画像２１５を加算され、復号化画像２０８として出力される。フレーム間／フレーム内符号化切り換えスイッチはフレーム間／フレーム内符号化識別フラグ２０３に従って、出力を切り換える。フレーム間符号化を行う場合に用いる予測画像２１２は、予測画像合成部２１１において合成される。ここでは、フレームメモリ２０９に蓄えられている前フレームの復号画像２１０に対して、受信した動きベクトル情報２０２に従ってブロックごとに位置を移動させる処理が行われる。一方フレーム内符号化の場合、フレーム間／フレーム内符号化切り換えスイッチは、「０」信号２１３をそのまま出力する。
【発明の概要】
【発明が解決しようとする課題】
【００１５】
Ｈ．２６３が符号化する画像は、輝度情報を持つ１枚の輝度プレーン（Ｙプレーン）と色情報（色差情報とも言う）を持つ２枚の色差プレーン（ＵプレーンとＶプレーン）で構成されている。このとき、画像が水平方向に２ｍ画素、垂直方向に２ｎ画素持っている場合に（ｍとｎは正の整数とする）、Ｙプレーンは水平方向に２ｍ、垂直方向に２ｎ個の画素を持ち、ＵおよびＶプレーンは水平方向にｍ、素直方向にｎ個の画素を持つことを特徴としている。このように色差プレーンの解像度が低いのは、人間の視覚が色差の空間的な変化に比較的鈍感であるという特徴を持つためである。このような画像を入力として、Ｈ．２６３ではマクロブロックと呼ばれるブロックを単位として符号化・復号化の処理が行われる。
【００１６】
図３にマクロブロックの構成を示す。マクロブロックはＹブロック、Ｕブロック、Ｖブロックの３個のブロックで構成され、輝度値情報を持つＹブロック３０１の大きさは１６×１６画素、色差情報をもつＵブロック３０２およびＶブロック３０３の大きさは８×８画素となっている。
【００１７】
Ｈ．２６３では、各マクロブロックに対して半画素精度のブロックマッチングが適用される。したがって、推定された動きベクトルを(ｕ, ｖ)とすると、ｕとｖはそれぞれ画素間距離の半分、つまり１／２を最小単位として求められることになる。このときの強度値（以下では、「輝度値」と色差の強度値を総称して「強度値」と呼ぶ）の内挿処理の様子を図４に示す。Ｈ．２６３では、数２の内挿を行う際に、除算の結果は最も近い整数に丸め込まれ、かつ除算の結果が整数に0.5を加えた値となるときには、これを０から遠ざける方向に切り上げる処理が行われる。
【００１８】
つまり、図４において、画素４０１、４０２、４０３、４０４の強度値をそれぞれＬa、Ｌb、Ｌc、Ｌdとすると（Ｌa、Ｌb、Ｌc、Ｌdは負ではない整数）、内挿により強度値を求めたい位置４０５、４０６、４０７、４０８の強度値Ｉa、Ｉb、Ｉc、Ｉdは（Ｉa、Ｉb、Ｉc、Ｉdは負ではない整数）、以下の式によって表される。
【００１９】
【数３】
0005418710.tif 000004
【００２０】
ただし、「[  ]」は小数部分を切り捨てる処理を表している。
【００２１】
このとき、除算の結果を整数値に丸め込む処理によって発生する誤差の期待値を計算することを考える。内挿により強度値を求めたい位置が、図４の位置４０５、４０６、４０７、４０８となる確率をそれぞれ１／４とする。このとき、位置４０５の強度値Ｉaを求める際の誤差は明らかに０である。また、位置４０６の強度値Ｉbを求める際の誤差は、Ｌa＋Ｌbが偶数の場合は０、奇数の場合は切り上げが行われるので１／２となる。Ｌa＋Ｌbが偶数になる確率と奇数になる確率は共に１／２であるとすれば、誤差の期待値は、０・１／２＋１／２・１／２＝１／４となる。位置４０７の強度値Ｉcを求める際も誤差の期待値はＩbの場合と同様に１／４となる。位置４０８の強度値Ｉcを求める際には、Ｌa＋Ｌb＋Ｌc＋Ｌdを４で割った際のあまりが０、１、２、３である場合の誤差はそれぞれ０、−１／４、１／２、１／４となり、あまりが０から３になる確率をそれぞれ等確率とすれば、誤差の期待値は０・１／４−１／４・１／４＋１／２・１／４＋１／４・１／４＝１／８となる。上で述べた通り、位置４０５〜４０８における強度値が計算される確率は等確率であるとすれば、最終的な誤差の期待値は、０・１／４＋１／４・１／４＋１／４・１／４＋１／８・１／４＝５／３２となる。これは、一回ブロックマッチングによる動き補償を行う度に、画素の強度値に５／３２の誤差が発生することを意味している。
【００２２】
一般的に低レート符号化の場合には、フレーム間予測誤差を符号化するためのビット数を十分に確保することができないため、ＤＣＴ係数の量子化ステップサイズを大きくする傾向がある。したがって、動き補償で発生した誤差を誤差符号化によって修正しにくくなる。このようなときにフレーム内符号化を行わずにフレーム間符号化をずっと続けた場合には、上記誤差が蓄積し、再生画像が赤色化するなどの悪い影響を与える場合がある。
【００２３】
上で説明した通り、色差プレーンの画素数は縦方向、横方向共に画素数が半分となっている。したがって、ＵブロックとＶブロックに対しては、Ｙブロックの動きベクトルの水平・垂直成分をそれぞれ２で割った値が使用される。このとき、もとのＹブロックの動きベクトルの水平・垂直成分であるｕとｖが１／２の整数倍の値であるため、通常の割り算を実行した場合には、動きベクトルは１／４の整数倍の値が出現することになる。しかし、座標値が１／４の整数倍をとるときの強度値の内挿演算が複雑となるため、Ｈ．２６３ではＵブロックとＶブロックの動きベクトルも半画素精度に丸め込まれる。このときの丸め込みの方法は以下の通りである。
【００２４】
いま、ｕ／２＝ｒ＋ｓ／４であるとする。このとき、ｒとｓは整数であり、さらにｓは０以上３以下の値をとるとする。ｓが０または２のときはｕ／２は１／２の整数倍であるため、丸め込みを行う必要がない。しかし、ｓが１または３のときは、これを２に丸め込む操作が行われる。これは、ｓが２となる確率を高くすることにより、強度値の内挿が行われる回数を増やし、動き補償処理にフィルタリングの作用を持たせるためである。
【００２５】
丸め込みが行われる前のｓの値が０〜３の値をとる確率をそれぞれ１／４とした場合、丸め込みが終わったあとにｓが０、２となる確率はそれぞれ１／４と３／４となる。以上は動きベクトルの水平成分ｕに関する議論であったが、垂直成分であるｖに関しても全く同じ議論が適用できる。
【００２６】
したがって、ＵブロックおよびＶブロックにおいて、４０１の位置の強度値が求められる確率は１／４・１／４＝１／１６、４０２および４０３の位置の強度値が求められる確率は共に１／４・３／４＝３／１６、４０４の位置の強度値が求められる確率は３／４・３／４＝９／１６となる。これを用いて上と同様の手法により、強度値の誤差の期待値を求めると、０・１／１６＋１／４・３／１６＋１／４・３／１６＋１／８・９／１６＝２１／１２８となり、上で説明したＹブロックの場合と同様にフレーム内符号化を続けた場合の誤差の蓄積の問題が発生する。
【００２７】
フレーム間予測を行い、輝度または色の強度が量子化された数値として表される動画像符号化および復号化方法では、フレーム間予測において輝度または色の強度を量子化する際の誤差が蓄積する場合がある。本発明の目的は、上記誤差の蓄積を防ぐことにより、再生画像の画質を向上させることにある。
【課題を解決するための手段】
【００２８】
誤差の発生を抑えるか、発生した誤差を打ち消す操作を行うことにより、誤差の蓄積を防ぐ。
【発明の効果】
【００２９】
本発明により、フレーム間予測画像における丸め込み誤差の蓄積を抑えることが可能となり、再生画像の画質を向上させることが可能となる。
【図面の簡単な説明】
【００３０】
【図１】Ｈ．２６３の画像符号化器の構成例を示した図である。
【図２】Ｈ．２６３の画像復号化器の構成例を示した図である。
【図３】Ｈ．２６３におけるマクロブロックの構成を示した図である。
【図４】半画素成度のブロックマッチングにおける輝度値の内挿処理の様子を示した図である。
【図５】符号化された画像系列の様子を示した図である。
【図６】ソフトウェア画像符号化装置の構成例を示した図である。
【図７】ソフトウェア画像復号化装置の構成例を示した図である。
【図８】ソフトウェア画像符号化装置における処理のフローチャートの例を示した図である。
【図９】ソフトウェア画像符号化装置における符号化モード決定処理のフローチャートの例を示した図である。
【図１０】ソフトウェア画像符号化装置における動き推定・動き補償処理のフローチャートの例を示した図である。
【図１１】ソフトウェア画像復号化装置における処理のフローチャートの例を示した図である。
【図１２】ソフトウェア画像復号化装置における動き補償処理のフローチャートの例を示した図である。
【図１３】ＩフレームとＰ＋フレームとＰ−フレームを混在させる符号化方法により符号化されたビットストリームを記録した蓄積メディアの例を示した図である。
【図１４】Ｐ＋フレームとＰ−フレームを混在させる符号化方法を使用する装置の具体例を示した図である。
【図１５】ＩフレームとＢフレームとＰ＋フレームとＰ−フレームを混在させる符号化方法により符号化されたビットストリームを記録した蓄積メディアの例を示した図である。
【図１６】Ｐ＋フレームとＰ−フレームを混在させる符号化方法を使用する装置に含まれるブロックマッチング部の例を示した図である。
【図１７】Ｐ＋フレームとＰ−フレームを混在させる符号化方法により符号化されたビットストリームを復号化する装置に含まれる予測画像合成部の例を示した図である。
【発明を実施するための形態】
【００３１】
まず、「従来の技術」で述べた丸め込み誤差の蓄積がどのような場合に発生するかについて考える。
【００３２】
図５にＭＰＥＧ１、ＭＰＥＧ２、Ｈ．２６３などの双方向予測と片方向予測の両方を実行することができる符号化方法により符号化された動画像の例を示す。画像５０１はフレーム内符号化によって符号化されたフレームであり、Ｉフレームと呼ばれる。これに対し、画像５０３、５０５、５０７、５０９はＰフレームと呼ばれ、直前のＩまたはＰフレームを参照画像とする片方向のフレーム間符号化により符号化される。したがって、例えば画像５０５を符号化する際には画像５０３を参照画像とするフレーム間予測が行われる。画像５０２、５０４、５０６、５０８はＢフレームと呼ばれ、直前と直後のＩまたはＰフレームを用いた双方向のフレーム間予測が行われる。Ｂフレームは、他のフレームがフレーム間予測を行う際に参照画像として利用されないという特徴も持っている。
【００３３】
まず、Ｉフレームでは動き補償が行われないため、動き補償が原因となる丸め込み誤差は発生しない。これに対し、Ｐフレームでは動き補償が行われる上に、他のＰまたはＢフレームの参照画像としても使用されるため、丸め込み誤差の蓄積を引き起こす原因となる。一方、Ｂフレームは動き補償は行われるために丸め込み誤差の蓄積の影響は現れるが、参照画像としては使用されないために丸め込み誤差の蓄積の原因とはならない。このことから、Ｐフレームにおける丸め込み誤差の蓄積を防げば、動画像全体で丸め込み誤差の悪影響を緩和することができる。なお、Ｈ．２６３ではＰフレームとＢフレームをまとめて符号化するＰＢフレームと呼ばれるフレームが存在するが（例えばフレーム５０３と５０４をＰＢフレームとしてまとめて符号化することができる）、組み合わされた２枚のフレームを別々の物として考えれば、上と同じ議論を適用することができる。つまり、ＰＢフレームの中でＰフレームに相当する部分に対して丸め込み誤差への対策を施せば、誤差の蓄積を防ぐことができる。
【００３４】
丸め込み誤差は、強度値の内挿を行う際に、通常の除算（演算結果が実数になる除算）の結果として整数値に0.5を加えた値が出るような場合に、これを０から遠ざける方向に切り上げているために発生している。例えば内挿された強度値を求めるために４で割る操作を行うような場合、あまりが１である場合と３である場合は発生する誤差の絶対値が等しくかつ符号が逆になるため、誤差の期待値を計算する際に互いに打ち消し合う働きをする（より一般的には、正の整数ｄ’で割る場合には、あまりがｔである場合とｄ’−ｔである場合が打ち消し合う）。しかし、あまりが２である場合、つまり通常の除算の結果が整数に0.5を加えた値が出る場合には、これを打ち消すことができず、誤差の蓄積につながる。
【００３５】
そこで、このように通常の除算の結果、整数に0.5を加えた値が出た際にに切り上げを行う丸め込み方法と切り捨てを行う丸め込み方法の両者を選択可能とし、これらをうまく組み合わせることより、発生した誤差を打ち消すことを考える。以下では、通常の除算の結果を最も近い整数に丸め込み、かつ整数に0.5を加えた値は０から遠ざける方向に切り上げる丸め込み方法を「プラスの丸め込み」と呼ぶ。また、通常の除算の結果を最も近い整数に丸め込み、かつ整数に0.5を加えた値は０に近づける方向に切り捨てる丸め込み方法を「マイナスの丸め込み」と呼ぶこととする。数３は、半画素精度のブロックマッチングにおいてプラスの丸め込みを行う場合の処理を示しているが、マイナスの丸め込みを行う場合には、これは以下のように書き換えることができる。
【００３６】
【数４】
0005418710.tif 000005
【００３７】
いま、予測画像の合成における強度値の内挿の際ににプラスの丸め込みを行う動き補償を、プラスの丸め込みを用いる動き補償、マイナスの丸め込みを行う動き補償をマイナスの丸め込みを用いる動き補償とする。また、半画素精度のブロックマッチングを行い、かつプラスの丸め込みを用いる動き補償が適用されるＰフレームをＰ＋フレーム、逆にマイナスの丸め込みを用いる動き補償が適用されるＰフレームをＰ−フレームと呼ぶことする（この場合、Ｈ．２６３のＰフレームはすべてＰ＋フレームということになる）。Ｐ−フレームにおける丸め込み誤差の期待値は、Ｐ＋フレームのそれと絶対値が等しく、符号が逆となる。したがって、時間軸に対し、Ｐ＋フレームとＰ−フレームが交互に現れるようにすれば、丸め込み誤差の蓄積を防ぐことができる。
【００３８】
図５の例では、フレーム５０３、５０７をＰ＋フレーム、フレーム５０５、５０９をＰ−フレームとすれば、この処理を実現することができる。また、Ｐ＋フレームとＰ−フレームが交互に発生することは、Ｂフレームにおいて双方向の予測を行う際にＰ＋フレームとＰ−フレームが一枚ずつ参照画像として使用されることを意味している。一般的にＢフレームにおいては順方向の予測画像（例えば図５のフレーム５０４を符号化する際に、フレーム５０３を参照画像として合成される予測画像）と逆方向の予測画像（例えば図５のフレーム５０４を符号化する際に、フレーム５０５を参照画像として合成される予測画像）の平均が予測画像として使用できる場合が多い。したがって、ここでＰ＋フレームとＰ−フレームから合成した画像を平均化することは、誤差の影響を打ち消す意味で有効である。
【００３９】
なお、上で述べた通り、Ｂフレームにおける丸め込み処理は誤差の蓄積の原因とはならない。したがって、すべてのＢフレームに対して同じ丸め込み方法を適用しても問題は発生しない。例えば、図５のＢフレーム５０２、５０４、５０６、５０８のすべてが正の丸め込みに基づく動き補償を行ったとしても、特に画質の劣化の原因とはならない。Ｂフレームの復号化処理を簡略化する意味では、Ｂフレームに関しては１種類の丸め込み方法のみを用いることが望ましい。
【００４０】
図１６に、上で述べた複数の丸め込み方法に対応した画像符号化器のブロックマッチング部１６００の例を示す。他の図と同じ番号は、同じものを指している。図１のブロックマッチング部１１６を１６００に入れ換えることにより、複数の丸め込み方法に対応することができる。動き推定器１６０１において、入力画像１０１と前フレームの復号画像１１２との間で動き推定の処理が行われる。この結果、動き情報１２０が出力される。この動き情報は、予測画像合成器１６０３において予測画像を合成する際に利用される。
【００４１】
丸め込み方法決定器１６０２は、現在符号化を行っているフレームにおいて使用する丸め込み方法を正の丸め込みとするか、負の丸め込みとするかを判定する。決定した丸め込み方法に関する情報１６０４は、予測画像合成器１６０３に入力される。この予測画像合成器では、１６０４によって指定された丸め込み方法に基づいて予測画像１１７が合成、出力される。なお、図１のブロックマッチング部１１６には、図１６の１６０２、１６０４に相当する部分が無く、予測画像は、正の丸め込みによってのみ合成される。また、ブロックマッチング部から決定した丸め込み方法１６０５を出力し、この情報をさらに多重化して伝送ビットストリームに組み込んで伝送しても良い。
【００４２】
図１７に、複数の丸め込み方法に対応した画像復号化器の予測画像合成部１７００の例を示す。他の図と同じ番号は、同じものを指している。図２の予測画像合成部２１１を１７００に入れ換えることにより、複数の丸め込み方法に対応することが可能となる。丸め込み方法決定器１７０１では、復号化を行う際の予測画像合成処理に適用される丸め込み方法が決定される。
【００４３】
なお、正しい復号化を行うためには、ここで決定される丸め込み方法は、符号化の際に適用された丸め込み方法と同じものでなければならない。例えば、最後に符号化されたＩフレームから数えて奇数番目のＰフレームには正の丸め込み、偶数番目のＰフレームに対しては負の丸め込みが適用されることを原則とし、符号化側の丸め込み方法決定器（例えば、図１６の１６０２）と復号化側の丸め込み方法決定器１７０１の両者がこの原則に従えば、正しい復号化を行うことが可能となる。このようにして決定された丸め込み方法に関する情報１７０２と、前フレームの復号画像２１０、動き情報２０２から、予測画像合成器１７０３では、予測画像が合成される。この予測画像２１２は出力され、復号画像の合成に活用される。
【００４４】
なお、ビットストリーム内に丸め込み方法に関する情報が組み込まれる場合（図１６の符号化器で、丸め込み方法に関する情報１６０５が出力されるような場合）も考えることができる。この場合、丸め込み方法決定器１７０１は使用されず、符号化ビットストリームから抽出された丸め込み方法に関する情報１７０４が予測画像合成器１７０３に入力される。
【００４５】
本発明は、図１、２に示されている従来型の専用回路・専用チップを用いる画像符号化装置、画像復号化装置の他に、汎用プロセッサを用いるソフトウェア画像符号化装置、ソフトウェア画像復号化装置にも適用することができる。図６と７にこのソフトウェア画像符号化装置６００とソフトウェア画像復号化装置７００の例を示す。ソフトウェア符号化器６００では、まず入力画像６０１は入力フレームメモリ６０２に蓄えられ、汎用プロセッサ６０３はここから情報を読み込んで符号化の処理を行う。この汎用プロセッサを駆動するためのプログラムはハードディスクやフロッピー（登録商標）ディスクなどによる蓄積デバイス６０８から読み出されてプログラム用メモリ６０４に蓄えられる。また、汎用プロセッサは処理用メモリ６０５を活用して符号化の処理を行う。汎用プロセッサが出力する符号化情報は一旦出力バッファ６０６に蓄えられた後に符号化ビットストリーム６０７として出力される。
【００４６】
図６に示したソフトウェア符号化器上で動作する符号化ソフトウェア(コンピュータ読み取り可能な記録媒体）のフローチャートの例を図８に示す。まず８０１で処理が開始され、８０２で変数Ｎに０が代入される。続いて８０３、８０４でＮの値が１００である場合には、０が代入される。Ｎはフレーム数のカウンタであり、１枚のフレームの処理が終了する度に１が加算され、符号化を行う際には０〜９９の値をとることが許される。Ｎの値が０であるときには符号化中のフレームはＩフレームであり、奇数のときにはＰ＋フレーム、０以外の偶数のときにはＰ−フレームとなる。Ｎの値の上限が９９であることは、Ｐフレーム（Ｐ＋またはＰ−フレーム）が９９枚符号化された後にＩフレームが１枚符号化されることを意味している。
【００４７】
このように、何枚かのフレームの中に必ず１枚Ｉフレームを入れることにより、（ａ）符号化器と復号化器の処理の不一致（例えば、ＤＣＴの演算結果の不一致）による誤差の蓄積を防止する、（ｂ）符号化データから任意のフレームの再生画像を得る処理（ランダムアクセス）の処理量を減少させる、などの効果を得ることができる。Ｎの最適な値は符号化器の性能や符号化器が使用される環境により変化する。この例では１００という値を使用したが、これはＮの値が必ず１００でなければならいことを意味しているわけではない。
【００４８】
フレームごとの符号化モード、丸め込み方法を決定する処理は８０５で行われるが、その処理の詳細を表すフローチャートの例を図９に示す。まず、９０１でＮは０であるか否かが判定され、０である場合には９０２で予測モードの識別情報として’Ｉ’が出力バッファに出力され、これから符号化処理を行うフレームはＩフレームとなる。なお、ここで「出力バッファに出力される」とは、出力バッファに蓄えられた後に符号化ビットストリームの一部として符号化装置から外部に出力されることを意味している。Ｎが０ではない場合には、９０３で予測モードの識別情報として’Ｐ’が出力される。Ｎが０ではない場合には、さらに９０４でＮが奇数か偶数であるかが判定される。Ｎが奇数の場合には９０５で丸め込み方法の識別情報として’＋’が出力され、これから符号化処理を行うフレームはＰ＋フレームとなる。一方、Ｎが偶数の場合には９０６で丸め込み方法の識別情報として’−’が出力され、これから符号化処理を行うフレームはＰ−フレームとなる。
【００４９】
再び図８に戻る。８０５で符号化モードを決定した後、８０６で入力画像はフレームメモリＡに蓄えられる。なお、ここで述べたフレームメモリＡとは、ソフトウェア符号化器のメモリ領域（例えば、図６の６０５のメモリ内にこのメモリ領域が確保される）の一部を意味している。８０７では、現在符号化中のフレームがＩフレームであるか否かが判定される。そして、Ｉフレームではない場合には８０８で動き推定・動き補償処理が行われる。
【００５０】
この８０８における処理の詳細を表すフローチャートの例を図１０に示す。まず、１００１でフレームメモリＡとＢ（本段落の最後に書かれている通り、フレームメモリＢには前フレームの復号画像が格納されている）に蓄えられた画像の間でブロックごとに動き推定の処理が行われ、各ブロックの動きベクトルが求められ、その動きベクトルは出力バッファに出力される。続いて１００２で現フレームがＰ＋フレームであるか否かが判定され、Ｐ＋フレームである場合には１００３で正の丸め込みを用いて予測画像が合成され、この予測画像はフレームメモリＣに蓄えられる。一方、現フレームがＰ−フレームである場合には１００４で負の丸め込みを用いて予測画像が合成され、この予測画像がフレームメモリＣに蓄えられる。そして１００５ではフレームメモリＡとＣの差分画像が求められ、これがフレームメモリＡに蓄えられる。
【００５１】
ここで再び図８に戻る。８０９における処理が開始される直前、フレームメモリＡには、現フレームがＩフレームである場合には入力画像が、現フレームがＰフレーム（Ｐ＋またはＰ−フレーム）である場合には入力画像と予測画像の差分画像が蓄えられている。８０９では、このフレームメモリＡに蓄えられた画像に対してＤＣＴが適用され、ここで計算されたＤＣＴ係数は量子化された後に出力バッファに出力される。そしてさらに８１０で、この量子化ＤＣＴ係数には逆量子化され、逆ＤＣＴが適用され、この結果得られた画像はフレームメモリＢに格納される。続いて８１１では、再び現フレームがＩフレームであるか否かが判定され、Ｉフレームではない場合には８１２でフレームメモリＢとＣの画像が加算され、この結果がフレームメモリＢに格納される。ここで、１フレーム分の符号化処理が終了することになる。
【００５２】
そして、８１３の処理が行われる直前にフレームメモリＢに格納されている画像は、符号化処理が終了したばかりのフレームの再生画像（復号側で得られるものと同じ）である。８１３では、符号化が終了したフレームが最後のフレームであるか否かが判定され、最後のフレームであれば、符号化処理が終了する。最後のフレームではない場合には、８１４でＮに１が加算され、再び８０３に戻って次のフレームの符号化処理が開始される。
【００５３】
図７にソフトウェア復号化器７００の例を示す。入力された符号化ビットストリーム７０１は一旦入力バッファ７０２に蓄えられた後に汎用プロセッサ７０３に読み込まれる。汎用プロセッサはハードディスクやフロッピー（登録商標）ディスクなどによる蓄積デバイス７０８から読み出されたプログラムを蓄えるプログラム用メモリ７０４、および処理用メモリ７０５を活用して復号化処理を行う。この結果得られた復号化画像は一旦出力フレームメモリ７０６に蓄えられた後に出力画像７０７として出力される。
【００５４】
図７に示したソフトウェア復号化器上で動作する復号化ソフトウェアのフローチャートの例を図１１に示す。１１０１で処理が開始され、まず１１０２で入力情報があるか否かが判定される。ここで入力情報が無ければ１１０３で復号化の処理を終了する。入力情報がある場合には、まず、１１０４で符号化識別情報が入力される。なお、この「入力される」とは、入力バッファ（例えば、図７の７０２）に蓄えられた情報を読み込むことを意味している。１１０５では、読み込んだ符号化モード識別情報が’Ｉ’であるか否かが判定される。そして、’Ｉ’ではない場合には、１１０６で丸め込み方法の識別情報が入力され、続いて１１０７で動き補償処理が行われる。
【００５５】
この１１０７で行われる処理の詳細を表したフローチャートの例を図１２に示す。まず、１２０１でブロックごとの動きベクトル情報が入力される。そして、１２０２で１１０６で読み込まれた丸め込み方法の識別情報が’＋’であるか否かが判定される。これが’＋’である場合には、現在復号化中のフレームがＰ＋フレームである。このとき１２０３で正の丸め込みにより予測画像が合成され、この予測画像はフレームメモリＤに格納される。
【００５６】
なお、ここで述べたフレームメモリＤとは、ソフトウェア復号化器のメモリ領域（例えば、図７の７０５のメモリ内にこのメモリ領域が確保される）の一部を意味している。一方、丸め込み方法の識別情報が’＋’ではない場合には、現在復号化中のフレームがＰ−フレームであり、１２０４で負の丸め込みにより予測画像が合成され、この予測画像はフレームメモリＤに格納される。このとき、もし何らかの誤りにより、Ｐ＋フレームがＰ−フレームとして復号化されたり、逆にＰ−フレームがＰ＋フレームとして復号化された場合には、符号化器が意図したものとは異なる予測画像が復号化器において合成されることになり、正しい復号化が行われずに画質が劣化する。
【００５７】
ここで図１１に戻る。１１０８では量子化ＤＣＴ係数が入力され、これに逆量子化、逆ＤＣＴを適用して得られた画像がフレームメモリＥに格納される。１１０９では、再び現在復号化中のフレームがＩフレームであるか否かが判定される。そして、Ｉフレームではない場合には、１１１０でフレームメモリＤとＥに格納された画像が加算され、この結果の画像がフレームメモリＥに格納される。１１１１の処理を行う直前にフレームメモリＥに格納されている画像が、再生画像となる。１１１１では、このフレームメモリＥに格納された画像が出力フレームメモリ（例えば、図７の７０６）に出力され、そのまま出力画像として復号化器から出力される。こうして１フレーム分の復号化処理が終了し、処理は再び１１０２に戻る。
【００５８】
図６と７に示したソフトウェア画像符号化器、ソフトウェア画像復号化器に図８〜１２に示したフローチャートに基づくプログラムを実行させると、専用回路・専用チップを用いる装置を使用した場合と同様の効果を得ることができる。
【００５９】
図６のソフトウェア符号化器６０１が図８〜１０のフローチャートに示した処理を行うことにより生成されたビットストリームを記録した蓄積メディア(記録媒体）の例を図１３に示す。ディジタル情報を記録することができる記録ディスク（例えば磁気、光ディスクなど）１３０１には、同心円上にディジタル情報が記録されている。このディスクに記録されているディジタル情報の一部１３０２を取り出すと、符号化されたフレームの符号化モード識別情報１３０３、１３０５、１３０８、１３１１、１３１４、丸め込み方法の識別情報１３０６、１３０９、１３１２、１３１５、動きベクトルやＤＣＴ係数等の情報１３０４、１３０７、１３１０、１３１３、１３１６が記録されている。図８〜１０に示した方法に従えば、１３０３には’Ｉ’、１３０５、１３０８、１３１１、１３１４には’Ｐ’、１３０６、１３１２には’＋’、１３０９、１３１５には’−’を意味する情報が記録されることとなる。この場合、例えば’Ｉ’と’＋’は１ビットの０、’Ｐ’と’−’は１ビットの１で表せば、復号化器は正しく記録された情報を解釈し、再生画像を得ることが可能となる。このようにして蓄積メディアに符号化ビットストリームを蓄積することにより、このビットストリームを読み出して復号化した場合に丸め込み誤差の蓄積が発生することを防ぐことができる。
【００６０】
図５に示したＰ＋フレーム、Ｐ−フレーム、Ｂフレームが存在する画像系列に関する符号化ビットストリームを記録した蓄積メディアの例を図１５に示す。図１３の１３０１と同様に、ディジタル情報を記録することができる記録ディスク（例えば磁気、光ディスクなど）１５０１には、同心円上にディジタル情報が記録されている。このディスクに記録されているディジタル情報の一部１５０２を取り出すと、符号化されたフレームの符号化モード識別情報１５０３、１５０５、１５０８、１５１０、１５１３、丸め込み方法の識別情報１５０６、１５１２、動きベクトルやＤＣＴ係数等の情報１５０４、１５０７、１５０９、１５１１、１５１４が記録されている。
【００６１】
このとき、１５０３には’Ｉ’、１５０５、１５１０には’Ｐ’、１５０８、１５１３には’Ｂ’、１５０５には’＋’、１５１１には’−’を意味する情報が記録されている。例えば’Ｉ’、’Ｐ’、’Ｂ’をそれぞれ２ビットの００、０１、１０、’＋’と’−’はそれぞれ１ビットの０と１で表せば、復号化器は正しく記録された情報を解釈し、再生画像を得ることが可能となる。
【００６２】
このとき図５の５０１（Ｉフレーム）に関する情報が１５０３と１５０４、５０２（Ｂフレーム）に関する情報が１５０８と１５０９、フレーム５０３（Ｐ＋フレーム）に関する情報が１５０５〜１５０７、フレーム５０４（Ｂフレーム）に関する情報が１５１３と１５１４、フレーム５０５（Ｐ−フレーム）に関する情報が１５１０〜１５１２である。このように動画像をＢフレームを含む形で符号化場合、一般的にフレームに関する情報を伝送する順番と、再生する順番は異なる。これは、あるＢフレームを復号化する前に、このＢフレームが予測画像を合成する際に使用する前後の参照画像を復号化しておかなければならないためである。このため、フレーム５０２はフレーム５０３の前に再生されるにもかかわらず、フレーム５０２が参照画像として使用するフレーム５０３に関する情報がフレーム５０２に関する情報の前に伝送されるのである。
【００６３】
上述の通り、Ｂフレームは丸め込み誤差の蓄積を引き起こす要員とはならないため、Ｐフレームのように複数の丸め込み方法を適用する必要はない。このため、ここに示した例では、Ｂフレームに関してはは丸め込み方法を指定する’＋’や’−’のような情報は伝送されていない。こうすることにより、例えばＢフレームに関しては常に正の丸め込みのみが適用されるようにしたとしても、誤差の蓄積の問題は発生しない。このようにして、蓄積メディアにＢフレームに関する情報を含む符号化ビットストリームを蓄積することにより、このビットストリームを読み出して復号化した場合に丸め込み誤差の蓄積が発生することを防ぐことができる。
【００６４】
図１４に、本明細書で示したＰ＋フレームとＰ−フレームが混在する符号化方法に基づく符号化・復号化装置の具体例を示す。パソコン１４０１に画像符号化・復号化用のソフトウェアを組み込むことにより、画像符号化・復号化装置として活用することが可能である。このソフトウェアはコンピュータ読み取り可能な記録媒体である何らかの蓄積メディア（ＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク、ハードディスクなど）１４１２に記録されており、これをパソコンが読み込んで使用する。また、さらに何らかの通信回線にこのパソコンを接続することにより、映像通信端末として活用することも可能となる。
【００６５】
記録媒体である蓄積メディア１４０２に記録した符号化ビットストリームを読み取り、復号化する再生装置１４０３にも本明細書に示した復号化方法を実装することが可能である。この場合、再生された映像信号はテレビモニタ１４０４に表示される。また、１４０３の装置は符号化ビットストリームを読み取るだけであり、テレビモニタ１４０４内に復号化装置が組み込まれている場合も考えられる。
【００６６】
最近は衛星、地上波によるディジタル放送が話題となっているが、ディジタル放送用のテレビ受信機１４０５にも復号化装置を組み込むことができる。
【００６７】
また、ケーブルテレビ用のケーブル１４０８または衛星／地上波放送のアンテナに接続されたセットトップボックス１４０９内に復号化装置を実装し、これをテレビモニタ１４１０で再生する構成も考えられる。このときも１４０４の場合と同様に、セットトップボックスではなく、テレビモニタ内に符号化装置を組み込んでも良い。
【００６８】
１４１３、１４１４、１４１５は、ディジタル衛星放送システムの構成例を示したものである。放送局１４１３では映像情報の符号化ビットストリームが電波を介して通信または放送衛星１４１４に伝送される。これを受けた衛星は、放送用の電波を発信し、この電波を衛星放送受信設備をもつ家庭１４１５が受信し、テレビ受信機またはセットトップボックスなどの装置により符号化ビットストリームを復号化してこれを再生する。
【００６９】
低い伝送レートでの符号化が可能となったことにより、最近はディジタル携帯端末１４０６によるディジタル動画像通信も注目されるようになっている。ディジタル携帯端末の場合、符号器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の３通りの実装形式が考えられる。
【００７０】
動画像撮影用のカメラ１４０７の中に符号化装置を組み込むことも可能である。この場合撮影用カメラは符号化装置と該符号化装置からの出力を記録媒体に記録する記録装置とを持ち、符号化装置から出力された符号化ビットストリームを記録媒体に記録する。また、カメラは映像信号を取り込むのみであり、これを専用の符号化装置１４１１に組み込む構成も考えられる。
【００７１】
この図に示したいずれの装置・システムに関しても、本明細書に示した方法を実装することにより、従来の技術を活用した場合と比較して、より画質の高い画像情報を扱うことが可能となる。
【００７２】
なお、以下の変形も本発明に含まれることは明らかである。
（１）上の議論では、動き補償方式としてブロックマッチングが使用されることが前提となっていた。しかし、本発明は動きベクトルの水平・垂直成分が水平・垂直方向の画素のサンプリング間隔の整数倍以外値をとることができ、サンプル値の存在しない位置における強度値を共１次内挿によって求める動き補償方式を採用する画像符号化方式および画像復号化方式すべてに対して適用することができる。たとえば特願平08-060572に記載されているグローバル動き補償や、特願平08-249601に記載されているワーピング予測に対しても、本発明は適用可能である。
（２）これまでの議論では、動きベクトルの水平・垂直成分が１／２の整数倍の値をとる場合のみについて議論してきた。しかし、議論を一般化すれば、本発明は動きベクトルの水平・垂直成分が１／ｄの整数倍（ｄは正の整数、かつ偶数）をとる方式に対して適用可能である。しかし、ｄが大きくなった場合には、共１次内挿の除算の除数（ｄの２乗、数２参照）が大きくなるため、相対的に通常の除算の結果が整数に0.５を足した値となる確率が低くなる。したがって、プラスの丸め込みのみを行った場合の、丸め込み誤算の期待値の絶対値が小さくなり、誤差の蓄積による悪影響が目立ちにくくなる。そこで、例えばｄの値が可変である動き補償方式などにおいては、ｄがある一定値より小さい場合にはプラスの丸め込みとマイナスの丸め込みの両方を使用し、ｄが上記一定値以上の場合にはプラスまたはマイナスの丸め込みのみを用いるという方法も有効である。
（３）従来の技術で述べた通り、ＤＣＴを誤差符号化方式として利用した場合、丸め込み誤差の蓄積による悪影響はＤＣＴ係数の量子化ステップサイズが大きい場合に現れやすい。そこで、ＤＣＴ係数の量子化ステップサイズがある一定値より大きい場合にはプラスの丸め込みとマイナスの丸め込みの両方を使用し、ＤＣＴ係数の量子化ステップサイズが上記一定値以下の場合にはプラスまたはマイナスの丸め込みのみを用いるという方法も有効である。
（４）輝度プレーンで丸め込み誤差の蓄積が起こった場合と色差プレーンで丸め込み誤差の蓄積が起こった場合では、一般的に色差プレーンで発生した場合の方が再生画像に与える影響が深刻である。これは、画像が全体的にわずかに明るくなったり暗くなったりすることよりも、画像の色が全体的に変化した場合の方が目立ちやすいためである。そこで、色差信号に対してはプラスの丸め込みとマイナスの丸め込みの両方を使用し、輝度信号に対してはプラスまたはマイナスの丸め込みのみを用いるという方法も有効である。
【００７３】
また、従来の技術でＨ．２６３における１／４画素精度の動きベクトルの１／２画素精度の動きベクトルへの丸め込み方法に関して述べたが、この方法に多少の変更を加えることにより、丸め込み誤差の期待値の絶対値を小さくすることが可能である。従来の技術でとりあげたＨ．２６３では、輝度プレーンの動きベクトルの水平成分または垂直成分を半分にした値がｒ＋ｓ／４（ｒは整数、ｓは０以上４未満の整数）で表されるとして、ｓが１または３であるときに、これを２に丸め込む操作がおこなわれる。これをｓが１のときにはこれを０とし、ｓが３であるときにはｒに１を加えてｓを０とする丸め込みを行うように変更すればよい。こうすることにより、図４の４０６〜４０８の位置の強度値を計算する回数が相対的に減少する（動きベクトルの水平・垂直成分が整数となる確率が高くなる）ため、丸め込み誤差の期待値の絶対値が小さくなる。しかし、この方法では発生する誤差の大きさを抑えることはできても、誤差が蓄積することを防ぐことはできない。
（５）Ｐフレームに対して、２種類の動き補償方式によるフレーム間予測画像の平均を最終的なフレーム間予測画像とする方式がある。例えば特願平8-3616では、縦横１６画素のブロックに対して一個の動きベクトルを割り当てるブロックマッチングと、縦横１６画素のブロックを４個の縦横８画素のブロックに分割して、それぞれに対して動きベクトルを割り当てるブロックマッチングの２種類の方法によって得た２種類のフレーム間予測画像を用意し、これらのフレーム間予測画像の強度値の平均を求めたものを最終的なフレーム間予測画像とする方法が述べられている。この方法において２種類の画像の平均値を求める際にも丸め込みが行われる。この平均化の操作でプラスの丸め込みのみを行い続けると、新たな丸め込み誤差の蓄積の原因を作ることになる。この方式では、ブロックマッチングにおいてプラスの丸め込みを行うＰ＋フレームに対しては、平均化の操作ではマイナスの丸め込みを行い、Ｐ−フレームに対しては平均化の操作ではプラスの丸め込みを行うようにすれば、同一フレーム内でブロックマッチングによる丸め込み誤差と平均化による丸め込み誤差が打ち消し合う効果を得ることができる。（６）Ｐ＋フレームとＰ−フレームを交互に配置する方法を用いた場合、符号化装置と復号化装置は現在符号化しているＰフレームがＰ＋フレームであるＰ−フレームであるかを判定するために、例えば以下の処理を行なうことが考えられる。現在符号化または復号化しているＰフレームが、最も最近に符号化または復号化されたＩフレームの後の何番目のＰフレームであるかを数え、これが奇数であるときにはＰ＋フレーム、偶数であるときはＰ−フレームとすれば良い（これを暗示的方法と呼ぶ）。また、符号化装置側が現在符号化しているＰフレームがＰ＋フレームであるか、Ｐ−フレームであるかを識別する情報を、例えばフレーム情報のヘッダ部分に書き込むという方法もある（これを明示的方法と呼ぶ）。この方法の方が、伝送誤りに対する耐性は強い。
【００７４】
また、Ｐ＋フレームと、Ｐ−フレームを識別する情報をフレーム情報のヘッダ部分に書き込む方法には、以下の長所がある。「従来の技術」で述べた通り、過去の符号化標準（例えばＭＰＥＧ−１やＭＰＥＧ−２）では、Ｐフレームにおいて正の丸め込みのみが行われる。したがって、例えば既に市場に存在しているＭＰＥＧ−１／２用の動き推定・動き補償装置（例えば、図１の１０６に相当する部分）は、Ｐ＋フレームとＰ−フレームが混在する符号化には対応できないことになる。いま、Ｐ＋フレームとＰ−フレームが混在する符号化に対応した復号化器があるとする。この場合に、もしこの復号化器が上記暗示的方法に基づくものであれば、ＭＰＥＧ−１／２用の動き推定・動き補償装置を用いて、この暗示的方法に基づく復号化器が正しく復号化できるようなビットストリームを生成する符号化器を作ることは困難である。
【００７５】
しかし、復号化器が上記明示的方法に基づくものである場合には、この問題を解決することができる。ＭＰＥＧ−１／２用の動き推定・動き補償装置を使用した符号化器は、常にＰ＋フレームを送り続け、これを示す識別情報をフレーム情報のヘッダに書き込み続ければ良い。こうすれば、明示的方法に基づく復号化器は、この符号化器が生成したビットストリームを正しく再生することができる。
【００７６】
もちろん、この場合にはＰ＋フレームのみが存在するため、丸め込み誤差の蓄積は発生しやすくなる。しかし、この符号化器がＤＣＴ係数の量子化ステップサイズとして小さい値のみを用いるもの（高レート符号化専用の符号化器）であるような場合には、誤差の蓄積は大きな問題とはならない。
【００７７】
この過去の方式との互換性の問題以外にも、明示的方法にはさらに、（ａ）高レート符号化専用の符号化器や、頻繁にＩフレームを挿入することにより丸め込み誤差が発生しにくい符号化器は、正か負のどちらかの丸め込み方法のみを実装すれば良く、装置のコストを抑えることができる、（ｂ）上記の丸め込み誤差が発生しにくい符号化器は、Ｐ＋またはＰ−フレームのどちらか一方のみを送り続ければ良いため、現在符号化を行っているフレームをＰ＋フレームとするか、Ｐ−フレームとするかの判定を行う必要がなく、処理を簡略化できる、といった長所がある。
（７）本発明は、フレーム間予測画像に対し、丸め込み処理を伴うフィルタリングを行う場合にも適用することができる。例えば、動画像符号化の国際標準であるＨ．２６１では、フレーム間予測画像において動きベクトルが０ではなかったブロック内の信号に対しては、低域通過型フィルタ（これをループフィルタと呼ぶ）が適用される。また、Ｈ．２６３では、ブロックの境界部に発生する不連続（いわゆるブロック歪み）を平滑化するためのフィルタを使用することができる。これらのフィルタでは、画素の強度値に対して重み付け平均化の処理が行われ、フィルタリング後の強度値に対して整数への丸め込みの操作が行われる。ここでもプラスの丸め込みとマイナスの丸め込みを使い分けることにより、誤差の蓄積を防ぐことが可能である。
（８）ＩＰ＋Ｐ−Ｐ＋Ｐ−…の他に、ＩＰ＋Ｐ＋Ｐ−Ｐ−Ｐ＋Ｐ＋…や、ＩＰ＋Ｐ−Ｐ−Ｐ＋Ｐ＋…など、Ｐ＋フレームとＰ−フレームの混在の仕方には様々な方法が考えられる。例えば、それぞれ１／２の確率で０と１が発生する乱数発生器を使用し、０が出ればＰ＋、１が出ればＰ−としても良い。いずれにせよ、一般的にＰ＋とＰ−フレームが混在し、かつ一定時間内のそれぞれの存在確率の差が小さいほど、丸め混み誤差の蓄積は発生しにくくなる。また、符号化器に対し、任意のＰ＋フレームとＰ−フレームの混在の仕方を許すような場合、符号化器と復号化器は（６）で示した暗示的方法に基づくものではなく、明示的方法に基づくものでなければならない。したがって、符号化器と復号化器に関してより柔軟な実装形態を許すという観点からは、明示的方法の方が有利となる。
（９）本発明は、画素の存在しない点の強度値を求める方法を共１次内挿に限定するものではない。強度値の内挿方法は一般化すると、以下の式のように表すことができる。
【００７８】
【数５】
0005418710.tif 000006
【００７９】
ここで、ｒ、ｓは実数、ｈ(ｒ，ｓ)は内挿のための実数の関数、Ｔ(ｚ)は実数ｚを整数に丸め込む関数であり、Ｒ（ｘ，ｙ）、ｘ、ｙの定義は数４と同じである。Ｔ（ｚ）が、プラスの丸め込みを表す関数である場合にはプラスの丸め込みを用いる動き補償、マイナスの丸め込みを表す関数である場合にはマイナスの丸め込みを用いる動き補償が行われる。この数５の形式で表すことのできる内挿方法に対しては、本発明を適用することが可能である。例えばｈ（ｒ，ｓ）を、
【００８０】
【数６】
0005418710.tif 000007
【００８１】
のように定義すれば共１次内挿が行われる。しかし、例えばｈ（ｒ，ｓ）を
【００８２】
【数７】
0005418710.tif 000008
【００８３】
のように定義すれば、共１次内挿とは異なる内挿方法が実施されるが、この場合も本発明を適用することは可能である。
（１０）本発明は、誤差画像の符号化方法をＤＣＴに限定するものではない、例えば、ＤＣＴではなく、ウェーブレット変換（例えば、M. Antonioni, et. al, "Image Coding Using Wavelet Transform", IEEE Trans. Image Processing, vol. 1, no.2, April 1992）や、ウォルシューアダマール変換（Walsh-Hadamard Transform）（例えば、A. N. Netravalli and B. G. Haskell, "Digital Pictures", Plenum Press, 1998）を使用した場合でも本発明は適用可能である。
【符号の説明】
【００８４】
１００…画像符号化器、１０１…入力画像、１０２…減算器、１０３…誤差画像、１０４…ＤＣＴ変換器、１０５…ＤＣＴ係数量子化器、１０６、２０１…量子化ＤＣＴ係数、１０８、２０４…ＤＣＴ係数逆量子化器、１０９、２０５…逆ＤＣＴ変換器、１１０、２０６…復号誤差画像、１１１、２０７…加算器、１１２…現フレームの復号画像、１１３、２１５…フレーム間／フレーム内符号化切り換えスイッチの出力画像、１１４、２０９…フレームメモリ、１１５、２１０…前フレームの復号画像、１１６、１６００…ブロックマッチング部、１１７、２１２…現フレームの予測画像、１１８、２１３…「０」信号、１１９、２１４…フレーム間／フレーム内符号化切り換えスイッチ、１２０、２０２…動きベクトル情報、１２１、２０３…フレーム間／フレーム内識別フラグ、１２２…多重化器、１２３…伝送ビットストリーム、２００…画像復号化器、２０８…出力画像、２１１、１７００…予測画像合成部、２１６…分離器、３０１…Ｙブロック、３０２…Ｕブロック、３０３…Ｖブロック、４０１〜４０４…画素、４０５〜４０８…共１次内挿により強度値を求める位置、５０１…Ｉフレーム、５０３、５０５、５０７、５０９…Ｐフレーム、５０２、５０４、５０６、５０８…Ｂフレーム、６００…ソフトウェア画像符号化器、６０２…入力画像用フレームメモリ、６０３、７０３…汎用プロセッサ、６０４、７０４…プログラム用メモリ、６０５、７０５…処理用メモリ、６０６…出力バッファ、６０７、７０１…符号化ビットストリーム、６０８、７０８…蓄積デバイス、７００…ソフトウェア画像復号化器、７０２…入力バッファ、７０６…出力画像用フレームメモリ。８０１〜８１５、９０１〜９０６、１００１〜１００５、１１０１〜１１１１、１２０１〜１２０４…フローチャートの処理項目、１３０１、１４０２、１５０１…蓄積メディア、１３０２、１５０２…ディジタル情報を記録したトラック、１３０３〜１３１６、１５０３〜１５１４…ディジタル情報、１４０１…パソコン、１４０３…蓄積メディアの再生装置、１４０４、１４１０…テレビモニタ、１４０５…テレビ放送受信機、１４０６…無線携帯端末、１４０７…テレビカメラ、１４０８…ケーブルテレビ用のケーブル、１４０９…セットトップボックス、１４１１…画像符号化装置、１４１２…ソフトウェア情報を記録した蓄積メディア、１４１３…放送局、１４１４…通信または放送衛星、１４１５…衛星放送受信設備を持つ家庭、１６０１…動き推定器、１６０２、１７０１…丸め込み方法決定器、１６０４、１６０５、１７０２、１７０４…丸め込み方法に関する情報、１６０３、１７０３…予測画像合成器。
【図１】
0005418710.tif 000009
【図２】
0005418710.tif 000010
【図３】
0005418710.tif 000011
【図４】
0005418710.tif 000012
【図５】
0005418710.tif 000013
【図６】
0005418710.tif 000014
【図７】
0005418710.tif 000015
【図８】
0005418710.tif 000016
【図９】
0005418710.tif 000017
【図１０】
0005418710.tif 000018
【図１１】
0005418710.tif 000019
【図１２】
0005418710.tif 000020
【図１３】
0005418710.tif 000021
【図１４】
0005418710.tif 000022
【図１５】
0005418710.tif 000023
【図１６】
0005418710.tif 000024
【図１７】
0005418710.tif 000025