ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/freemol/trunk/src/mpeg_encode/src/prototypes.h
Revision: 22
Committed: Mon Jul 7 22:16:37 2008 UTC (11 years, 3 months ago) by wdelano
File size: 4949 byte(s)
Log Message:
initial checkin of mpeg_encode source
Line File contents
1 /*===========================================================================*
2 * prototypes.h *
3 * *
4 * miscellaneous prototypes *
5 * *
6 *===========================================================================*/
7
8 /*
9 * Copyright (c) 1995 The Regents of the University of California.
10 * All rights reserved.
11 *
12 * Permission to use, copy, modify, and distribute this software and its
13 * documentation for any purpose, without fee, and without written agreement is
14 * hereby granted, provided that the above copyright notice and the following
15 * two paragraphs appear in all copies of this software.
16 *
17 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
18 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
19 * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
20 * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
21 *
22 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
23 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
24 * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
25 * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
26 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
27 */
28
29 /*
30 * $Header: /n/picasso/project/mm/mpeg/mpeg_dist/mpeg_encode/headers/RCS/prototypes.h,v 1.9 1995/03/30 01:46:58 smoot Exp smoot $
31 * $Log: prototypes.h,v $
32 * Revision 1.9 1995/03/30 01:46:58 smoot
33 * added SpecType
34 *
35 * Revision 1.8 1995/03/21 00:27:10 smoot
36 * added pnm stuff
37 *
38 * Revision 1.7 1995/02/18 01:48:27 smoot
39 * changed SpecLookup for version 2 specfiles
40 *
41 * Revision 1.6 1995/01/19 23:55:14 eyhung
42 * Changed copyrights
43 *
44 * Revision 1.5 1995/01/17 21:53:10 smoot
45 * Added Specs like
46 * Make that: Added specifics prototypes
47 *
48 * Revision 1.4 1994/12/07 00:42:01 smoot
49 * Added seperate P and B search ranges
50 *
51 * Revision 1.3 1994/11/12 02:12:56 keving
52 * nothing
53 *
54 * Revision 1.2 1993/07/22 22:24:23 keving
55 * nothing
56 *
57 * Revision 1.1 1993/07/09 00:17:23 keving
58 * nothing
59 *
60 */
61
62
63 /*==============*
64 * HEADER FILES *
65 *==============*/
66
67 #include "general.h"
68 #include "ansi.h"
69 #include "frame.h"
70
71
72 /*===============================*
73 * EXTERNAL PROCEDURE prototypes *
74 *===============================*/
75
76 int GetBQScale _ANSI_ARGS_((void));
77 int GetPQScale _ANSI_ARGS_((void));
78 void ResetBFrameStats _ANSI_ARGS_((void));
79 void ResetPFrameStats _ANSI_ARGS_((void));
80 void SetSearchRange _ANSI_ARGS_((int pixelsP, int pixelsB));
81 void ResetIFrameStats _ANSI_ARGS_((void));
82 void SetPixelSearch _ANSI_ARGS_((char *searchType));
83 void SetIQScale _ANSI_ARGS_((int qI));
84 void SetPQScale _ANSI_ARGS_((int qP));
85 void SetBQScale _ANSI_ARGS_((int qB));
86 float EstimateSecondsPerIFrame _ANSI_ARGS_((void));
87 float EstimateSecondsPerPFrame _ANSI_ARGS_((void));
88 float EstimateSecondsPerBFrame _ANSI_ARGS_((void));
89 void SetGOPSize _ANSI_ARGS_((int size));
90 void SetStatFileName _ANSI_ARGS_((char *fileName));
91 void SetSlicesPerFrame _ANSI_ARGS_((int number));
92 void SetBlocksPerSlice _ANSI_ARGS_((void));
93
94
95 void DCTFrame _ANSI_ARGS_((MpegFrame * mf));
96
97 void PPMtoYCC _ANSI_ARGS_((MpegFrame * mf));
98
99 void MotionSearchPreComputation _ANSI_ARGS_((MpegFrame *frame));
100 boolean PMotionSearch _ANSI_ARGS_((LumBlock currentBlock, MpegFrame *prev,
101 int by, int bx, int *motionY, int *motionX));
102 void ComputeHalfPixelData _ANSI_ARGS_((MpegFrame *frame));
103 void mp_validate_size _ANSI_ARGS_((int *x, int *y));
104
105 /* block.c */
106 void BlockToData _ANSI_ARGS_((uint8 **data, Block block, int by, int bx));
107 void AddMotionBlock _ANSI_ARGS_((Block block, uint8 **prev, int by, int bx,
108 int my, int mx));
109 void AddBMotionBlock _ANSI_ARGS_((Block block, uint8 **prev, uint8 **next,
110 int by, int bx, int mode,
111 int fmy, int fmx, int bmy, int bmx));
112
113 void BlockifyFrame _ANSI_ARGS_((MpegFrame *frame));
114
115
116
117 extern void SetFCode _ANSI_ARGS_((void));
118
119
120 /* frametype.c */
121 int FType_Type _ANSI_ARGS_((int frameNum));
122 int FType_FutureRef _ANSI_ARGS_((int currFrameNum));
123 int FType_PastRef _ANSI_ARGS_((int currFrameNum));
124 void SetFramePattern _ANSI_ARGS_((char *pattern));
125 void ComputeFrameTable _ANSI_ARGS_((void));
126
127 /* psearch.c */
128 void ShowPMVHistogram _ANSI_ARGS_((FILE *fpointer));
129 void ShowBBMVHistogram _ANSI_ARGS_((FILE *fpointer));
130 void ShowBFMVHistogram _ANSI_ARGS_((FILE *fpointer));
131
132 /* specifics.c */
133 void Specifics_Init _ANSI_ARGS_((void));
134 int SpecLookup _ANSI_ARGS_((int fn, int typ, int num,
135 BlockMV **info, int start_qs));
136 int SpecTypeLookup _ANSI_ARGS_((int fn));
137
138 /* libpnm.c */
139
140 void pnm_promoteformat _ANSI_ARGS_(( xel** xels, int cols, int rows, xelval maxval,
141 int format, xelval newmaxval, int newformat ));
142 void pnm_promoteformatrow _ANSI_ARGS_(( xel* xelrow, int cols, xelval maxval,
143 int format, xelval newmaxval, int newformat ));