[cvs] / xvidcore / src / utils / ratecontrol.h Repository:
ViewVC logotype

Diff of /xvidcore/src/utils/ratecontrol.h

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

revision 1.2, Sun Mar 24 05:47:23 2002 UTC revision 1.6, Thu Sep 5 20:37:40 2002 UTC
# Line 1  Line 1 
1    /*****************************************************************************
2     *
3     *  XVID MPEG-4 VIDEO CODEC
4     *  - 1 Pass rate controler header file -
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$
32     *
33     ****************************************************************************/
34    
35  #ifndef _RATECONTROL_H_  #ifndef _RATECONTROL_H_
36  #define _RATECONTROL_H_  #define _RATECONTROL_H_
37    
 #include "../encoder.h"  
38  #include "../portab.h"  #include "../portab.h"
39    
40  void RateControlInit(uint32_t target_rate, uint32_t reaction_delay_factor, int framerate,  typedef struct
41                                           int max_quant, int min_quant);  {
42            int64_t size;
43  int RateControlGetQ(int keyframe);          int32_t count;
44    }
45  void RateControlUpdate(int16_t quant, int frame_size, int keyframe);  QuantInfo;
46    
47    typedef struct
48    {
49            int32_t rtn_quant;
50            int64_t frames;
51            int64_t total_size;
52            double framerate;
53            int32_t target_rate;
54            int16_t max_quant;
55            int16_t min_quant;
56            int64_t last_change;
57            int64_t quant_sum;
58            double quant_error[32];
59            double avg_framesize;
60            double target_framesize;
61            double sequence_quality;
62            int32_t averaging_period;
63            int32_t reaction_delay_factor;
64            int32_t buffer;
65    }
66    RateControl;
67    
68    void RateControlInit(RateControl * rate_control,
69                                             uint32_t target_rate,
70                                             uint32_t reaction_delay_factor,
71                                             uint32_t averaging_period,
72                                             uint32_t buffer,
73                                             int framerate,
74                                             int max_quant,
75                                             int min_quant);
76    
77    int RateControlGetQ(RateControl * rate_control,
78                                            int keyframe);
79    
80    void RateControlUpdate(RateControl * rate_control,
81                                               int16_t quant,
82                                               int frame_size,
83                                               int keyframe);
84    
85  #endif /* _RATECONTROL_H_ */  #endif /* _RATECONTROL_H_ */
   

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.6

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