Я ищу возможность конвертировать JPEG с 444 YCbCr в 422 YCbCr. Согласно RFC 2435 для потоковой передачи RTP файл JPEG должен иметь формат JPEG 422 YCbCr, причина 444 соответствует стандарту.Как преобразовать JPEG 444 YCbCr в 422 YCbCr
ответ
Чтобы сделать это, вы должны спустить образец, вы могли бы просто пропустить компонент на каждой плоскости цветности, чтобы достичь этого. (Потерять данные)
Существует несколько примеров кода здесь, который дает вам тэки о том, как выполняются сокращение https://github.com/rkrajnc/jpegdec/blob/master/sw/matlab/jpeg/jpeg_downsample.m
Кроме того, это будет работать только (с потерей данных), если были созданы коэффициенты Hufffman DCT с той же шкале, или достаточно близко к тому, что, как ожидается, в RFC ..
Вы могли бы просто оставить все так, как это для других в формате JPEG, но что это на самом деле сводится к тому, является обеспечение таблицы Хаффмана совместимы с теми в RFC, если они n Ot вам придется либо:
1)Реализовать некоторый тип использования TypeSpecific для обозначения HuffmanTables включены, не писать их при создании JFIF заголовков и включить их как есть непосредственно после любого ProfileHeaders ,
2)Реализовать некоторый тип использования TypeSpecific, чтобы указать, использовать известную альтернативную таблицу Хаффмана, на приемной стороне вместо того, чтобы писать нормальные таблицы Хаффмана, писать пользовательский.
Вариант 1 позволит VLC работать, поскольку он будет игнорировать поле TypeSpecific, используя данные в полезной нагрузке, в результате чего вы включаете ваши альтернативные таблицы Хаффмана. Этот метод также может быть принят, чтобы разрешить другие кодированные jpeg, кроме базового или прогрессивного, или любые маркеры, которые должны быть включены, но не поддерживаются стандартом RFC. (Например, этот метод также может быть принят для включения более двух таблиц квантования, первые 2 будут храниться в заголовке профиля, когда Quality> = 100, а последний будет сохранен после любого заголовка профиля DRI, если это применимо непосредственно в полезной нагрузке
(Хотя я думаю, что вы можете в настоящее время проверить более двух таблиц, выполнив деление на длину таблицы и соблюдая таблицу бит точности при декодировании, длина - это 16-битное поле, так что квантовые таблицы с длиной до 65535 байт действителен.)
Я недавно была добавлена поддержка для этого в моей библиотеке, среди прочего, и заполненный опечаток для Rfc2435.
http://www.rfc-editor.org/errata_search.php?rfc=2435&rec_status=15&presentation=records
Разрешение использовать поле TypeSpecific в заголовке профиля, который в настоящее время не используется для описания каждого бита поля Привет, Vi через этот байт.
Там никогда не может быть более 5 компонентов в сканировании, 0 - 4.
Первый компонент уже был описан в поле Тип наряду с DRI и качеством.
Возможные перестановки значений 4,2,1,0.
0 не следует охарактеризовать как черно-белое достигается при отправке только одной таблицы, а 1: 1 уже поддерживается.
Мой источник изменений также можно найти в моей библиотеке по адресу https://net7mma.codeplex.com.
- 1. конвертировано коэффициенты JPEG ДКП коэффициентов YCbCr
- 2. Преобразование RGB в Ycbcr
- 3. Обработка изображений YCbCr images
- 4. Почему каналы YCbCr сохраняются как jpeg-изображения, значения пикселей меняются?
- 5. получить компоненты изображения RGB-YCbCr
- 6. JPEG: Преобразование RGB в YCbCr и точность выборки
- 7. Функция преобразования YCbCr в RGB?
- 8. Как преобразовать изображение с цветовым пространством YCbCr в CMYK?
- 9. Нарисуйте цвет YCbCr на экране
- 10. Python Imaging: проблемы с YCbCr
- 11. Отображение цветового пространства YCbCr до RGB
- 12. Преобразование RGB в YCbCr в OpenCV
- 13. Можно ли рисовать в YCbCr на Java?
- 14. Применение SVD для изображения YCbCr в OpenCV
- 15. YCbCr to RGB из таблицы матриц
- 16. Должен показать изображение цветного изображения YcbCr?
- 17. Артефакты при масштабировании Ycbcr (420f) с ускорением
- 18. Преобразование bgr в ycbcr и отдельные каналы в opencv
- 19. YUV 422, YUV 420, YUV 444
- 20. Сохранить различные каналы Ycbcr как отдельные изображения | Python
- 21. C# - Могу ли я использовать Libtiff для вывода JPEG с кодировкой Tiff (In YCbCr)
- 22. Как показать изображение YCbCr с помощью Emgu в C#?
- 23. Как получить доступ к атрибутам цвета YCbCr в Go
- 24. RGB to YCbCr, используя SIMD-векторы, теряют некоторые данные
- 25. Как работать с цветовым пространством BufferedImage и YCbCr?
- 26. Какую матрицу YCbCr использовать? BT.709 или BT.601
- 27. получение значения Y [Ycbcr] одного пикселя в opencv
- 28. Как я могу преобразовать изображение в YCbCr с учетом диапазона с отрицательными значениями?
- 29. Как преобразовать плоский формат YCbCr в упакованный формат WIC для UWP?
- 30. Невозможность написать плитки с YCBCR фотометрическими в Libtiff.net
Это, безусловно, можно написать код, чтобы сделать то, что вам нужно. Данные яркости могут передаваться без каких-либо изменений, но данные цветности должны быть декодированы, подвыборки и перекодировки (что приведет к некоторой потере качества). Вы ищете инструмент командной строки, библиотеку ссылок, код C? – BitBank
Бедные преобразования людей, как я описал ниже, действительно будут работать, если DCT будет масштабироваться с одинаковыми коэффициентами размера, если бы не тогда таблицы Хаффмана, вероятно, также не соответствовали бы RFC, и, следовательно, вы были бы правы в таком случае. – Jay
И на самом деле, пока размер DCT достаточно близко к оригиналу, это также будет работать ... – Jay