more simplifications
Originally committed as revision 5795 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		
							parent
							
								
									f72f8a7735
								
							
						
					
					
						commit
						006ff1cabe
					
				| @ -1369,9 +1369,6 @@ static void reverse_dc_prediction(Vp3DecodeContext *s, | ||||
| 
 | ||||
|     short predicted_dc; | ||||
| 
 | ||||
|     /* validity flags for the left, up-left, up, and up-right fragments */ | ||||
|     int fl, ful, fu, fur; | ||||
| 
 | ||||
|     /* DC values for the left, up-left, up, and up-right fragments */ | ||||
|     int vl, vul, vu, vur; | ||||
| 
 | ||||
| @ -1384,26 +1381,24 @@ static void reverse_dc_prediction(Vp3DecodeContext *s, | ||||
|      *   1: up multiplier | ||||
|      *   2: up-right multiplier | ||||
|      *   3: left multiplier | ||||
|      *   4: mask | ||||
|      *   5: right bit shift divisor (e.g., 7 means >>=7, a.k.a. div by 128) | ||||
|      */ | ||||
|     int predictor_transform[16][6] = { | ||||
|         {  0,  0,  0,  0,   0,  0 }, | ||||
|         {  0,  0,  0,  1,   0,  0 },        // PL
 | ||||
|         {  0,  0,  1,  0,   0,  0 },        // PUR
 | ||||
|         {  0,  0, 53, 75, 127,  7 },        // PUR|PL
 | ||||
|         {  0,  1,  0,  0,   0,  0 },        // PU
 | ||||
|         {  0,  1,  0,  1,   1,  1 },        // PU|PL
 | ||||
|         {  0,  1,  0,  0,   0,  0 },        // PU|PUR
 | ||||
|         {  0,  0, 53, 75, 127,  7 },        // PU|PUR|PL
 | ||||
|         {  1,  0,  0,  0,   0,  0 },        // PUL
 | ||||
|         {  0,  0,  0,  1,   0,  0 },        // PUL|PL
 | ||||
|         {  1,  0,  1,  0,   1,  1 },        // PUL|PUR
 | ||||
|         {  0,  0, 53, 75, 127,  7 },        // PUL|PUR|PL
 | ||||
|         {  0,  1,  0,  0,   0,  0 },        // PUL|PU
 | ||||
|         {-26, 29,  0, 29,  31,  5 },        // PUL|PU|PL
 | ||||
|         {  3, 10,  3,  0,  15,  4 },        // PUL|PU|PUR
 | ||||
|         {-26, 29,  0, 29,  31,  5 }         // PUL|PU|PUR|PL
 | ||||
|     int predictor_transform[16][4] = { | ||||
|         {  0,  0,  0,  0}, | ||||
|         {  0,  0,  0,128},        // PL
 | ||||
|         {  0,  0,128,  0},        // PUR
 | ||||
|         {  0,  0, 53, 75},        // PUR|PL
 | ||||
|         {  0,128,  0,  0},        // PU
 | ||||
|         {  0, 64,  0, 64},        // PU|PL
 | ||||
|         {  0,128,  0,  0},        // PU|PUR
 | ||||
|         {  0,  0, 53, 75},        // PU|PUR|PL
 | ||||
|         {128,  0,  0,  0},        // PUL
 | ||||
|         {  0,  0,  0,128},        // PUL|PL
 | ||||
|         { 64,  0, 64,  0},        // PUL|PUR
 | ||||
|         {  0,  0, 53, 75},        // PUL|PUR|PL
 | ||||
|         {  0,128,  0,  0},        // PUL|PU
 | ||||
|        {-104,116,  0,116},        // PUL|PU|PL
 | ||||
|         { 24, 80, 24,  0},        // PUL|PU|PUR
 | ||||
|        {-104,116,  0,116}         // PUL|PU|PUR|PL
 | ||||
|     }; | ||||
| 
 | ||||
|     /* This table shows which types of blocks can use other blocks for
 | ||||
| @ -1445,32 +1440,32 @@ static void reverse_dc_prediction(Vp3DecodeContext *s, | ||||
| 
 | ||||
|                 current_frame_type = | ||||
|                     compatible_frame[s->all_fragments[i].coding_method]; | ||||
|                 debug_dc_pred(" frag %d: group %d, orig DC = %d, ", | ||||
|                     i, -1, DC_COEFF(i)); | ||||
|                 debug_dc_pred(" frag %d: orig DC = %d, ", | ||||
|                     i, DC_COEFF(i)); | ||||
| 
 | ||||
|                 transform= 0; | ||||
|                 if(x){ | ||||
|                     l= i-1; | ||||
|                     vl = DC_COEFF(l); | ||||
|                     fl = FRAME_CODED(l) && COMPATIBLE_FRAME(l); | ||||
|                     transform |= fl*PL; | ||||
|                     if(FRAME_CODED(l) && COMPATIBLE_FRAME(l)) | ||||
|                         transform |= PL; | ||||
|                 } | ||||
|                 if(y){ | ||||
|                     u= i-fragment_width; | ||||
|                     vu = DC_COEFF(u); | ||||
|                     fu = FRAME_CODED(u) && COMPATIBLE_FRAME(u); | ||||
|                     transform |= fu*PU; | ||||
|                     if(FRAME_CODED(u) && COMPATIBLE_FRAME(u)) | ||||
|                         transform |= PU; | ||||
|                     if(x){ | ||||
|                         ul= i-fragment_width-1; | ||||
|                         vul = DC_COEFF(ul); | ||||
|                         ful = FRAME_CODED(ul) && COMPATIBLE_FRAME(ul); | ||||
|                         transform |= ful*PUL; | ||||
|                         if(FRAME_CODED(ul) && COMPATIBLE_FRAME(ul)) | ||||
|                             transform |= PUL; | ||||
|                     } | ||||
|                     if(x + 1 < fragment_width){ | ||||
|                         ur= i-fragment_width+1; | ||||
|                         vur = DC_COEFF(ur); | ||||
|                         fur = FRAME_CODED(ur) && COMPATIBLE_FRAME(ur); | ||||
|                         transform |= fur*PUR; | ||||
|                         if(FRAME_CODED(ur) && COMPATIBLE_FRAME(ur)) | ||||
|                             transform |= PUR; | ||||
|                     } | ||||
|                 } | ||||
| 
 | ||||
| @ -1493,13 +1488,8 @@ static void reverse_dc_prediction(Vp3DecodeContext *s, | ||||
|                         (predictor_transform[transform][2] * vur) + | ||||
|                         (predictor_transform[transform][3] * vl); | ||||
| 
 | ||||
|                     /* if there is a shift value in the transform, add
 | ||||
|                      * the sign bit before the shift */ | ||||
|                     if (predictor_transform[transform][5] != 0) { | ||||
|                         predicted_dc += ((predicted_dc >> 15) & | ||||
|                             predictor_transform[transform][4]); | ||||
|                         predicted_dc >>= predictor_transform[transform][5]; | ||||
|                     } | ||||
|                     predicted_dc += (predicted_dc >> 15) & 127; | ||||
|                     predicted_dc >>= 7; | ||||
| 
 | ||||
|                     /* check for outranging on the [ul u l] and
 | ||||
|                      * [ul u ur l] predictors */ | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user