RU2816752C2 - Назначение импульсно-кодовой модуляции области квантованных на блочной основе остатков для выведения режима интра-предсказания - Google Patents
Назначение импульсно-кодовой модуляции области квантованных на блочной основе остатков для выведения режима интра-предсказания Download PDFInfo
- Publication number
- RU2816752C2 RU2816752C2 RU2021130639A RU2021130639A RU2816752C2 RU 2816752 C2 RU2816752 C2 RU 2816752C2 RU 2021130639 A RU2021130639 A RU 2021130639A RU 2021130639 A RU2021130639 A RU 2021130639A RU 2816752 C2 RU2816752 C2 RU 2816752C2
- Authority
- RU
- Russia
- Prior art keywords
- block
- intra
- prediction
- list
- mode
- Prior art date
Links
- 238000009795 derivation Methods 0.000 title description 2
- 238000000034 method Methods 0.000 claims description 227
- 230000015654 memory Effects 0.000 claims description 33
- 238000013507 mapping Methods 0.000 claims description 27
- 230000000694 effects Effects 0.000 abstract description 3
- 239000000126 substance Substances 0.000 abstract 1
- 230000008569 process Effects 0.000 description 69
- 238000003860 storage Methods 0.000 description 52
- 238000012545 processing Methods 0.000 description 49
- 239000013598 vector Substances 0.000 description 39
- 239000010410 layer Substances 0.000 description 31
- 238000010586 diagram Methods 0.000 description 30
- 238000013139 quantization Methods 0.000 description 28
- 238000004891 communication Methods 0.000 description 27
- 241000023320 Luma <angiosperm> Species 0.000 description 26
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 26
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 25
- 238000001914 filtration Methods 0.000 description 17
- 238000000638 solvent extraction Methods 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 230000003044 adaptive effect Effects 0.000 description 10
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 7
- 230000002457 bidirectional effect Effects 0.000 description 6
- 238000005192 partition Methods 0.000 description 6
- 238000003491 array Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012432 intermediate storage Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 239000004984 smart glass Substances 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- AVVWPBAENSWJCB-DGPNFKTASA-N beta-D-galactofuranose Chemical compound OC[C@@H](O)[C@@H]1O[C@@H](O)[C@H](O)[C@H]1O AVVWPBAENSWJCB-DGPNFKTASA-N 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Abstract
Изобретение относится к средствам для кодирования изображений. Технический результат заключается в повышении эффективности кодирования. Получают первый блок картинки, включенной в закодированный битовый поток видео. Определяют второй блок картинки, кодируемый с использованием режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM). Определяют вертикальный режим интра-предсказания для добавления в список режимов интра-предсказания для первого блока на основе сопоставления между вертикальным режимом BDPCM и вертикальным режимом интра-предсказания. Добавляют вертикальный режим интра-предсказания к списку режимов интра-предсказания для первого блока. Определяют, на основе информации из закодированного битового потока видео и на основе списка режимов интра-предсказания, режим предсказания для использования для декодирования первого блока. Декодируют первый блок с использованием определенного режима предсказания. Причем информация из закодированного битового потока видео включает в себя флаг списка режимов интра-предсказания, указывающий, находится ли режим предсказания для использования для декодирования первого блока среди числа режимов предсказания, включенных в список режимов интра-предсказания. 4 н. и 37 з.п. ф-лы, 2 табл., 14 ил.
Description
ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящая заявка относится к кодированию видео. Более конкретно, настоящая заявка относится к системам, аппаратурам, способам и считываемым компьютером носителям для назначения режимов интра-предсказания для блоков, кодированных блочной дифференциальной импульсно-кодовой модуляцией (DPCM).
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[0002] Многие устройства и системы предоставляют возможность обработки и вывода данных видео для потребления. Цифровые данные видео включают в себя большие количества данных для удовлетворения потребностей потребителей и провайдеров видео. Например, потребителям данных видео желательно видео самого высокого качества, с высокой точностью, разрешающими способностями, частотами кадров и тому подобным. В результате большое количество данных видео, которое требуется для удовлетворения этих требований, вызывает нагрузку на сети связи и устройства, которые обрабатывают и хранят данные видео.
[0003] Для сжатия данных видео могут использоваться различные способы кодирования видео. Кодирование видео выполняется в соответствии с одним или более стандартами кодирования видео. Например, стандарты кодирования видео включают в себя многоцелевое кодирование видео (VVC), высокоэффективное кодирование видео (HEVC), усовершенствованное кодирование видео (AVC), кодирование MPEG-2 Part 2 (MPEG является аббревиатурой для Группы экспертов по движущимся изображениям), VP9, Alliance of Open Media (AOMedia) Video 1 (AVI), среди прочего. Кодирование видео обычно использует способы предсказания (например, интер-предсказание, интра-предсказание и т.п.), которые используют преимущество избыточности, присутствующей в изображениях или последовательностях видео. Важной целью методик кодирования видео является сжатие данных видео в форму, которая использует более низкую битовую скорость, при этом избегая или сводя к минимуму ухудшение качества видео. С обеспечением доступности постоянно развивающихся услуг предоставления видео, необходимы способы кодирования с лучшей эффективностью кодирования.
КРАТКОЕ ИЗЛОЖЕНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0004] Здесь описаны способы и системы для назначения режимов интра-предсказания для блоков, кодированных импульсно-кодовой модуляцией области квантованных на блочной основе остатков (BDPCM) (также упоминается как дифференциальная (или дельта) импульсно-кодовая модуляция или дифференциальная (или дельта) импульсно-кодовая модуляция остатков (RDPCM)). Используя интра-предсказание, устройство кодирования (например, кодер видео и/или декодер видео) может формировать блок предсказания с использованием методик пространственного предсказания на основе соседних выборок из ранее закодированных соседних блоков в пределах одной и той же картинки. Соседние выборки могут быть идентифицированы на основе конкретного используемого режима интра-предсказания, такого как планарный режим, режим DC и/или один из множества режимов направленного предсказания (вертикальный, горизонтальный и различные угловые режимы). Остаточные данные могут быть определены на основе исходного блока и блока предсказания. Режимы кодирования BDPCM работают аналогично в качестве некоторых режимов кодирования интра- предсказания, но также включают в себя определение от строки к строке (построчной) разности, выполняемое на основе остаточных данных (например, на преобразованных и квантованных коэффициентах, сгенерированных из остаточных данных). Режимы BDPCM могут включать в себя горизонтальный BDPCM и вертикальный BDPCM.
[0005] Кодирование режима интра-предсказания текущего блока, подлежащего кодированию, может включать в себя генерирование списка предсказателя наиболее вероятных режимов (MPM). В VVC существуют 67 доступных режимов интра-предсказания. Некоторое количество режимов интра-предсказания (например, пять) может быть включено в список предсказателей MPM (упоминается как режимы MPM), причем остальные режимы называются режимами не-MPM. Список предсказателей MPM может быть сгенерирован для текущего блока посредством включения режимов интра-предсказания, используемых для одного или более соседних блоков текущего блока в списке предсказателей MPM. Однако, когда соседний блок кодируется с использованием режима BDPCM, соседний блок не имеет ассоциированного режима интра-предсказания, который может быть добавлен в список MPM для текущего блока.
[0006] Методики и системы, описанные в данном документе, обеспечивают отображение различных режимов BDPCM на различные режимы интра-предсказания. Отображаемый режим интра- предсказания может быть включен в список предсказателей MPM (для текущего блока) для представления соседнего блока, который кодируется с использованием режима BDPCM. Например, горизонтальный режим интра-предсказания может быть включен в список предсказателей MPM для представления соседнего блока, кодированного с использованием горизонтального режима BDPCM, и вертикальный режим интра-предсказания может быть включен в список предсказателей MPM для представления соседнего блока, кодированного с использованием вертикального режима BDPCM.
[0007] Согласно по меньшей мере одному примеру, обеспечен способ декодирования данных видео. Способ включает в себя: получение первого блока картинки, включенной в закодированный битовый поток видео; определение второго блока картинки, кодируемой с использованием вертикального режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM); определение, на основе второго блока, кодируемого с использованием вертикального режима BDPCM, вертикального режима интра-предсказания для списка режимов интра-предсказания для первого блока; и добавление вертикального режима интра-предсказания к списку режимов интра-предсказания для первого блока.
[0008] В другом примере, обеспечена аппаратура для декодирования данных видео, которая включает в себя память, сконфигурированную, чтобы хранить по меньшей мере один закодированный блок данных видео, и декодер видео, содержащий по меньшей мере одну из фиксированной функциональной и программируемой схемы. В некоторых примерах, декодер видео сконфигурирован, чтобы: получать первый блок картинки, включенной в закодированный битовый поток видео; определять второй блок картинки, кодируемый с использованием вертикального режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM); определять, на основе второго блока, кодируемого с использованием вертикального режима BDPCM, вертикальный режим интра-предсказания для списка режимов интра-предсказания для первого блока; и добавлять вертикальный режим интра-предсказания к списку режимов интра-предсказания для первого блока.
[0009] В другом примере, считываемый компьютером носитель хранения хранит инструкции, которые, при исполнении, побуждают один или более процессоров устройства для декодирования данных видео: получать первый блок картинки, включенной в закодированный битовый поток видео; определять второй блок картинки, кодируемый с использованием вертикального режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM); определять, на основе второго блока, кодируемого с использованием вертикального режима BDPCM, вертикальный режим интра-предсказания для списка режимов интра-предсказания для первого блока; и добавлять вертикальный режим интра-предсказания к списку режимов интра-предсказания для первого блока.
[0010] В другом примере, обеспечена аппаратура для декодирования данных видео. Аппаратура включает в себя: средство для получения первого блока картинки, включенной в закодированный битовый поток видео; средство для определения второго блока картинки, кодируемого с использованием вертикального режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM); средство для определения, на основе второго блока, кодируемого с использованием вертикального режима BDPCM, вертикальный режим интра-предсказания для списка режимов интра-предсказания для первого блока; и средство для добавления вертикального режима интра-предсказания к списку режимов интра-предсказания для первого блока.
[0011] В некоторых аспектах, список режимов интра-предсказания включает в себя список наиболее вероятных режимов (MPM).
[0012] В некоторых аспектах, второй блок является соседним блоком первого блока в картинке.
[0013] В некоторых аспектах, способ, аппаратуры и считываемый компьютером носитель хранения, описанные выше, включают в себя: определение, на основе информации из закодированного битового потока видео и на основе списка режимов интра-предсказания, режима предсказания для использования для декодирования первого блока; и декодирование первого блока с использованием определенного режима предсказания. В некоторых примерах, информация из закодированного битового потока видео включает в себя флаг списка режимов интра-предсказания, указывающий, находится ли режим предсказания для использования для декодирования первого блока, среди числа режимов предсказания, включенных в список режимов интра-предсказания. В некоторых примерах, способ, аппаратуры и считываемый компьютером носитель хранения, описанные выше, включают в себя: определение, на основе значения флага списка режимов интра-предсказания, что режим предсказания для использования для декодирования первого блока находится среди числа режимов предсказания, включенных в список режимов интра-предсказания; и определение режима предсказания для использования для декодирования первого блока из списка режимов интра-предсказания.
[0014] В некоторых случаях, информация в закодированном битовом потоке видео включает в себя значение индекса, ассоциированное со списком режимов интра-предсказания. В некоторых аспектах, способ, аппаратуры и считываемый компьютером носитель хранения, описанные выше, включают в себя определение режима предсказания для использования для декодирования первого блока из списка режимов интра-предсказания с использованием значения индекса.
[0015] В некоторых аспектах, первый блок является блоком кодирования яркости.
[0016] В некоторых аспектах, способ, аппаратуры и считываемый компьютером носитель хранения, описанные выше, включают в себя: получение третьего блока картинки, включенной в закодированный битовый поток видео; определение четвертого блока картинки, кодируемого с использованием горизонтального режима BDPCM на основе блока; определение, на основе четвертого блока, кодируемого с использованием горизонтального режима BDPCM, горизонтального режима интра-предсказания для списка режимов интра-предсказания для третьего блока; и добавление горизонтального режима интра-предсказания к списку режимов интра-предсказания для третьего блока.
[0017] Согласно по меньшей мере одному другому примеру, обеспечен способ кодирования данных видео. Способ включает в себя: кодирование первого блока картинки с использованием режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM); получение второго блока картинки; определение, на основе первого блока, кодируемого с использованием вертикального режима BDPCM, вертикального режима интра-предсказания для списка режимов интра-предсказания для второго блока; добавление вертикального режима интра-предсказания к списку режимов интра-предсказания для второго блока; и генерирование закодированного битового потока видео, включающего в себя первый блок, второй блок и список режимов интра-предсказания.
[0018] В другом примере, обеспечена аппаратура для кодирования данных видео, которая включает в себя память, сконфигурированную, чтобы хранить по меньшей мере один блок данных видео, и кодер видео, содержащий по меньшей мере одну из фиксированной функциональной и программируемой схемы. В некоторых примерах, кодер видео сконфигурирован, чтобы: кодировать первый блок картинки с использованием вертикального режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM); получать второй блок картинки; определять, на основе первого блока, кодируемого с использованием вертикального режима BDPCM, вертикальный режим интра-предсказания для списка режимов интра-предсказания для второго блока; добавлять вертикальный режим интра-предсказания к списку режимов интра-предсказания для второго блока; и генерировать закодированный битовый поток видео, включающий в себя первый блок, второй блок и список режимов интра-предсказания.
[0019] В другом примере, считываемый компьютером носитель хранения данных хранит инструкции, которые, при исполнении, побуждают один или более процессоров устройства для кодирования данных видео: кодировать первый блок картинки с использованием вертикального режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM); получать второй блок картинки; определять, на основе первого блока, кодируемого с использованием вертикального режима BDPCM, вертикальный режим интра-предсказания для списка режимов интра-предсказания для второго блока; добавлять вертикальный режим интра-предсказания к списку режимов интра-предсказания для второго блока; и генерировать закодированный битовый поток видео, включающий в себя первый блок, второй блок и список режимов интра-предсказания.
[0020] В другом примере, обеспечена аппаратура для кодирования данных видео. Аппаратура включает в себя: средство для кодирования первого блока картинки с использованием вертикального режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM); средство для получения второго блока картинки; средство для определения, на основе первого блока, кодируемого с использованием вертикального режима BDPCM, вертикального режима интра-предсказания для списка режимов интра-предсказания для второго блока; средство для добавления вертикального режима интра-предсказания к списку режимов интра-предсказания для второго блока; и средство для генерации закодированного битового потока видео, включающего в себя первый блок, второй блок и список режимов интра-предсказания.
[0021] В некоторых аспектах, список режимов интра-предсказания включает в себя список наиболее вероятных режимов (MPM).
[0022] В некоторых аспектах, второй блок является соседним блоком первого блока в картинке.
[0023] В некоторых аспектах, способ, аппаратуры и считываемый компьютером носитель хранения, описанные выше для кодирования данных видео, включают в себя: включение, в закодированный битовый поток видео, информации, указывающей режим предсказания для использования для декодирования первого блока. В некоторых примерах, информация включает в себя флаг списка режимов интра-предсказания, указывающий, находится ли режим предсказания для использования для декодирования первого блока среди числа режимов предсказания, включенных в список режимов интра-предсказания. В некоторых примерах, информация включает в себя значение индекса, указывающее режим предсказания из списка режимов интра-предсказания для использования для декодирования первого блока.
[0024] В некоторых аспектах, второй блок представляет собой блок кодирования яркости.
[0025] В некоторых аспектах, способ, аппаратуры и считываемый компьютером носитель хранения, описанные выше для кодирования данных видео, включают в себя: кодирование третьего блока картинки с использованием горизонтального режима BDPCM на основе блока; получение четвертого блока картинки; определение, на основе третьего блока, кодируемого с использованием горизонтального режима BDPCM, горизонтального режима интра- предсказания для списка режимов интра-предсказания для четвертого блока; и добавление горизонтального режима интра- предсказания к списку режимов интра-предсказания для четвертого блока.
[0026] В некоторых аспектах, аппаратура для декодирования данных видео и/или аппаратура для кодирования данных видео содержит камеру, мобильное устройство (например, мобильный телефон или так называемый "смартфон" или другое мобильное устройство), носимое устройство, устройство расширенной реальности (например, устройство виртуальной реальности (VR), устройство дополненной реальности (AR) или устройство смешанной реальности (MR)), персональный компьютер, портативный компьютер, серверный компьютер или другое устройство. В некоторых аспектах, аппаратура для декодирования данных видео и/или аппаратура для кодирования данных видео включает в себя камеру или множественные камеры для захвата одного или более изображений. В некоторых аспектах аппаратура для декодирования данных видео и/или аппаратура для кодирования данных видео включает в себя дисплей для отображения одного или более изображений, уведомлений и/или других отображаемых данных.
[0027] Вышеописанные аспекты, относящиеся к любому из способов, аппаратур и считываемых компьютером носителей, могут использоваться индивидуально или в любой подходящей комбинации.
0028] Это краткое изложение не предназначено для идентификации ключевых или существенных признаков заявленной сущности изобретения, а также не предназначено для использования отдельно для определения объема заявленной сущности изобретения. Сущность изобретения следует понимать со ссылкой на соответствующие части всей спецификации данного патента, любого или всех чертежей и каждого пункта формулы изобретения.
[0029] Вышеизложенное, вместе с другими признаками и вариантами осуществления, станет более понятным при обращении к следующей спецификации, формуле изобретения и приложенным чертежам.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0030] Иллюстративные варианты осуществления настоящей заявки подробно описаны ниже со ссылкой на следующие чертежи:
[0031] Фиг. 1 представляет собой блок-схему, иллюстрирующую пример устройства кодирования и устройства декодирования, в соответствии с некоторыми примерами;
[0032] Фиг. 2 представляет собой диаграмму, обеспечивающую примерную иллюстрацию режимов интра-предсказания, ассоциированных со стандартом многоцелевого кодирования видео (VVC), в соответствии с некоторыми примерами;
[0033] Фиг. 3 представляет собой диаграмму, иллюстрирующую пример картинки, включающей в себя текущий блок, кодируемый с использованием режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM), в соответствии с некоторыми примерами;
[0034] Фиг. 4A представляет собой диаграмму, иллюстрирующую пример строки соседнего блока, используемого для кодирования текущего блока, в соответствии с некоторыми примерами;
[0035] Фиг. 4B представляет собой диаграмму, иллюстрирующую текущий блок по фиг. 3, в соответствии с некоторыми примерами;
[0036] Фиг. 5 представляет собой диаграмму, иллюстрирующую пример блока, полученного в результате кодирования текущего блока по фиг. 3, в соответствии с некоторыми примерами;
[0037] Фиг. 6 представляет собой диаграмму, иллюстрирующую пример блока, полученного в результате кодирования текущего блока по фиг. 3, в соответствии с некоторыми примерами;
[0038] Фиг. 7 представляет собой диаграмму, иллюстрирующую пример блока, полученного в результате кодирования текущего блока по фиг. 3, в соответствии с некоторыми примерами;
[0039] Фиг. 8 представляет собой диаграмму, иллюстрирующую пример картинки, включающей в себя текущий блок, кодируемый в соответствии с некоторыми примерами;
[0040] Фиг. 9 представляет собой диаграмму, иллюстрирующую пример картинки, включающей в себя текущий блок, кодируемый в соответствии с некоторыми примерами;
[0041] Фиг. 10 представляет собой блок-схему последовательности операций, иллюстрирующую пример процесса декодирования данных видео, в соответствии с некоторыми примерами;
[0042] Фиг. 11 представляет собой блок-схему последовательности операций, иллюстрирующую пример процесса кодирования данных видео, в соответствии с некоторыми примерами;
[0043] Фиг. 12 представляет собой блок-схему, иллюстрирующую примерное устройство кодирования видео, в соответствии с некоторыми примерами; и
[0044] Фиг. 13 представляет собой блок-схему, иллюстрирующую пример устройства декодирования видео, в соответствии с некоторыми примерами.
Подробное описание
[0045] Некоторые аспекты и варианты осуществления настоящего раскрытия представлены ниже. Некоторые из этих аспектов и вариантов осуществления могут быть применены независимо, и некоторые из них могут быть применены в комбинации, как очевидно специалистам в данной области техники. В нижеследующем описании, для целей объяснения, конкретные детали изложены, чтобы обеспечить полное понимание вариантов осуществления приложения. Однако очевидно, что различные варианты осуществления могут быть осуществлены на практике без этих конкретных подробностей. Чертежи и описание не предназначены для ограничения.
[0046] Последующее описание предоставляет только примерные варианты осуществления и не предназначено для ограничения объема, применимости или конфигурации раскрытия. Скорее, последующее описание примерных вариантов осуществления предоставит специалистам в данной области техники возможное описание для реализации иллюстративного варианта осуществления. Должно быть понятно, что различные изменения могут быть сделаны в функции и компоновке элементов без отклонения от сущности и объема заявки, как изложено в приложенной формуле изобретения.
[0047] Устройства кодирования видео реализуют методики сжатия видео для эффективного кодирования и декодирования данных видео. Как используется в данном документе, устройство кодирования видео может относиться к кодеру видео, декодеру видео или комбинированному кодеру-декодеру видео (называемому кодеком). Методики сжатия видео могут включать в себя применение различных режимов предсказания, в том числе пространственное предсказание (упоминается как интра-предсказание или внутрикадровое предсказание), временное предсказание (упоминается как интер-предсказание или межкадровое предсказание), межслойное предсказание (по различным слоям данных видео) и/или другие методики предсказания для уменьшения или удаления избыточности, присущей последовательностям видео. Кодер видео может разбивать каждую картинку исходной последовательности видео на прямоугольные области, называемые блоками видео или единицами кодирования (более подробно описанными ниже). Эти блоки видео могут кодироваться с использованием конкретного режима предсказания.
[0048] Блоки видео могут быть разделены одним или более способами в одну или более групп меньших блоков. Блоки могут включать в себя блоки дерева кодирования, блоки предсказания, блоки преобразования и/или другие подходящие блоки. Ссылки в целом на "блок", если не указано иное, могут относиться к таким блокам видео (например, блоки дерева кодирования, блоки кодирования, блоки предсказания, блоки преобразования или другие соответствующие блоки или подблоки, как должно быть понятно специалисту в данной области техники). Кроме того, каждый из этих блоков может также взаимозаменяемо упоминаться здесь как "единицы" (например, единица дерева кодирования (CTU), единица кодирования, единица предсказания (PU), единица преобразования (TU) или тому подобное.
[0049] Для режимов интер-предсказания, кодер видео может искать блок, аналогичный блоку, кодируемому в кадре (или картинке), расположенном в другом временном местоположении, называемом опорным кадром или опорной картинкой. Кодер видео может ограничивать поиск некоторым пространственным смещением от блока, подлежащего кодированию. Наилучшее совпадение может локализоваться с использованием двумерного (2D) вектора движения, который включает в себя компонент горизонтального смещения и компонент вертикального смещения. Для режимов интра- предсказания, кодер видео может формировать предсказанный блок с использованием методик пространственного предсказания на основе данных из ранее закодированных соседних блоков в пределах той же самой картинки.
[0050] Кодер видео может определять ошибку предсказания. Например, ошибка предсказания может быть определена как разность между значениями пикселов в кодируемом блоке и предсказанном блоке. Ошибка предсказания также может упоминаться как остаток. Кодер видео может также применять преобразование к ошибке предсказания с использованием кодирования преобразования (например, с использованием формы дискретного косинусного преобразования (DCT), формы дискретного синусного преобразования (DST) или другого подходящего преобразования) для генерации коэффициентов преобразования. После преобразования, кодер видео может квантовать коэффициенты преобразования. Квантованные коэффициенты преобразования и векторы движения могут быть представлены с использованием синтаксических элементов, и вместе с управляющей информацией формируют кодированное представление последовательности видео. В некоторых случаях, кодер видео может энтропийно кодировать синтаксические элементы, тем самым дополнительно уменьшая количество битов, необходимых для их представления.
[0051] Декодер видео может, используя синтаксические элементы и управляющую информацию, обсужденные выше, конструировать данные предсказания (например, блок предсказания) для декодирования текущего кадра. Например, декодер видео может суммировать предсказанный блок и сжатую ошибку предсказания. Декодер видео может определять сжатую ошибку предсказания взвешиванием базисных функций преобразования с использованием квантованных коэффициентов. Разность между восстановленным кадром и исходным кадром называется ошибкой восстановления.
[0052] Как более подробно изложено ниже, описываемые здесь системы, аппаратуры, способы (также называемые процессами) и считываемые компьютером носители относятся к назначению режимов интра-предсказания для блоков, кодированных импульсно-кодовой модуляцией области квантованных на блочной основе остатков (BDPCM). Режимы кодирования BDPCM аналогичны интра-предсказанию, но также включают в себя определение построчной разности, выполняемое на преобразованных и квантованных коэффициентах, сгенерированных из остаточных данных. Режимы BDPCM могут включать в себя горизонтальный BDPCM и вертикальный BDPCM.
[0053] В некоторых случаях, кодирование режима интра- предсказания блока, кодируемого в текущее время (называемого текущим блоком), может включать в себя генерирование списка предсказателей наиболее вероятных режимов (MPM). Некоторое количество режимов интра-предсказания может быть включено в список предсказателей MPM (именуемый режимами MPM), причем остальные режимы называются режимами не-MPM. Способы и системы, описанные в данном документе, обеспечивают отображение одного или более режимов BDPCM на один или более режимов интра- предсказания и включение отображенного режим интра-предсказания в список предсказателей MPM для текущего блока.
[0054] В некоторых примерах, способы, описанные в данном документе, могут быть применены к любому из существующих кодеков видео (например, высокоэффективного кодирования видео (HEVC), усовершенствованного кодирования видео (AVC) или другого подходящего существующего кодека видео), и/или могут быть эффективным инструментом кодирования для любых стандартов кодирования видео, разрабатываемых и/или будущих стандартов кодирования видео, таких как, например, многоцелевое кодирование видео (VVC), модель совместного исследования (JEM), VP9, AVI и/или другой стандарт кодирования видео, находящийся в разработке или подлежащий разработке. В некоторых случаях, методики, описанные в данном документе, могут выполняться для сжатия на основе изображения (например, метод кодирования Объединенной группы экспертов по фотографии (JPEG) и/или другой метод кодирования изображения).
[0055] Фиг. 1 представляет собой блок-схему, иллюстрирующую пример системы 100, включающей в себя устройство 104 кодирования и устройство 112 декодирования. Устройство 104 кодирования может быть частью устройства-источника, и устройство 112 декодирования может быть частью приемного устройства (также называемого клиентским устройством). Устройство-источник и/или приемное устройство могут включать в себя электронное устройство, такое как мобильный или стационарный телефонный аппарат (например, смартфон, сотовый телефон и т.п.), настольный компьютер, портативный компьютер или ноутбук, планшетный компьютер, телевизионная приставка, телевизор, камера, устройство отображения, цифровой медиаплеер, видеоигровая консоль, устройство потокового видео, камера Интернет-протокола (IP), серверное устройство в серверной системе, включающей в себя одно или более серверных устройств (например, серверная система потокового видео или другая подходящая серверная система), наголовный дисплей (HMD), проекционный дисплей (HUD), умные очки (например, очки виртуальной реальности (VR), очки дополненной реальности (AR) или другие умные очки) или любое другое подходящее электронное устройство.
[0056] Компоненты системы 100 могут включать в себя и/или могут быть реализованы с использованием электронных схем или других электронных аппаратных средств, которые могут включать в себя одну или более программируемых электронных схем (например, микропроцессоры, графические процессоры (GPU), цифровые сигнальные процессоры (DSP), центральные процессоры (CPU) и/или другие подходящие электронные схемы) и/или могут включать в себя и/или быть реализованы с использованием компьютерного программного обеспечения, встроенного программного обеспечения или любой их комбинации, чтобы выполнять различные операции, описанные в данном документе.
[0057] Хотя система 100 показана, как включающая в себя некоторые компоненты, специалисту в данной области техники будет понятно, что система 100 может включать в себя больше или меньше компонентов, чем показано на фиг. 1. Например, система 100 также может включать в себя, в некоторых случаях, одно или более устройств памяти, отличных от хранилища 108 и хранилища 118 (например, один или более компонентов памяти с произвольным доступом (RAM), постоянную память (ROM), компоненты кэш-памяти, буферные компоненты, компоненты базы данных и/или другие устройства памяти), одно или более устройств обработки (например, один или более CPU, GPU и/или другие устройства обработки) в коммуникации с одним или более устройствами памяти, один или более беспроводных интерфейсов (например, включая один или более приемопередатчиков и процессор основной полосы частот для каждого беспроводного интерфейса) для выполнения беспроводной связи, один или более проводных интерфейсов (например, последовательный интерфейс, такой как вход универсальной последовательной шины (USB), lightening-коннектор и/или другой проводной интерфейс) для осуществления связи по одному или более проводных соединений и/или другие компоненты, которые не показаны на фиг. 1.
[0058] Устройство 104 кодирования (или кодер) может использоваться для кодирования данных видео с использованием стандарта или протокола кодирования видео для генерации закодированного битового потока видео. Примеры стандартов кодирования видео включают ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 или ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual, ITU-T H.264 (также известный как ISO/IEC MPEG-4 AVC), включающий в себя его расширения, такие как масштабируемое кодирование видео (SVC) и многовидовое кодирование видео (MVC), и высокоэффективное кодирование видео (HEVC) или ITU-T H265. Существуют различные расширения для HEVC с многоуровневым кодированием видео, включая расширения кодирования диапазона и экранного контента, расширения 3D-кодирования видео (3D-HEVC) и многовидовые расширения (MV-HEVC) и масштабируемое расширение (SHVC). HEVC и его расширения были разработаны Объединенной группой по сотрудничеству в кодировании видео (JCT-VC), а также Объединенной группой по сотрудничеству в разработке расширений 3D-кодирования видео (JCT-3V) Группы экспертов по кодированию видео (VCEG) ITU-T и Группы экспертов по движущимся изображениям (MPEG) ISO/IEC.
[0059] MPEG и ITU-T VCEG также образовывали совместную группу по исследованиям видео (JVET), чтобы исследовать и разрабатывать новые инструменты кодирования видео для следующего поколения стандарта кодирования видео, называемого многоцелевым кодированием видео (VVC). Опорное программное обеспечение называется VVC Test Model (VTM). Целью VVC является обеспечение значительного улучшения характеристик сжатия по сравнению с существующим стандартом HEVC, способствующее развертыванию видео услуг более высокого качества и новых приложений (например, например, 360° всенаправленное иммерсивное мультимедиа, видео с высоким динамическим диапазоном (HDR), среди прочего). VP9 и Alliance of Open Media (AOMedia) Video 1 (AVI) являются другими стандартами кодирования видео, для которых могут применяться методики, описанные в данном документе.
[0060] Многие варианты осуществления, описанные в данном документе, могут быть выполнены с использованием кодеков видео, таких как VTM, VVC, HEVC, AVC и/или их расширения. Однако способы и системы, описанные в данном документе, также могут быть применимы к другим стандартам кодирования, таким как MPEG, Объединенная группа экспертов по фотографии (JPEG) (или другой стандарт кодирования для неподвижных изображений), VP9, AVI, их расширения или другие подходящие стандарты кодирования, уже доступные или еще не доступные или разработанные. Соответственно, хотя методики и системы, описанные в данном документе, могут быть описаны со ссылкой на конкретный стандарт кодирования видео, специалисту в данной области техники будет понятно, что описание не должно интерпретироваться только для этого конкретного стандарта.
[0061] Со ссылкой на фиг. 1, источник 102 видео может предоставлять данные видео в устройство 104 кодирования. Источник 102 видео может быть частью устройства-источника или частью устройства, отличного от устройства-источника. Источник 102 видео может включать в себя устройство захвата видео (например, видеокамеру, мобильный телефон с камерой, видеотелефон или т.п.), архив видео, содержащий сохраненное видео, сервер видео или поставщик контента, обеспечивающий данные видео, интерфейс подачи видео, принимающий видео от сервера видео или поставщика контента, систему компьютерной графики для генерации данных видео компьютерной графики, комбинацию таких источников или любой другой подходящий источник видео.
[0062] Данные видео от источника 102 видео могут включать в себя одну или более входных картинок. Картинки также могут упоминаться как "кадры". Картинка или кадр является неподвижным изображением, которое, в некоторых случаях, является частью видео. В некоторых примерах, данные от источника 102 видео могут быть неподвижным изображением, которое не является частью видео. В HEVC, VVC и других спецификациях кодирования видео, последовательность видео может включать в себя последовательность картинок. Картинка может включать в себя три массива выборок, обозначенных SL, SCb и SCr. SL представляет собой двумерный массив выборок яркости, SCb является двумерным массивом выборок цветности Cb, и SCr является двумерным массивом выборок цветности Cr. Выборки цветности также могут упоминаться как выборки "цветности". В других случаях, изображение может быть монохромным и включает в себя только массив выборок яркости.
[0063] Механизм 106 кодера (или кодер) устройства 104 кодирования кодирует данные видео для генерации закодированного битового потока видео. В некоторых примерах, закодированный битовый поток видео (или "битовый поток видео" или "битовый поток") является последовательностью одной или более кодированных последовательностей видео. Кодированная последовательность видео (CVS) включает в себя последовательность единиц доступа (AU), начиная с AU, которая имеет картинку точки произвольного доступа в базовом слое и с некоторыми свойствами вплоть до и не включая следующую AU, которая имеет картинку точки произвольного доступа в базовом слое и с некоторыми свойствами. Например, некоторые свойства картинки точки произвольного доступа, которая начинает CVS, могут включать в себя флаг передней картинки пропущенного произвольного доступа (RASL) (например, NoRaslOutputFlag), равный 1. Иначе, картинка точки произвольного доступа (с флагом RASL, равным 0) не начинает CVS. Единица доступа (AU) включает в себя одну или более кодированных картинок и управляющую информацию, соответствующую кодированным картинкам, которые совместно используют то же самое время вывода. Кодированные вырезки картинок инкапсулируются в уровне битового потока в блоки данных, называемые блоками уровня сетевой абстракции (NAL). Например, битовый поток видео HEVC может включать в себя одну или более CVS, включающих единицы NAL. Каждая из единиц NAL имеет заголовок единицы NAL. В одном примере, заголовок является однобайтовым для H.264/AVC (за исключением многослойных расширений) и двухбайтовым для HEVC. Синтаксические элементы в заголовке единицы NAL принимают назначенные биты и, следовательно, видимы для всех видов систем и транспортных уровней, таких как транспортный поток, транспортный протокол реального времени (RTP), файловый формат, среди прочего.
[0064] Два класса единиц NAL существуют в стандарте HEVC, включая единицы NAL уровня кодирования видео (VCL) и единицы не-VCL NAL. Единицы VCL NAL включают в себя кодированные данные картинки, образующие кодированный битовый поток видео. Например, последовательность битов, образующих кодированный битовый поток видео, представлена в единицах VCL NAL. Единица VCL NAL может включать в себя одну вырезку или сегмент вырезки (описанный ниже) кодированных данных картинки, и единица не-VCL NAL включает в себя управляющую информацию, которая относится к одной или более кодированным картинкам. В некоторых случаях, единица NAL может упоминаться как пакет. HEVC AU включает в себя единицы VCL NAL, содержащие кодированные данные картинки и единицы не-VCL NAL (если имеются), соответствующие кодированным данным картинки. Единицы не-VCL NAL могут содержать наборы параметров с информацией высокого уровня, относящейся к закодированному битовому потоку видео, в дополнение к другой информации. Например, набор параметров может включать в себя набор параметров видео (VPS), набор параметров последовательности (SPS) и набор параметров картинки (PPS). В некоторых случаях, каждая вырезка или другая часть битового потока может ссылаться на один активный PPS, SPS и/или VPS, чтобы позволять устройству 112 декодирования осуществлять доступ к информации, которая может использоваться для декодирования вырезки или другой части битового потока.
[0065] Единицы NAL могут содержать последовательность битов, образующих кодированное представление данных видео (например, закодированный битовый поток видео, CVS битового потока или т.п.), такое как кодированные представления картинок в видео. Механизм 106 кодера генерирует кодированные представления картинок путем разбиения каждой картинки на множество вырезок. Вырезка является независимой от других вырезок, так что информация в вырезке кодируется независимо от данных из других вырезок в пределах той же самой картинки. Вырезка включает в себя один или более сегментов вырезки, включающих в себя независимый сегмент вырезки и, если присутствует, один или более зависимых сегментов вырезки, которые зависят от предыдущих сегментов вырезки.
[0066] В HEVC, вырезки затем разбиваются на блоки дерева кодирования (CTB) выборок яркости и выборок цветности. CTB выборок яркости и один или более CTB выборок цветности, вместе с синтаксисом для выборок, называются единицей дерева кодирования (CTU). CTU также может упоминаться как "блок дерева" или "наибольшая единица кодирования" (LCU). CTU является основной единицей обработки для кодирования HEVC. CTU может быть разделена на множество единиц кодирования (CU) различных размеров. CU содержит массивы выборок яркости и цветности, которые упоминаются как блоки кодирования (CB).
[0067] CB яркости и цветности могут быть дополнительно разделены на блоки предсказания (PB). PB является блоком выборок компонента яркости или компонента цветности, который использует те же самые параметры движения для интер-предсказания или предсказания внутриблочного копирования (когда доступны или разрешены для использования). PB яркости и один или более PB цветности, вместе с ассоциированным синтаксисом, образуют единицу предсказания (PU). Для интер-предсказания, набор параметров движения (например, один или более векторов движения, опорные индексы или тому подобное) сигнализируется в битовом потоке для каждой PU и используется для интер-предсказания PB яркости и одного или более PВ цветности. Параметры движения также могут называться информацией о движении. CB также может быть разделен на один или более блоков преобразования (TB). TB представляет собой квадратный блок выборок цветового компонента, на котором применяется остаточное преобразование (например, то же самое двумерное преобразование в некоторых случаях) для кодирования остаточного сигнала предсказания. Единица преобразования (TU) представляет TB выборок яркости и цветности и соответствующие синтаксические элементы.
[0068] Размер CU соответствует размеру режима кодирования и может быть квадратным по форме. Например, размер CU может составлять 8×8 выборок, 16×16 выборок, 32×32 выборок, 64×64 выборок или любой другой подходящий размер вплоть до размера соответствующей CTU. Фраза "N×N" используется здесь для обозначения пиксельных размеров блока видео как вертикальных и горизонтальных размеров (например, 8 пикселов × 8 пикселов). Пикселы в блоке могут быть расположены в строках и столбцах. В некоторых вариантах осуществления, блоки могут не иметь одинаковое количество пикселов в горизонтальном направлении и в вертикальном направлении. Синтаксические данные, ассоциированные с CU, могут описывать, например, разделение CU на одну или более PU. Режимы разделения могут отличаться в случае кодирования CU в режиме интра-предсказания от кодирования в режиме интер-предсказания. PU могут быть разделены на неквадратные по форме. Синтаксические данные, ассоциированные с CU, также могут описывать, например, разделение CU на одну или более TU в соответствии с CTU. TU может иметь квадратную или неквадратную форму.
[0069] Согласно стандарту HEVC, преобразования могут выполняться с использованием единиц преобразования (TU). TU могут варьироваться для разных CU. TU могут иметь размер, основанный на размере PU в данной CU. TU могут быть одинакового размера или меньше, чем PU. В некоторых примерах, остаточные выборки, соответствующие CU, могут быть подразделены на меньшие единицы, используя структуру квадродерева, известную как остаточное квадродерево (RQT). Листовые узлы RQT могут соответствовать TU. Пиксельные разностные значения, ассоциированные с TU, могут быть преобразованы для получения коэффициентов преобразования. Коэффициенты преобразования затем могут быть квантованы посредством механизма 106 кодера.
[0070] Как только картинки данных видео разделены на CU, механизм 106 кодера предсказывает каждую PU с использованием режима предсказания. Затем единица предсказания или блок предсказания вычитается из исходных данных видео для получения остатков (описанных ниже). Для каждой CU, режим предсказания может сигнализироваться в битовом потоке с использованием синтаксических данных. Режим предсказания может включать в себя интра-предсказание (или внутрикадровое предсказание) или интер-предсказание (или межкадровое предсказание). Интра-предсказание использует корреляцию между пространственно соседними выборками в пределах картинки. Например, используя интра-предсказание, каждая PU предсказывается из соседних данных картинки в той же самой картинке с использованием, например, предсказания DC, чтобы найти среднее значение для PU, планарного предсказания для подгонки планарной поверхности к PU, направленного предсказания для экстраполирования из соседних данных или любых других подходящих типов предсказания. Интер-предсказание использует временную корреляцию между картинками, чтобы вывести предсказание с компенсацией движения для блока выборок изображения. Например, с использованием интер-предсказания, каждая PU предсказывается с использованием предсказания с компенсацией движения из данных изображения в одной или более опорных картинках (до или после текущей картинки в порядке вывода). Решение, следует ли кодировать область картинки с использованием межкадрового или внутрикадрового предсказания, может быть сделано, например, на уровне CU.
[0071] Механизм 106 кодера и механизм 116 декодера (более подробно описанные ниже) могут быть сконфигурированы, чтобы работать в соответствии с VVC. В соответствии с VVC, кодер видео (такой как механизм 106 кодера и/или механизм 116 декодера) разбивает картинку на множество единиц дерева кодирования (CTU) (где CTB выборок яркости и один или более CTB выборок цветности, вместе с синтаксисом для выборок, упоминаются как CTU). Кодер видео может разбивать CTU в соответствии с древовидной структурой, такой как структура квадродерева-двоичного дерева (QTBT) или структура дерева множества типов (МТТ). Структура QTBT удаляет концепции множества типов разделения, таких как разделение между CU, PU и TU в HEVC. Структура QTBT включает в себя два уровня, включающих в себя первый уровень, разделенный согласно разбиению квадродерева, и второй уровень, разделенный согласно разбиению двоичного дерева. Корневой узел структуры QTBT соответствует CTU. Листовые узлы двоичных деревьев соответствуют единицам кодирования (CU).
[0072] В структуре разбиения МТТ, блоки могут быть разделены с использованием разбиения квадродерева, разбиения двоичного дерева и одного или более типов разбиения троичного дерева. Разбиение троичного дерева является разбиением, в котором блок разделен на три подблока. В некоторых примерах, разбиение троичного дерева делит блок на три подблока без разделения исходного блока через центр. Типы разбиения в МТТ (например, квадродерево, двоичное дерево и троичное дерево) могут быть симметричными или асимметричными.
[0073] В некоторых примерах, кодер видео может использовать одну структуру QTBT или МТТ для представления каждого из компонентов яркости и цветности, тогда как в других примерах, кодер видео может использовать две или более структуры QTBT или МТТ, такие как одна структура QTBT или МТТ для компонента яркости и другая структура QTBT или МТТ для обоих компонентов цветности (или две структуры QTBT и/или МТТ для соответствующих компонентов цветности).
[0074] Кодер видео может быть сконфигурирован, чтобы использовать разбиение квадродерева на HEVC, разбиение QTBT, разбиение МТТ или другие структуры разбиения. Для иллюстративных целей, описание здесь может относиться к разбиению QTBT. Однако следует понимать, что методики настоящего раскрытия также могут применяться к кодерам видео, сконфигурированным для использования разбиения дерева квадрантов или других типов разбиения.
[0075] В некоторых примерах, одной или более вырезкам картинки назначается тип вырезки. Типы вырезки включают в себя интра-кодированную вырезку (I-вырезку), интер-кодированную P-вырезку и интер-кодированную B-вырезку. I-вырезка (интра-кодированные кадры, независимо декодируемые) является вырезкой картинки, которая кодируется только посредством интра-предсказания, и поэтому является независимо декодируемой, поскольку I-вырезка требует только данных в кадре для предсказания любой единицы предсказания или блока предсказания вырезки. P-вырезка (однонаправленно предсказанные кадры) является вырезкой картинки, которая может кодироваться с интра-предсказанием и с однонаправленным интер-предсказанием. Каждая единица предсказания или блок предсказания в P-вырезке кодируется с интра-предсказанием или интер-предсказанием. Когда применяется интер-предсказание, единица предсказания или блок предсказания предсказывается только одной опорной картинкой, и, следовательно, опорные выборки получают только из одной опорной области одного кадра. B-вырезка (двунаправленно предсказанные кадры) является вырезкой картинки, которая может кодироваться с интра-предсказанием и с интер-предсказанием (например, двунаправленное предсказание или однонаправленное предсказание). Единица предсказания или блок предсказания B-вырезки может двунаправленно предсказываться из двух опорных картинок, где каждая картинка вносит вклад в одну опорную область, и наборы выборок двух опорных областей взвешиваются (например, с равными весами или с разными весами) для получения сигнала предсказания двунаправленно предсказываемого блока. Как объяснено выше, вырезки одной картинки являются независимо кодируемыми. В некоторых случаях, картинка может кодироваться как одна вырезка.
[0076] Как отмечено выше, интра-предсказание использует корреляцию между пространственно соседними выборками в пределах картинки. Существует множество режимов интра-предсказания (также называемых "интра-режимами"). В некоторых примерах, интра- предсказание блока яркости включает в себя 35 режимов, включая планарный режим, режим DC и 33 угловых режима (например, диагональные режимы интра-предсказания и угловые режимы, смежные с диагональными режимами интра-предсказания). 35 режимов интра-предсказания, специфицированные в HEVC, индексируются, как показано в таблице 1 ниже. В других примерах, больше интра-режимов могут быть определены, включая углы предсказания, которые не могут быть уже представлены 33 угловыми режимами.
Таблица 1 - Спецификация режима интра-предсказания и ассоциированных имен
Режим интра-предсказания | Ассоциированное имя |
0 | INTRA_PLANAR |
1 | INTRA_DC |
2…34 | INTRA_ANGULAR2…INTRA_ANGULAR34 |
[0077] В других примерах, углы предсказания, ассоциированные с угловыми режимами, могут отличаться от углов предсказания, используемых в HEVC. Например, 67 режимов интра-предсказания специфицированы в VVC, как показано на фиг. 2 и в таблице 2 ниже. В некоторых случаях, режимы интра-предсказания INTRA_LT CCLM, INTRA_L_CCLM и INTRA_T_CCLM применимы только к компонентам цветности.
Таблица 2 - Спецификация режима интра-предсказания и ассоциированных имен
Режим интра-предсказания | Ассоциированное имя |
0 | INTRA_PLANAR |
1 | INTRA_DC |
2…66 | INTRA_ANGULAR2…NTRA_ANGULAR66 |
81…83 | INTRA_LT_CCLM, INTRA_L_CCLM, INTRA_T_CCLM |
[0078] Интер-(между картинками) предсказание использует временную корреляцию между картинками, чтобы вывести предсказание с компенсацией движения для блока выборок картинки. Используя модель поступательного движения, позиция блока в ранее декодированной картинке (опорной картинке) указывается вектором движения (Δх, Δy), при этом Δх определяет горизонтальное смещение и Δy указывает вертикальное смещение опорного блока относительно позиции текущего блока. В некоторых случаях, вектор движения (Δх, Δy) может указываться с точностью целочисленных выборок (также упоминается как целочисленная точность), в этом случае вектор движения указывает на цело-пиксельную сетку (или цело-пиксельную сетку дискретизации) опорного кадра. В некоторых случаях, вектор движения (Δх, Δy) может иметь точность дробной выборки (также упоминается как дробно-пиксельная точность или нецелочисленная точность) для более точного захвата движения базового объекта без ограничения цело-пиксельной сеткой опорного кадра. Точность векторов движения может быть выражена посредством уровня квантования векторов движения. Например, уровень квантования может быть целочисленной точностью (например, 1 пиксела) или дробно-пиксельной точностью (например, 1/4 пиксела, 1/2 пиксела или другим субпиксельным значением). Интерполяция применяется на опорных картинках для получения сигнала предсказания, когда соответствующий вектор движения имеет точность дробной выборки. Например, выборки, доступные в целочисленных позициях, могут быть отфильтрованы (например, с использованием одного или более интерполяционных фильтров) для оценки значений в дробных положениях. Ранее декодированная опорная картинка указывается посредством опорного индекса (refrdx) в список опорных картинок. Векторы движения и опорные индексы могут упоминаться как параметры движения. Могут выполняться два вида интер-предсказания, включая однонаправленное и двунаправленное предсказание.
[0079] В интер-предсказании с использованием двунаправленного предсказания, два набора параметров движения (Δх0, Δy0, refIdх0) и (Δх1, Δy1, refIdх1) используются, чтобы сгенерировать два предсказания с компенсацией движения (из одной и той же опорной картинки или, возможно, из разных опорных картинок). Например, при двунаправленном предсказании, каждый блок предсказания использует два сигнала предсказания с компенсацией движения и генерирует блоки В-предсказания. Два предсказания с компенсацией движения затем объединяются для получения окончательного предсказания с компенсацией движения. Например, два предсказания с компенсацией движения могут комбинироваться путем усреднения. В другом примере, может быть использовано взвешенное предсказание, в этом случае различные веса могут применяться к каждому предсказанию с компенсацией движения. Опорные картинки, которые могут использоваться при двунаправленном предсказании, сохраняются в двух отдельных списках, обозначенных как список 0 и список 1. Параметры движения могут быть выведены в кодере с использованием процесса оценки движения.
[0080] С интер-предсказанием с использованием однонаправленного предсказания, один набор параметров движения (Δх0, Δy0, refIdх0) используется для генерации предсказания с компенсацией движения из опорной картинки. Например, при однонаправленном предсказании, каждый блок предсказания использует по меньшей мере один сигнал предсказания с компенсацией движения и генерирует блоки Р-предсказания.
[0081] PU может включать в себя данные (например, параметры движения или другие подходящие данные), связанные с процессом предсказания. Например, когда PU кодируется с использованием интра-предсказания, PU может включать в себя данные, описывающие режим интра-предсказания для PU. В качестве другого примера, когда PU кодируется с использованием интер-предсказания, PU может включать в себя данные, определяющие вектор движения для PU. Данные, определяющие вектор движения для PU, могут описывать, например, горизонтальный компонент вектора движения (Δх), вертикальный компонент вектора движения (Δy), разрешение для вектора движения (например, целочисленную точность, точность 1/4 пиксела или точность 1/8 пиксела), опорное изображение, на которое указывает вектор движения, опорный индекс, список опорных картинок (например, список 0, список 1 или список С) для вектора движения или любую их комбинацию.
[0082] После выполнения предсказания с использованием интра- и/или интер-предсказания, устройство 104 кодирования может выполнять преобразование и квантование. Например, после предсказания, механизм 106 кодера может вычислять остаточные значения, соответствующие PU. Остаточные значения могут содержать значения разности пикселов между текущим блоком кодируемых пикселов (PU) и блоком предсказания, используемым для предсказания текущего блока (например, предсказанной версии текущего блока). Например, после генерации блока предсказания (например, с использованием интер-предсказания или интра-предсказания), механизм 106 кодера может генерировать остаточный блок вычитанием блока предсказания, полученного блоком предсказания, из текущего блока. Остаточный блок включает в себя набор значений разности пикселов, которые количественно определяют различия между значениями пикселов текущего блока и значениями пикселов блока предсказания. В некоторых примерах, остаточный блок может быть представлен в формате двумерного блока (например, двумерной матрицы или массива значений пикселов). В таких примерах, остаточный блок является двумерным представлением значений пикселов.
[0083] Любые остаточные данные, которые могут остаться после выполнения предсказания, преобразуются с использованием блочного преобразования, которое может быть основано на дискретном косинусном преобразовании (DCT), дискретном синусном преобразовании (DST), целочисленном преобразовании, вейвлет-преобразовании, другой подходящей функции преобразования или любой их комбинации. В некоторых случаях, одно или более блочных преобразований (например, ядро размера 32×32, 16×16, 8×8, 4×4 или другого подходящего размера) могут быть применены к остаточным данным в каждой CU. В некоторых примерах, TU может использоваться для процессов преобразования и квантования, реализуемых механизмом 106 кодера. Данная CU, имеющая одну или более PU, может также включать в себя одну или более TU. Как более подробно описано ниже, остаточные значения могут быть преобразованы в коэффициенты преобразования с использованием блочных преобразований, а затем могут квантоваться и сканироваться с использованием TU для получения преобразованных в последовательную форму коэффициентов преобразования для энтропийного кодирования.
[0084] В некоторых вариантах осуществления после кодирования c интра-предсказанием или интер-предсказанием с использованием PU из CU, механизм 106 кодера может вычислять остаточные данные для TU из CU. PU могут содержать пиксельные данные в пространственной области (или пиксельной области). Как отмечено ранее, остаточные данные могут соответствовать значениям разности пикселов между пикселами незакодированной картинки и значениями предсказания, соответствующими PU. Механизм 106 кодера может формировать одну или более TU, включающих в себя остаточные данные для CU (которая включает в себя PU), и затем может преобразовывать TU для получения коэффициентов преобразования для CU. TU могут содержать коэффициенты в области преобразования после применения блочного преобразования.
[0085] Механизм 106 кодера может выполнять квантование коэффициентов преобразования. Квантование обеспечивает дополнительное сжатие посредством квантования коэффициентов преобразования для уменьшения количества данных, используемых для представления коэффициентов. Например, квантование может уменьшить битовую глубину, ассоциированную с некоторыми или всеми из коэффициентов. В одном примере, коэффициент с n-битовым значением может быть округлен до m-битового значения во время квантования, причем n больше, чем m.
[0086] После выполнения квантования, кодированный битовый поток видео включает в себя квантованные коэффициенты преобразования (также называются уровнями коэффициентов преобразования), информацию предсказания (например, режимы предсказания, векторы движения, векторы блоков и т.п.), информацию разбиения и любые другие подходящие данные, такие как другие синтаксические данные. Различные элементы кодированного битового потока видео затем могут энтропийно кодироваться механизмом 106 кодера. В некоторых примерах, механизм 106 кодера может использовать предопределенный порядок сканирования для сканирования квантованных коэффициентов преобразования, чтобы сформировать преобразованный в последовательную форму вектор, который может энтропийно кодироваться. В некоторых примерах, механизм 106 кодера может выполнять адаптивное сканирование. После сканирования квантованных коэффициентов преобразования для формирования вектора (например, одномерного вектора), механизм 106 кодера может энтропийно кодировать вектор. Например, механизм 106 кодера может использовать контекстно-адаптивное кодирование переменной длины, контекстно-адаптивное двоичное арифметическое кодирование, основанное на синтаксисе контекстно-адаптивное двоичное арифметическое кодирование, энтропийное кодирование с разбиением интервалов вероятности или другой подходящий метод энтропийного кодирования.
[0087] Выход 110 устройства 104 кодирования может отправлять блоки NAL, составляющие закодированные данные битового потока видео, по линии 120 связи на устройство 112 декодирования приемного устройства. Вход 114 устройства 112 декодирования может принимать единицы NAL. Линия 120 связи может включать в себя канал, обеспеченный беспроводной сетью, проводной сетью или комбинацией проводной и беспроводной сети. Беспроводная сеть может включать в себя любой беспроводной интерфейс или комбинацию беспроводных интерфейсов и может включать в себя любую подходящую беспроводную сеть (например, Интернет или другую сеть глобального охвата, пакетную сеть, WiFiТМ, радиочастотную (RF), сверхширокополосную (UWB), WiFi-Direct, сотовую, Long-Term Evolution (LTE), WiMaxТМ и т.п.). Проводная сеть может включать в себя любой проводной интерфейс (например, волокно, Ethernet, Ethernet по линиям питания, Ethernet по коаксиальному кабелю, цифровую сигнальную линию (DSL) или т.п.). Проводные и/или беспроводные сети могут быть реализованы с использованием различного оборудования, такого как базовые станции, маршрутизаторы, точки доступа, мосты, шлюзы, коммутаторы и т.п. Закодированные данные битового потока видео могут модулироваться согласно стандарту связи, такому как протокол беспроводной связи, и передаваться на приемное устройство.
[0088] В некоторых примерах, устройство 104 кодирования может хранить закодированные данные битового потока данных видео в хранилище 108. Выход 110 может извлекать закодированные данные битового потока видео из механизма 106 кодера или из хранилища 108. Хранилище 108 может включать в себя любой из множества распределенных или локально доступных носителей хранения данных. Например, хранилище 108 может включать в себя жесткий диск, дисковую память, флэш-память, энергозависимую или энергонезависимую память или любые другие подходящие цифровые носители хранения для хранения закодированных данных видео. Хранилище 108 также может включать в себя буфер декодированных картинок (DPB) для хранения опорных картинок для использования в интер-предсказании. В другом примере, хранилище 108 может соответствовать файловому серверу или другому промежуточному устройству хранения, которое может хранить закодированное видео, сгенерированное устройством-источником. В таких случаях, приемное устройство, включающее в себя устройство 112 декодирования, может осуществлять доступ к сохраненным данным видео из устройства хранения посредством потоковой передачи или загрузки. Файловый сервер может быть сервером любого типа, способным хранить закодированные данные видео и передавать эти закодированные данные видео на приемное устройство. Примерные файловые серверы включают в себя веб-сервер (например, для веб-сайта), сервер FTP, сетевые устройства хранения (NAS) или накопитель на локальном диске. Приемное устройство может осуществлять доступ к закодированным данным видео через любое стандартное соединение данных, включая Интернет-соединение. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем и т.д.) или их комбинацию, подходящую для доступа к закодированным данным видео, хранящимся на файловом сервере. Передача закодированных данных видео из хранилища 108 может представлять собой потоковую передачу, передачу загрузки или их комбинацию.
[0089] Вход 114 устройства 112 декодирования принимает закодированные данные битового потока видео и может выдавать данные битового потока видео в механизм 116 декодера или в хранилище 118 для последующего использования механизмом 11610 декодера. Например, хранилище 118 может включать в себя DPB для хранения опорных картинок для использования в интер-предсказании. Приемное устройство, включающее в себя устройство 112 декодирования, может принимать закодированные данные видео, подлежащие декодированию, через хранилище 108. Закодированные данные видео могут модулироваться согласно стандарту связи, такому как протокол беспроводной связи, и передаваться на приемное устройство. Среда связи для передачи закодированных данных видео может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр или одна или более физических линий передачи. Среда связи может формировать часть сети с коммутацией пакетов, такой как локальная сеть, сеть широкого охвата или глобальная сеть, такая как Интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, полезное для облегчения связи от устройства-источника к приемному устройству.
[0090] Механизм 116 декодера может декодировать закодированные данные битового потока видео посредством энтропийного декодирования (например, с использованием энтропийного декодера) и извлечения элементов одной или более кодированных последовательностей видео, составляющих кодированные данные видео. Механизм 116 декодера может затем повторно масштабировать и выполнять обратное преобразование для закодированных данных битового потока видео. Остаточные данные затем передаются на стадию предсказания механизма 116 декодера. Затем механизм 116 декодера предсказывает блок пикселов (например, PU). В некоторых примерах, предсказание суммируется с выводом обратного преобразования (остаточные данные).
[0091] Устройство 112 декодирования видео может выводить декодированное видео на устройство-получатель 122 видео, которое может включать в себя дисплей или другое устройство вывода для отображения декодированных данных видео потребителю контента. В некоторых аспектах, устройство-получатель 122 видео может быть частью приемного устройства, которое включает в себя устройство 112 декодирования. В некоторых аспектах, устройство-получатель 122 видео может быть частью отдельного устройства, отличного от приемного устройства.
[0092] В некоторых вариантах осуществления, устройство 104 кодирования видео и/или устройство 112 декодирования видео могут интегрироваться с устройством кодирования аудио и устройством декодирования аудио, соответственно. Устройство 104 кодирования видео и/или устройство 112 декодирования видео также могут включать в себя другие аппаратные средства или программное обеспечение, необходимые для реализации описанных способов кодирования, такие как один или более микропроцессоров, процессоры цифровых сигналов (DSP), специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA), дискретная логика, программное обеспечение, аппаратные средства, встроенное программное обеспечение или их комбинации. Устройство 104 кодирования видео и устройство 112 декодирования видео могут интегрироваться как часть объединенного кодера/декодера (кодека) в соответствующем устройстве.
[0093] Примерная система, показанная на фиг. 1, является одним иллюстративным примером, который может быть использован здесь. Методики для обработки данных видео с использованием описанных способов могут быть выполнены любым цифровым устройством кодирования и/или декодирования видео. Хотя в общем случае методики этого раскрытия выполняются устройством кодирования видео или устройством декодирования видео, методики также могут выполняться объединенным кодером-декодером видео, обычно называемым "кодеком". Кроме того, методики этого раскрытия также могут выполняться препроцессором видео. Устройство-источник и приемное устройство являются просто примерами таких устройств кодирования, в которых устройство-источник генерирует кодированные данные видео для передачи в приемное устройство. В некоторых примерах, устройство-источник и приемное устройство могут работать по существу симметричным образом, так что каждое из устройств включает в себя компоненты кодирования и декодирования видео. Следовательно, примерные системы могут поддерживать одностороннюю или двухстороннюю передачу видео между видеоустройствами, например, для потокового видео, воспроизведения видео, видеовещания или видеотелефонии. Пример конкретных подробностей устройства 104 кодирования описан ниже со ссылкой на фиг. 12. Пример конкретных подробностей устройства 112 декодирования описан ниже со ссылкой на фиг. 13.
[0094] Расширения для стандарта HEVC включают в себя расширение Многовидовое кодирование видео, упоминаемое как MV-HEVC, и расширение Масштабируемое кодирование видео, упоминаемое как SHVC. Расширения MV-HEVC и SHVC совместно используют концепцию многоуровневого кодирования, причем различные уровни включены в кодированный битовый поток видео. Каждый уровень в кодированной последовательности видео адресуется уникальным идентификатором уровня (ID). ID уровня может присутствовать в заголовке единицы NAL для идентификации уровня, с которым связана единица NAL. В MV-HEVC, различные уровни могут представлять различные виды одной и той же сцены в битовом потоке видео. В SHVC предусмотрены различные масштабируемые уровни, которые представляют битовый поток видео в разных пространственных разрешениях (или разрешающей способности картинки) или с различной точностью восстановления. Масштабируемые уровни могут включать в себя базовый уровень (с ID уровня=0) и один или более уровней расширения (с ID уровня=1, 2,… N). Базовый уровень может соответствовать профилю первой версии HEVC и представляет самый нижний доступный уровень в битовом потоке. Уровни расширения имеют увеличенное пространственное разрешение, временное разрешение или частоту кадров и/или точность (или качество) восстановления по сравнению с базовым уровнем. Уровни расширения иерархически организованы и могут (или не могут) зависеть от нижних уровней. В некоторых примерах, различные уровни могут кодироваться с использованием одного стандартного кодека (например, все уровни кодируются с использованием HEVC, SHVC или другого стандарта кодирования). В некоторых примерах, различные уровни могут кодироваться с использованием кодека множества стандартов. Например, базовый уровень может кодироваться с использованием AVC, в то время как один или более уровней расширения могут кодироваться с использованием расширений SHVC и/или MV-HEVC стандарта HEVC.
[0095] В общем, уровень включает в себя набор единиц VCL NAL и соответствующий набор единиц не-VCL NAL. Единицы NAL назначаются конкретному значению ID уровня. Уровни могут быть иерархическими в том смысле, что уровень может зависеть от нижнего слоя. Набор уровней относится к набору уровней, представленных в битовом потоке, которые являются автономными, что означает, что уровни в наборе уровней могут зависеть от других уровней в наборе уровней в процессе декодирования, но не зависят от любых других уровней для декодирования. Соответственно, уровни в наборе уровней могут формировать независимый битовый поток, который может представлять видеоконтент. Набор уровней может быть получен из другого битового потока посредством операции процесса извлечения битового подпотока. Набор уровней может соответствовать набору уровней, подлежащему декодированию, когда декодеру желательно работать в соответствии с некоторыми параметрами.
[0096] Как описано выше, битовый поток HEVC включает в себя группу единиц NAL, включая единицы VCL NAL и единицы не-VCL NAL. Единицы VCL NAL включают в себя кодированные данные картинки, образующие кодированный битовый поток видео. Например, последовательность битов, образующих кодированный битовый поток видео, присутствует в единицах VCL NAL. Единицы не-VCL NAL могут содержать наборы параметров с информацией высокого уровня, относящейся к закодированному битовому потоку видео, в дополнение к другой информации. Например, набор параметров может включать в себя набор параметров видео (VPS), набор параметров последовательности (SPS) и набор параметров картинки (PPS). Примеры целей для наборов параметров включают в себя эффективность битовой скорости, устойчивость к ошибкам и обеспечение интерфейсов уровня систем. Каждая вырезка обращается к одному активному PPS, SPS и VPS для доступа к информации, которую устройство 112 декодирования может использовать для декодирования вырезки. Идентификатор (ID) может кодироваться для каждого набора параметров, включающего в себя VPS ID, SPS ID и PPS ID. SPS включает в себя SPS ID и VPS ID. PPS включает в себя PPS ID и SPS ID. Каждый заголовок вырезки включает в себя PPS ID. Используя ID, можно идентифицировать наборы активных параметров для данной вырезки.
[0097] PPS включает в себя информацию, которая применяется ко всем вырезкам в данной картинке. Поэтому все вырезки в картинке ссылаются на один и тот же PPS. Вырезки в различных картинках могут также ссылаться на тот же PPS. SPS включает в себя информацию, которая применяется ко всем картинки в той же самой кодированной последовательности видео (CVS) или битовому потоку. Как описано выше, кодированная последовательность видео представляет собой последовательность единиц доступа (АU), которая начинается с картинки произвольной точки доступа (например, опорная картинка мгновенного декодирования (IDR) или картинка доступа прерванной линии связи (BLA) или другая подходящая картинка произвольной точки доступа) в базовом уровне и с некоторыми свойствами (описано выше) вплоть до и не включая следующую AU, которая имеет картинку произвольной точки доступа в базовом уровне и с некоторыми свойствами (или конец битового потока). Информация в SPS может не изменяться от картинки к картинке в кодированной последовательности видео. Картинки в кодированной последовательности видео могут использовать тот же самый SPS. VPS включает в себя информацию, которая применяется ко всем уровням в кодированной последовательности видео или битовом потоке. VPS включает в себя синтаксическую структуру с синтаксическими элементами, которые применяются ко всем кодированным последовательностям видео. В некоторых вариантах осуществления VPS, SPS или PPS могут передаваться в полосе с закодированным битовым потоком. В некоторых вариантах осуществления, VPS, SPS или PPS могут передаваться вне полосы в передаче иной, чем единицы NAL, содержащие кодированные данные видео.
[0098] Битовый поток видео также может включать в себя сообщения дополнительной информации расширения (SEI). Например, единица SEI NAL может быть частью битового потока видео. В некоторых случаях, сообщение SEI может содержать информацию, которая не требуется для процесса декодирования. Например, информация в сообщении SEI может быть несущественной для декодера для декодирования картинок видео из битового потока, но декодер может использовать эту информацию для улучшения отображения или обработки картинок (например, декодированного вывода). Информация в сообщении SEI может представлять собой вложенные метаданные. В одном иллюстративном примере, информация в сообщении SEI может использоваться объектами на стороне декодера для улучшения видимости контента. В некоторых случаях, некоторые стандарты приложений могут требовать присутствия таких сообщений SEI в битовом потоке, так что улучшение качества может быть доведено до всех устройств, которые соответствуют такому стандарту приложений (например, перенос сообщения SEI компоновки кадра для формата совместимого с кадром плоско-стереоскопического 3DTV видео, где сообщение SEI переносится для каждого кадра видео, обработка сообщения SEI точки восстановления, использование сообщения SEI прямоугольника сканирования панорамного сканирования в DVB, в дополнение ко многим другим примерам).
[0099] В некоторых реализациях, устройство кодирования видео (например, кодер видео, декодер видео или комбинированный кодер-декодер или кодек) может использовать режим импульсно-кодовой модуляции (PCM) на блочной основе на остаточном блоке, который может упоминаться как PCM области квантованных на блочной основе остатков (BDPCM) или как дифференциальная (или дельта) PCM (RDPCM). Режимы предсказания BDPCM являются отдельными от режимов интра-предсказания. Фиг. 2 является диаграммой, предоставляющей примерную иллюстрацию 67 режимов интра-предсказания, ассоциированных с VVC, показанных как режимы 0-66. Режим 0 является планарным режимом, режим 1 является режимом DC, и режимы 2-66 являются угловыми режимами. Как описано выше, остаточный сигнал (или остаточный блок) может быть сгенерирован путем вычитания сигнала предсказания из сигнала текущего блока (соответствующего ошибке предсказания). Таким образом, остаточный сигнал является частью исходного сигнала, которая не может быть предсказана выбранным предсказателем. Кодер видео может предсказывать остаточный блок из соседних выборок в вертикальном или горизонтальном направлении. Как только остаточный блок определен, преобразование и квантование могут применяться для генерации квантованных коэффициентов.
[0100] Используя режим BDPCM, кодер видео может модифицировать значения строки или столбца квантованных коэффициентов на основе значений в предыдущей строке или столбце. Режимы BDPCM могут включать в себя горизонтальный BDPCM и вертикальный BDPCM. В одном иллюстративном примере вертикального BDPCM, кодер видео может поддерживать первую строку (называемую строкой 0) блока квантованных коэффициентов, как она есть. Для второй строки (строки 1) блока, кодер видео может вычитать значения в строке 0 из значений строки 1 (например, вычитать первое значение строки 0 из первого значения строки 1, вычитать второе значение строки 0 из второго значения строки 1 и т.д.). Кодер видео может вычитать значения в строке 1 из значений строки 2 для третьей строки (строки 2) блока, значения в строке 2 из значений строки 3 для четвертой строки (строки 3) блока и так далее. Вычитание может относиться к определению значений, равных результату вычитания, и может выполняться путем вычитания или суммирования отрицательного значения. Кодер видео может сигнализировать преобразованные и квантованные остаточные значения для строки 0, значения разности для строки 1, значения разности для строки 2 и так далее.
[0101] Фиг. 3 представляет собой блочную диаграмму, иллюстрирующую пример картинки 302, включающей в себя текущий блок 304, кодируемый устройством кодирования (например, устройством 104 кодирования, или кодеком, включающим в себя устройство 104 кодирования) с использованием вертикального режима BDPCM. Первый соседний блок текущего блока 304 показан над текущим блоком (упоминается как верхний соседний блок 306), и второй соседний блок текущего блока 304 показан слева от текущего блока (упоминается как левый соседний блок 308). Используя вертикальный режим BDPCM, текущий блок может быть предсказан из нижней строки 307 верхнего соседнего блока 306. Например, остаточный блок (представляющий остаточный сигнал) может быть сгенерирован для текущего блока 304 с использованием нижней строки верхнего соседнего блока 306. В случае, когда используется горизонтальный BDPCM, текущий блок может быть предсказан из крайнего правого столбца 309 левого соседнего блока 308.
[0102] Фиг. 4A является диаграммой, иллюстрирующей нижнюю строку 307 верхнего соседнего блока 306 с различными значениями, и фиг. 4В является диаграммой, иллюстрирующей текущий блок 304 с различными значениями. Значения в нижней строке 307 и значения в текущем блоке 304 представляют значения выборок (например, значения яркости, значения цветности или значения яркости и цветности). Фиг. 5 является диаграммой, иллюстрирующей пример остаточного блока 510, сгенерированного для текущего блока 304, с использованием нижней строки 307 верхнего соседнего блока 306. С использованием вертикального режима BDPCM, нижняя строка 307 верхнего соседнего блока 306 вычитается из каждой строки в текущем блоке 304 для получения остаточного блока 510. Например, нижняя строка 307 вычитается из первой строки (упоминается как строка 0) текущего блока 304 для определения первой строки (строки 0) остаточного блока 510. Первое значение 8 в нижней строке 307 вычитается из первого значения 11 в строке 0 текущего блока 304 для получения значения 3, которое включается в качестве первого значения остаточного блока 510. Второе значение 7 в нижней строке 307 вычитается из второго значения 12 в строке 0 текущего блока 304 для получения значения 5, которое включается в качестве второго значения остаточного блока 510. Третье значение 6 в нижней строке 307 вычитается из третьего значения 13 в строке 0 текущего блока 304 для получения значения 7, которое включается в качестве третьего значения остаточного блока 510. Четвертое значение 5 в нижней строке 307 вычитается из четвертого значения 14 в строке 0 текущего блока 304 для получения значения 9, которое включается в качестве четвертого значения остаточного блока 510. Аналогичные вычисления выполняются для определения значений во второй строке (строка 1), третьей строке (строка 2) и четвертой строке (строка 3) остаточного блока 510.
[0103] Устройство кодирования может выполнять преобразование на остаточном блоке 510 и может квантовать преобразованные значения для определения окончательных квантованных значений коэффициентов преобразования в код. Квантованные коэффициенты преобразования могут упоминаться как уровни коэффициентов преобразования или как уровни. Детали, относящиеся к преобразованию и квантованию, описаны выше со ссылкой на фиг. 1 и ниже со ссылкой на фиг. 12 и фиг. 13. Фиг. 6 является диаграммой, иллюстрирующей пример блока 620 с квантованными коэффициентами преобразования, полученными в результате преобразования и квантования значений в остаточном блоке 510. В нормальном режиме интра-предсказания (например, режимы интра-предсказания 0-66, показанные на фиг. 2), устройство кодирования будет кодировать квантованные коэффициенты преобразования, как они есть (например, посредством выполнения энтропийного кодирования квантованных коэффициентов преобразования, такого как использование контекстно-адаптивного двоичного арифметического кодирования (САВАС) или другого метода энтропийного кодирования).
[0104] При выполнении PDPCM, дополнительное предсказание выполняется на квантованных коэффициентах преобразования. Как отмечено выше, устройство кодирования может модифицировать значения строки или столбца квантованных коэффициентов на основе значений в предыдущей строке или столбце. Фиг. 7 является диаграммой, иллюстрирующей пример блока 730, включающего в себя значения, определенные из блока 620 квантованных коэффициентов преобразования с использованием вертикального BDPCM. Первая строка (упоминается как строка 0) блока 620 квантованных коэффициентов преобразования не изменяется и поддерживается, как она есть, в блоке 730. Например, как показано на фиг. 7, строка 0 блока 730 включает в себя значения 1, 2, 3 и 4, которые являются теми же значениями, что и в строке 0 блока 620. Для второй строки (строки 1) блока 730, устройство кодирования вычитает значения в строке 0 блока 620 из значений в строке 1 блока 620. Например, первое значение 1 в строке 0 блока 620 вычитается из первого значения 10 в строке 1 блока 620 для получения значения 9, которое включается в качестве первого значения в строке 1 блока 730. Второе значение 2 в строке 0 блока 620 вычитается из второго значения 11 в строке 1 блока 620 для получения значения 9, которое включается в качестве второго значения в строке 1 блока 730. Третье значение 3 в строке 0 блока 620 вычитается из третьего значения 12 в строке 1 блока 620 для получения значения 9, которое включается в качестве третьего значения в строке 1 блока 730. Четвертое значение 4 в строке 0 блока 620 вычитается из четвертого значения 13 в строке 1 блока 620 для получения значения 9, которое включается в качестве четвертого значения в строке 1 блока 730. В результате, вторая строка (строка 1) в блоке 730 включает в себя значения 9, 9, 9 и 9.
[0105] Подобные вычисления выполняются для определения значений в третьей строке (строке 2) и четвертой строке (строке 3) блока 730. Например, третья строка (строка 2) блока 730 определяется вычитанием значений в строке 1 блока 620 из значений в строке 2 блока 620, и третья строка (строка 3) блока 730 определяется вычитанием значений в строке 2 блока 620 из значений в строке 3 блока 620. Устройство кодирования может затем кодировать значения в блоке 730 (например, выполняя энтропийное кодирование квантованных коэффициентов преобразования, например, с помощью контекстно-адаптивного двоичного арифметического кодирования (САВАС) или другого метода энтропийного кодирования). Кодированные значения могут быть включены в закодированный битовый поток видео и сохранены и/или переданы для приема устройством для декодирования. Устройство декодирования может выполнять обратный процесс, как описано выше, для выполнения BDPCM для декодирования блока, который был закодирован с использованием BDPCM.
[0106] Режимы предсказания BDPCM сигнализируются отдельно от сигнализации режимов интра-предсказания. Различные синтаксические элементы и переменные, ассоциированные с режимами предсказания BDPCM, могут сигнализироваться устройством кодирования и использоваться устройством декодирования для определения, следует ли декодировать блок с использованием режима BDPCM. Например, синтаксические элементы и/или переменные могут сигнализироваться, указывая, использует ли блок режим BDPCM вместе с синтаксическими элементами и/или переменными, указывающими направление предсказания BDPCM (например, горизонтальное или вертикальное). Сигнализация режима интра-предсказания использует предсказатели, чтобы сигнализировать режимы интра-предсказания, которые могут использоваться для кодирования блока. В некоторых примерах, предсказатели могут сигнализироваться в списке предсказателей наиболее вероятных режимов (MPM) (также упоминается как список MPM). Как показано на фиг. 2, VVC специфицирует 67 доступных режимов интра-предсказания. Некоторое количество режимов интра-предсказания (например, пять в VVC, три в HEVC или другое подходящее число) может быть включено в список MPM. Режимы интра-предсказания, включенные в список MPM, упоминаются как режимы MPM. Остальные режимы (отличные от режимов MPM) упоминаются как режимы не-MPM. В некоторых случаях, список MPM может быть определен как candModeList[].
[0107] Генерация списка MPM выполняется с использованием одного и того же процесса в кодере и декодере. Например, устройство кодирования и устройство декодирования могут независимо генерировать список MPM для блока. Устройство кодирования может сигнализировать информацию, которую декодер может использовать для выбора режима интра-предсказания для блока из режимов MPM (в списке MPM) или из режимов не-MPM. В некоторых случаях, генерация MPM задается только для интра- предсказания выборок яркости. Например, генерация MPM задана в VVC только для интра-предсказания выборок яркости (не цветности). В других случаях, генерация MPM может задаваться и выполняться для выборок яркости и выборок цветности.
[0108] Наиболее вероятные режимы в списке MPM могут рассматриваться как "специальные", так как они сигнализируются иначе, чем остальные режимы. Режимы MPM сохраняются для блока в списке MPM, потому что они сигнализируются отдельно. В VVC, планарный режим был "исключен" из списка MPM; но планарный режим также сигнализируется отдельно от остальных режимов предсказания (например, других режимов интра-предсказания). Хотя планарный режим не включен в список MPM как таковой, он может рассматриваться как наиболее вероятный режим.
[0109] Для каждого блока, который кодируется (кодируется или декодируется), может быть определен список наиболее вероятных режимов. Кодируемый блок называется текущим блоком. Как отмечено выше, в VVC, планарный режим не включен в список MPM, который генерируется и не отнесен к числу наиболее вероятных режимов в списке MPM. Один или более из предсказателей для включения в список MPM для текущего блока могут быть выведены из режимов интра-предсказания, используемых для одного или более соседних блоков, которые соседствуют с текущим блоком. Например, два соседних блока, соседствующих с текущим блоком, могут быть выбраны для использования для вывода режимов для включения в список MPM для текущего блока. Местоположения блоков могут быть определены относительно текущего блока. Например, первый соседний блок текущего блока может включать в себя блок над текущим блоком (упоминается как верхний соседний блок), и второй соседний блок текущего блока может включать в себя блок слева от текущего блока (упоминается как левый соседний блок). В одном иллюстративном примере, всего пять режимов может быть включено в список MPM для блока, и два из пяти режимов являются режимами двух соседних блоков. В некоторых случаях, если оба режима соседних блоков идентичны, то они будут отсчитываться только в одной записи в списке MPM.
[0110] Фиг. 8 является диаграммой, иллюстрирующей пример картинки 802, включающей в себя текущий блок 804, который кодируется (кодируется или декодируются). Со ссылкой на фиг. 8, в качестве иллюстративного примера, при генерировании списка MPM для текущего блока 804, верхний соседний блок 806 и левый соседний блок 808 могут быть выбраны для использования для вывода предсказателей для списка MPM для текущего блока 804. В некоторых случаях, один режим интра-предсказания представляет два соседних блока (например, верхний соседний блок 806 и левый соседний блок 808), которые могут быть выбраны в качестве предсказателей для списка MPM для текущего блока (например, текущего блока 804). В некоторых примерах, если соседний блок кодируется в регулярном режиме интра-предсказания (например, одном из 67 режимов интра-предсказания, показанных на фиг. 2), то этот режим интра-предсказания выбирается в качестве репрезентативного режима для соседнего блока для включения в список MPM для текущего блока. В таких примерах, если соседний блок кодируется в режиме кодирования, ином, чем регулярный режим интра-предсказания (например, кодируется с использованием матричного интра-предсказания (MIP), интер-предсказания, интра-блочного копирования (IBC), BDPCM, недоступного или другого не-интра-режима предсказания), репрезентативный режим выбирается на основе некоторых правил. В одном примере, когда режим соседнего блока недоступен, такой как MIP-кодированный или не-интра-кодированный (например, интер, IBC и т.д.), репрезентативный режим интра-предсказания для соседнего блока может быть установлен как планарный или другой режим по умолчанию. Как описано ниже, если соседний блок кодируется с использованием BDPCM, то может иметься режим интра-предсказания, заданный для соседнего блока (например, горизонтальный, вертикальный и т.д.), который будет использоваться для списка MPM.
[0111] В некоторых реализациях, один или более режимов интра-предсказания (например, режим DC, упоминаемый как режим 0 на фиг. 2) всегда могут быть включены в список MPM в некотором положении (например, как первая запись в списке MPM). Например, в VVC, режим DC включается в список MPM (например, всегда включается в MPM в некотором положении). Остальные режимы MPM из МРМ для блока могут быть выведены из соседних режимов и/или других режимов по умолчанию. Например, устройство кодирования (например, устройство кодирования и/или устройство декодирования) может определять ближайшие режимы из режимов соседних блоков для заполнения списка MPM для блока. Например, если x и y являются соседними режимами блоков А и B, соответственно, то x+1, x-1, y+1, y-1, x+2 и т.д. могут быть включены в список MPM. В одном иллюстративном примере, если x является режимом 36 интра-предсказания, то x+1 является режимом 37 интра-предсказания, x-1 является режимом 35 интра-предсказания. Набор шагов может использоваться для определения, какие режимы будут добавлены, например, как задано в стандарте VVC. В некоторых случаях, режимы по умолчанию могут включать в себя вертикальный режим интра-предсказания (режим 50), горизонтальный режим интра-предсказания (режим 18) или другие режимы, которые могут быть добавлены в список MPM. Основное допущение при выведении может состоять в том, чтобы избегать повторений в списке MPM.
[0112] В одном примере, на основе двух режимов из двух соседних блоков, режима DC и двух режимов, выведенных из соседних режимов, пять режимов включены в список MPM для текущего блока. В некоторых случаях, другие количества режимов интра-предсказания могут быть включены в список MPM (например, три режима интра-предсказания согласно HEVC).
[0113] При кодировании текущего блока, устройство кодирования выбирает режим интра-предсказания (например, планарный, DC или угловой режим), чтобы кодировать текущий блок. Например, как описано ниже, устройство кодирования может выбрать один из множества возможных режимов кодирования, таких как один из множества режимов кодирования с интра-предсказанием или один из множества режимов кодирования с интер-предсказанием, для текущего блока на основе результирующей погрешности (например, скорости кодирования и уровня искажения и т.п.). Если выбранный режим принадлежит списку MPM, то флаг списка режимов интра-предсказания устанавливается в "истинно" (например, значение 1). В одном иллюстративном примере, флаг списка режимов интра-предсказания может быть обозначен как intra_luma_mpm_flag. Когда флаг списка режимов интра-предсказания установлен в "истинно" (например, intra_luma_mpm_flag равен 1), значение флага Planar, указывающее, является ли режим интра-предсказания непланарным режимом, сигнализируется в зависимости от того, является ли выбранный режим планарным. Флаг Planar может быть обозначен как intra_luma_not_planar_flag, где значение "истинно" (например, равное 1) intra_luma_not_planar_flag указывает, что режим MPM не является планарным режимом, и где значение "ложно" (например, равное 0) указывает, что режим MPM является планарным режимом. Если режим MPM не является планарным режимом (например, intra_luma_not_planar_flag равен 1), индекс в список MPM может сигнализироваться в закодированном битовом потоке видео. Индекс, ассоциированный со списком MPM, может быть обозначен как intra_luma_mpm_idx и может указывать режим MPM из списка MPM, который должен использоваться для текущего блока. Если выбранный режим не принадлежит списку MPM, то флаг списка режимов интра-предсказания (например, intra_luma_mpm_flag) устанавливается в "ложно" (например, со значением 0), и индекс не-MPM для режима интра-предсказания не-MPM сигнализируется в закодированном битовом потоке видео.
[0114] Что касается декодера, для текущего декодируемого блока, флаг списка режимов интра-предсказания (например, intra_luma_mpm_flag) может быть получен из закодированного битового потока видео. Как отмечено выше, флаг списка режимов интра-предсказания (например, intra_luma_mpm_flag) указывает декодеру, находится ли выбранный режим интра-предсказания среди режимов в списке MPM. В некоторых случаях, декодер может выбрать не выводить список MPM для блока, если флаг списка режимов интра-предсказания (например, intra_luma_mpm_flag) установлен в "ложно". Если флаг списка режимов интра-предсказания установлен в "истинно" (например, intra_luma_mpm_flag равен 1), флаг Planar (например, intra_luma_not_planar_flag) и/или индекс в список MPM (например, intra_luma_mpm_idx) используются для выбора режима из списка MPM. Например, если флаг Planar имеет значение "ложно" (например, intra_luma_not_planar_flag равен 0), декодер может определить, что режим MPM является планарным режимом. Если флаг Planar имеет значение "истинно" (например, intra_luma_not_planar_flag равен 1), декодер может определить, что режим MPM не является планарным режимом и может ссылаться на индекс (например, intra_luma_mpm_flag) в список MPM, чтобы определить, какой режим MPM в списке MPM следует выбрать для декодирования текущего блока. Если флаг списка режимов интра- предсказания установлен в "ложно" (например, intra_luma_mpm_flag равен 0), индекс не-MPM может использоваться декодером для выведения режима интра-предсказания не MPM, чтобы использоваться для декодирования текущего блока.
[0115] Как описано выше, режимы интра-предсказания, применяемые к одному или более соседним блокам, соседствующим с текущим блоком, могут использоваться в качестве режимов интра-предсказания MPM в списке MPM для текущего блока. Однако когда соседний блок кодируется с использованием режима BDPCM и не является режимом интра-предсказания (например, ни одним из 67 режимов интра-предсказания VVC, показанных на фиг. 2), нет режима интра-предсказания, ассоциированного с соседним блоком, который может быть добавлен в список MPM для текущего блока. Для целей извлечения интра-режима, блок, закодированный с использованием режима BDPCM, может требовать режима интра-предсказания, назначенного ему для выведения одного или более предсказателей режима интра-предсказания для будущих кодированных блоков. Например, при кодировании или декодировании текущего блока, устройство кодирования (например, устройство кодирования, устройство декодирования или кодек) может назначать режим интра-предсказания соседнему блоку (соседнему с текущим блоком), который кодируется с использованием режима BDPCM, и может включать назначенный режим интра-предсказания в список MPM для текущего блока. Некоторые методики назначают первый элемент списка предсказателей (например, первый элемент в списке MPM) как режим интра-предсказания для назначения BDPCM-кодируемому блоку. В некоторых случаях планарный режим, режим DC или другой режим могут рассматриваться как первая запись в списке MPM.
[0116] В настоящем документе описаны системы, способы, аппаратуры и считываемые компьютером носители для назначения режимов интра-предсказания для блоков, кодируемых посредством BDPCM. Может быть обеспечено отображение различных режимов BDPCM на различные режимы интра-предсказания. Например, горизонтальный режим интра-предсказания (например, режим 18) может быть отображен на горизонтальный режим BDPCM, и вертикальный режим интра-предсказания (например, режим 50) может быть отображен на вертикальный режим BDPCM. Используя такое отображение, горизонтальный режим интра-предсказания может быть назначен блоку, кодируемому с использованием горизонтального режима BDPCM, и вертикальный режим интра-предсказания может быть назначен блоку, кодируемому с использованием вертикального режима BDPCM. В некоторых случаях, планарный режим и/или режим DC могут быть назначены блокам, кодируемым посредством BDCPM.
[0117] Отображение между режимами интра-предсказания и режимами BDPCM может использоваться для выведения списков предсказателей (например, списков MPM) для будущих кодируемых блоков. Например, режим интра-предсказания, назначенный блоку, кодируемому посредством BDPCM, может быть включен в список предсказателей (например, список MPM) для текущего блока. В одном примере, на основе отображения между горизонтальным режимом интра-предсказания и горизонтальным режимом BDPCM, горизонтальный режим интра-предсказания может быть включен в список предсказателей MPM для текущего блока для представления соседнего блока, кодируемого с использованием горизонтального режима BDPCM. В другом примере, на основе отображения между вертикальным режимом интра-предсказания и вертикальным режимом BDPCM, вертикальный режим интра-предсказания может быть включен в список предсказателей MPM для текущего блока для представления соседнего блока, кодируемого с использованием вертикального режима BDPCM.
[0118] Фиг. 9 является диаграммой, иллюстрирующей пример картинки 902, включающей в себя текущий блок 904, который кодируется (например, кодируется устройством кодирования или декодируется устройством декодирования). При формировании списка MPM для текущего блока 904, верхний соседний блок 906 и левый соседний блок 908 могут быть выбраны для использования для получения предсказателей для списка MPM для текущего блока 904. Как показано, режим X интра-предсказания использовался для кодирования (кодирования или декодирования) левого соседнего блока 908. Режим X интра-предсказания может включать в себя, например, любой из 67 режимов интра-предсказания, показанных на фиг. 2. Режим X интра-предсказания может быть добавлен в список MPM для текущего блока 904.
[0119] Как показано на фиг. 9, BDPCM использовался для кодирования (кодирования или декодирования) упомянутого соседнего блока 906. В одном иллюстративном примере, режим BDPCM, используемый для кодирования упомянутого соседнего блока 906, является горизонтальным режимом BDPCM. В таком примере, горизонтальный режим BDPCM может быть отображен на горизонтальный режим интра-предсказания (например, режим 18 из фиг. 2) для представления верхнего соседнего блока 906. Горизонтальный режим интер-предсказания, представляющий верхний-соседний блок 906, может быть добавлен в список МРМ для текущего блока 904. В другом иллюстративном примере, режим BDPCM, используемый для кодирования верхнего соседнего блока 906, является вертикальным режимом BDPCM. В таком примере, вертикальный режим BDPCM может быть отображен на вертикальный режим интра-предсказания (например, режим 50 из фиг. 2) для представления верхнего соседнего блока 906. Вертикальный режим интра-предсказания, представляющий верхний соседний блок 906, может быть добавлен в список MPM для текущего блока 904. В некоторых реализациях, один или более других режимов интра- предсказания также могут быть включены в список MPM для текущего блока 904. Например, режим DC может быть включен в список MPM для текущего блока 904 в некоторых случаях.
[0120] В некоторых случаях горизонтальный режим BDPCM может быть отображен на горизонтальный режим интра-предсказания (например, режим 18 из фиг. 2) для представления соседнего блока, потому что свойства блока, которые могут обусловить выбор горизонтального режима BDPCM для применения к блоку, аналогичны свойствам блока, которые могут обусловить выбор горизонтального режима интра-предсказания для применения к блоку. На основе свойств блока, блок лучше всего подходил бы для предсказания с использованием горизонтального режима интра-предсказания (в случае, когда горизонтальный режим BDPCM был бы недоступен). В некоторых случаях, вертикальный режим BDPCM может быть отображен на вертикальный режим интра-предсказания (например, режим 18 из фиг. 2) для представления соседнего блока, поскольку свойства блока, которые могут обусловить выбор вертикального режима BDPCM для применения к блоку, аналогичны свойствам блока, которые могут обусловить выбор вертикального режима интра-предсказания для применения к блоку. На основе свойств блока, этот блок лучше всего подходил бы для предсказания с использованием вертикального режима интра-предсказания (в случае, когда вертикальный режим BDPCM был бы недоступен).
[0121] В некоторых реализациях, устройство кодирования (например, устройство кодирования, устройство декодирования или кодек) может применять режим интра-подразбиения (ISP) в дополнение к регулярной структуре или структурам древовидного разбиения. Например, картинка может быть разделена на единицы кодирования или блоки с использованием структуры QTBT или структуры МТТ, и единица кодирования или блок кодирования могут быть дополнительно разделены с использованием ISP. В режиме ISP, два или более разбиений, полученных в результате разделения блока кодирования, совместно используют один и тот же режим интра-предсказания. Например, два или более разбиений блока кодирования могут кодироваться или декодироваться отдельно (например, в последовательном порядке), но один и тот же режим интра-предсказания используется для каждого из двух или более разбиений. Например, в некоторых реализациях, если режим ISP задействован или выбран для применения для блока кодирования, то блок кодирования может быть разделен, и один и тот же режим интра-предсказания может быть применен к каждому из разбиений. В некоторых вариантах реализации, блоки, кодированные посредством BDPCM, могут обрабатываться как блоки, кодированные в не-ISP режиме. Например, блоки, закодированные с использованием BDPCM, могут не быть кодированными с использованием режима ISP.
[0122] Фиг. 10 является блок-схемой последовательности операций, иллюстрирующей пример процесса 1000 декодирования данных видео с использованием методик, описанных в данном документе. В некоторых примерах, процесс 1000 выполняется устройством декодирования (например, устройством 112 декодирования). В других примерах, процесс 1000 может быть реализован как инструкции в не-временном носителе хранения, которые побуждают устройство выполнять процесс 1000, когда процессоры устройства исполняют инструкции. В некоторых случаях, когда процесс 1000 выполняется посредством декодера видео, данные видео могут включать в себя кодированную картинку или часть (например, один или более блоков) кодированной картинки, включенной в закодированный битовый поток видео, или могут включать в себя множество кодированных картинок, включенных в закодированный битовый поток видео.
[0123] В блоке 1002, процесс 1000 включает в себя получение первого блока картинки, включенной в закодированный битовый поток видео. В некоторых реализациях, первый блок представляет собой блок кодирования яркости (например, включающий в себя выборки яркости, но не выборки цветности). В некоторых реализациях, первый блок представляет собой блок кодирования цветности (например, включающий в себя выборки цветности, но не выборки яркости). В некоторых реализациях, первый блок представляет собой блок кодирования, включающий в себя выборки яркости и выборки цветности.
[0124] В блоке 1004, процесс 1000 включает в себя определение второго блока картинки, кодируемого с использованием вертикального режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM). Как описано в данном документе, второй блок может быть соседним блоком первого блока в картинке. В одном иллюстративном примере, относящемся к фиг. 9, первый блок может включать в себя текущий блок 904, и второй блок может быть соседним блоком 906.
[0125] В блоке 1006, процесс 1000 включает в себя определение, на основе второго блока, кодируемого с использованием вертикального режима BDPCM, вертикального режима интра-предсказания для списка режимов интра-предсказания для первого блока. В блоке 1008, процесс 1000 включает в себя добавление вертикального режима интра-предсказания к списку режимов интра-предсказания для первого блока. В некоторых аспектах, список режимов интра-предсказания включает в себя список наиболее вероятных режимов (MPM).
[0126] В некоторых примерах, процесс 1000 включает в себя определение, на основе информации из закодированного битового потока видео и на основе списка режимов интра-предсказания, режима предсказания, чтобы использовать для декодирования первого блока. Процесс 1000 может декодировать первый блок с использованием определенного режима предсказания. В некоторых реализациях, информация из закодированного битового потока видео включает в себя флаг списка режимов интра-предсказания, указывающий, находится ли режим предсказания для использования для декодирования первого блока, среди числа режимов предсказания, включенных в список режимов интра-предсказания. Если режим предсказания, который должен использоваться для декодирования первого блока, принадлежит списку режимов интра-предсказания, то флаг списка режимов интра-предсказания может быть установлен в "истинно" (например, со значением 1). В одном иллюстративном примере, флаг списка режимов интра-предсказания может быть обозначен как intra_luma_mpm_flag. В некоторых примерах, процесс 1000 включает в себя определение, на основе значения флага списка режимов интра-предсказания, что режим предсказания для использования для декодирования первого блока, находится среди числа режимов предсказания, включенных в список режимов интра-предсказания (например, на основе флага списков режима интра-предсказания, имеющего значение 1). На основе определения того, что режим предсказания для использования для декодирования первого блока находится среди числа режимов предсказания, включенных в список режимов интра-предсказания, процесс 1000 может определять режим предсказания для использования для декодирования первого блока из списка режимов интра-предсказания. Как описано выше, если режим не принадлежит списку режимов интра-предсказания, флаг списка режимов интра-предсказания (например, intra_luma_mpm_flag) устанавливается в "ложно" (например, со значением 0), и индекс не-MPM для режима интра-предсказания не-MPM может сигнализироваться в закодированном битовом потоке видео.
[0127] В некоторых реализациях, информация в закодированном битовом потоке видео включает в себя значение индекса, ассоциированное со списком режима интра-предсказания. Например, информация может включать в себя флаг списка режимов интра- предсказания и значение индекса. В одном иллюстративном примере, индекс, ассоциированный со списком режимов интра-предсказания, может быть обозначен как intra_luma_mpm_idx и может указывать режим предсказания из списка режимов интра-предсказания, который должен использоваться для первого блока. Процесс 1000 может включать в себя определение режима предсказания для использования для декодирования первого блока из списка режимов интра-предсказания с использованием значения индекса.
[0128] В некоторых примерах, процесс 1000 включает в себя получение третьего блока картинки, включенного в закодированный битовый поток видео, и определение четвертого блока картинки, кодируемого с использованием горизонтального режима BDPCM на блочной основе. В таких примерах, процесс 1000 включает в себя определение, на основе четвертого блока, кодируемого с использованием горизонтального режима BDPCM, горизонтального режима интра-предсказания для списка режимов интра-предсказания для третьего блока и добавление горизонтального режима интра- предсказания к списку режимов интра-предсказания для третьего блока.
[0129] Фиг. 11 является блок-схемой последовательности операций, иллюстрирующей пример процесса 1100 кодирования данных видео с использованием методик, описанных в данном документе. В некоторых примерах, процесс 1100 выполняется устройством кодирования (например, устройством 104 кодирования). В других примерах, процесс 1100 может быть реализован как инструкции в не-временном носителе хранения, которые побуждают устройство выполнять процесс 1100, когда процессоры устройства исполняют инструкции. В некоторых случаях, когда процесс 1100 выполняется кодером видео, данные видео могут включать в себя картинку или часть (например, один или более блоков) картинки, которая должна кодироваться в закодированном битовом потоке видео, или может включать в себя множество картинок, которые должны кодироваться в закодированном битовом потоке видео.
[0130] В блоке 1102, процесс 1100 включает в себя кодирование первого блока картинки с использованием импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM). В блоке 1104, процесс 1100 включает в себя получение второго блока картинки. В некоторых аспектах, второй блок представляет собой блок кодирования яркости (например, включающий в себя выборки яркости, но не выборки цветности). В некоторых реализациях, второй блок представляет собой блок кодирования цветности (например, включающий в себя выборки цветности, но не выборки яркости). В некоторых реализациях, второй блок представляет собой блок кодирования, включающий в себя выборки яркости и выборки цветности. Как описано здесь, первый блок может быть соседним блоком второго блока в картинке. В одном иллюстративном примере со ссылкой на фиг. 9, второй блок может включать в себя текущий блок 904, и первый блок может быть соседним блоком 906.
[0131] В блоке 1106, процесс 1100 включает в себя определение, на основе первого блока, кодируемого с использованием вертикального режима BDPCM, вертикального режима интра-предсказания для списка режимов интра-предсказания для второго блока. В блоке 1108, процесс 1100 включает в себя добавление вертикального режима интра-предсказания к списку режимов интра-предсказания для второго блока. В некоторых примерах, список режимов интра-предсказания включает в себя список наиболее вероятных режимов (MPM). В блоке 1110, процесс 1100 включает в себя генерирование закодированного битового потока видео, включающего в себя первый блок, второй блок и список режимов интра-предсказания.
[0132] В некоторых примерах, процесс 1100 включает в себя включение, в закодированный битовый поток видео, информации, указывающей режим предсказания для использования для декодирования первого блока. В некоторых примерах, информация включает в себя флаг списка режимов интра-предсказания, указывающий, находится ли режим предсказания для использования для декодирования первого блока среди числа режимов предсказания, включенных в список режимов интра-предсказания. Если режим предсказания, подлежащий использованию для декодирования первого блока, принадлежит списку режимов интра-предсказания, то флаг списка режимов интра-предсказания может быть установлен в "истинно" (например, со значением 1). Как описано выше, если режим не принадлежит списку режимов интра-предсказания, флаг списка режимов интра-предсказания (например, intra_luma_mpm_flag) устанавливается в "ложно" (например, со значением 0), и индекс не-MPM для режима интра-предсказания не-MPM может быть включен в кодированный битовый поток видео. В одном иллюстративном примере, флаг списка режимов интра-предсказания может быть обозначен как intra_luma_mpm_flag.
[0133] В некоторых примерах, информация включает в себя значение индекса, указывающее режим предсказания из списка режимов интра-предсказания для использования для декодирования первого блока. Например, информация может включать в себя флаг списка режимов интра-предсказания и значение индекса. В одном иллюстративном примере, индекс, ассоциированный с списком режимов интра-предсказания, может быть обозначен как intra_luma_mpm_idx и может указывать режим предсказания из списка режимов интра-предсказания, который должен использоваться для второго блока.
[0134] В некоторых аспектах, процесс 1100 включает в себя кодирование третьего блока картинки с использованием горизонтального режима BDPCM на основе блока, и получение четвертого блока картинки. В таких примерах, процесс 1100 включает в себя определение, на основе третьего блока, кодируемого с использованием горизонтального режима BDPCM, горизонтального режима интра-предсказания для списка режимов интра-предсказания для четвертого блока, и добавление горизонтального режима интра-предсказания к списку режимов интра-предсказания для четвертого блока.
[0135] В некоторых реализациях, процессы (или способы), описанные в данном документе, в том числе процессы 1000 и 1100, могут выполняться вычислительным устройством или аппаратурой, такой как система 100, показанная на фиг. 1. Например, процесс 1000 может выполняться устройством 112 декодирования, показанным на фиг. 1 и фиг. 13, и/или другим устройством клиентской стороны, таким как игровое устройство, дисплей или любое другое устройство клиентской стороны. В качестве другого примера, процесс 1100 может выполняться устройством 104 кодирования, показанным на фиг. 1 и фиг. 12, и/или другим устройством стороны источника видео или устройством передачи видео.
[0136] В некоторых случаях, вычислительное устройство или аппаратуры могут включать в себя одно или более устройств ввода, одно или более устройств вывода, один или более процессоров, один или более микропроцессоров, один или более микрокомпьютеров и/или другой компонент(ы), которые сконфигурированы для выполнения этапов процессов, описанных в данном документе. В некоторых примерах, вычислительное устройство может представлять собой или может включать в себя мобильное устройство, настольный компьютер, серверный компьютер и/или серверную систему или вычислительное устройство другого типа. В некоторых примерах, вычислительное устройство или аппаратура могут включать в себя камеру, сконфигурированную, чтобы захватывать данные видео (например, последовательность видео), включающую в себя кадры видео. В некоторых примерах, камера или другое устройство захвата, которое захватывает данные видео, является отдельным от вычислительного устройства, в этом случае вычислительное устройство принимает или получает захваченные данные видео. Вычислительное устройство может дополнительно включать в себя сетевой интерфейс, сконфигурированный, чтобы передавать данные видео. Сетевой интерфейс может быть сконфигурирован, чтобы передавать данные на основе Интернет-протокола (IP) или данные другого типа. В некоторых примерах, вычислительное устройство или аппаратуры могут включать в себя дисплей для отображения выходного видеоконтента, такого как выборки картинок потока видео.
[0137] Компоненты вычислительного устройства (например, одно или более устройств ввода, одно или более устройств вывода, один или более процессоров, один или более микропроцессоров, один или более микрокомпьютеров и/или другой компонент) могут быть реализованы в схеме. Например, компоненты могут включать в себя и/или могут быть реализованы с использованием электронных схем или других электронных аппаратных средств, которые могут включать в себя одну или более программируемых электронных схем (например, микропроцессоры, графические процессоры (GPU), цифровые сигнальные процессоры (DSP), центральные процессоры (CPU) и/или другие подходящие электронные схемы) и/или могут включать в себя и/или быть реализованы с использованием компьютерного программного обеспечения, встроенного программного обеспечения или любой их комбинации, чтобы выполнять различные операции, описанные в данном документе.
[0138] Процессы 1000 и 1100 иллюстрируются как логические блок-схемы, работа которых представляет последовательность операций, которые могут быть реализованы в аппаратных средствах, компьютерных инструкциях или их комбинации. В контексте компьютерных инструкций, операции представляют выполняемые компьютером инструкции, хранящиеся на одном или более считываемых компьютером носителях хранения, которые, при исполнении одним или более процессорами, выполняют перечисленные операции. Как правило, исполняемые компьютером инструкции включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные функции или реализуют конкретные типы данных. Порядок, в котором описаны операции, не следует рассматривать как ограничение, и любое количество описанных операций может быть объединено в любом порядке и/или параллельно для реализации процессов.
[0139] Дополнительно, процессы, описанные в данном документе, включая процессы 1000 и 1100, могут быть выполнены под управлением одной или более компьютерных систем, сконфигурированных с исполняемыми инструкциями, и могут быть реализованы в виде кода (например, исполняемых инструкций, одной или более компьютерных программ или одного или более приложений), исполняющихся совместно на одном или более процессорах, с помощью аппаратных средств или их комбинации. Как отмечено выше, код может храниться на считываемом компьютером или машиночитаемом носителе хранения, например, в форме компьютерной программы, содержащей множество инструкций, исполняемых одним или более процессорами. Считываемый компьютером или машиночитаемый носитель хранения может быть не изменяемым во времени.
[0140] Описанные здесь методики кодирования могут быть реализованы в примерной системе кодирования и декодирования видео (например, системе 100). В некоторых примерах, система включает в себя устройство-источник, которое предоставляет закодированные данные видео, которые должны быть декодированы в более позднее время устройством-получателем. В частности, устройство-источник предоставляет данные видео устройству-получателю посредством считываемого компьютером носителя. Устройство-источник и устройство-получатель могут содержать любое из широкого диапазона устройств, включая настольные компьютеры, ноутбуки, планшетные компьютеры, телевизионные приставки, телефонные трубки, такие как так называемые "смартфоны", "смарт-планшеты", телевизоры, камеры, устройства отображения, цифровые медиаплееры, видеоигровые консоли, устройство потокового видео и т.п.. В некоторых случаях, устройство-источник и устройство-получатель могут быть оснащены для беспроводной связи.
[0141] Устройство-получатель может принимать закодированные данные видео, подлежащие декодированию, через считываемый компьютером носитель. Считываемый компьютером носитель может содержать любой тип носителя или устройства, способного перемещать закодированные данные видео от устройства-источника к устройству-получателю. В одном примере, считываемый компьютером носитель может содержать среду связи, чтобы предоставлять возможность устройству-источнику передавать закодированные данные видео непосредственно в устройство-получатель в реальном времени. Закодированные данные видео могут модулироваться согласно стандарту связи, такому как протокол беспроводной связи, и передаваться на устройство-получатель. Среда связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр или одну или более физических линий передачи. Среда связи может формировать часть пакетной сети, такой как локальная сеть, сеть широкого охвата или глобальная сеть, такая как Интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, полезное для облегчения связи от устройства-источника к устройству-получателю.
[0142] В некоторых примерах, закодированные данные могут выводиться из выходного интерфейса в устройство хранения. Аналогично, закодированные данные могут быть доступны из устройства хранения посредством интерфейса ввода. Устройство хранения может включать в себя любой из множества распределенных или локально доступных носителей хранения данных, таких как жесткий диск, Blu-ray диски, DVD, CD-ROM, флэш-память, энергозависимая или энергонезависимая память или любые другие подходящие цифровые носители хранения для хранения закодированных данных видео. В другом примере, устройство хранения может соответствовать файловому серверу или другому промежуточному устройству хранения, которое может хранить закодированное видео, сгенерированное устройством-источником. Устройство-получатель может осуществлять доступ к сохраненным данным видео из устройства хранения посредством потоковой передачи или загрузки. Файловый сервер может быть сервером любого типа, способным хранить закодированные данные видео и передавать эти закодированные данные видео в устройство-получатель. Примерные файловые серверы включают в себя веб-сервер (например, для веб-сайта), сервер FTP, сетевые устройства хранения (NAS) или накопитель на локальном диске. Устройство-получатель может осуществлять доступ к закодированным данным видео через любое стандартное соединение данных, включая Интернет-соединение. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем и т.д.) или комбинацию обоих, которая подходит для доступа к закодированным данным видео, хранящимся на файловом сервере. Передача закодированных данных видео из устройства хранения может представлять собой потоковую передачу, передачу загрузки или их комбинацию.
[0143] Методики этого раскрытия не обязательно ограничены беспроводными приложениями или настройками. Методики могут быть применены к кодированию видео в поддержку любого из множества мультимедийных приложений, таких как широковещательные телевизионные передачи, кабельные телевизионные передачи, спутниковые телевизионные передачи, передачи потокового видео через Интернет, такие как динамическая адаптивная потоковая передача по HTTP (DASH), цифровое видео, закодированное на носителе хранения данных, декодирование цифрового видео, сохраненного на носителе хранения данных, или других приложений. В некоторых примерах, система может быть сконфигурирована, чтобы поддерживать одностороннюю или двустороннюю передачу видео для поддержки приложений, таких как потоковая передача видео, воспроизведение видео, трансляция видео и/или видеотелефония.
[0144] В одном примере, устройство-источник включает в себя источник видео, кодер видео и выходной интерфейс. Устройство-получатель может включать в себя интерфейс ввода, декодер видео и устройство отображения. Кодер видео устройства-источника может быть сконфигурирован, чтобы применять методики, раскрытые в данном документе. В других примерах, устройство-источник и устройство-получатель могут включать в себя другие компоненты или компоновки. Например, устройство-источник может принимать данные видео от внешнего источника видео, такого как внешняя камера. Аналогично, устройство-получатель может взаимодействовать с внешним устройством отображения, вместо того, чтобы включать в себя интегрированное устройство отображения.
[0145] Примерная система, описанная выше, является только одним примером. Методики для обработки данных видео параллельно могут быть выполнены любым цифровым устройством кодирования и/или декодирования видео. Хотя, в общем, методики настоящего раскрытия выполняются устройством кодирования видео, эти методики также могут выполняться посредством кодера/декодера видео, обычно называемого "кодеком". Кроме того, методики этого раскрытия также могут выполняться препроцессором видео. Устройство-источник и устройство-получатель являются просто примерами таких устройств кодирования, в которых устройство-источник генерирует кодированные данные видео для передачи в устройство-получатель. В некоторых примерах, устройство-источник и устройство-получатель могут работать по существу симметричным образом, так что каждое из устройств включает в себя компоненты кодирования и декодирования видео. Следовательно, примерные системы могут поддерживать одностороннюю или двухстороннюю передачу видео между видеоустройствами, например для потокового видео, воспроизведения видео, видеовещания или видеотелефонии.
[0146] Источник видео может включать в себя устройство захвата видео, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, и/или интерфейс ввода видео для приема видео от поставщика видеоконтента. В качестве дополнительной альтернативы, источник видео может генерировать данные на основе компьютерной графики в качестве исходного видео или комбинации живого видео, архивированного видео и сгенерированного компьютером видео. В некоторых случаях, если источник видео является видеокамерой, устройство-источник и устройство-получатель могут образовывать так называемые мобильные телефоны с камерой или видеотелефоны. Как упомянуто выше, однако, способы, описанные в этом раскрытии, могут быть применимы к кодированию видео в целом и могут быть применены к беспроводным и/или проводным приложениям. В каждом случае захваченное, предварительно захваченное или сгенерированное компьютером видео может кодироваться кодером видео. Кодированная видеоинформация затем может выводиться посредством интерфейса вывода на считываемый компьютером носитель.
[0147] Как отмечено, считываемый компьютером носитель может включать в себя переходные носители (среды), такие как беспроводная широковещательная или проводная сетевая передача, или носители хранения (то есть не-временные носители хранения), такие как жесткий диск, флэш-накопитель, компакт-диск, цифровой видеодиск, Blu-ray диск или другие считываемые компьютером носители. В некоторых примерах, сетевой сервер (не показан) может принимать закодированные данные видео от устройства-источника и предоставлять кодированные данные видео устройству-получателю, например, через сеть передачи данных. Аналогично, вычислительное устройство оборудования по производству носителей, такого как оборудование для штамповки дисков, может принимать закодированные данные видео от устройства-источника и производить диск, содержащий закодированные данные видео. Следовательно, считываемый компьютером носитель может пониматься как включающий в себя один или более считываемых компьютером носителей различных форм, в различных примерах.
[0148] Входной интерфейс устройства-получателя принимает информацию из считываемого компьютером носителя. Информация считываемого компьютером носителя может включать в себя синтаксическую информацию, определенную кодером видео, которая также используется декодером видео, которая включает в себя синтаксические элементы, которые описывают характеристики и/или обработку блоков и других кодируемых единиц, например, группы картинок (GOP). Устройство отображения отображает декодированные данные видео пользователю и может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светоизлучающих диодах (OLED) или устройство отображения другого типа. Были описаны различные варианты осуществления приложения.
[0149] Конкретные детали устройства 104 кодирования и устройства 112 декодирования показаны на фиг. 12 и 13, соответственно. Фиг. 12 представляет собой блок-схему, иллюстрирующую примерное устройство 104 кодирования, которое может реализовывать один или более методик, описанных в этом изобретении. Устройство 104 кодирования может, например, формировать синтаксические структуры, описанные в данном документе (например, синтаксические структуры VPS, SPS, PPS или другие синтаксические элементы). Устройство 104 кодирования может выполнять кодирование с интра-предсказанием и интер-предсказанием блоков видео в вырезках видео. Как описано выше, интра-кодирование основывается, по меньшей мере частично, на пространственном предсказании для уменьшения или удаления пространственной избыточности в пределах данного кадра или картинки видео. Интер-кодирование основывается, по меньшей мере частично, на временном предсказании для уменьшения или удаления временной избыточности в соседних или окружающих кадрах последовательности видео. Интра-режим (I режим) может относиться к любому из нескольких пространственных режимов сжатия. Интер-режимы, такие как однонаправленное предсказание (P-режим) или двунаправленное предсказание (B-режим), могут относиться к любому из нескольких временных режимов сжатия.
[0150] Устройство 104 кодирования включает в себя модуль 35 разделения, модуль 41 обработки предсказания, модуль 63 фильтрации, память 64 картинок, сумматор 50, модуль 52 обработки преобразования, модуль 54 квантования и модуль 56 энтропийного кодирования. Модуль 41 обработки предсказания включает в себя модуль 42 оценки движения, модуль 44 компенсации движения и модуль 46 обработки интра-предсказания. Для восстановления блока видео, устройство 104 кодирования также включает в себя модуль 58 обратного квантования, модуль 60 обработки обратного преобразования и сумматор 62. Модуль 63 фильтрации предназначен для представления одного или более контурных фильтров, таких как фильтр удаления блочности, адаптивный контурный фильтр (ALF) и фильтр адаптивного смещения выборки (SAO). Хотя модуль 63 фильтрации показан на фиг. 12 как внутриконтурный фильтр, в других конфигурациях, модуль 63 фильтрации может быть реализован в виде пост-контурного фильтра. Устройство 57 постобработки может выполнять дополнительную обработку на кодированных данных видео, сгенерированных устройством 104 кодирования. Методики этого раскрытия могут в некоторых случаях быть реализованы устройством 104 кодирования. В других случаях, однако, один или более методик этого раскрытия могут быть реализованы посредством устройства 57 постобработки.
[0151] Как показано на фиг. 12, устройство 104 кодирования принимает данные видео, и блок 35 разделения разделяет данные на блоки видео. Разделение может также включать в себя разделение на вырезки, сегменты вырезки, мозаичные элементы или другие большие единицы, а также разделение блока видео, например, в соответствии со структурой квадродерева LCU и CU. Устройство 104 кодирования, в общем, иллюстрирует компоненты, которые кодируют блоки видео в пределах вырезки видео, подлежащей кодированию. Вырезка может быть разделена на множество блоков видео (и, возможно, в наборы блоков видео, упоминаемых как мозаичные элементы). Модуль 41 обработки предсказания может выбирать один из множества возможных режимов кодирования, таких как один из множества режимов кодирования с интра-предсказанием или одного из множества режимов кодирования с интер-предсказанием, для текущего блока видео на основе результатов ошибки (например, скорости кодирования и уровня искажения и т.п.). Модуль 41 обработки предсказания может выдавать результирующий интра- или интер-кодированный блок на сумматор 50, чтобы генерировать остаточные данные блока, и на сумматор 62, чтобы восстановить закодированный блок для использования в качестве опорной картинки.
[0152] Модуль 46 обработки интра-предсказания в модуле 41 обработки предсказания может выполнять кодирование интра- предсказания текущего блока видео относительно одного или более соседних блоков в том же самом кадре или вырезке, что и текущий блок, подлежащий кодированию для обеспечения пространственного сжатия. Модуль 42 оценки движения и модуль 44 компенсации движения в модуле 41 обработки предсказания выполняют кодирование с интер-предсказанием текущего блока видео относительно одного или более блоков предсказания в одной или более опорных картинок для обеспечения временного сжатия.
[0153] Модуль 42 оценки движения может быть сконфигурирован, чтобы определять режим интер-предсказания для вырезки видео согласно предопределенному шаблону для последовательности видео. Предопределенный шаблон может обозначать вырезки видео в последовательности как P-вырезки, B-вырезки или GPB-вырезки. Модуль 42 оценки движения и модуль 44 компенсации движения могут быть выполнены как высоко интегрированные, но проиллюстрированы отдельно для концептуальных целей. Оценка движения, выполняемая блоком 42 оценки движения, является процессом генерации векторов движения, которые оценивают движение для блоков видео. Вектор движения, например, может указывать смещение единицы предсказания (PU) блока видео в текущем кадре видео или картинке относительно блока предсказания в опорной картинке.
[0154] Блок предсказания представляет собой блок, который обнаружен как точно совпадающий с PU блока видео, подлежащего кодированию в терминах пиксельной разности, которая может определяться с использованием суммы абсолютных разностей (SAD), суммы квадратов разностей (SSD) или других разностных метрик. В некоторых примерах, устройство 104 кодирования может вычислять значения для суб-целочисленных пиксельных позиций. Например, устройство 104 кодирования может интерполировать значения позиций в одну четверть пиксела, одну восьмую пиксела или других дробно-пиксельных позиций опорной картинки. Следовательно, модуль 42 оценки движения может выполнять поиск движения относительно полно-пиксельных и дробно-пиксельных позиций и выводить вектор движения с дробно-пиксельной точностью.
[0155] Модуль 42 оценки движения вычисляет вектор движения для PU блока видео в интер-кодированной вырезке путем сравнения положения PU с положением блока предсказания опорной картинки. Опорная картинка может быть выбрана из первого списка опорных картинок (список 0) или второго списка опорных картинок (список 1), каждый из которых идентифицирует одну или более опорных картинок, хранящихся в памяти 64 картинок. Модуль 42 оценки движения отправляет вычисленный вектор движения в модуль 56 энтропийного кодирования и модуль 44 компенсации движения.
[0156] Компенсация движения, выполняемая модулем 44 компенсации движения, может включать в себя извлечение или генерирование блока предсказания на основе вектора движения, определенного посредством оценки движения, возможно посредством выполнения интерполяции с суб-пиксельной точностью. После приема вектора движения для PU текущего блока видео, модуль 44 компенсации движения может локализовать блок предсказания, на который указывает вектор движения, в списке опорных картинок. Устройство 104 кодирования формирует остаточный блок видео путем вычитания пиксельных значений блока предсказания из пиксельных значений текущего кодируемого блока видео, формируя значения пиксельных разностей. Значения пиксельных разностей формируют остаточные данные для блока и могут включать в себя разностные компоненты как яркости, так и цветности. Сумматор 50 представляет компонент или компоненты, которые выполняют эту операцию вычитания. Модуль 44 компенсации движения также может генерировать синтаксические элементы, ассоциированные с блоками видео и вырезкой видео для использования устройством 112 декодирования при декодировании блоков видео вырезки видео.
[0157] Модуль 46 обработки интра-предсказания может интра-предсказывать текущий блок, в качестве альтернативы интер-предсказанию, выполняемому модулем 42 оценки движения и модулем 44 компенсации движения, как описано выше. В частности, модуль 46 обработки интра-предсказания может определять режим интра-предсказания для использования для кодирования текущего блока. В некоторых примерах, модуль 46 обработки интра-предсказания может кодировать текущий блок с использованием различных режимов интра-предсказания, например, во время отдельных проходов кодирования, и модуль 46 обработки интра-предсказания может выбирать надлежащий режим интра-предсказания для использования из тестируемых режимов. Например, модуль 46 обработки интра-предсказания может вычислять значения скорости-искажения, используя анализ скорости-дисторсии для различных тестируемых режимов интра-предсказания, и может выбирать режим интра-предсказания, имеющий наилучшие характеристики скорости-дисторсии среди тестируемых режимов. Анализ скорости-дисторсии в общем случае определяет величину дисторсии (или ошибки) между закодированным блоком и исходным некодированным блоком, который кодировался для получения закодированного блока, а также битовую скорость (то есть число битов), используемую для получения закодированного блока. Модуль 46 обработки интра-предсказания может вычислять отношения из дисторсий и скоростей для различных закодированных блоков, чтобы определить, какой режим интра-предсказания демонстрирует наилучшее значение скорости-дисторсии для блока.
[0158] В любом случае, после выбора режима интра-предсказания для блока, модуль 46 обработки интра-предсказания может предоставлять информацию, указывающую выбранный режим интра-предсказания для блока, в модуль 56b энтропийного кодирования. Модуль 56 энтропийного кодирования может кодировать информацию, указывающую выбранный режим интра-предсказания. Устройство 104 кодирования может включать в передаваемый битовый поток определения данных конфигурации контексты кодирования для различных блоков, а также указания наиболее вероятного режима интра-предсказания, таблицу индексов режима интра-предсказания и модифицированную таблицу индексов режима интра-предсказания для использования для каждого из контекстов. Данные конфигурации битового потока могут включать в себя множество таблиц индексов режима интра-предсказания и множество модифицированных таблиц индексов интра-предсказания (также называемых таблицами отображения кодового слова).
[0159] После того как модуль 41 обработки предсказания генерирует блок предсказания для текущего блока видео посредством либо интер-предсказания, либо интра-предсказания, устройство 104 кодирования формирует остаточный блок видео посредством вычитания блока предсказания из текущего блока видео. Остаточные данные видео в остаточном блоке могут быть включены в одну или более TU и подаются в модуль 52 обработки преобразования. Модуль 52 обработки преобразования преобразует остаточные данные видео в остаточные коэффициенты преобразования с использованием преобразования, такого как дискретное косинусное преобразование (DCT) или концептуально аналогичное преобразование. Модуль 52 обработки преобразования может преобразовывать остаточные данные видео из пиксельной области в область преобразования, такую как частотная область.
[0160] Модуль 52 обработки преобразования может отправлять результирующие коэффициенты преобразования в модуль 54 квантования. Модуль 54 квантования квантует коэффициенты преобразования для дополнительного уменьшения битовой скорости. Процесс квантования может уменьшить битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть модифицирована посредством регулировки параметра квантования. В некоторых примерах, модуль 54 квантования может затем выполнять сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. Альтернативно, модуль 56 энтропийного кодирования может выполнять сканирование.
[0161] После квантования, модуль 56 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования. Например, модуль 56 энтропийного кодирования может выполнять контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), основанное на синтаксисе контекстно-адаптивное двоичное арифметическое кодирование (SBAC), кодирование с разбиением интервалов вероятности (PIPE) или другой способ энтропийного кодирования. Вслед за энтропийным кодированием посредством блока 56 энтропийного кодирования, закодированный битовый поток может передаваться в устройство 112 декодирования или архивироваться для последующей передачи или извлечения устройством 112 декодирования. Модуль 56 энтропийного кодирования также может энтропийно кодировать векторы движения и другие синтаксические элементы для текущей кодируемой вырезки видео.
[0162] Модуль 58 обратного квантования и модуль 60 обработки обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, для восстановления остаточного блока в пиксельной области для последующего использования в качестве опорного блока опорной картинки. Модуль 44 компенсации движения может вычислять опорный блок посредством суммирования остаточного блока с блоком предсказания одной из опорных картинок в списке опорных картинок. Модуль 44 компенсации движения также может применять один или более интерполяционных фильтров к восстановленному остаточному блоку для вычисления суб-целочисленных пиксельных значений для использования при оценке движения. Сумматор 62 суммирует восстановленный остаточный блок с блоком предсказания с компенсацией движения, созданным блоком 44 компенсации движения, для создания опорного блока для сохранения в памяти 64 картинок. Опорный блок может использоваться модулем 42 оценки движения и модулем 44 компенсации движения в качестве опорного блока для интер-предсказания блока в следующем кадре или картинке видео.
[0163] Устройство 104 кодирования может выполнять любой из методик, описанных в данном документе. Некоторые методики этого раскрытия в общем были описаны в отношении устройства 104 кодирования, но, как упомянуто выше, некоторые из методик этого раскрытия также могут быть реализованы посредством устройства 57 постобработки.
[0164] Устройство 104 кодирования согласно фиг. 12 представляет пример кодера видео, сконфигурированного для выполнения одного или более методик кодирования преобразования, описанных в данном документе. Устройство 104 кодирования может выполнять любой из методик, описанных в данном документе, включая процессы, описанные выше в отношении фиг. 11.
[0165] Фиг. 13 представляет собой блок-схему, иллюстрирующую примерное устройство 112 декодирования. Устройство 112 декодирования включает в себя модуль 80 энтропийного декодирования, модуль 81 обработки предсказания, модуль 86 обратного квантования, модуль 88 обработки обратного преобразования, сумматор 90, модуль 91 фильтрации и память 92 картинок. Модуль 81 обработки предсказания включает в себя модуль 82 компенсации движения и модуль 84 обработки интра-предсказания. Устройство 112 декодирования может, в некоторых примерах, выполнять проход декодирования, в общем, обратный проходу кодирования, описанному в отношении устройства 104 кодирования согласно фиг. 12
[0166] Во время процесса декодирования, устройство 112 декодирования принимает закодированный битовый поток видео, который представляет блоки видео вырезки закодированного видео и ассоциированные синтаксические элементы, отправленные устройством 104 кодирования. В некоторых вариантах осуществления, устройство 112 декодирования может принимать закодированный битовый поток видео из устройства 104 кодирования. В некоторых вариантах осуществления, устройство 112 декодирования может принимать закодированный битовый поток видео от сетевого объекта 79, такого как сервер, медиа-ориентированный сетевой элемент (MANE), редактор/сплайсер (инструмент видеомонтажа) видео или другое подобное устройство, сконфигурированное для реализации одного или более способов, описанных выше. Сетевой объект 79 может включать или не включать в себя устройство 104 кодирования. Некоторые из методик, описанных в этом раскрытии, могут быть реализованы сетевым объектом 79 перед передачей сетевым объектом 79 закодированного битового потока видео в устройство 112 декодирования. В некоторых системах декодирования видео, сетевой объект 79 и устройство 112 декодирования могут быть частями отдельных устройств, тогда как в других случаях функциональность, описанная относительно сетевого объекта 79, может выполняться тем же устройством, которое содержит устройство 112 декодирования.
[0167] Модуль 80 энтропийного декодирования устройства 112 декодирования энтропийно декодирует битовый поток для генерации квантованных коэффициентов, векторов движения и других синтаксических элементов. Модуль 80 энтропийного декодирования пересылает векторы движения и другие синтаксические элементы в модуль 81 обработки предсказания. Устройство 112 декодирования может принимать синтаксические элементы на уровне вырезки видео и/или уровне блока видео. Модуль 80 энтропийного декодирования может обрабатывать и анализировать как синтаксические элементы фиксированной длины, так и синтаксические элементы переменной длины в одном или более наборах параметров, таких как VPS, SPS и PPS.
[0168] Когда вырезка видео кодируется как интра-кодируемая (I) вырезка, модуль 84 обработки интра-предсказания блока 81 обработки предсказания может генерировать данные предсказания для блока видео текущей вырезки видео на основе сигнализированного режима интра-предсказания и данных из ранее декодированных блоков текущего кадра или картинки. Когда кадр видео кодируется как интер-кодированная (то есть, B, P или GPB) вырезка, модуль 82 компенсации движения блока 81 обработки предсказания формирует блоки предсказания для блока видео текущей вырезки видео на основе векторов движения и других синтаксических элементов, принятых от модуля 80 энтропийного декодирования. Блоки предсказания могут быть получены из одной из опорных картинок в списке опорных картинок. Устройство 112 декодирования может строить списки опорных кадров, список 0 и список 1, используя методики построения по умолчанию на основе опорных картинок, сохраненных в памяти 92 картинок.
[0169] Модуль 82 компенсации движения определяет информацию предсказания для блока видео текущей вырезки видео посредством синтаксического анализа векторов движения и других синтаксических элементов и использует информацию предсказания для формирования блоков предсказания для текущего декодируемого блока видео. Например, модуль 82 компенсации движения может использовать один или более синтаксических элементов в наборе параметров для определения режима предсказания (например, интра-или интер-предсказания), используемого для кодирования блоков видео вырезки видео, тип вырезки интер-предсказания (например, B-вырезка, P-вырезка или GPB-вырезка), информацию построения для одного или более списков опорных картинок для вырезки, вектора движения для каждого интер-кодированного блока видео вырезки, статус интер-предсказания для каждого интер-кодированного блока видео вырезки и другую информацию для декодирования блоков видео в текущей вырезке видео.
[0170] Модуль 82 компенсации движения также может выполнять интерполяцию на основе интерполяционных фильтров. Модуль 82 компенсации движения может использовать интерполяционные фильтры, используемые устройством 104 кодирования во время кодирования блоков видео, для вычисления интерполированных значений для суб-целочисленных пикселов опорных блоков. В этом случае, модуль 82 компенсации движения может определять интерполяционные фильтры, используемые устройством 104 кодирования, из принятых синтаксических элементов и может использовать интерполяционные фильтры для создания блоков предсказания.
[0171] Модуль 86 обратного квантования обратно квантует или деквантует квантованные коэффициенты преобразования, обеспеченные в битовом потоке и декодированные посредством модуля 80 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра квантования, вычисленного устройством 104 кодирования для каждого блока видео в вырезке видео, для определения степени квантования и, подобным образом, степени обратного квантования, которая должна быть применена. Модуль 88 обработки обратного преобразования применяет обратное преобразование (например, обратное DCT или другое подходящее обратное преобразование), обратное целочисленное преобразование или концептуально аналогичный процесс обратного преобразования, к коэффициентам преобразования для получения остаточных блоков в пиксельной области.
[0172] После того как модуль 82 компенсации движения генерирует блок предсказания для текущего блока видео на основе векторов движения и других синтаксических элементов, устройство 112 декодирования формирует декодированный блок видео посредством суммирования остаточных блоков из блока 88 обработки обратного преобразования с соответствующими блоками предсказания, сгенерированными блоком 82. Сумматор 90 представляет компонент или компоненты, которые выполняют эту операцию суммирования. Если требуется, контурные фильтры (либо в контуре кодирования, либо после контура кодирования) также могут использоваться для сглаживания переходов пикселов или иного улучшения качества видео. Модуль 91 фильтра предназначен для представления одного или более контурных фильтров, таких как фильтр удаления блочности, адаптивный контурный фильтр (ALF) и фильтр адаптивного смещения выборки (SAO). Хотя модуль 91 фильтрации показан на фиг. 13, как внутриконтурный фильтр, в других конфигурациях, модуль 91 фильтрации может быть реализован как пост-контурный фильтр. Декодированные блоки видео в данном кадре или картинке затем сохраняются в памяти 92 картинок, которая хранит опорные картинки, используемые для последующей компенсации движения. Память 92 картинок также хранит декодированное видео для последующего представления на устройстве отображения, таком как устройство-получатель 122 видео, показанное на фиг. 1.
[0173] Модуль 91 фильтрации фильтрует восстановленный блок (например, выход сумматора 90) и сохраняет отфильтрованный восстановленный блок в DPB 94 для использования в качестве опорного блока и/или выводит отфильтрованный восстановленный блок (декодированное видео). Опорный блок может использоваться модулем 82 компенсации движения в качестве опорного блока для интер-предсказания блока в следующем кадре или картинке видео. Модуль 91 фильтрации может выполнять любой тип фильтрации, такой как фильтрация устранения блочности, фильтрация SAO, пиковая фильтрация SAO, ALF и/или GALF, и/или другие типы контурных фильтров. Фильтр устранения блочности может, например, применять фильтрацию устранения блочности, чтобы фильтровать границы блока для удаления артефактов блочности из восстановленного видео. Пиковый фильтр SAO может применять смещения к восстановленным пиксельным значениям для улучшения общего качества кодирования. Могут также использоваться дополнительные контурные фильтры (внутриконтурные или пост-контурные).
[0174] Кроме того, модуль 91 фильтрации может быть сконфигурирован для осуществления любого из методик в этом раскрытии, связанных с адаптивной контурной фильтрацией. Например, как описано выше, модуль 91 фильтрации может быть сконфигурирован, чтобы определять параметры для фильтрации текущего блока на основе параметров для фильтрации предыдущего блока, которые были включены в тот же APS, что и текущий блок, другой APS, или предопределенных фильтров.
[0175] Устройство 112 декодирования согласно фиг. 13 представляет собой пример декодера видео, сконфигурированного для выполнения одного или более методик кодирования преобразования, описанных в данном документе. Устройство 112 декодирования может выполнять любой из методик, описанных в данном документе, включая процессы, описанные выше со ссылкой на фиг. 10.
[0176] Как используется в данном документе, термин "считываемый компьютером носитель" включает в себя, но без ограничения указанным, портативные или не-портативные устройства хранения, оптические устройства хранения и различные другие носители, способные хранить, содержать или переносить инструкцию(и) и/или данные. Считываемый компьютером носитель может включать в себя не-временный носитель, в котором могут храниться данные и которые не включают в себя несущие волны и/или переходные электронные сигналы, распространяющиеся беспроводным способом или по проводным соединениям. Примеры не-временного носителя могут включать в себя, но без ограничения указанным, магнитный диск или магнитную ленту, оптические носители данных, такие как компакт-диск (CD) или цифровой универсальный диск (DVD), флэш-память, память или устройства памяти. Считываемый компьютером носитель может содержать сохраненные на нем код и/или машинно-исполняемые инструкции, которые могут представлять процедуру, функцию, подпрограмму, программу, процедуру, стандартную подпрограмму, модуль, пакет программного обеспечения, класс или любую комбинацию инструкций, структур данных или программных операторов. Кодовый сегмент может быть связан с другим кодовым сегментом или аппаратной схемой путем пересылки и/или приема информации, данных, аргументов, параметров или содержимого памяти. Информация, аргументы, параметры, данные и т.д. могут пересылаться, переправляться или передаваться через любые подходящие средства, включающие в себя совместное использование памяти, пересылку сообщений, пересылку маркера, сетевую передачу или тому подобное.
[0177] В некоторых вариантах осуществления, считываемые компьютером устройства хранения, носители и памяти могут включать в себя кабельный или беспроводной сигнал, содержащий битовый поток и тому подобное. Однако, когда упомянуты, не-временные считываемые компьютером носители хранения явным образом исключают такие носители, как энергия, сигналы несущей, электромагнитные волны и сигналы, так таковые.
[0178] Конкретные подробности приведены в описании выше для обеспечения полного понимания вариантов осуществления и примеров, представленных в данном документе. Однако специалисту в данной области техники будет понятно, что варианты осуществления могут быть осуществлены на практике без этих конкретных подробностей. Для ясности объяснения, в некоторых случаях, настоящая технология может быть представлена как включающая в себя отдельные функциональные блоки, включающие в себя функциональные блоки, содержащие устройства, компоненты устройства, этапы или процедуры в способе, воплощенном в программном обеспечении, или комбинации аппаратных средств и программного обеспечения. Дополнительные компоненты могут быть использованы, кроме тех, которые показаны на чертежах и/или описаны в данном документе. Например, схемы, системы, сети, процессы и другие компоненты могут быть показаны как компоненты в форме блок-схемы, чтобы не затруднять понимание вариантов осуществления из-за ненужных подробностей. В других случаях, хорошо известные схемы, процессы, алгоритмы, структуры и методики могут быть показаны без ненужных подробностей для того, чтобы избежать неясности вариантов осуществления.
[0179] Отдельные варианты осуществления могут быть описаны выше как процесс или способ, который проиллюстрирован как блок-схема последовательности операций, потоковая диаграмма, диаграмма потока данных, структурная схема или блок-схема. Хотя блок-схема последовательности операций может описывать операции как последовательный процесс, многие из операций могут выполняться параллельно или одновременно. Кроме того, порядок операций может быть переупорядочен. Процесс завершается, когда его операции завершены, но может иметь дополнительные этапы, не включенные на чертеже. Процесс может соответствовать способу, функции, процедуре, стандартной подпрограмме, подпрограмме и т.д. Когда процесс соответствует функции, его завершение может соответствовать возврату функции к вызывающей функции или основной функции.
[0180] Процессы и способы в соответствии с вышеописанными примерами могут быть реализованы с использованием исполняемых компьютером инструкций, которые хранятся или иным образом доступны из считываемых компьютером носителей. Такие инструкции могут включать в себя, например, инструкции и данные, которые побуждают или иным образом конфигурируют компьютер общего назначения, компьютер специального назначения или устройство обработки, чтобы выполнять некоторую функцию или группу функций. Части используемых компьютерных ресурсов могут быть доступны по сети. Исполняемые компьютером инструкции могут представлять собой, например, двоичные данные, инструкции промежуточного формата, такие как язык ассемблера, встроенное программное обеспечение, исходный код и т.д. Примеры считываемых компьютером носителей, которые могут быть использованы для хранения инструкций, информации, используемой и/или создаваемой в способах в соответствии с описанными примерами, включают в себя магнитные или оптические диски, флэш-память, USB-устройства, снабженные энергонезависимой памятью, сетевые устройства хранения и так далее.
[0181] Устройства, реализующие процессы и способы в соответствии с этими раскрытиями, могут включать в себя аппаратные средства, программное обеспечение, встроенное программное обеспечение, промежуточное программное обеспечение, микрокод, языки описания аппаратных средств или любую их комбинацию, и могут принимать любой из множества форм-факторов. При реализации в программном обеспечении, микропрограммном обеспечении, промежуточном программном обеспечении или микрокоде, программный код или сегменты кода для выполнения необходимых задач (например, компьютерный программный продукт) могут храниться на считываемом компьютером или считываемом компьютером носителе. Процессор(ы) может выполнять необходимые задачи. Типичные примеры форм-факторов включают в себя ноутбуки, смартфоны, мобильные телефоны, планшетные устройства или другие персональные компьютеры малого форм-фактора, персональные цифровые помощники, монтируемые в стойке устройства, автономные устройства и т.д. Функциональность, описанная в данном документе, также может быть воплощена в периферийных устройствах или на расширительных платах. Такие функциональные возможности также могут быть реализованы на схемной плате среди различных микросхем или различных процессов, выполняющихся в одном устройстве, в качестве дополнительного примера.
[0182] Инструкции, носители для передачи таких инструкций, вычислительные ресурсы для их выполнения и другие структуры для поддержки таких вычислительных ресурсов являются примерными средствами для обеспечения функций, описанных в раскрытии.
[0183] В приведенном выше описании аспекты настоящей заявки описаны со ссылкой на конкретные варианты его осуществления, но специалистам в данной области техники будет понятно, что заявка не ограничена этим. Таким образом, хотя иллюстративные варианты осуществления настоящей заявки подробно описаны в данном документе, следует понимать, что концепции изобретения могут быть иным образом воплощены и использованы, и что прилагаемая формула изобретения предназначена для включения таких изменений, за исключением тех, которые ограничены предшествующим уровнем техники. Различные признаки и аспекты вышеописанной заявки могут использоваться индивидуально или совместно. Кроме того, варианты осуществления могут быть использованы в любом количестве сред и приложений, помимо описанных в данном документе, без отклонения от широкой сущности и объема спецификации. Спецификация и чертежи, соответственно, должны рассматриваться как иллюстративные, а не ограничительные. В целях иллюстрации, способы были описаны в конкретном порядке. Следует понимать, что в альтернативных вариантах осуществления способы могут выполняться в другом порядке, чем описано.
[0184] Специалисту в данной области техники должно быть понятно, что символы или термины "меньше" ("<") и "больше" (">"), используемые в данном документе, могут быть заменены символами "меньше или равно" ("≤") и "больше или равно" ("≥") символам, соответственно, без отклонения от объема описания.
[0185] В тех случаях, когда компоненты описаны как "сконфигурированные для" выполнения некоторых операций, такая конфигурация может быть выполнена, например, посредством проектирования электронных схем или других аппаратных средств для выполнения операции, посредством программирования программируемых электронных схем (например, микропроцессоров или других подходящих электронных схем) для выполнения операции или любой их комбинации.
[0186] Фраза "связанный с" относится к любому компоненту, который физически соединен с другим компонентом, либо непосредственно, либо опосредованно, и/или к любому компоненту, который находится в коммуникации с другим компонентом (например, соединен с другим компонентом через проводное или беспроводное соединение и/или другой подходящий интерфейс связи) либо непосредственно, либо опосредованно.
[0187] Терминология пунктов формулы изобретения или другая терминология, перечисляющая "по меньшей мере один из" набора и/или "один или более" из набора, указывает, что один элемент из набора или множество элементов набора (в любой комбинации) удовлетворяют формуле изобретения. Например, пункт формулы изобретения, перечисляющий "по меньшей мере один из А и B", означает А, B или А и B. В другом примере, пункт формулы изобретения, перечисляющий "по меньшей мере один из А, B и C" означает А, B, C или А и B, или А и C, или B и C, или А и B и C. Фраза "по меньшей мере один из" набора и/или "один или более" из набора не ограничивает набор элементов, перечисленных в наборе. Например, пункт формулы изобретения, перечисляющий "по меньшей мере один из А и B", может означать А, B или А и B и может дополнительно включать элементы, не упомянутые в наборе А и B.
[0188] Различные иллюстративные логические блоки, модули, схемы и этапы алгоритма, описанные в связи с раскрытыми здесь вариантами осуществления, могут быть реализованы как электронные аппаратные средства, компьютерное программное обеспечение, встроенное программное обеспечение или их комбинации. Чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы были описаны выше в общем в терминах их функциональности. То, реализована ли такая функциональность как аппаратные средства или программное обеспечение, зависит от конкретного применения и конструктивных ограничений, налагаемых на всю систему. Специалисты в данной области техники могут реализовать описанную функциональность различными способами для каждого конкретного применения, но такие решения по реализации не должны интерпретироваться как вызывающие отклонение от объема настоящей заявки.
[0189] Методики, описанные в данном документе, также могут быть реализованы в электронных аппаратных средствах, компьютерном программном обеспечении, встроенном программном обеспечении или любой их комбинации. Такие методики могут быть реализованы в любом из многообразия устройств, таких как компьютеры общего назначения, устройства беспроводной связи или устройства на интегральной схеме, имеющие множество применений, включая использование в устройствах беспроводной связи и других устройствах. Любые признаки, описанные как модули или компоненты, могут быть реализованы вместе в интегрированном логическом устройстве или отдельно как дискретные, но взаимодействующие логические устройства. При реализации в программном обеспечении, методики могут быть реализованы, по меньшей мере частично, с помощью считываемого компьютером носителя хранения данных, содержащего программный код, включающий в себя инструкции, которые, при их исполнении, выполняют один или более способов, описанных выше. Считываемый компьютером носитель хранения данных может формировать часть компьютерного программного продукта, который может включать в себя упаковку. Считываемый компьютером носитель может содержать память или носитель хранения данных, такой как память с произвольным доступом (RAM), синхронная динамическая память с произвольным доступом (SDRAM), постоянная память (ROM), энергонезависимая память с произвольным доступом (NVRAM), электрически стираемая программируемая постоянная память (EEPROM), флэш-память, магнитные или оптические носители хранения данных и т.п. Способы дополнительно или альтернативно могут быть реализованы, по меньшей мере частично, посредством считываемого компьютером коммуникационного носителя (среды), который переносит или передает программный код в форме инструкций или структур данных и который доступен, считывается и/или исполняется компьютером, такого как распространяемые сигналы или волны.
[0190] Программный код может выполняться процессором, который может включать в себя один или более процессоров, таких как один или более цифровых сигнальных процессоров (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA) или другие эквивалентные интегральные или дискретные логические схемы. Такой процессор может быть конфигурирован для выполнения любого из методик, описанных в настоящем раскрытии. Процессор общего назначения может быть микропроцессором; но в альтернативном варианте процессор может быть любым обычным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор также может быть реализован как комбинация вычислительных устройств, например комбинация DSP и микропроцессора, множество микропроцессоров, один или более микропроцессоров вместе с ядром DSP, или любая другая такая конфигурация. Соответственно, термин "процессор", как используется в настоящем документе, может относиться к любой вышеупомянутой структуре, любой комбинации вышеупомянутой структуры или любой другой структуры или аппаратуры, подходящей для реализации методик, описанных в настоящем документе. Кроме того, в некоторых аспектах, функциональность, описанная в данном документе, может быть обеспечена в выделенных программных модулях или аппаратных модулях, сконфигурированных для кодирования и декодирования или включенных в комбинированный кодер-декодер (кодек) видео.
[0191] Иллюстративные примеры раскрытия включают в себя:
[0192] Пример 1. Способ обработки данных видео, причем способ содержит: получение закодированного битового потока видео, причем закодированный битовый поток видео включает в себя блок данных видео; и декодирование, из закодированного битового потока видео, информации, указывающей отображение режима остаточной дифференциальной импульсно-кодовой модуляции (RDPCM) для блока на режим интра-предсказания.
[0193] Пример 2. Способ по примеру 1, дополнительно содержащий: определение использовать режим интра-предсказания для блока на основе информации, указывающей отображение.
[0194] Пример 3. Способ по любому одному из примеров 1 или 2, дополнительно содержащий: выведение, на основе режима интра-предсказания, списка предсказателей для одного или более блоков закодированного битового потока видео.
[0195] Пример 4. Способ по примеру 3, причем список предсказателей включает в себя список наиболее вероятных режимов (MPM).
[0196] Пример 5. Способ по любому одному из примеров 1-4, причем режим интра-предсказания соответствует направлению интра-предсказания.
[0197] Пример 6. Способ по примеру 5, причем направление интра-предсказания включает в себя горизонтальное направление интра-предсказания.
[0198] Пример 7. Способ по примеру 5, причем направление интра-предсказания включает в себя вертикальное направление интра-предсказания.
[0199] Пример 8. Способ по любому одному из примеров 1-5, причем режим RDPCM для блока включает в себя горизонтальный режим RDPCM, и при этом информация указывает отображение горизонтального режима RDPCM на горизонтальное направление интра-предсказания.
[0200] Пример 9. Способ по любому одному из примеров 1-5, причем режим RDPCM для блока включает в себя вертикальный режим RDPCM, и при этом информация указывает отображение вертикального режима RDPCM на вертикальное направление интра-предсказания.
[0201] Пример 10. Способ по любому одному из примеров 1-5, причем информация указывает отображение режима RDPCM на планарный режим интра-предсказания.
[0202] Пример 11. Способ по любому одному из примеров 1-5, в котором информация указывает отображение режима RDPCM на режим DC интра-предсказания.
[0203] Пример 12. Аппаратура, содержащая память, сконфигурированную для хранения данных видео, и процессор, сконфигурированный для обработки данных видео согласно любому из примеров 1-11.
[0204] Пример 13. Аппаратура по примеру 12, причем аппаратура включает в себя декодер.
[0205] Пример 14. Аппаратура по любому одному из примеров 12-13, причем аппаратура является мобильным устройством.
[0206] Пример 15. Аппаратура по любому одному из примеров 12-14, дополнительно содержащая дисплей, сконфигурированный для отображения данных видео.
[0207] Пример 16. Аппаратура по любому одному из примеров 12-15, дополнительно содержащая камеру, сконфигурированную для захвата одной или более картинок.
[0208] Пример 17. Считываемый компьютером носитель, имеющий сохраненные на нем инструкции, которые, при исполнении процессором, выполняют способы по любому из примеров 1-11.
[0209] Пример 18. Способ обработки данных видео, содержащий: применение режима остаточной дифференциальной импульсно-кодовой модуляции (RDPCM) к блоку данных видео; определение отображения режима RDPCM на режим интра-предсказания; и генерирование закодированного битового потока видео, причем закодированный битовый поток видео включает в себя информацию, указывающую отображение режима RDPCM на режим интра-предсказания.
[0210] Пример 19. Способ по примеру 18, причем режим интра-предсказания используется для блока на основе информации, указывающей отображение.
[0211] Пример 20. Способ по любому одному из примеров 18 или 19, причем список предсказателей для одного или более блоков закодированного битового потока видео выводится на основе режима интра-предсказания.
[0212] Пример 21. Способ по примеру 20, причем список предсказателей включает в себя список наиболее вероятных режимов (MPM).
[0213] Пример 22. Способ по любому одному из примеров 18-21, причем режим интра-предсказания соответствует направлению интра-предсказания.
[0214] Пример 23. Способ по примеру 22, причем направление интра-предсказания включает в себя горизонтальное направление интра-предсказания.
[0215] Пример 24. Способ по примеру 22, причем направление интра-предсказания включает в себя вертикальное направление интра-предсказания.
[0216] Пример 25. Способ по любому одному из примеров 18-22, причем режим RDPCM для блока включает в себя горизонтальный режим RDPCM, и при этом информация указывает отображение горизонтального режима RDPCM на горизонтальное направление интра-предсказания.
[0217] Пример 26. Способ по любому одному из примеров 18-22, причем режим RDPCM для блока включает в себя вертикальный режим RDPCM, и при этом информация указывает отображение вертикального режима RDPCM на вертикальное направление интра-предсказания.
[0218] Пример 27. Способ по любому одному из примеров 18-22, причем информация указывает отображение режима RDPCM на планарный режим интра-предсказания.
[0219] Пример 28. Способ по любому одному из примеров 18-22, причем информация указывает отображение режима RDPCM на режим DC интра-предсказания.
[0220] Пример 29. Аппаратура, содержащая память, сконфигурированную для хранения данных видео, и процессор, сконфигурированный для обработки данных видео согласно любому из примеров 18-28.
[0221] Пример 30. Аппаратура по примеру 29, причем аппаратура включает в себя кодер.
[0222] Пример 31. Аппаратура по любому одному из примеров 29 или 30, причем аппаратура является мобильным устройством.
[0223] Пример 32. Аппаратура по любому одному из примеров 29-31, дополнительно содержащая дисплей, сконфигурированный для отображения данных видео.
[0224] Пример 33. Аппаратура по любому одному из примеров 29-32, дополнительно содержащая камеру, сконфигурированную для захвата одной или более картинок.
[0225] Пример 34. Считываемый компьютером носитель, имеющий сохраненные на нем инструкции, которые, при исполнении процессором, выполняют способы по любому из примеров 18-28.
[0226] Пример 35. Способ декодирования данных видео, причем способ содержит: получение первого блока картинки, включенной в закодированный битовый поток видео; определение второго блока картинки, кодируемого с использованием режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM); определение, на основе второго блока, кодируемого с использованием вертикального режима BDPCM, вертикального режима интра-предсказания для списка режимов интра-предсказания для первого блока; и добавление вертикального режима интра- предсказания к списку режимов интра-предсказания для первого блока.
[0227] Пример 36. Способ по пункту 35, причем список режимов интра-предсказания включает в себя список наиболее вероятных режимов (MPM).
[0228] Пример 37. Способ по любому одному из пунктов 35-36, причем второй блок является соседним блоком первого блока в картинке.
[0229] Пример 38. Способ по любому одному из пунктов 35-37, дополнительно содержащий: определение, на основе информации из закодированного битового потока видео и на основе списка режимов интра-предсказания, режима предсказания для использования для декодирования первого блока; и декодирование первого блока с использованием определенного режима предсказания.
[0230] Пример 39. Способ по пункту 38, причем информация из закодированного битового потока видео включает в себя флаг списка режимов интра-предсказания, указывающий, находится ли режим предсказания для использования для декодирования первого блока среди числа режимов предсказания, включенных в список режимов интра-предсказания.
[0231] Пример 40. Способ по пункту 39, дополнительно содержащий: определение, на основе значения флага списка режимов интра-предсказания, что режим предсказания для использования для декодирования первого блока находится среди числа режимов предсказания, включенных в список режимов интра-предсказания; и определение режима предсказания для использования для декодирования первого блока из списка режимов интра-предсказания.
[0232] Пример 41. Способ по любому одному из пунктов 39-40, причем информация в закодированном битовом потоке видео включает в себя значение индекса, ассоциированное со списком режимов интра-предсказания, при этом способ дополнительно содержит: определение режима предсказания для использования для декодирования первого блока из списка режимов интра-предсказания с использованием значения индекса.
[0233] Пример 42. Способ по любому одному из пунктов 35-41, причем первый блок является блоком кодирования яркости.
[0234] Пример 43. Способ по любому одному из пунктов 35-42, дополнительно содержащий: получение третьего блока картинки, включенной в закодированный битовый поток видео; определение четвертого блока картинки, кодируемого с использованием горизонтального режима BDPCM на основе блока; определение, на основе четвертого блока, кодируемого с использованием горизонтального режима BDPCM, горизонтального режима интра- предсказания для списка режимов интра-предсказания для третьего блока; и добавление горизонтального режима интра-предсказания в список режимов интра-предсказания для третьего блока.
[0235] Пример 44. Аппаратура для декодирования данных видео, содержащая: память, сконфигурированную для хранения по меньшей мере одного блока данных видео; и декодер видео, содержащий по меньшей мере одну из фиксированной функциональной и программируемой схемы. Декодер видео сконфигурирован, чтобы: получать первый блок картинки, включенной в закодированный битовый поток данных видео; определять второй блок картинки, кодируемый с использованием режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM); определять, на основе второго блока, кодируемого с использованием вертикального режима BDPCM, вертикальный режим интра-предсказания для списка режимов интра-предсказания для первого блока; и добавлять вертикальный режим интра-предсказания к списку режимов интра-предсказания для первого блока.
[0236] Пример 45. Аппаратура по пункту 44, причем список режимов интра-предсказания включает в себя список наиболее вероятных режимов (MPM).
[0237] Пример 46. Аппаратура по любому одному из пунктов 44-45, причем второй блок является соседним блоком первого блока в картинке.
[0238] Пример 47. Аппаратура по любому одному из пунктов 44-46, причем декодер видео сконфигурирован, чтобы: определять, на основе информации из закодированного битового потока видео и на основе списка режимов интра-предсказания, режим предсказания для использования для декодирования первого блока; и декодировать первый блок с использованием определенного режима предсказания.
[0239] Пример 48. Аппаратура по п. 47, причем информация из закодированного битового потока видео включает в себя флаг списка режимов интра-предсказания, указывающий, находится ли режим предсказания для использования для декодирования первого блока среди числа режимов предсказания, включенных в список режимов интра-предсказания.
[0240] Пример 49. Аппаратура по п. 48, причем декодер видео сконфигурирован, чтобы: определять, на основе значения флага списка режимов интра-предсказания, что режим предсказания для использования для декодирования первого блока находится среди числа режимов предсказания, включенных в список режимов интра-предсказания; и определять режим предсказания для использования для декодирования первого блока из списка режимов интра-предсказания.
[0241] Пример 50. Аппаратура по любому одному из пунктов 48-49, причем информация в закодированном битовом потоке видео включает в себя значение индекса, ассоциированное со списком режимов интра-предсказания, причем декодер видео сконфигурирован, чтобы: определять режим предсказания для использования для декодирования первого блока из списка режимов интра-предсказания с использованием значения индекса.
[0242] Пример 51. Аппаратура по любому одному из пунктов 44-50, причем первый блок является блоком кодирования яркости.
[0243] Пример 52. Аппаратура по любому одному из пунктов 44-51, причем декодер видео сконфигурирован, чтобы: получать третий блок картинки, включенной в закодированный битовый поток видео; определять четвертый блок картинки, кодируемый с использованием горизонтального режима BDPCM на основе блока; определять, на основе четвертого блока, кодируемого с использованием горизонтального режима BDPCM, горизонтальный режим интра-предсказания для списка режимов интра-предсказания для третьего блока; и добавлять горизонтальный режим интра-предсказания к списку режимов интра-предсказания для третьего блока.
[0244] Пример 53. Аппаратура по любому одному из пунктов 44-52, дополнительно содержащее дисплей, сконфигурированный для отображения данных видео.
[0245] Пример 54. Аппаратура по любому одному из пунктов 44-53, причем аппаратура содержит по меньшей мере одно из камеры, компьютера, мобильного устройства, широковещательного приемного устройства и телевизионной приставки.
[0246] Пример 55. Способ кодирования данных видео, причем способ содержит: кодирование первого блока картинки с использованием режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM); получение второго блока картинки; определение, на основе первого блока, кодируемого с использованием вертикального режима BDPCM, вертикального режима интра-предсказания для списка режимов интра-предсказания для второго блока; добавление вертикального режима интра-предсказания к списку режимов интра-предсказания для второго блока; и генерирование закодированного битового потока видео, включающего в себя первый блок, второй блок и список режимов интра-предсказания.
[0247] Пример 56. Способ по пункту 55, в котором список режимов интра-предсказания включает в себя список наиболее вероятных режимов (MPM).
[0248] Пример 57. Способ по любому одному из пунктов 55-56, причем второй блок является соседним блоком первого блока в картинке.
[0249] Пример 58. Способ по любому одному из пунктов 55-57, дополнительно содержащий: включение в закодированный битовый поток видео информации, указывающей режим предсказания для использования для декодирования первого блока.
[0250] Пример 59. Способ по пункту 58, причем информация включает в себя флаг списка режимов интра-предсказания, указывающий, находится ли режим предсказания для использования для декодирования первого блока среди числа режимов предсказания, включенных в список режимов интра-предсказания.
[0251] Пример 60. Способ по любому одному из пунктов 58-59, причем информация включает в себя значение индекса, указывающее режим предсказания из списка режимов интра-предсказания для использования для декодирования первого блока.
[0252] Пример 61. Способ по любому одному из пунктов 55-60, причем первый блок является блоком кодирования яркости.
[0253] Пример 62. Способ по любому одному из пунктов 55-61, дополнительно содержащий: кодирование третьего блока картинки с использованием горизонтального режима BDPCM на основе блока; получение четвертого блока картинки; определение, на основе третьего блока, кодируемого с использованием горизонтального режима BDPCM, горизонтального режима интра-предсказания для списка режимов интра-предсказания для четвертого блока; и добавление горизонтального режима интра-предсказания к списку режимов интра-предсказания для четвертого блока.
[0254] Пример 63. Аппаратура для кодирования данных видео, содержащая: память, сконфигурированную для хранения по меньшей мере одного блока данных видео; и кодер видео, содержащий по меньшей мере одну из фиксированной функциональной и программируемой схемы. Кодер видео сконфигурирован, чтобы: кодировать первый блок картинки с использованием вертикального режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM); получать второй блок картинки; определять, на основе первого блока, закодированного с использованием вертикального режима BDPCM, вертикальный режим интра-предсказания для списка режимов интра-предсказания для второго блока; добавлять вертикальный режим интра-предсказания к списку режимов интра-предсказания для второго блока; и генерировать закодированный битовый поток видео, включающий в себя первый блок, второй блок и список режимов интра-предсказания.
[0255] Пример 64. Аппаратура по пункту 63, причем список режимов интра-предсказания включает в себя список наиболее вероятных режимов (MPM).
[0256] Пример 65. Аппаратура по любому одному из пунктов 63-64, причем второй блок является соседним блоком первого блока в картинке.
[0257] Пример 66. Аппаратура по любому одному из пунктов 64-65, в которой кодер видео сконфигурирован, чтобы: включать, в закодированный битовый поток видео, информацию, указывающую режим предсказания для использования для декодирования первого блока.
[0258] Пример 67. Аппаратура по пункту 66, причем информация включает в себя флаг списка режимов интра- предсказания, указывающий, находится ли режим предсказания для использования для декодирования первого блока среди числа режимов предсказания, включенных в список режимов интра-предсказания.
[0259] Пример 68. Аппаратура по любому одному из пунктов 66-67, причем информация включает в себя значение индекса, указывающее режим предсказания из списка режимов интра-предсказания для использования для декодирования первого блока.
[0260] Пример 69. Аппаратура по любому одному из пунктов 63-68, причем первый блок является блоком кодирования яркости.
[0261] Пример 70. Аппаратура по любому одному из пунктов 63-69, причем кодер видео сконфигурирован, чтобы: кодировать третий блок картинки с использованием горизонтального режима BDPCM на основе блока; получать четвертый блок картинки; определять, на основе третьего блока, кодируемого с использованием горизонтального режима BDPCM, горизонтальный режим интра-предсказания для списка режимов интра-предсказания для четвертого блока; и добавлять горизонтальный режим интра-предсказания к списку режимов интра-предсказания для четвертого блока.
[0262] Пример 71. Аппаратура по любому одному из пунктов 63-70, причем аппаратура содержит одно или более из камеры, компьютера, мобильного устройства, широковещательного приемного устройства или телевизионной приставки.
Claims (89)
1. Способ декодирования данных видео, причем способ содержит:
получение первого блока картинки, включенной в закодированный битовый поток видео;
определение второго блока картинки, кодируемого с использованием режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM);
определение вертикального режима интра-предсказания для добавления в список режимов интра-предсказания для первого блока на основе сопоставления между вертикальным режимом BDPCM и вертикальным режимом интра-предсказания; и
добавление вертикального режима интра-предсказания к списку режимов интра-предсказания для первого блока.
2. Способ по п. 1, причем список режимов интра-предсказания включает в себя список наиболее вероятных режимов (MPM).
3. Способ по п. 1, причем второй блок является соседним блоком первого блока в картинке.
4. Способ по п. 1, дополнительно содержащий:
определение, на основе информации из закодированного битового потока видео и на основе списка режимов интра-предсказания, режима предсказания для использования для декодирования первого блока; и
декодирование первого блока с использованием определенного режима предсказания.
5. Способ по п. 4, причем информация из закодированного битового потока видео включает в себя флаг списка режимов интра-предсказания, указывающий, находится ли режим предсказания для использования для декодирования первого блока среди числа режимов предсказания, включенных в список режимов интра-предсказания.
6. Способ по п. 5, дополнительно содержащий:
определение, на основе значения флага списка режимов интра-предсказания, что режим предсказания для использования для декодирования первого блока находится среди числа режимов предсказания, включенных в список режимов интра-предсказания; и
определение режима предсказания для использования для декодирования первого блока из списка режимов интра-предсказания.
7. Способ по п. 6, причем информация в закодированном битовом потоке видео включает в себя значение индекса, ассоциированное со списком режимов интра-предсказания, причем способ дополнительно содержит:
определение режима предсказания для использования для декодирования первого блока из списка режимов интра-предсказания с использованием значения индекса.
8. Способ по п. 1, причем первый блок является блоком кодирования яркости.
9. Способ по п. 1, дополнительно содержащий:
получение третьего блока картинки, включенной в закодированный битовый поток видео;
определение четвертого блока картинки, кодируемого с использованием горизонтального режима BDPCM;
определение, на основе четвертого блока, кодируемого с использованием горизонтального режима BDPCM, горизонтального режима интра-предсказания для списка режимов интра-предсказания для третьего блока; и
добавление горизонтального режима интра-предсказания к списку режимов интра-предсказания для третьего блока.
10. Способ по п. 9, причем горизонтальный режим интра-предсказания определяют для списка режимов интра-предсказания для третьего блока на основе сопоставления между горизонтальным режимом BDPCM и горизонтальным режимом интра-предсказания.
11. Аппаратура для декодирования данных видео, содержащая:
память, сконфигурированную для хранения по меньшей мере одного блока данных видео; и
декодер видео, содержащий по меньшей мере одну из фиксированной функциональной и программируемой схемы, причем декодер видео сконфигурирован, чтобы:
получать первый блок картинки, включенной в закодированный битовый поток видео;
определять, что второй блок картинки кодирован с использованием вертикального режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM);
определять вертикальный режим интра-предсказания для добавления в список режимов интра-предсказания для первого блока на основе сопоставления между вертикальным режимом BDPCM и вертикальным режимом интра-предсказания; и
добавлять вертикальный режим интра-предсказания к списку режимов интра-предсказания для первого блока.
12. Аппаратура по п. 11, причем список режимов интра-предсказания включает в себя список наиболее вероятных режимов (MPM).
13. Аппаратура по п. 11, причем второй блок является соседним блоком первого блока в картинке.
14. Аппаратура по п. 11, причем декодер видео сконфигурирован, чтобы:
определять, на основе информации из закодированного битового потока видео и на основе списка режимов интра-предсказания, режим предсказания для использования для декодирования первого блока; и
декодировать первый блок с использованием определенного режима предсказания.
15. Аппаратура по п. 14, причем информация из закодированного битового потока видео включает в себя флаг списка режимов интра-предсказания, указывающий, находится ли режим предсказания для использования для декодирования первого блока, среди числа режимов предсказания, включенных в список режимов интра-предсказания.
16. Аппаратура по п. 14, причем декодер видео сконфигурирован, чтобы:
определять, на основе значения флага списка режимов интра-предсказания, что режим предсказания для использования для декодирования первого блока находится среди числа режимов предсказания, включенных в список режимов интра-предсказания; и
определять режим предсказания для использования для декодирования первого блока из списка режимов интра-предсказания.
17. Аппаратура по п. 16, причем информация в закодированном битовом потоке видео включает в себя значение индекса, ассоциированное со списком режимов интра-предсказания, причем декодер видео сконфигурирован, чтобы:
определять режим предсказания для использования для декодирования первого блока из списка режимов интра-предсказания с использованием значения индекса.
18. Аппаратура по п. 11, причем первый блок является блоком кодирования яркости.
19. Аппаратура по п. 11, причем декодер видео сконфигурирован, чтобы:
получать третий блок картинки, включенной в закодированный битовый поток видео;
определять четвертый блок картинки, кодируемый с использованием горизонтального режима BDPCM;
определять, на основе четвертого блока, кодируемого с использованием горизонтального режима BDPCM, горизонтальный режим интра-предсказания для списка режимов интра-предсказания для третьего блока; и
добавлять горизонтальный режим интра-предсказания к списку режимов интра-предсказания для третьего блока.
20. Аппаратура по п. 19, причем горизонтальный режим интра-предсказания определяют для списка режимов интра-предсказания для третьего блока на основе сопоставления между горизонтальным режимом BDPCM и горизонтальным режимом интра-предсказания.
21. Аппаратура по п. 11, дополнительно содержащая дисплей, сконфигурированный для отображения данных видео.
22. Аппаратура по п. 11, причем аппаратура содержит по меньшей мере одно из камеры, компьютера, мобильного устройства, широковещательного приемного устройства и телевизионной приставки.
23. Способ кодирования данных видео, содержащий:
кодирование первого блока картинки с использованием режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM);
получение второго блока картинки;
определение вертикального режима интра-предсказания для добавления в список режимов интра-предсказания для второго блока на основе сопоставления между вертикальным режимом BDPCM и вертикальным режимом интра-предсказания;
добавление вертикального режима интра-предсказания к списку режимов интра-предсказания для второго блока; и
генерирование закодированного битового потока видео, включающего в себя информацию, ассоциированную со списком режимов интра-предсказания.
24. Способ по п. 23, причем список режимов интра-предсказания включает в себя список наиболее вероятных режимов (MPM).
25. Способ по п. 23, причем второй блок является соседним блоком первого блока в картинке.
26. Способ по п. 23, причем информация, ассоциированная со списком режимов интра-предсказания, указывает режим предсказания для использования для декодирования первого блока.
27. Способ по п. 26, причем информация включает в себя флаг списка режимов интра-предсказания, указывающий, находится ли режим предсказания для использования для декодирования первого блока среди числа режимов предсказания, включенных в список режимов интра-предсказания.
28. Способ по п. 27, причем информация включает в себя значение индекса, указывающее режим предсказания из списка режимов интра-предсказания для использования для декодирования первого блока.
29. Способ по п. 23, причем второй блок является блоком кодирования яркости.
30. Способ по п. 23, дополнительно содержащий:
кодирование третьего блока картинки с использованием горизонтального режима BDPCM;
получение четвертого блока картинки;
определение, на основе третьего блока, кодируемого с использованием горизонтального режима BDPCM, горизонтального режима интра-предсказания для списка режимов интра-предсказания для четвертого блока; и
добавление горизонтального режима интра-предсказания к списку режимов интра-предсказания для четвертого блока.
31. Способ по п. 30, причем горизонтальный режим интра-предсказания определяют для списка режимов интра-предсказания для четвертого блока на основе сопоставления между горизонтальным режимом BDPCM и горизонтальным режимом интра-предсказания.
32. Аппаратура для кодирования данных видео, содержащая:
память, сконфигурированную для хранения по меньшей мере одного блока данных видео; и
кодер видео, содержащий по меньшей мере одну из фиксированной функциональной и программируемой схемы, причем кодер видео сконфигурирован, чтобы:
кодировать первый блок картинки с использованием вертикального режима импульсно-кодовой модуляции области квантованных на блочной основе остатков (BDPCM);
получать второй блок картинки;
определять вертикальный режим интра-предсказания для добавления в список режимов интра-предсказания для второго блока на основе сопоставления между вертикальным режимом BDPCM и вертикальным режимом интра-предсказания;
добавлять вертикальный режим интра-предсказания к списку режимов интра-предсказания для второго блока; и
генерировать закодированный битовый поток видео, включающий в себя информацию, ассоциированную со списком режимов интра-предсказания.
33. Аппаратура по п. 32, причем список режимов интра-предсказания включает в себя список наиболее вероятных режимов (MPM).
34. Аппаратура по п. 32, причем второй блок является соседним блоком первого блока в картинке.
35. Аппаратура по п. 32, причем информация, ассоциированная со списком режимов интра-предсказания, представляет собой информацию, указывающую режим предсказания для использования для декодирования первого блока.
36. Аппаратура по п. 35, причем информация включает в себя флаг списка режимов интра-предсказания, указывающий, находится ли режим предсказания для использования для декодирования первого блока среди числа режимов предсказания, включенных в список режимов интра-предсказания.
37. Аппаратура по п. 36, причем информация включает в себя значение индекса, указывающее режим предсказания из списка режимов интра-предсказания для использования для декодирования первого блока.
38. Аппаратура по п. 32, причем второй блок является блоком кодирования яркости.
39. Аппаратура по п. 32, причем кодер видео сконфигурирован, чтобы:
кодировать третий блок картинки с использованием горизонтального режима BDPCM;
получать четвертый блок картинки;
определять, на основе третьего блока, кодируемого с использованием горизонтального режима BDPCM, горизонтальный режим интра-предсказания для списка режимов интра-предсказания для четвертого блока; и
добавлять горизонтальный режим интра-предсказания к списку режимов интра-предсказания для четвертого блока.
40. Аппаратура по п. 39, причем горизонтальный режим интра-предсказания определяют для списка режимов интра-предсказания для четвертого блока на основе сопоставления между горизонтальным режимом BDPCM и горизонтальным режимом интра-предсказания.
41. Аппаратура по п. 32, причем аппаратура содержит одно или более из камеры, компьютера, мобильного устройства, широковещательного приемного устройства или телевизионной приставки.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62/838,928 | 2019-04-25 | ||
US16/854,720 | 2020-04-21 |
Publications (3)
Publication Number | Publication Date |
---|---|
RU2021130639A RU2021130639A (ru) | 2023-05-25 |
RU2816752C2 true RU2816752C2 (ru) | 2024-04-04 |
RU2816752C9 RU2816752C9 (ru) | 2024-08-23 |
Family
ID=
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173080B1 (en) * | 1996-09-21 | 2001-01-09 | Samsung Electronics Co., Ltd. | Prediction method for discrete cosine transform coefficient |
US20140362917A1 (en) * | 2013-06-05 | 2014-12-11 | Qualcomm Incorporated | Residual differential pulse code modulation (dpcm) extensions and harmonization with transform skip, rotation, and scans |
US9445121B2 (en) * | 2008-08-04 | 2016-09-13 | Dolby Laboratories Licensing Corporation | Overlapped block disparity estimation and compensation architecture |
US9756346B2 (en) * | 2012-10-08 | 2017-09-05 | Google Inc. | Edge-selective intra coding |
RU2654200C1 (ru) * | 2014-06-27 | 2018-05-17 | Хуавэй Текнолоджиз Ко., Лтд. | Усовершенствованное кодирование содержимого экрана с улучшенными способами кодирования таблицы палитры и индексной карты |
CN108965880A (zh) * | 2017-05-19 | 2018-12-07 | 展讯通信(上海)有限公司 | 图像压缩、解压缩方法及装置、存储介质、终端 |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173080B1 (en) * | 1996-09-21 | 2001-01-09 | Samsung Electronics Co., Ltd. | Prediction method for discrete cosine transform coefficient |
US9445121B2 (en) * | 2008-08-04 | 2016-09-13 | Dolby Laboratories Licensing Corporation | Overlapped block disparity estimation and compensation architecture |
US9756346B2 (en) * | 2012-10-08 | 2017-09-05 | Google Inc. | Edge-selective intra coding |
US20140362917A1 (en) * | 2013-06-05 | 2014-12-11 | Qualcomm Incorporated | Residual differential pulse code modulation (dpcm) extensions and harmonization with transform skip, rotation, and scans |
RU2654200C1 (ru) * | 2014-06-27 | 2018-05-17 | Хуавэй Текнолоджиз Ко., Лтд. | Усовершенствованное кодирование содержимого экрана с улучшенными способами кодирования таблицы палитры и индексной карты |
CN108965880A (zh) * | 2017-05-19 | 2018-12-07 | 展讯通信(上海)有限公司 | 图像压缩、解压缩方法及装置、存储介质、终端 |
Non-Patent Citations (2)
Title |
---|
HENRY F. et al., "CE8: BDPCM with horizontal/vertical predictor and independently decodable areas (test 8.3.1b)", JVET-M0057, 13 Meeting, Marrakech, 2018. * |
KARCZEWICZ M. et al., "CE8-related: Quantized residual BDPCM", JVET-N0413, 14 Meeting, Geneva, March 2019. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113196775B (zh) | 用于当前图片参考(cpr)和帧内块复制(ibc)的虚拟搜索区 | |
JP7465281B2 (ja) | イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て | |
CN113728634B (zh) | 自适应环路滤波器(alf)参数的自适应参数集(aps) | |
CN111201790B (zh) | 基于色度量化参数偏移的编解码方法、装置、存储介质 | |
US10897612B2 (en) | Coding identifiers for motion constrained tile sets | |
JP6538727B2 (ja) | パラメータセットにおいてレイヤセットのための情報をシグナリングするためのシステムおよび方法 | |
TW202037163A (zh) | 改善的子劃分內預測 | |
CN114128277B (zh) | 针对局部双树的调色板预测器更新 | |
CN114982246B (zh) | 环路滤波器的自适应舍入 | |
CN113287300B (zh) | 针对照度补偿的块大小限制 | |
JP7554776B2 (ja) | 適応ループフィルタのためのクリッピング値算出の簡易化 | |
TW201735608A (zh) | 用於產生對視訊之顏色再映射資訊之補充增強資訊訊息之方法及系統 | |
KR20220032016A (ko) | 래스터-스캔 슬라이스들에 걸친 적응적 루프 필터링 | |
JP2023521969A (ja) | 色フォーマットサポートのための適応ループフィルタ処理 | |
KR20240121225A (ko) | 적응형 필름 그레인 합성 | |
JP2024531112A (ja) | グリーンメタデータシグナリング | |
RU2816752C2 (ru) | Назначение импульсно-кодовой модуляции области квантованных на блочной основе остатков для выведения режима интра-предсказания | |
RU2816752C9 (ru) | Назначение импульсно-кодовой модуляции области квантованных на блочной основе остатков для выведения режима интра-предсказания | |
TWI851707B (zh) | 用於適應性迴圈濾波器變數之適應變數集合 | |
TWI856156B (zh) | 針對局部雙樹的調色板預測器更新 | |
TW202433920A (zh) | 用於跨分量適應性迴路濾波的區域優化儲存方案 | |
JP2023552980A (ja) | 高ビット深度ビデオコーディングのライスパラメータ導出のための低複雑度の履歴使用 | |
TW202433931A (zh) | 針對低延時視頻解碼器的提早通知 |