Patent ID: 8228983

Claim:
A processor implemented method for transforming an input data set of a first domain for image and video coding, comprising the steps of: receiving, by a processor, said input data set represented by 16×16 matrix X; and transforming, by the processor, said input data set with a transform matrix E 16 into a data set of a second domain, comprising: initiating eight additions and eight subtractions on X for each j to output an intermediate 16×16 data set C: [c 0,j , c 1,j , . . . c 15,j ]=[x 0,j +x 1,j , x 2,j +x 3,j , x 4,j +x 5,j , x 6,j +x 7,j , x 8,j +x 9,j , x 10,j +x 11,j , x 12,j +x 13,j , x 14,j +x 15,j , x 0,j −x 1,j , x 2,j −x 3,j , x 4,j −x 5,j , x 6,j −x 7,j , x 8,j −x 9,j , x 10,j −x 11,j , x 12,j −x 13,j x 14,j −x 15,j ]; where j is an integer between 0 and 15; performing 8-point ICT to transform each column of a first portion of said intermediate data set [c 0,j , c 1,j , . . . , c 7,j ] into a first portion of data set Z′ [z′ 0,j , z′ 1,j , . . . , z′ 7,j ]; applying said 8-point ICT to transform each column of a second portion of said intermediate data set [c 8,j , c 9,j , . . . , c 15,j ] and output a second portion of data set Z′ containing [z′ 8,j , z′ 9,j , . . . , z′ 15,j ]; processing with eight additions and eight subtractions on Z′ for each i to output an intermediate 16×16 data set C′: [c′ i,0 , c′ i,1 , . . . , c′ i,15 ]=[z′ i,0 +z′ i,1 z′ i,2 +z′ i,3 , . . . , z′ i,14 +z′ i,15 , z′ i,0 −z′ i,1 , z′ i,2 −z′ i,3 , . . . , z′ i,14 −z′ i,15 ]; where i is an integer between 0 and 15; conducting a 8-point ICT to transform each row of a first portion of said intermediate data set [c′ i,0 , c′ i,1 , . . . , c′ i,7 ] into a first portion of data set Z [z i,0 , z i,1 , . . . , z i,7 ]; and carrying out said 8-point ICT to transform each row of a second portion of said intermediate data set [c′ i,8 , c 1,9 , . . . , c′ i,15 ] and output a second portion of data set Z containing [z i,8 , z i,9 , . . . , z i,15 ]; wherein said transform matrix E 16 being of order 16 E 16 =[A 0 A 1 . . . A 15 ] is obtained by expanding a base matrix E 8 of order 8 E 8 =[B 0 B 1 . . . B 7 ] where A 2 ⁢ k = [ B k R k ] , A 2 ⁢ k + 1 = [ B k - R k ] , B k = [ m 0 , k m 1 , k ⋮ m 7 , k ] , and R k = [ 1 1 ⋮ 1 ] ⁢ B k = [ m 7 , k ⋮ m 1 , k m 0 , k ] , where k is an integer between 0 and 7.