СПОСОБ ДЛЯ ОБРАБОТКИ ЦИФРОВОГО ИЗОБРАЖЕНИЯ (ВАРИАНТЫ)
METHOD FOR PROCESSING OF DIGITAL IMAGE (VERSIONS)

Область техники, к которой относится изобретение
Настоящее изобретение относится к способу обработки цифрового изображения и к формату представления изображения для представления цифрового изображения. Настоящее изобретение дополнительно относится к способу для кодирования исходных данных изображения в сжатое представление цифрового изображения и к способу анализа сжатого цифрового изображения стандарта JPEG.
Уровень техники
В современном обществе ежедневно создаются огромные объемы информации. Большая часть информации представлена в виде изображений. Кроме того, большие части информации запоминают и представляют в электронном виде, например, в Internet. Между тем имеется возросшее использование беспроводных соединений с Internet, при этом скорость передачи данных является относительно низкой. Следовательно, имеется потребность в представлении информации в очень компактом виде. Это особенно важно для изображений, так как обычное цифровое изображение, запомненное как массив пикселей, представляют как достаточно большое множество данных.
Кроме того, мобильные телефоны, включающие в себя камеру, становятся все более и более популярными. Следовательно, мобильный телефон должен быть способным обрабатывать цифровые изображения. Мобильные телефоны или другие карманные устройства, которые обрабатывают изображения, имеют ограниченную область памяти и ограниченную мощность обработки. Следовательно, если в таких устройствах должна быть выполнена обработка изображения, цифровые изображения должны быть эффективно и интеллектуально запомнены, для того чтобы устанавливать низкие требования к области памяти и мощности обработки.
По этим причинам имеется большой интерес в сжатии изображений. Популярным способом сжатия изображения является стандарт JPEG (объединенная группа экспертов в области фотографии). Стандарт JPEG определен в CCITT Rec. T.81.
Однако для пояснения в дальнейшем представлено краткое описание формата файла изображения в соответствии со стандартом JPEG.
Стандарт JPEG определяет базовую систему кодирования с потерями, которая основана на преобразовании DCP, ДКП (дискретное косинусное преобразование), и расширенную систему кодирования для представления преобразованного изображения с помощью меньшего количества данных. При преобразовании цифрового изображения в формат файла JPEG выполняют преобразование ДКП и квантование изображения, причем каждый компонент цветовой пространственной модели преобразуют отдельно с помощью ДКП. Все цветовые компоненты представляют как блоки, которые обрабатывают последовательно. Блоки, преобразованные с помощью ДКП, подвергают пороговой обработке и квантованию, для того чтобы отбросить информацию базовых функций, которые имеют незначительное влияние на восприятие изображения. Коэффициенты нулевого порядка (постоянные коэффициенты) каждого компонента каждого блока запоминают как разность с предыдущим постоянным коэффициентом с использованием способа кодирования Хаффмана. Коэффициенты высокого порядка (переменные коэффициенты) располагают последовательно, причем последовательность получают с помощью зигзагообразного порядка из массива. Переменные коэффициенты кодируют с помощью способа кодирования с нулевым ограничением длины и дополнительно кодируют с помощью способа кодирования Хаффмана.
Формат файла JPEG разработан, для того чтобы создать стандартное сжатие, которое существенно уменьшает объем памяти цифрового изображения. Следовательно, формат файла JPEG не подходит для манипулирования изображениями. Если имеется желание обработать цифровое изображение, наиболее удобно преобразовать цифровое изображение обратно в представление пространственной области. Однако при обработке изображений в устройстве, имеющем небольшую область памяти, таком как мобильный телефон, может быть невозможным оперировать требованием большой памяти цифрового изображения, представленного в пространственной области.
ЕР 1037165 описывает способ для манипулирования цифровыми изображениями, запомненными в формате стандарта JPEG. Битовый поток изображения стандарта JPEG предварительно сканируют, для того чтобы идентифицировать местоположения областей изображения в битовом потоке. Обозначенные единицы этих расположений запоминают в таблице предварительного сканирования, для того чтобы они были легко доступными, в соответствии с чем выбранные области изображения могут быть легко доступными без необходимости декодировать весь битовый поток, когда необходимо манипулировать частью изображения. Однако все же имеется потребность дополнительно увеличить скорость обработки изображения, в то же время сохраняя низкие требования к памяти.
Сущность изобретения
Задачей изобретения является предоставление сжатых изображений, которые могут быть легко проанализированы и/или которыми можно легко манипулировать. Дополнительной задачей изобретения является предоставление возможности легко сшивать цифровые изображения в сжатый формат представления изображения.
Эти и другие задачи изобретения в соответствии с первым аспектом изобретения решают с помощью способа обработки цифрового изображения. Способ содержит этапы, на которых: предоставляют цифровое изображение в сжатом формате, причем цифровое изображение представляют как битовый поток, представляющий последовательные блоки изображения, при этом каждый блок содержит один или более компонентов, причем каждый компонент содержит один или более элементов данных, а каждый элемент данных представлен как закодированный с помощью способа Хаффмана поток коэффициентов базовых функций, при этом коэффициенты нулевого порядка представляют как разность предыдущего коэффициента нулевого порядка соответствующего компонента и таблицы информации блока, содержащей: указатели на один коэффициент нулевого порядка или первого порядка каждого блока изображения в битовом потоке, информацию, указывающую число бит в битовом потоке между коэффициентами нулевого или первого порядка в смежных элементах данных блока изображения, и коэффициент нулевого порядка, по меньшей мере, одного элемента данных каждого компонента, причем упомянутый коэффициент нулевого порядка представлен в недифференциальном виде. Способ дополнительно содержит этапы, на которых: для каждого элемента данных, по меньшей мере, одного блока изображения осуществляют доступ к коэффициенту первого порядка элемента данных и декодируют с помощью способа Хаффмана либо ни один, либо предварительно определенное число коэффициентов элемента данных, пропускают остальные коэффициенты с помощью перехода к следующему коэффициенту нулевого или первого порядка в битовом потоке с использованием информации в таблице информации блока относительно числа бит между коэффициентами в смежных элементах данных в битовом потоке, декодируя таким образом сокращенное множество закодированных с помощью способа Хаффмана коэффициентов.
В контексте этой заявки понятие “блок изображения” следует истолковывать как представление пространственной части изображения, причем упомянутый блок может иметь информацию из разных компонентов цветовой модели. Каждый блок изображения может быть представлен как одно или более множеств коэффициентов для каждого компонента цветовой модели.
В соответствии со вторым аспектом изобретения задачи решают с помощью формата представления изображения для представления цифрового изображения. Формат представления изображения содержит: информацию изображения, запомненную как битовый поток, представляющий последовательные блоки изображения, при этом каждый блок содержит один или более компонентов, причем каждый компонент содержит один или более элементов данных, а каждый элемент данных представлен как закодированный с помощью способа Хаффмана поток коэффициентов базовых функций, при этом коэффициенты нулевого порядка представляют как разность с предыдущим коэффициентом нулевого порядка соответствующего компонента; и таблицу информации блока, содержащую: указатели на один коэффициент нулевого порядка или первого порядка каждого блока изображения в упомянутом битовом потоке; информацию, указывающую число бит в битовом потоке между коэффициентами нулевого или первого порядка в смежных элементах данных блока изображения; и коэффициент нулевого порядка, по меньшей мере, одного элемента данных каждого компонента, причем упомянутый коэффициент нулевого порядка представлен в недифференциальном виде.
В соответствии с третьим аспектом изобретения предоставлен способ для кодирования исходных данных изображения в сжатое представление цифрового изображения. Способ содержит этапы, на которых: в произвольном порядке считывают блоки изображения определенного размера необработанных данных изображения и для каждого блока изображения: преобразуют блок изображения в один или более элементов данных одного или более компонентов, причем упомянутое преобразование создает представление каждого элемента данных как коэффициента базовых функций; вычисляют квантованную аппроксимацию упомянутых коэффициентов; представляют, по меньшей мере, некоторые из квантованных коэффициентов как поток коэффициентов последовательных блоков изображения; кодируют упомянутый поток коэффициентов с помощью способа Хаффмана, причем коэффициент нулевого порядка представляют как разность с предыдущим коэффициентом нулевого порядка соответствующего компонента; запоминают упомянутый закодированный с помощью способа Хаффмана поток коэффициентов, в битовом потоке; запоминают в таблице информации блока указатели на коэффициенты нулевого порядка или первого порядка каждого блока изображения в битовом потоке; запоминают в таблице информации блока информацию, указывающую число бит в битовом потоке между коэффициентами нулевого или первого порядка в смежных элементах данных блока изображения; и запоминают в таблице информации блока коэффициент нулевого порядка, по меньшей мере, одного элемента данных каждого компонента, причем упомянутый коэффициент нулевого порядка представлен в недифференциальном виде.
В соответствии с четвертым аспектом изобретения предоставлен способ анализа цифрового изображения, сжатого по стандарту JPEG, причем цифровое изображение, сжатое по стандарту JPEG, представлено как битовый поток, при этом упомянутый битовый поток представляет последовательные блоки изображения, при этом каждый блок содержит один или более компонентов, причем каждый компонент содержит один или более элементов данных, а каждый элемент данных представлен как закодированный с помощью способа Хаффмана поток коэффициентов базовых функций, при этом коэффициент нулевого порядка представляют как разность с предыдущим коэффициентом нулевого порядка соответствующего компонента. Способ содержит этапы, на которых: последовательно пошагово продвигаются через битовый поток и во время пошагового продвижения через битовый поток: запоминают указатель в таблице информации блока на один коэффициент нулевого порядка или первого порядка каждого блока изображения; декодируют коэффициенты нулевого порядка и запоминают в таблице информации блока коэффициент нулевого порядка, по меньшей мере, одного элемента данных каждого компонента, причем упомянутый коэффициент нулевого порядка представлен в недифференциальном виде; и запоминают в таблице информации блока информацию, указывающую число бит в битовом потоке между коэффициентами нулевого и первого порядка в смежных элементах данных блока изображения. Этап, на котором пошагово продвигаются через коэффициенты ненулевого порядка элемента данных в битовом потоке, причем упомянутые коэффициенты ненулевого порядка представлены с помощью последовательности элементов битового потока, содержит подэтапы, на которых: просматривают последовательность бит предварительно определенного числа следующих бит в битовом потоке; выполняют просмотр таблицы, чтобы определить категорию и нулевую длину, по меньшей мере, первого элемента битового потока в последовательности бит, и чтобы определить длину бит первого элемента битового потока; пропускают число бит в битовом потоке, соответствующее определенной длине бит; суммируют число пропущенных бит для собирания информации относительно числа бит в битовом потоке между коэффициентами нулевого или первого порядка в смежных элементах данных; и суммируют число коэффициентов, через которые пошагово продвинулись, до тех пор, пока пошагово не продвинутся через все коэффициенты элемента данных, или до тех пор, пока не встретится конец символа блока.
В соответствии с пятым аспектом изобретения предоставлен способ для сшивания двух цифровых изображений. Способ содержит этапы, на которых: определяют пространственное соотношение между двумя цифровыми изображениями; назначают блокам изображения информации цифрового изображения в индексах двух цифровых изображений в соответствии с пространственным соотношением между двумя цифровыми изображениями; формируют битовый поток, представляющий последовательные блоки изображения, в соответствии с назначенными индексами, причем каждый блок содержит один или более компонентов, при этом каждый компонент содержит один или более элементов данных, а каждый элемент данных представлен как закодированный с помощью способа Хаффмана поток коэффициентов базовых функций; запоминают информацию блока изображения для каждого блока изображения в таблице информации блока в соответствии с позицией блока изображения, причем упомянутая информация блока изображения содержит: указатели на один коэффициент нулевого порядка или первого порядка каждого блока изображения в упомянутом битовом потоке, информацию, указывающую число бит в битовом потоке между коэффициентами нулевого или первого порядка в смежных элементах данных блока изображения, и коэффициент нулевого порядка, по меньшей мере, одного элемента данных каждого компонента, причем упомянутый коэффициент нулевого порядка представлен в недифференцированном виде.
Благодаря, по меньшей мере, некоторым из аспектов изобретения, цифровое изображение представляют в формате представления изображения, который требует небольшой области памяти, в то же время цифровое изображение в сжатом формате представления по-прежнему может быть легко обработано. Это особенно полезно для приложений с малой областью памяти и малой мощностью обработки, таких как мобильные телефоны. Изобретение дает возможность запоминать цифровое изображение в сжатом формате, но по-прежнему обрабатывать и манипулировать им в реальном времени, в то время как оно присутствует на экране. Благодаря формату представления изображения и способу для обработки изображения в соответствии с изобретением, изображение может быть очень быстро представлено в уменьшенном масштабе или с уменьшенным разрешением. Запоминание коэффициентов нулевого порядка блоков изображения предполагает, что коэффициенты нулевого порядка должны быть вычислены с использованием информации о предыдущих коэффициентах нулевого порядка. Кроме того, может быть декодировано любое необходимое число коэффициентов ненулевого порядка. Остальные коэффициенты ненулевого порядка в битовом потоке могут быть быстро пропущены, так как таблица информации блока предоставляет информацию о длине бит между коэффициентами смежных элементов данных, давая возможность быстрого доступа к следующему элементу данных. Это предполагает, что изображение может быть быстро декодировано в уменьшенном масштабе, так как нет необходимости в декодировании коэффициентов ненулевого порядка в битовом потоке, для того чтобы находить начало следующего элемента данных в блоке изображения или начало следующего блока изображения. Следовательно, формат представления изображения дает возможность быстрого доступа к цифровому изображению.
Запоминание указателей на один коэффициент нулевого порядка или первого порядка каждого блока изображения обеспечивает быстрый доступ к определенным частям изображений без необходимости в декодировании закодированного с помощью способа Хаффмана потока коэффициентов от начала потока. Вместо этого доступ к блоку изображения может быть осуществлен непосредственно с использованием указателя. Кроме того, коэффициент нулевого порядка, по меньшей мере, одного элемента данных каждого компонента представлен в недифференциальном виде в таблице информации блока. Следовательно, исключается необходимость вычисления величины из закодированного с помощью способа Хаффмана потока коэффициентов. Это дает возможность представления и манипулирования частями цифрового изображения, в то время как оно находится в сжатом формате представления изображения, так как к частям изображения может быть осуществлен произвольный доступ, и они могут быть проанализированы.
В соответствии с изобретательским форматом представления изображения отчасти облегчается цель сжатия цифрового изображения до минимального размера. Следовательно, размер цифрового изображения сжимают не оптимально, а вместо этого отдельно запоминают некоторую дополнительную информацию относительно закодированного с помощью способа Хаффмана потока коэффициентов, для того чтобы дать возможность быстрого поиска определенных частей изображения. В частности, можно декодировать изображение или части изображения очень быстро в другом масштабе с помощью декодирования способом Хаффмана только части коэффициентов ненулевого порядка и с использованием обратного дискретного косинусного преобразования, адаптированного к меньшему блоку, такому как 4×4, для того, чтобы вычислять блок меньшего размера. Формат представления изображения может быть легко преобразован в изображение стандарта JPEG, так как формат представления изображения очень похож на формат изображения стандарта JPEG. Следовательно, можно выполнять преобразование изображение стандарта JPEG и удалять указатели и запомненные величины коэффициентов, когда изображение не требует никакого дополнительного манипулирования.
Закодированный с помощью способа Хаффмана поток коэффициентов не должен содержать коэффициенты нулевого порядка, которые отдельно запоминают в таблице информации блока. Однако закодированный с помощью способа Хаффмана поток коэффициентов все же может содержать все коэффициенты. Это может быть подходящим, если формат представления изображения должен быть преобразован в другой формат изображения, так как сам битовый поток тогда может быть непосредственно использован в другом формате изображения.
Понятие “таблица информации блока” не следует точно истолковывать как таблицу, но просто как факт, что запомненную информацию запоминают управляемым способом, причем позиция запомненной информации в таблице связана с пространственной позицией в изображении, которое представляет эта информация. Следовательно, таблица информации блока может быть, например, разделена на несколько списков или таблиц. Кроме того, “закодированный с помощью способа Хаффмана поток коэффициентов” не обязательно предполагает, что весь поток закодирован с помощью способа Хаффмана. Поток может содержать коды Хаффмана, которые перемешаны с исходными данными для коэффициентов. Например, в сжатом файле стандарта JPEG нулевая длина и категория коэффициентов закодированы с помощью способа Хаффмана, а величина коэффициента в категории описана с помощью несжатых бит.
С помощью запоминания указателей и коэффициентов в таблице информации блока получают особую структуру запоминания информации изображения.
Блок изображения, например, может содержать три компонента цветовой модели, один компонент яркости и два компонента цветности. Представление цифрового изображения с помощью компонента яркости и двух компонентов цветности предполагает, что компоненты цветности могут быть представлены с меньшим разрешением почти без потери информации, воспринимаемой глазом. Следовательно, первоначальное сжатие информации в цифровом изображении может быть выполнено в связи с представлением цифрового изображения как трех компонентов цветности. С использованием такого сжатия каждый блок изображения, например, может содержать четыре элемента данных для компонента яркости и один элемент данных для каждого компонента цветности. Элементы данных расположены последовательно в закодированном с помощью способа Хаффмана потоке коэффициентов.
В соответствии с шестым аспектом изобретения предоставлен формат представления изображения для представления цифрового изображения. Формат представления изображения содержит: информацию изображения, запомненную как битовый поток, представляющий последовательные блоки изображения, причем каждый блок содержит один или более компонентов, при этом каждый компонент содержит один или более элементов данных, а каждый элемент данных представлен как закодированный с помощью способа Хаффмана поток коэффициентов базовых функций, причем коэффициенты нулевого порядка представлены как разность с предыдущим коэффициентом нулевого порядка соответствующего компонента, и информацию битового потока, запомненную в связи с битовым потоком, причем упомянутая информация битового потока содержит информацию, указывающую число бит каждого элемента данных в блоках изображения.
Этот формат представления изображения требует относительно малой области памяти. Формат представления изображения хранит только информацию битового потока, которая дает возможность быстрого создания таблицы информации блока в соответствии с форматом представления изображения второго аспекта изобретения. Следовательно, этот формат представления изображения в соответствии с шестым аспектом изобретения подходит для длительного запоминания изображения. Когда осуществляют доступ к изображению, информация битового потока могла бы быть использована для быстрого анализа битового потока и создания таблицы информации блока. Информация, указывающая число бит каждого элемента данных в блоках изображения, могла бы быть использована для быстрого доступа к элементам данных. В то время как осуществляют доступ к элементам данных, могли бы быть созданы указатели, могла бы быть собрана информация, указывающая число бит между коэффициентами нулевого или первого порядка смежных элементов данных и могли бы быть декодированы коэффициенты нулевого порядка для запоминания, по меньшей мере, одного коэффициента нулевого порядка компонента в недифференцированном виде.
Информация битового потока может быть сжата. Это предполагает, что формат представления изображения шестого аспекта мог бы быть запомнен даже более эффективно.
Указатели в таблице информации блока могут указывать смещение бит от статического местоположения на коэффициент упомянутого определенного порядка. Статическое местоположение, например, может быть началом битового потока. Следовательно, указатели реализованы как ссылки на конкретную позицию бит в каждом блоке изображения. Это предполагает, что каждый блок изображения может быть быстро найден, в соответствии с чем может быть ускорен доступ к конкретным частям закодированного с помощью способа Хаффмана потока.
В качестве альтернативы указатели в таблице информации блока могут указывать смещение бит на коэффициент от маркировочного знака битового потока. Тогда формат представления изображения также содержит список, предоставляющий информацию о том, в каком блоке изображения расположен каждый маркировочный знак битового потока. Таким образом, смещение бит указателя может быть запомнено с помощью меньшего числа бит, так как смещение бит от маркировочного знака битового потока почти всегда меньше, чем смещение бит от статического местоположения. Это предполагает, что указатели могут быть запомнены с использованием меньшей памяти. Вместо этого требуется список, предоставляющий информацию о том, в каком блоке изображения расположен каждый маркировочный знак битового потока. Следовательно, когда необходимо осуществить доступ к конкретному блоку изображения, сначала делают проверку в списке, чтобы найти последний маркировочный знак битового потока перед конкретным блоком изображения. Затем информацию о соответствующем маркировочном знаке битового потока и смещение бит от маркировочного знака используют для нахождения необходимого блока изображения в битовом потоке.
Указатель может указывать на коэффициенты нулевого порядка или первого порядка блока изображения. Когда указатель указывает на коэффициенты нулевого порядка, начало элемента данных является легко доступным. Затем коэффициенты нулевого порядка требуют декодирования, для того чтобы осуществить доступ к коэффициентам ненулевого порядка, даже если коэффициенты нулевого порядка уже могут быть запомнены в недифференциальном формате в таблице информации блока. Когда указатель указывает на коэффициенты первого порядка, доступ к коэффициентам ненулевого порядка может быть осуществлен непосредственно.
Кроме того, информация, указывающая число бит в битовом потоке между коэффициентами смежных элементов данных, может указывать число бит между любой комбинацией коэффициентов нулевого порядка и первого порядка. Эта информация может быть использована для того, чтобы быстро переходить в битовом потоке от элемента данных к смежному элементу данных. Как описано выше, доступ к информации о элементе данных может быть легко осуществлен либо с помощью доступа к коэффициентам нулевого порядка, либо когда коэффициенты нулевого порядка известны из таблицы информации блока, с помощью непосредственного доступа к коэффициенту первого порядка. Следовательно, информация, указывающая число бит, может указывать либо число бит к коэффициенту нулевого порядка, либо к коэффициенту первого порядка. Также формат представления изображения структурирован таким образом, что он подходит для того, чтобы указывать либо число бит от коэффициента нулевого порядка, либо от коэффициента первого порядка.
Также указатель может указывать на коэффициент в любом элементе данных в блоке изображения. Тогда информация о числе бит между смежными элементами данных может быть использована для доступа к любому элементу данных в блоке изображения. Кроме того, коэффициент нулевого порядка элемента данных, на который указывает указатель, предпочтительно запоминают в таблице информации блока. Коэффициенты нулевого порядка других элементов данных компонента могут быть вычислены с использованием информации о разности между коэффициентами нулевого порядка, запомненными в битовом потоке. Является подходящим, чтобы указатель указывал на коэффициенты нулевого или первого порядка в первом элементе данных блока изображения. Следовательно, доступ к началу элемента данных осуществляют непосредственно посредством указателя.
Таблица информации блока может содержать коэффициент нулевого порядка, представленный в недифференциальном виде, для каждого коэффициент нулевого порядка, который представлен в битовом потоке как разность с коэффициентом нулевого порядка предыдущего блока изображения. Это предполагает, что доступ к каждому блоку изображения может быть осуществлен независимо, так как таблица информации блока предоставляет всю информацию, которая представлена в битовом потоке, как независимую от предыдущих блоков изображения. В соответствии с конкретным вариантом осуществления таблица информации блока содержит указатели, указывающие смещение бит на коэффициент от маркировочного знака битового потока, и только коэффициенты нулевого порядка в недифференциальном виде для коэффициентов, которые представлены в битовом потоке как разность с коэффициентом нулевого порядка предыдущего блока изображения. Этот вариант осуществления обеспечивает таблицу информации блока небольшого размера, что является выгодным, когда емкость памяти ограничена.
В качестве альтернативы таблица информации блока содержит каждый коэффициент нулевого порядка, представленный в недифференциальном виде. Это предполагает, что не требуется вычисление коэффициента нулевого порядка для элементов данных, коэффициент нулевого порядка которых представлен в битовом потоке как разность с коэффициентом нулевого порядка элемента данных в блоке изображения. Следовательно, доступ к информации о блоке изображения может быть осуществлен более быстро. Однако требуется больше информации в таблице информации блока.
Кроме того, битовый поток может представлять цифровое изображения в формате стандарта JPEG. Следовательно, обычное сжатие стандарта JPEG или уже сжатое изображение стандарта JPEG может быть связано с дополнительной информацией для быстрого доступа, манипулирования и/анализа конкретных частей изображения.
В соответствии с вариантом осуществления способа первого аспекта изобретения способ дополнительно содержит этап, на котором представляют декодированные блоки изображения в устройство обработки данных или представления данных, при этом изображение или часть изображения предоставляют в уменьшенном масштабе. Устройство обработки данных или представления данных может быть, например, экраном, принтером или устройством аппаратного обеспечения для выполнения обработки изображения. Изображение или части изображения могут быть быстро представлены, например, на экране, так как способ очень быстрым способом декодирует соответствующие части цифрового изображения для представления на экране. Это предполагает, что изображение может быть представлено пользователю без того, чтобы пользователь испытывал раздражение временем ожидания.
Способ дополнительно может содержать этап, на котором выполняют вычисления для обработки изображения в декодированных блоках изображения. Таким образом, требуется меньше вычислений, так как изображение закодировано в сокращенное множество закодированных с помощью способа Хаффмана коэффициентов. Следовательно, обработка изображения может быть выполнена относительно быстро.
Способ дополнительно может содержать этап, на котором представляют результаты выполненных вычислений на экране, когда вычисления выполнены. Способ обеспечивает представление изображения, запомненного в сжатом формате, в реальном времени, когда изображение выбирают, и представление манипуляций изображения в реальном времени, так как способ предоставляет очень быстрый способ доступа к соответствующим частям изображения и декодирования их в небольшое количество данных таким образом, что манипулирование может быть быстро выполнено и представлено. Кроме того, способ дает возможность определения и выполнения манипуляций изображений в устройстве, имеющем небольшую область памяти, таком как мобильный телефон.
В соответствии в вариантом осуществления способа первого аспекта изобретения число декодированных с помощью способа декодирования Хаффмана коэффициентов элемента данных используют, чтобы аппроксимировать декодированный блок изображения, соответствующий большему числу коэффициентов. Аппроксимация дает возможность декодированным с помощью способа декодирования Хаффмана коэффициентам представлять больше коэффициентов, в соответствии с чем может быть создано изображение более низкого качества или может быть создано меньшее изображение, имеющее меньше пикселей в блоке изображения. Несмотря на то, что аппроксимация теряет мелкие детали изображения, качество изображения, по-прежнему, может быть удовлетворительным, так как грубые признаки изображения представлены с помощью первых коэффициентов в каждом элементе данных.
Предварительно определенное число декодированных с помощью способа Хаффмана коэффициентов может быть, например, четыре девять, тринадцать, восемнадцать или двадцать четыре. Когда декодируют четыре или двадцать четыре коэффициента, соответственно, декодированные коэффициенты представляют соответственно масштабирование каждого блока изображения из 8×8 пикселей в 2×2 пикселей и 4×4 пикселей, соответственно. Когда декодируют с помощью способа Хаффмана девять, тринадцать или восемнадцать коэффициентов, декодированные коэффициенты могут быть использованы для аппроксимации представления блока изображения из 4×4 пикселей. Эти числа декодированных коэффициентов являются особенно подходящими, так как коэффициенты, непосредственно следующие за девятым, тринадцатым и восемнадцатым коэффициентами, могут быть не использованы как информация блока изображения из 4×4 пикселей.
В соответствии с вариантом осуществления формата представления изображения второго аспекта изобретения указатели, информацию, указывающую число бит между коэффициентами смежных элементов данных и коэффициенты нулевого порядка, представленные в недифференциальном виде, запоминают в одном потоке в таблице информации блока. В альтернативном варианте осуществления указатели, величины коэффициентов и информацию изображения запоминают в отдельных областях памяти.
В соответствии с вариантом осуществления способа четвертого аспекта изобретения каждая просматриваемая последовательность бит содержит шестнадцать бит. Это является особенно подходящим для формата элементов битового потока. Элемент битового потока, кодирующий ненулевые коэффициенты, состоит из двух частей. Первая часть закодирована с помощью способа Хаффмана и кодирует нулевую длину и категорию величины текущего коэффициента. Вторая часть является данными, представляющими величину текущего коэффициента. Следовательно, первая часть элемента битового потока хранит информацию от том, сколько коэффициентов закодировано с помощью элемента (нулевая длина + 1 коэффициент), и из скольких бит состоит элемент битового потока. Так как первая часть элемента битового потока максимально равна по длине шестнадцати бит, является подходящим посматривать шестнадцать бит. Следовательно, при просмотре шестнадцати бит за один раз каждая последовательность бит всегда будет содержать, по меньшей мере, первую часть одного элемента битового потока, и, следовательно, шестнадцать бит будут хранить информацию о числе коэффициентов, закодированных с помощью элемента битового потока, и о длине элемента битового потока.
Выполнение просмотра таблицы может содержать выполнение первого просмотра таблицы из первых восьми бит последовательности бит. Если просмотр таблицы выполняют для шестнадцати бит за один раз, требуется таблица с 65536 элементами, потребляющая достаточно много памяти. Кроме того, первая часть наиболее общих элементов битового потока равна восьми бит или короче. Следовательно, выполнение просмотра таблицы первых восьми бит в большинстве случаев будет давать информацию, необходимую относительно элемент битового потока.
Первый просмотр таблицы может возвращать информацию о длине бит первого элемента битового потока и о числе коэффициентов, пройденных пошагово, или возвращать информацию во второй просмотр таблицы. Таким образом, первый просмотр таблицы будет либо возвращать информацию, необходимую относительно элемента битового потока, либо возвращать информацию для анализа первой части элемента битового потока с использованием последних восьми бит последовательности бит.
Выполнение просмотра таблицы дополнительно может содержать выполнение второго просмотра таблицы из последних восьми бит последовательности бит, чтобы определить длину бит первого элемента битового потока и число коэффициентов, пройденных пошагово. Когда требуется второй просмотр таблицы, первый просмотр таблицы может возвращать указатель в таблицу, используемую во втором просмотре, в зависимости от первых восьми бит. Для второго просмотра таблицы требуется только немного разных таблиц, так как имеется немного комбинаций первых восьми бит, когда первая часть элемента битового потока длиннее, чем восемь бит. Следовательно, при выполнении просмотра таблицы в два этапа не требуется столько же элементов таблицы для анализа первого элемента битового потока каждой последовательности бит.
В соответствии с вариантом осуществления способа пятого аспекта изобретения некоторыми блоками изображения одного из цифровых изображений манипулируют с помощью информации из другого цифрового изображения. Манипулирование может составлять плавный переход влияния блока изображения из двух цифровых изображений, если содержимое в блоке изображения изображают в обоих цифровых изображениях. Это предполагает, что два цифровых изображения могут быть более плавно сшиты друг с другом.
В соответствии с дополнительным вариантом осуществления сначала обрабатывают блоки изображения части первого цифрового изображения, тогда как блоки изображения остального изображения временно запоминают в несжатом формате. Затем эти последние блоки изображения могут быть использованы для вычисления манипулирования вторым цифровым изображением, перед тем как будут обработаны блоки изображения второго цифрового изображения.
Кроме того, сшитое изображение может быть перенесено в другой формат сжатия изображения, такой как формат стандарта JPEG, с помощью последовательного доступа к блокам изображения сшитого изображения с использованием указателей формата представления изображения и запоминания закодированного с помощью способа Хаффмана потока коэффициентов для последовательных блоков изображения с коэффициентами нулевого порядка, представленными как разность в соответствующим предыдущим коэффициентом нулевого порядка. Следовательно, цифровые изображения могут быть сшиты и ими можно манипулировать, пока они требуют небольшой емкости памяти, а когда сшивание закончено, изображение может быть приведено в формат представления, который является еще более сжатым.
Краткое описание чертежей
Теперь изобретение будет описано подробно в качестве примера со ссылкой на сопровождающие чертежи, на которых:
фиг.1 представляет схему последовательности этапов способа для сжатия цифрового изображения в соответствии с вариантом осуществления изобретения;
фиг.2а-2с представляют схематические виды формата представления изображения в соответствии с вариантом осуществления изобретения;
фиг.3 представляет схему последовательности этапов способа анализа элемента данных в битовом потоке;
фиг.4 представляет схему последовательности этапов способа для считывания конкретной части цифрового изображения, запомненного в сжатом формате файла изображения;
фиг.5 представляет схему последовательности этапов способа для декодирования элемента данных для манипулирования цифровым изображением, запомненным в сжатом формате файла изображения в соответствии с вариантом осуществления изобретения;
фиг.6 представляет схему последовательности этапов способа для сшивания двух цифровых изображений в сжатый формат файла изображения в соответствии с вариантом осуществления изобретения;
фиг.7 представляет схематический обзор сшивания двух цифровых изображений;
фиг.8-9 представляют мгновенные снимки устройства, захватывающего цифровые изображения и сшивающего цифровые изображения в сжатый формат файла изображения.
Подробное описание предпочтительного варианта осуществления
В следующем описании сжатие изображений будет описано со ссылкой на сжатие стандарта JPEG, несмотря на то, что могут рассматриваться другие способы сжатия, использующие другие преобразования. Следует заметить, что рамки защиты настоящего изобретения никоим образом не ограничены сжатием стандарта JPEG.
Ссылаясь на фиг.1, будет описан способ для сжатия цифрового изображения. Во-первых, цифровое изображение представляют в цветовой модели YUV, этап 10, в которой каждый пиксель изображения имеет три компонента: яркость, Y, и два компонента U и V цветности. Два компонента U и V цветности представляют признаки цвета, мельчайшие детали которых являются трудными для восприятия для глаза человека. Следовательно, эти компоненты могут быть представлены с более низким разрешением, чем компонент яркости. Блок из 16×16 пикселей изображения, который является примером блока изображения, как определенного в настоящем изобретении, может быть представлен с помощью четырех элементов данных Y, каждый из 8×8 пикселей, одного элемента данных U из 8×8 пикселей и одного элемента данных V из 8×8 пикселей. Это соответствует сжатию 50% множества данных по сравнению с представлением RGB, КЗС (красный-зеленый-синий) цифрового изображения. Однако могут быть использованы четыре элемента данных U и четырех элементов данных Y, причем по сравнению с представлением КЗС не получают никакого сжатия.
Изображение обрабатывают как дискретные блоки 16×16 изображения в любой последовательности. Каждый элемент данных каждого компонента преобразуют с использованием дискретного косинусного преобразования (ДКП), этап 12. Так как каждый элемент данных каждого компонента содержит 64 пикселей, ДКП будет генерировать 64 коэффициента для базовых функций ДКП. Эти коэффициенты содержат один коэффициент нулевого порядка (постоянный коэффициент) и 63 коэффициента высокого порядка (переменные коэффициенты).
Затем создают пороговую и квантованную аппроксимацию коэффициентов каждого элемента данных, этап 14. Пороговую и квантованную аппроксимацию получают с помощью масштабирования и усечения каждого коэффициента с помощью деления его на величину, соответствующую матрице нормализации. Это предполагает, что коэффициенту для базовых функций, которые определены как имеющие малую важность для восприятия, дают малый вес, и множество коэффициентов принимают значение 0 (ноль).
Затем коэффициенты переупорядочивают в поток коэффициентов с использованием зигзагообразной последовательности. В соответствии со сжатием стандарта JPEG постоянные коэффициенты представляют как разность с предыдущим постоянным коэффициентом предыдущего элемента данных одного и того же цветового компонента, и разность кодируют с помощью способа Хаффмана. Переменные коэффициенты последовательно кодируют с ограничением длины и дополнительно кодируют с помощью способа Хаффмана, и запоминают непосредственно после закодированного с помощью способа Хаффмана постоянного коэффициента. Когда в элементе данных остались только переменные коэффициенты, имеющие нулевую величину, конец кода блока вставляют в поток коэффициентов. Следовательно, получают битовый поток закодированных с помощью способа Хаффмана коэффициентов последовательных элементов данных и блоков изображения. В соответствии с вариантом осуществления изобретения, закодированные с помощью способа Хаффмана коэффициенты вычисляют подобным способом, как для сжатия стандарта JPEG, этап 16. Битовый поток составляет сжатое представление цифрового изображения.
Однако так как использовано последовательное кодирование с ограничением длины и кодирование Хаффмана, длина каждого элемента данных является неизвестной. Следовательно, начало элемента данных является неизвестным до тех пор, пока битовый поток не декодирован от начала битового потока до начала элемента данных. Кроме того, так как представление постоянных коэффициентов зависит от предыдущего постоянного коэффициента, постоянный коэффициент элемента данных является неизвестным, если предыдущий постоянный коэффициент не определен с помощью декодирования закодированного с помощью способа Хаффмана потока предыдущих коэффициентов.
Для того чтобы дать возможность быстрого поиска конкретных блоков изображения и, в соответствии с чем манипулирования и/или анализа конкретного блока, создают таблицу информации блока, этап 18, содержащую указатель в каждый блок изображения, причем информация указывает число бит в битовом потоке между смежными коэффициентами определенного порядка, и постоянный коэффициент каждого цветового компонента каждого блока изображения, причем постоянный коэффициент представлен в недифференциальном виде.
В соответствии с другими вариантами осуществления изобретения битовый поток закодированных с помощью способа Хаффмана коэффициентов может иметь разное содержание или может быть запомнен по-разному. Например, так как постоянные коэффициенты, которые зависят от предыдущего блока изображения, уже запомнены в таблице информации блока, их не требуется представлять в битовом потоке.
Кроме того, вся информация о блоке изображения известна из таблицы информации блока, которая включает в себя постоянные коэффициенты, которые зависят от других блоков изображения, и указатель в блок изображения в битовом потоке. Следовательно, битовый поток не требуется представлять как конкретную последовательность блоков изображения или даже не требуется запоминать их в одном потоке.
Следовательно, в соответствии с одним вариантом осуществления изобретения информацию запоминают в таблице информации блока способом, в котором позиция информации блока в таблице определяет, какую часть изображения она представляет. Информация блока также может быть запомнена способом, в котором позиция которую она представляет, запоминают вместе с другой информацией блока. Поток закодированных с помощью способа Хаффмана коэффициентов для блока изображения даже может быть запомнен в связи с информацией блока. Запомненная информация блока также может иметь механизм для определения того, что закодирован ли блок, делая возможным обращаться с незакодированными блоками, например, как с черными ящиками.
Следовательно, пакет закодированного с помощью способа Хаффмана потока коэффициентов и таблица информации блока составляют представление цифрового изображения, требующего небольшой емкости памяти, в то же время, давая возможность анализа и манипулирования конкретными частями изображения без необходимости декодирования всего изображения. Это также дает возможность сжатия изображения нелинейным способом, в котором последовательность, в которой сжимают блоки, является несущественной.
Теперь, ссылаясь на фиг.2а, представлена структура сжатого формата представления изображения. Таблица информации блока может быть запомнена в ОЗУ устройства, в то же время от устройства требуется произвольный доступ для чтения или записи блоков изображения. Как изображено на фиг.2b, таблица 30 информации блока и битовый поток закодированных с помощью способа Хаффмана коэффициентов 36 могут быть запомнены в отдельных областях памяти. Таблица 30 информации блока содержит указатель 31, информацию 32, указывающую число бит в битовом потоке между коэффициентами нулевого или первого порядка в смежных элементах данных, и постоянные коэффициенты, запомненные в недифференциальном виде 33. Затем указатель 31 таблицы 30 информации блока содержит указание на первый коэффициент определенного порядка блока изображения в битовом потоке 36.
В качестве альтернативы, изображенной на фиг.2с, таблица 30' информации блока может быть запомнена как заголовок или как специальный маркер в битовом потоке 36', который может составлять формат стандарта JPEG.
Также понятно, что, когда информация запомнена в заголовке битового потока, не требуется, чтобы заголовок содержал всю информацию, необходимую в таблице информации блока. Вместо этого заголовок может содержать информацию для предоставления возможности того, чтобы таблица информации блока была быстро создана. Следовательно, заголовок битового потока 36' может хранить только информацию о длинах каждого элемента данных. Затем, когда доступ к изображению осуществлен, таблица информации блока может быть быстро создана и загружена в ОЗУ. С использованием длин элементов данных может быть осуществлен быстрый доступ к информации, необходимой в таблице информации блока. Через элементы данных продвигаются пошаговым способом, в то же время, создают указатели на начало каждого блока изображения, декодируют и запоминают постоянные коэффициенты и обновляют информацию, указывающую число бит в битовом потоке между коэффициентами нулевого или первого порядка в смежных элементах данных.
Этот заголовок может быть даже сжат, например, закодирован с помощью способа Хаффмана, для того чтобы сэкономить область памяти. Информация длины имеет величины, которые изменяются только незначительно. Следовательно, кодирование с помощью способа Хаффмана длин способом, соответствующим кодированию постоянных коэффициентов, существенно сжимало бы информацию. Существенное сжатие файла предполагает, что файл может быть запомнен в формате, эффективном с точки зрения области памяти, в то же время давая возможность того, чтобы таблица информации блока была быстро создана. Затем заголовок декодируют, когда осуществляют доступ к изображению.
Однако следует заметить, что изобретение никоим образом не ограничено этими представленными способами представления изображения.
Указатель 31 может указывать на коэффициент первого порядка блока изображения. Однако, так как коэффициент первого порядка предоставлен в таблице информации блока, не требуется осуществлять доступ к коэффициенту первого порядка. Следовательно, в качестве альтернативы, указатель 31 может указывать на коэффициент первого порядка блока изображения. Указатель может быть реализован как смещение бит от статического местоположения в битовом потоке на коэффициент определенного порядка в блоке изображения. Предпочтительно указатель предоставляет информацию о смещении бит на коэффициент от начала битового потока.
В качестве альтернативы указатель 31 может указывать смещение бит на коэффициент от маркировочного знака битового потока. Если указатель 31 указывает смещение бит от начала битового потока, битовый поток размера, большего чем 2 Мбайт, потребовал бы указателей, представленных с помощью 4 байт. Маркировочные знаки битового потока могут быть размешены в битовом потоке таким образом, чтобы указатель мог быть представлен с помощью 2 байт. Когда смещение становится больше чем, например, 65536 бит (наибольшее число, представленное с помощью 2 байт), маркировочный знак битового потока регистрируют. Маркировочные знаки битового потока последовательно нумеруют. Создают список маркировочных знаков битового потока, предоставляющий информацию о том, в каком блоке изображения расположен каждый маркировочный знак битового потока. Когда необходимо осуществить доступ к блоку изображения с использованием указателя, доступ выполняют в два этапа. Во-первых, производят сравнение со списком маркировочных знаков битового потока, чтобы найти число маркировочных знаков битового потока, расположенных ближе всех в битовом потоке перед блоком изображения, к которому осуществляют доступ. Затем смещение бит блока изображения от начала битового потока может быть вычислен как (число маркировочных знаков битового потока)*65536 + смещение бит, предоставленное указателем. Конечно, любое число бит могло бы быть использовано между маркировочными знаками битового потока.
Информация, указывающая число бит между смежными коэффициентами определенного порядка, могла бы быть использована для быстрого доступа к конкретным элементам данных в блоке изображения. Нет необходимости декодирования предыдущего элемента данных, для того чтобы узнать, где начинается элемент данных. Это могло бы быть преимущественно использовано для быстрого декодирования блоков изображения в сокращенное множество декодированных коэффициентов, как описано более подробно ниже.
Таблица информации блока может содержать постоянный коэффициент, представленный в недифференциальном виде, для каждого элемента данных. Это обеспечивает то, что нет необходимости вычисления постоянного коэффициента для любого элемента данных. Однако в качестве альтернативы, таблица информации блока может содержать только постоянные коэффициенты, которые представлены в битовом потоке как разность с постоянным коэффициентом предыдущего блока изображения. Когда блок изображения содержит несколько элементов данных для каждого компонента, имеется необходимость запоминания только постоянного коэффициента первого элемента данных каждого компонента. Это предполагает, что таблица информации блока требует меньше области памяти.
Структура сжатого формата представления изображения также может быть получена с начала от уже сжатого файла стандарта JPEG. Тогда файл стандарта JPEG декодируют, для того чтобы определить указатели в каждый блок изображения, информацию, указывающую число бит между смежными коэффициентами определенного порядка, и постоянный коэффициент в недифференциальном виде для каждого компонента каждого блока изображения. Следовательно, индексы и постоянные коэффициенты запоминают в таблице информации блока, в то же время закодированный с помощью способа Хаффмана поток коэффициентов оставляют нетронутым. В качестве альтернативы переменные коэффициенты такого изображения стандарта JPEG могут быть скопированы в новую область памяти, в соответствии с чем вся информация изображения стандарта JPEG будет потенциально доступной без необходимости сохранения исходного изображения стандарта JPEG, запомненного в устройстве.
Следовательно, созданный формат представления изображения открывает возможности выполнения обработки изображения непосредственно в файле стандарта JPEG.
Теперь будет описан конкретный способ для анализа изображения стандарта JPEG, для того чтобы создавать формат представления изображения. Способ содержит пошаговое продвижение через битовый поток для сбора необходимой информации. При пошаговом продвижении через битовый поток указатели на каждый блок изображения, информацию, указывающую число бит в битовом потоке между смежными коэффициентами определенного порядка и постоянные коэффициенты, по меньшей мере, первого элемента данных каждого компонента запоминают в таблице информации блока.
При пошаговом продвижении через битовый поток постоянные коэффициенты для компонентов декодируют и последний коэффициент временно запоминают для обеспечения возможности определения следующего постоянного коэффициента.
Ссылаясь на фиг.3, будет описано пошаговое продвижение через переменные коэффициенты элемента данных в битовом потоке. Единственной целью анализа является определение того, где начинается следующий элемент данных, и число бит между постоянными коэффициентами первых переменных коэффициентов смежных элементов данных. Следовательно, не требуется декодировать постоянные коэффициенты.
Элемент битового потока переменных коэффициентов состоит из двух частей. Первая часть является кодом Хаффмана, который кодирует, сколько нулевых коэффициентов предшествует текущему коэффициенту, и, какой категории является величина текущего коэффициента. Категория определяет число бит второй части элемента битового потока, которая кодирует фактическую величину коэффициента. Следовательно, с помощью анализа первой части элемента битового потока может быть определено число коэффициентов, закодированных с помощью элемента битового потока, и число бит, использованных элементом битового потока.
Пошаговое продвижение через переменные коэффициенты содержит просмотр последовательности бит предварительно определенного числа бит в битовом потоке, этап 20. Предпочтительно последовательность бит равна по длине 16 бит, причем соответствует самой длинной первой части элемента битового потока. Следовательно, с помощью просмотра 16 бит за один раз необходимая информация всегда может быть собрана, по меньшей мере, для одного элемента битового потока. Информацию собирают с помощью выполнения просмотра таблицы, этап 22. Следовательно, просмотр таблицы возвращает длину бит, по меньшей мере, первого элемента битового потока, представленного в последовательности бит, и число закодированных с помощью способа Хаффмана коэффициентов. Затем пропускают число бит, соответствующих определенной длине бит, этап 24. Накопленное число пропущенных бит суммируют, этап 26, и суммируют, этап 28, накопленное число пропущенных коэффициентов. Если не встретился конец блока и не пропущено максимальное число коэффициентов элемента данных, процесс возвращают на этап 20 и просматривают новую последовательность бит.
Просмотр таблицы на этапе 22 может быть выполнен в два этапа. Во-первых, выполняют просмотр таблицы для первых восьми бит в последовательности бит. Этот просмотр является достаточным, чтобы определить первую часть кода Хаффмана для большинства просмотров для обычных изображений стандарта JPEG. Если первый просмотр таблицы является достаточным для определения первой части первого кода Хаффмана, в это момент дополнительно не анализируют последние восемь бит. Если первая часть кода Хаффмана длиннее, чем восемь бит, требуется дополнительный просмотр таблицы. Затем первый просмотр таблицы возвращает указатель на новую таблицу, в которой должен быть выполнен просмотр последних восьми бит. Указатель зависит от первых восьми бит последовательности бит. Второй просмотр таблицы затем будет определять число бит кода Хаффмана и число пропущенных коэффициентов. Второй просмотр таблицы может быть выполнен в других таблицах или в других частях той же самой таблицы. Имеется только несколько вариантов первых восьми бит кодов Хаффмана, которые длиннее, чем восемь бит. Следовательно, число элементов во второй таблице ограничено и значительно меньше, чем 65536 (т.е. полное число возможных последовательностей из шестнадцати бит).
В качестве альтернативы просмотр таблицы на этапе 22 выполняют в один этап. Тогда просмотр таблицы выполняют для кода из 16 бит. Этот просмотр таблицы в некоторых случаях может возвращать информацию о двух или более кодах Хаффмана. Следовательно, когда последовательность бит содержит первую часть нескольких кодов Хаффмана, эти коды Хаффмана могут быть одновременно пропущены. Также можно пропустить одновременно несколько кодов Хаффмана при выполнении просмотра для восьми бит. Однако имеется только несколько кодов Хаффмана, являющихся достаточно короткими, чтобы давать необходимую информацию в восьми бит.
Теперь, ссылаясь на фиг.4, будет описан способ считывания конкретной части в цифровом изображении, запомненном в формате представления изображения.
Во-первых, определяют интересуемую позицию или область в изображении, этап 40. Затем определяют правильный блок или блоки изображения, соответствующие определенной позиции или области, просто с помощью корреляции расположения вправо и вниз, соответственно, от верхнего левого угла в последовательности блоков изображения, этап 42. Затем определяют позицию правильного блока или блоков изображения с помощью просмотра в таблице информации блока, этап 44. Кроме того, извлекают постоянные коэффициенты правильного блока или блоков изображения из таблицы информации блока, этап 46. Затем осуществляют доступ к позиции в битовом потоке, этап 48, и декодируют блок изображения в этой позиции, этап 50, с использованием извлеченных постоянных коэффициентов.
Теперь, ссылаясь на фиг.5, будет описан способ для обработки и манипулирования цифровым изображением, запомненным в формате представления изображения. Обработка и манипулирование цифровым изображением являются настолько быстрыми, что они могут быть выполнены и отображены пользователю на мобильном телефоне в реальном времени. Следовательно, пользователь может определять выполняемые манипуляции и видеть их выполненными в течение нескольких секунд.
Во-первых, пользователь может определить отображаемое изображение или часть изображения. Для того чтобы дать возможность изображению быть быстро декодированным для отображения на экране, для каждого элемента данных декодируют только сокращенное множество коэффициентов кода Хаффмана. Сокращенное множество коэффициентов может быть использовано, чтобы аппроксимировать изображение с помощью ухудшенного разрешения или, чтобы показать изображение с помощью меньшего числа пикселей. Подходящее число декодируемых переменных коэффициентов может быть равно девяти, уменьшая блок изображения из 8×8 пикселей до 1 пикселя, четырем, уменьшая блок изображения до 2×2 пикселей, или двадцати четырем, уменьшая блок изображения до 4×4 пикселей. При уменьшении блока изображения до 4×4 пикселей меньшее число переменных коэффициентов может быть декодировано для аппроксимации блока изображения из 4Ч4 пикселей. Следовательно, может быть декодировано, например, девять, тринадцать или восемнадцать коэффициентов. Так как основная информация о каждом блоке изображения размещена в первых коэффициентах, потеря информации в не декодированных коэффициентах не является очень существенной.
Благодаря формату представления изображения, сокращенное множество закодированных с помощью способа Хаффмана коэффициентов, может быть быстро найдено и декодировано для отображения изображения или части изображения. Во-первых, определяют декодируемые блоки изображения, этап 60. Осуществляют доступ к каждому блоку изображения с помощью использования указателей в таблице информации блока, этап 62. Постоянный коэффициент первого элемента данных каждого компонента также предоставляют с помощью таблицы информации блока, этап 64. Затем декодируют необходимое число переменных коэффициентов, этап 66. Затем быстро ищут следующий элемент данных блока изображения с помощью пропуска остальных переменных коэффициентов с использованием информации, указывающей число бит, например, между первыми переменными коэффициентами в смежных элементах данных, этап 68. Теперь может быть декодирован следующий элемент данных. Таким образом, изображение очень быстро декодируют для представления на экране, уменьшая раздражающее время ожидания для пользователя. Это особенно полезно при использовании устройства с небольшой мощностью обработки и небольшой областью памяти, такого как мобильный телефон.
Затем пользователь может определить манипулирование, выполняемое относительно изображения, представленного на экране. Вычисления, необходимые для манипулирования, теперь могут быть выполнены на уменьшенных множествах декодированных с помощью способа Хаффмана коэффициентов. Следовательно, вычисления могут быть выполнены быстрее и результаты могут быть показаны на дисплее в реальном времени без испытания пользователем длительного времени ожидания.
Теперь, ссылаясь на фиг.6-9, будет описан способ для сшивания двух цифровых изображений в сжатый формат файла изображения. На фиг.6 изображена схема последовательности этапов, представляющая обзор способа. На фиг.7 изображен схематический обзор сшивания изображений, в то время как фиг.8-9 изображают различные этапы способа, когда он реализован в устройстве для захвата изображений, таком как мобильный телефон со встроенной камерой.
Во-первых, захватывают первое цифровое изображение 200, этап 100, причем содержание цифрового изображения показано в видоискателе камеры на фиг.8. Затем захваченное изображение преобразуют, для того чтобы рассчитать коррекцию объектива, и для создания проекции скорректированного изображения на цилиндр. Следовательно, захваченное изображение адаптируют для того, чтобы оно было сшито с другим изображением для создания панорамного изображения. Затем часть В этого изображения 200 сжимают в сжатый формат представления изображения, как описано со ссылкой на фиг.1, этап 102, причем блокам изображения назначают индексы позиций в изображении в соответствии с их текущей пространственной позицией в изображении. Другую часть А изображения запоминают, этап 104, с целью операции плавного перехода, выполняемой позже. Если пользователь желал бы создать панорамное изображение, направление панорамы могло бы быть определено в устройстве для захвата изображений. Затем часть захваченного первого цифрового изображения 200, ближайшую к направлению панорамы, запоминают как часть, запомненную с целью плавного перехода.
Эта часть А первого изображения может быть представлена в видоискателе камеры, этап 106, когда захватывают второе изображение. Часть первого цифрового изображения может быть представлена на первом уровне видоискателя, причем каждый второй пиксель является прозрачным, таким образом, чтобы область объекта, видимая с помощью камеры и представленная на втором уровне в видоискателе, могла быть воспринятой за частью первого цифрового изображения, как изображено на фиг.9. Если панораму создают в правом направлении, самая правая часть первого цифрового изображения будет представлена в самой левой части видоискателя. Если сама камера выполняет коррекцию объектива и цилиндрическую проекцию, как описано выше, в реальном времени, запомненная часть А первого изображения может быть просто представлена в видоискателе. Однако, если с помощью камеры не выполняют коррекции в реальном времени, часть А подвергают обратному преобразованию, как расположенную в самой левой позиции в видоискателе, для того чтобы лучше соответствовать области объекта, изображенной в видоискателе. Следовательно, пользователя направляют, чтобы захватить второе изображение 202, этап 108, которое помещает соответствующие объекты в первом и втором цифровом изображении в перекрывающейся области в видоискателе. Затем захваченное изображение прообразуют, для того чтобы рассчитать коррекцию объектива, и для создания проекции скорректированного изображения на цилиндр.
Теперь второе цифровое изображение содержит часть С, которая, по существу, соответствует части А первого цифрового изображения. Следовательно, камера может легко соотнести два цифровых изображения друг с другом, этап 110, таким образом, чтобы два изображения могли быть правильно сшиты друг с другом. Конечно, корреляция между двумя цифровыми изображениями может быть получена любым другим способом. Например, компьютерное устройство может вычислять и находить корреляцию между двумя изображениями, или корреляция может быть определена пользователем, например, когда отсутствуют перекрывающиеся области. Корреляцию определяет расположение изображений по отношению друг к другу.
Затем выполняют плавный переход части А, запомненной для плавного перехода, во второе изображение в соответствие с корреляцией, этап 112. Затем часть D второго изображения сжимают с правильными индексами блоков изображения в соответствии с определенным расположением в сжатый формат представления изображения, как описано со ссылкой на фиг.1, этап 114. Кроме того, другую часть Е второго изображения запоминают в несжатом формате, этап 116, с целью операции плавного перехода, выполняемой, если в панораму должны быть захвачены дополнительные изображения. Как видно на фиг.7, из-за расположения двух захваченных изображений относительно друг друга часть Е может содержать части, которые не содержат никакой информации изображения. Следовательно, память части Е изображения имеет механизм для определения, представляет ли запомненный пиксель данные изображения или неизвестную информацию из-за расположения. Эту информации позже используют для плавного перехода, а также она может быть использована в операции корреляции.
Затем этапы 106-116 повторяют, если необходимо, для того чтобы сшить дополнительные изображения с уже сшитыми изображениями, этап 118. Последнее добавленное изображение сжимают полностью в формат представления изображения, как описано со ссылкой на фиг.1.
Затем определяют наибольшее прямоугольное изображение, которое можно сформировать из двух или более цифровых изображений, и определяют первый блок изображения, который полностью помещается в прямоугольник в верхнем левом углу. Затем формат представления изображения преобразуют в файл изображения стандарта JPEG сшитых изображений, этап 120, с помощью ввода закодированного с помощью способа Хаффмана потока коэффициентов последовательных блоков, начиная с определенного блока, и перемещаясь слева направо и сверху вниз через определенное наибольшее прямоугольное изображение. Таким образом, большое сшитое изображение будет представлено в формате файла изображения стандарта JPEG. Теперь сшитое изображение может быть отображено на экране мобильного телефона, который включает в себя камеру.
Несмотря на то, что способ для сшивания описан как последовательность, в которой первое цифровое изображение сначала сжимают в сжатый формат файла изображения, а второе цифровое изображение позже добавляют к этому сжатому формату представления изображения, заявитель предполагает, что сжатый формат представления изображения может быть создан с помощью непосредственного включения двух цифровых изображений в сжатый формат представления изображения, или, в качестве альтернативы, что каждое из двух цифровых изображений может быть представлено в сжатом формате файла изображения, и эти два цифровых изображения могут быть объединены в одно большое изображение посредством представления в сжатом формате представления изображения.
Теперь, в противоположность сшиванию изображений, будет описан способ для обрезки базового закодированного изображения стандарта JPEG. Во-первых, изображение стандарта JPEG анализируют с помощью декодирования данных, закодированных с помощью способа Хаффмана. Во время этого декодирования указатели в каждый блок изображения и информацию, указывающую число бит между элементами данных, запоминают в таблице информации блока. Кроме того, вычисляют и запоминают в таблице информации блока постоянные коэффициенты для первого элемента данных каждого цветового компонента в каждом блоке изображения. Теперь выполняют обрезку изображения стандарта JPEG в новое базовой закодированное представление стандарта JPEG части изображения с помощью определения сначала области, удерживаемой от обрезки. Для самого левого блока изображения в каждой строке области должна быть вычислена новая разность постоянных коэффициентов с использованием информации постоянного коэффициента в таблице информации блока. Затем представление остальной строки могло бы быть просто скопировано поразрядно из данных, закодированных с помощью способа Хаффмана, исходного изображения стандарта JPEG в новое изображение стандарта JPEG с использованием копируемой длины бит. Следовательно, новое обрезанное изображение может быть очень легко создано.
Если вместо этого обрезка изображения стандарта JPEG должна быть выполнена в несжатое представление изображения, блоки изображения в области анализируют и декодируют в правильную позицию в несжатом представлении изображения с использованием индексов в таблице информации блока. Декодирование выполняют с использованием постоянных коэффициентов в таблице информации блока, в соответствии с чем, в этом примере должны быть декодированы все данные, закодированные с помощью способа Хаффмана.
Кроме того, изображением стандарта JPEG также можно манипулировать с помощью обработки изображения, в то время как информация изображения представлена как коэффициенты ПКП. С помощью преобразования изображения стандарта JPEG в формат представления изображения, представленный в настоящем изобретении, манипуляции могут быть выполнены относительно блоков изображения, в то время как они представлены как коэффициенты ПКП. Следовательно, с использованием матричных операций изображение можно, например, поворачивать или масштабировать.
Следует подчеркнуть, что предпочтительные варианты осуществления, описанные в настоящей заявке, никоим образом, не являются ограничением, и, что многие альтернативные варианты осуществления возможны в рамках защиты, определенной с помощью прилагаемой формулы изобретения.