Предварительная обработка данных изображения для улучшенного сжатия

Иллюстрации

Показать все

Настоящее изобретение относится к обработке изображений. Техническим результатом является повышение коэффициентов сжатия данных изображения при их передаче в виде битового потока. Изобретение предусматривает предварительную обработку данных изображения для усовершенствованного сжатия данных, посредством предоставления общего шаблона в данных изображения, которые обычно не распознаются процессором битового потока, когда данные изображения отображаются в форме с чередуемыми цветовыми каналами. Изобретение осуществляется путем того, что принимают цифровое изображение, представленное в виде множества пикселей. Каждый пиксель определен цветовым пространством, включающим в себя цветовые каналы, которые обычно отображаются так, что расположение множества пикселей выглядит как чередуемая последовательность цветовых каналов. Затем определяют, разделено ли цифровое изображение на источники данных плоскости, каждый из которых включает в себя данные цифрового изображения для каждого из отдельных цветовых каналов так, что избыточность или другая распознаваемая последовательность данных цифрового изображения могут быть легко идентифицированы одним или более модулями сжатия данных, которые основаны на шаблоне и/или статистике. Далее источники данных плоскости посылают модулю сжатия, чтобы более эффективно сжимать цифровое изображение, чем когда цифровое изображение находится в своей чередуемой форме. 3 н. и 17 з.п. ф-лы, 7 ил.

Реферат

Перекрестная ссылка на связанные заявки

Настоящая заявка испрашивает приоритет предварительной заявки на патент США №60/776,648, озаглавленной так же и поданной 23 февраля 2006, которая полностью включена в настоящее описание по ссылке.

Область, к которой относится изобретение

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

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

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

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

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

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

Краткое изложение сущности изобретения

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

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

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

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

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

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

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

Фиг.2A иллюстрирует разделение цифрового изображения на источники данных плоскости для повышения коэффициентов сжатия в соответствии с примерными вариантами осуществления;

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

Фиг.2C иллюстрирует использование источников данных плоскости для демонстрации шаблонов и математических функций цветовых каналов в соответствии с примерными вариантами осуществления;

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

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

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

Подробное описание

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

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

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

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

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

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

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

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

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

Независимо от типа цифрового изображения 105, растровое изображение 105 обычно отображается и обрабатывается в форме с чередуемыми цветовыми каналами. Например, как показано на Фиг.2A, цифровое изображение 205 может иметь различные пиксели (например, пиксель А-D) каждым с цветовыми компонентами для цветовых каналов конкретного цветового пространства (например, в этом примере RGB). Как показано, каждый пиксель является перемежаемым с цветовым каналом для каждого цветового компонента красного, зеленого и синего. Следует заметить, что такой чередуемый способ этого цветового пространства, также как и других цветовых пространств, может привести к неоптимальному сжатию. Например, если цифровое изображение 205 имело весь синий фон, то компонент канала синего для каждого пикселя в цифровом изображении 205 может быть полностью или частично подсвечен, в то время как каналы красного и зеленого могут не иметь никакой подсветки. Однако, большинство модулей 135 сжатия данных обычно не распознает такой шаблон, приводящий к недостаточному сжатию. Более конкретно, такие кодеры, как кодер длин серий, могут только идентифицировать красный и зеленые компоненты в пределах единственного пикселя как подходящие для сжатия, но все еще оставляя значения каждого компонента синего несжатыми.

Чтобы преодолеть такие неэффективности, примерные варианты осуществления предусматривают каскад 110 предварительной обработки, который может подвергать обычный(е) шаблон(ы) в данных изображения, которые являются обычно нераспознаваемыми процессором битового потока, когда изображение отображено в форме с чередованием цветового канала. Более конкретно, как показано на Фиг.2A, цифровое изображение 205 может быть разделено или разбито на источники данных плоскости для канала 210 красного, канала 215 зеленого и канала 220 синего. Такое разделение каналов на источники 210, 215, 220 данных плоскости (используя, например, модуль 115 преобразователя в плоскость) позволяет проявиться шаблонам, таким как избыточность или другие распознаваемые последовательности данных цифрового изображения, как описано более подробно ниже. Такое проявление шаблонов позволяет модулям 135 сжатия данных более эффективно сжимать данные до более высоких уровней коэффициента.

Например, как показано на Фиг.2B, цифровое изображение 125 иллюстрирует синий затененный круг 130 на черном фоне (хотя это выглядит на Фиг.2B как белый для целей ясности). Принимая аддитивное смешивание цветов в цветовом пространстве RGB (то есть белый есть отсутствие или обнуление всех цветов в цветовом пространстве), плоскости 235, 240 каналов красного и зеленого будут включать в себя все нули. Плоскость 245 канала синего также будет включать в себя нули, за исключением области, где круг подсвечен, который в этом случае полностью подсвечен, как показано шестнадцатеричным числом "FF". Соответственно, как должно быть понятно, каждый источник данных плоскости (то есть плоскость 235 канала красного, плоскость 240 канала зеленого и плоскость 245 канала синего) может быть теперь сжат по отдельности, используя модули 135 сжатия данных.

Другими словами, посредством разделения компонентов канала на различные плоскости 235, 240, 245, шаблоны для каждого из них являются более легко распознаваемыми. Например, принимая цифровое изображение 125 из приблизительно тысячи пикселей (например, 100x100 пикселей) и используя простой компрессор RLE, плоскости каналов как красного 235, так и зеленого 240 могут иметь коэффициент сжатия приблизительно 1000:1. С другой стороны, плоскость 245 канала синего может иметь только сжатие, скажем 100:1; однако, полное сжатие цифрового изображения 125 без разделения каналов на различные плоскости может быть только немного большим, чем это значение (если не хуже). Соответственно в этом примере имеется приблизительно две трети от лучшего коэффициента сжатия посредством разделения каналов в источники 235, 240, 245 данных плоскости в противоположность оставлению их в их чередуемой форме.

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

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

Следует заметить, что хотя примерные варианты осуществления предусматривают модуль 115 преобразователя в плоскость в каскаде 110 предварительной обработки, другие варианты осуществления позволяют сохранять цифровое изображение 105 в плоском формате и извлекать "на лету" для подачи в модули 135 сжатия данных или иной обработки в соответствии с вариантами осуществления, описанными более подробно ниже. Фактически, как упомянуто выше, предварительная обработка 110 растрового изображения 105 может происходить в несколько более раннее время, а результаты, сжатые и сохраненные, и сжатое изображение 105 - посланы удаленному или другому устройству без необходимости в декомпрессии и повторном сжатии изображения 105.

Использование вышеупомянутого варианта осуществления может быть также расширено посредством преобразования цветового пространства к другой форме и/или манипулирования цветовыми каналами. Например, как показано на Фиг.1, каскад 110 предварительной обработки включает в себя модуль 120 преобразователя цветового пространства, который может использоваться для преобразования цветовых пространств. Более конкретно, некоторые цветовые пространства, такие как некоторые со значениями яркости и цветности, лучше подходят для некоторых типов модулей 135 сжатия данных. Другими словами, посредством преобразования RGB пространства в яркость, цветность (например, YUV, YCoCg, YCbCr, и т.д.) и улучшение коэффициента сжатия может быть достигнуто на величину, равную почти 2:1. Конечно, тип расширения в коэффициенте сжатия может зависеть от типа используемого модуля 135 сжатия данных, текущей формы цифрового изображения 105 или других различных соображений. Дополнительно следует заметить, что хотя вышеупомянутое преобразование было из цветового пространства RGB в цветовое пространство яркости, цветности, другие типы преобразований также рассматриваются здесь и могут включать в себя любое из следующих или других типов известных цветовых пространств: RGB, RGBA, CMYK (голубой, пурпурный, желтый, черный), формы CIE, YUV, YIQ, YDbDr, HLS, HSL (оттенок, насыщенность, яркость), HSV (оттенок, насыщенность, значение), YCbCr, YPbPr, YCoCr, и т.д.

В дополнение к преобразованию изображения 105 из одного цветового пространства в другое, также может быть желательно модифицировать изображение 105 или цветовое пространство, чтобы достичь некоторой приемлемой потери при попытке улучшить распознавание образов модуля 135 сжатия данных, как описано в настоящем описании. Например, некоторые цветовые пространства яркости и цветности (например, YCoCg) разделяют каналы на компоненты на основании чувствительности глаза. Другими словами, глаз рассматривается как более чувствительный к изменениям в яркости (показано на Фиг.2D как 270), чем в значениях цветности (показано в пикселе 265 как элемент C1 и C2 275). Соответственно, пользуясь преимуществом перцепционных различий человеческих глаз, возможно ухудшить информацию в пределах цветового канала для расширения шаблонов, которые модели сжатия могут более эффективно обрабатывать, все же позволяя изображению оставаться перцепционно без потерь.

Как описано в настоящем описании, могут существовать несколько путей разрешения модификации цветовой информации для конкретного цветового пространства или цифрового изображения 105, чтобы увеличить коэффициенты сжатия. Например, один вариант осуществления использует модуль 125 модификации изображения, чтобы разрешить осуществление вспомогательной дискретизации (субдискретизации), как проиллюстрировано с использованием четырех представлений 280 пикселей на Фиг.2D. В таком варианте осуществления выполнения вспомогательной дискретизации одно или более значений цветового канала (например, значение 275 C1 и/или C2 цветности) может быть настроено так, чтобы соответствовать аналогичному значению цветности того же самого типа канала в смежном пикселе. Например, если два смежных пикселя имеют значение 275 цветности для, скажем, Co в цветовом пространстве YCoCb, которые только слегка отличаются, такое значение может быть нормализовано или иначе изменено, чтобы улучшить распознавание образов или избыточности.

В качестве другого примера рассмотрим эти четыре пикселя 280, показанные на Фиг.2D. Каждый имел первоначальное значение для канала конкретного цветового пространства, как показано вверху каждого пикселя (то есть 70, 102, 94, и 82), но посредством осуществления вспомогательной дискретизации каждое было изменено на значение 87 в нижнем углу, которое является средним числом всех этих значений. Как можно видеть, это осуществление вспомогательной дискретизации или модификация пространства изображения может позволить распознать эти четыре пикселя теперь в качестве шаблона при разделении такого значения канала в источники данных плоскости. Следует заметить, что этот вариант осуществления выполнения вспомогательной дискретизации может использовать любое количество известных алгоритмов для нормализации или иного преобразования значений канала, чтобы улучшить распознавание образов. Например, могут использоваться среднее число, среднее или другое статистическое значение, или нормализация может быть основана на других правилах или данных, например, таких что типы изменений будут менее значимыми. Конечно, может существовать любое количество способов модифицировать или нормализовать значения канала (даже используя случайное значение), как описано в настоящем описании; и поэтому вышеупомянутые примеры используются здесь только для иллюстративных целей.

Конечно, другая модификация изображения может быть сделана, используя модуль 125 модификации изображения. Например, квантование значений цветности или другого канала может быть желательно. Например, как показано на фиг.2D, одно значение цветности может быть представлено, используя 9 битов, как показано в сетке 285 линий. Это представление из девяти битов, однако, может требовать некоторой дополнительной обработки и более одного байта для его представления. Соответственно примерные варианты осуществления учитывают значение квантования, которое позволит, например, сократить количество битов, используемых для представления одного и того же диапазона значений. Например, если значение квантования установлено равным трем, представление в девять битов в 285 может быть уменьшено до представления из шести битов, как показано. Следует заметить при таком сокращении, что квантование цветности или другого компонента канала уменьшает размер в битах и таким образом цветовую палитру; однако, диапазон цветов должен остаться постоянным. Также следует заметить, что могут существовать другие способы модифицировать битовые значения для канала; и поэтому использование конкретной математической манипуляции или значения квантования используется здесь только для иллюстративных целей, и как предполагается, не ограничивает или иным образом не сужает объем вариантов осуществления, описанных в настоящем описании, если иначе явно не заявлено.

Имеются другие известные способы для изменения цветности и других каналов в пределах цветового пространства для улучшения распознавания образов при предварительной обработке цифровых изображений 105 в соответствии с примерными вариантами осуществления. Например, параметры 130 управления могут использоваться при установке условий при выполнении вспомогательной дискретизации и/или квантовании для определения приемлемого уровня цвета или другой потери данных в соответствии с примерными вариантами осуществления. Дополнительно могут существовать другие параметры 130 управления, которые определяют тип модулей 135 сжатия данных, которые должны быть использованы и/или служить для установки других желательных предпочтений, которые также могут быть учтены при преобразовании или ином изменении цвета, как описано в настоящем описании. Соответственно вышеупомянутые примеры выполнения вспомогательной дискретизации и квантования используются здесь только для иллюстративных целей и, как предполагается, не ограничивают или иным образом не сужают объем вариантов осуществления, описанных в настоящем описании, если иначе явно не заявлено.

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

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