Skip to content
Snippets Groups Projects
Commit ee31f385 authored by Philip Cowan's avatar Philip Cowan
Browse files

JVET-R0101: SEI alternative picture timing information inference rules

parent 414b68a8
No related branches found
No related tags found
No related merge requests found
......@@ -171,6 +171,8 @@
#define JVET_R0214_MMVD_SYNTAX_MODIFICATION 1 // JVET-R0214: MMVD syntax modifications
#define JVET_R0101_SEI_INFERENCE_RULES 1 // JVET-R0101: SEI alternative timing information inference rules (including those from JVET-R0413)
//########### place macros to be be kept below this line ###############
#define JVET_R0164_MEAN_SCALED_SATD 1 // JVET-R0164: Use a mean scaled version of SATD in encoder decisions
......
......@@ -718,13 +718,25 @@ void SEIReader::xParseSEIPictureTiming(SEIPictureTiming& sei, uint32_t payloadSi
{
sei.m_nalCpbAltInitialRemovalDelayDelta.resize(bp.m_bpMaxSubLayers);
sei.m_nalCpbAltInitialRemovalOffsetDelta.resize(bp.m_bpMaxSubLayers);
#if JVET_R0101_SEI_INFERENCE_RULES
for (int i = 0; i <= bp.m_bpMaxSubLayers - 1; ++i)
{
sei.m_nalCpbAltInitialRemovalDelayDelta[i].resize(bp.m_bpCpbCnt, 0);
sei.m_nalCpbAltInitialRemovalOffsetDelta[i].resize(bp.m_bpCpbCnt, 0);
}
sei.m_nalCpbDelayOffset.resize(bp.m_bpMaxSubLayers, 0);
sei.m_nalDpbDelayOffset.resize(bp.m_bpMaxSubLayers, 0);
#else
sei.m_nalCpbDelayOffset.resize(bp.m_bpMaxSubLayers);
sei.m_nalDpbDelayOffset.resize(bp.m_bpMaxSubLayers);
#endif
for (int i = (bp.m_sublayerInitialCpbRemovalDelayPresentFlag ? 0 : bp.m_bpMaxSubLayers - 1);
i <= bp.m_bpMaxSubLayers - 1; ++i)
{
#if !JVET_R0101_SEI_INFERENCE_RULES
sei.m_nalCpbAltInitialRemovalDelayDelta[i].resize(bp.m_bpCpbCnt);
sei.m_nalCpbAltInitialRemovalOffsetDelta[i].resize(bp.m_bpCpbCnt);
#endif
for (int j = 0; j < bp.m_bpCpbCnt; j++)
{
sei_read_code(pDecodedMessageOutputStream, bp.m_initialCpbRemovalDelayLength, symbol,
......@@ -745,13 +757,25 @@ void SEIReader::xParseSEIPictureTiming(SEIPictureTiming& sei, uint32_t payloadSi
{
sei.m_vclCpbAltInitialRemovalDelayDelta.resize(bp.m_bpMaxSubLayers);
sei.m_vclCpbAltInitialRemovalOffsetDelta.resize(bp.m_bpMaxSubLayers);
#if JVET_R0101_SEI_INFERENCE_RULES
for (int i = 0; i <= bp.m_bpMaxSubLayers - 1; ++i)
{
sei.m_vclCpbAltInitialRemovalDelayDelta[i].resize(bp.m_bpCpbCnt, 0);
sei.m_vclCpbAltInitialRemovalOffsetDelta[i].resize(bp.m_bpCpbCnt, 0);
}
sei.m_vclCpbDelayOffset.resize(bp.m_bpMaxSubLayers, 0);
sei.m_vclDpbDelayOffset.resize(bp.m_bpMaxSubLayers, 0);
#else
sei.m_vclCpbDelayOffset.resize(bp.m_bpMaxSubLayers);
sei.m_vclDpbDelayOffset.resize(bp.m_bpMaxSubLayers);
#endif
for (int i = (bp.m_sublayerInitialCpbRemovalDelayPresentFlag ? 0 : bp.m_bpMaxSubLayers - 1);
i <= bp.m_bpMaxSubLayers - 1; ++i)
{
#if !JVET_R0101_SEI_INFERENCE_RULES
sei.m_vclCpbAltInitialRemovalDelayDelta[i].resize(bp.m_bpCpbCnt);
sei.m_vclCpbAltInitialRemovalOffsetDelta[i].resize(bp.m_bpCpbCnt);
#endif
for (int j = 0; j < bp.m_bpCpbCnt; j++)
{
sei_read_code(pDecodedMessageOutputStream, bp.m_initialCpbRemovalDelayLength, symbol,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment