google-research

Форк
0
/
equivalent_quality_interpolation.ipynb 
863 строки · 44.3 Кб
1
{
2
  "cells": [
3
    {
4
      "cell_type": "markdown",
5
      "metadata": {
6
        "id": "iSNx_cpHLk4U"
7
      },
8
      "source": [
9
        "Copyright 2024 Google. All Rights Reserved.\n",
10
        "\n",
11
        "Licensed under the Apache License, Version 2.0 (the \"License\");\n",
12
        "you may not use this file except in compliance with the License.\n",
13
        "You may obtain a copy of the License at\n",
14
        "\n",
15
        "     http://www.apache.org/licenses/LICENSE-2.0\n",
16
        "\n",
17
        "Unless required by applicable law or agreed to in writing, software\n",
18
        "distributed under the License is distributed on an \"AS IS\" BASIS,\n",
19
        "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
20
        "See the License for the specific language governing permissions and\n",
21
        "limitations under the License."
22
      ]
23
    },
24
    {
25
      "cell_type": "code",
26
      "execution_count": null,
27
      "metadata": {
28
        "id": "V3MXGeuiJKm2"
29
      },
30
      "outputs": [],
31
      "source": [
32
        "import numpy as np\n",
33
        "import pandas as pd"
34
      ]
35
    },
36
    {
37
      "cell_type": "code",
38
      "execution_count": null,
39
      "metadata": {
40
        "colab": {
41
          "base_uri": "https://localhost:8080/",
42
          "height": 1000
43
        },
44
        "executionInfo": {
45
          "elapsed": 15,
46
          "status": "ok",
47
          "timestamp": 1707225325227,
48
          "user": {
49
            "displayName": "Martin Bruse",
50
            "userId": "11653897382912197853"
51
          },
52
          "user_tz": -60
53
        },
54
        "id": "NS3KzmatoC0K",
55
        "outputId": "1cb42bde-9087-4cdf-dd4a-2c7a28eafa95"
56
      },
57
      "outputs": [
58
        {
59
          "data": {
60
            "application/vnd.google.colaboratory.intrinsic+json": {
61
              "summary": "{\n  \"name\": \"dataframe\",\n  \"rows\": 31,\n  \"fields\": [\n    {\n      \"column\": \"method\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"samples\": [\n          \"mozjpeg-q80-yuv422\",\n          \"jpegli-q95-yuv444\",\n          \"libjpeg-turbo-q90-yuv444\"\n        ],\n        \"num_unique_values\": 31,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"elo\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 357.0546814762691,\n        \"min\": 1417.7186,\n        \"max\": 2634.0227,\n        \"samples\": [\n          1958.4712,\n          2634.0227,\n          2392.5342\n        ],\n        \"num_unique_values\": 31,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"p99Low\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 353.3443880977271,\n        \"min\": 1359.5063,\n        \"max\": 2568.278,\n        \"samples\": [\n          1916.8787,\n          2568.278,\n          2341.0535\n        ],\n        \"num_unique_values\": 31,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"p99Hi\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 360.8547605753182,\n        \"min\": 1475.9309,\n        \"max\": 2699.7676,\n        \"samples\": [\n          2000.0637,\n          2699.7676,\n          2444.015\n        ],\n        \"num_unique_values\": 31,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"bpp\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.7739578875241327,\n        \"min\": 0.8748113,\n        \"max\": 3.77433,\n        \"samples\": [\n          1.3579394,\n          2.7829142,\n          2.6226315\n        ],\n        \"num_unique_values\": 31,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"label\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"samples\": [\n          \"jpegli-420\",\n          \"mozjpeg\",\n          \"jpegli\"\n        ],\n        \"num_unique_values\": 4,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}",
62
              "type": "dataframe",
63
              "variable_name": "dataframe"
64
            },
65
            "text/html": [
66
              "\n",
67
              "  \u003cdiv id=\"df-bf491ffd-554f-45da-b036-38aa5371007f\" class=\"colab-df-container\"\u003e\n",
68
              "    \u003cdiv\u003e\n",
69
              "\u003cstyle scoped\u003e\n",
70
              "    .dataframe tbody tr th:only-of-type {\n",
71
              "        vertical-align: middle;\n",
72
              "    }\n",
73
              "\n",
74
              "    .dataframe tbody tr th {\n",
75
              "        vertical-align: top;\n",
76
              "    }\n",
77
              "\n",
78
              "    .dataframe thead th {\n",
79
              "        text-align: right;\n",
80
              "    }\n",
81
              "\u003c/style\u003e\n",
82
              "\u003ctable border=\"1\" class=\"dataframe\"\u003e\n",
83
              "  \u003cthead\u003e\n",
84
              "    \u003ctr style=\"text-align: right;\"\u003e\n",
85
              "      \u003cth\u003e\u003c/th\u003e\n",
86
              "      \u003cth\u003emethod\u003c/th\u003e\n",
87
              "      \u003cth\u003eelo\u003c/th\u003e\n",
88
              "      \u003cth\u003ep99Low\u003c/th\u003e\n",
89
              "      \u003cth\u003ep99Hi\u003c/th\u003e\n",
90
              "      \u003cth\u003ebpp\u003c/th\u003e\n",
91
              "      \u003cth\u003elabel\u003c/th\u003e\n",
92
              "    \u003c/tr\u003e\n",
93
              "  \u003c/thead\u003e\n",
94
              "  \u003ctbody\u003e\n",
95
              "    \u003ctr\u003e\n",
96
              "      \u003cth\u003e0\u003c/th\u003e\n",
97
              "      \u003ctd\u003ejpegli-q55-yuv444\u003c/td\u003e\n",
98
              "      \u003ctd\u003e1616.2178\u003c/td\u003e\n",
99
              "      \u003ctd\u003e1570.1244\u003c/td\u003e\n",
100
              "      \u003ctd\u003e1662.3113\u003c/td\u003e\n",
101
              "      \u003ctd\u003e0.896926\u003c/td\u003e\n",
102
              "      \u003ctd\u003ejpegli\u003c/td\u003e\n",
103
              "    \u003c/tr\u003e\n",
104
              "    \u003ctr\u003e\n",
105
              "      \u003cth\u003e1\u003c/th\u003e\n",
106
              "      \u003ctd\u003ejpegli-q60-yuv444\u003c/td\u003e\n",
107
              "      \u003ctd\u003e1656.4395\u003c/td\u003e\n",
108
              "      \u003ctd\u003e1611.1019\u003c/td\u003e\n",
109
              "      \u003ctd\u003e1701.7771\u003c/td\u003e\n",
110
              "      \u003ctd\u003e0.963380\u003c/td\u003e\n",
111
              "      \u003ctd\u003ejpegli\u003c/td\u003e\n",
112
              "    \u003c/tr\u003e\n",
113
              "    \u003ctr\u003e\n",
114
              "      \u003cth\u003e2\u003c/th\u003e\n",
115
              "      \u003ctd\u003ejpegli-q65-yuv420\u003c/td\u003e\n",
116
              "      \u003ctd\u003e1600.8348\u003c/td\u003e\n",
117
              "      \u003ctd\u003e1554.3654\u003c/td\u003e\n",
118
              "      \u003ctd\u003e1647.3044\u003c/td\u003e\n",
119
              "      \u003ctd\u003e0.874811\u003c/td\u003e\n",
120
              "      \u003ctd\u003ejpegli-420\u003c/td\u003e\n",
121
              "    \u003c/tr\u003e\n",
122
              "    \u003ctr\u003e\n",
123
              "      \u003cth\u003e3\u003c/th\u003e\n",
124
              "      \u003ctd\u003ejpegli-q65-yuv444\u003c/td\u003e\n",
125
              "      \u003ctd\u003e1738.0724\u003c/td\u003e\n",
126
              "      \u003ctd\u003e1695.7542\u003c/td\u003e\n",
127
              "      \u003ctd\u003e1780.3906\u003c/td\u003e\n",
128
              "      \u003ctd\u003e1.029448\u003c/td\u003e\n",
129
              "      \u003ctd\u003ejpegli\u003c/td\u003e\n",
130
              "    \u003c/tr\u003e\n",
131
              "    \u003ctr\u003e\n",
132
              "      \u003cth\u003e4\u003c/th\u003e\n",
133
              "      \u003ctd\u003ejpegli-q70-yuv420\u003c/td\u003e\n",
134
              "      \u003ctd\u003e1692.4553\u003c/td\u003e\n",
135
              "      \u003ctd\u003e1648.4811\u003c/td\u003e\n",
136
              "      \u003ctd\u003e1736.4296\u003c/td\u003e\n",
137
              "      \u003ctd\u003e0.953669\u003c/td\u003e\n",
138
              "      \u003ctd\u003ejpegli-420\u003c/td\u003e\n",
139
              "    \u003c/tr\u003e\n",
140
              "    \u003ctr\u003e\n",
141
              "      \u003cth\u003e5\u003c/th\u003e\n",
142
              "      \u003ctd\u003ejpegli-q70-yuv444\u003c/td\u003e\n",
143
              "      \u003ctd\u003e1864.5178\u003c/td\u003e\n",
144
              "      \u003ctd\u003e1824.3069\u003c/td\u003e\n",
145
              "      \u003ctd\u003e1904.7288\u003c/td\u003e\n",
146
              "      \u003ctd\u003e1.123597\u003c/td\u003e\n",
147
              "      \u003ctd\u003ejpegli\u003c/td\u003e\n",
148
              "    \u003c/tr\u003e\n",
149
              "    \u003ctr\u003e\n",
150
              "      \u003cth\u003e6\u003c/th\u003e\n",
151
              "      \u003ctd\u003ejpegli-q75-yuv420\u003c/td\u003e\n",
152
              "      \u003ctd\u003e1823.9264\u003c/td\u003e\n",
153
              "      \u003ctd\u003e1782.0206\u003c/td\u003e\n",
154
              "      \u003ctd\u003e1865.8322\u003c/td\u003e\n",
155
              "      \u003ctd\u003e1.051037\u003c/td\u003e\n",
156
              "      \u003ctd\u003ejpegli-420\u003c/td\u003e\n",
157
              "    \u003c/tr\u003e\n",
158
              "    \u003ctr\u003e\n",
159
              "      \u003cth\u003e7\u003c/th\u003e\n",
160
              "      \u003ctd\u003ejpegli-q75-yuv444\u003c/td\u003e\n",
161
              "      \u003ctd\u003e2022.0585\u003c/td\u003e\n",
162
              "      \u003ctd\u003e1980.5918\u003c/td\u003e\n",
163
              "      \u003ctd\u003e2063.5254\u003c/td\u003e\n",
164
              "      \u003ctd\u003e1.227468\u003c/td\u003e\n",
165
              "      \u003ctd\u003ejpegli\u003c/td\u003e\n",
166
              "    \u003c/tr\u003e\n",
167
              "    \u003ctr\u003e\n",
168
              "      \u003cth\u003e8\u003c/th\u003e\n",
169
              "      \u003ctd\u003ejpegli-q80-yuv420\u003c/td\u003e\n",
170
              "      \u003ctd\u003e1980.5387\u003c/td\u003e\n",
171
              "      \u003ctd\u003e1935.3760\u003c/td\u003e\n",
172
              "      \u003ctd\u003e2025.7014\u003c/td\u003e\n",
173
              "      \u003ctd\u003e1.176039\u003c/td\u003e\n",
174
              "      \u003ctd\u003ejpegli-420\u003c/td\u003e\n",
175
              "    \u003c/tr\u003e\n",
176
              "    \u003ctr\u003e\n",
177
              "      \u003cth\u003e9\u003c/th\u003e\n",
178
              "      \u003ctd\u003ejpegli-q80-yuv444\u003c/td\u003e\n",
179
              "      \u003ctd\u003e2139.4082\u003c/td\u003e\n",
180
              "      \u003ctd\u003e2096.1480\u003c/td\u003e\n",
181
              "      \u003ctd\u003e2182.6687\u003c/td\u003e\n",
182
              "      \u003ctd\u003e1.374517\u003c/td\u003e\n",
183
              "      \u003ctd\u003ejpegli\u003c/td\u003e\n",
184
              "    \u003c/tr\u003e\n",
185
              "    \u003ctr\u003e\n",
186
              "      \u003cth\u003e10\u003c/th\u003e\n",
187
              "      \u003ctd\u003ejpegli-q85-yuv420\u003c/td\u003e\n",
188
              "      \u003ctd\u003e2135.3962\u003c/td\u003e\n",
189
              "      \u003ctd\u003e2088.1436\u003c/td\u003e\n",
190
              "      \u003ctd\u003e2182.6487\u003c/td\u003e\n",
191
              "      \u003ctd\u003e1.361384\u003c/td\u003e\n",
192
              "      \u003ctd\u003ejpegli-420\u003c/td\u003e\n",
193
              "    \u003c/tr\u003e\n",
194
              "    \u003ctr\u003e\n",
195
              "      \u003cth\u003e11\u003c/th\u003e\n",
196
              "      \u003ctd\u003ejpegli-q85-yuv444\u003c/td\u003e\n",
197
              "      \u003ctd\u003e2293.2693\u003c/td\u003e\n",
198
              "      \u003ctd\u003e2247.1530\u003c/td\u003e\n",
199
              "      \u003ctd\u003e2339.3857\u003c/td\u003e\n",
200
              "      \u003ctd\u003e1.591872\u003c/td\u003e\n",
201
              "      \u003ctd\u003ejpegli\u003c/td\u003e\n",
202
              "    \u003c/tr\u003e\n",
203
              "    \u003ctr\u003e\n",
204
              "      \u003cth\u003e12\u003c/th\u003e\n",
205
              "      \u003ctd\u003ejpegli-q90-yuv420\u003c/td\u003e\n",
206
              "      \u003ctd\u003e2296.9397\u003c/td\u003e\n",
207
              "      \u003ctd\u003e2247.5278\u003c/td\u003e\n",
208
              "      \u003ctd\u003e2346.3516\u003c/td\u003e\n",
209
              "      \u003ctd\u003e1.698086\u003c/td\u003e\n",
210
              "      \u003ctd\u003ejpegli-420\u003c/td\u003e\n",
211
              "    \u003c/tr\u003e\n",
212
              "    \u003ctr\u003e\n",
213
              "      \u003cth\u003e13\u003c/th\u003e\n",
214
              "      \u003ctd\u003ejpegli-q90-yuv444\u003c/td\u003e\n",
215
              "      \u003ctd\u003e2440.6377\u003c/td\u003e\n",
216
              "      \u003ctd\u003e2388.3870\u003c/td\u003e\n",
217
              "      \u003ctd\u003e2492.8887\u003c/td\u003e\n",
218
              "      \u003ctd\u003e1.971755\u003c/td\u003e\n",
219
              "      \u003ctd\u003ejpegli\u003c/td\u003e\n",
220
              "    \u003c/tr\u003e\n",
221
              "    \u003ctr\u003e\n",
222
              "      \u003cth\u003e14\u003c/th\u003e\n",
223
              "      \u003ctd\u003ejpegli-q95-yuv420\u003c/td\u003e\n",
224
              "      \u003ctd\u003e2481.9868\u003c/td\u003e\n",
225
              "      \u003ctd\u003e2425.2605\u003c/td\u003e\n",
226
              "      \u003ctd\u003e2538.7131\u003c/td\u003e\n",
227
              "      \u003ctd\u003e2.409262\u003c/td\u003e\n",
228
              "      \u003ctd\u003ejpegli-420\u003c/td\u003e\n",
229
              "    \u003c/tr\u003e\n",
230
              "    \u003ctr\u003e\n",
231
              "      \u003cth\u003e15\u003c/th\u003e\n",
232
              "      \u003ctd\u003ejpegli-q95-yuv444\u003c/td\u003e\n",
233
              "      \u003ctd\u003e2634.0227\u003c/td\u003e\n",
234
              "      \u003ctd\u003e2568.2780\u003c/td\u003e\n",
235
              "      \u003ctd\u003e2699.7676\u003c/td\u003e\n",
236
              "      \u003ctd\u003e2.782914\u003c/td\u003e\n",
237
              "      \u003ctd\u003ejpegli\u003c/td\u003e\n",
238
              "    \u003c/tr\u003e\n",
239
              "    \u003ctr\u003e\n",
240
              "      \u003cth\u003e16\u003c/th\u003e\n",
241
              "      \u003ctd\u003elibjpeg-turbo-q55-yuv420\u003c/td\u003e\n",
242
              "      \u003ctd\u003e1417.7186\u003c/td\u003e\n",
243
              "      \u003ctd\u003e1359.5063\u003c/td\u003e\n",
244
              "      \u003ctd\u003e1475.9309\u003c/td\u003e\n",
245
              "      \u003ctd\u003e0.890062\u003c/td\u003e\n",
246
              "      \u003ctd\u003elibjpeg-turbo\u003c/td\u003e\n",
247
              "    \u003c/tr\u003e\n",
248
              "    \u003ctr\u003e\n",
249
              "      \u003cth\u003e17\u003c/th\u003e\n",
250
              "      \u003ctd\u003elibjpeg-turbo-q60-yuv420\u003c/td\u003e\n",
251
              "      \u003ctd\u003e1522.5587\u003c/td\u003e\n",
252
              "      \u003ctd\u003e1472.4467\u003c/td\u003e\n",
253
              "      \u003ctd\u003e1572.6708\u003c/td\u003e\n",
254
              "      \u003ctd\u003e0.954096\u003c/td\u003e\n",
255
              "      \u003ctd\u003elibjpeg-turbo\u003c/td\u003e\n",
256
              "    \u003c/tr\u003e\n",
257
              "    \u003ctr\u003e\n",
258
              "      \u003cth\u003e18\u003c/th\u003e\n",
259
              "      \u003ctd\u003elibjpeg-turbo-q65-yuv420\u003c/td\u003e\n",
260
              "      \u003ctd\u003e1572.9736\u003c/td\u003e\n",
261
              "      \u003ctd\u003e1525.9553\u003c/td\u003e\n",
262
              "      \u003ctd\u003e1619.9918\u003c/td\u003e\n",
263
              "      \u003ctd\u003e1.033683\u003c/td\u003e\n",
264
              "      \u003ctd\u003elibjpeg-turbo\u003c/td\u003e\n",
265
              "    \u003c/tr\u003e\n",
266
              "    \u003ctr\u003e\n",
267
              "      \u003cth\u003e19\u003c/th\u003e\n",
268
              "      \u003ctd\u003elibjpeg-turbo-q70-yuv420\u003c/td\u003e\n",
269
              "      \u003ctd\u003e1685.1305\u003c/td\u003e\n",
270
              "      \u003ctd\u003e1642.5930\u003c/td\u003e\n",
271
              "      \u003ctd\u003e1727.6680\u003c/td\u003e\n",
272
              "      \u003ctd\u003e1.129677\u003c/td\u003e\n",
273
              "      \u003ctd\u003elibjpeg-turbo\u003c/td\u003e\n",
274
              "    \u003c/tr\u003e\n",
275
              "    \u003ctr\u003e\n",
276
              "      \u003cth\u003e20\u003c/th\u003e\n",
277
              "      \u003ctd\u003elibjpeg-turbo-q75-yuv420\u003c/td\u003e\n",
278
              "      \u003ctd\u003e1757.0505\u003c/td\u003e\n",
279
              "      \u003ctd\u003e1714.4518\u003c/td\u003e\n",
280
              "      \u003ctd\u003e1799.6492\u003c/td\u003e\n",
281
              "      \u003ctd\u003e1.239587\u003c/td\u003e\n",
282
              "      \u003ctd\u003elibjpeg-turbo\u003c/td\u003e\n",
283
              "    \u003c/tr\u003e\n",
284
              "    \u003ctr\u003e\n",
285
              "      \u003cth\u003e21\u003c/th\u003e\n",
286
              "      \u003ctd\u003elibjpeg-turbo-q80-yuv422\u003c/td\u003e\n",
287
              "      \u003ctd\u003e1989.6469\u003c/td\u003e\n",
288
              "      \u003ctd\u003e1946.9990\u003c/td\u003e\n",
289
              "      \u003ctd\u003e2032.2948\u003c/td\u003e\n",
290
              "      \u003ctd\u003e1.540141\u003c/td\u003e\n",
291
              "      \u003ctd\u003elibjpeg-turbo\u003c/td\u003e\n",
292
              "    \u003c/tr\u003e\n",
293
              "    \u003ctr\u003e\n",
294
              "      \u003cth\u003e22\u003c/th\u003e\n",
295
              "      \u003ctd\u003elibjpeg-turbo-q85-yuv422\u003c/td\u003e\n",
296
              "      \u003ctd\u003e2150.5596\u003c/td\u003e\n",
297
              "      \u003ctd\u003e2107.5012\u003c/td\u003e\n",
298
              "      \u003ctd\u003e2193.6177\u003c/td\u003e\n",
299
              "      \u003ctd\u003e1.804783\u003c/td\u003e\n",
300
              "      \u003ctd\u003elibjpeg-turbo\u003c/td\u003e\n",
301
              "    \u003c/tr\u003e\n",
302
              "    \u003ctr\u003e\n",
303
              "      \u003cth\u003e23\u003c/th\u003e\n",
304
              "      \u003ctd\u003elibjpeg-turbo-q90-yuv444\u003c/td\u003e\n",
305
              "      \u003ctd\u003e2392.5342\u003c/td\u003e\n",
306
              "      \u003ctd\u003e2341.0535\u003c/td\u003e\n",
307
              "      \u003ctd\u003e2444.0150\u003c/td\u003e\n",
308
              "      \u003ctd\u003e2.622631\u003c/td\u003e\n",
309
              "      \u003ctd\u003elibjpeg-turbo\u003c/td\u003e\n",
310
              "    \u003c/tr\u003e\n",
311
              "    \u003ctr\u003e\n",
312
              "      \u003cth\u003e24\u003c/th\u003e\n",
313
              "      \u003ctd\u003elibjpeg-turbo-q95-yuv444\u003c/td\u003e\n",
314
              "      \u003ctd\u003e2608.0166\u003c/td\u003e\n",
315
              "      \u003ctd\u003e2546.6313\u003c/td\u003e\n",
316
              "      \u003ctd\u003e2669.4019\u003c/td\u003e\n",
317
              "      \u003ctd\u003e3.774330\u003c/td\u003e\n",
318
              "      \u003ctd\u003elibjpeg-turbo\u003c/td\u003e\n",
319
              "    \u003c/tr\u003e\n",
320
              "    \u003ctr\u003e\n",
321
              "      \u003cth\u003e25\u003c/th\u003e\n",
322
              "      \u003ctd\u003emozjpeg-q70-yuv420\u003c/td\u003e\n",
323
              "      \u003ctd\u003e1662.1260\u003c/td\u003e\n",
324
              "      \u003ctd\u003e1619.2194\u003c/td\u003e\n",
325
              "      \u003ctd\u003e1705.0326\u003c/td\u003e\n",
326
              "      \u003ctd\u003e0.914854\u003c/td\u003e\n",
327
              "      \u003ctd\u003emozjpeg\u003c/td\u003e\n",
328
              "    \u003c/tr\u003e\n",
329
              "    \u003ctr\u003e\n",
330
              "      \u003cth\u003e26\u003c/th\u003e\n",
331
              "      \u003ctd\u003emozjpeg-q75-yuv420\u003c/td\u003e\n",
332
              "      \u003ctd\u003e1760.7078\u003c/td\u003e\n",
333
              "      \u003ctd\u003e1719.5176\u003c/td\u003e\n",
334
              "      \u003ctd\u003e1801.8980\u003c/td\u003e\n",
335
              "      \u003ctd\u003e1.024720\u003c/td\u003e\n",
336
              "      \u003ctd\u003emozjpeg\u003c/td\u003e\n",
337
              "    \u003c/tr\u003e\n",
338
              "    \u003ctr\u003e\n",
339
              "      \u003cth\u003e27\u003c/th\u003e\n",
340
              "      \u003ctd\u003emozjpeg-q80-yuv422\u003c/td\u003e\n",
341
              "      \u003ctd\u003e1958.4712\u003c/td\u003e\n",
342
              "      \u003ctd\u003e1916.8787\u003c/td\u003e\n",
343
              "      \u003ctd\u003e2000.0637\u003c/td\u003e\n",
344
              "      \u003ctd\u003e1.357939\u003c/td\u003e\n",
345
              "      \u003ctd\u003emozjpeg\u003c/td\u003e\n",
346
              "    \u003c/tr\u003e\n",
347
              "    \u003ctr\u003e\n",
348
              "      \u003cth\u003e28\u003c/th\u003e\n",
349
              "      \u003ctd\u003emozjpeg-q85-yuv422\u003c/td\u003e\n",
350
              "      \u003ctd\u003e2136.8660\u003c/td\u003e\n",
351
              "      \u003ctd\u003e2093.9138\u003c/td\u003e\n",
352
              "      \u003ctd\u003e2179.8180\u003c/td\u003e\n",
353
              "      \u003ctd\u003e1.590558\u003c/td\u003e\n",
354
              "      \u003ctd\u003emozjpeg\u003c/td\u003e\n",
355
              "    \u003c/tr\u003e\n",
356
              "    \u003ctr\u003e\n",
357
              "      \u003cth\u003e29\u003c/th\u003e\n",
358
              "      \u003ctd\u003emozjpeg-q90-yuv444\u003c/td\u003e\n",
359
              "      \u003ctd\u003e2360.3062\u003c/td\u003e\n",
360
              "      \u003ctd\u003e2312.1338\u003c/td\u003e\n",
361
              "      \u003ctd\u003e2408.4785\u003c/td\u003e\n",
362
              "      \u003ctd\u003e2.495490\u003c/td\u003e\n",
363
              "      \u003ctd\u003emozjpeg\u003c/td\u003e\n",
364
              "    \u003c/tr\u003e\n",
365
              "    \u003ctr\u003e\n",
366
              "      \u003cth\u003e30\u003c/th\u003e\n",
367
              "      \u003ctd\u003emozjpeg-q95-yuv444\u003c/td\u003e\n",
368
              "      \u003ctd\u003e2608.6120\u003c/td\u003e\n",
369
              "      \u003ctd\u003e2546.6934\u003c/td\u003e\n",
370
              "      \u003ctd\u003e2670.5308\u003c/td\u003e\n",
371
              "      \u003ctd\u003e3.502980\u003c/td\u003e\n",
372
              "      \u003ctd\u003emozjpeg\u003c/td\u003e\n",
373
              "    \u003c/tr\u003e\n",
374
              "  \u003c/tbody\u003e\n",
375
              "\u003c/table\u003e\n",
376
              "\u003c/div\u003e\n",
377
              "    \u003cdiv class=\"colab-df-buttons\"\u003e\n",
378
              "\n",
379
              "  \u003cdiv class=\"colab-df-container\"\u003e\n",
380
              "    \u003cbutton class=\"colab-df-convert\" onclick=\"convertToInteractive('df-bf491ffd-554f-45da-b036-38aa5371007f')\"\n",
381
              "            title=\"Convert this dataframe to an interactive table.\"\n",
382
              "            style=\"display:none;\"\u003e\n",
383
              "\n",
384
              "  \u003csvg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\"\u003e\n",
385
              "    \u003cpath d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/\u003e\n",
386
              "  \u003c/svg\u003e\n",
387
              "    \u003c/button\u003e\n",
388
              "\n",
389
              "  \u003cstyle\u003e\n",
390
              "    .colab-df-container {\n",
391
              "      display:flex;\n",
392
              "      gap: 12px;\n",
393
              "    }\n",
394
              "\n",
395
              "    .colab-df-convert {\n",
396
              "      background-color: #E8F0FE;\n",
397
              "      border: none;\n",
398
              "      border-radius: 50%;\n",
399
              "      cursor: pointer;\n",
400
              "      display: none;\n",
401
              "      fill: #1967D2;\n",
402
              "      height: 32px;\n",
403
              "      padding: 0 0 0 0;\n",
404
              "      width: 32px;\n",
405
              "    }\n",
406
              "\n",
407
              "    .colab-df-convert:hover {\n",
408
              "      background-color: #E2EBFA;\n",
409
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
410
              "      fill: #174EA6;\n",
411
              "    }\n",
412
              "\n",
413
              "    .colab-df-buttons div {\n",
414
              "      margin-bottom: 4px;\n",
415
              "    }\n",
416
              "\n",
417
              "    [theme=dark] .colab-df-convert {\n",
418
              "      background-color: #3B4455;\n",
419
              "      fill: #D2E3FC;\n",
420
              "    }\n",
421
              "\n",
422
              "    [theme=dark] .colab-df-convert:hover {\n",
423
              "      background-color: #434B5C;\n",
424
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
425
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
426
              "      fill: #FFFFFF;\n",
427
              "    }\n",
428
              "  \u003c/style\u003e\n",
429
              "\n",
430
              "    \u003cscript\u003e\n",
431
              "      const buttonEl =\n",
432
              "        document.querySelector('#df-bf491ffd-554f-45da-b036-38aa5371007f button.colab-df-convert');\n",
433
              "      buttonEl.style.display =\n",
434
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
435
              "\n",
436
              "      async function convertToInteractive(key) {\n",
437
              "        const element = document.querySelector('#df-bf491ffd-554f-45da-b036-38aa5371007f');\n",
438
              "        const dataTable =\n",
439
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
440
              "                                                    [key], {});\n",
441
              "        if (!dataTable) return;\n",
442
              "\n",
443
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
444
              "          '\u003ca target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb\u003edata table notebook\u003c/a\u003e'\n",
445
              "          + ' to learn more about interactive tables.';\n",
446
              "        element.innerHTML = '';\n",
447
              "        dataTable['output_type'] = 'display_data';\n",
448
              "        await google.colab.output.renderOutput(dataTable, element);\n",
449
              "        const docLink = document.createElement('div');\n",
450
              "        docLink.innerHTML = docLinkHtml;\n",
451
              "        element.appendChild(docLink);\n",
452
              "      }\n",
453
              "    \u003c/script\u003e\n",
454
              "  \u003c/div\u003e\n",
455
              "\n",
456
              "\n",
457
              "\u003cdiv id=\"df-8a9791fc-b9df-4610-8642-586a6e5bc7a7\"\u003e\n",
458
              "  \u003cbutton class=\"colab-df-quickchart\" onclick=\"quickchart('df-8a9791fc-b9df-4610-8642-586a6e5bc7a7')\"\n",
459
              "            title=\"Suggest charts\"\n",
460
              "            style=\"display:none;\"\u003e\n",
461
              "\n",
462
              "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
463
              "     width=\"24px\"\u003e\n",
464
              "    \u003cg\u003e\n",
465
              "        \u003cpath d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/\u003e\n",
466
              "    \u003c/g\u003e\n",
467
              "\u003c/svg\u003e\n",
468
              "  \u003c/button\u003e\n",
469
              "\n",
470
              "\u003cstyle\u003e\n",
471
              "  .colab-df-quickchart {\n",
472
              "      --bg-color: #E8F0FE;\n",
473
              "      --fill-color: #1967D2;\n",
474
              "      --hover-bg-color: #E2EBFA;\n",
475
              "      --hover-fill-color: #174EA6;\n",
476
              "      --disabled-fill-color: #AAA;\n",
477
              "      --disabled-bg-color: #DDD;\n",
478
              "  }\n",
479
              "\n",
480
              "  [theme=dark] .colab-df-quickchart {\n",
481
              "      --bg-color: #3B4455;\n",
482
              "      --fill-color: #D2E3FC;\n",
483
              "      --hover-bg-color: #434B5C;\n",
484
              "      --hover-fill-color: #FFFFFF;\n",
485
              "      --disabled-bg-color: #3B4455;\n",
486
              "      --disabled-fill-color: #666;\n",
487
              "  }\n",
488
              "\n",
489
              "  .colab-df-quickchart {\n",
490
              "    background-color: var(--bg-color);\n",
491
              "    border: none;\n",
492
              "    border-radius: 50%;\n",
493
              "    cursor: pointer;\n",
494
              "    display: none;\n",
495
              "    fill: var(--fill-color);\n",
496
              "    height: 32px;\n",
497
              "    padding: 0;\n",
498
              "    width: 32px;\n",
499
              "  }\n",
500
              "\n",
501
              "  .colab-df-quickchart:hover {\n",
502
              "    background-color: var(--hover-bg-color);\n",
503
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
504
              "    fill: var(--button-hover-fill-color);\n",
505
              "  }\n",
506
              "\n",
507
              "  .colab-df-quickchart-complete:disabled,\n",
508
              "  .colab-df-quickchart-complete:disabled:hover {\n",
509
              "    background-color: var(--disabled-bg-color);\n",
510
              "    fill: var(--disabled-fill-color);\n",
511
              "    box-shadow: none;\n",
512
              "  }\n",
513
              "\n",
514
              "  .colab-df-spinner {\n",
515
              "    border: 2px solid var(--fill-color);\n",
516
              "    border-color: transparent;\n",
517
              "    border-bottom-color: var(--fill-color);\n",
518
              "    animation:\n",
519
              "      spin 1s steps(1) infinite;\n",
520
              "  }\n",
521
              "\n",
522
              "  @keyframes spin {\n",
523
              "    0% {\n",
524
              "      border-color: transparent;\n",
525
              "      border-bottom-color: var(--fill-color);\n",
526
              "      border-left-color: var(--fill-color);\n",
527
              "    }\n",
528
              "    20% {\n",
529
              "      border-color: transparent;\n",
530
              "      border-left-color: var(--fill-color);\n",
531
              "      border-top-color: var(--fill-color);\n",
532
              "    }\n",
533
              "    30% {\n",
534
              "      border-color: transparent;\n",
535
              "      border-left-color: var(--fill-color);\n",
536
              "      border-top-color: var(--fill-color);\n",
537
              "      border-right-color: var(--fill-color);\n",
538
              "    }\n",
539
              "    40% {\n",
540
              "      border-color: transparent;\n",
541
              "      border-right-color: var(--fill-color);\n",
542
              "      border-top-color: var(--fill-color);\n",
543
              "    }\n",
544
              "    60% {\n",
545
              "      border-color: transparent;\n",
546
              "      border-right-color: var(--fill-color);\n",
547
              "    }\n",
548
              "    80% {\n",
549
              "      border-color: transparent;\n",
550
              "      border-right-color: var(--fill-color);\n",
551
              "      border-bottom-color: var(--fill-color);\n",
552
              "    }\n",
553
              "    90% {\n",
554
              "      border-color: transparent;\n",
555
              "      border-bottom-color: var(--fill-color);\n",
556
              "    }\n",
557
              "  }\n",
558
              "\u003c/style\u003e\n",
559
              "\n",
560
              "  \u003cscript\u003e\n",
561
              "    async function quickchart(key) {\n",
562
              "      const quickchartButtonEl =\n",
563
              "        document.querySelector('#' + key + ' button');\n",
564
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
565
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
566
              "      try {\n",
567
              "        const charts = await google.colab.kernel.invokeFunction(\n",
568
              "            'suggestCharts', [key], {});\n",
569
              "      } catch (error) {\n",
570
              "        console.error('Error during call to suggestCharts:', error);\n",
571
              "      }\n",
572
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
573
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
574
              "    }\n",
575
              "    (() =\u003e {\n",
576
              "      let quickchartButtonEl =\n",
577
              "        document.querySelector('#df-8a9791fc-b9df-4610-8642-586a6e5bc7a7 button');\n",
578
              "      quickchartButtonEl.style.display =\n",
579
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
580
              "    })();\n",
581
              "  \u003c/script\u003e\n",
582
              "\u003c/div\u003e\n",
583
              "\n",
584
              "  \u003cdiv id=\"id_e94f5bb9-d5ca-4407-b2f1-4d751d982b8a\"\u003e\n",
585
              "    \u003cstyle\u003e\n",
586
              "      .colab-df-generate {\n",
587
              "        background-color: #E8F0FE;\n",
588
              "        border: none;\n",
589
              "        border-radius: 50%;\n",
590
              "        cursor: pointer;\n",
591
              "        display: none;\n",
592
              "        fill: #1967D2;\n",
593
              "        height: 32px;\n",
594
              "        padding: 0 0 0 0;\n",
595
              "        width: 32px;\n",
596
              "      }\n",
597
              "\n",
598
              "      .colab-df-generate:hover {\n",
599
              "        background-color: #E2EBFA;\n",
600
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
601
              "        fill: #174EA6;\n",
602
              "      }\n",
603
              "\n",
604
              "      [theme=dark] .colab-df-generate {\n",
605
              "        background-color: #3B4455;\n",
606
              "        fill: #D2E3FC;\n",
607
              "      }\n",
608
              "\n",
609
              "      [theme=dark] .colab-df-generate:hover {\n",
610
              "        background-color: #434B5C;\n",
611
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
612
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
613
              "        fill: #FFFFFF;\n",
614
              "      }\n",
615
              "    \u003c/style\u003e\n",
616
              "    \u003cbutton class=\"colab-df-generate\" onclick=\"generateWithVariable('dataframe')\"\n",
617
              "            title=\"Generate code using this dataframe.\"\n",
618
              "            style=\"display:none;\"\u003e\n",
619
              "\n",
620
              "  \u003csvg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
621
              "       width=\"24px\"\u003e\n",
622
              "    \u003cpath d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/\u003e\n",
623
              "  \u003c/svg\u003e\n",
624
              "    \u003c/button\u003e\n",
625
              "    \u003cscript\u003e\n",
626
              "      (() =\u003e {\n",
627
              "      const buttonEl =\n",
628
              "        document.querySelector('#id_e94f5bb9-d5ca-4407-b2f1-4d751d982b8a button.colab-df-generate');\n",
629
              "      buttonEl.style.display =\n",
630
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
631
              "\n",
632
              "      buttonEl.onclick = () =\u003e {\n",
633
              "        google.colab.notebook.generateWithVariable('dataframe');\n",
634
              "      }\n",
635
              "      })();\n",
636
              "    \u003c/script\u003e\n",
637
              "  \u003c/div\u003e\n",
638
              "\n",
639
              "    \u003c/div\u003e\n",
640
              "  \u003c/div\u003e\n"
641
            ],
642
            "text/plain": [
643
              "                      method        elo     p99Low      p99Hi       bpp  \\\n",
644
              "0          jpegli-q55-yuv444  1616.2178  1570.1244  1662.3113  0.896926   \n",
645
              "1          jpegli-q60-yuv444  1656.4395  1611.1019  1701.7771  0.963380   \n",
646
              "2          jpegli-q65-yuv420  1600.8348  1554.3654  1647.3044  0.874811   \n",
647
              "3          jpegli-q65-yuv444  1738.0724  1695.7542  1780.3906  1.029448   \n",
648
              "4          jpegli-q70-yuv420  1692.4553  1648.4811  1736.4296  0.953669   \n",
649
              "5          jpegli-q70-yuv444  1864.5178  1824.3069  1904.7288  1.123597   \n",
650
              "6          jpegli-q75-yuv420  1823.9264  1782.0206  1865.8322  1.051037   \n",
651
              "7          jpegli-q75-yuv444  2022.0585  1980.5918  2063.5254  1.227468   \n",
652
              "8          jpegli-q80-yuv420  1980.5387  1935.3760  2025.7014  1.176039   \n",
653
              "9          jpegli-q80-yuv444  2139.4082  2096.1480  2182.6687  1.374517   \n",
654
              "10         jpegli-q85-yuv420  2135.3962  2088.1436  2182.6487  1.361384   \n",
655
              "11         jpegli-q85-yuv444  2293.2693  2247.1530  2339.3857  1.591872   \n",
656
              "12         jpegli-q90-yuv420  2296.9397  2247.5278  2346.3516  1.698086   \n",
657
              "13         jpegli-q90-yuv444  2440.6377  2388.3870  2492.8887  1.971755   \n",
658
              "14         jpegli-q95-yuv420  2481.9868  2425.2605  2538.7131  2.409262   \n",
659
              "15         jpegli-q95-yuv444  2634.0227  2568.2780  2699.7676  2.782914   \n",
660
              "16  libjpeg-turbo-q55-yuv420  1417.7186  1359.5063  1475.9309  0.890062   \n",
661
              "17  libjpeg-turbo-q60-yuv420  1522.5587  1472.4467  1572.6708  0.954096   \n",
662
              "18  libjpeg-turbo-q65-yuv420  1572.9736  1525.9553  1619.9918  1.033683   \n",
663
              "19  libjpeg-turbo-q70-yuv420  1685.1305  1642.5930  1727.6680  1.129677   \n",
664
              "20  libjpeg-turbo-q75-yuv420  1757.0505  1714.4518  1799.6492  1.239587   \n",
665
              "21  libjpeg-turbo-q80-yuv422  1989.6469  1946.9990  2032.2948  1.540141   \n",
666
              "22  libjpeg-turbo-q85-yuv422  2150.5596  2107.5012  2193.6177  1.804783   \n",
667
              "23  libjpeg-turbo-q90-yuv444  2392.5342  2341.0535  2444.0150  2.622631   \n",
668
              "24  libjpeg-turbo-q95-yuv444  2608.0166  2546.6313  2669.4019  3.774330   \n",
669
              "25        mozjpeg-q70-yuv420  1662.1260  1619.2194  1705.0326  0.914854   \n",
670
              "26        mozjpeg-q75-yuv420  1760.7078  1719.5176  1801.8980  1.024720   \n",
671
              "27        mozjpeg-q80-yuv422  1958.4712  1916.8787  2000.0637  1.357939   \n",
672
              "28        mozjpeg-q85-yuv422  2136.8660  2093.9138  2179.8180  1.590558   \n",
673
              "29        mozjpeg-q90-yuv444  2360.3062  2312.1338  2408.4785  2.495490   \n",
674
              "30        mozjpeg-q95-yuv444  2608.6120  2546.6934  2670.5308  3.502980   \n",
675
              "\n",
676
              "            label  \n",
677
              "0          jpegli  \n",
678
              "1          jpegli  \n",
679
              "2      jpegli-420  \n",
680
              "3          jpegli  \n",
681
              "4      jpegli-420  \n",
682
              "5          jpegli  \n",
683
              "6      jpegli-420  \n",
684
              "7          jpegli  \n",
685
              "8      jpegli-420  \n",
686
              "9          jpegli  \n",
687
              "10     jpegli-420  \n",
688
              "11         jpegli  \n",
689
              "12     jpegli-420  \n",
690
              "13         jpegli  \n",
691
              "14     jpegli-420  \n",
692
              "15         jpegli  \n",
693
              "16  libjpeg-turbo  \n",
694
              "17  libjpeg-turbo  \n",
695
              "18  libjpeg-turbo  \n",
696
              "19  libjpeg-turbo  \n",
697
              "20  libjpeg-turbo  \n",
698
              "21  libjpeg-turbo  \n",
699
              "22  libjpeg-turbo  \n",
700
              "23  libjpeg-turbo  \n",
701
              "24  libjpeg-turbo  \n",
702
              "25        mozjpeg  \n",
703
              "26        mozjpeg  \n",
704
              "27        mozjpeg  \n",
705
              "28        mozjpeg  \n",
706
              "29        mozjpeg  \n",
707
              "30        mozjpeg  "
708
            ]
709
          },
710
          "execution_count": 29,
711
          "metadata": {},
712
          "output_type": "execute_result"
713
        }
714
      ],
715
      "source": [
716
        "dataframe = pd.read_csv('elo.csv')\n",
717
        "dataframe"
718
      ]
719
    },
720
    {
721
      "cell_type": "code",
722
      "execution_count": null,
723
      "metadata": {
724
        "colab": {
725
          "base_uri": "https://localhost:8080/"
726
        },
727
        "executionInfo": {
728
          "elapsed": 11,
729
          "status": "ok",
730
          "timestamp": 1707225325228,
731
          "user": {
732
            "displayName": "Martin Bruse",
733
            "userId": "11653897382912197853"
734
          },
735
          "user_tz": -60
736
        },
737
        "id": "7of7RihWJjil",
738
        "outputId": "8679f624-85a7-4ac0-9ae9-56702a8edfdc"
739
      },
740
      "outputs": [
741
        {
742
          "name": "stdout",
743
          "output_type": "stream",
744
          "text": [
745
            "libjpeg_turbo_equivalent_quality,elo,libjpeg_turbo_bitrate,mozjpeg_bitrate,jpegli_bitrate\n",
746
            "libjpeg-turbo-q70-yuv420,1685.1304931640625,1.1296766996383667,0.940491951974611,0.986600255931497\n",
747
            "libjpeg-turbo-q75-yuv420,1757.050537109375,1.2395873069763184,1.0206446804441114,1.0435789756588576\n",
748
            "libjpeg-turbo-q80-yuv422,1989.6468505859375,1.5401406288146973,1.3985910069922816,1.2060982872396786\n",
749
            "libjpeg-turbo-q85-yuv422,2150.5595703125,1.8047833442687988,1.6460170723784693,1.3902699242484242\n",
750
            "libjpeg-turbo-q90-yuv444,2392.5341796875,2.622631549835205,2.6262534131392052,1.8477547233536156\n",
751
            "libjpeg-turbo-q95-yuv444,2608.0166015625,3.774329900741577,3.5005639449528534,2.6738307925538596\n"
752
          ]
753
        }
754
      ],
755
      "source": [
756
        "data = dataframe.values\n",
757
        "methods = np.unique(data[:, -1])\n",
758
        "elos = {\n",
759
        "    method: data[data[:, -1] == method][:, 1].astype(np.float32)\n",
760
        "    for method in methods\n",
761
        "}\n",
762
        "bitrates = {\n",
763
        "    method: data[data[:, -1] == method][:, 4].astype(np.float32)\n",
764
        "    for method in methods\n",
765
        "}\n",
766
        "turbo_names = data[data[:, -1] == 'libjpeg-turbo'][:, 0]\n",
767
        "elos_to_compare = []\n",
768
        "turbo_equivalent_qualities = []\n",
769
        "for index, elo in enumerate(elos['libjpeg-turbo']):\n",
770
        "  if (\n",
771
        "      elo \u003e= min(elos['jpegli'])\n",
772
        "      and elo \u003e= min(elos['mozjpeg'])\n",
773
        "      and elo \u003c= max(elos['jpegli'])\n",
774
        "      and elo \u003c= max(elos['mozjpeg'])\n",
775
        "  ):\n",
776
        "    elos_to_compare.append(elo)\n",
777
        "    turbo_equivalent_qualities.append(turbo_names[index])\n",
778
        "\n",
779
        "\n",
780
        "def bitrate_at_elo(method, elo):\n",
781
        "  return np.interp(elo, elos[method], bitrates[method])\n",
782
        "\n",
783
        "\n",
784
        "def elo_at_bitrate(method, bitrate):\n",
785
        "  return np.interp(bitrate, bitrates[method], elos[method])\n",
786
        "\n",
787
        "\n",
788
        "print(\n",
789
        "    f'libjpeg_turbo_equivalent_quality,elo,libjpeg_turbo_bitrate,mozjpeg_bitrate,jpegli_bitrate'\n",
790
        ")\n",
791
        "for i in range(len(elos_to_compare)):\n",
792
        "  elo = elos_to_compare[i]\n",
793
        "  name = turbo_equivalent_qualities[i]\n",
794
        "  print(\n",
795
        "      f\"{name},{elo},{bitrate_at_elo('libjpeg-turbo', elo)},{bitrate_at_elo('mozjpeg', elo)},{bitrate_at_elo('jpegli', elo)}\"\n",
796
        "  )"
797
      ]
798
    },
799
    {
800
      "cell_type": "code",
801
      "execution_count": null,
802
      "metadata": {
803
        "colab": {
804
          "base_uri": "https://localhost:8080/"
805
        },
806
        "executionInfo": {
807
          "elapsed": 8,
808
          "status": "ok",
809
          "timestamp": 1707225325228,
810
          "user": {
811
            "displayName": "Martin Bruse",
812
            "userId": "11653897382912197853"
813
          },
814
          "user_tz": -60
815
        },
816
        "id": "QR4hBQQUtNVu",
817
        "outputId": "fe8f268c-a961-477f-ae8b-a27f3880e0c8"
818
      },
819
      "outputs": [
820
        {
821
          "name": "stdout",
822
          "output_type": "stream",
823
          "text": [
824
            "turbo_bitrate_at_elo_2_1=2237.9045500597854\n",
825
            "bitrate_at_elo(\"jpegli\", turbo_bitrate_at_elo_2_1)=1.5136595319075263\n"
826
          ]
827
        }
828
      ],
829
      "source": [
830
        "turbo_bitrate_at_elo_2_1 = elo_at_bitrate('libjpeg-turbo', 2.1)\n",
831
        "print(f'{turbo_bitrate_at_elo_2_1=}')\n",
832
        "print(f'{bitrate_at_elo(\"jpegli\", turbo_bitrate_at_elo_2_1)=}')"
833
      ]
834
    }
835
  ],
836
  "metadata": {
837
    "colab": {
838
      "last_runtime": {
839
        "build_target": "//learning/grp/tools/ml_python:ml_notebook",
840
        "kind": "private"
841
      },
842
      "provenance": [
843
        {
844
          "file_id": "17gbYbsEwG2G3n8gcVwOHdmv8vb6v_cqL",
845
          "timestamp": 1707225365477
846
        },
847
        {
848
          "file_id": "1hYb8c5oOumv1yVLbbscsrxBImaUyipyt",
849
          "timestamp": 1706791703210
850
        }
851
      ]
852
    },
853
    "kernelspec": {
854
      "display_name": "Python 3",
855
      "name": "python3"
856
    },
857
    "language_info": {
858
      "name": "python"
859
    }
860
  },
861
  "nbformat": 4,
862
  "nbformat_minor": 0
863
}
864

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.