Opened 6 years ago
Closed 6 years ago
#836 closed defect (fixed)
Variables in rectangular slice map initialization
| Reported by: | luoda | Owned by: | |
|---|---|---|---|
| Priority: | minor | Milestone: | |
| Component: | spec | Version: | |
| Keywords: | VVC D8 vA | Cc: | ksuehring, bbross, XiangLi, fbossen, jvet@… |
Description
In VVC D8 vA, 6.5.1 rectangular slice map derivation, num_slices_in_tile_minus1 is not a syntax element in the following text,
else {
tileIdx = 0
for( i = 0; i <= num_slices_in_pic_minus1; i++ )
NumCtusInSlice[ i ] = 0
for( i = 0; i <= num_slices_in_pic_minus1; i++ ) {
SliceTopLeftTileIdx[ i ] = tileIdx
tileX = tileIdx % NumTileColumns
tileY = tileIdx / NumTileColumns
if( i = = num_slices_in_pic_minus1 ) {
slice_width_in_tiles_minus1[ i ] = NumTileColumns − 1 − tileX
slice_height_in_tiles_minus1[ i ] = NumTileRows − 1 − tileY
num_slices_in_tile_minus1[ i ] = 0
}
if( slice_width_in_tiles_minus1[ i ] = = 0 && slice_height_in_tiles_minus1[ i ] = = 0 ) { (29)
ctbY = tileRowBd[ tileY ]
numSlicesInTileMinus1 = NumSlicesInTile[ i ] − 1
for( j = 0; j < num_slices_in_tile_minus1[ i ]; j++ ) {
AddCtbsToSlice( i, tileColBd[ tileX ], tileColBd[ tileX + 1 ],
ctbY, ctbY + SliceHeightInCtusMinus1[ i ] + 1 )
ctbY += SliceHeightInCtusMinus1[ i ] + 1
i++
}
AddCtbsToSlice( i, tileColBd[ tileX ], tileColBd[ tileX + 1 ], ctbY, tileRowBd[ tileY + 1 ] )
} else
for( j = 0; j <= slice_height_in_tiles_minus1[ i ]; j++ )
for( k = 0; k <= slice_width_in_tiles_minus1[ i ]; k++ )
AddCtbsToSlice( i, tileColBd[ tileX + k ], tileColBd[ tileX + k + 1 ],
tileRowBd[ tileY + j ], tileRowBd[ tileY + j + 1 ] )
if( tile_idx_delta_present_flag )
tileIdx += tile_idx_delta[ i ]
else {
tileIdx += slice_width_in_tiles_minus1[ i ] + 1
if( tileIdx % NumTileColumns = = 0 )
tileIdx += slice_height_in_tiles_minus1[ i ] * NumTileColumns
}
}
}
Suggest to change it to the following:
else {
tileIdx = 0
for( i = 0; i <= num_slices_in_pic_minus1; i++ )
NumCtusInSlice[ i ] = 0
for( i = 0; i <= num_slices_in_pic_minus1; i++ ) {
SliceTopLeftTileIdx[ i ] = tileIdx
tileX = tileIdx % NumTileColumns
tileY = tileIdx / NumTileColumns
if( i = = num_slices_in_pic_minus1 ) {
slice_width_in_tiles_minus1[ i ] = NumTileColumns − 1 − tileX
slice_height_in_tiles_minus1[ i ] = NumTileRows − 1 − tileY
NumSliceInTile[ i ] = 1
}
if( slice_width_in_tiles_minus1[ i ] = = 0 && slice_height_in_tiles_minus1[ i ] = = 0 ) { (29)
ctbY = tileRowBd[ tileY ]
for( j = 0; j < NumSlicesInTiles[ i ] - 1; j++ ) {
AddCtbsToSlice( i, tileColBd[ tileX ], tileColBd[ tileX + 1 ],
ctbY, ctbY + SliceHeightInCtusMinus1[ i ] + 1 )
ctbY += SliceHeightInCtusMinus1[ i ] + 1
i++
}
AddCtbsToSlice( i, tileColBd[ tileX ], tileColBd[ tileX + 1 ], ctbY, tileRowBd[ tileY + 1 ] )
} else
for( j = 0; j <= slice_height_in_tiles_minus1[ i ]; j++ )
for( k = 0; k <= slice_width_in_tiles_minus1[ i ]; k++ )
AddCtbsToSlice( i, tileColBd[ tileX + k ], tileColBd[ tileX + k + 1 ],
tileRowBd[ tileY + j ], tileRowBd[ tileY + j + 1 ] )
if( tile_idx_delta_present_flag )
tileIdx += tile_idx_delta[ i ]
else {
tileIdx += slice_width_in_tiles_minus1[ i ] + 1
if( tileIdx % NumTileColumns = = 0 )
tileIdx += slice_height_in_tiles_minus1[ i ] * NumTileColumns
}
}
}
Change history (1)
comment:1 Changed 6 years ago by yk
- Resolution set to fixed
- Status changed from new to closed
Note: See TracTickets for help on using tickets.
Good catch! Thanks! To be fixed in JVET-Q2001-vB.