Verification Process


Updated 2022-12-14 (history)

Calculating - Information
Codecs - Versions
Metrics - Versions
Codecs - Building
Metrics - Building
Codecs - Running
Metrics - Running

Calculating Information

Decoding Speed

The timing was performed using the ImageDecoder API on Chrome. Below is some example code showing how to use the ImageDecoder API to time the fetch, decode, and render of an image.
let imageDecoder = null;
let startMilli = 0;
let imageDecodeStart = 0;

let fetchingMilli = 0;
let decodingMilli = 0;
let renderingMilli = 0;

function loadImage(imageUrl, mimetype) {
    startMilli = performance.now();    
    let req = new XMLHttpRequest();
    req.open("GET", imageUrl, true);
    req.responseType = "arraybuffer";
    req.onload = function (oEvent) {
      decodeImage(req.response, mimetype)
    };
    req.send(null);
}

function decodeImage(imageByteStream, mimetype) {
  imageDecodeStart = performance.now();
  fetchingMilli = imageDecodeStart - startMilli;
  imageDecoder = new ImageDecoder({data: imageByteStream, type: mimetype});
  imageDecoder.decode({frameIndex : 0}).then(renderImage);
}

function renderImage(result) {
  const imageDecoded = performance.now();
  decodingMilli = imageDecoded - imageDecodeStart;
  const canvas = document.getElementById('canvas');
  const canvasContext = canvas.getContext('2d');
  canvasContext.drawImage(result.image, 0, 0);
  renderingMilli = performance.now() - imageDecoded;
}

Transcoding Speed

Below is the timing information from encoding the noto-emoji data using AVIF with a speed of 9 and an encoding_point of 40. You can see all of the options used in the Codecs - Running section.
Note: encoding_point is used here as a generic term for:
input transcodeSeconds megapixels transcodeMP/s
emoji_u263a.png 0.026 0.262144 10.08246154
emoji_u1f64f.png 0.024 0.262144 10.92266667
emoji_u1f926.png 0.025 0.262144 10.48576
emoji_u1f525.png 0.025 0.262144 10.48576
emoji_u1f44f.png 0.024 0.262144 10.92266667
emoji_u1f495.png 0.026 0.262144 10.08246154
emoji_u1f602.png 0.028 0.262144 9.362285714
emoji_u1f60d.png 0.02 0.262144 13.1072
emoji_u1f618.png 0.022 0.262144 11.91563636
emoji_u1f970.png 0.024 0.262144 10.92266667
emoji_u1f923.png 0.025 0.262144 10.48576
emoji_u1f937.png 0.028 0.262144 9.362285714
emoji_u1f973.png 0.03 0.262144 8.738133333
emoji_u1f382.png 0.023 0.262144 11.39756522
emoji_u2764.png 0.018 0.262144 14.56355556
emoji_u1f44d.png 0.023 0.262144 11.39756522
emoji_u1f389.png 0.032 0.262144 8.192
Next we average all the transcodeMP/s for every input. In the example above we get a value of 10.73096648.

Next we average all the avgTranscodeMP/s for every encoding_point within a given speed/effort. Below is the avgTranscodeMP/s for every encoding_point within speed 9 from our example.
avgTranscodeMP/s speed encoding_point
12.26160783 9 63
11.88440739 9 62
12.31376359 9 61
12.15445355 9 60
11.64477168 9 59
11.71760974 9 58
11.79664098 9 57
11.87295407 9 56
11.22839826 9 55
11.49407526 9 54
11.38833537 9 53
11.38051961 9 52
11.6515326 9 51
11.36905974 9 50
11.54580767 9 49
11.55853413 9 48
11.0309081 9 47
10.75238938 9 46
11.32151881 9 45
10.99604779 9 44
10.79689268 9 43
10.89024835 9 42
10.75788614 9 41
10.73096648 9 40
11.15525455 9 39
10.73936771 9 38
10.74052428 9 37
10.94546984 9 36
10.60492926 9 35
10.41289715 9 34
10.60062853 9 33
10.3493127 9 32
10.33155113 9 31
10.12636695 9 30
10.3802904 9 29
10.3600833 9 28
9.86395181 9 27
9.877980463 9 26
9.794241364 9 25
9.401410249 9 24
10.0250416 9 23
9.676316385 9 22
9.838833024 9 21
9.778203457 9 20
9.57301489 9 19
9.809781442 9 18
9.812009407 9 17
9.129511455 9 16
9.702523776 9 15
9.726979091 9 14
9.286918132 9 13
9.349299975 9 12
9.431615569 9 11
9.400580911 9 10
9.364998282 9 9
9.07337167 9 8
8.904681198 9 7
8.96537662 9 6
8.82282374 9 5
8.73482027 9 4
8.551375312 9 3
8.482531666 9 2
7.992188847 9 1

Finally we average all the avgTranscodeMP/s for every encoding_point within a given speed/effort. In the example above we get a value of 10.37549818. This is the value you see in the noto-emoji transcode timing graphs for one thread speed 9.

Quality Metrics

Below is the metric information from encoding the noto-emoji data using AVIF with a speed of 9 and an encoding_point of 40. You can see all of the options used in the Metrics - Running section.

input psnr_magick psnr_hvs psnr_y ssim ssim_magick msssim dssim vmaf ciede2000 ssimulacra ssimulacra2 butteraugli p3norm
emoji_u263a.png 32.3172 37.165688 35.577841 0.976526 0.925947 0.995219 0.00332451 81.879372 45.321027 0.02830018 38.28823483 8.472590447 2.833384
emoji_u1f64f.png 32.6931 37.596789 36.865447 0.975646 0.927364 0.994192 0.00320184 79.515506 46.417816 0.0314269 39.20757624 9.001079559 2.839618
emoji_u1f926.png 32.5836 36.527778 36.210292 0.981694 0.929673 0.993282 0.0043861 81.13209 43.900571 0.02933967 45.06527945 7.761772156 2.839862
emoji_u1f525.png 32.4504 37.837855 36.586073 0.979153 0.921293 0.996319 0.00275275 77.59631 47.258144 0.02437439 34.75151593 10.12944031 3.228787
emoji_u1f44f.png 31.8132 35.723916 34.702413 0.967349 0.878398 0.990479 0.00436448 79.990197 44.587876 0.04102024 36.12804553 9.867407799 2.918389
emoji_u1f495.png 32.4312 37.180915 36.054116 0.968472 0.925763 0.993855 0.00377203 75.421157 43.348418 0.02655611 33.2561638 9.522545815 3.184354
emoji_u1f602.png 30.5563 35.853807 34.789637 0.975702 0.911966 0.994297 0.0038965 82.448559 42.9192 0.03574726 37.36556145 9.995477676 3.078394
emoji_u1f60d.png 31.9887 36.171791 35.421831 0.972116 0.908804 0.993835 0.00382023 80.371274 44.49019 0.03063585 37.67618413 10.59731388 3.239028
emoji_u1f618.png 32.1479 36.907435 35.426082 0.975939 0.921563 0.994676 0.00350862 82.59424 44.833058 0.02951395 38.22827929 8.488348007 2.928788
emoji_u1f970.png 31.4791 36.021386 35.141912 0.979498 0.92228 0.993571 0.00421426 81.852105 43.483691 0.03652905 40.27446647 8.842941284 3.208867
emoji_u1f923.png 30.4386 35.599761 34.640762 0.974695 0.907769 0.993781 0.00397115 81.684672 42.574924 0.03349634 35.3980924 9.505764008 3.011923
emoji_u1f937.png 31.5682 36.277377 35.493608 0.982879 0.918743 0.994691 0.00387182 83.432067 43.219194 0.04003069 42.85062911 9.093180656 3.008843
emoji_u1f973.png 29.7198 35.617385 34.55535 0.978209 0.903238 0.994252 0.00392965 82.274151 42.355734 0.03733623 40.13294069 9.940659523 3.308562
emoji_u1f382.png 32.5033 36.275321 35.882211 0.979779 0.932493 0.991956 0.00427477 82.886037 43.718928 0.03474075 41.71708994 7.239439488 2.590612
emoji_u2764.png 33.1665 38.128877 37.238969 0.975716 0.938356 0.995109 0.00405738 73.628242 45.203238 0.02812272 35.04119144 12.02955532 3.625233
emoji_u1f44d.png 33.2645 36.98907 37.125789 0.973309 0.894939 0.992802 0.00335535 82.548598 46.501181 0.03128018 37.6979732 10.41339111 2.793819
emoji_u1f389.png 28.9353 34.683536 33.215516 0.950337 0.838466 0.99312 0.00469632 80.909361 39.741832 0.04263093 30.21508095 9.483102799 3.234928

Next we average all the metrics for every input. The example above gives us average values in the table below.

input psnr_magick psnr_hvs psnr_y ssim ssim_magick msssim dssim vmaf ciede2000 ssimulacra ssimulacra2 butteraugli p3norm
--- 31.76805294 36.50345218 35.58399112 0.9745305294 0.9121797059 0.9938491765 0.003846927059 80.59787871 44.11029541 0.03300479059 37.84084146 9.43435352 3.051375941


Next we average all the metrics for every encoding_point within a given speed/effort. Below is the average metrics for every encoding_point within speed 9 from our example.
speed encoding_point psnr_magick psnr_hvs psnr_y ssim ssim_magick msssim dssim vmaf ciede2000 ssimulacra ssimulacra2 butteraugli p3norm
9 63 22.86927647 22.43452818 26.08552182 0.8232730588 0.7787238235 0.9423771176 0.04807649882 13.64826765 33.07031124 0.1503584941 -83.99913524 39.83382999 13.67988371
9 62 23.91028235 23.88060724 27.03896129 0.8504778824 0.7949305294 0.9545897059 0.03656029941 24.14373476 34.27873818 0.1279288629 -64.36592049 32.15524371 11.20673347
9 61 24.66770588 24.97340853 27.73254988 0.8753612353 0.8139357059 0.9611531765 0.02999484529 31.348136 35.30705359 0.1128482465 -51.08409708 29.0461593 9.756583
9 60 25.20877059 25.82650518 28.22765347 0.8888475294 0.8238535294 0.9656998824 0.02559594118 36.45769676 35.98496771 0.1028087265 -40.14656133 26.1211457 8.854098412
9 59 25.70626471 26.56813524 28.67187724 0.8987224706 0.8288638824 0.96899 0.02249941 40.90667859 36.54390494 0.09534772588 -34.65637596 24.34789265 8.224902824
9 58 26.14948235 27.24067929 29.07725735 0.9054595294 0.8344228824 0.9718654118 0.01993024 44.41436447 37.04243118 0.09034511529 -28.13501326 22.83150819 7.613701941
9 57 26.53791176 27.82962129 29.43648559 0.8884065294 0.8128358824 0.9742295294 0.01797780706 48.03682559 37.10697359 0.08954626529 -42.03734997 21.73310751 7.137255294
9 56 26.8921 28.43096847 29.80613624 0.9134905882 0.8407902941 0.9764777647 0.01627934706 50.96750429 37.85488165 0.08170054647 -22.1318694 20.76584951 6.768578529
9 55 27.22853529 28.97716524 30.161453 0.9299411176 0.8583077647 0.978483 0.01478728176 53.455549 38.56229182 0.07350551765 -11.11794388 20.12879069 6.427248647
9 54 27.57961176 29.54667312 30.50381547 0.9347911176 0.8649394118 0.9801077647 0.01335205412 56.44100141 38.98701624 0.07008258706 -5.442988964 19.26445434 6.057205294
9 53 27.89533529 30.06726447 30.82738671 0.9389810588 0.8686668824 0.9817758824 0.01213919294 58.82021459 39.39171706 0.06677435118 -1.188148466 18.35520671 5.750838235
9 52 28.222 30.61549059 31.18502988 0.944208 0.8761978235 0.9833265294 0.01101098353 61.37063571 39.89705718 0.06272760412 2.346967569 17.6018592 5.461978353
9 51 28.52882353 31.13294106 31.50616253 0.9470917647 0.8809148235 0.984704 0.01006184882 63.28954341 40.30271165 0.05990766235 7.350912563 16.75417693 5.188005
9 50 28.81519412 31.61478912 31.81925253 0.949808 0.8844907647 0.9859615882 0.009284749412 65.194149 40.64832524 0.05694014118 9.218705418 16.46241244 4.988844
9 49 29.15414118 32.14333747 32.12962306 0.9544127059 0.8887904706 0.9869961765 0.008499294706 66.98045471 41.04157318 0.05374009647 13.9746478 15.08931783 4.686726765
9 48 29.43353529 32.65557771 32.45981224 0.9570203529 0.8904084706 0.9880450588 0.007830817647 68.98349441 41.37037418 0.05060006647 16.07885771 13.44840476 4.40418
9 47 29.75552353 33.15259488 32.81536129 0.9611224706 0.8961058824 0.9889909412 0.007134477059 70.594267 41.79373259 0.04851689412 19.2148848 13.14517189 4.220259529
9 46 30.06143529 33.67696947 33.16660018 0.9636041176 0.8989673529 0.9898388235 0.006533560588 72.32109412 42.28586182 0.04610983765 22.10176327 12.37129026 3.975651529
9 45 30.34778824 34.17901082 33.56661165 0.9668322353 0.9024122941 0.9906891765 0.005989924118 74.01463812 42.63558835 0.04352659471 24.86114628 12.0132793 3.815030353
9 44 30.63395882 34.66114165 33.94305018 0.9675715294 0.9039770588 0.9915364118 0.005435185882 75.54858924 42.91964112 0.04095985235 27.43953752 11.66052442 3.644435529
9 43 30.90707647 35.10885006 34.300809 0.9699227647 0.9062995294 0.9921774118 0.004998441176 76.58618771 43.25056759 0.03908090059 30.81528808 10.91589008 3.480452588
9 42 31.21899412 35.628367 34.733014 0.9738664706 0.9124547647 0.9928774118 0.004570674118 78.15290659 43.81718553 0.03664940353 33.4560958 10.4118341 3.329654059
9 41 31.47233529 36.03708094 35.14115129 0.9747028824 0.9124307059 0.9933452353 0.004219362941 79.41392088 43.81415494 0.03465589941 35.11232527 9.9042042 3.196825882
9 40 31.76805294 36.50345218 35.58399112 0.9745305294 0.9121797059 0.9938491765 0.003846927059 80.59787871 44.11029541 0.03300479059 37.84084146 9.43435352 3.051375941
9 39 32.06210588 36.98658424 36.01650147 0.9793336471 0.9230501765 0.9943775882 0.003498989412 81.69354253 44.78502924 0.03110437294 41.23326303 9.083968864 2.931130353
9 38 32.32149412 37.36857953 36.45492282 0.9806388824 0.9254233529 0.9947890588 0.003233901765 82.64213059 45.13550935 0.02993542588 44.15915355 8.636580804 2.833448235
9 37 32.63197647 37.87014659 36.96840488 0.9849902941 0.9336805294 0.9952781765 0.002917634706 83.70913741 45.89267147 0.02767176118 47.24634195 8.025008005 2.683671941
9 36 32.86186471 38.22060218 37.38334682 0.9860007059 0.9355765294 0.9955978824 0.002709924706 84.42815994 46.18604212 0.02639234059 52.11169893 7.648397726 2.603063176
9 35 33.14922941 38.65252671 37.88636353 0.9872151765 0.9386634118 0.99598 0.002469828824 85.38928235 46.57727059 0.02472434294 54.34129542 7.060936479 2.500652118
9 34 33.41080588 39.05786188 38.41071259 0.9885768824 0.9411126471 0.9963417647 0.002236601765 86.19075194 47.02263335 0.02316549882 54.0196275 6.808031278 2.409617412
9 33 33.62241765 39.39220812 38.821 0.9892344706 0.9425212941 0.9966096471 0.002066691176 86.86774182 47.314386 0.02214215765 55.57547678 6.538321579 2.356395941
9 32 33.83433529 39.71037141 39.27425871 0.9902931765 0.9445677647 0.9968984706 0.001906960588 87.49048688 47.59704524 0.02088043412 57.47310198 6.145926532 2.284202235
9 31 34.08352353 40.08563853 39.801764 0.9911405294 0.9463938235 0.9971642353 0.001739347059 88.14786418 47.91892671 0.01948856118 59.60712709 5.806785836 2.214920118
9 30 34.3924 40.56326429 40.36438265 0.9917021176 0.9476747647 0.9974283529 0.001562239412 88.93059306 48.28696 0.01820523353 61.91694288 5.643194689 2.147654235
9 29 34.56192941 40.85333424 40.72444324 0.9926158235 0.9497428824 0.9976138235 0.001457990588 89.36909588 48.53040729 0.01704762882 63.34096603 5.528616961 2.109699765
9 28 34.70962941 41.07833847 41.10619971 0.9928759412 0.9508064706 0.9977621765 0.001374365294 89.68459565 48.74627876 0.01623645824 64.42263557 5.489266872 2.078064706
9 27 34.88807059 41.36263412 41.50082594 0.9936525882 0.9535828235 0.9979235882 0.001265718235 90.10490806 49.13066235 0.01550393 65.76096463 5.470485098 2.048998235
9 26 35.05465882 41.64799471 41.91705465 0.994148 0.9552885882 0.9980555882 0.001183901176 90.45293876 49.45387159 0.01459126706 67.11236603 5.244261321 2.009913
9 25 35.21929412 41.94146776 42.378963 0.9950355294 0.9570071176 0.9982474118 0.001081635294 90.85983888 49.84646424 0.01374325765 68.94015833 5.12061509 1.976710765
9 24 35.37728235 42.22084712 42.83910147 0.9955285294 0.9586585294 0.9984068824 0.001000353529 91.21051641 50.12266529 0.01292010412 70.63611837 4.879515424 1.949229
9 23 35.49010588 42.40162829 43.15481029 0.9958319412 0.9597752353 0.9984922941 0.0009491752941 91.52977147 50.341928 0.01241320118 71.44873694 4.735499508 1.931633824
9 22 35.55107059 42.49375994 43.39439676 0.9959336471 0.9595530588 0.9985629412 0.0009143576471 91.61922076 50.41436794 0.01194725353 71.98587349 4.719968627 1.916530647
9 21 35.62754706 42.62274347 43.60979012 0.9963128235 0.9610896471 0.9986247059 0.0008767029412 91.81685335 50.63764647 0.01152604647 72.67819566 4.578786457 1.902630529
9 20 35.70741765 42.79487853 43.88209359 0.9964992353 0.9618332941 0.9987039412 0.00083847 91.98311171 50.79234847 0.01107994294 73.24135451 4.49925814 1.898722118
9 19 35.80057059 42.93673559 44.19221812 0.9967878235 0.9627983529 0.9987786471 0.0007974341176 92.24130406 51.00546182 0.01044976765 74.17933874 4.37714954 1.876413412
9 18 35.86748235 43.05889647 44.44653982 0.996949 0.9635157647 0.9988475294 0.0007655564706 92.40078035 51.15380424 0.01003756647 74.83493702 4.306672405 1.870021765
9 17 35.93970588 43.19812276 44.68566518 0.9972044706 0.964422 0.9989127647 0.0007332894118 92.51188906 51.37439324 0.009602159412 75.46851659 4.239496764 1.849499588
9 16 36.01013529 43.32606941 44.94484394 0.9972946471 0.9651361176 0.9989666471 0.0007002005882 92.71579971 51.503108 0.009125570588 76.12740523 4.180650388 1.846609235
9 15 36.14036471 43.493372 45.35857529 0.9974575882 0.9658548235 0.9990261765 0.0006554582353 92.92394206 51.72036059 0.008678397647 77.00379741 4.118791061 1.833839529
9 14 36.20361765 43.62486365 45.63504388 0.9976084118 0.9665937647 0.9990775294 0.0006323623529 93.11183129 51.88416394 0.008265805294 77.4559851 4.078676294 1.826461412
9 13 36.27557059 43.761259 45.89381682 0.9977528235 0.967154 0.9991383529 0.0006035429412 93.22052665 52.06888724 0.007910925882 77.96144093 4.009225453 1.817266941
9 12 36.31313529 43.83661076 46.16413788 0.9979617059 0.9674486471 0.9991894118 0.0005818876471 93.34948006 52.25835824 0.007457184118 78.48557164 4.004354659 1.808909176
9 11 36.39181765 43.98000612 46.48488765 0.998115 0.9686144706 0.9992436471 0.0005514764706 93.51767153 52.47979176 0.006989355294 79.00807671 3.928152772 1.802958176
9 10 36.45126471 44.09514753 46.75919847 0.9982880588 0.9694061176 0.9993007647 0.0005277388235 93.67247824 52.68566118 0.006612283529 79.49183496 3.969232489 1.794842824
9 9 36.50310588 44.20812582 47.01740506 0.9984327647 0.9700574118 0.9993398235 0.0005088682353 93.78628653 52.85467429 0.006268716471 79.77266934 3.954127101 1.796985765
9 8 36.55986471 44.32820635 47.33163706 0.9986014118 0.9709761765 0.9993975294 0.0004857217647 93.96763871 53.10097376 0.005887631765 80.27850787 3.937997285 1.786232176
9 7 36.61585882 44.44085771 47.59254065 0.9987214706 0.9718147059 0.9994362941 0.0004655041176 94.09725353 53.33715947 0.005507764118 80.60042058 3.904606034 1.779313706
9 6 36.65892353 44.52423465 47.80860929 0.9987619412 0.971859 0.999442 0.0004526058824 94.16648153 53.44407441 0.005411165882 81.04678547 3.868213906 1.776989471
9 5 36.70726471 44.63949694 48.10665141 0.9988790588 0.9723882941 0.9994867059 0.0004349094118 94.28903912 53.65360659 0.005040928235 81.30987889 3.831128752 1.773896412
9 4 36.74961765 44.74143 48.38165194 0.9990072353 0.9731358235 0.9995335882 0.0004171864706 94.41267753 53.88560918 0.004710099412 81.70335677 3.82058605 1.768430059
9 3 36.77870588 44.82106129 48.60918371 0.9991084118 0.9736236471 0.9995731176 0.0004044741176 94.50556788 54.08491553 0.004349849412 81.76876943 3.823763413 1.765978471
9 2 36.81484118 44.91832388 48.82955559 0.9991917647 0.9741762941 0.9996052353 0.0003911758824 94.60137829 54.28784729 0.004114074118 82.04060124 3.822383067 1.763057235
9 1 36.84213529 45.00184488 49.03002841 0.9992712353 0.9746680588 0.9996374118 0.0003813005882 94.69230088 54.49401347 0.003873209412 82.14834438 3.807304649 1.761085294

Calculating bpp

Below is the size information from encoding the noto-emoji data using AVIF with a speed of 9 and an encoding_point of 40. You can see all of the options used in the Metrics - Running section.

input outputSize width height bpp
emoji_u263a.png 5924 512 512 0.1807861328
emoji_u1f64f.png 3999 512 512 0.1220397949
emoji_u1f926.png 4656 512 512 0.1420898438
emoji_u1f525.png 4225 512 512 0.1289367676
emoji_u1f44f.png 6429 512 512 0.1961975098
emoji_u1f495.png 3817 512 512 0.1164855957
emoji_u1f602.png 7901 512 512 0.2411193848
emoji_u1f60d.png 6223 512 512 0.1899108887
emoji_u1f618.png 6008 512 512 0.1833496094
emoji_u1f970.png 6735 512 512 0.2055358887
emoji_u1f923.png 7764 512 512 0.2369384766
emoji_u1f937.png 5673 512 512 0.1731262207
emoji_u1f973.png 8202 512 512 0.2503051758
emoji_u1f382.png 6622 512 512 0.2020874023
emoji_u2764.png 3242 512 512 0.09893798828
emoji_u1f44d.png 4000 512 512 0.1220703125
emoji_u1f389.png 11326 512 512 0.3456420898

Next we average all the bpp for every input. The example above gives us the average value of 0.1844446519.



Next we average all the bpp for every encoding_point within a given speed/effort. Below is the average bpp for every encoding_point within speed 9 from our example.
speed encoding_point bpp
9 63 0.03986672794
9 62 0.04541015625
9 61 0.05034143784
9 60 0.05435360179
9 59 0.05857041303
9 58 0.06273696002
9 57 0.06677784639
9 56 0.07098209157
9 55 0.07532994887
9 54 0.08025045956
9 53 0.08511532054
9 52 0.09028715246
9 51 0.09558644014
9 50 0.1011819278
9 49 0.1073644301
9 48 0.1136582318
9 47 0.1208262724
9 46 0.1281397202
9 45 0.1359899184
9 44 0.1446515252
9 43 0.1533167222
9 42 0.1632672478
9 41 0.1733560001
9 40 0.1844446519
9 39 0.195513557
9 38 0.2076380113
9 37 0.2206313189
9 36 0.2329819623
9 35 0.2470200483
9 34 0.2618192785
9 33 0.2749005486
9 32 0.2895041073
9 31 0.3059387207
9 30 0.3252258301
9 29 0.3381329705
9 28 0.3523236443
9 27 0.3678427304
9 26 0.3840942383
9 25 0.4022701488
9 24 0.4215770048
9 23 0.4352183622
9 22 0.4462764964
9 21 0.4582250259
9 20 0.4694429285
9 19 0.4841254739
9 18 0.4976196289
9 17 0.5124906652
9 16 0.527604047
9 15 0.5499913833
9 14 0.5686035156
9 13 0.5886661305
9 12 0.610452091
9 11 0.6365320542
9 10 0.6634629193
9 9 0.6928728889
9 8 0.7304238712
9 7 0.768714456
9 6 0.8185424805
9 5 0.8744991527
9 4 0.9427149156
9 3 1.026264864
9 2 1.14748607
9 1 1.321691176
Then we use the values in one of the metrics columns and the bpp column as one of the inputs to the graphs and BD-Rate calculations.

Codecs - Versions

AVIF

JPEG XL

MozJPEG

libjpeg-turbo

WebP

Metrics - Versions

ImageMagick

ImageMagick is used to calculate these two metrics below:

psnr_magick

ssim_magick

libvmaf

libvmaf is used to calculate the metrics below:

psnr_hvs

psnr_y

ssim

msssim

vmaf

ciede2000

DSSIM

dssim

libjxl

libjxl is used to calculate the metrics below:

ssimulacra

ssimulacra2

butteraugli

p3norm

Codecs - Building

AVIF

Build the specific checkout of libaom.
git clone https://aomedia.googlesource.com/aom
cd aom
git checkout cb8163144
mkdir build.libavif
cd build.libavif
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DBUILD_SHARED_LIBS=0 ..
make -j8
Build the remaining prerequisites for avifenc. Note you may need to build specific hashes like libaom.
cd libavif/ext
./dav1d.cmd
./libsharpyuv.cmd
./libyuv.cmd
Build avifenc.
cd ../../
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DAVIF_LOCAL_AOM=1 -DAVIF_CODEC_AOM=1 -DAVIF_LOCAL_DAV1D=1 -DAVIF_CODEC_DAV1D=1 -DBUILD_SHARED_LIBS=0 -DAVIF_BUILD_APPS=1 -DAVIF_LOCAL_LIBYUV=1 -DAVIF_LOCAL_LIBSHARPYUV=1 ..
make -j 8

JPEG XL

Building

See JPEG XL building for more information on building JPEG XL.

MozJPEG

Building

See MozJPEG building for more information on building MozJPEG.

libjpeg-turbo

Building

See libjpeg-turbo building for more information on building libjpeg-turbo.

WebP

Building

See WebP building for more information on building WebP.

Metrics - Building

ImageMagick

ImageMagick is used to calculate these two metrics below:

psnr_magick

ssim_magick

Building

See Mac, Windows, or Linux for more information on building ImageMagick.

libvmaf

libvmaf is used to calculate the metrics below:

psnr_hvs

psnr_y

ssim

msssim

vmaf

ciede2000

Building

See libvmaf building for more information on building libvmaf.

DSSIM

dssim

Building

See DSSIM building for more information on building DSSIM.

libjxl

libjxl is used to calculate the metrics below:

ssimulacra

ssimulacra2

butteraugli

p3norm

Building

See libjxl building for more information on building libjxl.

Codecs - Running

AVIF

Encode command line:
for THREADS 1, 2, 4, 8
  for SPEED 0 to 10
    for CQ-LEVEL 1 to 63
      if {THREADS} equals 1 TILES=0
      if {THREADS} equals 2 TILES=1
      if {THREADS} equals 4 or 8 TILES=2
      time avifenc {SOURCE} {ENCODED} --speed {SPEED} --jobs {THREADS} -y 420 --min 0 --max 63 --tilecolslog2 {TILES} --tilerowslog2 {TILES} -a end-usage=q -a cq-level={CQ-LEVEL} -a tune=ssim
Decode command line:
time avifdec {ENCODED} {DECODED} --upsampling bilinear

Lossless Encode command line:
time avifenc {SOURCE} {ENCODED} --lossless --speed 0 --jobs 1 -y 444 -d 8 --ignore-icc

JPEG XL

Encode command line:
for THREADS 1, 2, 4, 8
  for EFFORT 3 to 9
    for DISTANCE 0.1 to 1.9 stepping by 0.1 and DISTANCE 2.0 to 15.0 stepping by 0.5
      time cjxl {SOURCE} {ENCODED} -v -e {EFFORT} -d {DISTANCE} --num_threads={THREADS}
Decode command line:
time djxl {ENCODED} {DECODED}

Lossless Encode command line:
time cjxl {SOURCE} {ENCODED} -v -e 9 -d 0 -E 3 --num_threads=1

MozJPEG

Encode command line:
for QUALITY 1 to 100
  time cjpeg -outfile {ENCODED} -quality {QUALITY} {SOURCE}

libjpeg-turbo

Encode command line:
for QUALITY 1 to 100
  time tjexample {SOURCE} {ENCODED} -q {QUALITY}

WebP

Encode command line:
for EFFORT 0 to 6
  for QUALITY 0 to 100
      time cwebp -v -m {EFFORT} -q {QUALITY} {SOURCE} -o {ENCODED}
Decode command line:
time dwebp -v {ENCODED} -o {DECODED}

Lossless Encode command line:
time cwebp -v -z 9 {SOURCE} -o {ENCODED}

Metrics - Running

ImageMagick

ImageMagick is used to calculate these two metrics below:

psnr_magick

ssim_magick

Metric command line:
for METRIC PSNR, SSIM
  magick compare -metric {METRIC} {SOURCE} {DECODED} {TEMPFILE}

libvmaf

libvmaf is used to calculate the metrics below:

psnr_hvs

psnr_y

ssim

msssim

vmaf

ciede2000

libvmaf only takes YUV as input, so we must first convert the RGB PNG files to YUV444 y4m files.
Convert {SOURCE} to YUV444 y4m:
ffmpeg -i {SOURCE} -pix_fmt yuvj444p {Y4MSOURCE} -y
Convert {DECODED} to YUV444 y4m:
ffmpeg -i {DECODED} -pix_fmt yuvj444p {Y4MDECODED} -y
With the command below, libvmaf will return a json file with the requested metrics.
vmaf --json --feature psnr --feature psnr_hvs --feature float_ssim --feature float_ms_ssim --feature ciede -r {Y4MSOURCE} -d {Y4MDECODED} --output {VMAFJSON}

DSSIM

dssim

Metric command line:
dssim {SOURCE} {DECODED}

libjxl

libjxl is used to calculate the metrics below:

ssimulacra

ssimulacra2

butteraugli

p3norm

ssimulacra command line:
ssimulacra_main {SOURCE} {DECODED}
ssimulacra2 command line:
ssimulacra2 {SOURCE} {DECODED}
butteraugli and p3norm values are both returned from the butteraugli binary. butteraugli is the first value and p3norm is the second value.
butteraugli_main {SOURCE} {DECODED}