Снижение ошибок в ходе вычисления обратного дискретного косинусного преобразования

Иллюстрации

Показать все

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

Реферат

Данная заявка притязает на приоритет предварительной патентной заявки США №60/816,697, поданной 26 июня 2006 г., предварительной патентной заявки США №60/841,362, поданной 30 августа 2006 г., предварительной патентной заявки США №60/847,194, поданной 25 сентября 2006 г., предварительной патентной заявки США №60/829,669, поданной 16 октября 2006 г., и предварительной патентной заявки США №60/869,530, поданной 11 декабря 2006 г., содержание которых, в полном объеме, настоящим включено посредством ссылки.

Область техники

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

Уровень техники

Многие существующие стандарты кодирования изображения и видео используют методы сжатия, позволяющие сохранять или передавать изображения и видео высокого разрешения в виде относительно компактных файлов или потоков данных. Такие стандарты кодирования включают в себя Joint Photographic Experts Group (JPEG), Moving Pictures Experts Group (MPEG)-1, MPEG-2, MPEG-4 часть 2, H.261, H.263 и другие стандарты кодирования изображения или видео.

В соответствии со многими из этих стандартов видеокадры сжимаются с использованием “пространственного” кодирования. Эти кадры могут быть исходными кадрами (т.е. i-кадрами) или могут быть остаточными кадрами, генерируемыми в процессе временного кодирования, который использует компенсацию движения. В ходе пространственного кодирования кадры разбиваются на блоки пикселей равного размера. Например, несжатый кадр можно разбить на множество блоков пикселей 8×8. Для каждого блока пикселей компоненты пикселя делятся на матрицы значений компонентов пикселя. Например, каждый блок пикселей можно разделить на матрицу значений компонента Y пикселя, матрицу значений компонента U пикселя и матрицу значений компонента V пикселя. В этом примере значения компонента Y пикселя указывают значения яркости и значения компонентов U и V пикселя представляют значения цветности.

Кроме того, в ходе пространственного кодирования прямое дискретное косинусное преобразование (FDCT) применяется к каждой матрице значений компонентов пикселя в кодируемом кадре. Идеальное одномерное FDCT определяется как

,

где s - это массив из N исходных значений, t - это массив из N преобразованных значений, и коэффициенты c задаются как

для 1≤k≤N-1.

Идеальное двумерное FDCT определяется по формуле:

,

где s - это массив из N исходных значений, t - это массив из N преобразованных значений, и c(i,j) задается соотношением c(i,j)=c(i)c(j), где c(k) определяется, как в одномерном случае.

Матрица коэффициентов получается, когда блок значений компонентов пикселя преобразуется с использованием FDCT. Эту матрицу коэффициентов затем можно квантовать и кодировать с использованием, например, кода Хаффмана или арифметического кода. Битовый поток видеосигнала представляет комбинированный результат осуществления этого процесса на всех блоках значений компонентов пикселя в последовательности видеокадров в несжатой последовательности видеокадров.

Несжатый видеокадр можно получить из битового потока видеосигнала, обратив этот процесс. В частности, каждая матрица коэффициентов в битовом потоке распаковывается, и распакованные значения деквантуются для получения матрицы преобразованных коэффициентов. Затем обратное дискретное косинусное преобразование (“IDCT”) применяется к каждой матрице преобразованных коэффициентов для получения матрицы значений компонентов пикселя. Идеальное одномерное IDCT определяется как

,

где s - это массив из N исходных значений, t - это массив из N преобразованных значений, и коэффициенты c задаются как

для 1≤k≤N-1.

Идеальное двумерное IDCT определяется по формуле:

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

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

Ошибки в процессе сжатия и распаковки могут приводить к значительным различиям между исходным несжатым кадром и конечным несжатым кадром. Например, цвета в конечном несжатом кадре могут отличаться от цветов в исходном несжатом кадре. Кроме того, ошибки, обусловленные расхождением между реализацией операций IDCT на кодере и реализацией операций IDCT на декодере, могут накапливаться в ходе кодирования и декодирования последовательностей прогнозируемых кадров. Эти накопленные ошибки, в целом, именуются “дрейфом IDCT”.

Сущность изобретения

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

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

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

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

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

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

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

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

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

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

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

Краткое описание чертежей

Фиг.1 - блок-схема иллюстративного устройства, которое кодирует и декодирует медиафайлы.

Фиг.2 - подробная блок-схема иллюстративного модуля кодирования.

Фиг.3 - подробная блок-схема иллюстративного модуля декодирования.

Фиг.4 - логическая блок-схема, иллюстрирующая принцип работы модуля кодирования.

Фиг.5 - логическая блок-схема, иллюстрирующая принцип работы модуля декодирования.

Фиг.6 - подробная блок-схема иллюстративного модуля обратного дискретного косинусного преобразования (“IDCT”).

Фиг.7 - логическая блок-схема, иллюстрирующая принцип работы модуля IDCT.

Фиг.8 - подробная блок-схема иллюстративного модуля прямого дискретного косинусного преобразования (“FDCT”).

Фиг.9 - логическая блок-схема, иллюстрирующая принцип работы модуля FDCT.

Фиг.10 - схема первого иллюстративного одномерного преобразования.

Фиг.11 - схема второго иллюстративного одномерного преобразования.

Фиг.12 - схема иллюстративного масштабированного одномерного преобразования, используемого модулем IDCT.

Подробное описание

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

Устройство 2 может включать в себя медиаисточник 4 для генерации медиаданных. Медиаисточник 4 может содержать цифровые видеокамеру или фотоаппарат для захвата данных изображения. Медиаисточник 4 может быть встроен в устройство 2 или может быть подключен к устройству 2 в качестве периферийного устройства. Медиаисточник 4 также может содержать микрофон для записи аудиоданных. Медиаисточник 4 может выдавать медиаданные на процессор 6. Процессор 6 может содержать цифровой сигнальный процессор (“ЦСП”), микропроцессор или интегральную схему другого типа.

Когда процессор 6 принимает медиаданные от медиаисточника 4, модуль 8 кодирования может кодировать медиаданные. Модуль 8 кодирования может содержать программное обеспечение, выполняемое процессором 6. Альтернативно модуль 8 кодирования может содержать специализированное оборудование в процессоре 6, которое кодирует медиаданные. Согласно еще одной альтернативе модуль 8 кодирования может содержать любую комбинацию программного обеспечения и оборудования для кодирования медиаданных.

Модуль 8 кодирования может хранить кодированные медиаданные в медиахранилище 10. Медиахранилище 10 может содержать флэш-память, оперативную память, накопитель на жестких дисках или энергозависимое или энергонезависимое запоминающее устройство другого типа.

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

Драйвер 13 представления в устройстве 2 предписывает блоку 14 представления медиа представлять медиаданные, декодированные модулем 12 декодирования. Например, блок 14 представления медиа может содержать компьютерный монитор, который представляет медиаданные изображения или видео. В другом примере блок 14 представления медиа может содержать устройство вывода аудио (например, громкоговоритель), которое представляет медиаданные аудио. Блок 14 представления медиа может быть встроен в устройство 2 или может быть подключен посредством проводной или беспроводной линии связи к устройству 2 в качестве периферийного устройства. Драйвер 13 представления может содержать драйвер устройства или другой программный, аппаратный или программно-аппаратный блок или какой-либо другой механизм, который предписывает блоку 14 представления медиа представлять медиаданные.

Устройство 2 также может содержать сетевой интерфейс 16. Сетевой интерфейс 16 может облегчать связь между устройством 2 и компьютерной сетью по проводной или беспроводной линии связи. Например, сетевой интерфейс 16 может облегчать связь между устройством 2 и сетью мобильной телефонной связи. Устройство 2 может принимать медиафайлы через сетевой интерфейс 16. Например, устройство 2 может принимать фотографии, видеозаписи, потоковое видео (например, телевидение, видеоконференции, кинофильмы), аудиозаписи (например, рингтоны, песни, MP3-файлы), потоковое аудио (например, цифровые радиостанции, речевые вызовы и т.д.) через сетевой интерфейс 16. Когда сетевой интерфейс 16 принимает медиафайл или битовый поток видеосигнала, сетевой интерфейс 16 может сохранять медиафайл или битовый поток видеосигнала в медиахранилище 10.

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

Когда модуль 8 кодирования кодирует последовательность видеокадров, модуль 8 кодирования может сначала выбрать некоторые видеокадры как “i-кадры.” Например, модуль 8 кодирования может выбрать каждый восьмой кадр в качестве i-кадра. I-кадры это кадры, которые не имеют отношения к другим кадрам. Выбрав i-кадры, модуль 8 кодирования использует “пространственное кодирование” для кодирования i-кадров. Кроме того, модуль 8 кодирования может использовать “временное кодирование” для кодирования остальных кадров.

Чтобы использовать пространственное кодирование для кодирования кадра, модуль 8 кодирования может разбить данные кадра на блоки пикселей. Например, модуль 8 кодирования может разбить данные кадра на блоки пикселей, которые составляют восемь пикселей в ширину и восемь пикселей в высоту (т.е. каждый блок пикселей содержит 64 пикселя). Затем модуль 8 кодирования может разделить значения компонентов пикселя для пикселей в каждом блоке пикселей на отдельные матрицы значений компонентов пикселя. Значения компонентов пикселя для пикселя - это значения, характеризующие внешний вид пикселя. Например, каждый пиксель может характеризоваться значением компонента Y пикселя, значением компонента Cr пикселя и значением компонента Cb пикселя. Значение компонента Y пикселя указывает яркость пикселя, значение компонента Cr пикселя указывает красную составляющую цветности пикселя, и значение компонента Cb пикселя указывает синюю составляющую цветности пикселя. В этом примере, когда модуль 8 кодирования разделяет значения компонентов пикселя для блока пикселей, модуль 8 кодирования может получить матрицу значений компонента Y пикселя, матрицу значений компонента Cr пикселя и матрицу значений компонента Cb пикселя.

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

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

,

где s - это массив из N исходных значений, t - это массив из N преобразованных значений, и коэффициенты c задаются как

для 1≤k≤N-1.

Идеальное двумерное FDCT определяется по формуле:

,

где s - это массив из N исходных значений, t - это массив из N преобразованных значений, и c(i,j) задается соотношением c(i,j)=c(i)c(j), где c(k) определяется, как в одномерном случае.

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

Чтобы использовать временное кодирование для кодирования кадра, модуль 8 кодирования может делить кадр на “макроблоки”. В зависимости от используемого стандарта кодирования эти макроблоки могут иметь фиксированный или переменный размер и могут быть перекрывающимися или неперекрывающимися. Например, каждый макроблок может состоять из 16×16 блоков пикселей. Для каждого макроблока в кадре модуль 8 кодирования может пытаться идентифицировать исходный макроблок в одном или нескольких опорных кадрах. В зависимости от стандарта кодирования опорные кадры могут быть i-кадрами, прогнозирующими кадрами или дважды прогнозирующими кадрами. Если модуль 8 кодирования способен идентифицировать исходный макроблок в опорном кадре, модуль 8 кодирования записывает вектор движения для макроблока. Вектор движения включает в себя значение x, которое указывает горизонтальное перемещение макроблока относительно идентифицированного исходного макроблока, и значение y, которое указывает вертикальное перемещение макроблока относительно идентифицированного исходного макроблока. Если модуль 8 кодирования не способен идентифицировать исходный макроблок для макроблока, модулю 8 кодирования может не требоваться записывать вектор движения для макроблока. Затем модуль 8 кодирования генерирует “реконструированный” кадр. Реконструированный кадр содержит кадр, который мог бы получиться путем перемещения макроблоков из опорных кадров в соответствии с записанными векторами движения для текущего кадра. После генерации реконструированного кадра модуль 8 кодирования вычитает значения компонентов пикселя в каждом пикселе для реконструированного кадра из соответствующих значений компонентов пикселя в соответствующих пикселях текущего кадра, получая “остаточный” кадр. Затем модуль 8 кодирования может использовать схему энтропийного кодирования для сжатия векторов движения для макроблоков текущего кадра. Кроме того, модуль 8 кодирования использует вышеописанный метод пространственного кодирования для сжатия остаточного кадра.

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

После генер