Можно ли управлять преобразованием матрицы RGB в YUV в VideoToolBox?

Я обнаружил, что разные аппаратные кодировщики Iphone имеют разные матрицы для преобразования входного RGB в YUV. То есть в функции OSStatus VTCompressionSessionEncodeFrame(VTCompressionSessionRef session, CVImageBufferRef imageBuffer, CMTime PresentationTimeStamp, CMTime duration, CFDictionaryRef frameProperties, void *sourceFrameRefcon, VTEncodeInfoFlags *infoFlagsOut); Формат imageBuffer — RGB. Перед кодированием VideoToolBox преобразует RGB в YUV и отправляет его кодировщику. Я хочу знать, какую матрицу VideoToolBox использует для преобразования RGB в YUV и как управлять выбором матрицы преобразования. Среди входных параметров аппаратного кодировщика VideoToolbox только kVTCompressionPropertyKey_YCbCrMatrix имеет отношение к преобразованию цвета. Но этот параметр не управляет входной матрицей RGB в YUV. Т.к. пытался ввести другое значение, оно не изменилось. Это приводит к невозможности сопоставить матрицу при декодировании, что вызывает хроматическую аберрацию. Долго ищу в сети. Но бесполезно. Пожалуйста, помогите или попробуйте дать некоторые идеи, как этого добиться.


person 马学睿    schedule 20.10.2020    source источник


Ответы (1)


Проблема была решена. Установите kVTCompressionPropertyKey_PixelTransferProperties для управления преобразованием матрицы RGB в YUV в VideoToolBox.

person 马学睿    schedule 21.10.2020