СИГНАЛИЗАЦИЯ ПАРАМЕТРОВ ЗАГОЛОВКА ИЗОБРАЖЕНИЯ
SIGNALLING OF THE IMAGE HEADER PARAMETERS

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
[0001] По данной заявке испрашивается приоритет предварительной патентной заявки США №62/950,453, поданной 19 декабря 2019 г. и патентной заявки США №17/026,748, поданной 21 сентября 2020, которые включены в настоящее описание в полном объеме.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] Это изобретение относится в целом к кодированию/декодированию видео и в целом описывает технологии видеокодирования нового поколения по отношению к HEVC (высокопроизводительному видеокодированию, High Efficiency Video Coding), например, универсальное видеокодирование (VVC, Versatile Video Coding). В частности, это изобретение относится в целом к способам и устройствам, связанным с обработкой заголовка изображения.
УРОВЕНЬ ТЕХНИКИ
[0003] Предложенный VVC проект 7 включает в себя HLS (High Level Syntax, синтаксис высокого уровня), именуемый заголовком изображения, который содержит синтаксические элементы, применяющиеся ко всем слайсам кодированного изображения, например, во избежание сигнализации синтаксических элементов в заголовке(ах) слайса(ов), которые должны иметь одинаковые значения для всех слайсов изображения.
Набор параметров изображения
[0004] HLS задает синтаксические элементы, которые могут применяться к инструментам кодирования более низкого уровня. Например, размер CTU (единицы дерева кодирования, Coding Tree Unit) может задаваться на уровне последовательностей или SPS (наборов параметров последовательности, Sequence Parameter Set), и в целом не изменяется от изображения к изображению. Типичный HLS включает в себя SPS, PPS (набор параметров изображения, Picture Parameter Set), РН (заголовок изображения, Picture Header), SH (заголовок слайса, Slice Header) и APS (набор адаптивных параметров, Adaptive Parameter Set).
[0005] Разные HLS включают в себя уровни приложений, благодаря чему широко используемые синтаксические элементы не нуждаются в повторном кодировании. Например, SPS задает общие синтаксические элементы, применимые к уровням последовательностей. РН задает общие синтаксические элементы, применимые к кодированному изображению, которое может состоять из одного или более слайсов.
[0006] Ниже описаны синтаксические элементы, включенные в PPS согласно VVC проект 7:
[0007] Как показано выше в таблице 1, num_slices_in_pic_minus1 плюс 1 задает количество прямоугольных слайсов в каждом изображении, ссылающемся на PPS. Значение num_slices_in_pic_minus1 находится в пределах от 0 до MaxSlicesPerPicture - 1, включительно. Когда no_pic_partition_flag равен 1, значение num_slices_in_pic_minus1 может определяться равным 0.
[0008] Как показано выше в таблице 1, pps_mvd_1l_zero_idc, равный 0, указывает, что синтаксический элемент mvd_l1_zero_flag присутствует в РН, ссылающихся на PPS. Кроме того, pps_mvd_1l_zero_idc, равный 1 или 2, указывает, что mvd_l1_zero_flag отсутствует в РН, ссылающихся на PPS. Дополнительно, pps_mvd_l1_zero_idc, равный 3, резервируется для использования в будущем в ITU-T ISO/IEC.
[0009] Как показано выше в таблице 1, pps_collocated_from_10_idc, равный 0, указывает, что синтаксический элемент collocated_from_10_flag присутствует в заголовках слайсов, ссылающихся на PPS. Кроме того, pps_collocated_from_10_idc, равный 1 или 2, указывает, что синтаксический элемент collocated_from_10_flag отсутствует в заголовках слайсов, ссылающихся на PPS. Дополнительно, pps_collocated_from_10_idc, равный 3, резервируется для использования в будущем в ITU-T | ISO/IEC.
[0010] Как показано выше в таблице 1, pps_six_minus_max_num_merge_cand_plus1, равный 0, указывает, что picsixminusmaxnummergecand присутствует в РН, ссылающихся на PPS. Кроме того, pps_six_minus_max_num_merge_cand_plus1, больший 0, указывает, что pps_six_minus_max_num_merge_cand отсутствует в РН, ссылающихся на PPS. Значение pps_six_minus_max_num_merge_cand_plus1 находится в пределах от 0 до 6, включительно.
[0011] Как показано выше в таблице 1, pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1, равный 0, указывает, что pic_max_num_merge_candminus_max_num_triangle_cand присутствует в РН слайсов, ссылающихся на PPS. Кроме того, pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1, больший 0, указывает, что pic_max_num_merge_candminus_max_num_triangle_cand отсутствует в РН, ссылающихся на PPS. Значение pic_max_num_merge_candminus_max_num_triangle_cand_plus1 находится в пределах от 0 до MaxNumMergeCand - 1.
RBSP уровня слайса
[0012] RBSP уровня слайса может состоять из заголовка слайса и данных слайса.
Заголовок изображения и заголовок слайса
[0013] Синтаксические элементы, кодированные в PPS, на который ссылается текущее изображение, должны игнорироваться в РН и SH, в результате чего устанавливается pic_deblocking_filter_override_flag в РН, ссылающемся на PPS, или slice_deblocking_filter_override_flag в SH, ссылающемся на PPS. Синтаксические элементы, отсутствующие в РН, могут, напротив, присутствовать в SH. Например, когда значение pic_sao_enabled_present_flag в РН, указывающее присутствие синтаксических элементов, связанных с SAO, равно 0, slice_sao_luma_flag и slice_sao_chroma_flag может кодироваться в SH для указания использования SAO для яркости и цветности.
[0014] С использованием РН, синтаксические элементы, которые уже должны быть одинаковыми во всех слайсах изображения, могут передаваться в РН по одному на изображение во избежание издержек сигнализации, в особенности при наличии небольшого количества слайсов в изображении. И все же синтаксические элементы, которые часто изменяются от слайса к слайсу, могут передаваться в SH для обеспечения гибкости.
[0015] Синтаксические элементы, включенные в РН и SH согласно VVC проект 7, описаны ниже в таблицах 3 и 5.
[0016] Как указано выше и ниже, slice type может указывать тип кодирования слайса согласно нижеприведенной таблице 4:
Разделитель блоков доступа
[0017] Разделитель AU (блоков доступа, Access Unit) используется для указания начала AU и типа слайсов, присутствующих в кодированных изображениях в AU, содержащих блок NAL (уровень сетевой абстракции, Network Abstraction Layer) разделителя AU. В настоящее время не существует нормативного процесса декодирования, связанного с разделителем AU.
[0018] Кроме того, pic_type указывает, что значения slice_type для всех слайсов кодированных изображений в AU, содержащей блок NAL разделителя AU, являются элементами множества, перечисленными в таблице 4 для данного значения pic_type. Значение pic_type может быть равно 0, 1 или 2 в битовых потоках. Другие значения pic_type зарезервированы для использования в будущем в ITU Т | ISO/IEC. Декодеры, согласующиеся с этой версией, могут игнорировать зарезервированные значения pic_type.
[0019] Непатентный источник [1] предлагает высокоуровневый флаг управления для указания того, что необходим набор параметров для охваченных уровней низкоуровневого кодирования.
[0020] В [1] описывается способ, в котором все синтаксические элементы или параметры, связанные с внешним предсказанием, нужно сигнализировать только при наличии по меньшей мере одного интер-кодированного слайса, или когда внутри изображения существует разбиение. В противном случае, эти синтаксические элементы или параметры не сигнализируются.
[0021] В одном варианте осуществления, описанном в [1], флаг управления в заголовке изображения, обозначенный pic_intra_only_flag, сигнализируется для указания, будут ли все слайсы (или любого рода части этого изображения) внутри изображения иметь только внутреннее предсказание (или не связаны с внутренним предсказанием). Когда этот флаг равен TRUE, только синтаксические элементы или параметры, связанные с интра-кодированием, сигнализируются позже в заголовке изображения. В противном случае, когда этот флаг равен FALSE, сигнализируются синтаксические элементы или параметры, связанные с внешним предсказанием. Ниже приведена таблица синтаксиса, отражающая этот вариант осуществления:
[0022] Согласно другому способу из [1], все связанные синтаксические элементы или параметры, которые используются только для интра-слайса или интра-разбиения, нужно сигнализировать в отсутствие интер-кодированного слайса, или когда внутри изображения существует разбиение. В противном случае, эти синтаксические элементы или параметры не сигнализируются.
[0023] В другом варианте осуществления [1], флаг управления в заголовке изображения, обозначенный pic_inter_only_flag, сигнализируется для указания, будут ли все слайсы (или любого рода разбиение этого изображения) внутри изображения иметь внешнее предсказание (или предсказание, не связанное с внутренним предсказанием). Когда этот флаг равен TRUE, синтаксические элементы или параметры, связанные с интра-слайсом, не сигнализируются позже в заголовке изображения. В противном случае, когда этот флаг равен FALSE, интра-слайс может использоваться по меньшей мере в одном из слайсов или разбиений в изображении. Будут сигнализироваться связанные синтаксические элементы или параметры для интра-слайса или частей. Ниже приведена таблица синтаксиса, отражающая этот вариант осуществления:
[0024] Согласно упомянутым способам, описанным в [1], если изображение имеет свой собственный тип, например, является интра-изображением или интер-изображением, вышеупомянутые флаги управления pic_intra_only_flag и pic_inter_only_flag не нужно сигнализировать, и их значения можно вывести из типа изображения.
[0025] Кроме того, если текущее изображение имеет тип изображения "только интра" (все слайсы в изображении являются I-слайсами), то pic_intra_only_flag может определяться как TRUE. В другом примере, если текущее изображение имеет тип изображения "только интер" (все слайсы в изображении являются Р- или В-слайсами), то pic_inter_only_flag может определяться как TRUE. В еще одном примере в [1], если текущее изображение имеет тип изображения, указывающий, что в изображении возможны как интра-слайсы, так и интер-слайсы, то pic_intra_only_flag и pic_inter_only_flag могут определяться как FALSE.
Проблема
[0026] Хотя РН может сигнализироваться по одному на изображение во избежание сигнализации синтаксических элементов, которые являются общими для слайсов в пределах изображения, эта сигнализация может, вместо этого, вносить служебную нагрузку, не учитывая синтаксических элементов, используемых только для интра-слайсов (I-слайсов) или интер-слайсов (В-, Р-слайсов).
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0027] Варианты осуществления относятся к способу, системе и компьютерно-считываемому носителю для кодирования/декодирования видео и, в частности, к обработке заголовка изображения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0028] Эти и другие объекты, признаки и преимущества будут понятны из нижеследующего подробного описания иллюстративных вариантов осуществления, подлежащих рассмотрению совместно с прилагаемыми чертежами. Различные признаки чертежей могут быть изображены с нарушением масштаба для наглядности и облегчения понимания специалистом в данной области техники совместно с подробным описанием. На чертежах:
[0029] Фиг. 1 - упрощенная блок-схема системы связи в соответствии с вариантом осуществления.
[0030] Фиг. 2 - упрощенная блок-схема системы связи в соответствии с вариантом осуществления.
[0031] Фиг. 3 - схема компьютерной системы в соответствии с вариантом осуществления.
ПОДРОБНОЕ ОПИСАНИЕ
[0032] На фиг. 1 показана упрощенная блок-схема системы (100) связи согласно варианту осуществления настоящего изобретения. Система (100) может включать в себя по меньшей мере два терминала (110-120), соединенные между собой через сеть (150). Для однонаправленной передачи данных, первый терминал (110) может кодировать видеоданные в локальном положении для передачи на другой терминал (120) через сеть (150). Второй терминал (120) может принимать кодированные видеоданные другого терминала из сети (150), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может быть свойственна приложениям служб массовой информации и т.п.
[0033] На фиг. 1 показана вторая пара терминалов (130, 140), обеспеченных для поддержки двунаправленная передача кодированного видео, которая может происходить, например, в ходе видеоконференцсвязи. Для двунаправленной передачи данных, каждый терминал (130, 140) может кодировать видеоданные, захваченные в локальном положении для передачи на другой терминал через сеть (150). Каждый терминал (130, 140) также может принимать кодированные видеоданные, переданные другим терминалом, может декодировать кодированные данные и отображать восстановленные видеоданные на локальном устройстве отображения.
[0034] На фиг. 1 терминалы (110-140) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или специального оборудования для видеоконференцсвязи. Сеть (150) представляет любое количество сетей, которые переносят кодированные видеоданные между терминалами (110-140), включая, например, проводные и/или беспроводные сети связи. Сеть (150) связи позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Иллюстративные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или интернет. В целях настоящего рассмотрения, архитектура и топология сети (150) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.
[0035] На фиг. 2 показано, в порядке примера применения раскрытого изобретения, размещение видеокодера и декодера в окружении потоковой передачи. Раскрытое изобретение может быть в равной степени применимо к другим применениям обработки видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, в том числе CD, DVD, карте памяти и т.п., и т.д.
[0036] Система потоковой передачи может включать в себя подсистему (213) захвата, которая может включать в себя источник (201) видеосигнала, например, цифровую камеру, создающую, например, поток (202) отсчетов видео без сжатия. Этот поток (202) отсчетов, изображенный толстой линией, чтобы подчеркнуть высокий объем данных по сравнению с битовыми потоками кодированного видео, может обрабатываться кодером (203), подключенный к камере (201). Кодер (203) может включать в себя оборудование, программное обеспечение или их комбинацию для обеспечения или реализации аспектов раскрытого изобретения, как более подробно описано ниже. Битовый поток (204) кодированного видео, изображенный тонкой линией, чтобы подчеркнуть более низкий объем данных по сравнению с потоком отсчетов, может сохраняться на сервере (205) потоковой передачи для использования в будущем. Один или более клиентов (206, 208) потоковой передачи могут осуществлять доступ к серверу (205) потоковой передачи для извлечения копий (207, 209) битового потока (204) кодированного видео. Клиент (206) может включать в себя видеодекодер (210), который декодирует входящую копию битового потока кодированного видео (207) и создает исходящий поток (211) отсчетов видео, который может визуализироваться на дисплее (212) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи, битовые потоки (204, 207, 209) видео можно кодировать согласно тем или иным стандартам видеокодирования/сжатия. Примеры этих стандартов включают в себя ITU-T Recommendation Н.265. Разрабатывается стандарт видеокодирования, официально именуемый универсальным видеокодированием или VVC. Раскрытое изобретение может использоваться в контексте VVC.
[0037] Согласно вариантам осуществления, синтаксический элемент pic_type_idc может использоваться для указания типов слайсов для всех слайсов кодированного изображения.
[0038] В одном варианте осуществления, pic_type_idc может кодироваться с использованием беззнакового целого синтаксического элемента, кодированного экспоненциальным кодом Голомба 0-го порядка, начинающегося с левого бита. При этом pic_type_idc может иметь три значения 0, 1 и 2 и три состояния, например, только I-слайс, В-, Р-, I-слайсы, и В-, Р-слайсы. Значение может отображаться в состояния в любом порядке. В нижеследующей таблице 8 приведены примеры возможной семантики pic_type_idc.
[0039] Согласно варианту осуществления, pic_type_idc может кодироваться с использованием беззнакового целого числа с использованием 2 битов. При этом, pic_type_idc может иметь, но без ограничения, три значения 0, 1 и 2 и три состояния, например: только I-слайс, В-, Р-, I-слайсы, и В-, Р-слайсы. Другие значения pic_type_idc могут быть зарезервированы для дальнейшего задания.
[0040] Согласно варианту осуществления, зарезервированное значение 3 pic_type_idc может указывать, что в кодированном изображении присутствуют только Р- и I-слайсы.
[0041] В примере, pic_type_idc может кодироваться с использованием беззнакового целого числа с использованием 2 битов. Кроме того, pic_type_idc может иметь четыре значения 0, 1, 2 и 3 и четыре состояния, например, только I-слайс, В-, Р-, I-слайсы и В-слайсы, и Р-слайсы.
[0042] Предлагается сигнализировать pic_type_idc в HLS, чтобы кодировались или присутствовали только связанные синтаксические элементы, для снижения издержек сигнализации. Например, когда pic_type_idc указывает, что изображение является только интра-изображением (внутренне кодированным), никакие синтаксические элементы, связанные с интер-кодированием (внешним кодированием), не сигнализируются.
[0043] В одном примере, pic_type_idc может сигнализироваться в PPS, благодаря чему он задает типы слайсов для всех слайсов каждого кодированного изображения ссылающегося на PPS. Ниже детально описаны синтаксис и семантика. В нижеследующей таблице, а также других таблицах в этом изобретении, изменения по сравнению с VVC проект 7 выделены курсивом.
[0044] При этом, pic_type_idc задает типы слайсов для всех слайсов каждого кодированного изображения, ссылающегося на PPS.
[0045] В одном варианте осуществления, pic_type_idc, установленный равным 1, указывает, что каждое кодированное изображение, ссылающееся на PPS, имеет только один или более I-слайсов. В подобных случаях, интер-слайсы (В-, Р-слайс), связанные с синтаксическими элементами pps_mvd_1l_zero_idc, pps_collocated_from_10_idc, pps_six_minus_max_num_merge_cand_plus1 и pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1, определяются равными 0.
[0046] При этом, pps_mvd_1l_zero_idc, равный 0, указывает, что синтаксический элемент mvd_l1_zero_flag присутствует в РН, ссылающихся на PPS. Кроме того, pps_mvd_l1_zero_idc, равный 1 или 2, указывает, что mvd ll zero flag отсутствует в РН, ссылающихся на PPS. Дополнительно, pps_mvd_1l_zero_idc, равный 3, резервируется для использования в будущем в ITU-T | ISO/IEC. Когда отсутствует, pps_mvd_1l_zero_idc может определяться равным 0.
[0047] Дополнительно, pps_collocated_from_10_idc, равный 0, указывает, что синтаксический элемент collocated_from_10_flag присутствует в заголовках слайсов, ссылающихся HaPPS. Кроме того, pps_collocated_from_10_idc, равный 1 или 2, указывает, что синтаксический элемент collocated from lO flag отсутствует в заголовках слайсов, ссылающихся на PPS. Дополнительно, pps_collocated_from_10_idc, равный 3, резервируется для использования в будущем в ITU-T | ISO/IEC. Когда отсутствует, pps_collocated_from_10_idc может определяться равным 0.
[0048] Кроме того, pps_six_minus_max_num_merge_cand_plus1, равный 0, указывает, что pps_six_minus_max_num_merge_cand присутствует в РН, ссылающихся на PPS. Дополнительно, pps_six_minus_max_num_merge_cand_plus1, больший 0, указывает, что pps_six_minus_max_num_merge_cand отсутствует в РН, ссылающихся на PPS. Значение pps_six_minus_max_num_merge_cand_plus1 находится в пределах от 0 до 6, включительно. Когда отсутствует, pps_six_minus_max_num_merge_cand_plus1 может определяться равным 0
[0049] Как показано, pic_max_num_merge_candminus_max_num_triangle_cand_plus1, равный 0, указывает, что pic_max_num_merge_candminus_max_num_triangle_cand присутствует в РН слайсов, ссылающихся на PPS. Кроме того, pic_max_num_merge_candminus_max_num_triangle_cand_plus1, больший 0, указывает, что pic_max_num_merge_candminus_max_num_triangle_cand отсутствует в РН, ссылающихся на PPS. Значение pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 находится в пределах от 0 до MaxNumMergeCand - 1. Когда отсутствует, pic_max_num_merge_candminus_max_num_triangle_cand_plus1 может определяться равным 0.
[0050] Для каждого кодированного изображения, ссылающегося на PPS, pic_type_idc используется для определения, анализировать ли синтаксические элементы, связанные с интра-слайсами (I-слайсами) и интер-слайсами (В-, Р-слайсами). Например, синтаксические элементы, связанные с интра-слайсами,
pic_log2_diff_min_qt_min_cb_intra_slice_luma,
pic_max_mtt_hierarchy_depth_intra_slice_luma,
pic_log2_diff_min_qt_min_cb_intra_slice_luma,
pic_log2_diff_min_qt_min_cb_intra_slice_luma,
pic_log2_diff_min_qt_min_cb_intra_slice_chroma,
pic_max_mtt_hierarchy_depth_intra_slice_chroma,
pic_log2_diff_max_bt_min_qt_intra_slice_chroma и
pic_log2_diff_min_qt_min_cb_intra_slice_chroma, декодируют только при наличии только I-слайсов, связанных с РН. С другой стороны, синтаксические элементы, связанные с интер-слайсами, декодируют всякий раз, когда присутствуют интер-слайсы.
[0051] В одном примере, pic_type_idc сигнализируется в РН, благодаря чему он задает типы слайсов для всех слайсов кодированного изображения, связанных с РН. Детальное описание синтаксиса и семантики приведены ниже. Изменения по сравнению с VVC проект 7 выделены курсивом.
[0052] Для каждого кодированного изображения, pic_type_idc используется для определения, анализировать ли синтаксические элементы, связанные с интра-слайсами (I-слайсами) и интер-слайсами (В-, Р-слайсами). Например, синтаксические элементы, связанные с интра-слайсами, pic_log2_difr_min_qt_min_cb_intra_slice_luma,
pic_max_mtt_hierarchy_depth_intra_slice_luma,
pic_log2_diff_min_qt_min_qt_intra_slice_luma,
pic_log2_diff_min_qt_min_cb_intra_slice_luma,
pic_log2_diff_min_qt_min_cb_intra_slice_chroma,
pic_max_mtt_hierarchy_depth_intra_slice_chroma,
pic_log2_diff_max_bt_min_qt_intra_slice_chroma и
pic_log2_diff_min_qt_min_cb_intra_slice_chroma, декодируются только при наличии только I-слайсов, связанных с РН. С другой стороны, синтаксические элементы, связанные с интер-слайсами, декодируются всякий раз, когда присутствуют интер-слайсы.
[0053] В одном варианте осуществления, pic_type_idc может присутствовать и в PPS, и в РН, ссылающихся на PPS, как pps_pic_type_idc и ph_pic_type_idc, соответственно.
[0054] При этом pps_pic_type_idc задает типы слайсов для всех слайсов каждого кодированного изображения, ссылающегося на PPS.
[0055] Кроме того, pps_mvd_1l_zero_idc, равный 0, указывает, что синтаксический элемент mvd_l1_zero_flag присутствует в РН, ссылающихся на PPS. Дополнительно, pps_mvd_l1_zero_idc, равный 1 или 2, указывает, что mvd ll zero flag отсутствует в РН, ссылающихся на PPS. Дополнительно, pps_mvd_l1_zero_idc, равный 3, резервируется для использования в будущем в ITU-T | ISO/IEC. Когда отсутствует, pps_mvd_1l_zero_idc может определяться равным 0.
[0056] Кроме того, pps_collocated_from_10_idc, равный 0, указывает, что синтаксический элемент collocated from lO flag присутствует в заголовках слайсов, ссылающихся на PPS. Дополнительно, pps_collocated_from_10_idc, равный 1 или 2, указывает, что синтаксический элемент collocated_from_10_flag отсутствует в заголовках слайсов, ссылающихся на PPS. Дополнительно, pps_collocated_from_10_idc, равный 3, резервируется для использования в будущем в ITU-T | ISO/IEC. Когда отсутствует, pps_collocated_from_10_idc может определяться равным 0.
[0057] Кроме того, pps_six_minus_max_num_merge_cand_plus1, равный 0, указывает, что pps_six_minus_max_num_merge_cand присутствует в РН, ссылающихся на PPS. Дополнительно, pps_six_minus_max_num_merge_cand_plus1, больший 0, указывает, что pps_six_minus_max_num_merge_cand отсутствует в РН, ссылающихся на PPS. Значение pps_six_minus_max_num_merge_cand_plus1 должно быть в пределах от 0 до 6, включительно. Когда отсутствует, pps_six_minus_max_num_merge_cand_plus1 может определяться равным 0.
[0058] Кроме того, pic_max_num_merge_candminus_max_num_triangle_candplus1, равный 0, указывает, что pic_max_num_merge_candminus_max_num_triangle_cand присутствует в РН слайсов, ссылающихся на PPS. Дополнительно, pic_max_num_merge_candminus_max_num_triangle_candplus1, больший 0, указывает, что pic_max_num_merge_candminus_max_num_triangle_cand отсутствует в РН, ссылающихся на PPS. Значение pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 должно быть в пределах от 0 до MaxNumMergeCand - 1. Когда отсутствует, pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 может определяться равным 0.
[0059] В одном примере, когда значение pps_pic_type_idc указывает присутствие одного типа слайса (I- или В- или Р- слайса, как в таблице 10 значение 1, 2 и 3), значение ph_pic_type_idc может определяться из значения pps_pic_type_idc.
[0060] При этом, ph_pic_type_idc задает типы слайсов для всех слайсов каждого кодированного изображения, связанного с РН.
[0061] В одном варианте осуществления, ph_tic_type_idc, равный 1, указывает, что каждое кодированное изображение, связанное с РН, имеет только один или более I-слайсов.
[0062] Если pps_pic_type_idc равен 0 (B-, P-, I-слайсы, как в таблице 10), значение ph_pic_type_idc находится в диапазоне от 0 до 2, включительно. В противном случае, значение ph_pic_type_idc может определяться из pps_pic_type_idc (например, тождественно). В таком случае, требование к согласованию битового потока состоит в том, что значения ph_pic_type_idc должны быть равны значениям pps_pic_type_idc.
[0063] В одном примере, сигнализация синтаксиса ph_pic_type_idc зависит от значения pps_pic_type_idc (например, ограничивается им). Когда значение pps_pic_type_idc указывает присутствие как интра-слайсов (I-слайсов), так и интер-слайсов (В-, Р-слайсов) в кодированных изображениях, ph_tic_type_idc нужно сигнализировать/анализировать для указания типов слайсов, присутствующих в этом изображении, связанном с заголовком изображения. В других случаях, когда pps_pic_type_idc указывает присутствие единственного типа слайса, ph_pic_type_idc не сигнализируется/анализируется, и определяется равным (например, идентичным) типу слайса pps_pic_type_idc. Требование к согласованию битового потока состоит в том, что диапазон ph_pic_type_idc не больше, чем диапазон pps_pic_type_idc.
[0064] При этом, ph_pic_type_idc задает типы слайсов для всех слайсов каждого кодированного изображения, связанного с РН. Кроме того, ph_pic_type_idc может присутствовать в битовом потоке только, когда pps_pic_type_idc равен 0.
[0065] Дополнительно, ph_pic_type_idc, равный 1, указывает, что каждое кодированное изображение, связанное с РН, имеет только один или более I-слайсов. Если pps_pic_type_idc равен 0 (В-, Р-, I-слайсы, как в таблице 8), значение ph_tic_type_idc находится в диапазоне от 0 до 2, включительно. В противном случае, когда ph_pic_type_idc отсутствует, оно определяется равным pps_ph_type_idc, как в таблице 8.
[0066] В одном варианте осуществления, синтаксические элементы, связанные с РН, включены в блок NAL RBSP уровня слайса, и ph_present_flag используется для указания присутствия синтаксиса, связанного с РН, в блоке NAL RBSP уровня слайса. Повторная сигнализация синтаксиса, связанного с РН, может иметь преимущество устойчивости к ошибкам и восстановления после ошибки. Когда блок NAL РН повреждается при передаче по любого рода сети, блоки NAL RBSP уровня слайса способны к восстановлению после ошибки при наличии РН в блоках NAL RBSP уровня слайса. Изменения по сравнению с VVC проект 7 выделены курсивом.
[0067] При этом ph_present_flag может использоваться для указания присутствия синтаксиса, связанного с РН в RBSP уровня слайса. Когда ph_present_flag равен 1, синтаксис, связанный с РН, присутствует. Когда ph_present flag равен 0, синтаксис, связанный с РН, отсутствует в RBSP уровня слайса.
[0068] В одном варианте осуществления, когда pic_type, декодированный в разделителе AU, как описано выше, присутствует, pic_type_idc, сигнализируемый в HLS, может определяться из значения pic_type или ограничиваться им.
[0069] В одном примере, когда pic_type равен 0, как в таблице 5, указывая I-слайс, требование к согласованию битового потока состоит в том, что значения pic_type_idc указывают, что в каждом изображении присутствуют только интра-слайсы. Например, когда согласовано, что pic_type_idc равен 1, присутствуют только интра-слайсы.
[0070] В одном примере, когда pic_type_idc ограничивается значением pic_type, диапазон значения pic_type_idc может зависеть от значения pic_type. Например, pic_type_idc имеет значения, как описано в таблице 10, и, если pic_type равен 1, значение pic_type_idc может иметь значение 1 или 3. В других случаях, когда pic_type равен 2, значение pic_type_idc составляет от 0 до 3.
[0071] В одном варианте осуществления, когда pic_type_idc сигнализируется в HLS согласно вышеупомянутому(ым) способу(ам), можно определять slice_type.
[0072] В одном примере, когда pic_type_idc имеет значение, указывающее на наличие только интра-слайсов, slice_type может определяться равным 2.
[0073] В одном примере, когда pic_type_idc имеет значение, указывающее на наличие только интер-слайсов, значение slice_type находится в диапазоне от 0 до 1, включительно. Например, когда pic_type_idc имеет значение 2 (В-, Р-слайс), slice_type может принимать значения 0 и 1.
[0074] В одном варианте осуществления, значение slice_type может определяться из значения pic_type_idc и num_slices_in_pic_minus1.
[0075] Требование к согласованию битового потока состоит в том, что значение num_slices_in_pic_minus1 больше или равно 1, когда значение pic_type_idc указывает на наличие как интра-слайсов, так и интер-слайсов.
[0076] Возможны случаи, когда значение pic_type_idc указывает, что в кодированном изображении существуют как интра-слайсы, так и интер-слайсы, и значение num_slices_in_pic_minus1 больше или равно 1.
[0077] Когда все ранее кодированные слайсы являются интер-слайсами, последний слайс может быть интра-слайсом со slice_type, равным 2 (I-слайсом).
[0078] Когда все ранее кодированные слайсы являются интра-слайсами, последний слайс может быть интер-слайсом со значением slice_type в пределах от 0 до 1, включительно.
[0079] Предложенные выше способы можно реализовать посредством схемы обработки (например, одного или более процессоров или одной или более интегральных схем). В одном примере, один или более процессоров выполняют программу, которая хранится на компьютерно-считываемом носителе для осуществления одного или более из предложенных способов.
[0080] Вышеописанные методы могут быть реализованы в виде компьютерного программного обеспечения, использующего компьютерно-считываемые инструкции и физически хранящегося на одном или более компьютерно-считываемых носителях. Например, на фиг. 3 показана компьютерная система 300, пригодная для реализации некоторых вариантов осуществления раскрытого изобретения.
[0081] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться напрямую, или посредством интерпретации, выполнения микрокода и т.п., компьютерными центральными процессорами (CPU, central processing units), графическими процессорами (GPU, Graphics Processing Units) и т.п.
[0082] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.
[0083] Компоненты компьютерной системы 300, показанные на фиг. 3, носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование совместно с любым одним или комбинацией компонентов, показанных в иллюстративном варианте осуществления компьютерной системы 300.
[0084] Компьютерная система 300 может включать в себя некоторые устройства ввода интерфейса с человеком. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса также могут использоваться для захвата некоторых информационных носителей, не обязательно напрямую связанных с осознанным вводом человеком, например звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двухмерного видео, трехмерного видео, включающего в себя стереоскопическое видео).
[0085] Устройства ввода интерфейса с человеком могут включать в себя один или более из (по одному из изображенных): клавиатуры 301, мыши 302, сенсорной панели 303, сенсорного экрана 310 и связанного с ним графического адаптера 350, информационной перчатки, джойстика 305, микрофона 306, сканера 307, камеры 308.
[0086] Компьютерная система 300 также может включать в себя некоторые устройства вывода интерфейса с человеком. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать в себя устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана 310, информационной перчатки или джойстика 305, но также могут быть устройствами тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например: громкоговорители 309, наушники (не показаны)), устройства визуального вывода (например, экраны (2910), в том числе кинескопные (CRT, cathode ray tube) экраны, жидкокристаллические (LCD, liquid-crystal display) экраны, плазменные экраны, органические светодиодные (OLED, organic light-emitting diode) экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из которых способны к двухмерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографического вывода; очков виртуальной реальности (не показаны), голо графических дисплеев и дымовых баков (не показаны)) и принтеров (не показаны).
[0087] Компьютерная система 300 также может включать в себя доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие в себя CD/DVD ROM/RW 320 с носителями 321 CD/DVD и т.п., карты 322 флэш-памяти, сменный жесткий диск или твердотельный диск 323, традиционные магнитные носители, например, ленту и флоппи-диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.
[0088] Специалисты в данной области техники также должны понимать, что термин "компьютерно-считываемые носители", используемый совместно с раскрытым здесь изобретением, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.
[0089] Компьютерная система 300 также может включать в себя интерфейс к одной или более сетям связи. Сети могут быть, например, беспроводными, проводными, оптическими. Сети могут быть, дополнительно, локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры сетей включают в себя локальные сети, например, Ethernet, беспроводные LAN, сотовые сети, в том числе глобальная система мобильной связи (GSM, global system for mobile communications), третье поколение (3G), четвертое поколение (4G), пятое поколение (5G), проект долгосрочного развития систем связи (LTE, Long-Term Evolution), глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные включают в себя CANFJus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам 349 (например, портам универсальной последовательной шины (USB, universal serial bus) компьютерной системы 300); другие обычно встраиваются в ядро компьютерной системы 300 путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). В порядке примера, сеть 355 может подключаться к периферийной шине 349 с использованием сетевого интерфейса 354. Используя любую из этих сетей, компьютерная система 300 может осуществлять связь с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANbus к некоторым устройствам CANbus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсов (354).
[0090] Вышеупомянутые устройства человеческого интерфейса, доступные человеку запоминающие устройства и сетевые интерфейсы могут подключаться к ядру 340 компьютерной системы 300.
[0091] Ядро 340 может включать в себя один или более центральных процессоров (CPU) 341, графические процессоры (GPU) 342, специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Arrays) 343, аппаратные ускорители 344 для некоторых задач, графический адаптер (350) и т.д. Эти устройства, совместно с постоянной памятью (ROM) 345, оперативной памятью 346, внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками 347, недоступными пользователю, твердотельные приводы (SSD, solid-state drives) и т.п., могут соединяться посредством системной шины 348. В некоторых компьютерных системах системная шина 348 может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут подключаться либо напрямую к системной шине 348 ядра, либо через периферийную шину 349. Архитектуры периферийной шины включают в себя межсоединение периферийных компонентов (PCI, peripheral component interconnect), USB и т.п.
[0092] CPU 341, GPU 342, FPGA 343 и ускорители 344 могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM 345 или RAM 346. Переходные данные также могут храниться в RAM 346, тогда как постоянные данные могут храниться, например, во внутреннем хранилище 347 данных большой емкости. Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с один или более CPU 341, GPU 342, хранилищем 347 данных большой емкости, ROM 345, RAM 346 и т.п.
[0093] На компьютерно-считываемых носителях может храниться компьютерный код для осуществления различных компьютерно-реализуемых операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.
[0094] В порядке примера, но не ограничения, компьютерная система, имеющая архитектуру 300, и, в частности, ядро 340 может обеспечивать функциональные
возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных компьютерно-считываемых носителей. Такие компьютерно-считываемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым хранилищем ядра 340, носящим долговременный характер, например, внутренним хранилищем 347 данных большой емкости или ROM 345. Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром 340. Компьютерно-считываемый носитель может включать в себя одно или более запоминающих устройств или микросхем, в соответствии с конкретными нуждами. Программное обеспечение может предписывать ядру 340 и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные процессы или конкретные части описанных здесь конкретных процессов, включая задание структур данных, хранящихся в RAM 346, и модификацию таких структур данных согласно процессам, заданным программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель 344), который может действовать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей описанных здесь конкретных процессов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на компьютерно-считываемые носители может охватывать схему (например, интегральную схему (IC, integrated circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе из них, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию оборудования и программного обеспечения.
[0095] Хотя здесь описано несколько иллюстративных вариантов осуществления, возможны изменения, перестановки и различные эквиваленты для замены, которые находятся в объеме изобретения. Таким образом, специалисты в данной области техники могут предложить многочисленные системы и способы, которые, хотя в явном виде здесь не показаны и не описаны, воплощают принципы изобретения и, таким образом, соответствуют его сущности и объему.
[0096] Непатентный источник:
[1] IDF 10092019_high level syntax control for video coding_v2
[0097] Перечень аббревиатур:
HLS: синтаксис высокого уровня
HEVC: высокопроизводительное видеокодирование
VVC: универсальное видеокодирование
CTU: единица дерева кодирования
SPS: набор параметров последовательности
PPS: набор параметров изображения
APS: набор адаптивных параметров
РН: заголовок изображения
SH: заголовок слайса
SAO: адаптивное смещение отсчета (Sample Adaptive Offset)
AU: блок доступа
NAL: уровень сетевой абстракции
RBSP: полезная нагрузка исходной байтовой последовательности (Raw Byte Sequence Payload).