Для различных графических приложений и разных компьютерных систем доступно множество форматов файлов. Одни форматы разработаны организациями по стандартизации ISO и ANSI, другие предлагаются компаниями - производителями программного или аппаратного обеспечения, третьи - продукты независимых групп. В число широко используемых форматов входят JPEG, TIFF, PNG и форматы для операционных систем компьютеров Apple Macintosh, X Window и Windows.
ЛИТЕРАТУРА
Методы снижения цветности представлены в работах [7, 122, 149, 151, 176]. В книге [130] в общем контексте обсуждаются методы обработки изображения и преобразования. Подробно различные алгоритмы сжатия файлов рассмотрены в публикациях [7, 14, 157, 276, 383, 412, 414].
Общая информация по форматам графических файлов изложена в [46, 216]. Для получения дополнительной информации по формату JPEG рекомендуется обратиться к работе [348]. Стандарт формата файлов CGM подробно освещен в книге [152].
УПРАЖНЕНИЯ
15.1. Напишите программу реализации равномерного снижения цветности для всех уровней цвета в полноцветной системе, где каждый 1ЮВ-компонент задается в целочисленном диапазоне от 0 до 255. Вход - любой целый делитель <1, на который будут делиться все цветовые компоненты, а выход - набор сокращенных целых кодов цвета.
15.2. Так модифицируйте программу из предыдущего упражнения, чтобы в качестве входа использовался не делитель, а целое к, которое задает сокращенное число уровней конечного изображения.
15.3. Модифицируйте программу из упражнения 15.2, чтобы компоненты R, G и В сокращались по-разному. Сокращение цветности можно задать как целочисленный диапазон для каждого компонента или как число битов.
15.4. Напишите программу реализации популярной схемы снижения цветности для сокращения входного файла изображения до к цветов. Вход программы - массив кодов цвета пикселей и размер массива, который задается числом строк развертки и числом пикселей вдоль каждой строки развертки.
15.5. Напишите программу реализации схемы снижения цветности методом разрезания по медиане. Файл изображения, содержащий п кодов цвета RGB, должен сокращаться до к кодов цвета.
15.6. Напишите программу реализации группового кодирования для одной строки развертки, содержащей 1024 целых значений, принадлежащих диапазону от 0 до 255.
15.7. Модифицируйте программу из предыдущего упражнения, чтобы она кодировала файл, состоящий из п строк развертки.
15.8. Напишите программу реализации упрощенного алгоритма кодирования LZ для одной строки развертки, содержащей 1024 целых значений, принадлежащих диапазону 0-255. Программа должна выполнять поиск только трехэлементных шаблонов, представляющих повторяющиеся цвета RGB. В шаблонах используйте целочисленные коды.
15.9. Расширьте программу из предыдущего упражнения, чтобы она обрабатывала входной файл с п строками развертки.
15.10. Для данного входного файла изображения, содержащего п строк развертки и т RGB-цветов пикселей в каждой строке, напишите программу, выдающую таблицу частот вхождения кодов цвета.
15.11. Используя частоты вхождения из предыдущего упражнения, напишите программу сжатия файла изображения с использованием кодирования Хаффмана.
15.12. Используя частоты вхождения из упражнения 15.10, напишите программу сжатия файла изображения с использованием арифметического кодирования.
15.13. Дан список 32 цветов пикселей, причем каждый пиксель определяется тремя RGB-компонентами. Напишите программу расчета значений дискретного косинус-преобразования (уравнение (15.1)) для всех восьмипиксельных последовательных групп списка.
15.14. Используя уравнение (15.2) и преобразованные значения из предыдущего упражнения, напишите программу расчета исходных (восстановленных) 32 цветов пикселей.
15.15. Модифицируйте программу из предыдущего упражнения, чтобы она рассчитывала обратное преобразование для любого набора из 8 пикселей, используя только выбранное значение п преобразованных значений; т.е. п может быть любым значением от 1 до 8 включительно.
15.16. Дан файл изображения, содержащего 32 х 32 цветов пикселей, причем каждый пиксель представлен тремя RGB-компонентами. Напишите программу вычисления значений дискретного косинус-преобразования (уравнение (15.3)) для всех последовательных групп 8x8 пикселей.
15.17. Используя уравнение (15.4) и преобразованные значения из предыдущего упражнения, напишите программу расчета исходных (восстановленных) цветов пикселей блока 32 х 32.
15.18. Измените программу из предыдущего упражнения, чтобы она вычисляла значения обратного преобразования для любого набора 8x8 пикселей, используя заданный выбранный блок п х in преобразованных значений; т.е. пят могут присваиваться произвольные целые значения от 1 до 8 включительно.