[svn] / branches / dev-api-4 / xvidcore / src / utils / mbtransquant.c Repository:
ViewVC logotype

Diff of /branches/dev-api-4/xvidcore/src/utils/mbtransquant.c

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

revision 926, Sun Mar 16 12:05:09 2003 UTC revision 949, Wed Mar 26 14:56:49 2003 UTC
# Line 83  Line 83 
83    
84          uint32_t stride = pParam->edged_width;          uint32_t stride = pParam->edged_width;
85          uint32_t stride2 = stride / 2;          uint32_t stride2 = stride / 2;
86          uint32_t next_block = stride * ((frame->vop_flags & XVID_REDUCED)?16:8);          uint32_t next_block = stride * ((frame->vop_flags & XVID_VOP_REDUCED)?16:8);
87          uint32_t i;          uint32_t i;
88          const uint32_t iQuant = pMB->quant;          const uint32_t iQuant = pMB->quant;
89          uint8_t *pY_Cur, *pU_Cur, *pV_Cur;          uint8_t *pY_Cur, *pU_Cur, *pV_Cur;
90          IMAGE *pCurrent = &frame->image;          IMAGE *pCurrent = &frame->image;
91    
92          start_timer();          start_timer();
93          if ((frame->vop_flags & XVID_REDUCED))          if ((frame->vop_flags & XVID_VOP_REDUCED))
94          {          {
95                  pY_Cur = pCurrent->y + (y_pos << 5) * stride + (x_pos << 5);                  pY_Cur = pCurrent->y + (y_pos << 5) * stride + (x_pos << 5);
96                  pU_Cur = pCurrent->u + (y_pos << 4) * stride2 + (x_pos << 4);                  pU_Cur = pCurrent->u + (y_pos << 4) * stride2 + (x_pos << 4);
# Line 119  Line 119 
119          /* XXX: rrv+interlacing is buggy */          /* XXX: rrv+interlacing is buggy */
120          start_timer();          start_timer();
121          pMB->field_dct = 0;          pMB->field_dct = 0;
122          if ((frame->vol_flags & XVID_INTERLACING) &&          if ((frame->vol_flags & XVID_VOL_INTERLACING) &&
123                  (x_pos>0) && (x_pos<pParam->mb_width-1) &&                  (x_pos>0) && (x_pos<pParam->mb_width-1) &&
124                  (y_pos>0) && (y_pos<pParam->mb_height-1)) {                  (y_pos>0) && (y_pos<pParam->mb_height-1)) {
125                  pMB->field_dct = MBDecideFieldDCT(data);                  pMB->field_dct = MBDecideFieldDCT(data);
# Line 133  Line 133 
133                  fdct(&data[i * 64]);                  fdct(&data[i * 64]);
134                  stop_dct_timer();                  stop_dct_timer();
135    
136                  if (!(pParam->vol_flags & XVID_MPEGQUANT)) {                  if (!(pParam->vol_flags & XVID_VOL_MPEGQUANT)) {
137                          start_timer();                          start_timer();
138                          quant_intra(&qcoeff[i * 64], &data[i * 64], iQuant, iDcScaler);                          quant_intra(&qcoeff[i * 64], &data[i * 64], iQuant, iDcScaler);
139                          stop_quant_timer();                          stop_quant_timer();
# Line 146  Line 146 
146                  /* speedup: dont decode when encoding only ivops */                  /* speedup: dont decode when encoding only ivops */
147                  if (pParam->iMaxKeyInterval != 1 || pParam->max_bframes > 0)                  if (pParam->iMaxKeyInterval != 1 || pParam->max_bframes > 0)
148                  {                  {
149                          if (!(pParam->vol_flags & XVID_MPEGQUANT)) {                          if (!(pParam->vol_flags & XVID_VOL_MPEGQUANT)) {
150                                  start_timer();                                  start_timer();
151                                  dequant_intra(&data[i * 64], &qcoeff[i * 64], iQuant, iDcScaler);                                  dequant_intra(&data[i * 64], &qcoeff[i * 64], iQuant, iDcScaler);
152                                  stop_iquant_timer();                                  stop_iquant_timer();
# Line 172  Line 172 
172                  }                  }
173    
174                  start_timer();                  start_timer();
175                  if ((frame->vop_flags & XVID_REDUCED))                  if ((frame->vop_flags & XVID_VOP_REDUCED))
176                  {                  {
177                          copy_upsampled_8x8_16to8(pY_Cur, &data[0 * 64], stride);                          copy_upsampled_8x8_16to8(pY_Cur, &data[0 * 64], stride);
178                          copy_upsampled_8x8_16to8(pY_Cur + 16, &data[1 * 64], stride);                          copy_upsampled_8x8_16to8(pY_Cur + 16, &data[1 * 64], stride);
# Line 207  Line 207 
207    
208          uint32_t stride = pParam->edged_width;          uint32_t stride = pParam->edged_width;
209          uint32_t stride2 = stride / 2;          uint32_t stride2 = stride / 2;
210          uint32_t next_block = stride * ((frame->vop_flags & XVID_REDUCED)?16:8);          uint32_t next_block = stride * ((frame->vop_flags & XVID_VOP_REDUCED)?16:8);
211          uint32_t i;          uint32_t i;
212          const uint32_t iQuant = pMB->quant;          const uint32_t iQuant = pMB->quant;
213          uint8_t *pY_Cur, *pU_Cur, *pV_Cur;          uint8_t *pY_Cur, *pU_Cur, *pV_Cur;
# Line 215  Line 215 
215          uint32_t sum;          uint32_t sum;
216          IMAGE *pCurrent = &frame->image;          IMAGE *pCurrent = &frame->image;
217    
218          if ((frame->vop_flags & XVID_REDUCED))          if ((frame->vop_flags & XVID_VOP_REDUCED))
219          {          {
220                  pY_Cur = pCurrent->y + (y_pos << 5) * stride + (x_pos << 5);                  pY_Cur = pCurrent->y + (y_pos << 5) * stride + (x_pos << 5);
221                  pU_Cur = pCurrent->u + (y_pos << 4) * stride2 + (x_pos << 4);                  pU_Cur = pCurrent->u + (y_pos << 4) * stride2 + (x_pos << 4);
# Line 228  Line 228 
228    
229          start_timer();          start_timer();
230          pMB->field_dct = 0;          pMB->field_dct = 0;
231          if ((frame->vol_flags & XVID_INTERLACING) &&          if ((frame->vol_flags & XVID_VOL_INTERLACING) &&
232                  (x_pos>0) && (x_pos<pParam->mb_width-1) &&                  (x_pos>0) && (x_pos<pParam->mb_width-1) &&
233                  (y_pos>0) && (y_pos<pParam->mb_height-1)) {                  (y_pos>0) && (y_pos<pParam->mb_height-1)) {
234                  pMB->field_dct = MBDecideFieldDCT(data);                  pMB->field_dct = MBDecideFieldDCT(data);
# Line 246  Line 246 
246                  fdct(&data[i * 64]);                  fdct(&data[i * 64]);
247                  stop_dct_timer();                  stop_dct_timer();
248    
249                  if (!(pParam->vol_flags & XVID_MPEGQUANT)) {                  if (!(pParam->vol_flags & XVID_VOL_MPEGQUANT)) {
250                          start_timer();                          start_timer();
251                          sum = quant_inter(&qcoeff[i * 64], &data[i * 64], iQuant);                          sum = quant_inter(&qcoeff[i * 64], &data[i * 64], iQuant);
252                          stop_quant_timer();                          stop_quant_timer();
# Line 259  Line 259 
259                  if ((sum >= TOOSMALL_LIMIT + increase_limit) || (qcoeff[i*64] != 0) ||                  if ((sum >= TOOSMALL_LIMIT + increase_limit) || (qcoeff[i*64] != 0) ||
260                          (qcoeff[i*64+1] != 0) || (qcoeff[i*64+8] != 0)) {                          (qcoeff[i*64+1] != 0) || (qcoeff[i*64+8] != 0)) {
261    
262                          if (!(pParam->vol_flags & XVID_MPEGQUANT)) {                          if (!(pParam->vol_flags & XVID_VOL_MPEGQUANT)) {
263                                  start_timer();                                  start_timer();
264                                  dequant_inter(&data[i * 64], &qcoeff[i * 64], iQuant);                                  dequant_inter(&data[i * 64], &qcoeff[i * 64], iQuant);
265                                  stop_iquant_timer();                                  stop_iquant_timer();
# Line 283  Line 283 
283          }          }
284    
285          start_timer();          start_timer();
286          if ((frame->vop_flags & XVID_REDUCED))          if ((frame->vop_flags & XVID_VOP_REDUCED))
287          {          {
288                  if (cbp & 32)                  if (cbp & 32)
289                          add_upsampled_8x8_16to8(pY_Cur, &data[0 * 64], stride);                          add_upsampled_8x8_16to8(pY_Cur, &data[0 * 64], stride);
# Line 402  Line 402 
402    
403          start_timer();          start_timer();
404          pMB->field_dct = 0;          pMB->field_dct = 0;
405          if ((frame->vol_flags & XVID_INTERLACING)) {          if ((frame->vol_flags & XVID_VOL_INTERLACING)) {
406                  pMB->field_dct = MBDecideFieldDCT(data);                  pMB->field_dct = MBDecideFieldDCT(data);
407          }          }
408          stop_interlacing_timer();          stop_interlacing_timer();
# Line 426  Line 426 
426    
427          start_timer();          start_timer();
428          pMB->field_dct = 0;          pMB->field_dct = 0;
429          if ((frame->vol_flags & XVID_INTERLACING)) {          if ((frame->vol_flags & XVID_VOL_INTERLACING)) {
430                  pMB->field_dct = MBDecideFieldDCT(data);                  pMB->field_dct = MBDecideFieldDCT(data);
431          }          }
432          stop_interlacing_timer();          stop_interlacing_timer();
# Line 434  Line 434 
434          for (i = 0; i < 6; i++) {          for (i = 0; i < 6; i++) {
435                  uint32_t iDcScaler = get_dc_scaler(iQuant, i < 4);                  uint32_t iDcScaler = get_dc_scaler(iQuant, i < 4);
436    
437                  if (!(pParam->vol_flags & XVID_MPEGQUANT)) {                  if (!(pParam->vol_flags & XVID_VOL_MPEGQUANT)) {
438                          start_timer();                          start_timer();
439                          quant_intra(&qcoeff[i * 64], &data[i * 64], iQuant, iDcScaler);                          quant_intra(&qcoeff[i * 64], &data[i * 64], iQuant, iDcScaler);
440                          stop_quant_timer();                          stop_quant_timer();
# Line 466  Line 466 
466    
467          start_timer();          start_timer();
468          pMB->field_dct = 0;          pMB->field_dct = 0;
469          if ((frame->vol_flags & XVID_INTERLACING)) {          if ((frame->vol_flags & XVID_VOL_INTERLACING)) {
470                  pMB->field_dct = MBDecideFieldDCT(data);                  pMB->field_dct = MBDecideFieldDCT(data);
471          }          }
472          stop_interlacing_timer();          stop_interlacing_timer();
# Line 474  Line 474 
474          for (i = 0; i < 6; i++) {          for (i = 0; i < 6; i++) {
475                  uint32_t iDcScaler = get_dc_scaler(iQuant, i < 4);                  uint32_t iDcScaler = get_dc_scaler(iQuant, i < 4);
476    
477                  if (!(pParam->vol_flags & XVID_MPEGQUANT)) {                  if (!(pParam->vol_flags & XVID_VOL_MPEGQUANT)) {
478                          start_timer();                          start_timer();
479                          quant_intra(&qcoeff[i * 64], &data[i * 64], iQuant, iDcScaler);                          quant_intra(&qcoeff[i * 64], &data[i * 64], iQuant, iDcScaler);
480                          stop_quant_timer();                          stop_quant_timer();
# Line 497  Line 497 
497          for (i = 0; i < 6; i++) {          for (i = 0; i < 6; i++) {
498                  uint32_t iDcScaler = get_dc_scaler(iQuant, i < 4);                  uint32_t iDcScaler = get_dc_scaler(iQuant, i < 4);
499    
500                  if (!(pParam->vol_flags & XVID_MPEGQUANT)) {                  if (!(pParam->vol_flags & XVID_VOL_MPEGQUANT)) {
501                          start_timer();                          start_timer();
502                          dequant_intra(&data[i * 64], &qcoeff[i * 64], iQuant, iDcScaler);                          dequant_intra(&data[i * 64], &qcoeff[i * 64], iQuant, iDcScaler);
503                          stop_iquant_timer();                          stop_iquant_timer();
# Line 522  Line 522 
522    
523          for (i = 0; i < 6; i++) {          for (i = 0; i < 6; i++) {
524    
525                  if (!(pParam->vol_flags & XVID_MPEGQUANT)) {                  if (!(pParam->vol_flags & XVID_VOL_MPEGQUANT)) {
526                          start_timer();                          start_timer();
527                          sum = quant_inter(&qcoeff[i * 64], &data[i * 64], iQuant);                          sum = quant_inter(&qcoeff[i * 64], &data[i * 64], iQuant);
528                          stop_quant_timer();                          stop_quant_timer();
# Line 551  Line 551 
551          for (i = 0; i < 6; i++) {          for (i = 0; i < 6; i++) {
552                  if (cbp & (1 << (5 - i)))                  if (cbp & (1 << (5 - i)))
553                  {                  {
554                          if (!(pParam->vol_flags & XVID_MPEGQUANT)) {                          if (!(pParam->vol_flags & XVID_VOL_MPEGQUANT)) {
555                                  start_timer();                                  start_timer();
556                                  dequant_inter(&data[i * 64], &qcoeff[i * 64], iQuant);                                  dequant_inter(&data[i * 64], &qcoeff[i * 64], iQuant);
557                                  stop_iquant_timer();                                  stop_iquant_timer();

Legend:
Removed from v.926  
changed lines
  Added in v.949

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