Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Картинки как коробки. Что же там внутри?

Картинки как коробки. Что же там внутри?

Картинки и видео — это «чёрные ящики», внутри которых лежит много интересного и непонятного. Но можно заглянуть внутрь некоторых форматов, всё там поменять и посмотреть, что из этого получится. При помощи эксперимента разберёмся, как превращать простые картинки в «эффективные картинки» с метриками, а затем на практике рассмотрим инструменты, которые могут делать это за нас.

Polina Gurtovaya

February 29, 2020
Tweet

More Decks by Polina Gurtovaya

Other Decks in Programming

Transcript

  1. 2

  2. 3

  3. X

  4. Особенности lazy loading в Сhrome Chrome откладывает загрузку картинок, если

    они находятся на X px от вьюпорта X зависит от типа соединения
  5. 9

  6. 11 const reader = new FileReader(); reader.current.readAsArrayBuffer(file); reader.onload = event

    => console.log( splitToChunks(event.target.result) ); Разбираем PNG-файл
  7. 12

  8. Interlaced PNG 16 interlacing — просто иная сортировка пикселей Картинка

    грузится постепенно, но весит больше (почти всегда)
  9. От того что на картинке От энкодера От параметров энкодера

    … ну и от формата, ага 17 От чего зависит размер картинки?
  10. 18

  11. Приключения маленького блока 20 128 -163 7 -27 -3 3

    -8 -3 103 122 73 -1 -15 -17 0 6 148 20 -24 -44 -13 6 -6 -3 12 -36 -67 4 13 -5 2 -4 -41 -5 -1 -21 6 0 5 3 -40 -3 5 -2 5 7 -4 -1 -35 11 10 16 -1 -2 -2 -1 -7 -4 10 15 1 0 -5 -3 8 8 8 9 13 19 28 43 8 9 10 14 17 20 27 38 8 10 12 16 22 31 46 68 9 14 16 20 27 37 53 78 13 17 22 27 35 47 66 95 19 20 31 37 47 62 85 119 28 27 46 53 66 85 113 156 43 38 68 78 95 119 156 209
  12. 16 -19 1 -2 0 0 0 0 13 14

    7 0 0 0 0 0 18 2 -1 -2 0 0 0 0 1 -2 -3 0 0 0 0 0 -2 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Приключения маленького блока 21 8 8 8 9 13 19 28 43 8 9 10 14 17 20 27 38 8 10 12 16 22 31 46 68 9 14 16 20 27 37 53 78 13 17 22 27 35 47 66 95 19 20 31 37 47 62 85 119 28 27 46 53 66 85 113 156 43 38 68 78 95 119 156 209
  13. 27 Downsampling + blocks Размер блока зависит от кодека Блок

    можно разбивать на дополнительные блоки Максимальный размер блока зависит от кодека
  14. 28 Prediction modes Предсказываем пиксели текущего блока по другим блокам

    Количество режимов предсказания зависит от кодека
  15. 33

  16. 37

  17. 49

  18. 50

  19. 54