JPEG استخراج جداول DCT
-
15-11-2019 - |
سؤال
أنا أقوم بتطوير عارض الصور / محرر الصور باستخدام VS2008 و MFC و WIC وأرغب في إعادة صياغة JPEGS عن كثب (من خلال التخلص من الجودة) قدر الإمكان إلى معالجة الصور الأصلية.هل يعرف أي شخص كيفية استخراج جداول الإنارة والراغيان لتعيينها في
http://msdn.microsoft.com/ar-US / Library / GG430026٪ 28V= vs.85٪ 29.aspx
بدون الاضطرار إلى استخدام مكتبة كبيرة إضافية (مثل libjpeg)؟
المحلول
The JPEG standard specification covers the details of the luminance and chrominance table.
In JPEG terminology, those tables are both referred to as "quantization table" (DQT). The luminance quantization table is applied on the "Y" channel and the chrominance quantization table is applied to "Cb" and "Cr" channels.
This website lists the quantization tables for a large number of camera manufacturers and JPEG authoring software.
To recompress an image using the same quantization tables as another existing image:
- Query and enumerate all IWICMetadataBlockReader objects from the source image (IWICBitmapFrameDecode).
- Find the metadata blocks which have the types GUID_MetadataFormatJpegChrominance and GUID_MetadataFormatJpegLuminance
- Extract their binary data, and use those data to initialize the Luminance and Chrominance properties of the JPEG encoder options by putting them into the IPropertyBag when calling IWICBitmapFrameEncode::Initialize.