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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 467 - (view) (download)

1 : edgomez 467 /*****************************************************************************
2 :     *
3 :     * XVID MPEG-4 VIDEO CODEC
4 :     * - cbp function (zero block flags) -
5 :     *
6 :     * Copyright (C) 2001-2002 - Peter Ross <pross@cs.rmit.edu.au>
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.6 2002-09-10 22:29:18 edgomez Exp $
32 :     *
33 :     ****************************************************************************/
34 :    
35 : Isibaar 3 #include "../portab.h"
36 :     #include "cbp.h"
37 :    
38 : edgomez 467 /*****************************************************************************
39 :     * Global function pointer
40 :     ****************************************************************************/
41 :    
42 : Isibaar 3 cbpFuncPtr calc_cbp;
43 :    
44 : edgomez 467 /*****************************************************************************
45 :     * Functions
46 :     ****************************************************************************/
47 :    
48 : edgomez 46 /*
49 :     * Returns a field of bits that indicates non zero ac blocks
50 :     * for this macro block
51 :     */
52 : edgomez 195 uint32_t
53 :     calc_cbp_c(const int16_t codes[6 * 64])
54 : Isibaar 3 {
55 : edgomez 46 uint32_t i, j;
56 :     uint32_t cbp = 0;
57 : Isibaar 3
58 : edgomez 195 for (i = 0; i < 6; i++) {
59 :     for (j = 1; j < 61; j += 4) {
60 :     if (codes[i * 64 + j] | codes[i * 64 + j + 1] |
61 :     codes[i * 64 + j + 2] | codes[i * 64 + j + 3]) {
62 : Isibaar 3 cbp |= 1 << (5 - i);
63 :     break;
64 :     }
65 :     }
66 : edgomez 46
67 : edgomez 195 if (codes[i * 64 + j] | codes[i * 64 + j + 1] | codes[i * 64 + j + 2])
68 : edgomez 46 cbp |= 1 << (5 - i);
69 :    
70 :     }
71 :    
72 :     return cbp;
73 :    
74 : Isibaar 3 }

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