Как узнать разрешение и количество кадров в файле YUV 4:2:0?

Как узнать разрешение и количество кадров в файле YUV 4:2:0, если я знаю, сколько пикселей (образцов яркости) на изображении?

1 ответ

YUV 4:2:0 планар выглядит так:

----------------------
|     Y      | Cb|Cr |
----------------------

где:

Y = width x height pixels (bytes)
Cb = Y / 4 pixels (bytes)
Cr = Y / 4 pixels (bytes)

Total num pixels (bytes) = width * height * 3 / 2

Вот как пиксели размещаются в 4: 2: 0 подвыборке:

420

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

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

В качестве примера рассмотрим классический forman-клип, который вы можете скачать с http://trace.eas.asu.edu/yuv/foreman/foreman_cif.7z

Размер этого клипа 45619200 байт. Как из этого получить размеры и количество кадров? Попробуйте разные разрешения!

это SDTV?

In [7]: 45619200 / float(720*576*3/2)
Out[7]: 73.33333333333333

Нету!

это QCIF?

In [8]: 45619200 / float(176*144*3/2)
Out[8]: 1200.0

возможно...

это CIF?

In [9]: 45619200 / float(352*288*3/2)
Out[9]: 300.0

возможно...

Единственный способ узнать это - попытаться показать это.

Давайте попробуем QCIF

выжимать

это не выглядит правильно. Давайте попробуем CIF

право

Бинго!

Другие вопросы по тегам