(57)【要約】  所定サイズのブロックに対するイントラ予測実行時に、予測しようとするブロック内の画素を使用することによって圧縮率を高めた無損失動映像エンコーディング及びデコーディング方法、その装置が開示される。本発明によって、動映像無損失エンコーディング方法は、(a)予測しようとするMxNブロック内の画素値を各々予測するに当って、それぞれの画素値は、符号化モードによって決まる予測方向にMxNブロック内で最も隣接した画素をもって予測される段階と、(b)予測された画素値と予測しようとする画素値との差をエントロピーコーディングする段階と、を含むことを特徴とする。これにより、従来の無損失符号化方法より圧縮率が大きく高まる。
2008502268.tif 000002
【特許請求の範囲】
【請求項１】
(a)予測しようとするMxNブロック内の画素値を各々予測するに当って、前記それぞれの画素値は、符号化モードによって決まる予測方向に前記MxNブロック内で最も隣接した画素をもって予測される段階と、
(b)前記予測された画素値と前記予測しようとする画素値との差をエントロピーコーディングする段階とを含むことを特徴とする動映像無損失エンコーディング方法。
【請求項２】
前記予測しようとするブロックが輝度ブロックまたはGブロックである場合には、前記MxNブロックは4x4ブロック、8x8ブロックまたは16x16ブロックのうち、いずれか１つであり、色度ブロック、Rブロック、Bブロックのうち、いずれか１つである場合には、前記MxNブロックは8x8ブロックであることを特徴とする請求項１に記載の動映像無損失エンコーディング方法。
【請求項３】
前記符号化モードは、輝度ブロックまたはGブロックである場合には、H.264のイントラ4x4輝度符号化モードであるVerticalモード、Horizontalモード、DCモード、Diagonal_Down_Leftモード、Diagonal_Down_Rightモード、Vertical_Rightモード、Horizontal_Downモード、Vertical_Leftモード及びHorizontal_Upモードであることを特徴とする請求項１に記載の動映像無損失エンコーディング方法。
【請求項４】
前記符号化モードは、色度ブロック、Rブロック、Bブロックのうち、いずれか１つに対しては、H.264イントラMxN色度符号化モードである、Verticalモード、Horizontalモード及びDCモードであることを特徴とする請求項１に記載の動映像無損失エンコーディング方法。
【請求項５】
前記(b)段階は、
(b1)前記MxNブロックに対して、前記(a)段階によるイントラ予測をH.264イントラ符号化モードで行って率(Rates)の最も小さな符号化モードを決定する段階と、
(b2)前記決定された符号化モードによって行われた予測画素値と、前記予測しようとする画素値との差をエントロピーコーディングする段階とを含むことを特徴とする請求項１に記載の動映像無損失エンコーディング方法。
【請求項６】
(a)予測しようとするMxNブロック内の画素値を各々予測するに当って、前記それぞれの画素値は、符号化モードによって決まる予測方向に前記MxNブロックと隣接した画素を使用して残差値を求めた後、その残差からなったMxNブロック内で最も隣接した画素をもって予測される段階と、
(b)前記予測された画素値と前記予測しようとする画素値との差をエントロピーコーディングする段階とを含むことを特徴とする動映像無損失エンコーディング方法。
【請求項７】
(a)予測される単位であるMxNブロック内の、符号化モードによって決められた予測方向に前記MxNブロック内の最も隣接した画素をもって予測されて作られた予測値に基づいてエントロピーコーディングが行われたビットストリームを受信する段階と、
(b)前記ビットストリームをエントロピーデコーディングする段階と、
(c)前記デコーディングされた値によって原映像を無損失復元する段階とを含むことを特徴とする動映像無損失デコーディング方法。
【請求項８】
前記MxNブロックが輝度ブロックまたはGブロックである場合には、前記MxNブロックは、4x4ブロック、8x8ブロックまたは16x16ブロックのうち、いずれか１つであり、色度ブロック、Rブロック、Bブロックのうち、いずれか１つである場合には、前記MxNブロックは8x8ブロックであることを特徴とする請求項７に記載の動映像無損失エンコーディング方法。
【請求項９】
前記符号化モードは、輝度ブロックまたはGブロックである場合には、H.264のイントラ4x4輝度符号化モードであるVerticalモード、Horizontalモード、DCモード、Diagonal_Down_Left、Diagonal_Down_Right、Vertical_Right、Horizontal_Down、Vertical_Left及びHorizontal_Upであることを特徴とする請求項７に記載の動映像無損失デコーディング方法。
【請求項１０】
前記符号化モードは、色度ブロック、Rブロック、Bブロックのうち、いずれか１つに対しては、H.264イントラMxN色度符号化モードである、Verticalモード、Horizontalモード及びDCモードであることを特徴とする請求項７に記載の動映像無損失デコーディング方法。
【請求項１１】
予測しようとするMxNブロック内の画素値を各々予測するに当って、前記それぞれの画素値は、符号化モードによって決まる予測方向に前記MxNブロック内で最も隣接した画素で予測を行う動き予測部と、
前記動き予測により計算された率の最も小さな符号化モードを選択するモード選択部と、
前記予測された画素値と前記予測しようとする画素値との差をエントロピーコーディングするエントロピーコーディング部とを備えることを特徴とする動映像無損失エンコーダ。
【請求項１２】
前記動き予測部は、
予測しようとするMxNブロック内の画素値を各々予測するに当って、前記それぞれの画素値は、符号化モードによって決まる予測方向に前記MxNブロックと隣接した画素を使用して残差値を求める残差値計算部をさらに備えることを特徴とする請求項１１に記載の動映像無損失エンコーダ。
【請求項１３】
予測しようとするブロックが輝度ブロックまたはGブロックである場合には、前記MxNブロックは4x4ブロック、8x8ブロックまたは16x16ブロックのうち、いずれか１つであり、色度ブロック、Rブロック、Bブロックのうち、いずれか１つである場合には、前記MxNブロックは8x8ブロックであることを特徴とする請求項１１に記載の動映像無損失エンコーダ。
【請求項１４】
予測される単位であるMxNブロック内の、符号化モードによって決められた予測方向に前記MxNブロック内の最も隣接した画素をもって予測されて作られた予測値に基づいてエントロピーコーディングが行われたビットストリームを受信してエントロピーデコーディングするエントロピーデコーディング部と、
前記デコーディングされた値によって原映像を復元する動映像復元部とを備えることを特徴とする動映像無損失デコーダ。
【請求項１５】
予測しようとするブロックが輝度ブロックまたはGブロックである場合には、前記MxNブロックは4x4ブロック、8x8ブロックまたは16x16ブロックのうち、いずれか１つであり、色度ブロック、Rブロック、Bブロックのうち、いずれか１つである場合には、前記MxNブロックは8x8ブロックであることを特徴とする請求項１４に記載の動映像無損失デコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動映像データのエンコーディング及びデコーディングに係り、より詳細には、所定サイズのブロックに対するイントラ予測実行時に、予測しようとするブロック内の画素を使用することによって、圧縮率を高めた無損失エンコーディング及びデコーディング方法、その装置に関する。
【背景技術】
【０００２】
動映像データをエンコーディングし、デコーディングするために設けられたH.264標準によれば、１つのフレームに含まれた複数個のマクロブロック、またはマクロブロックを２分割するか、４分割して得られたサブブロック単位でエンコーディング及びデコーディングを行う。エンコーディング及びデコーディングは、時間的予測と空間的予測とを基盤に行われる。時間的予測は、現在フレームのマクロブロックの動きを予測するに当って隣接したフレームのマクロブロックを参照して予測を行うことを言い、空間的予測は、エンコーディングしようとする現在フレームのマクロブロックを、そのフレーム内で隣接したマクロブロックを用いてて予測を行うことを言う。
【０００３】
空間的予測をイントラ予測と言うが、イントラ予測は、ある画素を予測するに当って、それと隣接した画素が最も類似した値を有する可能性が多いという特徴を利用したものである。
一方、エンコーディングには、損失符号化及び無損失符号化がある。動映像を無損失符号化するためには、現在画素値から動き予測により計算された予測画素値を差し引いてDCTや量子化の実行なしにそのままエントロピーコーディングを行って出力する。従来には、無損失符号化時に、予測しようとするブロックと隣接したブロックの画素値を使用し、予測しようとするブロック内の各画素値を予測したので、圧縮率が損失符号化に比べて大幅に落ちる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、本発明が解決しようとする技術的課題は、所定サイズのブロックに対するイントラ予測実行時に、予測しようとするブロック内の画素を使用することによって、圧縮率を高めた無損失動映像エンコーディング及びデコーディング方法、その装置を提供することである。
【課題を解決するための手段】
【０００５】
前記技術的課題は本発明によって、(a)予測しようとするMxNブロック内の画素値を各々予測するに当って、前記それぞれの画素値は、符号化モードによって決まる予測方向に前記MxNブロック内で最も隣接した画素をもって予測される段階と、(b)前記予測された画素値と前記予測しようとする画素値との差をエントロピーコーディングする段階とを含むことを特徴とする動映像無損失エンコーディング方法により達成される。
【０００６】
前記予測しようとするブロックが輝度ブロックまたはGブロックである場合には、前記MxNブロックは4x4ブロック、8x8ブロックまたは16x16ブロックのうち、いずれか１つであり、色度ブロック、Rブロック、Bブロックのうち、いずれか１つである場合には、前記MxNブロックは8x8ブロックであることが望ましい。
【０００７】
前記符号化モードは、輝度ブロックまたはGブロックである場合には、H.264のイントラ4x4輝度符号化モードであるVerticalモード、Horizontalモード、DCモード、Diagonal_Down_Left、Diagonal_Down_Right、Vertical_Right、Horizontal_Down、Vertical_Left及びHorizontal_Upであることが望ましい。
【０００８】
また、前記符号化モードは、色度ブロック、Rブロック、Bブロックのうち、いずれか１つに対してはH.264イントラMxN色度符号化モードである、Verticalモード、Horizontalモード及びDCモードであることが望ましい。
【０００９】
また、前記技術的課題は、(a)予測される単位であるMxNブロック内の、符号化モードによって決められた予測方向に前記MxNブロック内の最も隣接した画素をもって予測されて作られた予測値に基づいてエントロピーコーディングが行われたビットストリームを受信する段階と、(b)前記ビットストリームをエントロピーデコーディングする段階と、及び(c)前記デコーディングされた値によって原映像を無損失復元する段階とを含むことを特徴とする動映像無損失デコーディング方法によっても達成される。
【００１０】
一方、本発明の他の分野によれば、前記技術的課題は予測しようとするMxNブロック内の画素値を各々予測するに当って、前記それぞれの画素値は、符号化モードによって決まる予測方向に前記MxNブロック内で最も隣接した画素で予測を行う動き予測部と、前記動き予測により計算された率(Rates)の最も小さな符号化モードを選択するモード選択部と、前記予測された画素値と前記予測しようとする画素値との差をエントロピーコーディングするエントロピーコーディング部と、を備えることを特徴とする動映像無損失エンコーダによっても達成される。
【００１１】
また、本発明の他の分野によれば、前記技術的課題は予測される単位であるMxNブロック内の、符号化モードによって決められた予測方向に前記MxNブロック内の最も隣接した画素をもって予測されて作られた予測値に基づいてエントロピーコーディングが行われたビットストリームを受信してエントロピーデコーディングするエントロピーデコーディング部と、前記デコーディングされた値によって原映像を復元する動映像復元部とを備えることを特徴とする動映像無損失デコーダによっても達成される。
【００１２】
まず、本発明の望ましい実施形態を説明するために次の通り予測値と残差値とを定義する。
【００１３】
p[x,y]は、現在エンコーディングしようとするMxNブロック内の一番左側の最上位画素の位置をx=0、y=0とする時、相対的なx,y位置の画素値を示す。例えば、図3Aでa画素の位置は、[0,0]、b画素の位置は[1,0]、c画素の位置は[2,0]、d画素の位置は[3,0]、e画素の位置は[0,1]で示す。残りの画素f、g、h、i,j、k、l、m、n、o、pも同じ方法でその位置を示しうる。
【００１４】
predL[x,y]は、予測方法を変形せず、元のH.264の方法で画素を予測したときの予測値を示す。例えば、図3Aで、a画素の予測値は、predL[0,0]で示す。同じ方法で、b画素の予測値はpredL[1,0]、c画素の予測値はpredL[2,0]、d画素の予測値はpredL[3,0]、e画素の予測値はpredL[0,1]である。残りの画素f、g、h、i,j、k、l、m、n、o、pの予測値も同じ方法で示しうる。
【００１５】
そして、predL'[x,y]は、本発明によって、隣接した画素から画素を予測した時の予測値を示す。画素の位置を示すことは、predL[x,y]と同じである。そして、ri,jは(i,j)位置の画素値から(i,j)位置の画素予測値を差し引いた(i,j)位置の残差値を示し、ui,jはデコーディングSI(i,j)位置の画素予測値と(i,j)位置の残差値とを加算して復元した(i,j)位置の画素値を示す。
【発明を実施するための最良の形態】
【００１６】
以下、添付された図面を参照して本発明の望ましい実施形態について詳細に説明する。
【００１７】
図1は、本発明の望ましい実施形態による符号化装置のブロック図である。
【００１８】
映像が入力されれば、動き予測を行う。本実施形態では、輝度(luminance)ブロック及びGブロックの画素に対しては、4x4イントラ予測を行い、色度(chrominance)ブロック及びRブロック、Bブロックの画素に対しては8x8イントラ予測を行う。動き予測部110は、予測しようとするマクロブロック内の輝度ブロック及びGブロックの画素に対しては4x4イントラ予測を行い、色度ブロック及びRブロック、Bブロックの画素に対しては8x8イントラ予測を行う。4x4イントラ予測及び8x8イントラ予測時に予測画素値を計算することについては後述する。モード選択部120は、色々な予測モードのうちから最適のモードを１つ選択する。すなわち、4x4イントラ予測及び8x8イントラ予測時に可能な色々な符号化モードのうちから１つを選択する。一般的に、率-歪曲(Rate-Distortion)を最も減らした率-歪曲最適化(RD  Optimization)方法によって１つのモードを選択するが、本発明では無損失符号化であるために、歪曲は存在しないので率(Rates)の最適化を通じて１つの符号化モードを決定する。
【００１９】
エントロピーコーディング部130は、動き予測部110から出力された差値、すなわち、エンコーディングしようとする現在のフレームのマクロブロック内の画素値と予測画素値との差をエントロピーコーディングして出力する。エントロピーコーディングは、発生頻度の高いデータに対しては、少ないビットを割り当て、発生頻度の低いデータに対しては多くのビットを割り当てることによって、データの圧縮率を高めたコーディング方法をいう。本発明で使われるエントロピーコーディング方法にはCAVLC(Context  Adaptive  Variable  Length  Coding)またはCABAC(Context-Based  Adaptive  Binary  Arithmetic  Coding)などがある。
【００２０】
図2は、H.264での4x4ブロックに対するイントラ予測モードを示す図である。
【００２１】
輝度ブロック及びGブロック画素のイントラ予測は、4x4ブロック単位で実行される。4x4イントラ予測モードは、全部で9種であって、予測方向によってVerticalモード(モード0)、Horizontalモード(モード1)、DCモード(モード2)、Diagonal_Down_Left(モード3)、Diagonal_Down_Right(モード4)、Vertical_Right(モード5)、Horizontal_Down(モード6)、Vertical_Left(モード7)、Horizontal_Up(モード8)が存在する。矢印は、予測方向を示す。以下では、各モードでの画素の計算について詳細に説明する。
【００２２】
図3Aは、Verticalモード(モード0)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【００２３】
画素a302は垂直方向に隣接した画素である画素Aから予測され、画素e304は予測しようとするブロック300に隣接した画素Aではない、ブロック300内で画素e304と隣接した画素である画素a302から予測される。また、画素i306は画素e304から予測され、画素m308は画素i306から予測される。
【００２４】
このような方法で、画素bは画素Bから、画素fは画素bから、画素jは画素fから、画素nは画素jから、画素cは画素Cから、画素gは画素cから、画素kは画素gから、画素oは画素kから、画素dは画素Dから、画素hは画素dから、画素lは画素hから、画素pは画素lから予測される。ここで、予測されるということは、画素値と予測値との差(残差値)を出力してエントロピーコーディングするということを意味する。すなわち、予測しようとするブロック300内の画素a、e、i、mの残差値はa-A、e-a、i-e、m-i値が各々出力されてエントロピーコーディングされる。Verticalモード(モード0)での画素予測方法を式で示せば次の通りである。
【００２５】
pred4x4L'[x,y]=p[x,y-1],x,y=0,...,3
図3Bは、Horizontalモード(モード1)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【００２６】
画素a312は、水平方向に隣接した画素である画素Iから予測され、画素b314は、予測しようとするブロック300に隣接した画素ではない、ブロック300内で画素b314と隣接した画素である画素a312から予測される。また、画素c316は、画素b314から予測され、画素d318は、画素c316から予測される。
【００２７】
このような方法で、画素eは画素Jから、画素fは画素eから、画素gは画素fから、画素hは画素gから、画素iは画素Kから、画素jは画素Iから、画素kは画素jから、画素lは画素kから、画素mは画素Lから、画素nは画素mから、画素oは画素nから、画素pは画素oから予測される。Horizontalモード(モード1)での画素予測方法を式で示せば次の通りである。
【００２８】
pred4x4L'[x,y]=p[x-1,y],x,y=0,...,3
図3Cは、Diagonal_Down_Leftモード(モード3)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【００２９】
画素a322は、図3Cで矢印で示した対角線方向に隣接した画素である画素Bから予測され、画素e324は、ブロック300内で画素e324と矢印方向に隣接した画素である画素bから予測される。また、画素i326は、fから予測され、画素m328はjから予測される。
【００３０】
このような方法で、画素bはCから、画素cはDから、画素dはEから、画素fはcから、画素gはdから、画素hはdから、画素jはgから、画素kはhから、画素lはhから、画素nはkから、画素oはlから、画素pはlから予測される。Diagonal_Down_Leftモード(モード3)での画素予測方法を式で示せば次の通りである。
【００３１】
x=3であり、yが0でない場合には、predL'[x,y]=p[x,y-1]となり、その他の場合には、predL'[x,y]=p[x+1,y-1]となる。
【００３２】
また、Diagonal_Down_Leftモード(モード3)で画素予測時に予測方向の画素に対して適切なフィルターを使用して予測しうる。例えば、1:2:1フィルターを使用する場合には、画素a322は、図3Cで矢印で示した対角線方向に位置した画素の画素値である(A+2B+C+2)/4から予測され、画素e324は、ブロック300内で画素e324と矢印方向に隣接した画素の画素値である(a+2b+c+2)/4から予測される。また、画素i(326)は、(e+2f+g+2)/4から予測され、画素m(328)は、(i+2j+k+2)/4から予測される。
【００３３】
このような方法で、画素bは(B+2C+D+2)/4から、画素cは(C+2D+E+2)/4から、画素dは(D+2E+F+2)/4から、画素fは(b+2c+d+2)/4から、画素gは(c+2d+d+2)/4から、画素hは(d+2d+d+2)/4から、画素jは(f+2g+h+2)/4から、画素kは(g+2h+h+2)/4から、画素lは(h+2h+h+2)/4から、画素nは(j+2k+l+2)/4から、画素oは(k+2l+l+2)/4から、画素pは(l+2l+l+2)/4から予測される。
【００３４】
図3Dは、Diagonal_Down_Rightモード(モード4)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【００３５】
画素a332は、図3Dで矢印で示した対角線方向に隣接した画素であるXから予測され、画素f334はブロック300内で画素f334と矢印方向に隣接した画素であるaから予測される。また、画素k336はfから予測され、画素p338はkから予測される。
【００３６】
このような方法で、画素bはAから、画素cはBから、画素dはCから、画素eはIから、画素gはbから、画素hはcから、画素iはJから、画素jはeから、画素lはgから、画素mはKから、画素nはiから、画素oはjから予測される。Diagonal_Down_Rightモード(モード4)での画素予測方法を式で示せば次の通りである。
【００３７】
pred4x4L'[x,y]=p[x-1,y-1],x,y=0,...,3
また、Diagonal_Down_Rightモード(モード4)で画素予測時、予測方向の画素に対して適切なフィルターを使用して予測しうる。例えば、1:2:1フィルターを使用する場合には、画素a332は、図3Dで矢印で示した対角線方向に位置した画素の画素値である(I+2X+A+2)/4から予測され、画素f334はブロック300内で画素f334と矢印方向に隣接した画素の画素値である(I+2a+b+2)/4から予測される。また、画素k336は(e+2f+g+2)/4から予測され、画素p338は(j+2k+l+2)/4から予測される。
【００３８】
このような方法で、画素bは(X+2A+B+2)/4から、画素cは(A+2B+C+2)/4から、画素dは(B+2C+D+2)/4から、画素eは(J+2I+a+2)/4から、画素gは(a+2b+c+2)/4から、画素hは(b+2c+d+2)/4から、画素iは(K+2J+e+2)/4から、画素jは(J+2e+f+2)/4から、画素lは(f+2g+h+2)/4から、画素mは(L+2K+i+2)/4から、画素nは(K+2i+j+2)/4から、画素oは(i+2j+k+2)/4から予測される。
【００３９】
図3Eは、Vertical_Rightモード(モード5)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【００４０】
画素a342は、図3Eで矢印で示した対角線方向である垂直から22.5°方向に位置した画素の画素値である(X+A+1)/2から予測され、画素e344は、ブロック300内で画素e344と矢印方向である22.5°方向に隣接した画素の画素値である(I+a+1)/2から予測される。また、画素j346は、(e+f+1)/2から予測され、画素n348は(i+j+1)/2から予測される。
【００４１】
このような方法で、画素bは(A+B+1)/2から、画素cは(B+C+1)/2から、画素dは(C+D+1)/2から、画素fは(a+b+1)/2から、画素gは(b+c+1)/2から、画素hは(c+d+1)/2から、画素iは(J+e+1)/2から、画素kは(f+g+1)/2から、画素lは(g+h+1)/2から、画素mは(K+i+1)/2から、画素oは(j+k+1)/2から、画素pは(k+l+1)/2から予測される。Vertical_Rightモード(モード5)での画素予測方法を式で示せば次の通りである。
【００４２】
pred4x4L'[0,0]=(p[-1,-1]+p[0,-1]+1)>>1
pred4x4L'[1,0]=(p[0,-1]+p[1,-1]+1)>>1
pred4x4L'[2,0]=(p[1,-1]+p[2,-1]+1)>>1
pred4x4L'[3,0]=(p[2,-1]+p[3,-1]+1)>>1
pred4x4L'[0,1]=(p[-1,0]+p[0,0]+1)>>1
pred4x4L'[1,1]=(p[0,0]+p[1,0]+1)>>1
pred4x4L'[2,1]=(p[1,0]+p[2,0]+1)>>1
pred4x4L'[3,1]=(p[2,0]+p[3,0]+1)>>1
pred4x4L'[0,2]=(p[-1,1]+p[0,1]+1)>>1
pred4x4L'[1,2]=(p[0,1]+p[1,1]+1)>>1
pred4x4L'[2,2]=(p[1,1]+p[2,1]+1)>>1
pred4x4L'[3,2]=(p[2,1]+p[3,1]+1)>>1
pred4x4L'[0,3]=(p[-1,2]+p[0,2]+1)>>1
pred4x4L'[1,3]=(p[0,2]+p[1,2]+1)>>1
pred4x4L'[2,3]=(p[1,2]+p[2,2]+1)>>1
pred4x4L'[3,3]=(p[2,2]+p[3,2]+1)>>1
図3Fは、Horizontal_Downモード(モード6)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【００４３】
画素a352は、図3Fで矢印で示した対角線方向である水平方向22.5°方向に位置した画素の画素値である(X+I+1)/2から予測され、画素b354は、ブロック300内で画素b354と矢印方向である22.5°方向に隣接した画素の画素値である(A+a+1)/2から予測される。また、画素g356は、(b+f+1)/2から予測され、画素h358は、(c+g+1)/2から予測される。
【００４４】
このような方法で、画素iは(J+K+1)/2から、画素mは(K+L+1)/2から、画素fは(a+e+1)/2から、画素jは(e+i+1)/2から、画素nは(i+m+1)/2から、画素cは(B+b+1)/2から、画素kは(f+j+1)/2から、画素oは(j+n+1)/2から、画素dは(C+c+1)/2から、画素lは(g+k+1)/2から、画素pは(k+o+1)/2から予測される。Horizontal_Downモード(モード6)での画素予測方法を式で示せば次の通りである。
【００４５】
pred4x4L'[0,0]=(p[-1,-1]+p[-1,0]+1)>>1
pred4x4L'[0,1]=(p[-1,0]+p[-1,1]+1)>>1
pred4x4L'[0,2]=(p[-1,1]+p[-1,2]+1)>>1
pred4x4L'[0,3]=(p[-1,2]+p[-1,3]+1)>>1
pred4x4L'[1,0]=(p[0,-1]+p[0,0]+1)>>1
pred4x4L'[1,1]=(p[0,0]+p[0,1]+1)>>1
pred4x4L'[1,2]=(p[0,1]+p[0,2]+1)>>1
pred4x4L'[1,3]=(p[0,2]+p[0,3]+1)>>1
pred4x4L'[2,0]=(p[1,-1]+p[1,0]+1)>>1
pred4x4L'[2,1]=(p[1,0]+p[1,1]+1)>>1
pred4x4L'[2,2]=(p[1,1]+p[1,2]+1)>>1
pred4x4L'[2,3]=(p[1,2]+p[1,3]+1)>>1
pred4x4L'[3,0]=(p[2,-1]+p[2,0]+1)>>1
pred4x4L'[3,1]=(p[2,0]+p[2,1]+1)>>1
pred4x4L'[3,2]=(p[2,1]+p[2,2]+1)>>1
pred4x4L'[3,3]=(p[2,2]+p[2,3]+1)>>1
図3Gは、Vertical_Leftモード(モード7)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【００４６】
画素a362は、図3Gで矢印で示した対角線方向である垂直方向22.5°方向に位置した画素の画素値である(A+B+1)/2から予測され、画素e364は、ブロック300内で画素e364と矢印方向である22.5°方向に隣接した画素の画素値である(a+b+1)/2から予測される。また、画素i366は(e+f+1)/2から予測され、画素m368は(i+j+1)/2から予測される。
【００４７】
このような方法で、画素bは(B+C+1)/2から、画素cは(C+D+1)/2から、画素dは(D+E+1)/2から、画素fは(b+c+1)/2から、画素gは(c+d+1)/2から、画素hはdから、画素jは(f+g+1)/2から、画素kは(g+h+1)/2から、画素lはhから、画素nは(j+k+1)/2から、画素oは(k+l+1)/2から、画素pはlから予測される。Vertical_Leftモード(モード7)での画素予測方法を式で示せば次の通りである。
【００４８】
pred4x4L'[0,0]=(p[0,-1]+p[1,-1]+1)>>1
pred4x4L'[1,0]=(p[1,-1]+p[2,-1]+1)>>1
pred4x4L'[2,0]=(p[2,-1]+p[3,-1]+1)>>1
pred4x4L'[3,0]=(p[3,-1]+p[4,-1]+1)>>1
pred4x4L'[0,1]=(p[0,0]+p[1,0]+1)>>1
pred4x4L'[1,1]=(p[1,0]+p[2,0]+1)>>1
pred4x4L'[2,1]=(p[2,0]+p[3,0]+1)>>1
pred4x4L'[3,1]=p[3,0]
pred4x4L'[0,2]=(p[0,1]+p[1,1]+1)>>1
pred4x4L'[1,2]=(p[1,1]+p[2,1]+1)>>1
pred4x4L'[2,2]=(p[2,1]+p[3,1]+1)>>1
pred4x4L'[3,2]=p[3,1]
pred4x4L'[0,3]=(p[0,2]+p[1,2]+1)>>1
pred4x4L'[1,3]=(p[1,2]+p[2,2]+1)>>1
pred4x4L'[2,3]=(p[2,2]+p[3,2]+1)>>1
pred4x4L'[3,3]=p[3,2]
図3Hは、Horizontal_Upモード(モード8)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【００４９】
画素a372は、図3Hで矢印で示した対角線方向である水平方向22.5°方向に位置した画素の画素値である(I+J+1)/2から予測され、画素b374は、ブロック300内で画素b374と矢印方向である22.5°方向に隣接した画素の画素値である(a+e+1)/2から予測される。また、画素c376は(b+f+1)/2から予測され、画素d378は(c+g+1)/2から予測される。
【００５０】
このような方法で、画素eは(J+K+1)/2から、画素iは(K+L+1)/2から、画素mはLから、画素fは(e+i+1)/2から、画素jは(i+m+1)/2から、画素nはmから、画素gは(f+j+1)/2から、画素kは(j+n+1)/2から、画素oはnから、画素hは(g+k+1)/2から、画素lは(k+o+1)/2から、画素pはoから予測される。Horizontal_Upモード(モード8)での画素予測方法を式で示せば次の通りである。
【００５１】
pred4x4L'[0,0]=(p[-1,0]+p[-1,1]+1)>>1
pred4x4L'[0,1]=(p[-1,1]+p[-1,2]+1)>>1
pred4x4L'[0,2]=(p[-1,2]+p[-1,3]+1)>>1
pred4x4L'[0,3]=p[-1,3]
pred4x4L'[1,0]=(p[0,0]+p[0,1]+1)>>1
pred4x4L'[1,1]=(p[0,1]+p[0,2]+1)>>1
pred4x4L'[1,2]=(p[0,2]+p[0,3]+1)>>1
pred4x4L'[1,3]=p[0,3]
pred4x4L'[2,0]=(p[1,0]+p[1,1]+1)>>1
pred4x4L'[2,1]=(p[1,1]+p[1,2]+1)>>1
pred4x4L'[2,2]=(p[1,2]+p[1,3]+1)>>1
pred4x4L'[2,3]=p[1,3]
pred4x4L'[3,0]=(p[2,0]+p[2,1]+1)>>1
pred4x4L'[3,1]=(p[2,1]+p[2,2]+1)>>1
pred4x4L'[3,2]=(p[2,2]+p[2,3]+1)>>1
pred4x4L'[3,3]=p[2,3]
最後にDCモード(モード2)では、予測しようとするブロック(300)内のあらゆる画素は、そのブロック300と隣接したブロックの画素値である(A+B+C+D+I+J+K+L+4)/8から予測される。
【００５２】
以上、4x4サイズのブロックに対する輝度(luminance)ブロック及びGブロック画素の予測を一例として説明したが、輝度ブロックのサイズが8x8または16x16である場合にも前述した輝度画素の予測方法が同一に適用されうる。例えば、8x8ブロックのverticalモードの場合、図3Aを参照して説明したように、各画素は垂直方向に最も隣接した画素から予測される。したがって、ブロックのサイズが8x8または16x16に大きくなっただけで、4x4ブロックに対するverticalモードでの画素予測と同一である。
【００５３】
一方、輝度と色度とで構成された画素だけでなく、R(赤)、G(緑)、B(青)のうち、Rブロック及びBブロックに対しては後述する色度画素に対する画素予測方法が適用されうる。
【００５４】
次いで、色度(クロミナンス)ブロック及びRブロック、Bブロックの画素に対する画素予測の計算について図4Aないし図4Cを参照して詳細に説明する。色度ブロック及びRブロック、Bブロックの画素の予測は、8x8ブロックに対して行われ、予測モードはいずれも4種があるが、本発明では、プレーンモードは使用しない。したがって、本発明では、DCモード(モード0)、ホリゾンタル（Horizontal）モード(モード1)及びバーチャル（Vertical）モード(モード2)のみを使用する。
【００５５】
図4Aは、DCモードでの色度ブロック及びRブロック、Bブロックの画素予測を説明するための図である。図4Aないし図4Cでは、8x8ブロックに対して予測する場合を説明しているが、色度ブロック及びRブロック、Bブロックの画素予測時にMxNブロックに対しても同一に適用されうる。8x8ブロック400内の4x4ブロック410に存在するあらゆる画素であるa1、b1、c1、d1、e1、f1、g1、h1、i1、j1、k1、l1、m1、n1、o1、p1は(A+B+C+D+I+J+K+L+4)/8から予測される。そして、画素a2、b2、c2、d2、e2、f2、g2、h2、i2、j2、k2、l2、m2、n2、o2、p2は(E+F+G+H+2)/4から予測される。また、画素a3、b3、c3、d3、e3、f3、g3、h3、i3、j3、k3、l3、m3、n3、o3、p3は、(M+N+O+P+2)/4から予測され、画素a4、b4、c4、d4、e4、f4、g4、h4、i4、j4、k4、l4、m4、n4、o4、p4は(E+F+G+H+M+N+O+P+4)/8から予測される。
【００５６】
図4Bは、Horizontalモードでの色度ブロック及びRブロック、Bブロックの画素予測を説明するための図である。
【００５７】
画素a1は、画素Iから予測され、画素b1は画素a1から、画素c1は画素b1から予測される。このように、予測しようとするブロック400内で水平方向に隣接した画素をもって予測される。
【００５８】
図4Cは、Verticalモードでの色度ブロック及びRブロック、Bブロックの画素予測を説明するための図である。
【００５９】
画素a1は画素Aから、画素e1は画素a1から、画素i1は画素e1から予測される。このように、予測しようとするブロック400内で垂直方向に隣接した画素をもって予測される。
【００６０】
いままで輝度ブロック及びGブロック予測時には4x4ブロック単位に対して、色度ブロック、Rブロック及びBブロックの予測時には8x8ブロック単位に対して各ブロック内で隣接した画素をもって画素を予測することを説明したが、4x4ブロックまたは8x8ブロックに制限されず、任意のMxNブロックサイズに対しても同一に適用されうる。すなわち、予測しようとするブロック単位がMxNブロックとしても、そのブロック内で予測方向に最も隣接した画素をもって予測しようとする画素値を計算すればよい。
【００６１】
図5は、前述したモードで、エンコーディング及びデコーディング時の予測方法及び復元方法を説明するための図である。図5を参照して、画素予測による残差(residual)を求めるに当って、他の方法を説明する。従来のエンコーダでは、残差値を求めるのに隣接したブロックの画素を使用する。例えば、3aのverticalモードで従来には画素a302、e304、i306、m308は、いずれも画素Aから予測されるので、残差値はr0=a-A、r1=e-A、r2=i-A、r3=m-Aとなる。本発明では、このように作られた従来の残差値をもって新たな残差値を計算する。これにより、新たな残差値はr'0=r0,r'1=r1-r0,r'2=r2-r1,r'3=r3-r2となる。この時、新たな残差値、r'0,r'1,r'2,r'3は、r'0 =a-A,r'1=e-a,r'2=i-e,r'3=m-iになるので、r'0,r'1,r'2,r'3は、前述した予測方法によって最も隣接した画素から予測した残差値と同じ値を有するようになる。したがって、新たな残差値r'0,r'1,r'2,r'3をもって前述したような各モードで、隣接した画素を使用した画素予測方法を適用しうる。
【００６２】
したがって、図1の本発明の符号化装置の動き予測部110では、残差をもって新たな画素値r'0,r'1,r'2,r'3を作る残差値計算部をさらに備え得る。
【００６３】
図6は、本発明の望ましい実施形態による復号化装置のブロック図である。
【００６４】
エントロピーデコーダ610は、本発明によってエンコーディングされたビットストリームを入力され、CAVLC(Context  Adaptive  Variable  Length  Coding)またはCABAC(Context-Based  Adaptive  Binary  Arithmetic  Coding)のようなエントロピーデコーディング方法によってデコーディングを行う。受信されたビットストリームの最前方部分には本発明で開示したように画素値を予測したというフラグを１ビットに設定しうる。このフラグの例としては、H.264でlossless_qpprime_y_zero_flagがある。このフラグを使用して本発明のように画素予測値を計算したということを動映像復元部620に伝達する。
【００６５】
動映像復元部620は、このフラグ情報とエンコーディングモード情報によって、そのモード下で本発明の画素予測値計算方法によって動映像を復元して出力する。
【００６６】
図7は、本発明によるエンコーディング方法のフローチャートである。
【００６７】
前述したように変形された予測方法によって与えられた多様なイントラ予測符号化モード下で動き予測を行って最適のモードを決定する(S710)。また変形された予測方法を使用せず、既存の予測方法により作られた残差をもって新たにした残差値を使用してブロックを構成した後、イントラ予測符号化モードでの動き予測を行える。最適のモードは、率-歪曲最適化により選択されうるが、本発明では無損失符号化であるために率最適化により１つの符号化モードを決定する。決定された符号化モード下で動き予測を行う(S720)。そして、その値をエントロピーコーディングして出力する(S730)。
【００６８】
デコーディングは、エンコーディングの逆順による。すなわち、エントロピーコーディングされたビットストリームを入力され、エントロピーデコーディングを行い、符号化モード情報とフラグ情報によって本発明の画素予測値計算方法によって画素値を復元して動映像を出力する。
【００６９】
この際、復元される画素値を数式で表現すれば次の通りである。
【００７０】
(1)エンコーディング時に前述したような変形された予測方法を使用し、エンコーディングモードがVerticalモードと決定された場合には、次の数式によって画素値が復元される。
【００７１】
【数１】
2008502268.tif 000003
(2)エンコーディング時に、前述したような変形された予測方法を使用し、エンコーディングモードがHorizontalモードと決定された場合には、次の数式によって画素値が復元される。
【００７２】
【数２】
2008502268.tif 000004
(3)エンコーディング時に、前述したような変形された予測方法を使用し、エンコーディングモードがDiagonal_Down_Leftモードと決定された場合、次の数式によって画素値が復元される。
【００７３】
i=0((i,j)=(0,0),(0,1),(0,2),(0,3))であれば
uij=predL'[xO+j,yO+i]+ri,jであり、
i=1,j<3((i,j)=(1,0),(1,1),(1,2))であれば
uij=predL'[xO+j+1,yO+i-1]+ri-1,j+1+ri,jであり、
i=1,j=3(i,j)=(1,3))であれば
uij=predL'[xO+j,yO+i-1]+ri-1,j+ri,jであり、
i=2,j<2((i,j)=(2,0),(2,1))であれば
uij=predL'[xO+j+2,yO+i-2]+ri-2,j+2+ri-1,j+1+ri,jであり、
i=2,j=2((i,j)=(2,2))であれば
uij=predL'[xO+j+1,yO+i-2]+ri-2,j+1+ri-1,j-1+ri,jであり、
i=2,j=3((i,j)=(2,3))であれば
uij=predL'[xO+j,yO+i-2]+ri-2,j+ri-1,j+ri,jであり、
i=3,j=0((i,j)=(3,0))であれば
uij=predL'[xO+j+3,yO+i-3]+ri-3,j+3+ri-2,j+2+ri-1,j+1+ri,jであり、
i=3,j=1((i,j)=(3,1))であれば
uij=predL'[xO+j+2,yO+i-3]+ri-3,j+2+ri-2,j+2+ri-1,j+1+ri,jであり、
i=3,j=2((i,j)=(3,2))であれば
uij=predL'[xO+j+1,yO+i-3]+ri-3,j+1+ri-2,j+1+ri-1,j+1+ri,jであり、
i=3,j=3((i,j)=(3,3))であれば
uij=predL'[xO+j,yO+i-3]+ri-3,j+ri-2,j+ri-1,j+ri,jである。
【００７４】
(4)エンコーディング時に、前述したような変形された予測方法を使用し、エンコーディングモードがDiagonal_Down_Rightモードと決定された場合には、次の数式によって画素値が復元される。
【００７５】
i=0,orj=0((i,j)=(0,0),(0,1),(0,2),(0,3),(1,0),(2,0),(3,0))であれば
uij=predL'[xO+j,yO+i]+ri,jであり、
i=1,j>=1,orj=1,i>1((i,j)=(1,1),(1,2),(1,3),(2,1),(3,1))であれば
uij=predL'[xO+j,yO+i]+ri-1,j-1+ri,jであり、
i=2,j>=2,orj=2,i>2((i,j)=(2,2),(2,3),(3,2))であれば
uij=predL'[xO+j,yO+i]+ri-2,j-2+ri-1,j-1+ri,jであり、
i=j=3((i,j)=(3,3))であれば
uij=predL'[xO+j,yO+i]+ri-3,j-3+ri-2,j-2+ri-1,j-1+ri,jである。
【００７６】
(5)その他の場合には、次の数式によって画素値が復元される。
【００７７】
uij=predL[xO+j,yO+i]+rij
前述した方法によってH.264標準化グループであるJM73(Joint  Mode  173)で提示している色々なテスト映像に対して実験を行った結果、次の通り圧縮効率が増加した。次の表1は実験条件を説明する。
【００７８】
【表１】
2008502268.tif 000005
全部で7個のテスト映像に対して10Hz、15Hz、30Hzの動映像を100フレームから300フレームまで多様に実験した。
【００７９】
次の表2は、表1のような実験条件下で従来の圧縮方法と本発明による圧縮方法によってテスト映像を圧縮した時の圧縮率を比較した表である。
【００８０】
【表２】
2008502268.tif 000006
一方、表2はテスト映像を、イントラ予測のみを使用してイントラフレームにした時の結果であり、圧縮率がさらに優秀であるということが分かる。
【００８１】
一方、前述した動映像エンコーディング及びデコーディング方法は、コンピュータプログラムで作成可能である。前記プログラムを構成するコード及びコードセグメントは、当該分野のコンピュータプログラマーによって容易に推論されうる。また、前記プログラムは、コンピュータで読取可能な情報記録媒体に保存され、コンピュータによって読込まれ、実行されることによって、動映像エンコーディング及びデコーディング方法を具現する。前記情報記録媒体は、磁気記録媒体、光記録媒体、及びキャリアウェーブ媒体を含む。
【００８２】
以上、本発明についてその望ましい実施形態を中心に説明した。当業者は、本発明が本発明の本質的な特性から外れない範囲で変形された形に具現されうるということを理解できるであろう。したがって、開示された実施形態は限定的な観点でなく、説明的な観点で考慮されねばならない。本発明の範囲は、前述した説明でなく特許請求の範囲に示されたおり、それと同等な範囲内にあるあらゆる差異点は本発明に含まれると解釈されねばならない。
【００８３】
前述したように本発明によれば、無損失符号化時の圧縮率を向上させうる。特にイントラ予測モードのみを使用した場合には、圧縮率が従来より大きく高まる。
【産業上の利用可能性】
【００８４】
本発明は、圧縮率を向上させるための無損失動映像エンコーダ及びデコーダに適用されうる。
【図面の簡単な説明】
【００８５】
【図１】本発明の望ましい実施形態による符号化装置のブロック図である。
【図２】H.264での4x4ブロックに対するイントラ予測モードを示す図である。
【図３Ａ】バーチャルモード(モード0)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【図３Ｂ】ホリゾンタルモード(モード1)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【図３Ｃ】Diagonal_Down_Leftモード(モード3)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【図３Ｄ】Diagonal_Down_Rightモード(モード4)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【図３Ｅ】Vertical_Rightモード(モード5)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【図３Ｆ】Horizontal_Downモード(モード6)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【図３Ｇ】Vertical_Leftモード(モード7)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【図３Ｈ】Horizontal_Upモード(モード8)での輝度ブロック及びGブロックの画素予測を説明するための図である。
【図４Ａ】DCモードでの色度ブロック及びRブロック、Bブロックの画素予測を説明するための図である。
【図４Ｂ】Horizontalモードでの色度ブロック及びRブロック、Bブロックの画素予測を説明するための図である。
【図４Ｃ】Verticalモードでの色度ブロック及びRブロック、Bブロックの画素予測を説明するための図である。
【図５】前述したモードで、エンコーディング及びデコーディング時の予測方法を説明するための図である。
【図６】本発明の望ましい実施形態による復号化装置のブロック図である。
【図７】本発明によるエンコーディング方法のフローチャートである。
【図１】
2008502268.tif 000007
【図２】
2008502268.tif 000008
【図３Ａ】
2008502268.tif 000009
【図３Ｂ】
2008502268.tif 000010
【図３Ｃ】
2008502268.tif 000011
【図３Ｄ】
2008502268.tif 000012
【図３Ｅ】
2008502268.tif 000013
【図３Ｆ】
2008502268.tif 000014
【図３Ｇ】
2008502268.tif 000015
【図３Ｈ】
2008502268.tif 000016
【図４Ａ】
2008502268.tif 000017
【図４Ｂ】
2008502268.tif 000018
【図４Ｃ】
2008502268.tif 000019
【図５】
2008502268.tif 000020
【図６】
2008502268.tif 000021
【図７】
2008502268.tif 000022
【国際調査報告】
2008502268.tif 000023
2008502268.tif 000024