📄 sesenc.hpp
字号:
/*************************************************************************This software module was originally developed by Ming-Chieh Lee (mingcl@microsoft.com), Microsoft Corporation Wei-ge Chen (wchen@microsoft.com), Microsoft Corporation Bruce Lin (blin@microsoft.com), Microsoft Corporation Chuang Gu (chuanggu@microsoft.com), Microsoft Corporation (date: March, 1996)and edited by Wei Wu (weiwu@stallion.risc.rockwell.com) Rockwell Science Centerand also edited by Yoshihiro Kikuchi (TOSHIBA CORPORATION) Takeshi Nagai (TOSHIBA CORPORATION) Toshiaki Watanabe (TOSHIBA CORPORATION) Noboru Yamaguchi (TOSHIBA CORPORATION) Marc Mongenet (Marc.Mongenet@epfl.ch), Swiss Federal Institute of Technology, Lausanne (EPFL) Mathias Wien (wien@ient.rwth-aachen.de), RWTH Aachen / Robert BOSCH GmbH and also edited by Yoshinori Suzuki (Hitachi, Ltd.)and also edited by Hideaki Kimata (NTT)and also edited by Fujitsu Laboratories Ltd. (contact: Eishi Morimatsu)and also edited by Takefumi Nagumo (nagumo@av.crl.sony.co.jp), Sony Corporation Sehoon Son (shson@unitel.co.kr) Samsung AITin the course of development of the MPEG-4 Video (ISO/IEC 14496-2). This software module is an implementation of a part of one or more MPEG-4 Video tools as specified by the MPEG-4 Video. ISO/IEC gives users of the MPEG-4 Video free license to this software module or modifications thereof for use in hardware or software products claiming conformance to the MPEG-4 Video. Those intending to use this software module in hardware or software products are advised that its use may infringe existing patents. The original developer of this software module and his/her company, the subsequent editors and their companies, and ISO/IEC have no liability for use of this software module or modifications thereof in an implementation. Copyright is not released for non MPEG-4 Video conforming products. Microsoft retains full right to use the code for his/her own purpose, assign or donate the code to a third party and to inhibit third parties from using the code for non <MPEG standard> conforming products. This copyright notice must be included in all copies or derivative works. Copyright (c) 1996, 1997.Module Name: sesEnc.hppAbstract: Encoder for one image session.Revision History: Sept. 30, 1997: Error resilient tools added by Toshiba Nov. 27, 1997: Spatial Scalable tools added by SONY Dec. 11, 1997: Interlaced tools added by NextLevel Systems Jun. 17, 1998: Complexity Estimation syntax support added by EPFL Feb. 16, 1999: add Quarter Sample Mathias Wien (wien@ient.rwth-aachen.de) Feb. 24, 1999: GMC added by Hitachi May 9, 1999: tm5 rate control by DemoGraFX, duhoff@mediaone.net (added by mwi) Aug.24, 1999 : NEWPRED added by Hideaki Kimata (NTT) Sep.06 1999 : RRV added by Eishi Morimatsu (Fujitsu Laboratories Ltd.) Feb.12 2000 : Added Enhancement Type for OBSS by Takefumi Nagumo (Sony)*************************************************************************/#ifndef __SESENC_HPP_ #define __SESENC_HPP_class COutBitStream;class CEntropyEncoder;class CEntropyEncoderSet;class CVideoObjectEncoder;typedef struct { // general info UInt uiFrmWidth; // frame width UInt uiFrmHeight; // frame height Int iFirstFrm; // first frame number Int iLastFrm; // last frame number Bool bNot8Bit; // NBIT UInt uiQuantPrecision; // NBIT UInt nBits; // NBIT Int iFirstVO; // first VOP index Int iLastVO; // last VOP index UInt* rguiVerID; // Version ID // GMC Bool* rgbSpatialScalability; // spatial scalability indicator Int* rgiTemporalScalabilityType; // temporal scalability formation case // added by Sharp (98/02/09) Int* rgiEnhancementType; // enhancement_type for scalability // added by Sharp (98/02/09)//OBSSFIX_MODE3 Int* rgiEnhancementTypeSpatial;//~OBSSFIX_MODE3 UInt **rguiRateControl; // rate control type UInt **rguiBudget; // for rate control // for shape coding AlphaUsage* rgfAlphaUsage;// alpha usage for each VOP. 0: binary; 1: 8-bit Int* rgiAlphaShapeExtension; // alpha shape extension (V2) Bool* rgbShapeOnly; // shape only mode Int* rgiBinaryAlphaTH; Int* rgiBinaryAlphaRR; // refresh rate: Added for error resilient mode by Toshiba(1997-11-14) Int *rgiGrayToBinaryTH; Bool* rgbNoCrChange; // motion estimation part for each VOP UInt** rguiSearchRange; // motion search range Bool** rgbOriginalForME; // flag indicating whether use the original previous VOP for ME Bool** rgbAdvPredDisable; // no advanced MC (currenly = obmc; later = obmc + 8x8) Bool** rgbQuarterSample; // QuarterSample; mwi // START: Complexity Estimation syntax support - Marc Mongenet (EPFL) - 17 Jun 1998 Bool ** rgbComplexityEstimationDisable; UInt ** rguiEstimationMethod; Bool ** rgbOpaque; Bool ** rgbTransparent; Bool ** rgbIntraCAE; Bool ** rgbInterCAE; Bool ** rgbNoUpdate; Bool ** rgbUpsampling; Bool ** rgbIntraBlocks; Bool ** rgbInterBlocks; Bool ** rgbInter4vBlocks; Bool ** rgbNotCodedBlocks; Bool ** rgbDCTCoefs; Bool ** rgbDCTLines; Bool ** rgbVLCSymbols; Bool ** rgbVLCBits; Bool ** rgbAPM; Bool ** rgbNPM; Bool ** rgbInterpolateMCQ; Bool ** rgbForwBackMCQ; Bool ** rgbHalfpel2; Bool ** rgbHalfpel4; Bool ** rgbSadct; Bool ** rgbQuarterpel; // END: Complexity Estimation syntax support // START: VOL Control Parameters UInt ** rguiVolControlParameters; UInt ** rguiChromaFormat; UInt ** rguiLowDelay; UInt ** rguiVBVParams; UInt ** rguiBitRate; UInt ** rguiVbvBufferSize; UInt ** rguiVbvBufferOccupany; // END: VOL Control Parameters Double** rgdFrameFrequency; // Frame Frequency Bool** rgbInterlacedCoding; // interlace coding flag Bool** rgbTopFieldFirst; // top field first flag Bool** rgbAlternateScan; // alternate scan flag // HHI Klaas Schueuer for sadct Bool** rgbSadctDisable; Int** rgiDirectModeRadius; // direct mode search radius Int** rgiMVFileUsage; // 0- not used; 1: read from motion file; 2- write to motion file Char*** pchMVFileName; // Motion vector filenames // major syntax mode// NEWPRED Bool** rgbNewpredEnable; Bool** rgbNewpredSegmentType; char*** rgcNewpredRefName; char*** rgcNewpredSlicePoint;// ~NEWPRED// RRV RRVmodeStr** RRVmode; // ~RRV//RESYNC_MARKER_FIX Bool** rgbResyncMarkerDisable;//~RESYNC_MARKER_FIX Int** rgbVPBitTh; // Bit threshold for video packet spacing control Bool** rgbDataPartitioning; // data partitioning Bool** rgbReversibleVlc; // reversible VLC // for texture coding Quantizer** rgfQuant; // quantizer selection; either H.263 or MPEG Bool** rgbLoadIntraMatrix; // load user-defined intra Q-Matrix Int*** rgppiIntraQuantizerMatrix; // Intra Q-Matrix Bool** rgbLoadInterMatrix; // load user-defined inter Q-Matrix Int*** rgppiInterQuantizerMatrix; // Inter Q-Matrix Int** rgiIntraDCSwitchingThr; //threshold to code dc as ac when pred. is on Int** rgiStepI; // I-VOP quantization stepsize Int** rgiStepP; // P-VOP quantization stepsize Bool** rgbLoadIntraMatrixAlpha; Int*** rgppiIntraQuantizerMatrixAlpha; Bool** rgbLoadInterMatrixAlpha; Int*** rgppiInterQuantizerMatrixAlpha; Int** rgiStepIAlpha; // I-VOP quantization stepsize for Alpha Int** rgiStepPAlpha; // P-VOP quantization stepsize for Alpha Int** rgiStepBAlpha; // B-VOP quantization stepsize for Alpha Int** rgbNoAlphaQuantUpdate; // discouple gray quant update with tex. quant Int** rgiStepB; // quantization stepsize for B-VOP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -