Как определить, используется ли 10-битная глубина в видео или фотографии?
Как определить глубину цвета в изображении
Прежде всего, если фотография в формате JPG, то с уверенностью можно сказать, что 10-битная глубина цвета в ней не используется, поскольку этот формат просто не поддерживает это.
Примерами форматов, которые поддерживают 10-битную глубину цвета являются:
- PNG
- HEIF (High Efficiency Image Format)
При этом если используется какой-либо из этих форматов, то совсем необаятельно в них используется большая глубина цвета чем 8-бит. Конкретное значение глубины цвета необязательно зависит от формата, эту величину нужно проверять.
Смотрите также:
- Что такое формат изображения HEIF (или HEIC)?
- В чем разница между JPG, PNG и GIF, а также AVIF и HEIF?
- Что такое формат изображения AVIF?
- Как в Android включить сохранение фотографий в формате HEIC (HEIF) и нужно ли это делать
Рассмотрим как определить глубину используемого цвета картинок в приложениях с графическим пользовательским интерфейсом, а также в командной строке.
Глубину цвета в изображениях можно определить с помощью следующих программ с графическим интерфейсом:
- MediaInfo-GUI
- GIMP
- Krita
Если вы предпочитаете интерфейс командной строки, то глубину цвета в изображениях можно определить с помощью следующих утилит:
- file (для PNG)
- mediainfo
- identify (из пакета ImageMagick)
- MediaInfo
Смотрите также: Руководство по ImageMagick: установка, использование и решение проблем
Начнём с приложений с графическим пользовательским интерфейсом.
Запустите прилоежние MediaInfo-GUI. Вы можете найти MediaInfo в Меню (кнопка «Пуск»), либо выполните в командной строке команду:
mediainfo-gui
Откройте медиафайл, например, фотографию.
В строке «Bit depth» вы увидите глубину цвета, которую использует изображение.
Популярный и продвинутый редактор изображений GIMP поддерживает множество форматов изображений и может показать для них свойства файла, включаю глубину цвета.
Начните с того, что откройте в GIMP изображение, для которого вы хотите просмотреть информацию.
Затем в меню GIMP перейдите в пункты меню «Image» → «Image Properties».
В строке «Precision» будет показана глубина цвета данного изображения.
Аналогично и приложение Krita — поддерживает много графических форматов, при этом позволяет просматривать подробные свойства изображения.
Откройте интересующее вас изображение.
В меню программы Krita перейдите в Image → Properties.
В открывшемся окне перейдите на вкладку «Image Color Space». В строке «Depth» вы увидите глубину цвета данного изображения.
Теперь рассмотрим как определить глубину цвета фотографий с помощью утилит в командной строке.
Пример определения глубины цвета с помощью утилиты «file» для файла с именем gradient_3840-2160_0-50.png:
file gradient_3840-2160_0-50.png
Это изображение использует глубину цвета 16-bit на каждый цвет:
gradient_3840-2160_0-50.png: PNG image data, 3840 x 2160, 16-bit/color RGBA, non-interlaced
Обратите внимание, что для формата HEIF утилита file не показала какой-либо полезной информации о количестве бит на цветовой канал для файла pattaya.heif:
file pattaya.heif
Пример вывода:
pattaya.heif: ISO Media, HEIF Image HEVC Main or Main Still Picture Profile
Утилита identify из пакета imagemagick можно использовать следующим образом:
identify IMAGE_FILE
Или, если вы хотите получить максимум информации, то укажите дополнительно опцию -verbose:
identify -verbose IMAGE_FILE
Пример команд и вывода без опции -verbose:
identify gradient_3840-2160_0-50.png gradient_3840-2160_0-50.png PNG 3840x2160 3840x2160+0+0 16-bit sRGB 1.01734MiB 0.000u 0:00.000 identify pattaya.heif pattaya.heif HEIF 4000x2252 4000x2252+0+0 8-bit sRGB 1.05563MiB 0.000u 0:00.001
Пример команды с опцией -verbose:
identify -verbose gradient_3840-2160_0-50.png
Пример вывода для PNG файла с 16-битной глубиной цвета:
Пример команды с опцией -verbose для файла в формате HEIF:
identify -verbose pattaya.heif
Формат HEIF поддерживает 10-битную глубину цвета, но в данном случае это изображение использует только 8-битный цвет.
Пример команды mediainfo для показа свойств, в том числе глубину цвета, файла gradient_3840-2160_0-50.png:
mediainfo gradient_3840-2160_0-50.png
Пример вывода:
General Complete name : gradient_3840-2160_0-50.png Format : PNG Format/Info : Portable Network Graphic File size : 1.02 MiB Image Format : PNG Format/Info : Portable Network Graphic Compression : Deflate Width : 3 840 pixels Height : 2 160 pixels Color space : RGBA Bit depth : 16 bits Compression mode : Lossless Stream size : 1.02 MiB (100%)
А эта команда mediainfo выведет техническую для медиа файла в формате HEIF:
mediainfo pattaya.heif
Как можно ещё раз убедиться в следующем примере вывода, глубина цвета этого файла равна 8-битам:
General Complete name : pattaya.heif Format : heic Codec ID : heic (mif1/heic/miaf) File size : 1.06 MiB Image ID : 1 Format : HEVC Format/Info : High Efficiency Video Coding Format profile : Main Still@L6@Main Codec ID : hvc1 Codec ID/Info : High Efficiency Video Coding Width : 4 000 pixels Height : 2 252 pixels Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Stream size : 1 000 KiB (93%) Matrix coefficients : BT.601 Color range : Full Describes : 2,3 Codec configuration box : hvcC
Как определить глубину цвета в видео
Для определения глубины цвета в видео можно использовать уже упомянутую выше утилиту mediainfo. Кстати, вы также можете использовать версию с графическим интерфейсом.
Проверка глубины цвета для видео файла gradient_1920-1080_25-50_gbrp10le_x265.mp4:
mediainfo gradient_1920-1080_25-50_gbrp10le_x265.mp4
Пример вывода:
Проверка ещё одного тестового видео файла, который я снял на свой телефон с активированным HDR10+ для одной из статей:
mediainfo '4K (3840x2160), 30 fps (HDR10+).mp4'
Пример вывода:
Если судить по показанной информации, это видео использует 10-битную глубину цвета. Но, на самом деле, у меня есть сомнения на этот счёт. Дело в том, что я не уверен, поддерживает ли датчик камеры моего телефона 10-битную глубину цвета или нет. Я склоняюсь к тому, что поддерживает только 8-битную глубину цвета.
Кстати, с телевизорами бывают аналогичные ситуации: некоторые телевизоры при заявленной поддержки 8-битной глубины цвета, на самом деле способны показывать только 6-битный цвет.
Связанные статьи:
- Как включить 10-битную глубину цвета в Linux (и нужно ли включать 30-битный цвет) (100%)
- Как в Linux узнать свойства медиафайлов (видео, аудио, фотографии) (62.4%)
- Как определить количество цветов (бит на пиксель) в X11 (57%)
- Руководство по ImageMagick: установка, использование и решение проблем (55.5%)
- Как узнать уровень качества JPG (РЕШЕНО) (55.5%)
- Как добавить текст на изображения в ImageMagick (RANDOM - 51.8%)