Я пытаюсь спроектировать ткань, которую с точки зрения камеры очень сложно сжать с помощью JPG, что приводит к файлам большого размера (или приводит к низкому качеству изображения, если размер файла фиксирован).
Он должен работать, даже если ткань находится далеко от камеры или повернута (скажем, масштаб может варьироваться от 1x до 10x).
Шум довольно хороший (трудно сжимать), но он становится серым, если смотреть издалека, и становится легко сжимаемым. Хорошим шаблоном будет фрактал , похожий на все шкалы.
Листва лучше (листья, крошечные ветви, маленькие ветви, большие ветви), но она использует слишком мало цветов.
Вот первая попытка:
Я уверен, что есть более оптимальные модели.
Может быть, тесселяции шестиугольника или треугольника будут работать лучше.
JPG использует цветовое пространство Y ′ Cb Cr , я думаю, что Cb Cr можно сгенерировать аналогичным образом, но я думаю, что лучше не использовать равномерно весь диапазон Y (яркость), так как камера будет насыщать яркие или темные области ( освещение никогда не бывает идеальным).
ВОПРОС: Каков оптимальный рисунок ткани для этой проблемы?
источник
Ответы:
Ну, есть фрактальный шум . Я думаю, что броуновский шум - это фрактал, который выглядит так же, как вы увеличиваете его. Википедия говорит о добавлении шума Перлина к себе в разных масштабах для создания фрактального шума, который, возможно, идентичен, я не уверен:
Я не думаю, что это будет трудно сжать, хотя. Шум является трудно для сжатия без потерь, но JPEG с потерями, поэтому он просто собирается выбросить детали вместо того , чтобы бороться с ним. Я не уверен, возможно ли сделать что-то «трудное для сжатия в JPEG», так как оно просто проигнорирует все, что слишком сложно сжать при таком уровне качества.
Что-то с твердыми краями в любом масштабе, вероятно, будет лучше, например, бесконечная шахматная плоскость:
Также что-то с большим количеством цветов. Может быть, посмотрите на реальные фракталы вместо фрактального шума. Может быть, фрактал Мондриана ? :)
источник
Если бы мы говорили о компьютерных изображениях, шум был бы правильным подходом. Но здесь есть шаг захвата камеры.
Фрактал бит очень важно из-за проблемы масштабной инвариантности. Это не обязательно должно быть по-настоящему фрактально, если учесть, что существует ограниченный диапазон расстояний, на котором человек будет фотографироваться. Я имею в виду, если человек, носящий ткань, находится на заднем плане картины, это не окажет большого влияния в любом случае ...
Я думаю, что лучший способ обмануть кодер JPEG - это иметь блоки с очень высокими высокочастотными коэффициентами, которые выдержат квантование = много деталей и острых краев; поэтому вся последовательность коэффициентов должна быть записана в явном виде (вместо EOB с 15-м коэффициентом или около того). Шаблон шахматной доски - хороший способ достигнуть этого. Единственным недостатком, который я вижу, является то, что низкое разрешение объектива + фильтры сглаживания камеры имеют хорошие шансы на размытие! Все должно происходить в пределах 8x8 блоков (или 16x16 блоков по цветности), потому что JPEG мало что делает в макромасштабе. Вы должны сделать свои блоки 8х8 как можно более грязными, независимо от того, насколько размыт линза их сделает.
Вот предложение:
Вы можете задаться вопросом, что здесь делают менее контрастные блоки, но они помогают сохранить контрастную зону, когда объект уменьшен. Задача здесь состоит в том, чтобы иметь что-то с контрастным рисунком независимо от масштаба просмотра.
Я не оценивал это формально. Лучше всего было бы иметь скрипт, который берет изображение, применяет дюжину кадрирует / изменяет размер / размывает с различными параметрами и разбрызгивает общий размер JPEG.
источник
Существует различие между JPEG, пригодным для использования и Transform Compressible.
Взять, к примеру, белый зернистый шум телевизора.
Общий белый шум является максимальным разбросом по частоте, и, следовательно, нет лучшего примера, чем белый шум, который любой метод кодирования в области преобразования не может сжать. Если вы возьмете такой шум и примете DCT (или DFT, если потребуется), мы обнаружим, что частотная область также широко распространена, и все коэффициенты будут иметь значение.
Тем не менее, никто не мешает вам быть агрессивным от квантования. Таким образом, вы все еще можете отказаться от большого количества из высокочастотных областей. Результат будет иметь большую среднеквадратичную ошибку. Тем не менее, восприятие это все равно будет шумом. Это может быть сильно размыто, хотя.
С другой стороны, теперь делайте снимки там, где есть острые края.
Острые края также будут распространяться на более высокой частоте (но, возможно, это будет чуть меньше, чем в первом случае). Однако, пытаясь сжимать его и сбрасывать с высокой частоты, теперь визуально будут возникать серьезные препятствия. Это приведет к размытию краев, эффекту звонка и т. Д. Несмотря на то, что ширина полосы пропускания для таких изображений не является максимально возможной, для JPEG или любого такого эквивалентного сжатия сохранение таких изображений с одинаково воспринимаемым качеством будет непростым делом.
Для любого сжатия с потерями жесткое и простое зависит от того, сколько и какой тип искажения допустим.
источник
Приведенная ниже композиция показывает структуру фрактального вида паттерна. Каждое следующее изображение является результатом усреднения по каждому блоку 2x2 пикселей предыдущего. Общий характер рисунка остается неизменным, но контраст изображения постепенно уменьшается. Как было сказано ранее, изображение становится серым, когда мы уменьшаем масштаб.
Но используя свойство фрактала, мы могли бы наложить вместе несколько образцов разного разрешения, чтобы сохранить контрастность изображения, чтобы быть стабильной в пределах желаемого диапазона. Ниже приведен пример 4-х слойного рисунка (512x512 GIF). Этот результат более близок к броуновскому шуму, а также к сжатию в формате JPEG.
источник
Я предполагаю, что худшим сжимаемым рисунком будет белый шум (с равномерным распределением). Он должен выглядеть шумно при разных разрешениях, так что вы можете создавать зашумленные изображения в масштабе и затем соединять их вместе:
Здесь - окончательное изображение ткани, - изображение, заполненное белым шумом (различное для каждого ), а - это гауссово ядро размера . Обозначает свертку.N i i G i i σ ∗I Ni i Gi iσ ∗
Возможно, лучший способ построить такое изображение - работать непосредственно в частотной области, таким образом:
Результатом будет худший сжимаемый шаблон для JPEG, так как он имеет наибольшую энтропию в области DCT. Но я не уверен, как это будет вести себя в разных разрешениях.
источник
IIRC, алгоритм распаковки JPEG указан, однако точный алгоритм сжатия не указан. Различные алгоритмы могут создавать легальный файл JPEG. Так что вам нужно будет проверить это на выбранных вами компрессорах изображений.
Все может быть сжато на ту же величину компрессором с потерями, таким как JPEG. Просто при любом фиксированном уровне сжатия качество сжатия может изменяться (шум или ошибка в результате распаковки будет увеличиваться) в зависимости от изображения. Таким образом, вы хотите что-то, что добавляет максимальное количество шума к распакованному результату. Для этого вам нужна максимальная ошибка для удаления высокочастотных коэффициентов макроблока и для квантования любых коэффициентов.
Это, вероятно, означает изменяющиеся и высокочастотные пикеты, а также изменяющиеся градации серого и цвета, которые оказываются между возможными уровнями квантования данного компрессора при некоторых заданных настройках.
Поскольку вы хотите, чтобы это работало на любом расстоянии при любом освещении, вам нужно будет изменить частоту пикетов (возможно, фрактальную, или, возможно, просто измененную со случайной частотной модуляцией) и уровни цвета и серого (некогерентно, например, изменить цвета и уровни независимо). Дисперсия оттенков будет меньше зависеть от расстояния, поэтому их нужно просто выбрать в худшем случае для выбранных вами квантователей. Средний размер цветовых узоров может быть в два раза больше яркостных узоров, чтобы соответствовать макроблочной композиции YUV 4: 1: 1 (площадь).
Я бы начал с набора ярко окрашенных муаровых узоров с сильно изменяющимися масштабами, наложенными и / или скрепленными друг с другом фрактально.
источник
Позвольте мне поделиться шаблоном, который имеет очень плоский спектр (например, белый шум). Так что этот шаблон очень сложно сжать с помощью JPG. Пример изображения ниже увеличен в 4 раза.
Сам шаблон является регулярным, но непериодическим и может быть легко сгенерирован детерминированным алгоритмом. Он также обладает фрактальным свойством.
Смотрели издалека:
источник
Случайный шум действительно сжимается очень плохо. Вы можете получить его в цвете, генерируя независимые значения R, G, B.
Взгляд с расстояния действительно уничтожит шум (с помощью низкочастотной фильтрации), и вы можете избежать этого, создавая шумовые изображения с разным разрешением, то есть используя все большие и большие пиксели, и накладывая их.
При добавлении изображений вы сталкиваетесь с проблемой диапазона значений, который увеличивается по мере увеличения количества изображений, пусть N. Если вы просто усредните их, амплитуда шума уменьшится как 1 / N.
Если вы выберете некоррелированный равномерный шум, суперпозиция приведет к квазигауссову распределению со стандартным отклонением √N, поэтому вместо деления на N вы можете разделить на √N (с подходящим перецентрированием), чтобы ограничить уменьшение амплитуды.
Наконец, я предполагаю, что лучше позволить значениям оборачивать, а не насыщать их, так как насыщенные значения образуют большие однородные области.
источник
Вот еще один подход к получению броуновского шума RGB (4096x4096 GIF).
источник
Удивительный вопрос! По идее, белый шум - это сигнал, который не изменяется при масштабировании по времени. Точно так же фрактал не изменяется при масштабировании по размеру. Процесс сжатия с потерями занимает только самый важный из спектра (время или размер), а не весь, поэтому фрактал и шум пахнут как куки. Поэтому вам следует поиграть с цветами и рисунками вашей ткани. Они должны быть фракталами, а поведение фракталов должно быть случайным образом. Вы должны получить ткань, которая на фотографии выглядит черной (в цветовом пространстве CMY), но в реальном мире она имеет красочный рисунок.
Удачи! и если вы получите ответ, пожалуйста, отправьте его !!!.
источник