Область техники
Настоящее изобретение относится, в основном, к обработке цифровых изображений, а более конкретно к системе и способу, способствующим кодированию и/или декодированию изображений.
Предшествующий уровень техники
С широким распространением компьютерных систем, Интернет и цифровых запоминающих устройств значительно увеличился объем информации, которая стала доступной посредством компьютеров. С увеличением объема информации появилась потребность в быстрой передаче информации и в ее эффективном хранении. Сжатие данных является технологией, способствующей эффективной передаче и хранению информации.
Сжатие данных уменьшает объем свободного пространства, необходимого для представления информации, и может использоваться для многих видов информации. Непрерывно увеличивается необходимость в сжатии цифровой информации, включая изображения, текст, аудио- и видеоданные. Обычно сжатие данных используется стандартными компьютерными системами; однако сжатие данных может использоваться другими технологиями, например, но не ограничиваясь ими, для цифрового и спутникового телевидения, для сотовых/цифровых телефонов и т.д.
С ростом потребности в управлении, передаче и обработке больших объемов информации также увеличивается потребность в сжатии этих данных. Хотя значительно увеличилась емкость запоминающих устройств, потребность в информации превышает достижения в развитии емкости. Например, несжатое цифровое изображение может потребовать 5 мегабайт свободного пространства, в то время как это изображение может быть сжато без потерь и потребует только 2,5 мегабайт свободного пространства. Следовательно, сжатие данных способствует передаче больших объемов информации. Даже при увеличении скоростей передачи данных, например широкополосные сети, цифровая абонентская линия (ЦАЛ), Интернет, с применением кабелей и модемов, при использовании несжатой информации легко достигаются пределы пропускной способности. Например, передача несжатого изображения через ЦАЛ линию связи может занять десять минут. Однако то же изображение при сжатии может быть передано примерно за одну минуту, следовательно, обеспечивая десятикратный выигрыш в пропускной способности данных.
По существу, существует два способа сжатия, сжатие с потерями и сжатие без потерь. Сжатие без потерь позволяет восстановить точные исходные данные после сжатия, в то время как при сжатии с потерями данные, восстановленные после сжатия, могут отличаться от исходных данных. Существует компромиссное решение при использовании двух способов сжатия, так как сжатие с потерями обеспечивает лучший коэффициент сжатия, чем сжатие без потерь, поскольку допускается некоторый компромисс в целостности данных. Сжатие без потерь может использоваться, например, при сжатии критичного (к качеству) текста, так как невозможность точного восстановления (сжатых) данных может необратимо повлиять на качество и читаемость текста. Сжатие с потерями может использоваться для изображений или для не критичного (к качеству) текста, где некоторое количество искажений или шума допустимо или незаметно для восприятия человеком.
Сжатие изображения является важной технической проблемой, так как цифровые изображения составляют существенную часть увеличивающегося объема информации, о котором отмечалось выше. Большая часть Web-страниц в настоящее время содержит много изображений, и многие служебные документы также содержат некоторые изображения. Быстрыми темпами увеличивается использование цифровых камер, у многих пользователей имеются буквально тысячи изображений, выполненных такими камерами.
Одним из наиболее известных и широко используемых способов сжатия изображения является стандарт сжатия изображения, разработанный объединенной группой экспертов в области фотографии ОГЭФ (JPEG). Стандарт JPEG функционирует путем отображения квадратного блока 8×8 пикселей в частотную область с использованием дискретного косинусного преобразования (ДКП). Коэффициенты, полученные при ДКП, делятся на масштабный коэффициент и округляются до ближайшего целого числа (процесс, известный как квантование) и затем посредством фиксированного зигзагообразного шаблона сканирования отображаются в одномерный вектор. Этот одномерный вектор кодируется с использованием комбинации кодирования Хаффмана и кодирования на основе длин серий.
Хотя JPEG является известным и широко используемым способом сжатия, он имеет некоторые недостатки. Например, один недостаток JPEG состоит в том, что при низкой скорости передачи в битах ДКП порождает нарушения и неоднородности в восстановленном изображении (известные, как искажения изображения при объединении в ячейки или блоки). Искажения изображения при объединении в блоки приводят к возникновению в восстановленном изображении видимой границы между группами блоков 8×8 пикселей. Эти искажения изображения при объединении в блоки приводят к нежелательному ухудшению качества изображения. Другим недостатком JPEG является то, что JPEG не может выполнять восстановление изображения с последовательной точностью. Другими словами, если изображение кодировано с определенной точностью, а позже требуется более низкая точность (например, из-за ограниченной ширины полосы частот или доступности запоминающего устройства), то изображение должно быть декодировано и повторно кодировано.
Некоторые из недостатков JPEG смягчены в новом JPEG2000, в котором ДКП заменено на волновые преобразования. Хотя волновые преобразования обеспечивают восстановление сглаженного сигнала без искажений изображения при объединении в блоки, они могут привести к увеличению размывания и к циклическим искажениям изображения. Дополнительно JPEG2000 использует относительно сложные системы кодирования коэффициентов, что приводит к способу сжатия, который может быть в три раза 3× (или большее количество раз) медленнее, чем JPEG.
Сущность изобретения
Ниже упрощенно описана сущность изобретения для обеспечения понимания основ некоторых аспектов изобретения. Сущность изобретения не является пространным обзором изобретения. Сущность изобретения не предназначена для определения ключевых/критических элементов изобретения и не очерчивает возможности изобретения. Его цель состоит в том, чтобы представить некоторые концепции изобретения в упрощенной форме, как вводную часть для более подробного описания, приведенного ниже.
Настоящее изобретение обеспечивает систему сжатия цифрового изображения и способ, применяющий преобразование с перекрытием (наложением, совмещением) нескольких разрешений (преобразование путем наложения (совмещения) нескольких приближений изображения, каждое из которых имеет свое разрешение), который принимает входные значения (например, от преобразователя цветового пространства), и обеспечивает последовательную визуализацию. Преобразование с наложением нескольких разрешений использует иерархические биортогональные преобразования с наложением, которые уменьшают "искажения изображения при объединении в блоки" (блочность), свойственные многим стандартным системам сжатия изображения, например JPEG, применяющим дискретное косинусное преобразование (ДКП). Дополнительно, использование биортогональных преобразований с наложением уменьшает заметные искажения изображения из-за окантовки по сравнению с стандартными системами сжатия изображения, основанными на ДКП.
Согласно одному конкретному аспекту изобретения обеспечивается система сжатия изображения, имеющая преобразователь цветового пространства, преобразователь с наложением (совмещением) нескольких разрешений, квантователь, развертыватель (растрового изображения в одномерный вектор) и/или статистический кодер. Преобразование с наложением нескольких разрешений выдает коэффициенты преобразования, например первые коэффициенты преобразования и вторые коэффициенты преобразования. Представление с использованием нескольких разрешений может быть получено с использованием вторых коэффициентов преобразования с наложением нескольких разрешений. Преобразователь цветового пространства преобразует входное изображение в представление цветового пространства входного изображения (например, схемы сжатия с разделением информации о яркости и цвете YUV и-или YCoCg). Затем представление цветового пространства входного изображения подается на блок преобразования с наложением нескольких разрешений. Квантователь принимает первые коэффициенты преобразования и/или вторые коэффициенты преобразования и выводит квантованные коэффициенты для использования развертывателем (растрового изображения в одномерный вектор) и/или статистическим кодером. Развертыватель (сканер) сканирует квантованные коэффициенты для формирования одномерного вектора, который используется статистическим кодером. Развертыватель может использовать порядок развертывания, подобный пеановскому. Статистический кодер кодирует квантованные коэффициенты, принятые от квантователя и/или развертывателя, что приводит к сжатию данных. Статистический кодер может использовать адаптивный кодер, осуществляющий кодирование на основе длин серий. Согласно другому аспекту настоящего изобретения обеспечивается система сжатия изображения, имеющая преобразователь цветового пространства, преобразование без потерь и статистический кодер. Преобразование без потерь принимает входные значения от преобразователя цветового пространства и использует преобразование без потерь (например, иерархическое преобразование Адамара).
Согласно еще одному аспекту настоящего изобретения обеспечивается система восстановления (сжатых данных) изображения, имеющая статистический декодер, блок обратного преобразования и реверсивный преобразователь цветового пространства. Статистический декодер принимает поток битов (например, сформированный соответствующим статистическим кодером) и декодирует поток битов. Статистический декодер может использовать адаптивный декодер, осуществляющий декодирование на основе длин серий.
Блок обратного преобразования принимает входные значения от статистического декодера и использует обратные преобразования (например, преобразование, обратное иерархическому биортогональному преобразованию с наложением или обратное иерархическому преобразованию Адамара). Блок обратного преобразования выводит выходные значения на обратный преобразователь цветового пространства. Обратный преобразователь цветового пространства преобразует входные значения (например, YUV и/или YCoCg) в выходное изображение в палитре «красный, зеленый, синий» КЗС (RGB).
Согласно другому аспекту настоящего изобретения обеспечивается система сжатия изображения для использования в большом наборе приложений графического представления документов, включая системы изображений, сегментированных по уровням, фотокопировальные устройства, сканеры документов, системы оптического распознавания знаков, персональные цифровые ассистенты, факсимильные машины, цифровые камеры, цифровые видеокамеры и/или видеоигры и т.д.
Согласно другим аспектам настоящего изобретения обеспечиваются способы кодирования/сжатия данных, декодирования/восстановления данных, развертывания порции коэффициентов, отображения цветов и обратного отображения цветов. Дополнительно обеспечивается носитель, предназначенный для считывания компьютером, на котором имеются команды, которые могут быть использованы компьютером для системы сжатия изображения, и носитель, предназначенный для считывания компьютером, на котором имеются команды, которые могут быть использованы компьютером для системы восстановления изображения. Также обеспечивается пакет данных, который может быть использован для передачи между двумя или большим количеством вычислительных процессов, который содержит соответствующую информацию, способствующую сжатию данных, эта информация содержит первые коэффициенты преобразования, основанные, по меньшей мере частично, на биортогональном преобразовании входных значений с наложением, и вторые коэффициенты преобразования, основанные, по меньшей мере частично, на биортогональном преобразовании с наложением по меньшей мере одного первого коэффициента преобразования. Дополнительно обеспечивается пакет данных, который может быть использован для передачи между двумя или большим количеством компьютерных компонентов, способствующий сжатию данных, который содержит поле данных, содержащее первые коэффициенты преобразования, основанные, по меньшей мере частично, на иерархическом преобразовании Адамара входных значений, и вторые коэффициенты преобразования, основанные, по меньшей мере частично, на иерархическом преобразовании Адамара, по меньшей мере, одного первого коэффициента преобразования.
Для полного охвата описанных аспектов и связанных с ними аспектов в последующем описании, сопровождаемом чертежами, приведены некоторые поясняющие аспекты изобретения. Однако эти аспекты кратко обозначают несколько различных способов использования принципов изобретения, при этом подразумевается включение всех таких аспектов и их эквивалентов в настоящее изобретение. Другие преимущества и новые свойства изобретения станут понятны из последующего подробного описания изобретения, поясняемого чертежами.
Краткое описание чертежей
На фиг.1 изображена структурная схема системы сжатия изображения, согласно аспекту настоящего изобретения.
На фиг.2 изображена диаграмма биортогонального преобразования с наложением, согласно аспекту настоящего изобретения.
На фиг.3 изображена структурная схема преобразования с наложением с использованием нескольких разрешений, согласно аспекту настоящего изобретения.
На фиг.4 изображена диаграмма преобразования с наложением с использованием нескольких разрешений, согласно аспекту настоящего изобретения.
На фиг.5 изображена структурная схема преобразования с использованием нескольких разрешений, согласно аспекту настоящего изобретения.
На фиг.6 изображена диаграмма, иллюстрирующая блок данных, размером четыре на четыре, согласно аспекту настоящего изобретения.
На фиг.7 изображена диаграмма, иллюстрирующая шаблон развертывания, подобный пеановскому, для макроблока данных, размером шестнадцать на шестнадцать, согласно аспекту настоящего изобретения.
На фиг.8 изображена диаграмма, иллюстрирующая шаблон развертывания для блока коэффициентов второго уровня, размером четыре на четыре, согласно аспекту настоящего изобретения.
На фиг.9 изображена структурная схема системы сжатия изображения, согласно аспекту настоящего изобретения.
На фиг.10 изображена диаграмма преобразования Адамара длиной 4, согласно аспекту настоящего изобретения.
На фиг.11 изображена структурная схема системы восстановления изображения, согласно аспекту настоящего изобретения.
На фиг.12 изображена блок-схема, иллюстрирующая способ кодирования/сжатия данных, согласно аспекту настоящего изобретения.
На фиг.13 изображена блок-схема, иллюстрирующая способ декодирования/восстановления данных, согласно аспекту настоящего изобретения.
На фиг.14 изображена блок-схема, иллюстрирующая способ развертывания порции коэффициентов, согласно аспекту настоящего изобретения.
На фиг.15 изображена диаграмма, иллюстрирующая компонент прямого преобразователя цветового пространства без потерь и компонент реверсивного преобразователя цветового пространства, согласно аспекту настоящего изобретения.
На фиг.16 изображена блок-схема, иллюстрирующая способ отображения цветового пространства, согласно аспекту настоящего изобретения.
На фиг.17 изображена блок-схема, иллюстрирующая способ обратного отображения цветового пространства, согласно аспекту настоящего изобретения.
На фиг.18 изображен возможный вариант операционной среды, в которой может функционировать настоящее изобретение.
На фиг.19 схематично изображена структурная схема возможной среды связи, согласно настоящему изобретению.
Подробное описание вариантов осуществления изобретения
Ниже описано настоящее изобретение, согласно чертежам, в которых использована сквозная нумерация. В последующем описании в пояснительных целях изложены многочисленные конкретные подробности для обеспечения полного понимания настоящего изобретения. Однако, очевидно, что настоящее изобретение может быть осуществлено без этих конкретных подробностей. В других возможных вариантах для упрощения описания настоящего изобретения известные структуры и устройства изображены в виде структурной схемы.
Используемый в этой заявке термин "компьютерный компонент" определяет объект, связанный с компьютером, аппаратные средства, комбинацию аппаратных средств и программного обеспечения, программное обеспечение или программное обеспечение в процессе выполнения. Например, компьютерным компонентом может быть, но не ограничиваться, процесс, выполняющийся на процессоре, процессор, объект, выполняемая программа, поток выполняемых задач, программа, и/или компьютер. В качестве иллюстрации компьютерным компонентом может быть и приложение, выполняющееся на сервере, и сервер. Один или большее количество компьютерных компонентов может постоянно находиться внутри процесса и/или потока выполняемых задач, при этом компонент может находиться на одном компьютере и/или быть распределен между двумя или большим количеством компьютеров.
На фиг.1 изображена система 100 сжатия изображения, согласно аспекту настоящего изобретения. Как отмечено выше, система 100 настоящего изобретения посредством реализации преобразования 120 с наложением (совмещением) нескольких разрешений обеспечивает последовательную визуализацию и уменьшение искажений изображения при объединении в блоки и искажений окантовки изображения по сравнению с многими стандартными системами сжатия. Система 100 сжатия изображения содержит преобразователь 110 цветового пространства, блок 120 преобразования с наложением нескольких разрешений, квантователь 130, развертыватель 140 и статистический кодер 150.
Преобразователь 110 цветового пространства отображает входное изображение в представление цветового пространства входного изображения. Затем представление цветового пространства входного изображения подается на блок 120 преобразования с наложением нескольких разрешений. В одном возможном варианте преобразователь 110 цветового пространства преобразует входное изображение в представление YUV входного изображения КЗС (например, представленное красным, зеленым и синим компонентами). Представление YUV использует компонент яркости, обозначенный Y, цветность красного, обозначенную U, и цветность синего, обозначенную V.
В другом возможном варианте преобразователь 110 цветового пространства преобразует входное изображение в представление YCoCg. Представление YCoCg использует сигнал яркости, обозначенный Y, цветность оранжевого, обозначенную Co, и цветность зеленого, обозначенную Cg.
Входные компоненты КЗС отображаются в YCoCg (например, в качестве альтернативы стандартной схеме YUV, описанной выше) с использованием преобразования:
Следует отметить, что преимущество отображения YCOCG цветового пространства состоит в том, что преобразование из КЗС в YCOCG, и обратное преобразование из YC0CG в КЗС могут быть выполнены с использованием целочисленной арифметики, следовательно, уменьшая вычислительные непроизводительные затраты. Дополнительно, обратное преобразование может быть выполнено без умножения. Представление YCoCg цветового пространства может привести к значительно лучшей эффективности сжатия, чем широко используемое представление YUV, так как оно лучше аппроксимирует статистически оптимальные пространства, полученные при анализе основной компоненты на данных усовершенствованного цифрового изображения.
Следует отметить, что согласно сущности изобретения многие другие представления цветового пространства могут способствовать сжатию данных с применением преобразования с наложением нескольких разрешений. Подразумевается, что любое представление цветового пространства, обеспечивающее возможность реализации в соответствии с настоящим изобретением, попадает в объем прилагаемой формулы изобретения. Дополнительно, согласно настоящему изобретению преобразователем 110 цветового пространства может быть выполнен любой соответствующий вычислительный процесс (вычислительные процессы) (например, целочисленные вычисления и/или вычисления с плавающей точкой).
Блок 120 преобразования с наложением нескольких разрешений принимает входные значения, например, от преобразователя 110 цветового пространства. Блок 120 преобразования с наложением нескольких разрешений может обеспечить последовательную визуализацию в системе 100 сжатия изображения. Блок 120 преобразования с наложением нескольких разрешений использует иерархические биортогональные преобразования с наложением. При использовании преобразований с наложением могут быть уменьшены блочные искажения изображения, имеющие место в стандартных системах сжатия изображения, использующих дискретное косинусное преобразование (ДКП), например, в JPEG. Дополнительно, использование биортогонального преобразования с наложением уменьшает видимые искажения окантовки изображения по сравнению с стандартными системами сжатия изображения, основанными на ДКП.
Фиг.2 кратко иллюстрирует блок биортогонального преобразования 200 с наложением (БПН), согласно аспекту настоящего изобретения. Блок БПН 200 включает в себя блок 210 первого преобразования, подобного ДКП (например, подобного ДКП, но не идентичное ДКП), имеющее четыре входа x(0), x(1), x(2) и x(3), соответствующие первому блоку данных. Блок 200 БПН также содержит второй блок 220 преобразования, подобный ДКП, имеющий четыре входа x(0), x(1), x(2) и x(3), соответствующих второму блоку данных. Блок 200 БПН имеет четыре выхода 230, Х(0), Х(1), Х(2) и Х(3). Согласно фиг.2 при прямом преобразовании (например, кодирование/сжатие данных) данные обрабатываются слева направо, а при обратном преобразовании (например, декодирование/восстановление данных) данные обрабатываются справа налево. Для прямого (П) и обратного (О) преобразований масштабные коэффициенты могут быть различны.
Для выполнения части преобразования с наложением выход 230 для блока данных, являющихся входными для второго блока 220 преобразования, подобного ДКП, зависит от входа предыдущего блока данных, являющихся входными для первого блока 210 преобразования, подобного ДКП. В возможном варианте, где на входе нет предыдущего блока данных (например, при инициализации и/или в угловой точке (угловых точках) изображения), входные значения первого блока 210 преобразования, подобного ДКП, не будут определены полностью. Конкретно, если первый блок 210 преобразования, подобного ДКП, является первым для строки или столбца, то x(0) и x(1) выходят за пределы границы изображения. В этом случае возможное решение состоит в использовании четного симметрического расширения, устанавливающего x(1)=x(2) и x(0)=x(3). Подобное симметричное отражение применяется в последнем преобразовании 210, подобном ДКП, для строки или столбца изображения. В обоих случаях легко заметить, что первое и последнее преобразование 210, подобное ДКП, для строки или столбца может быть заменено простыми 2x2 операторами (например, два различных входа, два различных выхода).
В одном возможном варианте, по существу, все вычисления в БПН 200 могут быть выполнены с использованием только целочисленной арифметики, без умножений. Например, для заданного значения z новое значение z/2 реализуется числом, полученным при сдвиге вправо: z>>1. Далее, количество 1.25 z может быть реализовано путем сложения с z числа, полученного при двойном сдвиге z вправо (например, z+(z>>2)). Хотя эта реализация может приводить к малым ошибкам отбрасывания, порожденным сдвигами (при соответствующем масштабировании данных), примечательно, что эта реализация, в основном, является независимой от процессора, так как результат, по существу, будет одинаковым, вне зависимости от процессора, используемого для выполнения преобразования. Соответственно, по существу, все реализации систем и способов, предусмотренных настоящим изобретением, могут привести, по существу, к подобным сжатым файлам для одного исходного растрового изображения в отличие от стандартных систем сжатия данных, таких как JPEG, стандарт на сжатие изображений и звука в системах сжатия данных для записи движущегося изображения, разработанный экспертной группой по вопросам движущегося изображения ЭГДИ (MPEG), и других стандартов.
Фиг.3 кратко иллюстрирует блок 300 преобразования с наложением нескольких разрешений, согласно аспекту настоящего изобретения. Блок 300 преобразования с наложением нескольких разрешений включает блоки с первого исходного БПН 3101 по S-е исходное БПН 310S, где S - целое число, большее или равное единице. Блоки с первого исходного БПН 3101 по S-е исходное БПН 310S, вместе могут быть определены как исходное БПН 310. Блок 300 преобразования с наложением нескольких разрешений также включает блок 320 вторичного БПН. Блок 300 преобразования с наложением нескольких разрешений может использоваться, например, блоком 120 преобразования с наложением нескольких разрешений.
Блок 310 исходного БПН принимает входные значения (например, от преобразователя 110 цветового пространства). Блок 310 исходного БПН обрабатывает входные значения и выводит первые коэффициенты преобразования, основанные, по меньшей мере частично, на биортогональном преобразовании входных значений с наложением (совмещением). Блок 310 первичного исходного БПН может использовать, например, возможный вариант БПН 200, описанный выше.
Блоки с первого исходного БПН 3101 по S-й блок 310S первичного БПН обеспечивают первый коэффициент преобразования (первые коэффициенты преобразования) как входные данные для вторичного БПН 320. В одном возможном варианте блок 310 первичного БПН обеспечивает низкочастотный коэффициент (например, DC) для блока 320 вторичного БПН. Блок 320 вторичного БПН обрабатывает первый коэффициент преобразования (первые коэффициенты преобразования) и выводит второй коэффициент преобразования (вторые коэффициенты преобразования), основанные, по меньшей мере частично, на биортогональном преобразовании с наложением входного первого коэффициента преобразования (входных первых коэффициентов преобразования). Блок 320 вторичного БПН может использовать, например, возможный вариант БПН 200, описанный выше.
Представление с использованием нескольких разрешений может быть получено с использованием вторых коэффициентов преобразования от блока вторичного биортогонального преобразования 320 с наложением. Например, битовая карта, восстановленная с использованием только второго уровня обратного иерархического БПН, должна восстановить битовую карту изображения, которое представляет версию оригинала с размером изображения, уменьшенным в 4 раза, в сравнении с изображением, получаемым при использовании стандартного бикубического фильтра (фильтров) дискретизации.
Фиг.4 кратко иллюстрирует преобразование 400 с использованием нескольких разрешений, согласно аспекту настоящего изобретения. Блок 400 преобразования включает в себя первый блок 4101 первичного БПН, второй блок 4102 первичного БПН, третй блок 4103 первичного БПН, четвертый блок 4104 первичного БПН и блок 420 вторичного БПН. Низкочастотный коэффициент, выведенный первым блоком 4101 первичного БПН, вторым блоком 4102 первичного БПН, третьим блоком 4103 первичного БПН и четвертым блоком 4104 первичного БПН, подается в качестве входа на вторичный БПН 420. Блок 400 преобразования с наложением нескольких разрешений может использоваться, например, блоком 120 преобразования с наложением нескольких разрешений.
Ниже, согласно фиг.5, поясняется блок 500 преобразования с наложением нескольких разрешений, согласно аспекту настоящего изобретения. Блок 500 преобразования включает в себя первичный блок БПН 510 и вторичный блок БПН 520. Выходные низкочастотные коэффициенты первичного блока БПН 510 последовательно подаются на вторичный блок БПН 520. Если от первичного блока БПН 510 было получено достаточно низкочастотных коэффициентов, то блок вторичного БПН 520 обеспечивает вывод коэффициентов второго уровня. Блок 500 преобразования с наложением нескольких разрешений может использоваться, например, блоком 120 преобразования с наложением нескольких разрешений.
Для обработки изображений используется двумерное преобразование. Для получения двумерного преобразования к строкам и столбцам входных значений (например, каждого из Y, Co и Cg, принятых от преобразователя 110 цветового пространства) могут быть применены описанные выше преобразования БПН. В одном возможном варианте для уменьшения вычислительных непроизводительных затрат не осуществляется обработка столбцов целиком, так как каждый доступ к столбцу охватывает почти весь массив битовой карты, что потребовало бы доступа к памяти вне кэш-памяти. Вместо этого, согласно настоящему изобретению, может быть использован подход внутреннего "буфера прокрутки", при котором выполняется преобразование части столбца после обработки каждого набора из четырех строк. Таким образом, может быть рассчитано двумерное преобразование только за одно сканирование исходной битовой карты.
Согласно фиг.1 квантователь 130 принимает первые коэффициенты преобразования и/или вторые коэффициенты преобразования и выводит квантованные коэффициенты для использования развертывателем 140 и/или статистическим кодером 150. В основном потери информации в систему 100 сжатия изображения вносит квантователь 130. Потери происходят из-за квантования коэффициента, так как для преобразованного значения Y его квантованная версия обычно задается формулой r=int[(Y+f)/s], где s является размером шага квантователя 130, с модулем f, |f|, в основном равным s/2, и знаком, определяемым формулой sign(f)=sign(Y). Следовательно, при увеличении размера шага s соответствующий динамический диапазон r уменьшается, как и вероятность равенства r нулю. При восстановлении (например, при декодировании) аппроксимация Y обычно восстанавливается согласно формуле Соответственно, чем меньше размер шага s, тем ближе аппроксимация В основном при увеличении размера шага сжатие данных более эффективно, однако вносятся большие потери. В одном возможном варианте для уменьшения вычислительных непроизводительных затрат квантователь 130 использует целочисленную арифметику, например, масштабируя значения целочисленным коэффициентом Z и аппроксимируя Z/s целым числом.
Развертыватель 140 сканирует квантованные коэффициенты для формирования одномерного вектора, который используется статистическим кодером 150. В одном возможном варианте развертыватель 140 использует построчное сканирование (развертывание), в то время как в другом возможном варианте развертыватель использует сканирование по столбцам. В еще одном возможном варианте развертыватель 140 использует зигзагообразный шаблон, такой как в стандартных системах сжатия данных JPEG.
В четвертом возможном варианте квантованные коэффициенты развертываются в другом шаблоне, который остается фиксированным (не зависящим от данных) (например, во избежание случайного доступа к данным). На фиг.6 кратко изображен блок коэффициентов размером четыре на четыре, согласно аспекту настоящего изобретения. Далее, фиг.7 иллюстрирует шаблон развертывания (сканирования), подобный пеановскому, для макроблока данных, размером шестнадцать на шестнадцать (группа L блоков, в этом случае L=4), согласно аспекту настоящего изобретения. На фиг.8 изображен шаблон развертывания для блока коэффициентов второго уровня, размером четыре на четыре (например, сформированных блоками 320, 420 или 520 вторичного преобразования с наложением), согласно аспекту настоящего изобретения.
Для каждого макроблока (например, сформированного иерархическим каскадом из 4×4 преобразований) преобразованное значение считывается в одну из шести групп коэффициентов. Последовательные значения каждой группы считываются из М последовательных макроблоков ("порций"), и шесть групп соединяются в виде одного вектора, длиной 256 M, который передается статистическому кодеру. Следовательно, каждая порция может быть кодирована независимо. Независимое кодирование позволяет независимо декодировать каждую порцию, вследствие этого при необходимости обеспечивая возможность декодирования только части изображения битовой карты.
Шаблон развертывания, иллюстрируемый фиг.7 и 8, является комбинацией упорядоченного по частоте и в пространстве сканирования (развертывания) коэффициентов DC (например, которые прошли два уровня БПН) и пеановского и упорядоченного по частоте и в пространстве сканирования коэффициентов AC (например, которые прошли только первый уровень БПН). Пеановский компонент (шаблон, затененный стрелкой, на фиг.7) используется так, что для каждой группы коэффициентов AC коэффициенты АС, являющиеся соседними в определенной группе, исходят из соседних блоков 4×4.
Следовательно, Группа 0 содержит определенные коэффициенты DC второго уровня каждого макроблока, которые прошли через БПН второго уровня. Затем для каждого макроблока может быть выполнено сканирование групп с Группы 1 по Группу 5, с последующим выполнением сканирования групп с Группы 1 по Группу 5 для следующего макроблока и так далее. Группа 1 для макроблока содержит оставшиеся коэффициенты DC макроблока, прошедшие через БПН второго уровня. Группа 2 содержит иллюстрируемые значения коэффициентов для каждого блока БПН макроблока. Группа 3 содержит иллюстрируемые значения коэффициентов для каждого блока БПН макроблока. Группа 4 содержит иллюстрируемые значения коэффициентов для каждого блока БПН макроблока. Группа 5 содержит иллюстрируемые значения коэффициентов для каждого блока БПН макроблока.
Согласно фиг.1 статистический кодер 150 кодирует квантованные коэффициенты, принятые от квантователя 130 и/или устройства 140. Преобразователь 110 цветового пространства, блок 120 преобразования с наложением нескольких разрешений, квантователь 130 и/или развертыватель 140 преобразовали исходные данные элемента изображения в вектор из целых чисел с уменьшенным динамическим диапазоном и длинными строками из нулей, однако не осуществлено сжатие данных. Статистический кодер 150 кодирует эти квантованные коэффициенты, что приводит к сжатию данных.
В одном возможном варианте кодером 150 используется адаптивный кодер, осуществляющий кодирование на основе длин серий. Каждый битовый слой входного вектора обрабатывается надлежащим образом (в определенном порядке), начиная с самого старшего бита (ССБ) и заканчивая самым младшим битом. Для каждого коэффициента бит помечается как "старший", если еще не был кодирован ни один бит, отличный от нуля, или как "уточнение", если старший бит для этого коэффициента уже был кодирован. Биты уточнения с равной вероятностью могут быть нулевыми или единичными, следовательно, они без изменения копируются в поток битов. Старшие биты, более вероятно, будут нулевыми, и, следовательно, они кодируются посредством адаптивного кодера, осуществляющего эффективное кодирование на основе длин серий, при котором формируются символы в соответствии с правилом, представленным в Таблице.
Параметр k управляет эффективностью сжатия кодера, осуществляющего кодирование на основе длин серий. Чем больше значение k, тем длиннее строка нулевых битов, которые могут быть представлены кодовым словом, состоящим из одиночного бита =0, и, следовательно, тем больше сжатие. Параметр k может корректироваться на основе статистики данных так, чтобы 2k было приблизительно равным наиболее вероятной длине нулевых строк.
При стандартном кодировании на основе длин серий параметр k либо фиксирован, либо обновляется регулярно и добавляется к потоку битов (так как для декодера требуется информация о любых изменениях k). Однако оба подхода могут привести к значительному проигрышу в эффективности по двум причинам. Во-первых, статистика входных данных, в основном, изменчива, следовательно, чтобы отследить такие изменения, k должен варьироваться. Во-вторых, обновление значения k посредством копирования его в поток битов значительно увеличивает непроизводительные затраты, так как для представления значения k необходимо несколько битов. Вследствие этого в адаптивном кодере, осуществляющем кодирование на основе длин серий, применяемом в этом возможном варианте, для k используется правило обратной адаптации. Под обратным понимается, что k корректируется на основе кодированных символов, а не входных данных. Следовательно, пока кодер и декодер используют одинаковые правила адаптации, нет необходимости в передаче значений k. Основное правило адаптации является очень простым. Если кодовое слово нулевое, это означает, что только что наблюдалась серия нулей, предполагается, что серии нулей более вероятны и, следовательно, k увеличивается. Если кодовое слово начинается с 1, это означает, что только что наблюдалась неполная серия, следовательно, предполагается, что серии нулей менее вероятны и, следовательно, k уменьшается.
Увеличение k на целое число может привести к слишком быстрой адаптации, приводящей в конечном итоге к проигрышу в эффективности сжатия. Соответственно, k может корректироваться дробными величинами (например, путем увеличения и уменьшения масштабированной версии k).
Символы кодирования на основе длин серий могут заканчиваться в конце каждого битового слоя, и для каждого битового слоя добавляется поле с длиной кодированных данных. Соответственно, поток битов может быть синтаксически разобран, и если требуется, то самый младший битовый слой может быть удален. Это эквивалентно повторному кодированию данных с половинным размером шага. Следовательно, повторное сжатие этих данных выполняется просто путем выделения некоторых битов из сжатого файла. Также может быть достигнута масштабируемость точности.
Следует отметить, что в связи с сущностью изобретения рассматриваются многие другие способы статистического кодирования (например, адаптивное арифметическое кодирование), способствующие сжатию данных, использующему преобразование с наложением нескольких разрешений. Любой способ статистического кодирования, который можно реализовать в отношении настоящего изобретения, попадает в объем формулы изобретения.
Хотя на фиг.1 изображена структурная схема, иллюстрирующая компоненты системы 100 сжатия изображения, следует отметить, что преобразователь 100 цветового пространства, блок 120 преобразования с наложением нескольких разрешений, квантователь 130, развертыватель 140 и/или статистический кодер 150 могут быть выполнены как один или большее количество компьютерных компонентов, как этот термин здесь определен. Следовательно, следует отметить, что согласно настоящему изобретению исполняемые компьютером компоненты, функционирующие для реализации системы 100 сжатия изображения, преобразователь 110 цветового пространства, блок 120 преобразования с наложением нескольких разрешений, квантователь 130, развертыватель 140 и/или статистический кодер 150 могут храниться на носителе, предназначенном для считывания компьютером, включая ИСПО (интегральную схему прикладной ориентации ASIC), КД (компакт-диск CD), УЦД (универсальный цифровой диск DVD), ПЗУ (постоянное запоминающее устройство ROM), гибкий диск, жесткий диск, СППЗУ (электрически стираемое программируемое постоянное запоминающее устройство EEPROM) и «подключаемую плату памяти».
На фиг.9 изображена система 900 сжатия изображения без потерь, согласно аспекту настоящего изобретения. Система 900 сжатия изображения содержит преобразователь 110 цветового пространства, блок 910 преобразования без потерь и статистический кодер 150.
Блок 910 преобразования без потерь принимает входные значения, например, от преобразователя 110 цветового пространства. Блок 910 преобразования без потерь использует преобразование без потерь. Для кодирования без потерь не требуется использование преобразования путем наложения (изображений), так как в нем будут отсутствовать искажения изображения при объединении в блоки (так как оно не включает квантования). Например, блок 910 преобразования без потерь может использовать иерархическое преобразование Адамара. Согласно фиг.10 может быть использована схема 1010 иерархического преобразования, но с блоками преобразования, размером 4*4, реализованными схемой 1020 преобразования Адамара без потерь. Следует отметить, что блок 1010 преобразования без потерь может быть реализован как один или большее количество компьютерных компонентов, как этот термин здесь определен.
На фиг.11 изображена система 1100 восстановления изображения, согласно аспекту настоящего изобретения. Система 1100 содержит статистический декодер 1110, свертыватель 1120 (одномерного вектора в растровое изображение), компонент 1130, осуществляющий операцию, обратную квантованию, компонент 1140 обратного преобразования и обратный преобразователь 1150 цветового пространства.
Статистический декодер 1110 принимает поток битов (например, сформированный соответствующим статистическим кодером) и декодирует поток битов. В одном возможном варианте статистический декодер 1110 использует адаптивный декодер, осуществляющий декодирование на основе длин серий, подобный по функционированию декодеру, описанному выше в отношении кодера 150.
Свертыватель 1120 (одномерного вектора в растровое изображение) осуществляет свертывание (преобразование, обратное развертыванию) декодированного статистическим декодером входного потока битов, принятого от статистического декодера 1110. Свертыватель 1120 выводит квантованные первые коэффициенты преобразования и/или квантованные вторые коэффициенты преобразования на обратный квантователь 1130.
В одном возможном варианте свертыватель 1120 использует свертывание (преобразование) в строки, в то время как в другом возможном варианте свертыватель 1120 использует свертывание в столбцы. Еще в одном возможном варианте свертыватель 1120 использует зигзагообразный шаблон, такой как используется в стандартных системах сжатия данных JPEG. В четвертом возможном варианте свертывание входного потока битов, декодированных статистическим декодером, осуществляется в соответствии с другим, но остающимся фиксированным (не зависящим от данных) шаблоне (например, чтобы избежать случайного доступа к данным), таким как обратный шаблону развертывания, подобному пеановскому.
Обратный квантователь 1130 осуществляет операцию, обратную квантованию, с квантованными первыми коэффициентами преобразования и/или квантованными вторыми коэффициентами преобразования, принятыми от компонента 1120. Обратный квантователь 1130 выводит неквантованные коэффициенты (например, первые коэффициенты преобразования и/или вторые коэффициенты преобразования).
Компонент 1140 обратного преобразования принимает выходные значения обратного квантователя 1130. В одном возможном варианте компонент 1140 обратного преобразования использует преобразования, обратные иерархическим биортогональным преобразованиям с наложением, и выдает выходные значения к обратному преобразователю 1150 цветового пространства. Например, компонент 1140 обратного преобразования может использовать преобразование, обратное преобразованию 200 с наложением нескольких разрешений, иллюстрируемому фиг.2 (например, справа налево). В другом возможном варианте компонент 1140 обратного преобразования использует преобразование, обратное преобразованию без потерь (например, преобразование, обратное иерархическому преобразованию Адамара), например, для декодирования растрового изображения, которое первоначально было кодировано системой 900 кодирования без потерь. Например, обратное преобразование (например, без потерь) может, по существу, обратить вычисления, сделанные в блоке 1020 без потерь (например, выполнить в обратном порядке).
Обратный преобразователь 1150 цветового пространства преобразует входные значения в выходное изображение КЗС. В одном возможном варианте обратный преобразователь 1150 цветового пространства отображает представление YUV в выходные данные в виде КЗС. В другом возможном варианте обратный преобразователь 1150 цветового пространства отображает представление YCoCg в выходные данные в виде КЗС. Следует отметить, что в соответствии с сущностью изобретения рассматриваются многие другие представления цветового пространства, способствующие восстановлению данных, например, использующему преобразование, обратное иерархическому биортогональному преобразованию с наложением. Любое подходящее представление цветового пространства, которое можно использовать в связи с настоящим изобретением, попадает в область формулы изобретения. Дополнительно, согласно настоящему изобретению, обратным преобразователем 1150 цветового пространства может быть выполнен любой соответствующий вычислительный процесс (вычислительные процессы), (например, целочисленные вычисления и/или вычисления с плавающей точкой).
Следует отметить, что статистический декодер 1110, свертыватель 1120, обратный квантователь 1130, компонент 1140 обратного преобразования и/или обратный преобразователь 1150 цветового пространства могут представлять собой компьютерные компоненты.
С учетом возможных систем, изображенных и описанных выше, способы, которые могут быть реализованы в соответствии с настоящим изобретением, будут более понятны при ссылке на блок-схемы, изображенные на фиг.12, 13, 14, 16 и 17. Хотя для простоты объяснения способы изображены и описаны в виде последовательности блоков (этапов), следует отметить, что настоящее изобретение не ограничено порядком блоков, некоторые блоки (этапы), согласно настоящему изобретению, могут выполняться в другом порядке и/или одновременно с другими блоками (этапами), в отличие от того, что изображено и описано здесь. Более того, для выполнения способов, согласно настоящему изобретению, могут потребоваться не все изображенные блоки.
Изобретение может быть описано в общем контексте команд, предназначенных для выполнения компьютером, таких как программные модули, выполняемые одним или большим количеством компонентов. По существу, программные модули содержат процедуры, программы, объекты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют отдельные абстрактные типы данных. Обычно функциональные возможности программных модулей могут быть объединены или распределены, согласно требованиям в различных вариантах осуществления.
Фиг.12 иллюстрирует способ 1200 кодирования/сжатия данных, согласно аспекту настоящего изобретения. На этапе 1210 для каждого макроблока выполняется преобразование каждого блока. В одном возможном варианте (например, способ с потерями) использовано биортогональное преобразование с наложением. В другом возможном варианте (например, способ без потерь) использовано преобразование Адамара без потерь (например, схема 1020 Адамара без потерь). На этапе 1220 выполняется преобразование низкочастотного коэффициента (низкочастотных коэффициентов) блока. В одном возможном варианте (например, способ с потерями) использовано биортогональное преобразование с наложением. Во втором возможном варианте (например, способ без потерь) использовано преобразование Адамара без потерь (например, схема 1020 Адамара без потерь). Затем, на этапе 1230, коэффициенты квантуются. На этапе 1240 коэффициенты развертываются (сканируются). На этапе 1250 квантованные коэффициенты кодируются.
Фиг.13 иллюстрирует способ 1300 декодирования/восстановления изображения, согласно аспекту настоящего изобретения. На этапе 1310 коэффициенты декодируются. На этапе 1320 для каждого макроблока выполняется обратное преобразование низкочастотного коэффициента (низкочастотных коэффициентов) каждого блока. В одном возможном варианте (например, способ с потерями) использовано преобразование, обратное биортогональному преобразованию с наложением. В другом возможном варианте (способ без потерь) использовано преобразование, обратное преобразованию Адамара без потерь. На этапе 1330 выполняется обратное преобразование коэффициентов каждого блока. В одном возможном варианте (например, способ с потерями) использовано преобразование, обратное биортогональному преобразованию с наложением. Во втором возможном варианте (например, способ без потерь) использовано преобразование, обратное преобразованию Адамара без потерь.
Далее, фиг.14 иллюстрирует способ 1400 сканирования порции коэффициентов, согласно аспекту настоящего изобретения. На этапе 1410 для каждого макроблока в порции сканируется один коэффициент второго уровня (например, компонент DC). Затем, на этапе 1420, для каждого макроблока в порции сканируются остальные коэффициенты второго уровня макроблока. На этапе 1430 сканируются коэффициенты первого уровня группы 2 (например, компоненты AC) каждого блока в макроблоке. На этапе 1440 сканируются коэффициенты первого уровня группы 3 каждого блока в макроблоке. На этапе 1450 сканируются коэффициенты первого уровня группы 4 каждого блока в макроблоке. На этапе 1460 сканируются коэффициенты первого уровня группы 5 каждого блока в макроблоке. Если в порции имеются другие макроблоки, которые не были сканированы, то сканирование продолжается на этапе 1420. В описанном возможном способе сканирования сформированы шесть групп коэффициентов преобразования (группы с 0 по 5). Хотя полагается, что такая схема развертывания (сканирования) и группировки дает хорошие результаты сжатия, может быть использован любой другой соответствующий шаблон развертывания (сканирования) и группировки, например, если для более быстрой обработки можно пренебречь эффективностью сжатия. Любой такой шаблон развертывания/группировки, который можно реализовать в связи с настоящим изобретением, попадает под объем формулы изобретения.
На фиг.15 изображен компонент 1510 прямого преобразователя (например, для использования преобразователем 110 цветового пространства). Компонент 1510 прямого преобразователя обеспечивает преобразование входных исходных компонентов в пространство YCoCg (например, посредством масштабируемых версий Уравнения (1)). При таком масштабировании требуется деление на 2 (как обозначено стрелками, помеченными 1/2), которое может быть реализовано сдвигами вправо, как описано выше. Сначала может показаться, что ошибки, вносимые такими сдвигами, будут неисправимы. Однако, в компоненте 1520 обратного преобразователя выходы компонента 1510 прямого преобразователя используются в обратном порядке, так что отбрасывания из-за сдвигов (например, такие же, как в компоненте 1510 прямого преобразования) случаются, но их результаты теперь вычитаются (как обозначено стрелками, помеченными -1/2), вследствие этого позволяя восстановить исходные данные. Таким образом, компонент 1520 обратного преобразователя может восстановить из компонентов YCoCg входные исходные компоненты КЗС (например, точно).
Фиг.16 иллюстрирует способ 1600 преобразования цветового пространства. Способ 1600, например, может быть использован компонентом 1510 прямого преобразователя.
В 1610 принимаются входные данные КЗС (содержащие компонент К, компонент З и компонент С). В 1620 обеспечиваются выходные данные канала Y, которые содержат представление средней интенсивности света (яркости). Канал Y может быть обеспечен на основе преобразования (1), описанного выше (например, Y основан, по меньшей мере частично, на К+2З+С). В одном возможном варианте канал Y можно обеспечить, используя сложения, и/или сдвиги, информации, соответствующей входным данным КЗС, без умножений.
На этапе 1630 обеспечиваются выходные данные канала Co, которые содержат представление информации цвета (цветности) входных данных КЗС по направлению, близкому к оранжевому. Канал Co можно обеспечить на основе преобразования (1), описанного выше (например, Co основан, по меньшей мере частично, на 2К-2С). В одном возможном варианте канал Co можно обеспечить, используя сложения, и/или сдвиги, информации, соответствующей входным данным КЗС, без умножений.
На этапе 1640 обеспечиваются выходные данные канала Cg, которые содержат представление информации цвета (цветности) входных данных КЗС по направлению, близкому к зеленому. Канал Cg можно обеспечить на основе преобразования (1), описанного выше (например, Cg основан, по меньшей мере частично, на -К+2З-С). В одном возможном варианте канал Cg можно обеспечить, используя сложения, и/или сдвиги, информации, соответствующей входным данным КЗС, без умножений.
В другом возможном варианте компонент К, компонент З и/или компонент С могут быть восстановлены обратным преобразованием каналов YCoCg, обеспеченных согласно способу 1600.
Фиг.17 иллюстрирует способ 1700 обратного преобразования цветового пространства. Способ 1700, например, может быть использован компонентом 1520 обратного преобразователя.
В 1710 принимаются входные данные YCoCg, которые содержат канал Y, представляющий среднюю интенсивность света, канал Co, представляющий информацию цвета по направлению, близкому к оранжевому, и канал Cg, представляющий информацию цвета по направлению, близкому к зеленому. На этапе 1720 обеспечивается компонент К, основанный, по меньшей мере частично, на входных данных YCoCg. Компонент К может быть обеспечен на основе преобразования (1), описанного выше (например, К основан, по меньшей мере частично, на Y+Co-Cg). В одном возможном варианте компонент К может быть обеспечен с использованием сложения, и/или сдвигов, информации, соответствующей входным данным YCoCg, без умножений.
На этапе 1730 обеспечивается компонент З, основанный, по меньшей мере частично, на входных данных YCoCg. Компонент З может быть обеспечен на основе преобразования (1), описанного выше (например, З основан, по меньшей мере частично, на Y+Cg). В одном возможном варианте компонент З может быть обеспечен с использованием сложения и/или сдвигов, информации, соответствующей входным данным YCoCg, без умножений.
На этапе 1740 обеспечивается компонент С, основанный, по меньшей мере частично, на входных данных YCoCg. Компонент С может быть обеспечен на основе преобразования (1), описанного выше (например, С основан, по меньшей мере частично, на Y+Co-Cg). В одном возможном варианте С может быть обеспечен с использованием сложения, и/или сдвигов, информации, соответствующей входным данным YCoCg, без умножений.
Следует отметить, что система и/или способ настоящего изобретения может использоваться в общей системе сжатия, способствующей сжатию текста, почерка (рукописного текста), рисунков, изображений и т.п. Более того, для специалистов в области техники очевидно, что система и/или способ настоящего изобретения могут быть использованы в большом наборе приложений графического представления документов, включая фотокопировальные устройства, сканеры документов, системы оптического распознавания знаков, персональные цифровые ассистенты, факсимильные машины, цифровые камеры, цифровые видеокамеры и/или видеоигры и т.д.
Для предоставления дополнительного контекста для различных аспектов настоящего изобретения фиг.18 и последующее ее описание предназначены для обеспечения краткого общего описания соответствующей операционной среды 1810, в которой могут быть реализованы различные аспекты настоящего изобретения. На фиг.19 изображена дополнительная и/или альтернативная операционная среда, в которой может функционировать настоящее изобретение. Хотя изобретение описано в общем контексте команд, предназначенных для выполнения компьютером, таких как программные модули, выполняемые одним или большим количеством компьютеров или других устройств, для специалистов в области техники очевидно, что изобретение также может быть реализовано в комбинации с другими программными модулями и/или в виде комбинации аппаратных средств и программного обеспечения. Однако, по существу, программные модули включают процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют отдельные типы данных. Операционная среда 1810 является только одним возможным вариантом соответствующей среды и не предназначена для наложения каких-либо ограничений на область использования или функциональные возможности изобретения. Другие известные компьютерные системы, среды и/или конфигурации, которые могут соответствовать для использования изобретением, содержат персональные компьютеры, переносные или портативные устройства, мультипроцессорные системы, системы, основанные на микропроцессорах, программируемую бытовую электронику, сетевые персональные компьютеры, мини-компьютеры, универсальные компьютеры, распределенные вычислительные среды, которые содержат системы или устройства, описанные выше, и т.д.
Согласно фиг.18 возможная среда 1810 для реализации различных аспектов изобретения содержит компьютер 1812. Компьютер 1812 содержит процессор 1814, системную память 1816 и системную шину 1818. Системная шина 1818 соединяет компоненты системы, включая соединение системной памяти 1816 с процессором 1814 и т.д. Процессором 1814 может быть любой из различных пригодных процессоров. В качестве процессора 1814 также могут быть использованы двойные микропроцессоры и другие многопроцессорные структуры.
Системной шиной 1818 может быть любая шина из нескольких типов шинной структуры (шинных структур), включая шину памяти или контроллер памяти, периферийную шину или внешнюю шину, и/или локальную шину, использующую любую разновидность доступных шинных конструкций, включая 18-разрядную шину, стандартную архитектуру для промышленного применения САП (ISA), Микроканальную структуру МКС (MSA), расширенную стандартную архитектуру для промышленного применения РСАП (EISA), Интеллектуальную Электронику ИЭ (IDE), локальную шину VESA (VLB), 32-разрядную системную шину с возможностью расширения до 64 разрядов, взаимодействие через которую происходит без участия центрального процессора (PCI), Универсальную Последовательную Шину УПШ (USB), Усовершенствованный Графический Порт УГП (AGP), шину Международной ассоциации производителей плат памяти для персональных компьютеров IBM PC МАППППК (PCMCIA), интерфейс малых компьютерных систем ИМКС (SCSI) и т.д.
Системная память 1816 включает в себя энергозависимую память 1820 и энергонезависимую память 1822. В энергонезависимой памяти 1822 хранится базовая система ввода-вывода БСВВ (BIOS), содержащая базовые процедуры для передачи информации между элементами внутри компьютера 1812, например, при запуске. В виде иллюстрации энергонезависимая память 1822 может включать в себя постоянное запоминающее устройство ПЗУ, программируемое ПЗУ (ППЗУ), электрически программируемое ПЗУ (ЭППЗУ), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ) или флэш-память и т.д. Кратковременная память 1820 включает оперативное запоминающее устройство (ОЗУ), которое действует, как внешняя кэш-память. В виде иллюстрации ОЗУ имеется во многих формах, таких как синхронное ОЗУ (СОЗУ, SRAM), динамическое ОЗУ (ДОЗУ, DRAM), синхронное ДОЗУ (СДОЗУ, SDRAM), СДОЗУ с двойной скоростью передачи данных (СДОЗУ ДДС, DDR SDRAM), усовершенствованное СДОЗУ (УСДОЗУ, ESDRAM), ДОЗУ синхронной связи (ДОЗУСС, SLDRAM) и прямое ОЗУ Rambus (ПОЗУ Rambus, DRRAM) и т.д.
Компьютер 1812 также содержит съемные/несъемные, энергозависимые/энергонезависимые носители данных. На фиг.18 изображено, например, запоминающее устройство 1824 на дисках. Запоминающее устройство 1824 на дисках включает в себя устройства, подобные магнитному диску, гибкому диску, накопителю на (магнитной) ленте, Jazz-накопителю, Zip-накопителю, накопителю LS-100, плате флэш-памяти, или «подключаемой карты памяти» и т.д. Дополнительно запоминающее устройство 1824 на дисках может включать в себя носители данных отдельно или в комбинации с другими носителями данных, включая оптический диск, например компакт-диск ПЗУ (КД-ПЗУ, CD-ROM), записываемый компакт-диск (З-КД, CD-R), перезаписываемый компакт-диск (ПЗ-КД, CD-RW) или универсальный цифровой диск ПЗУ (УЦД-ПЗУ, DVD-ROM) и т.д. Для обеспечения соединения запоминающих устройств 1824 на дисках с системной шиной 1818 обычно используется съемный или несъемный интерфейс, такой как интерфейс 1826.
Следует отметить, что фиг.18 иллюстрирует программное обеспечение, которое действует как посредник между пользователями и ресурсами основного компьютера, иллюстрируемыми в соответствующей операционной среде 1810. Такое программное обеспечение включает в себя операционную систему 1828. Операционная система 1828, которая может храниться в запоминающем устройстве 1824 на дисках, действует для управления и распределения ресурсов компьютерной системы 1812. Системные приложения 1830 используют преимущества организации ресурсов, осуществляемой операционной системой 1828, посредством программных модулей 1832 и данных 1834 программ, которые хранятся в системной памяти 1816 или в запоминающем устройстве 1824 на дисках. Следует отметить, что настоящее изобретение может быть реализовано разными операционными системами или комбинациями операционных систем.
Пользователь вводит команды или информацию в компьютер 1812 посредством устройства (устройств) 1836 ввода данных. Устройства 1836 ввода данных включают устройство управления позицией, такое как мышь (манипулятор для управления курсором), шаровой манипулятор, перо, сенсорную панель, клавиатуру, микрофон, джойстик, игровую панель, спутниковую антенну, сканер, плату приемника телевизионного сигнала, цифровую камеру, цифровую видеокамеру, web-камеру и т.д. Эти и другие устройства ввода данных соединяются с блоком 1816 запоминания через порт(ы) 1838 интерфейса посредством системной шины 1818. Порт(ы) 1838 интерфейса включает, например, последовательный порт, параллельный порт, игровой порт и универсальную последовательную шину (УПШ, USB). Устройство(а) 1840 вывода данных использует некоторые из тех же типов портов, что используются устройством(ами) 1836 ввода данных. Следовательно, порт УПШ, например, может использоваться для обеспечения ввода информации в компьютер 1812 и для вывода информации из компьютера 1812 на устройство 1840 вывода данных. Адаптер 1842 вывода данных предусмотрен для иллюстрации, что среди других устройств 1840 вывода данных имеются некоторые устройства 1840 вывода данных, такие как мониторы, динамики и принтеры, которые требуют специальных адаптеров. Адаптеры 1842 вывода данных включают, в виде иллюстрации, видео- и звуковые платы и т.д., которые обеспечивают средства соединения между устройством 1840 вывода данных и системной шиной 1818. Следует отметить, что другие устройства и/или системы устройств обеспечивают возможности ввода и вывода данных, такие как удаленный компьютер (удаленные компьютеры) 1844.
Компьютер 1812 может функционировать в среде с сетевой структурой, используя логические соединения с одним или большим количеством удаленных компьютеров, например с удаленным компьютером (удаленными компьютерами) 1844. Удаленный компьютер (удаленные компьютеры) 1844 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер, рабочую станцию, устройство с микропроцессором, одноранговое устройство или другой общий сетевой узел и т.д. и обычно содержит многие или все элементы, описанные в отношении компьютера 1812. Для краткости в удаленном компьютере (удаленных компьютерах) 1844 изображено только запоминающее устройство 1846. Удаленный компьютер (удаленные компьютеры) 1844 логически соединен с компьютером 1812 через сетевой интерфейс 1848 и в то же время физически соединены через соединение 1850 связи. Сетевой интерфейс 1848 охватывает сети связи, такие как локальные сети связи (ЛС) и глобальные сети связи (ГС). Технологии ЛС включают распределенный интерфейс передачи данных по волоконно-оптическим каналам (РИДВ), распределенный проводной интерфейс передачи данных (РПИД), стандарт организации локальных сетей, описанный в спецификациях IEEE для сети Ethernet (Ethernet/IEEE 1502.3), спецификацию локальной сети кольцевой топологии Token Ring /IEEE 1502.5 и т.д. Технологии ГС включают двухточечные линии связи, сети с коммутацией каналов, такие как Цифровые сети с интеграцией служб (ЦСИС) и их разновидности, сети с коммутацией пакетов и Цифровые абонентские линии (ЦАЛ) и т.д.
Соединение(я) 1850 связи относится к аппаратным средствам/программному обеспечению, применяемым для соединения сетевого 1848 интерфейса с шиной 1818. Хотя для иллюстрации соединение 1850 связи изображено внутри компьютера 1812, оно также может быть внешним для компьютера 1812. Аппаратные средства/программное обеспечение, необходимые для соединения с сетевым интерфейсом 1848, включают внутренние и внешние технологии, такие как модемы, включая обычные модемы для телефона, кабельные модемы и модемы ЦАЛ, адаптеры ЦСИС и платы Ethernet и т.д.
На фиг.19 схематично изображена структурная схема типовой вычислительной среды 1900, с которой может взаимодействовать настоящее изобретение. Система 1900 содержит одного или большее количество клиентов 1910. Клиент(ы) 1910 может представлять собой аппаратные средства и/или программное обеспечение (например, потоки, процессы, вычислительные устройства). Система 1900 также содержит один или большее количество серверов 1930. Сервер(ы) 1930 может также представлять собой аппаратные средства и/или программное обеспечение (например, потоки, процессы, вычислительные устройства). К примеру, сервер(ы) 1930 может размещать потоки для выполнения преобразований с использованием настоящего изобретения. Одна возможная связь между клиентом 1910 и сервером 1930 может быть осуществлена в виде пакета данных, предназначенного для передачи между двумя или большим количеством вычислительных процессов. Система 1900 содержит структуру 1950 связи, которая может быть использована для обеспечения связи между клиентом(ами) 1910 и сервером(ами) 1930. Клиент(ы) 1910 оперативно соединяется с одним или большим количеством устройств 1960 хранения данных клиента, которые могут быть использованы для хранения информации, локальной для клиента(ов) 1910. Аналогично, сервер(ы) 1930 оперативно соединяется с одним или с большим количеством устройств 1940 хранения данных сервера, которые могут быть использованы для хранения информации, локальной для сервера(ов) 1930.
Приведенное выше описание включает возможные варианты настоящего изобретения. Безусловно, нельзя описать каждую возможную комбинацию компонентов или способов для описания настоящего изобретения, но для специалистов в данной области техники очевидно, что возможны многие другие комбинации и изменения настоящего изобретения. Соответственно, подразумевается, что настоящее изобретение включает в себя все такие изменения, модификации и вариации, которые не удаляются от сути и попадают в область формулы изобретения. Дополнительно, чтобы распространить термин "включает" на подробное описание и на формулу изобретения, подразумевается, что этот термин используется аналогично термину "содержащий", поскольку термин "содержащий" при применении интерпретируется как неустойчивое слово формулы изобретения.
Изобретение относится к обработке цифровых изображений, а именно к кодированию и декодированию изображений. Технический результат - повышение пропускной способности и точности восстановления изображения. В системе и способе осуществляют последовательное преобразование и кодирование цифровых изображений посредством применения преобразования с наложением (совмещением) нескольких разрешений, обеспечивая последовательную визуализацию и уменьшение по сравнению со многими стандартными системами сжатия данных искажений блочности изображения и искажений окантовки изображения. Система содержит преобразователь цветового пространства, блок преобразования с наложением нескольких разрешений, квантователь, развертыватель и статистический кодер. Преобразование сверткой с использованием нескольких разрешений выдает коэффициенты преобразования, например первые коэффициенты преобразования и вторые коэффициенты преобразования. Представление с использованием нескольких разрешений может быть получено с использованием вторых коэффициентов преобразования с наложением нескольких разрешений. Преобразователь цветового пространства преобразует входное изображение в представление цветового пространства входного изображения. Затем представление цветового пространства входного изображения используется для преобразования с наложением нескольких разрешений. Квантователь принимает первые коэффициенты преобразования и/или вторые коэффициенты преобразования и выводит квантованные коэффициенты для использования развертывателем и/или статистическим кодером. Развертыватель сканирует квантованные коэффициенты для формирования одномерного вектора, который используется статистическим кодером. Статистический кодер кодирует квантованные коэффициенты, принятые от квантователя и/или развертывателя, что приводит к сжатию данных. 27 н. и 18 з.п. ф-лы, 19 ил., 1 табл.
УСТРОЙСТВО И СПОСОБ КОДИРОВАНИЯ ДВИЖУЩИХСЯ ИЗОБРАЖЕНИЙ, УСТРОЙСТВО И СПОСОБ ДЕКОДИРОВАНИЯ ДВИЖУЩИХСЯ ИЗОБРАЖЕНИЙ И СЧИТЫВАЕМЫЙ ЭВМ НОСИТЕЛЬ ЗАПИСИ (ВАРИАНТЫ) | 1996 |
|
RU2179377C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ | 1994 |
|
RU2127962C1 |
УСТРОЙСТВО КОДИРОВАНИЯ-ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛА ИЗОБРАЖЕНИЙ | 1995 |
|
RU2090011C1 |
СПОСОБ И УСТРОЙСТВО ЗАПИСИ ДАННЫХ, СРЕДА ЗАПИСИ ДАННЫХ, СПОСОБ И УСТРОЙСТВО ВОСПРОИЗВЕДЕНИЯ ДАННЫХ | 1995 |
|
RU2158969C2 |
US 6215746 B1, 10.04.2001 | |||
US 5933137 A, 03.08.1999. |
Авторы
Даты
2008-03-27—Публикация
2003-03-26—Подача