CN103379317A - Video encoding approximate orthogonal integer transformation - Google Patents

Video encoding approximate orthogonal integer transformation Download PDF

Info

Publication number
CN103379317A
CN103379317A CN2012100237200A CN201210023720A CN103379317A CN 103379317 A CN103379317 A CN 103379317A CN 2012100237200 A CN2012100237200 A CN 2012100237200A CN 201210023720 A CN201210023720 A CN 201210023720A CN 103379317 A CN103379317 A CN 103379317A
Authority
CN
China
Prior art keywords
conversion
matrix
transformation
dct transform
integer approximation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2012100237200A
Other languages
Chinese (zh)
Inventor
朱洪波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN2012100237200A priority Critical patent/CN103379317A/en
Publication of CN103379317A publication Critical patent/CN103379317A/en
Pending legal-status Critical Current

Links

Images

Abstract

The invention discloses a 4*4, 8*8, 16*16 and 32*32 approximate orthogonal integer transformation matrix applied in video encoding. By utilizing the integer transformation which can be maximumly expressed through eight-bit signed numbers and a structure which can be decomposed into a fast algorithm easily, the fast algorithm can maintain a high encoding performance and meanwhile the calculating complexity is greatly reduced.

Description

The nearly orthogonal integer transform of Video coding
Technical field
The invention belongs to the compression of digital video field, be specifically related to the transition coding of predicted residual signal.
Background technology
Digital video is by the continuous natural scene of time domain and spatial domain is carried out time domain and spatial domain continuous sampling gained.As shown in Figure 1, digital video is comprised of the frame of video on a series of time domains, and each frame of video represents natural scene at the Space domain sampling of certain time, and it is comprised of the vision pixel of Two Dimensional Uniform sampling.Each pixel is comprised of the numeral of a series of description pixel intensity and color, in Video coding, the most extensive form that is used is yuv format, in this form, each pixel is by a luminance component Y, and two color difference components U and V form, and generally U and V component horizontal and vertical direction are respectively carried out down-sampling one time, every like this 4 adjacent pixels share 1 U and V component, Here it is YUV4:2:0 form.The dark bitdepth in position of video data is generally more than 8 or 8, such as 8,10,14 etc.That is to say that the data of Y or U, V component represent with bitdepth position bigit, its dynamic range is [0, (1<<bitdepth) 1], in this article, the maximum of dynamic range be expressed as MAXV=(1<<bitdepth)-1.
The most extensive video coding technique that is used is piece base hybrid motion compensation dct transform video coding technique.As shown in Figure 2, incoming frame is split is divided into the one by one piece of 64x64, then from left to right, encodes successively from top to bottom.Current block to be encoded to each input, at first from the frame of reconstruct, select the prediction to current block, and subtract each other with current block, residual error is carried out discrete cosine (DCT) conversion, quantification successively, then inverse quantization, anti-discrete cosine (DCT) conversion obtain the reconstruct macro block, deposit in the reconstructed frame sequence, be used for the macro block of encoding is thereafter produced prediction signal.In the prediction and transition coding process of reality, the 64x64 piece usually is divided into less piece to be predicted and conversion accurately.
Dct transform is important step in the Video coding.For the operation that strengthens code efficiency and eliminate decoding end mismatches, advanced video encoding standard has extensively adopted variable-size-block integer approximation dct transform.Integer DCT Transform all is the approximate of floating-point dct transform, and requires transformation matrix and its transposition each other inverse matrix or approximation inverse matrix.Such as the of future generation international video encoding standard HEVC that is formulating, 4x4,8x8,16x16 and 32x32 integer transform shown in Fig. 3,4,5 and 6 have just been adopted.Their height approximation inverse matrix is exactly their transposed matrix (not considering the normalization of norm here).The norm of every delegation of HEVC conversion is substantially identical, and the norm of the conversion of different size differ also be 2 or
Figure BDA0000133754660000011
When quantizing, do not need like this to use quantization matrix correcting the norm of diverse location, and different conversion can use same set of quantization method, only need to make a little changes in displacement and get final product.The conversion of HEVC low dimensional is the part of high size change over, and conversion is the part of 8x8 conversion such as 4x4, and the 8x8 conversion is the part of 16x16 conversion, and the 16x16 conversion is the part of 32x32 conversion, realizes that like this expense can be reduced.
Shown in Fig. 7 and 8, it is comprised of butterfly conversion and matrix multiple respectively for 32x32HEVC positive-going transition and transformation by reciprocal direction fast algorithm flow chart.Positive-going transition shown in Figure 7 is at first described.Input 32 data z0-z31 and at first be decomposed into even number part (the first half) and odd number part (the latter half) through one group of butterfly conversion.The odd number of 32x32 conversion partly is a 16x16 matrix multiple.The even number of 32x32 conversion partly is exactly the HEVC16x16 transformation matrix, namely comprises the module that the square frame institute frame of a 8x8 matrix multiple is lived among the figure.After calculating through one group of butterfly, the HEVC16x16 transformation matrix also is decomposed into the even number part of 16x16 conversion and the odd number part of 16x16 conversion.The odd number of 16x16 conversion partly is a 8x8 matrix multiple, and its even number partly is exactly HEVC 8x8 conversion, namely only comprises the module that the square frame institute frame of a 4x4 matrix multiple is lived among the figure.The HEVC8x8 conversion is decomposed into even number part and odd number part through one group of butterfly computation.Odd number partly is a 4x4 matrix multiple, and even number partly is exactly HEVC 4x4 conversion, does not namely comprise the part that the square frame institute frame of any matrix multiple is lived among the figure.The matrix multiple part has comprised respectively the odd number part of 8x8 matrix, the odd number part of 16x16 matrix and the odd number part of 32x32 matrix.The transformation matrix of these odd numbers part is symmetrical matrix, and the required matrix of using is identical in positive-going transition and transformation by reciprocal direction in other words, can save hardware spending when realizing simultaneously positive-going transition and reciprocal transformation like this on a hardware.Transformation by reciprocal direction flow process shown in Figure 8 is exactly the contrary of positive-going transition process shown in Figure 7, and it also is comprised of butterfly conversion and matrix multiplication.Wherein the 32x32 inverse transformation has comprised the 16x16 inverse transformation, and the 16x16 inverse transformation has comprised the 8x8 inverse transformation, and the 8x8 inverse transformation has comprised the 4x4 inverse transformation.For each inverse transformation, at first input data and be divided into odd number part and even number part, do respectively odd number Partial Transformation and even number Partial Transformation, then both data are done one group of butterfly conversion, can obtain final result.
The matrix multiple computation complexity is very high.The odd number of 8x8 conversion partly is a 4x4 matrix multiple, directly calculates 16 multiplication of needs and 12 sub-addition computings, and the Fast decomposition algorithms of the 8x8 odd number part of HEVC needs the displacement of 27 sub-additions and some.The odd number of 16x16 conversion partly is a 8x8 matrix multiple, directly calculates 64 multiplication of needs and 56 sub-additions, and the Fast decomposition algorithms of the 16x16 odd number part of HEVC needs the displacement of 103 sub-additions and some.The odd number of 32x32 conversion partly is a 16x16 matrix multiple, directly calculates 256 multiplication of needs and 240 sub-additions, and the Fast decomposition algorithms of the 32x32 odd number part of HEVC needs the displacement of 377 sub-additions and some.The present invention proposes one group of new integer transform matrix, is keeping the HEVC advantageous while of conversion, and the fast algorithm that its fast algorithm is compared the HEVC transformation matrix has lower computation complexity.
Summary of the invention
4x4 described in the invention, 8x8,16x16 and 32x32 integer approximation dct transform matrix are respectively shown in Figure 19,9,10 and 11.Their approximation inverse matrix is exactly their transposed matrix.In design, the present invention has kept the advantage of HEVC conversion.Be that undersized conversion is the part of large scale conversion, the odd number of conversion partly adopts the symmetrical matrix multiplication.The height approximation inverse matrix of transformation matrix of the present invention is exactly their transposed matrix.The norm of every delegation of conversion of the present invention is substantially identical, and the norm of the conversion of different size differ also be 2 or
Figure BDA0000133754660000021
When quantizing, do not need like this to use quantization matrix correcting the norm of diverse location, and different conversion can use same set of quantization method, only need to make a little changes in displacement and get final product.
Shown in Figure 12 and 13, similar with the approximate transformation calculations flow process of HEVCDCT, it is comprised of butterfly conversion and matrix multiple respectively for 32x32 positive-going transition of the present invention and transformation by reciprocal direction fast algorithm flow chart.Positive-going transition shown in Figure 12 is at first described.Input 32 data z0z31 and at first be decomposed into even number part (the first half) and odd number part (the latter half) through one group of butterfly conversion.The odd number of 32x32 conversion partly is a 16x16 matrix multiple, it is extracted, and be shown in Figure 17.The even number of 32x32 conversion partly is exactly 16x16 transformation matrix of the present invention, namely comprises the module that the square frame institute frame of a 8x8 matrix multiple is lived among Figure 12.After calculating through one group of butterfly, 16x16 transformation matrix of the present invention also is decomposed into the even number part of 16x16 conversion and the odd number part of 16x16 conversion.The odd number of 16x16 conversion partly is a 8x8 matrix multiple, it is extracted, and be shown in Figure 16.The even number of 16x16 conversion partly is exactly 8x8 conversion of the present invention, namely only comprises the module that the square frame institute frame of a 4x4 matrix multiple is lived among the figure.8x8 conversion of the present invention is decomposed into even number part and odd number part through one group of butterfly computation.Odd number partly is a 4x4 matrix multiple, it is extracted and is shown in Figure 15.And 8x8 conversion even number of the present invention partly is exactly 4x4 conversion of the present invention, does not namely comprise the part that the square frame institute frame of any matrix multiple is lived among the figure.The matrix multiple part has comprised respectively the odd number part of 8x8 matrix, the odd number part of 16x16 matrix and the odd number part of 32x32 matrix.The transformation matrix of these odd numbers part is symmetrical matrix, and the required matrix of using is identical in positive-going transition and transformation by reciprocal direction in other words, can save hardware spending when realizing simultaneously positive-going transition and reciprocal transformation like this on a hardware.Transformation by reciprocal direction flow process shown in Figure 13 is exactly the contrary of positive-going transition process shown in Figure 12, and it also is comprised of butterfly conversion and matrix multiplication.Wherein the 32x32 inverse transformation has comprised the 16x16 inverse transformation, and the 16x16 inverse transformation has comprised the 8x8 inverse transformation, and the 8x8 inverse transformation has comprised the 4x4 inverse transformation.For each inverse transformation, at first input data and be divided into odd number part and even number part, do respectively odd number Partial Transformation and even number Partial Transformation, then both data are done one group of butterfly conversion, can obtain final result.
The Fast decomposition algorithms of 4x4 matrix multiplication shown in Figure 15 is as follows, and it needs 24 sub-additions and some shifting functions.
A01=(x00<<3);
A00=(x01<<1)+(x01<<6);A01=A01+x01;A02=-((x01<<7));
A01=A01-(x02<<7);A02=A02-x02;A03=(x02<<1)+(x02<<6);
A02=A02+(x03<<3);
tmp0=x01+(x01<<2);tmp1=x03+(x03<<4);
x04=((tmp0<<1)+tmp1);A01=A01-(x04<<1);
tmp1=x04+(x04<<2);A03=(A03-tmp1);
tmp0=x00+(x00<<4);tmp1=x02+(x02<<2);x05=(tmp0+(tmp1<<1));
tmp1=x05+(x05<<2);A00=(A00+tmp1);A02=A02+(x05<<1);
x06=(x03<<2)-x05;A01=A01-(x06<<2);A03=A03-x06;
x07=(x00<<2)+x04;A00=A00+x07;A02=A02+(x07<<2);
The Fast decomposition algorithms of 8x8 matrix multiplication shown in Figure 16 is as follows, and it needs the shifting function of 89 sub-additions and some.
A00=-((x00<<2));tmp0=x00+(x00<<2);A01=(tmp0+(tmp0<<4));A04=(x00<<1);
A05=-((x00<<1));A00=A00+(x01<<1);A01=A01+(x01<<6);A03=-((x01<<5));
tmp1=-x02+(x02<<3);A04=(A04-tmp1);A02=-((x03<<5));A01=A01-(x04<<4);
A03=A03+(x04<<7);tmp1=x04+(x04<<1);A05=(A05-(tmp1<<5));A02=A02+(x05<<5);
A03=A03+(x05<<3);A06=x05+(x05<<3);A00=A00+(x06<<3);A04=A04+(x06<<5);
tmp1=x06+(x06<<3);A05=(A05+tmp1);A06=A06-(x06<<5);A03=A03-(x07<<4);
A06=A06+(x07<<7);A07=-((x07<<7));tmp0=x06+(x06<<2);x08=(tmp0+(x07<<1));
A02=A02+(x08<<1);tmp1=x08+(x08<<2);A06=(A06-tmp1);tmp1=x05+(x05<<2);
x09=((x03<<1)+tmp1);A01=A01-(x09<<1);tmp1=-x09+(x09<<3);A05=(A05+(tmp1<<1));
tmp0=x02+(x02<<2);x10=(tmp0+(x04<<1));tmp1=x01+(x01<<2);x11=((x00<<1)-tmp1);
A00=A00-x11;A05=A05+(x11<<1);x12=x04+(x10<<1);A00=A00+(x12<<3);
A06=A06+(x12<<3);A07=A07+x12;x13=x07+(x08<<1);x14=x00+(x11<<1);
x15=(x03<<2)-x11;x16=(x07<<4)-x10;A04=A04+(x16<<2);tmp1=x16+(x16<<2);
A05=(A05-tmp1);A06=A06-(x16<<1);x17=(x09<<4)-x13;A04=A04-x17;
x18=(x00<<4)+x09;A02=A02+x18;x19=(x04<<2)+x08;A01=A01-(x19<<4);
x20=x06-(x19<<2);A00=A00-x20;A07=A07-(x20<<2);x21=x07-(x18<<1);
x22=(x10<<3)+x21;A02=A02-(x22<<1);A03=A03-(x22<<1);x23=(x03<<1)+x17;
A01=A01-x23;A07=A07-x23;x24=(x01<<1)+x15;x25=(x02<<3)-x24;A01=A01+x25;
A07=A07+(x25<<2);x26=x04+(x15<<3);A00=A00+(x26<<1);A06=A06-(x26<<1);
x27=(x02<<2)+x14;A03=A03+x27;A05=A05+(x27<<3);x28=(x03<<4)+x14;
A04=A04+(x28<<3);A06=A06-x28;x29=x12+(x13<<3);A02=A02+x29;A03=A03-x29;
x30=x03+(x09<<1);A00=A00+x30;A04=A04-x30;x31=(x00<<2)+x05;A00=A00+(x31<<5);
A04=A04+(x31<<2);x32=x01-(x03<<3);A02=A02+(x32<<3);A07=A07+x32;
The Fast decomposition algorithms of 16x16 matrix multiplication shown in Figure 17 is as follows, and it needs the shifting function of 344 sub-additions and some.
A02=(x00<<7);A04=(x00<<1);A07=-(x00);A10=(x00<<6);A11=(x00<<5);
A14=-(x00<<1)+(x00<<4);A05=-(x01+(x01<<2));A08=-((x01<<7));A10=A10-x01;
A00=(x02<<3);A02=A02+(x02<<4);A04=A04-x02;A10=A10-(x02<<3);A13=(x02<<7);
A03=x04;A05=A05-(x04<<2);A11=A11-(x04<<1);A13=A13+(x04<<6);A00=A00-(x05<<1);
tmp1=x05+(x05<<3);A03=(A03-tmp1);A13=A13-(x05<<6);A03=A03+x06;A09=-(x06);
A11=A11-x06;A02=A02+(x07<<3);A04=A04+(x07<<1);A06=-((x07<<2)+(x07<<7));
A07=A07+(x07<<1);A08=A08+(x07<<3);A12=(x07<<7);A07=A07+(x08<<7);
A13=A13-(x08<<5);A01=-((x09<<7));A03=A03+(x09<<2);A13=A13+(x09<<6);
A15=-(x09+(x09<<5));A01=A01-(x10<<2);A13=A13+(x10<<3);A06=A06+x11;
A08=A08+(x11<<6);A12=A12-(x11<<7);A15=A15-(x11<<4);A07=A07+x12;A02=A02-(x13<<2);
A04=A04+(x13<<3);A10=A10-x13;A11=A11+(x13<<6);A14=A14+(x13<<7);
tmp1=-x14+(x14<<5);A01=(A01-tmp1);A03=A03-(x14<<6);tmp1=x14+(x14<<5);
A06=(A06+(tmp1<<2));A09=A09-(x14<<3);A14=A14-(x14<<6);A02=A02+(x15<<5);
A06=A06+(x15<<6);A13=A13-(x15<<3);tmp00=x02+(x02<<1);tmp0=(-tmp00+(x02<<4));
tmp10=x07+(x07<<1);tmp1=(-tmp10+(tmp10<<3));x16=(tmp0-tmp1);A02=A02+x16;
A04=A04-(x16<<2);A13=A13-(x16<<1);tmp0=x05+(x05<<1);tmp1=x15+(x15<<2);
x17=(tmp0-(tmp1<<1));A01=A01+x17;A04=A04-(x17<<2);tmp1=-x17+(x17<<3);
A07=(A07-tmp1);A09=A09+x17;A12=A12+(x17<<4);A14=A14-x17;tmp0=x09+(x09<<2);
tmp1=x14+(x14<<1);x18=(tmp0-tmp1);A04=A04-(x18<<3);A05=A05-(x18<<3);
A06=A06+(x18<<4);A11=A11-(x18<<3);A13=A13-x18;tmp0=-x01+(x01<<4);
tmp10=x08+(x08<<1);tmp1=(tmp10+(x08<<3));x19=(tmp0+tmp1);A00=A00+(x19<<3);
A12=A12-x19;tmp1=x13+(x13<<2);x20=((x04<<1)-tmp1);A00=A00+(x20<<1);
A03=A03+(x20<<4);A09=A09-(x20<<1);A14=A14+(x20<<2);tmp1=x12+(x12<<1);
x21=(x03-tmp1);A07=A07-(x21<<5);A13=A13-x21;tmp1=x21+(x21<<4);
A15=(A15-(tmp1<<1));tmp0=x06+(x06<<2);tmp1=-x10+(x10<<3);x22=(tmp0-tmp1);
A01=A01-(x22<<1);A04=A04+(x22<<4);A15=A15-(x22<<1);tmp0=x00+(x00<<2);
x23=((tmp0<<1)+x08);A09=A09-x23;A13=A13-x23;tmp0=x11+(x11<<1);
x24=((tmp0<<1)-x21);A00=A00+(x24<<3);A07=A07-x24;A09=A09-(x24<<3);
x25=x09-(x10<<2);A02=A02-(x25<<1);A04=A04-(x25<<2);A09=A09-x25;
x26=(x12<<3)+x22;A01=A01-(x26<<2);A10=A10+(x26<<3);x27=(x00<<3)-x19;
A09=A09+(x27<<3);A10=A10-(x27<<1);x28=x11-x14;A00=A00-(x28<<3);A04=A04-(x28<<6);
A12=A12+(x28<<5);tmp1=x28+(x28<<6);A15=(A15-tmp1);x29=x04+(x05<<2);
A01=A01-(x29<<1);tmp1=x29+(x29<<4);A02=(A02-tmp1);A10=A10+(x29<<3);
tmp1=-x23+(x23<<3);x30=((x03<<6)-tmp1);A03=A03-x30;A08=A08+x30;x31=x02+(x03<<1);
A00=A00+(x31<<4);A05=A05+(x31<<1);x32=x18-(x20<<1);A02=A02+x32;A07=A07+x32;
x33=x06+x09;A11=A11-(x33<<5);tmp0=x04+(x04<<5);x34=(tmp0-x19);A04=A04-(x34<<1);
A07=A07+(x34<<2);x35=x03+x17;A02=A02+x35;x36=(x05<<3)+x17;A08=A08-(x36<<3);
x37=x15-x16;A15=A15-(x37<<1);x38=x01+x12;A09=A09+(x38<<1);A10=A10+(x38<<3);
A11=A11-(x38<<6);x39=(x08<<2)-x36;A05=A05-(x39<<3);A14=A14+(x39<<3);
x40=x07-(x08<<2);A12=A12-(x40<<2);x41=x04+x35;A06=A06+x41;A13=A13+(x41<<3);
tmp0=-x11+(x11<<3);x42=(tmp0-(x31<<1));A09=A09-(x42<<2);A10=A10+(x42<<1);
A13=A13+(x42<<3);x43=x07-x22;A13=A13+x43;x44=(x01<<3)-x20;A07=A07+x44;
A10=A10-(x44<<4);x45=x10-x13;A03=A03-x45;A06=A06+x45;x46=x01-(x05<<1);
A03=A03+(x46<<5);A09=A09+(x46<<5);x47=x09-x43;A08=A08+x47;A10=A10+(x47<<2);
A11=A11-(x47<<1);x48=x10+x33;A00=A00+(x48<<6);A06=A06+(x48<<1);A10=A10-x48;
x49=(x02<<6)+x30;A06=A06-x49;x50=x00-(x26<<2);A12=A12-(x50<<1);
x51=(x03<<1)-x25;A02=A02+(x51<<3);A05=A05+x51;A13=A13-(x51<<5);
tmp1=-x24+(x24<<4);x52=((x00<<1)-tmp1);A01=A01+x52;A05=A05-x52;
x53=(x11<<1)+x22;A04=A04-x53;A09=A09-x53;A14=A14+(x53<<2);x54=(x05<<3)-x21;
A02=A02-(x54<<1);x55=(x00<<3)+x20;A01=A01+(x55<<4);A03=A03+(x55<<1);
A08=A08+(x55<<4);x56=(x07<<4)+x19;A03=A03+x56;x57=x14+x16;A10=A10+(x57<<1);
tmp0=x15+(x15<<4);x58=((tmp0<<1)+x57);A10=A10+(x58<<1);x59=x07+(x15<<3);
A00=A00+x59;x60=(x11<<1)-x12;A03=A03-x60;A11=A11+(x60<<5);A12=A12-x60;
tmp1=x11+(x11<<1);x61=((x01<<3)+tmp1);tmp1=x61+(x61<<3);A08=(A08+tmp1);
x62=(x04<<1)-x09;A03=A03-(x62<<6);A10=A10-(x62<<6);A14=A14+(x62<<5);
x63=(x02<<5)+x05;A05=A05-(x63<<1);x64=x03+(x03<<1);tmp1=-x64+(x64<<4);
A04=(A04-(tmp1<<1));tmp1=-x64+(x64<<5);A14=(A14-tmp1);x65=(x13<<2)-x63;
A11=A11-(x65<<1);A12=A12-(x65<<1);x66=x27-x61;x67=(x40<<5)-x66;
A01=A01+x67;A11=A11-x67;x68=(x03<<3)-x59;A07=A07+(x68<<4);A09=A09+(x68<<3);
x69=(x08<<6)-x58;A03=A03+x69;A05=A05-x69;x70=(x21<<3)+x56;x71=(x44<<2)-x70;
A02=A02+(x71<<2);A14=A14-(x71<<1);x72=(x06<<2)+x54;x73=(x23<<3)+x72;
A00=A00+(x73<<1);A04=A04+x73;x74=(x03<<4)+x50;x75=(x13<<1)-x74;A06=A06-(x75<<1);
A08=A08-x75;x76=(x18<<1)-x49;A00=A00-x76;A07=A07+x76;x77=(x13<<3)-x46;
A04=A04+(x77<<3);A15=A15-x77;x78=(x14<<1)+x45;A07=A07-(x78<<5);A13=A13+(x78<<5);
x79=(x03<<6)-x41;A10=A10+x79;A12=A12-x79;x80=(x10<<2)-x40;A00=A00-(x80<<2);
A15=A15+(x80<<4);x81=x02-x39;A11=A11+(x81<<3);A15=A15-(x81<<2);
x82=(x02<<2)-x38;A08=A08+x82;A14=A14-x82;x83=x10+(x37<<2);A01=A01-x83;
A08=A08+x83;x84=x13+x37;A09=A09+x84;A14=A14-x84;x85=(x29<<3)+x34;
A00=A00+(x85<<1);A06=A06+(x85<<1);x86=(x04<<4)+x33;A07=A07-(x86<<1);
A11=A11-(x86<<2);x87=x04-x32;A09=A09-(x87<<3);A15=A15+(x87<<3);
x88=(x31<<3)+x32;A01=A01+(x88<<1);A05=A05-(x88<<2);x89=x01-(x28<<2);
x90=x14+(x89<<1);x91=(x16<<1)-x90;A12=A12+x91;A14=A14+(x91<<1);
x92=(x12<<2)-x27;A13=A13-(x92<<2);A15=A15-x92;x93=(x25<<3)-x27;A01=A01+(x93<<2);
A12=A12-(x93<<2);x94=(x06<<1)-x26;A03=A03+(x94<<3);A05=A05-x94;x95=x16+(x24<<2);
A06=A06-(x95<<1);A07=A07-x95;x96=(x14<<4)-x23;A02=A02+(x96<<2);A05=A05-(x96<<3);
x97=(x06<<4)-x22;A07=A07-(x97<<3);A09=A09+(x97<<3);x98=x15+(x21<<1);
A08=A08+x98;A11=A11-x98;x99=(x18<<1)+x20;A08=A08-x99;A12=A12+x99;
x100=x15+x18;A03=A03+(x100<<2);A08=A08-(x100<<4);x101=x06-(x15<<1);
A12=A12-(x101<<7);A15=A15+(x101<<6);x102=(x07<<1)+x13;A00=A00+(x102<<5);
A13=A13+(x102<<1);tmp0=x06+(x06<<2);x103=(tmp0-(x11<<2));tmp1=x103+(x103<<3);
A02=(A02-(tmp1<<1));x104=(x06<<1)+x10;A05=A05+(x104<<5);A14=A14+(x104<<5);
Description of drawings
Fig. 1 is the digital video example.
Fig. 2 is piece base motion compensation dct transform video encoder schematic diagram.
Fig. 3 is HEVC4x4 integer approximation dct transform matrix.
Fig. 4 is HEVC8x8 integer approximation dct transform matrix.
Fig. 5 is HEVC16x16 integer approximation dct transform matrix.
Fig. 6 is HEVC32x32 integer approximation dct transform matrix.
Fig. 7 is HEVC positive-going transition flow chart.
Fig. 8 is HEVC transformation by reciprocal direction flow chart.
Fig. 9 is the 8x8 integer approximation dct transform matrix that this patent is invented.
Figure 10 is the 16x16 integer approximation dct transform matrix that this patent is invented.
Figure 11 is the 32x32 integer approximation dct transform matrix that this patent is invented.
Figure 12 is the positive-going transition calculation flow chart that this patent is invented.
Figure 13 is the transformation by reciprocal direction calculation flow chart that this patent is invented.
Figure 14 is the example encoder execution mode.
Figure 15 is the odd number part compute matrix that this patent is invented the 8x8 conversion.
Figure 16 is the odd number part compute matrix that this patent is invented the 16x16 conversion.
Figure 17 is the odd number part compute matrix that this patent is invented the 32x32 conversion.
Figure 18 is the example decoder execution mode.
Figure 19 is the 4x4 integer approximation dct transform matrix that this patent is invented.
Execution mode
Figure 14 and Figure 18 have represented respectively two kinds of typical use systems of the present invention.Shown in Figure 14 is a kind of typical video encoder.At first the input data are divided into the piece of maximum 64x64, then from left to right, encode one by one from top to bottom.At first according to reconstructing video image the present encoding piece is formed prediction.For more accurate prediction, the 64x64 piece is divided into less piece such as 32x32,16x16 even less 8x8,4x4 piece or rectangular blocks usually to be predicted.Residual error after the prediction needs coding, for residual error is encoded efficiently, needs at first residual error to be carried out successively the operation of transform and quantization.In order to reduce the complexity of conversion, the length of conversion is restricted to little 2 power 4,8,16 and 32.So transform block high or wide only is a kind of in above-mentioned 4 numerals.In order to improve code efficiency, usually can adopt the variable-size-block coding.At this moment, the size of encoding block is written into code stream and sends decoder to.For one wide and high be 4,8,16 or 32 rectangular blocks, it is carried out the integer approximation dct transform, following 2 kinds of methods (row major conversion and the preferential conversion of row) are arranged:
1. at first according to the corresponding horizontal direction transformation matrix of the wide selection of piece.If wide is 4, select 4x4 conversion shown in Figure 19; If wide is 8, select 8x8 conversion shown in Figure 9; If wide is 16, select 16x16 conversion shown in Figure 10; If wide is 32, select 32x32 conversion shown in Figure 11.Every delegation difference executive level direction integer approximation dct transform to piece.Because input size and the Output Size of integer approximation dct transform are identical, the result of the first step remains the data block of a same size.Then according to the corresponding integer approximation DCT matrix of the high selection of piece, each row of first step result are carried out vertical direction dct transform, acquired results is exactly the integer approximation dct transform result of two-dimensional block.If height is 4, select 4x4 conversion shown in Figure 19; If height is 8, select 8x8 conversion shown in Figure 9; If height is 16, select 16x16 conversion shown in Figure 10; If height is 32, select 32x32 conversion shown in Figure 11.
2. at first select corresponding vertical direction transformation matrix according to the height of piece.If height is 4, select 4x4 conversion shown in Figure 19; If height is 8, select 8x8 conversion shown in Figure 9; If height is 16, select 16x16 conversion shown in Figure 10; If height is 32, select 32x32 conversion shown in Figure 11.Each row to piece are carried out respectively vertical direction integer approximation dct transform.Because input size and the Output Size of integer approximation dct transform are identical, the result of the first step remains the data block of a same size.Then according to the corresponding integer approximation DCT of the wide selection of piece matrix, to every delegation executive level direction dct transform of first step result, acquired results is exactly the integer approximation dct transform result of two-dimensional block.If wide is 4, select 4x4 conversion shown in Figure 19; If wide is 8, select 8x8 conversion shown in Figure 9; If wide is 16, select 16x16 conversion shown in Figure 10; If wide is 32, select 32x32 conversion shown in Figure 11.
Be later on to quantize at dct transform, the result after the quantification writes code stream.Then inverse quantization obtains reconstruct DCT coefficient block.It has identical wide and high with recited above.Then carry out anti-integer approximation dct transform.Have following two kinds of methods (row major conversion and the preferential conversion of row, when the forward dct transform adopted the row major conversion, oppositely dct transform must adopt the preferential conversion of row; When the forward dct transform adopted the preferential conversion of row, oppositely dct transform must adopt the row major conversion):
1. at first according to the corresponding horizontal direction reciprocal transformation of the wide selection matrix of piece.If wide is 4, select the transposed matrix of 4x4 transformation matrix shown in Figure 19; If wide is 8, select the transposed matrix of 8x8 transformation matrix shown in Figure 9; If wide is 16, select the transposed matrix of 16x16 transformation matrix shown in Figure 10; If wide is 32, select the transposed matrix of 32x32 transformation matrix shown in Figure 11.The reverse dct transform of every delegation's difference executive level direction integer approximation to piece.Because input size and the Output Size of the reverse dct transform of integer approximation are identical, the result of the first step remains the data block of a same size.Then according to the high reverse DCT matrix of corresponding integer approximation of selecting of piece, each row of first step result are carried out the reverse dct transform of vertical direction, acquired results is exactly the reverse dct transform result of integer approximation of two-dimensional block.If height is 4, select the transposed matrix of 4x4 transformation matrix shown in Figure 19; If height is 8, select the transposed matrix of 8x8 transformation matrix shown in Figure 9; If height is 16, select the transposed matrix of 16x16 transformation matrix shown in Figure 10; If height is 32, select the transposed matrix of 32x32 transformation matrix shown in Figure 11.
2. at first select corresponding vertical direction reciprocal transformation matrix according to the height of piece.If height is 4, select the transposed matrix of 4x4 transformation matrix shown in Figure 19; If height is 8, select the transposed matrix of 8x8 transformation matrix shown in Figure 9; If height is 16, select the transposed matrix of 16x16 transformation matrix shown in Figure 10; If height is 32, select the transposed matrix of 32x32 transformation matrix shown in Figure 11.Each row to piece are carried out respectively the reverse integer approximation dct transform of vertical direction.Because oppositely the input size of integer approximation dct transform is identical with Output Size, so the result of the first step remains the data block of a same size.Then according to the corresponding oppositely integer approximation DCT matrix of the wide selection of piece, to first step result's the reverse dct transform of every delegation's executive level direction, acquired results is exactly the reverse integer approximation dct transform result of two-dimensional block.If wide is 4, select the transposed matrix of 4x4 transformation matrix shown in Figure 19; If wide is 8, select the transposed matrix of 8x8 transformation matrix shown in Figure 9; If wide is 16, select the transposed matrix of 16x16 transformation matrix shown in Figure 10; If wide is 32, select the transposed matrix of 32x32 transformation matrix shown in Figure 11.
Oppositely the result behind the dct transform and the addition of prediction piece obtain reconstructed blocks, then are stored into the prediction that frame buffer zone is used for subsequent encoded blocks in subsequent received.Decoder shown in Figure 180 is the contrary of encoder shown in Figure 14, and is similar in its process and the encoder, repeats no more here.
Shown in Figure 14 is a simple encoder schematic diagram.The present invention is not strictly limited to system shown in Figure 14.As can adding a loop filter among Figure 14, or the block-based DC component compensator that classification determines, or a deblocking filter, or the lapped transform module, etc.Also can remove some modules among Figure 14, such as an intra encoder, inter prediction and motion estimation module just can be removed.In the encoder of a reality, a transform block also may only use dct transform in one direction, then used other conversion on another direction, such as discrete sine transform or simply do not carry out any conversion, these are also in embodiment of the present invention.
Said apparatus can be that software mode is realized.But customer designed IC, FPGA or other configurable processors etc. can be realization carriers of the present invention.
For convenience's sake, these operations are described as different interconnect function unit or the software module of interconnection.But this is not necessary.In some applications, these modules or functional unit are integrated in single logical device, program or the operation, and do not have obvious boundary.Under any circumstance, the feature of these functional units or module or description can singlely realize, or jointly realizes with other modules or functional unit.

Claims (6)

1. in a video or Image Coding or decode system, the 2D signal piece is carried out forward or backwards integer approximation discrete cosine transform (DCT) or other conversion, piece wide or high can only be in 4,8,16 or 32, it is characterized in that:
1) 2 kinds of order changes is arranged.The first order change is at first to every delegation executive level direction integer approximation dct transform/inverse transformation or other conversion of 2D signal piece, then each row of first step transformation results is carried out vertical direction integer approximation dct transform/inverse transformation or other conversion; The second order change is at first each row of 2D signal piece to be carried out vertical direction integer approximation dct transform/inverse transformation or other conversion, then to every delegation executive level direction integer approximation dct transform/inverse transformation or other conversion of first step transformation results.
2) according to the type of integer approximation dct transform or other conversion on the wide selection level direction of piece, if wide be 4, select the 4x4 conversion; If wide is 8, select the 8x8 conversion; If wide is 16, select the 16x16 conversion; If wide is 32, select the 32x32 conversion.Select the type of integer approximation dct transform on the vertical direction or other conversion according to the height of piece, if wide be 4, select the 4x4 conversion; If wide is 8, select the 8x8 conversion; If wide is 16, select the 16x16 conversion; If wide is 32, select the 32x32 conversion.
2. described method according to claim 1, it is characterized in that, if to two-dimensional blocks of data executive level or vertical forward integer approximation dct transform, used at least a kind of in following 4 kinds of matrixes: 4x4 transformation matrix shown in Figure 19,8x8 transformation matrix shown in Figure 9,16x16 transformation matrix shown in Figure 10 and 32x32 transformation matrix shown in Figure 11.
3. described method according to claim 1, it is characterized in that, if to two-dimensional blocks of data executive level or vertical oppositely integer approximation dct transform, used at least a kind of in following 4 kinds of matrixes: the transposed matrix of the transposed matrix of the transposed matrix of 4x4 transformation matrix shown in Figure 19,8x8 transformation matrix shown in Figure 9, the transposed matrix of 16x16 transformation matrix shown in Figure 10 and 32x32 transformation matrix shown in Figure 11.
4. in a video or Image Coding or decode system, to wide or high be that 4,8,16 or 32 2D signal piece is carried out forward or backwards integer approximation dct transform/inverse transformation or other conversion, conversion according to the wide or high selection corresponding size of piece, at first to respectively executive level direction integer approximation dct transform/inverse transformation or other conversion of every delegation of piece, then each row of piece are carried out respectively vertical direction integer approximation dct transform/inverse transformation or other conversion; Or at first each row of piece are carried out respectively vertical direction integer approximation dct transform/inverse transformation or other conversion, then executive level direction integer approximation dct transform/inverse transformation or other conversion are distinguished by every delegation of piece.
5. described method according to claim 4 when carrying out the discrete cosine transform of forward integer approximation, as shown in figure 12, is at first carried out one group of butterfly conversion to the input data, and the result is divided into mutually disjoint 2 groups, is respectively applied to odd number part and the even number part of result of calculation.It is characterized in that odd number Partial Transformation matrix has used a kind of in following 3 kinds at least: the odd number Partial Transformation matrix of 8x8 conversion shown in Figure 15; The odd number Partial Transformation matrix of 16x16 conversion shown in Figure 16; The odd number Partial Transformation matrix of 32x32 conversion shown in Figure 17.
6. described method according to claim 4, when carrying out reverse integer approximation discrete cosine transform, as shown in figure 13, odd number part and the even number of input data partly are divided into mutually disjoint 2 groups, carry out respectively odd number part inverse transformation and even number part inverse transformation, both results are combined and carry out one group of butterfly conversion and obtain final result.It is characterized in that odd number part inverse transformation matrix has used a kind of in following 3 kinds at least: the odd number Partial Transformation matrix of 8x8 inverse transformation shown in Figure 15; The odd number Partial Transformation matrix of 16x16 inverse transformation shown in Figure 16; The odd number Partial Transformation matrix of 32x32 inverse transformation shown in Figure 17.
CN2012100237200A 2012-04-14 2012-04-14 Video encoding approximate orthogonal integer transformation Pending CN103379317A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012100237200A CN103379317A (en) 2012-04-14 2012-04-14 Video encoding approximate orthogonal integer transformation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012100237200A CN103379317A (en) 2012-04-14 2012-04-14 Video encoding approximate orthogonal integer transformation

Publications (1)

Publication Number Publication Date
CN103379317A true CN103379317A (en) 2013-10-30

Family

ID=49463814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012100237200A Pending CN103379317A (en) 2012-04-14 2012-04-14 Video encoding approximate orthogonal integer transformation

Country Status (1)

Country Link
CN (1) CN103379317A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1461150A (en) * 2003-07-03 2003-12-10 浙江大学 8*8 integer conversion method used in image coding and video coding and its device
CN1589017A (en) * 2004-08-06 2005-03-02 联合信源数字音视频技术(北京)有限公司 Quantizing device for low complicated degree integer 4x4 discrete cosine transform and its realizing method
WO2006034603A1 (en) * 2004-09-28 2006-04-06 Huawei Technologies Co., Ltd Video image encoding method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1461150A (en) * 2003-07-03 2003-12-10 浙江大学 8*8 integer conversion method used in image coding and video coding and its device
CN1589017A (en) * 2004-08-06 2005-03-02 联合信源数字音视频技术(北京)有限公司 Quantizing device for low complicated degree integer 4x4 discrete cosine transform and its realizing method
WO2006034603A1 (en) * 2004-09-28 2006-04-06 Huawei Technologies Co., Ltd Video image encoding method

Similar Documents

Publication Publication Date Title
US7876820B2 (en) Method and system for subband encoding and decoding of an overcomplete representation of the data structure
CN108769681B (en) Video encoding method, video decoding method, video encoding apparatus, video decoding apparatus, computer device, and storage medium
KR101773279B1 (en) Upsampling and signal enhancement
Liu et al. Compressive sampling-based image coding for resource-deficient visual communication
CN112203088B (en) Transform selection for non-baseband signal coding
US20180160117A1 (en) Restoration in video coding using domain transform recursive filters
CN105474642A (en) Re-encoding image sets using frequency-domain differences
WO2019056898A1 (en) Encoding and decoding method and device
CN108848377B (en) Video encoding method, video decoding method, video encoding apparatus, video decoding apparatus, computer device, and storage medium
WO2020078228A1 (en) Method and apparatus for video encoding, method and apparatus for video decoding, computer device and storage medium
KR101975324B1 (en) Implementation design for hybrid transform coding scheme
US20080260270A1 (en) Spatially enhanced transform coding
CN110913219A (en) Video frame prediction method and device and terminal equipment
US20150110191A1 (en) Video encoding method and apparatus, and video decoding method and apparatus performing motion compensation
Liu et al. Local bandwidth constrained fast inverse motion compensation for DCT-domain video transcoding
CN103379317A (en) Video encoding approximate orthogonal integer transformation
JP2005502285A (en) Method and apparatus for encoding successive images
Yu et al. A Distortion-Aware Multi-Task Learning Framework for Fractional Interpolation in Video Coding
Phadatare et al. Implementation of DCT and Fractal Compression Technique
Masoudnia et al. Design and performance of a pixel-level pipelined-parallel architecture for high speed wavelet-based image compression
Safari et al. The application of lifting DWT in digital image processing
JP6388476B2 (en) Encoding apparatus and program
Xiang et al. Super-resolution reconstruction of image sequences compressed with DWT-based techniques
Rawat et al. Selection of wavelet for image compression in hybrid coding scheme combining SPIHT-and SOFM-based vector quantisation
Luts New Approaches and Methods of Adaptive Image Encoding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131030