📄 app_encoder_encoder.cpp
字号:
delete [] rguiRateControl [iLayer]; delete [] rguiBitsBudget [iLayer]; delete [] rgbErrorResilientDisable [iLayer]; delete [] rgbDataPartitioning [iLayer]; delete [] rgbReversibleVlc [iLayer]; delete [] rgiVPBitTh [iLayer]; // for texture coding delete [] rgfQuant [iLayer]; delete [] rgiIntraDCSwitchingThr [iLayer]; delete [] rgiIStep [iLayer]; // error signal quantization stepsize delete [] rgiPStep [iLayer]; // error signal quantization stepsize delete [] rgiIStepAlpha [iLayer]; // error signal quantization stepsize delete [] rgiPStepAlpha [iLayer]; // error signal quantization stepsize delete [] rgiBStepAlpha [iLayer]; delete [] rgbNoGrayQuantUpdate [iLayer]; //discouple change of gray quant with tex. quant delete [] rgiStepBCode [iLayer]; // error signal quantization stepsize delete [] rgbLoadIntraMatrix [iLayer]; delete [] rgbLoadInterMatrix [iLayer]; delete [] rgbLoadIntraMatrixAlpha [iLayer]; delete [] rgbLoadInterMatrixAlpha [iLayer]; for (iObj = 0; iObj < nVO; iObj++) { delete [] rgppiIntraQuantizerMatrix [iLayer] [iObj]; delete [] rgppiInterQuantizerMatrix [iLayer] [iObj]; delete [] rgppiIntraQuantizerMatrixAlpha [iLayer] [iObj]; delete [] rgppiInterQuantizerMatrixAlpha [iLayer] [iObj]; if(pchMVFileName [iLayer] [iObj]!=NULL) delete [] pchMVFileName [iLayer] [iObj]; } delete [] rgppiIntraQuantizerMatrix [iLayer]; delete [] rgppiInterQuantizerMatrix [iLayer]; delete [] rgppiIntraQuantizerMatrixAlpha [iLayer]; delete [] rgppiInterQuantizerMatrixAlpha [iLayer]; delete [] pchMVFileName [iLayer]; // for motion esti. delete [] rgbOriginalME [iLayer]; delete [] rgbAdvPredDisable [iLayer]; delete [] rguiSearchRange [iLayer]; // for interlace coding delete [] rgbInterlacedCoding [iLayer]; delete [] rgbTopFieldFirst [iLayer]; delete [] rgiDirectModeRadius [iLayer]; delete [] rgiMVFileUsage [iLayer]; delete [] rgdFrameFrequency [iLayer]; delete [] rgbAlternateScan [iLayer]; delete [] rgbComplexityEstimationDisable [iLayer]; delete [] rguiEstimationMethod [iLayer]; delete [] rgbOpaque [iLayer]; delete [] rgbTransparent [iLayer]; delete [] rgbIntraCAE [iLayer]; delete [] rgbInterCAE [iLayer]; delete [] rgbNoUpdate [iLayer]; delete [] rgbUpsampling [iLayer]; delete [] rgbIntraBlocks [iLayer]; delete [] rgbInterBlocks [iLayer]; delete [] rgbInter4vBlocks [iLayer]; delete [] rgbNotCodedBlocks [iLayer]; delete [] rgbDCTCoefs [iLayer]; delete [] rgbDCTLines [iLayer]; delete [] rgbVLCSymbols [iLayer]; delete [] rgbVLCBits [iLayer]; delete [] rgbAPM [iLayer]; delete [] rgbNPM [iLayer]; delete [] rgbInterpolateMCQ [iLayer]; delete [] rgbForwBackMCQ [iLayer]; delete [] rgbHalfpel2 [iLayer]; delete [] rgbHalfpel4 [iLayer]; delete [] rgbSadct [iLayer]; delete [] rgbQuarterpel [iLayer]; delete [] rguiVolControlParameters [iLayer]; delete [] rguiChromaFormat [iLayer]; delete [] rguiLowDelay [iLayer]; delete [] rguiVBVParams [iLayer]; delete [] rguiBitRate [iLayer]; delete [] rguiVbvBufferSize [iLayer]; delete [] rguiVbvBufferOccupany [iLayer]; delete [] rgbNewpredEnable[iLayer]; delete [] rgbNewpredSegType[iLayer]; delete [] rgbSadctDisable[iLayer]; delete [] rgbQuarterSample[iLayer]; for (iObj = 0; iObj < nVO; iObj++) { if(pchNewpredRefName [iLayer][iObj]!=NULL) delete pchNewpredRefName [iLayer][iObj]; if(pchNewpredSlicePoint [iLayer][iObj]!=NULL) delete pchNewpredSlicePoint [iLayer][iObj]; } delete [] pchNewpredRefName[iLayer]; delete [] pchNewpredSlicePoint[iLayer]; delete [] RRVmode[iLayer]; } delete [] rgbScalability; delete [] rgbSpatialScalability; delete [] rgiTemporalScalabilityType; delete [] rgiEnhancementType;//OBSSFIX_MODE3 delete [] rgiEnhancementTypeSpatial;//~OBSSFIX_MODE3 // for mask coding, should fill in later on delete [] rgfAlphaUsage; // alpha usage for each VO. 0: binary, 1: 8-bit delete [] rgiAlphaShapeExtension; delete [] rgbShapeOnly; delete [] rgiBinaryAlphaTH; delete [] rgiBinaryAlphaRR; // Added for error resilient mode by Toshiba(1997-11-14) delete [] rgiGrayToBinaryTH; delete [] rgbNoCrChange; delete [] rgbDeblockFilterDisable; delete [] rgfChrType; delete [] rgiNumBbetweenPVOP; // no of B-VOPs between P-VOPs delete [] rgiNumPbetweenIVOP; // no of P-VOPs between I-VOPs//added to encode GOV header by SONY 980212 delete [] rgiGOVperiod;//980212 delete [] rgiTSRate; delete [] rgiEnhcTSRate; // added by Norio Ito delete [] rgbAllowSkippedPMBs; // rounding control delete [] rgbRoundingControlDisable; delete [] rgiInitialRoundingType; // sprite delete [] rguiSpriteUsage; delete [] rguiWarpingAccuracy; delete [] rgiNumPnts; delete [] rgbDumpMB; delete [] rgbTrace; delete [] rgSpriteMode; delete pchPrefix; delete pchBmpDir; delete pchOutBmpDir; delete pchOutStrFile; delete pchSptDir; delete pchSptPntDir; // version 2 delete [] rguiVerID; return 0;}Void nextValidLine (FILE *pfPara, UInt* pnLine) { U8 chBoL = 0; Char pchPlaceHolder[200]; fgets (pchPlaceHolder, 200, pfPara); // get the next line (*pnLine)++; while (feof (pfPara) == 0 && (chBoL = fgetc(pfPara)) == '%') { // skip a line fgets (pchPlaceHolder, 200, pfPara); // get the next line (*pnLine)++; } ungetc (chBoL, pfPara); }///// WAVELET VTC: begin ///////////////////////////////Void readVTCParam(CVTCEncoder *pvtcenc, FILE *pfVTCPara, UInt* pnLine, UInt *uiFrmWidth, UInt *uiFrmHeight){ // FPDAM // begin: added by Sharp (99/11/18) UInt uiVerID; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiVerID) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } if ( uiVerID != 1 && uiVerID != 2 ){ fprintf(stderr,"Unsupported .cfg file. Version ID is required at the beginning of .cfg\n"); assert ( uiVerID == 1 || uiVerID == 2 ); } // end: added by Sharp (99/11/18) // source image path Char *cImagePath; cImagePath = new char[80]; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%s", cImagePath) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } // Alpha Channel UInt uiAlphaChannel; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiAlphaChannel) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } // segmentation map image path Char *cSegImagePath; cSegImagePath = new char[80]; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%s", cSegImagePath) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } // FPDAM begin: deleted by Sharp // //begin: added by SL@Sarnoff (03/02/99) // UInt uiShapeScalable; //scalable shape coding ? // nextValidLine (pfVTCPara, pnLine); // if ( fscanf (pfVTCPara, "%d", &uiShapeScalable) != 1) { // fprintf(stderr, "wrong parameter on line %d\n", *pnLine); // assert (FALSE); // } // FPDAM end: deleted by Sharp UInt uiSTOConstAlpha; // constant alpha value? nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiSTOConstAlpha) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } UInt uiSTOConstAlphaValue; //what is the value if const alpha? nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiSTOConstAlphaValue) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } //end: added by SL@Sarnoff (03/02/99) // Alpha threshold UInt uiAlphaTh; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiAlphaTh) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } // Alpha Change CR Disable UInt uiChangeCRDisable; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiChangeCRDisable) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } // output bitstream file Char *cOutBitsFile; cOutBitsFile = new char[80]; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%s", cOutBitsFile) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } // color components UInt uiColors; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiColors) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } // Frame width // UInt uiFrmWidth; //FPDAM nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", uiFrmWidth) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } // Frame height // UInt uiFrmHeight; // frame height // FPDAM nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", uiFrmHeight) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } // begin: added by Sharp (99/2/16) UInt uiTilingDisable; // modified by Sharp (99/3/29) nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiTilingDisable) != 1) { // modified by Sharp (99/3/29) fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } UInt uiTilingJump; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiTilingJump) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } UInt uiTileWidth; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiTileWidth) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } UInt uiTileHeight; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiTileHeight) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } // end: added by Sharp (99/2/16) // wavelet decomposition UInt uiWvtDecmpLev; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiWvtDecmpLev) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } // wavelet type UInt uiWvtType; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiWvtType) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } // hjlee 0901 // wavelet download ? UInt uiWvtDownload; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiWvtDownload) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } // hjlee 0901 // wavelet uniform ? UInt uiWvtUniform; Int *iWvtFilters; nextValidLine (pfVTCPara, pnLine); if ( fscanf (pfVTCPara, "%d", &uiWvtUniform) != 1) { fprintf(stderr, "wrong parameter on line %d\n", *pnLine); assert (FALSE); } /* default wavelet filters are uniform */ if (!uiWvtDownload) uiWvtUniform=1; if (uiWvtUniform) iWvtFilters = (Int *)malloc(sizeof(Int
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -