Commit 80690cc5 authored by Karsten Suehring's avatar Karsten Suehring

remove macro JVET_L0209_PCM

parent fbe7406d
......@@ -61,7 +61,6 @@
#define JVET_L0209_PCM 1 // PCM mode
#define JVET_L0553_FIX_INITQP 1
#define JVET_L0053_L0272_DM 1 // use center position of luma block to derive DM
......
......@@ -724,7 +724,6 @@ bool CABACReader::coding_unit( CodingUnit &cu, Partitioner &partitioner, CUCtx&
// --> create PUs
CU::addPUs( cu );
#if JVET_L0209_PCM
// pcm samples
if( CU::isIntra(cu) )
{
......@@ -736,25 +735,11 @@ bool CABACReader::coding_unit( CodingUnit &cu, Partitioner &partitioner, CUCtx&
return end_of_ctu( cu, cuCtx );
}
}
#endif
#if JVET_L0283_MULTI_REF_LINE
extend_ref_line( cu );
#endif
#if !JVET_L0209_PCM
// pcm samples
if( CU::isIntra(cu) )
{
pcm_flag( cu );
if( cu.ipcm )
{
TransformUnit& tu = cs.addTU( cu, partitioner.chType );
pcm_samples( tu );
return end_of_ctu( cu, cuCtx );
}
}
#endif
// prediction data ( intra prediction modes / reference indexes + motion vectors )
cu_pred_data( cu );
......@@ -849,19 +834,11 @@ void CABACReader::pred_mode( CodingUnit& cu )
}
}
#if JVET_L0209_PCM
void CABACReader::pcm_flag( CodingUnit& cu, Partitioner &partitioner )
#else
void CABACReader::pcm_flag( CodingUnit& cu )
#endif
{
const SPS& sps = *cu.cs->sps;
#if JVET_L0209_PCM
if( !sps.getUsePCM() || partitioner.currArea().lwidth() > (1 << sps.getPCMLog2MaxSize()) || partitioner.currArea().lwidth() < (1 << sps.getPCMLog2MinSize())
|| partitioner.currArea().lheight() > (1 << sps.getPCMLog2MaxSize()) || partitioner.currArea().lheight() < (1 << sps.getPCMLog2MinSize()) )
#else
if( !sps.getUsePCM() || cu.lumaSize().width > (1 << sps.getPCMLog2MaxSize()) || cu.lumaSize().width < (1 << sps.getPCMLog2MinSize()) )
#endif
{
cu.ipcm = false;
return;
......@@ -1856,24 +1833,15 @@ void CABACReader::pcm_samples( TransformUnit& tu )
{
CHECK( !tu.cu->ipcm, "pcm mode expected" );
#if JVET_L0209_PCM
const CodingStructure *cs = tu.cs;
const ChannelType chType = tu.chType;
#endif
const SPS& sps = *tu.cu->cs->sps;
#if !JVET_L0209_PCM
const ComponentID maxCompId = ( tu.chromaFormat == CHROMA_400 ? COMPONENT_Y : COMPONENT_Cr );
#endif
tu.depth = 0;
#if JVET_L0209_PCM
ComponentID compStr = (CS::isDualITree(*cs) && !isLuma(chType)) ? COMPONENT_Cb: COMPONENT_Y;
ComponentID compEnd = (CS::isDualITree(*cs) && isLuma(chType)) ? COMPONENT_Y : COMPONENT_Cr;
for( ComponentID compID = compStr; compID <= compEnd; compID = ComponentID(compID+1) )
#else
for( ComponentID compID = COMPONENT_Y; compID <= maxCompId; compID = ComponentID(compID+1) )
#endif
{
PelBuf samples = tu.getPcmbuf( compID );
const unsigned sampleBits = sps.getPCMBitDepth( toChannelType(compID) );
......
......@@ -78,11 +78,7 @@ public:
void cu_transquant_bypass_flag ( CodingUnit& cu );
void cu_skip_flag ( CodingUnit& cu );
void pred_mode ( CodingUnit& cu );
#if JVET_L0209_PCM
void pcm_flag ( CodingUnit& cu, Partitioner& pm );
#else
void pcm_flag ( CodingUnit& cu );
#endif
void cu_pred_data ( CodingUnit& cu );
#if JVET_L0646_GBI
void cu_gbi_flag ( CodingUnit& cu );
......
......@@ -260,20 +260,13 @@ void DecCu::xDecodePCMTexture(TransformUnit &tu, const ComponentID compID)
*/
void DecCu::xReconPCM(TransformUnit &tu)
{
#if JVET_L0209_PCM
const CodingStructure *cs = tu.cs;
const ChannelType chType = tu.chType;
ComponentID compStr = (CS::isDualITree(*cs) && !isLuma(chType)) ? COMPONENT_Cb: COMPONENT_Y;
ComponentID compEnd = (CS::isDualITree(*cs) && isLuma(chType)) ? COMPONENT_Y : COMPONENT_Cr;
for( ComponentID compID = compStr; compID <= compEnd; compID = ComponentID(compID+1) )
#else
for (uint32_t ch = 0; ch < tu.blocks.size(); ch++)
#endif
{
#if !JVET_L0209_PCM
ComponentID compID = ComponentID(ch);
#endif
xDecodePCMTexture(tu, compID);
}
......
......@@ -637,7 +637,6 @@ void CABACWriter::coding_unit( const CodingUnit& cu, Partitioner& partitioner, C
return;
}
#if JVET_L0209_PCM
// pcm samples
if( CU::isIntra(cu) )
{
......@@ -648,7 +647,6 @@ void CABACWriter::coding_unit( const CodingUnit& cu, Partitioner& partitioner, C
return;
}
}
#endif
// prediction mode and partitioning data
pred_mode ( cu );
......@@ -657,18 +655,6 @@ void CABACWriter::coding_unit( const CodingUnit& cu, Partitioner& partitioner, C
extend_ref_line(cu);
#endif
#if !JVET_L0209_PCM
// pcm samples
if( CU::isIntra(cu) )
{
pcm_data( cu );
if( cu.ipcm )
{
end_of_ctu( cu, cuCtx );
return;
}
}
#endif
// prediction data ( intra prediction modes / reference indexes + motion vectors )
cu_pred_data( cu );
......@@ -712,17 +698,9 @@ void CABACWriter::pred_mode( const CodingUnit& cu )
m_BinEncoder.encodeBin( ( CU::isIntra( cu ) ), Ctx::PredMode() );
}
#if JVET_L0209_PCM
void CABACWriter::pcm_data( const CodingUnit& cu, Partitioner& partitioner )
#else
void CABACWriter::pcm_data( const CodingUnit& cu )
#endif
{
#if JVET_L0209_PCM
pcm_flag( cu, partitioner );
#else
pcm_flag( cu );
#endif
if( cu.ipcm )
{
m_BinEncoder.pcmAlignBits();
......@@ -730,19 +708,11 @@ void CABACWriter::pcm_data( const CodingUnit& cu )
}
}
#if JVET_L0209_PCM
void CABACWriter::pcm_flag( const CodingUnit& cu, Partitioner& partitioner )
#else
void CABACWriter::pcm_flag( const CodingUnit& cu )
#endif
{
const SPS& sps = *cu.cs->sps;
#if JVET_L0209_PCM
if( !sps.getUsePCM() || partitioner.currArea().lwidth() > (1 << sps.getPCMLog2MaxSize()) || partitioner.currArea().lwidth() < (1 << sps.getPCMLog2MinSize())
|| partitioner.currArea().lheight() > (1 << sps.getPCMLog2MaxSize()) || partitioner.currArea().lheight() < (1 << sps.getPCMLog2MinSize()) )
#else
if( !sps.getUsePCM() || cu.lumaSize().width > (1 << sps.getPCMLog2MaxSize()) || cu.lumaSize().width < (1 << sps.getPCMLog2MinSize()) )
#endif
{
return;
}
......@@ -1798,17 +1768,12 @@ void CABACWriter::pcm_samples( const TransformUnit& tu )
const SPS& sps = *tu.cu->cs->sps;
#if JVET_L0209_PCM
const CodingStructure *cs = tu.cs;
const ChannelType chType = tu.chType;
ComponentID compStr = (CS::isDualITree(*cs) && !isLuma(chType)) ? COMPONENT_Cb: COMPONENT_Y;
ComponentID compEnd = (CS::isDualITree(*cs) && isLuma(chType)) ? COMPONENT_Y : COMPONENT_Cr;
for( ComponentID compID = compStr; compID <= compEnd; compID = ComponentID(compID+1) )
#else
const ComponentID maxCompId = ( tu.chromaFormat == CHROMA_400 ? COMPONENT_Y : COMPONENT_Cr );
for( ComponentID compID = COMPONENT_Y; compID <= maxCompId; compID = ComponentID(compID+1) )
#endif
{
const CPelBuf samples = tu.getPcmbuf( compID );
const unsigned sampleBits = sps.getPCMBitDepth( toChannelType(compID) );
......
......@@ -90,13 +90,8 @@ public:
void cu_transquant_bypass_flag ( const CodingUnit& cu );
void cu_skip_flag ( const CodingUnit& cu );
void pred_mode ( const CodingUnit& cu );
#if JVET_L0209_PCM
void pcm_data ( const CodingUnit& cu, Partitioner& pm );
void pcm_flag ( const CodingUnit& cu, Partitioner& pm );
#else
void pcm_data ( const CodingUnit& cu );
void pcm_flag ( const CodingUnit& cu );
#endif
void cu_pred_data ( const CodingUnit& cu );
#if JVET_L0646_GBI
void cu_gbi_flag ( const CodingUnit& cu );
......
......@@ -1404,11 +1404,7 @@ void EncCu::xCheckRDCostIntra( CodingStructure *&tempCS, CodingStructure *&bestC
m_CABACEstimator->extend_ref_line( cu );
#endif
m_CABACEstimator->cu_pred_data ( cu );
#if JVET_L0209_PCM
m_CABACEstimator->pcm_data ( cu, partitioner );
#else
m_CABACEstimator->pcm_data ( cu );
#endif
// Encode Coefficients
CUCtx cuCtx;
......@@ -1454,11 +1450,7 @@ void EncCu::xCheckIntraPCM(CodingStructure *&tempCS, CodingStructure *&bestCS, P
{
tempCS->initStructData( encTestMode.qp, encTestMode.lossless );
#if JVET_L0209_PCM
CodingUnit &cu = tempCS->addCU( CS::getArea( *tempCS, tempCS->area, partitioner.chType ), partitioner.chType );
#else
CodingUnit &cu = tempCS->addCU( tempCS->area, partitioner.chType );
#endif
partitioner.setCUData( cu );
cu.slice = tempCS->slice;
......@@ -1475,15 +1467,9 @@ void EncCu::xCheckIntraPCM(CodingStructure *&tempCS, CodingStructure *&bestCS, P
cu.qp = encTestMode.qp;
cu.ipcm = true;
#if JVET_L0209_PCM
tempCS->addPU( CS::getArea( *tempCS, tempCS->area, partitioner.chType ), partitioner.chType );
tempCS->addTU( CS::getArea( *tempCS, tempCS->area, partitioner.chType ), partitioner.chType );
#else
tempCS->addPU(tempCS->area, partitioner.chType);
tempCS->addTU( tempCS->area, partitioner.chType );
#endif
m_pcIntraSearch->IPCMSearch(*tempCS, partitioner);
......@@ -1505,11 +1491,7 @@ void EncCu::xCheckIntraPCM(CodingStructure *&tempCS, CodingStructure *&bestCS, P
m_CABACEstimator->cu_skip_flag ( cu );
}
m_CABACEstimator->pred_mode ( cu );
#if JVET_L0209_PCM
m_CABACEstimator->pcm_data ( cu, partitioner );
#else
m_CABACEstimator->pcm_data ( cu );
#endif
tempCS->fracBits = m_CABACEstimator->getEstFracBits();
......
......@@ -990,17 +990,10 @@ void IntraSearch::estIntraPredChromaQT(CodingUnit &cu, Partitioner &partitioner)
void IntraSearch::IPCMSearch(CodingStructure &cs, Partitioner& partitioner)
{
#if JVET_L0209_PCM
ComponentID compStr = (CS::isDualITree(cs) && !isLuma(partitioner.chType)) ? COMPONENT_Cb: COMPONENT_Y;
ComponentID compEnd = (CS::isDualITree(cs) && isLuma(partitioner.chType)) ? COMPONENT_Y : COMPONENT_Cr;
for( ComponentID compID = compStr; compID <= compEnd; compID = ComponentID(compID+1) )
#else
for (uint32_t ch = 0; ch < getNumberValidTBlocks( *cs.pcv ); ch++)
#endif
{
#if !JVET_L0209_PCM
const ComponentID compID = ComponentID(ch);
#endif
xEncPCM(cs, partitioner, compID);
}
......@@ -1014,9 +1007,6 @@ void IntraSearch::IPCMSearch(CodingStructure &cs, Partitioner& partitioner)
cs.cost = 0;
cs.setDecomp(cs.area);
#if !JVET_L0209_PCM
cs.picture->getRecoBuf(cs.area).copyFrom(cs.getRecoBuf());
#endif
}
void IntraSearch::xEncPCM(CodingStructure &cs, Partitioner& partitioner, const ComponentID &compID)
......@@ -1080,11 +1070,7 @@ void IntraSearch::xEncIntraHeader(CodingStructure &cs, Partitioner &partitioner,
#endif
if( CU::isIntra(cu) )
{
#if JVET_L0209_PCM
m_CABACEstimator->pcm_data( cu, partitioner );
#else
m_CABACEstimator->pcm_data( cu );
#endif
if( cu.ipcm )
{
return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment