Opened 4 years ago

Closed 4 years ago

# Hemisphere cubemap sample location adjustment (8.15.1.10)

Reported by: Owned by: LouiseLee minor VUI/SEI yk, garysull@…, jill.boyce@…, jvet@…

### Description

In 8.15.1.10, the process is for adjusting sample locations to the correct half face according to the full face index when the hemisphere cubemap is used.
However, the calculation of tmpHorPos and tmpVerPos will make all the samples move to the top left quarter of the face and result in two samples on the same location.
The entire process is shown below:

rightFaceIdx = {4, 2, 0, 1, 1, 0}
bottomFaceIdx = {3, 5, 5, 5, 3, 3}
if( n = = 2 ) {

} else {

tmpHorPos = hPosRot > faceWidth / 2 ? hPosRot - faceWidth / 2 : hPosRot
tmpVerPos = vPosRot > faceHeight / 2 ? vPosRot - faceHeight / 2 : vPosRot
hPosAdj = hFullFaceIdx[ face_index[ n ] ] = = face_index[ 2 ] ? tmpHorPos + faceWidth / 2 : tmpHorPos
vPosAdj = vFullFaceIdx[ face_index[ n ] ] = = face_index[ 2 ] ? tmpVerPos + faceHeight / 2 : tmpVerPos

}

To fix this issue and adjust the samples to the correct half face, I would suggest the following:

leftFaceIdx = {5, 3, 1, 0, 0, 1}
rightFaceIdx = {4, 2, 0, 1, 1, 0}
topFaceIdx = {2, 4, 4, 4, 2, 2}
bottomFaceIdx = {3, 5, 5, 5, 3, 3}
if( n != 2 ) {

if( face_index[ 2 ] = = leftFaceIdx[ face_index[ n ] ] && hPosAdj >= faceWidth / 2 ) {

} else if( face_index[ 2 ] = = rightFaceIdx[ face_index[ n ] ] && hPosAdj < faceWidth / 2 ) {

} else if( face_index[ 2 ] = = topFaceIdx[ face_index[ n ] ] && vPosAdj >= faceHeight / 2 ) {

} else if( face_index[ 2 ] = = bottomFaceIdx[ face_index[ n ] ] && vPosAdj < faceHeight / 2 ) {

}

}

### comment:1 Changed 4 years ago by yk

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

Thanks. Will be fixed in JVET-S2007-v7.

Note: See TracTickets for help on using tickets.