Опубликован: 07.08.2007 | Уровень: специалист | Доступ: свободно
Лекция 5:

Алгоритмы работы с изображением

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >
Аннотация: Методы разложения, кодирования и отображения статических и движущихся изображений. Использование несовершенства человеческого зрения при кодировании и отображении. Стандарты MPEG-1 и -2. Интерактивное телевидение.
Ключевые слова: pixel, picture element, обратный, ПО, RGB, отношение, кадр, NTSC, PAL, SECAM, алгоритм, television, standardization committee, sequential, phase, Line, сложение, HDTV, high definition television, цифровое телевидение, аналоговый сигнал, длина, бит, компонент, ISDN, XGA, электронная почта, MIME, PGP, JPEG, DCT, discrete cosine transform, коэффициенты, обратное преобразование, отображение, WWW, сервер, DVD, диск, кодирование, мультимедиа, файл, CLUT, байт, декодирование, значение, CCITT, скорость передачи, RED, Green, blue, информация, CCIR, матрица, CIF, PCM, печать, CMYK, cyan, magenta, black, вектор, точность, MPEG, кодер, прямой, picture, сигнатура, temporal, временная метка, группа, group, ядро, поле, QCIF, C, слово, macroblock, MBA, code block, pattern, CBP, end, block, поток, буферизация, очередь, forward, error correction, кластер, индикатор, объект, Alignment, BIT, BAS, терминал, удаленный терминал, команда, control unit, точка-точка, MTU, интеграция, TCP, UDP, RTP, ISO, CD-ROM, PES, elementary stream, память, транспортная, SNR, MultiView, MVP, digital, storage, media, Command, AND, control, DSM, менеджер ресурсов, session, resource, manager, централизованное управление, interface, bidirectional, связь, мультиплексирование, demand, Интернет, ATM, SDH, fibre channel, 802.17, программа, доступ, почта, запоминающее устройство, redundant, array, время доступа, сетевой интерфейс, программное обеспечение, ADSL, asymmetric, fiber, home, hybrid, coax, расстояние, FTTC, optical network, FTTH, стоимость, HFC, кабель, шифрование, интерфейс, ROM, персональная ЭВМ, backbone, PIM, телевизор, место, MBONE, RAM, MPEG-3, MP3, dual, channel

Основу получения и передачи изображения составляет преобразование его в матрицу пикселей (pixelpicture element — элемент картинки). Такое преобразование обычно делается путем сканирования изображения (построчного и покадрового), показанного на рис. 5.1.

Схема разложения изображения на элементы методом сканирования

Рис. 5.1. Схема разложения изображения на элементы методом сканирования

Обратный ход лучей строчной и кадровой разверток невидимы. В передающих приборах изображение представляется в виде потенциальной картинки, в которой яркость элемента определяется количеством электронов, размещенных в определенной области экрана. Это делается, например, с помощью электронно-лучевой трубки. Начиная с 1980-х годов, для разложения изображения на элементы начали использовать приборы с зарядовой связью ( ПЗС ), в этом случае каждому пикселю ставится в соответствие полупроводниковый конденсатор, заряд которого пропорционален яркости элемента. Если изображение цветное, каждой точке ставится в соответствие 3 величины, пропорциональные яркости изображения по трем базовым цветам (красному, зеленому и голубому — RGB ). Отношение ширины изображения к высоте обычно равно 4:3. В Северной и Южной Америке число строк развертки равно 525, а частота кадров составляет 30/с; в Европе — 625 строк при 25 кадр./с. Только 483 из 525 строк в NTSC и 576 из 625 строк в PAL/SECAM отображаются. Время обратного хода кадровой развертки во многих случаях используется для передачи телетекста (новости, погода, спорт, биржевые цены и пр.). Восприятие телевизионной картинки зависит от времени реакции памяти глазных видеодатчиков. У пожилых людей это время обычно меньше, и по этой причине они воспринимают картинку, передаваемую с частотой кадров 25/с, как мигающую. Чтобы улучшить восприятие без увеличения частоты кадров (это потребовало бы большей полосы передачи), применяется алгоритм, при котором сначала воспроизводятся нечетные строки, а затем четные. Каждый из этих полукадров называется полем, а сам алгоритмчересстрочной разверткой. Первым стандартом цветного телевидения был NTSC (National Television Standards Committee, США). В Европе цветное телевидение появилось позже, что позволило использовать новые более прогрессивные технологии. Так появилась система SECAM (Sequential Couleur Avec Memorire; Франция и Восточная Европа) и PAL (Phase Alternating Line; остальная Европа). Во всех указанных системах нужно было решать проблему совместимости с черно-белым телевидением, для чего приходилось осуществлять линейное сложение RGB -сигналов для получения сигнала яркости (Y). Сигнал яркости передается на частотах, используемых для черно-белого телевидения, а сигналы цветности — на прилегающих более высокочастотных диапазонах.

Последние годы ознаменовались интенсивными разработками систем телевидения высокого разрешения — HDTV (high Definition TeleVision). Эти системы характеризуются удвоением разрешения. И вновь разработки США, Европы и Японии совершенно не совместимы. Различие этих систем в отношении ширины картинки к высоте 16:9 вместо 4:3, что ближе к форме кадра 35-мм пленки, на которую до сих пор снималось кино. Весь мир готовится к переходу на цифровое телевидение. В простейшем варианте цифровое видео — это последовательность кадров, каждый из которых характеризуется прямоугольной матрицей пикселей. Пиксель можно задавать одним битом, тогда мы получим качество, которое получается при передаче цветной фотографии обычным факсом. При описании пикселя 8 битами можно иметь до 256 уровней яркости, что вполне пригодно для черно-белого видео. Для цветного отображения картины используются электронно-лучевые трубки, где по соседству располагаются три окошка маски, по одному для каждого из цветов. В этом вы можете убедиться, вооружившись лупой и рассмотрев через нее экран своего дисплея. Непрерывный аналоговый сигнал строчной развертки в цифровом варианте заменяется последовательностью кодов, длина которой определяется разрешением по горизонтали. В цифровом варианте возможна замена чересстрочной развертки отображением одного и того же кадра четыре раза. К сожалению, для широковещательного телевидения такое решение неприемлемо, так как современные телевизионные приемники не имеют памяти.

Известно, что для корректной передачи цвета требуется 16 миллионов оттенков (8 бит на каждую из трех цветовых компонент). Самое интересное, что человеческий глаз не способен различить такое число оттенков! Таким образом, для описания картинки на экране, содержащей 575 линий по 720 пикселей, требуется 1,240 Мбайта. Для передачи такой информации по B-каналу ISDN, если не используется сжатие данных, потребуется около 2,5 минут. Эта цифра помогает понять актуальность проблемы сжатия графической информации. XGA-стандарт дисплея (1024x768, 24 бита на пиксель при 24 кадр./с) требует потока цифровых данных 472 Мбит/с.

Именно поэтому при передаче чисто текстовой информации электронная почта имеет абсолютное преимущество перед факсом, ведь в случае факса передается отсканированное черно-белое изображение. В перспективе можно ожидать внедрения обязательного сжатия информации при передаче почтовых сообщений с последующей дешифровкой данных принимающей стороной. Первым шагом на этом пути стало внедрение системы MIME. Такое усовершенствование электронной почты сделает ее еще более грозным конкурентом факс-машин. Ведь передача графических образов уже не является монополией факсимильных систем, а возможность шифрования почтовых сообщений (например, в PGP) и электронные подписи делают электронную почту более устойчивой к перехвату.

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

Стандарты для представления и передачи изображения разрабатывает Joint Photographic Expert Group ( JPEG ). Для сжатия графической информации в настоящее время используется дискретное косинусное двухмерное преобразование ( DCTDiscrete Cosine Transform), которое дает субъективно наилучший результат и описывается уравнением

F(u,v)=(1/4)C(u)C(v)\sum_{x=0}^7\sum_{y=0}^7 p(x,y)[\cos\frac{(2x+1)u\pi}{16}][\cos\frac{(2y+1)v\pi}{16}] ( 5.1)

где v — горизонтальная координата графического блока, u — вертикальная, x — вертикальная координата внутри блока, а y — горизонтальная координата внутри блока, C(u), C(v) = 1/\sqrt{2} для u,v = 0 и С(u), С(v) = 1 в противном случае. Два члена в квадратных скобках являются ядрами преобразования, показанными ниже на рис. 5.2, а p(x,y) представляет собой пиксельные данные блока реального рисунка. Начало координат в обоих случаях — в верхнем левом углу. Процесс кодирования сводится к разбиению изображения на блоки 8*8 пикселей и выполнению процедуры двухмерного DCT для каждого из этих блоков. Полученные коэффициенты преобразования дискретизируются, при этом несущественные DCT -коэффициенты отбрасываются. 64 числа, характеризующие уровень сигнала, превращаются в 64 коэффициента преобразования (амплитуды пространственных частот), которые хорошо поддаются процедуре сжатия. Дискретизатор округляет коэффициенты, эта процедура вносит некоторые ошибки, но обратное преобразование на принимающей стороне за счет усреднения частично устраняет вносимые искажения. На практике дискретизатор реализует несколько более сложный алгоритм.

Интуитивно метод DCT базируется на выявлении того, насколько вышестоящий блок отличается от нижестоящего. Для реального представления (сжатия) коэффициентов преобразования здесь также используются коды Хаффмана.

DCT обеспечивает сжатие на уровне 0,5-1,0 бит/пикселей при хорошем качестве изображения. Сжатие требует времени, а максимально приемлемым временем задержки при пересылке изображения является 5 секунд. Если использовать скорость обмена 64 Кбит/с, то степени сжатия 0,01 бита на пиксель будет соответствовать время передачи изображения 0,04 секунды, а сжатию 10 — время передачи 40 с. Порядок передачи оцифрованных значений не совпадает с классической схемой развертки и отображен на рис. 5.2.

Порядок передачи оцифрованных параметров изображения в рамках стандарта  JPEG

Рис. 5.2. Порядок передачи оцифрованных параметров изображения в рамках стандарта JPEG

JPEG имеет четыре режима и много опций. Схема работы алгоритма JPEG с частичной потерей данных показана на рис. 5.3. Коэффициент сжатия данных составляет 20:1 или даже больше.

Преобразование данных в протоколе JPEG

Рис. 5.3. Преобразование данных в протоколе JPEG

Отображение графического образа может выполняться последовательно (примерно так, как мы читаем текст: слева направо и сверху вниз) или с использованием прогрессивного кодирования (сначала передается вся картинка с низким разрешением, затем последовательно четкость изображения доводится до максимальной). Последний метод весьма удобен для систем WWW, где, просмотрев изображение низкого разрешения, можно отменить передачу данных, улучшающих четкость, и тем самым сэкономить время. Хорошо распознаваемое изображение получается при сжатии порядка 0,1 бита на пиксель.

Все системы сжатия требуют наличия двух алгоритмов: один для сжатия данных отправителем, другой — для восстановления получателем. Эти алгоритмы принципиально асимметричны. Во-первых, для многих приложений мультимедийный документ, например фильм, может быть сжат один раз (при записи на сервер или DVD-диск), а декодироваться тысячи раз на стороне клиентов. По этой причине процедура сжатия может быть достаточно сложной, дорогой и долгой. Алгоритм же декодирования должен быть достаточно простым и дешевым. Впрочем, в случае видеоконференций медленное кодирование (сжатие) совершенно неприемлемо. По этой причине алгоритмы сжатия данных в реальном масштабе времени принципиально отличаются от алгоритмов кодирования данных при записи на видео или DVD.

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

Энтропийное кодирование подразумевает сжатие данных без потери. К этому типу относятся, например, алгоритмы Хаффмана и Зива-Лемпеля (статистическое сжатие). Рассмотрим простой случай такого кодирования. Пусть мы имеем кодовую последовательность

314159260000000000000271828182811111111110707193800000002001

Предположим также, что каким-то образом мы добились того, что символ R в последовательности встретиться не может, тогда указанную выше строку можно переписать в виде

31415926R0132718281828R11007071938R072001

Здесь повторения одного и того же символа отображаются символом R, за которым следует код повторяющегося символа и число этих повторений. Понятно, что в такой схеме двойные или тройные повторения какого-либо сокращения строки не вызовут. Еще одним примером энтропийного кодирования является метод CLUT (Color Look Up Table). При RGB -представлении изображения каждый пиксель характеризуется тремя байтами, что соответствует 224 оттенков. На практике такое многообразие встречается не так уж часто. Например, в случае мультипликационного фильма число цветов может не превышать 256. Можно получить коэффициент сжатия почти в три раза путем построения таблицы объемом в 768 байт, куда будут занесены коды используемых 256 цветов. Каждый пиксель в этом варианте характеризуется индексом его RGB -кода в таблице. Данный алгоритм может служить примером, когда кодирование более трудоемко, чем декодирование.

Кодирование на стороне отправителя обычно сопряжено с потерей определенной доли данных. Одним из довольно часто используемых способов кодирования является привлечение дифференциальных методик. Здесь предполагается, что значительных изменений уровня сигнала быть не может. Если это происходит, то данные теряются и неизбежны искажения. Другим примером кодирования этого рода является DCT, описанное выше. Еще одним кодированием отправителя можно считать векторное дискретное преобразование изображения. Такое преобразование подразумевает разбивку изображения на равные прямоугольные области. Формируется также кодовая книга, которая содержит набор прямоугольных блоков изображения, возможно, получаемых из некоторой картинки. Вместо пересылки прямоугольника изображения посылается значение индекса соответствующего элемента из кодовой книги. Если эта книга формируется динамически, то она также должна быть послана получателю. При этом подразумевается, что исходное изображение может быть разложено на элементы, содержащиеся в кодовой таблице. В принципе данный метод представляет собой двухмерную реализацию алгоритма CLUT. В реальной картинке могут встретиться фрагменты, не совпадающие с элементами из кодовой книги. В этом случае может быть выполнена подмена элементом, наиболее похожим на имеющийся фрагмент.

Проблема сжатия и передачи движущегося изображения еще сложнее. Алгоритм кодирования такого изображения описан в рекомендациях CCITT H.261. Он предполагает, что скорость передачи при этом лежит в интервале 40 Кбит/с — 2 Мбит/с. Следует иметь в виду, что видеотелефония и видеоконференции требуют синхронной передачи звука и изображения (стандарт H.221, например, 46,4 Кбит/с для видео и 16 Кбит/с для звука). Нормальный формат телевидения имеет 625 и 525 строк развертки и частоту 25-30 кадров в секунду.

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >
Евгений Виноградов
Евгений Виноградов
Экстернат
Илья Сидоркин
Илья Сидоркин
Как получить диплом?
Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Юрий Мироненко
Юрий Мироненко
Украина, Бровары