[svn] / trunk / xvidcore / src / bitstream / mbcoding.c Repository:
ViewVC logotype

Diff of /trunk/xvidcore/src/bitstream/mbcoding.c

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

revision 28, Fri Mar 15 09:20:03 2002 UTC revision 69, Tue Mar 26 11:16:08 2002 UTC
# Line 56  Line 56 
56                          char *max_run_ptr = max_run[last + (intra << 1)];                          char *max_run_ptr = max_run[last + (intra << 1)];
57    
58                          for(l = 0; l < 64; l++) { // run                          for(l = 0; l < 64; l++) { // run
59                                  int32_t level = k, run = l;                                  int32_t level = k;
60                                    uint32_t run = l;
61    
62                                  if(abs(level) <= max_level_ptr[run] && run <= max_run_ptr[abs(level)]) {                                  if(abs(level) <= max_level_ptr[run] && run <= max_run_ptr[abs(level)]) {
63    
# Line 100  Line 101 
101                                                          level += max_level_ptr[run];                                                          level += max_level_ptr[run];
102                                                  else                                                  else
103                                                          level -= max_level_ptr[run];                                                          level -= max_level_ptr[run];
104                                                  DEBUG1("1) run:", run);  
105                                                  run -= max_run_ptr[abs(level)] + 1;                                                  run -= max_run_ptr[abs(level)] + 1;
                                                 DEBUG1("2) run:", run);  
106    
107                                                  if(abs(level) <= max_level_ptr[run] &&                                                  if(abs(level) <= max_level_ptr[run] &&
108                                                          run <= max_run_ptr[abs(level)]) {                                                          run <= max_run_ptr[abs(level)]) {
# Line 127  Line 127 
127                                                          else                                                          else
128                                                                  run++;                                                                  run++;
129    
                                                         DEBUG1("3) run:", run);  
   
130                                                          vlc[intra]->code = (uint32_t) ((0x1e + last) << 20) |                                                          vlc[intra]->code = (uint32_t) ((0x1e + last) << 20) |
131                                                                                  (l << 14) | (1 << 13) | ((k & 0xfff) << 1) | 1;                                                                                  (l << 14) | (1 << 13) | ((k & 0xfff) << 1) | 1;
132    
# Line 293  Line 291 
291      if(pMB->mode == MODE_INTRA_Q)      if(pMB->mode == MODE_INTRA_Q)
292                  BitstreamPutBits(bs, pMB->dquant, 2);                  BitstreamPutBits(bs, pMB->dquant, 2);
293    
294            // write interlacing
295            if (pParam->global_flags & XVID_INTERLACING)
296            {
297                    BitstreamPutBit(bs, pMB->field_dct);
298            }
299    
300          // code block coeffs          // code block coeffs
301          for(i = 0; i < 6; i++)          for(i = 0; i < 6; i++)
302          {          {
# Line 335  Line 339 
339      if(pMB->mode == MODE_INTER_Q)      if(pMB->mode == MODE_INTER_Q)
340                  BitstreamPutBits(bs, pMB->dquant, 2);                  BitstreamPutBits(bs, pMB->dquant, 2);
341    
342            // interlacing
343            if (pParam->global_flags & XVID_INTERLACING)
344            {
345                    BitstreamPutBit(bs, pMB->field_dct);
346                    DEBUG1("codep: field_dct: ", pMB->field_dct);
347    
348                    // if inter block, write field ME flag
349                    if (pMB->mode == MODE_INTER || pMB->mode == MODE_INTER_Q)
350                    {
351                            BitstreamPutBit(bs, pMB->field_pred);
352                            DEBUG1("codep: field_pred: ", pMB->field_pred);
353    
354                            // write field prediction references
355                            if (pMB->field_pred)
356                            {
357                                    BitstreamPutBit(bs, pMB->field_for_top);
358                                    BitstreamPutBit(bs, pMB->field_for_bot);
359                            }
360                    }
361            }
362    
363          // code motion vector(s)          // code motion vector(s)
364          for(i = 0; i < (pMB->mode == MODE_INTER4V ? 4 : 1); i++)          for(i = 0; i < (pMB->mode == MODE_INTER4V ? 4 : 1); i++)
365          {          {

Legend:
Removed from v.28  
changed lines
  Added in v.69

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