[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 21, Sun Mar 10 00:30:55 2002 UTC revision 605, Sat Oct 19 12:20:33 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     *               2002 Peter Ross <pross@xvid.org>
8     *
9     *  This program is an implementation of a part of one or more MPEG-4
10     *  Video tools as specified in ISO/IEC 14496-2 standard.  Those intending
11     *  to use this software module in hardware or software products are
12     *  advised that its use may infringe existing patents or copyrights, and
13     *  any such use would be at such party's own risk.  The original
14     *  developer of this software module and his/her company, and subsequent
15     *  editors and their companies, will have no liability for use of this
16     *  software or modifications or derivatives thereof.
17     *
18     *  This program is free software ; you can redistribute it and/or modify
19     *  it under the terms of the GNU General Public License as published by
20     *  the Free Software Foundation ; either version 2 of the License, or
21     *  (at your option) any later version.
22     *
23     *  This program is distributed in the hope that it will be useful,
24     *  but WITHOUT ANY WARRANTY ; without even the implied warranty of
25     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
26     *  GNU General Public License for more details.
27     *
28     *  You should have received a copy of the GNU General Public License
29     *  along with this program ; if not, write to the Free Software
30     *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
31     *
32     *  $Id: quant_matrix.c,v 1.11 2002-10-19 12:20:33 edgomez Exp $
33     *
34     ****************************************************************************/
35    
36  #include "quant_matrix.h"  #include "quant_matrix.h"
37    
38  #define FIX(X) (1 << 16) / (X) + 1  #define FIX(X) (1 << 16) / (X) + 1
39    
40    /*****************************************************************************
41     * Local data
42     ****************************************************************************/
43    
44    /* ToDo : remove all this local to make this module thread safe */
45  uint8_t custom_intra_matrix = 0;  uint8_t custom_intra_matrix = 0;
46  uint8_t custom_inter_matrix = 0;  uint8_t custom_inter_matrix = 0;
47    
# Line 71  Line 111 
111      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)
112  };  };
113    
114  uint8_t get_intra_matrix_status(void) {  /*****************************************************************************
115     * Functions
116     ****************************************************************************/
117    
118    uint8_t
119    get_intra_matrix_status(void)
120    {
121          return custom_intra_matrix;          return custom_intra_matrix;
122  }  }
123    
124  uint8_t get_inter_matrix_status(void) {  uint8_t
125    get_inter_matrix_status(void)
126    {
127          return custom_inter_matrix;          return custom_inter_matrix;
128  }  }
129    
130  void set_intra_matrix_status(uint8_t status) {  void
131    set_intra_matrix_status(uint8_t status)
132    {
133          custom_intra_matrix = status;          custom_intra_matrix = status;
134  }  }
135    
136  void set_inter_matrix_status(uint8_t status) {  void
137    set_inter_matrix_status(uint8_t status)
138    {
139          custom_inter_matrix = status;          custom_inter_matrix = status;
140  }  }
141    
142  int16_t *get_intra_matrix(void) {  int16_t *
143    get_intra_matrix(void)
144    {
145          return intra_matrix;          return intra_matrix;
146  }  }
147    
148  int16_t *get_inter_matrix(void) {  int16_t *
149    get_inter_matrix(void)
150    {
151          return inter_matrix;          return inter_matrix;
152  }  }
153    
154  uint8_t *get_default_intra_matrix(void) {  uint8_t *
155    get_default_intra_matrix(void)
156    {
157          return default_intra_matrix;          return default_intra_matrix;
158  }  }
159    
160  uint8_t *get_default_inter_matrix(void) {  uint8_t *
161    get_default_inter_matrix(void)
162    {
163          return default_inter_matrix;          return default_inter_matrix;
164  }  }
165    
166  uint8_t set_intra_matrix(uint8_t *matrix)  uint8_t
167    set_intra_matrix(uint8_t * matrix)
168  {  {
169          int i, change = 0;          int i, change = 0;
170    
# Line 118  Line 179 
179                  intra_matrix[i] = (int16_t) matrix[i];                  intra_matrix[i] = (int16_t) matrix[i];
180                  intra_matrix_fix[i] = FIX(intra_matrix[i]);                  intra_matrix_fix[i] = FIX(intra_matrix[i]);
181          }          }
182          return custom_intra_matrix | change;          return /*custom_intra_matrix |*/ change;
183  }  }
184    
185    
186  uint8_t set_inter_matrix(uint8_t *matrix)  uint8_t
187    set_inter_matrix(uint8_t * matrix)
188  {  {
189          int i, change = 0;          int i, change = 0;
190    
# Line 137  Line 199 
199                  inter_matrix[i] = (int16_t) matrix[i];                  inter_matrix[i] = (int16_t) matrix[i];
200                  inter_matrix_fix[i] = FIX(inter_matrix[i]);                  inter_matrix_fix[i] = FIX(inter_matrix[i]);
201          }          }
202          return custom_inter_matrix | change;          return /*custom_inter_matrix |*/ change;
203  }  }

Legend:
Removed from v.21  
changed lines
  Added in v.605

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