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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.7 - (view) (download)

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

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