EA045634B1 - Кодирование видео и декодирование видео - Google Patents
Кодирование видео и декодирование видео Download PDFInfo
- Publication number
- EA045634B1 EA045634B1 EA202191670 EA045634B1 EA 045634 B1 EA045634 B1 EA 045634B1 EA 202191670 EA202191670 EA 202191670 EA 045634 B1 EA045634 B1 EA 045634B1
- Authority
- EA
- Eurasian Patent Office
- Prior art keywords
- prediction
- intra
- block
- candidates
- motion
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 40
- 230000033001 locomotion Effects 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 22
- 230000009466 transformation Effects 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims description 2
- 238000010276 construction Methods 0.000 claims 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims 1
- 238000013507 mapping Methods 0.000 claims 1
- 238000012986 modification Methods 0.000 claims 1
- 230000004048 modification Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 7
- 230000004927 fusion Effects 0.000 description 7
- 239000013598 vector Substances 0.000 description 7
- 238000013459 approach Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 238000012887 quadratic function Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Description
Область техники
Изобретение относится к кодированию видео и декодированию видео.
Предшествующий уровень техники
Сжатие видео обеспечивает возможности уменьшения полезной нагрузки в канале передачи. Известные стандарты кодирования видео позволяют передавать данные битового потока, определяющие видео, так что приемник битового потока способен декодировать битовый поток таким образом, чтобы сформировать декодированное видео, которое, по существу, точно представляет исходное видео, из которого был получен закодированный битовый поток.
Ранние стандарты кодирования видео были разработаны в расчете на воспроизведение видео на оборудовании, где восстановление с относительно низким или средним качеством является приемлемым. Это включает в себя портативные устройства или персональные вычислительные устройства. В большой степени, приемлемость конкретных уровней качества в значительной степени определяется потребностями пользователя в зависимости от возможностей оборудования воспроизведения.
По мере того как приемное оборудование совершенствуется по качеству и функциональным возможностям, повышаются и потребности пользователя в более высококачественном воспроизведении исходного видео. Таким образом, техническая задача заключается в обеспечении возможности воспроизведения видео на проигрывателе с более высоким качеством, чем было реализовано до сих пор.
Описание чертежей
Фиг. 1 является иллюстративным примером кадра, подлежащего кодированию, передаче и декодированию посредством вариантов осуществления, раскрытых в настоящем документе.
Фиг. 2 является иллюстративным примером опорного кадра, на основе которого должен кодироваться кадр, показанный на фиг. 1.
Фиг. 3 является иллюстративным примером блока кадра согласно фиг. 1, подлежащего кодированию, передаче и декодированию посредством вариантов осуществления, раскрытых в настоящем документе.
Фиг. 4 является иллюстративным примером кандидата интер-предсказания для блока на фиг. 3.
Фиг. 5 является иллюстративным примером кандидата интра-предсказания для блока на фиг. 3.
Фиг. 6 является схематичным представлением сети связи в соответствии с вариантом осуществления.
Фиг. 7 является схематичным представлением излучателя (передатчика) сети связи согласно фиг. 6.
Фиг. 8 является схемой, иллюстрирующей кодер, реализованный в излучателе согласно фиг. 7.
Фиг. 9 является блок-схемой процесса предсказания, выполняемого в модуле предсказания кодера согласно фиг. 8.
Фиг. 10 является схематичным представлением приемника сети связи согласно фиг. 6.
Фиг. 11 является схемой, иллюстрирующей декодер, реализованный в приемнике согласно фиг. 10; и
Фиг. 12 является блок-схемой процесса предсказания, выполняемого модулем предсказания декодера согласно фиг. 8.
Описание вариантов осуществления
В общих чертах, варианты осуществления, раскрытые в настоящем документе, обеспечивают эффективное предсказание выборок в блоке в кодере и декодере видео посредством вычисления как интерпредсказанной гипотезы предсказания, так и интра-предсказанной гипотезы предсказания. Две гипотезы предсказания затем комбинируются вместе посредством параметрического преобразования для формирования новой гипотезы предсказания, которая может быть более точной в предсказании содержимого исходного блока. Информация может предоставляться в декодер для обеспечения возможности определения параметрического преобразования для использования.
Согласно одному варианту осуществления, способ кодирования блока пикселов в изображении последовательного множества изображений содержит:
вычисление набора кандидатов интер-предсказания с компенсацией движения для блока пикселов на основе опорного изображения в последовательном множестве изображений;
вычисление набора кандидатов интра-предсказания для блока пикселов на основе предопределенного набора режимов интра-предсказания;
компоновку набора комбинаций упомянутых кандидатов интер-предсказания с компенсацией движения и кандидатов интра-предсказания;
определение, для множества наборов параметров, причем каждый набор параметров конфигурирует параметрическое преобразование одного из кандидата интерпредсказания с компенсацией движения и одного из кандидатов интра-предсказания, комбинированного предсказания для каждой комбинации упомянутых кандидатов интерпредсказания с компенсацией движения и кандидатов интра-предсказания;
оценивание каждого комбинированного предсказания относительно измерения;
выбор одного из комбинированных предсказаний на основе измерения в качестве кодирования блока пикселов.
Другой вариант осуществления обеспечивает кодер, сконфигурированный для выполнения выше- 1 045634 описанного процесса кодирования. Кодер может быть включен в подходящее устройство обработки сигналов.
Согласно другому варианту осуществления, способ декодирования битового потока содержит:
извлечение из битового потока информации конфигурации предиктора движения и, на основе информации конфигурации предиктора движения, вычисление одного или более кандидатов интерпредсказания с компенсацией движения для блока выборок;
извлечение из битового потока информации конфигурации интра-предсказания и, на основе информации конфигурации интра-предсказания, вычисление одного или более кандидатов интрапредсказания, при этом кандидаты интра-предсказания получены посредством процесса интрапредсказания для блока выборок;
извлечение из битового потока информации конфигурации параметрического преобразования, обеспечивающей возможность определения параметров для параметрического преобразования одного или более кандидатов интер-предсказания с компенсацией движения и одного или более кандидатов интра-предсказания;
определение параметров параметрического преобразования на основе информации конфигурации параметрического преобразования; и вычисление комбинированного преобразованного предсказания для упомянутого блока выборок посредством параметрического преобразования одного или более кандидатов интер-предсказания с компенсацией движения и одного или более кандидатов интра-предсказания, причем параметрическое преобразование управляется параметрами параметрического преобразования.
Другой вариант осуществления обеспечивает декодер, сконфигурированный для выполнения вышеописанного процесса декодирования. Декодер может быть включен в подходящее устройство приема сигналов.
Другой вариант осуществления предоставляет компьютерный программный продукт, содержащий исполняемые компьютером инструкции, действующие для конфигурирования компьютерного устройства для выполнения способа, как описано выше.
Как будет понятно читающему, представление видео обычно содержит множество кадров, для последовательного отображения на оборудовании воспроизведения. Различные стратегии используются для уменьшения объема данных, требуемых для описания каждого кадра по очереди в битовом потоке, передаваемом по каналу связи от излучателя (передатчика) к приемнику. Как будет понятно, излучатель будет содержать кодер для кодирования данных кадра в битовый поток, а приемник будет содержать декодер для генерации данных кадра на основе информации, содержащейся в битовом потоке.
В вариантах осуществления настоящего раскрытия, каждый кадр представления видео разбит на блоки. В кодере, содержимое блока предсказывается на основании ранее сжатого содержимого. Это предсказание блока вычитается из фактического блока, приводя в результате к набору остаточных разностей (остатков). В одном варианте осуществления, остаточные данные могут быть закодированы с использованием преобразования в частотную область. Однако должно быть понятно, что преобразование данных из временной области в частотную область может быть специфическим для некоторых реализаций и не является существенным для выполнения раскрытых вариантов осуществления.
Остатки, будь то преобразованные или нет, могут быть затем масштабированы для обеспечения дальнейшей обработки.
Квантованные остатки затем кодируются с использованием энтропийного кодера в набор коэффициентов, которые помещаются в битовый поток с предсказанием блока. Различные технические стандарты обычно определяют структуру сигнала для битового потока и синтаксис для организации информации наряду с идентификацией предсказания блока, так что декодер может надежно извлечь коэффициенты для декодирования.
Декодер сконфигурирован, чтобы принимать битовый поток. В общем, декодер сконфигурирован, чтобы ожидать битовый поток, организованный в соответствии с предопределенной синтаксической структурой, так что данные могут быть извлечены предсказуемо и надежно. Такая синтаксическая структура может быть совместно согласованной, например, в соответствии с техническим стандартом. Альтернативно, синтаксическая структура может быть определена конкретным изготовителем или другим участником.
Декодер согласно варианту осуществления извлекает коэффициенты из битового потока. Эти коэффициенты декодируются для получения декодированных данных. Декодированные данные затем обратно квантуются. Может существовать опция, чтобы специфицировать, следует ли или нет использовать преобразование области на принятом битовом потоке. Если преобразование области специфицировано, то обратно квантованные данные обратно преобразуются для получения восстановленных остатков. Информация о том, как вычислять блок предсказания, также извлекается из битового потока и декодируется; затем она используется для формирования блока предсказания с использованием ранее восстановленных данных. Восстановленные остатки затем суммируются со сформированным блоком предсказания для получения восстановленного блока.
Должно быть понятно, что, в начале передачи, может потребоваться передать полный блок данных,
- 2 045634 представляющий полный кадр представления видео, без обращения к любому другому кадру. Все последующие основанные на предсказании данные затем могут быть получены из начальных условий, установленных таким опорным кадром. Опорные кадры могут быть постоянными для кодирования и декодирования всего представления видео, или могут быть обновляемыми. Например, изменение сцены может предписывать обновление опорного кадра, поскольку кадры новой сцены могут иметь мало сходства или не напоминать ранее установленный опорный кадр. Даже в пределах сцены, кадры могут различаться в достаточной степени, уменьшая эффективность кодирования относительно опорного кадра по сравнению с кодированием и передачей обновленного опорного кадра.
Следует отметить, что опорный кадр, для конкретного рассматриваемого кадра, не обязательно должен быть перед рассматриваемым кадром в последовательности представления видео. Опорный кадр может быть в будущем относительно рассматриваемого кадра.
Опорные кадры могут быть сжаты и переданы отдельно от кодированных параметров, из которых могут быть сформированы предсказания. Опорные кадры могут быть проиндексированы, так что опорный кадр, подлежащий использованию в формировании конкретного блока предсказания, может быть указан в битовом потоке.
Варианты осуществления, описанные в настоящем документе, относятся к процессу формирования блока предсказания. В традиционных схемах кодирования видео используются интра-предсказание или интер-предсказание. Способы интра-предсказания включают в себя вычисление предсказания с использованием ранее сжатого содержимого, извлеченного из того же самого кадра, что и текущий предсказываемый блок. Напротив, способы интер-предсказания включают в себя предсказание содержимого блока исходных выборок с использованием ранее сжатых частей сигнала видео, извлеченного из ранее сжатых кадров.
Система обозначений, используемая для описания разбиений кадров, разнообразна. Например, в HEVC, термин слайс используется для описания разбиения кадра - слайс может содержать множество блоков. Терминология, используемая для описания разбиений кадров в настоящем раскрытии, не подразумевает конкретную применимость настоящих вариантов осуществления к конкретной стандартизованной технологии и не предполагает исключения из применимости к другой стандартизованной технологии с использованием других терминов для аналогичных концепций.
В общих чертах, аспекты настоящего раскрытия относятся к способу эффективного предсказания выборок в пределах блока в кодере и декодере видео посредством вычисления как интер-предсказанной гипотезы предсказания, так и интра-предсказанной гипотезы предсказания. Две гипотезы предсказания затем комбинируются вместе для формирования новой гипотезы предсказания, которая может быть более точной в предсказании содержимого исходного блока.
Вариант осуществления предусматривает способ комбинирования двух гипотез предсказания, на основе алгоритма комбинирования. Алгоритм комбинирования может быть предварительно установлен в приемнике. Алгоритм комбинирования может быть специфицирован с использованием информации, передаваемой в приемник. Приемник может хранить библиотеку алгоритмов комбинирования и может выбирать и использовать один из этих сохраненных алгоритмов на основе информации, извлеченной из принятого битового потока.
Одним из подходов к комбинированию с помощью алгоритма комбинирования является использование взвешенного среднего. Это может быть взвешенным арифметическим средним двух гипотез предсказания. Веса, которые должны использоваться во взвешенном среднем, могут быть предварительно установлены, или параметры могут передаваться в битовом потоке в приемник для обеспечения возможности вычисления, определения или выбора весов, которые должны использоваться.
В варианте осуществления, информация в битовом потоке может содержать значения весов, которые должны использоваться во взвешенном среднем.
В одном варианте осуществления, информация в битовом потоке может содержать параметр выбора веса, на основе которого приемник может реагировать для выбора конкретного одного из множества предварительно сохраненных весов. Должно быть понятно, что, для взвешенного арифметического среднего двух гипотез предсказания, одно значение веса достаточно для описания алгоритма комбинирования, при этом одна из двух гипотез будет умножаться на заданный вес w, а другая из гипотез будет умножаться на комплементарный вес (1-w). Могут быть реализованы другие алгоритмы. В случае, когда используется более двух гипотез предсказания, и необходимо их комбинировать, может задаваться больше весов для обеспечения возможности взвешенного комбинирования.
Могут быть заданы алгоритмы комбинирования на основе другого фактора. Например, может быть задана функция, отличная от взвешенного среднего, для которой коэффициенты могут задаваться в битовом потоке, и приниматься и извлекаться в приемнике. Например, линейная или квадратичная функция может использоваться для интерполяции значений во множестве гипотез предсказания. Коэффициенты линейной или квадратичной функции могут быть вычислены, выбраны или определены на основе информации, извлеченной из битового потока.
В битовом потоке может быть предоставлен параметр для извлечения и использования в приемнике, задающий, должен ли или нет использоваться конкретный алгоритм. В случае, когда два алгоритма
- 3 045634 комбинирования заданы как доступные для использования в приемнике, такой параметр может быть булевым.
В частности, вариант осуществления обеспечивает механизм, используемый для вычисления предсказания с компенсацией движения. Предсказание с компенсацией движения представляет собой метод, использованный до сих пор в многочисленных технологиях, таких как MPEG, который предоставляет декодеру определенную информацию движения. В общих чертах, предсказание с компенсацией движения содержит определение разности между текущим кадром и опорным кадром, в терминах трансформации от опорного кадра к текущему кадру. Если текущий кадр и опорный кадр были, например, захвачены стационарной камерой сцены, в которой никакие объекты не перемещались (но, например, эффекты освещения могли изменяться с течением времени), простое вычитание опорного кадра из текущего кадра обеспечивает эффективную основу для сжатия. Однако, если точка обзора, в которой установлена камера, перемещается между опорным кадром и текущим кадром, и/или объекты в просматриваемой сцене перемещались, то простое вычитание недостаточно для эффективного описания разности. В таком случае, векторы движения должны использоваться для описания трансформации между текущим кадром и опорным кадром.
В случае, когда только объект перемещался в сцене, но фон сцены остался неизменным, целесообразным является рассмотрение разбиения, например блока, кадра. В таком случае трансформация между блоком текущего кадра и блоком опорного кадра может быть описана просто как перенос (поступательное движение), т.е. сдвиг, который может быть выражен как вектор движения.
Эта информация движения проявляется как векторы движения и индекс опорного кадра. Такая информация сжимается и включается в битовый поток. Для того чтобы сжать информацию движения, можно использовать различные методы. Например, при использовании предсказания объединения (слияния), декодер вычисляет набор кандидатов, а именно, набор гипотез, построенных с использованием информации движения, извлеченной из соседних блоков. Тогда сигнализируется индекс, чтобы определить корректную гипотезу для текущего блока. Это позволяет декодеру выполнять компенсацию движения, в то же время требуя очень малого количества битов для сжатия необходимой информации движения.
Варианты осуществления, описанные в настоящем документе, относятся к способу декодирования битового потока, несущего информацию для восстановления множества кадров содержимого видео, причем каждый кадр состоит из одного или более блоков, при этом способ содержит вычисление предсказания блока посредством вычисления множества различных вычисленных кандидатов предсказания и комбинирование кандидатов для получения комбинированного предсказания.
В одном варианте осуществления, множество кандидатов предсказания может содержать один кандидат, вычисленный посредством интер-предсказания, и один кандидат, вычисленный посредством интра-предсказания. В одном варианте осуществления, кандидаты могут комбинироваться посредством параметрического преобразования. В одном варианте осуществления, параметрическое преобразование может содержать взвешенное предсказание, характеризующееся одним или более весами. В одном варианте осуществления, вес или веса могут быть извлечены из битового потока. В одном варианте осуществления, вес или веса могут быть вычислены, определены или выбраны на основе коэффициентов или параметров, извлеченных из битового потока.
Должно быть понятно, что реализации как интра-, так и интер-предсказания достигают удовлетворительных результатов в схемах сжатия видео. Однако могут возникнуть обстоятельства, в которых использование единственного процесса предсказания для предсказания всех выборок в блоке может не быть идеальным.
Например, теперь будет исследован случай объекта, движущегося на статическом фоне. От кадра к кадру, объект будет представлен в последовательно различных положениях на фоне. В случае, когда объект не может быть сегментирован с использованием схемы разбиения при использовании в кодеке видео, существующие способы предсказания не смогут точно предсказывать содержимое текущего блока. Использование интер-предсказания приведет к кандидату предсказания, который содержит точное предсказание движущегося объекта, но не фона. Напротив, использование методов интра-предсказания может привести к удовлетворительному предсказанию фона, но не деталей объекта в блоке.
Следует отметить, что то, что составляет удовлетворительный результат декодирования, зависит от ожиданий пользователя. Объективные стандарты, измеряющие точность воспроизведения кодированных изображений, могут быть установлены, например, на основе объективной метрики искажения. Однако, в сочетании с этим, внимание может быть уделено общему субъективному впечатлению от пользователя, что конкретное декодирование дает визуально удовлетворительные результаты.
Пример этого сценария показан на фиг. 1 и 2. На фиг. 1 показан текущий кадр, подлежащий кодированию, в то время как на фиг. 2 показан опорный кадр. Фиг. 3 иллюстрирует блок текущего кадра из фиг. 1, для которого должно генерироваться предсказание. На фиг. 4 показан кандидат интрапредсказания, в то время как на фиг. 5 показан кандидат интер-предсказания. Очевидно, что ни один кандидат предсказания не является точным представлением содержимого текущего блока, как показано на фиг. 4.
Таким образом, вариант осуществления, описанный в данном документе, формирует новое предска- 4 045634 зание, полученное путем комбинирования двух гипотез, как потенциально лучше подходящее для предсказания исходного содержимого.
Однако следует отметить, что простое выполнение усреднения каждой выборки может также не быть идеальным. В зависимости от точности либо интра-, либо интер-предсказания, может быть много случаев, в которых одно из двух предсказаний может лучше подходить для представления содержимого текущего блока, но другое предсказание все еще может предоставлять некоторую отсутствующую информацию, которая улучшила бы процесс предсказания. В таких случаях, выполнение взвешенного предсказания двух кандидатов имеет потенциальное преимущество. Путем соответствующего выбора весов для выполнения взвешенного предсказания, может быть получено лучшее комбинированное предсказание.
Вариант осуществления, описанный здесь, использует фиксированный набор весов. Веса доступны в справочных таблицах, где различные веса могут использоваться для блоков с различными характеристиками, такими как размер блока, или в зависимости от другой доступной информации. Справочные таблицы могут быть предоставлены заранее для кодеров и декодеров, сконфигурированных соответствующим образом. Альтернативно, справочные таблицы могут быть переданы от кодера к декодеру либо как часть передачи закодированного видео, либо как предшествующая передача конфигурации.
Затем из битового потока декодируется индекс для извлечения корректного элемента из справочной таблицы, так что корректный набор весов может быть выбран и использован при выполнении предсказания.
В другом варианте осуществления, вместо того, чтобы передавать индекс для элемента (записи) LUT, вес или веса могут быть непосредственно извлечены из битового потока.
На фиг. 6 иллюстрируется структура, содержащая схематично показанную сеть 10 передачи видео, в которой излучатель (передатчик) 20 и приемник 30 осуществляют связь по каналу 40 связи. На практике, канал 40 связи может содержать спутниковый канал связи, кабельную сеть, наземную сеть радиовещания, канал связи, реализованный на основе POTS, например, используемый для предоставления Интернет-услуг для домашних помещений и помещений малого бизнеса, волоконно-оптические системы связи или комбинации любых из вышеупомянутых и любых других возможных сред связи.
Кроме того, раскрытие также распространяется на связь, посредством физического переноса, носителя хранения, на котором хранится машиночитаемая запись кодированного битового потока, для прохождения к соответственно сконфигурированному приемнику, способному считывать носитель и получать из него битовый поток. Примером этого является предоставление цифрового универсального диска (DVD) или его эквивалента. Последующее описание фокусируется на передаче сигнала, например с помощью несущей электронного или электромагнитного сигнала, но не должно интерпретироваться как исключающее вышеупомянутый подход с использованием носителей хранения.
Как показано на фиг. 7, излучатель 20 представляет собой компьютерное устройство по своей структуре и функции. Он может совместно использовать, с вычислительным устройством общего назначения, определенные признаки, но некоторые признаки могут быть специфичными в реализации, учитывая специализированную функцию, для которой должен быть установлен излучатель 20. Должно быть понятно, какие признаки могут относиться к типу общего назначения, а какие может потребоваться сконфигурировать специально для использования в излучателе (передатчике) видео.
Таким образом, излучатель 20 содержит блок 202 обработки графики, сконфигурированный для специального использования в обработке графики и аналогичных операциях. Излучатель 20 также содержит один или несколько других процессоров 204, которые либо в общем случае предусмотрены, либо сконфигурированы для других целей, таких как математические операции, обработка аудио, управление каналом связи и так далее.
Интерфейс 206 ввода обеспечивает средство для приема действий пользовательского ввода. Такие действия пользовательского ввода могут, например, быть вызваны взаимодействием пользователя с конкретным устройством ввода, включая одну или более кнопок управления и/или переключателей, клавиатуру, мышь или другое указательное устройство, блок распознавания речи, приводимый в действие для приема и преобразования речи в управляющие команды, процессор сигналов, сконфигурированный для приема и управления процессами от другого устройства, такого как планшет или смартфон или приемник дистанционного управления. Этот список следует понимать как не исчерпывающий, и другие формы ввода, будь то инициированные пользователем или автоматизированные, могут также предполагаться.
Аналогично, интерфейс 214 вывода сконфигурирован, чтобы предоставлять средство для вывода сигналов пользователю или другому устройству. Такой вывод может включать в себя сигнал отображения для управления локальным блоком видеодисплея (VDU) или любым другим устройством.
Интерфейс 208 связи реализует канал связи, будь то широковещательная связь или связь между двумя конечным пунктами, с одним или более получателями сигналов. В контексте настоящего варианта осуществления, интерфейс связи сконфигурирован, чтобы вызывать излучение сигнала, несущего битовый поток, определяющий сигнал видео, закодированный излучателем 20.
Процессоры 204, и особенно в целях настоящего раскрытия, GPU 202 приводятся в действие, чтобы исполнять компьютерные программы, при работе кодера. При этом прибегают к средствам хранения
- 5 045634 данных, обеспечиваемым устройством 208 массовой памяти, которое реализовано для обеспечения крупномасштабного хранения данных, хотя и на основе относительно медленного доступа, и, на практике, будет хранить компьютерные программы и, в текущем контексте, данные представления видео для подготовки к исполнению процесса кодирования.
Постоянная память (ROM) 210 предварительно сконфигурирована с исполняемыми программами, предназначенными для обеспечения ядра функциональности излучателя 20, а память 212 с произвольным доступом предусмотрена для быстрого доступа и хранения данных и программных инструкций в ходе исполнения компьютерной программы.
Работа излучателя 20 будет описана далее со ссылкой на фиг. 8. Фиг. 8 показывает конвейер обработки, выполняемый кодером, реализованным в излучателе 20, посредством исполняемых инструкций, на файле данных, представляющем представление видео, содержащее множество кадров для последовательного отображения как последовательность картинок (кадров).
Файл данных может также содержать информацию воспроизведения аудио, чтобы сопровождать представление видео, и другую дополнительную информацию, такую как информация электронной программы передач, субтитры или метаданные, чтобы обеспечивать возможность каталогизации представления. Обработка этих аспектов файла данных не имеет отношения к настоящему изобретению.
Как показано на фиг. 8, текущая картинка или кадр в последовательности картинок передается в модуль 230 разбиения, где она разбивается на блоки определенного размера для последовательной обработки кодером. Каждый блок затем вводится в модуль 232 предсказания, который стремится отбросить временные и пространственные избыточности, присутствующие в последовательности, и получить сигнал предсказания с использованием ранее кодированного содержимого. Информация, позволяющая вычислять такое предсказание, кодируется в битовом потоке. Эта информация может содержать достаточную информацию для обеспечения возможности вычисления, включая возможность вывода в приемнике другой информации, необходимой для завершения предсказания.
Сигнал предсказания вычитается из исходного сигнала для получения остаточного сигнала. Затем он вводится в модуль 234 преобразования, который пытается дополнительно уменьшить пространственные избыточности в блоке посредством использования более подходящего представления данных. Следует отметить, что, в некоторых вариантах осуществления, преобразование области может быть опциональным этапом и можно вообще обойтись без него. Использование или не использование преобразования области может сигнализироваться в битовом потоке.
Результирующий сигнал затем обычно квантуется модулем 236 квантования, и, наконец, результирующие данные, сформированные из коэффициентов, и информация, необходимая для вычисления предсказания для текущего блока, вводятся в модуль 238 энтропийного кодирования, который использует статистическую избыточность для представления сигнала в компактной форме посредством коротких двоичных кодов. Вновь, следует отметить, что энтропийное кодирование, в некоторых вариантах осуществления, может быть опциональным признаком, и в некоторых случаях можно вообще обойтись без него. Использование энтропийного кодирования может сигнализироваться в битовом потоке вместе с информацией для обеспечения возможности декодирования, такой как индекс для режима энтропийного кодирования (например, кодирования Хаффмана) и/или кодовой книги.
Повторяя действие средства кодирования излучателя 20, битовый поток информационных элементов блока может быть сконструирован для передачи в приемник или множество приемников, в зависимости от обстоятельств. Битовый поток может также содержать информационные элементы, которые применяются по множеству информационных элементов блока и, таким образом, хранятся в синтаксисе битового потока независимо от информационных элементов блока. Примеры таких информационных элементов включают в себя опции конфигурации, параметры, применимые к последовательности кадров, и параметры, относящиеся к представлению видео в целом.
Модуль 232 предсказания далее будет описан более подробно со ссылкой на фиг. 9. Как будет понятно, это является лишь примером, и другие подходы, находящиеся в пределах объема настоящего раскрытия и прилагаемой формулы изобретения, могут быть рассмотрены.
Следующий процесс выполняется для каждого блока с компенсацией движения в интерпредсказанном кадре.
На этапе S1 вычисляется список кандидатов интер-предсказания с компенсацией движения.
На этапе S2 вычисляется список кандидатов интра-предсказания. Может быть реализовано несколько режимов интра- предсказания. Режимы интра-предсказания могут быть определены на основе степени, до которой, и способом, которым соседние блоки используются для построения предсказания блока. Различные режимы определены в установленных технических стандартах, таких как H.264/AVC и H.265/HEVC. В этом варианте осуществления может быть использован аналогичный подход, так что могут быть определены DC, планарный, чисто вертикальный и чисто горизонтальный режимы интра-предсказания. Может быть определено больше режимов, чем эти, например, в Н.264, в котором индекс со значением между 0 и 8 может использоваться для указания одного из девяти доступных режимов. Не все режимы обязательно должны использоваться. Можно рассмотреть более ограниченный набор, в котором рассматривается меньшее количество или даже один кандидат интра-предсказания.
- 6 045634
На этапе S3 создается набор комбинаций кандидатов интер-предсказания с компенсацией движения и учитываемых кандидатов интра-предсказания. Затем цикл L1 выполняется по каждой идентифицированной комбинации.
В этом цикле, на этапе S4 рассматривается справочная таблица (LUT), содержащая веса, которые должны использоваться для выполнения взвешенного предсказания между двумя доступными кандидатами. LUT может зависеть от характеристик текущего блока (например, его ширины и высоты) или характеристик двух кандидатов предсказания (таких как величина вектора движения интер-предсказанного кандидата или режим интра-предсказания интра-предсказанного кандидата). В одном варианте осуществления, может рассматриваться несколько LUT, и кодер может выбрать одну LUT и передать в информации битового потока для обеспечения возможности идентификации или извлечения корректной LUT для использования среди множества доступных LUT.
Кроме того, внутри цикла L1, выполняется цикл L2 по всем элементам в LUT. Для каждого элемента k выполняются следующие этапы S6 и S7:
S6: Соответствующий набор весов извлекается в положении k в LUT.
S7: Комбинированное предсказание вычисляется путем выполнения взвешенного предсказания с использованием двух кандидатов предсказания и весов, извлеченных в положении k в LUT.
После того как цикл L2 был проведен по всем элементами в LUT, затем, на этапе S8, элемент k0 выбирается среди элементов в LUT. Процесс выбора может зависеть, например, от вычисления стоимости, полученной для каждого элемента в LUT, которая может зависеть от искажения и битовой скорости (битрейта), необходимой для кодирования блока с использованием данного элемента. Для выполнения этого выбора могут использоваться другие способы. Веса, соответствующие записи k0 в LUT, затем используются для выполнения окончательного предсказания для текущего блока. Это завершает цикл L1 для идентифицированной комбинации.
Выбранный индекс k0 кодируется в битовом потоке вместе с остальной информацией предсказания, включая информацию для обеспечения возможности вычисления предсказания с компенсацией движения. Это может содержать вектор движения и индекс опорного кадра или индекс объединения (для идентификации корректного кандидата объединения из предопределенного списка) вместе с индексом для идентификации режима интра-предсказания для использования. В случае, когда рассматривается только один режим интра-предсказания, нет необходимости сигнализировать режим интра-предсказания в битовом потоке.
Структурная архитектура приемника показана на фиг. 10. Она имеет элементы, представляющие собой реализованное компьютером устройство. Таким образом, приемник 30 содержит блок 302 обработки графики, сконфигурированный для специального использования в обработке графики и аналогичных операций. Приемник 30 также содержит один или несколько других процессоров 304, либо предусматриваемых в общем случае, либо сконфигурированных для других целей, таких как математические операции, обработка аудио, управление каналом связи и так далее.
Должно быть понятно, что приемник 30 может быть реализован в форме телевизионной приставки, портативного персонального электронного устройства, персонального компьютера или любого другого устройства, пригодного для воспроизведения представлений видео.
Интерфейс 306 ввода обеспечивает средство для приема действий пользовательского ввода. Такие действия пользовательского ввода могут, например, быть вызваны взаимодействием пользователя с конкретным устройством ввода, включая одну или более кнопок управления и/или переключателей, клавиатуру, мышь или другое указательное устройство, блок распознавания речи, приводимый в действие для приема и преобразования речи в управляющие команды, процессор сигналов, сконфигурированный для приема и управления процессами от другого устройства, такого как планшет или смартфон или приемник дистанционного управления. Этот список следует понимать как не исчерпывающий, и возможны другие формы ввода, будь то инициированные пользователем или автоматизированные.
Аналогично, интерфейс 314 вывода предназначен для обеспечения средства для вывода сигналов пользователю или другому устройству. Такой вывод может включать в себя телевизионный сигнал в подходящем формате для управления локальным телевизионным устройством.
Интерфейс 308 связи реализует канал связи, будь то широковещательная связь или связь между двумя конечным пунктами, с одним или более получателями сигналов. В контексте настоящего варианта осуществления, интерфейс связи сконфигурирован, чтобы вызывать излучение сигнала, несущего битовый поток, определяющий сигнал видео, закодированный приемником 30.
Процессоры 304, и особенно в целях настоящего раскрытия, GPU 302 приводятся в действие, чтобы исполнять компьютерные программы, при работе приемника. При этом прибегают к средствам хранения данных, обеспечиваемым устройством 308 массовой памяти, которое реализовано для обеспечения крупномасштабного хранения данных, хотя и на основе относительно медленного доступа, и, на практике, будет хранить компьютерные программы и, в текущем контексте, данные представления видео, являющиеся результатом исполнения процесса приема.
Постоянная память (ROM) 310 предварительно сконфигурирована с исполняемыми программами, предназначенными для обеспечения ядра функциональности приемника 30, а память 312 с произвольным
- 7 045634 доступом предусмотрена для быстрого доступа и хранения данных и программных инструкций в ходе исполнения компьютерной программы.
Теперь будет описана функция приемника 30 со ссылкой на фиг. 11. На фиг. 11 показан конвейер обработки, выполняемый декодером, реализованным в приемнике 20 посредством исполняемых инструкций, на битовом потоке, принятом в приемнике 30, содержащем структурированную информацию, из которой может быть получено представление видео, содержащее реконструкцию кадров, закодированных посредством функциональности кодера излучателя 20.
Процесс декодирования, проиллюстрированный на фиг. 11, имеет целью реверсировать процесс, выполняемый в кодере. Должно быть понятно, что это не означает, что процесс декодирования является точной инверсией процесса кодирования.
Принятый битовый поток содержит последовательность закодированных информационных элементов, причем каждый элемент относится к блоку. Информационный элемент блока декодируется в модуле 330 энтропийного декодирования для получения блока коэффициентов и информации, необходимой для вычисления предсказания для текущего блока. Блок коэффициентов обычно деквантуется в модуле 332 деквантования и, как правило, обратно преобразуется в пространственную область посредством модуля 334 преобразования.
Как отмечено выше, должно быть понятно, что энтропийное декодирование, деквантование и обратное преобразование необходимо использовать в приемнике, только если в передатчике были использованы энтропийное кодирование, квантование и преобразование, соответственно.
Сигнал предсказания генерируется, как и ранее, из предварительно декодированных выборок из текущего или предыдущего кадров и используя информацию, декодированную из битового потока, модулем 336 предсказания. Затем получают реконструкцию исходного блока картинки из декодированного остаточного сигнала и вычисленного блока предсказания в блоке 338 восстановления.
С помощью повторяемого действия функциональности декодирования на последовательно принятых информационных элементах блока, блоки картинки могут быть восстановлены в кадры, которые затем могут быть скомпонованы для получения представления видео для воспроизведения.
Примерный алгоритм декодера, дополняющий алгоритм кодера, описанный ранее, показан на фиг. 12.
Как отмечено выше, функциональность декодера приемника 30 извлекает из битового потока последовательность информационных элементов блока, как закодировано средствами кодера излучателя 20, определяя информацию блока и соответствующую информацию конфигурации.
В обобщенных терминах, декодер пользуется информацией из предыдущих предсказаний при построении предсказания для текущего блока. При этом декодер может комбинировать знания из интерпредсказания, т.е. из предыдущего кадра, и интра-предсказания, т.е. из другого блока в том же самом кадре.
Таким образом, для интер-предсказанного блока с компенсацией движения в интер-предсказанном кадре, на этапе S21, информация, обеспечивающая возможность формирования кандидата интерпредсказания с компенсацией движения, извлекается из битового потока. Информация движения, позволяющая выполнять компенсацию движения, может быть получена, например, прямым декодированием вектора движения и индекса опорного кадра из битового потока, или посредством процесса предсказания объединения, в котором формируется список кандидатов объединения, и индекс объединения извлекается из битового потока для идентификации корректной объединенной информации движения.
После того как информация была извлечена, на этапе S22, на основе извлеченной информации формируется кандидат интер-предсказания с компенсацией движения.
Затем, на этапе S23, вычисляется список кандидатов интра-предсказания, например, набор из DC, планарного, чисто вертикального и чисто горизонтального режимов интра-предсказания; может рассматриваться более ограниченный набор, где рассматривается меньшее количество или даже только один кандидат интра-предсказания.
На этапе S24, из битового потока извлекается индекс для идентификации режима интрапредсказания для использования; в случае, если рассматривается только один режим интра- предсказания, нет необходимости извлекать такой индекс идентификации режима из битового потока, и поэтому можно обойтись без этого этапа. Этот этап выбирает один из кандидатов, вычисленных на этапе S23, для использования.
На этапе S25, из битового потока извлекается индекс k0 для идентификации элемента для использования из предварительно сохраненной LUT, соответствующей LUT, использованной в процессе кодера.
Затем, на этапе S26, рассматривается справочная таблица (LUT), содержащая веса, которые должны использоваться для выполнения взвешенного предсказания между двумя доступными кандидатами. Множество LUT может быть реализовано, и LUT, подлежащая использованию в конкретном случае, может зависеть от характеристик текущего блока (таких как его ширина и высота) или характеристик двух кандидатов предсказания (таких как величина вектора движения интер-предсказанного кандидата или режим интра-предсказания интра-предоказанного кандидата). В одном варианте осуществления, информация может быть извлечена из битового потока для обеспечения возможности выбора соответствующей
-
Claims (5)
- LUT среди множества доступных LUT. Если для всех обстоятельств используется одна LUT, то нет необходимости сигнализировать, какая LUT должна использоваться в конкретном случае.На этапе S27, веса в положении k0 извлекаются из LUT, идентифицированной на этапе S26. Затем, на этапе S28, веса используются для вычисления взвешенного среднего интра- и интер-предсказанных кандидатов и получения окончательного предсказания для текущего блока.Процесс, описанный выше, выполняется для всех принятых информационных элементов блока, для всей передачи. На этой основе, построение декодированных блоков может быть восстановлено в кадры, а кадры - в восстановленное представление видео.Следует понимать, что изобретение не ограничено описанными выше вариантами осуществления, и могут выполняться различные модификации и усовершенствования без отклонения от концепций, описанных в настоящем документе. За исключением того, где признаки взаимно исключающие, любой из признаков может использоваться отдельно или в комбинации с любыми другими признаками, и раскрытие распространяется на и включает в себя все комбинации и подкомбинации одного или более признаков, описанных в настоящем документе.ФОРМУЛА ИЗОБРЕТЕНИЯ1. Реализуемый компьютером способ кодирования блока пикселов в изображении последовательного множества изображений, содержащий:вы числение набора кандидатов интер-предсказания с компенсацией движения для блока пикселов на основе опорного изображения в последовательном множестве изображений;вы числение набора кандидатов интра-предсказания для блока пикселов на основе предопределенного набора режимов интра-предсказания;ко мпоновку набора комбинаций упомянутых кандидатов интер-предсказания с компенсацией движения и кандидатов интра-предсказания;оп ределение для множества наборов параметров, причем каждый набор параметров конфигурирует параметрическое преобразование одного из кандидата интер-предсказания с компенсацией движения и одного из кандидатов интра-предсказания, комбинированного предсказания для каждой комбинации упомянутых кандидатов интер-предсказания с компенсацией движения и кандидатов интрапредсказания, при этом, по меньшей мере, один набор упомянутых параметров конфигурирует параметрическое преобразование, содержащее взвешенное среднее одного или более кандидатов интерпредсказания с компенсацией движения и одного или более кандидатов интра-предсказания, управляемое весом или комбинацией весов, при этом вес или комбинация весов содержит запись в справочной таблице с соответствующим индексом веса;оц енивание каждого комбинированного предсказания по отношению к объективной метрике искажения;выбор одного из комбинированных предсказаний на основе результата упомянутого оценивания в качестве кодирования блока пикселов.
- 2. Кодер, действующий для выполнения способа по п.1.
- 3. Устройство генерации сигнала, содержащее кодер по п.2.
- 4. Сигнал, генерируемый посредством модуляции битового потока на несущую, причем битовый поток является продуктом способа кодирования по п.1.
- 5. Реализуемый компьютером способ декодирования битового потока, содержащий:извлечение из битового потока информации конфигурации предиктора движения и, на основе информации конфигурации предиктора движения, вычисление одного или более кандидатов интерпредсказания с компенсацией движения для блока выборок;извлечение из битового потока информации конфигурации интра-предсказания и, на основании информации конфигурации интра-предсказания, вычисление одного или более кандидатов интрапредсказания, при этом кандидаты интра-предсказания получены посредством процесса интрапредсказания для блока выборок;извлечение из битового потока информации конфигурации параметрического преобразования, обеспечивающей возможность определения параметров для параметрического преобразования одного или более кандидатов интер-предсказания с компенсацией движения и одного или более кандидатов интра-предсказания, причем определяемые параметры содержат индекс веса;извлечение из справочной таблицы, отображающей индексы весов на веса, веса или комбинации весов, соответствующих индексу веса; и вычисление комбинированного преобразованного предсказания для упомянутого блока выборок посредством параметрического преобразования одного или более кандидатов интер-предсказания с компенсацией движения и одного или более кандидатов интра-предсказания, причем параметрическое преобразование содержит взвешенное среднее одного или более кандидатов интер-предсказания с компенсацией движения и одного или более кандидатов интра-предсказания, управляемое весом или комбинацией весов, извлекаемым/извлекаемой из справочной таблицы.-
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1820459.4 | 2018-12-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
EA045634B1 true EA045634B1 (ru) | 2023-12-13 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102548881B1 (ko) | 영상 변환 부호화/복호화 방법 및 장치 | |
US20160295227A1 (en) | Interlayer video encoding method using brightness compensation and device thereof, and video decoding method and device thereof | |
KR20210128385A (ko) | 비디오 인코딩 및 비디오 디코딩 | |
KR100728011B1 (ko) | 영상 부호화 및 복호화 장치와, 그 방법, 및 이를 수행하기위한 프로그램이 기록된 기록 매체 | |
CN113497940A (zh) | 视频解码方法、装置、计算机设备及存储介质 | |
EP2983362A1 (en) | Interlayer video encoding method and apparatus and interlayer video decoding method and apparatus for compensating luminance difference | |
CN114868385A (zh) | 视频编码和视频解码 | |
CN114600463A (zh) | 视频编码和视频解码 | |
CN113228674B (zh) | 视频编码和视频解码 | |
CN107534765B (zh) | 视频编码系统和方法中的运动矢量选择和预测 | |
WO2012096104A1 (ja) | 画像予測符号化装置、画像予測符号化方法、画像予測符号化プログラム、画像予測復号装置、画像予測復号方法、及び画像予測復号プログラム | |
US10869030B2 (en) | Method of coding and decoding images, a coding and decoding device, and corresponding computer programs | |
KR20050112587A (ko) | 동영상 인코딩, 디코딩 장치 및 그 방법 | |
JP2017073598A (ja) | 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム | |
EA045634B1 (ru) | Кодирование видео и декодирование видео | |
EA046905B1 (ru) | Кодирование и декодирование видео | |
EA043408B1 (ru) | Кодирование видео и декодирование видео |