diff options
Diffstat (limited to 'media/libstagefright/codecs/m4v_h263/enc/src/fastcodemb.h')
-rw-r--r-- | media/libstagefright/codecs/m4v_h263/enc/src/fastcodemb.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/media/libstagefright/codecs/m4v_h263/enc/src/fastcodemb.h b/media/libstagefright/codecs/m4v_h263/enc/src/fastcodemb.h new file mode 100644 index 0000000..686a66d --- /dev/null +++ b/media/libstagefright/codecs/m4v_h263/enc/src/fastcodemb.h @@ -0,0 +1,103 @@ +/* ------------------------------------------------------------------ + * Copyright (C) 1998-2009 PacketVideo + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. + * See the License for the specific language governing permissions + * and limitations under the License. + * ------------------------------------------------------------------- + */ +/* ===================================================================== */ +/* File: FastCodeMB.h */ +/* Description: This file contains structure and function prototypes used + in FastCodeMB() function. When it is decided to use FastCodeMB + instead of CodeMB, all of this prototypes should be migrated to + mp4enc_lib.h. */ +/* Rev: */ +/* Created: 8/14/01 */ +/* //////////////////////////////////////////////////////////////////////// */ + +typedef struct struct_approxDCT approxDCT; +struct struct_approxDCT +{ + const Int *scale; + Int(*DCT)(Int block[ ], Int coeff[ ], approxDCT *); + + // Threshold value for H.263 Quantizer + Int th_app_all[8]; + Int th_app_odd[8]; + Int th_app_even[8]; + Int th_app_even1[8]; + Int th_app_even2[8]; +}; + +struct QPstruct +{ + Int QPx2 ; + Int QP; + Int QPdiv2; + Int QPx2plus; + Int Addition; +}; + +/*---- FastCodeMB.c -----*/ +void initCodeMB(approxDCT *function, Int QP); +PV_STATUS CodeMB_H263(VideoEncData *video, approxDCT *function, Int QP, Int ncoefblck[], Int offset); +PV_STATUS CodeMB_MPEG(VideoEncData *video, approxDCT *function, Int QP, Int ncoefblck[], Int offset); +Int getBlockSAV(Int block[]); +Int Sad8x8(UChar *rec, UChar *prev, Int lx); +Int getBlockSum(UChar *rec, Int lx); + +/*---- AppVCA_dct.c -----*/ +Int AppVCA1_dct(Int block[], Int out[ ], approxDCT *function); +Int AppVCA2_dct(Int block[], Int out[ ], approxDCT *function); +Int AppVCA3_dct(Int block[], Int out[ ], approxDCT *function); +Int AppVCA4_dct(Int block[], Int out[ ], approxDCT *function); +Int AppVCA5_dct(Int block[], Int out[ ], approxDCT *function); + +/*---- FastQuant.c -----*/ +Int cal_dc_scalerENC(Int QP, Int type) ; +Int BlockQuantDequantH263Inter(Int *rcoeff, Int *qcoeff, struct QPstruct *QuantParam, + UChar bitmapcol[ ], UChar *bitmaprow, UInt *bitmapzz, + Int dctMode, Int comp, Int dummy); + +Int BlockQuantDequantH263Intra(Int *rcoeff, Int *qcoeff, struct QPstruct *QuantParam, + UChar bitmapcol[ ], UChar *bitmaprow, UInt *bitmapzz, + Int dctMode, Int comp, Int dc_scaler); + +Int BlockQuantDequantH263DCInter(Int *rcoeff, Int *qcoeff, struct QPstruct *QuantParam, + UChar *bitmaprow, UInt *bitmapzz, Int dummy); + +Int BlockQuantDequantH263DCIntra(Int *rcoeff, Int *qcoeff, struct QPstruct *QuantParam, + UChar *bitmaprow, UInt *bitmapzz, Int dc_scaler); + +Int BlockQuantDequantMPEGInter(Int *rcoeff, Int *qcoeff, Int QP, Int *qmat, + UChar bitmapcol[ ], UChar *bitmaprow, UInt *bitmapzz, + Int DctMode, Int comp, Int dc_scaler); + +Int BlockQuantDequantMPEGIntra(Int *rcoeff, Int *qcoeff, Int QP, Int *qmat, + UChar bitmapcol[ ], UChar *bitmaprow, UInt *bitmapzz, + Int DctMode, Int comp, Int dc_scaler); + +Int BlockQuantDequantMPEGDCInter(Int *rcoeff, Int *qcoeff, Int QP, Int *qmat, + UChar bitmapcol[ ], UChar *bitmaprow, UInt *bitmapzz, Int dummy); + +Int BlockQuantDequantMPEGDCIntra(Int *rcoeff, Int *qcoeff, Int QP, Int *qmat, + UChar bitmapcol[ ], UChar *bitmaprow, UInt *bitmapzz, Int dc_scaler); + +/*---- FastIDCT.c -----*/ +void BlockIDCTMotionComp(Int *block, UChar *bitmapcol, UChar bitmaprow, + Int dctMode, UChar *rec, Int lx, Int intra); + +/*---- motion_comp.c -----*/ +void PutSkippedBlock(UChar *rec, UChar *prev, Int lx); + + |