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

Diff of /trunk/xvidcore/src/encoder.c

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

revision 605, Sat Oct 19 12:20:33 2002 UTC revision 677, Tue Nov 26 23:44:11 2002 UTC
# Line 7  Line 7 
7   *               2002 Peter Ross <pross@xvid.org>   *               2002 Peter Ross <pross@xvid.org>
8   *               2002 Daniel Smith <danielsmith@astroboymail.com>   *               2002 Daniel Smith <danielsmith@astroboymail.com>
9   *   *
10   *  This program is an implementation of a part of one or more MPEG-4   *  This file is part of XviD, a free MPEG-4 video encoder/decoder
  *  Video tools as specified in ISO/IEC 14496-2 standard.  Those intending  
  *  to use this software module in hardware or software products are  
  *  advised that its use may infringe existing patents or copyrights, and  
  *  any such use would be at such party's own risk.  The original  
  *  developer of this software module and his/her company, and subsequent  
  *  editors and their companies, will have no liability for use of this  
  *  software or modifications or derivatives thereof.  
11   *   *
12   *  This program is free software; you can redistribute it and/or modify   *  XviD is free software; you can redistribute it and/or modify it
13   *  it under the terms of the GNU General Public License as published by   *  under the terms of the GNU General Public License as published by
14   *  the Free Software Foundation; either version 2 of the License, or   *  the Free Software Foundation; either version 2 of the License, or
15   *  (at your option) any later version.   *  (at your option) any later version.
16   *   *
# Line 30  Line 23 
23   *  along with this program; if not, write to the Free Software   *  along with this program; if not, write to the Free Software
24   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
25   *   *
26   * $Id: encoder.c,v 1.86 2002-10-19 12:20:33 edgomez Exp $   *  Under section 8 of the GNU General Public License, the copyright
27     *  holders of XVID explicitly forbid distribution in the following
28     *  countries:
29     *
30     *    - Japan
31     *    - United States of America
32     *
33     *  Linking XviD statically or dynamically with other modules is making a
34     *  combined work based on XviD.  Thus, the terms and conditions of the
35     *  GNU General Public License cover the whole combination.
36     *
37     *  As a special exception, the copyright holders of XviD give you
38     *  permission to link XviD with independent modules that communicate with
39     *  XviD solely through the VFW1.1 and DShow interfaces, regardless of the
40     *  license terms of these independent modules, and to copy and distribute
41     *  the resulting combined work under terms of your choice, provided that
42     *  every copy of the combined work is accompanied by a complete copy of
43     *  the source code of XviD (the version of XviD used to produce the
44     *  combined work), being distributed under the terms of the GNU General
45     *  Public License plus this exception.  An independent module is a module
46     *  which is not derived from or based on XviD.
47     *
48     *  Note that people who make modified versions of XviD are not obligated
49     *  to grant this special exception for their modified versions; it is
50     *  their choice whether to do so.  The GNU General Public License gives
51     *  permission to release a modified version without this exception; this
52     *  exception also makes it possible to release a modified version which
53     *  carries forward this exception.
54     *
55     * $Id: encoder.c,v 1.88 2002-11-26 23:44:09 edgomez Exp $
56   *   *
57   ****************************************************************************/   ****************************************************************************/
58    
# Line 681  Line 703 
703                                          pMB->pmvs[vec].x = pMB->mvs[vec].x - pred.x;                                          pMB->pmvs[vec].x = pMB->mvs[vec].x - pred.x;
704                                          pMB->pmvs[vec].y = pMB->mvs[vec].y - pred.y;                                          pMB->pmvs[vec].y = pMB->mvs[vec].y - pred.y;
705                                  }                                  }
706                          } else                          // intra / stuffing / not_coded                          } else                          /* intra / stuffing / not_coded */
707                          {                          {
708                                  for (vec = 0; vec < 4; ++vec) {                                  for (vec = 0; vec < 4; ++vec) {
709                                          pMB->mvs[vec].x = pMB->mvs[vec].y = 0;                                          pMB->mvs[vec].x = pMB->mvs[vec].y = 0;
# Line 854  Line 876 
876                  HintedMEGet(pEnc, 1);                  HintedMEGet(pEnc, 1);
877          }          }
878    
879          return 1;                                       // intra          return 1;                                       /* intra */
880  }  }
881    
882    
# Line 1036  Line 1058 
1058          iSearchRange = 1 << (3 + pEnc->mbParam.m_fcode);          iSearchRange = 1 << (3 + pEnc->mbParam.m_fcode);
1059    
1060          if ((fSigma > iSearchRange / 3)          if ((fSigma > iSearchRange / 3)
1061                  && (pEnc->mbParam.m_fcode <= 3))        // maximum search range 128                  && (pEnc->mbParam.m_fcode <= 3))        /* maximum search range 128 */
1062          {          {
1063                  pEnc->mbParam.m_fcode++;                  pEnc->mbParam.m_fcode++;
1064                  iSearchRange *= 2;                  iSearchRange *= 2;
1065          } else if ((fSigma < iSearchRange / 6)          } else if ((fSigma < iSearchRange / 6)
1066                             && (pEnc->sStat.fMvPrevSigma >= 0)                             && (pEnc->sStat.fMvPrevSigma >= 0)
1067                             && (pEnc->sStat.fMvPrevSigma < iSearchRange / 6)                             && (pEnc->sStat.fMvPrevSigma < iSearchRange / 6)
1068                             && (pEnc->mbParam.m_fcode >= 2))     // minimum search range 16                             && (pEnc->mbParam.m_fcode >= 2))     /* minimum search range 16 */
1069          {          {
1070                  pEnc->mbParam.m_fcode--;                  pEnc->mbParam.m_fcode--;
1071                  iSearchRange /= 2;                  iSearchRange /= 2;
# Line 1053  Line 1075 
1075    
1076          *pBits = BitstreamPos(bs) - *pBits;          *pBits = BitstreamPos(bs) - *pBits;
1077    
1078          return 0;                                       // inter          return 0;                                       /* inter */
1079    
1080  }  }

Legend:
Removed from v.605  
changed lines
  Added in v.677

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