СИСТЕМЫ И СПОСОБЫ ДЛЯ ВЫПОЛНЕНИЯ ПЛАНАРНОГО КОДИРОВАНИЯ ВИДЕОСИГНАЛОВ С ВНУТРЕННИМ ПРОГНОЗИРОВАНИЕМ
SYSTEMS AND METHODS FOR PERFORMING PLANAR VIDEO SIGNAL ENCODING WITH INTERNAL FORECASTING

Область техники
[0001] Настоящее описание относится к кодированию видео и, в частности, к методикам разделения изображения видеоданных.
Уровень техники
[0002] Возможности цифрового видео можно применять в широком спектре устройств, включая цифровые телевизоры, ноутбуки или настольные компьютеры, планшетные компьютеры, устройства цифровой записи, цифровые медиаплееры, устройства для видеоигр, сотовые телефоны, включая так называемые смартфоны, медицинские устройства визуализации и т.п. Цифровое видео может быть закодировано в соответствии со стандартом кодирования видеосигналов. Стандарты кодирования видеосигналов могут включать в себя методики сжатия видео. Примеры стандартов кодирования видеосигналов включают в себя ISO/IEC MPEG-4 Visual и ITU-T H.264 (также известный как ISO/IEC MPEG-4 AVC), а также высокоэффективное кодирование видеосигналов (HEVC). HEVC описан в документе High Efficiency Video Coding (HEVC), Rec. ITU-T H.265, апрель 2015 г., включенном в данное описание путем ссылки и далее упоминаемом в настоящем документе как ITU-T H.265. В настоящее время рассматриваются расширения и усовершенствования ITU-T H.265 для разработки стандартов кодирования видеосигналов следующего поколения. Например, Экспертная группа по кодированию видеосигналов ITU-T (VCEG) и ISO/IEC (Экспертная группа по вопросам движущихся изображений (MPEG) (совместно именуемые Объединенной группой по исследованию видео (JVET)) изучают потенциальную потребность в стандартизации будущей технологии кодирования видеосигналов с возможностью сжатия, которая значительно превышает возможности сжатия нынешнего стандарта HEVC. В документе The Joint Exploration Model 3 (JEM 3), Algorithm Description of Joint Exploration Test Model 3 (JEM 3), ISO/IEC JTC1/SC29/WG11: JVET-C1001v3, май 2016 г., Женева, Швейцария, включенном в настоящее описание путем ссылки, описаны функции кодирования, являющиеся предметом скоординированного исследования тестовой модели JVET, как способные усовершенствовать технологию кодирования видеосигналов сверх возможностей ITU-T H.265. Следует отметить, что функции кодирования JEM 3 реализованы в эталонном программном обеспечении JEM, поддерживаемом исследовательской организацией Fraunhofer. В настоящее время доступно обновленное эталонное программное обеспечение JEM версии 3 (JEM 3.0). Употребляемый в настоящем описании термин JEM используется для общей ссылки на алгоритмы, включенные в JEM 3, и реализации эталонного программного обеспечения JEM.
[0003] Методики сжатия видео позволяют снижать требования к данным для хранения и передачи видеоданных. Методики сжатия видео могут снижать требования к данным посредством применения присущих избыточностей в видеопоследовательности. Методики сжатия видео могут предусматривать подразделение видеопоследовательности на последовательно меньшие части (т.е. группы кадров в видеопоследовательности, кадр в группе кадров, срезы в кадре, элементы кодового дерева (например, макроблоки) в срезе, блоки кодирования в элементе кодового дерева и т.д.). Методики кодирования с внутренним прогнозированием (например, внутрикадровое (пространственное)) и методики внешнего прогнозирования (т.е., межкадровое (временное)) можно использовать для генерации значений разности между кодируемым элементом видеоданных и опорным элементом видеоданных. Значения разности могут назваться остаточными данными. Остаточные данные могут быть закодированы как квантованные коэффициенты преобразования. Элементы синтаксиса могут относиться к остаточным данным и опорному блоку кодирования (например, индексам режима внутреннего прогнозирования, векторам движения и векторам блоков). Остаточные данные и элементы синтаксиса можно подвергать энтропийному кодированию. Энтропийно закодированные остаточные данные и элементы синтаксиса могут быть включены в совместимый битовый поток.
Изложение сущности изобретения
[0004] Способ формирования прогнозирования для области видеоданных, включающий прием прямоугольного видеоблока, включающего в себя значения выборки, и формирование прогнозируемого значения выборки для каждой выборки, включенной в видеоблок, путем усреднения горизонтальной интерполяции и вертикальной интерполяции, соответствующих местоположению выборки в видеоблоке.
Краткое описание графических материалов
[0005] [ФИГ. 1] На ФИГ. 1 приведена концептуальная схема, иллюстрирующая пример группы изображений, кодируемых в соответствии с разделением двоичного дерева четверичного дерева в соответствии с одной или более методиками настоящего описания.
[ФИГ. 2] На ФИГ. 2 приведена концептуальная схема, иллюстрирующая пример двоичного дерева четверичного дерева в соответствии с одной или более методиками настоящего описания.
[ФИГ. 3] На ФИГ. 3 приведена концептуальная схема, иллюстрирующая разделение двоичного дерева четверичного дерева видеокомпонента в соответствии с одной или более методиками настоящего описания.
[ФИГ. 4] На ФИГ. 4 приведена концептуальная схема, иллюстрирующая пример формата выборки видеокомпонента в соответствии с одной или более методиками настоящего описания.
[ФИГ. 5] На ФИГ. 5 приведена концептуальная схема, иллюстрирующая возможные структуры кодирования для блока видеоданных в соответствии с одной или более методиками настоящего описания.
[ФИГ. 6B] На ФИГ. 6А приведена концептуальная схема, иллюстрирующая пример кодирования блока видеоданных в соответствии с одной или более методиками настоящего описания.
[ФИГ. 6B] На ФИГ. 6B приведена концептуальная схема, иллюстрирующая примеры кодирования блока видеоданных в соответствии с одной или более методиками настоящего описания.
[ФИГ. 7] На ФИГ. 7 приведена блок-схема, иллюстрирующая пример системы, которая может быть выполнена с возможностью кодирования и декодирования видеоданных в соответствии с одной или более методиками настоящего описания.
[ФИГ. 8] На ФИГ. 8 приведена блок-схема, иллюстрирующая пример видеокодера, который может быть выполнен с возможностью кодирования видеоданных в соответствии с одной или более методиками настоящего описания.
[ФИГ. 9] На ФИГ. 9 приведена концептуальная схема, иллюстрирующая разделение двоичного дерева четверичного дерева видеокомпонента в соответствии с одной или более методиками настоящего описания.
[ФИГ. 10] На ФИГ. 10 приведена концептуальная схема, иллюстрирующая разделение двоичного дерева четверичного дерева видеокомпонента в соответствии с одной или более методиками настоящего описания.
[ФИГ. 11] На ФИГ. 11 приведена концептуальная схема, иллюстрирующая пример двоичных деревьев четверичного дерева в соответствии с одной или более методиками настоящего описания.
[ФИГ. 12] На ФИГ. 12 приведена концептуальная схема, иллюстрирующая разделение двоичного дерева четверичного дерева в соответствии с одной или более методиками настоящего описания.
[ФИГ. 13] На ФИГ. 13 приведена концептуальная схема, иллюстрирующая разделение двоичного дерева четверичного дерева в соответствии с одной или более методиками настоящего описания.
[ФИГ. 14] На ФИГ. 14 приведена блок-схема, иллюстрирующая пример видеодекодера, который может быть выполнен с возможностью декодирования видеоданных в соответствии с одной или более методиками настоящего описания.
[ФИГ. 15A] На ФИГ. 15A приведена концептуальная схема, иллюстрирующая пример выполнения внутреннего прогнозирования в соответствии с одной или более методиками настоящего описания.
[ФИГ. 15B] На ФИГ. 15B приведена концептуальная схема, иллюстрирующая пример выполнения внутреннего прогнозирования в соответствии с одной или более методиками настоящего описания.
[ФИГ. 16A] На ФИГ. 16A приведена концептуальная схема, иллюстрирующая пример выполнения внутреннего прогнозирования в соответствии с одной или более методиками настоящего описания.
[ФИГ. 16B] На ФИГ. 16B приведена концептуальная схема, иллюстрирующая пример выполнения внутреннего прогнозирования в соответствии с одной или более методиками настоящего описания.
Описание вариантов осуществления
[0006] В целом настоящее описание представляет различные методики кодирования видеоданных. В частности, настоящее описание относится к методикам разделения изображения видеоданных. Следует отметить, что, хотя методики настоящего описания описаны применительно к ITU-T H.264, ITU-T H.265 и JEM, они в целом применимы к кодированию видеосигналов. Например, описанные в настоящем документе методики кодирования могут быть использованы в системах кодирования видеосигналов (включая системы кодирования видеосигналов на основе будущих стандартов кодирования видеосигналов), включающих в себя блочные структуры, методики внутреннего прогнозирования, методики внешнего прогнозирования, методики преобразования, методики фильтрации и/или методики энтропийного кодирования, отличные от включенных в ITU-T H.265 и JEM. Таким образом, ссылка на ITU-T H.264, ITU-T H.265 и/или JEM предназначена для описательных целей и не должна толковаться как ограничивающая объем методик, описанных в настоящем документе. Следует отметить, что включение документов посредством ссылки в данное описание дополнительно предназначено для описательных целей и не должно толковаться как ограничение или создание двусмысленности в отношении употребляемых в настоящем описании терминов. Например, в случае, если включенная ссылка содержит определение термина, отличное от другой включенной ссылки, и/или в контексте данного описания термин следует интерпретировать таким образом, что он в широком смысле включает в себя каждое соответствующее определение и/или каждое из конкретных определений в виде альтернативы.
[0007] В одном примере устройство для формирования прогноза для области видеоданных содержит один или более процессоров, выполненных с возможностью приема прямоугольного видеоблока, включающего в себя значения выборки, и формирования прогнозируемой величины выборки для каждой выборки, включенной в видеоблок, путем усреднения горизонтальной интерполяции и вертикальной интерполяции, соответствующих местоположению выборки в видеоблоке.
[0008] В одном примере энергонезависимый машиночитаемый носитель данных содержит одну или более инструкций, исполнение которых приводит к приему одним или более процессоров устройства прямоугольного видеоблока, содержащего значения выборки, и формирования прогнозируемой величины выборки для каждой выборки, включенной в видеоблок, путем усреднения горизонтальной интерполяции и вертикальной интерполяции, соответствующих местоположению выборки в видеоблоке.
[0009] В одном примере устройство содержит средства для приема прямоугольного видеоблока, включающего в себя значения выборки, и средства формирования прогнозируемой величины выборки путем усреднения горизонтальной интерполяции и вертикальной интерполяции, соответствующих местоположению выборки в видеоблоке для каждой выборки, включенной в видеоблок.
[0010] Подробности одного или более примеров изложены в приведенном ниже описании и на сопроводительных чертежах. Прочие признаки, объекты и преимущества будут понятны из описания, и чертежей, и формулы изобретения.
[0011] Видеоконтент обычно включает в себя видеопоследовательности, состоящие из ряда кадров (или изображений). Последовательность кадров может также называться группой изображений (GOP). Каждый видеокадр или изображение может включать в себя множество срезов или мозаичных фрагментов, причем срез или мозаичный фрагмент включает в себя множество видеоблоков. Используемый в настоящем описании термин «видеоблок» может по существу относиться к области изображения, или, в частности, может относиться к самому большому массиву значений выборки, которые могут быть кодированы с прогнозированием, их подразделам и/или соответствующим структурам. Термин «текущий видеоблок» может дополнительно относиться к кодируемой или декодируемой области изображения. Видеоблок может быть определен как массив значений выборки, которые могут быть кодированы с прогнозированием. Следует отметить, что в некоторых случаях значения пикселей (Pic) могут быть описаны как включающие значения выборки для соответствующих компонентов видеоданных, которые также могут упоминаться как цветовые компоненты (например, компоненты яркости (Y) и цветности (Cb и Cr) или красный, зеленый и синий компоненты). Следует отметить, что в некоторых случаях термины значения пикселей и значения выборки используют взаимозаменяемо. Видеоблоки могут быть упорядочены в изображении в соответствии с типом сканирования (например, растровое сканирование). Видеокодер может выполнять кодирование с прогнозированием для видеоблоков и их подразделов. Видеоблоки и их подразделы могут упоминаться как узлы.
[0012] ITU-T H.264 определяет макроблок, включающий в себя 16×16 выборок яркости. Таким образом, согласно ITU-T H.264 изображение сегментировано на макроблоки. ITU-T H.265 определяет аналогичную структуру элемента кодового дерева (CTU). В ITU-T H.265 изображения сегментированы на CTU. В ITU-T H.265 для изображения размер CTU может быть установлен таким образом, что он будет включать в себя 16×16, 32×32 или 64×64 выборок яркости. В ITU-T H.265 CTU состоит из соответствующих блоков кодового дерева (CTB) для каждого компонента видеоданных (например, яркости (Y) и цветности (Cb и Cr)). В ITU-T H.265 CTU может быть дополнительно разделен в соответствии со структурой разделения четверичного дерева (QT), что обеспечивает разделение блоков CTB элемента CTU на блоки кодирования (CB). Таким образом, в ITU-T H.265 CTU может быть разделен на концевые узлы четверичного дерева. В ITU-T H.265 один CB яркости вместе с двумя соответствующими CB цветности и связанными с ними элементами синтаксиса называются элементом кодирования (CU). В ITU-T H.265 посредством сигнализации может быть указан минимально допустимый размер CB. В ITU-T H.265 наименьший минимально допустимый размер CB яркости составляет 8×8 выборок яркости. В ITU-T H.265 решение о кодировании области изображения с использованием внутреннего или внешнего прогнозирования принимают на уровне CU.
[0013] В ITU-T H.265 CU связан со структурой элемента прогнозирования (PU) с корнем в CU. В ITU-T H.265 структуры PU позволяют разделять CB яркости и цветности с целью генерации соответствующих опорных выборок. Таким образом, согласно ITU-T H.265 CB яркости и цветности могут быть разделены на блоки прогнозирования (PB) яркости и цветности, причем PB включает в себя блок значений выборки, для которых применяют одно и то же прогнозирование. В ITU-T H.265 CB может быть разделен на 1, 2 или 4 PB. ITU-T H.265 поддерживает размеры PB от 64×64 до 4×4 выборок. В ITU-T H.265 квадратные PB поддерживаются для внутреннего прогнозирования, причем CB может формировать PB, или CB может быть разделен на четыре квадратных PB (т.е. типы размеров PB внутреннего прогнозирования включают в себя M×M или M/2×M/2, где M представляет собой высоту и ширину квадрата CB). Помимо квадратных PB ITU-T H.265 поддерживает прямоугольные PB для внешнего прогнозирования, причем CB может быть уменьшен вдвое по вертикали или горизонтали для формирования PB (т.е. типы PB с внешним прогнозированием включают в себя M×M, M/2×M/2, M/2×M или M×M/2). Следует отметить, что в ITU-T H.265 для внешнего прогнозирования дополнительно поддерживаются четыре асимметричных разделения PB, причем CB разделяют на два PB на одной четверти высоты (вверху или внизу) или ширины (слева или справа) CB (т.е. асимметричные разделения включают в себя M/4×M слева, M/4×M справа, M×M/4 сверху и M×M/4 снизу). Данные внутреннего прогнозирования (например, элементы синтаксиса режима внутреннего прогнозирования) или данные внешнего прогнозирования (например, элементы синтаксиса данных движения), соответствующие PB, используют для создания опорных и/или прогнозированных значений выборки для PB.
[0014] JEM определяет CTU, имеющий максимальный размер 256×256 выборок яркости. JEM определяет структуру блоков четверичного дерева и двоичного дерева (QTBT). В JEM структура QTBT позволяет осуществлять дополнительное разделение концевых узлов четверичных деревьев в соответствии со структурой двоичного дерева (BT). Таким образом, в JEM структура двоичного дерева позволяет рекурсивно разделять концевые узлы четверичного дерева по вертикали или горизонтали. На ФИГ. 1 приведен пример разделения CTU (например, CTU, имеющий размер 256×256 выборок яркости) на концевые узлы четверичного дерева, а концевые узлы четверичного дерева дополнительно разделяют в соответствии с двоичным деревом. Т. е. на ФИГ. 1 пунктирными линиями обозначены дополнительные разделения двоичного дерева в четверичном дереве. Таким образом, структура двоичного дерева в JEM допускает квадратные и прямоугольные концевые узлы, причем каждый концевой узел включает в себя CB. Как показано на ФИГ. 1, изображение, включенное в GOP, может включать в себя срезы, причем каждый срез включает в себя последовательность CTU, а каждый CTU может быть разделен в соответствии со структурой QTBT. ФИГ. 1 иллюстрирует пример разделения QTBT для одного CTU, включенного в срез. На ФИГ. 2 приведена концептуальная схема, иллюстрирующая пример QTBT, соответствующего примеру разделения QTBT, показанному на ФИГ. 1.
[0015] В JEM QTBT сигнализирован посредством сигнализации флага разделения QT и элементов синтаксиса режима разделения BT. Если флаг разделения QT имеет значение 1, указывается разделение QT. Если флаг разделения QT имеет значение 0, сигнализируется элемент синтаксиса режима BT. Если элемент синтаксиса режима разделения BT имеет значение 0, двоичное разделение не указывается. Если элемент синтаксиса режима разделения BT имеет значение 1, указывается режим разделения по вертикали. Если элемент синтаксиса режима разделения BT имеет значение 2, указывается режим разделения по горизонтали. Разделение BT можно дополнительно выполнять до достижения максимальной глубины BT. Таким образом, согласно JEM QTBT, проиллюстрированное на ФИГ. 2, может быть сигнализировано на основе псевдосинтаксиса, представленного в таблице 1.
QT flag=1; //Depth 0 syntaxQT flag=1; //Depth 1 syntaxQT flag=0, BT split=0; //Depth 2 syntaxQT flag=0, BT split=2; //Depth 2 syntaxBT split=0; //Depth 3 syntaxBT split=0; //Depth 3 syntaxQT flag=0, BT split=0; //Depth 2 syntaxQT flag=0, BT split=1; //Depth 2 syntaxBT split=0; //Depth 3 syntaxBT split=0; //Depth 3 syntaxQT flag=0, BT split=1; //Depth 1 syntaxBT split=0; //Depth 2 syntaxBT split=1; //Depth 2 syntaxBT split=0; //Depth 3 syntaxBT split=0; //Depth 3 syntaxQT flag=0; BT split=2; //Depth 1 syntaxBT split=0; //Depth 2 syntaxBT split=0; //Depth 2 syntaxQT flag=1; //Depth 1 syntaxQT flag=0, BT split=0; //Depth 2 syntaxQT flag=1; //Depth 2 syntaxQT flag=0, BT split=0; //Depth 3 syntaxQT flag=0, BT split=0; //Depth 3 syntaxQT flag=0, BT split=0; //Depth 3 syntaxQT flag=0, BT split=0; //Depth 3 syntaxQT flag=0, BT split=0; //Depth 2 syntaxQT flag=0, BT split=0. //Depth 2 syntax
Таблица 1
[0016] В одном примере при достижении максимальной глубины QT сигнализация флага QT может быть пропущена, а его значение может быть выведено логически, например, как 0. В одном примере, если текущая глубина меньше минимальной глубины QT, сигнализация флага QT может быть пропущена, а его значение может быть выведено логически, например, как 1. В одном примере при достижении максимальной глубины для сигнализации типа разделения соответствующий элемент синтаксиса может не быть сигнализирован в битовом потоке, а его значение может быть выведено логически. В одном примере, если минимальная глубина для сигнализации типа разделения еще не достигнута, соответствующий элемент синтаксиса может не быть сигнализирован в битовом потоке, а его значение может быть выведено логически. В одном примере, если разделение QT не разрешено, а текущая глубина меньше минимальной глубины BT, сигнализация разделения BT может быть модифицирована таким образом, чтобы разделение BT не было равным 0.
[0017] В одном примере для сигнализации решений о разделении можно использовать следующий обход дерева. Например:
1. Сигнализация решений о разделении для текущего узла
2. Для i=1 до количества узлов–потомков текущего узла (на этапе 1) выполнение следующего:
a. определение узла–потомка n, соответствующего i (это может быть основано на поиске, основанном на режиме разделения текущего узла);
b. обход поддерева с корнем в узле–потомке n с рекурсивным вызовом функции обхода.
[0018] В одном примере для сигнализации решений о разделении можно использовать следующий обход дерева. Например: 1. Для i=1 до количества узлов–потомков текущего узла (на этапе 1) выполнение следующего:
a. определение узла–потомка n, соответствующего i (это может быть основано на поиске, основанном на режиме разделения текущего узла);
b. обход поддерева с корнем в узле–потомке n с рекурсивным вызовом функции обхода;
с.сигнализация решений о разделении для текущего узла.
[0019] В примере для сигнализации решений о разделении можно использовать следующий обход дерева. Например:
1. Для i=1 до количества узлов–потомков текущего узла (на этапе 1) выполнение следующего:
a. определение узла–потомка n, соответствующего i (это может быть основано на поиске, основанном на режиме разделения текущего узла);
b. обход поддерева с корнем в узле–потомке n с рекурсивным вызовом функции обхода.
2. Сигнализация решений о разделении для текущего узла.
[0020] В одном примере обход деревьев может быть осуществлен с возрастающей глубиной. В таком случае все решения о разделении для узлов на определенной глубине могут быть сигнализированы до перехода на следующую глубину.
[0021] Как показано на ФИГ. 2 и в таблице 1, элементы синтаксиса флага разделения QT и элементы синтаксиса режима разделения BT связаны с глубиной, причем нулевая глубина соответствует корню QTBT, а глубины с более высокими значениями соответствуют последующим глубинам за пределами корня. В JEM компоненты яркости и цветности могут дополнительно иметь отдельные разделения QTBT. Таким образом, в JEM компоненты яркости и цветности могут быть разделены независимо путем сигнализации соответствующих QTBT. На ФИГ. 3 проиллюстрирован пример разделения CTU в соответствии с QTBT для компонента яркости и отдельным QTBT для компонентов цветности. Как показано на ФИГ. 3, если для разделения CTU используют независимые QTBT, CB компонента яркости не должны совпадать и не обязательно совпадают с CB компонентов цветности. В настоящее время в JEM независимые структуры QTBT задействованы для срезов при использовании методик внутреннего прогнозирования. Следует отметить, что в некоторых случаях значения переменных цветности необходимо получать из соответствующих значений переменных яркости. В этих случаях положение выборки в цветности и формат цветности можно использовать для определения соответствующей позиции выборки в яркости, чтобы определять соответствующее значение переменной яркости.
[0022] Кроме того, следует отметить, что JEM включает в себя следующие параметры для сигнализации дерева QTBT.
Размер CTU: размер корневого узла четверичного дерева (например, 256×256, 128×128, 64×64, 32×32, 16×16 выборок яркости);
MinQTSize: минимально допустимый размер концевого узла четверичного дерева (например, 16×16, 8×8 выборок яркости);
MaxBTSize: максимально допустимый размер корневого узла двоичного дерева, т.е. максимальный размер концевого узла четверичного дерева, который может быть разделен путем двоичного разделения (например, 64×64 выборок яркости);
MaxBTDepth: максимально допустимая глубина двоичного дерева, т.е. самый низкий уровень, на котором может происходить двоичное разделение, где концевой узел четверичного дерева является корнем (например, 3);
MinBTSize: минимально допустимый размер концевого узла двоичного дерева; т.е. минимальная ширина или высота двоичного концевого узла (например, 4 выборки яркости).
[0023] Следует отметить, что в некоторых примерах MinQTSize, MaxBTSize, MaxBTDepth и/или MinBTSize могут быть различными для разных компонентов видеосигнала.
[0024] В JEM CB используют для прогнозирования без дальнейшего разделения. Т. е. в JEM CB может быть блоком значений выборок, к которым применяют такое же прогнозирование. Таким образом, концевой узел JEM QTBT может быть аналогом PB в ITU-T H.265.
[0025] Формат выборки видео, который можно также называть форматом цветности, может определять количество выборок цветности, включенных в CU, по отношению к количеству выборок яркости, включенных в CU. Например, в случае формата выборки 4:2:0 частота дискретизации для компонента яркости в два раза выше, чем для компонентов цветности как в горизонтальном, так и в вертикальном направлениях. В результате у CU, сформатированного в соответствии с форматом 4:2:0, ширина и высота массива выборок компонента яркости в два раза больше, чем для каждого массива выборок компонентов цветности. На ФИГ. 4 представлена концептуальная схема, иллюстрирующая пример элемента кодирования, сформатированного в соответствии с форматом выборки 4:2:0. На ФИГ. 4 проиллюстрировано положение выборок цветности относительно выборок яркости в CU. Как описано выше, CU обычно определяют в соответствии с количеством выборок яркости по горизонтали и вертикали. Таким образом, как показано на ФИГ. 4, CU 16×16, сформатированный в соответствии с форматом выборки 4:2:0, включает в себя 16×16 выборок компонентов яркости и 8×8 выборок для каждого компонента цветности. В примере, приведенном на ФИГ. 4, дополнительно проиллюстрировано положение выборок цветности относительно выборок яркости для видеоблоков, смежных с CU 16×16. В CU, сформатированном в соответствии с форматом 4:2:2, ширина массива выборок компонента яркости в два раза больше ширины массива выборок каждого компонента цветности, но высота массива выборок компонента яркости равна высоте массива выборок каждого компонента цветности. В CU, сформатированном в соответствии с форматом 4:4:4, массив выборок компонента яркости дополнительно имеет ту же ширину и высоту, что и массив выборок каждого компонента цветности.
[0026] Как описано выше, данные внутреннего или внешнего прогнозирования используют для получения опорных значений выборки для блока значений выборки. Разница между значениями выборки, включенными в текущий PB или структуру области изображения другого типа, и соответствующими опорными выборками (например, полученными с использованием прогнозирования), может называться остаточными данными. Остаточные данные могут включать в себя соответствующие массивы разностных значений, соответствующие каждому компоненту видеоданных. Остаточные данные могут находиться в области пикселей. Для получения коэффициентов преобразования к массиву разностных значений можно применять преобразование, такое как дискретное косинусное преобразование (DCT), дискретное синусное преобразование (DST), целочисленное преобразование, вейвлет-преобразование или концептуально подобное преобразование. Следует отметить, что в ITU-T H.265 CU связан со структурой элемента преобразования (TU), корнем которой является уровень CU. Т. е. в ITU-T H.265 массив разностных значений может быть подразделен для целей получения коэффициентов преобразования (например, четыре преобразования 8 × 8 можно применять к массиву остаточных значений 16×16). Для каждого компонента видеоданных такие подразделы разностных значений могут называться блоками преобразования (TB). Следует отметить, что в ITU-T H.265 TB необязательно совмещены с PB. На ФИГ. 5 проиллюстрированы примеры альтернативных комбинаций PB и TB, которые можно использовать для кодирования конкретного CB. Следует отметить, что согласно ITU-T H.265 TB могут дополнительно иметь следующие размеры: 4×4, 8×8, 16×16 и 32×32.
[0027] Следует отметить, что в JEM соответствующие CB остаточные значения используют для получения коэффициентов преобразования без дополнительного разделения. Т. е. в JEM концевой узел QTBT может быть аналогичен как PB, так и TB в ITU-T H.265. Следует отметить, что в JEM основное преобразование и последующие вторичные преобразования можно применять (в видеокодере) для получения коэффициентов преобразования. В видеодекодере используют обратный порядок преобразований. В JEM применение вторичного преобразования для получения коэффициентов преобразования может дополнительно зависеть от режима прогнозирования.
[0028] На коэффициентах преобразования можно выполнять процесс квантования. Квантование осуществляет взвешивание коэффициентов преобразования, чтобы варьировать объем данных, требуемых для представления группы коэффициентов преобразования. Квантование может включать в себя деление коэффициентов преобразования на коэффициент масштабирования квантования и соответствующие функции округления (например, округление до ближайшего целого числа). Квантованные коэффициенты преобразования могут называться значениями уровня коэффициента. Обратное квантование (или «деквантование») может включать в себя умножение значений уровня коэффициента на коэффициент масштабирования квантования. Следует отметить, что используемый в настоящем документе термин «процесс квантования» в некоторых случаях может относиться к делению на коэффициент масштабирования для получения значений уровня и умножению на коэффициент масштабирования для восстановления коэффициентов преобразования в некоторых случаях. Т. е. в некоторых случаях процесс квантования может относиться к квантованию, а в некоторых - к обратному квантованию. Следует дополнительно отметить, что, хотя в приведенных ниже примерах процессы квантования описаны с использованием арифметических операций, в которых применяется десятичная запись чисел, такие описания приведены в иллюстративных целях и не должны рассматриваться как ограничивающие. Например, описанные в настоящем документе методики могут быть реализованы в устройстве с использованием двоичных операций и т.п.Например, описанные в настоящем документе операции умножения и деления могут быть реализованы с использованием операций битового сдвига и т.п.
[0029] На ФИГ. 6B–6В приведены концептуальные схемы, иллюстрирующие примеры кодирования блока видеоданных. Как показано на ФИГ. 6A, текущий блок видеоданных (например, CB, соответствующий видеокомпоненту) кодируют посредством получения остатка путем вычитания набора значений прогнозирования из текущего блока видеоданных, преобразования остатка и квантования коэффициентов преобразования для получения значений уровня. Как показано на ФИГ. 6B, текущий блок видеоданных декодируют путем выполнения обратного квантования значений уровня, обратного преобразования и добавления набора значений прогнозирования к полученному в результате остатку. Следует отметить, что в примерах на ФИГ. 6A-6B значения выборки восстановленного блока отличаются от значений выборки текущего кодируемого видеоблока. Таким образом, можно сказать, что кодирование сопряжено с потерями. Однако разницу в значениях выборки можно считать приемлемой или незаметной для зрителя, просматривающего восстановленное видео. Как показано на ФИГ. 6A-6B, масштабирование дополнительно выполняют с использованием массива коэффициентов масштабирования.
[0030] В ITU-T H.265 массив коэффициентов масштабирования получают путем выбора матрицы масштабирования и умножения каждой записи в матрице масштабирования на коэффициент масштабирования квантования. В ITU-T H.265 матрицу масштабирования выбрана на основе режима прогнозирования и компонента цвета, причем определены матрицы масштабирования следующих размеров: 4×4, 8×8, 16×16 и 32×32. Таким образом, следует отметить, что ITU-T H.265 не определяет матрицы масштабирования для размеров, отличных от 4×4, 8×8, 16×16 и 32×32. В ITU-T H.265 значение коэффициента масштабирования квантования может быть определено параметром квантования (QP). В ITU-T H.265 QP может принимать 52 значения от 0 до 51, и изменение QP на 1 обычно соответствует изменению значения коэффициента масштабирования квантования приблизительно на 12%. В ITU-T H.265 значение QP для набора коэффициентов преобразования может быть дополнительно получено с использованием прогнозируемого значения параметра квантования (которое может называться прогнозируемым значением QP) и необязательно сигнализируемого дельта-значения параметра квантования (которое может называться значением дельты QP или дельта-значением QP). В ITU–T H.265 параметр квантования может быть обновлен для каждого CU и параметр квантования может быть получен для каждого из компонентов яркости (Y) и цветности (Cb и Cr).
[0031] Как показано на ФИГ. 6A, квантованные коэффициенты преобразования кодируют в битовый поток. Квантованные коэффициенты преобразования и элементы синтаксиса (например, элементы синтаксиса, указывающие структуру кодирования для видеоблока) могут быть энтропийно кодированы согласно методике энтропийного кодирования. Примеры методик энтропийного кодирования включают в себя контентно-адаптивное кодирование с переменной длиной (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), энтропийное кодирование с разделением по интервалам вероятностей (PIPE) и т.п.Энтропийно кодированные квантованные коэффициенты преобразования и совместимые энтропийно кодированные элементы синтаксиса могут формировать совместимый битовый поток, который можно использовать для воспроизведения видеоданных в видеодекодере. Процесс энтропийного кодирования может включать в себя бинаризацию элементов синтаксиса. Бинаризация означает процесс преобразования значения синтаксиса в последовательность из одного или более битов. Эти биты могут называться «двоичными значениями». Бинаризация является процессом без потерь и может включать в себя одну из следующих методик кодирования или их комбинацию: кодирование с фиксированной длиной, унарное кодирование, усеченное унарное кодирование, усеченное кодирование Райса, кодирование Голомба, экспоненциальное кодирование Голомба k-го порядка и кодирование ГоломбаРайса. Например, бинаризация может включать в себя представление целочисленного значения 5 для элемента синтаксиса как 00000101 с использованием методики 8-битной бинаризации с фиксированной длиной или представление целочисленного значения 5 как 11110 с использованием методики бинаризации унарного кодирования. Каждый из используемых в настоящем документе терминов «кодирование с фиксированной длиной», «унарное кодирование», «усеченное унарное кодирование», «усеченное кодирование Райса», «кодирование Голомба», «экспоненциальное кодирование Голомба k-го порядка» и «кодирование Голомба-Райса» может относиться к общим реализациям этих методик и/или более конкретным вариантам осуществления этих методик кодирования. Например, вариант реализации кодирования Голомба-Райса может быть конкретно определен в соответствии со стандартом кодирования видеосигналов, например ITU-T H.265. Процесс энтропийного кодирования дополнительно включает в себя значения двоичного кодирования с использованием алгоритмов сжатия данных без потерь. В примере CABAC для конкретного двоичного значения контекстная модель может быть выбрана из набора доступных контекстных моделей, связанных с двоичным значением. В некоторых примерах контекстная модель может быть выбрана на основе предыдущего двоичного значения и/или значений предыдущих элементов синтаксиса. Контекстная модель может идентифицировать вероятность того, что двоичное значение представляет собой конкретное значение. Например, контекстная модель может указывать вероятность 0,7 для кодирования двоичного значения 0 и вероятность 0,3 для кодирования двоичного значения 1. Следует отметить, что в некоторых случаях вероятность кодирования двоичного значения 0 и вероятность кодирования двоичного значения 1 могут не быть равными 1. После выбора доступной контекстной модели энтропийный кодер CABAC может арифметически кодировать двоичное значение на основе идентифицированной контекстной модели. Контекстная модель может быть обновлена на основе значения кодированного двоичного значения. Контекстная модель может быть обновлена на основе связанной переменной, сохраненной с контекстом, например размером окна адаптации, количеством двоичных значений, кодированных с использованием контекста. Следует отметить, что согласно ITU-T H.265 может быть реализован энтропийный кодер CABAC так, что некоторые элементы синтаксиса могут быть энтропийно кодированы с использованием арифметического кодирования без применения явно назначенной контекстной модели, и такое кодирование может называться обходным кодированием.
[0032] Как описано выше, данные внутреннего прогнозирования или данные внешнего прогнозирования могут связывать область изображения (например, PB или CB) с соответствующими опорными выборками. Для кодирования с внутренним прогнозированием режим внутреннего прогнозирования может указывать местоположение опорных выборок в изображении. В ITU-T H.265 определенные возможные режимы внутреннего прогнозирования включают в себя режим планарного (т.е. подбор поверхности) прогнозирования (predMode: 0), режим прогнозирования DC (т.е., плоское полное усреднение) (predMode: 1) и 33 режима углового прогнозирования (predMode: 2-34). В JEM определенные возможные режимы внутреннего прогнозирования включают в себя режим планарного прогнозирования (predMode: 0), режим прогнозирования DC (predMode: 1) и 65 режимов углового прогнозирования (predMode: 2-66). Следует отметить, что режимы планарного прогнозирования и прогнозирования DC могут называться режимами ненаправленного прогнозирования, а режимы углового прогнозирования могут называться режимами направленного прогнозирования. Следует отметить, что методики, описанные в настоящем документе, могут быть в целом применимы, независимо от количества определенных возможных режимов прогнозирования.
[0033] Как описано выше, режим планарного прогнозирования, определенный в соответствии с ITU-T H.265, может быть описан как подбор поверхности. Режим планарного прогнозирования, определенный в соответствии с ITU-T H.265, включает в себя усреднение двух линейных прогнозирований. А именно, в ITU-T H.265 для каждой выборки, включенной в CB, соответствующее прогнозирование определяют как среднее арифметическое двух линейных прогнозирований. Первое горизонтальное линейное прогнозирование формируют путем интерполирования значения восстановленной выборки, расположенной в прилегающей сверху к CB строке в крайней справа позиции (показанной как T на ФИГ. 15A) относительно местоположения текущего значения выборки, с помощью восстановленной выборки, расположенной в прилегающем слева к CB столбце и имеющей то же самое вертикальное положение, что и текущая выборка (т.е. определенная как p[-1][y]). Второе вертикальное линейное прогнозирование формируют путем интерполирования значения восстановленной выборки, расположенной в прилегающем слева к CB столбце в крайней снизу позиции (показанной как L на ФИГ. 15A) относительно местоположения текущего значения выборки, с помощью восстановленной выборки, расположенной в прилегающей сверху к CB строке и имеющей то же самое горизонтальное положение, что и текущая выборка (т.е. определенная как p[x][-1]). Таким образом, согласно ФИГ. 15A, режим планарного прогнозирования, определенный в соответствии с ITU-T H.265, может быть в целом описан как среднее арифметическое (1) интерполяции T с помощью p[-1][y] и (2) интерполяции L с помощью p[x][-1]. Следующее уравнение дает формальное определение режима планарного прогнозирования, как приведено в ITU-T H.265.
[0034] predSamples[x][y]=((nTbS - 1 - x) × p[-1][y]+(x+1) × p[nTbS][-1]+(nTbS - 1 - y) × p[x][-1]+(y+1) × p[-1][nTbS]+nTbS)>>(Log2 (nTbS)+1)
где
nTbS определяет размер соответствующего блока преобразования;
p[–1][y] - значение выборки восстановленной выборки, расположенной в прилегающем слева к CB столбце и имеющей то же самое вертикальное положение, что и текущая выборка;
p[nTbS][-1] - значение выборки в позиции T;
p[x][-1] - значение выборки восстановленной выборки, расположенной в прилегающей сверху к CB строке и имеющей то же самое горизонтальное положение, что и текущая выборка;
p[-1][nTbS] - значение выборки в позиции L;
x>>y - арифметический сдвиг вправо целочисленного представления поразрядного дополнения до двух x на y двоичных разрядов; и
Log2(x) - логарифм x по основанию 2.
[0035] На ФИГ. 15B показан пример, в котором для текущей выборки C, p[-1][y] обозначено как b, а p[x][-1] обозначено как a.
[0036] В случае кодирования с внешним прогнозированием вектор движения (MV) идентифицирует опорные выборки в изображении, отличном от изображения видеоблока, который подлежит кодированию, и, таким образом, использует временную избыточность в видео. Например, текущий видеоблок может быть спрогнозирован из опорного (-ых) блока (-ов), находящегося (-щихся) в ранее кодированном (-ых) кадре (-ах), и вектор движения может быть использован для указания местоположения опорного блока. Вектор движения и связанные данные могут описывать, например, горизонтальный компонент вектора движения, вертикальный компонент вектора движения, разрешение для вектора движения (например, точность в одну четверть пикселя, половину пикселя, один пиксель, два пикселя, четыре пикселя), направление прогнозирования и/или значение индекса опорного кадра. Стандарт кодирования, такой как, например, ITU-T H.265, может дополнительно поддерживать прогнозирование вектора движения. Прогнозирование вектора движения позволяет задавать вектор движения с использованием векторов движения соседних блоков. Примеры прогнозирования вектора движения включают в себя расширенное прогнозирование вектора движения (AMVP), временное прогнозирование вектора движения (TMVP), так называемый режим «слияния», а также «пропуск» и «прямое» логическое определение движения. JEM дополнительно поддерживает расширенное временное прогнозирование вектора движения (ATMVP) и пространственновременное прогнозирование вектора движения (STMVP).
[0037] Как описано выше, в JEM концевой узел QTBT, который допускает произвольные прямоугольные CB, может быть аналогичен как PB, так и TB в ITUT H.265. Таким образом, в некоторых случаях JEM может обеспечивать меньшую гибкость в отношении возможных структур PB и TB, чем это предусмотрено в ITU-T H.265. Как дополнительно описано выше, в ITU-T H.265 разрешены только квадратные TB, и только квадратные PB разрешены для внутреннего прогнозирования. Таким образом, некоторые процессы в ITU-T H.265 определяют на основе предположения, что массив значений выборки, вводимый в процесс, должен быть квадратным, и поэтому некоторые процессы в ITU-T H.265 могут не обеспечивать необходимую поддержку кодирования произвольных прямоугольных видеоблоков. Кроме того, разделение QTBT и связанная с ним сигнализация, как определено в JEM, могут быть неидеальными. В настоящем документе описаны методики выполнения кодирования видеосигналов с использованием произвольных прямоугольных видеоблоков.
[0038] На ФИГ. 7 приведена блок-схема, иллюстрирующая пример системы, которая может быть выполнена с возможностью кодирования (т.е. кодирования и/или декодирования) видеоданных в соответствии с одной или более методиками настоящего описания. Система 100 представляет собой пример системы, которая может выполнять кодирование видеосигналов с использованием произвольных прямоугольных видеоблоков в соответствии с одной или более методиками настоящего описания. Как показано на ФИГ. 1, система 100 включает в себя устройство-источник 102, среду 110 связи и устройство 120 назначения. В проиллюстрированном на ФИГ. 1 примере устройство–источник 102 может включать в себя любое устройство, выполненное с возможностью кодирования видеоданных и передачи кодированных видеоданных в среду 110 связи. Устройство 120 назначения может включать в себя любое устройство, выполненное с возможностью приема кодированных видеоданных через среду 110 связи и декодирования кодированных видеоданных. Устройство–источник 102 и/или устройство 120 назначения могут включать в себя вычислительные устройства, оборудованные для проводной и/или беспроводной связи, и могут включать в себя телевизионные приставки, цифровые видеомагнитофоны, телевизоры, настольные компьютеры, ноутбуки или планшетные компьютеры, игровые консоли, мобильные устройства, в т.ч., например, смартфоны, сотовые телефоны, персональные игровые устройства и медицинские устройства визуализации.
[0039] Среда 110 связи может включать в себя любую комбинацию средств беспроводной и проводной связи и/или запоминающих устройств. Среда 110 связи может включать в себя коаксиальные кабели, оптоволоконные кабели, кабели витой пары, беспроводные передатчики и приемники, маршрутизаторы, коммутаторы, ретрансляторы, базовые станции или любое другое оборудование, которое может обеспечивать связь между различными устройствами и объектами. Среда 110 связи может включать в себя одну или более сетей. Например, среда 110 связи может включать в себя сеть, выполненную с возможностью обеспечения доступа к «Всемирной паутине», например, Интернету. Сеть может работать в соответствии с комбинацией одного или более телекоммуникационных протоколов. Телекоммуникационные протоколы могут включать в себя фирменные аспекты и/или могут включать в себя стандартизированные телекоммуникационные протоколы. Примеры стандартизированных телекоммуникационных протоколов включают в себя стандарты: цифрового видеовещания (DVB), Комитета по усовершенствованным телевизионным системам (ATSC), цифрового вещания с комплексными услугами (ISDB), спецификации интерфейса передачи данных по кабелю (DOCSIS), глобальной системы мобильной связи (GSM), множественного доступа с кодовым разделением (CDMA), партнерского проекта по системам 3-го поколения (3GPP), Европейского института телекоммуникационных стандартов (ETSI), Интернетпротокола (IP), протокола беспроводных приложений (WAP) и Института инженеров по электротехнике и электронике (IEEE).
[0040] Запоминающие устройства могут включать в себя устройства или носители любого типа, выполненные с возможностью хранения данных. Носитель данных может включать в себя материальные или энергонезависимые машиночитаемые носители. Машиночитаемый носитель может включать в себя оптические диски, флэш-память, магнитные ЗУ или любые другие подходящие цифровые носители данных. В некоторых примерах запоминающее устройство или его части могут быть описаны как энергонезависимая память, а в других примерах части запоминающих устройств могут быть описаны как энергозависимая память. Примеры энергозависимых запоминающих устройств могут включать в себя оперативные запоминающие устройства (RAM), динамические оперативные запоминающие устройства (DRAM) и статические оперативные запоминающие устройства (SRAM). Примеры энергонезависимой памяти могут включать в себя жесткие магнитные диски, оптические диски, дискеты, флэш-память или виды электрически программируемых ЗУ (EPROM) или электрически стираемых и программируемых (EEPROM) ЗУ. Запоминающее (-ие) устройство (-а) может (гут) включать в себя карты памяти (например, карту памяти Secure Digital (SD)), внутренние/внешние жесткие диски и/или внутренние/внешние твердотельные накопители. Данные могут храниться в запоминающем устройстве в соответствии с определенным форматом файла.
[0041] На ФИГ. 1 устройство-источник 102 включает в себя источник 104 видео, видеокодер 106 и интерфейс 108. Источник 104 видео может включать в себя любое устройство, выполненное с возможностью захвата и/или хранения видеоданных. Например, источник 104 видео может включать в себя видеокамеру и запоминающее устройство, функционально связанное с ней. Видеокодер 106 может включать в себя любое устройство, выполненное с возможностью приема видеоданных и генерирования совместимого битового потока, представляющего видеоданные. Совместимый битовый поток может относиться к битовому потоку, который видеодекодер может принимать и из которого он может воспроизводить видеоданные. Аспекты совместимого битового потока могут быть определены в соответствии со стандартом кодирования видеосигналов. При формировании совместимого битового потока видеокодер 106 может сжимать видеоданные. Сжатие может происходить с потерями (заметными или незаметными) или без потерь. Интерфейс 108 может включать в себя любое устройство, выполненное с возможностью приема совместимого битового потока видео и передачи и/или сохранения совместимого битового потока видео в среде связи. Интерфейс 108 может включать в себя карту сетевого интерфейса, такую как карта Ethernet, и может включать в себя оптический приемопередатчик, радиочастотный приемопередатчик или устройство любого другого типа, способное отправлять и/или принимать информацию. Интерфейс 108 может дополнительно включать в себя интерфейс компьютерной системы, позволяющий сохранять совместимый битовый поток в запоминающем устройстве. Например, интерфейс 108 может включать в себя набор микросхем, поддерживающий протоколы шины с взаимосвязью периферийных компонентов (PCI) и с экспресс-взаимосвязью периферийных компонентов (PCIe), проприетарные протоколы шин, протоколы универсальной последовательной шины (USB), I2C или любую другую логическую и физическую структуру, которую можно использовать для соединения одноранговых устройств.
[0042] На ФИГ. 1 устройство 120 назначения включает в себя интерфейс 122, видеодекодер 124 и дисплей 126. Интерфейс 122 может включать в себя любое устройство, выполненное с возможностью приема совместимого битового потока видео из среды связи. Интерфейс 108 может включать в себя карту сетевого интерфейса, такую как карта Ethernet, и может включать в себя оптический приемопередатчик, радиочастотный приемопередатчик или устройство любого другого типа, способное принимать и/или отправлять информацию. Интерфейс 122 может дополнительно включать в себя интерфейс компьютерной системы, позволяющий извлекать совместимый битовый поток видео из запоминающего устройства. Например, интерфейс 122 может включать в себя набор микросхем, поддерживающий протоколы шины PCI и PCIe, проприетарные протоколы шин, протоколы USB, I2C или любую другую логическую и физическую структуру, которую можно использовать для соединения одноранговых устройств. Видеодекодер 124 может включать в себя любое устройство, выполненное с возможностью приема совместимого битового потока и/или его приемлемых вариаций и воспроизведения из него видеоданных. Дисплей 126 может включать в себя любое устройство, выполненное с возможностью отображения видеоданных. Дисплей 126 может содержать одно из множества устройств отображения, таких как жидкокристаллический дисплей (ЖКД), плазменный дисплей, дисплей на органических светодиодах (OLED) или дисплей другого типа. Дисплей 126 может включать в себя дисплей высокой четкости или дисплей сверхвысокой четкости. Следует отметить, что хотя в проиллюстрированном на ФИГ. 7 примере видеодекодер 124 описан как выводящий данные на дисплей 126, видеодекодер 124 может быть выполнен с возможностью вывода видеоданных на различные типы устройств и/или их подкомпонентов. Например, видеодекодер 124 может быть выполнен с возможностью вывода видеоданных в любую среду связи, как описано в настоящем документе.
[0043] На ФИГ. 8 приведена блок–схема, иллюстрирующая пример видеокодера 200, способного реализовывать методики кодирования видеоданных, описанные в настоящем документе. Следует отметить, что хотя указанный в примере видеокодер 200 проиллюстрирован как имеющий различные функциональные блоки, такая иллюстрация предназначена только для описания и не ограничивает видеокодер 200 и/или его подкомпоненты конкретной архитектурой аппаратного или программного обеспечения. Функции видеокодера 200 могут быть реализованы с использованием любой комбинации аппаратных, программно-аппаратных и/или программных вариантов осуществления. В одном примере видеокодер 200 может быть выполнен с возможностью кодирования видеоданных в соответствии с описанными в настоящем документе методиками. Видеокодер 200 может выполнять кодирование с внутренним прогнозированием и кодирование с внешним прогнозированием областей изображения и в таком виде может называться гибридным видеокодером. В приведенном на ФИГ. 8 примере видеокодер 200 принимает исходные видеоблоки. В некоторых примерах исходные видеоблоки могут включать в себя области изображения, разделенные в соответствии со структурой кодирования. Например, исходные видеоданные могут включать в себя макроблоки, CTU, CB, их подразделы и/или другой эквивалентный элемент кодирования. В некоторых примерах видеокодер 200 может быть выполнен с возможностью выполнения дополнительных подразделений исходных видеоблоков. Следует отметить, что некоторые описанные в настоящем документе методики могут быть в целом применимы к кодированию видеосигналов, независимо от методов разделения исходных видеоданных до и/или во время кодирования. В приведенном на ФИГ. 8 примере видеокодер 200 включает в себя сумматор 202, генератор 204 коэффициентов преобразования, блок 206 квантования коэффициентов, блок 208 обработки обратного квантования/преобразования, сумматор 210, блок 212 обработки внутреннего прогнозирования, блок 214 обработки внешнего прогнозирования, блок 216 постфильтрации и блок 218 энтропийного кодирования.
[0044] Как показано на ФИГ. 8, видеокодер 200 принимает исходные видеоблоки и выводит битовый поток. Как описано выше, JEM включает в себя следующие параметры для сигнализации дерева QTBT: размер CTU, MinQTSize, MaxBTSize, MaxBTDepth и MinBTSize. Таблица 2 иллюстрирует размеры блоков концевых узлов QT на разных глубинах QT для разных размеров CTU (в примере MinQTSize равен 8). В таблице 3 дополнительно указаны допустимые размеры блоков концевых узлов BT на различных глубинах BT для размеров корневых узлов двоичного дерева (т.е. размеров концевых узлов четвертичного дерева).
Размер CTU
256×256
128×128
64×64
32×32
16×l6
Глубина QT
0
256×256
128×128
64×64
32×32
16×16
1
128×l28
64×64
32×32
16×l6
8×8
2
64×64
32×32
16×16
8×8
3
32×32
16×16
8×8
4
16×l6
8×8
5
8×8
Таблица 2
Размер блока СВ концевого узла QT
128×l28
64×64
32×32
16×16
8×8
Глубина BT
1
128×6464×l28
64×3232×64
32×l616×32
16×88×l6
8×44×8
2
64×64128×3232×l28
32×3264×1616×64
16×1632×88×32
8×816×44×l6
4×48×22×8
3
64×3232×64128×l616×l28
32×l616×3264×88×32
8×l616×832×44×32
8×44×816×22×l6
Таблица 3
[0045] Таким образом, согласно таблице 2 размер узла четверичного дерева, образующего корень двоичного дерева, может быть определен на основе размера CTU и глубины QT. Если четвертичное дерево дополнительно разделено на двоичные деревья, размеры концевого узла двоичного дерева могут быть определены на основе размера узла QT и глубины BT, как показано в таблице 3. Каждый из MaxBTSize, MaxBTDepth и MinBTSize можно использовать для определения минимально допустимого размера концевого узла двоичного дерева. Например, если размер CTU - 128×128, глубина QT - 3, MaxBTSize - 16×16, а MaxBTDepth - 2, минимально допустимый размер концевого узла двоичного дерева включает в себя 64 выборки (т.е. 8×8, 16×4 или 4×16). В этом случае, если MaxBTDepth равно 1, минимально допустимый размер концевого узла двоичного дерева включает в себя 128 выборок (т.е. 16×8 или 8×16). Таблица 4 иллюстрирует размеры блоков концевых узлов BT при различных комбинациях глубин QT и глубин BT для размера CTU 128×128.
Глубина QT
0
1
2
3
4
Глубина BT
0
128×128
64×64
32×32
16×16
8×8
1
128×6464×128
64×3232×64
32×1616×32
16×88×16
8×44×8
2
64×64128×3232×128
32×3264×l616×64
16×1632×88×32
8×816×44×16
4×48×22×8
3
64×3232×64128×1616×128
32×1616×3264×88×32
8×1616×832×44×32
8×44×816×22×16
Таблица 4
[0046] Как указано выше, разделение QTBT и связанная с ним сигнализация, как определено в JEM, могут быть неидеальными. Например, как описано выше со ссылкой на ФИГ. 3, в JEM, если для разделения CTU используют независимые QTBT, CB компонента яркости не должны совпадать и не обязательно совпадают с CB компонентов цветности. Т.е. в JEM, если независимые QTBT используют для разделения CTU, каждое из разделений компонентов яркости и цветности сигнализируют с использованием отдельных наборов флага разделения QT и элементов синтаксиса режима BT, и такая сигнализация может быть неидеальной.
[0047] В некоторых примерах в соответствии с описанными в настоящем документе методиками видеокодер 200 может быть выполнен с возможностью разделения CTU таким образом, что компоненты яркости и цветности имеют общую структуру разделения до определенной глубины и, таким образом, совместно используют общий набор флага разделения QT и элементы синтаксиса режима разделения BT до определенной глубины. Следует отметить, что в этом случае глубина может соответствовать абсолютной глубине QTBT (т.е. глубине, равной сумме глубины QT и глубины BT). Следует отметить, что в некоторых случаях глубина может соответствовать количеству выборок компонента (например, яркости и/или цветности) в блоке и может быть необязательно указана в соответствии с минимальной шириной и/или минимальной высотой. Например, QTBT можно использовать совместно до разделения массива выборок цветности до определенного размера. Например, QTBT можно использовать совместно до тех пор, пока одна из высоты или ширины узла не станет меньше указанного количества выборок для компонента, например 8 выборок. Например, QTBT можно использовать совместно, пока количество выборок компонента (например, яркости и/или цветности) для узла не станет меньше указанного числа, например 64. В одном примере глубина может быть предварительно определена для набора CTU. Например, глубина может быть установлена как 2 для среза видеоданных или, например, установлена как 2 для изображения видеоданных. В одном примере глубина может быть сигнализирована с использованием элемента синтаксиса (например, shared_depth и т.п.). В одном примере элемент синтаксиса совместно используемой глубины может быть сигнализирован на уровне CTU. В одном примере элемент синтаксиса совместно используемой глубины может быть сигнализирован на уровне среза. В одном примере элемент синтаксиса совместно используемой глубины может быть сигнализирован на уровне набора параметров (например, набора параметров изображения (PPS) или набора параметров последовательности (SPS)). В одном примере флаг более высокого уровня можно использовать для указания наличия синтаксического элемента совместно используемой глубины на более низком уровне. Например, элемент синтаксиса, включенный в уровень среза, может указывать, включен ли элемент синтаксиса совместно используемой глубины для каждого CTU, входящего в срез. Следует отметить, что аналогичным образом флаг уровня CTU можно использовать для указания одного или более совместно используемых QTBT, частично совместно используемых QTBT или независимых QTBT для компонентов яркости и цветности.
[0048] В одном примере элемент синтаксиса совместно используемой глубины может быть флагом на уровне разделения. Например, для каждого флага разделения QT и/или режима разделения BT соответствующий флаг может указывать, является ли указанное разделение совместно используемым. В одном примере совместно используемая глубина может быть установлена с использованием синтаксического элемента совместно используемой глубины на высоком уровне, а флаг более низкого уровня можно использовать для указания совместного использования вне уровня, указанного элементом синтаксиса. Например, совместно используемая глубина может быть установлена на уровне среза как глубина 1, и каждый CTU в срезе может включать в себя флаг, указывающий, распространяется ли для конкретного CTU совместное использование за пределы глубины 1 до глубины 2.
[0049] На ФИГ. 9 и ФИГ. 10 приведены концептуальные схемы, иллюстрирующие пример, в котором компоненты яркости и цветности имеют общее разделение до совместно используемой глубины. В приведенном на ФИГ. 9 примере компонент яркости дополнительно разделен вне совместно используемой глубины 1, а компоненты цветности не разделены за пределами глубины 1. В приведенном на ФИГ. 10 примере и компонент яркости, и компонент цветности независимо разделены вне совместно используемой глубины 1. Как описано выше, формат выборки видео может определять количество выборок цветности, включенных в CU, по отношению к количеству выборок яркости, включенных в CU. В одном примере видеокодер 200 может быть выполнен с возможностью выборочного разделения компонентов цветности вне совместно используемой глубины на основе формата выборки. Например, в случае, если CTU сформатирован в соответствии с форматом выборки 4:2:0, в одном примере видеокодер 200 может быть выполнен таким образом, что компоненты цветности могут не быть дополнительно разделены вне совместно используемой глубины. В случае, если CTU сформатирован в соответствии с форматом выборки 4:4:4, в одном примере видеокодер 200 может быть дополнительно выполнен таким образом, что компоненты цветности могут быть дополнительно разделены вне совместно используемой глубины. Кроме того, дополнительно к формату выборки или в качестве альтернативы ему один или более из: размера CTU, MinQTSize, MaxBTSize, MaxBTDepth и/или MinBTSize можно использовать для определения, разрешено ли разделение компонентов цветности вне совместно используемой глубины.
[0050] На ФИГ. 11 приведена концептуальная схема, иллюстрирующая пример QTBT, соответствующего примеру разделений QTBT, показанному на ФИГ. 10. Как показано на ФИГ. 11, QTBT яркости и QTBT цветности одинаковы до глубины 1, т.е. совместно используемая глубина - 1. Следует дополнительно отметить, что дерево яркости, проиллюстрированное на ФИГ. 11, для целей объяснения является таким же, как QTBT, приведенное на ФИГ. 2. По существу в примере, приведенном на ФИГ. 11, видеокодер 200 может быть выполнен с возможностью сигнализации QTBT яркости на основе псевдосинтаксиса, представленного в таблице 1. В одном примере видеокодер 200 может быть выполнен с возможностью сигнализации QTBT цветности за пределами совместно используемого QTBT на основе псевдосинтаксиса, представленного в таблице 5.
//Depth 0 и Depth 1 для цветности взяты из синтаксиса в таблице 1If additional partitioning condition=TRUE:QT flag=0, BT split=0; //Depth 2 syntax chromaQT flag=0, BT split=0; //Depth 2 syntax chromaQT flag=0, BT split=0; //Depth 2 syntax chromaQT flag=1; //Depth 2 syntax chromaQT flag=0, BT split=0; //Depth 3 syntax chromaQT flag=0, BT split=0; //Depth 3 syntax chromaQT flag=0, BT split=0; //Depth 3 syntax chromaQT flag=0, BT split=0; //Depth 3 syntax chromaQT flag=0, BT split=0; //Depth 2 syntax chromaQT flag=0, BT split=0; //Depth 2 syntax chromaQT flag=0, BT split=0; //Depth 2 syntax chromaQT flag=0, BT split=0; //Depth 2 syntax chromaQT flag=0, BT split=2. //Depth 2 syntax chromaQT flag=0, BT split=0; //Depth 3 syntax chromaQT flag=0, BT split=0; //Depth 3 syntax chromaQT flag=0, BT split=0; //Depth 2 syntax chromaQT flag=0, BT split=0. //Depth 2 syntax chromaQT flag=0, BT split=2. //Depth 2 syntax chromaQT flag=0, BT split=0; //Depth 3 syntax chromaQT flag=0, BT split=0;//Depth 3 syntax chroma
Таблица 5
[0051] В примере, проиллюстрированном в таблице 5, условие дополнительного разделения может включать в себя условие, основанное на одном или более из: формата выборки, размера CTU, MinQTSize, MaxBTSize, MaxBTDepth и/или MinBTSize, как описано выше. Следует отметить, что в одном примере видеокодер 200 может быть выполнен с возможностью сигнализации QTBT цветности за пределами совместно используемого QTBT путем мультиплексирования элементов синтаксиса, проиллюстрированных в таблице 1 и таблице 5. Например, элементы синтаксиса для узлов компонента цветности вне совместно используемого узла и тех, которые являются потомками совместно используемого узла, могут быть сигнализированы после элементов синтаксиса для узлов компонента яркости вне совместно используемого узла и тех, которые являются потомками совместно используемого узла. В таблице 6 проиллюстрирован пример псевдосинтаксиса, в котором элементы синтаксиса для компонентов цветности сигнализируют после завершения элементами синтаксиса совместно используемого узла в концевых узлах для компонента яркости. В одном примере элементы синтаксиса цветности могут быть сигнализированы перед элементами синтаксиса яркости.
QT flag=1; //Depth 0 syntaxQT flag=1; //Depth 1 syntaxQT flag=0, BT split=0; //Depth 2 syntax lumaQT flag=0, BT split=2; //Depth 2 syntax lumaBT split=0; //Depth 3 syntax lumaBT split=0; //Depth 3 syntax lumaQT flag=0, BT split=0; //Depth 2 syntax lumaQT flag=0, BT split=1; //Depth 2 syntax lumaBT split=0; //Depth 3 syntax lumaBT split=0; //Depth 3 syntax lumaQT flag=0, BT split=0; //Depth 2 syntax lumaQT flag=0, BT split=0; //Depth 2 syntax lumaQT flag=0, BT split=0; //Depth 2 syntax lumaQT flag=1; //Depth 2 syntax chromaQT flag=0, BT split=0; //Depth 3 syntax chromaQT flag=0, BT split=0; //Depth 3 syntax chromaQT flag=0, BT split=0; //Depth 3 syntax chromaQT flag=0, BT split=0; //Depth 3 syntax chroma…
Таблица 6
[0052] Таким образом, видеокодер 200 представляет собой пример устройства, выполненного с возможностью приема видеоблока, включающего в себя значения выборки для первого компонента видеоданных и второго компонента видеоданных, разделения значений выборки для первого компонента видеоданных в соответствии со структурой разделения двоичного дерева первого четверичного дерева и разделения значений выборки для второго компонента видеоданных в соответствии со структурой разделения двоичного дерева первого четверичного дерева до совместно используемой глубины.
[0053] Как описано выше, ITU-T H.265 поддерживает четыре асимметричных раздела PB для внешнего прогнозирования. Следует отметить, что асимметричные разделы PB, представленные в ITU-T H.265, могут быть неидеальными. Т. е. асимметричные разделы PB, предусмотренные в ITU-T H.265, ограничены разрешением для PB иметь четверть ширины или высоты квадратного CB. Например, для CB 32×32 в ITU-T H.265 раздел M/4×M слева разделяет CB на PB 8×32 и PB 24×32. В ITU-T H.265 не предусмотрен механизм для разделения CB на PB на основе произвольного смещения. Т. е. PB не могут иметь произвольную ширину или высоту. В некоторых случаях может быть полезно разделять CTB в соответствии с произвольными смещениями. Например, в приведенном выше примере в некоторых случаях, касательно CB 32×32, может быть полезно разделять CB на PB 10×32 и РВ 22×32, основываясь на свойствах изображения. Кроме того, согласно приведенной выше таблице 3 в некоторых случаях может оказаться полезным дополнительное разделение двоичного концевого узла в соответствии с произвольным смещением. Т. е. в JEM возможные размеры концевых узлов ограничены приведенными в таблице 3. Например, в случае когда двоичный концевой узел имеет размер 32×128, может быть полезно дополнительно разделять двоичный концевой узел на СВ 32×28 и СВ 32×100. Следует отметить, что разделение блока видеоданных в соответствии с произвольным смещением согласно методикам, описанным в настоящем документе, можно применять по меньшей мере в одном или нескольких из следующих случаев: (1) разделение с произвольным смещением может быть применено к разделению CTU (или CTB) на CU (или CB) в случае, когда CU (или CB) формирует корень PU (или PB); (2) разделение с произвольным смещением может быть применено к разделению CTU (или CTB) на CU (или CB) в случае, когда CU (или CB) не формирует корень PU (или PB), т.е. в случае определения прогнозирования на уровне CB; (3) разделение с произвольным смещением можно применять к разделению PU (или PB); и (4) разделение с произвольным смещением может быть применено к блокам разделения выборок, которые соответствуют узлам кодового дерева. Следует отметить, что в некоторых случаях разделение с произвольным смещением может быть выборочно разрешено для разделения CTU и/или разделения PU.
[0054] На ФИГ. 12 проиллюстрирован пример, в котором двоичный концевой узел дополнительно разделен по горизонтали в соответствии со смещением. Следует отметить, что хотя пример, приведенный на ФИГ. 12, включает в себя разделение двоичного концевого узла в соответствии с разделением с произвольным смещением, такой пример не должен рассматриваться как ограничивающий, и, как описано в настоящем документе, разделение с произвольным смещением можно применять к различным сценариям, в которых разделяют видеоданные. В проиллюстрированном на ФИГ. 12 примере CTB может соответствовать CTB яркости, имеющему размер 256×256. В таком случае двоичный концевой узел в верхнем правом углу будет иметь размер 32×128. Как описано выше, может быть полезно дополнительно разделять двоичный концевой узел 32×128 на CB 32×28 и CB 32×100. В примере разделения, показанном на ФИГ. 12, смещение будет иметь значение 28. В одном примере видеокодер 200 может быть выполнен с возможностью разделения концевых узлов QTBT в соответствии со смещением. В одном примере видеокодер 200 может быть выполнен с возможностью разрешения любого количества асимметричных структур разделения со смещением. Т. е. в некоторых примерах смещение может находиться в диапазоне от 2 до высоты блока минус 2 для вертикальных смещений и в диапазоне от 2 до ширины блока минус 2 для горизонтальных смещений. В некоторых примерах смещение может находиться в диапазоне от 1 до высоты блока минус 1 для вертикальных смещений и в диапазоне от 1 до ширины блока минус 1 для горизонтальных смещений. В некоторых примерах разрешенные асимметричные разделения со смещениями могут быть ограничены на основе свойств, связанных с CTU и/или режимами прогнозирования. Например, ограничение асимметричных разделений со смещениями может зависеть от того, закодирован ли CU в соответствии с внутренним прогнозированием или внешним прогнозированием. В некоторых примерах асимметричные разделения со смещениями могут быть дополнительно ограничены на основе размера CU или CB. В одном примере значение смещения может быть ограничено набором кратных целых значений. В одном примере значение смещения может быть ограничено набором кратных целых значений и некоторыми дополнительными целочисленными значениями (например, 2). В некоторых примерах набор кратных целых значений может быть основан на размере концевого узла, к которому применяют смещение. Например, в отношении горизонтального разделения концевого узла 32×128, как описано выше. В одном примере значение смещения может быть ограничено значениями, кратными 4 (т.е. допустимые значения смещения включают в себя 4, 8, 12, 16,…, 120, 124). В одном примере значение смещения может быть указано с использованием индексированного набора значений смещения. Например, в отношении горизонтального разделения концевого узла 32 × 128, как описано выше, в одном примере значение смещения может быть ограничено следующим набором значений смещения: 28, 42, 84 и 100. В некоторых примерах может быть выбран индексированный набор значений смещения для предотвращения разделений, которые могут быть сигнализированы с использованием сигнализации QTBT или их близких вариантов. Например, при горизонтальном разделении концевого узла 32×128 в некоторых случаях (например, в зависимости от значения MaxBTDepth) за счет структуры BT можно разделять концевой узел 32×128 на два раздела 32×64. В этом случае индексированный набор значений смещения может быть выбран так, что смещение не находится в пределах указанного диапазона 64. В некоторых примерах индексированный набор значений смещения может быть дополнительно основан на значении MaxBTDepth.
[0055] Следует отметить, что допустимые асимметричные разделения со смещением в некоторых примерах могут включать в себя горизонтальное или вертикальное разделение. Например, в одном примере применительно к двоичному концевому узлу 32×128 видеокодер 200 может быть выполнен с возможностью дополнительного разделения двоичного концевого узла 32×128 на CB 8×128 и CB 24×128. Таким образом, смещение может указывать значение смещения относительно якорной точки. Например, якорная точка может включать в себя левый край для вертикального разделения и верхний край для горизонтального разделения. Следует отметить, что в некоторых примерах якорь может представлять собой заданное количество выборок от края. Например, якорь может быть установлен в позиции 4 выборки от края. Таким образом, значение смещения, равное нулю, указывает разделение 4 выборки от края. В одном примере смещение может включать в себя бинаризацию с фиксированной длиной. В одном примере смещение может включать в себя усеченную унарную бинаризацию.
[0056] Как описано выше, в одном примере значение смещения может быть указано с использованием индексированного набора значений смещения. В одном примере индексированный набор значений смещения может соответствовать дробным разделениям. В таблице 7 и таблице 8 приведены примеры индексированных наборов значений смещения, соответствующих дробным разделениям. В отношении таблиц 7 и 8 следует отметить, что дробные разделения в некоторых примерах могут быть округлены до ближайшего значения выборки. Например, в отношении горизонтального разделения концевого узла 32×128, как описано выше, в одном примере смещение 1/3 от значения края может быть округлено до 43. В отношении таблиц 7 и 8 следует отметить, что в примере дробные разделения могут быть округлены до ближайшего целочисленного кратного значения выборки. Например, в отношении горизонтального разделения концевого узла 32×128, как описано выше, в одном примере смещение 1/3 от значения края может быть округлено до 44, что является ближайшим кратным 4 значением выборки. В отношении таблиц 7 и 8 следует отметить, что в примере дробные разделения могут быть округлены в сторону уменьшения до ближайшего целочисленного кратного значения выборки. Например, в отношении горизонтального разделения концевого узла 32×128, как описано выше, в одном примере смещение 1/3 от значения края может быть округлено до 40, что является ближайшим кратным 4 значением выборки.
Смещение от края
Двоичное представление смещения
1/4 размера рассматриваемого блока
01
1/2 размера рассматриваемого блока
1
3/4 размера рассматриваемого блока
00
Таблица 7
Смещение от края
Двоичное представление смещения
1/3 размера рассматриваемого блока
01
1/2 размера рассматриваемого блока
1
2/3 размера рассматриваемого блока
00
Таблица 8
[0057] Как описано выше, видеокодер 200 может быть выполнен с возможностью сигнализации QTBT. В одном примере видеокодер 200 может быть выполнен с возможностью указания значений смещения посредством включения сигнализации смещения в сигнализацию QTBT. Например, приведенный на ФИГ. 12 пример включает в себя ту же структуру QTBT, что и пример, показанный на ФИГ. 1. Сигнализация смещения может быть по существу основана на примере псевдосинтаксиса, проиллюстрированного в таблице 1, где в одном примере сигнализация смещения включена после синтаксиса, указывающего концевой узел. В таблице 9 проиллюстрирован пример псевдосинтаксиса, соответствующий случаю, когда в CTB 256×256 двоичный концевой узел в верхнем правом углу, имеющий размер 32 × 128, дополнительно разделен на СВ 32×28 и СВ 32×100.
…QT flag=0; BT split=1; //Depth 1 syntaxBT split=0; //Depth 2 syntaxOffset=FALSE //Offset FlagBT split=1; //Depth 2 syntaxBT split=0; //Depth 3 syntaxOffset=FALSE //Offset FlagBT split=0; //Depth 3 syntaxOffset=TRUE; //Offset FlagOffset_type=Horizontal; //Offset Type FlagOffset value=28; //Offset valueQT flag=0; BT split=2; //Depth 1 syntax…
Таблица 9
[0058] Таким образом, согласно примеру, проиллюстрированному в таблице 9, видеокодер 200 может быть выполнен с возможностью сигнализации флага, указывающего на применение разделения со смещением к концевому узлу QTBT, сигнализации флага, указывающего, является ли разделение со смещением вертикальным или горизонтальным разделением, и сигнализации величины, указывающей значение смещения. Следует отметить, что в других примерах видеокодер 200 может быть выполнен с возможностью указания значений смещения с использованием других методик сигнализации. Например, видеокодер 200 может быть выполнен с возможностью сигнализации значений смещения на уровне CB. Следует отметить, что в некоторых примерах смещения могут быть сигнализированы как расширение сигнализации текущего режима разделения BT. Т. е., например, в JEM элементы синтаксиса режима разделения BT обеспечивают деление узла пополам. В одном примере согласно методикам, описанным в настоящем документе, сигнализация режима разделения BT может включать в себя сигнализацию пары типа разделения и смещения. Например, согласно примеру, приведенному на ФИГ. 12, в одном примере смещение может быть сигнализировано следующим образом: (разделение BT = 2, значение смещения = 28).
[0059] В одном примере каждый CB CTB может быть дополнительно индексирован в соответствии с определенным порядком сканирования, а видеокодер 200 может быть выполнен с возможностью сигнализации значений смещения посредством сигнализации значения индекса для CB. Например, согласно ФИГ. 13 двоичный концевой узел в верхнем правом углу показан как индексированный в качестве CB8. Таким образом, в одном примере видеокодер 200 может быть выполнен с возможностью использования этого значения индекса для указания выполнения для этого концевого узла разделения со смещением. Таким образом, видеокодер 200 представляет пример устройства, выполненного с возможностью определения значения смещения и разделения концевого узла в соответствии со значением смещения.
[0060] В одном примере набор решений о разделении (произвольное (-ые) разделение (я) со смещением и/или разделение (-я) QT) в предварительно определенном порядке можно применять к блоку выборок и указывать в битовом потоке с использованием одного индикатора.
[0061] Согласно ФИГ. 8 видеокодер 200 может генерировать остаточные данные путем вычитания прогнозируемого видеоблока из исходного видеоблока. Сумматор 202 представляет компонент, выполненный с возможностью осуществления этой операции вычитания. В одном примере вычитание видеоблоков происходит в пиксельной области. Генератор 204 коэффициентов преобразования применяет преобразование, такое как дискретное косинусное преобразование (DCT), дискретное синусное преобразование (DST) или концептуально подобное преобразование, к остаточному блоку или его подразделам (например, четыре преобразования 8×8 можно применять к массиву остаточных значений 16×16) для получения набора остаточных коэффициентов преобразования. Генератор 204 коэффициентов преобразования может быть выполнен с возможностью осуществления любых и всех комбинаций преобразований, включенных в семейство дискретных тригонометрических преобразований. Как описано выше, в ITU–T H.265 TB ограничены следующими размерами: 4×4, 8×8, 16×16 и 32×32. В одном примере генератор 204 коэффициентов преобразования может быть выполнен с возможностью осуществления преобразований в соответствии с массивами, имеющими размеры 4×4, 8×8, 16×16 и 32×32. В одном примере генератор 204 коэффициентов преобразования может быть дополнительно выполнен с возможностью осуществления преобразований в соответствии с массивами других размеров. В частности, в некоторых случаях может быть полезно выполнять преобразования для прямоугольных массивов разностных значений. В одном примере генератор 204 коэффициентов преобразования может быть выполнен с возможностью осуществления преобразований в соответствии со следующими размерами массивов: 2×2, 2×4N, 4M×2 и/или 4M×4N. В одном примере 2-мерное (2D) обратное преобразование M×N может быть реализовано как 1-мерное (1D) обратное M-точечное преобразование с последующим 1D обратным N-точечным преобразованием. В одном примере 2D обратное преобразование может быть реализовано как 1D N-точечное вертикальное преобразование, за которым следует 1D N-точечное горизонтальное преобразование. В одном примере 2D обратное преобразование может быть реализовано как 1D N-точечное горизонтальное преобразование, за которым следует 1D N-точечное вертикальное преобразование. Генератор 204 коэффициентов преобразования может выводить коэффициенты преобразования в блок 206 квантования коэффициентов.
[0062] Блок 206 квантования коэффициентов может быть выполнен с возможностью квантования коэффициентов преобразования. Как описано выше, степень квантования может быть изменена путем регулировки параметра квантования. Блок 206 квантования коэффициентов может быть дополнительно выполнен с возможностью определения параметров квантования и вывода данных QP (например, данных, используемых для определения размера группы квантования и/или значений дельта QP), которые может использовать видеодекодер для восстановления параметра квантования для выполнения обратного квантования в процессе декодирования видеосигналов. Следует отметить, что в других примерах один или более дополнительных или альтернативных параметров можно использовать для определения уровня квантования (например, коэффициентов масштабирования). Описанные в настоящем документе методики могут быть в целом применимы для определения уровня квантования для коэффициентов преобразования, соответствующих компоненту видеоданных, на основании уровня квантования для коэффициентов преобразования, соответствующих другому компоненту видеоданных.
[0063] Как показано на ФИГ. 8, квантованные коэффициенты преобразования выводят в блок 208 обработки обратного квантования/преобразования. Блок 208 обработки обратного квантования/преобразования может быть выполнен с возможностью применения обратного квантования и обратного преобразования для генерации восстановленных остаточных данных. Как показано на ФИГ. 8, в сумматоре 210 восстановленные остаточные данные могут быть добавлены к прогнозируемому видеоблоку. Таким образом, кодированный видеоблок может быть восстановлен, и полученный в результате восстановленный видеоблок может быть использован для оценки качества кодирования для данного прогнозирования, преобразования и/или квантования. Видеокодер 200 может быть выполнен с возможностью осуществления множества проходов кодирования (например, выполнения кодирования с изменением одного или более из прогнозирования, параметров преобразования и квантования). Связанное со скоростью искажение битового потока или других системных параметров может быть оптимизировано на основе оценки восстановленных видеоблоков. Восстановленные видеоблоки можно дополнительно сохранять и использовать в качестве опорных для прогнозирования последующих блоков.
[0064] Как описано выше, можно кодировать видеоблок с использованием внутреннего прогнозирования. Блок 212 обработки внутреннего прогнозирования может быть выполнен с возможностью выбора режима внутреннего прогнозирования для видеоблока, подлежащего кодированию. Блок 212 обработки внутреннего прогнозирования может быть выполнен с возможностью оценки кадра и/или его области и определения режима внутреннего прогнозирования, который используют при кодировании текущего блока. Как показано на ФИГ. 8, блок 212 обработки внутреннего прогнозирования выводит данные внутреннего прогнозирования (например, элементы синтаксиса) в блок 218 энтропийного кодирования и генератор 204 коэффициентов преобразования. Как описано выше, преобразование, выполняемое для остаточных данных, может зависеть от режима. Как описано выше, возможные режимы внутреннего прогнозирования могут включать в себя режимы планарного прогнозирования, режимы прогнозирования DC и режимы углового прогнозирования. В некоторых примерах прогноз для компонента цветности может быть дополнительно логически выведен из внутреннего прогнозирования для режима прогнозирования яркости.
[0065] Как описано выше, в ITU-T H.265 дано формальное определение режима планарного прогнозирования, которое основано на переменной nTbS, указывающей размер соответствующего блока преобразования. Как дополнительно описано выше, в ITU-T H.265 TB ограничены следующими размерами: 4×4, 8×8, 16×16 и 32×32. Таким образом, nTbS может иметь значение 4, 8, 16 или 32, указывающее размер квадрата и в силу этого не допускающее указания прямоугольников произвольного размера. Следовательно, режим планарного прогнозирования, определенный в соответствии с ITU-T H.265, может быть не идеальным для выполнения планарного прогнозирования в отношении прямоугольников произвольного размера. В соответствии с методиками, описанными в настоящем документе, видеокодер 200 может быть выполнен с возможностью осуществления планарного прогнозирования в отношении прямоугольного CB произвольного размера.
[0066] В одном примере видеокодер 200 может быть выполнен с возможностью выполнения планарного прогнозирования в отношении прямоугольного CB произвольного размера путем усреднения горизонтальной интерполяции и вертикальной интерполяции. Такое планарное прогнозирование можно описать, в целом, следующим образом:
predSamples[x][y]=(Hor_Interpolation [x][y]+Ver_Interpolation[x][y]+1) / 2
В одном примере Hor_Interpolation [x][y] и Ver_Interpolation[x][y] могут быть соответственно основаны на ширине и высоте CB в соответствии со следующими уравнениями:
Hor_Interpolation [x][y]=((nCbSW - 1 - x) × p[-1][y]+(x+1) × p[nCbSW][-1]) / nCbSW
и
Ver_Interpolation[x][y]=((nCbSH - 1 - y) × p[x][-1]+(y+1) × p[-1][nCbSH]) / nCbSH
Которые можно выразить следующим образом:
predSamples[x][y]=(((nCbSW - 1 - x) × p[-1][y]+(x+1) × p[nCbSW][-1]) × nCbSH+((nCbSH-1 - y) × p[x][-1]+(y+1) × p[-1][nCbSH]) × nCbSW+nCbSW × nCbSH) / (2 × nCbSW × nCbSH),
где
nCbSW указывает ширину соответствующего блока кодирования;
nCbSH указывает высоту соответствующего блока кодирования;
p[–1][y] - значение выборки восстановленной выборки, расположенной в прилегающем слева к CB столбце и имеющей то же самое вертикальное положение, что и текущая выборка;
p[nCbSW][-1] - значение выборки позиции T;
p[x][-1] - значение выборки восстановленной выборки, расположенной в прилегающей сверху к CB строке и имеющей то же самое горизонтальное положение, что и текущая выборка;
p[-1][CTbSH] - значение выборки в позиции L;
/ - операция целочисленного деления с усечением результата до нуля.
[0067] В отношении примеров уравнений, приведенных выше, следует отметить, что хотя данные уравнения описаны относительно CB, в других примерах эти уравнения могут быть описаны на основе PB, TB и/или других структур кодирования или областей изображения.
[0068] В отношении примера уравнения, приведенного выше, следует отметить, что в некоторых случаях блок кодирования может соответствовать блоку преобразования, а в других случаях структуры блока кодирования и блока преобразования могут быть независимыми друг от друга. На ФИГ. 16A показаны местоположения T и L относительно примера прямоугольного CB в соответствии с уравнением, приведенным выше. На ФИГ. 16B показан пример, где для текущей выборки C, p[-1][y] обозначено как b, а p[x][-1] обозначено как a. Следует отметить, что в соответствии с уравнением, приведенным выше, в случаях, где nCbSW больше nCbSH, к a применяют относительно больший вес по сравнению с b, а в случаях, где nCbSH больше nCbSW, к a применяют относительно больший вес по сравнению с b. Таким образом, видеокодер 200 может быть выполнен с возможностью осуществления планарных прогнозирований таким способом, который учитывает ориентацию прямоугольного массива значений выборки. Следует отметить, что в некоторых примерах к горизонтальной интерполяции и вертикальной интерполяции может быть применено взвешенное среднее. Например, такое планарное прогнозирование можно описать, в целом, следующим образом:
predSamples[x][y]=(α × Hor_Interpolation [x][y]+β × Ver_Interpolation[x][y]+(α+β)/2) / (α+β),
где α и β зависят от nCbSH и/или nCbSW. Кроме того, в других примерах α и β могут зависеть от PB, TB и/или других структур кодирования или областей изображения.
[0069] Блок 214 обработки внешнего прогнозирования может быть выполнен с возможностью кодирования с внешним прогнозированием для текущего видеоблока. Блок 214 обработки внешнего прогнозирования может быть выполнен с возможностью приема исходных видеоблоков и вычисления вектора движения для элементов PU видеоблока. Вектор движения может указывать смещение в PU (или аналогичной структуре кодирования) видеоблока внутри текущего видеокадра относительно прогнозируемого блока в опорном кадре. Кодирование с внешним прогнозированием может использовать одно или более опорных изображений. Прогнозирование движения может дополнительно быть однонаправленным (с использованием одного вектора движения) или двунаправленным (с использованием двух векторов движения). Блок 214 обработки внешнего прогнозирования может быть выполнен с возможностью выбора блока прогнозирования путем расчета разности пикселей, определенной, например, суммой абсолютной разности (SAD), суммой квадратов разности (SSD) или другими метриками разности. Как описано выше, вектор движения может быть определен и указан в соответствии с прогнозированием вектора движения. Блок 214 обработки внешнего прогнозирования может быть выполнен с возможностью прогнозирования вектора движения, как описано выше. Блок 214 обработки внешнего прогнозирования может быть выполнен с возможностью генерирования прогнозируемого блока с использованием данных прогнозирования движения. Например, блок 214 обработки внешнего прогнозирования может располагать прогнозируемый видеоблок в буфере кадров (не показан на ФИГ. 8). Следует отметить, что блок 214 обработки внешнего прогнозирования может быть дополнительно выполнен с возможностью применения одного или более интерполяционных фильтров к восстановленному остаточному блоку для вычисления значений субцелочисленных пикселей для использования при оценке движения. Блок 214 обработки внешнего прогнозирования может выводить данные прогнозирования движения для вычисленного вектора движения в блок 218 энтропийного кодирования. Как показано на ФИГ. 8, блок 214 обработки внешнего прогнозирования может принимать восстановленный видеоблок через блок 216 постфильтрации. Блок 216 постфильтрации может быть выполнен с возможностью деблокирования и/или фильтрации с адаптивным смещением выборки (SAO). Деблокирование относится к процессу сглаживания границ восстановленных видеоблоков (например, чтобы сделать границы менее видимыми для зрителя). SAO-фильтрация представляет собой нелинейное сопоставление амплитуды, которое можно использовать для улучшения восстановления путем добавления смещения к восстановленным видеоданным.
[0070] Согласно ФИГ. 8 блок 218 энтропийного кодирования принимает квантованные коэффициенты преобразования и данные синтаксического прогнозирования (т.е. данные внутреннего прогнозирования, данные прогнозирования движения, данные QP и т.д.). Следует отметить, что в некоторых примерах блок 206 квантования коэффициентов может выполнять сканирование матрицы, включающей в себя квантованные коэффициенты преобразования, перед выводом коэффициентов в блок 218 энтропийного кодирования. В других примерах сканирование может выполнять блок 218 энтропийного кодирования. Блок 218 энтропийного кодирования может быть выполнен с возможностью энтропийного кодирования в соответствии с одной или более методиками, описанными в настоящем документе. Блок 218 энтропийного кодирования может быть выполнен с возможностью вывода совместимого битового потока, т.е. битового потока, который видеодекодер может принимать и из которого он может воспроизводить видеоданные.
[0071] На ФИГ. 14 приведена блок-схема, иллюстрирующая пример видеодекодера, который может быть выполнен с возможностью декодирования видеоданных в соответствии с одной или более методиками настоящего описания. В одном примере видеодекодер 300 может быть выполнен с возможностью восстановления видеоданных на основе одной или более описанных выше методик. Т. е. работа видеодекодера 300 может быть обратной по отношению к работе описанного выше видеокодера 200. Видеодекодер 300 может быть выполнен с возможностью декодирования с внутренним прогнозированием и декодирования с внешним прогнозированием и в таком случае может называться гибридным декодером. В примере, проиллюстрированном на ФИГ. 14, видеодекодер 300 включает в себя блок 302 энтропийного декодирования, блок 304 обратного квантования, блок 306 обработки обратного преобразования, блок 308 обработки внутреннего прогнозирования, блок 310 обработки внешнего прогнозирования, сумматор 312, блок 314 постфильтрации и опорный буфер 316. Видеодекодер 300 может быть выполнен с возможностью декодирования видеоданных способом, соответствующим системе кодирования видеосигналов, которая может реализовывать один или более аспектов стандарта кодирования видеосигналов. Следует отметить, что хотя указанный в примере видеодекодер 300 проиллюстрирован как имеющий различные функциональные блоки, такая иллюстрация предназначена только для описания и не ограничивает видеодекодер 300 и/или его подкомпоненты конкретной архитектурой аппаратного или программного обеспечения. Функции видеодекодера 300 могут быть реализованы с использованием любой комбинации аппаратных, программно–аппаратных и/или программных вариантов осуществления.
[0072] Как показано на ФИГ. 14, блок 302 энтропийного декодирования принимает энтропийно кодированный битовый поток. Блок 302 энтропийного декодирования может быть выполнен с возможностью декодирования квантованных элементов синтаксиса и квантованных коэффициентов из битового потока в соответствии с процессом, обратным процессу энтропийного кодирования. Блок 302 энтропийного декодирования может быть выполнен с возможностью энтропийного декодирования в соответствии с любой из описанных выше методик энтропийного кодирования. Блок 302 энтропийного декодирования может анализировать кодированный битовый поток способом, соответствующим стандарту кодирования видеосигналов. Видеодекодер 300 может быть выполнен с возможностью синтаксического анализа кодированного битового потока, причем кодированный битовый поток генерируют на основе описанных выше методик. Т. е., например, видеодекодер 300 может быть выполнен с возможностью определения структур разделения QTBT, сгенерированных и/или сигнализированных на основе одной или более описанных выше методик для восстановления видеоданных. Например, видеодекодер 300 может быть выполнен с возможностью синтаксического анализа элементов синтаксиса и/или оценки свойств видеоданных для определения совместно используемой глубины QTBT. Видеодекодер 300 может быть дополнительно выполнен с возможностью определения значения смещения и разделения блока видеоданных в соответствии со значением смещения.
[0073] Согласно ФИГ. 14 блок 304 обратного квантования принимает квантованные коэффициенты преобразования (т.е. значения уровня) и данные параметров квантования от блока 302 энтропийного декодирования. Данные параметров квантования могут включать в себя любую и все комбинации значений дельта QP и/или значений размера группы квантования и т.п., описанных выше. Видеодекодер 300 и/или блок 304 обратного квантования могут быть выполнены с возможностью определения значений QP, используемых для обратного квантования, на основе значений, сигнализированных видеокодером, и/или с использованием свойств видео и/или параметров кодирования. Таким образом, работа блока 304 обратного квантования может быть обратной по отношению к работе описанного выше блока 206 квантования коэффициентов. Например, блок 304 обратного квантования может быть выполнен с возможностью вывода предварительно определенных значений (например, определения суммы глубины QT и глубины BT на основе параметров кодирования), допустимых размеров групп квантования и т.п. согласно описанным выше методикам. Блок 304 обратного квантования может быть выполнен с возможностью применения обратного квантования. Блок 306 обработки обратного преобразования может быть выполнен с возможностью осуществления обратного преобразования для генерации восстановленных остаточных данных. Методики, выполняемые соответственно блоком 304 обратного квантования и блоком 306 обработки обратного преобразования, могут быть аналогичны методикам, выполняемым описанными выше блоком 208 обработки обратного квантования/преобразования. Блок 306 обработки обратного преобразования может быть выполнен с возможностью применения обратного DCT, обратного DST, обратного целочисленного преобразования, неразделимого вторичного преобразования (NSST) или концептуально аналогичных процессов обратного преобразования к коэффициентам преобразования для получения остаточных блоков в пиксельной области. Как описано выше, выполняют ли конкретное преобразование (или преобразование конкретного типа), может дополнительно зависеть от режима внутреннего прогнозирования. Как показано на ФИГ. 14, сумматор 312 может быть обеспечен восстановленными остаточными данными. Сумматор 312 может добавлять восстановленные остаточные данные к прогнозируемому видеоблоку и генерировать восстановленные видеоданные. Прогнозируемый видеоблок может быть определен в соответствии с методикой прогнозирования видео (т.е. внутреннего прогнозирования и межкадрового прогнозирования). В одном примере видеодекодер 300 и блок 314 постфильтрации могут быть выполнены с возможностью определения значений QP и их использования для постфильтрации (например, деблокирования). В одном примере другие функциональные блоки видеодекодера 300, которые используют QP, могут определять QP на основе принятой сигнализации и использовать ее для декодирования.
[0074] Блок 308 обработки внутреннего прогнозирования может быть выполнен с возможностью приема элементов синтаксиса внутреннего прогнозирования и извлечения прогнозируемого видеоблока из опорного буфера 316. Опорный буфер 316 может включать в себя запоминающее устройство, выполненное с возможностью хранения одного или более кадров видеоданных. Элементы синтаксиса внутреннего прогнозирования могут идентифицировать режим внутреннего прогнозирования, такой как описанные выше режимы внутреннего прогнозирования. В одном примере блок 308 обработки внутреннего прогнозирования может восстанавливать видеоблок согласно одной или более методикам кодирования с внутренним прогнозированием, описанным в настоящем документе. Блок 310 обработки внешнего прогнозирования может принимать элементы синтаксиса внешнего прогнозирования и генерировать векторы движения для идентификации блока прогнозирования в одном или более опорных кадров, хранящихся в опорном буфере 316. Блок 310 обработки внешнего прогнозирования может создавать блоки с компенсацией движения с возможным выполнением интерполяции на основе интерполяционных фильтров. Идентификаторы интерполяционных фильтров, используемых для оценки движения с точностью до субпикселя, могут быть включены в элементы синтаксиса. Блок 310 обработки внешнего прогнозирования может использовать фильтры интерполяции для расчета интерполированных значений для субцелочисленных пикселей опорного блока. Блок 314 постфильтрации может быть выполнен с возможностью осуществления фильтрации восстановленных видеоданных. Например, блок 314 постфильтрации может быть выполнен с возможностью деблокирования и/или фильтрации SAO, как описано выше применительно к блоку 216 постфильтрации. Следует отметить, что в некоторых примерах блок 314 постфильтрации может быть дополнительно выполнен с возможностью выполнения проприетарного дискреционного фильтрования (например, визуальных улучшений). Как показано на ФИГ. 14, восстановленный видеоблок может быть выведен видеодекодером 300. Таким образом, видеодекодер 300 может быть выполнен с возможностью генерации восстановленных видеоданных в соответствии с одной или более методиками, описанными в настоящем документе. Таким образом, видеодекодер 300 может быть выполнен с возможностью синтаксического анализа структуры разделения двоичного дерева первого четверичного дерева, применения структуры разделения двоичного дерева первого четверичного дерева к первому компоненту видеоданных, определения совместно используемой глубины и применения структуры разделения двоичного дерева первого четверичного дерева ко второму компоненту видеоданных до совместно используемой глубины. Таким образом, видеодекодер 300 представляет пример устройства, выполненного с возможностью определения значения смещения и разделения концевого узла в соответствии со значением смещения.
[0075] В одном или более примерах описанные функции могут быть реализованы в виде аппаратного обеспечения, программного обеспечения, программно-аппаратного обеспечения или любой их комбинации. При реализации в программном обеспечении функции можно хранить или передавать в виде одной или более инструкций или кода на машиночитаемом носителе и выполнять аппаратным блоком обработки. Машиночитаемые носители могут включать в себя машиночитаемые носители данных, которые соответствуют материальным носителям, таким как носители данных, или среды связи, включающие в себя любую среду, обеспечивающую передачу компьютерной программы из одного местоположения в другое, например, согласно протоколу связи. Таким образом, машиночитаемые носители обычно могут соответствовать (1) материальным машиночитаемым носителям, которые не являются энергонезависимыми, или (2) среде связи, такой как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может обращаться один или более компьютеров или один или более процессоров для извлечения команд, кода и/или структур данных для реализации методик, описанных в настоящем документе. Компьютерный программный продукт может включать в себя машиночитаемый носитель.
[0076] В качестве примера, но не для ограничения, такой машиночитаемый носитель может представлять собой RAM, ROM, EEPROM, CD-ROM или другой накопитель на оптических дисках, накопитель на магнитных дисках или другие магнитные запоминающие устройства, флэш–память, или любой другой носитель, который можно использовать для хранения требуемого программного кода в виде команд или структур данных и к которому может получать доступ компьютер. Кроме того, любое соединение, строго говоря, называется машиночитаемым носителем. Например, при передаче команд с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасные, радио- и СВЧ-сигналы, коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасные, радио- и СВЧ-сигналы, включены в определение носителя/среды. Однако следует понимать, что машиночитаемые носители и носители данных не включают в себя соединения, несущие волны, сигналы или другие преходящие носители, а обозначают непреходящие материальные носители данных. В настоящем документе термин «диск» относится к диску, который воспроизводит данные оптическим способом с помощью лазеров, например компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD) и диск Blu-ray, и к диску, который обычно воспроизводит данные магнитным способом (например, гибкий диск). Комбинации вышеперечисленного также должны быть включены в объем термина «машиночитаемый носитель».
[0077] Команды могут быть выполнены одним или более процессорами, такими как один или более цифровых сигнальных процессоров (DSP), микропроцессоров общего назначения, специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA) или других эквивалентных интегральных или дискретных логических схем. Соответственно, употребляемый в настоящем документе термин «процессор» может относиться к любой из вышеуказанных структур или к любой другой структуре, подходящей для реализации описанных в настоящем документе методик. Кроме того, в некоторых аспектах описанные в настоящем документе функциональные возможности могут быть обеспечены в специальных аппаратных и/или программных модулях, выполненных с возможностью кодирования и декодирования или включенных в комбинированный кодек. Кроме того, методики могут быть полностью реализованы в одной или более схемах или логических элементах.
[0078] Методики настоящего описания могут быть реализованы в самых разных устройствах или аппаратах, включая беспроводную телефонную трубку, интегральную схему (IC) или набор IC (например, набор микросхем). Различные компоненты, модули или блоки описаны в настоящем документе для выделения функциональных аспектов устройств, выполненных с возможностью осуществления описанных методик, но они необязательно должны быть реализованы в виде различных аппаратных блоков. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или представлены набором взаимодействующих аппаратных блоков, включая один или более процессоров, как описано выше, в сочетании с подходящим программным обеспечением и/или программно-аппаратным обеспечением.
[0079] Более того, каждый функциональный блок или различные элементы устройства базовой станции и терминального устройства, используемые в каждом из вышеупомянутых вариантов осуществления, могут быть реализованы или исполнены схемой, которая обычно представляет собой интегральную схему или множество интегральных схем. Схема, выполненная с возможностью исполнения функций, описанных в настоящей спецификации, может содержать процессор общего назначения, цифровой сигнальный процессор (DSP), заказную или специализированную интегральную схему (ASIC), программируемую пользователем вентильную матрицу (FPGA) или другие программируемые логические устройства, схемы на дискретных компонентах или транзисторные логические схемы, дискретный аппаратный компонент или их комбинацию. Процессор общего назначения может представлять собой микропроцессор или альтернативно процессор может представлять собой стандартный процессор, контроллер, микроконтроллер или машину состояний. Процессор общего назначения или каждая схема, описанная выше, могут быть выполнены в виде цифровой схемы или могут быть выполнены в виде аналоговой схемы. Дополнительно при появлении в области полупроводников технологии, воплощающейся в интегральной схеме, вытесняющей существующие интегральные схемы, также можно использовать интегральную схему по данной технологии.
[0080] Описаны различные примеры. Эти и другие примеры включены в объем следующей формулы изобретения.
[0081] <Перекрестная ссылка>
Настоящая непредварительная заявка испрашивает приоритет согласно §119 раздела 35 Свода законов США по предварительной заявке на патент США №62/452,879 от 31 января 2017 г., содержание которой полностью включено в настоящий документ путем ссылки.