Обработка HDR10 видео на Android с MediaCodec - PullRequest
0 голосов
/ 24 февраля 2020

Я хочу сделать тональное отображение HDR10 на Android, используя OpenGL ES, в первую очередь, чтобы получить данные кадра. На Android после того, как видео декодировано медиа-кодом c, его данные находятся на внешней текстуре oes, я хочу знать, каков внутренний формат текстуры при декодировании видео hdr10.

Могу ли я получить 10-битные данные из этой внешней текстуры oes и, если возможно, как обработать 10-битные данные в OpenGL ES (используя текстуру с плавающей точкой?).

Я попытался запросить формат текстуры, но не удалось, показанное значение кажется неверным. А так как ширина и высота текстуры.

glGetTexLevelParameteriv(GL_TEXTURE_EXTERNAL_OES, 0, GL_TEXTURE_INTERNAL_FORMAT, &format);

1 Ответ

0 голосов
/ 24 февраля 2020

Как правило, для YUV вам нужно использовать внешний сэмплер, который будет включать преобразование цветов в RGB. Не существует стандарта для того, что макет памяти Android предназначен для поверхностей YUV, в частности для 10-битных, где есть несколько конкурирующих «стандартов», поэтому все, что вы здесь делаете, что касается необработанных данных YUV, будет непереносимым и спецификация устройства c.

Соответствует ли полученное мной значение rgb 10-битному значению в HDR-видео?

Это должно быть преобразованное в цвет представление 10-битного значения, при условии, что оно было преобразован правильно. Очевидно, у меня нет возможности это проверить, и здесь нет строгой спецификации. Не могли бы вы просто получить 8-битный эквивалент? Да, это конечно возможно.

...