Opened 12 years ago

Closed 12 years ago

#376 closed defect (fixed)

section 6.5.1 raster order to tile scan order

Reported by: stworrall Owned by: bbross
Priority: minor Milestone: D7
Component: Text Version: D6 (H1003) dI/dJ/dK
Keywords: Cc: bbross, wjhan, jct-vc@…

Description

(From version dk)

In 6.5.1, an array CtbAddrTS[] is defined, seemingly for conversion of raster scan to tile scan order.

In the slice data syntax tables, an undefined array is referenced: CtbAddrRStoTS. It looks like the array in 6.5.1 (CtbAddrTS) and CtbAddrRStoTS might be the same, and their names should be aligned. Note that CtbAddrTS is widely referenced elsewhere as a variable, rather than an array.

Also, the definition of the raster scan to tile scan array in 6.5.1 does not look correct, and needs checking.

Change History (6)

comment:1 Changed 12 years ago by DefaultCC Plugin

  • Cc bbross wjhan jct-vc@… added

comment:2 in reply to: ↑ description ; follow-up: Changed 12 years ago by stworrall

Corrected pseudocode for section 6.5.1 (to replace first block of pseudocode):

for( ctbAddrRS = 0; ctbAddrRS < PicHeightInCtbs * PicWidthInCtbs; ctbAddrRS++ ) {

tbX = ctbAddrRS % PicWidthInCtbs
tbY = ctbAddrRS / PicWidthInCtbs


for( j = 0; j <= num_tile_columns_minus1; j++ ) {

if( tbX >= ColBd[j] ) {

tileX = j

}

}
for( i = 0; i <= num_tile_rows_minus1; i++ ) {

if( tbY >= RowBd[i] ) {

tileY = i

}

}
for( CtbAddrTS[ ctbAddrRS ] = 0, i = 0; i < tileX; i++ ) {

CtbAddrTS[ ctbAddrRS ] += RowHeight[tileY] * ColumnWidth[i]

}
for( i = 0; i < tileY; i++ ) {

CtbAddrTS[ ctbAddrRS ] += PicWidthInCtbs * RowHeight[i]

}
CtbAddrTS[ ctbAddrRS ] += (tbY - RowBd[tileY] ) * ColumnWidth[ tileY ] + tbX - ColBd[ tileX ]

}

Replying to stworrall:

(From version dk)

In 6.5.1, an array CtbAddrTS[] is defined, seemingly for conversion of raster scan to tile scan order.

In the slice data syntax tables, an undefined array is referenced: CtbAddrRStoTS. It looks like the array in 6.5.1 (CtbAddrTS) and CtbAddrRStoTS might be the same, and their names should be aligned. Note that CtbAddrTS is widely referenced elsewhere as a variable, rather than an array.

Also, the definition of the raster scan to tile scan array in 6.5.1 does not look correct, and needs checking.

comment:3 in reply to: ↑ 2 ; follow-up: Changed 12 years ago by shilin.xu

We think the original pseudocode in the CD text is incorrect, and we also think the "Corrected pseudocode" is incorrect as well, the recommended pseudocode is:


for( ctbAddrRS = 0; ctbAddrRS < PicHeightInCtbs * PicWidthInCtbs; ctbAddrRS++ ) {

tbX = ctbAddrRS % PicWidthInCtbs
tbY = ctbAddrRS / PicWidthInCtbs
for( j = 0; j <= num_tile_columns_minus1; j++ )

if( tbX < ColBd[ j + 1 ] )

tileX = j

for( i = 0; i <= num_tile_rows_minus1; i++ )

if( tbY < RowBd[ i + 1 ] )

tileY = i

CtbAddrTS[ ctbAddrRS ] = 0;
for( i = 0; i < tileX; i++ )

CtbAddrTS[ ctbAddrRS ] += RowHeight[ tileY ] * ColumnWidth[ i ]

for( j = 0; j < tileY: j++)

CtbAddrTS[ ctbAddrRS ] += RowHeight[ j ] * PicWidthInCtbs;

CtbAddrTS[ ctbAddrRS ] += ( tbY − RowBd[ tileY ] ) * ColumnWidth[ tileX ] + tbX − ColBd[ tileX ]

}


comment:4 in reply to: ↑ 3 Changed 12 years ago by stworrall

Merged corrections:

for( ctbAddrRS = 0; ctbAddrRS < PicHeightInCtbs * PicWidthInCtbs; ctbAddrRS++ ) {

tbX = ctbAddrRS % PicWidthInCtbs
tbY = ctbAddrRS / PicWidthInCtbs

for( j = 0; j <= num_tile_columns_minus1; j++ ) {

if( tbX >= ColBd[j] ) {

tileX = j

}

}
for( i = 0; i <= num_tile_rows_minus1; i++ ) {

if( tbY >= RowBd[i] ) {

tileY = i

}

}
for( CtbAddrTS[ ctbAddrRS ] = 0, i = 0; i < tileX; i++ ) {

CtbAddrTS[ ctbAddrRS ] += RowHeight[tileY] * ColumnWidth[i]

}
for( i = 0; i < tileY; i++ ) {

CtbAddrTS[ ctbAddrRS ] += PicWidthInCtbs * RowHeight[i]

}
CtbAddrTS[ ctbAddrRS ] += (tbY - RowBd[tileY] ) * ColumnWidth[ tileX ] + tbX - ColBd[ tileX ]

}

Replying to shilin.xu:

We think the original pseudocode in the CD text is incorrect, and we also think the "Corrected pseudocode" is incorrect as well, the recommended pseudocode is:


for( ctbAddrRS = 0; ctbAddrRS < PicHeightInCtbs * PicWidthInCtbs; ctbAddrRS++ ) {

tbX = ctbAddrRS % PicWidthInCtbs
tbY = ctbAddrRS / PicWidthInCtbs
for( j = 0; j <= num_tile_columns_minus1; j++ )

if( tbX < ColBd[ j + 1 ] )

tileX = j

for( i = 0; i <= num_tile_rows_minus1; i++ )

if( tbY < RowBd[ i + 1 ] )

tileY = i

CtbAddrTS[ ctbAddrRS ] = 0;
for( i = 0; i < tileX; i++ )

CtbAddrTS[ ctbAddrRS ] += RowHeight[ tileY ] * ColumnWidth[ i ]

for( j = 0; j < tileY: j++)

CtbAddrTS[ ctbAddrRS ] += RowHeight[ j ] * PicWidthInCtbs;

CtbAddrTS[ ctbAddrRS ] += ( tbY − RowBd[ tileY ] ) * ColumnWidth[ tileX ] + tbX − ColBd[ tileX ]

}


comment:5 Changed 12 years ago by bbross

  • Milestone set to D7

comment:6 Changed 12 years ago by bbross

  • Resolution set to fixed
  • Status changed from new to closed

Fixed in draft 7 (JCVTC-I1003_d3.doc)

Note: See TracTickets for help on using tickets.

This list contains all users that will be notified about changes made to this ticket.

These roles will be notified: Reporter, Owner, Subscriber, Participant

  • Benjamin Bross(Owner, Subscriber, Participant)
  • jct-vc@…(Subscriber)
  • karl.sharman@…(Always)
  • Karsten Suehring(Always)
  • Shilin Xu(Participant)
  • Stewart Worrall(Reporter, Participant)
  • Woo-Jin Han(Subscriber)