Ignore:
Timestamp:
13 Nov 2015, 17:00:20 (9 years ago)
Author:
tech
Message:

Removed 3D.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified branches/HTM-16.0-MV-draft-5/source/Lib/TLibRenderer/TRenImage.cpp ΒΆ

    r1386 r1390  
    3737#include "TRenFilter.h"
    3838#include "assert.h"
    39 #if NH_3D_VSO
    40 
    41 
    42 template<typename T>
    43 TRenImage<T>::TRenImage( TRenImage& rcIn )
    44 
    45   allocatePlanes( rcIn.getPlane(0)->getWidth(), rcIn.getPlane(0)->getHeight(), rcIn.getNumberOfFullPlanes(), rcIn.getNumberOfQuaterPlanes() ) ; assign(&rcIn);
    46 }
    47 
    48 template<typename T>
    49 TRenImage<T>::TRenImage( UInt uiWidth, UInt uiHeight, UInt uiNumberOfFullPlanes, UInt uiNumberOfQuaterPlanes )
    50 
    51   allocatePlanes( uiWidth, uiHeight, uiNumberOfFullPlanes, uiNumberOfQuaterPlanes );
    52 }
    53 
    54 template<typename T>
    55 TRenImage<T>::TRenImage() : m_uiNumberOfFullPlanes(0), m_uiNumberOfQuaterPlanes(0), m_uiNumberOfPlanes(0), m_apcPlanes(0)
    56 {
    57  
    58 }
    59 
    60 
    61 template<>
    62 TRenImage<Pel>::TRenImage( TComPicYuv* pcPicYuv, Bool bFirstPlaneOnly )
    63 {
    64   if (bFirstPlaneOnly) //400
    65   {
    66     m_uiNumberOfPlanes       = 1;
    67     m_uiNumberOfFullPlanes   = 1;
    68     m_uiNumberOfQuaterPlanes = 0;
    69     m_apcPlanes    = new TRenImagePlane<Pel>*[ m_uiNumberOfPlanes ];
    70     m_apcPlanes[0] = new TRenImagePlane<Pel>( pcPicYuv->getBuf( COMPONENT_Y ), pcPicYuv->getWidth( COMPONENT_Y  ) + (REN_LUMA_MARGIN << 1),   pcPicYuv->getHeight( COMPONENT_Y  ) + (REN_LUMA_MARGIN << 1), pcPicYuv->getStride( COMPONENT_Y ), REN_LUMA_MARGIN );
    71   }
    72   else //420
    73   {
    74     m_uiNumberOfPlanes       = 3;
    75     m_uiNumberOfFullPlanes   = 1;
    76     m_uiNumberOfQuaterPlanes = 2;
    77 
    78     m_apcPlanes    = new TRenImagePlane<Pel>*[ m_uiNumberOfPlanes ];
    79     m_apcPlanes[0] = new TRenImagePlane<Pel>( pcPicYuv->getBuf( COMPONENT_Y  ), pcPicYuv->getWidth( COMPONENT_Y  ) + (REN_LUMA_MARGIN << 1),  pcPicYuv->getHeight( COMPONENT_Y  ) + (REN_LUMA_MARGIN << 1), pcPicYuv->getStride( COMPONENT_Y ), REN_LUMA_MARGIN );
    80     m_apcPlanes[1] = new TRenImagePlane<Pel>( pcPicYuv->getBuf( COMPONENT_Cb ), pcPicYuv->getWidth( COMPONENT_Cb ) +  REN_LUMA_MARGIN      ,  pcPicYuv->getHeight( COMPONENT_Cb ) +  REN_LUMA_MARGIN      , pcPicYuv->getStride( COMPONENT_Cb), REN_LUMA_MARGIN >> 1 );
    81     m_apcPlanes[2] = new TRenImagePlane<Pel>( pcPicYuv->getBuf( COMPONENT_Cr ), pcPicYuv->getWidth( COMPONENT_Cr ) +  REN_LUMA_MARGIN      ,  pcPicYuv->getHeight( COMPONENT_Cr ) +  REN_LUMA_MARGIN      , pcPicYuv->getStride( COMPONENT_Cr), REN_LUMA_MARGIN >> 1 );
    82   }
    83 }
    84 
    85 template<typename T>
    86 TRenImage<T>* TRenImage<T>::create()
    87 {
    88   return new TRenImage( m_apcPlanes[0]->getWidth(), m_apcPlanes[0]->getHeight(), m_uiNumberOfFullPlanes, m_uiNumberOfQuaterPlanes );
    89 }
    90 
    91 
    92 template<typename T>
    93 TRenImage<T>::TRenImage( TComPicYuv* pcPicYuv, Bool bFirstPlaneOnly )
    94 {
    95   assert(0);
    96 }
    97 
    98 template<class T>
    99 TRenImagePlane<T>* TRenImage<T>::getPlane(UInt uiPlaneNumber) const
    100 {
    101   return m_apcPlanes[uiPlaneNumber];
    102 }
    103 
    104 template<class T>
    105 TRenImagePlane<T>** TRenImage<T>::getPlanes() const
    106 {
    107   return m_apcPlanes;
    108 }
    109 
    110 template<typename T>
    111 Void TRenImage<T>::getDataAndStrides( T** pptData, Int* piStrides ) const
    112 {
    113   for (UInt uiCurPlane = 0; uiCurPlane < m_uiNumberOfPlanes; uiCurPlane++ )
    114   {
    115     piStrides[uiCurPlane] = m_apcPlanes[uiCurPlane]->getStride   ();
    116     pptData  [uiCurPlane] = m_apcPlanes[uiCurPlane]->getPlaneData();
    117   }
    118 }
    119 
    120 
    121 template<typename T>
    122 Void TRenImage<T>::getWidthAndHeight( Int* ppiWidths, Int* ppiHeights ) const
    123 {
    124   for (UInt uiCurPlane = 0; uiCurPlane < m_uiNumberOfPlanes; uiCurPlane++ )
    125   {
    126     ppiWidths [uiCurPlane] = m_apcPlanes[uiCurPlane]->getWidth ();
    127     ppiHeights[uiCurPlane] = m_apcPlanes[uiCurPlane]->getHeight();
    128   }
    129 }
    130 
    131 template<typename T>
    132 Void TRenImage<T>::allocatePlanes( UInt uiWidth, UInt uiHeight, UInt uiNumberOfFullPlanes, UInt uiNumberOfQuaterPlanes )
    133 {
    134   assert( uiNumberOfFullPlanes + uiNumberOfQuaterPlanes);
    135 
    136   UInt uiHalfWidth  = uiWidth  / 2;
    137   UInt uiHalfHeight = uiHeight / 2;
    138 
    139   uiHalfWidth  = (uiHalfWidth  == 0) ? 1 : uiHalfWidth ;
    140   uiHalfHeight = (uiHalfHeight == 0) ? 1 : uiHalfHeight;
    141 
    142   m_uiNumberOfPlanes       = uiNumberOfFullPlanes + uiNumberOfQuaterPlanes; ;
    143   m_uiNumberOfFullPlanes   = uiNumberOfFullPlanes;
    144   m_uiNumberOfQuaterPlanes = uiNumberOfQuaterPlanes;
    145 
    146   this->m_apcPlanes    = new TRenImagePlane<T>*[m_uiNumberOfPlanes];
    147 
    148   for (UInt uiCurPlane = 0; uiCurPlane < uiNumberOfFullPlanes; uiCurPlane++)
    149   {
    150     this->m_apcPlanes[uiCurPlane] = new TRenImagePlane<T>(uiWidth, uiHeight, REN_LUMA_MARGIN);
    151   };
    152 
    153   for (UInt uiCurPlane = 0; uiCurPlane < uiNumberOfQuaterPlanes; uiCurPlane++)
    154   {
    155     this->m_apcPlanes[uiCurPlane+uiNumberOfFullPlanes] = new TRenImagePlane<T>(uiHalfWidth, uiHalfHeight, REN_LUMA_MARGIN >> 1);
    156   };
    157 }
    158 
    159 
    160 template<class T>
    161 Void TRenImage<T>::assign(Int iVal)
    162 {
    163   for (UInt uiCurPlane = 0; uiCurPlane < m_uiNumberOfPlanes; uiCurPlane++)
    164   {
    165     m_apcPlanes[uiCurPlane]->assign( iVal);
    166   }
    167 }
    168 
    169 
    170 template<class T>
    171 Void TRenImage<T>::devide( Double dDevisor )
    172 {
    173   for (UInt uiCurPlane = 0; uiCurPlane < m_uiNumberOfPlanes; uiCurPlane++)
    174   {
    175     m_apcPlanes[uiCurPlane]->devide(dDevisor);
    176   }
    177 }
    178 
    179 
    180 template<class T> template<class S>
    181 Void TRenImage<T>::assign( TRenImage<S>* pcSrcImage )
    182 {
    183   if (pcSrcImage->getNumberOfPlanes() != m_uiNumberOfPlanes )
    184   {
    185     assert(0);
    186   }
    187 
    188   for (UInt uiCurPlane = 0; uiCurPlane < m_uiNumberOfPlanes; uiCurPlane++)
    189   {
    190     m_apcPlanes[uiCurPlane]->assign(pcSrcImage->getPlane(uiCurPlane)->getPlaneDataOrg(),pcSrcImage->getPlane(uiCurPlane)->getStride());
    191   }
    192 }
    193 
    194 
    195 template<typename T>
    196 Void TRenImage<T>::setData( TRenImage* pcInputImage, Bool bClean )
    197 {
    198   for (UInt uiPlane = 0; uiPlane < m_uiNumberOfPlanes; uiPlane++)
    199   {
    200     m_apcPlanes[uiPlane]->setData( pcInputImage->getPlane( uiPlane ), bClean );
    201   }
    202 }
    203 
    204 template<typename T>
    205 Void TRenImage<T>::extendMargin()
    206 {
    207   for (UInt uiPlane = 0; uiPlane < m_uiNumberOfPlanes; uiPlane++)
    208   {
    209     m_apcPlanes[uiPlane]->extendMargin();
    210   }
    211 }
    212 
    213 template<class T>
    214 Void TRenImage<T>::xDeletePlanes()
    215 {
    216   for (UInt uiCurPlane = 0; uiCurPlane < m_uiNumberOfPlanes; uiCurPlane++)
    217   {
    218     if ( m_apcPlanes[uiCurPlane])
    219     {
    220       delete m_apcPlanes[uiCurPlane];
    221     }
    222     m_apcPlanes[uiCurPlane] = 0;
    223   }
    224 }
    225 
    226 
    227 template<class T>
    228 Void TRenImage<T>::init()
    229 {
    230   // YUV-init
    231   m_apcPlanes[0]->assign((Pel) 0 );
    232 
    233   for (UInt uiCurPlane = 1; uiCurPlane < m_uiNumberOfPlanes; uiCurPlane++)
    234   {
    235     m_apcPlanes[uiCurPlane]->assign( (Pel) ( 1 << ( REN_BIT_DEPTH - 1 ) ) );
    236   }
    237 }
    238 
    239 
    240 template<class T>
    241 TRenImage<T>::~TRenImage()
    242 {
    243   xDeletePlanes();
    244   delete[] m_apcPlanes;
    245 }
    246 
    247 
    248 
    249 template<class T>
    250 UInt TRenImage<T>::getNumberOfPlanes() const
    251 {
    252   return m_uiNumberOfPlanes;
    253 }
    254 
    255 template<class T>
    256 UInt TRenImage<T>::getNumberOfQuaterPlanes() const
    257 {
    258   return m_uiNumberOfQuaterPlanes;
    259 }
    260 
    261 template<class T>
    262 UInt TRenImage<T>::getNumberOfFullPlanes() const
    263 {
    264   return m_uiNumberOfFullPlanes;
    265 }
    266 
    267 template class TRenImage<Pel>;
    268 template class TRenImage<Int>;
    269 template class TRenImage<Double>;
    270 template class TRenImage<Bool>;
    271 
    272 
    273 template Void TRenImage<Pel>::assign<Pel>    (TRenImage<Pel>*   );
    274 
    275 #endif // NH_3D
Note: See TracChangeset for help on using the changeset viewer.