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

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

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

revision 46, Thu Mar 21 15:25:32 2002 UTC revision 468, Tue Sep 10 22:30:18 2002 UTC
# Line 1  Line 1 
1    /*****************************************************************************
2     *
3     *  XVID MPEG-4 VIDEO CODEC
4     *  - cbp function (zero block flags) -
5     *
6     *  Copyright (C) 2001-2002 - Edouard Gomez <ed.gomez@wanadoo.fr>
7     *
8     *  This program is an implementation of a part of one or more MPEG-4
9     *  Video tools as specified in ISO/IEC 14496-2 standard.  Those intending
10     *  to use this software module in hardware or software products are
11     *  advised that its use may infringe existing patents or copyrights, and
12     *  any such use would be at such party's own risk.  The original
13     *  developer of this software module and his/her company, and subsequent
14     *  editors and their companies, will have no liability for use of this
15     *  software or modifications or derivatives thereof.
16     *
17     *  This program is free software ; you can redistribute it and/or modify
18     *  it under the terms of the GNU General Public License as published by
19     *  the Free Software Foundation ; either version 2 of the License, or
20     *  (at your option) any later version.
21     *
22     *  This program is distributed in the hope that it will be useful,
23     *  but WITHOUT ANY WARRANTY ; without even the implied warranty of
24     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25     *  GNU General Public License for more details.
26     *
27     *  You should have received a copy of the GNU General Public License
28     *  along with this program ; if not, write to the Free Software
29     *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
30     *
31     * $Id: cbp.c,v 1.7 2002-09-10 22:30:18 edgomez Exp $
32     *
33     ****************************************************************************/
34    
35  #include "../portab.h"  #include "../portab.h"
36  #include "cbp.h"  #include "cbp.h"
37    
38    /*****************************************************************************
39     * Global function pointer
40     ****************************************************************************/
41    
42  cbpFuncPtr calc_cbp;  cbpFuncPtr calc_cbp;
43    
44    /*****************************************************************************
45     * Functions
46     ****************************************************************************/
47    
48  /*  /*
49   * Returns a field of bits that indicates non zero ac blocks   * Returns a field of bits that indicates non zero ac blocks
50   * for this macro block   * for this macro block
51   */   */
52  uint32_t calc_cbp_c(const int16_t codes[6][64])  uint32_t
53    calc_cbp_c(const int16_t codes[6 * 64])
54  {  {
55          uint32_t i, j;          uint32_t i, j;
56          uint32_t cbp = 0;          uint32_t cbp = 0;
57    
58          for (i = 0; i < 6; i++) {          for (i = 0; i < 6; i++) {
59                  for (j = 1; j < 61; j+=4) {                  for (j = 1; j < 61; j+=4) {
60                          if (codes[i][j]  |codes[i][j+1]|                          if (codes[i * 64 + j] | codes[i * 64 + j + 1] |
61                              codes[i][j+2]|codes[i][j+3]) {                                  codes[i * 64 + j + 2] | codes[i * 64 + j + 3]) {
62                                  cbp |= 1 << (5 - i);                                  cbp |= 1 << (5 - i);
63                                  break;                                  break;
64                          }                          }
65                  }                  }
66    
67                  if(codes[i][j]|codes[i][j+1]|codes[i][j+2])                  if (codes[i * 64 + j] | codes[i * 64 + j + 1] | codes[i * 64 + j + 2])
68                          cbp |= 1 << (5 - i);                          cbp |= 1 << (5 - i);
69    
70          }          }

Legend:
Removed from v.46  
changed lines
  Added in v.468

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