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

Diff of /branches/dev-api-4/xvidcore/src/quant/quant_matrix.c

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

revision 440, Sat Sep 7 10:26:10 2002 UTC revision 441, Sat Sep 7 11:14:41 2002 UTC
# Line 1  Line 1 
1    /*****************************************************************************
2     *
3     *  XVID MPEG-4 VIDEO CODEC
4     *  - Custom matrix quantization functions -
5     *
6     *  Copyright(C) 2002 Michael Militzer
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: quant_matrix.c,v 1.6 2002-09-07 11:14:41 edgomez Exp $
32     *
33     ****************************************************************************/
34    
35  #include "quant_matrix.h"  #include "quant_matrix.h"
36    
37  #define FIX(X) (1 << 16) / (X) + 1  #define FIX(X) (1 << 16) / (X) + 1
38    
39    /*****************************************************************************
40     * Local data
41     ****************************************************************************/
42    
43    /* ToDo : remove all this local to make this module thread safe */
44  uint8_t custom_intra_matrix = 0;  uint8_t custom_intra_matrix = 0;
45  uint8_t custom_inter_matrix = 0;  uint8_t custom_inter_matrix = 0;
46    
47  uint8_t default_intra_matrix[64] = {  static uint8_t const default_intra_matrix[64] = {
48          8, 17, 18, 19, 21, 23, 25, 27,          8, 17, 18, 19, 21, 23, 25, 27,
49          17, 18, 19, 21, 23, 25, 27, 28,          17, 18, 19, 21, 23, 25, 27, 28,
50          20, 21, 22, 23, 24, 26, 28, 30,          20, 21, 22, 23, 24, 26, 28, 30,
# Line 16  Line 55 
55          27, 28, 30, 32, 35, 38, 41, 45          27, 28, 30, 32, 35, 38, 41, 45
56  };  };
57    
58  int16_t intra_matrix[64] = {  static int16_t intra_matrix[64] = {
59          8, 17, 18, 19, 21, 23, 25, 27,          8, 17, 18, 19, 21, 23, 25, 27,
60          17, 18, 19, 21, 23, 25, 27, 28,          17, 18, 19, 21, 23, 25, 27, 28,
61          20, 21, 22, 23, 24, 26, 28, 30,          20, 21, 22, 23, 24, 26, 28, 30,
# Line 27  Line 66 
66          27, 28, 30, 32, 35, 38, 41, 45          27, 28, 30, 32, 35, 38, 41, 45
67  };  };
68    
69  int16_t intra_matrix_fix[64] = {  static int16_t intra_matrix_fix[64] = {
70          FIX(8), FIX(17), FIX(18), FIX(19), FIX(21), FIX(23), FIX(25), FIX(27),          FIX(8), FIX(17), FIX(18), FIX(19), FIX(21), FIX(23), FIX(25), FIX(27),
71          FIX(17), FIX(18), FIX(19), FIX(21), FIX(23), FIX(25), FIX(27), FIX(28),          FIX(17), FIX(18), FIX(19), FIX(21), FIX(23), FIX(25), FIX(27), FIX(28),
72          FIX(20), FIX(21), FIX(22), FIX(23), FIX(24), FIX(26), FIX(28), FIX(30),          FIX(20), FIX(21), FIX(22), FIX(23), FIX(24), FIX(26), FIX(28), FIX(30),
# Line 38  Line 77 
77          FIX(27), FIX(28), FIX(30), FIX(32), FIX(35), FIX(38), FIX(41), FIX(45)          FIX(27), FIX(28), FIX(30), FIX(32), FIX(35), FIX(38), FIX(41), FIX(45)
78  };  };
79    
80  uint8_t default_inter_matrix[64] = {  static uint8_t const default_inter_matrix[64] = {
81          16, 17, 18, 19, 20, 21, 22, 23,          16, 17, 18, 19, 20, 21, 22, 23,
82          17, 18, 19, 20, 21, 22, 23, 24,          17, 18, 19, 20, 21, 22, 23, 24,
83          18, 19, 20, 21, 22, 23, 24, 25,          18, 19, 20, 21, 22, 23, 24, 25,
# Line 49  Line 88 
88          23, 24, 25, 27, 28, 30, 31, 33          23, 24, 25, 27, 28, 30, 31, 33
89  };  };
90    
91  int16_t inter_matrix[64] = {  static int16_t inter_matrix[64] = {
92          16, 17, 18, 19, 20, 21, 22, 23,          16, 17, 18, 19, 20, 21, 22, 23,
93          17, 18, 19, 20, 21, 22, 23, 24,          17, 18, 19, 20, 21, 22, 23, 24,
94          18, 19, 20, 21, 22, 23, 24, 25,          18, 19, 20, 21, 22, 23, 24, 25,
# Line 60  Line 99 
99          23, 24, 25, 27, 28, 30, 31, 33          23, 24, 25, 27, 28, 30, 31, 33
100  };  };
101    
102  int16_t inter_matrix_fix[64] = {  static int16_t inter_matrix_fix[64] = {
103          FIX(16), FIX(17), FIX(18), FIX(19), FIX(20), FIX(21), FIX(22), FIX(23),          FIX(16), FIX(17), FIX(18), FIX(19), FIX(20), FIX(21), FIX(22), FIX(23),
104          FIX(17), FIX(18), FIX(19), FIX(20), FIX(21), FIX(22), FIX(23), FIX(24),          FIX(17), FIX(18), FIX(19), FIX(20), FIX(21), FIX(22), FIX(23), FIX(24),
105          FIX(18), FIX(19), FIX(20), FIX(21), FIX(22), FIX(23), FIX(24), FIX(25),          FIX(18), FIX(19), FIX(20), FIX(21), FIX(22), FIX(23), FIX(24), FIX(25),
# Line 71  Line 110 
110          FIX(23), FIX(24), FIX(25), FIX(27), FIX(28), FIX(30), FIX(31), FIX(33)          FIX(23), FIX(24), FIX(25), FIX(27), FIX(28), FIX(30), FIX(31), FIX(33)
111  };  };
112    
113    /*****************************************************************************
114     * Functions
115     ****************************************************************************/
116    
117  uint8_t  uint8_t
118  get_intra_matrix_status(void)  get_intra_matrix_status(void)
119  {  {

Legend:
Removed from v.440  
changed lines
  Added in v.441

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