Кодер, способ кодирования данных, декодер, способ декодирования данных, система передачи данных, способ передачи данных и программный продукт

Иллюстрации

Показать все

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

Реферат

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

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

ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ

Существует много известных современных способов кодирования данных (D1) с формированием кодированных данных (E2), а также способов декодирования кодированных данных (E2) с формированием декодированных данных (D3). Однако способ кодирования данных, который подходил бы для кодирования широкого диапазона контента, представленного указанными данными (D1), например, неподвижных изображений, видеоконтента, аудиоконтента или графического контента, отсутствует. Первоочередной задачей такого кодирования является формирование кодированных данных (E2), которые будут более компактными, чем соответствующие данные (D1), которые должны быть кодированы. Кроме того, также отсутствует соответствующий декодер для декодирования таких кодированных данных (E2). Известные способы кодирования изображений, такие как JPEG (Joint Photographic Experts Group, «объединенная группа экспертов в области фотографии», а именно кодирование на основе дискретного косинусного преобразования (Discrete Cosine Transform, DCT) с потерями информации), JPEG2000 (а именно кодирование на основе вейвлет-преобразования) и WebP (кодирование формата изображений, которое использует во время кодирования как сжатие с потерями, так и сжатие без потерь) хорошо приспособлены для сжатия обычного содержимого изображений, но меньше подходят для сжатия текста или изображений, цвета которых описываются только несколькими значениями цвета и содержимое которых имеет относительно высокую пространственную частотную компоненту. Известный альтернативный способ кодирования данных называется GIF (Graphics Interchange Format, формат обмена графическими данными) и использует алгоритм сжатия на основе цветовой палитры, который хорошо приспособлен для кодирования изображений, которые могут быть представлены относительно небольшим количеством значений цвета, необходимых для восстановления изображений, например, 256 значениями цвета; однако, если изображения, которые должны быть кодированы с использованием алгоритмов GIF, включают обычные объекты, имеющие тонкие постепенные пространственные изменения цвета, GIF формирует нежелательные артефакты, заметные в соответствующих декодированных изображениях GIF. Известный современный способ кодирования PNG (Portable Networks Graphics, переносимая сетевая графика, кодирование без потерь) в целом аналогичен кодированию GIF и обеспечивает больше опций для кодирования данных изображений, но тем не менее не подходит для изображений, который содержат небольшой диапазон значений цвета. Другие известные способы кодирования применяют кодирование текста с использованием оптического распознавания символов (Optical Character Recognition, OCR) в комбинации с кодированием символов; OCR иногда является подходящим способом для использования, но оно чувствительно к позиционированию текста в изображении, наклону текста в изображении, шрифту текста, а также объекту, в котором находится текст; кроме того, для осуществления оптического распознавания символов может потенциально требоваться значительная вычислительная мощность. В последнее время научные публикации предлагают альтернативные способы кодирования, подходящие для кодирования данных, которые имеют двухуровневый формат последовательности блоков данных; подробности этих научных публикаций приведены в таблице 1.

Таблица 1
Способы кодирования данных в двухуровневом формате последовательности блоков данных
Название публикации Авторы Подробности публикации
«Способ двухуровневого блочного кодирования для кодирования последовательностей данных с разреженным распределением» («А bi-level block coding technique for encoding data sequences with sparse distribution») Li Tan и Jean Jiang Proceedings of the 2008 IAJC-IJME International Conference, International Journal of Modern Engineering (IJME), paper 185,
ENT 201 ISBN 978-1-60643-379-9
«Сжатие данных о форме сигнала без потерь для эффективной передачи и хранения» («Lossless compression of waveform data for efficient transmission and storage») S.D. Stearms, L. Tan,и N. Magotra IEEE Transactions on Geoscience and Remote Sensing,
Том 31, №3, с.645-654, май 1993
«Способ блочного кодирования для кодирования разреженных двоичных изображений» («A block coding technique for encoding sparse binary patterns») G. Zeng и N. Ahmed IEEE Transactions on Acoustics, Speech and Signal Processing,
Том 37, №5, с.778-780, май 1989

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

В патенте США №6,151,409 («Способы сжатия и восстановления цветных изображений в вычислительной системе») раскрывается способ сжатия цветного изображения путем применения визуального усеченного блочного кодирования изображения (visual block pattern truncation coding, VBPTC), в котором стандартное усеченное блочное кодирование (block truncation coding, BTC) служит для кодирования исходного изображения. Данный способ задает краевой блок в соответствии со зрительным восприятием человека. В случае если разность между двумя квантованными значениями BTC в блоке больше порогового значения, которое задано зрительными характеристиками, указанный блок будет идентифицирован в качестве краевого блока. В краевом блоке растровое изображение адаптировано для вычисления ориентации градиента блока и согласования с шаблоном блока.

Указанный способ подходит только для изображения, которое содержит только блоки 4×4, которые дополнительно содержат либо уровень DC, или чистый край под углом 90° или 45°. Кроме того, указанный способ может обеспечивать устранение шума или удаление деталей, если маска не попадает в цель точно. Также указанный способ совершенно не подходит для кодирования текста или текстуры, а также не подходит для кодирования шаблонов, которые не могут быть изображены с использованием прямой линии или которые имеют направления, отличные от кратных 45°.

В опубликованном патенте США №5,668,932 («Способ сжатия цифровых видеоданных»), описан альтернативный способ сжатия цифровых видеоданных, который обеспечивает улучшенное сжатие по сравнению со стандартными способами сжатия блоков. В указанном альтернативном способе данные изображения разбивают на ячейки и многократно сжимают. Ячейки сжимают с использованием форматов сжатия, которые наиболее подходят для содержимого ячеек. В первую очередь определяют, является ли ячейка по существу идентичной следующей ячейке в предыдущем кадре. Если ячейка является по существу идентичной ячейке в предыдущем кадре, указанную ячейку кодируют в сжатом виде как копию предыдущей ячейки. Кроме того, в упомянутый способ сжатия могут быть объединены подходы одноцветного сжатия и подходы восьмицветного сжатия.

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

В опубликованной международной заявке WO 00/19374 («Сжатие и распаковка данных изображений с использованием четырехуровневого блочного кодирования») описан способ и устройство для сжатия и распаковки данных изображений. Опционально, указанный способ сжатия цветовой ячейки включает следующие шаги:

I) задание по меньшей мере четырех уровней яркости цветовых ячеек;

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

III) вычисление первого среднего значения цвета пикселей, связанных с первым уровнем яркости;

IV) вычисление второго среднего значения цвета пикселей, связанных со вторым уровнем яркости; и

V) сохранение указанной битовой маски, связанной с указанным первым средним значением цвета и указанным вторым средним значением цвета.

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

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

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

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

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

Кроме того, настоящее изобретение обеспечивает улучшенный способ декодирования данных (E2), сформированных кодерами согласно настоящему изобретению.

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

Согласно первому аспекту, предложен кодер в соответствии с п.1 приложенной формулы изобретения: предложен кодер для кодирования данных (D1) с формированием соответствующих кодированных данных (E2), характеризующийся тем, что указанный кодер содержит:

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

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

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

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

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

Опционально, кодер дополнительно включает входную ступень для разделения и/или объединения данных (D1), которые должны быть кодированы, с формированием указанной одной или более частей, если указанные данные (D1), которые должны быть кодированы, еще не включены в указанную одну или более частей.

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

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

Опционально, в кодере указанное по меньшей мере одно агрегированное значение представляет собой среднее арифметическое, скошенное среднее значение, логарифмическое среднее, взвешенное среднее, среднее значение, минимальное значение, максимальное значение, значение моды или медианное значение. Также возможны другие типы вычислений, например, вычисленный результат комплексной математической функции, например, полиномиальное вычисление, которое обеспечивает форму агрегированного результата. Один из примеров других типов вычислений включает выбор исходного значения набора данных таким способом, который минимизирует расстояние между исходным значением и средним значением максимального значения и минимального значения. Такой тип агрегированного значения минимизирует максимальную ошибку в наборе данных и также часто формирует маленькую среднеквадратическую ошибку (mean-square error, MSE).

Согласно второму аспекту предложен способ кодирования данных (D1) с формированием соответствующих кодированных данных (E2), характеризующийся тем, что указанный способ включает:

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

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

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

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

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

Опционально, в указанном способе кодированные данные (E2) дополнительно кодированы и/или сжаты. Опционально, в указанном способе дополнительное кодирование и/или сжатие включает по меньшей мере одно из следующего: дифференциальную импульсно-кодовую модуляцию (differential pulse-code modulation, DPCM), кодирование длин серий (run-length encoding, RLE), скользящее кодирование длин серий (SRLE, «Split run-length encoding», способ, раскрытый в заявке GB 1303660.3, поданной Gurulogic Microsystems Oy 01.03.2013), модификатор энтропии (ЕМ, «Entropy Modifier», способ, раскрытый в заявке GB 1303658.7, поданной Gurulogic Microsystems Oy 01.03.2013), арифметическое кодирование, дельта-кодирование, кодирование ODelta (способ, раскрытый в заявке GB1303661.1, поданной Gurulogic Microsystems Oy 01.03.2013), кодирование с переменной длиной (Variable-Length Coding, VLC), кодирование на основе преобразования Лемпеля-Зива (Lempel-Ziv coding, ZLIB, LZO, LZSS, LZ77), кодирование на основе преобразования Барроуза-Уиллера (Burrow-Wheeler transform-based coding, RLE, BZIP2), кодирование Хаффмана.

Согласно третьему аспекту, предложен декодер для декодирования кодированных данных (E2) с формированием соответствующих декодированных данных (D3), характеризующийся тем, что указанный декодер включает:

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

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

Опционально, декодер включает выходной блок декодера для приема декодированных выходных данных из указанного одного или более блоков декодирования и для последующего объединения указанных декодированных выходных данных с формированием общих декодированных данных (D3) декодера.

Опционально, декодер дополнительно включает входную ступень для извлечения одной или более частей из указанных кодированных данных (E2) для их направления, как задано параметрами кодирования, имеющимися в указанных кодированных данных, в один или более блоков декодирования.

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

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

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

Согласно четвертому аспекту, предложен способ декодирования кодированных данных (E2) с формированием соответствующих декодированных данных (D3), характеризующийся тем, что указанный способ включает:

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

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

Опционально, указанный способ включает использование выходного блока декодера для приема декодированных данных из указанного одного или более блоков декодирования и для последующего объединения указанных декодированных выходных данных с формированием общих декодированных данных (D3).

Опционально, указанный способ дополнительно включает использование входной ступени для извлечения одной или более частей из указанных кодированных данных (E2) для их направления, как задано параметрами кодирования, имеющимися в указанных кодированных данных (E2), в один или более блоков декодирования.

Опционально, в указанном способе указанный по меньшей мере один блок декодирования из указанных одного или более блоков декодирования выполнен с возможностью присвоения значений элементам маски, соответствующей указанным наборам данных, при этом имеется от 2 до 8 наборов данных или 2 или более наборов данных. Такой пример предпочтительно используется для 8-битовых двоичных данных, хотя дополнительно опционально используют 16-битовые, 32-битовые и так далее двоичные данные.

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

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

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

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

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

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

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

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

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

на фиг.1 проиллюстрированы кодер и декодер;

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

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

фиг.3 представляет собой схематическое изображение второй ступени кодирования кодера, показанного на фиг.2A;

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

на фиг.5 проиллюстрирован блок данных, который должен быть кодирован с использованием кодера, показанного на фиг.2A;

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

на фиг.7 проиллюстрирован восстановленный декодированный блок данных, извлеченный из кодированных данных, сформированных кодером, показанным на фиг.2A.

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

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

В общем, настоящее изобретение относится к улучшенному способу кодирования данных (D1) с формированием соответствующих кодированных данных (E2), при этом указанный способ может обеспечить повышенную степень эффективности кодирования. Указанный улучшенный способ может обеспечить эффективное кодирование широкого диапазона содержимого, представленного в данных (D1), которые должны быть кодированы, например, неподвижных изображений, видеоконтента, графического контента, аудиоконтента, электрокардиограммы (electrocardiogram, ECG), сейсмических данных и так далее.

На фиг.1 проиллюстрирован кодер 10, выполненный с возможностью кодирования данных 20 (D1) с использованием способа в соответствии с настоящим изобретением. Кодер 10 формирует кодированные данные 70 (E2), которые могут быть сохранены и/или переданы с использованием потоковой передачи для последующего декодирования в одном или более декодерах 25. Указанные один или более декодеров 25 выполнены с возможностью формирования соответствующих декодированных данных 75 (D3) для использования одним или более пользователями. Декодированные данные 75 (D3) опционально соответствуют по существу некодированным данным 20. Комбинация по меньшей мере одного кодера 10 и по меньшей мере одного соответствующего декодера 25 формирует систему передачи данных, обозначенную в целом позицией 5, а именно кодек.

На фиг.2A проиллюстрирован кодер 10, выполненный с возможностью кодирования данных 20 (D1) с использованием способа в соответствии с настоящим изобретением. Кодер 10 использует первую ступень 30, которая разделяет данные 20 (D1), которые должны быть кодированы, на блоки 40 данных, если указанные данные 20 (D1) еще не в формате блока данных; такое разделение данных 20 (D1), которые должны быть кодированы, опционально приводит к получению блоков 40 данных, имеющих взаимно различающиеся размеры, то есть неоднородных блоков, в зависимости от характера содержимого, включенного в указанные блоки 40 данных; это отличается от многих известных алгоритмов кодирования, которые применяют однородное разделение данных (D1) на соответствующие блоки данных. Во второй ступени 50 кодер 10 включает блок 100 анализа и множество блоков 110(1)-110(n) кодирования, применяющих различные типы алгоритмов кодирования, которые являются взаимно различающимися, а некоторые из алгоритмов кодирования могут быть известными алгоритмами, например, DCT, но не ограничиваются упомянутым, при этом указанные блоки 110(1)-110(n) кодирования выборочно используют для обработки каждого блока 40 данных. Необходимо понимать, что некоторые из алгоритмов, применяемых в блоках 110(1)-110(n) кодирования, являются по существу аналогичными, но выполняются параллельно во времени. По меньшей мере один из блоков 110(1)-110(n) кодирования выполнен с возможностью сортировки данных, имеющихся в блоке 40 данных, по меньшей мере на два уровня, а также формирования маски или маек, описывающих, какие значения данных в указанном блоке 40 данных относятся к соответствующему уровню, а также вычисления агрегированных значений данных, отсортированных для каждого уровня, например, среднего значения или аналогичного. Третья ступень 60 включает сжатие битового отображения, а также агрегированных значений для каждого уровня с формированием кодированных данных 70 (E2) из кодера 10; для третьей ступени 60 могут опционально использоваться различные алгоритмы сжатия, например, кодирование длин серий (RLE), дифференциальная импульсно-кодовая модуляция (DPCM), кодирование с переменной длиной (VLC), скользящее кодирование длин серий (SRLE), модификатор энтропии (EM), кодирование ODelta, диапазонное кодирование, хотя альтернативно или дополнительно используются другие алгоритмы сжатия данных, например, многоступенчатое сжатие данных. Опционально, кодер (10) может использоваться в комбинации с другими кодерами для достижения гибридного кодирования данных 20 (D1) с формированием кодированных данных 70 (E2), например, DCT, цветовая палитра, DPCM. На практике термин «уровень» может соответствовать одному или более из следующего: уровню цветности, уровню яркости, значению цвета, яркости освещенности, амплитуде, частоте, интенсивности, однако, термин «уровень» может также включать другие параметры, описывающие физические переменные, в зависимости от характера данных 20 (D1), которые должны быть кодированы.

На первом шаге 30 блоки 40 данных могут отличаться по размеру в зависимости от характера содержимого, имеющегося в данных 20 (D1), которые должны быть кодированы. Данные 20 (D1) опционально являются одномерными, например, аудиоконтент, данные электрокардиографии, сейсмические данные. Альтернативно, данные 20 (D1) являются многомерными, например, неподвижные изображения, видеоконтент, графический контент, трехмерные (3D) изображения/видео/графика. Кроме того, двумерные входные данные включают, например, квадрат, треугольник, круг и подобные элементы, то есть опционально, любой тип двумерной геометрической формы. Кроме того, трехмерные данные изображений включают, например, элементы, являющиеся кубическими, пирамидальными, цилиндрическими, сферическими и так далее. Если данные 20 (D1), которые должны быть кодированы, включают пространственные высокочастотные компоненты и только несколько уровней для задания пространственных элементов, представленных в указанных данных 20 (D1), известные современные способы кодирования особенно не эффективны, но эффективно обрабатываются в кодере 10. Опционально, кодер 10 может кодировать данные 20 (D1) в виде исходных данных или данных, сформированных путем предварительной обработки перед кодированием, например, с помощью DPCM, оценки движения, пространственного предсказания.

Как было упомянуто выше, во второй ступени 50 кодера 10 используется способ сжатия согласно настоящему изобретению, как показано на фиг.3. Осуществляют анализ блоков 40 данных из первой ступени 30 в блоке 100 анализа для определения наиболее подходящего алгоритма кодирования, чтобы использовать его для кодирования указанных блоков 40 данных; в зависимости от того, выполнен ли анализ только блоком 100 анализа или блоком 100 анализа совместно с одним или более блоками 110(1)-110(n) кодирования, указанные блоки данных направляют в один или более блоков 110(1)-110(n) кодирования, при этом n является целым числом и описывает общее количество различных алгоритмов кодирования, применяемых во второй ступени 50; указанное общее количество различных алгоритмов кодирования опционально включает комбинацию известных алгоритмов кодирования совместно с, например, двухуровневым алгоритмом кодирования согласно настоящему изобретению, при котором вычисленные значения, связанные с двумя уровнями определяют, например, из вычислений среднего значения, значения моды или медианного значения, примененных к значениям данных в заданном кодированном блоке 40 данных; необходимо понимать, что двухуровневый алгоритм кодирования является только примером и что опционально могут применяться различные многоуровневые алгоритмы. Блок 100 анализа анализирует количество различных цветов, представленных в блоках 40 данных, и информацию о пространственной частоте, представленной в блоках 40 данных, для принятия решения о том, какой блок 110 кодирования является оптимальным для использования для кодирования заданного типа блока 40 данных. Блоки 110 кодирования опционально используют один или более из следующих видов кодирования: кодирование постоянной составляющей (Direct Current, DC), кодирование изменения, дискретное косинусное преобразование (DCT), кодирование цветовой палитры, кодирование базы данных, кодирование VQ (vector quantization, векторное квантование), кодирование с масштабированием, линейное кодирование, способы интерполяции и экстраполяции. В кодированные данные из второй ступени 50 включены данные, указывающие, какой из блоков 110 кодера использовался для любого заданного блока 40 данных. По меньшей мере один блок 110(i) кодирования из блоков 110 кодирования, причем целое число i находится в диапазоне от 1 до n, использует алгоритм кодирования согласно настоящему изобретению, который будет описан более подробно далее. Опционально, размеры блоков 40 данных могут разл