/ / Skalowanie w dół JPG podczas dekompresji JPG - c ++, matematyka, jpeg, dekompresja

Skalowanie JPG podczas dekompresji JPG - c ++, matematyka, jpeg, dekompresja

Muszę przeskalować w dół i zdekompresować zestaw obrazów JPG o rozmiarze 4608 x 3456. Obecnie jestem już w stanie poprawnie zdekompresować obrazy do formatu RGB i przekonwertować je na mapę bitową.

Teraz muszę zaimplementować downscale i odco przeczytałem do tej pory, aby poprawnie przeskalować obraz, należy użyć interpolacji dwuliniowej. Następnie należy wymienić piksele (2x2), które zostały użyte do interpolacji, na wynikowy piksel z interpolacji. Potrzebuję około około 1/4 jego obecnego rozmiaru.

Nie martwię się tak bardzo o jakość przeskalowanych obrazów, jak o szybkość, z jaką jest to wykonywane. Cały proces powinien przebiegać tak szybko, jak to możliwe.

Moje pytanie brzmi, gdy Powinienem wykonać interpolację dwuliniową podczasetap dekompresji JPG. Czy powinienem to zrobić po IDCT (odwrotnej dyskretnej transformacji kosinusowej), czy powinienem wykonać interpolację przed IDCT?

Czy mądrze jest stosować współczynniki DCT i wykonywać na nich interpolację, a następnie używać tych wartości wynikowych w IDCT?

Odpowiedzi:

3 dla odpowiedzi № 1

Ogólnie rzecz biorąc, nie sądzę, aby można to zrobić pod względem współczynników DCT.

Jeśli jednak chcesz uzyskać obraz o połowę mniejszy w każdym wymiarze, możesz uzyskać obraz o niskiej rozdzielczości, odrzucając współczynniki wysokiej częstotliwości i wykonując 4x4 IDCT.