Tenía un video HDR y el formato es ProRes. La profundidad de bits de color de ProRes es de 10 bits. Me gustaría extraer los valores RGB de 10 bits del video HDR.
Según este enlace, primero convertí el video HDR de 10 bits en varias imágenes TIFF de 16 bits. Sin embargo, cuando uso algún programa como python para leer los valores RGB de la imagen TIFF, algunos de los valores RGB de 16 bits son mayores que 1024 (= 2 ^ 10). Me parece que el valor RGB de 10 bits se ha expandido a 16 bits y almacena el valor expandido en la imagen TIFF, pero no estoy seguro de si ese es el caso. ¿Cómo puedo obtener los valores RGB originales de 10 bits a partir de los valores RGB de 16 bits almacenados en la imagen TIFF?
La entrada ProRes tendrá codificación YUV, no RGB. Si necesita un volcado sin procesar, guárdelo como rawvideo.
ffmpeg -i in.mov -f rawvideo raw.yuv
Tenga en cuenta que las profundidades de bits que no son múltiplos de 8 todavía se almacenan en diseños de datos que son, con relleno. Por lo tanto, si ProRes es yuv422p10le en el rango de estudio/limitado, el valor de luminancia de 10 bits para un píxel blanco será 940 o 1110101100
se almacenará como 16 bits en el archivo: 1110110000000011
donde el orden es little-endian.
Sin embargo, puede guardar como RGB de 10 bits (con relleno),
ffmpeg -i in.mov -pix_fmt gbrp10be -f rawvideo raw.rgb
donde se almacena primero el plano verde, luego el azul, luego el rojo. Lo anterior es para big-endian, por lo que el orden de los bytes no se invierte.
ajedrez
ffmpeg -f rawvideo -pix_fmt gbrp10be -i raw.rgb -f image2 img%05d.tif
pero se queja[IMGUTILS @ 015ff914] Picture size 0x0 is invalid raw.rgb: Invalid argument
gian
-f rawvideo raw.rgb
conout.tiff
ajedrez
Incompatible pixel format 'gbrp10be' for codec 'tiff', auto-selecting format 'rgb48le'
y he usado el programa python para leer las imágenes, pero los valores no son de 10 bits.gian
ajedrez
gbrp10be
formato. Cualquier sugerencia alternativa es bienvenida siempre que pueda leer los valores RGB de 10 bits del video HDR.