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)
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