Сколько бит в одном пикселе

от admin

Пиксель — Pixel

Физическая точка в растровом изображении В этом примере показано изображение с сильно увеличенной частью, так что отдельные пиксели отображаются в виде небольших квадратов Фотография субпиксельных элементов отображения на экране LCD ноутбука

В цифровом изображении, пиксель, pel, или элемент изображения — физическая точка в растровом изображении или наименьший адресуемый элемент в адресуемой всем точкам устройство отображения ; так что это наименьший контролируемый элемент изображения, представленного на экране.

Каждый пиксель представляет собой образец исходного изображения; большее количество образцов обычно обеспечивает более точное представление оригинала. Интенсивность каждого пикселя является переменной. В системах формирования цветных изображений цвет обычно представлен тремя или четырьмя составляющими интенсивности, такими как красный, зеленый и синий или голубой, пурпурный, желтый и черный.

В некоторых контекстах ( например, описания датчиков камеры ), пиксель относится к одному скалярному элементу многокомпонентного представления (называемому фотосайтом в контексте датчика камеры, хотя иногда используется sensel ), в то время как в других контекстах он может относиться к набору интенсивностей компонентов для пространственного положения.

Содержание

  • 1 Этимология
  • 2 Технические характеристики
    • 2.1 Шаблоны выборки
    • 2.2 Разрешение компьютерных мониторов
    • 2.3 Разрешение телескопов
    • 2,4 бит на пиксель
    • 2,5 субпикселей

    Этимология

    Слово пиксель — это портманто пикселя (от «картинки», сокращенно на «картинки») и el (для «элемент »); аналогичные образования с ‘el’ включают слова voxel и texel. Слово «пикс» появилось в заголовках журнала Variety в 1932 году как сокращение от слова «картинки» применительно к фильмам. К 1938 году «пиксель» использовался фотожурналистами в отношении неподвижных изображений.

    Слово «пиксель» впервые было опубликовано в 1965 году Фредериком К. Биллингсли из JPL для описания элементов изображения сканированных изображений с космических аппаратов на Луну и Марс. Биллингсли узнал это слово от Кейта Э. Макфарланда из отдела связи общей точности в Пало-Альто, который, в свою очередь, сказал, что не знает, откуда оно возникло. Макфарланд сказал, что он просто «использовался в то время» (около 1963 г.).

    Концепция «элемента изображения» восходит к самым ранним дням телевидения, например как «Bildpunkt» (немецкое слово для пиксель, буквально «точка изображения») в немецком патенте Пауля Нипкова 1888 года. Согласно различным этимологиям, самая ранняя публикация самого термина «элемент изображения» была в журнале Wireless World в 1927 году, хотя ранее он использовался в различных патентах США, поданных еще в 1911 году.

    Некоторые авторы объясняют пиксель как ячейку изображения еще в 1972 году. В графике, а также при обработке изображений и видео вместо пикселя часто используется пиксель. Например, IBM использовала его в своем Техническом справочнике для исходного ПК..

    Пиксели, сокращенно «px», также являются единицей измерения, обычно используемой в графическом и веб-дизайне, что эквивалентно примерно ⁄ 96 дюйма (0,26 мм). Это измерение используется, чтобы убедиться, что данный элемент будет отображаться одинакового размера независимо от того, с каким разрешением экрана он просматривается.

    Пикселизация, обозначаемая вторым i, — это несвязанная техника кинопроизводства, которая восходит к истокам кино., в котором живые актеры изображаются кадр за кадром и фотографируются для создания покадровой анимации. Архаичное британское слово, означающее «одержимость духами (пикси )», этот термин использовался для описания процесса анимации с начала 1950-х годов; Различные аниматоры, в том числе Норман Макларен и Грант Манро, приписывают популяризацию его.

    Технические аспекты

    Пиксель не нужно отображать как маленький квадрат. На этом изображении показаны альтернативные способы восстановления изображения из набора значений пикселей с использованием точек, линий или плавной фильтрации.

    Пиксель обычно считается наименьшим отдельным компонентом цифрового изображения. Однако определение сильно зависит от контекста. Например, на странице могут быть «напечатанные пиксели », или пиксели, переносимые электронными сигналами, или представленные цифровыми значениями, или пиксели на устройстве отображения, или пиксели в цифровой камере (элементы фотосенсора). Этот список не является исчерпывающим, и, в зависимости от контекста, синонимы включают pel, sample, byte, bit, dot и spot. Пиксели могут использоваться в качестве единицы измерения, например: 2400 пикселей на дюйм, 640 пикселей на строку или с интервалом 10 пикселей.

    Измерения точек на дюйм (dpi) и пикселей на дюйм (ppi) иногда используются взаимозаменяемо, но имеют разные значения, особенно для принтеров, где dpi является мерой плотности размещения точек (например, капель чернил) в принтере. Например, высококачественное фотографическое изображение может быть напечатано с разрешением 600 точек на дюйм на струйном принтере с разрешением 1200 точек на дюйм. Даже более высокие значения dpi, такие как 4800 dpi, указанные производителями принтеров с 2002 года, не имеют большого значения с точки зрения достижимого разрешения.

    . Чем больше пикселей используется для представления изображения, тем ближе результат может напоминать оригинал. Количество пикселей в изображении иногда называют разрешением, хотя разрешение имеет более конкретное определение. Количество пикселей может быть выражено одним числом, как в «трехмегапиксельной» цифровой камере с номинальным разрешением три миллиона пикселей, или в виде пары чисел, как в «дисплее 640 на 480», который имеет 640 пикселей. из стороны в сторону и 480 сверху вниз (как на дисплее VGA ) и, следовательно, имеет общее количество 640 × 480 = 307 200 пикселей или 0,3 мегапикселя.

    Пиксели или образцы цвета, которые формируют оцифрованное изображение (например, файл JPEG, используемый на веб-странице), могут быть или не быть взаимно однозначными соответствие пикселям экрана в зависимости от того, как компьютер отображает изображение. В вычислениях изображение, состоящее из пикселей, известно как растровое изображение или растровое изображение . Слово «растр» происходит от шаблонов телевизионного сканирования и широко используется для описания аналогичных методов полутоновой печати и хранения.

    Шаблоны выборки

    Для удобства пиксели обычно располагаются в регулярной двумерной сетке. Используя эту компоновку, можно реализовать множество общих операций, равномерно применяя одну и ту же операцию к каждому пикселю независимо. Возможны другие расположения пикселей, при этом некоторые шаблоны выборки даже изменяют форму (или ядро ​​ ) каждого пикселя по изображению. По этой причине необходимо соблюдать осторожность при получении изображения на одном устройстве и отображении его на другом или при преобразовании данных изображения из одного формата пикселей в другой.

      обычно используют шахматную сетку, в которой красный, зеленый и синий компоненты отбираются в немного разные локации. Субпиксельный рендеринг — это технология, которая использует преимущества этих различий для улучшения рендеринга текста на ЖК-экранах.
    • Подавляющее большинство цветных цифровых камер используют фильтр Байера, в результате получается регулярная сетка пикселей, где цвет каждого пикселя зависит от его положения в сетке.
    • A clipmap использует иерархический шаблон выборки, где размер поддерживает каждого пикселя зависит от его расположения в иерархии.
    • Деформированные сетки используются, когда основная геометрия не является плоской, например, изображения Земли из космоса.
    • Использование неоднородных сеток является область активных исследований, пытающаяся обойти традиционный предел Найквиста.
    • Пиксели на компьютерных мониторах обычно являются «квадратными» (то есть имеют одинаковый шаг дискретизации по горизонтали и вертикали); пиксели в других системах часто бывают «прямоугольными» (т. е. имеют неравный шаг дискретизации по горизонтали и вертикали — продолговатую форму), как и форматы цифрового видео с различными форматами , например анаморфотные широкоэкранные форматы формата Rec. 601 стандарт цифрового видео.

    Разрешение компьютерных мониторов

    Компьютеры могут использовать пиксели для отображения изображения, часто абстрактного изображения, представляющего GUI. Разрешение этого изображения называется разрешением дисплея и определяется видеокартой компьютера. ЖК-мониторы также используют пиксели для отображения изображения и имеют собственное разрешение. Каждый пиксель состоит из триад, причем количество этих триад определяет собственное разрешение. На некоторых мониторах CRT скорость развертки луча может быть фиксированной, что приводит к фиксированному собственному разрешению. Большинство ЭЛТ-мониторов не имеют фиксированной скорости развертки луча, что означает, что у них вообще нет собственного разрешения — вместо этого они имеют набор разрешений, которые одинаково хорошо поддерживаются. Чтобы получить максимально резкое изображение на ЖК-дисплее, пользователь должен убедиться, что разрешение экрана компьютера соответствует собственному разрешению монитора.

    Разрешение телескопов

    Пиксельная шкала, используемая в астрономии, — это угловое расстояние между двумя объектами на небе, которые падают на один пиксель на детекторе (ПЗС или инфракрасный чип). Масштаб s, измеренный в радианах, представляет собой отношение расстояния между пикселями p и фокусного расстояния f предшествующей оптики, s = p / f. (Фокусное расстояние — это произведение фокусного отношения на диаметр соответствующей линзы или зеркала.) Поскольку p обычно выражается в единицах угловых секунд на пиксель, потому что 1 радиан равен 180 / π * 3600≈206 265 угловых секунд, и поскольку диаметры часто указываются в миллиметрах, а размеры пикселей в микрометрах, что дает еще один коэффициент, равный 1000, формула часто приводится как s = 206p / f.

    Бит на пиксель

    Количество различных цветов, которые могут быть представлены пикселем, зависит от количества битов на пиксель (бит / пиксель). Изображение 1 бит на пиксель использует 1 бит для каждого пикселя, поэтому каждый пиксель может быть включен или выключен. Каждый дополнительный бит удваивает количество доступных цветов, поэтому изображение 2 bpp может иметь 4 цвета, а изображение 3 bpp может иметь 8 цветов:

    • 1 bpp, 2 = 2 цвета (монохромный )
    • 2 bpp, 2 = 4 цвета
    • 3 bpp, 2 = 8 цветов
    • 4 bpp, 2 = 16 цветов
    • 8 bpp, 2 = 256 цветов
    • 16 бит на пиксель, 2 = 65 536 цветов («Highcolor «)
    • 24 бит на пиксель, 2 = 16 777 216 цветов («Truecolor «)

    Для глубины цвета 15 или более бит на пиксель, глубина обычно является суммой битов, выделенных каждому из красного, зеленого и синего компонентов. Highcolor, обычно означающее 16 бит на пиксель, обычно имеет пять бит для красного и синего каждого и шесть бит для зеленый, поскольку человеческий глаз более чувствителен к ошибкам в зеленом, чем в двух других основных цветах. Для приложений, связанных с прозрачностью, 16 бит могут быть разделены на пять бит красного, зеленого и синего, с одним битом, оставленным для прозрачности. 24-битная глубина позволяет использовать 8 бит на компонент. В некоторых системах доступна 32-битная глубина: это означает s, что каждый 24-битный пиксель имеет дополнительные 8 бит для описания его непрозрачности (для целей объединения с другим изображением).

    Субпиксели

    Геометрия цветовых элементов различных ЭЛТ- и ЖК-дисплеев; люминофор точки на цветном дисплее ЭЛТ (верхний ряд) не имеют отношения к пикселям или субпикселям.

    Многие системы отображения и получения изображений не способны отображать или распознавать различные цветовые каналы на том же сайте. Поэтому пиксельная сетка делится на одноцветные области, которые вносят вклад в отображаемый или воспринимаемый цвет при просмотре на расстоянии. В некоторых дисплеях, таких как ЖК-дисплеи, светодиодные и плазменные дисплеи, эти одноцветные области представляют собой отдельно адресуемые элементы, которые известны как субпиксели . Например, ЖК-дисплеи обычно делят каждый пиксель по вертикали на три подпикселя. Когда квадратный пиксель делится на три подпикселя, каждый подпиксель обязательно прямоугольный. В терминологии индустрии отображения субпиксели часто называют пикселями, поскольку они являются основными адресуемыми элементами с точки зрения аппаратного обеспечения, и, следовательно, используются схемы пикселей, а не схемы субпикселей.

    Большинство цифровых камер датчиков изображения используют одноцветные области датчика, например, с использованием шаблона фильтр Байера, и в индустрии фотоаппаратов они известны как пиксели, как и в индустрии отображения, а не субпикселей.

    Для систем с субпикселями могут быть приняты два разных подхода:

    • субпиксели можно игнорировать, при этом полноцветные пиксели рассматриваются как наименьший адресный элемент изображения; или
    • Субпиксели могут быть включены в вычисления рендеринга, что требует больше времени на анализ и обработку, но в некоторых случаях может давать явно превосходные изображения.

    Этот последний подход, называемый субпиксельным рендерингом, использует знание геометрии пикселей для управления тремя цветными субпикселями по отдельности, производя увеличение видимого разрешения цветных дисплеев. В то время как в дисплеях ЭЛТ используются области люминофора с красно-зелено-синей маской, продиктованные сеткой, называемой теневой маской, потребуется сложный этап калибровки для выравнивания с отображаемым растром пикселей, поэтому ЭЛТ делают в настоящее время не используют субпиксельный рендеринг.

    Понятие субпикселей связано с сэмплами.

    мегапикселем

    Диаграмма разрешений обычных сенсоров цифровых камер, включая значения мегапикселей

    A мегапикселей (MP) составляет миллион пикселей; этот термин используется не только для количества пикселей в изображении, но и для выражения количества элементов датчика изображения в цифровых камерах или количества элементов отображения цифровых отображает. Например, камера, которая создает изображение размером 2048 × 1536 пикселей (3145728 пикселей готового изображения), обычно использует несколько дополнительных строк и столбцов сенсорных элементов и обычно имеет «3,2 мегапикселя» или «3,4 мегапикселя», в зависимости от того, сообщаемое число представляет собой «эффективное» или «общее» количество пикселей.

    В цифровых камерах используется светочувствительная электроника, либо устройство с зарядовой связью (CCD), либо дополнительный металл-оксид– полупроводниковые (CMOS) датчики изображения, состоящие из большого количества отдельных сенсорных элементов, каждый из которых регистрирует измеренный уровень интенсивности. В большинстве цифровых камер матрица датчиков покрыта мозаикой цветных фильтров с рисунком, имеющей красные, зеленые и синие области в конфигурации фильтра Байера, так что каждый сенсорный элемент может регистрировать интенсивность одного основного цвета легкий. Камера интерполирует информацию о цвете соседних сенсорных элементов посредством процесса, называемого демозаика, для создания окончательного изображения. Эти сенсорные элементы часто называют «пикселями», хотя они записывают только 1 канал (только красный, зеленый или синий) окончательного цветного изображения. Таким образом, два из трех цветовых каналов для каждого датчика должны быть интерполированы, и так называемая N-мегапиксельная камера, которая производит N-мегапиксельное изображение, предоставляет только одну треть информации, которую изображение того же размера может получить от сканера.. Таким образом, определенные цветовые контрасты могут выглядеть более размытыми, чем другие, в зависимости от распределения основных цветов (зеленый имеет в два раза больше элементов, чем красный или синий в расположении Байера).

    DxO Labs изобрела Perceptual MegaPixel (P-MPix) для измерения резкости, которую камера создает при соединении с определенным объективом — в отличие от MP, который производитель указывает для продукта камеры., который основан только на датчике камеры. Новый P-MPix утверждает, что это более точная и актуальная ценность, которую фотографы должны учитывать при оценке резкости камеры. По состоянию на середину 2013 года объектив Sigma 35 mm f / 1.4 DG HSM, установленный на Nikon D800, имеет самый высокий измеренный P-MPix. Тем не менее, при значении 23 МП он по-прежнему стирает более одной трети сенсора D800 с разрешением 36,3 МП. В августе 2019 года Xiaomi выпустила Redmi Note 8 Pro как первый в мире смартфон с камерой 64 МП. 12 декабря 2019 года компания Samsung выпустила Samsung A71 с камерой на 64 МП. В конце 2019 года Xiaomi анонсировала первый телефон с камерой и сенсором 108MP 1 / 1,33 дюйма. Сенсор больше, чем у большинства мостовых камер, с размером сенсора 1 / 2,3 дюйма.

    Один пиксель вместо тысячи слов

    Пару месяцев назад, отдыхая от реализации новых возможностей вроде q_auto и g_auto, я прикалывался в нашем командном чате по поводу того, как различные форматы хранения изображений будут сжимать однопиксельную картинку. В ответ Orly, редактор блога, попросила меня написать пост об этом. Я сказал: «Конечно, почему бы и нет. Но это будет очень короткий пост. Ведь что можно рассказать про один пиксель».

    Похоже, я был сильно неправ.

    Что можно сделать с одним пикселем?

    В ранние годы веба однопиксельные картинки часто использовались как костыли для вещей, которые сейчас делаются через CSS. Создание отступов, линий, прямоугольников, полупрозрачных фонов – много чего можно сделать, просто масштабируя пиксель до нужных размеров. Ещё одно использование пикселей, дожившее до наших дней – маячки, средства для отслеживания и аналитики.

    В отзывчивом веб-дизайне однопиксельные картинки используются как временные заглушки в ожидании загрузки страницы. Большинство браузеров не поддерживают HTTP Client Hints, поэтому некоторые варианты с отзывчивыми изображениями ждут полной загрузки страницы, чтобы подсчитать актуальный размер картинок, а затем заменяют однопиксельные картинки нужными изображениями при помощи JavaScript.


    Сломанная картинка

    Есть и ещё одно применение однопиксельных картинок: их можно использовать в качестве картинок «по умолчанию». Если нужное изображение по каким-то причинам невозможно найти, в некоторых случаях лучше показать один прозрачный пиксель, чем выдавать «404 — Not Found», которая будет видна в браузерах как «сломанная картинка». Нужное изображение вы в любом случае не увидите, но профессиональнее будет не акцентировать на этом внимание, выдавая иконку «сломанной картинки».

    Хорошо, значит, однопиксельные картинки бывают полезными. И как же наилучшим образом закодировать изображение размера 1х1?

    Очевидно, что для форматов сжатия изображений это пограничный случай. Если изображение состоит из одного пикселя, сжимать тут особенно нечего. Несжатых данных тут будет содержаться от одного бита до четырёх байт – в зависимости от интерпретации: черно-белый (1 бит), оттенки серого (1 байт), оттенки серого с альфой (2 байта), RGB (3 байта), RGBA (4 байта).

    Но нельзя закодировать только лишь данные – в любом формате изображений нужно задать интерпретацию данных. По меньшей мере, нужно знать высоту и ширину изображения и количество бит на пиксель.

    Заголовки

    Обычно для кодирования высоты и ширины используется четыре байта: два на число (если бы это был один байт, то максимальная размерность картинки была бы 255×255). Допустим, нужен ещё байт для задания типа цветопередачи (оттенки серого, RGB или RGBA). В таком минималистичном формате однопиксельная картинка занимала бы не менее 6 байт (для белого пикселя), а максимум – 9 байт (для полупрозрачного пикселя произвольного цвета).

    Но в заголовках реальных форматов обычно содержится гораздо больше информации. Первые несколько байт любого формата содержат уникальный идентификатор нужный лишь для того, чтобы сообщить, что «Эй! Я — файл вот конкретно такого формата!». Эта последовательность байт также известна, как «волшебное число». К примеру, GIF всегда начинается с GIF87a или GIF89a, в зависимости от версии спецификаций, PNG – с 8-байтной последовательности, включающей PNG, у JPEG есть заголовок, содержащий строку JFIF или Exif, и т.д.

    В заголовках может содержаться мета-информация. Это специфичные для данного формата данные, необходимые для раскодирования, определяющие, какой из подвидов формата используется. Некоторые из мета-данных не обязательно нужны для раскодирования, но тем не менее, используются для определения того, как показывать их на экране: цветовой профиль, ориентация, гамма, количество точек на пиксель. Это могут также быть производльные данные – комментарии, временные отметки, отметки об авторских правах, GPS-координаты. Это могут быть необязательные или обязательные данные, в зависимости от спецификации. Конечно, эти данные увеличивают объём файла. Давайте поэтому остановимся на минимальных файлах, откуда удалена вся необязательная информация – или мы будем тратить драгоценные байты на ерунду.

    Кроме заголовков, в файлах может встречаться и другая дополнительная информация – маркеры, контрольные суммы (используемые для проверки правильности передачи или результата работы других процессов, которые могут испортить файл). Бывает, что требуется включить в файл отступы, чтобы выровнять все данные.

    Однопиксельные, минимально возможные картинки, показывают, сколько «лишней» информации содержится в формате файла. Смотрим.

    Вот шестнадцатеричный дамп 67-байтного PNG-файла с одним белым пикселем.

    Файл состоит из 8-байтного «волшебного числа» PNG, за которым следует отрезок заголовка IHDR из 13 байт, отрезок с данными об изображении IDAT с 10 байтами «сжатых» данных, и отметка об окончании IEND. Каждый отрезок данных начинается с 4-байтного отрезка с длиной и 4-байтного отрезка-идентификатора, и заканчивается контрольной суммой из 4 байт. Эти три отрезка данных обязательны, так что они в любом случае отъедают 36 байт у 67-байтного файла.

    Чёрный пиксель тоже занимает 67 байт, прозрачный – 68, а произвольный цвет RGBA займёт от 67 до 70 байт.

    Заголовок у JPEG длиннее. Минимальный однопиксельный JPEG занимает 141 байт, и он не бывает прозрачным, т.к. JPEG не поддерживает альфа-канал.

    В смысле заголовков GIF самый компактный из трёх универсальных форматов. Белый пиксель можно закодировать в GIF 35 байтами:

    а прозрачный – 43:

    Для всех перечисленных форматов можно изготовить и файлы поменьше, которые будут показываться в большинстве браузеров, но они будут сделаны с нарушением спецификаций, так что декодер изображений может в любой момент пожаловаться на то, что файл битый (и будет прав), и показать иконку «сломанной картинки» – а мы именно её и пытаемся избежать.

    Так какой же наилучший формат однопиксельной картинки для веба? Есть варианты. Если пиксель непрозрачный, то GIF. Если прозрачный – тоже GIF. Если полупрозрачный, то PNG, поскольку у GIF прозрачность задаётся только как «да» или «нет».

    Всё это мало что значит. Любой из этих файлов уместится в один сетевой пакет, поэтому разницы в скорости не будет, а разница для хранилища вообще пренебрежимо мала. Но тем не менее, с этим забавно разбираться – по крайней мере, любителям форматов.

    Что же насчёт более экзотических форматов?

    Используя формат WebP, выбирайте его версию без потерь качества. Однопиксельная картинка без потери качества в формате WebP занимает от 34 до 38 байт. С потерей – от 44 до 104 байт, в зависимости от наличия альфа-канала. К примеру, вот полностью прозрачный пиксель в 34-байтном WebP без потери качества:

    а вот тот же пиксель с потерей качества (по умолчанию) WebP, занимающий 82 байта:

    Разница в том, что WebP с потерей качества и прозрачностью хранится как две картинки в одном файле-контейнере: одна картинка с потерей качества, хранящая данные для RGB, и другая, без потери, с данными альфа-канала.

    У формата BPG также есть режимы с потерей из без потери качества, и для него действует обратная закономерность. BPG с потерей хранит 1 пиксель в 31 байте – наименьший показатель из всех:

    BPG без потерь качества занимает 59 байт. Прозрачный пиксель займёт 57 байт в BPG
    с потерями и 113 байт в BPG без потерь. Интересно, что в случае с одним белым пикселем BPG выиграет у WebP (31 байт против 38), а с одним прозрачным пикселем WebP выигрывает у BPG (34 байта против 57).

    А ещё есть FLIF. Я, конечно, не могу забыть о нём, являясь главным автором бесплатного формата изображений без потери качества (Free Lossless Image Format). Вот 15-байтный FLIF для одного белого пикселя:

    А вот 14-байтный для чёрного:

    Чёрный пиксель получился меньше, потому что ноль сжимается лучше, чем 255. Заголовок простой: первые 4 байта всегда «FLIF», следующий – человеко-читаемое обозначение цвета и интерлейсинга. В нашем случае это «1», что значит, один канал для цвета (оттенки серого). Следующий байт – глубина цвета. «1» значит один байт на канал. Следующие четыре байта – размерность картинки, 0x0001 на 0x0001. Следующие 4 или 5 – сжатые данные.

    Полностью прозрачный пиксель тоже занимает 14 байт в FLIF:

    В этом случае у нас 4 цветовых канала (RGBA) вместо одного. Можно было бы ожидать, что раздел с данными будет длиннее (всё-таки каналов в четыре раза больше), но это не так: поскольку значение альфа равно нулю (пиксель прозрачный), значения RGB считаются неважными, и их просто не включают в файл.

    Для произвольного цвета RGBA файл FLIF может занять до 20 байт.

    Хорошо, значит FLIF лидер в категории «один пиксель» в соревновании на кодирование изображений. Если бы ещё это было какое-то важное соревнование 🙂

    Но тем не менее, FLIF не будет лидером. Помните упомянутый мною минималистичный формат? Тот, который закодирует один пиксель в размер от 6 до 9 байт? Такого формата нет, поэтому он в счёт не идёт. Но есть существующий формат, который довольно близко подходит к этому.

    Он называется Portable Bitmap format (PBM), и представляет собою несжатый формат изображений из 1980-х. Вот как можно было бы закодировать один белый пиксель в PBM всего 8-ю байтами:

    Да тут и шестнадцатиричный дамп не нужен, этот формат человеко-читаемый. Его можно открыть в текстовом редакторе.

    Первая линия (P1) обозначает, что картинка двухцветная. Не оттенки серого, а только два цвета – чёрный (цифра 1) и белый (0). Вторая линия – размерность картинки. А затем идёт разделённый пробелами список чисел, одно число на пиксель. В нашем случае 0.

    Если вам нужно что-то другое, кроме чёрного и белого, можно использовать формат PGM для представления одного пикселя любого цвета всего 12-ю байтами, или PPM размером 14 байт. Это всегда меньше, чем соответствующий FLIF (или любой другой формат со сжатием).

    В традиционном семействе форматов PNM (PBM, PGM и PPM) не поддерживается прозрачность. Существует дополнение PNM под названием Portable Arbitrary Map (PAM), где есть прозрачность. Но для нас он не подходит из-за многословности. Самый маленький из файлов PAM, представляющий прозрачный пиксель, такой:

    На последней строке идёт четыре нулевых байта. Всего получается 67 байт. Можно было бы использовать оттенки серого с альфа-каналом вместо RGBA, это бы сберегло два байта в секции данных. Но получится файл из 71 байта, поскольку нужно будет сменить TUPLTYPE с RGB_ALPHA на GRAYSCALE_ALPHA. Кроме того, программе обработки может не понравится MAXVAL 1, и придётся поменять его на MAXVAL 255 (ещё два байта).

    В общем, для однопиксельных изображений без прозрачности, самым маленьким будет PNM (от 8 до 14 байт для PNM против от 14 до 18 для FLIF), а с прозрачностью самым мелким будет FLIF (от 14 до 20 байт для FLIF против от 67 до 69 байт для PAM).

    Вот сравнительная табличка с оптимальными размерами файлов для разных однопиксельных картинок:

    Может показаться странным, что формат без сжатия выигрывает у форматов со сжатием. Но если подумать, однопиксельные картинки – это наихудший вариант для сжатия изображений. Весь файл состоит из заголовка и дополнительной информации, и в нём очень мало данных. А очень мало данных нельзя сжать, поскольку сжатие основано на предсказуемости, и как можно предсказать единственный пиксель?

    Сколько бит в одном пикселе

    Пример 4-битного изображенияПример 4-битного изображения Пример 8-битного изображенияПример 8-битного изображения Пример 24-битного изображенияПример 24-битного изображения

    3D матрица RGB

    EDISON Software - web-development
    Статья опубликована при поддержке компании EDISON.

    Концепция битов на пиксель

    Bpp или бит на пиксель обозначает количество бит на пиксель. Количество различных цветов в изображении зависит от глубины цвета или битов на пиксель.

    Биты по математике:

    Это как играть с двоичными битами.

    Сколько чисел можно представить одним битом.

    Сколько двухбитных комбинаций можно сделать.

    Если мы разработаем формулу для расчета общего числа комбинаций, которые могут быть сделаны из битов, это будет так.

    бит на пиксель

    Где bpp обозначает биты на пиксель. Поместите 1 в формулу, вы получите 2, поставьте 2 в формуле, вы получите 4. Он растет в геометрической прогрессии.

    Количество разных цветов:

    Как мы уже говорили в начале, количество разных цветов зависит от количества бит на пиксель.

    Таблица для некоторых битов и их цвета приведена ниже.

    Бит на пиксель Количество цветов
    1 пп 2 цвета
    2 bpp 4 цвета
    3 пп 8 цветов
    4 п.н. 16 цветов
    5 пп 32 цвета
    6 пп 64 цвета
    7 пп 128 цветов
    8 п.н. 256 цветов
    10 пп 1024 цвета
    16 п.н. 65536 цветов
    24 п.н. 16777216 цветов (16,7 миллионов цветов)
    32 п.н. 4294967296 цветов (4294 миллиона цветов)

    Эта таблица показывает различные биты на пиксель и количество цвета, которое они содержат.

    Оттенки

    Вы можете легко заметить характер экспоненциального роста. Известное серое изображение имеет 8 бит на дюйм, что означает, что оно имеет 256 различных цветов или 256 оттенков.

    Оттенки могут быть представлены как:

    оттенков

    Цветные изображения обычно имеют формат 24 бит / с или 16 бит / с.

    Мы узнаем больше о других цветовых форматах и ​​типах изображений в руководстве по типам изображений.

    Цветовые значения:

    Ранее мы видели в руководстве по понятию пиксель, что значение 0 пикселей обозначает черный цвет.

    Черный цвет:

    Помните, значение 0 пикселей всегда обозначает черный цвет. Но нет фиксированного значения, обозначающего белый цвет.

    Белый цвет:

    Значение, обозначающее белый цвет, может быть рассчитано как:

    белый цвет

    В случае 1 bpp, 0 обозначает черный, а 1 обозначает белый.

    В случае 8 bpp, 0 обозначает черный, а 255 обозначает белый.

    Серый цвет:

    Когда вы вычисляете значение черного и белого цвета, вы можете рассчитать значение пикселя серого цвета.

    Серый цвет на самом деле является серединой черного и белого. Это сказало,

    В случае 8bpp значение пикселя, обозначающее серый цвет, составляет 127 или 128bpp (если считать от 1, а не от 0).

    Требования к хранилищу изображений

    После обсуждения битов на пиксель, теперь у нас есть все, что нам нужно, чтобы рассчитать размер изображения.

    Размер изображения

    Размер изображения зависит от трех вещей.

    • Количество рядов
    • Число столбцов
    • Количество бит на пиксель

    Формула для расчета размера приведена ниже.

    Размер изображения = строки * столбцы * bpp

    Это означает, что если у вас есть изображение, скажем так:

    Einstein

    Предполагая, что в нем 1024 строки и 1024 столбца. А поскольку это изображение в оттенках серого, оно имеет 256 различных оттенков серого или биты на пиксель. Затем, поместив эти значения в формулу, получим

    Размер изображения = строки * столбцы * bpp

    Но так как это не стандартный ответ, который мы распознаем, он будет преобразован в наш формат.

    Преобразование его в байты = 8388608/8 = 1048576 байтов.

    Преобразование в килобайты = 1048576/1024 = 1024 КБ.

    Преобразование в мегабайты = 1024/1024 = 1 Мб.

    Вот как рассчитывается размер изображения и сохраняется. Теперь в формуле, если вам задан размер изображения и количество бит на пиксель, вы также можете вычислить строки и столбцы изображения, при условии, что изображение является квадратным (те же строки и тот же столбец).

    Читать:
    Как скачать стандартные игры для windows 7 бесплатно

Похожие статьи