Ignore:
Timestamp:
14 Oct 2013, 20:13:58 (12 years ago)
Author:
kwu-htm
Message:

"JCT3V-E0227 : Inter-view MAD prediction for 3D multi-view video" is integrated by KWU. Configuration has changed by adding rate control for URQ and the integrated view-wise target bitrate allocation and inter-view MAD prediction.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-8.2-dev0-KWU/source/Lib/TLibEncoder/TEncRateCtrl.h

    r608 r635  
    9898  Int m_targetBitsLeft;
    9999#endif
     100
     101#if KWU_RC_MADPRED_E0227
     102  Double m_MAD;
     103
     104  Int m_CUWidth;
     105  Int m_CUHeight;
     106  Double m_IVMAD;
     107#endif
    100108};
    101109
     
    248256
    249257public:
     258#if KWU_RC_MADPRED_E0227
     259  Void create( TEncRCSeq* encRCSeq, TEncRCGOP* encRCGOP, Int frameLevel, list<TEncRCPic*>& listPreviousPictures, Int LayerID );
     260#else
    250261  Void create( TEncRCSeq* encRCSeq, TEncRCGOP* encRCGOP, Int frameLevel, list<TEncRCPic*>& listPreviousPictures );
     262#endif
    251263  Void destroy();
    252264
     265#if KWU_RC_MADPRED_E0227
     266  Double estimatePicLambdaIV( list<TEncRCPic*>& listPreviousPictures, Int CurPOC );
     267#endif
    253268#if !RATE_CONTROL_INTRA
    254269  Double estimatePicLambda( list<TEncRCPic*>& listPreviousPictures );
     
    267282  Double getLCUTargetBpp();
    268283#endif
     284
     285#if KWU_RC_MADPRED_E0227
     286  Double getLCUTargetBppforInterView( list<TEncRCPic*>& listPreviousPictures, TComDataCU* pcCU, Double BasePos, Double CurPos, Double FocalLen, Double Znear, Double Zfar, Int Direction, Int* iDisparity );
     287#endif
     288
    269289  Double getLCUEstLambda( Double bpp );
    270290  Int    getLCUEstQP( Double lambda, Int clipPicQP );
     
    282302
    283303  Void addToPictureLsit( list<TEncRCPic*>& listPreviousPictures );
     304
     305#if KWU_RC_MADPRED_E0227
     306  Void addToPictureLsitIV( list<TEncRCPic*>& listPreviousPictures );
     307  Void setIVPic( TEncRCPic* BaseRCPic );
     308#endif
     309
    284310#if !M0036_RC_IMPROVEMENT
    285311  Double getEffectivePercentage();
     
    322348#endif
    323349
     350#if KWU_RC_MADPRED_E0227
     351  Double getTotalMAD()                                    { return m_totalMAD; }
     352  Void   setTotalMAD( Double MAD )                        { m_totalMAD = MAD; }
     353
     354  Double getIVTotalMAD()                                    { return m_IVtotalMAD; }
     355  Void   setIVTotalMAD( Double MAD )                        { m_IVtotalMAD = MAD; }
     356#endif
     357
    324358  Int  getPicActualBits()                                 { return m_picActualBits; }
    325359  Int  getPicActualQP()                                   { return m_picQP; }
     
    330364  Void setPicEstLambda( Double lambda )                   { m_picLambda = lambda; }
    331365
     366#if KWU_RC_MADPRED_E0227
     367  Int getLayerID()                                         { return m_LayerID; }
     368  Void setLayerID(Int layerid)                              { m_LayerID = layerid; }
     369#endif
     370
    332371private:
    333372  TEncRCSeq* m_encRCSeq;
     
    361400  TEncRCPic* m_lastPicture;
    362401#endif
     402
     403#if KWU_RC_MADPRED_E0227
     404  Double m_totalMAD;
     405  TEncRCPic* m_lastPicture;
     406  Int m_LayerID;
     407  TEncRCPic* m_lastIVPicture;
     408  Double m_IVtotalMAD;
     409#endif
    363410};
    364411
     
    371418public:
    372419#if M0036_RC_IMPROVEMENT
     420#if KWU_RC_MADPRED_E0227
     421  Void init( Int totalFrames, Int targetBitrate, Int frameRate, Int GOPSize, Int picWidth, Int picHeight, Int LCUWidth, Int LCUHeight, Bool keepHierBits, Bool useLCUSeparateModel, GOPEntry GOPList[MAX_GOP], Int LayerID );
     422#else
    373423  Void init( Int totalFrames, Int targetBitrate, Int frameRate, Int GOPSize, Int picWidth, Int picHeight, Int LCUWidth, Int LCUHeight, Int keepHierBits, Bool useLCUSeparateModel, GOPEntry GOPList[MAX_GOP] );
     424#endif
    374425#else
    375426  Void init( Int totalFrames, Int targetBitrate, Int frameRate, Int GOPSize, Int picWidth, Int picHeight, Int LCUWidth, Int LCUHeight, Bool keepHierBits, Bool useLCUSeparateModel, GOPEntry GOPList[MAX_GOP] );
     
    388439  list<TEncRCPic*>& getPicList() { return m_listRCPictures; }
    389440
     441#if KWU_RC_MADPRED_E0227
     442  Int getLayerID()                { return m_LayerID; }
     443  Void setLayerID(Int layerid)     { m_LayerID = layerid; }
     444#endif
     445
    390446private:
    391447  TEncRCSeq* m_encRCSeq;
     
    394450  list<TEncRCPic*> m_listRCPictures;
    395451  Int        m_RCQP;
     452
     453#if KWU_RC_MADPRED_E0227
     454  Int m_LayerID;
     455#endif
    396456};
    397457
     
    518578  Void          updataRCUnitStatus    ();
    519579  Void          updateLCUData         (TComDataCU* pcCU, UInt64 actualLCUBits, Int qp);
     580#if KWU_RC_MADPRED_E0227
     581  Void          updateLCUDataEnhancedView(TComDataCU* pcCU, UInt64 uiBits, Int iQP, Double BasePos, Double CurPos, Double FocalLen, Double Znear, Double Zfar, Int Direction);
     582#endif
    520583  Void          updateFrameData       (UInt64 actualFrameBits);
    521584  Double        xAdjustmentBits       (Int& reductionBits, Int& compensationBits);
Note: See TracChangeset for help on using the changeset viewer.