⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umc_h264_bs.h

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 H
字号:
////               INTEL CORPORATION PROPRIETARY INFORMATION//  This software is supplied under the terms of a license agreement or//  nondisclosure agreement with Intel Corporation and may not be copied//  or disclosed except in accordance with the terms of that agreement.//        Copyright (c) 2004 - 2005 Intel Corporation. All Rights Reserved.//#ifndef CSBSX_H__#define CSBSX_H__#include "umc_h264_pub.h"#include "umc_base_bitstream.h"namespace UMC{// LossRecovery return statustypedef enum{    BSLR_STATUS_ERROR,  // Loss recovery did not detect lost packet, or                        // couldn't recover.    BSLR_STATUS_OK,     // Loss recovery detected lost packet and recovered    BSLR_STATUS_EOS     // Loss recovery detected lost packet but end of                        // stream encountered (i.e. no more packet avail.)} BSLR_Status;// ---------------------------------------------------------------------------//  CH264pBs : CBaseBitstream - Tromso bitstream class// ---------------------------------------------------------------------------class CH264pBs : public CBaseBitstream{private:        //H264_FID      m_fid;          // stream type        Ipp8u*          m_pbsRBSPBase;  // Points to beginning of previous                                    // "Raw Byte Sequence Payload"public:        CH264pBs(            /*const H264_FID    fid,*/            Ipp8u* const        pb,            const Ipp32u        maxsize,            Status     &plr);        CH264pBs(            /*const H264_FID    fid,*/            Status     &plr);        ~CH264pBs();        void            Reset();        void            Reset(                            Ipp8u* const    pb,                            const Ipp32u    maxsize);        void            ResetRBSP();        Ipp32u              EndOfNAL(                            Ipp8u* const pout,                            Ipp8u const uIDC,                            NAL_Unit_Type const uUnitType);        Status      PutSliceHeader(H264SliceHeader const slice_hdr,                                       H264PicParamSet const pic_parms,                                       H264SeqParamSet const seq_parms,                                       EnumPicClass const ePictureClass);        Status     PutSeqParms(H264SeqParamSet const seq_parms);        Status     PutPicParms(const H264PicParamSet & pic_parms,                               const H264SeqParamSet & seq_parms);        Status      PutPicDelimiter(EnumPicCodType PicCodType);        void            PutDQUANT(                            const Ipp32u    quant,                            const Ipp32u    quant_prev);        Status     PutNumCoeffAndTrailingOnes(                            Ipp32u uVLCSelect,                            bool bChromaDC,                            Ipp32u uNumCoeff,                            Ipp32u uNumTrailingOnes,                            Ipp32u TrOneSigns);        Status     PutLevels(                            Ipp16s* iLevels,                            Ipp32u  uNumLevels,                            Ipp32u uTrailingOnes);        Status     PutTotalZeros(                            Ipp32u uTotalZeros,                            Ipp32u uTotalCoeffs,                            bool bChromaDC);        Status     PutRuns(                            Ipp8u* uRuns,                            Ipp32u uTotalZeros,                            Ipp32u uTotalCoeffs);#if defined SPLIT_INTO_FIELDS        Status     MBFieldModeInfo_CABAC(int mb_field,int field_available_left,int field_available_above);#endif // SPLIT_INTO_FIELDS        Status     MBSkipFlagInfo_CABAC(EnumSliceType SliceType,T_EncodeMBData *cur_mb, T_EncodeMBData *left_mb, T_EncodeMBData *top_mb,bool skip_flag);        Status     MBTypeInfo_CABAC(EnumSliceType SliceType,int mb_type_cur,MB_Type type_cur, MB_Type type_left,MB_Type type_above );        Status     SubTypeInfo_CABAC(EnumSliceType SliceType,int type);        Status     ChromaIntraPredMode_CABAC(int mode,int left_p, int top_p);        Status     IntraPredMode_CABAC(int mode);        Status     MVD_CABAC(int vector,int left_p,int top_p,int contextbase);        Status     DQuant_CABAC(int deltaQP,int left_c);        Status     CBP_BIT_CABAC (bool cbpbit, int ctxbase,int ctxindex);        Status     CBP_CABAC(T_EncodeMBData *curMB, T_EncodeMBData *leftMB,T_EncodeMBData *topMB);        Status     ResidualBlock_CABAC (T_Block_CABAC_Data *c_data, bool frame_mb);        Status     CodedBlockFlagLuma(T_EncodeMBData *curMB, T_EncodeMBData *leftMB,T_EncodeMBData *topMB,int block_num,int type, bool cbpbit);        Status     CodedBlockFlagLumaDC(T_EncodeMBData *curMB, T_EncodeMBData *leftMB,T_EncodeMBData *topMB, bool cbpbit);        Status     CodedBlockFlagChromaDC(T_EncodeMBData *curMB, T_EncodeMBData *leftMB,T_EncodeMBData *topMB,int block_num,bool cbpbit);        Status     CodedBlockFlagChroma(T_EncodeMBData *curMB, T_EncodeMBData *leftMB,T_EncodeMBData *topMB,int block_num,bool cbpbit);private:        void            PutPSC();        void            PutSSC();        void            PutTR(const Ipp32u  tr);        void            PutPQUANT(const Ipp32u  pquant);        void            PutDBQ(const Ipp32u dbq);};} //namespace UMC#endif // CSBSX_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -