среда, 4 мая 2011 г.

Про Обаму, подделки и новые технологии

Посмотрел тут на бурления интернет конспирологов про метрику главного борца за мир на планете, по версии нобелевского комитета. Понятно, что часть товарищей, не обделенных мозгом, набрасывает это исключительно веселья для. Но судя по всему есть довольно не маленький процент граждан, которые и правда уверены, что на сайте белого дома вывалили документ, который был не шибко умело отфотошоплен. Ну т.е. вот не хватило у пацанов денег на цветной принтер, чтобы распечатать нафотошопленное и еще раз отсканировать. Оно может и так, может и правда с принтерами у них там проблемы, я им свечку не держал. Однако выскажусь по поводу слоев в вываленном пдф-документе.

Итак. Как в принципе, кодируются цветные изображения полученные со сканера. Понятно, что самый простой способ вывалить этот самый скан в raw формате, весить оно будет вполне достойно, и в силу этого веса так никто не делает. Второй вариант ужать его, например, в jpeg или jp2k, при этом произойдет потеря качества, но размер документа ужмется на пару порядков. Здесь надо уточнится про потерю качества при сжатии в jpeg. Jpeg кодинг изначально разрабатывался для сжатия полноцветных изображений с потерей качества, но при этом, чтобы данная потеря не сильно воспринималась человеческим глазом. И со своей задачей данный вариант кодирования вполне справляется. Т.е. например, фотографии жмет вполне успешно, и не шибко их при этом портит, так же понятно, что при сжатии происходит балансировка между тем насколько дерьмовым будет результат и тем насколько мы хотим уменьшить размер получаемого файла. Однако, в случае если исходная картинка это скан какого-либо документа содержащего текст, то попытка сильно снизить качество приводит к существенной размытости текста вплоть до нечитаемости. Поэтому на некотором этапе развития технической мысли, был сделан следующий финт ушами. Исходное изображение (например, отсканированная страница книги) делится на два слоя: цветная подложка и черно-белый слой. Деление обычно делается относительно простым способом, а именно отсечением по порогу. Т.е. все пиксели которые "темнее" некоторого порога (т.е. достаточно близки к черному цвету) кладутся в черно-белый слой, а все остальное считается подложкой. Затем эти два слоя кодируются по отдельности, цветной при помощи jpeg, черно-белый либо CCIT либо JBIG2 в зависимости от дальнейших изысканий. Это позволяет достаточно хорошо уменьшить вес результирующего документа при этом не потеряв читабельность текстов. Часто также сканируют страницы с разрешением 600DPI, а потом у нижнего (цветного) слоя уменьшают разрешение в два-три раза, на глаз выглядеть будет замечательно.

Собственно весь формат DjVu это четкий пример такого способа хранения отсканированных документов. В пдф-формате также есть все средства для осуществления такого кодирования, а именно возможность отрисовать на странице несколько картинок одну над другой, при этом с поддержкой сolorkey (т.е. замены одного цвета прозрачностью) для верхних. Поэтому большинство приличных программ для создания пдф, осуществляют резку картинок на слои и их независимое кодирование.

Документ, который так взбудоражил общественность, сделан именно по такому принципу, цветная подложка, кодированная при помощи DCTDecode, и 8 черно белых картинок, закодированных FlateDecode.

Почему восемь черно-белых? Потому что черных кусков в выделенном черно-белом слое мало, т.е. большая часть слоя белая, кодировать весь слой целиком "дорого" (и не нужно) по вкладу в вес результата, поэтому его порезали и закодировали кусками.

По поводу того, что "вот тут надписи размыты, а тут четко черные пиксели", ну так вот это результат именно кодирования в два слоя, при том, поскольку черно-белый слой выделяется по некому пороговому значению, все те пикселы, что были "почти черные" при кодирования перешли в чисто черный цвет.

Как-то так.

А если без технических деталей, то учитывая последние событие в Африке и конкретно в Ливии, у меня наличие мамы и папы у некоторых американцев и европейцев вызывает очень большие сомнения, которые сканами бумажек разрешить не получается.

update: думал это очевидно, но похоже не для всех. Никто специально руками, чтобы получше сжать, документ на слои не разводит, это автоматическое действие, осуществляемое софтом, которому абсолютно похер чего ему подсовывают, сканированную метрику президента или скан статьи о разведении крупного рогатого скота в заполярье.

Комментариев нет: