Способ и устройство для быстрого и эффективного сжатия и распаковки изображений

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

 

ОБЛАСТЬ ТЕХНИКИ

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

УРОВЕНЬ ТЕХНИКИ

С прогрессом развития в обработке данных цифровых изображений было открыто все больше областей применения, каждая из которых имеет специфические для области требования для выполнения. В области цифровых клинических лабораторных исследований как иллюстративной области применения должны быть обработаны большие объемы данных, чтобы гарантировать необходимое разрешение для патологического анализа. Чтобы справиться с большими объемами данных, обычно невозможно обойтись без сжатия данных изображений. Традиционно были предложены и часто используются различные методики, такие как прогнозирующее кодирование и кодирование с использованием DCT (дискретного косинусного преобразования). В последние годы активно изучался и использовался способ сжатия информации, использующий вейвлет-преобразование, например, в формате JPEG2000.

Вейвлет-преобразование основано на подразделении на множество иерархических подполос, в котором подполоса разделяется в горизонтальном направлении, в вертикальном направлении и в диагональном направлении. Тогда разделение полосы вплоть до третьей иерархии приводит к десяти поддиапазонам, как показано на фиг. 1. В настоящем документе каждая из подполос 3LL, 3LH, 3НL и 3HH является подполосой самой младшей иерархии, каждая из подполос 2LH, 2HL и 2HH является подполосой следующей более высокой иерархии, и каждая из подполос 1LH, 1HL и 1HH является поддиапазоном самой старшей иерархии. Кроме того, LH является подполосой, подвергнутой низкочастотному фильтрованию в горизонтальном направлении и высокочастотному фильтрованию в вертикальном направлении, HL является подполосой, подвергнутой высокочастотному фильтрованию в горизонтальном направлении и низкочастотному фильтрованию в вертикальном направлении, и HH является подполосой, подвергнутой высокочастотному фильтрованию и в горизонтальном, и в вертикальном направлениях.

По сравнению с форматом JPEG, формат JPEG2000, использующий вейвлет-преобразование, приводит к менее характерному искажению и шуму, которые происходят от блочной структуры. Вейвлет-преобразование само по себе не имеет эффекта сжатия; следовательно, оно часто используется в сочетании с энтропийным кодированием, которое позволяет выполнять сжатие коэффициентов подполос. Методики сжатия данных в общем случае имеют дело с компромиссом между качеством данных и скоростью кодирования.

Формат JPEG, например, обеспечивает более низкое качество и не может быть простым образом выполнен без потерь. Усовершенствованные форматы сжатия, такие как JPEG2000, с другой стороны, являются довольно медленными по сравнению с форматом JPEG. Для таких приложений - но без ограничения - как цифровые клинические лабораторные исследования, желательным является сжатие изображений в реальном времени на готовых персональных компьютерах, чтобы дать возможность анализа пользователем "на лету". Формат JPEG2000 потребовал бы специально изготовленные кодеки аппаратного сжатия, чтобы дать возможность такого сжатия изображений в реальном времени.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

Задача решена посредством предмета, определенного в независимых пунктах формулы изобретения.

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

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

сохранение кодовых слов последовательно для каждой закодированной битовой плоскости.

Изобретение основано на идее сериализации битовых плоскостей, представляющих конкретный бит соответствующего n-битного пиксельного представления, например, битовой плоскости для старшего значащего бита, за которой следует битовая плоскость следующего по значимости бита, и далее до битовой плоскости младшего значащего бита. Биты в каждой плоскости затем подвергаются кодированию длинами серий нулей и оптимальному префиксному кодированию. Полученные в результате кодовые слова затем выдаются в последовательном порядке. Ключевым аспектом, лежащим в основе подхода, является скорость и простота по сравнению с коэффициентом сжатия. Предложенный кодер приблизительно на 10% менее эффективен, чем сложный кодер битовых плоскостей, такой как используется в алгоритме EBCOT для формата JPEG2000. С другой стороны, он в 10 раз быстрее. Также он оптимизирован для реализации в специализированной интегральной схеме (ASIC) или программируемой пользователем вентильной матрице (FPGA). Кроме того, посредством сохранения указателей на соответствующие первые биты каждой битовой плоскости в заголовке соответствующего изображения в потоке данных возможна прогрессивная развертка изображения, например, формирование изображения с низким качеством без учета предопределенного количества младших значащих битовых плоскостей. Такая частичная распаковка данных изображения приводит к изображению с низким качеством, но не к испорченному изображению, что может являться достаточным в определенных ситуациях, например, для быстрого обзора. Таким образом, в предпочтительном варианте осуществления способ содержит обеспечение указателей на первый бит каждой сжатой битовой плоскости в битовом потоке в секции заголовка соответствующего изображения в битовом потоке.

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

В предпочтительном варианте осуществления локальный контекст содержит соседние биты в N-мерном наборе данных, например, 2*2*2-битовую местную область в трехмерном наборе данных, таком как трехмерное преобразованное изображение.

В предпочтительном варианте осуществления, в котором предварительно заданное количество соседних битов, кратное 8 битам, является эффективным блоком вычисления. Например, если эффективный блок вычисления компьютера/микросхемы составляет 8 битов, количество битов в местной области устанавливается равным 8, чтобы иметь эффективную 8-битовую=1-байтовую таблицу символов.

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

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

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

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

формировать сериализованные плоскости визуального представления;

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

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

выдавать кодовые слова последовательно для каждой закодированной битовой плоскости.

В дополнительном аспекте там способ для декодирования, содержащий:

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

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

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

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

Эти и другие аспекты изобретения будут очевидны из вариантов осуществления и разъяснены со ссылкой на варианты осуществления, описанные далее.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Фиг. 1 иллюстрирует принцип вейвлет-кодирования.

Фиг. 2 показывает предпочтительный вариант осуществления настоящего изобретения.

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

ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

Фиг. 2 показывает вариант осуществления настоящего изобретения. Хотя вариант осуществления описан относительно сжатия коэффициентов вейвлет-преобразования, следует понимать, что вместо этого может использоваться любое другое кодированием с преобразованием, обычно применяемое в области кодирования изображений, например, дискретное косинусное преобразование (DCT).

Способ будет работать даже над закодированными без преобразования данными изображения. С использованием вейвлет-преобразования сериализация приведет к трем множествам подполос: HL - подполоса, подвергнутая высокочастотному фильтрованию в горизонтальном направлении и низкочастотному фильтрованию в вертикальном направлении, LH - подполоса, подвергнутая низкочастотному фильтрованию в горизонтальном направлении и высокочастотному фильтрованию в вертикальном направлении, и HH - подполоса, подвергнутая высокочастотному фильтрованию и в горизонтальном, и в вертикальном направлениях.

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

Вместо того, чтобы использовать сложный кодер битовой плоскости, такой как EBCOT из формата JPEG2000, очень простой оптимальный префиксный кодер, например, кодер Хаффмана, используется для локального контекста битовой плоскости, например, как в этом примере, 4*2-битовой окружающей области (это проиллюстрировано на фиг. 2 ссылкой 100, указывающей на набор заштрихованных пикселей). Наличие битов, имеющих общий локальный контекст, может эффективно сжать шаблоны с отсутствием случайности в данных.

Например, битовые плоскости могут быть проанализированы на наличие серий нулей, которые могут быть закодированы длинами серий посредством замены соответствующих последовательностей нулевых битов символом серии нулей, за которым следует число, указывающее длину серии нулей. Предпочтительно кодирование сериями нулей действует на группы битов, которые являются нулевыми, имеющими такой же локальный контекст, как не нулевые биты (например, биты 4×2). Символ серии нулей и все другие биты в битовой плоскости, имеющей общее местоположение, затем подвергаются оптимальному префиксному кодированию. Таким образом, локальный контекст оставшихся (не нулевых) битов не разрушается посредством кодирования длинами серий нулей.

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

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

Фиг. 3 показывает последовательность блоков изображений в соответствии с предпочтительным вариантом осуществления настоящего изобретения. В секции заголовка имеется предоставленная информация, относящаяся к битовой плоскости, поисковой таблицe и энтропийному кодеру (например, таблица кодирования Хаффмана), и факультативно к битовой маске в случае, если вся битовая плоскость имеет только нулевые записи. Для каждой из трех подполос, получающихся из вейвлет-кодирования, LH, HL и HH следуют за первой битовой плоскостью, относящейся к знаку n-битового представления коэффициента, затем следуют битовые плоскости для старших значащих битов, здесь бит 8, затем бит 7 для всех подполос и далее до бита 0.

1. Способ для кодирования данных изображения, содержащий этапы, на которых:

получают представление цифрового изображения данных изображения,

формируют сериализованные битовые плоскости визуального представления;

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

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

выдают кодовые слова последовательно для каждой закодированной битовой плоскости.

2. Способ по п. 1, дополнительно содержащий этап, на котором:

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

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

4. Способ по п. 1, в котором предварительно определенное количество соседних битов является кратным 8 битам.

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

6. Способ по п. 1, в котором получение представления цифрового изображения содержит этап, на котором кодируют с преобразованием данные изображения для формирования визуального представления посредством коэффициентов преобразования.

7. Способ по п. 6, в котором кодирование с преобразованием представляет собой кодирование с вейвлет-преобразованием, и/или в котором коэффициенты, принятые от кодирования с вейвлет-преобразованием, являются квантованными.

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

формировать сериализованные плоскости визуального представления;

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

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

выдавать кодовые слова последовательно для каждой закодированной битовой плоскости.

9. Устройство по п. 8, причем устройство выполнено с возможностью обеспечивать указатели на первый бит каждой сжатой битовой плоскости в битовом потоке в секции заголовка битового потока.

10. Устройство по п. 8, причем устройство выполнено с возможностью выбирать количество битов, используемых для хранения количества нулевых битов в последовательностях нулевых битов, выбранных на основе оценки шаблона нулевых битов для соответствующего набора данных, и/или причем локальный контекст содержит соседние биты в N-мерном наборе данных.

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

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

13. Устройство по п. 12, в котором кодирование с преобразованием представляет собой кодирование с вейвлет-преобразованием, и/или причем коэффициенты, принятые от кодирования с преобразованием, являются квантованными.

14. Способ для декодирования данных изображения, способ содержит этапы, на которых:

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



 

Похожие патенты:

Изобретение относится к средствам для кодирования и декодирования изображения. Технический результат заключается в повышении эффективности кодирования изображений.

Изобретение относится к области вычислительной техники. Технический результат заключается в улучшении эффективности кодирования.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности кодирования.

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

Изобретение относится к обработке изображений. Технический результат заключается в повышении точности повторного синтеза изображения на основании входного изображения.

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

Предложен способ для транспортного средства. Обнаруживают изменение в схеме поездки транспортного средства, основываясь на отслеженных данных и схемах поездок, которые хранятся в транспортном средстве.

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении возможности указывать изображение доступа, или точку доступа, для уровня, который обеспечивает возможность декодирования некоторых из временных уровней.

Изобретение относится к области вычислительной техники. Технический результат заключается в улучшении качества визуализации во время потоковой передачи спланированных по времени мультимедийных данных.

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

Изобретение относится к кодеку преобразования. Технический результат - возможность одновременно производить большое число входных векторов.
Наверх