Skip to content

fix issue #1926

Description

Fix issue of corrupted data at bottom of super-block, when reference scaling random mode enabled at 10-bit stream.

Root cause: There is a packing in inter predictior for 10-bit super-block buffer, the size of temporal buffer is not ennough for packing. The bottom data of super-block is not well packed. The corruption pixels display in bottom rows.

Issue

Closes #1926 (closed)

Author(s)

@Cidana-Developers

Performance impact

  • quality
  • memory
  • speed
  • 8 bit
  • 10 bit
  • N/A

Test set

  • obj-1-fast can be found here
  • other
  • N/A

obj-1-fast test results:

Table1 shows lossless vs. master when default setting with reference scaling off

Table 1 10-bit ref scale off 59add84 vs. master 30fb9607 PSNR SSIM VMAF AVG PSNR/SSIM/VMAF Cycles Dev Max Value Memory Deviation Abs Max Clip Memory Deviation
ALL svt_M5_off_a9339142 vs. svt_M5_master_off_30fb9607 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.78% -0.01% -1.26%
ALL svt_M8_off_a9339142 vs. svt_M8_master_off_30fb9607 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 2.12% 0.02% 1.59%
ALL svt_M12_off_a9339142 vs. svt_M12_master_off_30fb9607 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 2.39% 0.04% 0.47%

Table2 shows the performance of 10-bit reference scaling random

Table #2 10-bit ref scale random vs. off @a9339142 PSNR SSIM VMAF AVG PSNR/SSIM/VMAF Cycles Dev Max Value Memory Deviation Abs Max Clip Memory Deviation
ALL svt_M5_random_a9339142 vs. svt_M5_off_a9339142 183.65% 169.41% 172.10% 154.59% 122.30% 161.84% 156.64% 157.36% 119.46% 143.80% 29.74% 50.99% 73.33%
ALL svt_M8_random_a9339142 vs. svt_M8_off_a9339142 169.00% 139.67% 152.27% 144.43% 121.80% 129.71% 129.01% 145.46% 113.22% 134.37% -15.48% 38.38% 50.20%
ALL svt_M12_random_a9339142 vs. svt_M12_off_a9339142 136.94% 83.47% 101.06% 131.02% 110.12% 84.08% 82.41% 103.20% 96.19% 110.14% -57.52% 44.98% 61.71%

Table3 is 8-bit results as a reference of performance: 10-bit performance is similar to 8-bit

Table #3 8-bit ref scale random vs. off @9295884c PSNR SSIM VMAF AVG PSNR/SSIM/VMAF Cycles Dev Max Value Memory Deviation Abs Max Clip Memory Deviation
ALL svt_M5_random_9295884c vs. svt_M5_off_9295884c 186.21% 175.46% 175.76% 157.05% 124.53% 171.45% 164.94% 165.64% 122.84% 148.51% 33.29% 45.81% 83.07%
ALL svt_M8_random_9295884c vs. svt_M8_off_9295884c 170.15% 139.01% 152.52% 145.60% 124.35% 132.42% 131.81% 148.90% 118.02% 137.51% -14.62% 36.87% 66.56%
ALL svt_M12_random_9295884c vs. svt_M12_off_9295884c 139.14% 85.59% 105.44% 131.21% 112.43% 88.76% 90.75% 106.58% 103.76% 113.85% -61.82% 65.32% 90.58%

Merge method

  • Allow the maintainer to squash and merge when PR is ready to create a 1-commit to the master branch. The maintainer will be able to fix typos / combine commit messages to create a more readable 1-commit message or use whatever is stated in the 'Description' section
  • I will clean up my commits and the maintainer shall use 'rebase and merge' to the master branch

Merge request reports