RU2799572C1 - Method for signaling a set of output layers with a subimage - Google Patents
Method for signaling a set of output layers with a subimage Download PDFInfo
- Publication number
- RU2799572C1 RU2799572C1 RU2021127568A RU2021127568A RU2799572C1 RU 2799572 C1 RU2799572 C1 RU 2799572C1 RU 2021127568 A RU2021127568 A RU 2021127568A RU 2021127568 A RU2021127568 A RU 2021127568A RU 2799572 C1 RU2799572 C1 RU 2799572C1
- Authority
- RU
- Russia
- Prior art keywords
- parameter set
- image
- layer
- sub
- layers
- Prior art date
Links
Images
Abstract
Description
ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННУЮ ЗАЯВКУCROSS-REFERENCE TO RELATED APPLICATION
[1] Данная заявка испрашивает приоритет предварительной заявки на патент США №62/903,660, поданной 20 сентября 2019 г., и заявки на патент США №17/021,243, поданной 15 сентября 2020 г., которые полностью включены в настоящий документ.[1] This application claims priority of U.S. Provisional Application No. 62/903,660, filed September 20, 2019, and U.S. Patent Application No. 17/021,243, filed September 15, 2020, which are incorporated herein in their entirety.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF TECHNOLOGY TO WHICH THE INVENTION RELATES
[2] Это раскрытие в целом относится к области кодирования и декодирования видео, а более конкретно к ссылке и объему набора параметров в кодированном видеопотоке.[2] This disclosure relates generally to the field of video encoding and decoding, and more specifically to the reference and scope of a set of parameters in an encoded video stream.
УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION
[3] Кодирование и декодирование видео с использованием межкадрового предсказания с компенсацией движения известно уже несколько десятилетий. Несжатое цифровое видео может состоять из серии изображений, причем каждое изображение имеет пространственный размер, например, 1920×1080 отсчетов яркости и связанных отсчетов цветности. Серия изображений может иметь фиксированную или переменную частоту изображений (неофициально также известную как частота кадров), например, 60 изображений в секунду или 60 Гц. Несжатое видео имеет значительные требования к битрейту. Например, для видео 1080р60 4:2:0 с частотой 8 бит на отсчет (разрешение отсчета яркости 1920×1080 при частоте кадров 60 Гц) требуется полоса пропускания, близкая к 1,5 Гбит/с. Час такого видео требует более 600 ГБ дискового пространства.[3] Video encoding and decoding using motion-compensated inter-picture prediction has been known for decades. Uncompressed digital video may consist of a series of images, each image having a spatial size of, for example, 1920×1080 luma samples and associated chrominance samples. A series of images can have a fixed or variable image rate (informally also known as frame rate), such as 60 images per second or 60 Hz. Uncompressed video has significant bitrate requirements. For example, 1080p60 4:2:0 video at 8 bits per sample (1920x1080 brightness sample resolution at 60Hz frame rate) requires bandwidth close to 1.5Gbps. An hour of such video requires more than 600 GB of disk space.
[4] Одной из целей кодирования и декодирования видео может быть уменьшение избыточности входного видеосигнала посредством сжатия. Сжатие может помочь снизить вышеупомянутые требования к полосе пропускания или пространству для хранения, в некоторых случаях на два порядка или более. Могут использоваться как сжатие без потерь, так и сжатие с потерями, а также их комбинация. Сжатие без потерь относится к методам, при которых из сжатого исходного сигнала может быть восстановлена точная копия исходного сигнала. При использовании сжатия с потерями восстановленный сигнал может не быть идентичным исходному сигналу, но искажение между исходным и восстановленным сигналами достаточно мало, чтобы сделать восстановленный сигнал пригодным для предполагаемого приложения. В случае видео широко применяется сжатие с потерями. Допустимая степень искажения зависит от приложения; например, для пользователей определенных потребительских приложений потоковой передачи допустимы более высокие искажения, чем для пользователей приложений вещательного телевидения. Достижимая степень сжатия может отражать следующее: более высокое разрешаемое/допустимое искажение может привести к более высокой степени сжатия.[4] One of the goals of video encoding and decoding may be to reduce the redundancy of the input video signal through compression. Compression can help reduce the aforementioned bandwidth or storage requirements, in some cases by two orders of magnitude or more. Both lossless and lossy compression, as well as a combination of both, can be used. Lossless compression refers to methods in which an exact copy of the original signal can be restored from a compressed source signal. When lossy compression is used, the reconstructed signal may not be identical to the original signal, but the distortion between the original and reconstructed signals is small enough to make the reconstructed signal suitable for the intended application. In the case of video, lossy compression is widely used. The amount of distortion allowed depends on the application; for example, users of certain consumer streaming applications can tolerate higher distortion than users of broadcast television applications. The achievable compression ratio may reflect the following: higher distortion resolution/tolerance may result in a higher compression ratio.
[5] Видеокодер и видеодекодер могут использовать методы из нескольких широких категорий, включая, например, компенсацию движения, преобразование, квантование и энтропийное кодирование, некоторые из которых будут представлены ниже.[5] The video encoder and video decoder may use techniques from several broad categories including, for example, motion compensation, transformation, quantization, and entropy coding, some of which will be presented below.
[6] Исторически видеокодеры и видеодекодеры имели тенденцию работать с заданным размером изображения, который в большинстве случаев был определен и оставался постоянным для кодированной видеопоследовательности (CVS), группы изображений (GOP) или аналогичного временного кадра с несколькими изображениями. Например, в MPEG-2 известно, что конструкция системы изменяет горизонтальное разрешение (и, следовательно, размер изображения) в зависимости от таких факторов, как активность сцены, но только для I-изображений, следовательно, обычно для GOP. Передискретизация опорных изображений для использования различных разрешений в CVS известна, например, из Рекомендаций МСЭ-Т Н.263, Приложение Р. Однако здесь размер изображения не изменяется, только опорные изображения подвергаются передискретизации, в результате чего потенциально могут использоваться только части холста изображения (в случае понижающей дискретизации) или захватываться только части сцены (в случае повышающей дискретизации). Кроме того, Приложение Q Н.263 разрешает передискретизацию отдельного макроблока с коэффициентом два (в каждом измерении), в сторону повышения или понижения. Опять же размер изображения остается прежним. Размер макроблока фиксирован в Н.263, и поэтому его не нужно передавать.[6] Historically, video encoders and video decoders tended to work with a given picture size, which in most cases was defined and held constant for a coded video sequence (CVS), group of pictures (GOP), or similar multi-picture time frame. For example, in MPEG-2, the system design is known to change the horizontal resolution (and hence the image size) depending on factors such as scene activity, but only for I-pictures, hence typically for GOP. The resampling of reference pictures to use different resolutions in CVS is known, for example, from ITU-T Rec. H.263, Annex P. However, here the image size is not changed, only the reference pictures are resampled, with the result that only parts of the image canvas can potentially be used (in in the case of downsampling) or capture only parts of the scene (in the case of upsampling). In addition, H.263 Annex Q allows resampling of an individual macroblock by a factor of two (in each dimension), up or down. Again, the image size remains the same. The macroblock size is fixed in H.263 and therefore does not need to be transmitted.
[7] Изменение размера изображения в предсказанных изображениях стало более распространенным явлением в современном кодировании видео. Например, VP9 позволяет выполнять передискретизацию опорного изображения и изменять разрешение для всего изображения. Аналогичным образом, некоторые предложения, сделанные в отношении VVC (включая, например, Hendry, et. al., «On adaptive resolution change (ARC) for VVC», документ JVT JVET-M0135-v1, 9-19 января 2019 г., полностью включенный в настоящий документ) позволяют выполнять передискретизацию целых опорных изображений с другим - более высоким или более низким - разрешением. В этом документе предлагается кодировать различные кандидаты разрешения в наборе параметров последовательности и ссылаться на них с помощью элементов синтаксиса для каждого изображения в наборе параметров изображения.[7] Image resizing in predicted images has become more common in modern video coding. For example, VP9 allows you to resample the reference image and change the resolution for the entire image. Similarly, some of the proposals made in relation to VVC (including, for example, Hendry, et. al., "On adaptive resolution change (ARC) for VVC", JVT document JVET-M0135-v1, January 9-19, 2019, incorporated herein in its entirety) allow resampling of entire reference pictures with a different, higher or lower resolution. This document proposes to encode different resolution candidates in a sequence parameter set and refer to them using the syntax elements for each image in the image parameter set.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯDISCLOSURE OF THE INVENTION
[8] Варианты осуществления изобретения относятся к способу, системе и машиночитаемому носителю для сигнализации наборов выходных слоев в кодированных видеоданных. Согласно одному аспекту предоставляется способ сигнализации наборов выходных слоев в кодированных видеоданных. Способ может включать в себя прием видеоданных, имеющих множество слоев. Идентифицируются один или более элементов синтаксиса. Элементы синтаксиса задают один или более наборов выходных слоев, соответствующих выходным слоям, из множества слоев принятых видеоданных. Один или более выходных слоев, соответствующих заданным наборам выходных слоев, декодируются и отображаются.[8] Embodiments of the invention relate to a method, system, and computer-readable medium for signaling output layer sets in encoded video data. According to one aspect, a method is provided for signaling output layer sets in encoded video data. The method may include receiving video data having multiple layers. One or more syntax elements are identified. The syntax elements define one or more sets of output layers corresponding to output layers from a plurality of layers of received video data. One or more output layers corresponding to the given sets of output layers are decoded and displayed.
[9] Согласно другому аспекту предоставляется компьютерная система для сигнализации наборов выходных слоев в кодированных видеоданных. Компьютерная система может включать в себя один или более процессоров, один или более машиночитаемых элементов памяти, одно или более машиночитаемых материальных запоминающих устройств и программные инструкции, хранящиеся по меньшей мере на одном из одного или более запоминающих устройств для исполнения по меньшей мере одним из одного или более процессоров через по меньшей мере один из одного или более элементов памяти, посредством чего компьютерная система способна осуществлять способ. Способ может включать в себя прием видеоданных, имеющих множество слоев. Идентифицируются один или более элементов синтаксиса. Элементы синтаксиса задают один или более наборов выходных слоев, соответствующих выходным слоям, из множества слоев принятых видеоданных. Один или более выходных слоев, соответствующих заданным наборам выходных слоев, декодируются и отображаются.[9] According to another aspect, a computer system is provided for signaling output layer sets in encoded video data. A computer system may include one or more processors, one or more computer-readable storage elements, one or more computer-readable tangible storage devices, and program instructions stored on at least one of one or more storage devices for execution by at least one of one or more more processors through at least one of the one or more memory elements, whereby the computer system is capable of performing the method. The method may include receiving video data having multiple layers. One or more syntax elements are identified. The syntax elements define one or more sets of output layers corresponding to output layers from a plurality of layers of received video data. One or more output layers corresponding to the specified output layer sets are decoded and displayed.
[10] Согласно еще одному аспекту предоставляется машиночитаемый носитель для сигнализации наборов выходных слоев в кодированных видеоданных. Машиночитаемый носитель может включать в себя одно или более машиночитаемых запоминающих устройств и программных инструкций, хранящихся по меньшей мере на одном из одного или более материальных запоминающих устройств, причем программные инструкции исполняются процессором. Программные инструкции исполняются процессором для выполнения способа, который, соответственно, может включать в себя прием видеоданных, имеющих множество слоев. Идентифицируются один или более элементов синтаксиса. Элементы синтаксиса задают один или более наборов выходных слоев, соответствующих выходным слоям, из множества слоев принятых видеоданных. Один или более выходных слоев, соответствующих заданным наборам выходных слоев, декодируются и отображаются.[10] According to another aspect, a computer-readable medium is provided for signaling sets of output layers in encoded video data. The computer-readable medium may include one or more computer-readable memories and program instructions stored on at least one of the one or more tangible storage devices, the program instructions being executed by a processor. The software instructions are executed by the processor to perform the method, which accordingly may include receiving video data having a plurality of layers. One or more syntax elements are identified. The syntax elements define one or more sets of output layers corresponding to output layers from a plurality of layers of received video data. One or more output layers corresponding to the given sets of output layers are decoded and displayed.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
[11] Эти и другие задачи, признаки и преимущества станут очевидными из следующего ниже подробного описания иллюстративных вариантов осуществления, которое следует читать вместе с прилагаемыми чертежами. Различные элементы чертежей показаны не в масштабе, поскольку иллюстрации приведены для ясности и упрощения понимания специалистом в данной области техники вместе с подробным описанием. [11] These and other objects, features and advantages will become apparent from the following detailed description of illustrative embodiments, which should be read in conjunction with the accompanying drawings. Various elements of the drawings are not shown to scale, as the illustrations are provided for clarity and ease of understanding by a person skilled in the art, together with a detailed description.
На чертежах:On the drawings:
- фиг. 1 - схематическая иллюстрация упрощенной блок-схемы системы связи в соответствии с вариантом осуществления;- fig. 1 is a schematic illustration of a simplified block diagram of a communication system in accordance with an embodiment;
- фиг. 2 - схематическая иллюстрация упрощенной блок-схемы системы связи в соответствии с вариантом осуществления;- fig. 2 is a schematic illustration of a simplified block diagram of a communication system in accordance with an embodiment;
- фиг. 3 - схематическая иллюстрация упрощенной блок-схемы декодера в соответствии с вариантом осуществления;- fig. 3 is a schematic illustration of a simplified block diagram of a decoder according to an embodiment;
- фиг. 4 - схематическая иллюстрация упрощенной блок-схемы кодера в соответствии с вариантом осуществления;- fig. 4 is a schematic illustration of a simplified block diagram of an encoder according to an embodiment;
- фиг. 5 - схематическая иллюстрация вариантов сигнализации параметров ARC в соответствии с вариантом осуществления;- fig. 5 is a schematic illustration of embodiments of ARC parameter signaling in accordance with an embodiment;
- фиг. 6 - пример таблицы синтаксиса в соответствии с вариантом осуществления;- fig. 6 is an example of a syntax table according to an embodiment;
- фиг. 7 - схематическая иллюстрация компьютерной системы в соответствии с вариантом осуществления;- fig. 7 is a schematic illustration of a computer system in accordance with an embodiment;
- фиг. 8 - пример структуры предсказания для масштабируемости с адаптивным изменением разрешения;- fig. 8 shows an example of a prediction structure for adaptive resolution scalability;
- фиг. 9 - пример таблицы синтаксиса в соответствии с вариантом осуществления;- fig. 9 is an example of a syntax table according to an embodiment;
- фиг. 10 - схематическая иллюстрация упрощенной блок-схемы парсинга и декодирования цикла рос для каждой единицы доступа и значения счетчика единиц доступа;- fig. 10 is a schematic illustration of a simplified flowchart of parsing and decoding a decrement loop for each access unit and the value of the access unit counter;
- фиг. 11 - схематическая иллюстрация структуры битового потока видео, содержащей многослойные субизображения;- fig. 11 is a schematic illustration of a video bitstream structure containing layered sub-images;
- фиг. 12 - схематическая иллюстрация отображения выбранного субизображения с улучшенным разрешением;- fig. 12 is a schematic illustration of an enhanced resolution display of a selected sub-image;
- фиг. 13 - блок-схема процесса декодирования и отображения битового потока видео, содержащего многослойные субизображения;- fig. 13 is a flowchart of a process for decoding and displaying a video bitstream containing multilayer sub-images;
- фиг. 14 - схематическая иллюстрация отображения видео 360° со слоем улучшения суб-изображения;- fig. 14 is a schematic illustration of a 360° video display with a sub-image enhancement layer;
- фиг. 15 - пример информации о макете субизображений и его соответствующего слоя и структуры предсказания изображения;- fig. 15 is an example of sub-image layout information and its corresponding layer and image prediction structure;
- фиг. 16 - пример информации о макете субизображений и его соответствующего слоя и структуры предсказания изображения с модальностью пространственной масштабируемости локальной области;- fig. 16 shows an example of sub-image layout information and its corresponding layer and image prediction structure with local area spatial scalability modality;
- фиг. 17 - пример таблицы синтаксиса для информации макета субизображения;- fig. 17 is an example of a syntax table for sub-image layout information;
- фиг. 18 - пример таблицы синтаксиса сообщения SEI для информации макета субизображения;- fig. 18 is an example of an SEI message syntax table for sub-image layout information;
- фиг. 19 - пример таблицы синтаксиса для указания выходных слоев и информации профиля/яруса/уровня для каждого набора выходных слоев;- fig. 19 is an example of a syntax table for specifying output layers and profile/tier/level information for each set of output layers;
- фиг. 20 - пример таблицы синтаксиса для указания режима выходного слоя на каждом наборе выходных слоев; и- fig. 20 is an example of a syntax table for specifying an output layer mode on each set of output layers; And
- фиг. 21 - пример таблицы синтаксиса для указания текущего субизображения каждого слоя для каждого набора выходных слоев.- fig. 21 is an example of a syntax table for specifying the current subimage of each layer for each set of output layers.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯIMPLEMENTATION OF THE INVENTION
[12] Подробные варианты осуществления заявленных структур и способов раскрыты в данном описании; однако можно понять, что раскрытые варианты осуществления являются лишь иллюстрацией заявленных структур и способов, которые могут быть воплощены в различных формах. Однако эти структуры и способы могут быть воплощены во многих различных формах, и их не следует рассматривать как ограниченные примерными вариантами осуществления, изложенными в данном документе. Скорее, данные примерные варианты осуществления представлены для того, чтобы данное описание было исчерпывающим и полным и полностью передавало объем правовой охраны для специалистов в данной области техники. В описании детали хорошо известных функций и методов могут быть опущены, чтобы избежать ненужного затруднения понимания представленных вариантов осуществления.[12] Detailed embodiments of the claimed structures and methods are disclosed in this description; however, it can be understood that the disclosed embodiments are merely illustrative of the claimed structures and methods, which may be embodied in various forms. However, these structures and methods can be embodied in many different forms and should not be construed as being limited to the exemplary embodiments set forth herein. Rather, these exemplary embodiments are provided so that this description is complete and complete and fully conveys the scope of legal protection for those skilled in the art. In the description, details of well-known functions and methods may be omitted in order to avoid unnecessarily obscuring the understanding of the presented embodiments.
[13] Варианты осуществления в целом относятся к области обработки данных и, в частности, к обработке мультимедиа. Описанные ниже примерные варианты осуществления раскрывают систему, способ и компьютерную программу, чтобы, среди прочего, обеспечивать сигнализацию наборов выходных слоев кодированных видеоданных. Следовательно, некоторые варианты осуществления могут улучшить область вычислений за счет улучшенного кодирования и декодирования видео.[13] Embodiments generally relate to the field of data processing and, in particular, to the processing of multimedia. The exemplary embodiments described below disclose a system, method, and computer program to, among other things, signal coded video data output layer sets. Therefore, some embodiments may improve the computational domain through improved video encoding and decoding.
[14] Как описано ранее, видеокодеры и видеодекодеры имели тенденцию работать с заданным размером изображения, который в большинстве случаев был определен и оставался постоянным для кодированной видеопоследовательности (CVS), группы изображений (GOP) или аналогичного временного кадра с множеством изображений. Например, в MPEG-2 известно, что конструкция системы изменяет горизонтальное разрешение (и, следовательно, размер изображения) в зависимости от таких факторов, как активность сцены, но только для I-изображений, следовательно, обычно для GOP. Передискретизация опорных изображений для использования различных разрешений в CVS известна, например, из Рекомендаций МСЭ-Т Н.263, Приложение Р. Однако здесь размер изображения не изменяется, только опорные изображения подвергаются передискретизации, в результате чего потенциально могут использоваться только части холста изображения (в случае понижающей дискретизации) или захватываться только части сцены (в случае повышающей дискретизации). Кроме того, Приложение Q Н.263 разрешает передискретизацию отдельного макроблока с коэффициентом два (в каждом измерении), в сторону повшения или понижения. Опять же размер изображения остается прежним. Размер макроблока фиксирован в Н.263, и поэтому его не нужно сигнализировать.[14] As previously described, video encoders and video decoders tended to work with a given picture size, which in most cases was defined and held constant for a coded video sequence (CVS), group of pictures (GOP), or similar multi-picture time frame. For example, in MPEG-2, the system design is known to change the horizontal resolution (and hence the image size) depending on factors such as scene activity, but only for I-pictures, hence typically for GOP. The resampling of reference pictures to use different resolutions in CVS is known, for example, from ITU-T Rec. H.263, Annex P. However, here the image size is not changed, only the reference pictures are resampled, with the result that only parts of the image canvas can potentially be used (in in the case of downsampling) or capture only parts of the scene (in the case of upsampling). In addition, H.263 Annex Q allows resampling of an individual macroblock by a factor of two (in each dimension), up or down. Again, the image size remains the same. The macroblock size is fixed in H.263 and therefore does not need to be signaled.
[15] Однако в контексте, например, кодирования 360 или определенных приложений наблюдения, множество семантически независимых исходных изображений (например, поверхность шести кубов проектируемой кубом сцены 360 или входы отдельных камер в случае установки наблюдения с множеством камер) могут потребоваться отдельные настройки адаптивного разрешения, чтобы справиться с различной активностью каждой сцены в данный момент времени. Другими словами, кодеры в данный момент времени могут выбирать использование разных коэффициентов передискретизации для разных семантически независимых изображений, составляющих всю 360-градусную сцену или сцену наблюдения. При объединении в одно изображение, в свою очередь, возникает необходимость в выполнении передискредизации опорного изображения и доступности сигнализации кодирования с адаптивным разрешением для частей кодированного изображения. Следовательно, может быть предпочтительно использовать доступные данные сигнализации кодирования с адаптивным разрешением для лучшей сигнализации, кодирования, декодирования и отображения слоев видео.[15] However, in the context of e.g. 360 encoding or certain surveillance applications, multiple semantically independent source images (e.g., the surface of six cubes of a cube-projected scene 360, or individual camera inputs in the case of a multi-camera surveillance setup) may require separate adaptive resolution settings, to handle the different activity of each scene at a given time. In other words, encoders at a given point in time may choose to use different resampling factors for different semantically independent pictures that make up the entire 360-degree or observation scene. When merged into a single picture, in turn, there is a need to perform resampling of the reference picture and to have adaptive resolution coding signaling available for portions of the encoded picture. Therefore, it may be preferable to use the available adaptive resolution coding signaling data for better signaling, coding, decoding, and display of video layers.
[16] На фиг. 1 проиллюстрирована упрощенная блок-схема системы (100) связи согласно варианту осуществления настоящего раскрытия. Система (100) может включать в себя по меньшей мере два терминала (110-120), соединенных между собой через сеть (150). Для однонаправленной передачи данных первый терминал (110) может кодировать видеоданные в локальном местоположении для передачи другому терминалу (120) через сеть (150). Второй терминал (120) может принимать кодированные видеоданные другого терминала из сети (150), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может быть обычным явлением в приложениях обслуживания мультимедиа и т.п.[16] FIG. 1 illustrates a simplified block diagram of a communication system (100) according to an embodiment of the present disclosure. System (100) may include at least two terminals (110-120) interconnected via network (150). For unidirectional data transmission, the first terminal (110) may encode video data at the local location for transmission to another terminal (120) via the network (150). The second terminal (120) may receive the encoded video data of another terminal from the network (150), decode the encoded data, and display the recovered video data. Unidirectional data transfer may be common in media serving applications and the like.
[17] На фиг. 1 показана вторая пара терминалов (130, 140), обеспечивающая поддержку двунаправленной передачи кодированного видео, которая может происходить, например, во время видеоконференц-связи. Для двунаправленной передачи данных каждый терминал (130, 140) может кодировать видеоданные, захваченные в локальном местоположении, для передачи другому терминалу через сеть (150). Каждый терминал (130, 140) также может принимать кодированные видеоданные, переданные другим терминалом, может декодировать кодированные данные и может отображать восстановленные видеоданные на локальном устройстве отображения.[17] FIG. 1 shows a second pair of terminals (130, 140) providing support for bidirectional encoded video transmission, such as may occur during a video conference. For bi-directional data transmission, each terminal (130, 140) may encode video data captured at a local location for transmission to another terminal over a network (150). Each terminal (130, 140) may also receive the encoded video data transmitted by the other terminal, may decode the encoded data, and may display the recovered video data on a local display device.
[18] На фиг. 1 терминалы (110-140) могут быть изображены как серверы, персональные компьютеры и смартфоны, но принципы настоящего раскрытия не могут быть ограничены этим. Варианты осуществления настоящего изобретения находят применение в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференц-связи. Сеть (150) представляет собой любое количество сетей, которые передают кодированные видеоданные между терминалами (110-140), включая, например, сети проводной и/или беспроводной связи. Сеть (150) связи может обмениваться данными в каналах с коммутацией каналов и/или с коммутацией пакетов. Репрезентативные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего обсуждения архитектура и топология сети (150) могут быть несущественными для работы настоящего раскрытия, если это не объясняется в данном документе ниже.[18] FIG. 1, terminals (110-140) may be depicted as servers, personal computers, and smartphones, but the principles of the present disclosure cannot be limited to this. Embodiments of the present invention find application in laptop computers, tablet computers, media players and/or specialized video conferencing equipment. Network (150) is any number of networks that transmit encoded video data between terminals (110-140), including, for example, wired and/or wireless networks. The communication network (150) may communicate on circuit-switched and/or packet-switched channels. Representative networks include telecommunications networks, local area networks, wide area networks and/or the Internet. For the purposes of this discussion, the architecture and topology of the network (150) may not be essential to the operation of this disclosure, unless explained herein below.
[19] На фиг. 2 проиллюстрировано, в качестве примера применения для раскрытого объекта изобретения, размещение видеокодера и видеодекодера в потоковой среде. Раскрытый объект изобретения может быть в равной степени применим к другим приложениям с поддержкой видео, включая, например, видеоконференц-связь, цифровое телевидение, хранение сжатого видео на цифровых носителях, включая CD, DVD, карту памяти и т.п., и так далее.[19] FIG. 2 illustrates, as an example of application for the disclosed subject matter, the placement of a video encoder and a video decoder in a streaming environment. The disclosed subject matter may be equally applicable to other video-enabled applications including, for example, videoconferencing, digital television, storage of compressed video on digital media including CD, DVD, memory card, etc., and so on. .
[20] Система потоковой передачи может включать в себя подсистему (213) захвата, которая может включать в себя источник (201) видео, например цифровую камеру, создающую, например, поток (202) отсчетов несжатого видео. Данный поток (202) отсчетов, изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными битовыми видеопотоками, может быть обработан кодером (203), подключенным к камере (201). Кодер (203) может включать в себя аппаратное обеспечение, программное обеспечение или их комбинацию для включения или реализации аспектов раскрытого объекта изобретения, как более подробно описано ниже. Кодированный битовый поток (204) видео, изображенный тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком отсчетов, может храниться на сервере (205) потоковой передачи для будущего использования. Один или более клиентов (206, 208) потоковой передачи могут получить доступ к серверу (205) потоковой передачи для извлечения копий (207, 209) кодированного битового видеопотока (204). Клиент (206) может включать в себя видеодекодер (210), который декодирует входящую копию кодированного битового видеопотока (207) и создает исходящий поток (211) отсчетов видео, который может отображаться на дисплее (212) или другом устройстве визуализации (не изображено). В некоторых системах потоковой передачи битовые потоки (204, 207, 209) видео могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видео. Примеры этих стандартов включают Рекомендацию МСЭ-Т Н.265. В стадии разработки находится стандарт кодирования видео, неофициально известный как универсальное кодирование видео или VVC. Раскрытый объект может использоваться в контексте VVC.[20] The streaming system may include a capture subsystem (213), which may include a video source (201), such as a digital camera, producing, for example, a stream (202) of uncompressed video samples. This stream (202) of samples, depicted with a thick line to emphasize the large amount of data compared to encoded video bitstreams, can be processed by an encoder (203) connected to a camera (201). The encoder (203) may include hardware, software, or a combination thereof to enable or implement aspects of the disclosed subject matter, as described in more detail below. The encoded video bitstream (204), drawn with a thin line to emphasize the smaller amount of data compared to the sample stream, may be stored on the streaming server (205) for future use. One or more streaming clients (206, 208) can access the streaming server (205) to extract copies (207, 209) of the encoded video bitstream (204). The client (206) may include a video decoder (210) that decodes an incoming copy of the encoded video bitstream (207) and produces an outgoing stream (211) of video samples that can be displayed on a display (212) or other visualization device (not shown). In some streaming systems, the video bitstreams (204, 207, 209) may be encoded according to certain video coding/compression standards. Examples of these standards include ITU-T Rec. H.265. A video coding standard is under development, informally known as Universal Video Coding or VVC. The expanded object can be used in a VVC context.
[21] Фиг. 3 может быть функциональной блок-схемой видеодекодера (210) согласно одному или более вариантам осуществления.[21] FIG. 3 may be a functional block diagram of a video decoder (210) according to one or more embodiments.
[22] Приемник (310) может принимать одну или более кодированных видеопоследовательностей, которые должны быть декодированы декодером (210); в том же или другом варианте осуществления - по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может быть принята из канала (312), который может быть аппаратным/программным соединением с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или потоками вспомогательных данных, которые могут быть отправлены их соответствующим использующим объектам (не изображены). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с дрожанием в сети между приемником (310) и энтропийным декодером/парсером (320) (далее «парсер») может быть подключена буферная память (315). Когда приемник (310) принимает данные от устройства хранения/пересылки с достаточной полосой пропускания и управляемостью или из изосинхронной сети, буферная память (315) может не понадобиться или может быть небольшой. Для использования в пакетных сетях наилучшего качества, таких как Интернет, может потребоваться буфер (315), который может быть сравнительно большим и может быть предпочтительно адаптивного размера.[22] The receiver (310) may receive one or more encoded video sequences to be decoded by the decoder (210); in the same or another embodiment, one coded video sequence at a time, where the decoding of each coded video sequence is independent of other coded video sequences. An encoded video sequence may be received from a channel (312), which may be a hardware/software connection to a storage device that stores the encoded video data. The receiver (310) may receive encoded video data with other data, such as encoded audio data and/or ancillary data streams, which may be sent to their respective using entities (not shown). The receiver (310) may separate the encoded video sequence from other data. To combat network jitter, a buffer memory (315) can be connected between the receiver (310) and the entropy decoder/parser (320) (hereinafter "parser"). When the receiver (310) receives data from a storage/transfer device with sufficient bandwidth and controllability, or from an isosynchronous network, buffer memory (315) may not be needed or may be small. For use in best quality packet networks such as the Internet, a buffer (315) may be required, which may be relatively large and may preferably be of an adaptive size.
[23] Видеодекодер (210) может включать в себя парсер (320) для восстановления символов (321) из энтропийно кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой декодера (210), и потенциально информацию для управления устройством визуализации, таким как дисплей (212), который не является неотъемлемой частью декодера, но может быть подключен к нему, как это было показано на фиг. 2. Управляющая информация для устройства (устройств) визуализации может быть в форме дополнительной информации улучшения (сообщения SEI) или фрагментов набора параметров информации о пригодности видео (VUI) (не изображены). Парсер (320) может выполнять парсинг/энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом кодирования видео и может следовать принципам, хорошо известным специалистам в уровне техники, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с контекстной чувствительностью или без нее и так далее. Парсер (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Субгруппы могут включать в себя группы изображений (GOP), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU), блоки, единицы преобразования (TU), единицы предсказания (PU) и так далее. Энтропийный декодер/парсер также может извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя, векторы движения и так далее.[23] The video decoder (210) may include a parser (320) for recovering the symbols (321) from the entropy coded video sequence. The categories of these symbols include information used to control the operation of the decoder (210) and potentially information to control a visualization device such as a display (212) that is not an integral part of the decoder but can be connected to it as shown. in fig. 2. The control information for the rendering device(s) may be in the form of additional enhancement information (SEI messages) or video usability information (VUI) parameter set fragments (not shown). The parser (320) may parse/entropy decode the received encoded video sequence. Encoding of the encoded video sequence may be in accordance with a video coding technology or standard, and may follow principles well known to those skilled in the art, including variable length coding, Huffman coding, arithmetic coding with or without context sensitivity, and so on. The parser (320) may extract from the encoded video sequence a set of subgroup parameters for at least one of the subgroups of pixels in the video decoder based on at least one parameter corresponding to the group. Subgroups may include groups of pictures (GOPs), pictures, tiles, slices, macroblocks, coding units (CUs), blocks, transform units (TUs), prediction units (PUs), and so on. The entropy decoder/parser may also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, and so on.
[24] Парсер (320) может выполнять операцию энтропийного декодирования/парсинга видеопоследовательности, принятой из буфера (315), чтобы создавать символы (321).[24] The parser (320) may perform an entropy decoding/parsing operation of the video sequence received from the buffer (315) to create symbols (321).
[25] Восстановление символов (321) может включать в себя множество различных модулей в зависимости от типа кодированного видеоизображения или его частей (таких как: внешнее и внутреннее изображение, внешний и внутренний блок) и других факторов. Какие модули задействованы и как, можно контролировать с помощью управляющей информации подгруппы, парсинг которой был выполнен из кодированной видеопоследовательности с помощью парсера (320). Поток такой управляющей информации подгруппы между парсером (320) и множеством модулей ниже не показан для ясности.[25] Symbol recovery (321) may include many different modules depending on the type of encoded video image or parts thereof (such as: external and internal image, external and internal block) and other factors. Which modules are involved and how can be controlled by the subgroup control information parsed from the encoded video sequence by the parser (320). The flow of such subgroup control information between the parser (320) and the plurality of modules is not shown below for clarity.
[26] Помимо уже упомянутых функциональных блоков, декодер 210 может быть концептуально подразделен на ряд функциональных модулей, как описано ниже. В практическом осуществлении, работающем в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут быть, по меньшей мере частично, интегрированы друг в друга. Однако для целей описания раскрытого объекта изобретения уместно концептуальное подразделение на функциональные модули, приведенные ниже.[26] In addition to the functional blocks already mentioned, the
[27] Первым модулем является модуль (351) масштабирования/обратного преобразования. Модуль (351) масштабирования/обратного преобразования принимает квантованный коэффициент преобразования, а также управляющую информацию, включая то, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и так далее, в виде символа(ов) (321) от парсера (320). Он может выводить блоки, содержащие значения отсчетов, которые могут быть введены в агрегатор (355).[27] The first module is the scaling/inverse transform module (351). The scaling/inverse transform module (351) receives the quantized transform coefficient, as well as control information, including which transform to use, block size, quantization factor, quantization scaling matrices, and so on, in the form of symbol(s) (321) from the parser ( 320). It can output blocks containing sample values that can be entered into the aggregator (355).
[28] В некоторых случаях выходные отсчеты модуля (351) масштабирования/обратного преобразования могут относиться к блоку с интракодированием; то есть к блоку, который не использует информацию предсказания из ранее восстановленных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена модулем (352) внутрикадрового предсказания. В некоторых случаях модуль (352) внутрикадрового предсказания генерирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из текущего (частично восстановленного) изображения (356). Агрегатор (355), в некоторых случаях, добавляет для каждого отсчета информацию предсказания, сгенерированную модулем (352) интрапредсказания, к информации выходных отсчетов, предоставляемой модулем (351) масштабирования/обратного преобразования.[28] In some cases, the output samples of the scaling/inverse transform module (351) may refer to an intra-coded block; that is, to a block that does not use prediction information from previously restored images, but can use prediction information from previously restored portions of the current image. Such prediction information may be provided by the intra prediction module (352). In some cases, the intra-prediction module (352) generates a block of the same size and shape as the reconstructed block using the already reconstructed surrounding information extracted from the current (partially reconstructed) image (356). The aggregator (355), in some cases, adds for each sample the prediction information generated by the intra-prediction module (352) to the output sample information provided by the scaling/inverse transform module (351).
[29] В других случаях выходные отсчеты модуля (351) масштабирования/обратного преобразования могут относиться к блоку с интеркодированием и потенциально с компенсацией движения. В таком случае модуль (353) предсказания с компенсацией движения может обращаться к памяти (357) опорных изображений, чтобы извлекать отсчеты, используемые для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (321), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (355) к выходу модуля масштабирования/обратного преобразования (в данном случае называемые остаточными отсчетами или остаточным сигналом), чтобы генерировать информацию о выходных отсчетах. Адреса в памяти опорных изображений, откуда модуль предсказания с компенсацией движения выбирает отсчеты предсказания, могут управляться векторами движения, доступными модулю предсказания с компенсацией движения в форме символов (321), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения суботсчетов, механизмы предсказания вектора движения и так далее.[29] In other cases, the output samples of the scaling/inverse transform module (351) may refer to a block with intercoding and potentially with motion compensation. In such a case, the motion compensation prediction module (353) may access the reference picture memory (357) to retrieve samples used for prediction. After compensating for the movement of the selected samples according to the symbols (321) associated with the block, these samples can be added by the aggregator (355) to the output of the scaler/demap module (in this case called residual samples or residual signal) to generate output information. readings. Reference picture memory addresses from where the motion compensation prediction module selects prediction samples may be driven by motion vectors available to the motion compensation prediction module in the form of symbols (321), which may have X, Y and reference picture components, for example. Motion compensation may also include interpolation of sample values retrieved from reference picture memory when accurate sub-sample motion vectors are used, motion vector prediction mechanisms, and so on.
[30] Выходные отсчеты агрегатора (355) могут подвергаться различным методам петлевой фильтрации в модуле (356) петлевого фильтра. Технологии сжатия видео могут включать в себя технологии внутрипетлевой фильтрации, которые управляются параметрами, включенными в битовый поток кодированного видео и предоставляются модулю (356) петлевой фильтрации как символы (321) из парсера (320), но также могут реагировать на метаинформацию, полученную во время декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее восстановленные и отфильтрованные посредством петлевой фильтрации значения отсчетов.[30] The output samples of the aggregator (355) may be subjected to various loop filtering methods in the loop filter module (356). Video compression technologies may include in-loop filtering technologies that are controlled by parameters included in the encoded video bitstream and provided to the loop filtering module (356) as symbols (321) from the parser (320), but may also respond to metainformation received during decoding the previous (in the order of decoding) parts of the encoded image or encoded video sequence, as well as responding to previously restored and filtered by loop filtering sample values.
[31] Выходной сигнал модуля (356) петлевой фильтрации может быть потоком отсчетов, который может быть выведен на устройство (212) визуализации, а также сохранен в памяти (356) опорных изображений для использования в будущем межкадровом предсказании.[31] The output of the loop filter module (356) may be a stream of samples that can be output to the renderer (212) and also stored in the reference picture memory (356) for use in future inter-picture prediction.
[32] Определенные кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для будущего предсказания. После того как кодированное изображение полностью восстановлено и кодированное изображение было идентифицировано как опорное изображение (например, парсером (320)), текущее опорное изображение (356) может статься частью буфера (357) опорных изображений, и свежая память текущих изображений может быть перераспределена перед началом восстановления следующего кодированного изображения.[32] Certain encoded pictures after full recovery can be used as reference pictures for future prediction. Once the encoded picture has been completely reconstructed and the encoded picture has been identified as a reference picture (eg, by the parser (320)), the current reference picture (356) may become part of the reference picture buffer (357), and fresh current picture memory may be reallocated before starting restoring the next encoded picture.
[33] Видеодекодер 320 может выполнять операции декодирования согласно заранее определенной технологии сжатия видео, которая может быть записана в стандарте, таком как Рекомендация МСЭ-Т Н.265. Кодированная видеопоследовательность может соответствовать синтаксису, заданному используемой технологией или стандартом сжатия видео, в том смысле, что она соответствует синтаксису технологии или стандарта сжатия видео, как указано в документе или стандарте технологии сжатия видео и, в частности, в их документе профилей. Также для соответствия может быть необходимым, чтобы сложность кодированной видеопоследовательности находилась в пределах, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту дискретизации восстановления (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и так далее. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического опорного декодера (HRD) и метаданных для управления буфером HRD, передаваемых в кодированной видеопоследовательности.[33]
[34] В варианте осуществления приемник (310) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (320) для правильного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут быть в форме, например, временных, пространственных слоев или слоев улучшения отношения сигнал/шум (SNR), избыточных слайсов, избыточных изображений, кодов прямого исправления ошибок и так далее.[34] In an embodiment, the receiver (310) may receive additional (redundant) data with encoded video. Additional data may be included as part of the encoded video sequence(s). The additional data may be used by the video decoder (320) to correctly decode the data and/or to more accurately reconstruct the original video data. The additional data may be in the form of, for example, temporal, spatial or signal-to-noise ratio (SNR) enhancement layers, redundant slices, redundant images, forward error correction codes, and so on.
[35] Фиг. 4 может быть функциональной блок-схемой видеокодера (203) согласно варианту осуществления настоящего раскрытия.[35] FIG. 4 may be a functional block diagram of a video encoder (203) according to an embodiment of the present disclosure.
[36] Кодер (203) может принимать отсчеты видео от источника (201) видео (который не является частью кодера), который может захватывать видеоизображение(я) для кодирования кодером (203).[36] The encoder (203) may receive video samples from a video source (201) (which is not part of the encoder) that may capture video image(s) for encoding by the encoder (203).
[37] Источник (201) видео может предоставлять исходную видеопоследовательность для кодирования кодером (203) в форме цифрового потока отсчетов видео, который может иметь любую подходящую битовую глубину (например: 8 бит, 10 бит, 12 бит, …), любое цветовое пространство (например, ВТ.601 Y CrCB, RGB, …) и любую подходящую структуру отсчетов (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе обслуживания мультимедиа источник (201) видео может быть запоминающим устройством, хранящим предварительно подготовленное видео. В системе видеоконференц-связи источник (203) видео может быть камерой, которая захватывает информацию о локальном изображении в виде видеопоследовательности. Видеоданные могут быть предоставлены как множество отдельных изображений, которые при последовательном просмотре передают движение. Сами изображения могут быть организованы как пространственный массив пикселей, в котором каждый пиксель может содержать один или более отсчетов в зависимости от используемой структуры отсчетов, цветового пространства и т.д. Специалист в данной области техники может легко понять взаимосвязь между пикселями и отсчетами. Описание ниже ориентировано на отсчеты.[37] The video source (201) may provide the source video sequence for encoding by the encoder (203) in the form of a digital stream of video samples, which may have any suitable bit depth (eg: 8 bit, 10 bit, 12 bit, ...), any color space (eg BT.601 Y CrCB, RGB, ...) and any suitable sample structure (eg Y CrCb 4:2:0, Y CrCb 4:4:4). In a media serving system, the video source (201) may be a storage device storing pre-prepared video. In a videoconferencing system, the video source (203) may be a camera that captures local image information as a video sequence. The video data may be provided as a plurality of individual images that, when viewed sequentially, convey motion. The images themselves can be organized as a spatial array of pixels, in which each pixel can contain one or more samples depending on the sample structure used, color space, and so on. One skilled in the art can easily understand the relationship between pixels and samples. The description below is based on readings.
[38] Согласно варианту осуществления кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с любыми другими временными ограничениями, как того требует приложение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (450). Контроллер управляет другими функциональными модулями, как описано ниже, и функционально связан с этими модулями. Связь не изображена для ясности. Параметры, устанавливаемые контроллером, могут включать в себя параметры, относящиеся к управлению скоростью (пропуск изображения, квантователь, значение лямбда методов оптимизации скорость-искажение, …), размеру изображения, макету группы изображений (GOP), максимальному диапазону поиска вектора движения и так далее. Специалист в данной области техники может легко определить другие функции контроллера (450), поскольку они могут относиться к видеокодеру (203), оптимизированному для определенной конструкции системы.[38] According to an embodiment, the encoder (203) may encode and compress images of the original video sequence into the encoded video sequence (443) in real time or with any other time constraints as required by the application. Providing an appropriate coding rate is one of the functions of the controller (450). The controller controls other functional modules, as described below, and is functionally associated with these modules. The connection is not shown for clarity. The parameters set by the controller may include parameters related to speed control (picture skip, quantizer, speed-distortion optimization methods lambda value, ...), image size, group of pictures (GOP) layout, maximum motion vector search range, and so on. . A person skilled in the art can easily determine other functions of the controller (450) as they may relate to a video encoder (203) optimized for a particular system design.
[39] Некоторые видеокодеры работают в том, что специалист в данной области легко распознает как «петля кодирования». В качестве упрощенного описания петля кодирования может состоять из кодирующей части кодера (430) (далее «кодер источника») (ответственной за создание символов на основе входного изображения, которое должно быть кодировано, и опорного изображения(й)), и (локального) декодера (433), встроенного в кодер (203), который восстанавливает символы для создания данных отсчетов, которые (удаленный) декодер также может создать (поскольку любое сжатие между символами и кодированным битовым видеопотоком не имеет потерь в технологиях сжатия видео, рассматриваемых в раскрытом объекте). Этот восстановленный поток отсчетов вводится в память (434) опорных изображений. Поскольку декодирование потока символов приводит к результатам с точностью до бита, независимо от местоположения декодера (локально или удаленно), содержимое буфера опорных изображений также является точным до бита между локальным кодером и удаленным кодером. Другими словами, часть предсказания кодера «видит» в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые декодер «видел» бы при использовании предсказания во время декодирования. Этот фундаментальный принцип синхронности опорного изображения (и результирующего дрейфа, если синхронность не может поддерживаться, например, из-за ошибок канала) хорошо известен специалисту в данной области техники.[39] Some video encoders operate in what one of ordinary skill in the art would readily recognize as a "coding loop". As a simplified description, an encoding loop may consist of an encoder coding part (430) (hereinafter "source encoder") (responsible for creating symbols based on the input picture to be encoded and the reference picture(s)), and a (local) decoder (433) built into the encoder (203) that decompresses the symbols to create sample data that the (remote) decoder can also create (because any compression between the symbols and the encoded video bitstream is lossless in the video compression technologies considered in the disclosed subject matter) . This reconstructed sample stream is entered into the reference picture memory (434). Because decoding a stream of symbols results in bit-accurate results, regardless of the location of the decoder (local or remote), the contents of the reference picture buffer are also bit-accurate between the local encoder and the remote encoder. In other words, the prediction portion of the encoder "sees" as reference picture samples exactly the same sample values that the decoder would "see" using prediction during decoding. This fundamental principle of reference picture synchronism (and the resulting drift if synchronism cannot be maintained due to, for example, channel errors) is well known to those skilled in the art.
[40] Работа «локального» декодера (433) может быть такой же, как у «удаленного» декодера (210), который уже был подробно описан выше со ссылкой на фиг. 3. Кратко ссылаясь также на фиг. 3, однако, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (445) и парсером (320) может осуществляться без потерь, части энтропийного декодирования декодера (210), включая канал (312), приемник (310), буфер (315) и парсер (320), не могут быть полностью реализованы в локальном декодере (433).[40] The operation of the "local" decoder (433) may be the same as that of the "remote" decoder (210), which has already been described in detail above with reference to FIG. 3. Briefly referring also to FIG. 3, however, since the symbols are available and encoding/decoding of the symbols into the encoded video sequence by the entropy encoder (445) and the parser (320) can be lossless, the entropy decoding parts of the decoder (210), including the channel (312), the receiver (310), buffer (315) and parser (320) cannot be fully implemented in the local decoder (433).
[41] На этом этапе можно сделать наблюдение, что любая технология декодирования, кроме парсинга/энтропийного декодирования, которая присутствует в декодере, также обязательно должна присутствовать в, по существу, идентичной функциональной форме в соответствующем кодере. По этой причине раскрытый объект изобретения фокусируется на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются инверсией полностью описанных технологий декодирования. Только в некоторых областях требуется более подробное описание, которое приводится ниже.[41] At this point, it can be observed that any decoding technology other than parsing/entropy decoding that is present in a decoder must also necessarily be present in a substantially identical functional form in the corresponding encoder. For this reason, the disclosed subject matter focuses on the operation of the decoder. The description of encoding technologies can be abbreviated as they are the inverse of fully described decoding technologies. Only in some areas a more detailed description is required, which is given below.
[42] В качестве части своей работы кодер (430) источника может выполнять кодирование с предсказанием с компенсацией движения, которое кодирует входной кадр с предсказанием со ссылкой на один или более ранее кодированных кадров из видеопоследовательности, которые были обозначены как «опорные кадры». Таким образом, механизм (432) кодирования кодирует различия между блоками пикселей входного кадра и блоками пикселей опорного кадра(ов), которые могут быть выбраны в качестве эталона(ов) предсказания для входного кадра.[42] As part of its operation, the source encoder (430) may perform motion-compensated predictive encoding that predictively encodes the input frame with reference to one or more previously encoded frames from the video sequence, which have been designated "reference frames". Thus, the coding engine (432) encodes the differences between the pixel blocks of the input frame and the pixel blocks of the reference frame(s) that can be selected as the prediction reference(s) for the input frame.
[43] Локальный видеодекодер (433) может декодировать кодированные видеоданные кадров, которые могут быть обозначены как опорные кадры, на основе символов, созданных кодером (430) источника. Операции механизма (432) кодирования могут быть предпочтительно процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг. 4), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) копирует процессы декодирования, которые могут выполняться видеодекодером на опорных кадрах, и может вызывать сохранение восстановленных опорных кадров в кэше (434) опорных изображений. Таким образом, кодер (203) может локально хранить копии восстановленных опорных кадров, которые имеют общее содержимое, в качестве восстановленных опорных кадров, которые будут получены видеодекодером на дальнем конце (при отсутствии ошибок передачи).[43] The local video decoder (433) may decode the encoded video data of the frames, which may be designated as reference frames, based on the symbols generated by the source encoder (430). The operations of the encoding engine (432) may preferably be lossy processes. When the encoded video data can be decoded in a video decoder (not shown in FIG. 4), the reconstructed video sequence can typically be a copy of the original video sequence with some errors. The local video decoder (433) replicates the decoding processes that may be performed by the video decoder on the reference frames and may cause the recovered reference frames to be stored in the reference picture cache (434). Thus, the encoder (203) can locally store copies of the reconstructed reference frames that have common content as reconstructed reference frames to be received by the far-end video decoder (in the absence of transmission errors).
[44] Предиктор (435) может выполнять поиски с предсказанием для механизма (432) кодирования. То есть, для нового изображения, которое должно быть кодировано, предиктор (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве кандидатов блоков опорных пикселей) или определенные метаданные, такие как векторы движения опорных изображений, формы блоков и так далее, которые могут служить подходящим эталоном предсказания для новых изображений. Предиктор (435) может работать на основе блока отсчетов «блок-за-пикселем», чтобы найти соответствующие эталоны предсказания. В некоторых случаях, как определено результатами поиска, полученными предиктором (435), входное изображение может иметь эталоны предсказания, взятые из множества опорных изображений, сохраненных в памяти (434) опорных изображений.[44] The predictor (435) may perform predictive searches for the encoding engine (432). That is, for a new picture to be encoded, the predictor (435) may search the reference picture memory (434) for sample data (as reference pixel block candidates) or certain metadata such as reference picture motion vectors, block shapes, and so on. further, which can serve as a suitable prediction reference for new images. The predictor (435) may operate on a block-by-pixel basis to find appropriate prediction references. In some cases, as determined by the search results obtained by the predictor (435), the input image may have prediction references taken from a plurality of reference pictures stored in the reference picture memory (434).
[45] Контроллер (450) может управлять операциями кодирования видеокодера (430), включая, например, установку параметров и параметров подгруппы, используемых для кодирования видеоданных.[45] The controller (450) may control the encoding operations of the video encoder (430), including, for example, setting parameters and subgroup parameters used to encode video data.
[46] Выходные сигналы всех вышеупомянутых функциональных модулей могут подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер переводит символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия без потерь символов согласно технологиям, известным специалистам в данной области техники, таким как, например, кодирование Хаффмана, кодирование переменной длины, арифметическое кодирование и так далее.[46] The output signals of all the above functional modules can be entropy encoded in an entropy encoder (445). The entropy encoder translates symbols generated by various functional modules into an encoded video sequence by lossless symbol compression according to techniques known to those skilled in the art, such as, for example, Huffman coding, variable length coding, arithmetic coding, and so on.
[47] Передатчик (440) может буферизовать кодированную видеопоследовательность(и), созданную энтропийным кодером (445), чтобы подготовить ее к передаче через канал (460) связи, который может быть аппаратным/программным соединением с запоминающим устройством, которое будет хранить кодированные видеоданные. Передатчик (440) может обеспечивать слияние кодированных видеоданных из видеокодера (430) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или потоками вспомогательных данных (источники не показаны).[47] The transmitter (440) may buffer the encoded video sequence(s) generated by the entropy encoder (445) to prepare it for transmission over a communication channel (460), which may be a hardware/software connection to a storage device that will store the encoded video data. . The transmitter (440) may merge the encoded video data from the video encoder (430) with other data to be transmitted, such as encoded audio data and/or ancillary data streams (sources not shown).
[48] Контроллер (450) может управлять работой кодера (203). Во время кодирования контроллер (450) может назначить каждому кодированному изображению определенный тип кодированного изображения, что может повлиять на методы кодирования, которые могут быть применены к соответствующему изображению. Например, изображения часто могут быть отнесены к одному из следующих типов кадров:[48] The controller (450) may control the operation of the encoder (203). During encoding, the controller (450) may assign to each encoded picture a certain type of encoded picture, which may affect the encoding methods that can be applied to the corresponding picture. For example, images can often be assigned to one of the following frame types:
[49] Внутреннее изображение (I-изображение) может быть таким, которое можно кодировать и декодировать без использования какого-либо другого кадра в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают различные типы внутренних изображений, включая, например, изображения с независимым обновлением декодера. Специалисту в области техники известны эти варианты I-изображений и их соответствующие применения и особенности.[49] An intra-picture (I-picture) may be one that can be encoded and decoded without using any other frame in the sequence as a prediction source. Some video codecs allow various types of internal images, including, for example, images with independent decoder update. The person skilled in the art will be aware of these variants of I-images and their respective uses and features.
[50] Изображение с предсказанием (Р-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интрапредсказания или интерпредсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.[50] A predictive picture (P-picture) may be one that can be encoded and decoded using intra-prediction or inter-prediction using at most one motion vector and a reference index to predict sample values of each block.
[51] Изображение с двунаправленным предсказанием (В-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интрапредсказания или интерпредсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Точно так же изображения с множественным предсказанием могут использовать более двух опорных изображений и связанных метаданных для восстановления одного блока.[51] A bidirectional predictive picture (B-picture) may be one that can be encoded and decoded using intra-prediction or inter-prediction using at most two motion vectors and reference indices to predict sample values of each block. Similarly, multi-prediction images may use more than two reference images and associated metadata to reconstruct a single block.
[52] Исходные изображения обычно могут быть пространственно разделены на множество блоков отсчетов (например, блоки из 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодированы на поблочной основе. Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определено назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки I-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием со ссылкой на уже кодированные блоки одного и того же изображения (пространственное предсказание или интрапредсказание). Пиксельные блоки Р-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.[52] Source images can typically be spatially divided into multiple blocks of samples (eg, blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and encoded on a block-by-block basis. The blocks may be predictively encoded with reference to other (already encoded) blocks, as determined by the coding assignment applied to the corresponding block images. For example, I-picture blocks may be predictively encoded or they may be predictively encoded with reference to already encoded blocks of the same picture (spatial prediction or intra prediction). P-picture pixel blocks may be encoded without prediction, by spatial prediction, or by temporal prediction with reference to one previously encoded reference picture. Blocks of B-pictures may be encoded without prediction, by spatial prediction, or by temporal prediction with reference to one or two previously encoded reference pictures.
[53] Видеокодер (203) может выполнять операции кодирования в соответствии с заранее определенной технологией или стандартом кодирования видео, такой как Рекомендация МСЭ-Т Н.265. В своей работе видеокодер (203) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.[53] The video encoder (203) may perform encoding operations in accordance with a predetermined video coding technology or standard, such as ITU-T Rec. H.265. In operation, the video encoder (203) may perform various compression operations, including predictive coding operations that exploit temporal and spatial redundancy in the input video sequence. The encoded video data may therefore follow the syntax given by the video coding technology or standard used.
[54] В варианте осуществления передатчик (440) может передавать дополнительные данные с кодированным видео. Видеокодер (430) может включать в себя такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные слои/слои улучшения SNR, другие формы избыточных данных, такие как избыточные изображения и слайсы, сообщения дополнительной информации улучшения (SEI), фрагменты набора параметров информации о пригодности видео (VUI) и так далее.[54] In an embodiment, transmitter (440) may transmit additional data with encoded video. Video encoder (430) may include such data as part of an encoded video sequence. The additional data may comprise temporal/spatial/SNR enhancement layers, other forms of redundant data such as redundant images and slices, enhancement supplemental information (SEI) messages, video usability information (VUI) parameter set fragments, and so on.
[55] Перед более подробным описанием определенных аспектов раскрытого объекта изобретения необходимо ввести несколько терминов, на которые будет даваться ссылка в оставшейся части этого описания.[55] Before a more detailed description of certain aspects of the disclosed subject matter, it is necessary to introduce a few terms that will be referred to in the remainder of this description.
[56] Субизображение далее относится к, в некоторых случаях, прямоугольной компоновке отсчетов, блоков, макроблоков, единиц кодирования или подобных объектов, которые семантически сгруппированы и которые могут быть независимо кодированы с измененным разрешением. Одно или более субизображений могут использоваться для изображения. Одно или более кодированных субизображений могут образовывать кодированное изображение. Одно или более субизображений могут быть собраны в изображение, и одно или более субизображений могут быть извлечены из изображения. В определенных средах одно или более кодированных субизображений могут быть собраны в сжатой области без перекодирования до уровня отсчетов в кодированное изображение, и в тех же или некоторых других случаях одно или более кодированных субизображений могут быть извлечены из кодированного изображения в сжатой области.[56] A sub-image further refers to, in some cases, a rectangular arrangement of samples, blocks, macroblocks, coding units, or the like, which are semantically grouped and which can be independently re-resolution encoded. One or more subimages may be used for an image. One or more encoded sub-images may form an encoded image. One or more sub-images may be assembled into an image, and one or more sub-images may be extracted from the image. In certain environments, one or more encoded sub-images can be collected in the compressed area without re-coding to the sample level in the encoded image, and in the same or some other cases, one or more encoded sub-images can be extracted from the encoded image in the compressed area.
[57] В дальнейшем адаптивное изменение разрешения (ARC) относится к механизмам, которые позволяют изменять разрешение изображения или субизображения в кодированной видеопоследовательности, например, посредством передискретизации опорного изображения. В дальнейшем параметры ARC относятся к управляющей информации, необходимой для выполнения адаптивного изменения разрешения, которая может включать в себя, например, параметры фильтра, коэффициенты масштабирования, разрешения выходных и/или опорных изображений, различные флаги управления и так далее.[57] Hereinafter, adaptive resolution change (ARC) refers to mechanisms that allow changing the resolution of a picture or sub-picture in a coded video sequence, for example, by resampling a reference picture. Hereinafter, ARC parameters refer to control information necessary to perform adaptive resolution change, which may include, for example, filter parameters, scaling factors, output and/or reference picture resolutions, various control flags, and so on.
[58] Приведенное выше описание сосредоточено на кодировании и декодировании одного семантически независимого кодированного видеоизображения. Перед описанием последствий кодирования/декодирования множества субизображений с независимыми параметрами ARC и их подразумеваемой дополнительной сложности должны быть описаны варианты сигнализации параметров ARC.[58] The above description focuses on the encoding and decoding of a single semantically independent encoded video image. Before describing the consequences of encoding/decoding multiple sub-images with independent ARC parameters and their implied additional complexity, signaling options for the ARC parameters must be described.
[59] На фиг. 5 показано несколько новых вариантов сигнализации параметров ARC. Как отмечено для каждого из вариантов, они имеют определенные преимущества и определенные недостатки с точки зрения эффективности кодирования, сложности и архитектуры. Стандарт или технология кодирования видео могут выбрать один или более из этих вариантов или вариантов, известных из предшествующего уровня техники, для передачи параметров ARC. Варианты могут не быть взаимоисключающими и, возможно, могут быть взаимозаменяемыми в зависимости от потребностей приложения, используемых стандартов или выбора кодера.[59] FIG. 5 shows several new options for signaling ARC parameters. As noted for each of the options, they have certain advantages and certain disadvantages in terms of coding efficiency, complexity and architecture. A video coding standard or technology may choose one or more of these or prior art options for transmitting the ARC parameters. The options may not be mutually exclusive and may possibly be interchangeable depending on the needs of the application, the standards used, or the choice of encoder.
[60] Классы параметров ARC могут включать в себя:[60] ARC parameter classes may include:
коэффициенты повышения/понижения дискретизации, отдельные или объединенные по измерениям X и Y.upsampling/downsampling factors, either individually or combined across the X and Y dimensions.
коэффициенты повышения/понижения дискретизации с добавлением временного измерения, указывающие на увеличение/уменьшение размера с постоянной скоростью для заданного количества изображений.upsampling/downsampling factors with the addition of a temporal dimension, indicating an increase/decrease in size at a constant rate for a given number of images.
Любой из двух вышеупомянутых вариантов может включать в себя кодирование одного или более предположительно коротких элементов синтаксиса, которые могут указывать на таблицу, содержащую коэффициент(ы).Either of the above two options may include encoding one or more supposedly short syntax elements that may point to a table containing the coefficient(s).
разрешение в измерении X или Y в единицах отсчетов, блоках, макроблоках, CU или с любой другой подходящей степенью детализации входного изображения, выходного изображения, опорного изображения, кодированного изображения, объединенного или по отдельности. Если существует более одного разрешения (например, одно для входного изображения, одно для опорного изображения), то в некоторых случаях один набор значений может быть выведен из другого набора значений. Это может быть передано, например, путем использования флагов. Более подробный пример см. ниже.resolution in X or Y dimension in units of samples, blocks, macroblocks, CUs, or any other suitable granularity of the input image, output image, reference image, coded image, combined or individually. If there is more than one resolution (eg, one for the input image, one for the reference image), then in some cases one set of values may be derived from another set of values. This can be communicated, for example, by using flags. See below for a more detailed example.
Координаты «деформации», подобные тем, которые используются в Приложении Р Н.263, опять же с подходящей степенью детализации, как описано выше. Приложение Р Н.263 определяет один эффективный способ кодирования таких координат деформации, но, возможно, также разрабатываются другие, потенциально более эффективные способы. Например, реверсивное кодирование Хаффмана с переменной длиной координат деформации согласно Приложению Р может быть заменено двоичным кодированием подходящей длины, где длина двоичного кодового слова может быть, например, получена из максимального размера изображения, возможно, умноженного на определенный коэффициент и смещенного на определенное значение, чтобы учесть «деформацию» за пределами границ максимального размера изображения, параметры фильтра повышающей или понижающей дискретизации. В простейшем случае может быть только один фильтр для повышающей и/или понижающей дискретизации. Однако в некоторых случаях может быть предпочтительным обеспечить большую гибкость в конструкции фильтра, и для этого может потребоваться сигнализация параметров фильтра. Такие параметры могут быть выбраны с помощью индекса в списке возможных конструкций фильтров, фильтр может быть полностью задан (например, с помощью списка коэффициентов фильтра с использованием подходящих методов энтропийного кодирования), фильтр может быть неявно выбран с помощью соответствующих соотношений повышающей/понижающей дискретизации, которые, в свою очередь, передаются в соответствии с любым из механизмов, упомянутых выше, и так далее."Warp" coordinates like those used in H.263 Annex P, again with the appropriate granularity as described above. Annex P H.263 defines one efficient way to encode such warp coordinates, but other potentially more efficient ways may also be developed. For example, the reverse Huffman encoding with variable length warp coordinates according to Annex P can be replaced by binary encoding of an appropriate length, where the length of the binary codeword can be, for example, obtained from the maximum image size, perhaps multiplied by a certain factor and shifted by a certain value, so that take into account "warping" beyond the boundaries of the maximum image size, upsampling or downsampling filter options. In the simplest case, there can be only one filter for upsampling and/or downsampling. However, in some cases it may be desirable to provide more flexibility in filter design, and this may require filter parameter signaling. Such parameters may be selected by an index into a list of possible filter designs, the filter may be fully specified (e.g., by a list of filter coefficients using suitable entropy coding techniques), the filter may be implicitly selected by appropriate upsampling/downsampling relationships that , in turn, are transmitted according to any of the mechanisms mentioned above, and so on.
[61] Ниже описание предполагает кодирование конечного набора коэффициентов повышающей/понижающей дискретизации (тот же коэффициент, который должен использоваться в измерениях X и Y), указанных с помощью кодового слова. Это кодовое слово предпочтительно может быть закодировано с переменной длиной, например, с использованием экспоненциального кода Голомба, общего для определенных элементов синтаксиса в спецификациях кодирования видео, таких как Н.264 и Н.265.[61] The following description assumes encoding a finite set of upsampling/downsampling coefficients (the same coefficient to be used in the X and Y dimensions) indicated by a codeword. This codeword may preferably be encoded with a variable length, for example using the Exponential Golomb code common to certain syntax elements in video coding specifications such as H.264 and H.265.
[62] Многие аналогичные сопоставления могут быть разработаны в соответствии с потребностями приложения и возможностями механизмов повышения и понижения дискретизации, доступных в технологии или стандарте сжатия видео. Таблица может быть расширена до большего количества значений. Значения также могут быть представлены механизмами энтропийного кодирования, отличными от Экспоненциальных кодов Голомба, например, с использованием двоичного кодирования. Это может иметь определенные преимущества, когда коэффициенты передискретизации представляли интерес за пределами самих механизмов обработки видео (прежде всего кодера и декодера), например, посредством MANE. Следует отметить, что для (предположительно) наиболее распространенного случая, когда изменение разрешения не требуется, может быть выбран Экспоненциальный код Голомба, который является коротким; в таблице выше только один бит. Это может иметь преимущество в эффективности кодирования по сравнению с использованием двоичных кодов для наиболее распространенного случая.[62] Many similar mappings can be developed according to the needs of the application and the capabilities of the upsampling and downsampling mechanisms available in the video compression technology or standard. The table can be expanded to more values. Values may also be represented by entropy encoding mechanisms other than Exponential Golomb codes, such as using binary encoding. This may have certain advantages when the oversampling factors were of interest outside of the video processing engines themselves (primarily the encoder and decoder), for example via MANE. It should be noted that for the (presumably) most common case where no resolution change is required, Exponential Golomb code, which is short, can be chosen; there is only one bit in the table above. This may have an advantage in coding efficiency over using binary codes for the most common case.
[63] Количество записей в таблице, а также их семантика могут быть полностью или частично настраиваемыми. Например, основная структура таблицы может быть передана в «высоком» наборе параметров, таком как последовательность или набор параметров декодера. В качестве альтернативы или в дополнение, одна или более таких таблиц могут быть определены в технологии или стандарте кодирования видео и могут быть выбраны, например, с помощью декодера или набора параметров последовательности.[63] The number of entries in the table, as well as their semantics, can be completely or partially customizable. For example, the basic table structure may be conveyed in a "high" parameter set, such as a sequence or a decoder parameter set. Alternatively, or in addition, one or more such tables may be defined in a video coding technology or standard and may be selected, for example, by a decoder or sequence parameter set.
[64] Далее описано, как коэффициент повышающей/понижающей дискретизации (информация ARC), кодированный, как описано выше, может быть включен в технологию кодирования видео или стандартный синтаксис. Подобные соображения могут применяться к одному или нескольким кодовым словам, управляющим фильтрами повышающей/понижающей дискретизации. Смотри ниже обсуждение, когда для фильтра или других структур данных требуются сравнительно большие объемы данных.[64] The following describes how the upsampling/downsampling ratio (ARC information) encoded as described above can be included in a video coding technology or a standard syntax. Similar considerations may apply to one or more codewords driving the upsampling/downsampling filters. See the discussion below for when a filter or other data structure requires relatively large amounts of data.
[65] Приложение Р Н.263 включает информацию 502 ARC в форме четырех координат деформации в заголовок 501 изображения, в частности, в расширение заголовка PLUSPTYPE (503) Н.263. Это может быть разумным выбором структуры, когда а) имеется доступный заголовок изображения и б) ожидаются частые изменения информации ARC. Однако служебные данные при использовании передачи в стиле Н.263 могут быть довольно высокими, и коэффициенты масштабирования могут не относиться к границам изображения, поскольку заголовок изображения может иметь временный характер.[65] Appendix P H.263 includes
[66] JVCET-M135-v1, процитированный выше, включает эталонную информацию ARC (505) (индекс), расположенную в наборе (504) параметров изображения, индексирует таблицу (506), включая целевые разрешения, которая, в свою очередь, находится внутри набора (507) параметров последовательности. Размещение возможного разрешения в таблице (506) в наборе (507) параметров последовательности может, в соответствии со словесными заявлениями, сделанными авторами, быть оправдано использованием SPS в качестве точки согласования совместимости во время обмена возможностями. Разрешение может изменяться в пределах, установленных значениями в таблице (506) от изображения к изображению, путем обращения к соответствующему набору (504) параметров изображения.[66] The JVCET-M135-v1 cited above includes the ARC reference information (505) (index) located in the image parameter set (504), indexes the table (506) including target resolutions, which in turn is located within a set (507) of sequence parameters. Placing a candidate resolution in a table (506) in a sequence parameter set (507) may, in accordance with the verbal statements made by the authors, be justified by using the SPS as a compatibility negotiation point during capability exchange. The resolution can be changed within the limits set by the values in the table (506) from image to image by referring to the corresponding set (504) of image parameters.
[67] По-прежнему ссылаясь на фиг. 5, могут существовать следующие дополнительные варианты для передачи информации ARC в битовом потоке видео. Каждый из этих вариантов имеет определенные преимущества перед существующим уровнем техники, как описано выше. Опции могут одновременно присутствовать в одной и той же технологии или стандарте кодирования видео.[67] Still referring to FIG. 5, the following additional options may exist for transmitting ARC information in a video bitstream. Each of these options has certain advantages over the current state of the art, as described above. Options may be present in the same video coding technology or standard at the same time.
[68] В варианте осуществления информация (509) ARC, такая как коэффициент передискретизации (масштабирования), может присутствовать в заголовке слайса, заголовке GOB, заголовке тайла или заголовке группы тайлов (далее заголовок группы тайлов) (508). Этого может быть достаточно для информации ARC небольшого размера, такой как одиночное кодовое слово переменной длины ue(v) или кодовое слово фиксированной длины из нескольких битов, например, как показано выше. Наличие информации ARC непосредственно в заголовке группы тайлов имеет дополнительное преимущество, поскольку информация ARC может быть применима к субизображению, представленному, например, этой группой тайлов, а не ко всему изображению. См. также ниже. Кроме того, даже если технология или стандарт сжатия видео предусматривает только изменение адаптивного разрешения всего изображения (в отличие, например, от изменений адаптивного разрешения на основе группы тайлов), размещение информации ARC в заголовке группы тайлов вместо помещения ее в заголовок изображения в стиле Н.263 имеет определенные преимущества с точки зрения устойчивости к ошибкам.[68] In an embodiment, ARC information (509) such as a resampling (scaling) factor may be present in a slice header, GOB header, tile header, or tile group header (hereinafter tile group header) (508). This may be sufficient for small size ARC information such as a single variable length codeword ue(v) or a fixed length codeword of multiple bits, such as shown above. Having the ARC information directly in the tile group header has the additional benefit that the ARC information may be applicable to a sub-image represented by that tile group, for example, rather than to the entire image. See also below. Furthermore, even if a video compression technology or standard only provides for changing the adaptive resolution of the entire image (as opposed to adaptive resolution changes based on a group of tiles, for example), placing the ARC information in the tile group header instead of placing it in the H-style image header. 263 has certain advantages in terms of error tolerance.
[69] В том же или другом варианте осуществления сама информация (512) ARC может присутствовать в соответствующем наборе (511) параметров, таком как, например, набор параметров изображения, набор параметров заголовка, набор параметров тайла, набор параметров адаптации и так далее (показан набор параметров адаптации). Объем этого набора параметров предпочтительно может быть не больше, чем изображение, например группа тайлов. Использование информации ARC неявно осуществляется путем активации соответствующего набора параметров. Например, когда технология или стандарт кодирования видео рассматривают только ARC на основе изображения, тогда подходящим вариантом может быть набор параметров изображения или эквивалент.[69] In the same or another embodiment, the ARC information (512) itself may be present in the corresponding parameter set (511), such as, for example, a picture parameter set, a header parameter set, a tile parameter set, an adaptation parameter set, and so on ( a set of adaptation parameters is shown). The scope of this set of parameters may preferably be no larger than an image, such as a group of tiles. The use of ARC information is implicitly done by activating the appropriate set of options. For example, when a video coding technology or standard considers only image-based ARC, then an image parameter set or equivalent may be appropriate.
[70] В том же или другом варианте осуществления эталонная информация (513) ARC может присутствовать в заголовке (514) группы тайлов или аналогичной структуре данных. Данная эталонная информация (513) может относиться к субнабору информации (515) ARC, доступному в наборе (516) параметров с объемом, выходящим за рамки одного изображения, например, наборе параметров последовательности или наборе параметров декодера.[70] In the same or another embodiment, the ARC reference information (513) may be present in a tile group header (514) or a similar data structure. This reference information (513) may refer to a subset of ARC information (515) available in a parameter set (516) with a scope larger than one picture, such as a sequence parameter set or a decoder parameter set.
[71] Дополнительный уровень косвенного обращения, подразумевающий активацию PPS из заголовка группы тайлов, PPS, SPS, который используется в JVET-M0135-v1, кажется ненужным, поскольку наборы параметров изображения, как и наборы параметров последовательности, могут использоваться (и используются в некоторых стандартах, таких как RFC3984) для согласования возможностей или объявлений. Однако если информация ARC должна быть применима к субизображению, представленному, например, также и группами тайлов, лучшим выбором может быть набор параметров с областью активации, ограниченной группой тайлов, такой как набор параметров адаптации или набор параметров заголовка. Также, если информация ARC имеет более чем незначительный размер, например, содержит информацию управления фильтром, такую как многочисленные коэффициенты фильтра, - тогда параметр может быть лучшим выбором, чем использование заголовка (508) непосредственно с точки зрения эффективности кодирования, поскольку эти настройки могут быть повторно использованы в будущих изображениях или субизображениях, ссылаясь на тот же набор параметров.[71] The additional level of indirection implying the activation of PPS from the tile group header, PPS, SPS, which is used in JVET-M0135-v1, seems unnecessary, since image parameter sets, like sequence parameter sets, can be used (and are used in some standards such as RFC3984) to negotiate capabilities or declarations. However, if the ARC information is to be applicable to a sub-image represented, for example, also by tile groups, a parameter set with an activation area limited by the tile group, such as an adaptation parameter set or a header parameter set, may be a better choice. Also, if the ARC information is of more than a small size, such as containing filter control information such as multiple filter coefficients, then the parameter may be a better choice than using the (508) header directly from a coding gain point of view, as these settings may be reused in future images or subimages, referring to the same set of parameters.
[72] При использовании набора параметров последовательности или другого набора параметров более высокого уровня с областью действия, охватывающей несколько изображений, могут применяться определенные соображения:[72] When using a sequence parameter set or other higher-level parameter set with a scope spanning multiple images, certain considerations may apply:
[73] Набор параметров для хранения таблицы (516) информации ARC может в некоторых случаях быть набором параметров последовательности, но в других случаях предпочтительно набором параметров декодера. Набор параметров декодера может иметь область активации нескольких CVS, а именно кодированный видеопоток, т.е. все кодированные биты видео от начала до разрыва сессии. Такой объем может быть более подходящим, потому что возможные коэффициенты ARC могут быть функцией декодера, возможно, реализованной в аппаратном обеспечении, а аппаратные функции, как правило, не меняются с любой CVS (которая, по крайней мере, в некоторых развлекательных системах представляет собой группу изображений длиной одну секунду или меньше). Тем не менее, включение таблицы в набор параметров последовательности явно включено в описанные здесь варианты размещения.[73] The parameter set for storing the ARC information table (516) may in some cases be a sequence parameter set, but in other cases preferably a decoder parameter set. A decoder parameter set may have an activation area of several CVSs, namely an encoded video stream, i. e. all encoded bits of the video from the beginning to the end of the session. Such scope may be more appropriate because the possible ARC coefficients may be a function of the decoder, possibly implemented in hardware, and hardware functions generally do not change with any CVS (which, at least in some entertainment systems, is a group images one second or less in length). However, the inclusion of a table in a sequence parameter set is explicitly included in the placement options described here.
[74] Эталонная информация (513) ARC предпочтительно может быть помещена непосредственно в заголовок (514) изображения/слайса тайла/GOB/группы тайлов (далее заголовок группы тайлов), а не в набор параметров изображения, как в JVCET-M0135-v1. Причина в следующем: когда кодер хочет изменить одно значение в наборе параметров изображения, такое как, например, эталонная информация ARC, он должен создать новый PPS и ссылаться на этот новый PPS. Предположим, что изменяется только эталонная информация ARC, но другая информация, такая как, например, информация матрицы квантования в PPS, остается. Такая информация может быть значительного размера, и ее необходимо будет повторно передать, чтобы завершить новый PPS. Поскольку эталонная информация ARC может быть одним кодовым словом, таким как индекс в таблице (513), и это будет единственное значение, которое изменяется, было бы громоздко и расточительно повторно передавать, например, всю информацию матрицы квантования. В этом отношении может быть значительно лучше с точки зрения эффективности кодирования избежать косвенного обращения через PPS, как предлагается в JVET-M0135-v1. Точно так же размещение эталонной информации ARC в PPS имеет дополнительный недостаток, заключающийся в том, что информация ARC, на которую ссылается эталонная информация (513) ARC, обязательно должна применяться ко всему изображению, а не к субизображению, поскольку объем активации набора параметров изображения представляет собой изображение.[74] The ARC reference information (513) can preferably be placed directly in the image/tile slice/GOB/tile group header (514) (hereinafter the tile group header) rather than in the image parameter set as in JVCET-M0135-v1. The reason is that when an encoder wants to change one value in a picture parameter set, such as the ARC reference information, for example, it must create a new PPS and refer to this new PPS. Assume that only the ARC reference information is changed, but other information such as quantization matrix information in PPS, for example, remains. Such information may be of considerable size and will need to be retransmitted in order to complete the new PPS. Since the ARC reference information may be a single codeword, such as an index in a table (513), and this will be the only value that changes, it would be cumbersome and wasteful to retransmit, for example, all of the quantization matrix information. In this regard, it may be significantly better in terms of coding efficiency to avoid the PPS indirection as proposed in JVET-M0135-v1. Similarly, placing the ARC reference information in the PPS has the additional disadvantage that the ARC information referred to by the ARC reference information (513) must necessarily be applied to the whole picture and not to the sub-picture, since the activation scope of the picture parameter set represents is an image.
[75] В том же или другом варианте осуществления сигнализация параметров ARC может соответствовать подробному примеру, как показано на фиг. 6. На фиг. 6 показаны синтаксические диаграммы в представлении, используемом в стандартах кодирования видео по меньшей мере с 1993 года. Обозначения таких синтаксических диаграмм примерно соответствуют программированию в стиле С. Строки, выделенные жирным шрифтом, указывают на элементы синтаксиса, присутствующие в битовом потоке, строки без жирного шрифта часто указывают на поток управления или установку переменных.[75] In the same or another embodiment, ARC parameter signaling may follow the detailed example as shown in FIG. 6. In FIG. 6 shows syntax diagrams in the representation used in video coding standards since at least 1993. The notation for such syntax diagrams roughly corresponds to C-style programming. Lines in bold indicate syntax elements present in the bitstream, lines without bold often indicate control flow or setting variables.
[76] Заголовок (601) группы тайлов в качестве примерной синтаксической структуры заголовка, применимого к (возможно, прямоугольной) части изображения, может условно содержать кодированный с помощью экспоненциального кода Голомба элемент синтаксиса переменной длины dec_pic_size_idx (602) (выделен жирным шрифтом). Наличие этого элемента синтаксиса в заголовке группы тайлов может быть ограничено использованием адаптивного разрешения (603) - здесь значение флага не выделено жирным шрифтом, что означает, что флаг присутствует в битовом потоке в той точке, где он встречается на синтаксической диаграмме. Тот факт, используется ли адаптивное разрешение для этого изображения или его частей, можно быть сигнализировано в любой синтаксической структуре высокого уровня внутри или вне битового потока. В показанном примере это сигнализируется в наборе параметров последовательности, как показано ниже.[76] A tile group header (601) as an exemplary header syntax structure applicable to a (possibly rectangular) part of an image, may conditionally contain a variable length syntax element dec_pic_size_idx (602) encoded with the exponential Golomb code (bolded). The presence of this syntax element in a tilegroup header can be restricted using adaptive resolution (603) - here the flag value is not bolded, meaning that the flag is present in the bitstream at the point where it occurs in the syntax diagram. Whether adaptive resolution is used for this image or parts of it can be signaled in any high-level syntactic structure inside or outside the bitstream. In the example shown, this is signaled in the sequence parameter set as shown below.
[77] По-прежнему ссылаясь на фиг. 6, показана также выборка набора (610) параметров последовательности. Первый показанный элемент синтаксиса - это adaptive_pic_resolution_change_flag (611). При значении истина (true), этот флаг может указывать на использование адаптивного разрешения, которое, в свою очередь, может требовать определенной управляющей информации. В примере такая управляющая информация присутствует условно на основе значения флага на основе оператора if() в наборе (612) параметров и заголовке (601) группы тайлов.[77] Still referring to FIG. 6, a selection of a set (610) of sequence parameters is also shown. The first syntax element shown is adaptive_pic_resolution_change_flag (611). When set to true, this flag may indicate the use of adaptive resolution, which in turn may require certain control information. In the example, such control information is conditionally present based on the value of the flag based on the if() statement in the parameter set (612) and the tile group header (601).
[78] Когда используется адаптивное разрешение, в этом примере кодировано выходное разрешение в единицах отсчетов (613). Номер позиции 613 относится как к output_pic_width_in_luma_samples, так и к output_pic_height_in_luma_samples, которые вместе могут определять разрешение выходного изображения. В другом месте технологии или стандарта кодирования видео могут быть определены определенные ограничения для любого значения. Например, определение уровня может ограничивать количество общих выходных отсчетов, которые могут быть произведением значений этих двух элементов синтаксиса. Также определенные технологии или стандарты кодирования видео, или внешние технологии или стандарты, такие как, например, системные стандарты, могут ограничивать диапазон нумерации (например, одно или оба измерения должны делиться на степень 2) или соотношение ширины и высоты (например, ширина и высота должны быть в таком соотношении, как 4:3 или 16:9). Такие ограничения могут быть введены для облегчения аппаратных реализаций или по другим причинам, и они хорошо известны в данной области техники.[78] When adaptive resolution is used, the output resolution is encoded in units of samples (613) in this example.
[79] В некоторых приложениях может быть целесообразно, чтобы кодер инструктировал декодер использовать определенный размер опорного изображения вместо того, чтобы неявно предполагать, что этот размер является размером выходного изображения. В этом примере элемент синтаксиса reference_pic_size_present_flag (614) передает условное присутствие размеров (615) опорного изображения (опять же, номер позиции относится как к ширине, так и к высоте).[79] In some applications, it may be desirable for the encoder to instruct the decoder to use a specific reference picture size instead of implicitly assuming that this size is the size of the output picture. In this example, the syntax element reference_pic_size_present_flag (614) conveys the conditional presence of the dimensions (615) of the reference picture (again, the position number refers to both width and height).
[80] Наконец, показана таблица возможной ширины и высоты изображения декодирования. Такая таблица может быть выражена, например, указанием таблицы (num_dec_pic_size_in_luma_samples_minus1) (616). «Minus1» может относиться к интерпретации значения этого элемента синтаксиса. Например, если кодированное значение равно нулю, присутствует одна запись в таблице. Если значение равно пяти, присутствуют шесть записей таблицы. Затем для каждой «строки» в таблице в синтаксис (617) включаются ширина и высота декодированного изображения.[80] Finally, a table of possible decoding image width and height is shown. Such a table may be expressed, for example, by specifying a table (num_dec_pic_size_in_luma_samples_minus1) (616). "Minus1" may refer to the interpretation of the meaning of this syntax element. For example, if the encoded value is zero, there is one entry in the table. If the value is five, there are six table entries. Then, for each "row" in the table, the width and height of the decoded picture are included in the syntax (617).
[81] Представленные записи (617) таблицы могут быть проиндексированы с использованием элемента синтаксиса dec_pic_size_idx (602) в заголовке группы тайлов, тем самым разрешая различные декодированные размеры - в сущности, коэффициенты масштабирования - для каждой группы тайлов.[81] Represented table entries (617) can be indexed using the dec_pic_size_idx (602) syntax element in the tile group header, thereby allowing different decoded sizes—essentially scaling factors—for each tile group.
[82] Методы для передачи параметров адаптивного разрешения, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых инструкций и физически сохранены на одном или более машиночитаемых носителях. Например, на фиг. 7 показана компьютерная система 700, подходящая для реализации определенных вариантов осуществления раскрытого объекта изобретения.[82] The techniques for transmitting adaptive resolution parameters described above may be implemented in computer software using computer-readable instructions and physically stored on one or more computer-readable media. For example, in FIG. 7 shows a computer system 700 suitable for implementing certain embodiments of the disclosed subject matter.
[83] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или компьютерного языка, который может быть объектом сборки, компиляции, связывания или подобных механизмов для создания кода, содержащего инструкции, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и т.п., центральными процессорами компьютера (ЦП), графическими процессорами (ГП) и т.п.[83] Computer software may be coded using any suitable machine code or computer language, which may be the object of assembly, compilation, linking, or similar mechanisms to produce code containing instructions that can be executed directly or through interpretation, execution of microcode, etc. .p., computer central processing units (CPUs), graphics processing units (GPUs), etc.
[84] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т.п.[84] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, IoT devices, and the like.
[85] Компоненты, показанные на фиг. 7 для компьютерной системы 700, являются примерными по своей природе и не предназначены для предложения каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего варианты осуществления настоящего раскрытия. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, проиллюстрированных в примерном варианте осуществления компьютерной системы 700.[85] The components shown in FIG. 7 for computer system 700 are exemplary in nature and are not intended to suggest any limitation as to the scope of use or functionality of computer software implementing embodiments of the present disclosure. The component configuration is also not to be interpreted as having any dependency or requirement related to any one or combination of components illustrated in the exemplary embodiment of computer system 700.
[86] Компьютерная система 700 может включать в себя определенные устройства ввода с человеко-машинным интерфейсом. Такое устройство ввода с человеко-машинным интерфейсом может реагировать на ввод одним или более пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, смахивания, движения управляющей перчатки), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например: жестов), обонятельного ввода (не изображен). Устройства с человеко-машинным интерфейсом также могут использоваться для захвата определенных носителей, не обязательно напрямую связанных с сознательным вводом человеком, таких как звук (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные из камеры для неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).[86] Computer system 700 may include certain human-machine interface input devices. Such a human-machine interface input device may respond to input from one or more human users through, for example, tactile input (e.g., keystrokes, swipes, movement of a control glove), audio input (e.g., voice, handclaps), visual input (for example: gestures), olfactory input (not shown). HMI devices can also be used to capture certain media not necessarily directly related to conscious human input, such as sound (e.g. speech, music, ambient sound), images (e.g. scanned images, photographic images taken from a camera for still images), video (eg 2D video, 3D video including stereoscopic video).
[87] Устройства ввода с человеческо-машинным интерфейсом могут включать в себя одно или более из (только одно из каждого изображенного): клавиатура 701, мышь 702, трекпад 703, сенсорный экран 710, управляющая перчатка 704, джойстик 705, микрофон 706, сканер 707, камера 708.[87] Human-machine interface input devices may include one or more of (only one of each depicted):
[88] Компьютерная система 700 также может включать в себя определенные устройства вывода с человеко-машинным интерфейсом. Такие устройства вывода с человеко-машинным интерфейсом могут стимулировать чувства одного или более пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с человеко-машинным интерфейсом могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана 710, управляющей перчатки 704 или джойстика 705, но также могут иметься устройства тактильной обратной связи, которые не служат в качестве устройств ввода), устройства вывода звука (например: динамики 709, наушники (не изображены)), устройства вывода изображения (например, экраны 710, включая ЭЛТ-экраны, ЖК-экраны, плазменные экраны, OLED-экраны, каждое из которых имеет или не имеет возможности ввода с сенсорного экрана, каждое с возможностью тактильной обратной связи или без нее - некоторые из которых могут быть способны выводить двухмерный визуальный вывод или более, чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображены), голо графические дисплеи и дымовые баки (не изображены)) и принтеры (не изображены).[88] Computer system 700 may also include certain human interface output devices. Such human interface output devices can stimulate the senses of one or more human users through, for example, tactile output, sound, light, and smell/taste. Such human interface output devices may include tactile output devices (e.g., haptic feedback from a 710 touch screen, 704 control glove, or 705 joystick, but there may also be tactile feedback devices that do not serve as input devices) , audio output devices (for example: speakers 709, headphones (not shown)), image output devices (for example, screens 710, including CRT screens, LCD screens, plasma screens, OLED screens, each of which has or does not have the ability to touch screen input, each with or without tactile feedback capability - some of which may be capable of producing 2D visual output or more than 3D output by means such as stereographic output; virtual reality glasses (not shown), holographic displays and smoke tanks (not shown) and printers (not shown).
[89] Компьютерная система 700 также может включать в себя доступные для человека устройства хранения и связанные с ними носители, такие как оптические носители, включая CD/DVD ROM/RW 720 с CD/DVD или подобными носителями 721, флэш-накопитель 722, съемный жесткий диск или твердотельный накопитель 723, ранее разработанные магнитные носители, такие как лента и дискета (не изображены), специализированные устройства на основе ROM/ASIC/PLD, такие как защитные ключи (не изображены) и т.п.[89] Computer system 700 may also include human accessible storage devices and associated media such as optical media including CD/DVD ROM/
[90] Специалисты в данной области также должны понимать, что термин «машиночитаемый носитель», используемый в связи с раскрытым в настоящем документе объектом изобретения, не охватывает среды передачи, несущие волны или другие временные сигналы.[90] Those skilled in the art should also understand that the term "computer-readable medium" as used in connection with the subject matter disclosed herein does not encompass transmission media, carrier waves, or other time signals.
[91] Компьютерная система 700 также может включать в себя интерфейс к одной или более коммуникационным сетям. Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и т.д. Примеры сетей включают в себя локальные сети, такие как Ethernet, беспроводные LAN, сотовые сети, включая GSM, 3G, 4G, 5G, LTE и т.п., проводные телевизионные или беспроводные глобальные цифровые сети, включая кабельное телевидение, спутниковое телевидение и наземное телевещание, автомобильное и промышленное оборудование, включая CAN-шину и т.д. Некоторым сетям обычно требуются внешние сетевые интерфейсные адаптеры, которые подключены к определенным портам данных общего назначения или периферийным шинам (749) (например, к портам USB компьютерной системы 700); другие обычно интегрированы в ядро компьютерной системы 700 путем присоединения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему ПК или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система 700 может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное телевидение), однонаправленной только для отправки (например, CAN-шина на определенные устройства с CAN-шиной) или двунаправленной, например, для других компьютерных систем, использующих локальную или глобальную цифровую сеть. В каждой из этих сетей и сетевых интерфейсов могут использоваться определенные протоколы и стеки протоколов, как описано выше.[91] Computer system 700 may also include an interface to one or more communication networks. Networks can be, for example, wireless, wired, optical. In addition, networks can be local, wide area, metropolitan, automotive, industrial, real-time, latency tolerant, and so on. Example networks include local area networks such as Ethernet, wireless LANs, cellular networks including GSM, 3G, 4G, 5G, LTE, etc., wired television or wireless digital wide area networks including cable television, satellite television and terrestrial TV broadcasting, automotive and industrial equipment, including CAN bus, etc. Some networks typically require external network interface adapters that are connected to certain general purpose data ports or peripheral buses (749) (for example, the USB ports of a 700 computer system); others are typically integrated into the core of computer system 700 by being attached to a system bus as described below (eg, an Ethernet interface to a PC computer system or a cellular network interface to a smartphone computer system). Using any of these networks, computer system 700 can communicate with other entities. Such communication can be unidirectional, receive-only (for example, broadcast television), unidirectional, send-only (for example, CAN bus to certain CAN-bus devices), or bidirectional, for example, to other computer systems using a local or wide area digital network. . Each of these networks and network interfaces may use specific protocols and protocol stacks as described above.
[92] Вышеупомянутые устройства человеко-машинного интерфейса, доступные человеку устройства хранения и сетевые интерфейсы могут быть присоединены к ядру 740 компьютерной системы 700.[92] The aforementioned human-machine interface devices, human-accessible storage devices, and network interfaces may be attached to the
[93] Ядро 740 может включать в себя один или более центральных процессоров (ЦП) 741, графических процессоров (ГП) 742, специализированных программируемых процессоров в виде программируемых пользователем вентильных матриц (ППВМ) 743, аппаратных ускорителей для определенных задач 744 и т.д. Эти устройства, наряду с постоянным запоминающим устройством (ПЗУ) 745, оперативным запоминающим устройством 746, внутренним ЗУ большой емкости, таким как внутренние жесткие диски, недоступные пользователю, твердотельные накопители (SSD) и т.п. 747, могут быть подключены через системную шину 748. В некоторых компьютерных системах системная шина 748 может быть доступна в виде одного или более физических разъемов для обеспечения возможности расширения за счет дополнительных ЦП, ГП и т.п. Периферийные устройства могут быть подключены либо непосредственно к системной шине 748 ядра, либо через периферийную шину 749. Архитектура периферийной шины включает PCI, USB и т.п.[93] The
[94] ЦП 741, ГП 742, ППВМ 743 и ускорители 744 могут выполнять определенные инструкции, которые в комбинации могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ПЗУ 745 или ОЗУ 746. Переходные данные также могут храниться в ОЗУ 746, тогда как постоянные данные могут храниться, например, во внутреннем ЗУ большой емкости 747. Быстрое хранение и извлечение на любое из запоминающих устройств могут быть доступны посредством использования кэш-памяти, которая может быть тесно связана с одним или более ЦП 741, ГП 742, ЗУ 747 большой емкости, ПЗУ 745, ОЗУ 746 и т.п.[94]
[95] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых компьютером. Носители и компьютерный код могут быть специально спроектированными и сконструированными для целей настоящего раскрытия, или они могут быть хорошо известными и доступными для специалистов в области компьютерного программного обеспечения.[95] The computer-readable medium may contain computer code for performing various computer-implemented operations. The media and computer code may be specially designed and constructed for the purposes of this disclosure, or they may be well known and available to those skilled in the art of computer software.
[96] В качестве примера, а не ограничения, компьютерная система, имеющая архитектуру 700 и, в частности, ядро 740, может обеспечивать функциональность в результате наличия процессора(ов) (включая ЦП, ГП, ППВМ, ускорители и т.п.), выполняющего программное обеспечение, воплощенное на одном или более материальных, машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя ЗУ большой емкости, как описано выше, а также определенными запоминающими устройствами ядра 740, которые имеют невременную природу, такими как внутреннее ЗУ 747 большой емкости или ПЗУ 745. Программное обеспечение, реализующее различные варианты осуществления настоящего раскрытия, может храниться в таких устройствах и выполняться ядром 740. Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или микросхем в соответствии с конкретными потребностями. Программное обеспечение может побуждать ядро 740 и, в частности, процессоры в нем (включая ЦП, ГП, ППВМ и т.п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в ОЗУ 746 и изменение таких структур данных в соответствии с процессами, определенными программным обеспечением. В дополнение или в качестве альтернативы, компьютерная система может обеспечивать функциональность в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускоритель 744), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или отдельных частей конкретных процессов, описанных в данном документе. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это применимо. Ссылка на машиночитаемый носитель может включать в себя схему (например, интегральную схему (ИС)), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это применимо. Настоящее раскрытие включает в себя любую подходящую комбинацию аппаратного и программного обеспечения.[96] By way of example, and not limitation, a computer system having architecture 700, and in
[97] Некоторые технологии или стандарты кодирования видео, например VP9, поддерживают пространственную масштабируемость путем реализации определенных форм передискретизации опорного изображения (передаваемую совершенно иначе, чем в раскрытом объекте изобретения) в сочетании с временной масштабируемостью, чтобы обеспечить пространственную масштабируемость. В частности, некоторые опорные изображения могут подвергаться повышающей дискретизации с использованием технологий в стиле ARC до более высокого разрешения для формирования базы слоя пространственного улучшения. Эти изображения с повышенной дискретизацией можно улучшить, используя нормальные механизмы предсказания с высоким разрешением, чтобы добавить деталей.[97] Some video coding technologies or standards, such as VP9, support spatial scalability by implementing certain forms of reference picture resampling (transmitted quite differently than in the disclosed subject matter) in combination with temporal scalability to provide spatial scalability. In particular, some reference pictures may be upsampled using ARC-style techniques to higher resolution to form the base of the spatial enhancement layer. These upsampled images can be enhanced using normal high resolution prediction engines to add detail.
[98] Раскрытый объект изобретения может использоваться в такой среде. В некоторых случаях, в том же или другом варианте осуществления, значение в заголовке единицы NAL, например поле временного идентификатора, может использоваться для указания не только временного, но и пространственного слоя. Это дает определенные преимущества для определенных конфигураций систем; например, существующая архитектура Selected Forwarding Units (SFU, селективно передающая единица), созданная и оптимизированная для выбранных временных слоев, пересылаемых на основе значения временного идентификатора заголовка единицы NAL, может использоваться без модификации для масштабируемых сред. Для того чтобы сделать это возможным, может существовать требование для сопоставления между размером кодированного изображения и временным слоем, указываемым полем временного идентификатора в заголовке единицы NAL.[98] The disclosed subject matter may be used in such an environment. In some cases, in the same or another embodiment, a value in the NAL unit header, such as a temporal identifier field, may be used to indicate not only the temporal but also the spatial layer. This offers certain advantages for certain system configurations; for example, an existing Selected Forwarding Units (SFU) architecture created and optimized for selected temporal slices forwarded based on the NAL Unit Header Temporal Identifier value can be used without modification for scalable environments. In order to make this possible, there may be a requirement for a mapping between the encoded picture size and the temporal layer indicated by the temporal identifier field in the NAL unit header.
[99] В некоторых технологиях кодирования видео единица доступа (AU) может относиться к кодированному изображению(ям), слайсу(ам), тайлу(ам), блоку(ам) NAL и так далее, которые были захвачены и скомпонованы в соответствующие изображение/слайс/тайл/битовый поток единицы NAL в данный момент времени. Таким моментом во времени может быть время компоновки.[99] In some video coding technologies, an access unit (AU) may refer to the encoded image(s), slice(s), tile(s), NAL unit(s), etc., that have been captured and arranged into the corresponding image/ slice/tile/bitstream of the NAL unit at a given time. This point in time may be link time.
[100] В HEVC и некоторых других технологиях кодирования видео значение счетчика порядка изображений (РОС) может использоваться для указания выбранного опорного изображения среди множества опорных изображений, хранящихся в буфере декодированных изображений (DPB). Когда единица доступа (AU) содержит одно или более изображений, слайсов или тайлов, каждое изображение, слайс или тайл, принадлежащие одной и той же AU, могут нести одно и то же значение РОС, из которого можно сделать вывод, что они были созданы из содержимого то же времени компоновки. Другими словами, в сценарии, где два изображения/слайса/тайла несут одно и то же заданное значение РОС, это может указывать на то, что два изображения/слайса/тайла принадлежат одной и той же AU и имеют одинаковое время компоновки. И наоборот, два изображения/слайса/тайла, имеющие разные значения РОС, могут указывать те изображения/слайсы/тайлы, которые принадлежат разным AU и имеют разное время компоновки.[100] In HEVC and some other video coding technologies, a picture order counter (POC) value may be used to indicate a selected reference picture among a plurality of reference pictures stored in a decoded picture buffer (DPB). When an access unit (AU) contains one or more images, slices or tiles, each image, slice or tile belonging to the same AU can carry the same POC value, from which it can be concluded that they were created from content at the same link time. In other words, in a scenario where two images/slices/tiles carry the same POC setpoint, this may indicate that the two images/slices/tiles belong to the same AU and have the same link time. Conversely, two images/slices/tiles having different POC values may indicate those images/slices/tiles that belong to different AUs and have different link times.
[101] В варианте осуществления раскрытого объекта изобретения вышеупомянутая жесткая взаимосвязь может быть ослаблена, поскольку единица доступа может содержать изображения, слайсы или тайлы с разными значениями РОС. Допуская различные значения РОС в AU, становится возможным использовать значение РОС для идентификации потенциально независимо декодируемых изображений/слайсов/тайлов с идентичным временем представления. Это, в свою очередь, может обеспечить поддержку множества масштабируемых слоев без изменения сигнализации выбора опорного изображения (например, сигнализации набора опорных изображений или сигнализации списка опорных изображений), как более подробно описано ниже.[101] In an embodiment of the disclosed subject matter, the aforementioned rigid relationship can be relaxed because an access unit may contain images, slices, or tiles with different POC values. By allowing different POC values in the AU, it becomes possible to use the POC value to identify potentially independently decodable pictures/slices/tiles with the same presentation time. This, in turn, can support multiple scalable layers without changing the reference picture selection signaling (eg, reference picture set signaling or reference picture list signaling), as described in more detail below.
[102] Однако все еще желательно иметь возможность идентифицировать AU, которой принадлежит изображение/слайс/тайл, по отношению к другому изображению/слайсу/тайлу, имеющему другие значения РОС, только на основе значения РОС. Этого можно добиться, как описано ниже.[102] However, it is still desirable to be able to identify the AU that owns an image/slice/tile with respect to another image/slice/tile having different POC values based on the POC value alone. This can be achieved as described below.
[103] В тех же или других вариантах осуществления счетчик единиц доступа (AUC) может сигнализироваться в синтаксической структуре высокого уровня, такой как заголовок единицы NAL, заголовок слайса, заголовок группы тайлов, сообщение SEI, набор параметров или ограничитель AU. Значение AUC может использоваться, чтобы идентифицировать, какие единицы NAL, изображения, слайсы или тайлы принадлежат данной AU. Значение AUC может соответствовать отдельному моменту времени компоновки. Значение AUC может быть кратным значению РОС. Путем деления значения РОС на целочисленное значение можно вычислить значение AUC. В некоторых случаях операции деления могут накладывать определенную нагрузку на реализации декодеров. В таких случаях небольшие ограничения в пространстве нумерации значений AUC могут позволить заменить операцию деления операциями сдвига. Например, значение AUC может быть равно значению старшего значащего бита (MSB) диапазона значений РОС.[103] In the same or other embodiments, an access unit counter (AUC) may be signaled in a high-level syntax structure such as a NAL unit header, slice header, tile group header, SEI message, parameter set, or AU delimiter. The AUC value may be used to identify which NAL units, pictures, slices or tiles belong to a given AU. The AUC value may correspond to a particular link time. The AUC value may be a multiple of the ROS value. By dividing the POC value by an integer value, the AUC value can be calculated. In some cases, division operations may impose a certain burden on decoder implementations. In such cases, slight restrictions on the numbering space of the AUC values may allow the division operation to be replaced by shift operations. For example, the AUC value may be equal to the most significant bit (MSB) value of the POC value range.
[104] В том же варианте осуществления значение цикла РОС для каждой AU (рос_cycle_au) может сигнализироваться в синтаксической структуре высокого уровня, такой как заголовок единицы NAL, заголовок слайса, заголовок группы тайлов, сообщение SEI, набор параметров или ограничитель AU. Величина рос cycle au может указывать, сколько различных и последовательных значений РОС может быть связано с одной и той же AU. Например, если значение poc_cycle_au равно 4, изображения, слайсы или тайлы со значением РОС, равным 0-3 включительно, связаны с AU со значением AUC, равным 0, а изображения, слайсы или тайлы со значением РОС, равным 4-7 включительно, связаны с AU со значением AUC, равным 1. Следовательно, значение AUC может быть выведено путем деления значения РОС на значение poc_cycle_au.[104] In the same embodiment, the per-AU ROS cycle value (poc_cycle_au) may be signaled in a high-level syntax structure such as a NAL unit header, slice header, tile group header, SEI message, parameter set, or AU delimiter. The ROS cycle au value may indicate how many different and consecutive ROS values can be associated with the same AU. For example, if the poc_cycle_au value is 4, images, slices, or tiles with a POC value of 0-3 inclusive are associated with an AU with an AUC value of 0, and images, slices, or tiles with a POC value of 4-7, inclusive, are associated with an AU with an AUC value of 1. Therefore, the AUC value can be derived by dividing the POC value by the poc_cycle_au value.
[105] В том же или другом варианте осуществления значение poc_cyle_au может быть получено из информации, расположенной, например, в наборе параметров видео (VPS), которая идентифицирует количество пространственных слоев или слоев SNR в кодированной видеопоследовательности. Такая возможная взаимосвязь кратко описывается ниже. Хотя получение, как описано выше, может сэкономить несколько битов в VPS и, следовательно, может повысить эффективность кодирования, может быть предпочтительным явно кодировать poc_cycle_au в соответствующей синтаксической структуре высокого уровня иерархически ниже набора параметров видео, чтобы иметь возможность минимизировать рос_cycle_au для данной небольшой части битового потока, такого как изображение. Эта оптимизация может сэкономить больше битов, чем может быть сохранено посредством процесса получения, описанного выше, потому что значения РОС (и/или значения элементов синтаксиса, косвенно относящиеся к РОС) могут быть кодированы в синтаксических структурах низкого уровня.[105] In the same or another embodiment, the poc_cyle_au value may be derived from information located, for example, in a video parameter set (VPS) that identifies the number of spatial or SNR layers in the encoded video sequence. Such a possible relationship is briefly described below. Although derivation as described above may save a few bits in the VPS and therefore may increase coding efficiency, it may be preferable to explicitly encode poc_cycle_au in an appropriate high-level syntax hierarchically below the video parameter set in order to be able to minimize poc_cycle_au for a given small portion of the bitmap. a stream such as an image. This optimization can save more bits than can be stored by the derivation process described above because POC values (and/or POC indirectly related syntax element values) can be encoded in low level syntax structures.
[106] На фиг. 8 показан пример структуры видеопоследовательности с комбинацией значений temporal_id, layer_id, РОС и AUC с адаптивным изменением разрешения. В этом примере изображение, слайс или тайл в первой AU с AUC=0 может иметь temporal_id=0 и layer_id=0 или 1, в то время как изображение, слайс или тайл во второй AU с AUC=1 может иметь temporal_id=1 и layer_id=0 или 1 соответственно. Значение РОС увеличивается на 1 для каждого изображения независимо от значений temporal_id и layer_id. В этом примере значение рос_cycle_au может быть равно 2. Предпочтительно значение poc_cycle_au может быть установлено равным количеству слоев (пространственной масштабируемости). Следовательно, в этом примере значение РОС увеличивается на 2, а значение AUC увеличивается на 1.[106] FIG. 8 shows an example of a video sequence structure with a combination of temporal_id, layer_id, POC, and AUC values with adaptive resolution change. In this example, an image, slice or tile in the first AU with AUC=0 may have temporal_id=0 and layer_id=0 or 1, while an image, slice or tile in the second AU with AUC=1 may have temporal_id=1 and layer_id =0 or 1 respectively. The POC value is incremented by 1 for each image regardless of the temporal_id and layer_id values. In this example, the value of poc_cycle_au may be equal to 2. Preferably, the value of poc_cycle_au may be set equal to the number of layers (spatial scalability). Therefore, in this example, the ROS value is increased by 2 and the AUC value is increased by 1.
[107] В вышеупомянутых вариантах осуществления все или субнабор структуры межкадрового или межслойного предсказания и индикация опорного изображения могут поддерживаться с использованием сигнализации существующего набора опорных изображений (RPS) в HEVC или сигнализации списка опорных изображений (RPL). В RPS или RPL выбранное опорное изображение указывается посредством сигнализации значения РОС или значения дельты РОС между текущим изображением и выбранным опорным изображением. Для раскрытого объекта изобретения RPS и RPL могут использоваться для указания структуры межкадрового или межслойного предсказания без изменения сигнализации, но со следующими ограничениями. Если значение temporal_id опорного изображения больше, чем значение temporal_id текущего изображения, текущее изображение может не использовать опорное изображение для компенсации движения или других предсказаний. Если значение layer_id опорного изображения больше, чем значение layer_id текущего изображения, текущее изображение может не использовать опорное изображение для компенсации движения или других предсказаний.[107] In the above embodiments, all or a subset of the inter-picture or inter-layer prediction structure and reference picture indication may be supported using existing reference picture set (RPS) signaling in HEVC or reference picture list (RPL) signaling. In RPS or RPL, the selected reference picture is indicated by signaling a POC value or a delta POC value between the current picture and the selected reference picture. For the disclosed subject matter, RPS and RPL may be used to indicate an inter-picture or inter-layer prediction structure without changing the signaling, but with the following limitations. If the temporal_id value of the reference picture is greater than the temporal_id value of the current picture, the current picture may not use the reference picture for motion compensation or other predictions. If the layer_id value of the reference picture is greater than the layer_id value of the current picture, the current picture may not use the reference picture for motion compensation or other predictions.
[108] В том же и других вариантах осуществления масштабирование вектора движения на основе разности РОС для временного предсказания вектора движения может быть отключено для множества изображений в единице доступа. Следовательно, хотя каждое изображение может иметь различное значение РОС в единице доступа, вектор движения не масштабируется и используется для временного предсказания вектора движения в единице доступа. Это связано с тем, что опорное изображение с другим РОС в одной и той же AU считается опорным изображением, имеющим тот же момент времени. Следовательно, в варианте осуществления функция масштабирования вектора движения может возвращать 1, когда опорное изображение принадлежит AU, связанной с текущим изображением.[108] In the same and other embodiments, motion vector scaling based on the POC difference for temporal motion vector prediction may be disabled for multiple pictures in an access unit. Therefore, although each picture may have a different POC value in the access unit, the motion vector is not scaled and is used for temporal prediction of the motion vector in the access unit. This is because a reference picture with a different ROS in the same AU is considered a reference picture having the same point in time. Therefore, in an embodiment, the motion vector scaling function may return 1 when the reference picture belongs to the AU associated with the current picture.
[109] В том же и других вариантах осуществления масштабирование вектора движения на основе разности РОС для временного предсказания вектора движения может быть опционально отключено для множества изображений, когда пространственное разрешение опорного изображения отличается от пространственного разрешения текущего изображения. Когда масштабирование вектора движения разрешено, вектор движения масштабируется на основе как разности РОС, так и отношения пространственного разрешения между текущим изображением и опорным изображением.[109] In the same and other embodiments, motion vector scaling based on the POC difference for temporal motion vector prediction can be optionally disabled for multiple images when the spatial resolution of the reference image differs from the spatial resolution of the current image. When motion vector scaling is enabled, the motion vector is scaled based on both the POC difference and the spatial resolution ratio between the current picture and the reference picture.
[110] В том же или другом варианте осуществления вектор движения может масштабироваться на основе разности AUC вместо разности РОС для временного предсказания вектора движения, особенно когда рос_cycle_au имеет неоднородное значение (когда vps_contant_poc_cycle_per_au=0). В противном случае (когда vps_contant_poc_cycle_per_au=1) масштабирование вектора движения на основе разности AUC может быть идентично масштабированию вектора движения на основе разности РОС.[110] In the same or another embodiment, the motion vector can be scaled based on the AUC difference instead of the POC difference for temporal motion vector prediction, especially when poc_cycle_au has a non-uniform value (when vps_contant_poc_cycle_per_au=0). Otherwise (when vps_contant_poc_cycle_per_au=1), motion vector scaling based on AUC difference may be identical to motion vector scaling based on POC difference.
[111] В том же или другом варианте осуществления, когда вектор движения масштабируется на основе разности AUC, опорный вектор движения в том же AU (с тем же значением AUC) с текущим изображением не масштабируется на основе разности AUC и используется для предсказания вектора движения без масштабирования или с масштабированием на основе отношения пространственного разрешения между текущим изображением и опорным изображением.[111] In the same or different embodiment, when the motion vector is scaled based on the AUC difference, the reference motion vector in the same AU (with the same AUC value) with the current image is not scaled based on the AUC difference and is used to predict the motion vector without scaling or scaling based on the ratio of spatial resolution between the current image and the reference image.
[112] В том же и других вариантах осуществления значение AUC используется для идентификации границы AU и используется для операции гипотетического эталонного декодера (HRD), для которой требуется синхронизация ввода и вывода с детализацией AU. В большинстве случаев декодированное изображение с самым высоким уровнем в AU может выводиться для отображения. Значение AUC и значение layer_id могут использоваться для идентификации выходного изображения.[112] In the same and other embodiments, the AUC value is used to identify the AU boundary and is used for a hypothetical reference decoder (HRD) operation that requires input and output synchronization with AU granularity. In most cases, the decoded picture with the highest level in the AU can be output for display. The AUC value and the layer_id value may be used to identify the output image.
[113] В варианте осуществления изображение может состоять из одного или более субизображений. Каждое субизображения может охватывать локальную область или всю область изображения. Область, поддерживаемая субизображением, может перекрываться или не перекрываться с областью, поддерживаемой другим субизображением. Область, составленная из одного или более субизображений, может покрывать или не покрывать всю область изображения. Если изображение состоит из субизображения, область, поддерживаемая субизображением, идентична области, поддерживаемой изображением.[113] In an embodiment, an image may consist of one or more sub-images. Each sub-image may cover a local area or an entire image area. The area supported by a sub-image may or may not overlap with the area supported by another sub-image. An area composed of one or more sub-images may or may not cover the entire image area. If the image consists of a sub-image, the area supported by the sub-image is identical to the area supported by the image.
[114] В том же варианте осуществления субизображение может быть закодировано способом кодирования, аналогичным способу кодирования, используемому для кодированного изображения. Субизображение может быть независимо закодировано или может быть закодировано в зависимости от другого субизображения или кодированного изображения. Субизображение может иметь или не иметь какую-либо зависимость парсинга от другого субизображения или кодированного изображения.[114] In the same embodiment, the sub-image may be encoded by a coding method similar to the coding method used for the encoded image. A sub-image may be independently encoded, or may be encoded depending on another sub-image or encoded image. A sub-image may or may not have any parsing dependency on another sub-image or encoded image.
[115] В том же варианте осуществления кодированное субизображение может содержаться в одном или более слоев. Кодированное субизображение в слое может иметь другое пространственное разрешение. Исходное субизображение может подвергаться повторной пространственной дискретизации (повышающей или понижающей дискретизации), кодироваться с различными параметрами пространственного разрешения и содержаться в битовом потоке, соответствующем слою.[115] In the same embodiment, the encoded sub-image may be contained in one or more layers. The encoded sub-image in the layer may have a different spatial resolution. The original sub-image may be spatially resampled (upsampled or downsampled), encoded with different spatial resolutions, and contained in the bitstream corresponding to the layer.
[116] В том же или другом варианте осуществления субизображение с (W, Н), где W обозначает ширину субизображения, а Н обозначает высоту субизображения, соответственно, может кодироваться и содержаться в кодированном битовом потоке, соответствующем слою 0, в то время как субизображение с повышающей (или понижающей) дискретизацией из субизображения с исходным пространственным разрешением, с (W*Sw,k, H*Sh,k), может быть кодировано и содержаться в кодированном битовом потоке, соответствующем слою k, где Sw,k, Sh,k указывают коэффициенты передискретизации по горизонтали и вертикали. Если значения Sw,k, Sh,k больше 1, передискретизация равна повышающей дискретизации. В то время как, если значения Sw,k, Sh,k меньше 1, передискретизация равна понижающей дискретизации.[116] In the same or another embodiment, a sub-image with (W, H), where W denotes the width of the sub-image and H denotes the height of the sub-image, respectively, can be encoded and contained in the encoded bitstream corresponding to
[117] В том же или другом варианте осуществления кодированное субизображение в слое может иметь визуальное качество, отличное от качества кодированного субизображения в другом слое в том же субизображении или другом субизображении. Например, субизображение i в слое n кодируется параметром квантования Qi,n, тогда как субизображение j в слое m кодируется параметром квантования Qj,m.[117] In the same or another embodiment, an encoded sub-image in a layer may have a different visual quality than an encoded sub-image in another layer in the same sub-image or another sub-image. For example, sub-image i in layer n is encoded with a quantization parameter Q i,n , while sub-image j in layer m is encoded with a quantization parameter Q j,m .
[118] В том же или другом варианте осуществления кодированное субизображение в слое может быть декодировано независимо, без какой-либо зависимости от парсинга или декодирования, из кодированного субизображения в другом слое той же локальной области. Слой субизображения, который можно независимо декодировать без ссылки на другой слой субизображения той же локальной области, является независимым слоем субизображения. Кодированное субизображение в независимом слое субизображения может иметь или не иметь зависимость декодирования или парсинга от ранее кодированного субизображения в том же слое субизображения, но кодированное субизображение может не иметь никакой зависимости от кодированного изображения в другом слое субизображения.[118] In the same or another embodiment, an encoded sub-image in a layer can be decoded independently, without any parsing or decoding dependency, from an encoded sub-image in another layer of the same local area. A sub-image layer that can be independently decoded without referring to another sub-image layer of the same local area is an independent sub-image layer. An encoded sub-image in an independent sub-image layer may or may not have a decoding or parsing dependency on a previously encoded sub-image in the same sub-image layer, but an encoded sub-image may not have any dependency on an encoded image in another sub-image layer.
[119] В том же или другом варианте осуществления кодированное субизображение в слое может быть декодировано зависимо, с любой зависимостью от парсинга или декодирования, из кодированного субизображения в другом слое той же локальной области. Слой субизображения, который можно зависимо декодировать со ссылкой на другой слой субизображения той же локальной области, является зависимым слоем субизображения. Кодированное субизображение в зависимом субизображении может ссылаться на кодированное субизображение, принадлежащее тому же субизображению, ранее кодированное субизображение в том же слое субизображения или на оба опорных субизображения.[119] In the same or another embodiment, an encoded sub-image in a layer can be decoded dependently, with any parsing or decoding dependency, from an encoded sub-image in another layer of the same local area. A sub-image layer that can be dependently decoded with reference to another sub-image layer of the same local area is a dependent sub-image layer. An encoded sub-image in a dependent sub-image may refer to an encoded sub-image belonging to the same sub-image, a previously encoded sub-image in the same sub-image layer, or both reference sub-images.
[120] В том же или другом варианте осуществления кодированное субизображение состоит из одного или более независимых слоев субизображения и одного или более зависимых слоев субизображения. Однако по меньшей мере одно независимое субизображение может присутствовать для кодированного субизображения. Независимый слой субизображения может иметь значение идентификатора слоя (layer_id), который может присутствовать в заголовке единицы NAL или другой синтаксической структуре высокого уровня, равное 0. Слой субизображения с layer_id, равным 0, является базовым слоем субизображения.[120] In the same or another embodiment, the encoded sub-image consists of one or more independent sub-image layers and one or more dependent sub-image layers. However, at least one independent sub-picture may be present for an encoded sub-picture. An independent sub-image layer may have a layer identifier (layer_id) value, which may be present in a NAL unit header or other high-level syntax structure, equal to 0. A sub-image layer with layer_id equal to 0 is the base sub-image layer.
[121] В том же или другом варианте осуществления изображение может состоять из одного или более субизображений переднего плана и одного субизображения заднего плана. Область, поддерживаемая субизображением заднего плана, может быть равна области изображения. Область, поддерживаемая субизображением переднего плана, может перекрываться с областью, поддерживаемой субизображением заднего плана. Субзображение заднего плана может быть базовым слоем субизображения, тогда как субизображение переднего плана может быть не-базовым (улучшающим) слоем субизображения. Один или более не-базовых слоев субизображения могут ссылаться на один и тот же базовый слой для декодирования. Каждый не-базовый слой субизображения с layer_id, равным а, может ссылаться на не-базовый слой субизображения с layer_id, равным b, где а больше b.[121] In the same or another embodiment, an image may be composed of one or more foreground sub-images and one background sub-image. The area supported by the background sub-image may be equal to the image area. The area supported by the foreground sub-image may overlap with the area supported by the background sub-image. The background sub-image may be a base sub-image layer, while the foreground sub-image may be a non-base (enhancement) sub-image layer. One or more non-base sub-image layers may refer to the same base layer for decoding. Each non-base subimage layer with layer_id equal to a may refer to a non-base subimage layer with layer_id equal to b, where a is greater than b.
[122] В том же или другом варианте осуществления изображение может состоять из одного или более субизображений переднего плана с субизображением заднего плана или без него. Каждое субизображение может иметь свой собственный базовый слой субизображения и один или более не-базовых (улучшающих) слоев. На каждый базовый слой субизображения может ссылаться один или более не-базовых слоев субизображения. Каждый не-базовый слой субизображения с layer_id, равным а, может ссылаться на не-базовый слой субизображения с layer_id, равным b, где а больше b.[122] In the same or another embodiment, the image may consist of one or more foreground sub-images with or without a background sub-image. Each sub-image may have its own base sub-image layer and one or more non-base (enhancement) layers. Each base subimage layer may be referenced by one or more non-base subimage layers. Each non-base subimage layer with layer_id equal to a may refer to a non-base subimage layer with layer_id equal to b, where a is greater than b.
[123] В том же или другом варианте осуществления изображение может состоять из одного или более субизображений переднего плана с субизображением заднего плана или без него. На каждое кодированное субизображение в (базовом или не-базовом) слое субизображения может ссылаться одно или более субизображений не-базового слоя, принадлежащих одному и тому же субизображению, и одно или более субизображений не-базового слоя, которые не принадлежат одному и тому же субизображению.[123] In the same or another embodiment, the image may consist of one or more foreground sub-images with or without a background sub-image. Each encoded sub-image in a (base or non-base) sub-image layer may be referenced by one or more non-base-layer sub-images that belong to the same sub-image and one or more non-base-layer sub-images that do not belong to the same sub-image .
[124] В том же или другом варианте осуществления изображение может состоять из одного или более субизображений переднего плана с субизображением заднего плана или без него. Субизображение в слое а может быть дополнительно разделено на множество субизображений в этом же слое. Одно или более кодированных субизображений в слое b могут ссылаться на разделенное субизображение в слое а.[124] In the same or another embodiment, the image may consist of one or more foreground sub-images with or without a background sub-image. The sub-image in layer a can be further divided into a plurality of sub-images in the same layer. One or more encoded sub-images in layer b may refer to a split sub-image in layer a.
[125] В том же или другом варианте осуществления кодированная видеопоследовательность (CVS) может быть группой кодированных изображений. CVS может состоять из одной или более последовательностей кодированных субизображений (CSPS), где CSPS может быть группой кодированных субизображений, покрывающих одну и ту же локальную область изображения. CSPS может иметь то же или другое временное разрешение, что и кодированная видеопоследовательность.[125] In the same or another embodiment, a coded video sequence (CVS) may be a group of coded pictures. The CVS may be composed of one or more coded sub-picture sequences (CSPS), where the CSPS may be a group of coded sub-pictures covering the same local area of an image. The CSPS may have the same or different temporal resolution as the encoded video sequence.
[126] В том же или другом варианте осуществления CSPS может быть кодирована и содержаться в одном или более слоях. CSPS может состоять из одного или более слоев CSPS. Декодирование одного или более слоев CSPS, соответствующих CSPS, может восстанавливать последовательность субизображений, соответствующих одной и той же локальной области.[126] In the same or another embodiment, the CSPS may be encoded and contained in one or more layers. The CSPS may be composed of one or more CSPS layers. Decoding one or more CSPS layers corresponding to the CSPS may recover a sequence of sub-images corresponding to the same local area.
[127] В том же или другом варианте осуществления количество слоев CSPS, соответствующих CSPS, может быть идентичным или отличаться от количества слоев CSPS, соответствующих другой CSPS.[127] In the same or another embodiment, the number of CSPS layers corresponding to a CSPS may be identical or different from the number of CSPS layers corresponding to another CSPS.
[128] В том же или другом варианте осуществления слой CSPS может иметь временное разрешение (например, частоту кадров), отличное от другого уровня CSPS. Исходная (несжатая) последовательность субизображений может подвергаться временной передискретизации (повышающей или понижающей дискретизации), кодироваться с различными параметрами временного разрешения и содержаться в битовом потоке, соответствующем слою.[128] In the same or another embodiment, a CSPS layer may have a different temporal resolution (eg, frame rate) than another CSPS layer. The original (uncompressed) sub-image sequence may be temporally resampled (upsampled or downsampled), encoded with different temporal resolution parameters, and contained in the bitstream corresponding to the layer.
[129] В том же или другом варианте осуществления последовательность субизображений с частотой кадров F может быть кодирована и содержаться в кодированном битовом потоке, соответствующем слою 0, в то время как последовательность субизображений с временной повышающей (или понижающей) дискретизацией из исходной последовательности субизображений с F*St,k может быть кодирована и содержаться в кодированном битовом потоке, соответствующем слою k, где St,k указывает коэффициент временной дискретизации для слоя k. Если значение St,k больше 1, процесс временной передискретизации равен преобразованию с повышением частоты кадров. Тогда как, если значение St,k меньше 1, процесс временной передискретизации равен преобразованию с понижением частоты кадров.[129] In the same or another embodiment, a sub-image sequence with frame rate F may be encoded and contained in the coded bitstream corresponding to
[130] В том же или другом варианте осуществления, когда субизображение со слоем CSPS а является ссылкой субизображения со слоем CSPS b для компенсации движения или любого межслойного предсказания, если пространственное разрешение слоя CSPS а отличается от пространственного разрешения слоя CSPS b, декодированные пиксели в слое CSPS а подвергаются передискретизации и используются для ссылки. Для процесса передискретизации может потребоваться фильтрация с повышающей или понижающей дискретизацией.[130] In the same or another embodiment, when the sub-image with CSPS layer a is a sub-image reference with CSPS layer b for motion compensation or any inter-layer prediction, if the spatial resolution of CSPS layer a is different from the spatial resolution of CSPS layer b, the decoded pixels in the layer CSPS a are resampled and used for reference. The resampling process may require upsampling or downsampling filtering.
[131] На фиг. 9 показан пример таблиц синтаксиса для сигнализации элемента синтаксиса vps_poc_cycle_au в VPS (или SPS), который указывает poc_cycle_au, используемый для всех изображений/слайсов в кодированной видеопоследовательности, и элемента синтаксиса slice_poc_cycle_au, который указывает рос_cycle_au текущего слайса в заголовке слайса. Если значение РОС увеличивается равномерно для каждой AU, vps_contant_poc_cycle_per_au в VPS устанавливается равным 1, и vps_poc_cycle_au сигнализируется в VPS. В этом случае slice_poc_cycle_au явно не сигнализируется, и значение AUC для каждой AU вычисляется путем деления значения РОС на vps_poc_cycle_au. Если значение РОС не увеличивается равномерно на AU, vps_contant_poc_cycle_per_au в VPS устанавливается равным 0. В этом случае vps_access_unit_cnt не сигнализируется, в то время как slice_access_unit_cnt сигнализируется в заголовке слайса для каждого слайса или изображения. Каждый слайс или изображение может иметь различное значение slice_access_unit_cnt. Значение AUC для каждой AU вычисляется путем деления значения РОС на slice_poc_cycle_au. На фиг. 10 показана блок-схема, иллюстрирующая соответствующий рабочий процесс.[131] FIG. 9 shows an example of syntax tables for signaling a vps_poc_cycle_au syntax element in a VPS (or SPS) that specifies the poc_cycle_au used for all pictures/slices in a coded video sequence, and a slice_poc_cycle_au syntax element that specifies the current slice's poc_cycle_au in the slice header. If the POC value increases evenly for each AU, vps_contant_poc_cycle_per_au in the VPS is set to 1 and vps_poc_cycle_au is signaled in the VPS. In this case slice_poc_cycle_au is not explicitly signaled and the AUC value for each AU is calculated by dividing the POC value by vps_poc_cycle_au. If the POC value does not increase uniformly per AU, vps_contant_poc_cycle_per_au in the VPS is set to 0. In this case, vps_access_unit_cnt is not signaled, while slice_access_unit_cnt is signaled in the slice header for each slice or picture. Each slice or image can have a different slice_access_unit_cnt value. The AUC value for each AU is calculated by dividing the POC value by slice_poc_cycle_au. In FIG. 10 is a flowchart illustrating the corresponding workflow.
[132] В тех же или других вариантах осуществления, даже если значение РОС изображения, слайса или тайла может быть другим, изображение, слайс или тайл, соответствующие AU с одинаковым значением AUC, могут быть связаны с одним и тем же моментом времени декодирования или вывода. Следовательно, без какой-либо зависимости от интерпарсинга и/или декодирования между изображениями, слайсами или тайлами в одной и той же AU, все или субнабор изображений, слайсов или тайлов, связанных с одной и той же AU, могут быть декодированы параллельно и могут быть выведены в один и тот же момент времени.[132] In the same or other embodiments, even though the POC value of an image, slice, or tile may be different, the image, slice, or tile corresponding to AUs with the same AUC value may be associated with the same decoding or output time. . Therefore, without any dependency on interparsing and/or decoding between images, slices or tiles in the same AU, all or a subset of the images, slices or tiles associated with the same AU can be decoded in parallel and can be taken out at the same time.
[133] В тех же или других вариантах осуществления, даже если значение РОС изображения, слайса или тайла может быть другим, изображение, слайс или тайл, соответствующие AU с одинаковым значением AUC, могут быть связаны с одним и тем же моментом времени компоновки/отображения. Когда время компоновки содержится в формате контейнера, даже если изображения соответствуют разным AU, если изображения имеют одинаковое время компоновки, изображения могут отображаться в один и тот же момент времени.[133] In the same or other embodiments, even though the POC value of an image, slice, or tile may be different, the image, slice, or tile corresponding to AUs with the same AUC value may be associated with the same layout/display time. . When the link time is contained in the container format, even if the images correspond to different AUs, if the images have the same link time, the images may be displayed at the same point in time.
[134] В тех же или других вариантах осуществления каждое изображение, слайс или тайл может иметь один и тот же временной идентификатор (temporal_id) в одной и той же AU. Все или субнабор изображений, слайсов или тайлов, соответствующих моменту времени, могут быть связаны с одним и тем же временным субслоем. В тех же или других вариантах осуществления каждое изображение, слайс или тайл может иметь одинаковый или другой идентификатор пространственного слоя (layer_id) в одной и той же AU. Все или субнабор изображений, слайсов или тайлов, соответствующих моменту времени, могут быть связаны с тем же или другим пространственным слоем.[134] In the same or other embodiments, each image, slice, or tile may have the same temporal identifier (temporal_id) in the same AU. All or a subset of images, slices or tiles corresponding to a point in time may be associated with the same temporal sublayer. In the same or different embodiments, each image, slice or tile may have the same or a different spatial layer identifier (layer_id) in the same AU. All or a subset of images, slices or tiles corresponding to a point in time may be associated with the same or a different spatial layer.
[135] На фиг. 11 показан примерный видеопоток, включающий в себя CSPS видео заднего плана с layer_id, равным 0, и множество слоев CSPS переднего плана. Хотя кодированное субизображение может состоять из одного или более слоев CSPS, область заднего плана, которая не принадлежит какому-либо слою CSPS переднего плана, может состоять из базового слоя. Базовый слой может содержать область заднего плана и области переднего плана, в то время как слой CSPS улучшения содержит область переднего плана. Слой CSPS улучшения может иметь лучшее визуальное качество, чем базовый слой, в той же области. Слой CSPS улучшения может ссылаться на восстановленные пиксели и векторы движения базового слоя, соответствующие одной и той же области.[135] FIG. 11 shows an exemplary video stream including a background CSPS video with layer_id equal to 0 and a plurality of foreground CSPS layers. Although the encoded sub-image may be composed of one or more CSPS layers, the background region that does not belong to any foreground CSPS layer may be composed of the base layer. The base layer may contain the background and foreground regions, while the enhancement layer CSPS contains the foreground region. The CSPS enhancement layer may have better visual quality than the base layer in the same area. The enhancement layer CSPS may refer to the reconstructed pixels and motion vectors of the base layer corresponding to the same area.
[136] В том же или другом варианте осуществления битовый поток видео, соответствующий базовому слою, содержится в дорожке, в то время как слои CSPS, соответствующие каждому субизображению, содержатся в отдельной дорожке в видеофайле.[136] In the same or another embodiment, the video bitstream corresponding to the base layer is contained in a track, while the CSPS layers corresponding to each sub-image are contained in a separate track in the video file.
[137] В том же или другом варианте осуществления битовый поток видео, соответствующий базовому слою, содержится в дорожке, в то время как слои CSPS с тем же layer_id содержатся в отдельной дорожке. В этом примере дорожка, соответствующая уровню к, включает в себя только слои CSPS, соответствующие слою k.[137] In the same or another embodiment, the video bitstream corresponding to the base layer is contained in a track, while the CSPS layers with the same layer_id are contained in a separate track. In this example, the track corresponding to layer k includes only the CSPS layers corresponding to layer k.
[138] В том же или другом варианте осуществления каждый слой CSPS каждого субизображения хранится в отдельной дорожке. Каждая дорожка может иметь или не иметь зависимость парсинга или декодирования от одной или более других дорожек.[138] In the same or different embodiment, each CSPS layer of each sub-image is stored in a separate track. Each track may or may not have a parsing or decoding dependency on one or more other tracks.
[139] В том же или другом варианте осуществления каждая дорожка может содержать битовые потоки, соответствующие слоям от i до j слоев CSPS всех или субнабора субизображений, где 0<r=j=k, k является слоем наибольшего уровня CSPS.[139] In the same or another embodiment, each track may contain bitstreams corresponding to layers i to j of CSPS layers of all or a subset of sub-images, where 0<r=j=k, k is the layer of the highest CSPS layer.
[140] В том же или другом варианте осуществления изображение состоит из одного или более связанных мультимедийных данных, включая карту глубины, альфа-карту, данные трехмерной геометрии, карту занятости и т.д. Такие связанные синхронизированные мультимедийные данные могут быть разделены на один или множество субпотоков данных, каждый из которых соответствует одному субизображению.[140] In the same or another embodiment, an image consists of one or more associated media data, including a depth map, an alpha map, 3D geometry data, an occupancy map, and so on. Such associated synchronized media data may be divided into one or multiple sub-data streams, each corresponding to one sub-picture.
[141] В том же или другом варианте осуществления на фиг. 12 показан пример видеоконференции, основанной на способе многослойных субизображений. В видеопотоке содержатся один битовый поток видео базового слоя, соответствующий изображению заднего плана, и один или более битовых потоков видео уровня улучшения, соответствующих субизображениям переднего плана. Каждый битовый поток видео слоя улучшения соответствует слою CSPS. На дисплее по умолчанию отображается изображение, соответствующее базовому слою. Он содержит изображение одного или более пользователей в изображении (PIP). Когда конкретный пользователь выбирается управлением клиента, слой CSPS улучшения, соответствующий выбранному пользователю, декодируется и отображается с улучшенным качеством или пространственным разрешением. На фиг. 13 показана блок-схема работы.[141] In the same or another embodiment, FIG. 12 shows an example of a video conference based on the layered sub-image method. The video stream contains one base layer video bitstream corresponding to the background image and one or more enhancement layer video bitstreams corresponding to the foreground sub-images. Each video bitstream of the enhancement layer corresponds to a CSPS layer. The default display shows the image corresponding to the base layer. It contains a picture of one or more users in a picture (PIP). When a particular user is selected by the client control, the enhancement layer CSPS corresponding to the selected user is decoded and displayed with enhanced quality or spatial resolution. In FIG. 13 shows a block diagram of operation.
[142] В том же или другом варианте осуществления промежуточный блок сети (такой как маршрутизатор) может выбирать субнабор слоев для отправки пользователю в зависимости от своей полосы пропускания. Организация изображения/субизображения может использоваться для адаптации полосы пропускания. Например, если у пользователя нет полосы пропускания, маршрутизатор разделяет слои или выбирает некоторые субизображения из-за их важности или на основе используемых настроек, и это может делаться динамически для адаптации к полосе пропускания.[142] In the same or a different embodiment, an intermediate network unit (such as a router) may select a subset of layers to send to the user depending on its bandwidth. Image/sub-image organization can be used for bandwidth adaptation. For example, if the user does not have bandwidth, the router splits layers or selects some sub-images because of their importance or based on the settings used, and this can be done dynamically to adapt to the bandwidth.
[143] На фиг. 14 показан пример использования 360-градусного видео. Когда сферическое 360-градусное изображение проецируется на плоское изображение, изображение проекции 360 может быть разделено на множество субизображений в качестве базового слоя. Слой улучшения конкретного субизображения может быть кодирован и передан клиенту. Декодер может декодировать как базовый слой, включающий в себя все субизображения, так и слой улучшения выбранного субизображения. Когда текущее окно просмотра идентично выбранному субизображению, отображаемое изображение может иметь более высокое качество с декодированным субизображением со слоем улучшения. В противном случае декодированное изображение с базовым слоем может отображаться с низким качеством.[143] FIG. 14 shows an example of using 360-degree video. When a spherical 360-degree image is projected onto a flat image, the projection image 360 may be divided into a plurality of sub-images as a base layer. A particular sub-image enhancement layer may be encoded and transmitted to the client. The decoder may decode both the base layer including all sub-images and the enhancement layer of the selected sub-image. When the current viewport is identical to the selected sub-image, the displayed image may be of higher quality with the decoded sub-image with the enhancement layer. Otherwise, the base layer decoded image may be displayed with low quality.
[144] В том же или другом варианте осуществления любая информация макета для отображения может присутствовать в файле в качестве дополнительной информации (например, сообщения SEI или метаданные). Одно или более декодированных субизображений могут быть перемещены и отображены в зависимости от переданной информации макета. Информация макета может быть передана сервером потоковой передачи или вещательной компанией, или может быть восстановлена сетевым объектом или облачным сервером, или может быть определена индивидуальной настройкой пользователя.[144] In the same or another embodiment, any layout information for display may be present in the file as additional information (eg, SEI messages or metadata). One or more decoded sub-images may be moved and displayed depending on the transmitted layout information. The layout information may be transmitted by a streaming server or a broadcaster, or may be retrieved by a network entity or a cloud server, or may be determined by user customization.
[145] В варианте осуществления, когда входное изображение делится на одну или более (прямоугольных) субобластей, каждая субобласть может кодироваться как независимый слой. Каждый независимый слой, соответствующий локальной области, может иметь уникальное значение layer_id. Для каждого независимого слоя может передаваться информация о размере и местоположении субизображения. Например, размер изображения (ширина, высота), информация о смещении левого верхнего угла (х_offset, y_offset). На фиг. 15 показан пример макета разделенных фрагментов изображения, информации о размере и положении его субизображений и его соответствующей структуры предсказания изображения. Информация макета, включая размер(ы) субизображения и положение(я) субизображения, может быть передана в синтаксической структуре высокого уровня, такой как набор(ы) параметров, заголовок группы слайсов или тайлов или сообщение SEI.[145] In an embodiment, when the input image is divided into one or more (rectangular) sub-regions, each sub-region may be encoded as an independent layer. Each independent layer corresponding to a local area can have a unique layer_id value. For each independent layer, information about the size and location of the sub-image can be transmitted. For example, image size (width, height), information about the offset of the upper left corner (х_offset, y_offset). In FIG. 15 shows an example of a split image layout, size and position information of its sub-images, and its corresponding image prediction structure. Layout information, including sub-image size(s) and sub-image position(s), may be conveyed in a high-level syntax structure such as a parameter set(s), a slice or tile group header, or an SEI message.
[146] В том же варианте осуществления каждое субизображение, соответствующее независимому слою, может иметь свое уникальное значение РОС в пределах AU. Когда опорное изображение среди изображений, хранящихся в DPB, указывается с использованием элемента(ов) синтаксиса в структуре RPS или RPL, может использоваться значение(я) РОС каждого субизображения, соответствующего слою.[146] In the same embodiment, each sub-image corresponding to an independent layer may have its own unique POC value within the AU. When a reference image among the images stored in the DPB is specified using the syntax element(s) in the RPS or RPL structure, the POC value(s) of each sub-image corresponding to the layer may be used.
[147] В том же или другом варианте осуществления, чтобы указать структуру (межслойного) предсказания, layer_id может не использоваться, и может использоваться значение РОС (дельта).[147] In the same or another embodiment, to indicate the structure of the (interlayer) prediction, layer_id may not be used, and a POC (delta) value may be used.
[148] В том же варианте осуществления субизображение со значением РОС, равным N, соответствующее слою (или локальной области), может использоваться или не использоваться в качестве опорного изображения субизображения со значением РОС, равным N+K, соответствующего тому же слою (или той же локальной области) для предсказания с компенсацией движения. В большинстве случаев значение числа K может быть равно максимальному количеству (независимых) слоев, которое может быть идентично количеству субобластей.[148] In the same embodiment, a sub-image with a POC value of N corresponding to a layer (or a local area) may or may not be used as a reference image of a sub-image with a POC value of N+K corresponding to the same layer (or the same same local area) for motion-compensated prediction. In most cases, the value of the K number may be equal to the maximum number of (independent) layers, which may be identical to the number of subregions.
[149] В том же или другом варианте осуществления на фиг. 16 показан расширенный пример с фиг. 15. Когда входное изображение разделено на множество (например, четыре) субобластей, каждая локальная область может быть кодирована с одним или более слоями. В этом случае количество независимых слоев может быть равно количеству субобластей, и один или более слоев могут соответствовать субобласти. Таким образом, каждая субобласть может быть кодирована одним или более независимых слоев и нулем или более зависимых слоев.[149] In the same or another embodiment, FIG. 16 shows an extended example of FIG. 15. When the input image is divided into multiple (eg, four) sub-regions, each local region may be encoded with one or more layers. In this case, the number of independent layers may be equal to the number of sub-regions, and one or more layers may correspond to a sub-region. Thus, each sub-region may be encoded with one or more independent layers and zero or more dependent layers.
[150] В том же варианте, показанном на фиг. 16, входное изображение может быть разделено на четыре субобласти. Правая верхняя субобласть может быть кодирована как два слоя, которые являются слоем 1 и слоем 4, в то время как правая нижняя субобласть может быть кодирована как два слоя, которые являются слоем 3 и слоем 5. В этом случае слой 4 может ссылаться на слой 1 для предсказания с компенсацией движения, тогда как слой 5 может ссылаться на слой 3 для компенсации движения.[150] In the same embodiment shown in FIG. 16, the input image may be divided into four sub-regions. The upper right sub-region may be encoded as two layers, which are
[151] В том же или другом варианте осуществления внутриконтурная фильтрация (например, деблокирующая фильтрация, адаптивная внутриконтурная фильтрация, изменение формы, двусторонняя фильтрация или любая фильтрация на основе глубокого обучения) через границу слоя может быть (опционально) отключена.[151] In the same or another embodiment, in-loop filtering (eg, deblocking filtering, adaptive in-loop filtering, reshaping, two-way filtering, or any deep learning-based filtering) across the layer boundary can be (optionally) disabled.
[152] В том же или другом варианте осуществления предсказание с компенсацией движения или внутриблочное копирование через границу слоя может быть (опционально) отключено.[152] In the same or another embodiment, motion-compensated prediction or intra-block copying across a layer boundary can be (optionally) disabled.
[153] В том же или другом варианте осуществления граничное заполнение для предсказания с компенсацией движения или внутриконтурная фильтрация на границе субизображения может обрабатываться опционально. Флаг, указывающий, обрабатывается ли граничное заполнение или нет, может передаваться в синтаксической структуре высокого уровня, такой как набор(ы) параметров (VPS, SPS, PPS или APS), заголовок группы слайсов или тайлов или сообщение SEI.[153] In the same or another embodiment, boundary padding for motion-compensated prediction or in-loop filtering at a sub-image boundary may be optionally processed. A flag indicating whether edge padding is handled or not may be conveyed in a high-level syntax structure such as a parameter set(s) (VPS, SPS, PPS, or APS), a slice or tile group header, or an SEI message.
[154] В том же или другом варианте осуществления информация макета субобласти(ей) (или субизображения(й)) может передаваться в VPS или SPS. На фиг. 17 показан пример элементов синтаксиса в VPS и SPS. В этом примере vps_sub_picture_dividing_flag передается в VPS. Флаг может указывать, разделено ли входное(ые) изображение(я) на множество субобластей или нет. Когда значение vps_sub_picture_dividing_flag равно 0, входное изображение(я) в кодированной видеопоследовательности(ях), соответствующей текущей VPS, не может быть разделено на несколько субобластей. В этом случае размер входного изображения может быть равен размеру кодированного изображения (pic_width_in_luma_samples, pic_height_in_luma_samples), который сигнализируется в SPS. Когда значение vps_sub_picture_dividing_flag равно 1, входное изображение(я) может быть разделено на множество субобластей. В этом случае элементы синтаксиса vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples сигнализируются в VPS. Значения vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples могут быть равны ширине и высоте входного изображения(й) соответственно.[154] In the same or another embodiment, layout information of the sub-area(s) (or sub-image(s)) may be transmitted to the VPS or SPS. In FIG. 17 shows an example of syntax elements in VPS and SPS. In this example, the vps_sub_picture_dividing_flag is passed to the VPS. The flag may indicate whether the input(s) image(s) is divided into multiple sub-areas or not. When the value of vps_sub_picture_dividing_flag is 0, the input picture(s) in the encoded video sequence(s) corresponding to the current VPS cannot be divided into multiple sub-regions. In this case, the size of the input image may be equal to the size of the encoded image (pic_width_in_luma_samples, pic_height_in_luma_samples) that is signaled in the SPS. When the value of vps_sub_picture_dividing_flag is 1, the input image(s) can be divided into a plurality of sub-regions. In this case, the syntax elements vps_full_pic_width_in_luma_samples and vps_full_pic_height_in_luma_samples are signaled to the VPS. The values vps_full_pic_width_in_luma_samples and vps_full_pic_height_in_luma_samples can be equal to the width and height of the input image(s), respectively.
[155] В том же варианте осуществления значения vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples не могут использоваться для декодирования, но могут использоваться для компоновки и отображения.[155] In the same embodiment, the values vps_full_pic_width_in_luma_samples and vps_full_pic_height_in_luma_samples cannot be used for decoding, but can be used for layout and display.
[156] В том же варианте осуществления, когда значение vps_sub_picture_dividing_flag равно 1, элементы синтаксиса pic_offset_х и pic_offset_у могут передаваться в SPS, что соответствует конкретному слою (слоям). В этом случае размер кодированного изображения (pic_width_in_luma_samples, pic_height_in_luma_samples), передаваемый в SPS, может быть равен ширине и высоте субобласти, соответствующей конкретному слою. Также, положение (pic_offset_х, pic_offset_у) левого верхнего угла субобласти может передаваться в SPS.[156] In the same embodiment, when the value of vps_sub_picture_dividing_flag is equal to 1, the syntax elements pic_offset_x and pic_offset_y can be transmitted in the SPS corresponding to the particular layer(s). In this case, the size of the encoded image (pic_width_in_luma_samples, pic_height_in_luma_samples) transmitted in the SPS may be equal to the width and height of the sub-region corresponding to a particular layer. Also, the position (pic_offset_x, pic_offset_y) of the upper left corner of the sub-area may be transmitted to the SPS.
[157] В том же варианте осуществления информация о положении (pic_offset_x, pic_offset_y) левого верхнего угла субобласти не может использоваться для декодирования, но может использоваться для компоновки и отображения.[157] In the same embodiment, the position information (pic_offset_x, pic_offset_y) of the upper left corner of the sub-area cannot be used for decoding, but can be used for layout and display.
[158] В том же или другом варианте осуществления информация макета (размер и положение) всех или субнабора субобластей входного изображения(й), информация о зависимости между слоем (слоями) может сигнализироваться в наборе параметров или сообщении SEI. На фиг. 18 показан пример элементов синтаксиса для указания информации о макете субобластей, зависимости между слоями и отношения между субобластью и одним или более слоями. В этом примере элемент синтаксиса num_sub_region указывает количество (прямоугольных) субобластей в текущей кодированной видеопоследовательности; элемент синтаксиса num_layers указывает количество слоев в текущей кодированной видеопоследовательности. Значение num_layers может быть равно или больше значения num_sub_region. Когда любая субобласть кодируется как один слой, значение num_layers может быть равно значению num_sub_region. Когда одна или более субобластей кодируются как множество слоев, значение num_layers может быть больше, чем значение num_sub_region. Элемент синтаксиса direct_dependency_flag [i] [j] указывает зависимость от j-го уровня к i-му уровню; num_layers_for_region [i] указывает количество слоев, связанных с i-й субобластью; sub_region_layer_id [i] [j] указывает layer_id j-го слоя, связанного с i-й субобластью. Значения sub_region_offset_х [i] и sub_region_offset_у [i] указывают, соответственно, горизонтальное и вертикальное положение левого верхнего угла i-й субобласти. Значения sub_region_width [i] и sub_region_height [i] указывают, соответственно, ширину и высоту i-й субобласти.[158] In the same or another embodiment, layout information (size and position) of all or a subset of sub-areas of the input image(s), dependency information between layer(s) may be signaled in a parameter set or SEI message. In FIG. 18 shows an example of syntax elements for specifying information about the layout of subregions, dependencies between layers, and relationships between a subregion and one or more layers. In this example, the num_sub_region syntax element indicates the number of (rectangular) sub-regions in the current encoded video sequence; the num_layers syntax element specifies the number of layers in the current encoded video sequence. The num_layers value can be equal to or greater than the num_sub_region value. When any sub-region is encoded as a single layer, the value of num_layers may be equal to the value of num_sub_region. When one or more sub-regions are encoded as multiple layers, the value of num_layers may be greater than the value of num_sub_region. The syntax element direct_dependency_flag [i] [j] indicates a dependency from the jth level to the i-th level; num_layers_for_region [i] indicates the number of layers associated with the i-th sub-region; sub_region_layer_id [i] [j] indicates the layer_id of the j-th layer associated with the i-th sub-region. The values sub_region_offset_x[i] and sub_region_offset_y[i] indicate, respectively, the horizontal and vertical position of the upper left corner of the i-th sub-region. The sub_region_width [i] and sub_region_height [i] values indicate the width and height of the i-th subregion, respectively.
[159] В одном варианте осуществления один или более элементов синтаксиса, которые задают набор выходных слоев для указания одного или более слоев, которые должны выводиться с информацией уровня яруса профиля или без нее, могут передаваться в синтаксической структуре высокого уровня, например VPS, DPS, SPS, PPS APS или сообщение SEI. Обращаясь к фиг. 19, элемент синтаксиса num_output_layer_sets, указывающий количество наборов выходных слоев (OLS) в кодированной видеопоследовательности, относящейся к VPS, может передаваться в VPS. Для каждого набора выходных слоев output_layer_flag может передаваться столько, сколько имеется выходных слоев.[159] In one embodiment, one or more syntax elements that define a set of output layers to specify one or more layers to be output with or without profile tier information may be conveyed in a high-level syntax structure, such as VPS, DPS, SPS, PPS APS or SEI message. Referring to FIG. 19, a num_output_layer_sets syntax element indicating the number of output layer sets (OLS) in a coded video sequence related to the VPS may be transmitted to the VPS. For each set of output layers, the output_layer_flag can be passed as many as there are output layers.
[160] В том же варианте осуществления output_layer_flag [i], равное 1, задает, что выводится i-й слой; vps_output_layer_flag [i], равное 0, задает, что i-й слой не выводится.[160] In the same embodiment, output_layer_flag [i] equal to 1 specifies that the i-th layer is output; vps_output_layer_flag [i] equal to 0 specifies that the i-th layer is not output.
[161] В том же или другом варианте осуществления один или более элементов синтаксиса, которые задают информацию уровня яруса профиля для каждого набора выходных слоев, могут передаваться в синтаксической структуре высокого уровня, например VPS, DPS, SPS, PPS, APS или сообщении SEI. По-прежнему обращаясь к фиг. 19, элемент синтаксиса num_profile_tile_level, указывающий количество информации уровня яруса профиля на OLS в кодированной видеопоследовательности, относящейся к VPS, может сигнализироваться в VPS. Для каждого набора выходных слоев набор элементов синтаксиса для информации уровня яруса профиля или индекс, указывающий конкретную информацию уровня яруса профиля среди записей в информации уровня яруса профиля, может сигнализироваться столько, сколько имеется выходных слоев.[161] In the same or a different embodiment, one or more syntax elements that specify profile tier information for each set of output layers may be conveyed in a high-level syntax structure, such as a VPS, DPS, SPS, PPS, APS, or SEI message. Still referring to FIG. 19, the num_profile_tile_level syntax element indicating the amount of profile tier information on the OLS in the encoded video sequence related to the VPS may be signaled to the VPS. For each set of output layers, a set of syntax elements for profile tier information or an index indicating specific profile tier information among entries in the profile tier information may be signaled as many as there are output layers.
[162] В том же варианте осуществления profile_tier_level_idx [i] [j] задает индекс в списке синтаксических структур profile_tier_level () в VPS синтаксической структуры profile_tier_level (), которая применяется к j-му слою i-го OLS.[162] In the same embodiment, profile_tier_level_idx[i][j] specifies an index in the list of profile_tier_level() syntax structures in the VPS of the profile_tier_level() syntax structure that applies to the j-th layer of the i-th OLS.
[163] В том же или другом варианте осуществления, как показано на фиг. 20, элементы синтаксиса num_profile_tile_level и/или num_output_layer_sets могут сигнализироваться, когда количество максимальных слоев больше 1 (vps_max_layers_minus 1>0).[163] In the same or different embodiment, as shown in FIG. 20, the syntax elements num_profile_tile_level and/or num_output_layer_sets may be signaled when the number of maximum layers is greater than 1 (
[164] В том же или другом варианте осуществления, как показано на фиг. 20, элемент синтаксиса vps_output_layers_mode [i], указывающий режим сигнализации выходного слоя для i-го набора выходных слоев, может присутствовать в VPS.[164] In the same or different embodiment, as shown in FIG. 20, the vps_output_layers_mode[i] syntax element indicating the output layer signaling mode for the i-th set of output layers may be present in the VPS.
[165] В том же варианте осуществления vps_output_layers_mode [i], равное 0, указывает, что только самый верхний слой выводится с i-м набором выходных слоев; vps_output_layer_mode [i], равное 1, указывает, что все слои выводятся с i-м набором выходных слоев; vps_output_laye_ mode [i], равное 2, указывает, что выводимые слои - это слои с vps_output_layer_flag [i] [j], равным 1, с i-м набором выходных слоев. Могут быть зарезервированы другие значения.[165] In the same embodiment, vps_output_layers_mode[i] equal to 0 indicates that only the topmost layer is output with the i-th set of output layers; vps_output_layer_mode [i] equal to 1 indicates that all layers are output with the i-th set of output layers; vps_output_laye_mode[i] equal to 2 indicates that the output layers are layers with vps_output_layer_flag[i][j] equal to 1, with the i-th set of output layers. Other values may be reserved.
[166] В том же варианте осуществления output_layer_flag [i] [j] может сигнализироваться или не сигнализироваться в зависимости от значения vps_output_layers_mode [i] для i-го набора выходных слоев.[166] In the same embodiment, output_layer_flag[i][j] may or may not be signaled depending on the value of vps_output_layers_mode[i] for the i-th set of output layers.
[167] В том же или другом варианте осуществления, как показано на фиг. 20, флаг vps_pt1_signal_flag [i] может присутствовать для i-го набора выходных слоев. В зависимости от значения vps_pt1_signal_flag [i] информация уровня яруса профиля для i-го набора выходных слоев может сигнализироваться или не сигнализироваться.[167] In the same or different embodiment, as shown in FIG. 20, the vps_pt1_signal_flag[i] flag may be present for the i-th set of output layers. Depending on the value of vps_pt1_signal_flag[i], the profile tier information for the i-th set of output layers may or may not be signaled.
[168] В том же или другом варианте осуществления, как показано на фиг. 21, номер субизображения, max_subpics_minus1, в текущем CVS может сигнализироваться в синтаксической структуре высокого уровня, например, в VPS, DPS, SPS, PPS, APS или сообщении SEI.[168] In the same or different embodiment, as shown in FIG. 21, the subpicture number, max_subpics_minus1, in the current CVS may be signaled in a high-level syntax structure, such as in a VPS, DPS, SPS, PPS, APS, or SEI message.
[169] В том же варианте осуществления, как показано на фиг. 21, идентификатор субизображения, sub_pic_id [i], для i-го субизображения может сигнализироваться, когда количество субизображений больше 1 (max_subpics_minus1>0).[169] In the same embodiment, as shown in FIG. 21, the sub-picture ID, sub_pic_id[i], for the i-th sub-picture may be signaled when the number of sub-pictures is greater than 1 (max_subpics_minus1>0).
[170] В том же или другом варианте осуществления один или более элементов синтаксиса, указывающих идентификатор субизображения, принадлежащий каждому слою каждого набора выходных слоев, могут сигнализироваться в VPS. Обращаясь к фиг. 22, sub_pic_id_layer [i] [j] [k], который указывает k-e субизображение, присутствующее в j-м слое i-го набора выходных слоев. С помощью этой информации декодер может определить, какое субизображение может быть декодировано и выведено для каждого слоя конкретного набора выходных слоев.[170] In the same or a different embodiment, one or more syntax elements indicating a sub-image identifier belonging to each layer of each set of output layers may be signaled to the VPS. Referring to FIG. 22, sub_pic_id_layer[i][j][k], which indicates the k-th sub-image present in the j-th layer of the i-th set of output layers. With this information, the decoder can determine which sub-image can be decoded and output for each layer of a particular set of output layers.
[171] В варианте осуществления заголовок изображения (РН) представляет собой синтаксическую структуру, содержащую элементы синтаксиса, которые применяются ко всем слайсам кодированного изображения. Единица изображения (PU) - это набор единиц NAL, которые связаны друг с другом согласно заданному правилу классификации, являются последовательными в порядке декодирования и содержат ровно одно кодированное изображение. PU может содержать заголовок изображения (РН) и один или более единиц NAL VCL, составляющих кодированное изображение.[171] In an embodiment, a picture header (PH) is a syntactic structure containing syntax elements that apply to all slices of an encoded picture. A picture unit (PU) is a set of NAL units that are related to each other according to a given classification rule, are sequential in decoding order, and contain exactly one encoded picture. The PU may contain a picture header (PH) and one or more VCL NAL units constituting the encoded picture.
[172] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным 0, или предоставлен через внешние средства.[172] In an embodiment, the SPS (RBSP) may be available to the decoding process before being referenced, included in at least one AU with TemporalId equal to 0, or provided through external means.
[173] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по крайней мере в одну AU с TemporalId, равным 0, в CVS, который содержит один или более PPS, относящихся к SPS, или предоставлен через внешние средства.[173] In an embodiment, the SPS (RBSP) may be available to the decoding process before it is referenced, it will be included in at least one AU with TemporalId equal to 0 in a CVS that contains one or more PPS, related to the SPS, or provided through external means.
[174] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS в CVS, который содержит один или более PPS, относящихся к SPS, или предоставлен через внешние средства.[174] In an embodiment, an SPS (RBSP) may be available to a decoding process before it is referenced by one or more PPSs, it will be included in at least one PU with a nuh_layer_id equal to the lowest nuh_layer_id value of the PPS NAL units that refers to an SPS NAL unit in a CVS that contains one or more SPS-related PPSs or is provided through external means.
[175] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с TemporalId, равным 0, и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS или предоставлены через внешние средства.[175] In an embodiment, an SPS (RBSP) may be available to the decoding process before it is referenced by one or more PPSs, it will be included in at least one PU with TemporalId equal to 0 and nuh_layer_id equal to the lowest value The nuh_layer_id of the PPS NAL units that belong to the SPS NAL unit or are provided through external means.
[176] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с TemporalId, равным 0 и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS в CVS, который содержит один или более PPS, относящихся к SPS, или предоставлен через внешние средства.[176] In an embodiment, an SPS (RBSP) may be available to the decoding process before it is referenced by one or more PPSs, it will be included in at least one PU with TemporalId equal to 0 and nuh_layer_id equal to the lowest value of nuh_layer_id PPS NAL units that refer to an SPS NAL unit in a CVS that contains one or more SPS related PPS or is provided through external means.
[177] В том же или другом варианте осуществления pps_seq_parameter_set_id указывает значение sps_seq_parameter_set_id для SPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.[177] In the same or a different embodiment, pps_seq_parameter_set_id indicates the sps_seq_parameter_set_id value for the SPS that is being referenced. The value of pps_seq_parameter_set_id may be the same in all PPS referenced by encoded pictures in CLVS.
[178] В том же или другом варианте осуществления все единицы NAL SPS с конкретным значением sps_seq_parameter_set_id в CVS могут иметь одинаковое содержимое.[178] In the same or another embodiment, all SPS NAL units with a particular sps_seq_parameter_set_id value in CVS may have the same content.
[179] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, единицы NAL SPS могут совместно использовать одно и то же пространство значений sps_seq_parameter_set_id.[179] In the same or another embodiment, regardless of the nuh_layer_id values, the SPS NAL units may share the same sps_seq_parameter_set_id value space.
[180] В том же или другом варианте осуществления значение nuh_layer_id единицы NAL SPS может быть равно наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS.[180] In the same or another embodiment, the nuh_layer_id value of the SPS NAL unit may be equal to the smallest nuh_layer_id value of the PPS NAL units that belong to the SPS NAL unit.
[181] В варианте осуществления, когда на SPS с nuh_layer_id, равным m, делается ссылка одним или более PPS с nuh_layer_id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.[181] In an embodiment, when an SPS with nuh_layer_id equal to m is referenced by one or more PPS with nuh_layer_id equal to n, the layer with nuh_layer_id equal to m may be the same as the layer with nuh_layer_id equal to n, or ( direct or indirect) reference layer of a layer with nuh_layer_id equal to m.
[182] В варианте осуществления PPS (RBSP) должен быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS, или предоставлен через внешние средства.[182] In an embodiment, the PPS (RBSP) must be available to the decoding process before being referenced, included in at least one AU with a TemporalId equal to the TemporalId of the PPS NAL unit, or provided through external means.
[183] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированного слайса), относящихся к PPS, или предоставлен через внешние средства.[183] In an embodiment, the PPS (RBSP) may be available to the decoding process before it is referenced, it will be included in at least one AU with a TemporalId equal to the TemporalId of the PPS NAL unit in the CVS that contains one or more PH (or coded slice NAL units) related to the PPS or provided through external means.
[184] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более РН (или единиц NAL кодированного слайса), он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.[184] In an embodiment, a PPS (RBSP) may be available to the decoding process before it is referenced by one or more PHs (or encoded slice NAL units), it will be included in at least one PU with nuh_layer_id equal to the lowest to the nuh_layer_id value of the coded slice NAL units that refer to the PPS NAL unit in the CVS, which contains one or more PHs (or coded slice NAL units) related to the PPS, or is provided through external means.
[185] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более РН (или единиц NAL кодированного слайса), он будет включен по меньшей мере в одну PU с TemporalId, равным TemporalId единицы NAL PPS и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.[185] In an embodiment, a PPS (RBSP) may be available to the decoding process before it is referenced by one or more PHs (or encoded slice NAL units), it will be included in at least one PU with TemporalId equal to TemporalId a PPS NAL unit and a nuh_layer_id equal to the lowest value of the nuh_layer_id coded slice NAL units that refer to a PPS NAL unit in a CVS that contains one or more PPS-specific PHs (or coded slice NAL units) or is provided through external means.
[186] В том же или другом варианте осуществления ph_pic_parameter_set_id в РН указывает значение pps_pic_parameter_set_id для используемого PPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.[186] In the same or a different embodiment, the ph_pic_parameter_set_id in the PH indicates the value of pps_pic_parameter_set_id for the referenced PPS in use. The value of pps_seq_parameter_set_id may be the same in all PPS referenced by encoded pictures in CLVS.
[187] В том же или другом варианте осуществления все единицы NAL PPS с конкретным значением pps_pic_parameter_set_id в PU могут иметь одно и то же содержимое.[187] In the same or another embodiment, all PPS NAL units with a particular pps_pic_parameter_set_id value in a PU may have the same content.
[188] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, единицы NAL PPS могут совместно использовать одно и то же пространство значений pps_pic_parameter_set_id.[188] In the same or another embodiment, regardless of the nuh_layer_id values, PPS NAL units may share the same pps_pic_parameter_set_id value space.
[189] В том же или другом варианте осуществления значение nuh_layer_id единицы NAL PPS может быть равно наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые ссылаются на единицу NAL PPS.[189] In the same or another embodiment, the nuh_layer_id value of the PPS NAL unit may be equal to the smallest nuh_layer_id value of the coded slice NAL units that refer to the PPS NAL unit.
[190] В варианте осуществления, когда на PPS с nuh_layer_id, равным m, делается ссылка одной или более единицами NAL кодированного слайса с nuh_laye_ id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.[190] In an embodiment, when a PPS with nuh_layer_id equal to m is referenced by one or more encoded slice NAL units with nuh_laye_ id equal to n, the layer with nuh_layer_id equal to m may be the same as the layer with nuh_layer_id equal to n, or (directly or indirectly) the reference layer of a layer with nuh_layer_id equal to m.
[191] В варианте осуществления PPS (RBSP) должен быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS, или предоставлен через внешние средства.[191] In an embodiment, the PPS (RBSP) must be available to the decoding process before being referenced, included in at least one AU with a TemporalId equal to the TemporalId of the PPS NAL unit, or provided through external means.
[192] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированного слайса), относящихся к PPS, или предоставлен через внешние средства.[192] In an embodiment, the PPS (RBSP) may be available to the decoding process before it is referenced, it will be included in at least one AU with a TemporalId equal to the TemporalId of the PPS NAL unit in the CVS that contains one or more PH (or coded slice NAL units) related to the PPS or provided through external means.
[193] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более РН (или единиц NAL кодированного слайса), он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.[193] In an embodiment, a PPS (RBSP) may be available to the decoding process before it is referenced by one or more PHs (or encoded slice NAL units), it will be included in at least one PU with nuh_layer_id equal to the lowest to the nuh_layer_id value of the coded slice NAL units that refer to the PPS NAL unit in the CVS, which contains one or more PHs (or coded slice NAL units) related to the PPS, or is provided through external means.
[194] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более РН (или единиц NAL кодированного слайса), он будет включен по меньшей мере в одну PU с TemporalId, равным TemporalId единицы NAL PPS и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.[194] In an embodiment, a PPS (RBSP) may be available to the decoding process before it is referenced by one or more PHs (or encoded slice NAL units), it will be included in at least one PU with TemporalId equal to TemporalId a PPS NAL unit and a nuh_layer_id equal to the lowest value of the nuh_layer_id coded slice NAL units that refer to a PPS NAL unit in a CVS that contains one or more PPS-specific PHs (or coded slice NAL units) or is provided through external means.
[195] В том же или другом варианте осуществления ph_pic_parameter_set_id в РН указывает значение pps_pic_parameter_set_id для используемого PPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.[195] In the same or a different embodiment, the ph_pic_parameter_set_id in the PH indicates the value of pps_pic_parameter_set_id for the referenced PPS in use. The value of pps_seq_parameter_set_id may be the same in all PPS referenced by encoded pictures in CLVS.
[196] В том же или другом варианте осуществления все единицы NAL PPS с конкретным значением pps_pic_parameter_set_id в PU могут иметь одно и то же содержимое.[196] In the same or another embodiment, all PPS NAL units with a particular pps_pic_parameter_set_id value in a PU may have the same content.
[197] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, единицы NAL PPS могут совместно использовать одно и то же пространство значений pps_pic_parameter_set_id.[197] In the same or another embodiment, regardless of the nuh_layer_id values, PPS NAL units may share the same pps_pic_parameter_set_id value space.
[198] В том же или другом варианте осуществления значение nuh_layer_id единицы NAL PPS может быть равно наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые ссылаются на единицу NAL PPS.[198] In the same or another embodiment, the nuh_layer_id value of the PPS NAL unit may be equal to the smallest nuh_layer_id value of the coded slice NAL units that refer to the PPS NAL unit.
[199] В варианте осуществления, когда на PPS с nuh_layer_id, равным m, делается ссылка одной или более единицами NAL кодированного слайса с nuh_layer_id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.[199] In an embodiment, when a PPS with nuh_layer_id equal to m is referenced by one or more encoded slice NAL units with nuh_layer_id equal to n, the layer with nuh_layer_id equal to m may be the same as the layer with nuh_layer_id equal to n , or (directly or indirectly) the reference layer of the layer with nuh_layer_id equal to m.
[200] В варианте осуществления, когда флаг no_temporal_sublayer_switching_flag сигнализируется в DPS, VPS или SPS, значение TemporalId PPS, относящееся к набору параметров, содержащему флаг, равный 1, может быть равно 0, в то время как значение TemporalId PPS, ссылающегося на набор параметров, содержащий флаг, равный 1, может быть равным или превышать значение TemporalId набора параметров.[200] In an embodiment, when the no_temporal_sublayer_switching_flag flag is signaled to the DPS, VPS, or SPS, the TemporalId value of the PPS referring to the parameter set containing the flag equal to 1 may be 0, while the TemporalId value of the PPS referring to the parameter set A containing a flag of 1 can be equal to or greater than the TemporalId value of the option set.
[201] В варианте осуществления каждый PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, меньшим или равным TemporalId единицы NAL кодированного слайса (или единицы NAL РН), которая ссылается на него или предоставляется через внешние средства. Когда блок NAL PPS включен в AU до того, как AU, содержащая единицу NAL кодированного слайса, относящуюся к PPS, единица NAL VCL, обеспечивающая временное переключение верхнего слоя, или единица NAL VCL с nal_unit_type, равным STSA NUT, что указывает на то, что изображение в единице NAL VCL может быть изображением пошагового доступа к временному субслою (STSA), может не присутствовать после единицы NAL PPS и до единицы NAL кодированного слайса, ссылающейся на APS.[201] In an embodiment, each PPS (RBSP) may be available to the decoding process before it is referenced, it will be included in at least one AU with a TemporalId less than or equal to the TemporalId of the encoded slice NAL unit (or NAL unit PH) that references it or is provided through external means. When a PPS NAL unit is included in an AU before an AU containing a PPS-related coded slice NAL unit, a VCL NAL unit providing upper layer temporal switching, or a VCL NAL unit with nal_unit_type equal to STSA NUT, indicating that the picture in the VCL NAL unit may be a Stepwise Temporal Sublayer Access (STSA) picture, may not be present after the PPS NAL unit and before the coded slice NAL unit referring to the APS.
[202] В том же или другом варианте осуществления единица NAL PPS и единица NAL кодированного слайса (и его единица NAL РН), ссылающиеся на PPS, могут быть включены в одну и ту же AU.[202] In the same or another embodiment, a PPS NAL unit and a coded slice NAL unit (and its PH NAL unit) referring to a PPS may be included in the same AU.
[203] В том же или другом варианте осуществления единица NAL PPS и единица NAL STS А могут быть включены в одну и ту же AU, которая предшествует единице NAL кодированного слайса (и его единице NAL РН), ссылающейся на PPS.[203] In the same or a different embodiment, the PPS NAL unit and the STS A NAL unit may be included in the same AU that precedes the coded slice NAL unit (and its PH NAL unit) referring to the PPS.
[204] В том же или другом варианте осуществления единица NAL STSA, единица NAL PPS и единица NAL кодированного слайса (и его единица NAL РН), ссылающиеся на PPS, могут быть включены в одну и ту же AU.[204] In the same or another embodiment, an STSA NAL unit, a PPS NAL unit, and a coded slice NAL unit (and its PH NAL unit) referring to a PPS may be included in the same AU.
[205] В том же варианте осуществления значение TemporalId единицы NAL VCL, содержащей PPS, может быть равно значению TemporalId предыдущей единицы NAL STSA.[205] In the same embodiment, the TemporalId value of the VCL NAL unit containing the PPS may be equal to the TemporalId value of the previous STSA NAL unit.
[206] В том же варианте осуществления значение счетчика порядка изображений (РОС) единицы NAL PPS может быть равно или больше, чем значение РОС единицы NAL STSA.[206] In the same embodiment, the value of the picture order counter (POC) of the NAL PPS unit may be equal to or greater than the value of the POC of the NAL STSA unit.
[207] В том же варианте осуществления значение счетчика порядка изображений (РОС) кодированного слайса или единицы NAL РН, которое относится к единице NAL PPS, может быть равным или большим, чем значение РОС упомянутой единицы NAL PPS.[207] In the same embodiment, the value of the picture order counter (POC) of the coded slice or NAL unit PH that refers to the PPS NAL unit may be equal to or greater than the POC value of said PPS NAL unit.
[208] В варианте осуществления значение sps_max_sublayers_minus1 должно быть одинаковым для всех слоев в кодированной видеопоследовательности, потому что все единицы NAL VCL в AU должны иметь одинаковое значение TemporalId. Значение sps_max_sublayers_minus1 должно быть одинаковым во всех SPS, на которые ссылаются кодированные изображения в CVS.[208] In an embodiment, the value of sps_max_sublayers_minus1 must be the same for all layers in the encoded video sequence because all VCL NAL units in the AU must have the same TemporalId value. The value of sps_max_sublayers_minus1 must be the same across all SPS referenced by encoded images in CVS.
[209] В варианте осуществления значение chroma_format_idc для SPS, на которое ссылается одно или более кодированных изображений в слое А, должно быть равно значению chroma_format_idc в SPS, на которое ссылается одно или более кодированных изображений в слое В, где слой А является прямым опорным слоем слоя В. Это связано с тем, что любое кодированное изображение должно иметь то же значение chroma_format_idc, что и его опорное изображение. Значение chroma_format_idc для SPS, на которое ссылаются одно или более кодированных изображений в слое А, должно быть равно значению chroma_format_idc в SPS, на которое ссылаются одно или более кодированных изображений в прямом опорном слое слоя А в CVS.[209] In an embodiment, the chroma_format_idc value of the SPS referenced by one or more coded pictures in layer A must be equal to the chroma_format_idc value of the SPS referenced by one or more coded pictures in layer B, where layer A is a direct reference layer. layer B. This is because any encoded picture must have the same chroma_format_idc value as its reference picture. The chroma_format_idc value of an SPS referenced by one or more coded images in layer A must be equal to the value of chroma_format_idc in the SPS referenced by one or more coded images in the forward reference layer of layer A in CVS.
[210] В варианте осуществления значения subpics_present_flag и sps_subpic_id_present_flag для SPS, на которое ссылаются одно или более кодированных изображений в слое А, должны быть равны значениям subpics_present_flag и sps_subpic_id_present_flag в SPS, на которые ссылаются одно или более кодированных изображений в слое В, где слой А является прямым опорным слоем слоя В. Это связано с тем, что макет субизображений должен быть выровнен или связан между слоями. В противном случае субизображение с множеством слоев может быть некорректно извлечен. Значения subpics_present_flag и sps_subpic_id_present_flag для SPS, на которые ссылаются одно или более кодированных изображений в слое А, должны быть равны значениям subpics_present_flag и sps_subpic_id_present_flag в SPS, на которое ссылаются одно или более кодированных изображений в прямом опорное слое слоя А в CVS.[210] In an embodiment, the values of subpics_present_flag and sps_subpic_id_present_flag for an SPS referenced by one or more coded pictures in layer A should be equal to the values of subpics_present_flag and sps_subpic_id_present_flag in an SPS referenced by one or more coded pictures in layer B, where layer A is the direct reference layer of layer B. This is because the sub-image layout must be aligned or linked between layers. Otherwise, a sub-image with many layers may not be extracted correctly. The values of subpics_present_flag and sps_subpic_id_present_flag for the SPS referenced by one or more coded pictures in layer A shall be equal to the values of subpics_present_flag and sps_subpic_id_present_flag in the SPS referenced by one or more coded pictures in the forward reference layer of layer A in CVS.
[211] В варианте осуществления, когда на изображение STSA в слое А ссылается изображение в прямом опорном слое слоя А в той же AU, изображение, относящееся к STSA, должно быть изображением STSA. В противном случае временное переключение субслоя не может быть синхронизировано между слоями. Когда на единицу NAL STSA в слое А ссылается единица NAL VCL в прямом опорном слое слоя А в той же AU, значение nal_unit_type единицы NAL VCL, ссылающейся на единицу NAL STSA, должно быть равно STSA_NUT.[211] In an embodiment, when an STSA image in layer A is referenced by an image in a forward reference layer of layer A in the same AU, the STSA-related image must be an STSA image. Otherwise, sublayer timing cannot be synchronized between layers. When a STSA NAL unit in stratum A is referenced by a VCL NAL unit in stratum A's forward reference layer in the same AU, the nal_unit_type value of the VCL NAL unit referring to the STSA NAL unit shall be equal to STSA_NUT.
[212] В варианте осуществления, когда на изображение RASL в слое А ссылается изображение в прямом опорном слое слоя А в той же AU, изображение, относящееся к RASL, должно быть изображением RASL. В противном случае изображение не может быть правильно декодировано. Когда на единицу NAL RASL в слое А ссылается единица NAL VCL в прямом опорном слое слоя А в той же AU, значение nal_unit_type единицы NAL VCL, ссылающейся на единицу NAL RASL, должно быть равно RASL_NUT.[212] In an embodiment, when a RASL image in layer A is referenced by an image in a forward reference layer of layer A in the same AU, the RASL-related image must be a RASL image. Otherwise, the image cannot be decoded correctly. When a RASL NAL unit in stratum A is referenced by a VCL NAL unit in stratum A's forward reference layer in the same AU, the nal_unit_type value of the VCL NAL unit referring to the RASL NAL unit shall be equal to RASL_NUT.
[213] Хотя это раскрытие описывает несколько примерных вариантов осуществления, существуют изменения, перестановки и различные заменяющие эквиваленты, которые попадают в объем раскрытия. Таким образом, будет принято во внимание, что специалисты в данной области техники смогут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы раскрытия и, таким образом, находятся в пределах его сущности и объема правовой охраны.[213] While this disclosure describes several exemplary embodiments, there are variations, permutations, and various replacement equivalents that fall within the scope of the disclosure. Thus, it will be appreciated that those skilled in the art will be able to develop numerous systems and methods that, although not explicitly shown or described herein, embody the principles of the disclosure and thus fall within its spirit and scope.
Claims (43)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62/903,660 | 2019-09-20 | ||
US17/021,243 | 2020-09-15 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2023117119A Division RU2023117119A (en) | 2019-09-20 | 2020-09-18 | METHOD FOR SIGNALING A SET OF OUTPUT LAYERS WITH A SUBIMAGE |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2799572C1 true RU2799572C1 (en) | 2023-07-06 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160219273A1 (en) * | 2014-06-18 | 2016-07-28 | Telefonaktiebolaget L M Ericsson (Publ) | Robust encoding and decoding of pictures in video |
US20160227233A1 (en) * | 2013-10-12 | 2016-08-04 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding multilayer video, and method and apparatus for decoding multilayer video |
US20170332097A1 (en) * | 2014-11-27 | 2017-11-16 | Kt Corporation | Video signal processing method and device |
US20190058895A1 (en) * | 2013-04-07 | 2019-02-21 | Dolby International Ab | Signaling change in output layer sets |
RU2685233C2 (en) * | 2014-01-08 | 2019-04-17 | Квэлкомм Инкорпорейтед | Bit stream transmission of high efficiency video coding (hevc) standard and buffer model using moving picture experts group (mpeg)-2 systems |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190058895A1 (en) * | 2013-04-07 | 2019-02-21 | Dolby International Ab | Signaling change in output layer sets |
US20160227233A1 (en) * | 2013-10-12 | 2016-08-04 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding multilayer video, and method and apparatus for decoding multilayer video |
RU2685233C2 (en) * | 2014-01-08 | 2019-04-17 | Квэлкомм Инкорпорейтед | Bit stream transmission of high efficiency video coding (hevc) standard and buffer model using moving picture experts group (mpeg)-2 systems |
US20160219273A1 (en) * | 2014-06-18 | 2016-07-28 | Telefonaktiebolaget L M Ericsson (Publ) | Robust encoding and decoding of pictures in video |
US20170332097A1 (en) * | 2014-11-27 | 2017-11-16 | Kt Corporation | Video signal processing method and device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2023201809B2 (en) | Method for signaling output layer set with sub-picture | |
US20200404269A1 (en) | Method for region-wise scalability with adaptive resolution change | |
US11812035B2 (en) | Method for alignment across layers in coded video stream | |
AU2023204022A1 (en) | Method for Parameter Set Reference Constraints in Coded Video Stream | |
AU2020412559B2 (en) | Method for parameter set reference in coded video stream | |
CA3137350A1 (en) | Method for indication of sublayer numbers in multilayered video stream | |
RU2799572C1 (en) | Method for signaling a set of output layers with a subimage | |
RU2803890C1 (en) | Layer alignment method in encoded video stream | |
RU2809562C1 (en) | Induction method based on a set of output layers by sublayer | |
RU2814858C1 (en) | Method of signaling division of rectangular slice in encoded video stream | |
RU2810966C1 (en) | Methods of signaling combination of reference image resampling and spatial scalability | |
RU2806281C1 (en) | Method for signaling sub-image separation in an encoded video stream | |
RU2787213C1 (en) | Method for restricting referencing to a set of parameters in an encoded video stream | |
RU2791938C1 (en) | Transmission of interlayer prediction in video bit stream | |
RU2807213C1 (en) | Method for outputting a set of layers for multilayer video stream | |
RU2785687C1 (en) | Method for signaling a mixed type of nal block and splitting into subimages in an encoded video stream | |
RU2783961C1 (en) | Method for indicating the number of sublevels in a multilevel video stream | |
RU2804274C1 (en) | Image output method with a set of output layers | |
RU2787691C1 (en) | Method for the output layer set mode in a multi-level video stream | |
RU2808148C1 (en) | Method and device for video coding | |
RU2777924C1 (en) | Method for signaling a set of output levels with a subimage | |
RU2787579C1 (en) | Allocation of a random access point and image display in an encoded video stream | |
RU2785689C1 (en) | Technique for extracting a subimage bit stream from a stream of encoded video data | |
RU2783382C1 (en) | Signalling of inter-layer prediction in a video bitstream | |
RU2787557C1 (en) | Method for referencing and setting restrictions on a set of adaptation parameters in an encoded video stream |