ЮВ 422, ЮВ 420, ЮВ 444

У меня есть, например, изображение 4 * 4. Я хочу извлечь компоненты Y, U и V отдельно. Как это сделать, если изображение YUV 422, YUV 420 и YUV444. Мне интересно знать структуру массива, как Y, U и V хранятся в 422, 420 и 444, чтобы к нему можно было получить доступ.


person Aizen    schedule 19.12.2011    source источник


Ответы (2)


Этот сайт дает вам хороший обзор различных форматов YUV. Там также дана пиксельная структура.

Для пояснения: эти числа предназначены для определения подвыборки компонентов цвета. Например, YUV 444 = субдискретизация 4:4:4, что означает, что каждый из трех компонентов (Y, U и V) имеет одинаковую частоту дискретизации. В то время как 4:2:2 утверждает, что U и V дискретизируются только с половиной скорости Y. Или, другими словами, 2 байта для Y и для U и V 1 байт соответственно, если глубина равна 1 байту. Это означает, что Y может иметь более высокий динамический диапазон.

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

person Sebastian Dressler    schedule 19.12.2011
comment
Итак, вы используете 2 байта для Y и 1 для U и V для пикселя или вы используете 1 байт для Y на пиксель и разделяете U и V между 2 байтами по горизонтали? Мне пока непонятно. - person Agustin Barrachina; 02.12.2019
comment
4:4:4 будет относиться к 2 байтам для каждого, Y, U и V. 4:2:2 будет 2 байта для Y, 1 байт для U и 1 байт для V. - person Sebastian Dressler; 08.12.2019

это довольно старый вопрос, однако я только что закончил работу по расшифровке YUV и хотел бы поделиться некоторой информацией. Есть 3 основных аспекта схемы YUV:

  1. Если исходный буфер YUV является упакованным или планарным буфером. Упакованный означает, что биты YUV сгруппированы вместе, плоский означает, что буферы Y, U и V разделены на 3 разных области памяти.

  2. размер канала YUV; один канал Y,U,V может быть 8-битным, 10-битным, 12-битным и т. д.

  3. коэффициент выборки; А:Б:С. 4:2:2 означает, что у вас по горизонтали есть 1 значение Y для каждого пикселя и только одно значение U и V, совместно используемое двумя пикселями соседнего поля.

Я только что работал над декодированием YUV 4:2:2 v210, следуя этому link есть исходный код GLSL для декодирования и ресурсы, на которые я ссылался. Приветствуются любые советы, это мой первый декодер.

person Mouze    schedule 14.04.2015