Как узнать разрешение и количество кадров в файле 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 подвыборке:
Как вы можете видеть, каждое значение цветности распределяется между 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