特開2015-228670(P2015-228670A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧
特開2015-228670動画像の予測画像生成方法および復号化方法
<>
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000010
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000011
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000012
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000013
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000014
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000015
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000016
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000017
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000018
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000019
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000020
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000021
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000022
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000023
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000024
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000025
  • 特開2015228670-動画像の予測画像生成方法および復号化方法 図000026
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2015-228670(P2015-228670A)
(43)【公開日】2015年12月17日
(54)【発明の名称】動画像の予測画像生成方法および復号化方法
(51)【国際特許分類】
   H04N 19/43 20140101AFI20151120BHJP
   H04N 19/51 20140101ALI20151120BHJP
【FI】
   H04N19/43
   H04N19/51
【審査請求】有
【請求項の数】2
【出願形態】OL
【全頁数】23
(21)【出願番号】特願2015-139316(P2015-139316)
(22)【出願日】2015年7月13日
(62)【分割の表示】特願2015-9063(P2015-9063)の分割
【原出願日】1998年6月9日
(31)【優先権主張番号】特願平9-150656
(32)【優先日】1997年6月9日
(33)【優先権主張国】JP
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】100100310
【弁理士】
【氏名又は名称】井上 学
(72)【発明者】
【氏名】中屋 雄一郎
(72)【発明者】
【氏名】禰寝 義人
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA05
5C159NN01
5C159PP15
5C159PP16
5C159UA02
5C159UA05
(57)【要約】      (修正有)
【課題】輝度または色差の強度値が整数に量子化される画像符号化方法において、動き補償において行われる共1次内挿の処理によって発生する丸め込み誤差の蓄積を防ぐ方法を提供する。
【解決手段】片方向の動き補償予測を行うPフレームに関し、整数に0.5を加えた値を切り上げるP+フレーム503、507と、整数に0.5を加えた値を切り捨てるP−フレーム505、509の2種類を用意する。
【選択図】図5
【特許請求の範囲】
【請求項1】
色差プレーンと輝度プレーンとからなるフレームを複数有する動画像が符号化された符号化データを用いて予測画像を生成する予測画像生成方法であって、
対象フレームの符号化情報を受け取る第1のステップと、
前記符号化情報に含まれる動きベクトル情報と、過去に生成した復号画像とを用いて、動き補償を行い、予測画像を生成する第2のステップと、を有し、
前記第2のステップでは、前記色差プレーンおよび前記輝度プレーンに対しプラスの丸め込み方法を用いて動き補償を行う場合と、マイナスの丸め込み方法を用いて動き補償を行う場合とを有し、
前記プラスの丸め込み方法とは、
前記動画像を構成する画素の強度Laを有する第1の画素と、前記第1の画素と水平方向に隣接し強度Lbを有する第2の画素と、前記第1の画素と垂直方向に隣接し強度Lcを有する第3の画素と、前記第2の画素と垂直方向に隣接し、かつ前記第3の画素と水平方向に隣接し強度Ldを有する第4の画素とから、画素の存在しない前記第1の画素と前記第2の画素の中間点における強度Ibと、前記第1の画素と前記第3の画素との中間点における強度Icと、前記第1と第2と第3と第4の画素とに囲まれた前記第1、第2、第3、および第4の画素から等距離にある点における強度Idとを求める際に、
Ib=[(La+Lb+1)/2]、Ic=[(La+Lc+1)/2]、Id=[(La+Lb+Lc+Ld+2)/4]
を用いる丸め込み方法であり、
前記マイナスの丸め込み方法とは、
Ib=[(La+Lb)/2]、Ic=[(La+Lc)/2]、Id=[(La+Lb+Lc+Ld+1)/4]
を用いる丸め込み方法であり、
前記対象フレームがPフレームの場合には、プラスの丸め込み方法またはマイナスの丸め込み方法のいずれか一方を指定する情報に従って前記動き補償を行い、
前記対象フレームがIフレームの場合には、前記第2のステップを行わないことを特徴とする予測画像生成方法。
【請求項2】
色差プレーンと輝度プレーンとからなる画像を含む動画像の符号化情報を受け取るステップと、
前記符号化情報から取り出された動きベクトル情報と、過去に復号化した復号画像とを用いて、復号対象画像の予測画像を合成する動き補償を行うステップと、
前記動き補償を行うステップにおける処理状態は、前記復号対象画像がPフレームである場合には、前記復号対象画像の直前のIフレームから数えて奇数番目のPフレームであるか偶数番目のPフレームであるかによって、前記復号対象画像の色差プレーンおよび輝度プレーンに対しプラスの丸めこみ方法かマイナスの丸めこみ方法かを切り替えて内挿演算を行う場合を含み、
前記プラスの丸め込み方法とは、
前記動画像を構成する画素の強度Laを有する第1の画素と、前記第1の画素と水平方向に隣接し強度Lbを有する第2の画素と、前記第1の画素と垂直方向に隣接し強度Lcを有する第3の画素と、前記第2の画素と垂直方向に隣接し、かつ前記第3の画素と水平方向に隣接し強度Ldを有する第4の画素とから、画素の存在しない前記第1の画素と前記第2の画素の中間点における強度Ibと、前記第1の画素と前記第3の画素との中間点における強度Icと、前記第1と第2と第3と第4の画素とに囲まれた前記第1、第2、第3、および第4の画素から等距離にある点における強度Idとを求める際に、
Ib=[(La+Lb+1)/2]、Ic=[(La+Lc+1)/2]、Id=[(La+Lb+Lc+Ld+2)/4]
を用いる丸め込み方法であり、
前記マイナスの丸め込み方法とは、
Ib=[(La+Lb)/2]、Ic=[(La+Lc)/2]、Id=[(La+Lb+Lc+Ld+1)/4]
を用いる丸め込み方法であることを特徴とする動画像の復号化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フレーム間予測を行い、輝度または色の強度が量子化された数値として表される動画像符号化および復号化方法、ならびに動画像の符号化装置および復号化装置に関するものである。
【背景技術】
【0002】
動画像の高能率符号化において、時間的に近接するフレーム間の類似性を活用するフレーム間予測(動き補償)は情報圧縮に大きな効果を示すことが知られている。現在の画像符号化技術の主流となっている動き補償方式は、動画像符号化方式の国際標準であるH.263、MPEG1、MPEG2に採用されている半画素精度のブロックマッチングである。この方式では、符号化しようとする画像を多数のブロックに分割し、ブロックごとにその動きベクトルを水平・垂直方向に隣接画素間距離の半分の長さを最小単位として求める。
【0003】
この処理を数式を用いて表現すると以下のようになる。符号化しようとするフレーム(現フレーム )の予測画像Pの座標(x, y)におけるサンプル値(輝度または色差の強度のサンプル値)をP(x, y)、参照画像R(Pと時間的に近接しており、既に符号化が完了しているフレームの復号画像)の座標(x, y)におけるサンプル値をR(x, y)とする。また、xとyは整数であるとして、PとRでは座標値が整数である点に画素が存在すると仮定する。また、画素のサンプル値は負ではない整数として量子化されているとする。このとき、PとRの関係は、
【0004】
【数1】
【0005】
で表される。ただし、画像はN個のブロックに分割されるとして、Biは画像のi番目のブロックに含まれる画素、(ui, vi)はi番目のブロックの動きベクトルを表している。
【0006】
uiとviの値が整数ではないときには、参照画像において実際には画素が存在しない点の強度値を求めることが必要となる。この際の処理としては、周辺4画素を用いた共1次内挿が使われることが多い。この内挿方式を数式で記述すると、dを正の整数、0≦p,q<dとして、R(x+p/d, y+q/d)は、
【0007】
【数2】
【0008】
で表される。ただし「//」は除算の一種で、通常の除算(実数演算による除算)の結果を近隣の整数に丸め込むことを特徴としている。
【0009】
図1にH.263の符号化器の構成例100を示す。H.263は、符号化方式として、ブロックマッチングとDCT(離散コサイン変換)を組み合わせたハイブリッド符号化方式(フレーム間/フレーム内適応符号化方式)を採用している。
【0010】
減算器102は入力画像(現フレームの原画像)101とフレーム間/フレーム内符号化切り換えスイッチ119の出力画像113(後述)との差を計算し、誤差画像103を出力する。この誤差画像は、DCT変換器104でDCT係数に変換された後に量子化器105で量子化され、量子化DCT係数106となる。この量子化DCT計数は伝送情報として通信路に出力されると同時に、符号化器内でもフレーム間予測画像を合成するために使用される。
【0011】
以下に予測画像合成の手順を説明する。上述の量子化DCT係数106は、逆量子化器108と逆DCT変換器109を経て復号誤差画像110(受信側で再生される誤差画像と同じ画像)となる。これに、加算器111においてフレーム間/フレーム内符号化切り換えスイッチ119の出力画像113(後述)が加えられ、現フレームの復号画像112(受信側で再生される現フレームの復号画像と同じ画像)を得る。この画像は一旦フレームメモリ114に蓄えられ、1フレーム分の時間だけ遅延される。したがって、現時点では、フレームメモリ114は前フレームの復号画像115を出力している。この前フレームの復号画像と現フレームの入力画像101がブロックマッチング部116に入力され、ブロックマッチングの処理が行われる。
【0012】
ブロックマッチングでは、画像を複数のブロックに分割し、各ブロックごとに現フレームの原画像に最も似た部分を前フレームの復号画像から取り出すことにより、現フレームの予測画像117が合成される。このときに、各ブロックが前フレームと現フレームの間でどれだけ移動したかを検出する処理(動き推定処理)を行う必要がある。動き推定処理によって検出された各ブロックごとの動きベクトルは、動きベクトル情報120として受信側へ伝送される。
【0013】
受信側は、この動きベクトル情報と前フレームの復号画像から、独自に送信側で得られるものと同じ予測画像を合成することができる。予測画像117は、「0」信号118と
共にフレーム間/フレーム内符号化切り換えスイッチ119に入力される。このスイッチは、両入力のいずれかを選択することにより、フレーム間符号化とフレーム内符号化を切り換える。予測画像117が選択された場合(図2はこの場合を表している)には、フレーム間符号化が行われる。一方、「0」信号が選択された場合には、入力画像がそのままDCT符号化されて通信路に出力されるため、フレーム内符号化が行われることになる。受信側が正しく復号化画像を得るためには、送信側でフレーム間符号化が行われたかフレーム内符号化が行われたかを知る必要がある。このため、識別フラグ121が通信路へ出力される。最終的なH.263符号化ビットストリーム123は多重化器122で量子化DCT係数、動きベクトル、フレーム内/フレーム間識別フラグの情報を多重化することによって得られる。
【0014】
図2図1の符号化器が出力した符号化ビットストリームを受信する復号化器200の構成例を示す。受信したH.263ビットストリーム217は、分離器216で量子化DCT係数201、動きベクトル情報202、フレーム内/フレーム間識別フラグ203に分離される。量子化DCT係数201は逆量子化器204と逆DCT変換器205を経て復号化された誤差画像206となる。この誤差画像は加算器207でフレーム間/フレーム内符号化切り換えスイッチ214の出力画像215を加算され、復号化画像208として出力される。フレーム間/フレーム内符号化切り換えスイッチはフレーム間/フレーム内符号化識別フラグ203に従って、出力を切り換える。フレーム間符号化を行う場合に用いる予測画像212は、予測画像合成部211において合成される。ここでは、フレームメモリ209に蓄えられている前フレームの復号画像210に対して、受信した動きベクトル情報202に従ってブロックごとに位置を移動させる処理が行われる。一方フレーム内符号化の場合、フレーム間/フレーム内符号化切り換えスイッチは、「0」信号213をそのまま出力する。
【発明の概要】
【発明が解決しようとする課題】
【0015】
H.263が符号化する画像は、輝度情報を持つ1枚の輝度プレーン(Yプレーン)と色情報(色差情報とも言う)を持つ2枚の色差プレーン(UプレーンとVプレーン)で構成されている。このとき、画像が水平方向に2m画素、垂直方向に2n画素持っている場合に(mとnは正の整数とする)、Yプレーンは水平方向に2m、垂直方向に2n個の画素を持ち、UおよびVプレーンは水平方向にm、素直方向にn個の画素を持つことを特徴としている。このように色差プレーンの解像度が低いのは、人間の視覚が色差の空間的な変化に比較的鈍感であるという特徴を持つためである。このような画像を入力として、H.263ではマクロブロックと呼ばれるブロックを単位として符号化・復号化の処理が行われる。
【0016】
図3にマクロブロックの構成を示す。マクロブロックはYブロック、Uブロック、Vブロックの3個のブロックで構成され、輝度値情報を持つYブロック301の大きさは16×16画素、色差情報をもつUブロック302およびVブロック303の大きさは8×8画素となっている。
【0017】
H.263では、各マクロブロックに対して半画素精度のブロックマッチングが適用される。したがって、推定された動きベクトルを(u, v)とすると、uとvはそれぞれ画素間距離の半分、つまり1/2を最小単位として求められることになる。このときの強度値(以下では、「輝度値」と色差の強度値を総称して「強度値」と呼ぶ)の内挿処理の様子を図4に示す。H.263では、数2の内挿を行う際に、除算の結果は最も近い整数に丸め込まれ、かつ除算の結果が整数に0.5を加えた値となるときには、これを0から遠ざける方向に切り上げる処理が行われる。
【0018】
つまり、図4において、画素401、402、403、404の強度値をそれぞれLa、Lb、Lc、Ldとすると(La、Lb、Lc、Ldは負ではない整数)、内挿により強度値を求めたい位置405、406、407、408の強度値Ia、Ib、Ic、Idは(Ia、Ib、Ic、Idは負ではない整数)、以下の式によって表される。
【0019】
【数3】
【0020】
ただし、「[ ]」は小数部分を切り捨てる処理を表している。
【0021】
このとき、除算の結果を整数値に丸め込む処理によって発生する誤差の期待値を計算することを考える。内挿により強度値を求めたい位置が、図4の位置405、406、407、408となる確率をそれぞれ1/4とする。このとき、位置405の強度値Iaを求
める際の誤差は明らかに0である。また、位置406の強度値Ibを求める際の誤差は、
La+Lbが偶数の場合は0、奇数の場合は切り上げが行われるので1/2となる。La+
Lbが偶数になる確率と奇数になる確率は共に1/2であるとすれば、誤差の期待値は、0・1/2+1/2・1/2=1/4となる。位置407の強度値Icを求める際も誤差
の期待値はIbの場合と同様に1/4となる。位置408の強度値Icを求める際には、L
a+Lb+Lc+Ldを4で割った際のあまりが0、1、2、3である場合の誤差はそれぞれ0、−1/4、1/2、1/4となり、あまりが0から3になる確率をそれぞれ等確率とすれば、誤差の期待値は0・1/4−1/4・1/4+1/2・1/4+1/4・1/4=1/8となる。上で述べた通り、位置405〜408における強度値が計算される確率は等確率であるとすれば、最終的な誤差の期待値は、0・1/4+1/4・1/4+1/4・1/4+1/8・1/4=5/32となる。これは、一回ブロックマッチングによる動き補償を行う度に、画素の強度値に5/32の誤差が発生することを意味している。
【0022】
一般的に低レート符号化の場合には、フレーム間予測誤差を符号化するためのビット数を十分に確保することができないため、DCT係数の量子化ステップサイズを大きくする傾向がある。したがって、動き補償で発生した誤差を誤差符号化によって修正しにくくなる。このようなときにフレーム内符号化を行わずにフレーム間符号化をずっと続けた場合には、上記誤差が蓄積し、再生画像が赤色化するなどの悪い影響を与える場合がある。
【0023】
上で説明した通り、色差プレーンの画素数は縦方向、横方向共に画素数が半分となっている。したがって、UブロックとVブロックに対しては、Yブロックの動きベクトルの水平・垂直成分をそれぞれ2で割った値が使用される。このとき、もとのYブロックの動きベクトルの水平・垂直成分であるuとvが1/2の整数倍の値であるため、通常の割り算を実行した場合には、動きベクトルは1/4の整数倍の値が出現することになる。しかし
、座標値が1/4の整数倍をとるときの強度値の内挿演算が複雑となるため、H.263ではUブロックとVブロックの動きベクトルも半画素精度に丸め込まれる。このときの丸め込みの方法は以下の通りである。
【0024】
いま、u/2=r+s/4であるとする。このとき、rとsは整数であり、さらにsは0以上3以下の値をとるとする。sが0または2のときはu/2は1/2の整数倍であるため、丸め込みを行う必要がない。しかし、sが1または3のときは、これを2に丸め込む操作が行われる。これは、sが2となる確率を高くすることにより、強度値の内挿が行われる回数を増やし、動き補償処理にフィルタリングの作用を持たせるためである。
【0025】
丸め込みが行われる前のsの値が0〜3の値をとる確率をそれぞれ1/4とした場合、丸め込みが終わったあとにsが0、2となる確率はそれぞれ1/4と3/4となる。以上は動きベクトルの水平成分uに関する議論であったが、垂直成分であるvに関しても全く同じ議論が適用できる。
【0026】
したがって、UブロックおよびVブロックにおいて、401の位置の強度値が求められる確率は1/4・1/4=1/16、402および403の位置の強度値が求められる確率は共に1/4・3/4=3/16、404の位置の強度値が求められる確率は3/4・3/4=9/16となる。これを用いて上と同様の手法により、強度値の誤差の期待値を求めると、0・1/16+1/4・3/16+1/4・3/16+1/8・9/16=21/128となり、上で説明したYブロックの場合と同様にフレーム内符号化を続けた場合の誤差の蓄積の問題が発生する。
【0027】
フレーム間予測を行い、輝度または色の強度が量子化された数値として表される動画像符号化および復号化方法では、フレーム間予測において輝度または色の強度を量子化する際の誤差が蓄積する場合がある。本発明の目的は、上記誤差の蓄積を防ぐことにより、再生画像の画質を向上させることにある。
【課題を解決するための手段】
【0028】
誤差の発生を抑えるか、発生した誤差を打ち消す操作を行うことにより、誤差の蓄積を防ぐ。
【発明の効果】
【0029】
本発明により、フレーム間予測画像における丸め込み誤差の蓄積を抑えることが可能となり、再生画像の画質を向上させることが可能となる。
【図面の簡単な説明】
【0030】
図1】H.263の画像符号化器の構成例を示した図である。
図2】H.263の画像復号化器の構成例を示した図である。
図3】H.263におけるマクロブロックの構成を示した図である。
図4】半画素成度のブロックマッチングにおける輝度値の内挿処理の様子を示した図である。
図5】符号化された画像系列の様子を示した図である。
図6】ソフトウェア画像符号化装置の構成例を示した図である。
図7】ソフトウェア画像復号化装置の構成例を示した図である。
図8】ソフトウェア画像符号化装置における処理のフローチャートの例を示した図である。
図9】ソフトウェア画像符号化装置における符号化モード決定処理のフローチャートの例を示した図である。
図10】ソフトウェア画像符号化装置における動き推定・動き補償処理のフローチャートの例を示した図である。
図11】ソフトウェア画像復号化装置における処理のフローチャートの例を示した図である。
図12】ソフトウェア画像復号化装置における動き補償処理のフローチャートの例を示した図である。
図13】IフレームとP+フレームとP−フレームを混在させる符号化方法により符号化されたビットストリームを記録した蓄積メディアの例を示した図である。
図14】P+フレームとP−フレームを混在させる符号化方法を使用する装置の具体例を示した図である。
図15】IフレームとBフレームとP+フレームとP−フレームを混在させる符号化方法により符号化されたビットストリームを記録した蓄積メディアの例を示した図である。
図16】P+フレームとP−フレームを混在させる符号化方法を使用する装置に含まれるブロックマッチング部の例を示した図である。
図17】P+フレームとP−フレームを混在させる符号化方法により符号化されたビットストリームを復号化する装置に含まれる予測画像合成部の例を示した図である。
【発明を実施するための形態】
【0031】
まず、「従来の技術」で述べた丸め込み誤差の蓄積がどのような場合に発生するかにつ
いて考える。
【0032】
図5にMPEG1、MPEG2、H.263などの双方向予測と片方向予測の両方を実行することができる符号化方法により符号化された動画像の例を示す。画像501はフレーム内符号化によって符号化されたフレームであり、Iフレームと呼ばれる。これに対し
、画像503、505、507、509はPフレームと呼ばれ、直前のIまたはPフレームを参照画像とする片方向のフレーム間符号化により符号化される。したがって、例えば画像505を符号化する際には画像503を参照画像とするフレーム間予測が行われる。画像502、504、506、508はBフレームと呼ばれ、直前と直後のIまたはPフレームを用いた双方向のフレーム間予測が行われる。Bフレームは、他のフレームがフレーム間予測を行う際に参照画像として利用されないという特徴も持っている。
【0033】
まず、Iフレームでは動き補償が行われないため、動き補償が原因となる丸め込み誤差は発生しない。これに対し、Pフレームでは動き補償が行われる上に、他のPまたはBフレームの参照画像としても使用されるため、丸め込み誤差の蓄積を引き起こす原因となる
。一方、Bフレームは動き補償は行われるために丸め込み誤差の蓄積の影響は現れるが、参照画像としては使用されないために丸め込み誤差の蓄積の原因とはならない。このことから、Pフレームにおける丸め込み誤差の蓄積を防げば、動画像全体で丸め込み誤差の悪影響を緩和することができる。なお、H.263ではPフレームとBフレームをまとめて符号化するPBフレームと呼ばれるフレームが存在するが(例えばフレーム503と504をPBフレームとしてまとめて符号化することができる)、組み合わされた2枚のフレ
ームを別々の物として考えれば、上と同じ議論を適用することができる。つまり、PBフレームの中でPフレームに相当する部分に対して丸め込み誤差への対策を施せば、誤差の蓄積を防ぐことができる。
【0034】
丸め込み誤差は、強度値の内挿を行う際に、通常の除算(演算結果が実数になる除算)の結果として整数値に0.5を加えた値が出るような場合に、これを0から遠ざける方向に
切り上げているために発生している。例えば内挿された強度値を求めるために4で割る操作を行うような場合、あまりが1である場合と3である場合は発生する誤差の絶対値が等しくかつ符号が逆になるため、誤差の期待値を計算する際に互いに打ち消し合う働きをする(より一般的には、正の整数d’で割る場合には、あまりがtである場合とd’−tである場合が打ち消し合う)。しかし、あまりが2である場合、つまり通常の除算の結果が
整数に0.5を加えた値が出る場合には、これを打ち消すことができず、誤差の蓄積につな
がる。
【0035】
そこで、このように通常の除算の結果、整数に0.5を加えた値が出た際にに切り上げを
行う丸め込み方法と切り捨てを行う丸め込み方法の両者を選択可能とし、これらをうまく組み合わせることより、発生した誤差を打ち消すことを考える。以下では、通常の除算の結果を最も近い整数に丸め込み、かつ整数に0.5を加えた値は0から遠ざける方向に切り
上げる丸め込み方法を「プラスの丸め込み」と呼ぶ。また、通常の除算の結果を最も近い整数に丸め込み、かつ整数に0.5を加えた値は0に近づける方向に切り捨てる丸め込み方
法を「マイナスの丸め込み」と呼ぶこととする。数3は、半画素精度のブロックマッチングにおいてプラスの丸め込みを行う場合の処理を示しているが、マイナスの丸め込みを行う場合には、これは以下のように書き換えることができる。
【0036】
【数4】
【0037】
いま、予測画像の合成における強度値の内挿の際ににプラスの丸め込みを行う動き補償を、プラスの丸め込みを用いる動き補償、マイナスの丸め込みを行う動き補償をマイナスの丸め込みを用いる動き補償とする。また、半画素精度のブロックマッチングを行い、かつプラスの丸め込みを用いる動き補償が適用されるPフレームをP+フレーム、逆にマイナスの丸め込みを用いる動き補償が適用されるPフレームをP−フレームと呼ぶことする(この場合、H.263のPフレームはすべてP+フレームということになる)。P−フ
レームにおける丸め込み誤差の期待値は、P+フレームのそれと絶対値が等しく、符号が逆となる。したがって、時間軸に対し、P+フレームとP−フレームが交互に現れるようにすれば、丸め込み誤差の蓄積を防ぐことができる。
【0038】
図5の例では、フレーム503、507をP+フレーム、フレーム505、509をP−フレームとすれば、この処理を実現することができる。また、P+フレームとP−フレームが交互に発生することは、Bフレームにおいて双方向の予測を行う際にP+フレームとP−フレームが一枚ずつ参照画像として使用されることを意味している。一般的にBフレームにおいては順方向の予測画像(例えば図5のフレーム504を符号化する際に、フレーム503を参照画像として合成される予測画像)と逆方向の予測画像(例えば図5のフレーム504を符号化する際に、フレーム505を参照画像として合成される予測画像
)の平均が予測画像として使用できる場合が多い。したがって、ここでP+フレームとP−フレームから合成した画像を平均化することは、誤差の影響を打ち消す意味で有効である。
【0039】
なお、上で述べた通り、Bフレームにおける丸め込み処理は誤差の蓄積の原因とはならない。したがって、すべてのBフレームに対して同じ丸め込み方法を適用しても問題は発生しない。例えば、図5のBフレーム502、504、506、508のすべてが正の丸め込みに基づく動き補償を行ったとしても、特に画質の劣化の原因とはならない。Bフレームの復号化処理を簡略化する意味では、Bフレームに関しては1種類の丸め込み方法のみを用いることが望ましい。
【0040】
図16に、上で述べた複数の丸め込み方法に対応した画像符号化器のブロックマッチング部1600の例を示す。他の図と同じ番号は、同じものを指している。図1のブロックマッチング部116を1600に入れ換えることにより、複数の丸め込み方法に対応することができる。動き推定器1601において、入力画像101と前フレームの復号画像112との間で動き推定の処理が行われる。この結果、動き情報120が出力される。この動き情報は、予測画像合成器1603において予測画像を合成する際に利用される。
【0041】
丸め込み方法決定器1602は、現在符号化を行っているフレームにおいて使用する丸め込み方法を正の丸め込みとするか、負の丸め込みとするかを判定する。決定した丸め込み方法に関する情報1604は、予測画像合成器1603に入力される。この予測画像合成器では、1604によって指定された丸め込み方法に基づいて予測画像117が合成、出力される。なお、図1のブロックマッチング部116には、図16の1602、1604に相当する部分が無く、予測画像は、正の丸め込みによってのみ合成される。また、ブロックマッチング部から決定した丸め込み方法1605を出力し、この情報をさらに多重化して伝送ビットストリームに組み込んで伝送しても良い。
【0042】
図17に、複数の丸め込み方法に対応した画像復号化器の予測画像合成部1700の例を示す。他の図と同じ番号は、同じものを指している。図2の予測画像合成部211を1700に入れ換えることにより、複数の丸め込み方法に対応することが可能となる。丸め込み方法決定器1701では、復号化を行う際の予測画像合成処理に適用される丸め込み方法が決定される。
【0043】
なお、正しい復号化を行うためには、ここで決定される丸め込み方法は、符号化の際に適用された丸め込み方法と同じものでなければならない。例えば、最後に符号化されたIフレームから数えて奇数番目のPフレームには正の丸め込み、偶数番目のPフレームに対しては負の丸め込みが適用されることを原則とし、符号化側の丸め込み方法決定器(例えば、図16の1602)と復号化側の丸め込み方法決定器1701の両者がこの原則に従えば、正しい復号化を行うことが可能となる。このようにして決定された丸め込み方法に関する情報1702と、前フレームの復号画像210、動き情報202から、予測画像合成器1703では、予測画像が合成される。この予測画像212は出力され、復号画像の合成に活用される。
【0044】
なお、ビットストリーム内に丸め込み方法に関する情報が組み込まれる場合(図16の符号化器で、丸め込み方法に関する情報1605が出力されるような場合)も考えることができる。この場合、丸め込み方法決定器1701は使用されず、符号化ビットストリームから抽出された丸め込み方法に関する情報1704が予測画像合成器1703に入力される。
【0045】
本発明は、図1、2に示されている従来型の専用回路・専用チップを用いる画像符号化装置、画像復号化装置の他に、汎用プロセッサを用いるソフトウェア画像符号化装置、ソフトウェア画像復号化装置にも適用することができる。図6と7にこのソフトウェア画像符号化装置600とソフトウェア画像復号化装置700の例を示す。ソフトウェア符号化器600では、まず入力画像601は入力フレームメモリ602に蓄えられ、汎用プロセッサ603はここから情報を読み込んで符号化の処理を行う。この汎用プロセッサを駆動するためのプログラムはハードディスクやフロッピー(登録商標)ディスクなどによる蓄積デバイス608から読み出されてプログラム用メモリ604に蓄えられる。また、汎用プロセッサは処理用メモリ605を活用して符号化の処理を行う。汎用プロセッサが出力する符号化情報は一旦出力バッファ606に蓄えられた後に符号化ビットストリーム607として出力される。
【0046】
図6に示したソフトウェア符号化器上で動作する符号化ソフトウェア(コンピュータ読み取り可能な記録媒体)のフローチャートの例を図8に示す。まず801で処理が開始され、802で変数Nに0が代入される。続いて803、804でNの値が100である場合には、0が代入される。Nはフレーム数のカウンタであり、1枚のフレームの処理が終了する度に1が加算され、符号化を行う際には0〜99の値をとることが許される。Nの値が0であるときには符号化中のフレームはIフレームであり、奇数のときにはP+フレーム、0以外の偶数のときにはP−フレームとなる。Nの値の上限が99であることは、Pフレーム(P+またはP−フレーム)が99枚符号化された後にIフレームが1枚符号化されることを意味している。
【0047】
このように、何枚かのフレームの中に必ず1枚Iフレームを入れることにより、(a)
符号化器と復号化器の処理の不一致(例えば、DCTの演算結果の不一致)による誤差の蓄積を防止する、(b)符号化データから任意のフレームの再生画像を得る処理(ランダ
ムアクセス)の処理量を減少させる、などの効果を得ることができる。Nの最適な値は符号化器の性能や符号化器が使用される環境により変化する。この例では100という値を使用したが、これはNの値が必ず100でなければならいことを意味しているわけではない。
【0048】
フレームごとの符号化モード、丸め込み方法を決定する処理は805で行われるが、その処理の詳細を表すフローチャートの例を図9に示す。まず、901でNは0であるか否かが判定され、0である場合には902で予測モードの識別情報として’I’が出力バッファに出力され、これから符号化処理を行うフレームはIフレームとなる。なお、ここで「出力バッファに出力される」とは、出力バッファに蓄えられた後に符号化ビットストリームの一部として符号化装置から外部に出力されることを意味している。Nが0ではない場合には、903で予測モードの識別情報として’P’が出力される。Nが0ではない場合には、さらに904でNが奇数か偶数であるかが判定される。Nが奇数の場合には905で丸め込み方法の識別情報として’+’が出力され、これから符号化処理を行うフレームはP+フレームとなる。一方、Nが偶数の場合には906で丸め込み方法の識別情報として’−’が出力され、これから符号化処理を行うフレームはP−フレームとなる。
【0049】
再び図8に戻る。805で符号化モードを決定した後、806で入力画像はフレームメモリAに蓄えられる。なお、ここで述べたフレームメモリAとは、ソフトウェア符号化器のメモリ領域(例えば、図6の605のメモリ内にこのメモリ領域が確保される)の一部を意味している。807では、現在符号化中のフレームがIフレームであるか否かが判定される。そして、Iフレームではない場合には808で動き推定・動き補償処理が行われる。
【0050】
この808における処理の詳細を表すフローチャートの例を図10に示す。まず、1001でフレームメモリAとB(本段落の最後に書かれている通り、フレームメモリBには前フレームの復号画像が格納されている)に蓄えられた画像の間でブロックごとに動き推定の処理が行われ、各ブロックの動きベクトルが求められ、その動きベクトルは出力バッファに出力される。続いて1002で現フレームがP+フレームであるか否かが判定され
、P+フレームである場合には1003で正の丸め込みを用いて予測画像が合成され、この予測画像はフレームメモリCに蓄えられる。一方、現フレームがP−フレームである場合には1004で負の丸め込みを用いて予測画像が合成され、この予測画像がフレームメモリCに蓄えられる。そして1005ではフレームメモリAとCの差分画像が求められ、これがフレームメモリAに蓄えられる。
【0051】
ここで再び図8に戻る。809における処理が開始される直前、フレームメモリAには
、現フレームがIフレームである場合には入力画像が、現フレームがPフレーム(P+またはP−フレーム)である場合には入力画像と予測画像の差分画像が蓄えられている。809では、このフレームメモリAに蓄えられた画像に対してDCTが適用され、ここで計算されたDCT係数は量子化された後に出力バッファに出力される。そしてさらに810で、この量子化DCT係数には逆量子化され、逆DCTが適用され、この結果得られた画像はフレームメモリBに格納される。続いて811では、再び現フレームがIフレームであるか否かが判定され、Iフレームではない場合には812でフレームメモリBとCの画像が加算され、この結果がフレームメモリBに格納される。ここで、1フレーム分の符号化処理が終了することになる。
【0052】
そして、813の処理が行われる直前にフレームメモリBに格納されている画像は、符号化処理が終了したばかりのフレームの再生画像(復号側で得られるものと同じ)である
。813では、符号化が終了したフレームが最後のフレームであるか否かが判定され、最後のフレームであれば、符号化処理が終了する。最後のフレームではない場合には、814でNに1が加算され、再び803に戻って次のフレームの符号化処理が開始される。
【0053】
図7にソフトウェア復号化器700の例を示す。入力された符号化ビットストリーム701は一旦入力バッファ702に蓄えられた後に汎用プロセッサ703に読み込まれる。汎用プロセッサはハードディスクやフロッピー(登録商標)ディスクなどによる蓄積デバイス708から読み出されたプログラムを蓄えるプログラム用メモリ704、および処理用メモリ705を活用して復号化処理を行う。この結果得られた復号化画像は一旦出力フレームメモリ706に蓄えられた後に出力画像707として出力される。
【0054】
図7に示したソフトウェア復号化器上で動作する復号化ソフトウェアのフローチャートの例を図11に示す。1101で処理が開始され、まず1102で入力情報があるか否かが判定される。ここで入力情報が無ければ1103で復号化の処理を終了する。入力情報がある場合には、まず、1104で符号化識別情報が入力される。なお、この「入力される」とは、入力バッファ(例えば、図7の702)に蓄えられた情報を読み込むことを意味している。1105では、読み込んだ符号化モード識別情報が’I’であるか否かが判定される。そして、’I’ではない場合には、1106で丸め込み方法の識別情報が入力
され、続いて1107で動き補償処理が行われる。
【0055】
この1107で行われる処理の詳細を表したフローチャートの例を図12に示す。まず
、1201でブロックごとの動きベクトル情報が入力される。そして、1202で1106で読み込まれた丸め込み方法の識別情報が’+’であるか否かが判定される。これが’+’である場合には、現在復号化中のフレームがP+フレームである。このとき1203で正の丸め込みにより予測画像が合成され、この予測画像はフレームメモリDに格納される。
【0056】
なお、ここで述べたフレームメモリDとは、ソフトウェア復号化器のメモリ領域(例えば、図7の705のメモリ内にこのメモリ領域が確保される)の一部を意味している。一方、丸め込み方法の識別情報が’+’ではない場合には、現在復号化中のフレームがP−フレームであり、1204で負の丸め込みにより予測画像が合成され、この予測画像はフレームメモリDに格納される。このとき、もし何らかの誤りにより、P+フレームがP−フレームとして復号化されたり、逆にP−フレームがP+フレームとして復号化された場合には、符号化器が意図したものとは異なる予測画像が復号化器において合成されることになり、正しい復号化が行われずに画質が劣化する。
【0057】
ここで図11に戻る。1108では量子化DCT係数が入力され、これに逆量子化、逆DCTを適用して得られた画像がフレームメモリEに格納される。1109では、再び現在復号化中のフレームがIフレームであるか否かが判定される。そして、Iフレームではない場合には、1110でフレームメモリDとEに格納された画像が加算され、この結果の画像がフレームメモリEに格納される。1111の処理を行う直前にフレームメモリEに格納されている画像が、再生画像となる。1111では、このフレームメモリEに格納された画像が出力フレームメモリ(例えば、図7の706)に出力され、そのまま出力画像として復号化器から出力される。こうして1フレーム分の復号化処理が終了し、処理は再び1102に戻る。
【0058】
図6と7に示したソフトウェア画像符号化器、ソフトウェア画像復号化器に図8〜12に示したフローチャートに基づくプログラムを実行させると、専用回路・専用チップを用いる装置を使用した場合と同様の効果を得ることができる。
【0059】
図6のソフトウェア符号化器601が図8〜10のフローチャートに示した処理を行うことにより生成されたビットストリームを記録した蓄積メディア(記録媒体)の例を図1
3に示す。ディジタル情報を記録することができる記録ディスク(例えば磁気、光ディスクなど)1301には、同心円上にディジタル情報が記録されている。このディスクに記録されているディジタル情報の一部1302を取り出すと、符号化されたフレームの符号化モード識別情報1303、1305、1308、1311、1314、丸め込み方法の識別情報1306、1309、1312、1315、動きベクトルやDCT係数等の情報1304、1307、1310、1313、1316が記録されている。図8〜10に示した方法に従えば、1303には’I’、1305、1308、1311、1314には
’P’、1306、1312には’+’、1309、1315には’−’を意味する情報
が記録されることとなる。この場合、例えば’I’と’+’は1ビットの0、’P’と’
−’は1ビットの1で表せば、復号化器は正しく記録された情報を解釈し、再生画像を得ることが可能となる。このようにして蓄積メディアに符号化ビットストリームを蓄積することにより、このビットストリームを読み出して復号化した場合に丸め込み誤差の蓄積が発生することを防ぐことができる。
【0060】
図5に示したP+フレーム、P−フレーム、Bフレームが存在する画像系列に関する符号化ビットストリームを記録した蓄積メディアの例を図15に示す。図13の1301と同様に、ディジタル情報を記録することができる記録ディスク(例えば磁気、光ディスクなど)1501には、同心円上にディジタル情報が記録されている。このディスクに記録されているディジタル情報の一部1502を取り出すと、符号化されたフレームの符号化モード識別情報1503、1505、1508、1510、1513、丸め込み方法の識別情報1506、1512、動きベクトルやDCT係数等の情報1504、1507、1509、1511、1514が記録されている。
【0061】
このとき、1503には’I’、1505、1510には’P’、1508、1513
には’B’、1505には’+’、1511には’−’を意味する情報が記録されている
。例えば’I’、’P’、’B’をそれぞれ2ビットの00、01、10、’+’と’−
’はそれぞれ1ビットの0と1で表せば、復号化器は正しく記録された情報を解釈し、再生画像を得ることが可能となる。
【0062】
このとき図5の501(Iフレーム)に関する情報が1503と1504、502(Bフレーム)に関する情報が1508と1509、フレーム503(P+フレーム)に関する情報が1505〜1507、フレーム504(Bフレーム)に関する情報が1513と1514、フレーム505(P−フレーム)に関する情報が1510〜1512である。このように動画像をBフレームを含む形で符号化場合、一般的にフレームに関する情報を伝送する順番と、再生する順番は異なる。これは、あるBフレームを復号化する前に、このBフレームが予測画像を合成する際に使用する前後の参照画像を復号化しておかなければならないためである。このため、フレーム502はフレーム503の前に再生されるにもかかわらず、フレーム502が参照画像として使用するフレーム503に関する情報がフレーム502に関する情報の前に伝送されるのである。
【0063】
上述の通り、Bフレームは丸め込み誤差の蓄積を引き起こす要員とはならないため、Pフレームのように複数の丸め込み方法を適用する必要はない。このため、ここに示した例では、Bフレームに関してはは丸め込み方法を指定する’+’や’−’のような情報は伝送されていない。こうすることにより、例えばBフレームに関しては常に正の丸め込みのみが適用されるようにしたとしても、誤差の蓄積の問題は発生しない。このようにして、蓄積メディアにBフレームに関する情報を含む符号化ビットストリームを蓄積することにより、このビットストリームを読み出して復号化した場合に丸め込み誤差の蓄積が発生することを防ぐことができる。
【0064】
図14に、本明細書で示したP+フレームとP−フレームが混在する符号化方法に基づく符号化・復号化装置の具体例を示す。パソコン1401に画像符号化・復号化用のソフトウェアを組み込むことにより、画像符号化・復号化装置として活用することが可能である。このソフトウェアはコンピュータ読み取り可能な記録媒体である何らかの蓄積メディア(CD−ROM、フロッピー(登録商標)ディスク、ハードディスクなど)1412に記録されており、これをパソコンが読み込んで使用する。また、さらに何らかの通信回線にこのパソコンを接続することにより、映像通信端末として活用することも可能となる。
【0065】
記録媒体である蓄積メディア1402に記録した符号化ビットストリームを読み取り、復号化する再生装置1403にも本明細書に示した復号化方法を実装することが可能である。この場合、再生された映像信号はテレビモニタ1404に表示される。また、1403の装置は符号化ビットストリームを読み取るだけであり、テレビモニタ1404内に復号化装置が組み込まれている場合も考えられる。
【0066】
最近は衛星、地上波によるディジタル放送が話題となっているが、ディジタル放送用のテレビ受信機1405にも復号化装置を組み込むことができる。
【0067】
また、ケーブルテレビ用のケーブル1408または衛星/地上波放送のアンテナに接続されたセットトップボックス1409内に復号化装置を実装し、これをテレビモニタ1410で再生する構成も考えられる。このときも1404の場合と同様に、セットトップボックスではなく、テレビモニタ内に符号化装置を組み込んでも良い。
【0068】
1413、1414、1415は、ディジタル衛星放送システムの構成例を示したものである。放送局1413では映像情報の符号化ビットストリームが電波を介して通信または放送衛星1414に伝送される。これを受けた衛星は、放送用の電波を発信し、この電波を衛星放送受信設備をもつ家庭1415が受信し、テレビ受信機またはセットトップボックスなどの装置により符号化ビットストリームを復号化してこれを再生する。
【0069】
低い伝送レートでの符号化が可能となったことにより、最近はディジタル携帯端末1406によるディジタル動画像通信も注目されるようになっている。ディジタル携帯端末の場合、符号器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の3通りの実装形式が考えられる。
【0070】
動画像撮影用のカメラ1407の中に符号化装置を組み込むことも可能である。この場合撮影用カメラは符号化装置と該符号化装置からの出力を記録媒体に記録する記録装置とを持ち、符号化装置から出力された符号化ビットストリームを記録媒体に記録する。また
、カメラは映像信号を取り込むのみであり、これを専用の符号化装置1411に組み込む構成も考えられる。
【0071】
この図に示したいずれの装置・システムに関しても、本明細書に示した方法を実装することにより、従来の技術を活用した場合と比較して、より画質の高い画像情報を扱うことが可能となる。
【0072】
なお、以下の変形も本発明に含まれることは明らかである。
(1)上の議論では、動き補償方式としてブロックマッチングが使用されることが前提となっていた。しかし、本発明は動きベクトルの水平・垂直成分が水平・垂直方向の画素のサンプリング間隔の整数倍以外値をとることができ、サンプル値の存在しない位置における強度値を共1次内挿によって求める動き補償方式を採用する画像符号化方式および画像復号化方式すべてに対して適用することができる。たとえば特願平08-060572に記載され
ているグローバル動き補償や、特願平08-249601に記載されているワーピング予測に対し
ても、本発明は適用可能である。
(2)これまでの議論では、動きベクトルの水平・垂直成分が1/2の整数倍の値をとる場合のみについて議論してきた。しかし、議論を一般化すれば、本発明は動きベクトルの水平・垂直成分が1/dの整数倍(dは正の整数、かつ偶数)をとる方式に対して適用可能である。しかし、dが大きくなった場合には、共1次内挿の除算の除数(dの2乗、数2参照)が大きくなるため、相対的に通常の除算の結果が整数に0.5を足した値となる確率が低くなる。したがって、プラスの丸め込みのみを行った場合の、丸め込み誤算の期待値の絶対値が小さくなり、誤差の蓄積による悪影響が目立ちにくくなる。そこで、例えばdの値が可変である動き補償方式などにおいては、dがある一定値より小さい場合にはプラスの丸め込みとマイナスの丸め込みの両方を使用し、dが上記一定値以上の場合にはプラスまたはマイナスの丸め込みのみを用いるという方法も有効である。
(3)従来の技術で述べた通り、DCTを誤差符号化方式として利用した場合、丸め込み誤差の蓄積による悪影響はDCT係数の量子化ステップサイズが大きい場合に現れやすい
。そこで、DCT係数の量子化ステップサイズがある一定値より大きい場合にはプラスの丸め込みとマイナスの丸め込みの両方を使用し、DCT係数の量子化ステップサイズが上記一定値以下の場合にはプラスまたはマイナスの丸め込みのみを用いるという方法も有効である。
(4)輝度プレーンで丸め込み誤差の蓄積が起こった場合と色差プレーンで丸め込み誤差の蓄積が起こった場合では、一般的に色差プレーンで発生した場合の方が再生画像に与える影響が深刻である。これは、画像が全体的にわずかに明るくなったり暗くなったりすることよりも、画像の色が全体的に変化した場合の方が目立ちやすいためである。そこで、色差信号に対してはプラスの丸め込みとマイナスの丸め込みの両方を使用し、輝度信号に対してはプラスまたはマイナスの丸め込みのみを用いるという方法も有効である。
【0073】
また、従来の技術でH.263における1/4画素精度の動きベクトルの1/2画素精度の動きベクトルへの丸め込み方法に関して述べたが、この方法に多少の変更を加えることにより、丸め込み誤差の期待値の絶対値を小さくすることが可能である。従来の技術でとりあげたH.263では、輝度プレーンの動きベクトルの水平成分または垂直成分を半分にした値がr+s/4(rは整数、sは0以上4未満の整数)で表されるとして、sが1または3であるときに、これを2に丸め込む操作がおこなわれる。これをsが1のときにはこれを0とし、sが3であるときにはrに1を加えてsを0とする丸め込みを行うように変更すればよい。こうすることにより、図4の406〜408の位置の強度値を計算する回数が相対的に減少する(動きベクトルの水平・垂直成分が整数となる確率が高くなる)ため、丸め込み誤差の期待値の絶対値が小さくなる。しかし、この方法では発生する誤差の大きさを抑えることはできても、誤差が蓄積することを防ぐことはできない。
(5)Pフレームに対して、2種類の動き補償方式によるフレーム間予測画像の平均を最終的なフレーム間予測画像とする方式がある。例えば特願平8-3616では、縦横16画素のブロックに対して一個の動きベクトルを割り当てるブロックマッチングと、縦横16画素のブロックを4個の縦横8画素のブロックに分割して、それぞれに対して動きベクトルを割り当てるブロックマッチングの2種類の方法によって得た2種類のフレーム間予測画像を用意し、これらのフレーム間予測画像の強度値の平均を求めたものを最終的なフレーム間予測画像とする方法が述べられている。この方法において2種類の画像の平均値を求める際にも丸め込みが行われる。この平均化の操作でプラスの丸め込みのみを行い続けると
、新たな丸め込み誤差の蓄積の原因を作ることになる。この方式では、ブロックマッチングにおいてプラスの丸め込みを行うP+フレームに対しては、平均化の操作ではマイナスの丸め込みを行い、P−フレームに対しては平均化の操作ではプラスの丸め込みを行うようにすれば、同一フレーム内でブロックマッチングによる丸め込み誤差と平均化による丸め込み誤差が打ち消し合う効果を得ることができる。(6)P+フレームとP−フレーム
を交互に配置する方法を用いた場合、符号化装置と復号化装置は現在符号化しているPフレームがP+フレームであるP−フレームであるかを判定するために、例えば以下の処理を行なうことが考えられる。現在符号化または復号化しているPフレームが、最も最近に符号化または復号化されたIフレームの後の何番目のPフレームであるかを数え、これが奇数であるときにはP+フレーム、偶数であるときはP−フレームとすれば良い(これを暗示的方法と呼ぶ)。また、符号化装置側が現在符号化しているPフレームがP+フレー
ムであるか、P−フレームであるかを識別する情報を、例えばフレーム情報のヘッダ部分に書き込むという方法もある(これを明示的方法と呼ぶ)。この方法の方が、伝送誤りに
対する耐性は強い。
【0074】
また、P+フレームと、P−フレームを識別する情報をフレーム情報のヘッダ部分に書き込む方法には、以下の長所がある。「従来の技術」で述べた通り、過去の符号化標準(
例えばMPEG−1やMPEG−2)では、Pフレームにおいて正の丸め込みのみが行われる。したがって、例えば既に市場に存在しているMPEG−1/2用の動き推定・動き補償装置(例えば、図1の106に相当する部分)は、P+フレームとP−フレームが混在する符号化には対応できないことになる。いま、P+フレームとP−フレームが混在する符号化に対応した復号化器があるとする。この場合に、もしこの復号化器が上記暗示的方法に基づくものであれば、MPEG−1/2用の動き推定・動き補償装置を用いて、この暗示的方法に基づく復号化器が正しく復号化できるようなビットストリームを生成する符号化器を作ることは困難である。
【0075】
しかし、復号化器が上記明示的方法に基づくものである場合には、この問題を解決することができる。MPEG−1/2用の動き推定・動き補償装置を使用した符号化器は、常にP+フレームを送り続け、これを示す識別情報をフレーム情報のヘッダに書き込み続ければ良い。こうすれば、明示的方法に基づく復号化器は、この符号化器が生成したビットストリームを正しく再生することができる。
【0076】
もちろん、この場合にはP+フレームのみが存在するため、丸め込み誤差の蓄積は発生しやすくなる。しかし、この符号化器がDCT係数の量子化ステップサイズとして小さい値のみを用いるもの(高レート符号化専用の符号化器)であるような場合には、誤差の蓄積は大きな問題とはならない。
【0077】
この過去の方式との互換性の問題以外にも、明示的方法にはさらに、(a)高レート符
号化専用の符号化器や、頻繁にIフレームを挿入することにより丸め込み誤差が発生しにくい符号化器は、正か負のどちらかの丸め込み方法のみを実装すれば良く、装置のコストを抑えることができる、(b)上記の丸め込み誤差が発生しにくい符号化器は、P+また
はP−フレームのどちらか一方のみを送り続ければ良いため、現在符号化を行っているフレームをP+フレームとするか、P−フレームとするかの判定を行う必要がなく、処理を簡略化できる、といった長所がある。
(7)本発明は、フレーム間予測画像に対し、丸め込み処理を伴うフィルタリングを行う場合にも適用することができる。例えば、動画像符号化の国際標準であるH.261では
、フレーム間予測画像において動きベクトルが0ではなかったブロック内の信号に対しては、低域通過型フィルタ(これをループフィルタと呼ぶ)が適用される。また、H.263では、ブロックの境界部に発生する不連続(いわゆるブロック歪み)を平滑化するためのフィルタを使用することができる。これらのフィルタでは、画素の強度値に対して重み付け平均化の処理が行われ、フィルタリング後の強度値に対して整数への丸め込みの操作が行われる。ここでもプラスの丸め込みとマイナスの丸め込みを使い分けることにより、誤差の蓄積を防ぐことが可能である。
(8)IP+P−P+P−…の他に、IP+P+P−P−P+P+…や、IP+P−P−P+P+…など、P+フレームとP−フレームの混在の仕方には様々な方法が考えられる
。例えば、それぞれ1/2の確率で0と1が発生する乱数発生器を使用し、0が出ればP+、1が出ればP−としても良い。いずれにせよ、一般的にP+とP−フレームが混在し
、かつ一定時間内のそれぞれの存在確率の差が小さいほど、丸め混み誤差の蓄積は発生しにくくなる。また、符号化器に対し、任意のP+フレームとP−フレームの混在の仕方を許すような場合、符号化器と復号化器は(6)で示した暗示的方法に基づくものではなく
、明示的方法に基づくものでなければならない。したがって、符号化器と復号化器に関してより柔軟な実装形態を許すという観点からは、明示的方法の方が有利となる。
(9)本発明は、画素の存在しない点の強度値を求める方法を共1次内挿に限定するものではない。強度値の内挿方法は一般化すると、以下の式のように表すことができる。
【0078】
【数5】
【0079】
ここで、r、sは実数、h(r,s)は内挿のための実数の関数、T(z)は実数zを整数に丸め込む関数であり、R(x,y)、x、yの定義は数4と同じである。T(z)が、プ
ラスの丸め込みを表す関数である場合にはプラスの丸め込みを用いる動き補償、マイナスの丸め込みを表す関数である場合にはマイナスの丸め込みを用いる動き補償が行われる。この数5の形式で表すことのできる内挿方法に対しては、本発明を適用することが可能である。例えばh(r,s)を、
【0080】
【数6】
【0081】
のように定義すれば共1次内挿が行われる。しかし、例えばh(r,s)を
【0082】
【数7】
【0083】
のように定義すれば、共1次内挿とは異なる内挿方法が実施されるが、この場合も本発明を適用することは可能である。
(10)本発明は、誤差画像の符号化方法をDCTに限定するものではない、例えば、DCTではなく、ウェーブレット変換(例えば、M. Antonioni, et. al, "Image Coding Us
ing Wavelet Transform", IEEE Trans. Image Processing, vol. 1, no.2, April 1992)や、ウォルシューアダマール変換(Walsh-Hadamard Transform)(例えば、A. N. Netrav
alli and B. G. Haskell, "Digital Pictures", Plenum Press, 1998)を使用した場合でも本発明は適用可能である。
【符号の説明】
【0084】
100…画像符号化器、101…入力画像、102…減算器、103…誤差画像、104…DCT変換器、105…DCT係数量子化器、106、201…量子化DCT係数、108、204…DCT係数逆量子化器、109、205…逆DCT変換器、110、206…復号誤差画像、111、207…加算器、112…現フレームの復号画像、113、215…フレーム間/フレーム内符号化切り換えスイッチの出力画像、114、209…フレームメモリ、115、210…前フレームの復号画像、116、1600…ブロックマッチング部、117、212…現フレームの予測画像、118、213…「0」信号、119、214…フレーム間/フレーム内符号化切り換えスイッチ、120、202…動きベクトル情報、121、203…フレーム間/フレーム内識別フラグ、122…多重化器、123…伝送ビットストリーム、200…画像復号化器、208…出力画像、211
、1700…予測画像合成部、216…分離器、301…Yブロック、302…Uブロック、303…Vブロック、401〜404…画素、405〜408…共1次内挿により強度値を求める位置、501…Iフレーム、503、505、507、509…Pフレーム
、502、504、506、508…Bフレーム、600…ソフトウェア画像符号化器、602…入力画像用フレームメモリ、603、703…汎用プロセッサ、604、704…プログラム用メモリ、605、705…処理用メモリ、606…出力バッファ、607
、701…符号化ビットストリーム、608、708…蓄積デバイス、700…ソフトウェア画像復号化器、702…入力バッファ、706…出力画像用フレームメモリ。801〜815、901〜906、1001〜1005、1101〜1111、1201〜1204…フローチャートの処理項目、1301、1402、1501…蓄積メディア、1302、1502…ディジタル情報を記録したトラック、1303〜1316、1503〜1514…ディジタル情報、1401…パソコン、1403…蓄積メディアの再生装置、1404、1410…テレビモニタ、1405…テレビ放送受信機、1406…無線携帯端末、1407…テレビカメラ、1408…ケーブルテレビ用のケーブル、1409…セットトップボックス、1411…画像符号化装置、1412…ソフトウェア情報を記録した蓄積メディア、1413…放送局、1414…通信または放送衛星、1415…衛星放送受信設備を持つ家庭、1601…動き推定器、1602、1701…丸め込み方法決定器、1604、1605、1702、1704…丸め込み方法に関する情報、1603、1703…予測画像合成器。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17