RU2368005C2 - Способ для обработки цифрового изображения (варианты) - Google Patents

Способ для обработки цифрового изображения (варианты) Download PDF

Info

Publication number
RU2368005C2
RU2368005C2 RU2006121481/09A RU2006121481A RU2368005C2 RU 2368005 C2 RU2368005 C2 RU 2368005C2 RU 2006121481/09 A RU2006121481/09 A RU 2006121481/09A RU 2006121481 A RU2006121481 A RU 2006121481A RU 2368005 C2 RU2368005 C2 RU 2368005C2
Authority
RU
Russia
Prior art keywords
image
block
zero
coefficients
coefficient
Prior art date
Application number
RU2006121481/09A
Other languages
English (en)
Other versions
RU2006121481A (ru
Inventor
Йохан СТЕН (SE)
Йохан СТЕН
Сами НИЕМИ (SE)
Сами НИЕМИ
Карл-Андерс ЙОХАНССОН (SE)
Карл-Андерс ЙОХАНССОН
Original Assignee
Скаладо Аб
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from SE0303085A external-priority patent/SE0303085D0/xx
Priority claimed from SE0303204A external-priority patent/SE0303204D0/xx
Application filed by Скаладо Аб filed Critical Скаладо Аб
Publication of RU2006121481A publication Critical patent/RU2006121481A/ru
Application granted granted Critical
Publication of RU2368005C2 publication Critical patent/RU2368005C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
    • H04N21/8153Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics comprising still images, e.g. texture, background image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

Изобретение относится к области информатики и может быть использовано для представления, для кодирования исходных данных изображения в сжатое представления цифрового изображения и при анализе сжатого цифрового изображения стандарта JPEG. Способ для обработки цифрового изображения содержит: информацию изображения, запомненную как битовый поток, представляющий последовательные блоки изображения. Каждый блок содержит один или более компонентов. Каждый компонент содержит один или более элементов данных, а каждый элемент данных представлен как закодированный с помощью способа Хаффмана поток коэффициентов базовых функций. Коэффициенты нулевого порядка представлены как разность с предыдущим коэффициентом нулевого порядка соответствующего компонента. Имеется также таблица информации блока изображения, которая содержит указатели на первый коэффициент определенного порядка каждого блока изображения в упомянутом битовом потоке, информацию, указывающую число бит в битовом потоке между смежными коэффициентами упомянутого определенного порядка блока изображения, и коэффициент нулевого порядка, по меньшей мере, первого элемента данных каждого компонента. Упомянутый коэффициент нулевого порядка представлен в недифференциальном виде. 6 н. и 29 з.п. ф-лы, 11 ил.

Description

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

Claims (35)

1. Способ обработки цифрового изображения, причем упомянутый способ содержит этапы, на которых предоставляют цифровое изображение в сжатом формате, причем цифровое изображение представляют как битовый поток, представляющий последовательные блоки изображения, при этом каждый блок содержит один или более компонентов, причем каждый компонент содержит один или более элементов данных, а каждый элемент данных представлен как закодированный с помощью способа Хаффмана поток коэффициентов базовых функций, при этом коэффициенты нулевого порядка представляют как разность предыдущего коэффициента нулевого порядка соответствующего компонента и таблицы информации блока, содержащей указатели на один коэффициент нулевого порядка или первого порядка каждого блока изображения в битовом потоке, информацию, указывающую число бит в битовом потоке между коэффициентами нулевого или первого порядка в смежных элементах данных блока изображения, и коэффициент нулевого порядка, по меньшей мере, одного элемента данных каждого компонента, причем упомянутый коэффициент нулевого порядка представлен в недифференциальном виде, и для каждого элемента данных, по меньшей мере, одного блока изображения: осуществляют доступ к коэффициенту первого порядка элемента данных и декодируют с помощью способа Хаффмана либо ни один, либо предварительно определенное число коэффициентов элемента данных, пропускают остальные коэффициенты с помощью перехода к следующему коэффициенту нулевого или первого порядка в битовом потоке с использованием информации в таблице информации блока относительно числа бит между коэффициентами в смежных элементах данных в битовом потоке, декодируя таким образом сокращенное множество закодированных с помощью способа Хаффмана коэффициентов.
2. Способ по п.1, в котором цифровое изображение предоставляют в сжатом формате, причем указатели в таблице информации блока указывают смещение бит на коэффициент от статического местоположения.
3. Способ по п.1, в котором цифровое изображение предоставляют в сжатом формате, причем указатели в таблице информации блока указывают смещение бит на коэффициент от маркировочного знака битового потока и, при этом цифровое изображение дополнительно представляют с помощью списка, предоставляющего информацию о том, в каком блоке изображения находится каждый маркировочный знак битового потока.
4. Способ по п.1, в котором цифровое изображение предоставляют в сжатом формате, причем таблица информации блока содержит коэффициент нулевого порядка, представленный в недифференциальном виде, для каждого коэффициента нулевого порядка, который представлен в битовом потоке как разность с коэффициентом нулевого порядка предыдущего блока изображения.
5. Способ по п.1, в котором цифровое изображение предоставляют в сжатом формате, причем таблица информации блока содержит каждый коэффициент нулевого порядка, представленный в недифференциальном виде.
6. Способ по п.1, дополнительно содержащий этап, на котором представляют декодированные блоки изображения в устройство обработки данных, в соответствии с чем изображение или часть изображения представляют в уменьшенном масштабе.
7. Способ по п.1, дополнительно содержащий этап, на котором выполняют вычисления для обработки изображения в декодированных блоках изображения.
8. Способ по п.1, дополнительно содержащий этап, на котором представляют результаты выполненных вычислений на экране, когда вычисления выполнены.
9. Способ по п.1, в котором число коэффициентов элемента данных, декодированных с помощью способа Хаффмана, используют, чтобы аппроксимировать декодированный блок изображения, соответствующий большему числу коэффициентов.
10. Способ по п.1, в котором предварительно определенное число коэффициентов, декодированных с помощью способа Хаффмана, равно четырем, девяти, тринадцати, восемнадцати или двадцати четырем.
11. Способ по п.1, в котором битовый поток представляет цифровое изображение в формате стандарта JPEG.
12. Способ обработки цифрового изображения, причем упомянутый способ содержит этап, на котором информацию изображения запоминают в виде битового потока, представляющего последовательные блоки изображения, при этом каждый блок содержит один или более компонентов, причем каждый компонент содержит один или более элементов данных, а каждый элемент данных представлен как закодированный с помощью способа Хаффмана поток коэффициентов базовых функций, при этом коэффициенты нулевого порядка представляют как разность с предыдущим коэффициентом нулевого порядка соответствующего компонента, и таблицу информации блока, содержащую указатели на один коэффициент нулевого порядка или первого порядка каждого блока изображения в упомянутом битовом потоке, информацию, указывающую число бит в битовом потоке между коэффициентами нулевого или первого порядка в смежных элементах данных блока изображения, и коэффициент нулевого порядка, по меньшей мере, одного элемента данных каждого компонента, причем упомянутый коэффициент нулевого порядка представлен в недифференциальном виде.
13. Способ по п.12, в котором указатели в таблице информации блока указывают смещение бит на коэффициент от статического местоположения.
14. Способ по п.12, в котором указатели в таблице информации блока указывают смещение бит на коэффициент от маркировочного знака битового потока, и при этом формат представления изображения дополнительно содержит список, предоставляющий информацию от том, в каком блоке изображения находится каждый маркировочный знак битового потока.
15. Способ по любому из пп.12-14, в котором таблица информации блока содержит коэффициент нулевого порядка, представленный в недифференциальном виде, для каждого коэффициента нулевого порядка, который представлен в битовом потоке как разность с коэффициентом нулевого порядка предыдущего блока изображения.
16. Способ по любому из пп.12-14, в котором таблица информации блока содержит каждый коэффициент нулевого порядка, представленный в недифференциальном виде.
17. Способ по п.12, в котором битовый поток представляет цифровое изображение в формате стандарта JPEG.
18. Способ для кодирования необработанного изображения в сжатое представление цифрового изображения, причем способ содержит этапы, на которых в произвольной последовательности считывают блоки изображения определенного размера необработанных данных изображения и для каждого блока изображения: преобразуют блок изображения в один или более элементов данных одного или более компонентов, причем упомянутое преобразование создает представление каждого элемента данных как коэффициента базовых функций, вычисляют квантованную аппроксимацию упомянутых коэффициентов, представляют, по меньшей мере, некоторые из квантованных коэффициентов как поток коэффициентов последовательных блоков изображения, кодируют упомянутый поток коэффициентов с помощью способа Хаффмана, причем коэффициент нулевого порядка представляют как разность с предыдущим коэффициентом нулевого порядка соответствующего компонента, запоминают упомянутый закодированный с помощью способа Хаффмана поток коэффициентов в битовом потоке, запоминают в таблице информации блока указатели на один коэффициент нулевого порядка или первого порядка каждого блока изображения в битовом потоке, запоминают в таблице информации блока информацию, указывающую число бит в битовом потоке между коэффициентами нулевого или первого порядка в смежных элементах данных блока изображения, и запоминают в таблице информации блока коэффициент нулевого порядка, по меньшей мере, одного элемента данных каждого компонента, причем упомянутый коэффициент нулевого порядка представлен в недифференциальном виде.
19. Способ по п.18, в котором указатели в таблице информации блока запоминают как указатели смещения бит на коэффициент от статического местоположения.
20. Способ по п.18, в котором указатели в таблице информации блока запоминают как указатели смещения бит на коэффициент от маркировочного знака битового потока и, при этом формат представления изображения дополнительно содержит список, предоставляющий информацию о том, в каком блоке изображения находится каждый маркировочный знак битового потока.
21. Способ по любому из пп.18-20, в котором коэффициент нулевого порядка запоминают представленным в недифференциальном виде для каждого коэффициента нулевого порядка, который представлен в битовом потоке как разность с коэффициентом нулевого порядка предыдущего блока изображения.
22. Способ по любому из пп.18-20, в котором каждый коэффициент нулевого порядка запоминают представленным в недифференциальном виде.
23. Способ по п.18, в котором битовый поток представляет цифровое изображение в формате стандарта JPEG.
24. Способ анализа цифрового изображения, сжатого по стандарту JPEG, причем цифровое изображение, сжатое по стандарту JPEG, представлено как битовый поток, при этом упомянутый битовый поток представляет последовательные блоки изображения, при этом каждый блок содержит один или более компонентов, причем каждый компонент содержит один или более элементов данных, а каждый элемент данных представлен как закодированный с помощью способа Хаффмана поток коэффициентов базовых функций, при этом коэффициент нулевого порядка представляют как разность с предыдущим коэффициентом нулевого порядка соответствующего компонента, причем упомянутый способ содержит этапы, на которых последовательно пошагово продвигаются через битовый поток и, во время пошагового продвижения через битовый поток: запоминают указатель в таблице информации блока на один коэффициент нулевого порядка или первого порядка каждого блока изображения, декодируют коэффициенты нулевого порядка и запоминают в таблице информации блока коэффициент нулевого порядка, по меньшей мере, одного элемента данных каждого компонента, причем упомянутый коэффициент нулевого порядка представлен в недифференциальном виде, и запоминают в таблице информации блока информацию, указывающую число бит в битовом потоке между коэффициентами нулевого и первого порядка в смежных элементах данных блока изображения, причем этап, на котором пошагово продвигаются через коэффициенты ненулевого порядка элемента данных в битовом потоке, причем упомянутые коэффициенты ненулевого порядка представлены с помощью последовательности элементов битового потока, содержит подэтапы, на которых просматривают последовательность бит предварительно определенного числа следующих бит в битовом потоке, выполняют просмотр таблицы, чтобы определить категорию и нулевую длину, по меньшей мере, первого элемента битового потока в последовательности бит, и чтобы определить длину бит первого элемента битового потока, пропускают число бит в битовом потоке, соответствующее определенной длине бит, суммируют число пропущенных бит для собирания информации относительно числа бит в битовом потоке между коэффициентами нулевого или первого порядка в смежных элементах данных, и суммируют число коэффициентов, через которые пошагово продвинулись, до тех пор, пока пошагово не продвинутся через все коэффициенты элемента данных, или до тех пор, пока не встретится конец символа блока.
25. Способ по п.24, в котором каждая просматриваемая последовательность бит содержит шестнадцать бит.
26. Способ по п.25, в котором этап, на котором выполняют просмотр таблицы, содержит подэтап, на котором выполняют первый просмотр таблицы первых восьми бит последовательности бит.
27. Способ по п.26, в котором первый просмотр таблицы возвращает информацию о длине бит первого элемента битового потока и число коэффициентов, через которые пошагово продвинулись, или возвращает информацию во второй просмотр таблицы.
28. Способ по п.27, в котором этап, на котором выполняют просмотр таблицы, дополнительно содержит подэтап, на котором выполняют второй просмотр таблицы последних восьми бит последовательности бит, чтобы определить длину бит первого элемента битового потока и число коэффициентов, через которые пошагово продвинулись.
29. Способ по любому из пп.24-28, в котором указатели в таблице информации блока запоминают как указатели смещения бит на коэффициент от статического местоположения.
30. Способ по любому из пп.24-28, в котором указатели в таблице информации блока запоминают как указатели смещения бит на коэффициент от маркировочного знака битового потока и, при этом формат представления изображение дополнительно содержит список, предоставляющий информацию о том, в каком блоке изображения находится каждый маркировочный знак битового потока.
31. Способ по п.24, в котором коэффициент нулевого порядка запоминают представленным в недифференциальном виде для каждого коэффициента нулевого порядка, который представлен в битовом потоке как разность с коэффициентом нулевого порядка предыдущего блока изображения.
32. Способ по п.24, в котором каждый коэффициент нулевого порядка запоминают представленным в недифференциальном виде.
33. Способ для сшивания двух цифровых изображений, причем упомянутый способ содержит этапы, на которых определяют пространственное соотношение между двумя цифровыми изображениями, назначают блокам изображения информации цифрового изображения в двух цифровых изображениях индексы в соответствии с пространственным соотношением между двумя цифровыми изображениями, формируют битовый поток, представляющий последовательные блоки изображения, в соответствии с назначенными индексами, причем каждый блок содержит один или более компонентов, при этом каждый компонент содержит один или более элементов данных, а каждый элемент данных представлен как закодированный с помощью способа Хаффмана поток коэффициентов базовых функций, запоминают информацию блока изображения для каждого блока изображения в таблице информации блока в соответствии с позицией блока изображения, причем упомянутая информация блока изображения содержит указатели на один коэффициент нулевого порядка или первого порядка каждого блока изображения в упомянутом битовом потоке, информацию, указывающую число бит в битовом потоке между коэффициентами нулевого или первого порядка в смежных элементах данных блока изображения, и коэффициент нулевого порядка, по меньшей мере, одного элемента данных каждого компонента, причем упомянутый коэффициент нулевого порядка представлен в недифференцированном виде.
34. Способ обработки цифрового изображения, причем упомянутый способ содержит этапы, на которых запоминают информацию изображения, в виде битового потока, представляющего последовательные блоки изображения, причем каждый блок содержит один или более компонентов, при этом каждый компонент содержит один или более элементов данных, а каждый элемент данных представлен как закодированный с помощью способа Хаффмана поток коэффициентов базовых функций, причем коэффициенты нулевого порядка представлены как разность с предыдущим коэффициентом нулевого порядка соответствующего компонента, и информацию битового потока, запомненную в связи с битовым потоком, причем упомянутая информация битового потока содержит информацию, указывающую число бит каждого элемента данных в блоках изображения.
35. Способ по п.34, в котором информация битового потока является сжатой.
RU2006121481/09A 2003-11-18 2004-11-16 Способ для обработки цифрового изображения (варианты) RU2368005C2 (ru)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
SE0303085-5 2003-11-18
SE0303085A SE0303085D0 (sv) 2003-11-18 2003-11-18 Method for creating a compressed digital image representation and image representation format
SE0303204A SE0303204D0 (sv) 2003-11-26 2003-11-27 S method and device for image processing
SE0303204-2 2003-11-27

Publications (2)

Publication Number Publication Date
RU2006121481A RU2006121481A (ru) 2007-12-27
RU2368005C2 true RU2368005C2 (ru) 2009-09-20

Family

ID=34622339

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2006121481/09A RU2368005C2 (ru) 2003-11-18 2004-11-16 Способ для обработки цифрового изображения (варианты)

Country Status (6)

Country Link
US (8) US7480418B2 (ru)
EP (2) EP2713619A3 (ru)
JP (2) JP4949037B2 (ru)
KR (3) KR101142584B1 (ru)
RU (1) RU2368005C2 (ru)
WO (1) WO2005050567A1 (ru)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9137443B2 (en) 2011-04-26 2015-09-15 Blackberry Limited Fast estimation of binary data length using memory corruption
RU2564631C2 (ru) * 2009-10-28 2015-10-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования остаточного блока, способ и устройство для декодирования остаточного блока
RU2606310C2 (ru) * 2015-01-23 2017-01-10 Общество С Ограниченной Ответственностью "Яндекс" Электронное устройство и способ для отрисовки панорамного изображения

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7082450B2 (en) 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
WO2005050567A1 (en) 2003-11-18 2005-06-02 Scalado Ab Method for processing a digital image and image representation format
US20080039120A1 (en) * 2006-02-24 2008-02-14 Telmap Ltd. Visual inputs for navigation
US8599841B1 (en) * 2006-03-28 2013-12-03 Nvidia Corporation Multi-format bitstream decoding engine
US8593469B2 (en) * 2006-03-29 2013-11-26 Nvidia Corporation Method and circuit for efficient caching of reference video data
US7884742B2 (en) * 2006-06-08 2011-02-08 Nvidia Corporation System and method for efficient compression of digital data
FI20065754L (fi) * 2006-11-28 2008-05-29 Liquid Air Lab Gmbh Kuvankäsittelymenetelmä
SE531398C2 (sv) * 2007-02-16 2009-03-24 Scalado Ab Generering av en dataström och identifiering av positioner inuti en dataström
SE533185C2 (sv) * 2007-02-16 2010-07-13 Scalado Ab Metod för behandling av en digital bild samt bildrepresentationsformat
WO2008122913A2 (en) * 2007-04-04 2008-10-16 Nxp B.V. Decoder for selectively decoding predetermined data units from a coded bit stream
US8068693B2 (en) 2007-07-18 2011-11-29 Samsung Electronics Co., Ltd. Method for constructing a composite image
US8041147B2 (en) * 2007-07-18 2011-10-18 3DHISTECH Kft; Method for realistic stitching image blocks of an electronically recorded multipart image
US8107754B2 (en) 2007-12-07 2012-01-31 Mediatek Inc. Systems and methods for randomly accessing compressed images
US8977064B2 (en) * 2008-02-13 2015-03-10 Qualcomm Incorporated Rotational transcoding for JPEG or other coding standards
US20090214134A1 (en) * 2008-02-27 2009-08-27 Motorola, Inc. System and method for image data extraction and assembly in digital cameras
WO2010027324A1 (en) * 2008-09-08 2010-03-11 Scalado Ab Method for indexing images and for reading an index of an image
TWI384862B (zh) * 2008-09-19 2013-02-01 Silicon Motion Inc 影像解碼裝置及方法
US8194991B2 (en) 2008-10-20 2012-06-05 Motorola Mobililty, Inc. Out-of-order coding
SE0802657A1 (sv) * 2008-12-23 2010-06-24 Scalado Ab Extrahering av digital information
US20100254617A1 (en) * 2009-04-01 2010-10-07 Qualcomm Incorporated Apparatus and method to rotate an image
EP2483767B1 (en) 2009-10-01 2019-04-03 Nokia Technologies Oy Method relating to digital images
US20110158310A1 (en) * 2009-12-30 2011-06-30 Nvidia Corporation Decoding data using lookup tables
SE534551C2 (sv) 2010-02-15 2011-10-04 Scalado Ab Digital bildmanipulation innefattande identifiering av ett målområde i en målbild och sömlös ersättning av bildinformation utifrån en källbild
TWI401964B (zh) * 2010-04-16 2013-07-11 Altek Corp Image file processing method
CN103189796B (zh) 2010-09-20 2015-11-25 瑞典移动影像股份公司 用于形成图像的方法
JP5247793B2 (ja) * 2010-12-21 2013-07-24 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
TWI454150B (zh) 2011-05-06 2014-09-21 Altek Corp 影像檔案的處理方法
EP2716033B1 (en) * 2011-05-27 2019-06-26 Nokia Technologies Oy Image stitching
SE1150505A1 (sv) 2011-05-31 2012-12-01 Mobile Imaging In Sweden Ab Metod och anordning för tagning av bilder
CA2841910A1 (en) 2011-07-15 2013-01-24 Mobile Imaging In Sweden Ab Method of providing an adjusted digital image representation of a view, and an apparatus
US9083977B2 (en) 2012-11-27 2015-07-14 Omnivision Technologies, Inc. System and method for randomly accessing compressed data from memory
KR102430173B1 (ko) 2015-11-24 2022-08-05 삼성전자주식회사 디스플레이 장치
US9930354B2 (en) * 2015-12-11 2018-03-27 Google Llc Skip scanlines on JPEG image decodes
EP4395317A2 (en) 2017-07-28 2024-07-03 Panasonic Intellectual Property Corporation of America Encoding device and encoding method
JP6430086B1 (ja) * 2017-10-05 2018-11-28 三菱電機株式会社 画像提供装置、画像提供方法および画像提供プログラム
GB2567427B (en) 2017-10-06 2020-10-07 Imagination Tech Ltd Data compression
CN111968031B (zh) * 2020-07-14 2024-07-16 浙江大华技术股份有限公司 一种图像拼接方法、装置、存储介质及电子装置

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2005A (en) * 1841-03-16 Improvement in the manner of constructing molds for casting butt-hinges
US2009A (en) * 1841-03-18 Improvement in machines for boring war-rockets
US2010A (en) * 1841-03-18 Machine foe
US4698672A (en) 1986-10-27 1987-10-06 Compression Labs, Inc. Coding system for reducing redundancy
JP2563450B2 (ja) * 1988-03-10 1996-12-11 松下電器産業株式会社 ファイル用画像処理装置
JPH02122767A (ja) * 1988-10-31 1990-05-10 Nec Corp 画像信号の符号化復号化方式
US5001559A (en) 1989-10-12 1991-03-19 International Business Machines Corporation Transform coding using coefficient prediction techniques
JPH0468772A (ja) * 1990-07-04 1992-03-04 Matsushita Electric Ind Co Ltd 画像データ復号装置
US5253053A (en) * 1990-12-31 1993-10-12 Apple Computer, Inc. Variable length decoding using lookup tables
GB9104119D0 (en) * 1991-02-27 1991-04-17 Shaw Richard D Improvements in the manufacture of shaped refractory objects
JP2923700B2 (ja) * 1991-03-27 1999-07-26 株式会社半導体エネルギー研究所 半導体装置およびその作製方法
JPH04358486A (ja) 1991-06-04 1992-12-11 Toshiba Corp 高能率符号化信号処理装置
US5408328A (en) * 1992-03-23 1995-04-18 Ricoh Corporation, California Research Center Compressed image virtual editing system
FR2699122A1 (fr) * 1992-12-11 1994-06-17 Michelin & Cie Procédé d'ajustement de la pression des pneumatiques d'un véhicule.
JPH07336676A (ja) * 1994-06-08 1995-12-22 Oki Electric Ind Co Ltd 画像送信装置、画像受信装置、分散型画像通信システム及び集中型画像通信システム
US5748786A (en) * 1994-09-21 1998-05-05 Ricoh Company, Ltd. Apparatus for compression using reversible embedded wavelets
US5802213A (en) * 1994-10-18 1998-09-01 Intel Corporation Encoding video signals using local quantization levels
US5835033A (en) * 1994-11-08 1998-11-10 Canon Kabushiki Kaisha Decoding apparatus and method for coded data
JP3651941B2 (ja) * 1994-11-28 2005-05-25 キヤノン株式会社 画像再生装置
US5809200A (en) * 1995-08-07 1998-09-15 Victor Company Of Japan, Ltd. Video signal recording apparatus
US5682441A (en) 1995-11-08 1997-10-28 Storm Technology, Inc. Method and format for storing and selectively retrieving image data
US5710835A (en) 1995-11-14 1998-01-20 The Regents Of The University Of California, Office Of Technology Transfer Storage and retrieval of large digital images
US5675332A (en) * 1996-02-01 1997-10-07 Samsung Electronics Co., Ltd. Plural-step chunk-at-a-time decoder for variable-length codes of Huffman type
US5854857A (en) 1996-09-26 1998-12-29 Xerox Corporation Using encoding cost data for segmentation and background suppression in JPEG-compressed images
US5838831A (en) * 1996-09-26 1998-11-17 Xerox Corporation Compression of image data with retaining cost data for each compressed image block
US5821886A (en) * 1996-10-18 1998-10-13 Samsung Electronics Company, Ltd. Variable length code detection in a signal processing system
KR100211840B1 (ko) 1997-01-15 1999-08-02 윤종용 디지털 스틸 카메라에서 엄지손톱(thumbnail) 이미지 생성 방법
JPH10215366A (ja) * 1997-01-30 1998-08-11 Dainippon Screen Mfg Co Ltd 圧縮画像データの抽出方法およびその装置
US5963260A (en) * 1997-03-18 1999-10-05 U.S. Philips Electronics North America Corporation Macroblock-level partitioned HDTV video decoder and related method
JPH1118087A (ja) * 1997-06-20 1999-01-22 Olympus Optical Co Ltd 画像データの変換装置および変換方法
CA2310652C (en) * 1997-12-23 2008-07-22 Sarnoff Corporation Partial decoding of compressed video sequences
US6008745A (en) * 1998-02-17 1999-12-28 Sun Microsystems, Inc. Variable length decoding using lookup tables
US6219067B1 (en) * 1998-04-03 2001-04-17 Sarnoff Corporation Measures for characterizing compressed bitstreams
US6219457B1 (en) * 1998-05-26 2001-04-17 Silicon Graphics, Inc. Method and system for decoding data encoded in a variable length code word
US6353682B2 (en) * 1998-09-17 2002-03-05 Xerox Corporation Rotated read-out of JPEG compressed images
US6442302B2 (en) 1998-09-17 2002-08-27 Xerox Corporation Rotated read-out of JPEG compressed images
JP3328211B2 (ja) 1999-02-24 2002-09-24 エヌイーシーマイクロシステム株式会社 データ列制御装置
US6381371B1 (en) 1999-03-17 2002-04-30 Hewlett-Packard Company Method and apparatus for processing image files
US6374278B1 (en) * 1999-03-25 2002-04-16 Intel Corporation Method and apparatus for the generation of statistically random numbers
US6941019B1 (en) * 2000-05-10 2005-09-06 International Business Machines Corporation Reentry into compressed data
US6934417B2 (en) * 2000-12-22 2005-08-23 Texas Instruments Incorporated Transcoding scheme for assistance in image transformations
GB2370741A (en) 2000-12-29 2002-07-03 Nokia Mobile Phones Ltd Display of selected part of compressed image
US6895122B2 (en) 2001-06-25 2005-05-17 Eastman Kodak Company Method and system for determining DCT block boundaries
FR2826823B1 (fr) * 2001-06-27 2003-10-10 Canon Kk Procede et dispositif de traitement d'un signal numerique code
US7483581B2 (en) * 2001-07-02 2009-01-27 Qualcomm Incorporated Apparatus and method for encoding digital image data in a lossless manner
US6882685B2 (en) 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
JP4856848B2 (ja) * 2001-10-11 2012-01-18 アルテラ コーポレイション プログラマブルロジックリソース上のエラー検出
US6563440B1 (en) * 2001-10-19 2003-05-13 Nokia Corporation Apparatus and method for decoding Huffman codes using leading one/zero string length detection
US6948127B1 (en) * 2001-12-10 2005-09-20 Cisco Technology, Inc. Interface for compressed video data analysis
US6912646B1 (en) * 2003-01-06 2005-06-28 Xilinx, Inc. Storing and selecting multiple data streams in distributed memory devices
WO2005050567A1 (en) 2003-11-18 2005-06-02 Scalado Ab Method for processing a digital image and image representation format
US6956511B2 (en) * 2004-01-06 2005-10-18 Sharp Laboratories Of America, Inc. Multi-symbol/coefficient decode operation for Huffman codes

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2564631C2 (ru) * 2009-10-28 2015-10-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования остаточного блока, способ и устройство для декодирования остаточного блока
US10136149B2 (en) 2009-10-28 2018-11-20 Samsung Electronics Co., Ltd. Method and apparatus for encoding residual block, and method and apparatus for decoding residual block
US10154273B2 (en) 2009-10-28 2018-12-11 Samsung Electronics Co., Ltd. Method and apparatus for encoding residual block, and method and apparatus for decoding residual block
US10171826B2 (en) 2009-10-28 2019-01-01 Samsung Electronics Co., Ltd. Method and apparatus for encoding residual block, and method and apparatus for decoding residual block
US10178401B2 (en) 2009-10-28 2019-01-08 Samsung Electronics Co., Ltd. Method and apparatus for encoding residual block, and method and apparatus for decoding residual block
US10257530B2 (en) 2009-10-28 2019-04-09 Samsung Electronics Co., Ltd. Method and apparatus for encoding residual block, and method and apparatus for decoding residual block
US9137443B2 (en) 2011-04-26 2015-09-15 Blackberry Limited Fast estimation of binary data length using memory corruption
RU2606310C2 (ru) * 2015-01-23 2017-01-10 Общество С Ограниченной Ответственностью "Яндекс" Электронное устройство и способ для отрисовки панорамного изображения

Also Published As

Publication number Publication date
WO2005050567A1 (en) 2005-06-02
US20090103824A1 (en) 2009-04-23
KR20110115153A (ko) 2011-10-20
JP5238891B2 (ja) 2013-07-17
EP1685537B1 (en) 2015-04-01
JP2012110016A (ja) 2012-06-07
KR20060124652A (ko) 2006-12-05
US7711195B2 (en) 2010-05-04
US7711205B2 (en) 2010-05-04
US8396306B2 (en) 2013-03-12
JP4949037B2 (ja) 2012-06-06
US20090103823A1 (en) 2009-04-23
US20050152608A1 (en) 2005-07-14
US20090097762A1 (en) 2009-04-16
EP2713619A2 (en) 2014-04-02
US20090097761A1 (en) 2009-04-16
US20090097767A1 (en) 2009-04-16
KR101142584B1 (ko) 2012-05-10
RU2006121481A (ru) 2007-12-27
US7831101B2 (en) 2010-11-09
JP2007514345A (ja) 2007-05-31
US7480418B2 (en) 2009-01-20
EP2713619A3 (en) 2015-01-07
KR101089489B1 (ko) 2011-12-02
KR20120031073A (ko) 2012-03-29
EP1685537A1 (en) 2006-08-02
US7720298B2 (en) 2010-05-18
US20100172592A1 (en) 2010-07-08
US7853090B2 (en) 2010-12-14
US7965897B2 (en) 2011-06-21
US20110194781A1 (en) 2011-08-11

Similar Documents

Publication Publication Date Title
RU2368005C2 (ru) Способ для обработки цифрового изображения (варианты)
US8121428B2 (en) Accelerated image rendering
US7773816B2 (en) Systems and methods for decoding large images
US5838831A (en) Compression of image data with retaining cost data for each compressed image block
US8306346B2 (en) Static image compression method and non-transitory computer readable medium having a file with a data structure
CN101635853B (zh) 处理数字图像的方法
KR100530745B1 (ko) 고해상도 영상신호를 저해상도 디스플레이 장치에 디스플레이하는 디스플레이 방법
KR100495001B1 (ko) 이미지 압축 부호화 방법 및 시스템
SE528172C2 (sv) Metod för behandling av en digital bild och bildrepresentationsformat
KR100777286B1 (ko) 다수개의 정지영상 빠른 검색 장치 및 방법

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20120926

PD4A Correction of name of patent owner
PC41 Official registration of the transfer of exclusive right

Effective date: 20190329

MM4A The patent is invalid due to non-payment of fees

Effective date: 20191117