RU2565363C2 - Предсказание движения при видеокодировании - Google Patents

Предсказание движения при видеокодировании Download PDF

Info

Publication number
RU2565363C2
RU2565363C2 RU2013136693/08A RU2013136693A RU2565363C2 RU 2565363 C2 RU2565363 C2 RU 2565363C2 RU 2013136693/08 A RU2013136693/08 A RU 2013136693/08A RU 2013136693 A RU2013136693 A RU 2013136693A RU 2565363 C2 RU2565363 C2 RU 2565363C2
Authority
RU
Russia
Prior art keywords
prediction
accuracy
block
pixels
values
Prior art date
Application number
RU2013136693/08A
Other languages
English (en)
Other versions
RU2013136693A (ru
Inventor
Кемал УГУР
Яни ЛАЙНЕМА
Антти Олли ХАЛЛАПУРО
Original Assignee
Нокиа Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=46457280&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=RU2565363(C2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Нокиа Корпорейшн filed Critical Нокиа Корпорейшн
Publication of RU2013136693A publication Critical patent/RU2013136693A/ru
Application granted granted Critical
Publication of RU2565363C2 publication Critical patent/RU2565363C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream

Abstract

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

Description

Область техники
Настоящее изобретение относится к устройству, способу и компьютерной программе для формирования и использования информации предсказания движения при кодировании и декодировании видеоданных.
Предпосылки создания изобретения
Видеокодек может включать кодер, который преобразует входные видеоданные в их сжатое представление, пригодное для хранения и/или передачи, и декодер, который распаковывает сжатое представление видеоданных обратно в подходящую для просмотра форму, или только один из этих элементов. Кодер может отбрасывать часть информации из исходной видеопоследовательности для представления видеоданных в более компактной форме, например с более низкой битовой скоростью передачи.
Многие гибридные видеокодеки, например соответствующие стандартам H.263 и H.264 Международного союза электросвязи - Технического совета (ITU-T, International Telegraphic Union - Technical Board), кодируют видеоинформацию в два этапа. На первом этапе предсказывают значения пикселей в определенной области изображения или «блоке». Эти значения пикселей могут предсказываться, например, с помощью механизмов компенсации движения, в которых применяются поиск и указание на область в одном из ранее кодированных видеокадров (или в позднее кодируемом видеокадре), близко соответствующую кодируемому блоку. Кроме того, значения пикселей могут быть предсказаны с помощью пространственных механизмов, в которых применяются поиск и указание взаимосвязи пространственных областей, например, с использованием, заданным образом, значений пикселей вокруг кодируемого блока.
При этом подходы, в которых применяется предсказание с использованием видеоинформации из предыдущих или последующих изображений, могут называться способами внешнего предсказания (Inter prediction), тогда как подходы, в которых применяется предсказание с использованием видеоинформации внутри одного изображения, могут называться способами внутреннего предсказания (Intra prediction).
На втором этапе выполняют кодирование ошибки между предсказанным блоком пикселей и исходным блоком пикселей. Обычно это выполняется путем преобразования разности значений пикселей с использованием заданного преобразования. Для этого обычно используется дискретное косинусное преобразование (DCT, Discrete Cosine Transform) или его варианты. После преобразования разности выполняется квантование и энтропийное кодирование преобразованной разности.
Путем изменения точности процесса квантования кодер может управлять балансом между точностью представления пикселей (другими словами, качеством изображения) и размером результирующего представления кодированного видео (другими словами, размером файла или битовой скоростью передачи).
Один из примеров процедуры кодирования проиллюстрирован на фиг.1.
Декодер реконструирует выходное видео путем применения механизма предсказания, аналогичного тому, который использовался кодером, для формирования предсказанного представления блоков пикселей (с использованием информации о движении или пространственной информации, созданной кодером и хранимой в сжатом представлении изображения), и путем декодирования ошибки предсказания (операция, обратная кодированию ошибки предсказания, для реконструкции квантованного сигнала предсказания в пространственной области).
После применения процессов предсказания пикселей и декодирования ошибки декодер объединяет сигналы предсказания и ошибки предсказания (значения пикселей) для формирования выходного видеокадра.
Декодер (и кодер) может также применять дополнительный процесс фильтрации для повышения качества выходного видеосигнала перед его отображением и/или сохранением в качестве опорного для предсказания последующих кадров в видеопоследовательности.
Один из примеров процедуры декодирования проиллюстрирован на фиг.2.
Предсказание с компенсацией движения (Motion Compensated Prediction) представляет собой технологию, применяемую в стандартах сжатия видеоданных для уменьшения размера кодированного битового потока. В технологии МСР предсказание для текущего кадра формируют с использованием ранее кодированного кадра (кадров), при этом кодируют и передают в декодер только разность между исходным и предсказанным сигналами, представляющими текущий и предсказанный кадр. Сигнал предсказания, представляющий предсказанный кадр, формируют, сначала разбивая текущий кадр на блоки, например макроблоки, и затем находя наилучшее совпадение в опорном кадре для каждого блока. Таким образом определяют движение блока относительно опорного кадра, и информацию об этом движении кодируют в битовый поток в виде векторов движения. Декодер способен в точности реконструировать предсказанный кадр с помощью декодирования данных векторов движения, кодированных в битовом потоке.
Один из примеров структуры предсказания представлен на фиг.8. Прямоугольниками обозначены кадры, заглавные буквы внутри прямоугольников обозначают типы кодирования, числа внутри прямоугольников представляют номера кадров (в порядке декодирования), а стрелки указывают на зависимости в предсказании. В данном примере I-кадры представляют собой кадры внутреннего кодирования, для которых не применяются опорные изображения, и которые, следовательно, могут декодироваться независимо от декодирования остальных кадров. P-кадры представляют собой так называемые изображения с одинарным предсказанием, то есть они ссылаются на один опорный кадр, а B-кадры представляют собой кадры с двойным предсказанием, для которых в качестве опорных используются два других изображения, или два блока предсказания внутри одного опорного изображения. Другими словами, опорные блоки, связанные с B-кадром, могут находиться в одном опорном кадре (как показано двумя стрелками от кадра P7 к кадру B8 на фиг.8) или в двух различных опорных кадрах (как показано, например, стрелками от кадра P2 и кадра B3 к кадру B4 на фиг.8).
Следует также отметить, что один кадр может включать различные типы блоков, то есть блоки кадра могут представлять собой блоки внутреннего предсказания, блоки одинарного предсказания и/или блоки двойного предсказания. С блоками часто связывают векторы движения, при этом для одного кадра может быть множество векторов движения.
В некоторых системах кадры с одинарным предсказанием называются также кадрами с однонаправленным предсказанием, а кадры с двойным предсказанием называются кадрами с двунаправленным предсказанием.
Векторы движения не обязательно должны иметь точность до целого пикселя, но могут также иметь точность до дробной части пикселя. То есть векторы движения могут указывать на дробнопиксельные позиции/местоположения в опорном кадре, которые могут относиться, например, к местоположениям «между» пикселями изображения. Для получения отсчетов в дробнопиксельных местоположениях в процессе МСР могут применяться интерполяционные фильтры. Имеющиеся стандарты видеокодирования описывают, каким образом декодер может получать отсчеты с дробнопиксельной точностью с помощью задания интерполяционного фильтра. Например, в стандарте MPEG-2 максимальная точность векторов движения равна половине пикселя, при этом отсчеты в полупиксельных местоположениях получают простым усреднением соседних отсчетов в целопиксельных положениях. Стандарт видеокодирования H.264/AVC поддерживает векторы движения до четверть-пиксельной точности. Кроме того, в стандарте видеокодирования H.264/AVC полупиксельные отсчеты получают с применением симметричных и разделяемых 6-точечных фильтров, тогда как четверть-пиксельные отсчеты получают усреднением ближайших полупиксельных или целопиксельных отсчетов.
В типовых видеокодеках информация о движении указывается векторами движения, связанными с каждым блоком изображения с компенсацией движения. Каждый из этих векторов движения представляет смещение блока изображения на изображении, подлежащем кодированию (в кодере) или декодированию (в декодере), относительно исходного блока предсказания в одном из ранее кодированных или декодированных изображений (или кадров). Для эффективного представления векторов движения эти векторы обычно кодируются дифференциально по отношению к предсказанному вектору движения, специфичному для блока. В типовом видеокодеке предсказанные векторы движения создаются заранее заданным образом, например путем вычисления среднего для кодируемых или декодируемых векторов движения смежных блоков.
В типовых видеокодеках разностный сигнал предсказания после компенсации движения сначала преобразуют с использованием ядра преобразования (подобного DCT), а затем кодируют. Причина этого заключается в том, что в разностном сигнале часто имеется некоторая корреляция и преобразование во многих случаях позволяет уменьшить эту корреляцию и обеспечить более эффективное кодирование.
В типовых видеокодерах для нахождения оптимальных режимов кодирования, например, требуемого режима макроблока и связанных векторов движения, используется функция стоимости Лагранжа. Функция стоимости этого типа использует весовой коэффициент λ для связывания точного или оценочного искажения изображения, возникающего вследствие применения способов кодирования с потерями, и точного или оценочного объема информации, требуемого для представления значений пикселей в области изображения.
Она может быть представлена следующей формулой:
C = D + λ R , ( 1 )
Figure 00000001
где C - величина стоимости Лагранжа, которая должна быть минимизирована, D - искажение изображения (например, среднеквадратическая ошибка между значениями пикселей в блоке исходного изображения и блоке кодированного изображения) при использовании рассматриваемых в настоящий момент режима и векторов движения, λ - множитель Лагранжа и R - количество битов, необходимых для представления требуемых данных для реконструкции блока изображения в декодере (включая объем данных для представления возможных векторов движения).
В некоторых гибридных видеокодеках, например в H.264/AVC, для повышения эффективности кодирования используют двунаправленное предсказание с компенсацией движения. При двунаправленном предсказании сигнал предсказания для блока может формироваться путем объединения, например путем усреднения, двух блоков предсказания с компенсацией движения. Эта операция усреднения может также включать округление сверху или снизу, что может вносить ошибки округления.
Накопление ошибок округления при двунаправленном предсказании может вызывать снижение эффективности кодирования. Подобное накопление ошибок округления может быть устранено или уменьшено с помощью сигнализации, после объединения двух сигналов предсказания для каждого кадра, о том, было ли использовано округление сверху или снизу. Альтернативно, ошибкой округления можно управлять путем чередования округления сверху и округления снизу для каждого кадра. Например, округление сверху может применяться через кадр, и, соответственно, округление снизу также может применяться через кадр.
На фиг.9 проиллюстрирован пример усреднения двух блоков предсказания с компенсацией движения при применении округления. Значения отсчетов первого опорного блока предсказания вводят (902) в первый фильтр (904), в котором для фильтрации используются значения двух или более целых пикселей вблизи точки, на которую указывает вектор движения. К фильтрованному значению может быть добавлено (906) смещение округления. Значение после фильтрации, сложенное со смещением округления, сдвигают вправо (908) на x битов, то есть делят на 2x, для получения первого сигнала P1 предсказания. Аналогичную операцию выполняют со вторым опорным блоком предсказания, что проиллюстрировано блоками 912, 914, 916 и 198, и получают второй сигнал P2 предсказания. Первый сигнал P1 предсказания и второй сигнал P2 предсказания объединяют, например, путем суммирования сигналов P1, P2 предсказания. К объединенному сигналу может быть добавлено (920) смещение округления, после чего результат сдвигают вправо на у битов, то есть делят на 2y. Округление может выполняться сверху, если смещение округления положительно, или снизу, если смещение округления отрицательно. Направление округления может быть всегда одинаковым или может изменяться время от времени, например, для каждого кадра. Направление округления может сигнализироваться в битовом потоке, чтобы в процессе декодирования использовалось то же направление округления.
Однако эти способы повышают сложность, поскольку при усреднении результатов двунаправленного предсказания необходимо записывать две отдельные ветви кода. Кроме того, процедуры оценки движения в кодере необходимо дублировать для случаев округления и усечения.
Сущность изобретения
В настоящем изобретении предлагается способ, позволяющий снизить влияние ошибок округления при двунаправленном и многонаправленном предсказании. В соответствии с некоторыми вариантами осуществления настоящего изобретения во время вычисления предсказаний поддерживают более высокую точность сигналов предсказания, а затем точность уменьшают после объединения двух или более сигналов предсказания.
В некоторых примерах осуществления настоящего изобретения более высокую точность сигналов предсказания используют до тех пор, пока эти сигналы предсказания не будут объединены для получения сигнала двунаправленного или многонаправленного предсказания. Точность сигнала двунаправленного или многонаправленного предсказания может затем быть понижена путем сдвига до точности, подходящей для последующей обработки. Соответственно, отсутствует необходимость включения указания на направление округления в битовый поток или считывания такого указания из битового потока.
В соответствии с первым аспектом настоящего изобретения предлагается способ, включающий:
определение блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
определение типа упомянутого блока;
если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
определение первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
использование упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
использование упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
объединение упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
понижение точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии со вторым аспектом настоящего изобретения предлагается устройство, содержащее:
процессор и
блок памяти, функционально связанный с упомянутым процессором и содержащий:
компьютерный код, сконфигурированный для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
компьютерный код, сконфигурированный для определения типа упомянутого блока;
компьютерный код, сконфигурированный, если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии с третьим аспектом настоящего изобретения предлагается машиночитаемый носитель для хранения данных с хранимым на нем кодом для использования устройством, который при исполнении процессором обеспечивает выполнение упомянутым устройством следующего:
определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
определения типа упомянутого блока;
если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии с четвертым аспектом настоящего изобретения предлагается по меньшей мере один процессор и по меньшей мере одна память, в которой хранится код, который при исполнении упомянутым по меньшей мере одним процессором обеспечивает выполнение устройством следующего:
определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
определения типа упомянутого блока;
если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии с пятым аспектом настоящего изобретения предлагается устройство, содержащее:
входной модуль для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
модуль определения для определения типа упомянутого блока; при этом, если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков, то упомянутый модуль определения сконфигурирован также для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
первый модуль предсказания для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
второй модуль предсказания для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
модуль объединения для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
модуль сдвига для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии с шестым аспектом настоящего изобретения предлагается устройство, содержащее:
средство для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
средство для определения типа упомянутого блока;
средство для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке, если упомянутое определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков;
средство для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
средство для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
средство для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
средство для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
Благодаря использованию настоящего изобретения отсутствует необходимость сигнализации смещения округления, а также использования различных способов округления для различных кадров. Настоящее изобретение позволяет поддерживать максимально возможную точность сигнала предсказания с компенсацией движения для каждого из предсказаний после интерполяции и выполнять округление до битовой разрядности видеосигнала после суммирования обоих сигналов предсказания.
Краткое описание чертежей
Для понимания настоящего изобретения далее, в качестве примеров, будут осуществляться ссылки на приложенные чертежи.
На фиг.1 показана схема электронного устройства, в котором применяются некоторые варианты осуществления настоящего изобретения.
На фиг.2 показано пользовательское устройство, подходящее для применения некоторых вариантов осуществления настоящего изобретения.
На фиг.3 показаны электронные устройства, в которых применяются варианты осуществления настоящего изобретения и которые связаны с помощью беспроводных и проводных сетевых соединений.
На фиг.4a показана схема одного из вариантов осуществления настоящего изобретения, реализованного в кодере.
На фиг.4b показана схема одного из вариантов осуществления модуля внешнего предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения.
На фиг.5 показана блок-схема, иллюстрирующая работу одного из вариантов осуществления настоящего изобретения в отношении кодера, показанного на фиг.4a.
На фиг.6 показана схема декодера в соответствии с некоторыми вариантами осуществления настоящего изобретения.
На фиг.7 показана блок-схема алгоритма, иллюстрирующая работу одного из вариантов осуществления настоящего изобретения в отношении декодера, показанного на фиг.6.
На фиг.8 показан один из примеров структуры предсказания в видеопоследовательности.
На фиг.9 показан один из примеров битового потока изображения.
На фиг.10 показан один из примеров двунаправленного предсказания с использованием округления.
На фиг.11 показан один из примеров двунаправленного предсказания в соответствии с примером осуществления настоящего изобретения.
На фиг.12 показан один из примеров некоторых возможных направлений предсказания для вектора движения.
Подробное описание изобретения
Ниже более подробно описываются соответствующее устройство и возможные механизмы для уменьшения объема информации, передаваемой в системах видеокодирования, а также более оптимальные отображения кодовых слов в некоторых вариантах осуществления настоящего изобретения. В связи с этим рассмотрим сначала фиг.1, где показана структурная схема примеров устройства или электронного устройства 50, которое может включать кодек в соответствии с вариантом осуществления настоящего изобретения.
Электронное устройство 50 может являться, например, мобильным терминалом или пользовательским устройством системы беспроводной связи. Однако следует отметить, что варианты настоящего изобретения могут быть реализованы в рамках любого электронного устройства или устройства, для которого может потребоваться кодирование и/или декодирование видеоизображений.
Устройство 50 может содержать корпус 30 для размещения и защиты компонентов устройства. Устройство 50 может также содержать дисплей 32, выполненный в виде жидкокристаллического дисплея. В других вариантах осуществления настоящего изобретения дисплей может быть выполнен в соответствии с любой подходящей технологией для воспроизведения изображений или видео. Устройство 50 может также содержать клавиатуру 34. В других вариантах осуществления настоящего изобретения могут использоваться любые подходящие механизмы интерфейса ввода данных или пользовательского интерфейса. Например, пользовательский интерфейс может быть реализован в виде виртуальной клавиатуры или системы ввода данных, являющейся частью сенсорного экрана. Устройство может содержать микрофон 36 или любое подходящее средство ввода аудиосигнала, которое может являться средством ввода цифрового или аналогового сигнала. Устройство 50 может также содержать средство вывода аудиосигнала, которое в вариантах осуществления настоящего изобретения может представлять собой одно из следующих средств: наушники 38, динамик либо аналоговое или цифровое подключение к аудиовыходу. Устройство 50 может также содержать батарею 40 (или в других вариантах осуществления настоящего изобретения устройство может получать питание от любого подходящего мобильного источника энергии, такого как солнечный фотоэлемент, топливный элемент или аккумулятор часового механизма). Устройство может также содержать инфракрасный порт 42 для ближней связи с другими устройствами. В других вариантах осуществления настоящего изобретения устройство 50 может также содержать любое подходящее решение для ближней связи, такое как беспроводное соединение Bluetooth или проводное соединение USB/firewire.
Устройство 50 может включать контроллер 56 или процессор для управления устройством 50. Контроллер 56 может быть соединен с памятью 58, в которой согласно вариантам осуществления настоящего изобретения могут храниться данные изображения и аудиоданные и/или инструкции для выполнения контроллером 56. Контроллер 56 может быть также соединен со схемой 54 кодека, подходящей для выполнения кодирования и декодирования аудио и/или видео или участия в кодировании и декодировании, выполняемых контроллером 56.
Устройство 50 может также содержать считыватель 48 с карты и смарт-карту 46, например UICC, и считыватель UICC для предоставления пользовательской информации, которые подходят для предоставления аутентификационной информации для аутентификации и авторизации пользователя в сети.
Устройство 50 может содержать схему 52 радиоинтерфейса, соединенную с контроллером и позволяющую генерировать сигналы для беспроводной связи, например для связи с сетью сотовой связи, системой беспроводной связи или локальной сетью беспроводной связи. Устройство 50 также может включать антенну 44, соединенную со схемой 52 радиоинтерфейса для передачи и приема радиочастотных сигналов, сгенерированных в схеме 52 радиоинтерфейса, в другое устройство (или устройства), а также для приема радиочастотных сигналов от другого устройства (или устройств).
В некоторых вариантах осуществления настоящего изобретения устройство 50 содержит камеру, позволяющую записывать или обнаруживать отдельные кадры, которые затем передаются для обработки в кодек 54 или в контроллер. В других вариантах осуществления настоящего изобретения устройство может принимать для обработки данные видеоизображения от другого устройства перед передачей и/или сохранением этих данных. В других вариантах осуществления настоящего изобретения устройство 50 может принимать изображение для кодирования/декодирования по беспроводному или проводному соединению.
На фиг.3 показана система, в которой могут использоваться варианты осуществления настоящего изобретения. Система 10 содержит множество устройств связи, которые могут взаимодействовать друг с другом через одну или более сетей. Система 10 может включать любое объединение проводных или беспроводных сетей, включая, не ограничиваясь этим, беспроводную телефонную сотовую сеть (например, сеть GSM, UMTS, CDMA и т.д.), локальную беспроводную сеть (WLAN, wireless local area network), определенную, например, любым из стандартов IEEE 802.x, персональную сеть Bluetooth, локальную сеть Ethernet, кольцевую локальную сеть с маркерным доступом (token ring), глобальную сеть и Интернет.
Система 10 может содержать как проводные, так и беспроводные средства связи или устройства 50, подходящие для реализации вариантов настоящего изобретения.
Например, система, показанная на фиг.3, включает мобильную телефонную сеть 11 и Интернет 28. Соединение с Интернетом 28 может включать, не ограничиваясь этим, беспроводные соединения для дальней связи, беспроводные соединения для ближней связи и различные проводные соединения, включая, не ограничиваясь этим, телефонные линии, кабельные линии, линии электропитания и аналогичные тракты связи.
Примеры устройств связи, показанные в системе 10, могут включать, не ограничиваясь этим, электронное устройство или устройство 50, объединение персонального цифрового помощника (PDA, personal digital assistant) и мобильного телефона 14, PDA 16, интегрированное устройство 18 обмена сообщениями (IMD, integrated messaging device), настольный компьютер 20, ноутбук 22. Устройство 50 может быть стационарным или мобильным устройством, перемещаемым отдельным пользователем. Устройство 50 может также располагаться в транспортном средстве, включая, не ограничиваясь этим, легковой автомобиль, грузовик, такси, автобус, поезд, судно, самолет, велосипед, мотоцикл или любое аналогичное подходящее транспортное средство.
Некоторые устройства могут посылать и принимать вызовы и сообщения и осуществлять связь с провайдерами услуг через беспроводное соединение 25 с базовой станцией 24. Базовая станция 24 может соединяться с сетевым сервером 26, который позволяет выполнять связь между мобильной телефонной сетью 11 и Интернетом 28. Система может содержать дополнительные устройства связи и устройства связи различных типов.
Устройства связи могут осуществлять связь с использованием различных технологий передачи, включая, не ограничиваясь этим, множественный доступ с кодовым разделением каналов (CDMA, code division multiple access), глобальные системы мобильной связи (GSM, global system for mobile communications), универсальную систему мобильной связи (UMTS, universal mobile telecommunications system), множественный доступ с временным разделением каналов (TDMA, time divisional multiple access), множественный доступ с частотным разделением каналов (FDMA, frequency division multiple access), протокол управления передачей/Интернет-протокол (TCP-IP, transmission control protocol-internet protocol), службу обмена короткими сообщениями (SMS, short messaging service), службу обмена мультимедийными сообщениями (MMS, multimedia messaging service), электронную почту, службу мгновенного обмена сообщениями (IMS, instant messaging service), Bluetooth, IEEE 802.11 и любые другие аналогичные технологии беспроводной связи. Устройства связи, задействованные в реализации различных вариантов осуществления настоящего изобретения, могут осуществлять связь с использованием различных сред передачи, включая, не ограничиваясь этим, радиосоединения, инфракрасные, лазерные, кабельные соединения и любые другие подходящие соединения.
Различные варианты осуществления настоящего изобретения могут служить расширением традиционных двухэтапных алгоритмов с дробнопиксельной интерполяцией, например алгоритма, используемого в стандарте видеокодирования H.264/AVC, без увеличения сложности декодера. Следует отметить, что фиг.11 иллюстрирует только некоторые целопиксельные значения для пикселей, являющихся ближайшими соседями рассматриваемого блока пикселей, однако при интерполяции можно также использовать целопиксельные значения для пикселей, расположенных на большем расстоянии от рассматриваемого блока. Кроме того, настоящее изобретение не ограничено применением одномерной интерполяции, дробнопиксельные отсчеты могут формироваться с использованием более сложной интерполяции или фильтрации.
Следует отметить, что различные варианты осуществления настоящего изобретения могут быть реализованы с помощью или в сочетании с другими стандартами видеокодирования, помимо стандарта видеокодирования H.264/AVC.
На фиг.4 показана структурная схема видеокодера, подходящего для реализации настоящего изобретения. Кроме того, на фиг.5 подробно показано функционирование вариантов осуществления настоящего изобретения, относящихся к кодеру, в отношении использования более высокой точности при вычислении сигналов предсказания, как показано на блок-схеме.
На фиг.4a показан кодер, содержащий модуль 302 предсказания пикселей, кодер 303 ошибки предсказания и декодер 304 ошибки предсказания. На фиг.4a также показан один из вариантов осуществления модуля 302 предсказания пикселей, включающего модуль 306 внешнего предсказания, модуль 308 внутреннего предсказания, модуль 310 выбора режима, фильтр 316 и память 318 для опорных кадров. Модуль 310 выбора режима содержит процессор 381 блоков и модуль 382 вычисления функции стоимости. На фиг.4b также показан один из вариантов осуществления модуля 306 внешнего предсказания, содержащего модуль 360 выбора блока и модуль 361 задания векторов движения, который может быть реализован, например, в процессоре 362 предсказания. Модуль 306 внешнего предсказания может иметь доступ к памяти 404 для параметров. Модуль 310 выбора режима может также содержать модуль 384 квантования.
Модуль 302 предсказания пикселей принимает подлежащее кодированию изображение 300 как на входе модуля 306 внешнего предсказания (который определяет разность между кадром изображения и опорным кадром 318 с компенсацией движения), так и на входе модуля 308 внутреннего предсказания (который определяет предсказание для блока изображения исходя только из уже обработанных частей текущего кадра или изображения). Выходные сигналы модуля внешнего предсказания и модуля внутреннего предсказания подаются на модуль 310 выбора режима. Модуль 308 внутреннего предсказания может иметь более одного режима внутреннего предсказания. Следовательно, в каждом из этих режимов может осуществляться внутреннее предсказание, и в модуль 310 выбора режима может предоставляться предсказанный сигнал. Модуль 310 выбора режима также принимает копию изображения 300.
Процессор 381 блоков определяет, какой режим кодирования использовать для кодирования текущего блока. Если процессор 381 блоков принимает решение использовать режим внешнего предсказания, то он передает выходные данные модуля 306 внешнего предсказания на выход модуля 310 выбора режима. Если процессор 381 блоков принимает решение использовать режим внешнего предсказания, то он передает на выход модуля 310 выбора режима выходные данные одного из режимов внешнего предсказания.
В соответствии с некоторыми примерами осуществления настоящего изобретения модуль 302 предсказания пикселей функционирует следующим образом. Модуль 306 внешнего предсказания и режимы внутреннего предсказания выполняют предсказание текущего блока для получения предсказанных значений пикселей текущего блока. Модуль 306 внешнего предсказания и режимы 308 внутреннего предсказания могут предоставлять предсказанные значения пикселей текущего блока в процессор 381 блоков для анализа того, какое предсказание необходимо выбрать. Помимо предсказанных значений текущего блока, процессор 381 блоков в некоторых вариантах осуществления настоящего изобретения может принимать из упомянутых режимов внутреннего предсказания указание на режим направленного внутреннего предсказания.
Процессор 381 блоков анализирует, следует ли выбрать режим внешнего предсказания или режим внутреннего предсказания. Для анализа того, какой из методов кодирования дает наиболее эффективный результат в отношении определенного критерия или критериев, процессор блоков 381 может использовать функции стоимости, например уравнение (1). Выбранный критерий может включать эффективность кодирования, вычислительные затраты и/или другие критерии. При выборе режима предсказания процессор 381 блоков может анализировать предсказание для каждого направления, то есть для каждого режима внутреннего предсказания и каждого режима внешнего предсказания, или процессор 381 блоков может анализировать только подмножество всех доступных режимов предсказания.
В некоторых вариантах осуществления настоящего изобретения модуль 306 внешнего предсказания работает следующим образом. Модуль 360 выбора блока принимает текущий кодируемый блок (шаг 504 на фиг.5) и анализирует, содержит ли ранее кодированное изображение блок, который может использоваться в качестве опорного для текущего блока (шаг 505). Если такой блок найден в памяти 318 для опорных кадров, то модуль 365 оценки движения может определять возможность предсказания текущего блока с использованием одного или двух (или более) опорных блоков, то есть может определять то, будет ли текущий блок блоком с одинарным предсказанием или блоком с двойным предсказанием (шаг 506). Если модуль 365 оценки движения принял решение использовать одинарное предсказание, то он может передать указание на опорный блок в модуль 361 задания векторов движения. Если модуль 365 оценки движения выбрал использовать двойное предсказание, то он может передать указания в модуль 361 задания векторов движения на оба опорных блока или, если было выбрано более двух опорных блоков, на все выбранные опорные блоки. Модуль 361 задания векторов движения использует эту информацию об опорных блоках и задает вектор движения (шаг 507), указывающий на соответствие между пикселями текущего блока и опорного блока (блоков).
В некоторых вариантах осуществления настоящего изобретения модуль 306 внешнего предсказания вычисляет значение функции стоимости для однонаправленного и двунаправленного предсказания и после этого может выбирать, какой тип предсказания использовать для текущего блока.
В некоторых вариантах осуществления настоящего изобретения вектор движения может указывать на целопиксельный отсчет или дробнопиксельный отсчет, то есть на половину пикселя, четверть пикселя или одну восьмую пикселя. Модуль 361 задания векторов движения может анализировать тип текущего блока и определять, является ли этот блок блоком с двойным предсказанием или имеет другой тип (шаг 508). Тип блока может определяться с помощью указания 366 на тип блока, которое может предоставляться модулем 360 выбора блока или другим элементом кодера. Если блок является блоком с двойным предсказанием, то модулем 361 задания векторов движения задаются два (или более) векторов движения (шаг 509). В противном случае, если блок является блоком с одинарным предсказанием, будет задан один вектор движения (шаг 510).
Определение типа блока возможно также до вычисления вектора движения.
Модуль 361 задания векторов движения предоставляет информацию о векторах движения в процессор 381 блоков, который использует эту информацию для получения сигнала предсказания.
После вычисления значения функции стоимости для режима внутреннего предсказания и, возможно, для режима (или режимов) внешнего предсказания, процессор 381 блоков выбирает один из режимов внутреннего или внешнего предсказания для кодирования текущего блока.
Если был выбран режим внешнего предсказания, то в качестве выходных данных модуля выбора режима предоставляются предсказанные значения пикселей или предсказанные значения пикселей, квантованные с помощью опционального модуля 384 квантования.
Выходные данные модуля выбора режима передаются в первое суммирующее устройство 321. Первое суммирующее устройство может вычитать выходные данные модуля 302 предсказания пикселей из изображения 300 для получения первого сигнала 320 ошибки предсказания, который подается на вход кодера 303 ошибки предсказания.
Модуль 302 предсказания пикселей принимает от предварительного модуля 339 реконструкции объединение представления предсказания блока 312 изображения и выходного сигнала 338 декодера 304 ошибки предсказания. Предварительно реконструированное изображение 314 может быть передано в модуль 308 внутреннего предсказания и фильтр 316. Фильтр 316, принимающий предварительное представление, может выполнять фильтрацию предварительного представления и выводить окончательное реконструированное изображение 340, которое может сохраняться в памяти 318 для опорных кадров. Память 318 для опорных кадров может соединяться с модулем 306 внешнего предсказания для использования в качестве опорного изображения по отношению к будущему изображению 300 в операциях внешнего предсказания.
Функционирование модуля 302 предсказания пикселей может быть сконфигурировано для выполнения любого известного алгоритма предсказания пикселей.
Модуль 302 предсказания пикселей может также содержать фильтр 385 для фильтрации предсказанных значений перед выводом их из модуля 302 предсказания пикселей.
Далее более подробно будет описано функционирование кодера 302 ошибки предсказания и декодера 304 ошибки предсказания. В последующих примерах кодер формирует изображения в макроблоках 16×16 пикселей для формирования полного изображения или кадра. Таким образом, в приведенных ниже примерах модуль 302 предсказания пикселей выдает последовательность предсказанных макроблоков размера 16×16 пикселей, а первое суммирующее устройство 321 выдает последовательность макроблоков 16×16 разностных данных, которые могут представлять разницу между первым макроблоком в изображении 300 и предсказанным макроблоком (выходными данными модуля 302 предсказания пикселей). Следует понимать, что может использоваться и другой размер макроблоков.
Кодер 303 ошибки предсказания включает модуль 342 преобразования и модуль 344 квантования. Модуль 342 преобразования преобразует первый сигнал 320 ошибки предсказания в область преобразования. Таким преобразованием является, например, преобразование DCT. Модуль 344 квантования квантует сигнал области преобразования, например коэффициенты DCT, и формирует квантованные коэффициенты.
Энтропийный кодер 330 принимает выходной сигнал кодера ошибки предсказания и может выполнять для этого сигнала подходящее энтропийное кодирование или кодирование переменной длины для обеспечения возможности обнаружения ошибки и коррекции. Может использоваться любой подходящий алгоритм энтропийного кодирования.
Декодер 304 ошибки предсказания принимает выходной сигнал кодера 303 ошибки предсказания и выполняет процессы, обратные тем, которые выполняет кодер 303 ошибки предсказания, для формирования сигнала 338 декодированной ошибки предсказания, который при объединении с представлением предсказания блока 312 изображения во втором суммирующем устройстве 339 формирует предварительно реконструированное изображение 314. Декодер ошибки предсказания может рассматриваться как устройство, содержащее модуль 346 деквантования, который деквантует квантованные значения коэффициентов, например коэффициентов DCT, и восстанавливает сигнал преобразования, а также модуль 348 обратного преобразования, который выполняет обратное преобразование в реконструированный сигнал преобразования, при этом выходные данные модуля 348 обратного преобразования содержат реконструированный блок (или блоки). Декодер ошибки предсказания может также содержать фильтр макроблоков (не показан), который может фильтровать реконструированный макроблок в соответствии с дополнительной декодированной информацией и параметрами фильтрации.
Функционирование и реализация модуля 310 выбора режима более подробно проиллюстрированы на фиг.5. На основе сигналов предсказания с выхода модуля 306 внешнего предсказания, выходных данных модуля 308 внутреннего предсказания и/или сигнала 300 изображения процессор 381 блоков определяет, какой режим кодирования нужно использовать для кодирования текущего блока изображения. Этот выбор проиллюстрирован на шаге 500 на фиг.5. Процессор 381 блоков может вычислять значение коэффициента стоимости "скорость-искажение" (RD, rate-distorsion) или другое значение коэффициента стоимости для сигналов предсказания, поступающих на вход модуля 310 выбора режима, и выбирать такой режим 503, 504 кодирования, для которого вычисленное значение коэффициента стоимости будет наименьшим.
Модуль 310 выбора режима предоставляет указание на режим кодирования текущего блока (501). Это указание может кодироваться и вводиться в битовый поток или сохраняться в памяти вместе с информацией изображения.
Если выбран режим внутреннего предсказания, то блок предсказывают с помощью способа (503) внутреннего предсказания. Соответственно, если выбран режим внешнего предсказания, то блок предсказывают с помощью способа (504-510) внешнего предсказания.
На фиг.11 в виде блок-схемы проиллюстрирован один из примеров работы модуля выбора режима, когда выбран режим внешнего предсказания и блок является блоком с двойным предсказанием. Информация векторов движения, предоставляемая модулем 361 задания векторов движения, содержит указание на первый опорный блок и второй опорный блок. В приложениях многонаправленного предсказания информация векторов движения может включать указание более чем на два опорных блока. Процессор 381 блоков использует эту информацию векторов движения для определения, какой из блоков использовать в качестве первого опорного блока для текущего блока и какой блок использовать в качестве второго опорного блока для текущего блока. Затем процессор 381 блоков использует часть значений пикселей первого опорного блока для получения первых предсказанных значений и часть значений пикселей второго опорного блока для получения вторых предсказанных значений. Например, если первый вектор движения указывает на дробную часть пикселя (подпиксель), проиллюстрированную квадратом b в примере на фиг.12, то процессор 381 блоков для получения значения опорного пикселя может использовать вместо упомянутой дробной части пикселя, например, значения нескольких полных пикселей в этой же строке. Процессор 381 может использовать, например, P-точечный фильтр, такой как шеститочечный фильтр, в котором для вычисления предсказанного значения используют P значений пикселей опорного блока. В примере на фиг.12 этими значениями пикселей могут быть пиксели E, F, G, H, I и J. Коэффициенты фильтра могут представлять собой, например, целочисленные значения. Примером подобного шеститочечного фильтра является [1 -5 20 20 -5 1]/32. Следовательно, фильтр 1102 примет (шаг 1101) значения пикселей E, F, G, H, I и J и отфильтрует эти значения согласно уравнению P1=(E1-5*F1+20*G1+20*H1-5*I1+J1), где E1 - значение пикселя E в первом опорном блоке, F1 - значение пикселя F в первом опорном блоке, G1 - значение пикселя G в первом опорном блоке, H1 - значение пикселя H в первом опорном блоке, I1 - значение пикселя I в первом опорном блоке, a J1 - значение пикселя J в первом опорном блоке. В блоке 1103, где выполняют введение первого смещения округления, к значению P1 может быть добавлено первое смещение округления, то есть результатом будет P1 + смещение округления. Затем эта сумма может быть сдвинута вправо с помощью первого блока 1104 сдвига таким образом, что точность суммы будет составлять M битов. Точность M больше, чем точность ожидаемого предсказанного значения. Например, значения пикселей и предсказанные значения могут быть представлены N битами, где M>N. В некоторых примерах N равно 8 битов, а M равно 16 битов, однако очевидно, что в настоящем изобретении могут использоваться и другие длины в битах.
Второе предсказание может быть получено аналогичным образом вторым фильтром 1106, который принимает (шаг 1105) часть значений пикселей второго опорного блока. Эти значения пикселей определяют на основе второго вектора движения. Второй вектор движения может указывать на тот же самый пиксель (или дробную часть пикселя) во втором опорном блоке, на который указывает первый вектор движения в первом опорном блоке (в приведенном выше примере этим пикселем будет подпиксель b) или на другой полный пиксель или подпиксель во втором опорном блоке. Второй фильтр 1106 использует фильтр, который аналогичен первом фильтру 1102, и выдает второй результат P2 фильтрации. В соответствии с предыдущим примером этот фильтр представляет собой шеститочечный фильтр [1 -5 20 20 -5 1]/32, при этом P2=(E2-5*F2+20*G2+20*H2-5*I2+J2), где E2 - значение пикселя E во втором опорном блоке, F2 - значение пикселя F во втором опорном блоке, G2 - значение пикселя G во втором опорном блоке, H2 - значение пикселя H во втором опорном блоке, I2 - значение пикселя I во втором опорном блоке, a J2 - значение пикселя J во втором опорном блоке. В блоке 1107, где выполняют введение второго смещения округления, к значению P2 может быть добавлено первое смещение округления, то есть результатом будет P2 + смещение округления. Затем эта сумма может быть сдвинута вправо с помощью второго блока 1108 сдвига таким образом, что точность суммы будет составлять M битов.
В блоке 1109 объединения объединяют два значения P1, P2 предсказания, например путем суммирования, и объединенное значение складывают со вторым значением округления в блоке 1110 введения третьего значения округления. Точность результата уменьшают, например, путем сдвига битов результата вправо на у позиций в третьем блоке 1111 сдвига. Это соответствует делению результата на 2y. После преобразования точность сигнала предсказания соответствует точности входных значений пикселей. Однако промежуточные результаты имеют более высокую точность, поэтому возможные ошибки округления оказывают меньшее влияние на сигнал предсказания, по сравнению с существующими способами, такими, например, как способ, проиллюстрированный на фиг.10.
В одном из альтернативных вариантов осуществления настоящего изобретения смещение округления не складывают отдельно с результатами первого фильтра 1102 и второго фильтра 1106, а выполняют это сложение после объединения результатов в блоке 1110 объединения. В этом случае значение смещения округления равно удвоенному значению первого смещения округления, так как в варианте осуществления настоящего изобретения, показанном на фиг.11, первое смещение округления, фактически, добавляют дважды, один раз к P1, а другой раз к P2.
В некоторых вариантах осуществления настоящего изобретения первый блок 1105 сдвига и второй блок 1109 сдвига не используются, когда точность регистров, хранящих результаты фильтрации является достаточной и не ограничивает точность результатов фильтрации. В этом случае третий блок сдвига должен будет сдвинуть результаты предсказания более чем на у битов вправо, чтобы сдвинутое вправо значение P имело ту же точность, что и входные значения пикселей, например 8 битов.
Некоторые другие примеры осуществления настоящего изобретения могут частично отличаться от примеров, описанных выше. Например, если вектор движения одного из направлений предсказания указывает на целочисленный отсчет, то битовая разрядность отсчетов предсказания с целочисленной точностью может быть увеличена с помощью сдвига этих отсчетов влево таким образом, чтобы выполнять фильтрацию со значениями одной точности.
Отсчеты каждого из направлений предсказания могут округляться на промежуточном шаге до битовой разрядности, которая все еще больше, чем входная битовая разрядность, чтобы обеспечить совпадение всех промежуточных значений с определенной длиной регистров, например с 16-битными регистрами. Например, рассмотрим тот же пример, что и выше, но с использованием следующих точек фильтра: {3, -17, 78, 78, -17, 3}. Тогда P1 и P2 получают следующим образом:
P1=(3*E1-17*F1+78*G1+78*H1-17*I1+3*J1)>>1
P2=(3*E2-17*F2+78*G2+78*H2-17*I2+3*J2)>>1
Сигнал двунаправленного предсказания тогда может быть получен с помощью:
P=(P1+P2+32)>>6.
Когда вектор движения указывает на позицию между двумя целыми пикселями, то есть на дробную часть пикселя, значение для этого опорного пикселя может быть получено несколькими способами. Некоторые из возможностей были описаны выше, однако ниже со ссылками на фиг.12 приведены дополнительные примеры, не ограничивающие изобретение.
Если вектор движения указывает на блок, обозначенный j, то соответствующее значение опорных пикселей может быть получено с использованием целопиксельных значений на той же диагонали, что и j, или с помощью двухэтапной процедуры, в которой, например, значения пикселей строки вокруг блока j используют для вычисления множества промежуточных результатов, а затем эти промежуточные результаты могут фильтроваться для получения значений опорных пикселей. В одном из примеров осуществления настоящего изобретения целопиксельные значения A и B могут использоваться для вычисления первого промежуточного результата, представляющего дробнопиксельное значение aa, целопиксельные значения C и D могут использоваться для вычисления второго промежуточного результата, представляющего дробнопиксельное значение bb, а целопиксельные значения E-J могут использоваться для вычисления третьего промежуточного результата, представляющего дробнопиксельное значение b. Аналогично, четвертое, пятое и шестое промежуточные значения, представляющие дробнопиксельные значения s, gg, hh могут быть вычислены на основе целопиксельных значений K-Q; R, S; и T, U. Эти промежуточные результаты затем могут быть обработаны, например, шеститочечным фильтром.
Сигнал P предсказания, полученный с помощью описанных выше операций, не подлежит передаче в декодер, эта информация используется кодером для получения предсказанных блоков и ошибки предсказания. Ошибка предсказания может предоставляться в декодер, при этом декодер может использовать соответствующие операции для получения предсказанных блоков с помощью предсказания и коррекции результатов предсказания на основе этой ошибки предсказания. Кодер также может представлять в декодер информацию векторов движения.
В одном из примеров осуществления настоящего изобретения в соответствии с фиг.9 битовый поток изображения включает указание на начало 910 изображения, информацию 920 изображения каждого блока изображения и указание на конец 930 изображения. Информация 920 изображения каждого блока изображения может включать указатель 932 типа блока и информацию 933 векторов движения. Очевидно, что битовый поток может включать и другую информацию. В данном примере представлено лишь упрощенное изображение битового потока, и в практических реализациях содержимое битового потока может отличаться от иллюстрации на фиг.9.
Битовый поток затем может кодироваться энтропийным кодером 330.
Хотя рассмотренные выше варианты осуществления настоящего изобретения были описаны на примере макроблоков размером 16×16 пикселей, нужно понимать, что описанные способы и устройство могут быть сконфигурированы для обработки макроблоков различных пиксельных размеров.
Далее на примере фиг.6 более подробно рассмотрена работа одного из примеров осуществления декодера 600.
На стороне декодера выполняют аналогичные операции для реконструкции блоков изображения. На фиг.6 проиллюстрирована схема видеодекодера, подходящего для реализации вариантов осуществления настоящего изобретения, а на фиг.7 проиллюстрирована блок-схема одного из примеров способа, реализуемого в видеодекодере. Декодер содержит энтропийный декодер 600, который выполняет энтропийное декодирование принятого сигнала. Таким образом, энтропийный декодер выполняет операцию, обратную энтропийному кодеру описанного выше кодера. Энтропийный декодер 600 выводит результаты энтропийного декодирования в декодер 602 ошибки предсказания и в модуль 604 предсказания пикселей.
Модуль 604 предсказания пикселей принимает выходные данные энтропийного декодера 600. Выходные данные энтропийного декодера 600 могут включать указанные на режим предсказания, используемый при кодировании текущего блока. Модуль 614 выбора внутри модуля 604 предсказания пикселей определяет, что необходимо выполнять внутреннее предсказание, внешнее предсказание или операцию интерполяции. Модуль выбора модуля предсказания может выводить предсказанное представление блока 616 изображения в первый модуль 613 объединения. Предсказанное представление блока 616 изображения используется вместе с реконструированным сигналом 612 ошибки предсказания для формирования предварительного реконструированного изображения 618. Предварительное реконструированное изображение 618 может использоваться в модуле 614 предсказания или передаваться в фильтр 620. Фильтр 620 осуществляет фильтрацию, после которой выводится окончательный реконструированный сигнал 622. Окончательный реконструированный сигнал 622 может быть сохранен в памяти 624 для опорных кадров, при этом память 624 для опорных кадров связана с модулем 614 предсказания для выполнения операций предсказания.
Декодер 602 ошибки предсказания принимает выходные данные энтропийного декодера 600. Модуль 692 деквантования декодера 602 ошибки предсказания может выполнять деквантование выходных данных энтропийного декодера 600, при этом модуль 693 обратного преобразования может выполнять операцию обратного преобразования над деквантованным сигналом, выводимым модулем 692 деквантования. Выходные данные энтропийного декодера 600 могут также указывать на то, что сигнал ошибки предсказания не должен применяться, в этом случае декодер ошибки предсказания формирует выходной сигнал, состоящий из нулей.
Декодер выбирает разностный макроблок размером 16×16 пикселей для его реконструкции. Выбор восстанавливаемого разностного макроблока размером 16×16 пикселей проиллюстрирован (шаг 700).
Декодер принимает информацию о режиме кодирования, использованном при кодировании текущего блока. Это указание при необходимости декодируют и предоставляют в процессор 691 реконструкции модуля 614 выбора модуля предсказания. Процессор 691 реконструкции анализирует это указание (шаг 701 на фиг.7) и выбирает один из режимов внутреннего предсказания (шаг 703), если это указание указывает на то, что данный блок был кодирован с использованием внутреннего предсказания, или режим внешнего предсказания (шаги 704-711), если это указание указывает на то, что данный блок был кодирован с использованием внешнего предсказания.
Если текущий блок был кодирован с использованием внешнего предсказания, то модуль 604 предсказания пикселей может функционировать следующим образом. Модуль 604 предсказания пикселей принимает информацию векторов движения (шаг 704). Модуль 604 предсказания пикселей также принимает (шаг 705) информацию о типе блока и анализирует, является ли данный блок блоком с двойным предсказанием или нет (шаг 706). Если блок является блоком с двойным предсказанием, то модуль 604 предсказания пикселей анализирует информацию векторов движения для определения, какие опорные кадры и опорный блок в этих опорных кадрах были использованы при формировании этой информации векторов движения. Процессор 619 реконструкции вычисляет (шаг 709) векторы движения и использует значение (дробной части) пикселя из опорных блоков, на которые указывают векторы движения, для получения (шаг 710) предсказания с компенсацией движения, а также объединяет ошибку предсказания с этим значением для получения реконструированного значения пикселя текущего блока (шаг 711).
Если блок является блоком с одинарным предсказанием, то модуль 604 предсказания пикселей анализирует информацию векторов движения для определения того, какой опорный кадр и какой опорный блок в этом опорном кадре был использован для формирования информации векторов движения. Процессор 691 реконструкции вычисляет вектор движения (шаг 707) и использует значения (дробной части) пикселя этого опорного блока, на который указывает вектор движения, для получения (шаг 708) предсказания с компенсацией движения, а также объединяет ошибку предсказания с этим значением для получения реконструированного значения пикселя текущего блока (шаг 711).
В случае когда вектор движения не указывает на целопиксельный отсчет в опорном блоке, процессор 691 реконструкции для получения значений дробных частей пикселей выполняет вычисления с использованием, например, однонаправленной интерполяции или P-точечной фильтрации (например, шеститочечной фильтрации). В сущности, операции могут выполняться аналогичным образом, что и в кодере, то есть с сохранением во время фильтрации значений более высокой точности до тех пор, пока в операции окончательного округления точность не будет понижена до точности входных пикселей. Следовательно, влияние возможных ошибок округления на предсказанные значения может быть не столь велико, как в существующих способах.
Описанные выше процедуры могут повторяться для каждого пикселя текущего блока для получения всех реконструированных значений пикселей текущего блока.
В некоторых вариантах осуществления настоящего изобретения процессор 691 реконструкции для вычисления значений дробных частей пикселей применяет модуль 694 интерполяции.
В некоторых вариантах осуществления настоящего изобретения процессор 691 реконструкции предоставляет значения дробных частей пикселей в модуль 695 предсказания, который объединяет эти значения дробных частей пикселей с ошибкой предсказания для получения реконструированных значений пикселей текущего блока.
В некоторых вариантах осуществления настоящего изобретения упомянутая интерполяция может также выполняться с использованием значений целых пикселей, значений полупикселей и/или четвертей пикселей, который могут храниться в памяти для опорных кадров. Например, кодер или декодер может содержать память для опорных кадров, в которой хранятся целопиксельные отсчеты, значения полупикселей и/или значения четвертей пикселей.
В некоторых вариантах осуществления настоящего изобретения блоки могут быть блоками многонаправленного предсказания, при этом предсказание блока может выполняться на основе более чем двух опорных блоков.
Для лучшего понимания выполняемых процессов в представленных выше вариантах осуществления настоящего изобретения описывается кодек, содержащий отдельные устройства кодирования и декодирования. Однако следует принимать во внимание то, что устройства, структуры и операции могут быть реализованы в виде единого устройства/структуры/операции кодера-декодера. Кроме того, в некоторых вариантах осуществления настоящего изобретения кодер и декодер могут совместно использовать некоторые или все общие элементы.
Хотя в приведенных выше примерах описываются варианты осуществления настоящего изобретения, работающие в рамках кодека внутри электронного устройства, следует принимать во внимание, что изобретение, как будет описано ниже, может быть реализовано как часть любого видеокодека. Таким образом, например, варианты осуществления настоящего изобретения могут быть реализованы в видеокодеке, который может выполнять кодирование видеосигнала, передаваемого по фиксированным или проводным трактам связи.
Таким образом, пользовательское устройство может содержать видеокодек, такой как кодеки, описанные в представленных выше вариантах осуществления настоящего изобретения.
Следует отметить, что термин пользовательское устройство охватывает пользовательское устройство беспроводной связи любого подходящего типа, например, мобильные телефоны, портативные устройства обработки данных или портативные веб-браузеры.
Кроме того, элементы наземной сети мобильной связи общего пользования (PLMN, public land mobile network) также могут содержать описанные выше видеокодеки.
В целом, различные варианты осуществления настоящего изобретения могут быть реализованы в виде аппаратного обеспечения или специализированных схем, программного обеспечения, логических схем или любой комбинации указанных средств. Например, некоторые аспекты могут быть реализованы в виде аппаратных средств, в то время как другие аспекты могут быть реализованы в виде встроенного программного или программного обеспечения, которое может выполняться контроллером, микропроцессором или другим вычислительным устройством, хотя изобретение не ограничено перечисленными средствами. Хотя различные аспекты настоящего изобретения могут быть проиллюстрированы и описаны в виде структурных схем, блок-схем или с использованием некоторых других графических представлений, очевидно, что описанные здесь блоки, устройства, системы, методы или способы могут быть реализованы, не ограничиваясь приведенными примерами, в виде аппаратного, программного, встроенного программного обеспечения, специализированных схем или логических схем, универсальных аппаратных средств или контроллера или других вычислительных устройств, или некоторой их комбинации.
Варианты изобретения могут быть реализованы с помощью компьютерного программного обеспечения, выполняемого процессором данных мобильного устройства, например блоком процессора, или с помощью аппаратного обеспечения, или комбинации программного и аппаратного обеспечения. Кроме того, в этом отношении следует отметить, что любые показанные на чертежах блоки логических алгоритмов могут представлять собой шаги программы или взаимосвязанные логические схемы, блоки и функции, или комбинацию шагов программы и логических схем, блоков и функций. Упомянутое программное обеспечение может храниться на физических носителях, таких как микросхемы памяти или блоки памяти, реализованные внутри процессора, магнитные носители, например жесткий диск или гибкий диск, и оптические носители, например DVD и их варианты для хранения данных, CD.
Блоки памяти могут быть любого типа, подходящего к локальной технической среде, и могут быть реализованы с использованием любых подходящих технологий хранения данных и представлять собой, например, устройства полупроводниковой памяти, устройства и системы магнитной памяти, устройства и системы оптической памяти, несъемную и съемную память. Процессоры данных могут быть любого типа, подходящего для локальной технической среды, и могут включать в качестве не ограничивающих изобретение примеров один или более универсальных компьютеров, специализированных компьютеров, микропроцессоров, цифровых сигнальных процессоров (DSP, digital signal processor) и процессоров на основе многоядерной архитектуры.
Варианты осуществления настоящего изобретения могут быть выполнены в виде различных компонентов, таких как модули интегральных схем. В целом, конструирование интегральных схем является высокоавтоматизированным процессом. Имеются комплексные и эффективные программные средства для преобразования разработки логического уровня в полупроводниковую схему, подготовленную для травления и формирования полупроводниковой основы.
Программы, производимые, например, компаниями Synopsys, Inc., Маунтин Вью, Калифорния, и Cadence Design, Сан Хосе, Калифорния, автоматически разводят проводники и размещают компоненты на полупроводниковом кристалле с использованием установленных правил разработки, а также библиотек заранее сохраненных модулей разработки. По окончании разработки полупроводниковой схемы полученный в результате проект в стандартизованном электронном формате (например, Opus, GDSII и т.п.) может быть передан на производство полупроводникового устройства для изготовления.
Приведенное описание является полным и информативным описанием вариантов осуществления настоящего изобретения, представленных в качестве примеров, не ограничивающих изобретение. Из описания, приложенных чертежей и формулы изобретения специалисту могут быть очевидны различные модификации и адаптации изобретения. Однако все такие модификации изобретения остаются в пределах сущности настоящего изобретения.
В соответствии с первым вариантом осуществления настоящего изобретения способ включает:
определение блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
определение типа упомянутого блока;
если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
определение первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
использование упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
использование упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
объединение упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
понижение точности упомянутого объединенного предсказания до упомянутой первой точности.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения в упомянутое первое предсказание и упомянутое второе предсказание вводят первое смещение округления.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения точность упомянутого первого предсказания и упомянутого второго предсказания понижают до промежуточной точности предсказания после добавления упомянутого первого смещения округления, при этом упомянутая промежуточная точность предсказания выше, чем упомянутая первая точность.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения в упомянутое объединенное предсказание вводят второе смещение округления перед упомянутым понижением точности.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения упомянутый тип блока представляет собой двунаправленный блок.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения упомянутый тип блока представляет собой многонаправленный блок.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения упомянутое первое смещение округления равно 2y, при этом упомянутое понижение точности включает сдвиг вправо упомянутого объединенного предсказания на y+1 битов.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения упомянутая первая точность составляет 8 битов.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения значение у равно 5.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения упомянутое первое предсказание и упомянутое второе предсказание получают путем фильтрации значений пикселей упомянутых опорных блоков.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения упомянутую фильтрацию выполняют с помощью P-точечного фильтра.
В соответствии со вторым вариантом осуществления настоящего изобретения устройство содержит:
процессор и
блок памяти, функционально связанный с упомянутым процессором и содержащий:
компьютерный код, сконфигурированный для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
компьютерный код, сконфигурированный для определения типа упомянутого блока;
компьютерный код, сконфигурированный, если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения компьютерный код также сконфигурирован для введения первого смещения округления в упомянутое первое предсказание и упомянутое второе предсказание.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутый компьютерный код также сконфигурирован для понижения точности упомянутого первого предсказания и упомянутого второго предсказания до промежуточной точности предсказания после добавления упомянутого первого смещения округления, при этом упомянутая промежуточная точность предсказания выше, чем упомянутая первая точность.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутый компьютерный код также сконфигурирован для введения второго смещения округления в упомянутое объединенное предсказание перед упомянутым понижением точности.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутый тип блока представляет собой двунаправленный блок.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутый тип блока представляет собой многонаправленный блок.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутое первое смещение округления равно 2y, при этом упомянутое понижение точности включает сдвиг вправо упомянутого объединенного предсказания на y+1 битов.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутая первая точность составляет 8 битов.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения значение у равно 5.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутый компьютерный код также сконфигурирован для получения упомянутого первого предсказания и упомянутого второго предсказания путем фильтрации значений пикселей упомянутых опорных блоков.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутая фильтрация включает P-точечный фильтр.
В соответствии с третьим аспектом настоящего изобретения предлагается машиночитаемый носитель для хранения данных с хранимым на нем кодом для использования устройством, который при исполнении процессором обеспечивает выполнение упомянутым устройством следующего:
определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
определения типа упомянутого блока;
если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии с четвертым аспектом настоящего изобретения предлагается по меньшей мере один процессор и по меньшей мере одна память, в которой хранится код, который при исполнении упомянутым по меньшей мере одним процессором обеспечивает выполнение устройством следующего:
определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
определения типа упомянутого блока;
если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии с некоторыми примерами осуществления настоящего изобретения упомянутое устройство представляет собой кодер.
В соответствии с некоторыми примерами осуществления настоящего изобретения упомянутое устройство представляет собой декодер.
В соответствии с пятым аспектом настоящего изобретения устройство содержит:
входной модуль для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
модуль определения для определения типа упомянутого блока; при этом, если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков, то упомянутый модуль определения сконфигурирован также для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
первый модуль предсказания для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
второй модуль предсказания для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
модуль объединения для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
модуль сдвига для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии с шестым аспектом настоящего изобретения устройство содержит:
средство для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
средство для определения типа упомянутого блока;
средство для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке, если упомянутое определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков;
средство для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
средство для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
средство для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
средство для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.

Claims (23)

1. Способ предсказания с компенсацией движения при видеокодировании, включающий:
определение блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность сигнала предсказания, при этом упомянутая первая точность указывает количество битов, необходимых для представления значений упомянутых пикселей;
определение типа предсказания упомянутого блока;
если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
определение первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
использование упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность сигнала предсказания, которая выше, чем упомянутая первая точность, при этом упомянутая вторая точность указывает количество битов, необходимых для представления значений упомянутого первого предсказания и значений упомянутого второго предсказания;
использование упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
объединение первого предсказания и второго предсказания для получения объединенного предсказания путем суммирования упомянутого первого предсказания и упомянутого второго предсказания; и
понижение точности упомянутого объединенного предсказания до упомянутой первой точности.
2. Способ по п. 1, также включающий введение первого смещения округления в упомянутое первое предсказание и упомянутое второе предсказание.
3. Способ по п. 2, также включающий понижение точности упомянутого первого предсказания и упомянутого второго предсказания до промежуточной точности предсказания после добавления упомянутого первого смещения округления, при этом упомянутая промежуточная точность предсказания выше, чем упомянутая первая точность.
4. Способ по п. 2 или 3, также включающий введение второго смещения округления в упомянутое объединенное предсказание перед упомянутым понижением точности.
5. Способ по любому из пп. 1-3, в котором упомянутый тип предсказания блока представляет собой двунаправленный блок.
6. Способ по любому из пп. 1-3, в котором упомянутый тип предсказания блока представляет собой многонаправленный блок.
7. Способ по п. 2, в котором упомянутое первое смещение округления равно 2y, при этом упомянутое понижение точности включает сдвиг вправо упомянутого объединенного предсказания на у+1 битов, при этом у представляет позиции сдвига битов.
8. Способ по любому из пп. 1-3, в котором упомянутая первая точность составляет 8 битов.
9. Способ по п. 7, в котором значение у равно 5.
10. Способ по любому из пп. 1-3, также включающий получение упомянутого первого предсказания и упомянутого второго предсказания путем фильтрации значений пикселей упомянутых опорных блоков.
11. Способ по п. 10, также включающий выполнение упомянутой фильтрации с помощью Р-точечного фильтра.
12. Устройство для предсказания с компенсацией движения при видеокодировании, содержащее:
средство для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность сигнала предсказания, при этом упомянутая первая точность указывает количество битов, необходимых для представления значений упомянутых пикселей;
средство для определения типа предсказания упомянутого блока;
средство для вычисления предсказания с компенсацией движения для блока пикселей, включающее, если упомянутое определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков;
средство для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
средство для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность сигнала предсказания, которая выше, чем упомянутая первая точность, при этом упомянутая вторая точность указывает количество битов, необходимых для представления значений упомянутого первого предсказания и значений упомянутого второго предсказания;
средство для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
средство для объединения первого предсказания и второго предсказания для получения объединенного предсказания путем суммирования упомянутого первого предсказания и упомянутого второго предсказания; и
средство для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
13. Устройство по п. 12, также содержащее средство для введения первого смещения округления в упомянутое первое предсказание и упомянутое второе предсказание.
14. Устройство по п. 13, также содержащее средство для понижения точности упомянутого первого предсказания и упомянутого второго предсказания до промежуточной точности предсказания после добавления упомянутого первого смещения округления, при этом упомянутая промежуточная точность предсказания выше, чем упомянутая первая точность.
15. Устройство по п. 13 или 14, также содержащее средство для введения второго смещения округления в упомянутое объединенное предсказание перед упомянутым понижением точности.
16. Устройство по любому из пп. 12-14, в котором упомянутый тип предсказания блока представляет собой двунаправленный блок.
17. Устройство по любому из пп. 12-14, в котором упомянутый тип предсказания блока представляет собой многонаправленный блок.
18. Устройство по п. 13, в котором упомянутое первое смещение округления равно 2y, при этом упомянутое понижение точности включает сдвиг вправо упомянутого объединенного предсказания на у+1 битов, при этом у представляет позиции сдвига битов.
19. Устройство по любому из пп. 12-14, в котором упомянутая первая точность составляет 8 битов.
20. Устройство по п. 18, в котором значение у равно 5.
21. Устройство по любому из пп. 12-14, также содержащее средство для получения упомянутого первого предсказания; и
упомянутого второго предсказания путем фильтрации значений пикселей упомянутых опорных блоков.
22. Устройство по п. 21, в котором упомянутая фильтрация включает Р-точечный фильтр.
23. Машиночитаемый носитель с хранимым на нем кодом для использования устройством, который при исполнении процессором обеспечивает выполнение упомянутым устройством способа по любому из пп. 1-11.
RU2013136693/08A 2011-01-07 2012-01-06 Предсказание движения при видеокодировании RU2565363C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161430694P 2011-01-07 2011-01-07
US61/430,694 2011-01-07
PCT/IB2012/050089 WO2012093377A1 (en) 2011-01-07 2012-01-06 Motion prediction in video coding

Publications (2)

Publication Number Publication Date
RU2013136693A RU2013136693A (ru) 2015-02-20
RU2565363C2 true RU2565363C2 (ru) 2015-10-20

Family

ID=46457280

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013136693/08A RU2565363C2 (ru) 2011-01-07 2012-01-06 Предсказание движения при видеокодировании

Country Status (8)

Country Link
US (7) US9432693B2 (ru)
EP (3) EP4099700A1 (ru)
KR (1) KR20130099242A (ru)
CN (1) CN103503458B (ru)
ES (1) ES2922238T3 (ru)
PL (1) PL2661892T3 (ru)
RU (1) RU2565363C2 (ru)
WO (1) WO2012093377A1 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2763042C2 (ru) * 2017-07-03 2021-12-27 Вид Скейл, Инк. Прогнозирование компенсации движения на основе двунаправленного оптического потока
US11575933B2 (en) 2018-04-06 2023-02-07 Vid Scale, Inc. Bi-directional optical flow method with simplified gradient derivation

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL2658263T3 (pl) * 2010-12-22 2023-03-13 Lg Electronics Inc. Sposób predykcji wewnątrzramkowej i urządzenie wykorzystujące ten sposób
KR20130099242A (ko) 2011-01-07 2013-09-05 노키아 코포레이션 비디오 코딩의 움직임 예측
JP2013098899A (ja) * 2011-11-04 2013-05-20 Sony Corp 符号化装置および符号化方法、並びに、復号装置および復号方法
US9641836B2 (en) * 2012-08-07 2017-05-02 Qualcomm Incorporated Weighted difference prediction under the framework of generalized residual prediction
US20140119446A1 (en) * 2012-11-01 2014-05-01 Microsoft Corporation Preserving rounding errors in video coding
US9185437B2 (en) 2012-11-01 2015-11-10 Microsoft Technology Licensing, Llc Video data
US9762920B2 (en) * 2013-06-07 2017-09-12 Qualcomm Incorporated Dynamic range control of intermediate data in resampling process
US9936203B2 (en) * 2015-04-13 2018-04-03 Qualcomm Incorporated Complex region detection for display stream compression
US10244255B2 (en) 2015-04-13 2019-03-26 Qualcomm Incorporated Rate-constrained fallback mode for display stream compression
US10356428B2 (en) 2015-04-13 2019-07-16 Qualcomm Incorporated Quantization parameter (QP) update classification for display stream compression (DSC)
US10284849B2 (en) 2015-04-13 2019-05-07 Qualcomm Incorporated Quantization parameter (QP) calculation for display stream compression (DSC) based on complexity measure
CN107925760A (zh) * 2015-08-23 2018-04-17 Lg 电子株式会社 基于间预测模式的图像处理方法及其装置
KR102390162B1 (ko) * 2015-10-16 2022-04-22 삼성전자주식회사 데이터 인코딩 장치 및 데이터 인코딩 방법
WO2017094298A1 (ja) * 2015-12-04 2017-06-08 ソニー株式会社 画像処理装置、画像処理方法及びプログラム
EP3484159A4 (en) * 2016-07-05 2019-12-04 KT Corporation METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNAL
BR112019005678B1 (pt) * 2016-09-30 2023-12-12 Huawei Technologies Co., Ltd Método e aparelho para codificação e decodificação de imagem através de interpredição
CN107959855B (zh) * 2016-10-16 2020-02-14 华为技术有限公司 运动补偿预测方法和设备
US10362332B2 (en) * 2017-03-14 2019-07-23 Google Llc Multi-level compound prediction
CN109756739B (zh) * 2017-11-07 2022-09-02 华为技术有限公司 图像预测方法和装置
CN109996080B (zh) * 2017-12-31 2023-01-06 华为技术有限公司 图像的预测方法、装置及编解码器
CN111050176B (zh) * 2018-10-15 2021-10-15 腾讯科技(深圳)有限公司 视频编码、视频解码方法、装置、计算机设备和存储介质
CN113302938A (zh) * 2019-01-11 2021-08-24 北京字节跳动网络技术有限公司 整数mv运动补偿
CN112954334A (zh) * 2019-03-11 2021-06-11 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
EP3953561A1 (en) 2019-04-10 2022-02-16 Paul Bernard Lee Downhole cleaning apparatus

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6512523B1 (en) * 2000-03-27 2003-01-28 Intel Corporation Accurate averaging of elements using integer averaging
US6539058B1 (en) * 1998-04-13 2003-03-25 Hitachi America, Ltd. Methods and apparatus for reducing drift due to averaging in reduced resolution video decoders
RU2004103743A (ru) * 2001-07-10 2005-06-10 Конинклейке Филипс Электроникс Н.В. (Nl) Способ и устройство для генерации масштабируемого кодированного видеосингнала из немасштабируемого кодированного видеосигнала
US20090257503A1 (en) * 2008-04-10 2009-10-15 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding
RU2008138706A (ru) * 2006-03-30 2010-04-10 Кабусики Кайся Тосиба (Jp) Устройство и способ кодирования изображений и устройство и способ декодирования изображений

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998042134A1 (en) 1997-03-17 1998-09-24 Mitsubishi Denki Kabushiki Kaisha Image encoder, image decoder, image encoding method, image decoding method and image encoding/decoding system
US6950469B2 (en) 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
US7620109B2 (en) 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
JP2005167976A (ja) * 2003-11-14 2005-06-23 Victor Co Of Japan Ltd 動きベクトル検出装置及び動きベクトル検出プログラム
EP1578137A2 (en) 2004-03-17 2005-09-21 Matsushita Electric Industrial Co., Ltd. Moving picture coding apparatus with multistep interpolation process
US8284835B2 (en) 2004-04-21 2012-10-09 Panasonic Corporation Motion compensating apparatus
US7580456B2 (en) 2005-03-01 2009-08-25 Microsoft Corporation Prediction-based directional fractional pixel motion estimation for video coding
KR100703770B1 (ko) 2005-03-25 2007-04-06 삼성전자주식회사 가중 예측을 이용한 비디오 코딩 및 디코딩 방법, 이를위한 장치
RU2369038C1 (ru) 2005-11-30 2009-09-27 Кабусики Кайся Тосиба Способ кодирования изображения/декодирования изображения, устройство кодирования изображения/декодирования изображения
US8498336B2 (en) 2006-02-02 2013-07-30 Thomson Licensing Method and apparatus for adaptive weight selection for motion compensated prediction
US9307122B2 (en) 2006-09-27 2016-04-05 Core Wireless Licensing S.A.R.L. Method, apparatus, and computer program product for providing motion estimation for video encoding
US9014280B2 (en) 2006-10-13 2015-04-21 Qualcomm Incorporated Video coding with adaptive filtering for motion compensated prediction
CN100551073C (zh) 2006-12-05 2009-10-14 华为技术有限公司 编解码方法及装置、分像素插值处理方法及装置
US8488668B2 (en) 2007-06-15 2013-07-16 Qualcomm Incorporated Adaptive coefficient scanning for video coding
KR101403343B1 (ko) 2007-10-04 2014-06-09 삼성전자주식회사 부화소 움직임 추정을 이용한 인터 예측 부호화, 복호화방법 및 장치
WO2009088038A1 (ja) 2008-01-09 2009-07-16 Mitsubishi Electric Corporation 画像符号化装置、画像復号装置、画像符号化方法、および画像復号方法
EP2101504B1 (en) 2008-03-09 2012-07-25 LG Electronics Inc. Video coding using template matching
US20090257499A1 (en) 2008-04-10 2009-10-15 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding
AU2009264603A1 (en) 2008-06-30 2010-01-07 Kabushiki Kaisha Toshiba Dynamic image prediction/encoding device and dynamic image prediction/decoding device
US8811484B2 (en) * 2008-07-07 2014-08-19 Qualcomm Incorporated Video encoding by filter selection
US8750378B2 (en) 2008-09-23 2014-06-10 Qualcomm Incorporated Offset calculation in switched interpolation filters
US9078007B2 (en) * 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
US8831087B2 (en) * 2008-10-06 2014-09-09 Qualcomm Incorporated Efficient prediction mode selection
US8995526B2 (en) 2009-07-09 2015-03-31 Qualcomm Incorporated Different weights for uni-directional prediction and bi-directional prediction in video coding
US9161057B2 (en) 2009-07-09 2015-10-13 Qualcomm Incorporated Non-zero rounding and prediction mode selection techniques in video encoding
WO2011086672A1 (ja) 2010-01-13 2011-07-21 株式会社 東芝 動画像符号化装置および復号装置
US9369712B2 (en) * 2010-01-14 2016-06-14 Dolby Laboratories Licensing Corporation Buffered adaptive filters
US20110200108A1 (en) 2010-02-18 2011-08-18 Qualcomm Incorporated Chrominance high precision motion filtering for motion interpolation
US9237355B2 (en) 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
KR101682147B1 (ko) 2010-04-05 2016-12-05 삼성전자주식회사 변환 및 역변환에 기초한 보간 방법 및 장치
KR101847072B1 (ko) 2010-04-05 2018-04-09 삼성전자주식회사 영상 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US8660174B2 (en) 2010-06-15 2014-02-25 Mediatek Inc. Apparatus and method of adaptive offset for video coding
US20120051431A1 (en) 2010-08-25 2012-03-01 Qualcomm Incorporated Motion direction based adaptive motion vector resolution signaling for video coding
US20120063515A1 (en) 2010-09-09 2012-03-15 Qualcomm Incorporated Efficient Coding of Video Parameters for Weighted Motion Compensated Prediction in Video Coding
KR20130099242A (ko) 2011-01-07 2013-09-05 노키아 코포레이션 비디오 코딩의 움직임 예측

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539058B1 (en) * 1998-04-13 2003-03-25 Hitachi America, Ltd. Methods and apparatus for reducing drift due to averaging in reduced resolution video decoders
US6512523B1 (en) * 2000-03-27 2003-01-28 Intel Corporation Accurate averaging of elements using integer averaging
RU2004103743A (ru) * 2001-07-10 2005-06-10 Конинклейке Филипс Электроникс Н.В. (Nl) Способ и устройство для генерации масштабируемого кодированного видеосингнала из немасштабируемого кодированного видеосигнала
RU2008138706A (ru) * 2006-03-30 2010-04-10 Кабусики Кайся Тосиба (Jp) Устройство и способ кодирования изображений и устройство и способ декодирования изображений
US20090257503A1 (en) * 2008-04-10 2009-10-15 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2763042C2 (ru) * 2017-07-03 2021-12-27 Вид Скейл, Инк. Прогнозирование компенсации движения на основе двунаправленного оптического потока
US11363293B2 (en) 2017-07-03 2022-06-14 Vid Scale, Inc. Motion-compensation prediction based on bi-directional optical flow
US11575933B2 (en) 2018-04-06 2023-02-07 Vid Scale, Inc. Bi-directional optical flow method with simplified gradient derivation

Also Published As

Publication number Publication date
WO2012093377A1 (en) 2012-07-12
CN103503458A (zh) 2014-01-08
EP4250732C0 (en) 2024-03-20
CN103503458B (zh) 2017-09-22
PL2661892T3 (pl) 2022-08-16
EP4250732A3 (en) 2023-10-25
US20200137407A1 (en) 2020-04-30
KR20130099242A (ko) 2013-09-05
EP4250732A2 (en) 2023-09-27
EP2661892A1 (en) 2013-11-13
US9432693B2 (en) 2016-08-30
US20170223373A1 (en) 2017-08-03
ES2922238T3 (es) 2022-09-12
US20240064326A1 (en) 2024-02-22
US10523960B2 (en) 2019-12-31
US9877037B2 (en) 2018-01-23
RU2013136693A (ru) 2015-02-20
US11805267B2 (en) 2023-10-31
EP4099700A1 (en) 2022-12-07
US20210281869A1 (en) 2021-09-09
US9628816B2 (en) 2017-04-18
US11019354B2 (en) 2021-05-25
EP2661892B1 (en) 2022-05-18
US20120189057A1 (en) 2012-07-26
EP2661892A4 (en) 2016-06-08
US20180146207A1 (en) 2018-05-24
EP4250732B1 (en) 2024-03-20
US20170054998A1 (en) 2017-02-23

Similar Documents

Publication Publication Date Title
RU2565363C2 (ru) Предсказание движения при видеокодировании
US11368700B2 (en) Apparatus, a method and a computer program for video coding
US8724692B2 (en) Apparatus, a method and a computer program for video coding
US8848801B2 (en) Apparatus, a method and a computer program for video processing
US9280835B2 (en) Method for coding and an apparatus based on a DC prediction value
US20120243606A1 (en) Methods, apparatuses and computer programs for video coding
US9432699B2 (en) Methods, apparatuses and computer programs for video coding

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20160602