ImageProcessing-ElectronicPublications / libjpegqs

Library JPEG Quant Smooth
https://github.com/ilyakurdyukov/jpeg-quantsmooth
GNU Lesser General Public License v2.1
10 stars 3 forks source link

The chroma upscaling code is missing. #1

Open ilyakurdyukov opened 2 years ago

ilyakurdyukov commented 2 years ago

Since the time that you forked my repository - I have added chroma upscaling code to better match jpeg2png, which also has such a feature. And I implemented it myself, but in a different way.

zvezdochiot commented 2 years ago

Hi @ilyakurdyukov

Good. I'll see.

ilyakurdyukov commented 2 years ago

Notice, that I have jpegqs-mini.c which have all the features (but enabled/disabled at compile time) except SIMD, and easier to read.

zvezdochiot commented 2 years ago

Hi @ilyakurdyukov .

I've already done a visual test for quality = 50. The question is blur?

ilyakurdyukov commented 2 years ago

Напиши по русски, я не понимаю что ты имеешь в виду.

zvezdochiot commented 2 years ago

Да мне и самому неудобно, но приходится. Пока я понял, что в моей версии осталось простое обрезание дробной составляющей, в твоей учитывается половина квантователя. Из-за этого у меня дополнительное размытие и определённая потеря оттенка.

Визуальный тест производил на Лене с quality = 50 стандартным cjpeg.

ilyakurdyukov commented 2 years ago

Ах, да, возможно у тебя код еще и без этой фичи. Я добавил код ограничитель, который не даёт алгоритму пересглаживать изображение. (Кстати я писал об этом в jpeg2png).

Возможно будет проще просто взять jpegqs-mini.c за основу, и перенести на него твои изменения.

zvezdochiot commented 2 years ago

Наверное так и буду делать. Незадача в том, что я так и не доразобрался с нулевым коэффициентом. Он мне постояно малину портит. Не понимаю я его и всё.

ilyakurdyukov commented 2 years ago

Нулевой коэффициент просто не надо изменять, он должен пропускаться. Потому что это просто средний цвет пикселей в блоке 8x8.

zvezdochiot commented 2 years ago

Илья, чтобы не тянуть резину, могу тебя заInvokeть, но незадача. И тебе есть чем заняться и заниматься "дублем" кода - это кал, и я не собираюсь заниматься этим кодом в ближайшее время (мозг занят другим проектом из другой Organization). Стоит отложить данную тему на месяцок. Ежели прям горит, то могу и заInvokeть.

ilyakurdyukov commented 2 years ago

Мне есть чем заняться. Просто я хотел заметить что код твоего форка заметно устарел от моего и, возможно, тебе тоже нужны эти улучшения.