×
16.02.2019
219.016.bb6f

Результат интеллектуальной деятельности: ПРЕДСТАВЛЕНИЕ ВЕКТОРОВ ДВИЖЕНИЯ В КОДИРОВАННОМ ПОТОКЕ БИТОВ

Вид РИД

Изобретение

№ охранного документа
0002679979
Дата охранного документа
14.02.2019
Аннотация: Изобретение относится к области видеокодирования. Технический результат - повышение эффективности видеокодирования. Декодер содержит: вход для приема данных движущихся изображений в кодированной форме, включающих в себя множество кадров, в которых область закодирована с использованием оценки движения; модуль предсказания движения для декодирования кадров или областей на основе значений векторов движения, причем декодирование содержит: считывание каждого из индикаторов из информации заголовка, считывание упомянутого параметра и интерпретацию значений векторов движения соответствующим образом, определения, исходя из считанных индикаторов, того, закодированы ли значения векторов движения соответственного кадра или области с первым или со вторым разрешением, и интерпретацию значений векторов движения в единицах дробных пикселов в случае указания первого разрешения или в единицах целочисленных пикселов в случае указания второго разрешения. 3 н. и 17 з.п. ф-лы, 7 ил., 1 табл.

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

[0001] В современных системах связи, видеосигнал может отправляться из одного терминала в другой по такой среде, как проводная и/или беспроводная сеть, зачастую сеть с коммутацией пакетов, такая как Интернет. Например, видео может быть частью вызова по VoIP (по протоколу "речь-по-IP"), осуществляемого из клиентского VoIP-приложения, выполняемого в пользовательском терминале, таком как настольный или переносной компьютер, планшетный компьютер или смартфон.

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

[0003] При кодировании (сжатии) видео, векторы движения используются для того, чтобы формировать межкадровое предсказание для текущего кадра. Кодер сначала выполняет поиск аналогичного блока (опорного блока) в предыдущем кодированном кадре, который имеет наилучшее совпадение с текущим блоком (целевым блоком), и передает в служебных сигналах смещение между опорным блоком и целевым блоком в декодер в качестве части кодированного потока битов. Смещение типично представляется в качестве горизонтальных и вертикальных координат X и Y и упоминается в качестве вектора движения.

[0004] Опорный "блок" фактически не ограничивается нахождением в фактической позиции блока в опорном кадре, т.е. не ограничивается решеткой, идентичной решетке целевых блоков, а вместо этого он представляет собой имеющую соответствующий размер часть опорного кадра, смещенную относительно позиции целевого блока на вектор движения. Согласно настоящим стандартам, векторы движения представлены с дробнопиксельным разрешением. Например, в стандарте H.264, каждый вектор движения представлен с разрешением в 1/4-пикселя. Таким образом, в качестве примера, если блок 16x16 в текущем кадре должен предсказываться из другого блока 16x16 в предыдущем кадре, который располагается на 1 пиксел влево от позиции целевого блока, то вектор движения составляет (4,0). Альтернативно, если целевой блок должен предсказываться из опорного блока, который располагается, скажем, только на 3/4 из пиксела влево от целевого блока, вектор движения составляет (3,0). Опорный блок в дробнопиксельной позиции фактически не существует сам по себе, а вместо этого он формируется посредством интерполяции между пикселами опорного кадра. Субпиксельные векторы движения позволяют достигать существенной производительности с точки зрения эффективности сжатия.

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

[0005] Тем не менее, использование дробнопиксельного разрешения расходует большее число битов для того, чтобы кодировать вектор движения, чем когда движение оценивается с целопиксельным разрешением, и оно также расходует больший объем ресурсов обработки при поиске наилучшим образом совпадающего опорного элемента. Для кодирования видео, это может быть целесообразным, например, поскольку уменьшенный размер лучше совпадающего остатка, в общем, может перевешивать биты, расходуемые при кодировании вектора движения, либо может считаться, что достигаемое качество оправдывает ресурсы. Тем не менее, не все движущиеся изображения, которые должны кодироваться, представляют собой видео (т.е. захватываются из камеры). В данном документе следует признать, что при кодировании (сжатии) движущегося изображения, которое захватывается с экрана, а не камеры, большинство векторов движения в кодированном потоке битов, в общем, должны указывать на целочисленные пикселы, при этом очень небольшое число из них имеют тенденцию обнаружения в дробнопиксельных позициях. Таким образом, хотя кодеры нормально представляют векторы движения в потоках битов в единицах в 1/4 пиксела для приложений совместного использования экрана или записи, полоса пропускания фактически может сокращаться без чрезмерных потерь качества посредством кодирования векторов движения в единицах только в 1 пиксел.

[0006] Тем не менее, с учетом того, что дробный вектор движения по-прежнему может быть полезным для нормального видео (захваченного посредством камеры) или возможно для других движущихся изображений (например, анимаций), вектор движения может гибко передаваться в служебных сигналах: когда видеоисточник исходит из захваченного экрана, вектор движения может передаваться в служебных сигналах в единицах в 1 пиксел, но для нормального видео и/или для других движущихся изображений по-прежнему может использоваться дробнопиксельная единица.

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

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

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

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

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

[0009] Значения векторов движения кодируются согласно протоколу, за счет которого значения векторов движения, кодированные с первым разрешением, представлены в масштабе, имеющем большее число более точных шагов, и значения векторов движения, кодированные со вторым разрешением, представлены в масштабе, имеющем меньшее число менее точных шагов, и за счет этого расходуют меньшее число битов в среднем в кодированном потоке битов. Менее точные шаги представляют целопиксельные единицы, а более точные шаги представляют дробнопиксельные единицы.

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

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

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

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

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

[0015] В вариантах осуществления, каждый из, по меньшей мере, некоторых из упомянутых кадров может разделяться на несколько областей; данные движущихся изображений могут содержать, по меньшей мере, один соответствующий индикатор, ассоциированный с каждой соответствующей одной из нескольких областей, чтобы по отдельности указывать то, кодируются ли значения векторов движения соответствующей области с первым или со вторым разрешением; и модуль предсказания движения может быть выполнен с возможностью считывать индикаторы, чтобы определять, кодируются ли значения векторов движения каждой соответствующей области с первым или со вторым разрешением, и интерпретировать соответствующие значения векторов движения в упомянутых единицах дробных пикселов или целочисленных пикселов соответствующим образом. В варианте осуществления, упомянутые области могут представлять собой слайсы стандарта H.26x.

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

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

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

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

[0020] Это краткое изложение сущности изобретения приведено для представления в упрощенной форме подборки концепций, которые дополнительно описаны ниже в подробном описании. Данное краткое изложение сущности изобретения не предназначена ни для идентификации ключевых признаков или важнейших признаков заявленного изобретения, ни для использования в качестве ограничения объема заявленного изобретения. Кроме того, при этом заявленное изобретение не ограничено реализациями, которые устраняют недостатки, отмеченные в данном документе.

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

[0021] Чтобы упростить понимание настоящего раскрытия и показывать то, как могут быть осуществлены варианты осуществления, следует обратиться в качестве примера на прилагаемые чертежи, на которых:

[0022] Фиг. 1 является схематичным представлением видеопотока,

[0023] Фиг. 2 является принципиальной блок-схемой системы связи,

[0024] Фиг. 3 является схематичным представлением кодированного видеопотока,

[0025] Фиг. 4 является принципиальной блок-схемой кодера,

[0026] Фиг. 5 является принципиальной блок-схемой декодера,

[0027] Фиг. 6 является схематичным представлением схемы межкадрового кодирования, и

[0028] Фиг. 7 является схематичным представлением другой схемы межкадрового кодирования.

Подробное описание изобретения

[0029] Фиг. 1 приводит схематичную иллюстрацию входного видеосигнала, захваченного из камеры и разделенного на пространственные разделения, которые должны кодироваться посредством видеокодера, с тем чтобы формировать кодированный поток битов. Сигнал содержит движущееся видеоизображение, разделенное во времени на множество кадров (F), причем каждый кадр представляет изображение в различный соответствующий момент во времени (..., t-1, t, t+1,...). В пределах каждого кадра, кадр разделяется в пространстве на множество разделений, представляющих множество пикселов. Эти разделения могут упоминаться в качестве блоков. В определенных схемах, кадр разделяется и подразделяется на разные уровни блока. Например, каждый кадр может разделяться на макроблоки (MB), и каждый макроблок может разделяться на блоки (b), например, каждый блок, представляющий область 8x8 пикселов в кадре, и каждый макроблок, представляющий область 2x2 блоков (16x16 пикселов). В определенных схемах, каждый кадр также может разделяться на независимо декодируемые слайсы (S), содержащие множество макроблоков. Слайсы S, в общем, могут принимать любую форму, например, каждый слайс представляет собой одну или более строк макроблоков либо нерегулярный или произвольно заданный выбор макроблоков (например, соответствующий интересующей области (ROI) в изображении).

[0030] Относительно термина "пиксел", далее данный термин используется как означающий выборки и позиции дискретизации в решетке дискретизации для матрицы изображения (иногда в литературе, термин "пиксел" вместо этого используется как означающий все три цветовых компонента, соответствующие всего одной пространственной позиции, и иногда он используется для того, чтобы означать одну позицию или одно целочисленное выборочное значение в простом массиве). Разрешение решетки дискретизации зачастую отличается между матрицами дискретизации сигналов яркости и сигналов цветности. В вариантах осуществления, следующее может применяться к представлению 4:4:4, но оно потенциально также может применяться, например, к 4:2:2 и 4:2:0.

[0031] Также следует отметить, что хотя любой данный стандарт может присваивать конкретные смысловые значения терминам "блок" или "макроблок", термин "блок" также зачастую используется в более общем смысле в данной области техники для того, чтобы означать разделение кадра на уровне, на котором выполняются операции кодирования и декодирования, такие как внутреннее или взаимное предсказание, и именно это более общее смысловое значение используется в данном документе, если прямо не указано иное. Например, блоки, упоминаемые в данном документе, фактически могут представлять собой разделения, называемые "блоками" или "макроблоками" в стандартах H.26x, и различные стадии кодирования и декодирования могут работать на уровне любых таких разделений в соответствии с рассматриваемым режимом кодирования, приложением и/или стандартом.

[0032] Блок в захваченном входном сигнале обычно представляется в пространственной области, в которой каждый цветовой пространственный канал представляется как функция от пространственной позиции в блоке. Например, в цветовом YUV-пространстве, каждый из каналов яркости (Y) и цветности (U, V) может представляться как функция от декартовых координат x и y, Y(x, y), U(x, y) и V(x, y); либо в цветовом RGB-пространстве, каждый из красного (R), зеленого (G) и синего (B) каналов может представляться как функция от декартовых координат R(x, y), G(x, y), B(x, y). В этом представлении, каждый блок или часть представляется посредством набора пиксельных значений с различными пространственными координатами, например, с координатами X и Y, так что каждый канал цветового пространства представлен с точки зрения соответствующей абсолютной величины этого канала в каждом дискретном наборе пиксельных местоположений.

[0033] Тем не менее, до квантования, блок может быть преобразован в представление в области преобразования в качестве части процесса кодирования, типично в представление в пространственной частотной области (иногда называемой просто "частотной областью"). В частотной области, каждый цветовой пространственный канал в блоке представляется как функция от пространственной частоты (с размерами 1/длина) в каждом из двух измерений. Например, это может обозначаться посредством волновых чисел kx и ky в горизонтальном и вертикальном направлениях, соответственно, так что каналы могут выражаться как Y(kx, ky), U(kx, ky) и V(kx, ky) в YUV-пространстве; или R(kx, ky), G(kx, ky), B(kx, ky) в RGB-пространстве. Таким образом, вместо представления цветового пространственного канала с точки зрения абсолютной величины в каждом дискретном наборе пиксельных позиций, преобразование представляет каждый цветовой пространственный канал с точки зрения коэффициента, ассоциированного с каждым дискретным набором пространственных частотных компонентов, которые составляют блок, т.е. амплитуды каждого дискретного набора пространственных частотных членов, соответствующих различным частотам пространственного изменения в блоке. Возможности для таких преобразований включают в себя преобразование Фурье, дискретное косинусное преобразование (DCT), преобразование Карунена-Лоэва (KLT) или т.п.

[0034] Блок-схема по фиг. 2 приводит пример системы связи, в которой могут использоваться технологии этого раскрытия. Система связи содержит первый передающий терминал 12 и второй приемный терминал 22. Например, каждый терминал 12, 22 может содержать одно из мобильного телефона или смартфона, планшетного компьютера, переносного компьютера, настольного компьютера или другого бытового прибора, такого как телевизионный приемник, абонентская приставка, стереосистема и т.д. Первый и второй терминалы 12, 22 функционально соединены с сетью 32 связи, и первый передающий терминал 12 в силу этого выполнен с возможностью передавать сигналы, которые должны приниматься посредством второго приемного терминала 22. Конечно, передающий терминал 12 также может допускать прием сигналов из приемного терминала 22 и наоборот, но в целях пояснения, передача описывается в данном документе с точки зрения первого терминала 12, а прием описывается с точки зрения второго терминала 22. Сеть 32 связи может содержать, например, сеть с коммутацией пакетов, к примеру, глобальную Интернет-сеть и/или локальную вычислительную сеть, и/или сотовую сеть мобильной связи.

[0035] Первый терминал 12 содержит машиночитаемый носитель 14 хранения данных, такой как флэш-память или другое электронное запоминающее устройство, магнитное устройство хранения данных и/или оптическое устройство хранения данных. Первый терминал 12 также содержит устройство 16 обработки в форме процессора или CPU, имеющего один или более модулей выполнения, приемо-передающее устройство, к примеру, проводной или беспроводной модем, имеющий передающее устройство 18, видеокамеру 15 и экран 17 (т.е. дисплей или монитор). Каждое из камеры 15 и экрана 17 может размещаться или не размещаться в корпусе, идентичном корпусу остальной части терминала 12 (и даже передающее устройство 18 может быть внутренним или внешним, например, содержащим аппаратный ключ либо беспроводной маршрутизатор во втором случае). Носитель 14 хранения данных, видеокамера 15, экран 17 и передающее устройство 18 функционально соединены с устройством 16 обработки, и передающее устройство 18 функционально соединено с сетью 32 через линию проводной или беспроводной связи. Аналогично, второй терминал 22 содержит машиночитаемый носитель 24 хранения данных, такой как электронное, магнитное и/или оптическое устройство хранения данных; и устройство 26 обработки в форме CPU, имеющего один или более модулей выполнения. Второй терминал содержит приемо-передающее устройство, к примеру, проводной или беспроводной модем, имеющий, по меньшей мере, приемное устройство 28 и экран 25, который может размещаться или не размещаться в корпусе, идентичном корпусу остальной части терминала 22. Носитель 24 хранения данных, экран 25 и приемное устройство 28 второго терминала функционально соединены с соответствующим устройством 26 обработки, и приемное устройство 28 функционально соединено с сетью 32 через линию проводной или беспроводной связи.

[0036] Устройство 14 хранения данных в первом терминале 12 сохраняет, по меньшей мере, кодер для кодирования данных движущихся изображений, причем кодер выполнен с возможностью приводиться в исполнение в соответствующем устройстве 16 обработки. При выполнении, кодер принимает "необработанный" (некодированный) входной видеопоток из видеокамеры 15, он выполнен с возможностью кодировать видеопоток, с тем чтобы сжимать его в поток с более низкой битовой скоростью (битрейтом), и выводит кодированный видеопоток для передачи через передающее устройство 18 и сеть 32 связи в приемное устройство 28 второго терминала 22. Устройство 24 хранения данных во втором терминале 22 сохраняет, по меньшей мере, видеодекодер, выполненный с возможностью приводиться в исполнение на своем устройстве 26 обработки. При выполнении, декодер принимает кодированный видеопоток из приемного устройства 28 и декодирует его для вывода на экран 25.

[0037] Кодер и декодер также выполнены с возможностью кодировать и декодировать другие типы данных движущихся изображений, включающие в себя потоки совместного использования экрана. Поток совместного использования экрана представляет собой данные изображений, захваченные с экрана 17 на стороне кодера, так что один или более других удаленных пользователей видят то, что пользователь на стороне кодера видит на экране, либо так что пользователь этого экрана может записывать то, что происходит на экране, для воспроизведения для одного или более других пользователей позднее. В случае вызова, осуществляемого между передающим терминалом 12 и приемным терминалом 22, движущийся контент экрана 17 в передающем терминале 12 кодируется и передается вживую (в реальном времени) для декодирования и отображения на экране 25 приемного терминала 22. Например, пользователь на стороне кодера может хотеть совместно использовать с другим пользователем то, как он применяет рабочий стол своей операционной системы или некоторое приложение.

[0038] Следует отметить, что если считается, что поток совместного использования экрана захватывается с экрана и т.п., необязательно накладывание ограничения конкретными механизмами для этого. Например, данные могут считываться из экранного буфера экрана 17 или захватываться посредством приема экземпляра идентичных графических данных, которые выводятся из операционной системы или из приложения для отображения на экране 17.

[0039] Фиг. 3 приводит схематичное представление кодированного потока 33 битов, который должен передаваться из кодера, работающего в передающем терминале 12, в декодер, работающий в приемном терминале 22. Поток 33 битов содержит кодированные данные 34 изображений для каждого кадра или слайса, содержащие кодированные выборки для блоков этого кадра или слайса вместе с ассоциированными векторами движения. В одном варианте применения, поток битов может передаваться в качестве части вызова вживую (в реальном времени), такого как VoIP-вызов между передающим и приемным терминалами 12, 22 (VoIP-вызовы также могут включать в себя видео и совместное использование экрана). Поток 33 битов также содержит информацию 36 заголовка, ассоциированную с каждым кадром или слайсом. В вариантах осуществления, заголовок 36 выполнен с возможностью включать в себя, по меньшей мере, один дополнительный элемент в форме, по меньшей мере, одного флага 37, указывающего разрешение вектора движения, что подробнее поясняется ниже.

[0040] Фиг. 4 является блок-схемой, иллюстрирующей кодер, который, к примеру, может реализовываться в передающем терминале 12. Кодер содержит главный модуль 40 кодирования, содержащий: модуль 51 дискретного косинусного преобразования (DCT), квантователь 53, модуль 61 обратного преобразования, обратный квантователь 63, модуль 41 внутреннего предсказания, модуль 43 взаимного предсказания, переключатель 47, узел 49 вычитания (-) и узел 65 декодирования без потерь. Кодер дополнительно содержит модуль 50 управления, соединенный с модулем 43 взаимного предсказания. Каждый из этих модулей или узлов может реализовываться как часть кода, сохраненного на носителе 14 хранения данных передающего терминала и выполненного с возможностью приведения в исполнения на своем устройстве 16 обработки, хотя возможность полной или частичной реализации некоторых или всех из них в специализированных аппаратных схемах не исключается.

[0041] Узел 49 вычитания выполнен с возможностью принимать экземпляр входного сигнала, содержащего множество блоков по множеству кадров (F). Входной поток принимается из камеры 15 или захватывается из того, что отображается на экране 17. Внутреннее или взаимное предсказание 41, 43 формирует предсказанную версию текущего (целевого) блока, который должен быть кодирован, на основе предсказания из другого уже кодированного блока или опорной части соответствующего размера. Предсказанная версия предоставляется на вход узла 49 вычитания, в котором она вычитается из входного сигнала (т.е. фактического сигнала) в пространственной области, чтобы формировать остаточный сигнал, представляющий разность между предсказанной версией блока и соответствующим блоком в фактическом входном сигнале.

[0042] В режиме внутреннего предсказания, модуль внутреннего предсказания 41 формирует предсказанную версию текущего (целевого) блока, который должен быть кодирован, на основе предсказания из другого уже кодированного блока в идентичном кадре, типично соседнего блока. При выполнении внутрикадрового кодирования, идея состоит в том, чтобы кодировать и передавать только показатель того, как часть данных изображений в кадре отличается от другой части в идентичном кадре. Эта часть затем может предсказываться в декодере (при условии некоторых абсолютных данных для начала), и в силу этого необходимо передавать только разность между предсказанием и фактическими данными, а не сами фактические данные. Разностный сигнал типично имеет меньшую абсолютную величину, так что приспосабливает меньшее число битов для кодирования (вследствие операции узла 65 сжатия без потерь, см. ниже).

[0043] В режиме взаимного предсказания, модуль 43 взаимного предсказания формирует предсказанную версию текущего (целевого) блока, который должен быть кодирован, на основе предсказания из другой уже кодированной опорной части в кадре, отличном от текущего блока, при этом опорная часть имеет размер блока, но смещена относительно целевого блока в пространственной области посредством вектора движения, который предсказывается посредством модуля 43 взаимного предсказания (взаимное предсказание также может упоминаться в качестве предсказания движения или оценки движения). Модуль 43 взаимного предсказания выбирает оптимальный опорный элемент для конкретного целевого блока посредством выполнения поиска, в пространственной области, через множество возможных вариантов опорных частей, смещенных на множество соответствующих возможных векторов движения в одном или более кадрах, отличных от целевого кадра, и выбора возможного варианта, который минимизирует остаток относительно целевого блока согласно подходящему показателю. Модуль 43 взаимного предсказания переключается на тракт обратной связи посредством переключателя 47 вместо узла 41 внутрикадрового предсказания, и таким образом, контур обратной связи в силу этого создается между блоками одного кадра и другого, чтобы кодировать взаимный кадр относительно блоков другого кадра. Иными словами, остаток теперь представляет разность между блоком, полученным внутренним предсказанием, и фактическим входным блоком. Это типично приспосабливает еще меньшее число битов для кодирования, чем внутрикадровое кодирование.

[0044] Выборки остаточного сигнала (содержащие остаточные блоки после того, как предсказания вычитаются из входного сигнала) выводятся из узла 49 вычитания в модуль 51 преобразования (DCT) (или другое подходящее преобразование), в котором их остаточные значения преобразуются в частотную область, затем в квантователь 53, в котором преобразованные значения преобразуются в практически дискретные индексы квантования. Квантованные преобразованные индексы остатка, сформированные посредством модулей 51, 53 преобразования и квантования, а также индикатор относительно предсказания, используемого в модулях 41, 43 предсказания, и все векторы движения, сформированные посредством модуля 43 взаимного предсказания, выводятся для включения в кодированный видеопоток 33 (см. элемент 34 на фиг. 3); через дополнительный узел 65 кодирования без потерь, такой как кодер Голомба или энтропийный кодер, в котором векторы движения и преобразованные квантованные индексы дополнительно сжимаются с использованием технологий кодирования без потерь, известных в данной области техники.

[0045] Экземпляр квантованного преобразованного сигнала также возвращен через обратный квантователь 63 и модуль 61 обратного преобразования, чтобы формировать предсказанную версию блока (которая должна наблюдаться в декодере) для использования посредством выбранного модуля 41 или 43 предсказания при предсказании последующего блока, который должен быть кодирован, аналогично тому, как текущий кодируемый целевой блок предсказан на основе обратно квантованной и обратно преобразованной версии ранее кодированного блока. Переключатель 47 выполнен с возможностью передавать вывод обратного квантователя 63 во ввод либо модуля 41 внутреннего предсказания, либо модуля 43 взаимного предсказания согласно кодированию, используемому для текущего кодируемого кадра или блока.

[0046] Фиг. 5 является блок-схемой, иллюстрирующей декодер, который, к примеру, может реализовываться в приемном терминале 22. Декодер содержит инверсию кодирования 95 без потерь, узел 83 обратного квантования, узел 81 обратного DCT-преобразования, переключатель 70 и узел 71 внутреннего предсказания и узел 73 компенсации движения. Каждый из этих модулей или узлов может реализовываться как часть кода, сохраненного на носителе 24 хранения данных приемного терминала и выполненного с возможностью приведения в исполнение на своем устройстве 26 обработки, хотя возможность полной или частичной реализации некоторых или всех из них в специализированных аппаратных схемах не исключается.

[0047] Обратный квантователь 81 выполнен с возможностью принимать кодированный сигнал 33 из кодера через приемное устройство 28 и узел 95 обратного кодирования без потерь. Обратный квантователь 81 преобразует индексы квантования в кодированном сигнале в деквантованные выборки остаточного сигнала (содержащие остаточные блоки) и передает деквантованные выборки в модуль 81 обратного DCT, в котором они преобразуются обратно из частотной области в пространственную область. Переключатель 70 затем передает деквантованные остаточные выборки пространственной области в модуль 71 или 73 внутреннего или взаимного предсказания согласно режиму предсказания, используемому для декодирования текущего кадра или блока, и модуль 71, 73 внутреннего или взаимного предсказания использует внутреннее или взаимное предсказание, соответственно, для того чтобы декодировать блоки. То, какой режим использовать, определяется с использованием индикатора относительно предсказания и/или любых векторов движения, принимаемых с кодированными выборками 34 в кодированном потоке 33 битов. После этой стадии, выводятся декодированные блоки, которые должны воспроизводиться через экран 25 в приемном терминале 22.

[0048] Как упомянуто выше, кодеки согласно традиционным стандартам выполняют предсказание движения с разрешением в четверть пиксела, что означает то, что векторы движения также выражаются с точки зрения четвертьпиксельных шагов. Пример оценки движения с разрешением в четверть пиксела показан на фиг 6. В этом примере, пиксел p в верхнем левом углу целевого блока предсказывается из интерполяции между пикселами a, b, c и d, и другие пикселы целевого блока также предсказываются на основе аналогичной интерполяции между соответствующими группами пикселов в опорном кадре, согласно смещению между целевым блоком в одном кадре и опорной частью в другом кадре (причем эти блоки показаны с помощью полужирных пунктирных линий на фиг. 6). Тем не менее, выполнение оценки движения с этой степенью детализации имеет последствия, как пояснено ниже.

[0049] Что касается кодера 65 и декодера 95 без потерь, кодирование без потерь представляет собой форму сжатия, которая работает не посредством отбрасывания информации (такой как квантование), а посредством использования различных длин кодового слова для того, чтобы представлять различные значения в зависимости от того, с какой вероятностью должны возникать эти значения, или того, как часто они возникают в данных, которые должны кодироваться посредством узла 65 кодирования без потерь. Например, число начальных 0 в кодовом слове до появления 1 может указывать длину кодового слова, так что 1 является самым коротким кодовым словом, затем 010 и 011 являются следующими самыми короткими, затем 00100,..., и т.д. Таким образом, самые короткие кодовые слова являются намного более короткими, чем требуется, когда используется равномерная длина кодовых слов, но самые длинные являются длиннее их. Но посредством выделения самых частых или вероятных значений для самых коротких кодовых слов и только наименее вероятных или часто возникающих значений для более длинных кодовых слов, результирующий поток 33 битов может в среднем расходовать меньшее число битов в расчете на кодированное значение, чем когда используется равномерная длина кодовых слов, и за счет этого достигать сжатия без отбрасывания дальнейшей информации.

[0050] Большая часть кодера 40 до узла 65 кодирования без потерь спроектирована с возможностью пытаться задавать как можно больше значений как можно меньшими до прохождения через узел 65 кодирования без потерь. Поскольку они в таком случае возникают чаще, меньшие значения должны затем расходовать меньший битрейт в кодированном потоке 33 битов, чем большие значения. Именно поэтому кодируется остаток в отличие от абсолютных выборок. Это также является логическим обоснованием преобразования 51, поскольку множество выборок имеют тенденцию преобразовываться в нулевые или небольшие коэффициенты в области преобразования.

[0051] Аналогичное соображение может применяться к кодированию векторов движения.

[0052] Например, в H.264/MPEG-4 часть 10 и H.265/HEVC, вектор движения кодируется с помощью экспоненциального кодирования кодом Голомба. Следующая таблица показывает значения векторов движения и кодированные биты.

Значение Кодовое слово Число расходуемых битов
0 1 1
1 010 3
2 011 3
3 00100 5
4 00111 5
5 0001000 7
...

[0053] Из вышеприведенной таблицы можно видеть, что чем больше значение, тем больше битов используется. Это означает то, что чем выше разрешение вектора движения, тем большее число битов расходуется. Например, для четвертьпиксельного разрешения, смещение в 1 пиксел должно быть представлено посредством значения 4 с расходованием 5 битов в кодированном потоке битов.

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

[0055] На основе этого, может быть желательным кодировать векторы движения для данных изображений, захваченных с экрана с разрешением в 1 пиксел. С учетом того факта, что биты не должны тратиться на дробные части векторов движения для такого контента, это означает то, что может уменьшаться битрейт, расходуемый при кодировании такого контента.

[0056] Например, хотя кодеры нормально интерпретируют векторы движения в потоках битов в единицах 1/4-пиксельного смещения, кодер фактически зачастую может иметь возможность сокращать битрейт за счет недопущения этого разрешения и вместо этого кодирования векторов движения для приложений экранного кодирования в единицах целопиксельного смещения. Хотя это должно снижать точность векторов движения на коэффициент четыре, такая точность, в общем, является менее целесообразной для приложений совместного использования экрана или записи, и это также уменьшает число битов, требуемых для того, чтобы кодировать векторы.- Чтобы предсказывать текущий (целевой) блок из опорного блока на 1 пиксел влево относительно целевого блока, вектор движения составляет (1,0) вместо (4,0). При использовании вышеуказанного кодирования кодом Голомба, это означает то, что биты, расходуемые для кодирования вектора движения, изменяются с (00111, 1) на (010, 1), и в силу этого два бита экономятся в этом случае.

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

[0058] Фиг. 7 показывает пример предсказания движения, ограниченного до разрешения только в полные пикселы, при этом вектор движения ограничивается только полнопиксельными шагами. В отличие от фиг. 6, пиксел p предсказывается только из одного полного пиксела a без интерполяции. Он может альтернативно предсказываться из пиксела b, c, d либо другого пиксела в зависимости от смещения между целевым блоком в одном кадре и опорной частью в другом кадре (снова показаны с помощью полужирных пунктирных линий), но вследствие ограничения он не может предсказываться из интерполяции между пикселами. Примечание: может оказываться, что для любого данного блока, четвертьпиксельное предсказание, как проиллюстрировано в качестве примера на фиг. 6, формирует полнопиксельное смещение без интерполяции, если оно обеспечивает наименьший остаток. Тем не менее, не должно быть ограничений только этим, и для изображения значительных размеров, очень маловероятно, что это возникает для всех блоков.

[0059] С учетом того, что дробные значения векторов движения по-прежнему могут быть очень полезными для захваченного камерой контента, в вариантах осуществления, кодер 40 содержит контроллер 50, соединенный с модулем предсказания движения 43, причем контроллер 50 выполнен с возможностью гибко выбирать разрешение векторов движения: когда исходные данные исходят из захваченного экрана 17, и отсутствует дробнопиксельное движение, вектор движения кодируется и передается в единицах только полных пикселов; но для видео контента камеры, векторы движения по-прежнему кодируются и передаются с дробнопиксельной точностью.

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

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

[0062] В дополнительных вариантах осуществления, управление необязательно может применяться отдельно к вертикальному или горизонтальному компоненту вектора. Это может быть полезным для кодирования экранного видео, которое масштабируется по горизонтали или по вертикали. Например, рассмотрим случай, в котором кодер работает с долей экрана с измененными размерами по горизонтали или по вертикали. В этом случае, один из компонентов векторов движения должен иметь дробные части, при этом другой компонент не должен. Чтобы управлять битрейтом, кодер может регулировать параметр квантования (QP) в предварительно заданном диапазоне. Если QP достигает разрешенной верхней границы, и битрейт по-прежнему является слишком высоким, кодер может инициировать внутренний модуль изменения размеров. Он изменяет размеры входящих изображений по горизонтали, и на стороне декодера декодированные изображения растягиваются обратно до исходной ширины. Следовательно, может возникать ситуация, в которой также должно быть полезным трактовать горизонтальные и вертикальные векторы движения по-разному.

[0063] Чтобы представлять вектор движения в уменьшенном масштабе разрешения в единицах или шагах целочисленных пикселов и за счет этого достигать ассоциированного сокращения битрейта по сравнению с традиционными кодеками, протокол для передачи в служебных сигналах векторов движения должен обновляться для будущих стандартов кодеков. В вариантах осуществления, это может реализовываться как обновление стандарта H.265 (HEVC, стандарта высокоэффективного кодирования видео). Для кодирования захваченного экранного контента, формату кодированных данных 34 предоставляется поле векторов движения уменьшенного размера для каждого вектора движения. Для кодированного потока захвата экрана, кодированного в целопиксельном режиме, релевантные данные 34 в силу этого должны содержать целочисленные векторы движения в потоке 33 битов и, в вариантах осуществления, только целочисленные векторы движения в потоке 33 битов.

[0064] В вариантах осуществления, это должно быть необязательным, при этом флаг 37 также включается в заголовок 36, чтобы указывать то, используется дробнопиксельное (например, в 1/4 пиксела) или целопиксельное разрешение при кодировании ассоциированного кадра или слайса (следует снова обратиться к фиг. 3). Если горизонтальное и вертикальное разрешения могут выбираться отдельно, два флага 37 должны требоваться в расчете на кадр или слайс.

[0065] Далее раскрывается примерный вариант осуществления на основе обновления стандарта H.265. Модификация обеспечивает возможность представления векторов движения в уменьшенном целопиксельном масштабе в кодированном потоке 33 битов и добавляет два флага 37 в расчете на каждый слайс в информацию 36 заголовка сжатого потока, чтобы передавать в служебных сигналах разрешение векторов движения в горизонтальных и вертикальных компонентах.

[0066] Модификация не изменяет синтаксис или процесс синтаксического анализа, за исключением на уровне заголовка, но модифицирует процесс декодирования посредством интерпретации разностей векторов движения в качестве целых чисел и округления масштабированных MV-предикторов до целочисленных значений. Обнаружено, что модификация повышает эффективность кодирования максимум на 7% и в среднем приблизительно на 2% для тестированных последовательностей экранного контента, и она также позволяет снижать сложность процессов кодирования и декодирования.

[0067] Высокоуровневый индикатор добавляется (на уровне SPS, PPS и/или заголовка слайса), чтобы указывать разрешение для интерпретации векторов движения.

[0068] В процессе декодирования, если векторы движения указываются как имеющие полнопиксельное разрешение, и предсказание масштабированных векторов движения имеет дробную часть, то в вариантах осуществления предсказание округляется до целочисленного значения. Разности векторов движения интерпретируются просто в качестве целочисленных смещений, а не смещений в 1/4 выборки. Все остальные процессы декодирования остаются идентичными. Процесс синтаксического анализа (ниже уровня заголовка) также является неизменным. Когда векторы движения кодируются с точностью, равной полной выборке, и входные данные изображений используют дискретизацию 4:2:2 или 4:2:0, векторы движения сигнала цветности могут извлекаться обычным способом, что должно формировать смещения движения сигнала цветности в 1/2 выборки. Альтернативно, векторы движения сигнала цветности также могут округляться до целочисленных значений.

[0069] Относительно изменения синтаксиса для передачи в служебных сигналах разрешения векторов движения, в вариантах осуществления предусмотрено три возможных режима, при этом индикатор режима передается в служебных сигналах на верхнем уровне заголовка (в расчете на кадр), таком как набор параметров изображения (PPS), либо альтернативно на еще более высоком уровне, таком как набор параметров последовательности (SPS). Индикатор режима имеет три выбираемых значения. Одно значение указывает то, что векторы движения всегда интерпретируются как представляющие смещения в 1/4 выборки (в изображениях, которые используют этот PPS). Второе значение указывает то, что векторы движения всегда интерпретируются как представляющие целочисленные смещения (в изображениях, которые используют этот PPS). Третье значение указывает то, что предусмотрен сигнал на нижнем уровне, который адаптивно выбирает интерпретацию, которая должна применяться на этом нижнем уровне. Этот низкоуровневый индикатор может представлять собой флаг в заголовке слайса, который должен присутствовать только при работе в этом третьем режиме.

[0070] Чтобы реализовывать это, в вариантах осуществления, новый двухбитовый индикатор должен быть включен в PPS-расширение, чтобы указывать режимы управления разрешением векторов движения. Этот индикатор может упоминаться в качестве motion_vector_resolution_control_idc. Когда режим составляет 0, векторы движения кодируются с точностью в 1/4 выборки, и все процессы декодирования остаются неизменными. Когда режим представляет собой 1, все векторы движения в слайсах, которые ссылаются на PPS, кодируются с полнопиксельной точностью. Кроме того, когда режим представляет собой 2, разрешение векторов движения управляется на основе слайса посредством флага в заголовке слайса. Когда motion_vector_resolution_control_idc не присутствует, его значение логически выводится как 0. Когда motion_vector_resolution_control_idc равен 2, дополнительный флаг, называемый slice_motion_vector_resolution_flag, передается в служебных сигналах в заголовке слайса. Когда флаг является нулевым, векторы движения этого слайса кодируются с точностью в 1/4 выборки, а когда флаг равен 1, векторы движения кодируются с полнопиксельной точностью. Когда флаг не присутствует, его значение логически выводится как равное значению motion_vector_resolution_control_idc.

Модифицированный PPS-синтаксис проиллюстрирован следующим образом:

Модифицированный синтаксис заголовка слайса проиллюстрирован следующим образом:

[0071] Относительно масштабирования, упомянутого выше, именно это может возникать, например, в HEVC (H. 265). Идея состоит в том, что если вектор движения используется для кодирования некоторого другого кадра, может вычисляться то, что должно быть вектором движения, который должен быть эквивалентным с точки зрения смещения относительного позиционирования между: (i) текущим изображением и (ii) его опорным изображением. Это основано на относительном позиционировании смещения, указываемого посредством вектора движения в совместно размещенной части другого изображения, и основано на смещении относительного позиционирования между (iii) этим изображением и (iv) изображением, на которое оно ссылается в качестве своего опорного изображения. Иными словами, сами векторы движения могут кодироваться на основе предсказания с вектором движения для целевого блока в текущем целевом кадре, кодируемом относительно предыдущего вектора движения для пространственно соответствующего блока в предыдущем кадре. Вектор движения для целевого блока затем передается в служебных сигналах в кодированном потоке 33 битов только с точки зрения разности (например, типично дельты) между предсказанной версией и фактической версией. Декодер затем может воссоздавать кодированный вектор движения посредством выполнения идентичного предсказания на стороне декодера и суммирования дельты.

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

[0073] Текущий процесс декодирования на основе векторов движения (MV) в HEVC-стандарте может обобщаться следующим образом.

1. Определение того, как должен предсказываться MV в декодере, и того, отправлена или нет дельта вектора движения (MVD) в кодированном потоке битов из кодера (это может заключать в себе некоторые синтаксические индикаторы).

2. Формирование предсказанного вектора движения (PMV). Это создает пару целых чисел (px, py). Целые числа предположительно представляют смещения с точностью позиционирования, равной четверть выборки, в области сигнала яркости.

3. Если MVD не отправляется, задание MV-значения (mx, my) как (px, py); иначе декодирование пары целых чисел (px, py) в качестве (dx, dy) и задание MV (mx, my) как (px+dx, py+dy). MV интерпретируется как представляющий смещения в 1/4 выборки в области сигнала яркости. Примечание: различение сигнала яркости имеет значение только в том случае, если видео имеет такой формат, как 4:2:2 или 4:2:0, который использует разрешение в канале сигнала яркости, отличное от разрешения в каналах сигнала цветности; если вместо этого видео представляет собой формат 4:4:4, например, смещение интерпретируется как имеющее единицы в 1/4 выборки для всех решеток дискретизации.

4. Сохранение конечного значения (mx, my) для последующего использования для формирования последующих PMV (и управления фильтрацией для удаления блочности и т.д.).

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

1. Определение того, как должен предсказываться MV в декодере, и того, отправлена или нет дельта вектора движения (MVD) в кодированном потоке битов из кодера (это может заключать в себе некоторые синтаксические индикаторы).

2. Формирование предсказанного вектора движения (PMV). Это создает пару целых чисел (px, py). Целые числа предположительно представляют смещения с точностью позиционирования, равной четверть выборки, в области сигнала яркости.

3. При работе в режиме с целочисленной, выполнять следующее:

a. Округление предсказанного значения, чтобы заставлять его соответствовать целочисленному смещению, например, создавать (rx, ry)=(round(px/4), round(py/4)).

b. Если MVD не отправляется, задание MV-значения (mx, my) как (4*rx, 4*ry); иначе декодирование пары целых чисел (px, py) в качестве (dx, dy) и задание MV (mx, my) как (4*(rx+dx), 4*(ry+dy)). MV затем интерпретируется как представляющий смещения в 1/4 выборки в области сигнала яркости (Примечание. Так же, различение сигнала яркости имеет значение только в том случае, если видео имеет такой формат, как 4:2:2 или 4:2:0).

4. Иначе (т.е. при работе в режиме с точностью в 1/4 выборки), выполнять следующее: Если MVD не отправляется, задание MV-значения (mx, my) как (px, py); иначе декодирование пары целых чисел (px, py) в качестве (dx, dy), и MV (mx, my) задается как (px+dx, py+dy). MV снова интерпретируется как представляющий смещения в 1/4 выборки в области сигнала яркости.

5. Сохранение конечного значения (mx, my) для последующего использования для формирования последующих PMV (и управления фильтрацией для удаления блочности и т.д.).

[0075] Тем не менее, вышеуказанный процесс не требуется для всех возможных вариантов осуществления. Вышеуказанный подход предполагает то, декодер работает в 1/4-пиксельной области с самого начала, так что масштабирование при предсказании векторов движения возникает в 1/4-пиксельной области. Тем не менее, фактически декодер не обязательно должен знать то, что означают единицы, на этой стадии. Таким образом, можно приспосабливать альтернативный подход, за счет которого интерпретация не приписывается для единиц позднее при использовании для того, чтобы фактически формировать изображение.

[0076] Далее описывается процесс декодирования согласно вариантам осуществления такого альтернативного подхода. Как описано выше, по меньшей мере, одно из значений векторов движения дифференциально кодируется, причем модуль 73 предсказания движения выполнен с возможностью предсказывать значение вектора движения посредством масштабирования другого из упомянутых значений векторов движения. По меньшей мере, одно из значений векторов движения может быть дифференциально кодировано с точки зрения дельта-значения, и модуль 73 предсказания движения может быть выполнен с возможностью предсказывать значение вектора движения посредством масштабирования другого из упомянутых значений векторов движения, чтобы формировать значение масштабированного вектора движения, и затем суммирования дельта-значения со значением масштабированного вектора движения. Тем не менее, в отличие от вышеописанного, модуль 73 предсказания движения дополнительно выполнен с возможностью интерпретировать значение вектора движения в упомянутых целопиксельных единицах (когда используется целочисленный режим), без его округления до целопиксельного разрешения после масштабирования. Это становится возможным за счет недопущения приписывания интерпретации для единиц при масштабировании. Модуль 73 предсказания движения может быть выполнен с возможностью интерпретировать значение вектора движения в упомянутых целопиксельных единицах посредством выполнения суммирования дельта-значения со значением масштабированного вектора движения без округления значения масштабированного вектора движения до целопиксельного разрешения. Результирующее значение вектора движения интерпретируется только с точки зрения целопиксельных или дробнопиксельных единиц при использовании для того, чтобы формировать изображение. Результирующее значение также сохраняется для использования при предсказании одного или более последующих векторов движения без приписывания интерпретации для сохраненного значения с точки зрения целочисленных или дробных единиц.

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

1. Определение того, как MV предсказывается в декодере, и того, отправлена или нет дельта вектора движения (MVD) в кодированном потоке битов из кодера (это может заключать в себе некоторые синтаксические индикаторы).

2. Формирование предсказанного вектора движения (PMV). Это создает пару целых чисел (px, py). Тем не менее, не следует беспокоиться о том, что это может представлять, т.е. не следует приписывать интерпретацию для единиц на этой стадии.

3. Если MVD не отправляется, задание MV-значения (mx, my) как (px, py); иначе декодирование пары целых чисел (px, py) в качестве (dx, dy) и задание MV (mx, my) как (px+dx, py+dy). При работе в режиме с целочисленной точностью, интерпретация MV как представляющего целые целочисленные смещения в области сигнала яркости, т.е. как представляющего значения (4*mx, 4*my) в единицах смещения в 1/4 выборки. Иначе (т.е. при работе в режиме с точностью в 1/4 выборки), интерпретация MV как представляющего смещения в 1/4 выборки в области сигнала яркости, т.е. как представляющего значение (mx, my) в единицах смещения в 1/4 выборки (Примечание. Так же, различение сигнала яркости имеет значение только в том случае, если видео имеет такой формат, как 4:2:2 или 4:2:0).

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

[0078] Таким образом, этап 3a округления, описанный выше, теперь исключается. Только интерпретация чисел модифицируется. Это приводит к тому, что процесс декодирования является менее сложным, поскольку не требуется модификация процесса MV-предсказания.

[0079] Следует отметить, что округление, поясненное выше, означает округление от разрешения в 1/4 (или дробного разрешения) до целочисленного разрешения. В настоящих стандартах, также предусмотрено округление от еще большей точности до разрешения в 1/4 качестве части предсказания векторов движения, и в вышеприведенном альтернативном варианте осуществления, не исключается, что предсказывается такое предварительное округление по-прежнему присутствует.

[0080] Могут быть некоторые побочные эффекты при работе таким образом. Один побочный эффект может состоять в том, что если некоторые изображения используют другой режим по сравнению с остальными, масштабирование, используемое в процессе MV-предсказания для временного MV-предсказания, не должно быть корректным. Тем не менее, он представляет собой очень незначительный эффект, тем более, что эта ситуация работы в различных режимах является редкой, а также поскольку временное MV-предсказание обычно обладает только очень незначительным преимуществом. Другой побочный эффект может состоять в том, что результаты управления фильтром удаления блочности могут зависеть от MV-значений, которые интерпретируются с различным коэффициентом масштабирования. Тем не менее, этот эффект также является незначительным, тем более, что удаление блочности может деактивироваться или не может иметь сильный эффект при кодировании экранного контента.

[0081] Другая возможность состоит в том, чтобы деактивировать временное предсказание векторов движения каждый раз при использовании только целочисленного движения. Уже предусмотрен синтаксис в HEVC, который позволяет кодеру деактивировать использование этого признака. Это должно представлять собой возможный способ исключать необходимость для декодера иметь специальный процесс, который работает по-разному в зависимости от того, кодируются разности в качестве целых чисел или в качестве дробных значений. Усиление, полученное из временного предсказания векторов движения, может быть небольшим (или нулевым) в этих вариантах использования в любом случае, так что его деактивация необязательно должна быть нежелательной.

[0082] Следует принимать во внимание, что вышеприведенные варианты осуществления описаны только в качестве примера.

[0083] Например, хотя выше приведено описание с точки зрения блоков, необязательно накладывание ограничения разделениями, называемые "блоками" в каком-либо конкретном стандарте. Например, блоки, упоминаемые в данном документе, могут представлять собой разделения, называемые "блоками" или "макроблоками" в стандартах H.26x.

[0084] Объем раскрытия, ограниченный каким-либо конкретным кодеком или стандартом и, в общем, технологиями, раскрытыми в данном документе, может реализовываться либо в контексте существующего стандарта, либо в обновлении существующего стандарта, будь то стандарт H.26x, такой как H264, или H.265, либо какой-либо другой стандарт, либо может реализовываться в специализированном кодеке. Дополнительно, объем раскрытия конкретно не ограничивается каким-либо конкретным представлением видеовыборок, будь то с точки зрения RGB, YUV и т.п. Кроме того, объем не ограничен ни конкретным квантованием, ни DCT-преобразованием. Например, может использоваться альтернативное преобразование, такое как преобразование Карунена-Лоэва (KLT), либо преобразование может не использоваться. Дополнительно, раскрытие не ограничено VoIP-связью или связью ни по какому конкретному виду сети, а может использоваться в любой сети или среде, допускающей обмен данными.

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

[0086] Дополнительно, изобретение не ограничено выбором между целопиксельным и четвертьпиксельным разрешением. В общем, технологии, описанные в данном документе, могут применяться к выбору между целопиксельным разрешением и любым дробнопиксельным разрешением, например, разрешением в 1/2 пиксела; или выбору между целопиксельным разрешением и множеством различных дробнопиксельных режимов, например, выбору между целочисленным, 1/2 и 1/4-пиксельным режимами.

[0087] Дополнительно, объем раскрытия сущности не ограничен вариантом применения, в котором кодированное видео и/или поток захвата экрана передается по сети, ни вариантом осуществления, в котором потоки представляют собой передаваемый вживую поток. Например, в другом варианте применения, поток может сохраняться на устройстве хранения данных, таком как оптический диск, жесткий диск или другое магнитное устройство хранения данных либо карта флэш-памяти в формате Memory Stick, либо другое электронное запоминающее устройство. Следовательно, необходимо отметить, что поток совместного использования экрана не обязательно должен означать совместное использование вживую (хотя оно безусловно представляет собой один вариант). Альтернативно или дополнительно, он может сохраняться для совместного использования с одним или более другими пользователями позднее, или захваченные данные изображений могут не использоваться совместно, а вместо этого просто записываться для пользователя, который использует экран в это время. В общем, захват экрана может представлять собой любые данные движущихся изображений, состоящие из захваченного экранного контента на стороне кодера, захваченного посредством любого подходящего средства (не обязательно посредством считывания из экранного буфера, хотя это представляет собой один вариант), для совместного использования с одним или более других пользователей (вживую или нет), либо просто записываться в интересах захватывающего пользователя или только для архива (и, возможно, никогда более не просматриваться фактически снова, как может оказаться).

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

[0089] Дополнительно, следует отметить, что межкадровое кодирование не обязательно всегда должно кодировать относительно предыдущего кадра, но, если обобщать, некоторые кодеки могут обеспечивать возможность кодирования относительно кадра, отличного от целевого кадра, либо предыдущего, либо перед целевым кадром (при условии подходящего исходящего буфера).

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

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

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

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

[0094] Одна такая конфигурация машиночитаемого носителя представляет собой среду передачи сигналов и в силу этого выполнена с возможностью передавать инструкции (например, в качестве несущей) в вычислительное устройство, к примеру, через сеть. Машиночитаемый носитель также может быть сконфигурирован как машиночитаемый носитель хранения данных и в силу этого не представляет собой среду передачи сигналов. Примеры машиночитаемого носителя хранения данных включают в себя оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), оптический диск, флэш-память, запоминающее устройство на основе жесткого диска и другие запоминающие устройства, которые могут использовать магнитные, оптические и другие технологии для того, чтобы сохранять инструкции и другие данные.

[0095] Хотя изобретение описано на языке, характерном для структурных признаков и/или технологических этапов, следует понимать, что объем изобретения, определяемый прилагаемой формулой изобретения, не обязательно ограничен характерными признаками или этапами, описанными выше. Вместо этого, характерные признаки и этапы, описанные выше, раскрываются как примерные формы реализации формулы изобретения.


ПРЕДСТАВЛЕНИЕ ВЕКТОРОВ ДВИЖЕНИЯ В КОДИРОВАННОМ ПОТОКЕ БИТОВ
ПРЕДСТАВЛЕНИЕ ВЕКТОРОВ ДВИЖЕНИЯ В КОДИРОВАННОМ ПОТОКЕ БИТОВ
ПРЕДСТАВЛЕНИЕ ВЕКТОРОВ ДВИЖЕНИЯ В КОДИРОВАННОМ ПОТОКЕ БИТОВ
ПРЕДСТАВЛЕНИЕ ВЕКТОРОВ ДВИЖЕНИЯ В КОДИРОВАННОМ ПОТОКЕ БИТОВ
ПРЕДСТАВЛЕНИЕ ВЕКТОРОВ ДВИЖЕНИЯ В КОДИРОВАННОМ ПОТОКЕ БИТОВ
Источник поступления информации: Роспатент

Показаны записи 1-10 из 499.
10.06.2015
№216.013.5597

Регулировка громкости на основании местоположения слушателя

Изобретение относится к средствам регулировки громкости на основании местоположения слушателя. Технический результат заключается в осуществлении возможности регулирования громкости на основании местоположения слушателя. Идентифицируется местоположение одного или более громкоговорителей и...
Тип: Изобретение
Номер охранного документа: 0002553432
Дата охранного документа: 10.06.2015
27.06.2015
№216.013.5800

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

Изобретение относится к формированию смоделированного видеоизображения. Техническим результатом является получение смоделированных видеоизображений движения транспортных средств, имеющих высокую частоту кадров, высокую разрешающую способность и многочисленные виды, путем обработки видео от...
Тип: Изобретение
Номер охранного документа: 0002554069
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.581e

Выбираемые пользователем операционные среды для устройств мобильной связи

Изобретение относится к системам связи. Технический результат заключается в осуществлении передач в зависимости от типа операционной среды. В устройстве мобильной связи принимают передачу информации от источника передачи. Получают указатель типа операционной среды, связанного с источником...
Тип: Изобретение
Номер охранного документа: 0002554099
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5946

Система и способ для выбора вкладки в браузере с вкладками

Изобретение относится к средствам управления и выбора одной из набора открытых вкладок в браузере с вкладками. Технический результат заключается в уменьшении времени доступа к необходимой вкладке. Отображают web-браузер в окне дисплея, причем окно web-браузера отображает множество открытых...
Тип: Изобретение
Номер охранного документа: 0002554395
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5acc

Поддержание возможности отмены и возврата при объединениях метаданных

Группа изобретений относится к средствам для совместной работы над документами. Технический результат заключается в обеспечении сохранения метаданных во время операции отмены на клиентском компьютере при совместной работе над документами. Для этого представлен способ для сохранения метаданных...
Тип: Изобретение
Номер охранного документа: 0002554785
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5b08

Синхронизация частей файла с использованием серверной модели хранения информации

Изобретение относится к области синхронизации частей файла с помощью серверной модели хранения информации в клиент-серверной компьютерной сети. Техническим результатом является повышение защищенности данных при синхронизации. Изменения в содержимом электронного документа могут быть приняты на...
Тип: Изобретение
Номер охранного документа: 0002554845
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5b0a

Контрольные точки для файловой системы

Изобретение относится к средствам обеспечения контрольных точек. Технический результат заключается в уменьшении времени восстановления. Указывают, что первый набор обновлений подлежит связыванию с первой контрольной точкой. Определяют необходимость записи данных контрольной точки, относящихся к...
Тип: Изобретение
Номер охранного документа: 0002554847
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5b0e

Захват и загрузка состояний операционной системы

Изобретение относится к области захвата и загрузки состояний операционной системы. Техническим результатом является повышение эффективности восстановления операционной системы к базовому состоянию. В одном варианте воплощения выполняется сохранение состояний памяти операционной системы...
Тип: Изобретение
Номер охранного документа: 0002554851
Дата охранного документа: 27.06.2015
10.07.2015
№216.013.5c7e

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

Изобретение относится к области компьютерных сетей, а именно к клиент-серверным компьютерным сетям. Технический результат заключается в увеличении производительности сети и снижении задержки в доставке электронных документов, запрошенных пользователями. Технический результат достигается за счет...
Тип: Изобретение
Номер охранного документа: 0002555219
Дата охранного документа: 10.07.2015
10.07.2015
№216.013.5c7f

Управление виртуальными портами

Группа изобретений относится к устройствам ввода с возможностью обеспечения одновременной работы нескольких пользователей. Технический результат заключается в обеспечении обратной связи между пользователями вычислительной среды. Каждый такой виртуальный порт может иметь различные относящиеся к...
Тип: Изобретение
Номер охранного документа: 0002555220
Дата охранного документа: 10.07.2015
Показаны записи 1-10 из 12.
10.06.2014
№216.012.cfa9

Уменьшенное рассогласование коэффициентов усиления постоянной состовляющей (dc) и dc-утечки при обработке преобразования с перекрытием

Изобретение относится к средствам формирования выровненного многоканального аудиосигнала. Технический результат заключается в уменьшении ресурсоемкости для хранения аудиоданных и увеличении скорости передачи аудиоданных. Выполняют обратное частотное преобразование цифровых медиаданных....
Тип: Изобретение
Номер охранного документа: 0002518932
Дата охранного документа: 10.06.2014
27.07.2014
№216.012.e4c9

Согласование скорости при видеоконференциях

Изобретение относится к области видеоконференций, а именно к согласованию скорости передачи видеопотока между клиентами. Техническим результатом является повышение производительности видеоконференций за счет выбора для передачи видеопотока, характеристики которого удовлетворяют характеристикам...
Тип: Изобретение
Номер охранного документа: 0002524359
Дата охранного документа: 27.07.2014
27.08.2014
№216.012.efcb

Подписка на видеоконференцсвязь с использованием потоков со множеством скоростей передачи битов

Изобретение относится к области видеоконференцсвязи. Техническим результатом является обеспечение подписок на видеоконференции с использованием потоков с множеством скоростей передачи битов. Сервер видеоконференции может принимать видеопотоки от каждого клиента в видеоконференции и может...
Тип: Изобретение
Номер охранного документа: 0002527206
Дата охранного документа: 27.08.2014
20.06.2016
№217.015.0465

Сокращение задержки при кодировании и декодировании видео

Изобретение относится к кодированию и декодированию видео для стандарта высокоэффективного видеокодирования (HEVC). Техническим результатом является сокращение задержки при кодировании и декодировании видео. Предложены способ и устройство сокращения задержки при кодировании и декодировании...
Тип: Изобретение
Номер охранного документа: 0002587467
Дата охранного документа: 20.06.2016
25.08.2017
№217.015.b34a

Сигнализация информации состояния для буфера декодированных картинок и списков опорных картинок

Изобретение относится к технологиям кодирования/декодирования видеоданных. Техническим результатом является повышение эффективности кодирования/декодирования видео за счет принятия решений о том, какие опорные картинки больше не используются для ссылок. Предложен способ кодирования видео....
Тип: Изобретение
Номер охранного документа: 0002613738
Дата охранного документа: 21.03.2017
10.05.2018
№218.016.4039

Управляющие данные для набора мозаичных фрагментов с ограничениями движения

Изобретение относится к области передачи служебных сигналов, а более конкретно к обработке кодированных данных. Технический результат – упрощение обработки изображений посредством использования управляющих данных. Система для обработки кодированных данных реализует систему кодера, выполненную с...
Тип: Изобретение
Номер охранного документа: 0002648592
Дата охранного документа: 26.03.2018
29.05.2018
№218.016.54eb

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

Изобретение относится к области кодирования/декодирования видео. Технический результат – обеспечение эффективного сжатия данных в контексте показателя искажения в зависимости от скорости передачи, посредством использования отфильтрованных значений отсчетов для внутреннего предсказания с блочным...
Тип: Изобретение
Номер охранного документа: 0002654129
Дата охранного документа: 16.05.2018
05.07.2018
№218.016.6c5f

Синтаксис и семантика для буферизации информации с целью упрощения конкатенации видеоданных

Изобретение относится к вычислительной технике. Технический результат заключается в упрощение операции конкатенации. Вычислительное устройство для кодирования видео содержит видеокодер, выполненный с возможностью осуществления операций, чтобы кодировать видео для видеопоследовательности,...
Тип: Изобретение
Номер охранного документа: 0002659748
Дата охранного документа: 03.07.2018
09.02.2019
№219.016.b876

Кодирование данных захвата экрана

Изобретение относится к кодеру и машиночитаемому носителю для обработки изображений. Технический результат заключается в повышении эффективности предсказания движения движущихся изображений. Кодер содержит ввод для приема данных движущихся изображений, модуль предсказания движения для...
Тип: Изобретение
Номер охранного документа: 0002679349
Дата охранного документа: 07.02.2019
29.03.2019
№219.016.ee15

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

Изобретение относится к области кодирования/декодирования контента захвата экрана. Техническим результатом является повышение эффективности кодирования/декодирования контента захвата экрана с точки зрения показателя скорость искажения. Раскрыт способ кодирования контента захвата экрана в...
Тип: Изобретение
Номер охранного документа: 0002683165
Дата охранного документа: 26.03.2019
+ добавить свой РИД