[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 20, Sat Mar 9 21:44:47 2002 UTC revision 603, Sat Oct 19 11:41:12 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 <isibaar@xvid.org>
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.10 2002-10-19 11:41:11 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    
# 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  uint8_t get_intra_matrix_status(void) {  /*****************************************************************************
114     * Functions
115     ****************************************************************************/
116    
117    uint8_t
118    get_intra_matrix_status(void)
119    {
120          return custom_intra_matrix;          return custom_intra_matrix;
121  }  }
122    
123  uint8_t get_inter_matrix_status(void) {  uint8_t
124    get_inter_matrix_status(void)
125    {
126          return custom_inter_matrix;          return custom_inter_matrix;
127  }  }
128    
129  void set_intra_matrix_status(uint8_t status) {  void
130    set_intra_matrix_status(uint8_t status)
131    {
132          custom_intra_matrix = status;          custom_intra_matrix = status;
133  }  }
134    
135  void set_inter_matrix_status(uint8_t status) {  void
136    set_inter_matrix_status(uint8_t status)
137    {
138          custom_inter_matrix = status;          custom_inter_matrix = status;
139  }  }
140    
141  int16_t *get_intra_matrix(void) {  int16_t *
142    get_intra_matrix(void)
143    {
144          return intra_matrix;          return intra_matrix;
145  }  }
146    
147  uint8_t *get_default_intra_matrix(void) {  int16_t *
148    get_inter_matrix(void)
149    {
150            return inter_matrix;
151    }
152    
153    uint8_t *
154    get_default_intra_matrix(void)
155    {
156          return default_intra_matrix;          return default_intra_matrix;
157  }  }
158    
159  uint8_t *get_default_inter_matrix(void) {  uint8_t *
160    get_default_inter_matrix(void)
161    {
162          return default_inter_matrix;          return default_inter_matrix;
163  }  }
164    
165  uint8_t set_intra_matrix(uint8_t *matrix)  uint8_t
166    set_intra_matrix(uint8_t * matrix)
167  {  {
168          int i, change = 0;          int i, change = 0;
169    
# Line 114  Line 178 
178                  intra_matrix[i] = (int16_t) matrix[i];                  intra_matrix[i] = (int16_t) matrix[i];
179                  intra_matrix_fix[i] = FIX(intra_matrix[i]);                  intra_matrix_fix[i] = FIX(intra_matrix[i]);
180          }          }
181          return custom_intra_matrix | change;          return /*custom_intra_matrix |*/ change;
182  }  }
183    
184    
185  uint8_t set_inter_matrix(uint8_t *matrix)  uint8_t
186    set_inter_matrix(uint8_t * matrix)
187  {  {
188          int i, change = 0;          int i, change = 0;
189    
# Line 133  Line 198 
198                  inter_matrix[i] = (int16_t) matrix[i];                  inter_matrix[i] = (int16_t) matrix[i];
199                  inter_matrix_fix[i] = FIX(inter_matrix[i]);                  inter_matrix_fix[i] = FIX(inter_matrix[i]);
200          }          }
201          return custom_inter_matrix | change;          return /*custom_inter_matrix |*/ change;
202  }  }

Legend:
Removed from v.20  
changed lines
  Added in v.603

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