Обработка изображений

Иллюстрации

Показать все

Изобретение относится к системам обработки изображений, в частности к способам и системам кодирования и декодирования изображений. Техническим результатом является повышение эффективности обработки, кодирования/декодировния изображений для адаптации в мобильных устройствах с малым объемом и производительностью памяти, достигаемый за счет того, что входное изображение разделяют на несколько блоков (600) изображения, содержащих несколько элементов (610) изображения, далее блоки (600) изображения кодируются в кодированные представления (700) блоков, содержащие цветовое кодовое слово (710), кодовое слово (720) интенсивности и последовательность (730) представлений интенсивности. Цветовое кодовое слово (710) является представлением цветов элементов (610) блока (600) изображения. Кодовое слово (720) интенсивности является представлением набора из нескольких модификаторов интенсивности для модификации интенсивности элементов (610) в блоке (600) изображения, а последовательность (730) представлений включает в себя представление интенсивности для каждого элемента (610) в блоке (600) изображения, при этом последовательность идентифицирует один из модификаторов интенсивности в наборе модификаторов интенсивности. В процессе декодирования кодовые слова (710, 720) цветов и интенсивности и представления (730) интенсивности используются для того, чтобы генерировать декодированное представление элементов (610) в блоке (600) изображения. 9 н. и 46 з.п. ф-лы, 3 табл., 22 ил.

Реферат

Область техники

Настоящее изобретение, в общем, относится к обработке изображений, в частности к способам и системам кодирования и декодирования изображений.

Уровень техники

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

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

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

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

Delp и Mitchell [1] описывают простую схему, называемую усеченным блочным кодированием (BTC), для кодирования изображений. Эта схема кодирует изображения шкалы уровней серого посредством учитывания блока в 4 пиксела x 4 пиксела за раз. Для каждого такого блока генерируется два 8-битных значения шкалы уровней серого, и каждый пиксел в блоке затем использует один бит для того, чтобы индексировать одну из этих шкал уровней серого. Это приводит к скорости сжатия в 2 бита на пиксел (bpp). Тем не менее, BTC страдает от искажений изображения, главным образом, в зонах вокруг краев и в областях малого контраста, содержащих наклонный уровень серого. Более того, края в изображении шкалы уровней серого, обработанном посредством BTC, имеют тенденцию быть неровными.

Простое расширение BTC, называемое сжатием по цветным ячейкам (CCC), представлено Campbell и другими [2]. Вместо использования двух 8-битных значений шкалы уровней серого для каждого блока изображения два 8-битных значения используются в качестве индексов в цветовой палитре. Эта палитра содержит 256 цветов, представляемых посредством 8 бит для каждого компонента R, G и B. 8-битный индекс в таком случае указывает на (24-битный) цвет в палитре. Это дает возможность сжатия изображений при 2 bpp. Тем не менее, это требует поиска памяти в палитре. Помимо этого, палитра ограничена по размеру. Схема CCC также предоставляет большие цветовые "неровности" и плохо кодирует в случае, когда более двух цветов существует в блоке изображений.

В описании к патенту [3], Iourcha и другие, раскрывается схема сжатия текстур, называемая S3TC (сжатие текстур S3) или DXTC (сжатие текстур DirectX), которая может рассматриваться как расширение CCC. Изображение разлагается на ряд блоков изображения по 4 пиксела x 4 пиксела. Каждый такой блок изображения кодируется в последовательности бит по 64 бита, тем самым приводя к скорости сжатия в 4 bpp. 64-битная последовательность содержит два основных цвета или цветовых кодовых слова (16 бит каждое) и 32-битную последовательность из 2-битных индексов, один индекс для каждого пиксела в блоке изображений. В ходе декодирования генерируется цветовая палитра из четырех цветов. Первые два RGB- (красный, зеленый и синий) цвета палитры соответствуют двум основным цветам (кодовым словам). Два дополнительных цвета, расположенных между основными цветами в RGB-пространстве, затем из них интерполируются. Каждый 2-битный индекс в таком случае идентифицирует для каждого пиксела один из четырех цветов палитры для того, чтобы использовать для этого пиксела.

Хотя схема S3TC работает достаточно хорошо для вычислительных терминалов, она плохо адаптирована для мобильных устройств и других тонких клиентов. Такие мобильные устройства в лучшем случае типично имеют шины памяти в 16 или 32 разряда. Таким образом, по меньшей мере, два, а возможно, до четырех обращений к памяти требуется для того, чтобы считать 64-битную сжатую версию блока изображений, если S3TC реализована в мобильном устройстве. Помимо этого, в ходе интерполяции двух дополнительных цветов цветовой палитры выполняется умножение на 1/3 и 2/3, что не является оптимальным для аппаратных средств. Сжатие с помощью S3TC также требует относительно больших временных затрат, по меньшей мере, в мобильном терминале.

Akenine-Moller и Strom [4] разработали вариант S3TC, называемый POOMA, который специально предназначен для мобильных телефонов. В POOMA блок изображений в 3 пиксела x 2 пиксела кодируется в 32 бита, обеспечивая 5,33 bpp. Кодированное 32-битное представление блока изображения адаптировано для шин памяти мобильных телефонов, которые типично в лучшем случае имеют 32 разряда. Таким образом, пиксел может быть подготовлен к просмотру с помощью только одного обращения к памяти в сравнении с двумя обращениями в S3TC. POOMA использует два основных цвета, но один дополнительный цвет, интерполированный между основными цветами, давая цветовую палитру в три цвета.

Основной недостаток POOMA заключается в размере блока 3x2 пиксела. Как результат, вычисление адреса блока для конкретного пиксела или тексела (элемента текстуры) требует деления на 3, что не является оптимальным для архитектуры аппаратных средств. Более того, ширина и высота текстур (изображений) в графике типично всегда является степенью двух, что означает, что блок шириной в 3 является неудобным. Что касается S3TC, кодирование с помощью POOMA требует относительно больших затрат времени, в частности, когда реализовано в мобильном терминале.

Fenny [5] раскрывает схему кодирования изображений, используемую в графической аппаратной платформе MBX для мобильных телефонов. Эта схема использует два изображения низкого разрешения, при этом одно изображение обычно является отфильтрованной по низким частотам версией исходного изображения. В ходе кодирования создается билинейное увеличение (масштабирование с увеличением) этих двух изображений. Каждый пиксел также сохраняет коэффициент плавного перехода между этими двумя масштабированными с увеличением изображениями. 64 бита используются для кодирования каждого блока изображений и описывается скорость в 2 bpp и 4 bpp. Необходима информация из соседних блоков изображения, что усложняет декодирование.

Сущность изобретения

Настоящее изобретение преодолевает эти и другие недостатки структур предшествующего уровня техники.

Общая задача настоящего изобретения - предоставить эффективную обработку изображений.

Другая задача изобретения - предоставить эффективное кодирование изображений и декодирование изображений.

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

Дополнительная задача изобретения - предоставить кодирование и декодирование изображений, адаптированное для трехмерной (3D) графики и изображений.

Эти и другие задачи удовлетворяются изобретением в соответствии с тем, как задано в прилагаемой формуле изобретения.

Вкратце, настоящее изобретение включает в себя обработку изображений в форме кодирования (сжатия) изображения и декодирования (распаковки) закодированного (сжатого) изображения.

Согласно изобретению изображение, которое должно быть закодировано, разлагается на ряд блоков изображения, содержащих несколько элементов изображения (пикселов или элементов текстуры, текселов). Блок изображения предпочтительно содержит восемь элементов изображения и имеет размер в 2mx2n элементов изображения, где m=3-n, n=0, 1, 2, 3. Каждый элемент изображения в блоке отличается цветом, к примеру 12-битным RGB- (красный, зеленый, синий) цветом. Блоки изображения затем кодируются.

В этом блочном кодировании с потерями определяется цветовое кодовое слово для блока изображения. Цветовое кодовое слово является представлением цветов элементов изображения блока изображения. Предпочтительное представление - это среднее значение цветов элементов изображения в блоке, квантованное на 12 бит (4 бита для каждого из трех цветовых компонентов RGB-цвета). Таким образом, одно и то же цветовое кодовое слово (т.е. представление цвета) генерируется для блока изображения, т.е. для всех элементов изображения блока изображения. Далее кодовое слово интенсивности предоставляется для блока изображения. Это кодовое слово интенсивности является представлением набора из нескольких модификаторов интенсивности, которые используются (в ходе декодирования) для модифицирования или модуляции интенсивности элементов изображения в блоке изображения. После того как кодовое слово интенсивности предоставлено, представления интенсивности для элементов изображения в блоке изображения выбираются. Каждое такое представление интенсивности ассоциативно связано с модификатором интенсивности из набора модификаторов интенсивности. Другими словами, представление интенсивности предоставляет возможность идентификации того, какой модификатор интенсивности из набора использовать для конкретного элемента блока изображения.

Получившийся кодированный блок изображения в таком случае содержит цветовое кодовое слово, предпочтительно в 12 слов, кодовое слово интенсивности, предпочтительно 4 бита, и последовательность представлений интенсивности, предпочтительно, 8x2=16 бит. Получившийся размер кодированного блока изображения составляет, таким образом, только 32 бита и получается скорость сжатия в 4 бита на пиксел (элемент изображения). Этот небольшой 32-битный размер хорошо адаптирован для тонких клиентов, таких как мобильные устройства и телефоны, которые типично имеют шины памяти в 16 или 32 разряда. Как результат, только одно или, в худшем случае, два обращения к памяти затем требуются для того, чтобы считать кодированный блок изображения из ячейки памяти.

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

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

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

Выбор модификатора интенсивности и модификация интенсивности предпочтительно выполняется для всех элементов изображения, которые должны быть декодированы в текущем кодированном блоке изображения. Декодирование блока в таком случае предпочтительно повторяется для всех блоков изображения, которые содержат элементы изображения, которые должны быть декодированы. После этого декодированное представление исходного изображения (или его части) может быть сгенерировано на основе декодированных элементов и блоков изображения.

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

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

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

Изобретение предлагает следующие преимущества:

хорошо адаптировано для соответствия зрительной системы человека, поскольку компонент яркости сохраняется лучше, чем компоненты цветности;

обеспечивает высокое качество (пиковое соотношение "сигнал/шум") для различных типов изображений;

аппаратная реализация декодирования чрезвычайно проста;

кодирование выполняется очень быстро, что обеспечивает возможность реализации также в терминалах с низкими тактовыми частотами;

возможно полное кодирование на допустимой скорости на вычислительной машине;

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

Другие преимущества, предлагаемые настоящим изобретением, будут приняты во внимание при прочтении нижеприведенного описания вариантов осуществления изобретения.

Краткое описание чертежей

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

фиг.1 - это схема последовательности операций, иллюстрирующая способ кодирования изображений согласно настоящему изобретению;

фиг.2 иллюстрирует вариант осуществления блока изображения согласно настоящему изобретению;

фиг.3 иллюстрирует другой вариант осуществления блока изображения согласно настоящему изобретению;

фиг.4 иллюстрирует вариант осуществления кодированного представления блока изображения согласно настоящему изобретению;

фиг.5 - это схема последовательности операций, иллюстрирующая этап определения цветового кодового слова, представленный на фиг.1;

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

фиг.7 - это схема последовательности операций, иллюстрирующая способ декодирования изображений согласно настоящему изобретению;

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

фиг.9 - это схема последовательности операций, подробнее иллюстрирующая этап модификации интенсивности на фиг.7;

фиг.10 схематически иллюстрирует пример абонентского терминала с кодером и декодером изображений согласно настоящему изобретению;

фиг.11 - это блок-схема, схематично иллюстрирующая вариант осуществления кодера изображений согласно настоящему изобретению;

фиг.12 - это блок-схема, схематично иллюстрирующая другой вариант осуществления кодера изображений согласно настоящему изобретению;

фиг.13 - это блок-схема, схематично иллюстрирующая вариант осуществления блочного кодера согласно настоящему изобретению;

фиг.14 - это блок-схема, схематично иллюстрирующая другой вариант осуществления блочного кодера согласно настоящему изобретению;

фиг.15 - это блок-схема, подробнее схематически иллюстрирующая квантователь цветов блочного кодера фиг.13 и 14;

фиг.16 - это блок-схема, схематично иллюстрирующая вариант осуществления декодера изображений согласно настоящему изобретению;

фиг.17 - это блок-схема, схематично иллюстрирующая другой вариант осуществления декодера изображений согласно настоящему изобретению;

фиг.18 - это блок-схема, схематично иллюстрирующая вариант осуществления блочного декодера согласно настоящему изобретению;

фиг.19 - это блок-схема аппаратных средств, схематично иллюстрирующая вариант осуществления блочного декодера согласно настоящему изобретению;

фиг.20 - это блок-схема аппаратных средств, подробнее иллюстрирующая вариант осуществления расширителей бит на фиг.19;

фиг.21 - это блок-схема аппаратных средств, подробнее иллюстрирующая вариант осуществления табличного поиска на фиг.19; и

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

Подробное описание изобретения

На чертежах одинаковые символы ссылок используются для соответствующих или аналогичных элементов.

Настоящее изобретение относится к обработке изображений и графики, в частности к кодированию или сжатию изображений и декодированию или распаковке кодированных (сжатых) изображений.

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

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

Настоящее изобретение хорошо адаптировано для использования с трехмерной (3D) графикой, такой как игры, трехмерные карты и сцены, трехмерные сообщения, к примеру анимированные сообщения, хранители экрана, человеко-машинные интерфейсы (MMI) и т.д., но не ограничено этим. Таким образом, изобретение также может быть использовано для кодирования других типов изображений или графики, к примеру одномерных (1D) или двумерных (2D) изображений.

При обработке трехмерной графики типично создается несколько треугольников, и определяются соответствующие координаты экрана углов этих треугольников. На каждый треугольник отображается ("накладывается") изображение (или часть изображения) либо так называемая текстура. Управление текстурами, однако, ресурсоемко для графической системы, как в отношении используемой памяти для хранения текстур, так и в отношении пропускной способности памяти в ходе обращений к памяти, когда текстуры извлекаются из памяти. Это - проблема, в частности, для тонких клиентов, таких как мобильные устройства и телефоны, с ограниченным объемом и пропускной способностью памяти. Как следствие, схема кодирования текстур или изображений часто используется. В этой схеме текстура типично разлагается или делится на ряд блоков изображения, содержащих несколько текселов. Блоки изображения далее кодируются и сохраняются в памяти. Заметим, что размер кодированного (версии) блока изображения меньше, чем соответствующий размер некодированной версии блока изображения.

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

Фиг.1 иллюстрирует способ кодирования (без потерь) изображения согласно настоящему изобретению. На первом этапе S1 изображение разлагается или делится на ряд блоков изображения. Каждый такой блок изображения в таком случае содержит несколько элементов изображения. В предпочтительном варианте осуществления изобретения блок изображения содержит восемь элементов изображения (пикселов или текселов) и имеет размер в 2mx2n элементов изображения, где m=3-n, а n=0, 1, 2, 3. Более предпочтительно, n равно 1 или 2. Фиг.2 и 3 схематически иллюстрируют два примера блока 600 изображения с восемью элементами 610 изображения согласно настоящему изобретению. На фиг.2 высота составляет два элемента 610 изображения, а ширина - четыре элемента 610 изображения, т.е. m=1 и n=2, тогда как для блока 600 изображения на фиг. 3 m=2 и n=1. Возвращаясь к фиг.1, весь блок изображения предпочтительно разлагается на (неперекрывающиеся) блоки изображения на этапе S1. Тем не менее, в некоторых вариантах применения только часть изображения кодируется и, таким образом, только эта часть разлагается на блоки изображения.

Следующие этапы S2-S4 выполняют кодирование или сжатие блоков изображения. Сначала на этапе S2 цветовое кодовое слово определяется для блока изображения. Это цветовое кодовое слово является представлением цветов элементов изображения в блоке изображения. В предпочтительном варианте осуществления цветовое кодовое слово является представлением среднего цвета элементов изображения блока. Цветом может быть RGB- (красный, зеленый, синий) цвет, цвет в пространстве YUV или пространстве YCrCb либо любом другом собственном цветовом пространстве, используемом при обработке и управлении изображениями и графики. Цветовое кодовое слово предпочтительно содержится в том же формате (пространстве) цветов, что и изображение. Тем не менее, в некоторых случаях может быть полезно преобразовать изображение в другой формат цвета, т.е. иметь цветовое кодовое слово в первом цветовом пространстве и исходное изображение - во втором другом цветовом пространстве. Цветовое кодовое слово - это предпочтительно 12-битная последовательность представления цвета. Например, кодовое слово RGB-цвета может содержать 4 бита для красного цветового компонента, 4 бита для зеленого цветового компонента и 4 бита для синего цветового компонента.

Соответственно, кодовое слово YUV-цвета может включать в себя 6 бит, 3 бита и 3 бита соответственно для трех различных компонентов.

Заметим, что одно и то же цветовое кодовое слово (т.е. представление цвета) генерируется для блока изображения, т.е. для всех элементов изображения блока изображения.

Далее предоставляется кодовое слово интенсивности на этапе S3. Это кодовое слово интенсивности является представлением набора из нескольких модификаторов интенсивности, которые используются (в ходе декодирования) для модифицирования интенсивности элементов изображения в блоке изображения.

В предпочтительном варианте осуществления изобретения кодовое слово интенсивности - это индекс интенсивности, предоставляющий возможность идентификации набора модификаторов интенсивности. Этот индекс в таком случае может идентифицировать или указывать на набор в таблице или словаре кодов, содержащем несколько различных наборов модификаторов интенсивности. Каждый набор содержит два или более значения модификаторов интенсивности, предпочтительно, по меньшей мере, четыре значения модификаторов. Помимо этого, значения модификаторов набора предпочтительно являются математически дополнительными значениями, т.е. каждый набор предпочтительно является симметричным. Например, возможным набором модификаторов интенсивности может быть [-a, -b, b, a], где a и b - это положительные целые числа и a>b.

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

Фактические значения модификаторов интенсивности наборов в таблице могут быть найдены посредством начала со случайными значениями и последующей оптимизации этих значений с помощью ряда различных схем и алгоритмов оптимизации, таких как версии LBG-алгоритма (Linde, Buzo и Gray) [6], модельная "закалка" и координатный поиск, которые известны специалистам в данной области техники. Небольшое количество изображений различных типов, к примеру фотографий, текстур типов игр, текста и т.д. может быть использовано в качестве обучающих данных.

Чтобы сделать аппаратную реализацию таблицы интенсивности менее дорогой, модификаторы интенсивности набора могут принудительно быть сделаны симметричными, как описано выше, и/или модификаторы интенсивности данного набора могут быть копией модификаторов интенсивности другого набора, модифицированного на коэффициент, к примеру, два.

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

Таблица 1

НаборКодовое словоЗначение модификатора интенсивности
10000bin-8-228
20001bin-12-4412
30010bin-31-6631
40011bin-34-121234
50100bin-50-8850
60101bin-47-191947
70110bin-80-282880
80111bin-127-4242127
91000bin-16-4416
101001bin-24-8824
111010bin-62-121262
121011bin-68-242468
131100bin-100-1616100
141101bin-94-383894
151110bin-160-5656160
161111bin-254-8484254

В таблице 1 наборы 9-16 модификаторов интенсивности - это копия наборов 1-8, умноженных на коэффициент два.

Если таблица интенсивности содержит, самое большее, 16 различных наборов модификаторов интенсивности, кодовое слово интенсивности - это, предпочтительно, 4-битный индекс (0000bin-1111bin), идентифицирующий один из (16) наборов, к примеру [-8, -2, 2, 8] для кодового слова 0000bin (0000 база 2) таблицы. Благодаря тщательному подбору значений модификаторов в наборах (симметричные наборы и половина наборов - это коэффициент два оставшейся половины) вся таблица 1 может быть восстановлена с помощью только 16 значений модификаторов, а оставшиеся 48 значений могут быть вычислены из них.

Настоящее изобретение, тем не менее, не ограничено использованием таблицы 1, но может использовать другие таблицы с другими наборами и значениями модификаторов интенсивности. Более того, для более или менее 16 наборов в таблице размер кодового слова интенсивности может потребоваться изменить. Например, если таблица содержит два (3-4, 5-8 или более 16) наборов модификаторов интенсивности, размер кодового слова может быть ограничен одним битом (двумя битами, тремя битами или более чем четырьмя битами). Помимо этого, число значений модификаторов интенсивности может отличаться от четырех, к примеру, пять значений может быть использовано на набор, давая пример из [-8, -2, 0, 2, 8]. Значения интенсивности наборов в таблице могут быть определены с помощью нескольких различных типов изображений в качестве обучающих данных, как описано выше. Тем не менее, если только конкретный тип изображения должен быть закодирован, значения модификатора могут быть определены с помощью обучающих данных, соответствующих этому типу изображения, т.е. предоставлением таблицы интенсивности, выделенной для конкретного типа изображения. Также может быть возможно иметь таблицу интенсивности со значениями модификаторов интенсивности, адаптированными для конкретного изображения. В этих случаях, т.е. таблица, выделенная для изображения или типа изображения, может быть необходимо включить значения модификаторов интенсивности в сжатый файл кодированных блоков изображения или иным образом связать их с ними.

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

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

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

В случае набора модификаторов интенсивности, содержащего четыре значения модификаторов, такие как -8, -2, 2, 8, представлением интенсивности может быть 2-битная последовательность, идентифицирующая одно из этих четырех значений, к примеру, 11bin соответствует -8, 10bin соответствует to -2, 00bin соответствует 2, а 01bin соответствует 8. Если более четырех значений модификаторов интенсивности используются на набор, то более двух битов необходимо для каждого элемента интенсивности, чтобы идентифицировать корректный модификатор.

Этап S4 предпочтительно повторяется для всех элементов изображения в блоке изображения (схематически проиллюстрированном линией 1). Результат кодирования этапов S2-S4 - это кодированный блок изображений или, более точно, (сжатое) представление кодированного блока изображения. Такое представление 700 кодированного блока проиллюстрировано на фиг.4. Представление 700 (кодированный блок изображений) содержит цветовое кодовое слово 710, кодовое слово 720 интенсивности и последовательность или растр 730 представлений интенсивности (предпочтительно одно представление интенсивности для каждого элемента изображения в блоке). Заметим, что взаимный порядок цветового кодового слова 710, кодового слова 720 интенсивности и последовательности 730 представления интенсивности кодированного блока 700 изображения может отличаться от проиллюстрированного на чертеже.

Если блок изображения содержит восемь элементов изображения (см., к примеру, фиг.2 и 3), и каждое представление интенсивности составляет 2 бита, размер последовательности 730 составляет 16 бит. Более того, предположим, что соответствующие размеры цветовых кодовых слов и кодовых слов интенсивности составляют 12 и 4 бита соответственно. Общий размер кодированного представления 700 блока изображения составляет в таком случае 32 бита, и получается скорость сжатия в 4 бита на пиксел (элемент изображения) (bpp). Этот небольшой (32 бита) размер представления 700 хорошо адаптирован для тонких клиентов, таких как мобильные устройства и телефоны, которые типично имеют шины памяти в 16 или 32 бита. Как результат, только одно или, в худшем случае, два обращения к памяти затем требуются для того, чтобы считать кодированное представление 700.

Возвращаясь к фиг.1, этапы S2-S4 предпочтительно повторяются для всех блоков изображения, предусмотренных в ходе разложения этапа S1 (схематически проиллюстрированного линией 2). В таком случае результатом является последовательность или файл кодированных блоков изображения. Результирующие кодированные блоки изображения (кодированные представления блоков изображения) могут быть упорядочены в файле слева направо и снизу вверх в том же порядке, в котором они разбиты при разложении блока на этапе S1. На этом способ завершается.

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

Фиг.5 иллюстрирует вариант осуществления этапа S2 с фиг.1. На этапе S10 определяется средний цвет элементов изображения в блоке изображения. Далее предполагается, что цвет пиксела или тексела (элемента изображения) изображения представлен посредством 24 бит RGB-цвета, т.е. 8 бит красного компонента, 8 бит зеленого компонента и 8 бит синего компонента. Тем не менее, изобретение не ограничено этим конк