12/08/2014

12-08-14 - BPG

BPG is a nice packaging of HEVC (H265) I-frame compression for still images. He provides Windows command line tools with reasonable options (yay!), so I'm quite happy to test it.

It's pretty dang slow. Really slow. It's all covered by many patents. So I'm not sure how realistic it is as a useable format. Nonetheless, it's very useful as something to compare against.

I ran with default options (YCbCr in 420). I compared against JPEG_pdec, which as I previously noted JPEG pdec is very comparable to DLI . (JPEG_pdec = JPEG+packjpg+ my jpegdec (decblocker, etc)).

Conclusion :

BPG is really good. The best I've seen. It kills JPEG-pdec in RMSE, in fact I think it's the best RMSE performance I've seen despite being at a disadvantage (YCbCr and 420). Under the perceptual metrics (MS-SSIM-Y and "Combo") it doesn't win so strongly. That tells me there is probably room for better perceptual tuning of bit allocation and quantizers. But it's definitely strong.

Quick visual evaluation by me :

Porsche640 : BPG wins pretty hard here. Perhaps the most noticeable thing is much better detail preservation in the texture regions (the gravel and bushes). It also does a better job on the edges of the car, it doesn't smear them into nasty DCT block artifacts. You may download Porsche640 comparison images here (1 MB, RAR)

Moses : actually not a very big win here. It does much better at preserving the smooth gradient background (my current JPEGdec doesn't have any special modes for big smooth areas). Visually the main thing you'll notice is that the smooth gradients are nasty chunky steps with JPEG and are nice and smooth with BPG. Other than that, I actually think JPEG is better on Moses himself. Both make a big perceptual rate allocation mistake and put too many bits on the jacket texture and not enough on the human skin texture. But JPEG preserves more of the face texture; when you A/B compare it's clear that BPG is way over-smoothing his face. Particularly on the forehead and the neck fat. But all over really. Both BPG and JPEG make a classic mistake on Moses : they kill too much of the red and blue detail in the tie because it's in chroma.

The raw reports :


porsche640 :

imdiff RMSE_RGB
Built Aug 30 2014 11:30:27
r:\porsche640.bmp
r:\porsche640.bmp_bpg
r:\porsche640.bmp_jpg_pdec

Live Chart PlayGround

raw imdiff data : -2.31,-1.29,-0.42,-0.13,0.02,0.31,0.69,0.92,1.56,1.93|18.55,13.46,9.59,8.46,7.87,6.79,5.45,4.72,3.14,2.56|-2.26,-1.96,-1.44,-1.13,-0.89,-0.71,-0.44,-0.24,-0.04,0.08,0.21,0.35,0.54,0.76,1.06,1.55,2.54|22.22,19.98,16.74,14.86,13.60,12.73,11.49,10.62,9.82,9.35,8.81,8.30,7.63,6.87,5.91,4.57,3.07| fit imdiff data : -2.31,-1.29,-0.42,-0.13,0.02,0.31,0.69,0.92,1.56,1.93|4.64,5.17,5.69,5.87,5.96,6.16,6.43,6.60,7.02,7.20|-2.26,-1.96,-1.44,-1.13,-0.89,-0.71,-0.44,-0.24,-0.04,0.08,0.21,0.35,0.54,0.76,1.06,1.55,2.54|4.33,4.52,4.82,5.01,5.16,5.26,5.42,5.54,5.65,5.72,5.81,5.89,6.01,6.14,6.33,6.63,7.04|

r:\porsche640.bmp_bpgr:\porsche640.bmp_jpg_pdec
-2.310328bpg_test_000007742.bmp-2.256377jpeg_pdec_000008037.bmp
-1.290066bpg_test_000015703.bmp-1.956043jpeg_pdec_000009897.bmp
-0.422974bpg_test_000028642.bmp-1.443264jpeg_pdec_000014121.bmp
-0.129923bpg_test_000035093.bmp-1.125039jpeg_pdec_000017606.bmp
0.023995bpg_test_000039044.bmp-0.893289jpeg_pdec_000020674.bmp
0.310310bpg_test_000047615.bmp-0.710473jpeg_pdec_000023467.bmp
0.686454bpg_test_000061798.bmp-0.442294jpeg_pdec_000028261.bmp
0.920750bpg_test_000072695.bmp-0.235261jpeg_pdec_000032622.bmp
1.557974bpg_test_000113065.bmp-0.039573jpeg_pdec_000037361.bmp
1.930195bpg_test_000146345.bmp0.079876jpeg_pdec_000040586.bmp
0.213736jpeg_pdec_000044532.bmp
0.348876jpeg_pdec_000048905.bmp
0.535742jpeg_pdec_000055668.bmp
0.758401jpeg_pdec_000064958.bmp
1.063934jpeg_pdec_000080280.bmp
1.546419jpeg_pdec_000112163.bmp
2.541619jpeg_pdec_000223581.bmp
imdiff MS_SSIM_IW_Y
Built Aug 30 2014 11:30:27
r:\porsche640.bmp
r:\porsche640.bmp_bpg
r:\porsche640.bmp_jpg_pdec

Live Chart PlayGround

raw imdiff data : -2.31,-1.29,-0.42,-0.13,0.02,0.31,0.69,0.92,1.56,1.93|83.03,89.78,93.93,95.07,95.57,96.43,97.39,97.88,98.87,99.25|-2.26,-1.96,-1.44,-1.13,-0.89,-0.71,-0.44,-0.24,-0.04,0.08,0.21,0.35,0.54,0.76,1.06,1.55,2.54|79.88,82.47,86.76,89.12,90.67,91.72,93.14,94.07,94.84,95.30,95.74,96.18,96.72,97.27,97.95,98.70,99.40| fit imdiff data : -2.31,-1.29,-0.42,-0.13,0.02,0.31,0.69,0.92,1.56,1.93|4.23,5.06,5.73,5.96,6.07,6.29,6.57,6.73,7.18,7.41|-2.26,-1.96,-1.44,-1.13,-0.89,-0.71,-0.44,-0.24,-0.04,0.08,0.21,0.35,0.54,0.76,1.06,1.55,2.54|3.90,4.17,4.66,4.97,5.19,5.35,5.59,5.76,5.91,6.01,6.11,6.22,6.36,6.53,6.76,7.08,7.53|

r:\porsche640.bmp_bpgr:\porsche640.bmp_jpg_pdec
-2.310328bpg_test_000007742.bmp-2.256377jpeg_pdec_000008037.bmp
-1.290066bpg_test_000015703.bmp-1.956043jpeg_pdec_000009897.bmp
-0.422974bpg_test_000028642.bmp-1.443264jpeg_pdec_000014121.bmp
-0.129923bpg_test_000035093.bmp-1.125039jpeg_pdec_000017606.bmp
0.023995bpg_test_000039044.bmp-0.893289jpeg_pdec_000020674.bmp
0.310310bpg_test_000047615.bmp-0.710473jpeg_pdec_000023467.bmp
0.686454bpg_test_000061798.bmp-0.442294jpeg_pdec_000028261.bmp
0.920750bpg_test_000072695.bmp-0.235261jpeg_pdec_000032622.bmp
1.557974bpg_test_000113065.bmp-0.039573jpeg_pdec_000037361.bmp
1.930195bpg_test_000146345.bmp0.079876jpeg_pdec_000040586.bmp
0.213736jpeg_pdec_000044532.bmp
0.348876jpeg_pdec_000048905.bmp
0.535742jpeg_pdec_000055668.bmp
0.758401jpeg_pdec_000064958.bmp
1.063934jpeg_pdec_000080280.bmp
1.546419jpeg_pdec_000112163.bmp
2.541619jpeg_pdec_000223581.bmp
imdiff Combo
Built Aug 30 2014 11:30:27
r:\porsche640.bmp
r:\porsche640.bmp_bpg
r:\porsche640.bmp_jpg_pdec

Live Chart PlayGround

raw imdiff data : -2.31,-1.29,-0.42,-0.13,0.02,0.31,0.69,0.92,1.56,1.93|4.83,4.05,3.41,3.21,3.10,2.90,2.63,2.46,2.03,1.80|-2.26,-1.96,-1.44,-1.13,-0.89,-0.71,-0.44,-0.24,-0.04,0.08,0.21,0.35,0.54,0.76,1.06,1.55,2.54|5.30,4.97,4.44,4.11,3.88,3.72,3.48,3.31,3.16,3.06,2.96,2.86,2.72,2.56,2.35,2.05,1.74| fit imdiff data : -2.31,-1.29,-0.42,-0.13,0.02,0.31,0.69,0.92,1.56,1.93|4.19,4.99,5.65,5.86,5.98,6.18,6.45,6.62,7.05,7.28|-2.26,-1.96,-1.44,-1.13,-0.89,-0.71,-0.44,-0.24,-0.04,0.08,0.21,0.35,0.54,0.76,1.06,1.55,2.54|3.69,4.04,4.59,4.93,5.17,5.34,5.58,5.75,5.91,6.01,6.11,6.22,6.36,6.52,6.74,7.03,7.34|

r:\porsche640.bmp_bpgr:\porsche640.bmp_jpg_pdec
-2.310328bpg_test_000007742.bmp-2.256377jpeg_pdec_000008037.bmp
-1.290066bpg_test_000015703.bmp-1.956043jpeg_pdec_000009897.bmp
-0.422974bpg_test_000028642.bmp-1.443264jpeg_pdec_000014121.bmp
-0.129923bpg_test_000035093.bmp-1.125039jpeg_pdec_000017606.bmp
0.023995bpg_test_000039044.bmp-0.893289jpeg_pdec_000020674.bmp
0.310310bpg_test_000047615.bmp-0.710473jpeg_pdec_000023467.bmp
0.686454bpg_test_000061798.bmp-0.442294jpeg_pdec_000028261.bmp
0.920750bpg_test_000072695.bmp-0.235261jpeg_pdec_000032622.bmp
1.557974bpg_test_000113065.bmp-0.039573jpeg_pdec_000037361.bmp
1.930195bpg_test_000146345.bmp0.079876jpeg_pdec_000040586.bmp
0.213736jpeg_pdec_000044532.bmp
0.348876jpeg_pdec_000048905.bmp
0.535742jpeg_pdec_000055668.bmp
0.758401jpeg_pdec_000064958.bmp
1.063934jpeg_pdec_000080280.bmp
1.546419jpeg_pdec_000112163.bmp
2.541619jpeg_pdec_000223581.bmp


imdiff RMSE_RGB
Built Aug 30 2014 11:30:27
r:\PDI_1200.bmp
r:\PDI_1200.bmp_bpg
r:\PDI_1200.bmp_jpg_pdec

Live Chart PlayGround

raw imdiff data : -2.50,-1.64,-0.85,-0.58,-0.43,-0.16,0.22,0.46,1.11,1.51|16.50,12.13,8.70,7.79,7.27,6.38,5.31,4.79,3.76,3.43|-1.77,-1.47,-1.24,-1.06,-0.79,-0.58,-0.38,-0.26,-0.12,0.02,0.21,0.78|17.05,15.36,14.18,13.28,12.07,11.20,10.38,9.91,9.36,8.80,8.09,6.38| fit imdiff data : -2.50,-1.64,-0.85,-0.58,-0.43,-0.16,0.22,0.46,1.11,1.51|4.84,5.34,5.83,5.98,6.07,6.24,6.46,6.58,6.84,6.93|-1.77,-1.47,-1.24,-1.06,-0.79,-0.58,-0.38,-0.26,-0.12,0.02,0.21,0.78|4.79,4.96,5.09,5.19,5.34,5.46,5.57,5.64,5.72,5.81,5.93,6.24|

r:\PDI_1200.bmp_bpgr:\PDI_1200.bmp_jpg_pdec
-2.502747bpg_test_000020273.bmp-1.771229jpeg_pdec_000033661.bmp
-1.643425bpg_test_000036779.bmp-1.468118jpeg_pdec_000041531.bmp
-0.845949bpg_test_000063924.bmp-1.240727jpeg_pdec_000048621.bmp
-0.575801bpg_test_000077088.bmp-1.059914jpeg_pdec_000055113.bmp
-0.434878bpg_test_000084998.bmp-0.793755jpeg_pdec_000066279.bmp
-0.158926bpg_test_000102915.bmp-0.579211jpeg_pdec_000076906.bmp
0.219408bpg_test_000133773.bmp-0.382314jpeg_pdec_000088152.bmp
0.455907bpg_test_000157602.bmp-0.261965jpeg_pdec_000095821.bmp
1.113320bpg_test_000248578.bmp-0.123163jpeg_pdec_000105498.bmp
1.510508bpg_test_000327362.bmp0.019419jpeg_pdec_000116457.bmp
0.212218jpeg_pdec_000133108.bmp
0.777766jpeg_pdec_000196993.bmp
imdiff MS_SSIM_IW_Y
Built Aug 30 2014 11:30:27
r:\PDI_1200.bmp
r:\PDI_1200.bmp_bpg
r:\PDI_1200.bmp_jpg_pdec

Live Chart PlayGround

raw imdiff data : -2.50,-1.64,-0.85,-0.58,-0.43,-0.16,0.22,0.46,1.11,1.51|87.81,92.21,95.12,95.98,96.34,96.99,97.77,98.16,98.98,99.30|-1.77,-1.47,-1.24,-1.06,-0.79,-0.58,-0.38,-0.26,-0.12,0.02,0.21,0.78|89.84,91.44,92.46,93.22,94.23,94.94,95.53,95.87,96.23,96.60,97.04,98.08| fit imdiff data : -2.50,-1.64,-0.85,-0.58,-0.43,-0.16,0.22,0.46,1.11,1.51|4.80,5.43,5.97,6.17,6.26,6.44,6.69,6.84,7.24,7.45|-1.77,-1.47,-1.24,-1.06,-0.79,-0.58,-0.38,-0.26,-0.12,0.02,0.21,0.78|5.07,5.31,5.47,5.60,5.79,5.93,6.06,6.14,6.23,6.33,6.45,6.81|

r:\PDI_1200.bmp_bpgr:\PDI_1200.bmp_jpg_pdec
-2.502747bpg_test_000020273.bmp-1.771229jpeg_pdec_000033661.bmp
-1.643425bpg_test_000036779.bmp-1.468118jpeg_pdec_000041531.bmp
-0.845949bpg_test_000063924.bmp-1.240727jpeg_pdec_000048621.bmp
-0.575801bpg_test_000077088.bmp-1.059914jpeg_pdec_000055113.bmp
-0.434878bpg_test_000084998.bmp-0.793755jpeg_pdec_000066279.bmp
-0.158926bpg_test_000102915.bmp-0.579211jpeg_pdec_000076906.bmp
0.219408bpg_test_000133773.bmp-0.382314jpeg_pdec_000088152.bmp
0.455907bpg_test_000157602.bmp-0.261965jpeg_pdec_000095821.bmp
1.113320bpg_test_000248578.bmp-0.123163jpeg_pdec_000105498.bmp
1.510508bpg_test_000327362.bmp0.019419jpeg_pdec_000116457.bmp
0.212218jpeg_pdec_000133108.bmp
0.777766jpeg_pdec_000196993.bmp
imdiff Combo
Built Aug 30 2014 11:30:27
r:\PDI_1200.bmp
r:\PDI_1200.bmp_bpg
r:\PDI_1200.bmp_jpg_pdec

Live Chart PlayGround

raw imdiff data : -2.50,-1.64,-0.85,-0.58,-0.43,-0.16,0.22,0.46,1.11,1.51|4.51,3.84,3.27,3.08,2.98,2.80,2.55,2.40,2.02,1.81|-1.77,-1.47,-1.24,-1.06,-0.79,-0.58,-0.38,-0.26,-0.12,0.02,0.21,0.78|4.25,3.96,3.76,3.60,3.39,3.23,3.09,3.00,2.91,2.80,2.67,2.32| fit imdiff data : -2.50,-1.64,-0.85,-0.58,-0.43,-0.16,0.22,0.46,1.11,1.51|4.52,5.21,5.80,5.99,6.09,6.28,6.53,6.68,7.07,7.27|-1.77,-1.47,-1.24,-1.06,-0.79,-0.58,-0.38,-0.26,-0.12,0.02,0.21,0.78|4.79,5.08,5.29,5.46,5.67,5.84,5.98,6.07,6.17,6.28,6.41,6.76|

r:\PDI_1200.bmp_bpgr:\PDI_1200.bmp_jpg_pdec
-2.502747bpg_test_000020273.bmp-1.771229jpeg_pdec_000033661.bmp
-1.643425bpg_test_000036779.bmp-1.468118jpeg_pdec_000041531.bmp
-0.845949bpg_test_000063924.bmp-1.240727jpeg_pdec_000048621.bmp
-0.575801bpg_test_000077088.bmp-1.059914jpeg_pdec_000055113.bmp
-0.434878bpg_test_000084998.bmp-0.793755jpeg_pdec_000066279.bmp
-0.158926bpg_test_000102915.bmp-0.579211jpeg_pdec_000076906.bmp
0.219408bpg_test_000133773.bmp-0.382314jpeg_pdec_000088152.bmp
0.455907bpg_test_000157602.bmp-0.261965jpeg_pdec_000095821.bmp
1.113320bpg_test_000248578.bmp-0.123163jpeg_pdec_000105498.bmp
1.510508bpg_test_000327362.bmp0.019419jpeg_pdec_000116457.bmp
0.212218jpeg_pdec_000133108.bmp
0.777766jpeg_pdec_000196993.bmp


moses :

imdiff RMSE_RGB
Built Aug 30 2014 11:30:27
r:\moses.bmp
r:\moses.bmp_bpg
r:\moses.bmp_jpg_pdec

Live Chart PlayGround

raw imdiff data : -2.89,-1.97,-1.18,-0.90,-0.76,-0.48,-0.08,0.17,0.92,1.36|13.96,9.96,7.15,6.37,5.99,5.30,4.38,3.86,2.65,2.18|-2.10,-1.78,-1.56,-1.38,-1.12,-0.91,-0.72,-0.60,-0.46,-0.32,-0.11,0.49|13.20,11.59,10.38,9.65,8.60,7.86,7.18,6.83,6.44,6.06,5.58,4.40| fit imdiff data : -2.89,-1.97,-1.18,-0.90,-0.76,-0.48,-0.08,0.17,0.92,1.36|5.11,5.63,6.09,6.24,6.32,6.46,6.68,6.81,7.18,7.34|-2.10,-1.78,-1.56,-1.38,-1.12,-0.91,-0.72,-0.60,-0.46,-0.32,-0.11,0.49|5.20,5.41,5.57,5.68,5.84,5.97,6.09,6.15,6.23,6.30,6.40,6.68|

r:\moses.bmp_bpgr:\moses.bmp_jpg_pdec
-2.885454bpg_test_000037087.bmp-2.096290jpeg_pdec_000064089.bmp
-1.966356bpg_test_000070129.bmp-1.780268jpeg_pdec_000079784.bmp
-1.181866bpg_test_000120796.bmp-1.558392jpeg_pdec_000093048.bmp
-0.902603bpg_test_000146595.bmp-1.378797jpeg_pdec_000105383.bmp
-0.762217bpg_test_000161577.bmp-1.122379jpeg_pdec_000125881.bmp
-0.481048bpg_test_000196345.bmp-0.914342jpeg_pdec_000145407.bmp
-0.080435bpg_test_000259189.bmp-0.719298jpeg_pdec_000166456.bmp
0.174334bpg_test_000309250.bmp-0.598617jpeg_pdec_000180979.bmp
0.923476bpg_test_000519785.bmp-0.461917jpeg_pdec_000198966.bmp
1.358995bpg_test_000702956.bmp-0.315356jpeg_pdec_000220241.bmp
-0.108696jpeg_pdec_000254161.bmp
0.489100jpeg_pdec_000384648.bmp
imdiff MS_SSIM_IW_Y
Built Aug 30 2014 11:30:27
r:\moses.bmp
r:\moses.bmp_bpg
r:\moses.bmp_jpg_pdec

Live Chart PlayGround

raw imdiff data : -2.89,-1.97,-1.18,-0.90,-0.76,-0.48,-0.08,0.17,0.92,1.36|84.91,90.55,94.24,95.26,95.72,96.50,97.41,97.88,98.88,99.25|-2.10,-1.78,-1.56,-1.38,-1.12,-0.91,-0.72,-0.60,-0.46,-0.32,-0.11,0.49|87.54,89.76,91.23,92.22,93.54,94.44,95.20,95.62,96.02,96.43,96.93,98.06| fit imdiff data : -2.89,-1.97,-1.18,-0.90,-0.76,-0.48,-0.08,0.17,0.92,1.36|4.45,5.17,5.79,6.00,6.11,6.30,6.57,6.73,7.18,7.42|-2.10,-1.78,-1.56,-1.38,-1.12,-0.91,-0.72,-0.60,-0.46,-0.32,-0.11,0.49|4.76,5.06,5.27,5.43,5.66,5.83,5.99,6.08,6.18,6.29,6.42,6.80|

r:\moses.bmp_bpgr:\moses.bmp_jpg_pdec
-2.885454bpg_test_000037087.bmp-2.096290jpeg_pdec_000064089.bmp
-1.966356bpg_test_000070129.bmp-1.780268jpeg_pdec_000079784.bmp
-1.181866bpg_test_000120796.bmp-1.558392jpeg_pdec_000093048.bmp
-0.902603bpg_test_000146595.bmp-1.378797jpeg_pdec_000105383.bmp
-0.762217bpg_test_000161577.bmp-1.122379jpeg_pdec_000125881.bmp
-0.481048bpg_test_000196345.bmp-0.914342jpeg_pdec_000145407.bmp
-0.080435bpg_test_000259189.bmp-0.719298jpeg_pdec_000166456.bmp
0.174334bpg_test_000309250.bmp-0.598617jpeg_pdec_000180979.bmp
0.923476bpg_test_000519785.bmp-0.461917jpeg_pdec_000198966.bmp
1.358995bpg_test_000702956.bmp-0.315356jpeg_pdec_000220241.bmp
-0.108696jpeg_pdec_000254161.bmp
0.489100jpeg_pdec_000384648.bmp
imdiff Combo
Built Aug 30 2014 11:30:27
r:\moses.bmp
r:\moses.bmp_bpg
r:\moses.bmp_jpg_pdec

Live Chart PlayGround

raw imdiff data : -2.89,-1.97,-1.18,-0.90,-0.76,-0.48,-0.08,0.17,0.92,1.36|4.43,3.78,3.22,3.04,2.95,2.79,2.56,2.44,2.03,1.81|-2.10,-1.78,-1.56,-1.38,-1.12,-0.91,-0.72,-0.60,-0.46,-0.32,-0.11,0.49|4.19,3.89,3.65,3.51,3.29,3.13,2.98,2.90,2.81,2.72,2.59,2.26| fit imdiff data : -2.89,-1.97,-1.18,-0.90,-0.76,-0.48,-0.08,0.17,0.92,1.36|4.60,5.28,5.84,6.03,6.12,6.29,6.52,6.65,7.05,7.28|-2.10,-1.78,-1.56,-1.38,-1.12,-0.91,-0.72,-0.60,-0.46,-0.32,-0.11,0.49|4.85,5.16,5.41,5.56,5.78,5.94,6.09,6.18,6.27,6.36,6.49,6.83|

r:\moses.bmp_bpgr:\moses.bmp_jpg_pdec
-2.885454bpg_test_000037087.bmp-2.096290jpeg_pdec_000064089.bmp
-1.966356bpg_test_000070129.bmp-1.780268jpeg_pdec_000079784.bmp
-1.181866bpg_test_000120796.bmp-1.558392jpeg_pdec_000093048.bmp
-0.902603bpg_test_000146595.bmp-1.378797jpeg_pdec_000105383.bmp
-0.762217bpg_test_000161577.bmp-1.122379jpeg_pdec_000125881.bmp
-0.481048bpg_test_000196345.bmp-0.914342jpeg_pdec_000145407.bmp
-0.080435bpg_test_000259189.bmp-0.719298jpeg_pdec_000166456.bmp
0.174334bpg_test_000309250.bmp-0.598617jpeg_pdec_000180979.bmp
0.923476bpg_test_000519785.bmp-0.461917jpeg_pdec_000198966.bmp
1.358995bpg_test_000702956.bmp-0.315356jpeg_pdec_000220241.bmp
-0.108696jpeg_pdec_000254161.bmp
0.489100jpeg_pdec_000384648.bmp

3 comments:

Fabian Giesen said...

The default encoder is the HEVC reference encoder. That means a) encode speed isn't necessarily representative, b) all encoder-side trade-offs are 100% optimized for PSNR since that's what they used for evaluation during standardization.

I would trust this encoder to do well on PSNR, but encode speed and subjective quality should be well below what well-tuned HEVC can do.

The decoder is FFMPEG's. The BPG distrib doesn't include any of the platform-specific SIMD etc. optimized kernels but the speed should be reasonably representative. It's a fair comparison to say the stock IJG JPEG lib (which also doesn't use SIMD) for example.

cbloom said...

I am surprised how strong it is. I didn't think that H265 was that different from H264 for still frames.

My guesses for the main wins are the

1. block-size-pyramid & large block sizes
2. more intra prediction modes & better modes
3. ?

Fabian Giesen said...

According to some evaluation the HEVC committee did, the transform/coding unit size stuff has a pretty huge impact. See here - for the large videos ("Class A", 2560x1600 I believe), limiting CTU size to 16x16 (instead of their default 64x64) increases bit rate at same quality by 28.2%. So that's definitely the single largest thing at the image sizes you're looking at.

I would be surprised if the new prediction modes made more than 1-2% difference. They added more directional prediction modes, but these are fairly rarely used in H.264 to begin with.

Also note they went from a very approximate DCT ("hey, it's within 8% of the real thing!") to a much more accurate one. If my Bink 2 experiments are any indication that should be another 1% or so right there. But yeah, big blocks, man.

old rants