以下、実施の形態に従って本発明を詳細に説明する。
図1に、本発明を具備する映像再符号化装置1の一実施形態例を図示する。
本実施形態例の映像再符号化装置1は、符号化されたMPEG−2ストリーム601を入力として、そのMPEG−2ストリーム601をいったんデコードすることでデコード映像602を生成して、それをH.264符号化することでH.264ストリーム605を生成するという処理を行うものであって、この再符号化処理を実行するために、MPEG−2デコード部100と、符号化情報変換部200と、符号化情報変換テーブル300と、QSC−Qs対応テーブル400と、H.264エンコード部500とを備える。
このMPEG−2デコード部100は、MPEG−2ストリーム601を入力し、これをデコードすることでデコード映像602を生成して出力するとともに、MPEG−2ストリーム601に含まれる符号化情報(たとえば、ピクチャ毎に指定されるピクチャ構造、ピクチャタイプ、量子化マトリックスなどや、MB毎に指定される量子化パラメータQSC、イントラ/インター情報、フレーム/フィールド情報、MBタイプ、使用した動きベクトル種別、動きベクトルなど)を抽出して、それを符号化情報603として符号化情報変換部200に出力する。
符号化情報変換部200は、符号化情報603を入力して、その符号化情報603に含まれるピクチャ構造、ピクチャタイプ、量子化マトリックス、各MBのフレーム/フィールド情報および各MBの動きベクトルの情報については変更せずに、そのまま再符号化情報604としてH.264エンコード部500に出力する。
さらに、符号化情報変換部200は、符号化情報603に含まれるピクチャタイプ、MB毎のイントラ/インター情報およびMB毎の動き予測方向情報をキーにして符号化情報変換テーブル300を参照することで、H.264符号化に必要となるMBタイプ、画面内予測モードおよび8×8変換フラグの情報を取得して、それらの情報を再符号化情報604としてH.264エンコード部500に出力する。
さらに、符号化情報変換部200は、符号化情報603に含まれるMPEG−2量子化パラメータQSCをキーにしてQSC−Qs対応テーブル400を参照することで、そのMPEG−2量子化パラメータQSCに対応付けられるH.264量子化ステップQsの情報を取得して、そのH.264量子化ステップQsの情報を再符号化情報604としてH.264エンコード部500に出力する。
符号化情報変換テーブル300は、図2に示すように、
(1)MPEG−2符号化が、Iピクチャの符号化で、イントラ符号化のMBである場 合には、H.264符号化では、そのMBについては、MBタイプが8×8サイ ズのイントラ符号化で、画面内予測モードがDCモードで、整数精度DCT変換 サイズが8×8(8×8変換フラグの値1で指示する)で符号化し、
(2)MPEG−2符号化が、Pピクチャの符号化で、イントラ符号化のMBである場 合には、H.264符号化では、そのMBについては、MBタイプが8×8サイ ズのイントラ符号化で、画面内予測モードがDCモードで、整数精度DCT変換 サイズが8×8(8×8変換フラグの値1で指示する)で符号化し、
(3)MPEG−2符号化が、Bピクチャの符号化で、イントラ符号化のMBである場 合には、H.264符号化では、そのMBについては、MBタイプが8×8サイ ズのイントラ符号化で、画面内予測モードがDCモードで、整数精度DCT変換 サイズが8×8(8×8変換フラグの値1で指示する)で符号化し、
(4)MPEG−2符号化が、Pピクチャの符号化で、前方向のインター符号化のMB である場合には、H.264符号化では、そのMBについては、MBタイプがP _L0_16×16で、整数精度DCT変換サイズが8×8(8×8変換フラグ の値1で指示する)で符号化し、
(5)MPEG−2符号化が、Bピクチャの符号化で、前方向のインター符号化のMB である場合には、H.264符号化では、そのMBについては、MBタイプがB _L0_16×16で、整数精度DCT変換サイズが8×8(8×8変換フラグ の値1で指示する)で符号化し、
(6)MPEG−2符号化が、Bピクチャの符号化で、後方向のインター符号化のMB である場合には、H.264符号化では、そのMBについては、MBタイプがB _L1_16×16で、整数精度DCT変換サイズが8×8(8×8変換フラグ の値1で指示する)で符号化し、
(7)MPEG−2符号化が、Bピクチャの符号化で、双方向のインター符号化のMB である場合には、H.264符号化では、そのMBについては、MBタイプがB _Bi_16×16で、整数精度DCT変換サイズが8×8(8×8変換フラグ の値1で指示する)で符号化する
という情報を管理する。
QSC−Qs対応テーブル400は、MPEG−2量子化パラメータQSCとH.264量子化ステップQsとの対応関係を管理する。
H.264エンコード部500は、デコード映像602と再符号化情報604とを入力して、デコード映像602をその再符号化情報604の指示に従ってH.264符号化することで、H.264ストリーム605を生成して出力する。
図3に、MPEG−2デコード部100の詳細な構成を図示し、図4に、H.264エンコード部500の詳細な構成を図示する。
図3に示すように、MPEG−2デコード部100は、(1)MPEG−2ストリーム601を入力し、これを逆可変長符号化して得られる逆可変長符号化信号(信号101)を出力するとともに、ピクチャ毎に指定されるピクチャ構造、ピクチャタイプおよび量子化マトリックスと、MB毎に指定されるフレーム/フィールド情報、動きベクトル、イントラ/インター情報および動き予測方向情報と、MB毎に指定されるMPEG−2量子化パラメータQSCなどを符号化情報603として出力する逆可変長符号化部101と、(2)逆可変長符号化信号を入力し、これを逆量子化して得られる逆量子化信号(信号102)を出力する逆量子化部102と、(3)逆量子化信号を入力し、これを逆DCT変換して得られる逆DCT信号(信号103)を出力する逆DCT変換部103と、(4)逆DCT信号を入力し、これを動き補償して得られるデコード映像602を出力する動き補償部104とで構成される。
また、図4に示すように、H.264エンコード部500は、(1)デコード映像602と、再符号化情報604と、後述する再生画像信号(信号505)とを入力し、再符号化情報604に含まれる動きベクトル、動き予測モードを使い、デコード映像602の残差画像を求めて、これを残差画像信号(信号501)として出力する動き探索部501と、(2)残差画像信号と再符号化情報604とを入力し、再符号化情報604に含まれる8×8変換フラグに従って、サイズ8×8の整数精度DCT変換を実施して、整数精度DCT信号(信号502)を出力する整数精度DCT変換部502と、(3)整数精度DCT信号と再符号化情報604とを入力し、再符号化情報604に含まれるH.264量子化ステップQsで量子化を行い、得られる量子化信号(信号503)を出力する量子化部503と、(4)量子化信号を入力し、CABACあるいはCAVLC等のエントロピー符号化を行い、H.264ストリーム605を出力するエントロピー符号化部504と、(5)量子化信号を入力し、逆量子化を行い、得られる逆量子化信号(信号504)を出力する逆量子化部505と、(6)逆量子化信号を入力し、これに逆整数精度DCT変換を施して、その結果得られる再生画像信号(信号505)を出力する逆整数精度DCT変換部506とで構成される。
図5に、このように構成される本実施形態例の映像再符号化装置1の実行するフローチャートを図示する。
次に、このフローチャートに従って、このように構成される本実施形態例の映像再符号化装置1の実行するMPEG−2ストリーム601の再符号化処理について説明する。
本実施形態例の映像再符号化装置1は、MPEG−2ストリーム601の再符号化処理の指示があると、図5のフローチャートに示すように、まず最初に、ステップS100で、再符号化処理の対象となる符号化されたMPEG−2ストリーム601を入力する。
続いて、ステップS101で、MPEG−2の規定するデコード手順に従って、入力したMPEG−2ストリーム601をいったんデコードすることでデコード映像602を生成する。
続いて、ステップS102で、入力したMPEG−2ストリーム601に含まれる符号化情報(デコードしたもの)を抽出する。
続いて、ステップS103で、抽出した符号化情報に含まれるピクチャ構造、ピクチャタイプ、量子化マトリックス、各MBのフレーム/フィールド情報、各MBの動きベクトルの情報については、そのまま再符号化情報604として設定する。
続いて、ステップS104で、抽出した符号化情報に含まれるピクチャタイプとMB毎のイントラ/インター情報とMB毎の動き予測方向情報とをキーにして符号化情報変換テーブル300を参照することで、MB毎に、H.264符号化に必要となるMBタイプ、画面内予測モードおよび8×8変換フラグの情報を取得して、それらの情報を再符号化情報604として設定する。
続いて、ステップS105で、抽出した符号化情報に含まれるMPEG−2量子化パラメータQSCをキーにしてQSC−Qs対応テーブル400を参照することで、そのMPEG−2量子化パラメータQSCに対応付けられるH.264量子化ステップQsを取得して、その情報を再符号化情報604として設定する。
続いて、ステップS106で、H.264の規定するエンコード手順に従い、設定した再符号化情報604の指示に従ってデコード映像をH.264符号化することで、H.264ストリームを生成して出力する。
このようにして、本実施形態例の映像再符号化装置1は、符号化されたMPEG−2ストリーム601を入力し、それをいったんデコードして、そのデコードした映像をH.264符号化することでH.264ストリームを生成するときに、図2に示すような変換テーブル構造を持つ符号化情報変換テーブル300に従って、入力したMPEG−2ストリーム601のMPEG−2符号化に用いられた符号化情報の一部をH.264符号化に必要となる符号化情報に変換して、その変換した符号化情報を使ってH.264符号化することで、H.264ストリームを生成するように処理するのである。
前述したように、初回MPEG−2エンコードの際の符号化情報と同一の符号化情報の指示に従って2回目のMPEG−2エンコードを実施すれば、ほとんど画質劣化なしに再エンコードが可能になる。
しかしながら、これでは符号量を削減できないという問題がある。符号量の削減を実現するには、量子化ステップQsを大きくすればよいが、前述したように、量子化ステップQsを大きくすると、大きな画質劣化が発生する。
これを解決するために、MPEG−2よりも符号化性能の高いH.264で2回目のエンコードを実行することで、量子化ステップQsを変更しなくとも、符号量を削減することが可能と考えられる。
しかしながら、前述したように、MPEG−2よりも符号化性能の高いH.264で2回目のエンコードを実行しても、実際には大きな画質劣化が発生する。
その大きな原因は、MPEG−2では、IntraMBは隣接MBの影響を受けずに、各MB単独で符号化が可能であるのに対し、H.264では、IntraMBは画面内予測符号化、つまり隣接MBの画素値に依存した符号化が不可避であるという点にある。
すなわち、MPEG−2では、符号化対象のIntraMBの画像信号を直接DCT変換するのに対して、H.264では、隣接MBの画素値から符号化対象のIntraMBの画像信号を予測して、その予測値との予測残差信号をDCT変換するようにしている。これにより高い符号化性能が実現されることになるのであるが、一方で、これによりH.264で2回目のエンコードを実行すると画質が劣化することが避けられない。
そこで、本発明では、MPEG−2符号化においてIntraMBとして符号化したMBについては、隣接MBの隣接する特定画素の画素値の平均値をIntraMBの画像信号の予測信号とするDCモードの画面内予測を使って、H.264で符号化するようにする。
DCモードの画面内予測では、IntraMB内の各画像信号のレベル値が一定のDCレベル分したものになるので、そのシフト結果の予測残差信号をDCT変換することで求められる非直流成分以外のDCT係数については、IntraMBの画像信号を直接DCT変換することで求められる非直流成分以外のDCT係数とほぼ一致することになる。
これから、本発明では、MPEG−2においてIntraMBとして符号化したMBについては、隣接MBの隣接する特定画素の画素値の平均値をIntraMBの画像信号の予測信号とするDCモードの画面内予測を使って、H.264で符号化するようにするのである。
ただし、このとき、MPEG−2符号化におけるDCT変換サイズ(8×8である)と、H.264符号化におけるDCT変換サイズ(整数精度DCT変換サイズ)とが異なると、この違いにより画質が劣化することが避けられない。
そこで、本発明では、H.264符号化におけるDCT変換サイズが8×8となるようにと、8×8変換フラグに1を設定するのである。H.264符号化では、符号化性能の向上を図るために、MPEG−2符号化と違って様々なDCT変換サイズを用いることが可能となっているので、再符号化情報604で8×8変換フラグに1を設定することで、H.264エンコード部500に対して、DCT変換サイズが8×8となるように指示するのである。
ここで、H.264符号化において、DCT変換サイズとして8×8を用いることができるMBサイズは8×8である。MPEG−2符号化におけるMBサイズは16×16であるが、画質劣化を防止するために、H.264符号化においてDCT変換サイズを8×8にする必要があることから、再符号化情報604では、H.264符号化におけるMBサイズとして8×8を用いるように指示している。
一方、InterMBについては、MPEG−2符号化の残差画像とH.264符号化の残差画像とは、ともに隣接MBの画素値の影響を受けることはない。したがって、InterMBに起因する画質劣化はほとんどない。
これから、本発明では、MPEG−2符号化においてPピクチャ、前方向で符号化されたInterMBについては、それに該当するP_L0_16×16のMBタイプでH.264符号化し、MPEG−2符号化においてBピクチャ、前方向で符号化されたInterMBについては、それに該当するB_L0_16×16のMBタイプでH.264符号化し、MPEG−2符号化においてBピクチャ、後方向で符号化されたInterMBについては、それに該当するB_L1_16×16のMBタイプでH.264符号化し、MPEG−2符号化においてBピクチャ、双方向で符号化されたInterMBについては、それに該当するB_Bi_16×16のMBタイプでH.264符号化するようにしている。
ただし、このとき、MPEG−2符号化におけるDCT変換サイズ(8×8である)と、H.264符号化におけるDCT変換サイズとが異なると、この違いにより画質が劣化することが避けられない。
そこで、本発明では、InterMBについても、H.264符号化におけるDCT変換サイズが8×8となるようにと、8×8変換フラグに1を設定するのである。
この本発明の構成に従って、エンコードの際の符号化情報とほぼ同一の符号化情報の指示に従って2回目のエンコードを実施することが可能になる。唯一異なる点は、MPEG−2符号化では実数精度のDCT変換を行うのに対して、H.264符号化では整数精度のDCT変換を行う点である。ただ、この2つのDCT変換により求められるDCT係数の違いは僅かなものであり、ほとんどの場合、量子化で吸収されることになるので、このDCT変換の違いにより画質が劣化するということはほとんど起こらない。
このようにして、本実施形態例の映像再符号化装置1によれば、MPEG−2ストリームを処理対象として再エンコード処理を実行するときに、ほとんど画質劣化なしに、しかも、符号量の削減を実現しつつ、その再エンコード処理を実行することができるようになる。
次に、図6を使って、本実施形態例の映像再符号化装置1の実行する処理について、さらに詳細に説明する。
ここで、図6は、本発明の画像データ等の流れを示すためのフロー図であり、従来の画像データの流れを示した図17と同様に、1回目のMPEG−2エンコードとMPEG−2デコード、2回目のH.264エンコードとH.264デコードの様子を示している。
ここで、図6の第1列、第2列、第3列、第4列の処理は、それぞれ、図12に示す従来のMPEG−2エンコード回路40、図3に示す本発明のMPEG−2デコード部100、図4に示す本発明のH.264エンコード部500、図15に示す従来のH.264デコード回路50で実施される。
すなわち、図6の第2列と第3列、つまり、1回目のMPEG−2デコードと2回目のH.264エンコードとが本発明に相当する。
また、従来フローを示した図17と本発明のフローを示した図6との対応は、図17のMPEG−2ストリーム1が図6のMPEG−2ストリーム1に、図17のH.264ストリーム1が図6のH.264ストリーム1に、それぞれ対応する。
図6に示す本発明の1回目のエンコードと1回目のデコードは、図17に示す従来の1回目のエンコードと1回目のデコードと全く同じである。異なる点は、本発明が、2回目のエンコードの際に、再符号化情報604の指示に従ってエンコードする点である。
図1に示すMPEG−2デコード部100は、MPEG−2ストリーム601を入力し、これをデコードし、デコード映像602を出力する。図6では、〔a’,b’,c’,d’〕がデコード映像602に相当する。
図1に示す符号化情報変換部200は、符号化情報603を入力し、ピクチャ構造、ピクチャタイプ、量子化マトリックス、各MBのフレーム/フィールド情報および各MBの動きベクトルの情報については変更せずにそのまま再符号化情報604として出力するとともに、MB毎のイントラ/インター情報およびMB毎の動き予測方向情報から、符号化情報変換テーブル300に従い、H.264符号化に必要となるMBタイプ、画面内予測モードおよび8×8変換フラグの情報を取得して再符号化情報604として出力し、さらに、QSC−Qs対応テーブル400に従い、符号化情報603に含まれるMPEG−2量子化パラメータQSCに対応付けられるH.264量子化ステップQsを取得して再符号化情報604として出力する。
なお、MPEG−2ストリームにおいて、量子化ステップQsは、 quanitser_scale _codeと呼ばれる1から31の整数の形で格納されている。Qsと quanitser_scale _codeとの対応は、MPEG−2の国際規格で定義されている。
図6では、MPEG−2符号化の際に、 Quanitser_Scale _Type=0、かつQSC=20、かつIntraエンコードされたMBが処理される例を示しており、符号化情報変換部200は、QSC=20に対応する量子化ステップQs=10を求めるとともに、図2に示す符号化情報変換テーブル300を使用して、MBタイプ、画面内予測モード、8×8変換フラグを求めている。そして、このようにして求めたMBタイプ=I8×8(I・8×8)、画面内予測モード=DCモード、8×8変換フラグ=1と、符号化情報603に含まれるピクチャ構造、ピクチャタイプ、量子化マトリックス、各MBのフレーム/フィールド情報、各MBの動きベクトルとを、再符号化情報604としてH.264エンコード部500に出力する。
これを受けて、図1に示すH.264エンコード部500は、符号化情報変換部200から出力される再符号化情報604に記載されたデコード映像の各スライスおよび各MBの符号化方法に従い、各スライスおよび各MBをH.264符号化し、H.264ストリーム605を出力する。
以上が図6に示す本発明の動作である。以下、本発明と従来技術との差異について述べる。
図6において、2回目エンコードの際に、ME後の画素残差は、〔i,j,k,l〕で示されている。この画素残差〔i,j,k,l〕は、図4の信号501に対応する。MPEG−2のIntraMBは、画面内予測がないため、隣接MBの画素値の影響を全く受けることなくMPEG−2エンコードが可能である。
これに対し、本発明では、MBタイプ=I8×8、画面内予測モード=DCモード、整数精度DCT変換サイズ8×8でH.264エンコードする。画面内予測モード=DCモードであるため、隣接MBの画素値の影響を受ける。
このため、本発明において、MPEG−2デコード時のMC前の画素残差(図6の〔a,b,c,d〕、図3の信号103)と、H.264エンコード時のME後の画素残差(図6の〔i,j,k,l〕、図4の信号501)とは異なるものの、両者の差分の大部分はDCオフセット分(Δ)であり、たとえば、a=i+Δ,b=j+Δ,c=k+Δ,d=l+Δである。
これらの画素残差を直交変換(MPEG−2ならDCT変換、H.264なら整数精度DCT変換)すると、直流成分は大きく異なるものの、直流成分以外は直交変換種別の違いに起因する分だけが異なるだけで直流成分の差異に比べて小さい。
詳細に言えば、MPEG−2デコード時のDCT係数(図6の〔40,30,20,10〕、図3の信号102)の直流成分(図6の〔40,30,20,10〕の40)と、H.264エンコード時の整数精度DCT係数(図6の〔53,33,22,11〕、図4の信号502)の直流成分(図6の〔53,33,22,11〕の53)とは、40と53というように大きく異なるが、MPEG−2デコード時の直流以外のDCT係数(図6の〔40,30,20,10〕の30,20,10)とH.264エンコード時の直流以外の整数精度DCT係数(図6の〔53,33,22,11〕の33,22,11)との差は、直流成分の差異に比べ小さく、僅かに直交変換種別の違いに起因する分だけであり、これらは小さい。
すでに図13で示したように、図13の2回めのエンコード時の量子化の際に、MPEG−2デコード時の直流以外のDCT係数(図13の〔40,30,20,10〕の30,20,10)をMPEG−2量子化時の量子化ステップ(図13ではQs=10)で量子化すると、量子化雑音の混入はない。
したがって、MPEG−2デコード時の直流以外のDCT係数(図6の〔40,30,20,10〕の30,20,10)と僅かに直交変換種別の違いに起因する分だけが異なるH.264エンコード時の直流以外の整数精度DCT係数(図6の〔53,33,22,11〕の33,22,11)に対して、同様な量子化(つまり、MPEG−2量子化時の量子化ステップ(図6ではQs=10)でH.264量子化)を行う場合においても、この量子化過程で混入する直流成分以外の量子化雑音は極めて少ない。
1回目のMPEG−2デコード画像(図6の〔a’,b’,c’,d’〕)から、2回目のH.264デコード画像(図6の〔I’,J’,K’,L’〕)に至るまでの各処理(H.264の動き探索、整数精度DCT変換、量子化、CABAC、逆CABAC、逆量子化、逆整数精度DCT変換、動き補償)において、大きな雑音が混入する処理は量子化処理のみである。この量子化処理において、直流成分を除いた周波数領域に関して、極めて少ない量子化雑音しか混入しない。
つまり、本発明によれば、入力したMPEG−2ストリームに極めて僅かな雑音しか含まないH.264ストリームが得られる。
これに対し、従来技術においては、画素残差の総和が最小になるような画面内予測モードが選択されることが多いが、どの画面内予測モードを選択したとしても、H.264規格で規定されている全ての画面内予測モードは、隣接MBの画素値の影響を受ける。
このため、従来技術においても、MPEG−2デコード時のMC前の画素残差(図17の〔a,b,c,d〕、図11の信号33)と、H.264エンコード時のME後の画素残差(図17の〔p,q,r,s〕、図16の信号61)とは異なり、両者に相関は一般にない。そのため、両者を直交変換しても、直交変換後も両者に相関はなく、一般に全ての周波数領域で一様に差異が発生する。
詳細に言えば、MPEG−2デコード時のDCT係数(図17の〔40,30,20,10〕、図11の信号32)と、H.264エンコード時の直交変換後の整数精度DCT係数(図17の〔40,20,25,15〕,図16の信号62)との相関は小さい。このため、画素残差の総和が最小になるような画面内予測モードを使用してあることで、たとえH.264エンコード時の直交変換後の整数精度DCT係数(図17の〔40,20,25,15〕,図16の信号62)が小さくなったとしても、両者の各周波数成分毎の差異は、本発明における差異に比べ、一般に大きい。
本発明では、MPEG−2デコード時の直流以外のDCT係数(図6の〔40,30,20,10〕の30,20,10)と、H.264エンコード時の直流以外の整数精度DCT係数(図6の〔53,33,22,11〕の33,22,11)とに直交変換種別の違いに起因する分の差のみしかなかったために、次段の量子化過程で混入する直流成分以外の量子化雑音は極めて少なくすることができた。
これに対して、従来技術では、MPEG−2デコード時のDCT係数(図17の〔40,30,20,10〕)と、H.264エンコード時の整数精度DCT係数(図17の〔40,20,25,15〕)との差異は、本発明における差異に比べて一般に大きいため、次段の量子化過程(図17の〔40,20,25,15〕から図17の〔4,2,2,1〕に量子化する過程)で混入する量子化雑音も、一般に大きい。
従来技術では、1回目のMPEG−2デコード画像(図17の〔a’,b’,c’,d’〕)から、2回目のH.264デコード画像(図17の〔P’,Q’,R’,S’〕)に至るまでに、この混入する量子化雑音の多い量子化過程が含まれるため、両デコード画像の差異の差が大きい。つまり、従来技術では、入力したMPEG−2ストリームに本発明に比べて大きな雑音が含まれたH.264ストリームが生成されることになる。
これまでの説明では、MPEG−2でIntraMBとして符号化されたMBを例にとって述べたが、InterMBの場合は、IntraMBの場合に比べて、MPEG−2のデコード画像(図6では〔a’,b’,c’,d’〕)と、H.264のデコード画像(図6では、〔I’,J’,K’,L’〕)とは、一致する場合がさらに多くなる。以下、その理由を説明する。
IntraMBの場合、MPEG−2のデコード画像(図6では〔a’,b’,c’,d’〕)と、H.264のデコード画像(図6では、〔I’,J’,K’,L’〕)との一致を阻害する2つの阻害点があった。
第1の阻害点は、MPEG−2の残差画像は隣接MBの画素値の影響を全く受けることがないのに対し、H.264の残差画像はどのモードを選んでも隣接MBの画素値の影響を受けるためにMPEG−2とH.264の残差画像一致させることは一般に困難であるという点である。第2の阻害点は、もともとMPEG−2とH.264のDCT変換が異なるため、両者のDCT変換後のDCT係数を一致させることは一般に困難であるという点である。
これに対し、InterMBでは、MPEG−2残差画像とH.264残差画像とは、ともに隣接MBの画素値の影響を受けないため、H.264残差画像をMPEG−2残差画像と一致させることができる。
具体的には、MPEG−2のInterMBのピクチャタイプと予測方向が(P,前方向)、(B,前方向),(B,後方向)、(B,双方向)の場合、H.264のMBタイプをそれぞれ、P_L0_16x16、B_L0_16x16、B_L1_16x16、B_Bi_16x16に選び、MPEG−2で使用されている前方向ベクトル、後ろ方向ベクトル、双方向ベクトルを用いてH.264で符号化すれば、H.264残差画像をMPEG−2残差画像と一致させることができる。
つまり、IntraMBで存在していた2つの阻害点のうちの1つである、H.264とMPEG−2の残差画像の一致が困難であるという点が、InterMBの場合には存在しないのである。このため、InterMBの場合は、MPEG−2のデコード画像(図6では〔a’,b’,c’,d’〕)と、H.264のデコード画像(図6では、〔I’,J’,K’,L’〕)とは、IntraMBの場合に比べて、差異が小さくなる。
つまり、本発明では、IntraMBだけでなく、InterMBの場合も、H.264のデコード画像の画質劣化を低減できる。
一方、IntraMBで存在していた2つの阻害点のもう1つである、MPEG−2とH.264のDCT変換が異なるという点(InterMBでも存在する)については、本発明でも解消できない。しかしながら、このDCT変換の違いは、一方が実数精度のDCT変換で、他方が整数精度のDCT変換という違いであり、この違いにより発生する両者のDCT変換後のDCT係数の違いはそれほど大きなものではなく、ほとんどの場合量子化で吸収されることになるので、このDCT変換の違いにより画質が劣化するということはほとんど起こらない。
以上説明したように、図1のように構成される本発明の映像再符号化装置1によれば、MPEG−2ストリームを処理対象として再エンコード処理を実行するときに、ほとんど画質劣化なしに、しかも、符号量の削減を実現しつつ、その再エンコード処理を実行することができるようになる。
図7に、本発明と従来手法のPSNR比較を示す。このPSNR比較は、H.264の量子化ステップをパラメータとして、計算機シミュレーションで求めた本発明と従来手法によってH.264再エンコードした場合のPSNR特性である。
この計算機シミュレーションでは、1回目のMPEG−2符号化において、ピクチャ構造はフレーム、ピクチャタイプはIピクチャで、すべてのMBはIntraMBかつフレームMBで量子化ステップQs=10で符号化された画像サイズ720×480画素、符号量510.8kbitのMPEG−2ストリームを、本発明と従来手法の両手法に入力することで行った。ここで、従来手法とは、全てのMBをIntraMBとしてH.264符号化するもので、前述したようにMADが最小となる画面内符号化モードをMB毎に選択する手法とする。
図7で、横軸が1フレーム分の発生符号量、縦軸がPSNRであり、*印で示された点が入力した当該MPEG−2ストリームのPSNRと符号量を示す。
この計算機シミュレーションにより、MPEG−2と同一の量子化ステップQs=10で、本発明によるH.264再符号化エンコードした場合、約460kbitの符号量でPSNR=35.2dBが得られるのに対し、従来手法で同様のPSNRを得るためには、より大きい約640kbitの符号量を必要とすることが分かる。再エンコードで得られるストリームが約420kbit以上の領域において、本発明は、従来手法に比べ優位性が見られることが分かる。
この実験結果からも分かるように、再符号化情報604で指定する量子化ステップQsは、符号化情報603に含まれるMPEG−2量子化パラメータQSCに対応付けられるH.264量子化ステップQsと完全に一致させる必要はなく、要するに、画質劣化が許容される範囲で一致させるようにすればよい。
次に、本発明の映像再符号化装置1の他の実施形態例について説明する。
以下で、説明の便宜上、これまでに説明した実施形態例を第1の実施形態例と記し、これから説明する実施形態例を第2の実施形態例と記す。
前述したように、MPEG−2とH.264のDCT変換の違いにより、得られるDCT変換後のDCT係数がある程度異なったとしても、MPEG−2の逆量子化で得られるDCT係数とH.264の逆量子化で得られる整数精度DCT係数とは直流成分を除いて一致する場合が多くなる。この場合、MPEG−2のデコード画像とH.264のデコード画像とは、一致する場合が多くなり、H.264のデコード画像の画質劣化を小さくすることができる。
しかしながら、一部のMBでは、H.264のデコード画像の画質劣化を小さくすることができない場合も僅かながら存在する。第2の実施形態例は、この問題点を解決するものである。
第2の実施形態例では、この問題点を解決するために、図1に示すH.264エンコード部500として、図8のように構成されるものを用いる。
第2の実施形態例を実現する場合、H.264エンコード部500は、この図に示すように、動き探索部501、整数精度DCT変換部502、量子化部503、エントロピー符号化部504、逆量子化部505、逆整数精度DCT変換部506に加えて、切替部510と、画質比較部520とを備える。
この切替部510は、図1に示す符号化情報変換部200の出力する再符号化情報604と、画質比較部520の出力する符号化方法指示信号530とを入力し、符号化方法指示信号530が“設定”を示している場合は、再符号化情報604をそのまま符号化情報540として出力し、符号化方法指示信号530が“未設定”を示している場合は、独自動作を指示する情報(以下、“独自動作指示”と記す)を符号化情報540として出力する。
動き探索部501は、第2の実施形態例を実現する場合には、図1に示すMPEG−2デコード部100の出力するデコード映像602と、切替部510の出力する符号化情報540と、逆整数精度DCT変換部506の出力する再生画像信号550とを入力し、符号化情報540が“独自動作指示”を示している場合には、通常の動き探索処理を行って動きベクトルを求め、符号化情報540が“符号化情報(再符号化情報604)”を示している場合には、符号化情報540で指定された動きベクトル、動き予測モードを使い、デコード映像602の残差画像を求めて整数精度DCT変換部502に出力する。
整数精度DCT変換部502は、第2の実施形態例を実現する場合には、動き探索部501の出力する残差画像と、切替部510の出力する符号化情報540とを入力し、符号化情報540が“独自動作指示”を示している場合には、通常の整数精度DCT変換を実施し整数精度DCT信号を求めて量子化部503に出力し、符号化情報540が“符号化情報(再符号化情報604)”を示している場合には、符号化情報540に含まれる8×8変換フラグに従って、サイズ8×8の整数精度DCT変換を実施し整数精度DCT信号を求めて量子化部503に出力する。
量子化部503は、整数精度DCT変換部502の出力する整数精度DCT信号と、切替部510の出力する符号化情報540とを入力し、符号化情報540が“独自動作指示”を示している場合には、従来通りH.264量子化ステップQsで量子化を行い量子化信号を求めて出力し、符号化情報540が“符号化情報(再符号化情報604)”を示している場合には、符号化情報540に含まれるH.264量子化ステップQsで指定された値で量子化を行い量子化信号を求めて出力する。
エントロピー符号化部504は、量子化部503の出力する量子化信号を入力し、CABACあるいはCAVLC等のエントロピー符号化を行いH.264ビットストリーム605を求めて出力するとともに、エントロピー符号化で発生した符号量を発生符号量560として画質比較部520に出力する。
逆量子化部505は、量子化部503の出力する量子化信号を入力し、逆量子化を行い逆量子化信号を求めて逆整数精度DCT変換部506に出力する。
逆整数精度DCT変換部506は、逆量子化部505の出力する逆量子化信号を入力し、逆整数精度DCT変換を行い再生画像信号550を求めて、動き探索部501に出力するとともに、画質比較部520に出力する。
画質比較部520は、図1に示すMPEG−2デコード部100の出力するデコード映像602と、逆整数精度DCT変換部506の出力する再生画像信号550と、エントロピー符号化部504の出力する発生符号量560とを入力し、固定周期で符号化方法指示信号530を“未設定”と“設定”とに切り替えて出力するとともに、入力信号に従って、符号化方法指示信号530が“未設定”と“設定”のときで符号化性能を求めて、より高い符号化性能を得られる場合を選択して、その選択結果を最終符号化指示信号570として各処理部501〜506に出力する。
画質比較部520は、この処理を実行するために、図8中に示すように、たとえば、(1)デコード映像602と再正画像信号550と発生符号量560とを入力し、それらの入力信号に基づいて符号化性能信号580を求める符号化性能算出部521と、(2)符号化方法指示信号530を、固定周期で“未設定”と“設定”に切り替えて出力する符号化方法指示部522と、(3)符号化性能信号580と符号化方法指示信号530とを入力し、符号化方法指示信号530が“未設定”のときの符号化性能信号580と符号化方法指示信号530が“設定”のときの符号化性能信号580とを比較し、より高い符号化性能を示した符号化性能信号580と同じ値を、最終符号化指示信号570として出力する最終符号化指示部523とで構成される。
図9に、このように構成されるH.264エンコード部500の実行するフローチャートを図示する。
次に、このフローチャートに従って、このように構成されるH.264エンコード部500が第2の実施形態例を実現すべく実行する処理について説明する。
ここで、第2の実施形態例において、図1に示すMPEG−2デコード部100および符号化情報変換部200の動作については、第1の実施形態例と同一であり、H.264エンコード部500の動作のみが異なる。
H.264エンコード部500は、第2の実施形態例を実現する場合には、1ピクチャ周期、1スライス周期、1マクロブロック周期などで定義される規定の評価周期(切り替えの周期)に到達すると、図9のフローチャートに示すように、まず最初に、ステップS200で、図1に示す符号化情報変換部200の出力する再符号化情報604を選択する。
この再符号化情報604の選択は、具体的には、画質比較部520が切替部510に対して“設定”を示す符号化方法指示信号530を出力することで実行され、これを受けて、切替部510は、符号化情報変換部200の出力する再符号化情報604を選択して、それをそのまま符号化情報540として出力することで行われる。
続いて、ステップS201で、再符号化情報604の指示に従って、図1に示すMPEG−2デコード部100の出力するデコード映像602をH.264符号化してH.264ストリーム605を生成するとともに、そのときの発生符号量560を算出する。ただし、このとき、生成したH.264ストリーム605を外部に出力することはしない。
このH.264符号化については、図4および図5で説明した第1の実施形態例と同一の手順に従って実行する。すなわち、符号化情報540(再符号化情報604)を入力する動き探索部501、整数精度DCT変換部502、量子化部503は、図4および図5で説明した動作を行う。そして、符号化情報540(再符号化情報604)を入力しない逆量子化部505、逆整数精度DCT変換部506もまた、図4および図5で説明した動作を行う。ただし、エントロピー符号化回路504は、図4および図5で説明した動作に加えて、発生符号量560を算出する処理を実行する。
続いて、ステップS202で、デコード映像602と再生画像信号550と発生符号量560とに基づいて符号化性能信号580を算出し、その値を一時的に記憶する。
この符号化性能信号580の算出・記憶は、具体的には、画質比較部520で実行され、画質比較部520は、たとえば、その内部機構である符号化性能算出部521において、デコード映像602と再生画像信号550と発生符号量560とを入力し、それらの入力信号から符号化性能信号580を算出することで行われる。この符号化性能信号580の算出方法には、各種の方法が使用できるが、たとえば信号雑音電力比(SNR)などである。そして、内部機構である最終符号化指示部523において、符号化方法指示信号530が“設定”の場合に求められた値として、“設定”を示す情報に対応付けて、その符号化性能信号580の値を一時的に記録しておくことで行われる。
続いて、ステップS203で、ステップS200で選択した再符号化情報604に代えて、独自動作指示を選択する。
この独自動作指示の選択は、具体的には、画質比較部520が切替部510に対して“未設定”を示す符号化方法指示信号530を出力することで実行され、これを受けて、切替部510は、独自動作指示を示す情報を選択して、それを符号化情報540として出力することで行われる。
続いて、ステップS204で、従来のH.264エンコード回路(図16に示すもの)と同様の動作に従って、図1に示すMPEG−2デコード部100の出力するデコード映像602をH.264符号化してH.264ストリーム605を生成するとともに、そのときの発生符号量560を算出する。ただし、このとき、生成したH.264ストリーム605を外部に出力することはしない。
すなわち、この場合には、動き探索部501、整数精度DCT変換部502、量子化部503、逆量子化部505、逆整数精度DCT変換部506は、従来のH.264エンコード回路(図16に示すもの)と同様な動作を行う。図4および図5で説明した動作との差分でいえば、図4に示すH.264エンコード部500では再符号化情報604に従って各処理部が動作していたのに対し、この場合には、各処理部は再符号化情報604なしに独自の選択基準で動作するのである。ただし、エントロピー符号化回路504は、従来のH.264エンコード回路と同様な動作に加えて、発生符号量560を算出する処理を実行する。
たとえば、動き探索部501は、デコード映像602と再生画像信号550とを入力し、動き探索処理を行って、たとえばSAD値が最小となるような動きベクトルを求め、それを使用してデコード映像602の残差画像信号を求めて、それを出力する。また、整数精度DCT変換部502は、動き探索部501の出力する残差画像信号を入力し、サイズ4×4または8×8の整数精度DCT変換を実施して整数精度DCT信号を求めて、それを出力する。
また、量子化部503は、整数精度DCT変換部502の出力する整数精度DCT信号を入力し、H.264量子化ステップQsで量子化を行って量子化信号を求めて、それを出力する。エントロピー符号化部504は、量子化部503の出力する量子化信号を入力し、CABACあるいはCAVLC等のエントロピー符号化を行ってH.264ストリーム605を生成する。ただし、第2の実施形態例を実現する場合には、エントロピー符号化部504は、そのときの発生符号量560についても算出する。
また、逆量子化部505は、量子化部503の出力する量子化信号を入力し、逆量子化を行って逆量子化信号を求めて、それを出力する。また、逆整数精度DCT変換部506は、逆量子化部505の出力する逆量子化信号を入力し、これに逆整数精度DCT変換を実施して再生画像信号550を求めて、それを出力する。
続いて、ステップS205で、デコード映像602と再生画像信号550と発生符号量560とに基づいて符号化性能信号580を算出し、その値を一時的に記憶する。
この符号化性能信号580の算出・記憶は、ステップS202の処理と同様に、具体的には、画質比較部520が実行するものである。画質比較部520は、たとえば、符号化性能算出部521において、デコード映像602と再生画像信号550と発生符号量560とを入力し、それらの入力信号から符号化性能信号580を算出し、最終符号化指示部523において、符号化方法指示信号530が“未設定”の場合に求められた値として、“未設定”を示す情報に対応付けて、その符号化性能信号580の値を一時的に記録しておくことで行われる。
続いて、ステップS206で、符号化方法指示信号530が“設定”の場合に求めた符号化性能信号580(ステップS202で求めた符号化性能信号580)と、符号化方法指示信号530が“未設定”の場合に求めた符号化性能信号580(ステップS205で求めた符号化性能信号580)との大小を比較する。
この比較は、具体的には、画質比較部520の内部機構である最終符号化指示部523で実行され、最終符号化指示部523は、ステップS202で一時的に記憶した符号化性能信号580と、ステップS205で一時的に記憶した符号化性能信号580との大小を比較することで、この比較を行う。
続いて、ステップS207で、この比較により、符号化方法指示信号530が“設定”の場合に求めた符号化性能信号580の方が符号化性能がよいという比較結果が得られたのか否かを判断して、そういう比較結果が得られたことを判断するときには、ステップS208に進んで、符号化方法指示信号530が“設定”の場合に求めたH.264ストリームを出力するとともに、各処理部の状態を符号化方法指示信号530が“設定”の場合のときの内部状態、すなわち、再符号化情報604の指示する内部状態に戻して、処理を終了する。
この処理は、具体的には、画質比較部520の内部機構である最終符号化指示部523が“設定”を示す最終符号化指示信号570を各処理部に出力することで実行され、この“設定”を示す最終符号化指示信号570を受けて、エントロピー符号化部504が、符号化方法指示信号530が“設定”の場合に求めたH.264ストリームを選択して出力することで行われる。そして、この内部状態の設定処理は、この“設定”を示す最終符号化指示信号570を受けて、動き探索部501、整数精度DCT変換部502、量子化部503、エントロピー符号化部504、逆量子化部505、逆整数精度DCT変換部506の各処理部が、自処理部の内部状態を符号化方法指示信号530が“設定”の場合のときの内部状態に戻すことで行われる。
一方、ステップS207の判断で、符号化方法指示信号530が“設定”の場合に求めた符号化性能信号580の方が符号化性能がよいという比較結果が得られなかったことを判断するとき、すなわち、符号化方法指示信号530が“未設定”の場合に求めた符号化性能信号580の方のが符号化性能がよいという比較結果が得られたことを判断するときには、ステップS209に進んで、符号化方法指示信号530が“未設定”の場合に求めたH.264ストリームを出力するとともに、各処理部の状態を符号化方法指示信号530が“未設定”の場合のときの内部状態、すなわち、H.264規格の指定する内部状態に戻して、処理を終了する。
この処理は、具体的には、画質比較部520の内部機構である最終符号化指示部523が“未設定”を示す最終符号化指示信号570を各処理部に出力することで実行され、この“未設定”を示す最終符号化指示信号570を受けて、エントロピー符号化部504が、符号化方法指示信号530が“未設定”の場合に求めたH.264ストリームを選択して出力することで行われる。そして、この内部状態の設定処理は、この“設定”を示す最終符号化指示信号570を受けて、動き探索部501、整数精度DCT変換部502、量子化部503、エントロピー符号化部504、逆量子化部505、逆整数精度DCT変換部506の各処理部が、自処理部の内部状態を符号化方法指示信号530が“未設定”の場合のときの内部状態に戻すことで行われる。
以上述べたように、第2の実施形態例では、再符号化情報604の指示に従ってデコード映像602をH.264符号化するか、あるいは再符号化情報604を使用せずにデコード映像602をH.264符号化するかのいずれか良い方を、画質比較部520で選択するので、第1の実施形態例で述べたような再符号化情報604の指示に常に従ってH.264符号化する場合と比べて、同等以上のSNR特性を実現することができるようになる。