Инструменты сайта

Навигация



На главную страницу

• Онлайн: 2

 qr_code

Flag Counter







Яндекс.Метрика

Рейтинг@Mail.ru


Индекс цитирования

Сколько дней блогу

nozdr.ru Alexa/PR

Бинарные изображения

В компьютерном мире существует такой термин как "бинарное изображение" — разновидность цифровых растровых изображений, когда каждый пиксел может представлять только один из двух цветов, например, чёрный и белый.

Значения каждого пиксела условно кодируются как «0» и «1». Значение «0» условно называют задним планом или фоном (англ. background), а «1» — передним планом (англ. foreground).

Когда мы видим перед собой уже нарисованную картинку с домиком, то сразу понятно, что это дом. Но когда видим соответствующую этой картинке бинарную маску, то уже не всё так понятно. А уж если эти нолики с единичками перевести в восьмеричную, десятичную или шестнадцатиричную систему счисления, то ни о какой картинке с домиком уже речи нет — она будет надёжно «скрыта» от глаз, при том, что информация о ней никуда не денется, просто она станет закодирована.

Можно сделать ещё «хуже» — каждому шестнадцатеричному коду строки изображения сопоставить графический символ из какой-либо известной кодовой таблицы, например, windows-1251 или CP866. Тогда каждая строчка такого изображения будет кодироваться всего одним символом, и всё изображение с домиком превратится в «→&BяBZZ~».

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

Фидошный адрес

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

Если честно, то я очень долго думал над этой задачей, пробовал применять разные шифры перестановки, и замены, пробовал их комбинировать — но не получалось. Потом всё же начал с самого начала и подробнее прочитал условие. Подсказка была в самом начале: «компьютерная графика». Стал думать, какие способы есть перевести число в графику. Вначале подумал, что тройки символов - это координаты в пространстве, потом попробовал определить позиции символов и построить по их номерам гистограмму. В конце концов, решил применить метод, изложенный выше — и получилось! Тоже не с первого раза, конечно :)

На картинке получился адрес моего фидошного узла 2:5020/2613. Почему сверху вышла сплошная полоска? Если бы автор задачки попытался использовать пятизначные двоичные числа, то попал бы в самую верхнюю часть кодовой таблицы с кодами от 0 до 32, а там не во всех таблицах есть отображаемые символы, чаще — управляющие. Поэтому он сделал сдвиг на две строки вниз (на 32 символа). В двоичном виде это получилось так, как будто к числу прибавили 100000 (3210=1000002), вот в каждой строчке и появилась лишняя единичка. Ничего страшного, информация при этом не потерялась. Прекрасная задачка! :-)

Сигнал из космоса

Ниже приведён фрагмент из книги И.С. Шкловского «Вселенная. Жизнь. Разум».

«Пожалуй самым эффективным методом установления контакта между инопланетными цивилизациями является передача изображения. При этом предполагается, что все разумные существа, населяющие разнообразные планеты, должны быть зрячими. Такое предположение выглядит весьма правдоподобно. Ведь у нас на Земле зрением обладает огромное количество видов живых существ, от низших до самых высших. Зрение является мощнейшим способом получения живыми существами информации от внешнего мира, обеспечивающим огромное количество сохраняющих реакций <..>.

Эффективность метода передачи информации посредством изображения была остроумно продемонстрирована Дрэйком на радиоастрономической конференции в Грин Бэнк (США). Допустим, сообщил он, что от некоторой звезды регулярно получаются радиоимпульсы малой длительности, разделённые интервалами, кратными длительности импульса. На первый взгляд, эти интервалы разбросаны беспорядочно. Через определённый промежуток времени та же последовательность импульсов повторяется. Это должно явно указывать на их искусственное происхождение. Если изобразить каждый импульс единицей, а «пустой» промежуток времени, по длительности равный длительности импульса,— нулём, то получится запись, представленная на рис. 104. Дрэйк предложил участникам конференции расшифровать этот сигнал. Самое удивительное то, что очень скоро значительное число участников с этой задачей справилось.

1000000000000000000000000000000000000000100001110000000000100000 1000000100000100000001000100000000000000000000000000000000000010 0010000100000010000000000001000000000001000100000100000010000000 0100010001000000011100000000000000100000000000010000000000000000 0000000000000000000000000000000000000000000000001000001000000100 0001000011000100000000000000000000000000000000000000000000011000 0110000110000110000110000100000000010010010010010010010010010010 0101010010010000110000110000110000110000110000000001000000000001 1111010000000000000000000001000000000001000001000000000001011011 1001000000000000011111010000000000000000000000000000100000000000 0000001000100111000000000000101000000000000000101001000011001010 1110010100000000000000010100100001000000000010010000000000000000 0100100000100000000000111110000000000000111110000001110101000000 1010100000000000101010000000100000000000100010100000000010100010 0000000000000000010001001000100010011011001110110110100000100010 0010101010001000100000000000000000010001000100100100010001000000 1000000000000111000001111100000111000000011111010000010101000001 0100000100010000001000000000010000010000111000010000010000010000 0000001000001000100010001000001000001100011000010000010001000100 0100000100000110000000011000001101100011011000001100111
Рис. 104

Ход их рассуждения был такой. Всего в записи содержится 1271 знак (единиц и нулей). Число 1271 есть произведение двух простых сомножителей 41*31. Естественно возникает предположение, что сигнал представляет собой кадр телевизионного изображения, в котором 31 строка и 41 элемент в строке (может быть, конечно, наоборот, но от этого изображение повернётся на 90°, что не существенно1)). Так как большинство знаков — нули, изображение контурное. Развернём это изображение по строкам, причём вместо единиц будем ставить чёрные кружки. Тогда получится забавная картинка, представленная на рис. 105.

Эта картинка содержит довольно богатую информацию. Прежде всего видно, что разумные существа, населяющие планету, антропоморфны и размножаются таким же способом, как их коллеги по разуму, населяющие Землю. У них есть такая важная общественная ячейка, как семья. Грубая окружность в левом верхнем углу картинки должна изображать их Солнце, а ряд точек, расположенных вдоль левого края изображения сверху вниз,— его планетную семью. Против каждой из таких точек в двоичной системе счисления изображён порядковый номер планеты2). Левая фигура указывает рукой на четвертую (по порядку удаления от их Солнца) планету. Именно на этой планете имеется разумная жизнь.

От третьей сверху планеты горизонтально идёт волнистая линия. Это можно истолковать таким образом: поверхность третьей планеты покрыта жидкостью (вероятно, водой). Под волнистой линией схематически изображено некоторое рыбообразное существо — представитель фауны этой планеты… Следовательно, можно сделать важный вывод: аборигены далекого мира могут совершать межпланетные перелёты. Жизнь на планете основывается на тех же примерно химических процессах, что и у нас на Земле, ибо в верхней части изображения схематически представлены (слева направо) атомы водорода, углерода и кислорода. Изображение содержит также информацию о размерах разумных существ, населяющих этот чужой мир. Справа от фигур находится «метка роста», посредине которой изображено число 11. Значит, рост взрослых особей — 11 единиц некоторого масштаба. Что это за масштаб? Так как передача изображения велась на волне 21 см, естественно считать длину волны межзвёздной радиолинии единицей масштаба. Значит, наши «братья по разуму» заметно выше нас: их рост достигает 231 см… Наконец, над вытянутой рукой правой фигуры изображено число 6. Похоже на то, что эти существа шестипалые, что делает весьма вероятным предположение, что они пользуются двенадцатиричной системой счисления…

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


1) Автор немного некорректно описал, как точно определить размеры кадра. Если выбрать размер 31×41, то изображение отнюдь не повернётся на 90°, а получится аналогичная исходному изображению «каша». То, что картинка не «вертикальная» 31×41, а «горизонтальная» 41×31 говорят точки в углах изображения. «Братья по разуму» сделали нам подсказку: расстояние от первого импульса до второго как раз и кодирует длину строки кадра.
2) В двоичной системе каждое число представляется суммой степеней 2: n = a0*20 + a1*21 + a2*22 + …, где ai принимают значения либо 1, либо 0. В первом случае ставится точка, во втором делается пропуск. Например, число 11 можно представить как 1*20 + 1*21 + 0*22 + 1*23 или •• •. На рис. 105 слева от изображения каждого числа дополнительно ставится ещё точка, как это делается, например, при телеграфировании.

Ссылки

Разное

games/quest/crypt/ext/bin.txt · Последние изменения: 2020/11/24 21:27 — NoZDR

Инструменты страницы

Инструменты пользователя