亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? scalingmatrix.h

?? JMVM MPEG MVC/3DAV 測試平臺 國際通用標準
?? H
字號:
/*
********************************************************************************

NOTE - One of the two copyright statements below may be chosen
       that applies for the software.

********************************************************************************

This software module was originally developed by

Heiko Schwarz    (Fraunhofer HHI),
Tobias Hinz      (Fraunhofer HHI),
Karsten Suehring (Fraunhofer HHI)

in the course of development of the ISO/IEC 14496-10:2005 Amd.1 (Scalable Video
Coding) for reference purposes and its performance may not have been optimized.
This software module is an implementation of one or more tools as specified by
the ISO/IEC 14496-10:2005 Amd.1 (Scalable Video Coding).

Those intending to use this software module in products are advised that its
use may infringe existing patents. ISO/IEC have no liability for use of this
software module or modifications thereof.

Assurance that the originally developed software module can be used
(1) in the ISO/IEC 14496-10:2005 Amd.1 (Scalable Video Coding) once the
ISO/IEC 14496-10:2005 Amd.1 (Scalable Video Coding) has been adopted; and
(2) to develop the ISO/IEC 14496-10:2005 Amd.1 (Scalable Video Coding): 

To the extent that Fraunhofer HHI owns patent rights that would be required to
make, use, or sell the originally developed software module or portions thereof
included in the ISO/IEC 14496-10:2005 Amd.1 (Scalable Video Coding) in a
conforming product, Fraunhofer HHI will assure the ISO/IEC that it is willing
to negotiate licenses under reasonable and non-discriminatory terms and
conditions with applicants throughout the world.

Fraunhofer HHI retains full right to modify and use the code for its own
purpose, assign or donate the code to a third party and to inhibit third
parties from using the code for products that do not conform to MPEG-related
ITU Recommendations and/or ISO/IEC International Standards. 

This copyright notice must be included in all copies or derivative works.
Copyright (c) ISO/IEC 2005. 

********************************************************************************

COPYRIGHT AND WARRANTY INFORMATION

Copyright 2005, International Telecommunications Union, Geneva

The Fraunhofer HHI hereby donate this source code to the ITU, with the following
understanding:
    1. Fraunhofer HHI retain the right to do whatever they wish with the
       contributed source code, without limit.
    2. Fraunhofer HHI retain full patent rights (if any exist) in the technical
       content of techniques and algorithms herein.
    3. The ITU shall make this code available to anyone, free of license or
       royalty fees.

DISCLAIMER OF WARRANTY

These software programs are available to the user without any license fee or
royalty on an "as is" basis. The ITU disclaims any and all warranties, whether
express, implied, or statutory, including any implied warranties of
merchantability or of fitness for a particular purpose. In no event shall the
contributor or the ITU be liable for any incidental, punitive, or consequential
damages of any kind whatsoever arising from the use of these programs.

This disclaimer of warranty extends to the user of these programs and user's
customers, employees, agents, transferees, successors, and assigns.

The ITU does not represent or warrant that the programs furnished hereunder are
free of infringement of any third-party patents. Commercial implementations of
ITU-T Recommendations, including shareware, may be subject to royalty fees to
patent holders. Information regarding the ITU-T patent policy is available from 
the ITU Web site at http://www.itu.int.

THIS IS NOT A GRANT OF PATENT RIGHTS - SEE THE ITU-T PATENT POLICY.

********************************************************************************
*/



#if !defined(AFX_SCALINGMATRIX_H__CBFE313E_2382_4ECC_9D41_416668E3507D__INCLUDED_)
#define AFX_SCALINGMATRIX_H__CBFE313E_2382_4ECC_9D41_416668E3507D__INCLUDED_


#include "H264AVCCommonLib/HeaderSymbolReadIf.h"
#include "H264AVCCommonLib/HeaderSymbolWriteIf.h"


H264AVC_NAMESPACE_BEGIN


#if defined( WIN32 )
# pragma warning( disable: 4251 )
#endif


class H264AVCCOMMONLIB_API ScalingMatrix
{
public:
  template< UInt uiBufSize >
  class ScalingList : public StatBuf<UChar,uiBufSize>
  {
  public:
    ScalingList ();
    ErrVal        read      ( HeaderSymbolReadIf*   pcReadIf,
                              const UChar*          pucScan,
                              Bool&                 rbUseDefaultScalingMatrixFlag );
    ErrVal        write     ( HeaderSymbolWriteIf*  pcWriteIf,
                              const UChar*          pucScan,
                              const Bool            bUseDefaultScalingMatrixFlag  ) const;
  };

  template< UInt uiBufSize >
  class SeqScaling
  {
  public:
    SeqScaling();
    ErrVal        read      ( HeaderSymbolReadIf*   pcReadIf,
                              const UChar*          pucScan );
    ErrVal        write     ( HeaderSymbolWriteIf*  pcWriteIf,
                              const UChar*          pucScan )   const;
    const UChar*  getMatrix ()                                  const;
  
  private:
    Bool                    m_bScalingListPresentFlag;
    Bool                    m_bUseDefaultScalingMatrixFlag;
    ScalingList<uiBufSize>  m_aiScalingList;
  };

public:
  ScalingMatrix();

  ErrVal        read  ( HeaderSymbolReadIf*   pcReadIf,
                        Bool                  bRead8x8 );
  ErrVal        write ( HeaderSymbolWriteIf*  pcWriteIf,
                        Bool                  bWrite8x8 ) const;
  const UChar*  get   ( UInt                  uiMatrix )  const;

private:
  StatBuf<SeqScaling<16>,6> m_acScalingMatrix4x4;
  StatBuf<SeqScaling<64>,2> m_acScalingMatrix8x8;
};


#if defined( WIN32 )
# pragma warning( default: 4251 )
#endif





template<UInt uiBufSize>
ScalingMatrix::ScalingList<uiBufSize>::ScalingList()
{
  this->setAll(16); // leszek: C++ standard compliance
}


template<UInt uiBufSize>
ErrVal
ScalingMatrix::ScalingList<uiBufSize>::read( HeaderSymbolReadIf*  pcReadIf,
                                             const UChar*         pucScan,
                                             Bool&                rbUseDefaultScalingMatrixFlag )
{
  Int   iDeltaScale;
 	RNOK( pcReadIf->getSvlc( iDeltaScale,     "SCALING: delta_scale" ) );
  rbUseDefaultScalingMatrixFlag = ( iDeltaScale == -8 );
  ROTRS( rbUseDefaultScalingMatrixFlag, Err::m_nOK );
  
  this->get(0)  = ( ( 8 + iDeltaScale ) & 0xff );
  UInt  n       = 1;
  for(; n < this->size(); n++ ) // leszek
  {
   	RNOK( pcReadIf->getSvlc( iDeltaScale,   "SCALING: delta_scale" ) );
    this->get( pucScan[n] ) = ( ( this->get( pucScan[n-1] ) + iDeltaScale ) & 0xff );
    if( 0 == this->get( pucScan[n] ) )
    {
      break;
    }
  }
  for( ; n < this->size(); n++ ) // leszek
  {
    this->get( pucScan[n] ) = this->get( pucScan[n - 1] );
  }
  
  return Err::m_nOK;
}


template<UInt uiBufSize>
ErrVal
ScalingMatrix::ScalingList<uiBufSize>::write( HeaderSymbolWriteIf*  pcWriteIf,
                                              const UChar*          pucScan,
                                              const Bool            bUseDefaultScalingMatrixFlag ) const
{
  if( bUseDefaultScalingMatrixFlag )
  {
   	RNOK( pcWriteIf->writeSvlc( -8,         "SCALING: delta_scale" ) );
    return Err::m_nOK;
  }

  const UChar ucLast    = this->get( pucScan[this->size()-1] ); // leszek
  Int         iLastDiff = this->size() - 2; // leszek
  for( ; iLastDiff >= 0; iLastDiff-- ) 
  {
    if( ucLast != this->get( pucScan[iLastDiff] ) )
    {
      break;
    }
  }
  Int  iLast = 8;
  for( Int n = 0; n < iLastDiff+2; n++ )
  {
    AF(); // check modulo
    Int iDeltaScale = this->get( pucScan[n] ) - iLast;
    iDeltaScale     = ( ( iDeltaScale << 24 ) >> 24 );
   	RNOK( pcWriteIf->writeSvlc( iDeltaScale, "SCALING: delta_scale" ) );
    iLast           = this->get( pucScan[n] );
  }

  return Err::m_nOK;
}


template<UInt uiBufSize>
ScalingMatrix::SeqScaling<uiBufSize>::SeqScaling()
: m_bScalingListPresentFlag       ( false )
, m_bUseDefaultScalingMatrixFlag  ( true )
{
}


template<UInt uiBufSize>
const UChar*
ScalingMatrix::SeqScaling<uiBufSize>::getMatrix () const
{
  return ( m_bScalingListPresentFlag ? &m_aiScalingList.get(0) : 0 );
}


template<UInt uiBufSize>
ErrVal
ScalingMatrix::SeqScaling<uiBufSize>::read( HeaderSymbolReadIf* pcReadIf,
                                            const UChar*        pucScan )
{
  RNOK  ( pcReadIf->getFlag( m_bScalingListPresentFlag,     "SCALING: scaling_list_present_flag" ) );
  ROTRS ( ! m_bScalingListPresentFlag, Err::m_nOK );
  
  RNOK  ( m_aiScalingList.read( pcReadIf, pucScan, m_bUseDefaultScalingMatrixFlag ) );

  m_bScalingListPresentFlag = ! m_bUseDefaultScalingMatrixFlag;
  
  return Err::m_nOK;
}


template<UInt uiBufSize>
ErrVal
ScalingMatrix::SeqScaling<uiBufSize>::write( HeaderSymbolWriteIf* pcWriteIf,
                                             const UChar*         pucScan  ) const
{
  RNOK  ( pcWriteIf->writeFlag( m_bScalingListPresentFlag,  "SCALING: scaling_list_present_flag" ) );
  ROTRS ( ! m_bScalingListPresentFlag, Err::m_nOK );
  RNOK  ( m_aiScalingList.write( pcWriteIf, pucScan, m_bUseDefaultScalingMatrixFlag ) );

  return Err::m_nOK;
}



H264AVC_NAMESPACE_END




#endif //!defined(AFX_SCALINGMATRIX_H__CBFE313E_2382_4ECC_9D41_416668E3507D__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美视频一区二区三区| 日本成人中文字幕| 日日摸夜夜添夜夜添国产精品 | 性欧美疯狂xxxxbbbb| 国产一区二区不卡在线| 欧美三日本三级三级在线播放| 国产视频一区二区三区在线观看| 亚洲成人1区2区| 99精品视频一区二区三区| 欧美刺激脚交jootjob| 亚洲线精品一区二区三区| 成人免费视频视频在线观看免费 | 国产在线视频一区二区三区| 欧美色爱综合网| 亚洲天堂a在线| 成人性色生活片| 欧美xxxxx牲另类人与| 亚洲成精国产精品女| 色欧美日韩亚洲| 亚洲色图在线播放| 国产成人综合在线| 久久久久久久久久看片| 男女男精品网站| 69精品人人人人| 一区二区三区自拍| 色综合久久中文字幕| 亚洲色图一区二区三区| 成人av网站在线| 国产精品网站一区| 不卡的av中国片| 亚洲欧洲av在线| 91在线porny国产在线看| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲欧洲综合另类在线| 成人av在线影院| 国产精品成人在线观看| 国产成人亚洲精品狼色在线| 久久综合九色综合欧美就去吻| 卡一卡二国产精品| 精品美女一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 国产亚洲一二三区| 成人激情免费视频| 亚洲免费观看高清完整版在线观看熊| 99久久精品国产导航| 亚洲综合视频在线观看| 欧美性感一类影片在线播放| 中文字幕日韩欧美一区二区三区| av电影在线观看不卡 | 国产亚洲午夜高清国产拍精品 | 亚洲欧洲国产专区| 欧洲日韩一区二区三区| 秋霞电影一区二区| 国产免费成人在线视频| 日本精品一区二区三区四区的功能| 亚洲精选免费视频| 这里只有精品电影| 国产一区91精品张津瑜| 亚洲日本护士毛茸茸| 欧美一区二区在线看| 国产成人精品免费视频网站| 又紧又大又爽精品一区二区| 91精品福利在线一区二区三区 | 精品一区二区日韩| 亚洲欧美综合另类在线卡通| 欧美三级中文字幕在线观看| 韩日av一区二区| 日本一区二区高清| 国产盗摄视频一区二区三区| 在线一区二区三区四区五区| 日韩福利视频导航| 日本一二三四高清不卡| 欧美日韩中文字幕一区| 国产一区二区免费在线| 一区二区在线免费观看| 日韩免费视频一区二区| 色就色 综合激情| 国产精品中文欧美| 午夜免费欧美电影| 中文字幕精品一区| 欧美va日韩va| 欧美日产在线观看| 92精品国产成人观看免费| 免费在线看成人av| 一区二区三区免费网站| 国产精品免费视频观看| 精品成人免费观看| 91在线国产观看| 国产精品一区久久久久| 视频一区国产视频| 亚洲一区二区影院| 亚洲视频在线一区观看| 久久蜜桃av一区二区天堂| 在线综合亚洲欧美在线视频| 一本大道久久a久久精二百| 国产毛片精品一区| 美腿丝袜在线亚洲一区| 亚洲国产精品麻豆| 综合激情网...| 欧美激情一区二区| 国产欧美一二三区| 精品国产一区久久| 日韩欧美在线影院| 欧美肥大bbwbbw高潮| 在线观看成人免费视频| 色婷婷亚洲精品| 99国产精品久久久久| 成人精品一区二区三区四区| 国产乱色国产精品免费视频| 久久不见久久见免费视频7 | 久久精工是国产品牌吗| 亚洲一本大道在线| 午夜av电影一区| 亚洲3atv精品一区二区三区| 一区二区三区产品免费精品久久75| 国产精品久久久久久久第一福利 | 91麻豆国产香蕉久久精品| 成人18精品视频| 99久久777色| 色8久久人人97超碰香蕉987| 91国在线观看| 欧美日韩成人一区| 欧美一区二区日韩| 欧美精品一区二区久久婷婷| 久久嫩草精品久久久精品一| 国产欧美精品一区| 亚洲人妖av一区二区| 亚洲综合无码一区二区| 五月综合激情婷婷六月色窝| 蜜桃久久久久久久| 国产一区在线看| 91网站最新网址| 69堂精品视频| 国产色婷婷亚洲99精品小说| 国产精品久久99| 亚洲午夜久久久久久久久久久| 日韩福利视频网| 国产xxx精品视频大全| 日本高清不卡aⅴ免费网站| 欧美一区二区精品在线| 久久一日本道色综合| 亚洲精品高清视频在线观看| 亚洲成人www| 韩国中文字幕2020精品| 91啦中文在线观看| 日韩欧美色综合网站| 国产精品人妖ts系列视频| 亚洲一区二区3| 国产综合色产在线精品| 91国产福利在线| 久久午夜免费电影| 一区二区三区高清在线| 久久91精品久久久久久秒播| 91视频一区二区三区| 欧美电影免费观看高清完整版在| 国产精品看片你懂得| 日本欧美一区二区在线观看| 成人av在线影院| 精品久久久网站| 亚洲国产综合在线| 成人免费福利片| 日韩午夜激情免费电影| 亚洲在线视频一区| 成人一道本在线| 精品少妇一区二区三区免费观看 | 久久狠狠亚洲综合| 91麻豆国产自产在线观看| 久久综合成人精品亚洲另类欧美| 亚洲一区二区av在线| www.亚洲国产| 久久婷婷一区二区三区| 肉丝袜脚交视频一区二区| 99视频精品全部免费在线| 26uuu欧美日本| 青青青爽久久午夜综合久久午夜| 日本精品视频一区二区| 国产欧美日韩另类视频免费观看 | 亚洲国产一区二区三区青草影视| 国产一区二区三区最好精华液| 欧美日韩免费电影| 亚洲美女免费在线| 成人国产电影网| 国产清纯在线一区二区www| 老司机午夜精品99久久| 欧美日韩一本到| 亚洲电影你懂得| 在线精品视频一区二区| 亚洲精品免费看| 在线视频亚洲一区| 自拍av一区二区三区| 白白色 亚洲乱淫| 亚洲视频精选在线| 国产999精品久久久久久| 久久这里都是精品| 国产精品一二三四区| 久久综合国产精品| 国产福利91精品一区二区三区| 久久影院午夜论| 国产一区二区不卡| 国产区在线观看成人精品|