В конце 2019 года многие глядят в 2020 год с намѣреніемъ предвидѣть перемѣны, которые в нём произойдут.
Одна изъ вѣроятныхъ перемѣнъ состоит в том, что сайтостроение в 2020 году, вполне вѣроятно, будет выглядеть нѣсколько иначе, чѣмъ прежде. Формат GIF будет рѣже использоваться для анимаций, а формат PNG будет рѣже использоваться для сжатия изображений, совершаемого без потерь. Тѣ теги picture и source в языке HTML5, которые сейчас используют для указания нѣсколькихъ версий одного и того же изображения, отличающихся количеством пикселов, также будут для этой цѣли использоваться порѣже.
Всё это будет именно одна-единственная перемѣна, происходящая от одной причины — от появления нового графического формата JPEG XL. Он развивает идеи популярного (но старинного, 1992 года) формата JPEG вот в каком направлении:
1️⃣ Формат JPEG не содержал какой-либо поддержки анимаций. (Это привело ко многодесятилетней популярности анимаций в формате GIF, который только въ послѣдніе годы слегка потеснён был форматом «зацикленные видеоролики без звука».) Формат JPEG XL обещает обеспечить поддержку анимаций.
2️⃣ Формат JPEG для устранения избыточности использовал код Хаффмана. (Также предусматривалась возможность использовать арифметическое кодирование, но не возымела широкое примѣненіе, так как в то время запатентованность алгоритма воспрепятствовала этому.) Формат JPEG XL обещает использовать современные методы сильного сжатия данных — Brotli и ANS.
3️⃣ Формат JPEG поддерживал постепенное отображение файла по мѣрѣ его загрузки из Сѣти. В отличие от формата PNG, в котором подобное постепенное отображение достигалось реальною перестановкою пикселов в файле (по алгоритму Adam7) и оттого нерѣдко приводило к ухудшению сжимаемости (к росту объёма файла), формат JPEG использовал перестановку коэффициентов дискретного косинусного преобразования, что чаще усиливало сжимаемость (уменьшало объём файла). Но если скачивающийся файл PNG с постепенным отображением имѣлъ видъ картинки кратно меньшего размѣра (в два, в четыре, в восемь раз меньшей по ширине и высоте), растянутой затѣмъ до полнаго размѣра файла, то скачивающийся файл JPEG с постепенным отображением имѣлъ вид полноразмѣрной картинки «не въ фокусѣ», по мѣрѣ её скачивания постепенно «наводящейся на рѣзкость». Формат JPEG XL поэтому обещает использовать подход, превосходящий достоинства того и другого: при подготовке файла к постепенному отображению будет изготовляться картинка кратно меньшего размера (уменьшение высоты вдвое ➡️ уменьшение ширины вдвое ➡️ уменьшение высоты ещё вдвое ➡️ уменьшение ширины ещё вдвое ➡️ и такъ далѣе), но изготовляться не примитивною перестановкою (оставляющею за собою хуже сжимаемую мѣшанину пикселов, как Adam7), а двумерным вейвлетным преобразованием Альфреда Хаара, оставляющим за собою разностные (а значит, для изображений с плавными цвѣтовыми переходами — небольшие и оттого лучше сжимаемые) величины. Формат JPEG XL также обещает в самóм же файле явное указание положения границ между многократно уменьшенным основным изображением и каждым очередным набором разностей, потребных для очередного удвоения этой миниатюры по высоте или по ширине — это как раз и значит, что сайтостроителям не понадобится создавать серию тегов source внутри тега picture и указывать в них файлы разного размѣра для дисплеев с разной шириной или разной плотностью пикселов: сам браузер сможет использовать один и тот же файл JPEG XL, не докачивая его с сервера до конца въ тѣхъ случаях, когда изображение нужно не в полном размѣрѣ, а в половинном, или четвертном, или ещё меньшем. Частично уйдут в прошлое (станут ненужными) и всѣ ухищрения (в том числе градиентные или векторные), въ послѣдніе годы популярные при изготовлении малоразмѣрныхъ заглушек (для показа на мѣстѣ изображения до начала его загрузки из Сѣти), так как самое начало (буквально пара сотен байтов) файла JPEG XL, готового к постепенному отображению, может само по себе служить заглушкою, полученною на очередном шаге преобразования Хаара (его шагов, в отличие от Adam7, в JPEG XL может быть явно больше семи — скажем, пара десятков).
Одна изъ вѣроятныхъ перемѣнъ состоит в том, что сайтостроение в 2020 году, вполне вѣроятно, будет выглядеть нѣсколько иначе, чѣмъ прежде. Формат GIF будет рѣже использоваться для анимаций, а формат PNG будет рѣже использоваться для сжатия изображений, совершаемого без потерь. Тѣ теги picture и source в языке HTML5, которые сейчас используют для указания нѣсколькихъ версий одного и того же изображения, отличающихся количеством пикселов, также будут для этой цѣли использоваться порѣже.
Всё это будет именно одна-единственная перемѣна, происходящая от одной причины — от появления нового графического формата JPEG XL. Он развивает идеи популярного (но старинного, 1992 года) формата JPEG вот в каком направлении:
1️⃣ Формат JPEG не содержал какой-либо поддержки анимаций. (Это привело ко многодесятилетней популярности анимаций в формате GIF, который только въ послѣдніе годы слегка потеснён был форматом «зацикленные видеоролики без звука».) Формат JPEG XL обещает обеспечить поддержку анимаций.
2️⃣ Формат JPEG для устранения избыточности использовал код Хаффмана. (Также предусматривалась возможность использовать арифметическое кодирование, но не возымела широкое примѣненіе, так как в то время запатентованность алгоритма воспрепятствовала этому.) Формат JPEG XL обещает использовать современные методы сильного сжатия данных — Brotli и ANS.
3️⃣ Формат JPEG поддерживал постепенное отображение файла по мѣрѣ его загрузки из Сѣти. В отличие от формата PNG, в котором подобное постепенное отображение достигалось реальною перестановкою пикселов в файле (по алгоритму Adam7) и оттого нерѣдко приводило к ухудшению сжимаемости (к росту объёма файла), формат JPEG использовал перестановку коэффициентов дискретного косинусного преобразования, что чаще усиливало сжимаемость (уменьшало объём файла). Но если скачивающийся файл PNG с постепенным отображением имѣлъ видъ картинки кратно меньшего размѣра (в два, в четыре, в восемь раз меньшей по ширине и высоте), растянутой затѣмъ до полнаго размѣра файла, то скачивающийся файл JPEG с постепенным отображением имѣлъ вид полноразмѣрной картинки «не въ фокусѣ», по мѣрѣ её скачивания постепенно «наводящейся на рѣзкость». Формат JPEG XL поэтому обещает использовать подход, превосходящий достоинства того и другого: при подготовке файла к постепенному отображению будет изготовляться картинка кратно меньшего размера (уменьшение высоты вдвое ➡️ уменьшение ширины вдвое ➡️ уменьшение высоты ещё вдвое ➡️ уменьшение ширины ещё вдвое ➡️ и такъ далѣе), но изготовляться не примитивною перестановкою (оставляющею за собою хуже сжимаемую мѣшанину пикселов, как Adam7), а двумерным вейвлетным преобразованием Альфреда Хаара, оставляющим за собою разностные (а значит, для изображений с плавными цвѣтовыми переходами — небольшие и оттого лучше сжимаемые) величины. Формат JPEG XL также обещает в самóм же файле явное указание положения границ между многократно уменьшенным основным изображением и каждым очередным набором разностей, потребных для очередного удвоения этой миниатюры по высоте или по ширине — это как раз и значит, что сайтостроителям не понадобится создавать серию тегов source внутри тега picture и указывать в них файлы разного размѣра для дисплеев с разной шириной или разной плотностью пикселов: сам браузер сможет использовать один и тот же файл JPEG XL, не докачивая его с сервера до конца въ тѣхъ случаях, когда изображение нужно не в полном размѣрѣ, а в половинном, или четвертном, или ещё меньшем. Частично уйдут в прошлое (станут ненужными) и всѣ ухищрения (в том числе градиентные или векторные), въ послѣдніе годы популярные при изготовлении малоразмѣрныхъ заглушек (для показа на мѣстѣ изображения до начала его загрузки из Сѣти), так как самое начало (буквально пара сотен байтов) файла JPEG XL, готового к постепенному отображению, может само по себе служить заглушкою, полученною на очередном шаге преобразования Хаара (его шагов, в отличие от Adam7, в JPEG XL может быть явно больше семи — скажем, пара десятков).