Как стать автором
Обновить

Кодирование любой информации до нескольких байт или как уместить петабайты информации на одной дискетке

Время на прочтение3 мин
Количество просмотров3K

В своей статье "Кодирование для чайников" я крупными мазками обозначил общие принципы представления информации в ином, закодированном виде. Для тех, кто не захочет читать её я приведу простой пример: имея всего 1 бит, что можно закодировать? Если у вас нет контекста, то вы можете только передавать информацию о том, что сейчас у вас состояние включено или выключено, но если у вас есть контекст, то например 1 - это 5000 грузовиков на стоянке, а 0 - пустая стоянка. Или 1 - это вся вселенная, а 0 - её отсутствие. Если рассматривать практический пример, то например 0-1 могут кодировать два цвета 32-битной палитры - так называемое индексное представление цвета. Такой подход используется например в файлах GIF и PNG. Контекстом в данном случае будет конкретное значение цвета в RGB(A) палитре.

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

Почему дискета?

Понимаю что многие в принципе никогда ими не пользовались, но кусочек пластика, на который вмещалось 2-3 книги (например любимый для экспериментов TXT файл с книгой "20000 лье под водой" занимает 841313 байт, что уже больше половины дискеты на 3.5"), мне показался более интересным примером, чем флешка на 16-32 гигабайт.

О чём разговор?

Кодирование - как представление информации может выражаться как непосредственное кодирование данных, так и как процесс создания уникального ключа для доступа к этим данным.

Я уже говорил о контекстном кодировании, по сути оно везде нас сопровождает, хотя и кодировщики общего назначения так же нужны и важны. Простым вариантом контекстного кодирования может быть сокращение числа бит для хранения одного символа. Например байт состоящий из 8 бит даёт нам 256 вариантов кода, хотя для английского текста и нескольких разделителей и знаков препинания вполне может хватить 32 кода, а это уже 5 бит или пять восьмых от общего размера данных, для упомянутой выше книги это 5/8*841313 или 525821 байт. Петабайтами тут не пахнет, поэтому вернёмся к основной теме.

Немного картинок

Дом - это уникальное хранилище данных: компьютер, ноутбук, смартфон, игровая приставка и т.п.
Дом - это уникальное хранилище данных: компьютер, ноутбук, смартфон, игровая приставка и т.п.

Каждый дом - это уникальные данные в своём непосредственном виде, но что если мы возьмём принцип "клиент-сервер", а в качестве клиента - тонкий клиент? Получится вот так:

Дома - это потребители данных, а высотка - это сервер данных
Дома - это потребители данных, а высотка - это сервер данных

Если число клиентов вырастет в геометрической прогрессии, то у нас будет или так:

Больше домов - больше высоток
Больше домов - больше высоток

Или даже так:

Или - много домов и огромный небоскрёб
Или - много домов и огромный небоскрёб

Уникальные ключи

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

Что интересно, подобные ссылки стали кодировать в QR/BAR-коды, для быстрого считывания уже устройствами, а не самим пользователем. Равно как есть сервисы предоставляющие короткие ссылки вместо длинных.

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

Так в чём прикол с дискетой?

Для хранения уникальных ключей порой достаточно всего несколько байт, например для видео на ютубе это "LXb3EKWsInQ" всего 11 байт, при этом сами данные могут быть любого размера. Поэтому создав текстовый файл и набив строками такие ключи мы можем сохранить 1474560 / 12 = 122880 ссылок, если каждая ссылка это х/ф в Bluray 4K, то фактически это будет представление для 100 Гб * 122880 = 12288000 Гб или 12,288 Пб. Ситуацию с кодированием этого файла с ключами тем же LZW например - рассматривать не будем, хотя это тоже вариант.

Заключение

Фактически мы все ежедневно отправляя ссылки на статьи, фото, на файлы в облачных хранилищах - передаём уникальные коды вместо самих данных, но вся эта система работает только до тех пор, пока сохраняется доступ к данным.

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

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Как вы оцениваете свой скилл в ИТ в своей области?
5.56% Новичок, любитель1
27.78% Базовый5
5.56% Продвинутый1
38.89% Специалист7
22.22% Эксперт4
Проголосовали 18 пользователей. Воздержались 19 пользователей.
Теги:
Хабы:
Всего голосов 16: ↑1 и ↓15-14
Комментарии2

Публикации

Истории

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань