Doxygen Source Code Documentation
opts.h
Go to the documentation of this file.00001 /* 00002 * opts.h - set optional parameters 00003 */ 00004 00005 /* 00006 * Copyright (c) 1995 The Regents of the University of California. 00007 * All rights reserved. 00008 * 00009 * Permission to use, copy, modify, and distribute this software and its 00010 * documentation for any purpose, without fee, and without written agreement is 00011 * hereby granted, provided that the above copyright notice and the following 00012 * two paragraphs appear in all copies of this software. 00013 * 00014 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR 00015 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT 00016 * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF 00017 * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00018 * 00019 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, 00020 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 00021 * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 00022 * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO 00023 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 00024 */ 00025 00026 /* 00027 * $Header: /misc/elrond0/share/cvs/AFNI/src/mpeg_encodedir/headers/opts.h,v 1.4 2004/04/02 15:12:41 rwcox Exp $ 00028 * $Log: opts.h,v $ 00029 * Revision 1.4 2004/04/02 15:12:41 rwcox 00030 * Cput 00031 * 00032 * Revision 1.3 2003/12/23 13:50:09 rwcox 00033 * Cput 00034 * 00035 * Revision 1.2 2003/12/03 14:46:15 rwcox 00036 * Cput 00037 * 00038 * Revision 1.1 2001/12/17 18:25:45 rwcox 00039 * Cadd 00040 * 00041 * Revision 1.3 1995/08/15 23:43:43 smoot 00042 * *** empty log message *** 00043 * 00044 * Revision 1.2 1995/05/02 22:00:51 smoot 00045 * added TUNEing stuff 00046 * 00047 * Revision 1.1 1995/04/14 23:12:53 smoot 00048 * Initial revision 00049 * 00050 */ 00051 00052 #include "general.h" 00053 #include "ansi.h" 00054 #include "mtypes.h" 00055 00056 /* 00057 TUNE b [limit] lower limit on how different a block must be to be DCT coded 00058 TUNE c [file [color-diff]] Collect statistics on Quantization 00059 TUNE d [RateScale DistortionScale] Do a DCT in the P search, not just DIFF 00060 TUNE k [breakpt end [slope]] Squash small lum values 00061 TUNE l Figure out Laplacian distrib and use them to dequantize and do snr calc 00062 TUNE n Dont consider DC differenece in DCT searches 00063 TUNE q Do MSE for distortion measure, not MAD 00064 TUNE s [Max] | [LumMax ChromMax] Squash small differences in successive frames 00065 TUNE u disallow skip blocks in B frames 00066 TUNE w filename [c] Write I block distortion numbers to file [with bit-rates] 00067 TUNE z Zaps Intra blocks in P/B frames. 00068 00069 [ Note k and s make -snr numbers a lie, by playing with input ] 00070 [ Note d n and q are contradictory (can only use one) ] 00071 [ Note c will not work on parallel encodings ] 00072 */ 00073 00074 extern boolean tuneingOn; 00075 00076 /* Smash to no-change a motion block DCT with MAD less than: */ 00077 /* DETAL b value */ 00078 extern int block_bound; 00079 00080 /* Collect info on quantization */ 00081 extern boolean collect_quant; 00082 extern int collect_quant_detailed; 00083 extern FILE *collect_quant_fp; 00084 00085 /* Nuke dim areas */ 00086 extern int kill_dim, kill_dim_break, kill_dim_end; 00087 extern float kill_dim_slope; 00088 00089 00090 /* Stuff to control MV search comparisons */ 00091 #define DEFAULT_SEARCH 0 00092 #define LOCAL_DCT 1 /* Do DCT in search (SLOW!!!!) */ 00093 #define NO_DC_SEARCH 2 /* Dont consider DC component in motion searches */ 00094 #define DO_Mean_Squared_Distortion 3 /* Do Squared distortion, not ABS */ 00095 00096 /* Parameters for special searches */ 00097 /* LOCAL_DCT */ 00098 extern float LocalDCTRateScale, LocalDCTDistortScale; 00099 00100 /* Search Type Variable */ 00101 extern int SearchCompareMode; 00102 00103 /* squash small differences */ 00104 extern boolean squash_small_differences; 00105 extern int SquashMaxLum, SquashMaxChr; 00106 00107 /* Disallows Intra blocks in P/B code */ 00108 extern boolean IntraPBAllowed; 00109 00110 /* Write out distortion numbers */ 00111 extern boolean WriteDistortionNumbers; 00112 extern int collect_distortion_detailed; 00113 extern FILE *distortion_fp; 00114 extern FILE *fp_table_rate[31], *fp_table_dist[31]; 00115 00116 /* Laplacian Distrib */ 00117 extern boolean DoLaplace; 00118 extern double **L1, **L2, **Lambdas; 00119 extern int LaplaceNum, LaplaceCnum; 00120 00121 /* Turn on/off skipping in B frames */ 00122 extern boolean BSkipBlocks; 00123 00124 /* Procedures Prototypes */ 00125 int GetIQScale _ANSI_ARGS_((void)); 00126 int GetPQScale _ANSI_ARGS_((void)); 00127 int GetBQScale _ANSI_ARGS_((void)); 00128 void Tune_Init _ANSI_ARGS_((void)); 00129 char *SkipSpacesTabs _ANSI_ARGS_((char *start)); 00130 int CalcRLEHuffLength _ANSI_ARGS_((FlatBlock in)); 00131 void ParseTuneParam _ANSI_ARGS_((char *charPtr)); 00132 int mse _ANSI_ARGS_((Block blk1, Block blk2)); 00133 00134 00135 00136