From: Anuradha S. <asu...@us...> - 2007-11-16 04:50:13
|
Update of /cvsroot/dirac/compress/libdirac_common In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv11222/libdirac_common Modified Files: Makefile.am common.cpp common.h frame_buffer.cpp frame_buffer.h video_format_defaults.cpp Log Message: Added support for using VLC codes for entropy coding of coefficient data. Index: common.h =================================================================== RCS file: /cvsroot/dirac/compress/libdirac_common/common.h,v retrieving revision 1.63 retrieving revision 1.64 diff -C2 -d -r1.63 -r1.64 *** common.h 12 Nov 2007 02:27:18 -0000 1.63 --- common.h 16 Nov 2007 04:50:08 -0000 1.64 *************** *** 878,881 **** --- 878,884 ---- ReferenceType GetReferenceType() const { return m_reference_type;} + //! Returns true is entropy coding using Arithmetic coding + bool UsingAC() const { return m_using_ac; } + // ... Sets *************** *** 928,931 **** --- 931,937 ---- void SetRetiredFrameNum(int retd_fnum) {m_retd_fnum = retd_fnum;} + //! Sets the arithmetic coding flag + void SetUsingAC(bool using_ac) { m_using_ac = using_ac; } + private: *************** *** 987,990 **** --- 993,998 ---- unsigned int m_chroma_depth; + //! arithmetic coding flag + bool m_using_ac; }; *************** *** 1113,1120 **** //! Return the Ref1 weight ! unsigned int Ref1Weight() const { return m_ref1_weight; } //! Return the Ref2 weight ! unsigned int Ref2Weight() const { return m_ref2_weight; } // ... and Sets --- 1121,1128 ---- //! Return the Ref1 weight ! int Ref1Weight() const { return m_ref1_weight; } //! Return the Ref2 weight ! int Ref2Weight() const { return m_ref2_weight; } // ... and Sets *************** *** 1207,1214 **** //! Set the ref 1 frame weight ! void SetRef1Weight(unsigned int wt) { m_ref1_weight=wt; } //! Set the ref 2 frame weight ! void SetRef2Weight(unsigned int wt) { m_ref2_weight=wt; } protected: --- 1215,1222 ---- //! Set the ref 1 frame weight ! void SetRef1Weight(int wt) { m_ref1_weight=wt; } //! Set the ref 2 frame weight ! void SetRef2Weight(int wt) { m_ref2_weight=wt; } protected: *************** *** 1270,1277 **** //! frame predicion parameters - reference frame 1 weight ! unsigned int m_ref1_weight; //! frame predicion parameters - reference frame 1 weight ! unsigned int m_ref2_weight; //! Zero transform flag --- 1278,1285 ---- //! frame predicion parameters - reference frame 1 weight ! int m_ref1_weight; //! frame predicion parameters - reference frame 1 weight ! int m_ref2_weight; //! Zero transform flag *************** *** 1397,1400 **** --- 1405,1411 ---- int TargetRate() {return m_target_rate;} + //! Return true if using Arithmetic coding + bool UsingAC() const {return m_using_ac;} + // ... and Sets *************** *** 1461,1464 **** --- 1472,1478 ---- //! Set the target bit rate void SetTargetRate(const int rate){m_target_rate = rate;} + + //! Set the arithmetic coding flag + void SetUsingAC(bool using_ac) {m_using_ac = using_ac;} private: *************** *** 1537,1540 **** --- 1551,1557 ---- int m_target_rate; + //! Arithmetic coding flag + bool m_using_ac; + }; Index: video_format_defaults.cpp =================================================================== RCS file: /cvsroot/dirac/compress/libdirac_common/video_format_defaults.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** video_format_defaults.cpp 12 Nov 2007 02:24:38 -0000 1.17 --- video_format_defaults.cpp 16 Nov 2007 04:50:08 -0000 1.18 *************** *** 309,312 **** --- 309,313 ---- encparams.SetQf(7.0f); encparams.SetMVPrecision(MV_PRECISION_QUARTER_PIXEL); + encparams.SetUsingAC(true); switch (encparams.GetVideoFormat()) Index: frame_buffer.h =================================================================== RCS file: /cvsroot/dirac/compress/libdirac_common/frame_buffer.h,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** frame_buffer.h 12 Nov 2007 02:27:18 -0000 1.18 --- frame_buffer.h 16 Nov 2007 04:50:08 -0000 1.19 *************** *** 77,80 **** --- 77,81 ---- \param luma_depth the video depth of the luma comp in the buffer \param chroma_depth the video depth of the chroma comp in the buffer + \param using_ac True if using Arithmetic coding to code coefficient data */ *************** *** 87,91 **** const int dwt_cylen, const unsigned int luma_depth, ! const unsigned int chroma_depth); //! Constructor --- 88,93 ---- const int dwt_cylen, const unsigned int luma_depth, ! const unsigned int chroma_depth, ! bool using_ac); //! Constructor *************** *** 109,112 **** --- 111,115 ---- \param chroma_depth the video depth of the chroma comp in the buffer \param interlace Set true if material is being coded in interlaced mode + \param using_ac True if using Arithmetic coding to code coefficient data */ FrameBuffer(ChromaFormat cf, *************** *** 121,125 **** const unsigned int luma_depth, const unsigned int chroma_depth, ! bool interlace); //! Copy constructor --- 124,129 ---- const unsigned int luma_depth, const unsigned int chroma_depth, ! bool interlace, ! bool using_ac); //! Copy constructor *************** *** 282,285 **** --- 286,292 ---- bool m_interlace; + //! Arithmetic coding flag to code coefficients + bool m_using_ac; + Index: frame_buffer.cpp =================================================================== RCS file: /cvsroot/dirac/compress/libdirac_common/frame_buffer.cpp,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** frame_buffer.cpp 12 Nov 2007 02:27:18 -0000 1.23 --- frame_buffer.cpp 16 Nov 2007 04:50:08 -0000 1.24 *************** *** 48,52 **** m_L1_sep(1), m_gop_len(0), ! m_interlace(false) {} --- 48,53 ---- m_L1_sep(1), m_gop_len(0), ! m_interlace(false), ! m_using_ac(false) {} *************** *** 60,64 **** const int dwt_cylen, unsigned int luma_depth, ! unsigned int chroma_depth) : m_ref_count(0), m_fparams(cf, orig_xlen, orig_ylen, dwt_xlen, dwt_ylen, dwt_cxlen, dwt_cylen, luma_depth, chroma_depth), --- 61,66 ---- const int dwt_cylen, unsigned int luma_depth, ! unsigned int chroma_depth, ! bool using_ac) : m_ref_count(0), m_fparams(cf, orig_xlen, orig_ylen, dwt_xlen, dwt_ylen, dwt_cxlen, dwt_cylen, luma_depth, chroma_depth), *************** *** 66,70 **** m_L1_sep(1), m_gop_len(0), ! m_interlace(false) {} --- 68,73 ---- m_L1_sep(1), m_gop_len(0), ! m_interlace(false), ! m_using_ac(using_ac) {} *************** *** 81,90 **** unsigned int luma_depth, unsigned int chroma_depth, ! bool interlace) : m_ref_count(0), m_fparams(cf,orig_xlen, orig_ylen, dwt_xlen, dwt_ylen, dwt_cxlen, dwt_cylen, luma_depth, chroma_depth), m_num_L1(numL1), m_L1_sep(L1sep), ! m_interlace(interlace) { if (m_num_L1>0) --- 84,95 ---- unsigned int luma_depth, unsigned int chroma_depth, ! bool interlace, ! bool using_ac) : m_ref_count(0), m_fparams(cf,orig_xlen, orig_ylen, dwt_xlen, dwt_ylen, dwt_cxlen, dwt_cylen, luma_depth, chroma_depth), m_num_L1(numL1), m_L1_sep(L1sep), ! m_interlace(interlace), ! m_using_ac(using_ac) { if (m_num_L1>0) *************** *** 134,137 **** --- 139,143 ---- m_gop_len = cpy.m_gop_len; m_interlace = cpy.m_interlace; + m_using_ac = cpy.m_using_ac; } *************** *** 166,169 **** --- 172,178 ---- // and the interlace flag m_interlace = rhs.m_interlace; + + // and the arithmetic flag + m_using_ac = rhs.m_using_ac; } return *this; *************** *** 517,520 **** --- 526,530 ---- void FrameBuffer::SetFrameParams( const unsigned int fnum ) { + m_fparams.SetUsingAC( m_using_ac); if (!m_interlace) SetProgressiveFrameParams(fnum); *************** *** 540,545 **** m_fparams.SetFSort( FrameSort::IntraRefFrameSort()); else // I-frame only coding m_fparams.SetFSort( FrameSort::IntraNonRefFrameSort()); ! // I frame expires after we've coded the next I frame m_fparams.SetExpiryTime( m_gop_len ); --- 550,556 ---- m_fparams.SetFSort( FrameSort::IntraRefFrameSort()); else // I-frame only coding + { m_fparams.SetFSort( FrameSort::IntraNonRefFrameSort()); ! } // I frame expires after we've coded the next I frame m_fparams.SetExpiryTime( m_gop_len ); Index: Makefile.am =================================================================== RCS file: /cvsroot/dirac/compress/libdirac_common/Makefile.am,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** Makefile.am 20 Apr 2006 10:41:56 -0000 1.16 --- Makefile.am 16 Nov 2007 04:50:08 -0000 1.17 *************** *** 4,19 **** INCLUDES = -I$(top_srcdir) -I$(srcdir) ! h_sources = arith_codec.h arrays.h band_codec.h \ common_types.h common.h frame.h frame_buffer.h \ mot_comp.h motion.h mv_codec.h pic_io.h upconvert.h \ wavelet_utils.h cmd_line.h dirac_assertions.h dirac_types.h \ ! mot_comp_mmx.h video_format_defaults.h dirac_exception.h ! cpp_sources = arith_codec.cpp band_codec.cpp common.cpp \ frame.cpp frame_buffer.cpp mot_comp.cpp motion.cpp \ mv_codec.cpp pic_io.cpp upconvert.cpp wavelet_utils.cpp \ cmd_line.cpp dirac_assertions.cpp upconvert_mmx.cpp \ ! wavelet_utils_mmx.cpp mot_comp_mmx.cpp \ ! video_format_defaults.cpp dirac_exception.cpp if USE_MSVC --- 4,19 ---- INCLUDES = -I$(top_srcdir) -I$(srcdir) ! h_sources = arith_codec.h arrays.h band_codec.h band_vlc.h\ common_types.h common.h frame.h frame_buffer.h \ mot_comp.h motion.h mv_codec.h pic_io.h upconvert.h \ wavelet_utils.h cmd_line.h dirac_assertions.h dirac_types.h \ ! mot_comp_mmx.h video_format_defaults.h dirac_exception.h ! cpp_sources = arith_codec.cpp band_codec.cpp band_vlc.cpp common.cpp \ frame.cpp frame_buffer.cpp mot_comp.cpp motion.cpp \ mv_codec.cpp pic_io.cpp upconvert.cpp wavelet_utils.cpp \ cmd_line.cpp dirac_assertions.cpp upconvert_mmx.cpp \ ! wavelet_utils_mmx.cpp mot_comp_mmx.cpp \ ! video_format_defaults.cpp dirac_exception.cpp if USE_MSVC Index: common.cpp =================================================================== RCS file: /cvsroot/dirac/compress/libdirac_common/common.cpp,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** common.cpp 12 Nov 2007 02:24:38 -0000 1.57 --- common.cpp 16 Nov 2007 04:50:08 -0000 1.58 *************** *** 871,878 **** // Default constructor FrameParams::FrameParams(): ! m_fsort(FrameSort::IntraRefFrameSort()), ! m_frame_type( INTRA_FRAME ), ! m_reference_type( REFERENCE_FRAME ), ! m_output(false) {} --- 871,879 ---- // Default constructor FrameParams::FrameParams(): ! m_fsort(FrameSort::IntraRefFrameSort()), ! m_frame_type( INTRA_FRAME ), ! m_reference_type( REFERENCE_FRAME ), ! m_output(false), ! m_using_ac(true) {} *************** *** 896,900 **** m_orig_yl(orig_ylen), m_luma_depth(luma_depth), ! m_chroma_depth(chroma_depth) { m_orig_cxl = m_orig_cyl = 0; --- 897,902 ---- m_orig_yl(orig_ylen), m_luma_depth(luma_depth), ! m_chroma_depth(chroma_depth), ! m_using_ac(true) { m_orig_cxl = m_orig_cyl = 0; *************** *** 919,923 **** FrameParams::FrameParams(const ChromaFormat& cf, const FrameSort& fs): m_cformat(cf), ! m_output(false) { SetFSort( fs ); --- 921,926 ---- FrameParams::FrameParams(const ChromaFormat& cf, const FrameSort& fs): m_cformat(cf), ! m_output(false), ! m_using_ac(true) { SetFSort( fs ); *************** *** 938,942 **** m_orig_yl(m_dwt_yl), m_orig_cxl(m_dwt_chroma_xl), ! m_orig_cyl(m_dwt_chroma_yl) { if (sparams.Interlace()) --- 941,946 ---- m_orig_yl(m_dwt_yl), m_orig_cxl(m_dwt_chroma_xl), ! m_orig_cyl(m_dwt_chroma_yl), ! m_using_ac(true) { if (sparams.Interlace()) *************** *** 963,967 **** m_output(false), m_orig_xl(sparams.Xl()), ! m_orig_yl(sparams.Yl()) { SetFSort(fs); --- 967,972 ---- m_output(false), m_orig_xl(sparams.Xl()), ! m_orig_yl(sparams.Yl()), ! m_using_ac(true) { SetFSort(fs); |