[cvs] / xvidcore / src / utils / mbtransquant.c Repository:
ViewVC logotype

Diff of /xvidcore/src/utils/mbtransquant.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.8, Fri Aug 9 19:58:41 2002 UTC revision 1.11, Wed Sep 4 06:24:37 2002 UTC
# Line 42  Line 42 
42    *                                                                            *    *                                                                            *
43    *  Revision history:                                                         *    *  Revision history:                                                         *
44    *                                                                            *    *                                                                            *
45    *  29.03.2002 interlacing speedup - used transfer strides instead of    *  29.03.2002 interlacing speedup - used transfer strides instead of             *
46    *             manual field-to-frame conversion    *             manual field-to-frame conversion                                                           *
47    *  26.03.2002 interlacing support - moved transfers outside loops    *  26.03.2002 interlacing support - moved transfers outside loops                        *
48    *  22.12.2001 get_dc_scaler() moved to common.h    *  22.12.2001 get_dc_scaler() moved to common.h                                                          *
49    *  19.11.2001 introduced coefficient thresholding (Isibaar)                  *    *  19.11.2001 introduced coefficient thresholding (Isibaar)                  *
50    *  17.11.2001 initial version                                                *    *  17.11.2001 initial version                                                *
51    *                                                                            *    *                                                                            *
# Line 68  Line 68 
68  #define MIN(X, Y) ((X)<(Y)?(X):(Y))  #define MIN(X, Y) ((X)<(Y)?(X):(Y))
69  #define MAX(X, Y) ((X)>(Y)?(X):(Y))  #define MAX(X, Y) ((X)>(Y)?(X):(Y))
70    
71  #define TOOSMALL_LIMIT 1                /* skip blocks having a coefficient sum below this value */  #define TOOSMALL_LIMIT 3                /* skip blocks having a coefficient sum below this value */
72    
73  /* this isnt pretty, but its better than 20 ifdefs */  /* this isnt pretty, but its better than 20 ifdefs */
74    
# Line 105  Line 105 
105    
106          start_timer();          start_timer();
107          pMB->field_dct = 0;          pMB->field_dct = 0;
108          if ((frame->global_flags & XVID_INTERLACING)) {          if ((frame->global_flags & XVID_INTERLACING) &&
109                    (x_pos>0) && (x_pos<pParam->mb_width-1) &&
110                    (y_pos>0) && (y_pos<pParam->mb_height-1)) {
111                  pMB->field_dct = MBDecideFieldDCT(data);                  pMB->field_dct = MBDecideFieldDCT(data);
112          }          }
113          stop_interlacing_timer();          stop_interlacing_timer();
# Line 183  Line 185 
185    
186          start_timer();          start_timer();
187          pMB->field_dct = 0;          pMB->field_dct = 0;
188          if ((frame->global_flags & XVID_INTERLACING)) {          if ((frame->global_flags & XVID_INTERLACING) &&
189                    (x_pos>0) && (x_pos<pParam->mb_width-1) &&
190                    (y_pos>0) && (y_pos<pParam->mb_height-1)) {
191                  pMB->field_dct = MBDecideFieldDCT(data);                  pMB->field_dct = MBDecideFieldDCT(data);
192          }          }
193          stop_interlacing_timer();          stop_interlacing_timer();
# Line 207  Line 211 
211                          stop_quant_timer();                          stop_quant_timer();
212                  }                  }
213    
214                  if (sum >= TOOSMALL_LIMIT) {    // skip block ?                  if ((sum >= TOOSMALL_LIMIT) || (qcoeff[i*64] != 0) ||
215                            (qcoeff[i*64+1] != 0) || (qcoeff[i*64+8] != 0)) {
216    
217                          if (pParam->m_quant_type == H263_QUANT) {                          if (pParam->m_quant_type == H263_QUANT) {
218                                  start_timer();                                  start_timer();
# Line 295  Line 300 
300  MBTransQuantInterBVOP(const MBParam * pParam,  MBTransQuantInterBVOP(const MBParam * pParam,
301                                    FRAMEINFO * frame,                                    FRAMEINFO * frame,
302                                    MACROBLOCK * pMB,                                    MACROBLOCK * pMB,
                                   const uint32_t x_pos,  
                                   const uint32_t y_pos,  
303                                    int16_t data[6 * 64],                                    int16_t data[6 * 64],
304                                    int16_t qcoeff[6 * 64])                                    int16_t qcoeff[6 * 64])
305  {  {

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.11

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4