Який найменший JPG-компресійний малюнок? (фотокамера, що знімає тканину, масштаб / кут / освітлення можуть відрізнятися)


46

Я намагаюся створити тканину, яка, з точки зору камери, дуже важко стискати з JPG, що призводить до великого розміру файлів (або призводить до низької якості зображення, якщо розмір файлу фіксований).

Він повинен працювати, навіть якщо тканина знаходиться далеко від камери або повертається (скажімо, масштаб може змінюватися від 1 до 10 разів).

Шум досить хороший (важко стискати), але він стає сірим при погляді здалеку, стає легко стискатися. Гарний візерунок був би таким фракталом , схожим на всі масштаби.
Листя краще (листя, крихітні гілки, невеликі гілки, великі гілки), але в ньому використовується занадто мало кольорів.

Ось перша спроба: Більшість нестислимих

Я впевнений, що є більш оптимальні зразки.
Можливо, шестигранник або трикутник tessellations буде краще.

JPG використовує кольоровий простір Y 'Cb Cr , я думаю, що Cb Cr можна створити аналогічним чином, але, мабуть, краще не використовувати рівномірно весь спектр Y' (яскравість), оскільки камера наситить яскраві або темні області ( освітлення ніколи не є ідеальним).

ПИТАННЯ: Який оптимальний візерунок тканини для цієї проблеми?


1
Мені потрібно буде пильно стежити за цим питанням .... якщо буде досягнута цікава відповідь, я можу передбачити замовлення тканини на сайті www.spoonflower.com (або подібну службу) і дуже важко подивитися на сорочку, щоб додати до моєї колекції ;-)
RBerteig

Цікавим конкурсним проектом може бути: 1) Сфотографуйте такий малюнок високої чіткості 2) Поверніть його, візьміть випадкову його частину (у випадковому масштабі), трохи розмийте, додайте трохи шуму та невеликих випадкових кольорів відхилення 3) Стисніть його за допомогою JPG 4) Перегляньте розмір файлу, обчисліть показники втрати якості та обчисліть "бал" за допомогою цих показників. 5) Повторіть багато разів, щоб сходити до середньої оцінки цього шаблону 6) Повторіть з іншими шаблонами та порівняйте бали
Ніколас Рауль

1
Оскільки алгоритми втрат завжди можуть стискати більше, викидаючи більше даних, схоже, вам би пощастило використовувати шаблони, що залежать від деталей високої частоти. Наприклад, тонкі лінії. Іншими словами, він може добре стискатись, але погіршує якість дуже швидко. Я думаю, залежить від того, що ви хочете досягти. Подумайте відбитки пальців - це класичний випадок, коли вейвлетам потрібно було добре стискати JPEG через необхідність збереження деталей.
datageist

@datageist: Зображення (сирий вихід камери) тканини з лініями може бути складно стиснути, але відступіть назад, зробіть інше зображення: воно буде містити лише сірі пікселі, дуже легко стискати майже без втрат. Я шукаю шаблон повинен мати зображення (необроблений вихід камери), які важко стискати в широкому діапазоні масштабів.
Ніколя Рауль

@NicolasRaoul Правильно, я розумію, я просто кажу, що все є стисливим, якщо ви викинете достатньо інформації. Ви просто хочете, щоб шаблон, який відрізняється тим, що "важко стискати" (тобто для розваги), чи намагаєтесь активно відштовхувати людей від спроб стиснути зображення, що містять візерунок?
datageist

Відповіді:


15

Шум досить хороший (важко стискати), але він стає сірим при погляді здалеку, стає легко стискатися. Гарний візерунок був би таким фракталом, схожим на всі масштаби.

Ну, є фрактальний шум . Я думаю, що броунівський шум фрактальний, виглядає так само, як ви збільшуєте його. Вікіпедія розповідає про додавання шуму Перліна до себе в різних масштабах, щоб видавати фрактальний шум, який може бути ідентичним, я не впевнений:

Фрактальний шум Перліна

Я не думаю, що це буде важко стиснути, хоча. Шум є важко для стиснення без втрат, але JPEG з втратами, тому він просто збирається викинути деталі замість того , щоб боротися з ним. Я не впевнений, чи можливо зробити JPEG щось важким для стиснення, оскільки воно просто ігнорує все, що занадто важко стискати на такому рівні якості.

Щось із твердими краями в будь-якому масштабі, напевно, було б краще, як нескінченна площина шашки:

нескінченна площина шашки

Також щось з великою кількістю кольорів. Можливо, подивіться на фактичні фрактали замість фрактального шуму. Може бути, мондріанський фрактал ? :)

Мондріан фрактал


1
Дуже дякую! Фрактальний шум - це, безумовно, такий матеріал, який я шукав, але в моїх тестах він добре стискається, я думаю, він міг би використовувати більш різкий перехід замість плавності, що нагадує теплову карту. Проблема контрольної дошки полягає в тому, що продуктивність дійсно буде залежати від того, яка частина полотна зроблена на знімку. Фрактал Мондріана - чудовий, і найкращий на моїх тестах дотепер. Можливо, він міг би використовувати більше кольорів і трохи інші параметри.
Ніколя Рауль


Стрічка трикутників або квадратів Сьєрпінського справді може бути великою!
Ніколя Рауль

14

Якби ми говорили про комп'ютерні зображення, шум був би правильним підходом. Але тут є крок захоплення камери.

Фрактал біт дуже важливо через проблеми масштабної інваріантності. Однак це не повинно бути по-справжньому фрактальним, якщо ви вважаєте, що існує обмежений діапазон відстаней, на якому людина збирається сфотографуватися. Я маю на увазі, якщо людина, яка носить тканину, знаходиться на задньому плані зображення, це все одно не матиме великого впливу ...

Я думаю, що найкращим способом обмацувати кодер JPEG було б мати блоки з дуже високими частотними коефіцієнтами, які переживуть квантування = багато деталей та гострих країв; тому вся послідовність коефіцієнтів повинна бути чітко записана (замість EOB на 15-му коефіцієнті або так). Шаблон шаблону - хороший спосіб досягти цього. Єдиний мінус, який я бачу, - це те, що низька роздільна здатність об'єктива + фільтри камери протиалійні мають хороші шанси розмити це! Все повинно відбуватися в межах 8x8 блоків (або 16x16 блоків у кольорі), оскільки JPEG не робить багато на макромасштабі. Ви повинні зробити свої блоки 8х8 максимально безладними, незалежно від того, наскільки розмиті об'єктиви будуть їх робити.

Ось пропозиція:

інваріантний масштаб, важкий для JPEG-стиснення

Вам може бути цікаво, що тут роблять менш контрастні блоки, але вони допомагають зберігати зону контрастності, коли річ зменшується. Завдання тут - мати щось із контрастним малюнком, незалежно від масштабу перегляду.

Я офіційно цього не оцінював. Найкращим способом було б створити сценарій, який знімає зображення, застосовує десяток обрізань / зміни розміру / розмиття з різними параметрами та плює загальний розмір JPEG.


Дуже дякую! Насправді, схоже на мою концепцію картини в питанні, насправді, але набагато приємніше. Якась конкретна причина, чому «фрактальність» є фактором 4? Це краще, ніж фактор 2?
Ніколя Рауль

немає причин, я просто намагався зробити його красивішим з більш кольоровими відтінками, тому я почав з квадрата 4x4.
пікенети

Будь-яка причина вибирати квадрати замість трикутників? Я зараз намагаюся, трикутники роблять безліч гострих країв, що я вважаю гарним. Низької "фрактальності" можна було досягти за допомогою гібридного трикутника → ромба → шестикутника → підходу трикутника. Я думаю, що низький коефіцієнт - це гарна річ, оскільки він збільшує ймовірність виявлення камери гострими формами до межі її роздільної здатності.
Ніколя Рауль

Квадрати було найпростішим кодом. Я не впевнений, чи інші форми мають кращу «щільність краю», ніж квадрати.
пікенети

11

Існує різниця між JPEG, що експлуатується, і Transform Compressible.

Візьмемо, наприклад, білий зернистий шум телевізора.

Загальний білий шум поширюється максимум по частоті, а отже, немає кращого прикладу, ніж білий шум, який будь-яка техніка кодування домену перетворення не може стискати. Якщо ви приймаєте такий шум і приймаєте DCT (або DFT, якщо це потрібно), ми виявимо, що частотна область також широко поширена і всі коефіцієнти матимуть важливе значення.

Однак все одно ніхто не заважає вам бути агресивними щодо квантування. Таким чином, ви все ще можете відкинути велику кількість з високочастотних областей. Результат матиме велику помилку середньої площі. Однак, сприймаючи це, все одно це буде шум. Це може бути сильно розмитим.

З іншого боку, тепер фотографуйте там, де є гострі краї.

Гострі краї також будуть поширюватися на більш високій частоті (але, можливо, це може бути трохи менше, ніж колишній випадок). Однак, намагаючись стиснути його і скинути високу частоту, тепер візуально будуть серйозні перешкоди. Це призведе до розмивання країв, ефекту дзвінка тощо. Хоча розширення пропускної здатності для таких зображень не є максимально можливим, для JPEG або будь-якого такого еквівалентного стиснення, зберігання таких зображень сприйнято однакової якості буде важким.

Для будь-якого стискання втрат жорстке і просте залежить від того, наскільки і який тип спотворень переноситься.


Скажімо, моя тканина - 10 ^ 8x10 ^ 8 таблиця випадкових чорних / білих пікселів. Камера робить знімок тканини 10х10 пікселів. Статистично, чи не на цьому зображенні 10х10 всі пікселі будуть дуже подібними сірими, таким чином, їх легко стиснути з меншим спотворенням (будь-якого виду), ніж менш рівномірне зображення?
Nicolas Raoul

10

Наведена нижче композиція показує фрактальну різновид структури візерунка. Кожне наступне зображення є результатом усереднення кожного блоку 2х2 пікселів попереднього. Загальний характер візерунка залишається колишнім, але контраст зображення поступово зменшується. Як було сказано прямо раніше, картина стає сірою, коли ми зменшуємо масштаб.

Маштабування поведінки

Але, використовуючи фрактальну властивість, ми могли б накладати разом кілька моделей різної роздільної здатності, щоб підтримувати контрастність зображення стабільним у межах бажаного діапазону. Нижче наводиться приклад чотиришарового малюнка (512x512 GIF). Цей результат більш близький до броунівського шуму, а також навряд чи стиснений JPEG.

4 шарова комбінація


5

Я здогадуюсь, що найгіршим стисливим малюнком буде білий шум (з рівномірним розподілом). Їм потрібно виглядати шумно за різною роздільною здатністю, щоб ви могли створювати галасливі зображення в масштабному просторі та замість того, щоб складати їх разом:

Я=iнNiГi

ЯNiiГiiσ

Можливо, кращим способом побудови такого зображення було б робота безпосередньо в частотній області, таким чином:

  1. Створіть зображення, наповнене білим шумом.
  2. Виконайте 8x8 блок IDCT (обернена дискретна косинальна трансформація) на зображенні.

Результат був би найгіршим стисливим малюнком для JPEG, оскільки він має найвищу ентропію в домені DCT. Але я не впевнений, як це буде вести себе при різних резолюціях.


5

IIRC, вказаний алгоритм декомпресії JPEG, однак точний алгоритм стиснення не є. Різні алгоритми можуть створювати законний файл JPEG. Тому вам потрібно буде протестувати це на обраних компресорах зображення.

Все, що може бути стиснене на ту саму кількість, втрачає компресор, наприклад JPEG. Просто на будь-якому фіксованому рівні стиснення якість компресії може змінюватись (шум або помилка декомпресованого результату збільшуватимуться) залежно від зображення. Отже, ви хочете чогось, що додає максимальну кількість шуму до декомпресованого результату. Для цього потрібно максимальну помилку для видалення високочастотних коефіцієнтів макроблока та для кількісного визначення будь-яких коефіцієнтів.

Що, ймовірно, означає різницю та високу частоту пікетів, а також різні масштаби сірого та кольорового кольорів, які, можливо, знаходяться між можливими рівнями квантування даного компресора за певних параметрів.

Оскільки ви хочете, щоб це працювало на будь-якій відстані при будь-якому освітленні, вам потрібно буде змінювати частоту пікетів (можливо, фрактальну, або, можливо, просто прошарпану з випадковою частотною модуляцією) та кольоровий і сірий рівні (несумісні, наприклад, змінювати кольори та рівні незалежно). Відхилення відтінків менше залежатимуть від відстані, тому ті, кого потрібно просто вибрати, будуть гіршими для вибраних квантовальників. Середній розмір кольорових візерунків може бути вдвічі більшим за розмір узорів яскравості, щоб відповідати композиції макроблоку YUV 4: 1: 1 (площа).

Я б почав із купки кольорових візерунків Муара на диво різних масштабах, накладених та / або поклеєних фрактально.


2

Дозвольте мені поділитися схемою, яка має дуже плоский спектр (як білий шум). Тому цю картину дуже важко стиснути JPG. Зразок зображення нижче збільшується в 4 рази.

Сама закономірність є регулярною, але неперіодичною, і її можна легко створити детермінованим алгоритмом. Він також має фрактальну властивість.

Неперіодична картина з квазі білим спектром шуму

Дивиться здалеку: оригінальний далеко


2

Випадковий шум справді стискається дуже погано. Ви можете створити його кольором, генеруючи незалежні значення R, G, B.

Дивлячись на відстань дійсно знищить шум (шляхом фільтрації з низькою частотою), і цього можна уникнути, генеруючи зображення шуму з різною роздільною здатністю, тобто використовуючи більші та більші пікселі, та накладаючи їх.

Додаючи зображення, ви стикаєтесь із проблемою діапазону значень, який зростає у міру збільшення кількості зображень, нехай N. Якщо ви просто середнє їх значення, амплітуда шуму зменшиться на 1 / N.

Якщо ви виберете неспоріднений однорідний шум, суперпозиція призведе до квазі-гауссового розподілу зі стандартним відхиленням √N, тому замість ділення на N, ви можете розділити на √N (з відповідним перецентруванням), щоб обмежити зменшення амплітуди.

Нарешті, я здогадуюсь, що краще дозволити значенням обертатись, а не насичувати їх, оскільки насичені значення формуватимуть великі однакові області.


2

Ось ще один підхід, який набирає броунівський шум RGB (4096x4096 GIF). Броунівський шум RGB


0

Дивовижне запитання! У принципі білий шум - це сигнал, який не змінюється, коли його масштабують час. Таким же чином фрактал не змінюється, коли він масштабується. Процес стиснення втрат займає лише найважливіший спектр (час або розмір) не всіх, тому фрактал і шум пахнуть печивом. Тому вам слід грати з кольорами та візерунками вашої тканини. Вони повинні бути фракталами, а фрактальна поведінка повинна бути породженою білим кольором. Ви повинні отримати тканину, яка на фотографії виглядає чорною (у кольоровому просторі CMY), але в реальному світі вона має строкатий малюнок.

Удачі! , і якщо ви отримаєте коваля, будь ласка, опублікуйте його !!!.


"Ви повинні отримати тканину, яка на фотографії виглядає чорною" <- У цьому випадку, чи не було б вона легко стислива?
Ніколя Рауль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.