#visual-c #jpeg #visual-studio-2008-sp1 #wic #dct
#visual-c #jpeg #visual-studio-2008-sp1 #wic #dct
Вопрос:
Я разрабатываю программу просмотра изображений / редактор с использованием VS2008, MFC и WIC, и я хотел бы повторно сжать JPEG-файлы как можно ближе (с точки зрения качества) к их оригиналу после обработки изображения. Кто-нибудь знает, как извлечь таблицы яркости и цветности для установки в
БЕЗ
http://msdn.microsoft.com/en-us/library/gg430026(v=vs.85).aspx необходимо использовать дополнительную большую библиотеку (например, libjpeg)?
Комментарии:
1. Даже если вы получили таблицы, вам все равно нужно будет извлечь коэффициенты постоянного и переменного тока для каждого блока изображения (который кодирует содержимое изображения). WIC не предоставляет для этого общедоступный интерфейс. (WIC поддерживает функцию перекодирования без потерь, и эта функция реализована с использованием определенных частных интерфейсов, к которым у нас нет доступа.)
Ответ №1:
Стандартная спецификация JPEG содержит подробные сведения о таблице яркости и цветности.
В терминологии JPEG обе эти таблицы называются «таблицей квантования» (DQT). Таблица квантования яркости применяется к каналу «Y», а таблица квантования цветности применяется к каналам «Cb» и «Cr».
На этом веб-сайте перечислены таблицы квантования для большого числа производителей камер и программного обеспечения для создания JPEG.
Для повторного сжатия изображения с использованием тех же таблиц квантования, что и другое существующее изображение:
- Запрашивайте и перечисляйте все объекты IWICMetadataBlockReader из исходного изображения (IWICBitmapFrameDecode).
- Найдите блоки метаданных, которые имеют типы GUID_MetadataFormatJpegChrominance и GUID_MetadataFormatJpegLuminance
- Извлеките их двоичные данные и используйте эти данные для инициализации свойств яркости и цветности параметров кодировщика JPEG, поместив их в IPropertyBag при вызове IWICBitmapFrameEncode::Initialize.
Комментарии:
1. Я предполагаю, что это работает. Однако ответ пришел слишком поздно, поскольку я отошел от проекта и компании, нуждающейся в этом. В любом случае спасибо за усилия.