СПОСОБ И УСТРОЙСТВО ДЛЯ БЫСТРОГО И ЭФФЕКТИВНОГО СЖАТИЯ И РАСПАКОВКИ ИЗОБРАЖЕНИЙ
METHOD AND DEVICE FOR FAST AND EFFICIENT COMPRESSION AND DECOMPRESSION OF IMAGES

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к сжатию и распаковке данных, в частности, для больших изображений, пример, используемых в цифровых клинических лабораторных исследованиях.
УРОВЕНЬ ТЕХНИКИ
С прогрессом развития в обработке данных цифровых изображений было открыто все больше областей применения, каждая из которых имеет специфические для области требования для выполнения. В области цифровых клинических лабораторных исследований как иллюстративной области применения должны быть обработаны большие объемы данных, чтобы гарантировать необходимое разрешение для патологического анализа. Чтобы справиться с большими объемами данных, обычно невозможно обойтись без сжатия данных изображений. Традиционно были предложены и часто используются различные методики, такие как прогнозирующее кодирование и кодирование с использованием 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.