Управление передачей графических изображений по локальным сетям, как правило, задача не из простых. Знание необходимых объемов постоянной памяти и пропускной способности сети поможет держать изображение в фокусе.


МГНОВЕННОЕ ВОСПРОИЗВЕДЕНИЕ
ПРОБЛЕМЫ С ПИКСЕЛАМИ
КАКОЙ ФОРМАТ ВАМ НУЖЕН?
ОБЪЕКТ ДЛЯ СРАВНЕНИЯ
ПРОФЕССИОНАЛЬНЫЕ СЕКРЕТЫ

Жизнь администраторов вычислительных сетей никогда не была легкой. У них всегда хватало проблем - от несовместимости драйверов до отказов кабельной системы. Стоило собраться в отпуск, как немедленно какая-нибудь невесть откуда взявшаяся проблема съедала всю пропускную способность сети. (При значительном объеме работ с изображениями в сети такое случается довольно часто).

Когда-то электронные изображения были не более чем забавой, но сегодня зачастую без них нельзя обойтись. Использование изображений становится повсеместным - их можно встретить и в отделе кадров, где установлена визуальная база данных с фотографиями сотрудников, и во внутреннем справочном отделе на базе сервера World Wide Web. Конечно, лучше один раз увидеть, чем сто раз услышать, однако платить за это удобство приходится весьма высоким уровнем пропускной способности.

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

МГНОВЕННОЕ ВОСПРОИЗВЕДЕНИЕ

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

Каждый пиксел характеризуется глубиной цвета, определяющей, какие цвета могут быть приписаны данному пикселу. Поскольку при битовой кодировке возможны только два состояния, растровое изображение с глубиной цвета равной единице может содержать только черный и белый цвета. Далее, растровое изображение с глубиной цвета в восемь единиц содержит до 256 цветов, а глубине цвета в 24 бита на пиксел соответствует 16.7 миллионов цветов. Цветовое разрешение глаза обычно не превосходит этой цифры, поэтому изображения с 24-битной глубиной цвета часто называют изображениями с реальными цветами (true-color images).

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

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

ПРОБЛЕМЫ С ПИКСЕЛАМИ

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

Если размер фотографии составляет 3.5 на 3 дюйма (примерно 9 x 13 см), то объем сканированного изображения составит 196875 байт. (Чтобы получить эту цифру, надо умножить разрешение (300 на 300 бит на дюйм) на 17.5 квадратных дюймов и поделить результат на восемь бит на байт. В подобных расчетах глубина цвета принята равной одному биту на пиксел).

Для получения 256-цветного изображения требуется восемь бит на пиксел, а для "реального цвета" необходимо 24 бит на пиксел. Отсюда следует, что для хранения 256-цветного изображения нужно 1575000 байт, в то время как изображение в реальном цвете займет 4725000 байт.

Для сравнения оценим, сколько места занимает полный экран текста, любой символ которого может быть изображен любым из 256 цветов. Такой экран содержит 25 строк по 80 символов в каждой, что в сумме дает 2000 байт. Добавив к каждому символу один байт цветового атрибута, получим, что для хранения такой информации потребуется 4000 байт. Это составляет примерно одну четырехсотую часть размера файла с 256-цветным изображением.

Полная пропускная способность локальной сети (как правило, это Ethernet (10 Мбит/с) или Token Ring (16 Мбит/с)) делится между всеми пользователями. Рассмотрим, к примеру, сеть на 200 пользователей, которой в каждый момент времени пользуется 10 процентов рабочих станций. Средняя пропускная способность такой сети составит 500 Кбит/с на пользователя (10 Мбит/с поделить на 20) для Ethernet и 800 Кбит/с на пользователя (16 Мбит/с поделить на 20) для Token Ring.

В этой оценке мы не учитывали коллизии в сети Ethernet и поток управляющих кадров в Token Ring, что еще больше снижает среднюю пропускную способность в расчете на пользователя.

Для загрузки 256-цветного изображения с сервера Ethernet может потребоваться более трех секунд (1.575 Мбайт, деленное на 500 Кбит/с). Для загрузки изображения в реальном цвете необходимо втрое больше времени, поскольку размер соответствующего файла втрое больше, чем размер файла с 256-цветным изображением.

Конечно, трех- или девятисекундная задержка - это не очень много, однако, если другие пользователи сети тоже станут работать с изображениями, возможен кумулятивный эффект. Например, пять пользователей одновременно запрашивают визуальную базу данных с целью получить 256-цветные изображения, в результате тому, кто последним нажал Enter или щелкнул мышью на кнопке Windows, придется ждать более 15 секунд. А теперь представим себе последствия такой задержки для кадров, которые должны быть обработаны за определенный промежуток времени; примером подобной ситуации могут служить данные SNA, отправленные на мэйнфрейм, - в этом случае задержка на несколько секунд может привести к окончанию сеанса по счетчику лимита времени.

К счастью, влияние передачи изображений на производительность сетей можно уменьшить несколькими путями. Часть из этих методов, в частности сегментирование сети, использование коммутаторов и перевод серверов на Fast Ethernet, ATM и другие высокоскоростные технологии, могут потребовать существенных вложений. По-видимому, к этим способам следует прибегать, если только другие способы не помогают.

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

Некоторые форматы требуют записи "как есть", пиксел за пикселом; другие же разрешают использование сжимающих алгоритмов, что уменьшает объем данных, подлежащих записи.

КАКОЙ ФОРМАТ ВАМ НУЖЕН?

Для оцифровки и хранения изображений в виде файлов было разработано более 50 стандартных форматов для записи и просмотра. Из этого числа наиболее часто употребляются пять форматов. В таблице 1 приводится их краткое описание. Битовый формат (bit-map format) Microsoft Windows применяется для записи черно-белых и цветных изображений. Поскольку в этом формате не используется сжатие, размеры получаемых файлов весьма велики, однако они могут использоваться для сравнения эффективности других форматов.

Формат графического обмена (Graphical Interchange Format, GIF), разработанный CompuServe, появился одним из первых. Начальная версия формата увидела свет в 1987 году, ее расширение (обеспечивающее совместимость сверху вниз) было предложено в 1989 году.

Поскольку .GIF-формат был одним из первых форматов со сжатием данных, он и сейчас широко применяется в системах электронных досок объявлений. Для сжатия используется 12-битный алгоритм Lempel Ziv Welch (LZW), что обычно уменьшает объем файлов вдвое или втрое по сравнению с объемами, необходимыми для записи информации в битовом формате.

Метод LZW-сжатия - один из построчных полностью обратимых алгоритмов. Применение алгоритма восстановления информации к упакованному файлу дает в точности тот же файл (ту же битовую матрицу), что подвергался сжатию. Такие методы называются методами сжатия без потерь (lossless compression).

Стандартный метод записи и просмотра изображений, предложенный объединенной группой экспертов по фотографии (Joint Photographic Experts Group, JPEG), предполагает использование ряда методик сжатия. Данный метод носит название JPEG, однако соответствующие файлы имеют расширение .JPG вследствие ограничения на длину расширения (не более трех символов), накладываемого в операционных системах DOS и более ранних версиях Windows, чем Windows-95.

Сжатие изображений по методу JPEG предполагает преобразование блоков изображения в реальном цвете размером 8 x 8 пикселов в набор уровней яркости и цветности. К каждому блоку применяется двухмерное дискретное преобразование Фурье, в результате чего получается набор из 64 коэффициентов, представляющих данный блок. Затем эти коэффициенты квантуются с помощью таблиц компонентов яркости и цветности, после чего информация о блоке упаковывается в коэффициенты, соответствующие меньшим частотам. В результате получается представление коэффициентов в виде наборов нулей и единиц, что обеспечивает сжатие данных.

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

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

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

Главное правило при использовании сжатия с потерями напоминает основной принцип поведения в буфете типа "шведский стол" - не зарывайся! Если увлечься экономией объема файла за счет использования компрессии с потерями, то в результате можно получить искаженное изображение.

Файловый формат .PCX применяется в программе редактирования изображений PaintBrush производства компании ZSoft. В формате .PCX используется метод сжатия с ограничением длины записи (run-length compression), в котором последовательности одинаковых битовых фрагментов заменяются на байт-счетчик и байт-шаблон. Сжатие с ограничением длины записи не приводит к потерям: в результате получается точная копия исходного изображения. Кодирование и декодирование файлов формата .PCX осуществляется очень быстро, однако этот метод сжатия менее эффективен, чем метод LZW, используемый для .GIF-формата.

Первая спецификация тэгового формата файла изображения (Tagged Image File Format) была разработана совместно компаниями Aldus (Сиэтл), Microsoft и рядом производителей сканеров в 1986 году. Предполагалось, что данный формат станет стандартом для записи изображений в настольных издательских системах. С тех пор эта спецификация не раз модифицировалась. В результате сегодня TIFF-формат используется и для цифровых видеоизображений; кроме того, количество методов, применяемых для уменьшения размеров получающихся файлов, также возросло.

Формат TIFF поддерживает пять методов сжатия: четыре метода без потерь и один метод с потерями. В число поддерживаемых методов сжатия без потерь входят методы двух типов из третьей группы ITU-T (ранее эта организация носила название Международный консультативный комитет по телеграфии и телефонии, МККТТ (Consultative Committee for International Telephony and Telegraphy, CCITT) и один метод из четвертой группы, применявшийся вначале при передаче факсов и в алгоритме сжатия LZW. В версию 6.0 спецификации TIFF был добавлен метод сжатия с потерями JPEG.

Любая TIFF-совместимая программа подготовки файлов должна поддерживать хотя бы один алгоритм сжатия, в то время как программа чтения - все методы сжатия.

Как и файлы в формате JPEG, расширение TIFF-файлов содержит всего три буквы (.TIF). Формат .TIF поддерживается многими популярными программами, причем во многих из них предлагается широкий набор опций, что ставит перед пользователями проблему выбора.

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

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

ОБЪЕКТ ДЛЯ СРАВНЕНИЯ

После недавней поездки во Флориду автор данной статьи решил проэкспериментировать с одной из своих любимых фотографий, привезенных из отпуска, и, отсканировав фотографию на диск в TIFF-формате без компрессии, получил файл размером 485578 байт.

Чтобы оценить разницу в размерах файлов разных форматов, одно и то же изображение было просканировано в нескольких форматах. В таблице приводятся размеры файлов, получающихся при записи изображения в каждом из пяти форматов. Все форматы, кроме .GIF, применялись для записи изображения в реальных цветах, что требует разрешения 24 бит на пиксел. (Как уже упоминалось, формат .GIF допускает использования не более чем 8 бит на пиксел). При создании .JPG-файла использовалось значение уровня качества по умолчанию (75), что обеспечивает сжатие файла на 90 процентов по сравнению с полноразмерным .TIF-файлом. Однако при выводе изображения на печать наблюдались небольшие искажения.

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

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

ПРОФЕССИОНАЛЬНЫЕ СЕКРЕТЫ

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

При кадрировании обрезаются ненужные части изображения, что очевидным образом ведет к уменьшению размера файла. Относительно уменьшения числа цветов советуем хорошо подумать о том, стоит ли фотографии сотрудников в визуальной базе данных делать в реальном цвете с 24 битами на пиксел; как правило, для служебных фотографий вполне достаточно 256 цветов (8 бит на пиксел) или даже 16 уровней серого (true grey, 4 бита на пиксел).

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

Picture 1(1x1)

Рисунок 1.
Пример использования функции Collage Image Manager программы Collage Complete для определения эффекта изменения цветовой глубины изображения.

На Рис. 1 показан экран Collage Image Manager программы Collage Complete (компания Inner Media, Холлис, шт. Нью-Гемпшир). После открытия .JPG-файла была выбрана опция Change Image Type в меню Transform. Затем был показан список New Type. Поскольку изначально выбраны реальные цвета, в окне Current Type высвечивается надпись 16.7 Мбайт color (24 bit).

При желании можно задать другую цветовую глубину, уменьшив тем самым объем файла. Для этого надо выбрать из списка New Type любую опцию, отличную от текущего выбора (16.7 Мбайт Color).

Третий способ уменьшить объем файла для хранения изображения - снижение разрешения. Для настольных издательских систем и других приложений, где требуется максимальная четкость, следует использовать разрешение 300 dpi на 300 dpi. Для других же приложений достаточно и 100 dpi на 100 dpi или даже 50 dpi на 50 dpi.

Подводя итог, скажем, что часто картинка стоит тысячи слов, однако для ее хранения требуется в 400 раз больше места, чем для полного экрана текста. Используйте изображения, но с умом.


Гилберт Хелд - директор компании 4-Degree Consulting (Макон, шт. Джорджия), специализирующейся на применениях коммуникационных технологий. Он автор более 20 книг по информационным технологиям; с ним можно связаться через Internet по адресу: 235-8086@mcimail.com.

Таблица 1. Что собой представляют различные форматы файлов

Расширение
.BMP Этот формат используется в Microsoft Clipboard и для хранения файлов. Изображения представляются в виде битовой матрицы.
.GIF Graphical Intechange Format разработки CompuServe основан на использовании метода 12-битного преобразования без потерь под названием Lempel Ziv Welch (LZW).
.JPG Объединенная группа экспертов по фотографии (Joint Photographic Experts Group, JPEG) предложила стандартный способ хранения изображений, основанный на удалении деталей изображения при помощи заданного пользователем метода преобразования с потерями.
.PCX В этом формате изображений, используемом в программе Paintbrush от ZSoft, применяется метод сжатия без потерь с ограничением длины строки.
.TIF Формат Tagged Image File Format (TIFF) определяется спецификацией хранения изображений, совместной разработки компаний Aldus (Сиэтл) и Microsoft. Хотя авторские права принадлежат компании Aldus, сама спецификация открыта для ознакомления. TIFF поддерживает пять методов сжатия: один с потерями и четыре без потерь.

Таблица 2. Объемы файлов при различных форматах изображений

Формат изображения Число байт
TIFF без сжатия

485578

PCX: сжатие с ограничением длины строки

299862

TIFF Lempel Ziv Welch (LZW)

221066

GIF LZW

55209

JPEG

38893