Muszę zmniejszyć i rozpakować zestaw obrazów JPG o rozmiarze 4608 x 3456. Obecnie udało mi się już prawidłowo zdekompresować obrazy do formatu RGB i przekonwertować je na bitmapę.Skalowanie JPG podczas dekompresji JPG
Teraz potrzebuję wprowadzić niższy poziom, a z tego, co dotychczas przeczytałem, aby poprawnie zeskalować obraz, należy użyć interpolacji bilinowej. Następnie powinienem zastąpić piksele (2x2), które zostały użyte do interpolacji przez wynikowy piksel z interpolacji. Potrzebuję około około 1/4 obecnego rozmiaru.
Nie martwię się jakością zdjęć o obniżonej skali, ponieważ zależy mi na szybkości, z jaką jest wykonywana. Cały proces powinien być tak szybki, jak tylko może być.
Moje pytanie brzmi: , gdy powinienem wykonać interpolację dwuliniową podczas fazy dekompresji JPG. Czy powinienem to zrobić po IDCT (Inverse Discrete Cosine Transform), czy też powinienem wykonać interpolację przed IDCT?
Czy mądrze jest używać współczynników DCT i interpolować je, a następnie wykorzystać te wartości w IDCT?
Kto powiedział, że powinieneś użyć bilinear? To najgorsza z możliwych metod oprócz punktowego pobierania próbek. Należy również zwrócić uwagę na prawidłową obsługę gamma. –
@AxelGneiting To było tylko to, co znalazłem w moich badaniach, jeśli możesz zaproponować lepszy sposób, zrób to. –
@AxelGneiting, w tej konkretnej aplikacji bilinear będzie matematycznie równoważny do podjęcia średnio wszystkich 4 pikseli. To powinna być bardzo szybka i akceptowalna jakość. Możliwe jest uzyskanie wyższej jakości kosztem prędkości. To samo dotyczy manipulowania gamma - lepsze wyniki, mniejsza szybkość. –