Информатика в школе


Видео курсы для чайников фотошоп, joomla, wordpress, php, css 
  Главная  ●  Карта сайта
 
 

4.5.4. Некоторые принципы уменьшения объема графических файлов

<<Назад  Содержание  |  Далее>>

 

 

Сколько бит требуется, чтобы закодировать информацию о 130 оттенках? Нетрудно подсчитать, что 8 (то есть 1 байт), поскольку при помощи 7 бит можно сохранить номер оттенка о 0 до 127, а 8 бит хранят от 0 до 255. Легко видеть, что такой способ кодирования не является оптимальным: 130 заметно меньше 255. Подумайте, как уплотнить информацию о рисунке при его записи в файл, если известно, что:

а) в рисунке одновременно содержится только 16 цветовых оттенков из 130 возможных;

б) в рисунке присутствуют все 130 оттенков одновременно, но количество точек, закрашенных разными оттенками, сильно различаются.

Решение

а) Очевидно, что для хранения информации о 16 оттенках достаточно log2(16)=4 бита. Однако так как эти 16 оттенков выбраны из 130, то они могут иметь номера, двоичные коды которых  не умещаются в 4 битах. Поэтому воспользуемся методом палитр. Назначим 16 используемым в нашем рисунке оттенкам свои “локальные” номера от 0 до 15 и закодируем весь рисунок из расчета 4 бита на пиксель. Допишем к этой информации (в конец содержащего ее файла) таблицу соответствия, состоящую из 16 пар байтов с номерами оттенков: 1 байт - наш “локальный” номер в данном рисунке, второй - реальный номер данного оттенка. Если рисунок достаточно велик, выигрыш в объеме полученного файла будет значительным.

б) Попытаемся реализовать простейший алгоритм архивации графической информации. Назначим трем оттенкам, которыми закрашено минимальное количество точек, коды 128 – 130 (восьмибитные), а остальным оттенкам - коды 1 -127 (семибитные). Будем записывать в файл (который в этом случае представляет собой не последовательность байтов, а сплошной битовый поток) семибитные коды для оттенков с номерами от 1 до 127. Для оставшихся же трех оттенков в битовом потоке будем записывать число-признак - семибитный 0 - и сразу за ним двухбитный “локальный” номер, а в конце файла добавим таблицу соответствия “локальных” и реальных номеров. Так как оттенки с кодами 128 - 130 встречаются редко, то семибитных нулей будет немного.

Заметим, что постановка вопросов в данной задаче не исключает и другие варианты решения, без привязки к цветовому составу изображения - архивацию:

-       на основе выделения последовательности точек, закрашенных одинаковыми оттенками и замены каждой из этих последовательностей на пару чисел (цвет, количество) (этот принцип лежит в основе графического формата РСХ);

-       путем сравнения пиксельных строк (запись номеров оттенков точек первой строки целиком, а для последующих строк запись номеров оттенков только тех точек, оттенки которых отличаются от оттенков точек, стоящих в той же позиции в предыдущей строке, - это основа формата GIF);

-       с помощью фрактального алгоритма упаковки изображений (формат YPEG).

 

 

<<Назад  Содержание  |  Далее>>

Книжные новинки
Как сделать свой сайт и заработать на нем Е. Мухутдинов
Копилка
Рабочие программы
Проекты MS Office
Презентации
Открытые уроки
Экзаменационные билеты
Элективные курсы
Бесплатный soft
 Инструкции по ТБ
Подготовка к олимпиадам по информатике
Методика подготовки
"Золотые" алгоритмы
Простые задачи для начинающих
Олимпиадные задачи с решениями
Книги
Среда программирования
Обучение программированию на С++
Справочник по языку Pascal
Обучение
Подготовка к ЕГЭ
Создание сайтов
Уроки FrontPage
Уроки Word 2003
Создание игр на Delphi
Печатаем вслепую

Информация

Наши интервью
Книга почета
Курсы повышения квалификации
Электронная библиотечка
Книжная полка
Статьи
Полезные ссылки
Обратная связь

Конкурсы

Олимпиада
Фотоконкурс
VIP
Персональный раздел профессора
Макаровой Н.В.
Персональный раздел профессора
Смыковской Т.К.