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

Иллюстрации

Показать все

Изобретение относится к обработке изображений и, в частности, к системам кодирования и декодирования изображений. Техническим результатом является обеспечение эффективной обработки блоков изображения с медленно изменяющимися переходами между двумя или более цветами. Указанный технический результат достигается тем, что входное изображение разбивают на несколько блоков (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

Цвето