Представление формата ЮВЫ - Спецификация v4l2?

Это выдержка из известной спецификации API V4l2. Но я не могу понять формат YUYV, также известный как представление формата YUV422. Может кто-нибудь объяснить это здесь.

Вот отрывок:

Example 2-1. V4L2_PIX_FMT_YUYV 4 × 4 pixel image

Byte Order. Each cell is one byte.

start + 0:  Y’00   Cb00   Y’01   Cr00   Y’02   Cb01   Y’03   Cr01
start + 8:  Y’10   Cb10   Y’11   Cr10   Y’12   Cb11   Y’13   Cr11
start + 16: Y’20   Cb20   Y’21   Cr20   Y’22   Cb21   Y’23   Cr21
start + 24: Y’30   Cb30   Y’31   Cr30   Y’32   Cb31   Y’33   Cr31

Каждый Y относится к одному из пикселей, а Cb и Cr относятся к обоим пикселям. Какое здесь представление Cell и Pixel. Как здесь представлен пиксель. Как мы можем представить это программно.

Пожалуйста, объясните. С уважением, Софти


person Raulp    schedule 28.06.2012    source источник


Ответы (1)


YUV422 — это чередующийся формат, в котором Y-информация хранится с более высоким (двойным) разрешением, чем в каналах U&V (Cb&Cr). каждая ячейка состоит из 4 байтов, в которых хранятся значения Y/U/V для 2 пикселей:

unsigned char*cell={127, 52, 139, 170};
unsigned char pixel0[3], pixel1[3];

pixel0[0]=cell[0]; // Y0
pixel0[1]=cell[1]; // U
pixel0[2]=cell[3]; // V

pixel1[0]=cell[2]; // Y1
pixel1[1]=cell[1]; // U
pixel1[2]=cell[3]; // V

как видите, прямого представления отдельного пикселя нет.

person umläute    schedule 19.07.2012
comment
Другими словами, у каждого пикселя есть своя ячейка Y. Ячейки U и V распределяются между соседними пикселями. - person TheCodeArtist; 16.08.2012