Я обнаружил, что разные аппаратные кодировщики 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. Т.к. пытался ввести другое значение, оно не изменилось. Это приводит к невозможности сопоставить матрицу при декодировании, что вызывает хроматическую аберрацию. Долго ищу в сети. Но бесполезно. Пожалуйста, помогите или попробуйте дать некоторые идеи, как этого добиться.
Можно ли управлять преобразованием матрицы RGB в YUV в VideoToolBox?
Ответы (1)
Проблема была решена. Установите kVTCompressionPropertyKey_PixelTransferProperties для управления преобразованием матрицы RGB в YUV в VideoToolBox.
person
马学睿
schedule
21.10.2020