(57)【要約】【課題】２n+1 画素単位の第一の直交変換と２n 画素単位の第二の直交変換との両方の変換を用いるビデオ符号化・復号化において，効率的な直交変換を可能にする。【解決手段】第一の直交変換と第二の直交変換の両方に用いられる共通実行部１２と，第一の直交変換にのみ用いられる専用実行部１３とを設け，第一の直交変換を行う場合には，共通実行部１２と専用実行部１３の両方を動作させ，第二の直交変換を行う場合には，専用実行部１３は動作させず，共通実行部１２により第一の直交変換を算出するための入力の半分を利用して第二の直交変換を算出する。【選択図】図１
2007172005.tif 000002
【特許請求の範囲】
【請求項１】
ｎを１以上の整数として２n+1 画素単位の第一の直交変換と２n 画素単位の第二の直交変換との両方の変換を用いるビデオ符号化またはビデオ復号における直交変換方法であって，
前記第一の直交変換を行う場合に，前記第一の直交変換と前記第二の直交変換の両方に用いられる演算を実行する共通実行部と，前記第一の直交変換にのみ用いられる演算を実行する第一直交変換専用実行部とにより，第一の直交変換を算出し，
前記第二の直交変換を行う場合に，前記共通実行部により，前記第一の直交変換を算出するための入力の半分を利用して前記第二の直交変換を算出する
ことを特徴とする直交変換方法。
【請求項２】
ｎを１以上の整数として２n+1 画素単位の第一の直交変換と２n 画素単位の第二の直交変換との両方の変換を用いるビデオ符号化またはビデオ復号における直交変換装置であって，
前記第一の直交変換と前記第二の直交変換の両方に用いられる演算を実行する共通実行部と，
前記第一の直交変換にのみ用いられる演算を実行し，前記第一の直交変換の結果を出力する第一直交変換専用実行部とを備え，
前記共通実行部は，前記第一の直交変換を算出するための入力の半分を利用して前記第二の直交変換を算出する
ことを特徴とする直交変換装置。
【請求項３】
請求項１記載の直交変換方法を，コンピュータに実行させるための直交変換プログラム。
【請求項４】
請求項１記載の直交変換方法を，コンピュータに実行させるための直交変換プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ビデオ符号化方式Ｈ．２６４の High Profile などのように，ｎを１以上の整数として２n+1 画素単位の第一の直交変換と２n 画素単位の第二の直交変換との両方の変換を用いるビデオ符号化・復号化において，効率的に直交変換する方法および装置に関するものである。
【背景技術】
【０００２】
ビデオ符号化方式Ｈ．２６４の High Profile を例に挙げると，このビデオ符号化方式においては，transform ＿size＿8x8 ＿flagというフラグの値に応じて４×４変換と８×８変換の両方が規定されている。参照ソフトウェアであるＪＭ１０．１［非特許文献１参照］では，水平成分の符号化を例にすると，８×８変換は，transform8x8.cの１５４２行目から１６０９行目で，以下のように実現されている。
//horizontal transform
for(i=0;i<8;i++) 
｛
a[0]=img->m7[i][0]+img->m7[i][7]; 
a[1]=img->m7[i][1]+img->m7[i][6]; 
a[2]=img->m7[i][2]+img->m7[i][5]; 
a[3]=img->m7[i][3]+img->m7[i][4]; 
b[0]=a[0]+a[3];                   //（注）common with 4x4 transform 
b[1]=a[1]+a[2];                   //（注）common with 4x4 transform 
b[2]=a[0]-a[3];                   //（注）common with 4x4 transform 
b[3]=a[1]-a[2];                   //（注）common with 4x4 transform 
a[4]=img->m7[i][0]-img->m7[i][7]; 
a[5]=img->m7[i][1]-img->m7[i][6]; 
a[6]=img->m7[i][2]-img->m7[i][5]; 
a[7]=img->m7[i][3]-img->m7[i][4]; 
b[4]=a[5]+a[6]+((a[4]>>1)+a[4]);
b[5]=a[4]-a[7]-((a[6]>>1)+a[6]);
b[6]=a[4]+a[7]-((a[5]>>1)+a[5]);
b[7]=a[5]-a[6]+((a[7]>>1)+a[7]);
m6[0][i]=b[0]+b[1];               //（注）common with 4x4 transform 
m6[2][i]=b[2]+(b[3]>>1);          //（注）common with 4x4 transform 
m6[4][i]=b[0]-b[1];               //（注）common with 4x4 transform 
m6[6][i]=(b[2]>>1)-b[3];          //（注）common with 4x4 transform 
m6[1][i]=b[4]+(b[7]>>2);
m6[3][i]=b[5]+(b[6]>>2);
m6[5][i]=b[6]-(b[5]>>2);
m6[7][i]=-b[7]+(b[4]>>2); 
｝
ここで，直交変換の入力は，img->m7[i][0] ，img->m7[i][1] ，img->m7[i][2] ，img->m7[i][3] ，img->m7[i][4] ，img->m7[i][5] ，img->m7[i][6] ，img->m7[i][7] であり，その出力は，m6[0][i]，m6[1][i]，m6[2][i]，m6[3][i]，m6[4][i]，m6[5][i]，m6[6][i]，m6[7][i]である。
【０００３】
この直交変換を水平方向と垂直方向の両方に施し，量子化値の６の剰余系，水平成分位置，さらに垂直成分位置に応じたMultiplication Factor を乗じる。ＪＭ１０．１［非特許文献１参照］では，Multiplication Factor をtransform8x8.cの４０行目から１０２行目で以下のように定義している。
【０００４】
const int quant ＿coef8[6][8][8]= 
｛
｛
｛13107,12222,16777,12222,13107,12222,16777,12222 ｝, 
｛12222,11428,15481,11428,12222,11428,15481,11428 ｝, 
｛16777,15481,20972,15481,16777,15481,20972,15481 ｝, 
｛12222,11428,15481,11428,12222,11428,15481,11428 ｝, 
｛13107,12222,16777,12222,13107,12222,16777,12222 ｝, 
｛12222,11428,15481,11428,12222,11428,15481,11428 ｝, 
｛16777,15481,20972,15481,16777,15481,20972,15481 ｝, 
｛12222,11428,15481,11428,12222,11428,15481,11428 ｝
｝, 
｛
｛11916,11058,14980,11058,11916,11058,14980,11058 ｝, 
｛11058,10826,14290,10826,11058,10826,14290,10826 ｝, 
｛14980,14290,19174,14290,14980,14290,19174,14290 ｝, 
｛11058,10826,14290,10826,11058,10826,14290,10826 ｝, 
｛11916,11058,14980,11058,11916,11058,14980,11058 ｝, 
｛11058,10826,14290,10826,11058,10826,14290,10826 ｝, 
｛14980,14290,19174,14290,14980,14290,19174,14290 ｝, 
｛11058,10826,14290,10826,11058,10826,14290,10826 ｝
｝, 
｛
｛10082, 9675,12710, 9675,10082, 9675,12710, 9675 ｝, 
｛ 9675, 8943,11985, 8943, 9675, 8943,11985, 8943 ｝, 
｛12710,11985,15978,11985,12710,11985,15978,11985 ｝, 
｛ 9675, 8943,11985, 8943, 9675, 8943,11985, 8943 ｝, 
｛10082, 9675,12710, 9675,10082, 9675,12710, 9675 ｝, 
｛ 9675, 8943,11985, 8943, 9675, 8943,11985, 8943 ｝, 
｛12710,11985,15978,11985,12710,11985,15978,11985 ｝, 
｛ 9675, 8943,11985, 8943, 9675, 8943,11985, 8943 ｝
｝, 
｛
｛ 9362, 8931,11984, 8931, 9362, 8931,11984, 8931 ｝, 
｛ 8931, 8228,11259, 8228, 8931, 8228,11259, 8228 ｝, 
｛11984,11259,14913,11259,11984,11259,14913,11259 ｝, 
｛ 8931, 8228,11259, 8228, 8931, 8228,11259, 8228 ｝, 
｛ 9362, 8931,11984, 8931, 9362, 8931,11984, 8931 ｝, 
｛ 8931, 8228,11259, 8228, 8931, 8228,11259, 8228 ｝, 
｛11984,11259,14913,11259,11984,11259,14913,11259 ｝, 
｛ 8931, 8228,11259, 8228, 8931, 8228,11259, 8228 ｝
｝, 
｛
｛ 8192, 7740,10486, 7740, 8192, 7740,10486, 7740 ｝, 
｛ 7740, 7346, 9777, 7346, 7740, 7346, 9777, 7346 ｝, 
｛10486, 9777,13159, 9777,10486, 9777,13159, 9777 ｝, 
｛ 7740, 7346, 9777, 7346, 7740, 7346, 9777, 7346 ｝, 
｛ 8192, 7740,10486, 7740, 8192, 7740,10486, 7740 ｝, 
｛ 7740, 7346, 9777, 7346, 7740, 7346, 9777, 7346 ｝, 
｛10486, 9777,13159, 9777,10486, 9777,13159, 9777 ｝, 
｛ 7740, 7346, 9777, 7346, 7740, 7346, 9777, 7346 ｝
｝, 
｛
｛ 7282, 6830, 9118, 6830, 7282, 6830, 9118, 6830 ｝, 
｛ 6830, 6428, 8640, 6428, 6830, 6428, 8640, 6428 ｝, 
｛ 9118, 8640,11570, 8640, 9118, 8640,11570, 8640 ｝, 
｛ 6830, 6428, 8640, 6428, 6830, 6428, 8640, 6428 ｝, 
｛ 7282, 6830, 9118, 6830, 7282, 6830, 9118, 6830 ｝, 
｛ 6830, 6428, 8640, 6428, 6830, 6428, 8640, 6428 ｝, 
｛ 9118, 8640,11570, 8640, 9118, 8640,11570, 8640 ｝, 
｛ 6830, 6428, 8640, 6428, 6830, 6428, 8640, 6428 ｝
｝
｝; 
また，４×４変換はblock.c の９３３行目から９４７行目で，以下のように実現されている。
// Horizontal transform 
for(i=0;i<BLOCK ＿SIZE;i++) 
｛
m5[0]=ing->m7[i][0]+img->m7[i][3];
m5[1]=img->m7[i][1]+img->m7[i][2];
m5[2]=img->m7[i][1]-img->m7[i][2];
m5[3]=ing->m7[i][0]-img->m7[i][3];
m4[i][0]=m5[0]+m5[1]; 
m4[i][2]=m5[0]-m5[1]; 
m4[i][1]=m5[3]*2+m5[2]; 
m4[i][3]=m5[3]-m5[2]*2; 
｝
ここで，直交変換の入力は，img->m7[i][0] ，ing->m7[i][1] ，img->m7[i][2] ，img->m7[i][3] であり，その出力は，m4[i][0]，m4[i][1]，m4[i][2]，m4[i][3]である。この直交変換を水平方向と垂直方向の両方に施し，量子化値の６の剰余系，水平成分位置，さらに垂直成分位置に応じたMultiplication Factor を乗じる。ＪＭ１０．１［非特許文献１参照］では，Multiplication Factor をblock.c の３９行目から４６行目で以下のように定義している。
【０００５】
const int quant ＿coef[6][4][4]=｛
｛｛13107, 8066,13107, 8066 ｝, ｛ 8066, 5243, 8066, 5243 ｝, ｛13107, 8066,13107, 8066 ｝, ｛ 8066, 5243, 8066, 5243 ｝｝, 
｛｛11916, 7490,11916, 7490 ｝, ｛ 7490, 4660, 7490, 4660 ｝, ｛11916, 7490,11916, 7490 ｝, ｛ 7490, 4660, 7490, 4660 ｝｝, 
｛｛10082, 6554,10082, 6554 ｝, ｛ 6554, 4194, 6554, 4194 ｝, ｛10082, 6554,10082, 6554 ｝, ｛ 6554, 4194, 6554, 4194 ｝｝, 
｛｛ 9362, 5825, 9362, 5825 ｝, ｛ 5825, 3647, 5825, 3647 ｝, ｛ 9362, 5825, 9362, 5825 ｝, ｛ 5825, 3647, 5825, 3647 ｝｝, 
｛｛ 8192, 5243, 8192, 5243 ｝, ｛ 5243, 3355, 5243, 3355 ｝, ｛ 8192, 5243, 8192, 5243 ｝, ｛ 5243, 3355, 5243, 3355 ｝｝, 
｛｛ 7282, 4559, 7282, 4559 ｝, ｛ 4559, 2893, 4559, 2893 ｝, ｛ 7282, 4559, 7282, 4559 ｝, ｛ 4559, 2893, 4559, 2893 ｝｝
｝; 
参照ソフトウェアであるＪＭ１０．１［非特許文献１参照］では，上記の８×８変換と４×４変換を独立に実施している。
【非特許文献１】H.264/AVC Reference Software，version: JM 10.1  http://iphome.hhi.de/suehring/tml/download/jm10.1.zip ，September ，2005.
【発明の開示】
【発明が解決しようとする課題】
【０００６】
例えば，ビデオ符号化方式Ｈ．２６４の High Profile に対応する符号化装置において，従来方法のように８×８直交変換と４×４直交変換とを独立した部分で行うとすると，Main Profileで符号化する場合は８×８直交変換が使用されないので，８×８直交変換を行う部分が冗長となってしまう。復号化装置においても同様である。
【０００７】
また，ソフトウェアにおける計算量や，ハードウェアにおける回路規模に制約がある場合には，４×４直交変換と８×８直交変換の両方を実現することが困難となり，やむを得ず８×８直交変換を実施しないで，Main Profileのみに対応することになることも想定される。
【０００８】
このように，ｎを１以上の整数として２n+1 画素単位の第一の直交変換と２n 画素単位の第二の直交変換との両方の変換を用いるビデオ符号化・復号化において，従来の技術に比べて効率的に直交変換することが，本発明が解決しようとする課題である。
【課題を解決するための手段】
【０００９】
上記課題を解決するために，ｎを１以上の整数として２n+1 画素単位の第一の直交変換と２n 画素単位の第二の直交変換との両方の変換を用いるビデオ符号化・復号化において，第一の直交変換を算出するための入力の半分を利用して，第二の直交変換を算出する。例えば，２n+1 画素単位の第一の直交変換の２n+1 画素の入力のうち，その半分の２n 画素を２n 画素単位の第二の直交変換の入力とし，残りの半分の２n 画素に適切な画素値を入力することにより，２n 画素単位の第二の直交変換を実現する。
【発明の効果】
【００１０】
以上述べたように，本発明によれば，ｎを１以上の整数として２n+1 画素単位の第一の直交変換と２n 画素単位の第二の直交変換との両方の変換を用いるビデオ符号化・復号化において，第一の直交変換を算出するための入力の半分を利用して，第二の直交変換を算出することができ，第一の直交変換と第二の直交変換を独立に実行する場合に比べて装置の規模を削減することができる。
【発明を実施するための最良の形態】
【００１１】
〔実施例１〕
実施例１として，本発明をＨ．２６４符号化の４×４変換と８×８変換に適用し，かつ８×８変換を算出するための入力の一部を利用して４×４変換を算出する場合の例を説明する。
【００１２】
本実施例に従う直交変換装置の概念図を図１に示す。直交変換装置１０は，図１に示すように４×４変換用入力生成部１１と，８×８変換・４×４変換共通実行部１２と，８×８変換のみ実行部１３と，４×４変換用出力生成部１４と，切り換え手段１５，１６，１７からなる。
【００１３】
水平成分の符号化を例にすると，８×８変換は従来技術のＪＭ１０．１［非特許文献１参照］と同様に，以下の処理により実現する。
//horizontal transform
for(i=0;i<8;i++) 
｛
a[0]=img->m7[i][0]+img->m7[i][7]; 
a[1]=img->m7[i][1]+img->m7[i][6]; 
a[2]=img->m7[i][2]+img->m7[i][5]; 
a[3]=img->m7[i][3]+img->m7[i][4]; 
b[0]=a[0]+a[3];                 //（注）common with 4x4 transform 
b[1]=a[1]+a[2];                 //（注）common with 4x4 transform 
b[2]=a[0]-a[3];                 //（注）common with 4x4 transform 
b[3]=a[1]-a[2];                 //（注）common with 4x4 transform 
a[4]=img->m7[i][0]-img->m7[i][7]; //（注）4x4 transform のときは実行しない
a[5]=img->m7[i][1]-img->m7[i][6]; //（注）4x4 transform のときは実行しない
a[6]=img->m7[i][2]-img->m7[i][5]; //（注）4x4 transform のときは実行しない
a[7]=img->m7[i][3]-img->m7[i][4]; //（注）4x4 transform のときは実行しない
b[4]=a[5]+a[6]+((a[4]>>1)+a[4]);//（注）4x4 transform のときは実行しない
b[5]=a[4]-a[7]-((a[6]>>1)+a[6]);//（注）4x4 transform のときは実行しない
b[6]=a[4]+a[7]-((a[5]>>1)+a[5]);//（注）4x4 transform のときは実行しない
b[7]=a[5]-a[6]+((a[7]>>1)+a[7]);//（注）4x4 transform のときは実行しない
m6[0][i]=b[0]+b[1];             //（注）common with 4x4 transform 
m6[2][i]=b[2]+(b[3]>>1);        //（注）common with 4x4 transform 
m6[4][i]=b[0]-b[1];             //（注）common with 4x4 transform 
m6[6][i]=(b[2]>>1)-b[3];        //（注）common with 4x4 transform 
m6[1][i]=b[4]+(b[7]>>2);        //（注）4x4 transform のときは実行しない
m6[3][i]=b[5]+(b[6]>>2);        //（注）4x4 transform のときは実行しない
m6[5][i]=b[6]-(b[5]>>2);        //（注）4x4 transform のときは実行しない
m6[7][i]=-b[7]+(b[4]>>2);       //（注）4x4 transform のときは実行しない
｝
ここで，直交変換の入力は，img->m7[i][0] ，img->m7[i][1] ，img->m7[i][2] ，img->m7[i][3] ，img->m7[i][4] ，img->m7[i][5] ，img->m7[i][6] ，img->m7[i][7] であり，その出力は，m6[0][i]，m6[1][i]，m6[2][i]，m6[3][i]，m6[4][i]，m6[5][i]，m6[6][i]，m6[7][i]である。
【００１４】
また，４×４変換は，入力をimg->m7[i][0] ，img->m7[i][1] ，img->m7[i][2] ，img->m7[i][3] ，出力をm4[i][0]，m4[i][1]，m4[i][2]，m4[i][3]とすると，
８×８変換において，
img->m7[i][7]=0 
img->m7[i][6]=0 
img->m7[i][5]=0 
img->m7[i][4]=0 
が成立するとし，かつa[4]，a[5]，a[6]，a[7]，b[4]，b[5]，b[6]，b[7]を含む式を除いた式，すなわち“//（注）4x4 transform のときは実行しない”と書かれていない式を実行し，８×８変換の出力に対して，
m4[i][0]=m6[0][i] 
m4[i][1]=m6[2][i] 
m4[i][2]=m6[4][i] 
m4[i][3]=m6[5][i] 
とすれば４×４変換の出力が得られる。ただし，この４×４変換の結果は，以下の式を実行したことと同等である。
// Horizontal transform 
for(i=0;i<BLOCK ＿SIZE;i++) 
｛
m5[0]=img->m7[i][0]+img->m7[i][3];
m5[1]=img->m7[i][1]+img->m7[i][2];
m5[2]=img->m7[i][1]-img->m7[i][2];
m5[3]=img->m7[i][0]-img->m7[i][3];
m4[i][0]=m5[0]+m5[1]; 
m4[i][2]=m5[0]-m5[1]; 
m4[i][1]=m5[3]+m5[2]>>1;
m4[i][3]=m5[3]>>1-m5[2];
｝
この式において，最後の２行が従来技術の
m4[i][1]=m5[3]*2+m5[2]; 
m4[i][3]=m5[3]-m5[2]*2; 
に比べて右辺が１／２されており，これを補償するために以下を実行する。
【００１５】
すなわち，従来技術のＪＭ１０．１［非特許文献１参照］におけるquant ＿coef[6][4][4] （JM10.1.zip中のblock.c の３９行目から４６行目）の係数を，次のようにする。
(i) quant ＿coef［任意］［奇数］［奇数］については４倍にする。
(ii)quant ＿coef［任意］［偶数］［奇数］，quant ＿coef［任意］［奇数］［偶数］については２倍に変更し，quant ＿coef［任意］［偶数］［偶数］についてはそのままにする。
【００１６】
図１に示す直交変換装置１０において８×８変換を行う場合，８×８変換・４×４変換共通実行部１２は，４画素＋４画素の８画素を入力し，上記の式において“//（注）4x4 transform のときは実行しない”と書かれていない部分を実行し，８×８変換のみ実行部１３は，上記の式において“//（注）4x4 transform のときは実行しない”と書かれている部分を実行する。これにより，８画素単位の直交変換結果が出力される。
【００１７】
一方，図１に示す直交変換装置１０において４×４変換を行う場合，４×４変換用入力生成部１１は，img->m7[i][0] ，img->m7[i][1] ，img->m7[i][2] ，img->m7[i][3] の４画素を入力し，img->m7[i][4] ，img->m7[i][5] ，img->m7[i][6] ，img->m7[i][7] は“０”とする。８×８変換・４×４変換共通実行部１２は，４×４変換用入力生成部１１からの入力について，上記の式における“//（注）common with 4x4 transform ”と書かれている部分を実行し，４×４変換用出力生成部１４は，上述した係数を補正した計算を行うことにより，４×４変換の結果を出力する。
【００１８】
〔実施例２〕
実施例２として，本発明をＨ．２６４復号化の４×４変換と８×８変換に適用し，かつ８×８変換を算出するための入力の一部を利用して４×４変換を算出する場合の例を説明する。
【００１９】
本実施例に従う直交変換装置の概念図を図２に示す。直交変換装置２０は，図２に示すように４×４変換用入力生成部２１と，８×８変換・４×４変換共通実行部２２と，８×８変換のみ実行部２３と，４×４変換用出力生成部２４と，切り換え手段２５，２６，２７からなる。
【００２０】
水平成分の復号化を例にすると，８×８変換は従来技術のＪＭ１０．１［非特許文献１参照］と同様に，以下の処理により実現する。
//horizontal transform
for(i=0;i<8;i++) 
｛
a[0]=img->m7[i][0]+img->m7[i][4]; 
a[4]=img->m7[i][0]-img->m7[i][4]; 
a[2]=(img->m7[i][2]>>1)-img->m7[i][6];
a[6]=img->m7[i][2]+(img->m7[i][6]>>1);
b[0]=a[0]+a[6]; 
b[2]=a[4]+a[2]; 
b[4]=a[4]-a[2]; 
b[6]=a[0]-a[6]; 
a[1]=-img->m7[i][3]+img->m7[i][5]-img->m7[i][7]-(img->m7[i][7]>>1); 
//（注）4x4 transform のときは本式以降を実行しない。
a[3]=img->m7[i][1]+img->m7[i][7]-img->m7[i][3]-(img->m7[i][3]>>1);
a[5]=-img->m7[i][1]+img->m7[i][7]+img->m7[i][5]+(img->m7[i][5]>>1); 
a[7]=img->m7[i][3]+img->m7[i][5]+img->m7[i][1]+(img->m7[i][1]>>1);
b[1]=a[1]+(a[7]>>2);
b[7]=-(a[1]>>2)+a[7]; 
b[3]=a[3]+(a[5]>>2);
b[5]=(a[3]>>2)-a[5];
m6[0][i]=b[0]+b[7]; 
m6[1][i]=b[2]+b[5]; 
m6[2][i]=b[4]+b[3]; 
m6[3][i]=b[6]+b[1]; 
m6[4][i]=b[6]-b[1]; 
m6[5][i]=b[4]-b[3]; 
m6[6][i]=b[2]-b[5]; 
m6[7][i]=b[0]-b[7]; 
｝
ここで，直交変換の入力は，img->m7[i][0] ，img->m7[i][1] ，img->m7[i][2] ，img->m7[i][3] ，img->m7[i][4] ，img->m7[i][5] ，img->m7[i][6] ，img->m7[i][7] であり，その出力は，m6[0][i]，m6[1][i]，m6[2][i]，m6[3][i]，m6[4][i]，m6[5][i]，m6[6][i]，m6[7][i]である。
【００２１】
また，４×４変換は，入力をimg->m8[i][0] ，img->m8[i][1] ，img->m8[i][2] ，img->m8[i][3] ，出力をm4[i][0]，m4[i][1]，m4[i][2]，m4[i][3]とすると，
８×８変換において，
img->m7[i][0]=img->m8[i][0] 
img->m7[i][2]=img->m8[i][1] 
img->m7[i][4]=img->m8[i][2] 
img->m7[i][6]=img->m8[i][3] 
が成立するとし，かつ上式群のうち左辺がa[0]，a[2]，a[4]，a[6]，b[0]，b[2]，b[4]，b[6]である８つの式のみを実行し，（従ってimg->m7[i][1] ，img->m7[i][3] ，img->m7[i][5] ，img->m7[i][7] の値は入力する必要がない）８×８変換の出力に対して，
m4[i][0]=b[0] 
m4[i][1]=b[2] 
m4[i][2]=b[4] 
m4[i][3]=b[6] 
とすれば４×４変換の出力が得られる。
【００２２】
図２に示す直交変換装置２０において８×８変換を行う場合，８×８変換・４×４変換共通実行部２２は，まず，img->m7[i][0] ，img->m7[i][2] ，img->m7[i][4] ，img->m7[i][6] を入力し，上記の式において“//（注）4x4 transform のときは本式以降を実行しない。”と書かれている前までを実行する。次に，８×８変換のみ実行部２３は，img->m7[i][1] ，img->m7[i][3] ，img->m7[i][5] ，img->m7[i][7] と，８×８変換・４×４変換共通実行部２２の計算結果とを入力し，上記の式において“//（注）4x4 transform のときは本式以降を実行しない。”と書かれている部分以降を実行する。これにより，８画素単位の直交変換結果が出力される。
【００２３】
一方，図２に示す直交変換装置２０において４×４変換を行う場合，４×４変換用入力生成部２１は，入力のimg->m8[i][0] ，img->m8[i][1] ，img->m8[i][2] ，img->m8[i][3] を，上記式におけるimg->m7[i][0] ，img->m7[i][2] ，img->m7[i][4] ，img->m7[i][6] とする。８×８変換・４×４変換共通実行部２２は，４×４変換用入力生成部１１からの入力に対して，上記の式における“//（注）4x4 transform のときは本式以降を実行しない。”と書かれている前までを実行する。４×４変換用出力生成部２４は，８×８変換・４×４変換共通実行部２２の出力において，b[0]，b[2]，b[4]，b[6]を，４×４変換の結果m4[i][0]，m4[i][1]，m4[i][2]，m4[i][3]として出力する。
【００２４】
以上の動画像符号化の処理は，コンピュータとソフトウェアプログラムとによって実現することができ，そのプログラムをコンピュータ読み取り可能な記録媒体に記録して提供することも，ネットワークを通して提供することも可能である。
【図面の簡単な説明】
【００２５】
【図１】ビデオ符号化における直交変換装置の概念図である。
【図２】ビデオ復号における直交変換装置の概念図である。
【符号の説明】
【００２６】
１０，２０  直交変換装置
１１，２１  ４×４変換用入力生成部
１２，２２  ８×８変換・４×４変換共通実行部
１３，２３  ８×８変換のみ実行部
１４，２４  ４×４変換用出力生成部
１５，１６，１７，２５，２６，２７  切り換え手段
【図１】
2007172005.tif 000003
【図２】
2007172005.tif 000004