@@ -344,62 +344,54 @@ pub fn unscan_block_4x4(block: &[i32]) -> Block4x4 {
344344// Section 8.5.12.2 Transformation process for residual 4x4 blocks
345345pub fn transform_4x4 ( block : & Block4x4 ) -> Block4x4 {
346346 let d = & block. samples ;
347- let mut tmp_block1 = Block4x4 :: default ( ) ;
348- let mut tmp_block2 = Block4x4 :: default ( ) ;
349- let e = & mut tmp_block1 . samples ;
347+ let mut tmp_block = Block4x4 :: default ( ) ;
348+
349+ let f = & mut tmp_block . samples ;
350350 for i in 0 ..4 {
351351 // (8-338)
352- e [ i ] [ 0 ] = d[ i] [ 0 ] + d[ i] [ 2 ] ;
352+ let e0 = d[ i] [ 0 ] + d[ i] [ 2 ] ;
353353 // (8-339)
354- e [ i ] [ 1 ] = d[ i] [ 0 ] - d[ i] [ 2 ] ;
354+ let e1 = d[ i] [ 0 ] - d[ i] [ 2 ] ;
355355 // (8-340)
356- e [ i ] [ 2 ] = ( d[ i] [ 1 ] >> 1 ) - d[ i] [ 3 ] ;
356+ let e2 = ( d[ i] [ 1 ] >> 1 ) - d[ i] [ 3 ] ;
357357 // (8-341)
358- e[ i] [ 3 ] = d[ i] [ 1 ] + ( d[ i] [ 3 ] >> 1 ) ;
359- }
358+ let e3 = d[ i] [ 1 ] + ( d[ i] [ 3 ] >> 1 ) ;
360359
361- let f = & mut tmp_block2. samples ;
362- for i in 0 ..4 {
363360 // (8-342)
364- f[ i] [ 0 ] = e [ i ] [ 0 ] + e [ i ] [ 3 ] ;
361+ f[ i] [ 0 ] = e0 + e3 ;
365362 // (8-343)
366- f[ i] [ 1 ] = e [ i ] [ 1 ] + e [ i ] [ 2 ] ;
363+ f[ i] [ 1 ] = e1 + e2 ;
367364 // (8-344)
368- f[ i] [ 2 ] = e [ i ] [ 1 ] - e [ i ] [ 2 ] ;
365+ f[ i] [ 2 ] = e1 - e2 ;
369366 // (8-345)
370- f[ i] [ 3 ] = e [ i ] [ 0 ] - e [ i ] [ 3 ] ;
367+ f[ i] [ 3 ] = e0 - e3 ;
371368 }
372369
373- let g = & mut tmp_block1. samples ;
370+ let mut r_block = Block4x4 :: default ( ) ;
371+ let r = & mut r_block. samples ;
374372 for j in 0 ..4 {
375373 // (8-346)
376- g [ 0 ] [ j ] = f[ 0 ] [ j] + f[ 2 ] [ j] ;
374+ let g0 = f[ 0 ] [ j] + f[ 2 ] [ j] ;
377375 // (8-347)
378- g [ 1 ] [ j ] = f[ 0 ] [ j] - f[ 2 ] [ j] ;
376+ let g1 = f[ 0 ] [ j] - f[ 2 ] [ j] ;
379377 // (8-348)
380- g [ 2 ] [ j ] = ( f[ 1 ] [ j] >> 1 ) - f[ 3 ] [ j] ;
378+ let g2 = ( f[ 1 ] [ j] >> 1 ) - f[ 3 ] [ j] ;
381379 // (8-349)
382- g[ 3 ] [ j] = f[ 1 ] [ j] + ( f[ 3 ] [ j] >> 1 ) ;
383- }
380+ let g3 = f[ 1 ] [ j] + ( f[ 3 ] [ j] >> 1 ) ;
384381
385- let h = & mut tmp_block2. samples ;
386- for j in 0 ..4 {
387382 // (8-350)
388- h [ 0 ] [ j ] = g [ 0 ] [ j ] + g [ 3 ] [ j ] ;
383+ let h0 = g0 + g3 ;
389384 // (8-351)
390- h [ 1 ] [ j ] = g [ 1 ] [ j ] + g [ 2 ] [ j ] ;
385+ let h1 = g1 + g2 ;
391386 // (8-352)
392- h [ 2 ] [ j ] = g [ 1 ] [ j ] - g [ 2 ] [ j ] ;
387+ let h2 = g1 - g2 ;
393388 // (8-353)
394- h[ 3 ] [ j] = g[ 0 ] [ j] - g[ 3 ] [ j] ;
395- }
389+ let h3 = g0 - g3;
396390
397- let mut r_block = Block4x4 :: default ( ) ;
398- let r = & mut r_block. samples ;
399- for i in 0 ..4 {
400- for j in 0 ..4 {
401- r[ i] [ j] = ( h[ i] [ j] + 32 ) >> 6 ;
402- }
391+ r[ 0 ] [ j] = ( h0 + 32 ) >> 6 ;
392+ r[ 1 ] [ j] = ( h1 + 32 ) >> 6 ;
393+ r[ 2 ] [ j] = ( h2 + 32 ) >> 6 ;
394+ r[ 3 ] [ j] = ( h3 + 32 ) >> 6 ;
403395 }
404396
405397 r_block
0 commit comments