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

Изобретение относится к обработке изображений и, в частности, к системам кодирования и декодирования изображений. Техническим результатом является обеспечение эффективной обработки блоков изображения с медленно изменяющимися переходами между двумя или более цветами. Указанный технический результат достигается тем, что входное изображение разбивают на несколько блоков (600) изображения, содержащих множество элементов (610) изображения. Блоки (600) изображения кодируют, получая кодированные представления (700) блоков, при кодировании элементам (610) изображения в блоке (600) присваивают цветовые веса. Определяют по меньшей мере два цветовых кодовых слова (710, 720, 730, 740) по меньшей мере частично на основе цветовых весов. Эти кодовые слова (710, 720, 730, 740) являются представлениями по меньшей мере двух цветовых значений. Исходные цвета элементов (610) изображения представляют цветовыми представлениями, получаемыми из комбинаций по меньшей мере из двух цветовых значений, взвешенных с помощью присвоенных цветовых весов. 10 н. и 29 з.п. ф-лы, 30 ил., 8 табл.

 

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

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

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

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

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

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

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

Delp и Mitchell [1] разработали простую схему для сжатия изображений под названием «кодирование с отбрасыванием избыточных блоков (BTC)». Несмотря на то что при ее реализации сжатие текстур как таковое не происходит, на их идеях основан ряд других схем, описанных в этом разделе. Их схема подразумевает сжатие полутоновых изображений путем рассмотрения за один раз блока размером 4×4 пикселя. Для указанного блока запоминается два 8-битовых значения шкалы уровней серого, а затем каждый пиксел в блоке использует один бит для указания на одну из этих шкал уровней серого. В результате потребуется 2 бита на пиксел (бит/пиксел).

Campbell и др. [2] предложили простое расширение кодирования BTC под названием «сжатие на основе триад экрана» (ССС). Вместо использования 8-битовых значений шкалы уровней серого 8-битовое значение используется в качестве индекса в цветовой палитре. Это позволяет обеспечить сжатие окрашенных текстур при 2 бит/пиксел. Однако потребуется поиск в памяти в палитре, что ограничивает размер палитры.

Наиболее популярной схемой в настоящее время, видимо, является способ сжатия текстур S3TC, предложенный Iourcha и др. [3]. Этот способ используется в технологии DirectX, а также имеются его расширения в технологии OpenGL. Эту работу можно рассматривать как дальнейшее расширение способа CCC. Размер блока для способа S3TC составляет 3х4 пикселя, которые сжимают в 64 бита. Запоминают два базовых цвета в виде 16 бит каждый, а каждый пиксел запоминает двухразрядный индекс в локальной цветовой палитре, которая состоит из двух базовых цветов и двух дополнительных цветов между базовыми цветами. Это означает, что все цвета лежат на одной линии в пространстве RGB (красный, зеленый, синий). Степень сжатия в способе S3TC составляет 4 бит/пиксел. Одним из недостатков способа S3TC является то, что на один блок можно использовать только четыре цвета.

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

Ström и Alkenine-Möller разработали способ сжатия текстур PACMAN. В нем кодируется блок размером 2×4 текселя (пикселя) с образованием 32 бит. На один блок используется только один цвет, но в каждом пикселе может быть изменена интенсивность этого цвета. Основной целью способа PACMAN является минимизация сложности распаковки. В способе PACMAN квантование цветности затруднено, что может привести к искажениям в блоках.

Для усовершенствования способа PACMAN Ström и Alkenine-Möller разработали усовершенствованный способ сжатия под названием «сжатие текстур iPACMAN/Ericsson (ETC) [6,7]». В способе iPACMAN/ETC два блока изображения 2х4 кодируются вместе, что позволяет осуществлять дифференциальное кодирование цветов. Это открывает возможность обеспечения более частого квантования цветов, что приводит к повышению качества примерно на 3 дБ. Таким образом, этот способ сжатия превосходит способ S3TC в плане качества и в настоящее время является наилучшим по качеству из общеизвестных способов/систем сжатия текстур.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

фиг.10 - блок-схема дополнительных шагов способа кодирования/сжатия изображения по фиг.1 согласно многорежимной реализации настоящего изобретения;

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

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

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

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

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

фиг.с 14 по 17 - иллюстрации сжатых представлений блока изображения в соответствии с многорежимной реализацией;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

При обработке 3D графики, как правило, создают несколько треугольников и определяют соответствующие экранные координаты углов этих треугольников. На каждый треугольник отображается («склеивается») изображение (или часть изображения), или так называемая «текстура». Однако управление текстурами требует больших затрат ресурсов графической системы как в плане используемой памяти для запоминания текстур, так и в плане пропускной способности памяти во время обращений к ней, когда текстуры извлекают из памяти. Это представляет проблему, особенно для слабых клиентов, таких как мобильные блоки и телефоны с ограниченной емкостью и пропускной способностью памяти. В этой связи часто используют схему кодирования текстуры или изображения. В указанной схеме текстуру, как правило, разбивают или разделяют на несколько блоков изображения, содержащих множество текселей. Затем блоки изображения кодируют и запоминают в памяти. Заметим, что размер кодированного блока изображения (версии блока изображения) меньше, чем соответствующий размер не кодированной версии блока изображения. В настоящем изобретении выражение «элемент изображения» относится к элементу в блоке изображения или кодированном представлении блока изображения. В свою очередь этот блок изображения соответствует части изображения или текстуре. Таким образом, согласно изобретению элемент изображения может представлять собой тексел (элемент текстуры) (1D, 2D, 3D) текстуры, пиксел (1D или 2D) изображения или воксел (объемный элемент) 3D изображения. В общем случае элемент изображения характеризуется определенными свойствами элемента изображения, такими как цветовое значение. Кроме того, в последующем описании термин «изображение» используется для обозначения любого 1D, 2D или 3D изображения или текстуры, которую можно кодировать и декодировать средствами настоящего изобретения, в том числе, но не только: фотографии, текстуры игрового типа, текст, рисунки, изображения и текстуры большого динамического диапазона и т.д.

Настоящее изобретение обеспечивает обработку изображений, которая, в частности, подходит для сжатия и распаковки изображений и блоков изображений с медленно изменяющимися переходами по меньшей мере между двумя цветами. В известных схемах, обсужденных в разделе «Уровень техники», в цветовом пространстве с помощью цветовых кодовых слов (S3TC) или цветового кодового слова (кодовых слов) и кодового слова (кодовых слов) модификатора интенсивности/цвета (PACKMAN и iPACKMAN/ETC) формируют цветовую палитру, содержащую, как правило, четыре цветовых значения. Тогда каждый элемент изображения будет иметь цветовой индекс, связанный с одним из цветов в цветовой палитре. При использовании указанного решения обычно трудно обрабатывать элементы изображения с медленно изменяющимися цветовыми переходами.

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

Сжатие

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

На следующих шагах S2 и S4 выполняется кодирование, или сжатие блоков изображения. Сначала на шаге S2 по меньшей мере одному поднабору элементов изображения в блоке изображения присваивают цветовые веса, как схематически показано линией L1. Цветовые веса предпочтительно определяют на основе относительного положения элементов изображения по меньшей мере одного поднабора, имеющегося в блоке изображения. Эти цветовые веса будут использованы во время распаковки для взвешивания различных цветов, определенных для данного блока изображения, для создания цветовых представлений, используемых для представления исходных («истинных») цветов элементов изображения. Предположим, например, что для текущего блока изображения определено два цвета (C0 и C1). Тогда цветовыми весами, присваиваемыми на шаге S2, могут быть и для элемента изображения, имеющего положение (x,y) в блоке изображения. Во время сжатия представлением этого элемента изображения будет то есть взвешенная комбинация, в данном случае линейная комбинация из двух цветов.

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

Цветовые веса предпочтительно присваивать для каждого элемента изображения по меньшей мере в одном поднаборе элементов изображения в блоках, который представляется линией L1. В первом варианте блок изображения содержит N элементов изображения, где N - целое число, большее единицы, а поднабор содержит M элементов изображения, где 0≤М<N. Это означает, что остальным N-M элементов (элемента) изображения цветовые веса не присваивают. В этом случае исходный цвет этого (этих) оставшегося элемента (элементов) изображения представляют одним из цветовых кодовых слов, подлежащих определению для данного блока изображения. Однако это в основном соответствует установке всех составляющих элементов одного из векторов цветовых весов в 1 и установке всех составляющих элементов другого вектора (векторов) цветовых весов в 0.

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

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

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

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

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

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

Шаги с S2 по S4 предпочтительно повторять для всех блоков изображения, обеспеченных во время разбиения на шаге S1 (схематически показано линией L2). Тогда в результате получим последовательность или файл кодированных блоков изображения. Кодированные блоки изображения (кодированные представления блоков изображения) могут быть упорядочены в файле слева направо и сверху вниз в том же порядке, в котором они были разбиты при разбиении блока на шаге S1. Затем выполнение способа заканчивается.

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

На фиг.3 представлена схематическая иллюстрация блока 600 изображения в изображении или текстуре, подлежащей сжатию согласно настоящему изобретению. При этом первом варианте реализации настоящего изобретения для блока 600 изображения необходимо определить четыре цветовых кодовых слова. Каждое из этих четырех кодовых слов представляет соответствующее цветовое значение, красные компоненты которого обозначены как R0, R1, R2 и R3. Этот вариант по существу позволяет осуществлять билинейное увеличение масштаба, но в том случае, когда все цвета, необходимые для билинейного увеличения масштаба, запомнены в виде сжатого представления для блока изображения. В этом варианте элементы 610 изображения, формирующие углы блока 600 изображения, имеют цветовые веса только из единиц и нулей. В таблице 1 показаны цветовые веса, присвоенные элементам 610 изображения в блоке согласно этому варианту настоящего изобретения.

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

Таблица 2

Цветовые комбинации

Синие и зеленые компоненты предпочтительно обрабатывать тем же путем, то есть по существу путем замены Rz на Bz или Gz, где z=0, 1, 2, 3.

Как можно видеть из таблицы 2, красные (зеленые и синие) цветовые компоненты двенадцати элементов изображения можно получить в виде взвешенных линейных комбинаций по меньшей мере из цветовых значений (R0, R1, R2, R3), представленных четырьмя цветовыми кодовыми словами. Однако каждую из красных (зеленых и синих) цветовых компонент четырех угловых элементов изображения получают непосредственно из одного из цветовых значений.

В этом варианте при перемещении вдоль первой строки (от R0 к R1), третьей строки (от R2 к R3), первого столбца (от R0 к R2) и третьего столбца (от R1 к R3) в таблице 2 красная цветовая компонента цветовых представлений элементов изображения в этих строках и столбцах изменяется монотонно (пока два конечных значения не равны). Например, если R1>R0, то значение красной компоненты монотонно возрастает вдоль первой строки, то есть при перемещении от элемента (0,0) изображения к элементу (0,3) изображения. Соответственно, если R2<R0, то значение красной компоненты монотонно уменьшается вдоль первого столбца (от элемента (0,0) изображения к элементу (3,0) изображения). Если для зеленой и/или синей цветовых компонент используют те же самые цветовые веса, они также будут монотонно изменяться для указанных строк и столбцов. В настоящем изобретении строку или столбец называют «одномерным массивом элементов изображения». Это означает, что по меньшей мере одна цветовая компонента цветовых представлений монотонно изменяется вдоль по меньшей мере одного одномерного массива элементов изображения. Это позволяет представить плавные переходы цветов, а следовательно, блоки изображения, имеющие указанные цветовые распределения, с помощью настоящего изобретения при высоком качестве изображения.

На фиг.4 показано сжатое представление 700 блока изображения, показанного на фиг.3, который был сжат согласно одному варианту настоящего изобретения. Это представление 700 (кодированный или сжатый блок изображения) содержит первое цветовое кодовое слово 710, второе цветовое кодовое слово 720, третье цветовое кодовое слово 730 и четвертое цветовое кодовое слово 740. Заметим, что взаимный порядок расположения кодовых слов 710, 720, 730, 740 кодированного блока 700 изображения может отличаться от показанного на этом чертеже.

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

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

Если для сжатого блока 700 изображения присвоено 64 бита, то на каждое кодовое слово 710, 720, 730, 740 можно использовать 16 бит, а каждое цветовое кодовое слово 710, 720, 730, 740 может быть представлено в форме RGB565. Больше бит предпочтительно тратится на зеленые компоненты, поскольку зеленая компонента вносит несоразмерный вклад в восприятие интенсивности.

Однако настоящее изобретение, как будет подробно обсуждено ниже, предпочтительно используется в качестве вспомогательного режима для схемы iPACKMAN/ETC, упомянутой ранее. В указанном случае для кодирования четырех цветовых кодовых слов 710, 720, 730, 740 доступно только 57 бит (остальные семь бит будут использованы в качестве индекса режима для различения этого вспомогательного режима, режима iPACKMAN/ETC и других вспомогательных режимов). Для кодирования с использованием только 57 бит необходимо иметь четыре цветовых кодовых слова 710, 720, 730, 740 с тремя компонентами каждое, и возможное решение могло бы использовать формат RGB 554, что в результате дает всего 56 бит. Оставшийся бит можно использовать в качестве весового кодового слова или усиливающего кодового слова цветовых компонент одного из кодовых слов 710, 720, 730, 740.

Вариант, представленный на фиг.3 и 4 и в таблице 1, имеет недостаток, состоящий в том, что цветовая разрешающая способность, получаемая для цветовых кодовых слов, 710, 720, 730, 740, довольна низка, особенно при использовании настоящего изобретения в качестве дополнения к схеме iPACKMAN/ETC, а каждое кодовое слово 710, 720, 730, 740 имеет формат RGB 554. В частности, в этом случае низкое разрешение синей компоненты приведет к возникновению искажений.

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

Цветовые представления и цветовые веса элементов 610 изображения в блоке 600 изображения можно вычислить с использованием следующих формул:

Это означает, что цветовые представления элементов 610, находящиеся в положениях (0,0), (0,3) и (3,0), можно непосредственно выбрать из цветовых значений, представленных тремя кодовыми словами, что для этого иллюстративного примера в результате дает (R0, G0, B0) для элемента (0,0) изображения, (RH, GH, BH) для элемента (3,0) изображения и (RV, GV, BV) для элемента (0,3) изображения. Это соответствует следующим цветовым весам для указанных элементов изображения и .

Цветовые веса, присвоенные блокам изображения, сжатым согласно этому варианту настоящего изобретения, распределяются по элементам изображения согласно приведенной ниже таблице 3.

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

Таблица 4

Цветовые представления

Синие и зеленые компоненты предпочтительно обрабатывать таким же образом, то есть по существу путем замены Rz на Bz или Cz, где z=0, 1, 2, 3.

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

На фиг.6 показано сжатое представление 700 блока изображения, показанного на фиг.5, которое было сжато согласно данному варианту настоящего изобретения. Представление 700 (кодированный или сжатый блок изображения) содержит первое цветовое кодовое слово 710, второе цветовое кодовое слово 720 и третье цветовое кодовое слово 730. Заметим, что взаимный порядок кодовых слов 710, 720, 730 кодированного блока 700 изображения может отличаться от показанного на этом чертеже.

Теперь цветовые кодовые слова 710, 720, 730 могут быть представлены посредством цветового квантования RGB776, что дает суммарный размер для трех кодовых слов, равный 57 бит. Это означает, что данный вариант можно успешно использовать в качестве дополнительного и вспомогательного режима для технологии iPACKMAN/ETC, описанной выше. Квантование RGB676 позволяет получить более высокое разрешение по сравнению с предыдущим (RGB554) вариантом. В альтернативном варианте, если настоящее изобретение используют в качестве автономной схемы, то цветовые кодовые слова 710, 720, 730 могут быть представлены в виде RGB777, а оставшийся бит можно использовать, например, как кодовое слово веса или для усиления цветовой компоненты одного из кодовых слов 710, 720, 730.

Вместо использования трех цветовых кодовых слов 710, 720, 730, позволяющих вычислить цветовое значение непосредственно из кодового слова 710, 720, 730, можно использовать так называемые «дифференциальные» кодовые слова. В указанном случае первое цветовое кодовое слово 710 можно определить, как было описано выше, то есть как содержащее три квантованные цветовые компоненты, например, в форме RGB777. Затем непосредственно из этого первого кодового слова 710 путем расширения квантованных цветовых компонент можно получить первое цветовое значение (R0, G0, B0). Два других кодовых слова 720, 730 кодируют вместо этого расстояние в цветовом пространстве от первого цветового значения. Таким образом, два кодовых слова 720, 730 могут представлять собой dRHdGHdBH666 и dRvdGvdBv666, где каждая из компонент dWz, W = R, G, B и z = H, V представляет число в интервале [-32, 31]. Затем получают два других цветовых значения в соответствии со следующими формулами:

RH/V=R0+dRH/V

GH/V=G0+dGH/V

BH/V=B0+dBH/V

Варианты, описанные в связи с фиг.3 и 5, однако, имеют ряд недостатков. Во-первых, наличие нескольких присвоенных цветовых весов влечет за собой использование деления на три или степеней трех (9=32), что связано с гораздо большими затратами при реализации распаковки аппаратными средствами. Другой недостаток этих конфигураций и такого присваивания цветовых весов состоит в том, что трудно создать линейно изменяющийся цвет с постоянным градиентом. Например, если RH, GH, BH в одном блоке установлены равными R0, G0, B0 в предыдущем блоке, то будет два элемента изображения, имеющих почти одинаковое цветовое представление с нарушением градиента. Таким образом, хотя плавный цветовой переход может быть представлен с высоким качеством внутри данного блока, труднее кодировать указанный плавный цветовой переход по соседним блокам изображения.

На фиг.7 показан вариант настоящего изобретения, где присваивание цветовых весов выполняется путем устранения двух вышеупомянутых недостатков. В этом варианте цветовые веса предпочтительно выбирают таким образом, что только один элемент 610 изображения в блоке 600 имеет цветовые веса, составляющие 1, а остальные 0. Это означает, что этот один элемент 610 изображения, предпочтительно угловой элемент изображения, имеет свой исходный цвет, представленный цифровым значением, полученным только из одного из трех цветовых кодовых слов.

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

Цветовые веса, присвоенные блокам изображения, сжатым согласно данному варианту настоящего изобретения, распределяются между элементами изображения согласно таблице 5, приведенной ниже.

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

Таблица 6

Цветовые представления

Синие и зеленые компоненты предпочтительно обрабатываются тем же самым способом, то есть по существу путем замены Rz на Bz или Gz, где z=0, 1, 2, 3.

Также в этом случае цветовые компоненты монотонно возрастают или убывают при перемещении вдоль первой строки и первого столбца в таблице 6.

Сжатое представление блока для этого варианта показано на фиг.6, причем обсуждение, касающееся этого чертежа, также применимо к данному варианту.

В этом варианте цветовые веса включают деление на два или четыре, что очень просто реализовать аппаратными средствами. Вдобавок, данный вариант позволяет обеспечить непрерывность цветового градиента (цветовых переходов) в границах блока. Это возможно путем установки RH (или RV) в одном блоке равным R0 предыдущего блока, что дает высококачественный градиент. Дополнительное преимущество этого варианта заключается в том, что точность цветовых представлений, которые можно получить из цветовых кодовых слов и цветовых весов, дополнительно возрастает, поскольку цвет с каждым элементом изображения можно изменять с шагом 1/4 вместо шага 1/3.

Дополнительные варианты, основанные на той же идее, что и на фиг.7, можно получить путем поворота координат R0, RH и RV на четверть, половину или три четверти оборота соответственно.

В более общем контексте цветовые веса, присваиваемые элементам изображения согласно настоящему изобретению, могут быть выбраны исходя из следующих вариантов их рассмотрения: все цветовые значения, представленные цветовыми кодовыми словами, находятся внутри блока изображения (смотри фиг.3 и 5); некоторые цветовые значения находятся внутри блока изображения, а некоторые вне этого блока (смотри фиг.7); либо все цветовые значения находятся вне данного блока. Заметим, что даже в случаях, когда считается, что цветовые значения находятся вне блока изображения, соответствующие цветовые кодовые слова образуют часть кодированного представления этого блока. Относительное положение цветовых значений по отношению к блоку определяет (планарное) уравнение, используемое для получения цветовых весов для элементов изображения. В наиболее предпочтительном варианте настоящего изобретения все цветовые значения не расположены на одной и той же линии (столбец/строка) в блоке.

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

Тогда формулы для плоскости будут выглядеть следующим образом:

R(x,y)=2x(R H -R 0 )-2y(R V -R 0 )+R 0 -3R H +3R V

G(x,y)=2x(G H -G 0 )-2y(G V -G 0 )+G 0 -3G H +3G V

B(x,y)=2x(B H -B 0 )-2y(B V -B 0 )+B 0 -3B H +3B V

а цветовые веса могут быть представлены следующими уравнениями:

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

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

На фиг.9 показана блок-схема, более подробно иллюстрирующая вариант реализации шага определения по фиг.1. Способ продолжается с шага S2 по фиг.1. На шаге S10 выбираются начальные цветовые кодовые слова-кандидаты, которые являются представлениями цветовых значений-кандидатов. Эти начальные кодовые слова-кандидаты могут быть выбраны случайным образом или представлять собой минимально возможные или максимально возможные цветовые кодовые слова-кандидаты, такие как последовательность из 19 нулей (минимально возможное кодовое слово, представляющее цветовое значение (0, 0, 0)) или последовательность из 19 единиц (максимально возможное кодовое слово, представляющее цветовое значение (255, 255, 255)). Три цветовые компоненты R, G, B могут быть определены по отдельности, то есть по существу путем выполнения трех параллельных или последовательных процессов. Таким образом, ниже обсуждается только одна цветовая компонента.

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

В вышеприведенной формуле для ошибки представляют красную компоненту из трех цветовых значений-кандидатов, представленных тремя выбранными компонентами цветовых кодовых слов-кандидатов, а является исходным красным цветом элемента изображения в положении (x,y) в блоке. В указанной формуле цветовые веса и исходный цвет являются специфичными для элемента изображения, в то время как цветовые значения-кандидаты являются одинаковыми для данного варианта выбора компонент кодовых слов-кандидатов для всех элементов изображения в блоке. Затем вычисленное значение ошибки запоминается на шаге S12 в памяти ошибок вместе с уведомлением о выбранных цветовых кодовых словах-кандидатах.

Шаги с S10 по S12 повторяются для разных вариантов выбора компонент цветовых кодовых слов-кандидатов, и, если оцененное значение ошибки меньше значения ошибки, запомненного в памяти ошибок, новое значение ошибки заменяет запомненное значение, и компоненты кодовых слов-кандидатов, использованные для вычисления этого нового меньшего значения ошибки, аналогичным образом заменяют ранее запомненные компоненты кодовых слов-кандидатов.

Эта процедура выполняется для всех возможных 18 бит для красных компонент-кандидатов, в результате чего получается 218 шагов. Вдобавок процедура выполняется для зеленой и синей цветовых компонент, что в сумме составляет 218+219+218 операций. На шаге S13 выбирают соответствующие красную/зеленую/синюю кодовые компоненты, что дает минимальные значения ошибки, и используют их в качестве цветовых кодовых слов согласно настоящему изобретению. Затем способ продолжается на шаге S4 по фиг.1.

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

Это выражение также может быть записано в виде , где - вектор, содержащий 16 исходных красных компонент элементов изображения в блоке, А - матрица, содержащая 3×16=48 цветовых весов, присвоенных элементам изображения, а - вектор, содержащий красные компоненты, подлежащие определению и квантованию с образованием красных компонент цветовых кодовых слов. Таким образом, должен быть определен вектор . Это может быть выполнено согласно уравнению, приведенному ниже:

Аналогичная процедура также выполняется для зеленой и синей цветовых компонент.

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

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

На фиг.10 схематически показан указанный вариант реализации. Способ продолжается с шага S1 по фиг.1. Затем предоставленный блок изображения, подлежащий сжатию, обрабатывается согласно различным схемам, как правило, параллельно. Другими словами, блок изображения сжимается на шаге S20 в соответствии с первым режимом сжатия для создания первого сжатого представления блока. На следующем шаге S24 оценивается значение ошибки, представляющее блок изображения этим первым сжатым блоком. Вдобавок, этот же блок изображения дополнительно сжимается в соответствии по меньшей мере с одним другим режимом сжатия (на фиг.10 - три других режима). Таким образом, для сжатия блока на шагах S21, S22 и S23 для создания второго, третьего и четвертого сжатого представления блока соответственно используют второй, третий и четвертый режимы сжатия. На шагах S25, S26 и S27 оценивают значения ошибки, представляющие блок вторым, третьим или четвертым сжатым представлением блока. Теперь в наличии имеются четыре (или в альтернативных вариантах - два, три или более четырех) различных сжатых представления. На следующем шаге S28 выбирают одно из этих четырех сжатых представлений и используют его в качестве сжатой версии текущего блока. Этот шаг выбора выполняют на основе значений ошибок, вычисленных на шагах S24-S27. Таким образом, на шаге S28 выбирают сжатое представление, связанное с минимальным значением ошибки. На следующем шаге S29 обеспечивается индекс режима, представляющий режим сжатия, который используют для создания выбранного сжатого представления, причем этот индекс режима включается в сжатый блок изображения, то есть в битовую последовательность, представляющую блок изображения. Эту процедуру предпочтительно выполнять для каждого блока изображения, подлежащего сжатию. Затем способ заканчивается.

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

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

Данный вариант возможен, поскольку, как обсуждается ниже, для данных типов блоков различные доступные режимы сжатия являются особенно подходящими и эффективными. Например, схема по настоящему изобретению эффективна при обработке блоков с медленно изменяющимися цветовыми переходами. Схема iPACKMAN/ETC очень эффективна для обработки блоков изображения, где цвета элементов изображения имеют весьма схожую цветность, но отличаются по яркости. Третьей возможной схемой может быть схема THUMB [8], которую также можно использовать как вспомогательный режим для схемы iPACKMAN/ETC. Эта схема имеет два режима или так называемые «шаблоны», которые адаптированы для управления блоками изображения, имеющими две различные цветности (цвета).

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

На фиг.10 первый шаг S20 сжатия может представлять шаги с S2 по S4 на фиг.1, то есть присваивание цветовых весов, определение цветовых кодовых слов и представление исходных цветов элементов изображения.

На фиг.11 представлена блок-схема, иллюстрирующая различные варианты других шагов S21, S22 и S23 сжатия по фиг.10 согласно схемам iPACKMAN/ETC и THUMB.

Способ начинается со схемы THUMB (продолжаясь с шага S1 по фиг.1). На следующем шаге S30 определяют первое и второе цветовое кодовое слово. Первое цветовое кодовое слово является представлением первого цветового значения, а второе цветовое кодовое слово аналогично представлению второго цветового значения. Первое и второе цветовые значения располагаются на первой линии в цветовом пространстве, предпочтительно пространстве RGB. Эта первая линия также имеет первое направление. На следующем шаге S31 обеспечивается кодовое слово цветового модификатора. Это кодовое слово модификатора является представлением по меньшей мере одного цветового модификатора, применимого для модификации первого цветового значения по второй линии, имеющей второе направление в цветовом пространстве. Модифицируя первое цветовое значение с помощью по меньшей мере одного цветового модификатора, получают множество цветовых представлений вдоль второй линии. В этом варианте предпочтительно, чтобы второе направление отличалось от первого направления, то есть первая линия и вторая линия предпочтительно не должны быть параллельными.

Цветовой индекс связан с цветовым представлением, выбранным на шаге S32 из: i) множества цветовых представлений вдоль второй линии и ii) по меньшей мере одного цветового представления на основе второго цветового значения. Этот шаг выбора индекса предпочтительно выполнять для каждого элемента изображения в блоке, как схематически показано линией L4.

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

Вышеописанная схема THUMB в свою очередь может реально выполняться в соответствии с двумя режимами или шаблонами в зависимости от того, как распределены в цветовом пространстве цвета элементов изображений. Это означает, что схема THUMB охватывает два из четырех различных режимов на фиг.10. На фиг.12-14В более подробно раскрыто использование схемы THUMB. На фиг.12А исходные цвета (16) элементов изображения в блоке, подлежащем сжатию, изображены в цветовом пространстве. Из этой фигуры видно, что эти цвета расположены в двух кластерах 2, 4, каждый из которых содержит множество цветов. Указанное цветовое распределение преимущественно обрабатывается с помощью H-шаблона/режима THUMB, показанного на фиг.12В.

На фиг.12В первое цветовое значение 10, представленное первым цветовым кодовым словом, и второе цветовое значение 20, представленное вторым цветовым кодовым словом, расположены на первой линии 40, имеющей первое направление 45. Два цветовых представления 30, 32 можно получить из первого цветового значения 10 с использованием цветового модификатора, представленного кодовым словом цветового модификатора. Эти два цветовых представления 30, 32 и первое цветовое значение 10 расположены на второй линии 12, имеющей второе направление 15, которое предпочтительно должно отличаться от первого направления 45. В этом H-шаблоне/режиме цветовой модификатор, представленный кодовым словом модификатора, используется подобным образом для модификации второго цветового значения 20 с целью получения двух цветовых представлений 31, 33. Эти два цветовых представления 31, 33 и второе цветовое значение 20 расположены вдоль третьей линии 22, имеющей третье направление 25. В показанном примере второе направление 15 и третье направление 25 параллельны друг другу.

Затем цветовые индексы, выбранные для элементов изображения, связываются одним из четырех цветовых представлений 30, 31, 32, 33.

На фиг.13А представлена соответствующая диаграмма распределения исходных цветов, эффективно обработанного с использованием Т шаблона/режима THUMB. На этом чертеже цвета находятся в двух кластерах 2, 4, аналогичных фиг.12А. Однако в отличие от фиг.12А один из кластеров 4 имеет обычную круговую форму вместо эллиптической.

На фиг.13В показано, как обрабатывается указанная ситуация согласно схеме THUMB. Первое цветовое значение 10 и второе цветовое значение 20 находятся на первой линии 40, имеющей первое направление 45. Первое цветовое значение модифицируется цветовым модификатором для создания первого цветового представления 30 и второго цветового представления 32, находящихся на второй линии 12, имеющей второе направление 15. В этом шаблоне/режиме цветовыми представлениями, доступными для элементов изображения, являются первое цветовое представление 30 и второе цветовое представление 32, первое цветовое значение 10 и второе цветовое значение 20. Каждый цветовой индекс, выбранный для элементов изображения, связан с одним из этих четырех возможных представлений.

Если вместо этого использовать схему iPACKMAN/ETC, то на шаге S30 в качестве представления первого цветового значения определяется первое цветовое кодовое слово. На этом шаге S30 также определяется второе цветовое кодовое слово. Однако это второе кодовое слово является представлением дифференциального цвета. Второе цветовое значение тогда можно получить как сумму первого цветового значения и дифференциального цвета. Элементам изображения в первом субблоке (элементы изображения 2×4 или 4×2) присваивают первое цветовое значение, в то время как элементам изображения во втором субблоке (элементы изображения 2×4 или 4×2) присваивают второе цветовое значение. На шаге S31 обеспечивают кодовое слово интенсивности, где кодовое слово интенсивности является представлением набора из множества модификаторов интенсивности. Эти модификаторы интенсивности можно применять для модификации интенсивности первого или второго цветового значения для создания множества цветовых представлений. В предпочтительном варианте реализации кодовое слово интенсивности представляет собой табличный индекс для таблицы интенсивности, содержащей множество наборов модификаторов, где наборы модификаторов имеют различные модификаторы интенсивности. На шаге S32 выбирают индекс интенсивности для каждого элемента изображения в блоке, где индекс интенсивности связан с модификатором интенсивности из набора модификаторов интенсивности, представленного кодовым словом интенсивности.

На фиг.14 схематически показано возможное сжатое представление 700 блока для дифференциального режима iPACKMAN/ETC. Сжатый блок 700 включает в себя первое цветовое кодовое слово 710, содержащее три цветовые компоненты: красную 712, зеленую 714 и синюю 716, причем предпочтительно, чтобы каждая компонента была представлена пятью битами. Второе цветовое или дифференциальное цветовое кодовое слово 720 также включает в себя три компоненты: красную 722, зеленую 724 и синюю 726, причем предпочтительно, чтобы каждая из них была представлена тремя битами. Сжатый блок 700 дополнительно включает в себя два кодовых слова 750А, 750В интенсивности, по одному для каждого субблока 2×4/4×2, предпочтительно из 3 бит каждое. В сжатый блок 700 также включена последовательность 760 индексов интенсивности, предпочтительно по одному 2-битовому индексу интенсивности на каждый элемент изображения в блоке, всего 32 бита. Бит 770 переворота определяет, являются ли два субблока данного блока изображения двумя блоками 2×4 или двумя блоками 4×2, то есть расположены ли они вертикально (бит переворота = 0bin) или горизонтально (бит переворота = 1bin). Схема iPACKMAN/ETC содержит два так называемых «режима по умолчанию», из которых один был описан и раскрыт в настоящем документе. Дифференциальный бит 780 устанавливает различия между этими двумя режимами по умолчанию. На фиг.14-17 этот дифференциальный бит 780 одинаков и установлен равным 1bin (или 0bin). Заметим, что взаимный порядок кодовых слов 710, 720, 750А, 750В, последовательности 760 индексов, бита 770 переворота и дифференциального бита 780 кодированного блока 700 изображения может отличаться от порядка, показанного на данном чертеже. Общий размер сжатого блока составляет 64 бита.

В вышеупомянутом режиме iPACKMAN/ETC каждая из цветовых компонент 712, 714, 716 первого цветового кодового слова 710 предпочтительно содержит 5 бит, по существу представляющих любое значение в интервале 0-31 (00000bin - 11111bin). Каждая компонента 722, 724, 726 второго кодового слова 720 предпочтительно содержит 3 бита, которые используют для представления значения в интервале от -4 до +3. Цветовые компоненты второго цветового значения можно получить, просуммировав компоненты 712, 714, 716; 722, 724, 726 двух кодовых слов:

Красная компонента = R + dR

Зеленая компонента = G + dG

Синяя компонента = B + dB

Поскольку эти цветовые компоненты представляют информацию об интенсивности, можно предположить, что их значения лежат в интервале от 0 (отверстие интенсивности) до 31 (полная интенсивность). Это означает, что битовые комбинации первого цветового кодового слова 710 и второго цветового кодового слова 720, которые приводят к тому, что суммы R + dR, G + dG, B + dB достигнут переполнения, то есть будут <0 или >31, и никогда не смогут быть использованы кодером, работающим в указанном режиме iPACKMAN/ETC. Это позволяет ввести три вспомогательных режима, которые можно использовать как дополнение к режиму iPACKMAN/ETC.

В первом вспомогательном режиме происходит переполнение красной компоненты, то есть R+dR меньше нуля или больше 31. Если это имеет место, то первые три бита красной компоненты 712 первого цветового кодового слова 710 равны и отличаются от первого бита красной компоненты 722 второго цветового кодового слова 720.

На фиг.15 этот принцип реализуется для использования H-шаблона/режима THUMB в качестве вспомогательного режима для iPACKMAN/ETC. Таким образом, в этом режиме нельзя свободно выбрать четыре бита 790, поскольку должно быть переполнение красных компонент, и они должны быть равны либо 1110bin, либо 0001bin. Предпочтительно, чтобы сжатое представление 700 блока составляло всего 64 бита, четыре из которых используются согласно вышесказанному. Остальные 60 бит предпочтительно разделяются между составляющими частями согласно следующему принципу: 4 бита присваивают каждой цветовой компоненте 712, 714, 716; 722, 724, 726 первого (710) и второго (720) цветовых кодовых слов. Кодовое слово 750 цветового модификатора содержит три бита, дифференциальный бит 780 (один бит) (который имеет то же самое значение, что на фиг.14) и последовательность 760 цветовых индексов, предпочтительно из 32 бит.

Второй вспомогательный режим можно получить, если произошло переполнение зеленой компоненты, то есть G + dG меньше нуля или больше 31, а переполнение красной компоненты не допускается, то есть 0≤R+dR≤31. В этом режиме первый бит красной компоненты 712 первого цветового кодового слова на фиг.14 установлен отличающимся от второго или третьего бита красной компоненты 712, что исключает возможность переполнения красной компоненты. Вдобавок, первые три бита зеленой компоненты 714 первого цветового кодового слова должны быть равны и отличаться от первого бита зеленой компоненты 724 второго цветового кодового слова 720. Вдобавок, следует проверить, что действительно имеет место переполнение зеленой компоненты.

На фиг.16 бит0 (соответствует первому биту красной компоненты в первом цветовом кодовом слове на фиг.14), бит8 - бит10 (соответствуют трем первым битам зеленой компоненты в первом цветовом кодовом слове на фиг.14) и бит13 (соответствует первому биту зеленой компоненты во втором цветовом кодовом слове на фиг.14), представленные вместе на фиг.16 под ссылочной позицией 790, не могут устанавливаться произвольно. Следовательно, 59 бит остаются для использования другими частями сжатого блока 700. Разделение бит между цветовыми кодовыми словами 710, 720, кодовым словом 750 цветового модификатора, дифференциальным битом 780 и последовательностью 760 цветовых индексов предпочтительно должно быть таким же, как на фиг.15, за исключением того, что кодовое слово 750 цветового модификатора в этом случае содержит вместо трех только два бита.

Третий вспомогательный режим, использующий схему по настоящему изобретению, доступен в том случае, если имеет место переполнение синей компоненты, то есть B + dB меньше нуля или больше 31, но при этом переполнение красной и зеленой компонент не допускается. Это означает, что первый бит красной (712) и зеленой (714) компонент первого цветового кодового слова 710 на фиг.14 должен отличаться от второй или третьей компоненты в красной (712) и зеленой (714) компонентах. Вдобавок, имеет место переполнение синей компоненты, то есть B + dB меньше нуля или больше 31.

Таким образом, на фиг.17 бит0 (соответствует первому биту красной компоненты в первом цветовом кодовом слове на фиг.14), бит8 (соответствует первому биту зеленой компоненты в первом цветовом кодовом слове на фиг.14), бит16 - бит18 (соответствуют трем первым битам синей компоненты в первом цветовом кодовом слове на фиг.14) и бит 21 (соответствует первому биту синей компоненты во втором цветовом кодовом слове на фиг.14), обозначенные вместе под ссылочной позицией 790, не могут устанавливаться произвольно. Каждой из красных 712, 722, 732 и синих 716, 726, 736 компонент трех цветовых кодовых слов 710, 720, 730 предпочтительно присваивается 6 бит, в то время как соответствующие зеленые компоненты 714, 724, 734 содержат 7 бит каждая, а дифференциальный бит 780 представляет собой один бит. Это составляет всего 64 бита.

Если четыре различных сжатых представления, показанные на фиг.14-17, возможны, то индекс режима, используемый для различения четырех режимов, предпочтительно включает в себя определенные позиции в битовых последовательностях. Эти битовые позиции включают в себя первое 710 и второе 720 кодовое слово на фиг.14. Вдобавок, для различения другого доступного режима iPACKMAN/ETC предпочтительно использовать дифференциальный бит. Однако заметим, что некоторые биты этого индекса режима можно использовать для кодирования сжатого блока в других режимах.

Распаковка

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

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

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

Далее выполняются шаги S41 и S42 для каждого элемента изображения, подлежащего декодированию, что схематически показано линией L5. На шаге S41 обеспечиваются цветовые веса, присваиваемые элементу изображения, подлежащему декодированию. Цветовые веса предпочтительно являются предопределенными весами, которые зависят от действительного положения элемента изображения в блоке:

Таким образом, все блоки изображения, сжатые согласно настоящему изобретению, предпочтительно имеют одно и то же присваивание цветовых весов, так что элемент изображения, например, в положении (2,1) в первом блоке будет иметь те же самые цветовые веса, что и элемент изображения в положении (2,1) во втором блоке.

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

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

Шаги S41 и S42 могут выполняться для нескольких элементов изображения в блоке изображения (схематически показано линией L5). Изобретение подразумевает, что в некоторых приложениях декодируется только один элемент изображения из определенного блока изображения, декодируется множество элементов изображения определенного блока изображения и/или декодируются все элементы изображения определенного блока.

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

Затем шаги с S40 по S42 предпочтительно повторяют для всех блоков изображения, которые содержат элементы изображения, подлежащие декодированию (схематически показано линией L6). Это означает, что цикл шагов с S40 по S42 может выполняться однократно, но чаще всего несколько раз для разных кодированных блоков изображения и/или несколько раз для определенного кодированного блока изображения.

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

На фиг.19 представлена блок-схема многорежимной реализации декодирования/распаковки изображений и блоков согласно настоящему изобретению. Способ начинается с шага S50, где на основе индекса режима выбирают режим распаковки, используемый для текущего блока. Если возможны четыре разных сжатых представления, показанные на фиг.14-17, то индекс режима включает в себя дифференциальный бит, первое цветовое кодовое слово и второе цветовое кодовое слово на фиг.14. Таким образом, декодер исследует эти битовые позиции в битовой последовательности, которая образует сжатое представление блока, и выбирает режим распаковки на основе исследованных бит. В предпочтительном варианте реализации первый режим сжатия выбирают в том случае, если имеет место переполнение синей цветовой компоненты, а не красной и зеленой. Второй и третий режимы выбирают в том случае, если есть переполнение красной компоненты или есть переполнение зеленой компоненты, но нет переполнения красной компоненты. Если нет переполнения ни одной компоненты, то на шаге S50 выбирают четвертый режим.

Если на шаге S50 выбран первый режим, то способ продолжается на шаге S51, где выполняется распаковка блока согласно этому режиму. Это соответствует выполнению шагов S40 - S42, показанных на фиг.18. Если вместо первого выбран второй, третий или четвертый режим, то способ продолжается на шаге S52, S53 или S54.

На фиг.20 показана распаковка, выполняемая согласно режиму THUMB. Сначала на шаге S60 на основе первого цветового кодового слова определяют первое цветовое значение. На шаге S61 на основе второго цветового кодового слова определяют второе цветовое значение. Эти два цветовых значения располагаются на первой линии, имеющей первое направление в цветовом пространстве (смотри фиг.12В и 13В). Шаги S60 и S61 определения цветов предпочтительно включают расширение битовой последовательности кодовых слов для создания цветовых значений. На следующем шаге S62 создается множество цветовых представлений вдоль второй линии, имеющей второе направление в цветовом пространстве, путем модификации первого цветового значения по меньшей мере одним цветовым модификатором, представленным кодовым словом цветового модификатора. Следующий шаг S63 выполняется для каждого элемента изображения, подлежащего декодированию, что схематически показано линией L7. Этот шаг S63 включает выбор цветового представления на основе последовательности цветовых индексов, а более точно, цветового индекса, присвоенного соответствующему элементу изображения, из: i) множества цветовых представлений вдоль второй линии и ii) по меньшей мере одного цветового представления на основе второго цветового значения. В H-шаблоне/режиме для модификации второго цветового значения вдоль третьей линии, имеющей третье направление (отличное от первого направления), для создания множества цветовых представлений также используют по меньшей мере один цветовой модификатор, обеспеченный на основе кодового слова модификатора. Таким образом, в этом H-шаблоне доступны два набора из множества цветовых представлений (один, расположенный на второй линии, и другой, расположенный на третьей линии), а цветовой индекс элементов изображения указывает на одно из представлений в этих двух наборах. В Т-шаблоне/режиме множество цветовых представлений на второй линии дополняются первым и вторым цветовым значениями, которые также можно выбрать в качестве цветовых представлений для элементов изображения. Затем способ продолжается на шаге S43 по фиг.18.

Если на основе индекса режима вместо вышеуказанного выбирают режим iPACKMAN/ETC, то на шаге S70 по фиг.21 выбирают цветовое значение на основе первого цветового кодового слова или первого и второго цветового кодового слова. Если элемент изображения, подлежащий декодированию, присутствует в первом (2×4/4×2) субблоке, то цветовое значение определяют на основе первого цветового кодового слова предпочтительно путем расширения битовой последовательности кодового слова из RGB555 в RGB888. Если вместо вышеуказанного элемент изображения присутствует во втором (2×4/4×2) субблоке, то цветовое значение определяют на основе как первого, так и второго цветового кодового слова по существу путем суммирования красных компонент, зеленых компонент и синих компонент первого и второго кодовых слов с последующим расширением результата в RGB888 (или, в альтернативном варианте, сначала выполняется расширение компонент кодовых слов, а затем их суммирование). Сжатый блок в этом режиме содержит два кодовых слова интенсивности, по одному на каждый субблок. Кодовое слово интенсивности, присвоенное субблоку, который содержит элемент изображения, подлежащий декодированию, используют на шаге S71 для обеспечения набора модификаторов интенсивности. Этот шаг предпочтительно содержит обеспечение на основе кодового слова интенсивности набора модификаторов из таблицы, содержащей множество указанных наборов модификаторов. Модификатор интенсивности, используемый для элемента изображения, выбирают на шаге S72 из предоставленного набора модификаторов на основе индекса интенсивности, присвоенного элементу изображения. На следующем шаге S73 с помощью выбранного модификатора выполняется модификация интенсивности определенного цветового значения для создания цветового представления для данного элемента изображения. Шаги с S70 по S73 предпочтительно повторяются для всех элементов изображения в блоке, которые подлежат декодированию. Затем способ продолжается на шаге S43 по фиг.18.

Примеры распаковки

Далее описываются примеры распаковки, где используется компоновка битовой последовательности, показанная на фиг.с 14 по 17.

iPACKMAN/ETC

Сжатый блок изображения представлен следующей битовой последовательностью:

10110 010 11010 110 00100 000 101 110 1 1

10 01 11 00 01 01 10 11 10 00 11 00 01 01 00 01

Сначала исследуются бит0 - бит2, бит6, бит8-10, бит13, бит16-18, бит21 и дифференциальный бит 780 для определения того, какой режим распаковки необходимо использовать для данного блока изображения. Поскольку ни одна цветовая компонента не имеет переполнения и дифференциальный бит 780 установлен в 1, следует выбрать дифференциальный режим по умолчанию iPACKMAN/ETC.

Сначала расширяют цветовые компоненты 712, 714, 716 первого цветового кодового слова 710 в RGB888 для создания первого цветового значения:

Красный: 10110bin → 10110101bin = 181

Зеленый: 11010bin → 11010110bin = 214

Синий: 00100bin → 00100001bin = 33

К этим компонентам добавляются дифференциальные компоненты 722, 724, 726 второго цветового кодового слова 720 для получения второго цветового значения:

Красный: 010«2 → 181+2=183

Зеленый: 110bin«-2 → 214-2=212

Синий: 000bin«0 → 33+2=33

Бит переворота устанавливается равным 1bin, что предполагает присваивание первого цветового значения восьми элементам изображения в двух верхних строках блока 4×4, в то время как второе цветовое значение используют для восьми элементов изображения в двух самых нижних строках.

Два кодовых слова 750А, 750В интенсивности указывают таблицу интенсивности, показанную в виде примера в таблице 8, представленной ниже:

Таблица 8
Таблица интенсивности
Кодовое слово интенсивности 11bin 10bin 00bin 01bin
000bin -8 -2 2 8
001bin -12 -4 4 12
010bin -31 -6 6 31
011bin -34 -12 12 34
110bin -50 -8 8 50
101bin -57 -19 19 57
110bin -80 -28 28 80
111bin -127 -42 42 127

Первым кодовым словом 750А интенсивности, применимым для элементов изображения в первом субблоке 2×4, является 101bin, представляющим модификаторы интенсивности -57, -19, 19, 57. Второе кодовое слово 750В интенсивности представляет модификаторы интенсивности -80, -28, 28, 80.

Первый элемент изображения в положении (0,0) будет иметь следующее цветовое представление:

(181, 214, 33)+(-19, -19, -19)=(162, 195, 14)

Соответственно, цветовое представление последнего элемента изображения (в положении (3,3)) вычисляется следующим образом:

(183, 212, 33)+(80, 80, 80)=(255, 255, 113)

после фиксации вычисленных значений цветовых компонент между минимальным допустимым значением, равным 0, и максимальным значением, равным 255.

Затем эта процедура продолжается для остальных элементов изображения в блоках изображения.

H-шаблон THUMB

Сжатый блок изображения представляется следующей битовой последовательностью:

111 10 0 10 1101 0110 0010 0000 1011 101 1

10 01 11 00 01 01 10 11 10 00 11 00 01 01 00 01

В этом случае красная компонента при прерывании битовой последовательности согласно фиг.14, то есть iPACKMAN/ETC, первого цветового кодового слова составляет 11110bin=30, а красная компонента второго цветового слова составляет 010bin=2, что подразумевает перекрытие красной компоненты, поскольку 30+2=32>31, в связи с чем следует использовать первый вспомогательный режим, то есть H-шаблон THUMB. Представленная выше битовая последовательность имеет компоновку, показанную на фиг.15.

Первое и второе цветовые значения создаются путем расширения компонент 712, 714, 716; 722, 724, 726 двух цветовых кодовых слов 710, 720:

Красный 0: 1010bin → 10101010bin =170

Зеленый 0: 1101bin → 11011101bin =221

Синий 0: 0110bin → 01100110bin =102

Красный 1: 0010bin → 00100010bin =34

Зеленый 1: 0000bin → 00000000bin =0

Синий 1: 1011bin → 10111011bin =187

Таким образом, первым цветовым значением будет (170, 221, 102), а вторым значением будет (34, 0, 187).

Кодовое слово 750 модификатора, равное 101bin=5, подразумевает, что число 1bin должно быть сдвинуто влево пять раз для получения 100000bin=32. Это значение используется для модификации двух цветовых значений, чтобы получить четыре цветовых представления:

С0: (170, 221, 102)-(32, 32, 32)=(138, 189, 70)

С1: (170, 221, 102)+(32, 32, 32)=(202, 253, 134)

С2: (34, 0, 187)-(32, 32, 32)=(2, 0, 155)

С3: (34, 0, 187)+(32, 32, 32)=(66, 32, 219)

Первый элемент изображения имеет цветовой индекс 10bin, который подразумевает, что для данного элемента изображения используется цветовое предоставление С2. Эта процедура продолжается для остальных элементов изображения (индекс 00bin«C0, 01bin«C2, 10bin«C2 и 11bin«C3).

Т-шаблон THUMB

Сжатый блок изображения представлен следующей битовой последовательностью:

1 0110 010 111 1 0 0 100 0100 0001 0111 01 1

10 01 11 00 01 01 10 11 10 00 11 00 01 01 00 01

В этом случае зеленая компонента имеет переполнение, поскольку она при прерывании битовой последовательности согласно фиг.14, то есть iPACKMAN/ETC, для первого цветового кодового слова составляет 11110bin=30, а зеленая компонента второго цветового слова составляет 010bin=2, что подразумевает перекрытие зеленой компоненты, поскольку 30+2=32>31. Вдобавок, красная компонента не имеет переполнения, поскольку бит0 отличается от бит1. Это означает, что следует выбрать второй вспомогательный режим распаковки в виде Т-шаблона THUMB, а битовая последовательность интерпретируется с компоновкой по фиг.16.

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

Красный 0: 0110bin → 01100110bin = 102

Зеленый 0: 0101bin → 01010101bin = 85

Синий 0: 0100bin → 01000100bin = 68

Красный 1: 0100bin → 01000100bin = 68

Зеленый 1: 0001bin → 00010001bin = 17

Синий 1: 0111bin → 01110111bin = 119

В этом случае цветовой модификатор 750 включает в себя только два бита 01bin=1, что предполагает необходимость сдвига числа 1bin влево на один шаг для получения 100bin=2. Два из четырех возможных цветовых представлений вычисляют с использованием этого значения модификатора, в то время как два других представления равны следующим двум цветовым значениям:

С0: (102, 85, 68)

С1: (102, 85, 68)-(2, 2, 2)=(100, 83, 66)

С2: (102, 85, 68)+(2, 2, 2)=(104, 87, 70)

С3: (68, 17, 119)

Первый элемент изображения имеет цветовой индекс 10bin, который соответствует С2. Затем процедура повторяется для остальных элементов изображения в блоке.

PLANAR

Сжатый блок изображения представлен следующей битовой последовательностью:

1 011001 0 0 101011 0 000 00 1 010 111001 1

1001110 001011 011100 0110001 010001

В этом примере синяя компонента при прерывании битовой последовательности согласно фиг.14, то есть iPACKMAN/ETC, имеет переполнение, поскольку синяя компонента второго цифрового кодового слова составляет 101bin=-3, что предполагает переполнение синей компоненты, поскольку 0-3=-3<0. Вдобавок, бит0 отличается от бит1 (для красной компоненты нет переполнения), а бит8 отличается от бит9 (для зеленой компоненты нет переполнения). Как следствие, необходимо использовать четвертый режим распаковки, определенный в настоящем изобретении как режим PLANAR (планарный).

В этом примере три цветовых значения вычисляют путем расширения цветовых компонент 712, 714, 716; 722, 724, 726, 732, 734, 736 трех цветовых кодовых слов 710, 720, 730 в RGB888.

R0: 011001bin → 01100101bin =101

G0: 0101011bin → 01010110bin =86

B0: 000010bin → 00001000bin =8

RH: 111001bin → 11100111bin =231

GH: 1001110bin → 10011101bin =157

BH: 001011bin → 00101100bin =44

RV: 011100bin → 01110001bin =113

GV: 0110001bin → 01100010bin =98

BV: 010001bin → 01000101bin =69

Затем эти цветовые значения взвешивают и объединяют согласно принципам, заложенным в таблицу 6, как было указано выше. Цветовое представление для первого элемента (0,0) изображения является просто первым значением (101, 86, 8). Цифровое представление для элемента (1,0) изображения составляет три четверти от первого цветового значения и одну четверть от второго цветового значения, то есть (101,86,8)+(231,157,44)=(133,104,17). Эта процедура распространяется на остальные элементы изображения для обеспечения декодированного представления блока изображения.

Аспекты реализации

Схема кодирования изображения (кодирования блоков изображения) и декодирования изображения (декодирования или обработки блоков изображения) согласно настоящему изобретению может быть предусмотрена в системе обработки данных общего назначения, например в пользовательском терминале или другом устройстве, сконфигурированном для обработки и/или визуализации изображений. Указанный терминал может представлять собой компьютер, например персональный компьютер (PC), игровой пульт или клиент-терминал, например персональный цифровой помощник (PDA), мобильный блок или телефон.

Пользовательский терминал

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

Мобильный блок 100 содержит (центральный) процессор (CPU) 200 для обработки данных, в том числе данных изображения, в мобильном блоке 100. В мобильном блоке 100 предусмотрена графическая система для управления данными изображений и графическими данными. В частности, графическая система 130 адаптирована для визуализации или отображения изображений на подсоединенном экране 120 или другом устройстве отображения. Мобильный блок 100 также содержит запоминающее устройство или память 140 для запоминания в ней данных. В этой памяти 140 могут хранится данные изображения, в частности кодированные данные изображения (кодированные блоки изображения) согласно настоящему изобретению.

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

Кодированное представление изображения из кодера 210 блока может быть передано в память 140 по шине 150 (памяти) для хранения, до последующей визуализации изображения. В альтернативном варианте или вдобавок к данному варианту, данные кодированного изображения могут быть направлены в секцию 110 ввода и вывода (I/O) для (беспроводной или проводной) передачи на другие внешние терминалы или устройства. Эта секция 110 ввода/вывода также может быть адаптирована для приема данных изображения от внешнего устройства. Данные изображения могут представлять собой изображение, которое должно быть закодировано кодером 210 изображения, или кодированные данные изображения, которые должны быть декодированы. Также возможно запоминание кодированного представления изображения в специализированной памяти текстуры, предусмотренной, например, в графической системе 130.

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

В мобильном блоке 100 предусмотрен декодер 220 изображения согласно настоящему изобретению для декодирования кодированного изображения с целью создания декодированного представления изображения. Это декодированное представление может соответствовать всему исходному изображению или его части. Декодер 220 изображения передает декодированные данные изображения в графическую систему 130, которая в свою очередь обычно обрабатывает эти данные, прежде, чем они будут визуализированы или представлены на экране 120. Декодер 220 изображения может быть скомпонован в графической системе 130, как показано на данном чертеже. В альтернативном варианте, или как добавление к данному варианту, декодер 200 может быть обеспечен программными средствами, выполняющимися в CPU 200 или где-либо еще в мобильном блоке 100.

Мобильный блок 100 может быть снабжен как кодером 210 изображения, так и декодером 220 изображения, как показано на данном чертеже. Однако в некоторых терминалах 100 возможно наличие только кодера 210 изображения. В указанном случае кодированные данные изображения могут передаваться на другой терминал, который выполняет декодирование, а возможно и визуализацию изображения. Соответственно, терминал 100 может включать в себя только декодер 220 изображения, то есть не иметь кодер. Такой терминал 100 принимает сигнал, содержащий кодированные данные изображения, от другого терминала и декодирует его для создания декодированного представления изображения. Таким образом, кодированный сигнал изображения может передаваться беспроводным способом между терминалами с использованием радиопередатчика и радиоприемника. В альтернативном варианте для распределения изображений и кодированных представлений изображений между терминалами согласно настоящему изобретению могут использоваться другие технологии, такие как Bluetooth®, IR-технологии, использующие инфракрасные порты, а также проводная передача данных изображения между терминалами. Также для распределения данных изображения между терминалами могут быть использованы карты или микросхемы памяти, которые могут быть подсоединены к терминалам, либо между терминалами может быть организован обмен такими картами.

Секции 110, 130, 200, 210 и 220 мобильного блока 100 могут быть реализованы программными средствами, аппаратными средствами или их комбинацией.

Кодер изображения

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

Этот вариант кодера 210 изображения содержит один кодер 300 блока. Этот кодер 300 блока кодирует блок (блоки) изображения, полученный от блока разбиения изображения, для создания кодированного представления (представлений) блока. Общий размер представления блока меньше соответствующего размера не кодированного блока изображения. Кодер 300 блока предпочтительно сконфигурирован для последовательной обработки (кодирования) каждого блока изображения от блока 215 разбиения.

В альтернативном варианте реализации кодер 210 включает в себя множество кодеров 300 блоков для параллельной обработки множества блоков изображения от секции 215 разбиения, что сокращает общее время кодирования изображения.

Секции 215 и 300 кодера 210 изображения могут быть реализованы программными средствами, аппаратными средствами или их комбинацией. Секции 215 и 300 могут быть реализованы вместе в кодере 210 изображения. В альтернативном варианте также возможна распределенная реализация, когда некоторые из указанных секций предусмотрены в каком-либо ином месте в мобильном блоке.

Кодер блока

На фиг.24 показана блок-схема варианта реализации кодера 300 блока согласно настоящему изобретению, например кодера блока для кодера изображения по фиг.23. Кодер 300 содержит секцию 310 присваивания весов для присваивания цветовых весов по меньшей мере одному поднабору элементов изображения в блоке изображения, подлежащему сжатию. В предпочтительном варианте реализации секция 310 присваивания весов присваивает N цветовых весов каждому элементу изображения в блоке, где N - многозначное число, равное количеству цветовых кодовых слов, которое определяет цветовой квантователь 320 для блока изображения. В другом предпочтительном варианте секция 310 присваивания весов присваивает цветовые веса элементам изображения в блоке, так чтобы значения по меньшей мере одной цветовой компоненты цветовых представлений, используемых для представления исходных цветов элементов изображения, монотонно изменялись вдоль строки или/и столбца элементов изображения в блоке. Присваивание весов элементам изображения в блоке, выполняемое секцией 310 присваивания в кодере 300 блока, предпочтительно осуществлять на основе положения элементов изображения, то есть относительных координат элементов изображения в блоке.

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

В предпочтительном варианте реализации цветовой квантователь 320 определяет три цветовых кодовых слова, предпочтительно три кодовых слова RGB676.

Секции 310 и 320 кодера 300 блока могут быть реализованы программными средствами, аппаратными средствами или их комбинацией. Секции 310 и 320 могут быть реализованы вместе в кодере 300 блока. В альтернативном варианте возможна также распределенная реализация, когда некоторые из указанных секций предусмотрены где-либо еще в кодере изображения.

На фиг.25 представлена блок-схема другого варианта кодера 300 блока согласно настоящему изобретению. Кодер 300 блока адаптирован для работы согласно различным режимам сжатия, предпочтительно четырем различным режимам. В первом режиме сжатия секция 310 присваивания весов и цветовой квантователь 320 функционируют согласно описанию, приведенному выше в связи с фиг.24. Таким образом, в результате получается сжатый блок изображения, содержащий три цветовых кодовых слова и индекс режима, который подробнее описывается ниже. Пример указанного сжатого блока показан на фиг.17.

В режиме сжатия iPACKMAN/ETC цветовой квантователь 320 действует, определяя первое цветовое кодовое слово, которое является представлением первого цветового значения, и определяя второе цветовое кодовое слово в виде представления дифференциального цвета, которое может быть добавлено к первому цветовому значению для получения второго цветового значения. Квантователь 340 модификатора действует в этом режиме, определяя по меньшей мере одно, а предпочтительно два кодовых слова интенсивности в качестве представления по меньшей мере одного набора из множества модификаторов интенсивности, используемых для модификации первого или второго цветового значения для получения цветовых представлений. Кодовые слова интенсивности предпочтительно являются табличными индексами для таблицы 500 модификаторов, содержащей множество указанных наборов модификаторов. В кодере 300 блока предусмотрен селектор 350 индекса для определения для каждого элемента изображения в блоке индекса интенсивности, связанного с одним из модификаторов интенсивности в наборе (наборах) модификаторов, представленном кодовым словом (кодовыми словами) интенсивности.

В двух режимах THUMB цветовой квантователь 320 определяет первое цветовое кодовое слово в качестве представления первого цветового значения. Вдобавок, квантователь 320 определяет второе кодовое слово в качестве представления второго цветового значения, причем эти два значения расположены на первой линии с первым направлением в цветовом пространстве. Квантователь 340 модификатора действует в этом режиме, обеспечивая кодовое слово цветового модификатора в качестве представления по меньшей мере одного цветового модификатора, применимого для модификации первого цветового значения вдоль второй линии, имеющей второе направление в цветовом пространстве. Эта цветовая модификация приводит к множеству цветовых представлений вдоль второй линии. Второе и первое направления не параллельны друг другу. Затем селектор 350 индекса для каждого элемента изображения выбирает цветовой индекс, связанный с цветовым представлением, выбираемым из: i) цветовых представлений вдоль второй линии и ii) по меньшей мере одного цветового представления на основе второго цветового значения.

В предпочтительном варианте реализации для данного блока изображения определяют множество сжатых представлений-кандидатов, по одному представлению для каждого режима сжатия. Затем реализуется селектор 360 режима для выбора тех представлений-кандидатов, которые должны использоваться в качестве сжатого представления для блока изображения. Этот выбор предпочтительно осуществлять на основе сравнения оценок ошибок, по одной ошибке на режим сжатия. Селектор 360 режима при выборе отдает предпочтение кандидату, который дает минимальную ошибку. Затем администратор 370 индексов режима выбирает индекс режима, представляющий режим сжатия, который обеспечивает минимальную ошибку, то есть режим, используемый при создании кандидата, выбранного селектором 360 режима. Этот индекс режима образует часть сжатого блока изображения.

Секции с 310 по 370 кодера 300 блока могут быть реализованы программными средствами, аппаратными средствами или их комбинацией. Секции с 310 по 370 и 500 могут быть реализованы вместе в кодере 300 блока. В альтернативном варианте также возможна распределенная реализация, когда некоторые из указанных секций предусмотрены где-либо в кодере изображения.

Декодер изображения

На фиг.26 показана блок-схема варианта декодера 220 изображения согласно настоящему изобретению. Декодер 220 изображения предпочтительно содержит селектор 222 блока, который адаптирован для выбора, например, из памяти того кодированного блока (блоков) изображения, который необходимо предоставить декодеру 400 блока для декодирования. Селектор 222 блока предпочтительно получает входную информацию, связанную с кодированными данными изображения, например, из заголовка или от средства визуализации. Затем на основе этой входной информации вычисляется адрес кодированного блока изображения, имеющего требуемый элемент (элементы) изображения. Этот вычисленный адрес предпочтительно зависит от координат элемента изображения (пиксел, тексел или воксел) в изображении. Используя этот адрес, селектор 222 блока идентифицирует кодированный блок изображения из памяти. Затем этот идентифицированный кодированный блок изображения извлекается из запоминающего устройства и подается в декодер 400 блока.

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

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

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

В альтернативном варианте декодер 220 изображения содержит множество декодеров 400 блока. Имея доступ к множеству декодеров 400 блоков, декодер 220 изображения может обрабатывать (декодировать) параллельно множество кодированных блоков изображения. Это множество декодеров 400 блоков позволяет осуществлять параллельную обработку, которая увеличивает производительность и эффективность декодера 220 изображения.

Секции 222, 224 и 400 декодера 220 изображения могут быть реализованы программными средствами, аппаратными средствами или их комбинацией. Секции 222, 224 и 400 могут быть реализованы вместе в декодере 220 изображения. В альтернативном варианте также возможна распределенная реализация, когда некоторые из указанных секций предусмотрены в каком-либо месте в пользовательском терминале.

Декодер блока

На фиг.27 показан вариант декодера 400 блока согласно настоящему изобретению. Декодер 400 блока содержит цветовой генератор 410, который создает по меньшей мере два цветовых значения на основе по меньшей мере двух цветовых кодовых слов в сжатом представлении блока. Этот цветовой генератор 410 предпочтительно сконфигурирован для растягивания или расширения квантованных цветовых компонент цветовых кодовых слов предпочтительно в формате RGB888. Администратор 420 весов скомпонован в декодере 400 блока для обеспечения каждого элемента изображения, подлежащего декодированию, цветовыми весами, присвоенными элементу (элементам) изображения. В предпочтительном варианте реализации соответствующие элементы изображения в данном положении в разных блоках изображения имеют одинаковые присвоенные цветовые веса. Таким образом, цветовые веса зависят от координат или положений элементов изображения в блоке, но они не меняются для разных блоков, сжатых согласно настоящему изобретению. Таким образом, администратор 420 весов предпочтительно обеспечивает цветовые веса на основе положений/координат элементов изображения в блоке изображения.

Цветовой вычислитель 430 подсоединен к цветовому генератору 410 и администратору 420 весов, причем он использует предоставленные цветовые веса и созданные цветовые значения для определения цветового представления, используемого в качестве представления исходного цвета элемента изображения. Вычислитель 430 предпочтительно реализуется с целью объединения цветовых значений от генератора 410, которые взвешены с использованием цветовых весов от администратора 420 весов.

Секции с 410 по 430 декодера 400 блока могут быть реализованы программными средствами, аппаратными средствами или их комбинацией. Секции с 410 по 430 могут быть реализованы вместе в декодере 400 блока. В альтернативном варианте также возможна распределенная реализация, когда некоторые из указанных секций предусмотрены в каком-либо месте в декодере изображения.

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

Если селектор 460 выбирает первый режим распаковки, то цветовой генератор 410, администратор 420 весов и цветовой вычислитель 430 работают, как описано выше в связи с фиг.27.

Если вместо этого селектор 450 выбирает второй режим распаковки, соответствующий схеме iPACKMAN/ETC, то цветовой генератор 410 определяет цветовое значение на основе первого цветового кодового слова или на основе первого и второго цветового кодового слова (в зависимости от действительного положения элемента изображения в блоке). В первом случае цвета компонент квантователя просто растягиваются, предпочтительно в формат RGB888. В последнем случае к цветовым компонентам, полученным из первого кодового слова, добавляются дифференциальные компоненты второго кодового слова для определения цветового значения. В декодере 400 блока предусмотрен администратор 470 модификаторов для обеспечения набора из множества модификаторов интенсивности (предпочтительно из таблицы 500 модификаторов) на основе одного из по меньшей мере одного кодового слова интенсивности. Цветовой селектор 450 выбирает один из модификаторов интенсивности из предоставленного набора, используя индекс интенсивности, связанный с текущим элементом изображения. Затем цветовой модификатор 440 использует этот выбранный модификатор интенсивности для модификации интенсивности цветового значения с целью вычисления цветового представления для элемента изображения.

Если селектор 460 режима выбирает режимы THUMB, то цветовой генератор 410 определяет первое цветовое значение, используя первое цветовое кодовое слово, и определяет второе цветовое значение на основе второго цветового кодового слова. Эти два значения находятся на первой линии, имеющей первое направление в цветовом пространстве. Цветовой модификатор 440 создает множество цветовых представлений вдоль второй линии, имеющей второе, отличное от первого, направление, путем модификации первого цветового значения с помощью по меньшей мере одного цветового модификатора, представленного кодовым словом цветового модификатора. Затем цветовой селектор 450 на основе последовательности цветовых индексов выбирает цветовое представление из: i) множества цветовых представлений вдоль второй линии и ii) по меньшей мере одного цветового представления на основе второго цветового значения.

Секции с 410 по 470 декодера 400 блока могут быть реализованы программными средствами, аппаратными средствами или их комбинацией. Секции с 410 по 470 и 500 могут быть реализованы вместе в декодере 400 блока. В альтернативном варианте также возможна распределенная реализация, когда некоторые из указанных секций предусмотрены в каком-либо месте в декодере изображения.

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

В этом контексте по меньшей мере нормальные кодовые слова могут представлять три компоненты, X, Y, Z или только поднабор из них, например X, Y, причем третья компонента Z вычисляется на основе двух других компонент X, Y.

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

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

Литература

1. Delp, Mitchell: Image using Block Truncation Coding.

IEEE Transactions on Communications 2,9 (1979), 1335-1342.

2. Campbell, Defant, Frederiksen, Joyce, Leske, Lindberg, Sandin: Two Bit/Pixel Full Color Encoding. In Proceeedings of SIGGRAPH (1986), vol.22, pp.215-223.

3. US Patent 5,956,431.

4. S. Fenney, “Texture compression using low-frequency signal modulation”, Graphics Hardware 2003, pp. 84-91, July 2003.

5. International application WO 2005/059836.

6. International application WO 2006/006915.

7. Ström, Akenine-Möller: iPACKMAN high-quality, low complexity texture compression for mobile phones, Graphics Hardware 05, Los Angeles, USA, June 2005.

8. Ström, Pettersson: “Texture compression: THUMB - Two Hues Using Modified Brightness” SIGRAD'05, Lund, Sweden, November 2005.

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

2. Способ по п.1, в котором этап присваивания выполняют до этапа определения.

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

4. Способ по пп.1-3, в котором этап присваивания содержит присваивание цветовых весов множеству элементов изображения.

5. Способ по любому из пп.1-3, в котором этап присваивания содержит присваивание первому поднаберу из множества элементов изображения предопределенных цветовых весов и в котором цветовые представления элементов изображения в первом поднаборе получают из комбинаций по меньшей мере из двух цветовых значений, взвешенных с помощью присвоенных цветовых весов, а цветовые представления элементов изображения во втором, оставшемся поднаборе из множества элементов изображения выбирают по меньшей мере из двух цветовых значений.

6. Способ по любому из пп.1-3, в котором этап присваивания содержит: выбор цветовых весов таким образом, чтобы значения по меньшей мере одной цветовой компоненты цветовых представлений изменялись монотонно вдоль строки или столбца элементов изображения в блоке изображения; и присваивание выбранных цветовых весов элементам изображения в упомянутой строке или столбце.

7. Способ по п.6, в котором этап выбора содержит: выбор цветовых весов таким образом, чтобы значения по меньшей мере одной цветовой компоненты цветовых представлений изменялись монотонно вдоль строки элементов изображения в блоке изображения; и выбор цветовых весов таким образом, чтобы значения по меньшей мере одной цветовой компоненты цветовых представлений изменялись монотонно вдоль столбца элементов изображения в блоке изображения.

8. Способ по любому из пп.1-3 и 7, в котором этап определения содержит определение на основе присвоенных цветовых весов трех цветовых кодовых слов, которые являются представлениями трех цветовых значений.

9. Способ по п.8, в котором этап присваивания содержит присваивание для элемента изображения, имеющего координаты x, y в блоке изображения, причем х, у имеют независимые значения 0, 1, 2, 3, а вектор цветовых весов, имеющий цветовые веса w0, wh, wy, равен

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

11. Способ по п.10, в котором этап сжатия содержит согласно второму режиму сжатия: определение первого цветового кодового слова в качестве представления первого цветового значения; определение второго цветового кодового слова в качестве представления второго цветового значения, причем первое и второе цветовые значения расположены на первой линии, имеющей первое направление в цветовом пространстве; обеспечение кодового слова цветового модификатора в качестве представления по меньшей мере одного цветового модификатора, применимого для модификации первого цветового значения вдоль второй линии, имеющей второе направление в цветовом пространстве, причем второе направление отличается от первого направления, для получения множества цветовых представлений вдоль второй линии; и выбор для каждого элемента изображения в блоке изображения цветового индекса, связанного с цветовым представлением, выбранным из i) множества цветовых представлений вдоль второй линии и ii) по меньшей мере одного представления на основе второго цветового значения.

12. Способ по п.10 или 11, в котором этап сжатия содержит согласно третьему режиму сжатия: определение первого цветового кодового слова в качестве представления первого цветового значения; определение второго цветового кодового слова в качестве представления дифференциального цвета, где второе цветовое значение можно получить как сумму первого цветового значения и дифференциального значения; обеспечение по меньшей мере одного кодового слова интенсивности в качестве представления набора из множества модификаторов интенсивности, для модификации первого или второго цветовых значений, для получения множества цветовых представлений; выбор для каждого элемента изображения в блоке изображения индекса интенсивности, связанного с модификатором интенсивности, из набора модификаторов интенсивности.

13. Способ сжатия блока изображения, содержащего множество элементов изображения, причем способ содержит:
обеспечение для каждого элемента изображения из множества элементов изображения многомерного вектора цветовых весов, содержащего множество цветовых весов;
определение на основе обеспеченных векторов цветовых весов многомерного цветового вектора, содержащего множество цветовых весов;
сжатие цветового вектора путем квантования множества цветовых значений и
представление исходных цветов множества элементов изображения цветовыми представлениями, получаемыми из векторов цветовых весов и цветового вектора.

14. Способ кодирования изображения, причем способ содержит: разбиение изображения на блоки изображения, причем каждый блок изображения содержит множество элементов изображения; и
определение по меньшей мере для одного блока кодированного представления путем сжатия по меньшей мере одного блока согласно любому из пп.1-13.

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

16. Способ по п.15, в котором этап обеспечения содержит обеспечение цветовых весов на основе положения элемента изображения в блоке изображения.

17. Способ по п.15, в котором этап обеспечения содержит обеспечение цветовых весов, определенных таким образом, что значения по меньшей мере одной цветовой компоненты цветовых представлений изменяются монотонно вдоль строки или столбца элементов изображения в блоке изображения.

18. Способ по п.17, в котором этап обеспечения содержит обеспечение цветовых весов, определенных таким образом, что: i) значения по меньшей мере одной цветовой компоненты цветовых представлений изменяются монотонно вдоль строки элементов изображения в блоке изображения и ii) значения по меньшей мере одной цветовой компоненты цветовых представлений изменяются монотонно вдоль столбца элементов изображения в блоке изображения.

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

20. Способ по п.15, дополнительно содержащий выбор режима распаковки на основе индекса режима в сжатом представлении блока и распаковку сжатого представления в соответствии с выбранным режимом распаковки, где этап распаковки содержит этапы определения, обеспечения и вычисления, если на основе индекса режима выбран первый режим распаковки.

21. Способ по п.20, в котором сжатое представление содержит, если выбран второй режим распаковки, первое цветовое кодовое слово, второе цветовое кодовое слово, кодовое слово цветового модификатора и последовательность цветовых индексов, причем если выбран второй режим распаковки, то этап сжатия содержит: определение первого цветового значения на основе первого цветового кодового слова; определение второго цветового значения на основе второго цветового кодового слова, причем первый и второй цвета расположены на первой линии, имеющей первое направление в цветовом пространстве; создание множества цветовых представлений вдоль второй линии, имеющей второе направление в цветовом пространстве, путем модификации первого цветового значения с помощью по меньшей мере одного цветового модификатора, представленного кодовым словом цветового модификатора, причем второе направление отличается от первого направления; и для по меньшей мере одного элемента изображения в блоке изображения: выбор на основе последовательности цветовых индексов цветового представления из i) множества цветовых представлений вдоль второй линии и ii) по меньшей мере одного цветового представления на основе второго цветового значения.

22. Способ по п.20 или 21, в котором сжатое представление содержит, если выбран третий режим распаковки, первое цветовое кодовое слово, второе цветовое кодовое слово, по меньшей мере одно кодовое слово интенсивности и последовательность индексов интенсивности, причем если выбран третий режим распаковки, то этап распаковки содержит: определение цветового значения на основе первого цветового кодового слова или на основе первого и второго цветовых кодовых слов; обеспечение набора из множества модификаторов интенсивности на основе по меньшей мере одного кодового слова интенсивности; для по меньшей мере одного элемента изображения в блоке изображения: выбор модификатора интенсивности из набора модификаторов интенсивности на основе последовательности индексов интенсивности и создание цветового представления путем модификации интенсивности цветового значения на основе выбранного модификатора интенсивности.

23. Способ декодирования кодированного изображения, который содержит кодированные представления блоков изображения, причем
каждый блок изображения содержит множество элементов изображения, при этом способ содержит:
обработку сжатых представлений блоков изображения в соответствии с любым из пп.15-22 для создания множества цветовых представлений элементов изображения и
создание декодированного представления кодированного изображения путем объединения множества цветовых представлений элементов изображения.

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

25. Система по п.24, в которой средство присваивания весов скомпоновано для присваивания цветового веса множеству элементов изображения.

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

27. Система по любому из пп.24-26, в которой квантователь цвета скомпонован для определения на основе присвоенных цветовых весов трех цветовых кодовых слов, являющихся цветовыми представлениями трех цветовых значений.

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

29. Система по п.28, в которой система при работе в соответствии со вторым режимом сжатия содержит: первый квантователь цвета для определения первого цветового кодового слова в качестве представления первого цветового значения; второй квантователь цвета для определения второго цветового кодового слова в качестве представления второго цветового значения, причем первое и второе цветовые значения расположены на первой линии, имеющей первое направление в цветовом пространстве; квантователь модификатора для обеспечения кодового слова цветового модификатора в качестве представления по меньшей мере одного цветового модификатора, применимого для модификации первого цветового значения вдоль второй линии, имеющей второе направление в цветовом пространстве, причем второе направление отличается от первого направления, для получения множества цветовых представлений вдоль второй линии; и селектор индекса для выбора, для каждого элемента изображения в блоке изображения, цветового индекса, связанного с цветовым представлением, выбранным из i) множества цветовых представлений вдоль второй линии и ii) по меньшей мере одного представления на основе второго цветового значения.

30. Система по п.28 или 29, где система при работе в соответствии с третьим режимом сжатия содержит: первый квантователь цвета для определения первого цветового кодового слова в качестве представления первого цветового значения; второй квантователь цвета для определения второго цветового кодового слова в качестве представления дифференциального цвета, где второе цветовое значение можно получить как сумму первого цветового значения и дифференциального цвета; квантователь модификатора для обеспечения по меньшей мере одного кодового слова интенсивности в качестве представления набора из множества модификаторов интенсивности для модификации первого или второго цветового значения для получения множества цветовых представлений; селектор индекса для выбора, для каждого элемента изображения в блоке изображения, индекса интенсивности, связанного с модификатором интенсивности из набора модификаторов интенсивности.

31. Система кодирования изображения, причем система содержит: средство разбиения изображения для разбиения изображения на блоки изображения, причем каждый блок изображения содержит множество элементов изображения; и
систему по любому из пп.24-30 для определения по меньшей мере для одного блока изображения кодированного представления путем сжатия по меньшей мере одного блока изображения.

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

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

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

35. Система по п.32, дополнительно содержащая селектор режима для выбора режима распаковки на основе индекса режима в сжатом представлении, причем цветовой генератор, средство управления весами и цветовой вычислитель работают в первом режиме распаковки.

36. Система по п.35, в которой сжатое представление содержит, если селектор режима выбирает второй режим распаковки, первое цветовое кодовое слово, второе цветовое кодовое слово, кодовое слово цветового модификатора и последовательность цветовых индексов, а если селектор режима выбирает второй режим распаковки, то система содержит: первый цветовой генератор для определения первого цветового значения на основе первого цветового кодового слова; второй цветовой генератор для определения второго цветового значения на основе второго цветового кодового слова, причем первое и второе цветовые значения расположены на первой линии, имеющей первое направление в цветовом пространстве; цветовой модификатор для создания множества цветовых представлений вдоль второй линии, имеющей второе направление в цветовом пространстве, путем модификации первого цветового значения с помощью по меньшей мере одного цветового модификатора, представленного кодовым словом цветового модификатора, причем второе направление отличается от первого направления; и цветовой селектор для выбора по меньшей мере для одного элемента изображения в блоке изображения и на основе последовательности цветовых индексов, цветового представления из i) множества цветовых представлений вдоль второй линии и ii) по меньшей мере одного цветового представления на основе второго цветового значения.

37. Система по п.35 или 36, в которой сжатое представление содержит, если селектор режима выбрал третий режим распаковки, первое цветовое кодовое слово, второе цветовое кодовое слово, по меньшей мере одно кодовое слово интенсивности и последовательность индексов интенсивности, причем если селектор режима выбрал третий режим распаковки, то система содержит: цветовой генератор для определения цветового значения на основе первого цветового кодового слова или на основе первого и второго цветовых кодовых слов; средство управления модификаторами для обеспечения набора из множества модификаторов интенсивности на основе по меньшей мере одного кодового слова интенсивности; селектор интенсивности для выбора, по меньшей мере для одного элемента изображения в блоке изображения, модификатора интенсивности из набора модификаторов интенсивности на основе последовательности индексов интенсивности и модификатор интенсивности для создания цветового представления путем модификации интенсивности цветового значения на основе выбранного модификатора интенсивности.

38. Система для декодирования кодированного изображения, которое содержит кодированные представления блоков изображения, причем каждый блок изображения содержит множество элементов изображения, при этом система содержит:
обрабатывающую систему в соответствии с любым из пп.32-37 для обработки сжатых представлений блоков изображения для создания множества цветовых представлений элементов изображения и
компоновщик изображения для создания декодированного представления кодированного изображения путем объединения множества цветовых представлений элементов изображения.

39. Пользовательский терминал, содержащий систему согласно любому из пп.24-30.



 

Похожие патенты:

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

Изобретение относится к адаптивной схеме пикинга (высокочастотной коррекции) видеосигнала, которую можно использовать совместно с сепаратором сигналов яркости/цветности для выделения сигнала яркости (или "люма", или "y") и сигнала цветности (или "хрома", или "C") из сложного видеосигнала, используемого в системе NTSC.

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

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

Изобретение относится к технике телевидения . .

Изобретение относится к телевизионной (ТВ) технике. .

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

Изобретение относится к системе передачи и системе обработки видеосигналов, относящихся к ТВ-программам, и указанные системы предназначены для формирования мозаики ТВ-программ, выводимой на экран телевизора пользователя.

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

Изобретение относится к области телевидения. .

Изобретение относится к телевидению. .

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

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

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