RU2775390C1 - Adaptive image size signaling in video bitstream - Google Patents
Adaptive image size signaling in video bitstream Download PDFInfo
- Publication number
- RU2775390C1 RU2775390C1 RU2021127967A RU2021127967A RU2775390C1 RU 2775390 C1 RU2775390 C1 RU 2775390C1 RU 2021127967 A RU2021127967 A RU 2021127967A RU 2021127967 A RU2021127967 A RU 2021127967A RU 2775390 C1 RU2775390 C1 RU 2775390C1
- Authority
- RU
- Russia
- Prior art keywords
- encoded
- header
- image
- resolution
- decoded
- Prior art date
Links
- 230000003044 adaptive effect Effects 0.000 title claims description 18
- 230000011664 signaling Effects 0.000 title description 12
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000012952 Resampling Methods 0.000 claims abstract description 21
- 230000015654 memory Effects 0.000 claims description 18
- 230000008859 change Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 abstract description 14
- 230000002123 temporal effect Effects 0.000 abstract description 14
- 238000012545 processing Methods 0.000 abstract description 13
- 230000000694 effects Effects 0.000 abstract description 3
- 239000000126 substance Substances 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 31
- 230000006835 compression Effects 0.000 description 21
- 238000007906 compression Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 16
- 230000033001 locomotion Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 6
- 239000012634 fragment Substances 0.000 description 5
- 238000013139 quantization Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Images
Abstract
Description
Перекрестная ссылка на родственную заявкуCross-reference to related application
[0001] По настоящей заявке испрашивается приоритет на основании предварительной заявки на патент США №62/816667, поданной 11 марта 2019 г. в Ведомство США по патентам и товарным знакам, которая полностью включена в настоящий документ посредством ссылки.[0001] The present application claims priority from U.S. Provisional Application No. 62/816667, filed March 11, 2019, with the U.S. Patent and Trademark Office, which is incorporated herein by reference in its entirety.
Предпосылки создания изобретенияPrerequisites for the creation of the invention
1. Область техники1. Technical field
[0002] Раскрываемый предмет изобретения относится к кодированию и декодированию видео, а более конкретно, к передаче сигналов изображения или частей изображения, размер которых может изменяться от изображения к изображению или от части изображения к части изображения.[0002] The disclosed subject matter relates to video encoding and decoding, and more specifically, to the transmission of image signals or parts of an image, the size of which may vary from image to image or from image part to image part.
2. Описание известного уровня техники2. Description of the prior art
[0003] Кодирование и декодирование видео с использованием межкадрового предсказания с компенсацией движения были известны в течение десятилетий. Несжатый цифровой видеосигнал может состоять из последовательности изображений, каждое изображение имеет пространственный размер, например, 1920x1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту изображений (неофициально также известную как частота кадров), например, 60 изображений в секунду или 60 Гц. Несжатое видео предъявляет значительные требования к скорости передачи битов. Например, для видео формата 1080р60 4:2:0 с 8 битами на отсчет (разрешение 1920×1080 отсчетов яркости при частоте кадров 60 Гц) требуется полоса пропускания, близкая к 1,5 Гбит/с.Час такого видео требует объема памяти более 600 Гбайт.[0003] Video encoding and decoding using motion-compensated inter-picture prediction has been known for decades. An uncompressed digital video signal may consist of a sequence of images, each image having a spatial size of, for example, 1920x1080 luminance samples and their associated chrominance samples. An image sequence 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 with 8 bits per sample (resolution 1920×1080 luma samples at 60Hz) requires a bandwidth close to 1.5 Gbps. An hour of such video requires more than 600 GB.
[0004] Одной из целей кодирования и декодирования видео может быть уменьшение избыточности входного видео посредством сжатия. Сжатие может помочь снизить вышеупомянутые требования к пропускной способности или объему памяти, в некоторых случаях на два порядка или более. Могут использоваться как сжатие без потерь, так и сжатие с потерями, а также их комбинация. Сжатие без потерь относится к технологиям, при которых точная копия исходного сигнала может быть восстановлена из сжатого исходного сигнала. При использовании сжатия с потерями восстановленный сигнал может не быть идентичным исходному сигналу, но искажение между исходным и восстановленным сигналами достаточно мало, чтобы сделать восстановленный сигнал полезным для предполагаемого применения. В случае видео широко применяется сжатие с потерями. Допустимая степень искажения зависит от применения; например, пользователи определенных потребительских приложений потоковой передачи могут допускать более высокие искажения, чем пользователи приложений для передачи телевизионных сигналов. Достижимая степень сжатия может отражать следующее: более высокое допустимое/приемлемое искажение может приводить к более высокому коэффициенту сжатия.[0004] One of the goals of video encoding and decoding may be to reduce the redundancy of the input video 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 technologies where an exact copy of the original signal can be reconstructed from the compressed original 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 useful 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 may tolerate higher distortion than users of television signaling applications. The achievable compression ratio may reflect the following: higher acceptable/acceptable distortion may result in a higher compression ratio.
[0005] Кодер и декодер видео могут использовать технологии из нескольких широких категорий, включая, например, компенсацию движения, преобразование, квантование и энтропийное кодирование, некоторые из которых будут представлены ниже.[0005] The video encoder and decoder may use technologies from several broad categories, including, for example, motion compensation, transformation, quantization, and entropy coding, some of which will be presented below.
[0006] Исторически кодеры и декодеры видео имели тенденцию работать с заданным размером изображения, который в большинстве случаев был определен и оставался постоянным для кодированной видеопоследовательности (CVS, Coded Video Sequence), группы изображений (GOP, Group of Pictures) или аналогичного интервала времени с множественными изображениями. Например, в стандарте Экспертной группы по движущимся изображениям (MPEG, Moving Picture Experts Group) MPEG-2 известны структуры системы для изменения горизонтального разрешения (и, следовательно, размера изображения) в зависимости от таких факторов, как активность сцены, но только для I-изображений (Intra-coded picture изображение кодируется с использованием только той информации, которая содержится в нем самом), следовательно, обычно для группы изображений GOP. Передискретизация опорных изображений для использования различных разрешений в CVS известна, например, из Приложения Р Рекомендации Н.263 Сектора по стандартизации телекоммуникаций в составе Международного союза электросвязи (ITU-T, International Telecommunications Union Telecommunication Standardization Sector). Однако здесь размер изображения не изменяется, только опорные изображения подвергаются передискретизации, в результате чего могут использоваться только части холста изображения (в случае понижения частоты дискретизации) или только части захватываемой сцены (в случае повышения частоты дискретизации). Кроме того, Приложение Q Рекомендации Н.263 допускает передискретизацию отдельного макроблока с коэффициентом два (в каждом измерении), в сторону увеличения или уменьшения. Опять же, размер изображения остается прежним. Размер макроблока фиксирован в Н.263, и поэтому его не требуется сигнализировать.[0006] Historically, video encoders and decoders tended to work with a given image size, which in most cases was determined and remained constant for a coded video sequence (CVS, Coded Video Sequence), a group of pictures (GOP, Group of Pictures) or a similar time interval from multiple images. For example, the MPEG-2 Moving Picture Experts Group (MPEG) standard knows system structures for changing horizontal resolution (and hence picture size) depending on factors such as scene activity, but only for I- images (Intra-coded picture image is encoded using only the information contained in itself), therefore, usually for a group of GOP images. Reference picture resampling to use different resolutions in CVS is known, for example, from Annex P of Recommendation H.263 of the International Telecommunications Union Telecommunication Standardization Sector (ITU-T). However, here the image size is not changed, only the reference images are resampled so that only parts of the image canvas (in the case of downsampling) or only parts of the captured scene (in the case of upsampling) can be used. In addition, Annex Q of Recommendation H.263 allows an individual macroblock to be resampled 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.
[0007] Изменения размера изображения в предсказываемых изображениях стало все более распространенной тенденцией в современном кодировании видео. Например, стандарт VP9 (Video Processor 9 Видеопроцессор 9) позволяет выполнять передискретизацию опорного изображения и изменять разрешение для всего изображения. Аналогичным образом, некоторые предложения, сделанные в отношении Универсального кодирования видео (VVC, Versatile Video Coding) (включая, например, Hendry, et. al, "On adaptive resolution change (ARC) for VVC", документ JVET-M0135-vl, 9-19 января 2019 г., группы экспертов (JVET, Joint Video Experts Team) в рамках совместной программы (JVT, Joint Video Team), полностью включенные в настоящий документ) позволяют выполнять передискретизацию целых опорных изображений с другими, более высокими или более низкими, разрешениями. В этом документе предлагается кодировать различные возможные разрешения в наборе параметров последовательности и ссылаться на них с помощью элементов синтаксиса для каждого изображения в наборе параметров изображения.[0007] Image resizing in predictive images has become an increasingly common trend in modern video coding. For example, the VP9 standard (Video Processor 9 Video Processor 9) allows you to resample the reference image and change the resolution for the entire image. Similarly, some of the proposals made regarding Versatile Video Coding (VVC) (including, for example, Hendry, et. al, "On adaptive resolution change (ARC) for VVC", document JVET-M0135-vl, 9 -January 19, 2019, JVET (Joint Video Experts Team) within the joint program (JVT, Joint Video Team, fully included in this document) allows resampling of entire reference pictures with other, higher or lower, permissions. This document proposes to encode the various possible resolutions in a sequence parameter set and refer to them using the syntax elements for each image in the image parameter set.
Сущность изобретенияThe essence of the invention
[0008] Согласно формам осуществления изобретения способ декодирования кодированного изображения из кодированной видеопоследовательности выполняется по меньшей мере одним процессором и включает в себя декодирование из набора параметров множества возможных декодированных разрешений выбор посредством индекса, кодированного в структуре временного заголовка, применимого к группе отсчетов, возможного декодированного разрешения среди множества возможных декодированных разрешений, передискретизацию отсчетов из группы отсчетов на основе выходного разрешения и выбранного возможного декодированного разрешения и разрешение предсказания с использованием передискретизированного отсчета.[0008] According to embodiments of the invention, a method for decoding an encoded image from an encoded video sequence is performed by at least one processor and includes decoding, from a set of parameters, a set of possible decoded resolutions, selecting, by means of an index encoded in a temporary header structure applicable to a group of samples, a possible decoded resolution among the plurality of possible decoded resolutions, resampling samples from the group of samples based on the output resolution and the selected candidate decoded resolution, and predictive resolution using the resampled sample.
[0009] Согласно формам осуществления изобретения устройство для декодирования кодированного изображения из кодированной видеопоследовательности содержит по меньшей мере одну память, сконфигурированную для хранения кода компьютерной программы, и по меньшей мере один процессор, сконфигурированный для доступа по меньшей мере к одной памяти и работы в соответствии с кодом компьютерной программы, причем код компьютерной программы содержит код декодирования, сконфигурированный для декодирования из набора параметров множества возможных декодированных разрешений; код выбора, сконфигурированный для выбора, посредством индекса, кодированного в структуре временного заголовка, применимой к группе отсчетов, возможного декодированного разрешения среди множества возможных декодированных разрешений; код передискретизации, сконфигурированный для передискретизации отсчета из группы отсчетов на основе выходного разрешения и выбранного возможного декодированного разрешения; и код разрешения предсказания, сконфигурированного для разрешения предсказания с использованием передискретизированного отсчета.[0009] According to embodiments of the invention, an apparatus for decoding an encoded image from an encoded video sequence comprises at least one memory configured to store computer program code and at least one processor configured to access at least one memory and operate in accordance with a computer program code, the computer program code comprising a decoding code configured to decode from a set of parameters of a plurality of possible decoded resolutions; a selection code configured to select, by means of an index encoded in the temporary header structure applicable to the sample group, a possible decoded grant among the plurality of possible decoded grants; a resampling code configured to resample a sample from the group of samples based on the output resolution and the selected candidate decoded resolution; and a prediction enable code configured to enable prediction using the resampled sample.
[0010] Согласно формам осуществления изобретения машиночитаемый носитель данных, хранящий программу для декодирования кодированного изображения из кодированной видеопоследовательности, включает команды, которые заставляют процессор декодировать из набора параметров множество возможных декодированных разрешений, выбирать посредством индекса, кодированного в структуре временного заголовка, применимой к группе отсчетов, возможного декодированного разрешения среди множества возможных декодированных разрешений, выполнять передискретизацию отсчета из группы отсчетов на основе выходного разрешения и выбранного возможного декодированного разрешения, и разрешать предсказание с использованием передискретизированного отсчета.[0010] According to embodiments of the invention, a computer-readable storage medium storing a program for decoding an encoded image from an encoded video sequence includes instructions that cause the processor to decode from a set of parameters a plurality of possible decoded resolutions, select by an index encoded in a temporary header structure applicable to a sample group , a possible decoded resolution among the plurality of possible decoded resolutions, resampling a sample from the group of samples based on the output resolution and the selected candidate decoded resolution, and resolve prediction using the resampled sample.
Краткое описание чертежейBrief description of the drawings
[0011] Дополнительные особенности, сущность и различные преимущества раскрываемого предмета изобретения будут более очевидны из следующего подробного описания и прилагаемых чертежей, на которых:[0011] Additional features, essence and various advantages of the disclosed subject matter will be more apparent from the following detailed description and the accompanying drawings, in which:
Фиг. 1 представляет собой схематическое изображение упрощенной блок-схемы системы связи в соответствии с формой осуществления изобретения.Fig. 1 is a schematic diagram of a simplified block diagram of a communication system in accordance with an embodiment of the invention.
Фиг. 2 - схематическое изображение упрощенной блок-схемы системы связи в соответствии с формой осуществления изобретения.Fig. 2 is a schematic diagram of a simplified block diagram of a communication system in accordance with an embodiment of the invention.
Фиг. 3 - схематическое изображение упрощенной блок-схемы декодера в соответствии с формой осуществления изобретения.Fig. 3 is a schematic diagram of a simplified block diagram of a decoder in accordance with an embodiment of the invention.
Фиг. 4 - схематическое изображение упрощенной блок-схемы кодера в соответствии с формой осуществления изобретения.Fig. 4 is a schematic diagram of a simplified block diagram of an encoder in accordance with an embodiment of the invention.
Фиг. 5А - схематическое изображение возможных вариантов для сигнализации параметров адаптивного изменения разрешения (ARC, Adaptive Resolution Change), как указано.Fig. 5A is a schematic representation of options for signaling Adaptive Resolution Change (ARC) parameters as indicated.
Фиг. 5В - схематическое изображение возможных вариантов сигнализации параметров ARC в соответствии с формой осуществления изобретения, как указано.Fig. 5B is a schematic representation of possible ARC parameter signaling options in accordance with an embodiment of the invention as indicated.
Фиг. 6А - схематическое изображение в соответствии с формой осуществления изобретения.Fig. 6A is a schematic representation in accordance with an embodiment of the invention.
Фиг. 6В - блок-схема, иллюстрирующая способ декодирования кодированного изображения из кодированной видеопоследовательности согласно форме осуществления изобретения.Fig. 6B is a flowchart illustrating a method for decoding an encoded picture from an encoded video sequence according to an embodiment of the invention.
Фиг. 6С - упрощенная блок-схема устройства для управления декодированием видеопоследовательности согласно форме осуществления изобретения.Fig. 6C is a simplified block diagram of an apparatus for controlling decoding of a video sequence according to an embodiment of the invention.
Фиг. 7 - схематическое изображение компьютерной системы в соответствии с формой осуществления изобретения.Fig. 7 is a schematic representation of a computer system in accordance with an embodiment of the invention.
Подробное описаниеDetailed description
[0022] В последнее время некоторое внимание привлекла агрегация сжатой области или извлечение многочисленных семантически независимых частей изображения в одно видеоизображение. В частности, в контексте, например, 360-градусного кодирования или определенных приложений наблюдения, многочисленные семантически независимые исходные изображения (например, шесть поверхностей куба проектируемой кубом 360-градусной сцены или входные данные отдельных камер в случае установки многокамерного наблюдения) могут потребовать отдельных настроек адаптивного разрешения, чтобы справиться с различной активностью каждой сцены в данном моменте времени. Другими словами, кодер в данный момент времени могут выбирать использование разных коэффициентов передискретизации для разных семантически независимых изображений, составляющих все 360 градусов или сцену наблюдения. При объединении в одно изображение это, в свою очередь, требует, чтобы выполнялась передискретизация опорного изображения и имелась сигнализация кодирования с адаптивным разрешением для частей кодированного изображения.[0022] Recently, some attention has been drawn to the aggregation of a compressed area, or the extraction of multiple semantically independent parts of an image into a single video image. In particular, in the context of e.g. 360-degree encoding or certain surveillance applications, multiple semantically independent source images (e.g., six cube surfaces of a cube-projected 360-degree scene, or individual camera inputs in the case of a multi-camera surveillance setup) may require separate adaptive settings. resolution to deal with the different activity of each scene at a given point in time. In other words, the encoder at a given time may choose to use different resampling factors for different semantically independent images that make up the entire 360 degree or scene. When combined into a single picture, this in turn requires that the reference picture be resampled and that there be adaptive resolution coding signaling for portions of the encoded picture.
[0023] Фиг. 1 представляет собой упрощенную блок-схему системы (100) связи согласно одной из форм осуществления настоящего изобретения. Система (100) может содержать по меньшей мере два терминала (110-120), соединенные друг с другом через сеть (150). Для однонаправленной передачи данных первый терминал (110) может кодировать видеоданные в локальном местоположении для передачи другому терминалу (120) через сеть (150). Второй терминал (120) может принимать кодированные видеоданные другого терминала из сети (150), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может быть обычным явлением в применениях мультимедийного обслуживания и т.п.[0023] FIG. 1 is a simplified block diagram of a communication system (100) according to one embodiment of the present invention. System (100) may include at least two terminals (110-120) connected to each other 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 transmission may be common in multimedia service applications and the like.
[0024] На фиг. 1 показана вторая пара терминалов (130, 140), обеспечивающих поддержку двунаправленной передачи кодированного видео, которая может происходить, например, во время видеоконференцсвязи. Для двунаправленной передачи данных каждый терминал (130, 140) может кодировать видеоданные, захваченные в локальном местоположении, для передачи на другой терминал через сеть (150). Каждый терминал (130, 140) также может принимать кодированные видеоданные, передаваемые другим терминалом, может декодировать кодированные данные и может отображать восстановленные видеоданные на локальном устройстве отображения.[0024] In 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 via 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.
[0025] На фиг. 1 терминалы (110-140) могут быть показаны как серверы, персональные компьютеры и смартфоны, но принципы настоящего изобретения могут быть не ограничены этим. Формы осуществления настоящего изобретения находят применение в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференцсвязи. Сеть (150) представляет любое количество сетей, которые передают кодированные видеоданные между терминалами (110-140), включая, например, проводные и/или беспроводные сети связи. Сеть (150) связи может обмениваться данными по каналам с коммутацией каналов и/или с коммутацией пакетов. Репрезентативные сети включают телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего обсуждения архитектура и топология сети (150) могут быть несущественными для работы настоящего изобретения, если это не объясняется в данном документе ниже.[0025] In FIG. 1, terminals (110-140) may be shown as servers, personal computers, and smartphones, but the principles of the present invention may not 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) represents any number of networks that transmit encoded video data between terminals (110-140), including, for example, wired and/or wireless communication networks. The communications network (150) may communicate over 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 the present invention unless explained herein below.
[0026] На фиг. 2 показано в качестве примера применения для раскрываемого предмета изобретения размещение кодера и декодера видео в потоковой среде. Раскрываемый предмет изобретения может быть в равной степени применим к другим применениям с поддержкой видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, включая компакт диск (CD, Compact Disk), универсальный цифровой диск (DVD, Digital Versatile Disk), карту памяти и т.п.[0026] FIG. 2 shows, as an example of application for the disclosed subject matter, the placement of a video encoder and decoder in a streaming environment. The disclosed subject matter may be equally applicable to other video-enabled applications, including, for example, video conferencing, digital television, compressed video storage on digital media, including CD, Compact Disk, DVD, Digital Versatile Disk), memory card, etc.
[0027] Система потоковой передачи может содержать подсистему (213) видеозахвата, которая может включать в себя источник (201) видеосигналов, например цифровую камеру, создающую, например, поток (202) отсчетов несжатого видео. Этот поток (202) отсчетов, изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными битовыми потоками видео, может обрабатываться кодером (203), подключенным к камере (201). Кодер (203) может включать в себя аппаратное обеспечение, программное обеспечение или их комбинацию, чтобы задействовать или реализовать аспекты раскрываемого предмета изобретения, как более подробно описано ниже. Кодированный битовый поток (204) видео, изображенный тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком отсчетов, может сохраняться на сервере (205) потоковой передачи для будущего использования. Один или более клиентов (206, 208) потоковой передачи могут получать доступ к серверу (205) потоковой передачи для получения копий (207, 209) кодированного битового потока (204) видео. Клиент (206) может включать в себя видеодекодер (210), который декодирует входящую копию (207) кодированного битового потока видео и создает исходящий поток (211) отсчетов видео, который может отображаться на дисплее (212) или другом устройстве визуализации (не изображенным). В некоторых потоковых системах битовые потоки (204, 207, 209) видео могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видео. Примеры этих стандартов включают Рекомендацию ITU-T Н.265. В стадии разработки находится стандарт кодирования видеосигналов, неофициально известный как Универсальное кодирование видео (VVC, Versatile Video Coding). Раскрываемый предмет изобретения может использоваться в контексте стандарта VVC.[0027] The streaming system may include a video capture subsystem (213), which may include a source (201) of video signals, such as a digital camera, creating, 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 the encoded video bitstreams, can be processed by an encoder (203) connected to the 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 obtain copies (207, 209) of the encoded video bitstream (204). The client (206) may include a video decoder (210) that decodes an incoming copy (207) of the encoded video bitstream 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, video bitstreams (204, 207, 209) may be encoded according to certain video coding/compression standards. Examples of these standards include ITU-T Recommendation H.265. A video coding standard known informally as Versatile Video Coding (VVC) is under development. The disclosed subject matter may be used in the context of the VVC standard.
[0028] Фиг. 3 может представлять функциональную блок-схему видеодекодера (210) согласно одной из форм осуществления настоящего изобретения.[0028] FIG. 3 may represent a functional block diagram of a video decoder (210) according to one embodiment of the present invention.
[0029] Приемник (310) может принимать одну или более кодированных видеопоследовательностей, которые должны быть декодированы декодером (210); в той же или другой форме осуществления изобретения - по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (312), который может быть аппаратным/программным соединением с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные вместе с другими данными, например, кодированными аудиоданными и/или потоками вспомогательных данных, которые могут пересылаться их соответствующим объектам использования (не изображенным). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети может быть включена буферная память (315) между приемником (310) и энтропийным декодером/синтаксическим анализатором (320) (далее - "синтаксическим анализатором"). Когда приемник (310) принимает данные от устройства хранения/пересылки с достаточной полосой пропускания и управляемости, или из изосинхронной сети, буфер (315) может не понадобиться или может быть небольшим. Для использования в пакетных сетях с максимальной эффективностью, таких как Интернет, может потребоваться буфер (315), он может быть сравнительно большим и предпочтительно может иметь адаптивный размер.[0029] The receiver (310) may receive one or more encoded video sequences to be decoded by the decoder (210); in the same or another embodiment of the invention, one encoded video sequence at a time, where the decoding of each encoded video sequence is independent of other encoded 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 along with other data, such as encoded audio data and/or ancillary data streams, which may be forwarded to their respective uses (not shown). The receiver (310) may separate the encoded video sequence from other data. To combat network jitter, a buffer memory (315) can be included between the receiver (310) and the entropy decoder/parser (320) (hereinafter referred to as "parser"). When the receiver (310) receives data from a storage/transfer device with sufficient bandwidth and controllability, or from an isosynchronous network, the buffer (315) may not be needed or may be small. For use in packet networks with maximum efficiency, such as the Internet, a buffer (315) may be required, it may be relatively large, and preferably may have an adaptive size.
[0030] Видеодекодер (210) может содержать синтаксический анализатор (320) для восстановления символов (321) из энтропийно кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой декодера (210), и потенциально информацию для управления устройством визуализации, таким как дисплей (212), который не является неотъемлемой частью декодера, но может быть присоединен к нему, как это было показано на фиг.2. Управляющая информация для устройства (устройств) визуализации может быть в форме фрагментов набора параметров дополнительной уточняющей информации (сообщений SEI (Supplementary Enhancement Information)) или информации по использованию видео (VUI, Video Usability Information) (не показанных). Синтаксический анализатор (320) может анализировать/энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом кодирования видео, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с учетом контекста или без него и т.д. Синтаксический анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP), изображения, тайлы, слайсы, макроблоки, кодовые пакеты (CU, Coding Unit), блоки, пакеты преобразования (TU, Transform Unit), пакеты предсказания (PU, Prediction Unit,) и т.д. Энтропийный декодер/синтаксический анализатор также может извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.[0030] The video decoder (210) may include a parser (320) for recovering 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 attached to it as shown. in Fig.2. The control information for the rendering device(s) may be in the form of Supplementary Enhancement Information (SEI) or Video Usability Information (VUI) parameter set fragments (not shown). A 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, including variable length coding, Huffman coding, arithmetic coding with or without context, etc. The parser (320) can 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, code packs (CU, Coding Unit), blocks, transformation packs (TU, Transform Unit), prediction packs (PU, Prediction Unit,) and so on. .d. 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.
[0031] Синтаксический анализатор (320) может выполнять операцию энтропийного декодирования/синтаксического анализа над видеопоследовательностью, принимаемой из буфера (315), таким образом, чтобы создавать символы (321).[0031] The parser (320) may perform an entropy decoding/parsing operation on the video sequence received from the buffer (315) so as to create symbols (321).
[0032] Восстановление символов (321) может включать в себя несколько различных блоков в зависимости от типа кодированного видеоизображения или его частей (например, изображения, кодированного с внутренним и внешним предсказанием, блока, кодированного с внутренним и внешним предсказанием) и других факторов. Какие блоки задействовать и каким образом, можно управлять с помощью управляющей информации подгруппы, которая была синтаксически проанализирована из кодированной видеопоследовательности с помощью синтаксического анализатора (320). Поток такой управляющей информации подгруппы между синтаксическим анализатором (320) и множеством блоков не показан для ясности.[0032] Symbol recovery (321) may include several different blocks depending on the type of encoded video image or parts thereof (e.g., intra-inter prediction encoded image, intra-inter prediction encoded block) and other factors. Which blocks to use and how can be controlled by the subgroup control information that has been 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 blocks is not shown for clarity.
[0033] Помимо уже упомянутых функциональных блоков, декодер 210 может быть концептуально подразделен на ряд функциональных блоков, как описано ниже. При практической реализации, работающей в условиях коммерческих ограничений, многие из этих блоков тесно взаимодействуют друг с другом и могут, по меньшей мере частично, быть интегрированы друг в друга. Однако для целей описания раскрываемого предмета изобретения уместно концептуальное подразделение на функциональные блоки, приведенные ниже.[0033] In addition to the functional blocks already mentioned, the
[0034] Первым блоком является блок (351) масштабирования/обратного преобразования. Блок (351) масштабирования/обратного преобразования принимает квантованный коэффициент преобразования, а также управляющую информацию, включая то, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в виде символа(-ов) (321) от синтаксического анализатора (320). Он может выводить блоки, содержащие значения отсчетов, которые могут быть введены в агрегатор (355).[0034] The first block is the scaling/inverse transform block (351). The scaling/inverse transform block (351) receives a 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 character(s) (321) from the parser (320). It can output blocks containing sample values that can be entered into the aggregator (355).
[0035] В некоторых случаях выходные отсчеты блока (351) масштабирования/обратного преобразования могут относиться к блоку, кодированному с внутренним предсказанием, то есть: блоку, который не использует информацию предсказания из ранее восстановленных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена блоком (352) внутрикадрового предсказания. В некоторых случаях блок (352) внутрикадрового предсказания формирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из текущего (частично восстановленного) изображения (356). Агрегатор (355) в некоторых случаях добавляет для каждого отсчета информацию предсказания, сформированную блоком (352) внутрикадрового предсказания, к информации выходных отсчетов, предоставляемой блоком (351) масштабирования/обратного преобразования.[0035] In some cases, the output samples of the scaling/inverse transform block (351) may refer to a block encoded with intra prediction, that is: a block that does not use prediction information from previously restored images, but can use prediction information from previously restored parts current image. Such prediction information may be provided by
[0036] В других случаях выходные отсчеты блока (351) масштабирования/обратного преобразования могут относиться к блоку, кодированному с внешним предсказанием и, возможно, с компенсацией движения. В таком случае блок (353) предсказания с компенсацией движения может получать доступ к памяти (357) опорных изображений для выборки отсчетов, используемых для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (321), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (355) к выходному сигналу блока масштабирования/обратного преобразования (в этом случае называемых остаточными отсчетами или остаточным сигналом), чтобы сформировать информацию о выходных отсчетах. Адреса в памяти опорных изображений, откуда блок компенсации движения выбирает отсчеты предсказания, могут управляться векторами движения, доступными блоку компенсации движения в форме символов (321), которые могут иметь, например, X, Y и компоненты опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения подотсчета, механизмы предсказания вектора движения и т.д.[0036] In other cases, the output samples of the scaling/inverse transform block (351) may refer to a block encoded with inter prediction and possibly with motion compensation. In such a case, the motion-compensated predictor (353) may access the reference picture memory (357) to fetch 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 signal of the scaler/detransform block (in this case called residual samples or residual signal) to form information about output counts. Reference picture memory addresses from where the motion compensator selects prediction samples may be controlled by motion vectors available to the motion compensator in symbol form (321), which may have, for example, X, Y, and reference picture components. Motion compensation may also include interpolation of sample values retrieved from reference picture memory when accurate subsample motion vectors, motion vector prediction mechanisms, and so on are used.
[0037] Выходные отсчеты агрегатора (355) могут подвергаться различным технологиям петлевой фильтрации в блоке (356) петлевого фильтра. Технологии сжатия видео могут включать в себя технологии внутрипетлевой фильтрации, которые управляются параметрами, включенными в кодированный битовый поток видео и предоставляемыми блоку (356) петлевого фильтра в виде символов (321) из синтаксического анализатора (320), но также могут реагировать на метаинформацию, полученную во время декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также в ответ на ранее восстановленные и отфильтрованные петлевым фильтром значения отсчетов.[0037] The output samples of the aggregator (355) may be subjected to various loop filtering techniques in the loop filter block (356). The 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 filter block (356) in the form of symbols (321) from the parser (320), but may also respond to the metainformation received during decoding of the previous (in decoding order) parts of the encoded image or encoded video sequence, as well as in response to previously restored and filtered by the loop filter sample values.
[0038] Выходными данными блока (354) петлевого фильтра может быть поток отсчетов, который может выводиться в устройство (212) визуализации, а также сохраняться в памяти опорных изображений для использования в будущем межкадровом предсказании.[0038] The output of the loop filter block (354) may be a stream of samples that may be output to the renderer (212) as well as stored in reference picture memory for use in future inter-picture prediction.
[0039] Некоторые кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для будущего предсказания. После того, как кодированное изображение полностью восстановлено и кодированное изображение было идентифицировано как опорное изображение (например, синтаксическим анализатором (320)), текущее опорное изображение (356) может стать частью буфера (357) опорных изображений, и память свежего текущего изображения может быть перераспределена перед началом восстановления следующего кодированного изображения.[0039] Some 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 parser 320), the
[0040] Видеодекодер 210 может выполнять операции декодирования согласно заранее определенной технологии сжатия видео, которая может быть задокументирована в стандарте, таком как Рекомендация Н.265 ITU-T. Кодированная видеопоследовательность может соответствовать синтаксису, указанному используемой технологией или стандартом сжатия видео, в том смысле, что она придерживается синтаксиса технологии или стандарта сжатия видео, как указано в документе или стандарте технологии сжатия видео и, в частности, в профилях, задокументированных в них. Для соответствия также необходимо, чтобы сложность кодированной видеопоследовательности находилась в пределах, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов восстановления (измеряемую, например, в миллионах отсчетов в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданных для управления буфером HRD, сигнализируемых в кодированной видеопоследовательности.[0040]
[0041] В одной из форм осуществления изобретения приемник (310) может принимать с кодированным видео дополнительные (избыточные) данные. Дополнительные данные могут быть включены как часть кодированной видеопоследовательности(-ей). Дополнительные данные могут использоваться видеодекодером (210) для правильного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут быть в форме, например, временных, пространственных уровней или уровней улучшения отношения сигнал/шум (SNR, Signal-to-Noise Ratio), избыточных слайсов, избыточных изображений, кодов прямого исправления ошибок и т.д.[0041] In one form of the invention, the receiver (310) may receive additional (redundant) data with the 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 (210) 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 levels, redundant slices, redundant images, forward error correction codes, and so on.
[0042] Фиг. 4 может быть функциональной блок-схемой видеокодера (203) согласно одной из форм осуществления настоящего изобретения.[0042] FIG. 4 may be a functional block diagram of a video encoder (203) according to one embodiment of the present invention.
[0043] Кодер (203) может принимать отсчеты видео от источника (201) видео (не являющегося частью кодера), который может захватывать видеоизображение(-ия) для кодирования кодером (203).[0043] The encoder (203) may receive video samples from a video source (201) (not part of the encoder) that may capture video(s) for encoding by the encoder (203).
[0044] Источник (201) видео может предоставлять исходную видеопоследовательность, которая должна быть кодирована кодером (203), в форме потока отсчетов цифрового видео, который может иметь какую-то подходящую глубину в битах (например: 8 бит, 10 бит, 12 бит, …), какое-то цветовое пространство (например, пространство Y CrCb по рекомендации ITU-R ВТ.601, RGB, …), какую-то подходящую структуру отсчетов (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе обслуживания мультимедиа источник (201) видео может быть запоминающим устройством, хранящим заранее подготовленное видео. В системе видеоконференцсвязи видеосигналов источник (203) может быть камерой, которая фиксирует информацию локального изображения в виде видеопоследовательности.[0044] The video source (201) may provide the original video sequence to be encoded by the encoder (203) in the form of a digital video sample stream that may have some suitable bit depth (eg: 8 bit, 10 bit, 12 bit , ...), some color space (for example, Y CrCb space as recommended by ITU-R BT.601, RGB, ...), some suitable sampling structure (for example, 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 a pre-prepared video. In a videoconferencing system of video signals, the 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 which, when viewed sequentially, convey motion. The images themselves can be organized as a spatial array of pixels, with each pixel containing one or more samples depending on the sample structure used, color space, and so on. Those skilled in the art can easily understand the relationship between pixels and samples. The description below is based on readings.
[0045] Согласно одной из форм осуществления изобретения кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с любыми другими временными ограничениями, как того требует применение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (450). Контроллер управляет другими функциональными блоками, как описано ниже, и функционально соединен с этими блоками. Соединение не изображено для ясности. Параметры, установленные контроллером, могут включать в себя параметры, связанные с управлением скоростью (пропуск изображения, квантователь, значение лямбда для технологий оптимизации скорость-искажение, …), размером изображения, структурой группы изображений (GOP), максимальным диапазоном поиска вектора движения и т.д. Специалисты в данной области техники могут легко определить другие функции контроллера (450), поскольку они могут относиться к видеокодеру (203), оптимизированному для определенной структуры системы.[0045] According to one embodiment of the invention, the encoder (203) can 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 blocks as described below and is operatively connected to these blocks. The connection is not shown for clarity. The parameters set by the controller may include parameters related to speed control (picture skip, quantizer, lambda value for speed-distortion optimization technologies, ...), picture size, group of pictures (GOP) structure, maximum motion vector search range, etc. .d. Those skilled in the art can easily identify other functions of the controller (450) as they may relate to a video encoder (203) optimized for a particular system design.
[0046] Некоторые видеокодеры работают в том, что специалисты в данной области легко распознают как "петля кодирования". В качестве упрощенного описания петля кодирования может состоять из кодирующей части кодера (430) (далее "кодера источника") (ответственного за создание символов на основе входного изображения, которое должно быть кодировано, и опорного изображения (изображений)), и (локального) декодера (433), встроенного в кодер (203), который восстанавливает символы для создания данных отсчетов, которые (удаленный) декодер также может создавать (поскольку любое сжатие между символами и кодированным битовым потоком видео не имеет потерь в технологиях сжатия видео, рассматриваемых в раскрываемом предмете изобретения). Этот восстановленный поток отсчетов вводится в память (434) опорных изображений. Поскольку декодирование потока символов приводит к результатам с точностью до бита независимо от местоположения декодера (локального или удаленного), содержимое буфера опорных изображений также имеет точность до бита между локальным кодером и удаленным кодером. Другими словами, часть предсказания кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые декодер "видел бы" при использовании предсказания во время декодирования. Это принцип синхронности опорного изображения (и результирующего дрейфа, если синхронность не может быть сохранена, например, из-за ошибок канала).[0046] Some video encoders operate in what those skilled in the art readily recognize as a "coding loop". As a simplified description, an encoding loop may consist of an encoding part of an encoder (430) (hereinafter "source encoder") (responsible for creating symbols based on the input image to be encoded and the reference image(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 produce (because any compression between the symbols and the encoded video bitstream is lossless in the video compression technologies discussed in the disclosed subject matter inventions). This reconstructed sample stream is entered into the reference picture memory (434). Since the decoding of a symbol stream results in bit-accurate results regardless of the location of the decoder (local or remote), the contents of the reference picture buffer also have bit-accuracy 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 is the principle of reference picture synchronism (and the resulting drift if synchronism cannot be maintained, for example due to channel errors).
[0047] Работа "локального" декодера (433) может быть такой же, как у "удаленного" декодера (210), который уже был подробно описан выше в связи с фиг. 3. Кратко обратимся также к фиг. 3-4, однако, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (445) и синтаксическим анализатором (320) может осуществляться без потерь, части энтропийного декодирования декодера (210), включая канал (312), приемник (310), буфер (315) и синтаксический анализатор (320) могут не быть полностью реализованы в локальном декодере (433).[0047] The operation of the "local" decoder (433) may be the same as that of the "remote" decoder (210) already described in detail above in connection with FIG. 3. Referring also briefly to FIG. 3-4, 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 part of the decoder (210), including the channel (312), receiver ( 310), buffer (315), and parser (320) may not be fully implemented in the local decoder (433).
[0048] На этом этапе можно сделать наблюдение, что любая технология декодирования, помимо синтаксического анализа/энтропийного декодирования, которая присутствует в декодере, также обязательно должна присутствовать в, по существу, идентичной функциональной форме в соответствующем кодере. По этой причине раскрываемый предмет изобретения сосредотачивает внимание на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются инверсией полностью описанных технологий декодирования. Только в некоторых областях требуется более подробное описание, которое приводится ниже.[0048] 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 a 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.
[0049] В качестве части своей работы кодер (430) источника может выполнять кодирование с предсказанием с компенсацией движения, которое кодирует входной кадр с предсказанием со ссылкой на один или более ранее кодированных кадров из видеопоследовательности, которые были обозначены как "опорные кадры". Таким образом, механизм (432) кодирования кодирует разницы между блоками пикселей входного кадра и блоками пикселей опорного кадра(-ов), которые могут быть выбраны в качестве опорных значений предсказания для входного кадра.[0049] 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 prediction references for the input frame.
[0050] Локальный видеодекодер (433) может декодировать кодированные видеоданные кадров, которые могут быть обозначены как опорные кадры, на основе символов, созданных кодером (430) источника. Операции механизма (432) кодирования могут быть преимущественно процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг. 4), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) копирует процессы декодирования, которые могут выполняться видеодекодером на опорных кадрах, и может вызывать сохранение восстановленных опорных кадров в кэше (434) опорных изображений. Таким образом, кодер (203) может локально хранить копии восстановленных опорных кадров, которые имеют общий контент, как восстановленные опорные кадры, которые будут получены видеодекодером на дальнем конце (при отсутствии ошибок передачи).[0050] 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 be predominantly 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 key frames that share the same content as the reconstructed key frames to be received by the far end video decoder (in the absence of transmission errors).
[0051] Предсказатель (435) может выполнять поиски с предсказанием для механизма (432) кодирования. То есть, для нового кадра, который должен быть кодирован, предсказатель (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве возможных опорных блоков пикселей) или определенные метаданные, такие как векторы движения опорных изображений, формы блоков и т.д., это может служить подходящим эталоном для предсказания для новых изображений. Предсказатель (435) может работать на основе блока отсчетов на блок пикселей, чтобы найти соответствующие эталоны для предсказания. В некоторых случаях, как определено результатами поиска, полученными предсказателем (435), входное изображение может иметь эталоны предсказания, взятые из множества опорных изображений, сохраненных в памяти (434) опорных изображений.[0051] The predictor (435) may perform predictive searches for the encoding engine (432). That is, for a new frame to be encoded, the predictor (435) may search the reference picture memory (434) for sample data (as candidate pixel reference blocks) or certain metadata such as reference picture motion vectors, block shapes, etc. .d., this can serve as a suitable reference for prediction for new images. The predictor (435) may operate on a block of samples per block of pixels basis to find appropriate references for prediction. In some cases, as determined by the search results obtained by the predictor (435), the input picture may have prediction references taken from a plurality of reference pictures stored in the reference picture memory (434).
[0052] Контроллер (450) может управлять операциями кодирования видеокодера (430), включая, например, установку параметров и параметров подгруппы, используемых для кодирования видеоданных.[0052] 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.
[0053] Выходные данные всех вышеупомянутых функциональных блоков могут подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер переводит символы, сформированные различными функциональными блоками, в кодированную видеопоследовательность путем сжатия без потерь символов согласно различным технологиям, например кодированию Хаффмана, кодированию с переменной длиной, арифметическому кодированию и т.д.[0053] The output of all of the above functional blocks may be entropy encoded in an entropy encoder (445). The entropy encoder translates symbols generated by various functional blocks into an encoded video sequence by lossless symbol compression according to various techniques such as Huffman coding, variable length coding, arithmetic coding, and so on.
[0054] Передатчик (440) может буферизовать кодированную видеопоследовательность (видеопоследовательности), созданную энтропийным кодером (445), чтобы подготовить ее к передаче через канал связи (460), который может быть аппаратным/программным каналом связи к устройству хранения данных, которое будет хранить кодированные видеоданные. Передатчик (440) может объединять кодированные видеоданные из видеокодера (430) с другими данными, которые должны быть переданы, например, с кодированными аудиоданными и/или потоками вспомогательных данных (источники не показаны).[0054] 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 communication channel to a data storage device that will store encoded video data. The transmitter (440) may combine 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).
[0055] Контроллер (450) может управлять работой кодера (203). Во время кодирования контроллер (450) может назначать каждому кодированному изображению определенный тип кодированного изображения, что может повлиять на технологии кодирования, которые могут быть применены к соответствующему изображению. Например, изображения часто могут быть назначены как один из следующих типов кадров:[0055] 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 technologies that can be applied to the corresponding picture. For example, images can often be assigned as one of the following frame types:
[0056] Изображение с внутренним кодированием (I-изображение) (I picture, Intra Picture) может быть таким, которое может быть кодировано и декодировано без использования какого-либо другого кадра в последовательности в качестве источника предсказания. Некоторые видеокодеки позволяют использовать различные типы с внутренним кодированием, включая, например, обновленные изображения, с помощью независимого декодера. Могут быть использованы варианты I-изображений и их соответствующие применения и особенности.[0056] An intra picture (I picture, Intra 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 the use of various intra-encoded types, including, for example, updated images, using an independent decoder. Variants of I-images and their respective uses and features may be used.
[0057] Изображение, кодированное с предсказанием, (Р-изображение) (Р picture, Predictive picture) может быть таким, которое может быть кодировано и декодировано с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.[0057] A predictively encoded picture (P picture) (P picture, Predictive 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 for prediction sample values of each block.
[0058] Изображение, кодированное с двунаправленным предсказанием, (В-изображение) (В Picture, Bi-directionally predictive picture) может быть таким, которое может быть кодировано и декодировано с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и справочных индексов для предсказания значений отсчетов каждого блока. Точно так же изображения, кодированные с множественным предсказанием, могут использовать более двух опорных изображений и связанных с ними метаданных для восстановления одиночного блока. [0058] A picture encoded with bi-directional prediction (B-picture) (In Picture, Bi-directionally predictive picture) may be one that can be encoded and decoded using intra prediction or inter prediction using no more than two motion vectors and reference indexes for predicting the values of the samples of each block. Similarly, multi-prediction encoded pictures may use more than two reference pictures and their associated metadata to reconstruct a single block.
[0059] Исходные изображения обычно могут быть подразделены пространственно на множество блоков отсчетов (например, блоки по 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодированы на поблочной основе. Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определено назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки I-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием со ссылкой на уже кодированные блоки одного и того же изображения (пространственное предсказание или внутреннее предсказание). Пиксельные блоки Р-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два ранее кодированные опорные изображения.[0059] Source images can typically be subdivided spatially 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). The pixel blocks of P-pictures 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.
[0060] Видеокодер (203) может выполнять операции кодирования согласно заранее определенной технологии или стандарту видеокодирования, такому как Рекомендация Н.265 ITU-T. Во время своей работы видеокодер (203) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.[0060] The video encoder (203) may perform encoding operations according to a predetermined video coding technology or standard, such as ITU-T Rec. H.265. During 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.
[0061] В одной из форм осуществления изобретения передатчик (440) может передавать дополнительные данные с кодированным видео. Видеокодер (430) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/улучшающие SNR уровни, другие формы избыточных данных, такие как избыточные изображения и слайсы, сообщения дополнительной расширенной информации (SEI), фрагменты набора параметров информации о свойствах видео (VUI) и т.д.[0061] In one form of the invention, the 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 levels, other forms of redundant data such as redundant images and slices, extended supplementary information (SEI) messages, video property information (VUI) parameter set fragments, and so on.
[0062] Перед более подробным описанием определенных аспектов раскрываемого предмета изобретения необходимо ввести несколько терминов, на которые будут ссылаться в оставшейся части данного описания.[0062] Before a more detailed description of certain aspects of the disclosed subject matter, it is necessary to introduce several terms that will be referred to in the remainder of this description.
[0063] В дальнейшем фрагмент изображения относится в некоторых случаях к прямоугольной компоновке отсчетов, блоков, макроблоков, кодовых пакетов или подобных объектов, которые семантически сгруппированы и которые могут быть независимо кодированы с измененным разрешением. Один или более фрагментов изображения могут быть для изображения. Один или более кодированных фрагментов изображения могут образовывать кодированное изображение. Один или более фрагментов изображения могут быть собраны в изображение, и один или более фрагментов изображения могут быть извлечены из изображения. В определенных средах один или более кодированных фрагментов изображения могут быть собраны в сжатой области без перекодирования до уровня отсчетов в кодированное изображение, и в тех же или некоторых других случаях один или более кодированных фрагментов изображения могут быть извлечены из кодированного изображения в сжатой области.[0063] Hereinafter, a sub-image refers in some cases to a rectangular arrangement of samples, blocks, macroblocks, code packets, or the like, which are semantically grouped and which can be independently encoded with a changed resolution. One or more sub-images may be for an image. One or more encoded image fragments 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 may be collected in the compressed region without being re-coded to the sample level in the encoded image, and in the same or some other cases, one or more encoded sub-images may be extracted from the encoded image in the compressed region.
[0064] Адаптивное изменение разрешения (ARC) отныне относится к механизмам, которые позволяют изменять разрешение изображения или фрагмента изображения в кодированной видеопоследовательности, например, посредством передискретизации опорного изображения. Параметры ARC могут относиться к типам управляющей информации, необходимой для выполнения адаптивного изменения разрешения, которая может включать в себя, например, параметры фильтра, коэффициенты масштабирования, разрешения выходных и/или опорных изображений, различные флаги управления и т.д. Таким образом, информация ARC может относиться к данным и значениям, соответствующим параметрам ARC.[0064] Adaptive resolution change (ARC) now refers to mechanisms that allow the resolution of an image or sub-image in an encoded video sequence to be changed, for example, by resampling a reference image. The ARC parameters may refer to the types of control information needed to perform adaptive resizing, which may include, for example, filter parameters, scaling factors, output and/or reference picture resolutions, various control flags, and so on. Thus, ARC information may refer to data and values corresponding to ARC parameters.
[0065] Вышеприведенное описание сосредоточено на кодировании и декодировании одного семантически независимого кодированного видеоизображения. Прежде чем описывать последствия кодирования/декодирования нескольких фрагментов изображения с независимыми параметрами ARC и его предполагаемую дополнительную сложность, должны быть описании опции для сигнализации параметров ARC.[0065] The above description focuses on encoding and decoding a single semantically independent encoded video image. Before describing the consequences of encoding/decoding multiple sub-images with independent ARC parameters and its expected additional complexity, there should be a description of the option for ARC parameter signaling.
[0066] На фиг. 5А показано несколько новых возможных вариантов для сигнализации параметров ARC. Как отмечено для каждого из возможных вариантов, они имеют определенные преимущества и определенные недостатки с точки зрения эффективности кодирования, сложности и архитектуры. Стандарт или технология кодирования видео может выбрать один или более из этих возможных вариантов или других вариантов для сигнализации параметров ARC. Возможные варианты не могут быть взаимоисключающими и, возможно, могут меняться местами в зависимости от потребностей применения, используемых стандартов или выбора кодера.[0066] FIG. 5A shows several new options for ARC parameter signaling. As noted for each of the options, they have certain advantages and certain disadvantages in terms of coding efficiency, complexity and architecture. The video coding standard or technology may choose one or more of these options or other options for signaling the ARC parameters. The options may not be mutually exclusive and may possibly be interchanged depending on the needs of the application, the standards used, or the choice of encoder.
[0067] Классы параметров ARC могут включать:[0067] ARC parameter classes may include:
[0068] - коэффициенты повышения/понижения частоты дискретизации, отдельные или объединенные по измерениям X и Y;[0068] - upsampling/downsampling factors, either alone or combined across the X and Y dimensions;
[0069] - коэффициенты повышения/понижения частоты дискретизации, с добавлением временного измерения, указывающие на увеличение/уменьшение масштаба с постоянной скоростью для заданного количества изображений.[0069] - upsampling/downsampling factors, with the addition of a temporal dimension, indicative of upscaling/downscaling at a constant rate for a given number of images.
[0070] - Любой из вышеупомянутых двух может включать в себя кодирование одного или нескольких предположительно коротких элементов синтаксиса, которые могут указывать на таблицу, содержащую коэффициент(-ы).[0070] Any of the above two may include encoding one or more supposedly short syntax elements that may point to a table containing the coefficient(s).
[0070] - разрешение для измерения X или Y в единицах отсчетов, блоков, макроблоков, пакетов CU или любой другой подходящей гранулярности входного изображения, выходного изображения, опорного изображения, кодированного изображения, комбинированно или по отдельности. Если существует более одного разрешения (например, одно для входного изображения, одно для опорного изображения), то в некоторых случаях один набор значений может быть выведен из другого набора значений. Это может регулироваться, например, с помощью флагов. Более подробный пример см. ниже.[0070] is the resolution for measuring X or Y in units of samples, blocks, macroblocks, CU bursts, or any other suitable granularity of the input picture, output picture, reference picture, coded picture, combined or alone. 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 controlled, for example, using flags. See below for a more detailed example.
[0072] - координаты "деформации", подобные тем, которые используются в Приложении Р Н.263, снова с подходящей гранулярностью, как описано выше. Приложение Р Н.263 определяет один эффективный способ кодирования таких координат деформации координат, но, возможно, также могут быть разработаны другие, потенциально более эффективные способы. Например, обратимое кодирование переменной длины в стиле "Хаффмана" для координат деформации согласно Приложению Р может быть заменено двоичным кодированием подходящей длины, где длина двоичного кодового слова может быть, например, получена из максимального размера изображения, возможно, умноженного на определенный коэффициент и смещенного на определенное значение, чтобы учесть "деформацию" за пределами границ максимального размера изображения.[0072] - "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 coordinate warp coordinates, but other, potentially more efficient ways may also be developed. For example, the reversible "Huffman" style variable length encoding for warp coordinates according to Annex P can be replaced by a suitable length binary encoding, 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 to allow for "warping" beyond the bounds of the maximum image size.
[0073] - параметры фильтра с повышением или понижением частоты дискретизации. В простейшем случае может быть только один фильтр для повышающей и/или понижающей дискретизации. Однако в некоторых случаях может быть выгодно обеспечить большую гибкость в структуре фильтра, и для этого может потребоваться сигнализация параметров фильтра. Такие параметры могут быть выбраны с помощью индекса в списке возможных структур фильтров, фильтр может быть полностью определен (например, с помощью списка коэффициентов фильтра с использованием подходящих методов энтропийного кодирования), фильтр может быть выбран неявно с помощью соотношений повышающей/понижающей дискретизации, в соответствии с которыми, в свою очередь, сигнализируются в соответствии с любым из механизмов, упомянутых выше, и т.д.[0073] - filter parameters with upsampling or downsampling. In the simplest case, there can only be one filter for upsampling and/or downsampling. However, in some cases it may be beneficial to provide more flexibility in the filter structure, and this may require filter parameter signaling. Such parameters may be selected by an index into a list of possible filter structures, a filter may be fully specified (e.g., by a list of filter coefficients using suitable entropy coding techniques), a filter may be implicitly selected by upsampling/downsampling relationships, according to which, in turn, are signaled according to any of the mechanisms mentioned above, and so on.
[0074] Далее в описании предполагается кодирование конечного набора коэффициентов повышающей/понижающей дискретизации (один и тот же коэффициент, который должен использоваться как в измерениях X, так и в Y), указанных с помощью кодового слова. Это кодовое слово может быть преимущественно кодировано с переменной длиной, например, с использованием экспоненциального кода Голомба (Exp-Golomb), общего для определенных элементов синтаксиса в спецификациях кодирования видео, таких как Н.264 и Н.265. Одно подходящее сопоставление значений с коэффициентами повышающей/понижающей дискретизации может, например, соответствовать следующей таблице.[0074] The following description assumes encoding a finite set of upsampling/downsampling coefficients (the same coefficient to be used in both the X and Y dimensions) indicated by the codeword. This codeword may advantageously be encoded with a variable length, for example, using the exponential Golomb code (Exp-Golomb) common to certain syntax elements in video coding specifications such as H.264 and H.265. One suitable mapping of values to upsampling/downsampling factors may, for example, correspond to the following table.
[0075] Многие аналогичные отображения могут быть разработаны в соответствии с потребностями применения и возможностями механизмов увеличения и уменьшения масштаба, доступных в технологии или стандарте сжатия видео. Таблица может быть расширена до большего количества значений. Значения также могут быть представлены механизмами энтропийного кодирования, отличными от экспоненциальных кодов Голомба, например, с использованием двоичного кодирования. Это может иметь определенные преимущества, когда коэффициенты передискретизации представляли интерес за пределами самих механизмов обработки видео (прежде всего кодера и декодера), например, посредством сетевых элементов, реагирующих на медиаданные (MANE, Media Aware Network Element). Следует отметить, что для (предположительно) наиболее распространенного случая, когда изменение разрешения не требуется, можно выбрать короткий экспоненциальный код Голомба; в таблице выше - только один бит.Это может иметь преимущество в эффективности кодирования по сравнению с использованием двоичных кодов для наиболее распространенного случая.[0075] Many similar displays can be designed in accordance with the needs of the application and the capabilities of the zoom in and out 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 the video processing mechanisms themselves (primarily the encoder and decoder), for example, through network elements that respond to media data (MANE, Media Aware Network Element). It should be noted that for the (presumably) most common case where no resolution change is required, a short exponential Golomb code can be chosen; in the table above, only one bit. This may have an advantage in coding efficiency over using binary codes for the most common case.
[0076] Количество записей в таблице, а также их семантика могут быть полностью или частично конфигурируемыми. Например, основная структура таблицы может быть передана в "высоком" наборе параметров, таком как последовательность или набор параметров декодера. В качестве альтернативы или в дополнение, одна или несколько таких таблиц могут быть определены в технологии или стандарте видеокодирования и могут быть выбраны, например, с помощью декодера или набора параметров последовательности.[0076] The number of entries in the table, as well as their semantics, can be fully or partially configurable. For example, the underlying 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.
[0077] Далее мы описываем, как коэффициент повышающей/понижающей дискретизации (информация ARC), кодированный, как описано выше, может быть включен в синтаксис технологию или стандарта кодирования видео. Подобные соображения могут применяться к одному или нескольким кодовым словам, управляющим фильтрами повышающей/понижающей дискретизации. См. ниже обсуждение, когда для фильтра или других структур данных требуются сравнительно большие объемы данных.[0077] Next, we describe how the upsampling/downsampling ratio (ARC information) encoded as described above can be included in the syntax of a video coding technology or standard. 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.
[0078] Приложение Р Н.263 включает информацию ARC 502 в форме четырех координат деформации в заголовок 501 изображения, в частности, в расширение заголовка PLUSPTYPE (503) Н.263. Эта форма информации ARC 502 может использоваться, когда а) имеется доступный заголовок изображения и b) ожидаются частые изменения информации ARC. Однако объем служебных данные при использовании сигнализации в стиле Н.263 может быть довольно высоким, и коэффициенты масштабирования могут не относиться к границам изображения, поскольку заголовок изображения может иметь временный характер.[0078] Appendix P H.263 includes
[0079] Документ JVCET-M135-vl, процитированный выше, включает справочную информацию ARC (505) (индекс), расположенную в наборе (504) параметров изображения, индексирующей таблицу (506), включая целевые разрешения, которая, в свою очередь, расположена внутри набора (507) параметров последовательности. Размещение возможного разрешения в таблице (506) в наборе (507) параметров последовательности может, в соответствии со словесными заявлениями, сделанными авторами, быть оправдано использованием набора параметров последовательности (SPS, Sequence Parameter Set) в качестве пункта согласования совместимости во время обмена возможностями. Разрешение может изменяться в пределах, установленных значениями в таблице (506) от изображения к изображению, путем обращения к соответствующему набору (504) параметров изображения.[0079] The JVCET-M135-vl document cited above includes ARC reference information (505) (index) located in an image parameter set (504) indexing a 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 (Sequence Parameter Set) 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.
[0080] Для передачи информации ARC в битовом потоке видео могут существовать следующие дополнительные возможные варианты. Каждый из этих возможных вариантов имеет определенные преимущества, как описано выше. Возможные варианты могут одновременно присутствовать в одной и той же технологии или стандарте кодирования видео.[0080] For the transmission of ARC information in a video bitstream, the following additional options may exist. Each of these possible options has certain advantages, as described above. The options may be present in the same video coding technology or standard at the same time.
[0081] В форме осуществления изобретения, показанной на фиг.5 В, информация ARC (509), такая как коэффициент передискретизации (масштабирования), может присутствовать в заголовке слайса, заголовке GOB, заголовке тайла или заголовке (508) группы тайлов (далее - заголовке группы тайлов). Этого может быть достаточно для информации ARC небольшого размера, такой как одиночное кодовое слово переменной длины ue(v) или кодовое слово фиксированной длины из нескольких битов, например, как показано выше. Наличие информации ARC в заголовке группы тайлов непосредственно имеет дополнительное преимущество, поскольку информация ARC может быть применима к фрагменту изображения, представленному, например, этой группой тайлов, а не ко всему изображению. Также см. ниже. Кроме того, даже если технология или стандарт сжатия видео предусматривает только адаптивное изменение разрешения всего изображения (в отличие, например, от адаптивного изменения разрешения на основе группы тайлов), помещение ее в заголовок изображения в стиле Н.263 имеет определенные преимущества с точки зрения обеспечения устойчивости к ошибкам.[0081] In the embodiment shown in FIG. 5B, ARC information (509) such as a resampling (scaling) factor may be present in a slice header, GOB header, tile header, or tile group header (508) (hereinafter referred to as tile group header). This may be sufficient for small size ARC information such as a single variable length codeword ue(v) or a fixed length codeword of several bits, such as shown above. Having the ARC information in the tile group header directly has the additional advantage that the ARC information can be applied to a sub-image represented by that tile group, for example, rather than to the entire image. See also below. In addition, even if a video compression technology or standard only provides for adaptive resizing of the entire image (as opposed to, for example, adaptive resizing based on a group of tiles), placing it in an H.263-style image header has certain advantages in terms of providing error tolerance.
[0082] В той же или другой форме осуществления изобретения сама информация ARC (512) может присутствовать в соответствующем наборе (511) параметров, таком как, например, набор параметров изображения, набор параметров заголовка, набор параметров тайла, набор параметров адаптации и т.д. (показан набор параметров адаптации). Объем этого набора параметров может преимущественно быть не больше, чем изображение, например представлять группу тайлов. Использование информации ARC неявно осуществляется путем активации соответствующего набора параметров. Например, когда технология или стандарт видеокодирования рассматривают только ARC на основе изображения, тогда может быть подходящим набор параметров изображения или его эквивалент.[0082] In the same or another embodiment of the invention, 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, etc. d. (a set of adaptation parameters is shown). The scope of this set of parameters may advantageously be no larger than an image, eg represent 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 a set of image parameters or its equivalent may be appropriate.
[0083] В той же или другой форме осуществления изобретения справочная информация ARC (513) может присутствовать в заголовке (514) группы тайлов или аналогичной структуре данных. Эта справочная информация (513) может относиться к подмножеству информации ARC (515), доступной в наборе (516) параметров с объемом, выходящим за рамки одного изображения, например, наборе параметров последовательности или наборе параметров декодера.[0083] In the same or another embodiment of the invention, 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 the ARC information (515) available in a parameter set (516) with a scope larger than a single picture, such as a sequence parameter set or a decoder parameter set.
[0084] Дополнительный уровень косвенного обращения, подразумевающий активацию набора параметров изображения (PPS) из заголовка группы элементов тайла, PPS, набора параметров последовательности (SPS), как используется в документе JVET-M0135-vl, кажется ненужным, поскольку наборы параметров изображения, так же, как наборы параметров последовательности, могут использоваться (и используются в некоторых стандартах, таких как RFC3984) для согласования возможностей или объявлений. Набор PPS обычно относится к структуре синтаксиса, содержащей элементы синтаксиса, которые применяются к нулю или более целых кодированных изображений, как определено элементом синтаксиса, найденным в каждом заголовке слайса. Набор SPS обычно относится к структуре синтаксиса, содержащей элементы синтаксиса, которые применяются к нулю или более полных видеопоследовательностей кодированного уровня (CLVS, Coded Layer Video Sequence), как определено контентом элемента синтаксиса, найденного в наборе PPS, на который ссылается элемент синтаксиса, найденный в каждом заголовке изображения. Если, однако, информация ARC должна быть применима к фрагменту изображения, представленному, например, также группами тайлов, набор параметров с областью активации, ограниченной группой тайлов, такой как набор параметров адаптации или набор параметров заголовка, может быть лучшим выбором. Также, если информация ARC имеет более чем пренебрежимо малый размер например, содержит информацию управления фильтром, такую как многочисленные коэффициенты фильтра то тогда параметр может быть лучшим выбором, чем использование заголовка (508) непосредственно, с точки зрения эффективности кодирования, так как эти установки могут быть годными для повторного использования будущими изображениями или фрагментами изображения по ссылке на тот же самый набор параметров.[0084] An additional level of indirection involving the activation of a Picture Parameter Set (PPS) from a Tile Element Group Header, PPS, Sequence Parameter Set (SPS), as used in JVET-M0135-vl, seems unnecessary because Picture Parameter Sets, just like sequence parameter sets can be used (and are used in some standards such as RFC3984) to negotiate capabilities or declarations. A PPS set generally refers to a syntax structure containing syntax elements that apply to zero or more integer coded pictures as defined by the syntax element found in each slice header. An SPS set generally refers to a syntax structure containing syntax elements that apply to zero or more complete Coded Layer Video Sequences (CLVS) as defined by the content of the syntax element found in the PPS set referenced by the syntax element found in each image header. If, however, 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 negligible size, e.g., contains filter control information such as multiple filter coefficients, then the parameter may be a better choice than using the (508) header directly in terms of coding gain, since these settings may be reusable by future images or image fragments by reference to the same set of parameters.
[0085] При использовании набора параметров последовательности или другого набора параметров более высокого уровня с областью действия, охватывающей несколько изображений, могут применяться определенные соображения:[0085] When using a sequence parameter set or other higher-level parameter set with a scope spanning multiple images, certain considerations may apply:
[0086] 1. Набор параметров для хранения таблицы (516) информации ARC может в некоторых случаях быть набором параметров последовательности, но в других случаях предпочтительно набором параметров декодера. Набор параметров декодера может иметь область активации нескольких кодированных видеопоследовательностей CVS, а именно кодированного видеопотока, т.е. всех битов кодированного видео от начала сеанса до разрыва сеанса. Такой объем может быть более подходящим, потому что возможные факторы ARC могут быть функцией декодера, возможно, реализованной в аппаратном обеспечении, а аппаратные функции, как правило, не меняются с любой CVS (который, по крайней мере, в некоторых развлекательных системах представляет собой группу изображений, длительностью одну секунду или меньше). Тем не менее, включение таблицы в набор параметров последовательности явно включено в варианты размещения, описанные здесь, в частности, в связи с пунктом 2 ниже.[0086] 1. 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. The decoder parameter set may have an activation area of several CVS coded video sequences, namely the coded video stream, i. e. all bits of the encoded video from session start to session break. Such scope may be more appropriate because possible ARC factors could be a decoder function, perhaps implemented in hardware, and hardware functions generally do not change with any CVS (which, at least in some entertainment systems, is a group images that are one second or less in length). However, the inclusion of a table in the sequence parameter set is explicitly included in the placement options described here, in particular in connection with
[0087] 2. Справочная информация ARC (513) может быть преимущественно помещена непосредственно в заголовок (514) изображения/тайла слайса/группы блоков (GOB, Group Of Blocks)/rpynnbi тайлов (далее - заголовок группы тайлов), а не в набор параметров изображения, как в документе JVCET-M0135-vl. Причина в следующем: когда кодер хочет изменить одно значение в наборе параметров изображения, такое как, например, справочная информация ARC, он должен создать новый набор PPS и ссылаться на этот новый набор PPS. Предположим, что изменяется только справочная информация ARC, но другая информация, такая как, например, информация матрицы квантования в наборе PPS, остается. Такая информация может быть значительного размера, и ее необходимо будет повторно передать, чтобы завершить новый набор PPS. Поскольку справочная информация ARC может быть одним кодовым словом, например индексом в таблице (513), и это будет единственное значение, которое изменяется, было бы обременительно и расточительно повторно передавать всю, например, информацию матрицы квантования. В этом отношении может быть значительно лучше с точки зрения эффективности кодирования, чтобы избежать косвенного обращения через набор PPS, как предлагается в документе JVET-M0135-vl. Точно так же размещение справочной информации ARC в наборе PPS имеет дополнительный недостаток, заключающийся в том, что информация ARC, на которую ссылается справочная информация ARC (513), обязательно должна применяться ко всему изображению, а не к фрагменту изображения, поскольку задачей активации набора параметров изображения является изображение.[0087] 2. The ARC reference information (513) can advantageously be placed directly in the image/tile slice/group of blocks (GOB, Group Of Blocks)/rpynnbi header (514) of tiles (hereinafter referred to as the tile group header) rather than in the set image parameters, as in JVCET-M0135-vl. The reason is that when an encoder wants to change one value in a picture parameter set, such as ARC help information, for example, it must create a new PPS set and refer to this new PPS set. Assume that only the ARC reference information is changed, but other information, such as quantization matrix information in the PPS set, for example, remains. Such information may be of considerable size and will need to be retransmitted in order to complete a new PPS set. 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 all, for example, quantization matrix information. In this regard, it can be significantly better in terms of coding efficiency to avoid indirection through the PPS set as proposed in JVET-M0135-vl. Similarly, placing the ARC help information in the PPS has the additional disadvantage that the ARC information referenced by the ARC help information (513) must necessarily apply to the entire image, and not to a sub-image, since the task of activating the parameter set image is an image.
[0088] В той же или другой форме осуществления изобретения, сигнализация параметров ARC может следовать подробному примеру, как показано на фиг. 6А. Фиг. 6А изображает схемы показывающие примеры синтаксиса, в представлении, используемом в стандартах видеокодирования по меньшей мере с 1993 года. Представление таких схем, показывающих примеры синтаксиса, примерно соответствует программированию в стиле языка С. Строки, выделенные жирным шрифтом, указывают на элементы синтаксиса, присутствующие в потоке битов, строки без жирного шрифта часто указывают на поток управления или установочные параметры переменных.[0088] In the same or another embodiment of the invention, ARC parameter signaling may follow a detailed example as shown in FIG. 6A. Fig. 6A is a diagram showing syntax examples, in the representation used in video coding standards since at least 1993. The presentation of such diagrams showing examples of syntax is roughly equivalent to C-style programming. Lines in bold indicate syntax elements present in the bit stream, lines without bold type often indicate control flow or variable settings.
[0089] Заголовок (601) группы тайлов в качестве иллюстративной структуры синтаксиса заголовка, применимого к (возможно, прямоугольной) части изображения, может условно содержать элемент синтаксиса переменной длины, кодированный с помощью экспоненциального кода Голомба, dec_pic_size_idx (602) (выделенный жирным шрифтом). Наличие этого элемента синтаксиса в заголовке группы тайлов может быть запущено использованием адаптивного разрешения (603) - здесь значение флага не выделено жирным шрифтом, что означает, что флаг присутствует в потоке битов в той точке, где он встречается на схеме, показывающей пример синтаксиса. О том, используется ли адаптивное разрешение для этого изображения или его частей, можно сигнализировать в любой синтаксической структуре высокого уровня внутри или вне потока битов. В показанном примере это сигнализируется в наборе параметров последовательности, как показано ниже.[0089] 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 encoded with exponential Golomb code, dec_pic_size_idx (602) (in bold) . The presence of this syntax element in a tile group header can be triggered by using adaptive resolution (603) - here the flag value is not in bold, meaning that the flag is present in the bitstream at the point where it occurs in the diagram showing the syntax example. 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.
[0090] По-прежнему обращаясь к фиг. 6А также показан фрагмент набора (610) параметров последовательности. Первый показанный элемент синтаксиса - это adaptive_pic_resolution_change_flag (611). Когда он имеет значение истина, этот флаг может указывать на использование адаптивного разрешения, которое, в свою очередь, может требовать определенной управляющей информации. В примере такая управляющая информация присутствует условно на основе значения флага на основе оператора if() в наборе (612) параметров и заголовке (601) группы тайлов.[0090] Still referring to FIG. 6A also shows a fragment of a set (610) of sequence parameters. The first syntax element shown is adaptive_pic_resolution_change_flag (611). When 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).
[0091] Когда используется адаптивное разрешение, в этом примере кодируется выходное разрешение в единицах отсчетов (613). Цифра 613 относится как к элементу output_pic_width_in_luma_samples, так и к элементу output_pic_height_in_luma_samples, которые вместе могут определять разрешение выходного изображения. В другом месте технологии или стандарта видеокодирования могут быть определены определенные ограничения для каждого значения. Например, определение уровня может ограничивать число общих выходных отсчетов, которые могут быть произведением значений этих двух элементов синтаксиса. Кроме того, определенные технологии или стандарты видеокодирования, или внешние технологии или стандарты, такие как, например, системные стандарты, могут ограничивать диапазон численной величины (например, одно или оба измерения должны делиться на степень 2) или формат изображения (например, ширина и высота должны быть в соотношении, например, 4:3 или 16:9). Такие ограничения могут быть введены для облегчения аппаратных реализаций или по другим причинам.[0091] When adaptive resolution is used, this example encodes the output resolution in units of samples (613).
[0092] В некоторых применениях может быть целесообразно, чтобы кодер подавал команду декодеру использовать определенный размер опорного изображения, а не неявно предполагать, что этот размер является размером выходного изображения. В этом примере элемент синтаксиса reference_pic_size_present_flag (614) запускает условное присутствие размеров (615) опорного изображения (опять же, число относится как к ширине, так и к высоте).[0092] In some applications, it may be desirable for the encoder to instruct the decoder to use a certain reference picture size rather than implicitly assume that this size is the size of the output picture. In this example, the reference_pic_size_present_flag (614) syntax element triggers the conditional presence of the reference picture sizes (615) (again, the number refers to both width and height).
[0093] Наконец, показана таблица возможной ширины и высоты декодированного изображения. Такая таблица может быть выражена, например, указанием таблицы (num_dec_pic_size_in_luma_samples_minusl) (616). Элемент "minusl" может относиться к интерпретации значения этого элемента синтаксиса. Например, если кодированное значение равно нулю, присутствует одна запись в таблице. Если значение равно пяти, присутствуют шесть записей таблицы. Затем для каждой "строки" в таблице ширина и высота декодированного изображения включаются в синтаксис (617).[0093] Finally, a table of possible width and height of the decoded image is shown. Such a table may be expressed, for example, by specifying a table (num_dec_pic_size_in_luma_samples_minusl) (616). The "minusl" element 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).
[0094] Представленные (617) элементы таблицы могут быть проиндексированы с использованием элемента синтаксиса dec_pic_size_idx (602) в заголовке группы тайлов, тем самым позволяя различные декодированные размеры - в сущности, коэффициенты масштабирования - для каждой группы тайлов.[0094] Represented (617) table elements 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.
[0095] Некоторые технологии или стандарты кодирования видео, например VP9, поддерживают пространственную масштабируемость путем реализации определенных форм пере дискретизации опорного изображения (сигнализируемой совершенно иначе, чем в раскрываемом предмете изобретения) в сочетании с временной масштабируемостью, чтобы обеспечить пространственную масштабируемость, в частности, определенные опорные изображения могут подвергаться повышающей дискретизации с использованием технологий ARC-стиля до более высокого разрешения для формирования основы уровня пространственного улучшения. Эти изображения с повышенной дискретизацией можно улучшить, используя обычные механизмы предсказания с высоким разрешением, чтобы добавить детали.[0095] Some video coding technologies or standards, such as VP9, support spatial scalability by implementing certain forms of reference picture resampling (signaled quite differently than in the disclosed subject matter) in combination with temporal scalability to provide spatial scalability, in particular certain the reference pictures may be upsampled using ARC-style techniques to higher resolution to form the basis of the spatial enhancement layer. These upsampled images can be enhanced using conventional high resolution prediction engines to add detail.
[0096] Раскрываемый предмет изобретения может использоваться в такой среде. В некоторых случаях, в той же или другой форме осуществления изобретения, значение в заголовке пакета уровня сетевой абстракции (NAL, Network Abstraction Level) например поле Temporal ID, может использоваться для указания не только временного, но и пространственного уровня. Это дает определенные преимущества для определенных структур систем; например, серверы селективной пересылки потоков (SFU, Selected Forwarding Units), созданные и оптимизированные для селективной пересылки на временном уровне, выбранные на основе значения временного идентификатора Temporal ID заголовка пакета NAL, могут использоваться без модификации для масштабируемых сред. Чтобы сделать это возможным, может существовать требование для отображения между размером кодированного изображения и временным уровнем, указываемым полем Temporal ID в заголовке пакета NAL.[0096] The disclosed subject matter may be used in such an environment. In some cases, in the same or another embodiment of the invention, a value in the Network Abstraction Level (NAL) packet header, such as the Temporal ID field, can be used to indicate not only the temporal but also the spatial level. This provides certain advantages for certain system structures; for example, Selected Forwarding Units (SFU) servers built and optimized for temporal selective forwarding, selected based on the Temporal ID value of the NAL packet header, can be used without modification for scalable environments. To make this possible, there may be a requirement to map between the encoded picture size and the temporal level indicated by the Temporal ID field in the NAL packet header.
[0097] Фиг. 6В - это блок-схема, иллюстрирующая способ (620) декодирования кодированного изображения из кодированной видеопоследовательности согласно форме осуществления изобретения. В некоторых реализациях один или более блоков обработки на фиг. 6В может выполняться декодером (210). В некоторых реализациях один или более блоков обработки на фиг. 6 В может выполняться другим устройством или группой устройств, отдельных от декодера (210) или включающих в себя его, например кодером (203).[0097] FIG. 6B is a flowchart illustrating a method (620) for decoding an encoded picture from an encoded video sequence according to an embodiment of the invention. In some implementations, one or more processing units in FIG. 6B may be performed by the decoder (210). In some implementations, one or more processing units in FIG. 6B may be performed by another device or group of devices separate from or including the decoder (210), such as an encoder (203).
[0098] Как показано на фиг.6 В, способ (620) включает в себя определение, доступна ли (621) информация ARC, и если определено, что информация ARC недоступна, то способ завершается (650). Если определено, что информация ARC доступна, то способ включает в себя декодирование из набора параметров множества возможных декодированных разрешений (625).[0098] As shown in FIG. 6B, the method (620) includes determining whether ARC information is available (621), and if it is determined that ARC information is not available, then the method ends (650). If it is determined that ARC information is available, then the method includes decoding, from the parameter set, a set of possible decoded grants (625).
[0099] Способ (620) включает в себя выбор посредством индекса, кодированного в структуре временного заголовка, применимого к группе отсчетов, возможного декодированного разрешения среди множества возможных декодированных разрешений (630).[0099] The method (620) includes selecting, by means of an index encoded in a temporary header structure applicable to a group of samples, a possible decoded resolution among a plurality of possible decoded resolutions (630).
[0100] Способ (620) включает в себя передискретизацию отсчета из группы отсчетов на основе выходного разрешения и выбранного возможного декодированного разрешения (635).[0100] The method (620) includes resampling a sample from a group of samples based on an output resolution and a selected candidate decoded resolution (635).
[0101] Способ (620) включает в себя разрешение предсказания с использованием передискретизированного отсчета (640).[0101] Method (620) includes enabling prediction using a resampled sample (640).
[0102] Способ (620) может дополнительно включать в себя то, что структура временного заголовка представляет собой любой один или любую комбинацию заголовка изображения, заголовка группы тайлов, заголовка тайла, заголовка слайса и заголовка группы блоков.[0102] The method (620) may further include that the temporary header structure is any one or any combination of an image header, a tile group header, a tile header, a slice header, and a block group header.
[0103] Способ (620) может дополнительно включать в себя то, что индекс кодируется экспоненциальным кодом Голомба.[0103] The method (620) may further include that the index is encoded with an Exponential Golomb code.
[0104] Способ (620) может дополнительно включать в себя то, что структура временного заголовка является заголовком группы тайлов, а заголовок группы тайлов содержит коэффициент передискретизации.[0104] The method (620) may further include that the temporary header structure is a tile group header, and the tile group header contains a resampling factor.
[0105] Способ (620) может дополнительно включать в себя то, что структура переходного заголовка является заголовком группы тайлов, а заголовок группы тайлов содержит справочную информацию об адаптивном изменении разрешения (ARC).[0105] The method (620) may further include that the transition header structure is a tile group header, and the tile group header contains adaptive resolution change (ARC) help information.
[0106] Способ (620) может дополнительно включать в себя то, что справочная информация ARC относится к подмножеству информации ARC, доступной в наборе параметров.[0106] The method (620) may further include that the ARC reference information refers to a subset of the ARC information available in the parameter set.
[0107] Способ (620) может дополнительно включать в себя то, что число возможных декодированных разрешений кодируется в элементе синтаксиса, кодированного экспоненциальным кодом Голомба, предшествующем множеству возможных декодированных разрешений.[0107] The method (620) may further include that the number of possible decoded permissions is encoded in the exponential Golomb encoded syntax element preceding the set of possible decoded permissions.
[0108] Хотя на фиг. 6 В показаны иллюстративные блоки способа (620), в некоторых реализациях способ (620) может включать в себя дополнительные блоки, меньшее количество блоков, различные блоки или блоки, расположенные иначе, чем те, которые изображены на фиг. 6В. Дополнительно или альтернативно, два или более блоков способа (620) могут выполняться параллельно.[0108] Although in FIG. 6B shows exemplary blocks of method (620), in some implementations, method (620) may include additional blocks, fewer blocks, different blocks, or blocks arranged differently from those depicted in FIG. 6B. Additionally or alternatively, two or more blocks of the method (620) may be executed in parallel.
[0109] Кроме того, предлагаемые способы могут быть реализованы схемами обработки (например, одним или несколькими процессорами или одной или несколькими интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на энергонезависимом машиночитаемом носителе, для выполнения одного или нескольких из предложенных способов.[0109] In addition, the proposed methods can be implemented by processing circuits (eg, one or more processors or one or more integrated circuits). In one example, one or more processors execute a program that is stored on a non-volatile computer-readable medium to perform one or more of the proposed methods.
[ОНО] Фиг. 6С - упрощенная блок-схема устройства (660) для декодирования кодированного изображения видеопоследовательности согласно форме осуществления изобретения.[IT] FIG. 6C is a simplified block diagram of an apparatus (660) for decoding an encoded picture of a video sequence according to an embodiment of the invention.
[0111] Как показано на фиг. 6С, устройство (660) содержит код (670) декодирования, код (675) выбора, код (680) передискретизации и код (685) разрешения.[0111] As shown in FIG. 6C, the device (660) contains a decoding code (670), a selection code (675), a resampling code (680), and a permission code (685).
[0112] Код (670) декодирования сконфигурирован для декодирования из набора параметров множества возможных декодированных разрешений.[0112] The decoding code (670) is configured to decode a set of possible decoded grants from the parameter set.
[0113] Код (675) выбора сконфигурирован для выбора посредством индекса, кодированного в структуре временного заголовка, применимой к группе отсчетов, возможного декодированного разрешения среди множества возможных декодированных разрешений.[0113] The selection code (675) is configured to select, by means of an index encoded in the temporary header structure applicable to the sample group, a possible decoded grant among a plurality of possible decoded grants.
[0114] Код (680) передискретизации сконфигурирован для передискретизации отсчета из группы отсчетов на основе выходного разрешения и выбранного возможного декодированного разрешения.[0114] The resampling code (680) is configured to resample a sample from a group of samples based on the output resolution and the selected candidate decoded resolution.
[0115] Код (685) разрешения сконфигурирован для разрешения предсказания с использованием передискретизированного отсчета.[0115] The enable code (685) is configured to enable prediction using the oversampled sample.
[0116] Технологии для сигнализации параметров адаптивного разрешения, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых команд и физически сохранены на одном или нескольких машиночитаемых носителях. Например, на фиг. 7 показана компьютерная система 700, подходящая для реализации некоторых форм осуществления раскрываемого предмета изобретения.[0116] The technologies for signaling 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 some embodiments of the disclosed subject matter.
[0117] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или языка вычислительной машины, который может быть предметом трансляции, компиляции, компоновки или подобных механизмов для создания кода, содержащего команды, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и т.п.центральными процессорами компьютера (CPU, Central Processing Unit), графическими процессорами (GPU, Graphics Processing Unit) и т.п.[0117] Computer software may be coded using any suitable machine code or computer language that may be the subject of translation, compilation, linking, or similar mechanisms to produce code containing instructions that can be executed directly or through interpretation, execution of microcode, and etc. computer central processing units (CPU, Central Processing Unit), graphic processors (GPU, Graphics Processing Unit), etc.
[0118] Команды могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т.п.[0118] The commands 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.
[0119] Компоненты, показанные на фиг. 7 для компьютерной системы 700, являются иллюстративными по своей природе и не предназначены для предложения каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего формы осуществления настоящего изобретения. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, показанных в примере осуществления компьютерной системы 700.[0119] The components shown in FIG. 7 for computer system 700 are illustrative in nature and are not intended to suggest any limitation as to the scope of use or functionality of the computer software implementing the embodiments of the present invention. The component configuration is also not to be interpreted as having any dependency or requirement related to any one or combination of components shown in the exemplary computer system 700.
[0120] Компьютерная система 700 может содержать определенные устройства ввода с интерфейсом пользователя. Такое устройство ввода с интерфейсом пользователя может реагировать на ввод одним или несколькими пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, проведения по экрану, движения информационной перчатки), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например: жестов), обонятельного ввода (не изображенного). Устройства с интерфейсом пользователя также могут использоваться для захвата определенных мультимедийных данных, не обязательно напрямую связанных с сознательным вводом человеком, таких как звук (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные из камеры для неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).[0120] Computer system 700 may include certain input devices with a user interface. Such a user interface input device may respond to input by one or more human users through, for example, tactile input (e.g., keystrokes, swipe, movement of an information glove), audio input (e.g., voice, hand clapping), visual input (for example: gestures), olfactory input (not shown). User interface devices may also be used to capture certain multimedia data 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).
[0121] Устройства ввода интерфейса пользователя могут включать в себя одно или более из (только по одному из каждого изображенного): клавиатуры 701, мыши 702, трекпада 703, сенсорного экрана 710, информационной перчатки 704, джойстика 705, микрофона 706, сканера 707, камеры 708.[0121] User interface input devices may include one or more of (only one of each depicted): a
[0122] Компьютерная система 700 может также содержать определенные устройства вывода с интерфейсом пользователя. Такие устройства вывода с интерфейсом пользователя могут стимулировать чувства одного или нескольких пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с интерфейсом пользователя могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана 710, информационной перчатки 704 или джойстика 705, но также могут быть устройствами с тактильной обратной связью, которые не служат в качестве устройств ввода), устройства звукового выхода (такие как громкоговорители 709, головные телефоны (не показанные)), устройства визуального вывода (например, экраны 710, включая экраны электронно-лучевой трубки (CRT, Cathode Ray Tube), экраны жидкокристаллического дисплея (LCD, Liquid-Crystal Display), плазменные экраны, экраны на органических светодиодах (OLED, Organic Light-Emitting Diode), каждое с возможностью сенсорного ввода или без нее, каждое с возможностью тактильной обратной связи или без нее; - некоторые из них могут быть способны выполнять двухмерный визуальный вывод или более чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображенные), голографические дисплеи, дымовые баки (не изображенные) и принтеры (не изображенные).[0122] Computer system 700 may also include certain user interface output devices. Such user interface output devices may stimulate the senses of one or more human users through, for example, tactile output, sound, light, and smell/taste. Such user interface output devices may include tactile output devices (e.g., haptic feedback from a
[0123] Компьютерная система 700 также может содержать доступные пользователю устройства хранения данных и связанные с ними носители, такие как оптические средства включая средства 720 только для чтения (ROM, Read Only Memory)/для чтения и многократной записи (RW, Read and Write) с компакт-дисками (CD, Compact 018к)/цифровыми универсальными дисками (DVD, Digital Versatile Disc) или тому подобные носители 721, флэш-накопитель 722, съемный жесткий диск или твердотельный накопитель 723, традиционные магнитные носители, такие как лента и дискета (не показаны), специализированные устройства на основе постоянных запоминающих устройств (Read Only Memory ROM/специализированных интегральных схем (ASIC, Application-Specific Integrated Circuit)/программируемых логических интегральных схем (PLD, Programmable Logic Device), такие как защитные ключи (не показанные) и т.п.[0123] The computer system 700 may also include user-accessible storage devices and associated media, such as optical media including read-only (ROM, Read Only Memory)/read and rewrite (RW, Read and Write) 720 with CDs (CD, Compact 018k)/Digital Versatile Discs (DVD, Digital Versatile Disc) or the like 721,
[0124] Специалисты в данной области техники также должны понимать, что термин "машиночитаемый носитель", используемый в связи с раскрываемым в настоящее время предметом изобретения, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.[0124] Those skilled in the art should also understand that the term "computer-readable medium" as used in connection with the currently disclosed subject matter does not encompass transmission media, carrier waves, or other transient signals.
[0125] Компьютерная система 700 также может содержать интерфейс к одной или более сетям (755) связи. Сети (755) могут быть, например, беспроводными, проводными, оптическими. Сети (755) дополнительно могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и так далее. Примеры сетей (755) включают в себя локальные сети, такие как Ethernet, беспроводные локальные сети (LAN, Local Area Network), сотовые сети, включая глобальную систему мобильной связи (GSM, Global System for Mobile communications), сети связи третьего поколения (3G, 3-rd Generation), сети связи четвертого поколения (4G, 4-th Generation), сети связи пятого поколения (5G, 5-th Generation), сеть связи по технологии долгосрочной эволюции (LTE, Long-Term Evolution) и т.п., телевизионные (TV, Television) проводные или беспроводные глобальные цифровые сети, включая кабельное телевидение (TV), спутниковое телевидение (TV) и наземное телевещание, автомобильное и промышленное, включая локальную сеть контроллеров (CANBus, Controller Area Network Bus) и т.д. Некоторым сетям (755) обычно требуются адаптеры (754) внешнего сетевого интерфейса, которые подключены к определенным портам данных общего назначения или периферийным шинам (749) (таким как, например, порты универсальной последовательной шины (USB, Universal Serial Bus) компьютерной системы 700; другие обычно интегрируются в ядро компьютерной системы 700 путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему персональных компьютеров (PC, Personal Computer) или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей (755), компьютерная система 700 может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное TV), однонаправленной только для передачи (например, CANbus к определенным устройствам CANbus) или двунаправленной, например, с другими компьютерными системами, использующими локальные или глобальные цифровые сети. Определенные протоколы и стеки протоколов могут использоваться в каждой из этих сетей (755) и сетевых интерфейсах (754), как описано выше.[0125] Computer system 700 may also include an interface to one or more communication networks (755). Networks (755) may be, for example, wireless, wired, optical. Networks (755) may further be local, wide area, metropolitan, automotive, industrial, real-time, latency tolerant, and so on. Example networks (755) include local area networks such as Ethernet, wireless local area networks (LAN, Local Area Network), cellular networks, including global system for mobile communications (GSM, Global System for Mobile communications), third generation communications networks (3G , 3rd Generation), fourth generation communication networks (4G, 4th Generation), fifth generation communication networks (5G, 5th Generation), long-term evolution technology communication network (LTE, Long-Term Evolution), etc. etc., television (TV, Television) wired or wireless global digital networks, including cable television (TV), satellite television (TV) and terrestrial television broadcasting, automotive and industrial, including a local area network of controllers (CANBus, Controller Area Network Bus), etc. .d. Some networks (755) typically require external network interface adapters (754) that are connected to certain general purpose data ports or peripheral buses (749) (such as, for example, the Universal Serial Bus (USB) ports of the computer system 700; others are typically integrated into the core of the computer system 700 by connecting to a system bus as described below (for example, an Ethernet interface to a Personal Computer system or a cellular network interface to a smartphone computer system).Using any of these networks (755 ), computer system 700 can communicate with other entities. Such communication can be unidirectional, receive-only (e.g., TV broadcast), unidirectional, transmit-only (e.g., CANbus to certain CANbus devices), or bidirectional, e.g., to other computer systems, using local or wide digital networks Certain protocols and protocol stacks may be used on each of these networks (755) and network interfaces (754) as described above.
[0126] Вышеупомянутые устройства интерфейса пользователя, доступные пользователю устройства хранения данных и сетевые интерфейсы (754) могут быть присоединены к ядру 740 компьютерной системы 700.[0126] The aforementioned user interface devices, user accessible storage devices, and network interfaces (754) may be attached to the
[0127] Ядро 740 может содержать один или более центральных процессоров (CPU, Central Processing Unit) 741, графических процессоров (GPU, Graphics Processing Unit) 742, специализированных программируемых блоков обработки в виде программируемых пользователем матриц 743 логических элементов (FPGA, Field Programmable Gate Area), аппаратных ускорителей 744 для определенных задач, и так далее. Эти устройства, наряду с постоянным запоминающим устройством (ROM, Readonly Memory) 745, оперативным запоминающим устройством (RAM, Random-Access Memory)746, графическим адаптером 750, внутренним запоминающим устройством 747 большой емкости, таким как внутренние жесткие диски, не доступные пользователю, твердотельные накопители (SSD, Solid State Drive) и т.п., могут быть подключены через системную шину 748. В некоторых компьютерных системах системная шина 748 может быть доступна в форме одного или нескольких физических разъемов для обеспечения возможности расширения с помощью дополнительных процессоров, графических процессоров и т.п.Периферийные устройства могут быть подключены либо непосредственно к системной шине 748 ядра, либо через периферийную шину 749. Архитектуры периферийной шины включают шину ввода-вывода для подключения периферийных устройств PCI (Peripheral Component Interconnect), USB и т.п.[0127] The
[0128] Процессоры CPU 741, GPU 742, матрицы FPGA 743 и ускорители 744 могут выполнять определенные команды, которые в комбинации могут составлять вышеупомянутый машинный код. Этот машинный код может храниться в ROM 745 или RAM 746. Временные данные также могут храниться в RAM 746, тогда как постоянные данные могут храниться, например, во внутреннем запоминающем устройстве 747 большой емкости. Возможность быстрого запоминания и выборки для любого из запоминающих устройств может быть обеспечена посредством использования кэш-памяти, которая может быть тесно связана с одним или более процессорами CPU 741, GPU 742, запоминающим устройством 747 большой емкости, памятью ROM 745, запоминающим устройством RAM 746 и т.п.[0128] The
[0129] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых компьютером. Носители и компьютерный код могут быть специально спроектированными и сконструированными для целей настоящего изобретения, или они могут быть хорошо известными и доступными для специалистов в области компьютерного программного обеспечения.[0129] 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 the present invention, or they may be well known and available to those skilled in the art of computer software.
[0130] В качестве примера, а не в качестве ограничения, компьютерная система, имеющая архитектуру 700, и, в частности, ядро 740, может обеспечивать функциональные возможности в результате выполнения процессором(-и) (включая процессоры CPU, GPU, матрицы FPGA, ускорители и т.п.) программного обеспечения, воплощенного на одном или нескольких материальных, машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя запоминающим устройством большой емкости, как описано выше, а также определенными запоминающими устройствами ядра 740, которые имеют энергонезависимый характер, такими как внутреннее запоминающее устройство 747 большой емкости или ROM 745. Программное обеспечение, реализующее различных формы осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром 740. Машиночитаемый носитель может включать в себя одно или несколько запоминающих устройств или интегральных схем в соответствии с конкретными потребностями. Программное обеспечение может заставлять ядро 740 и, в частности, процессоры в нем (включая процессоры CPU, GPU, матрицу FPGA и т.п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в RAM 746, и изменение таких структур данных в соответствии с процессами, определяемыми программным обеспечением. Вдобавок или в качестве альтернативы компьютерная система может обеспечивать функциональные возможности в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускоритель 744), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или определенных частей конкретных процессов, описанных здесь. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это уместно. Ссылка на машиночитаемый носитель может охватывать схему (например, интегральную схему (1С, Integrated Circuit), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это необходимо. Настоящее изобретение охватывает любую подходящую комбинацию аппаратного и программного обеспечения.[0130] By way of example, and not limitation, a computer system having architecture 700, and in
[0131] Хотя в данном раскрытии описаны несколько иллюстративных форм осуществления изобретения, существуют изменения, перестановки и различные заменяющие эквиваленты, которые входят в объем изобретения. Таким образом, следует иметь ввиду, что специалисты в данной области техники смогут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы изобретения и, таким образом, находятся в пределах его сущности и объема.[0131] While several illustrative embodiments of the invention are described in this disclosure, there are variations, permutations, and various replacement equivalents that are within the scope of the invention. Thus, it should be appreciated that those skilled in the art will be able to develop numerous systems and methods that, although not expressly shown or described herein, embody the principles of the invention and thus fall within its spirit and scope.
Claims (33)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US62/816,667 | 2019-03-11 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RU2775390C1 true RU2775390C1 (en) | 2022-06-30 |
Family
ID=
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2633117C2 (en) * | 2012-01-14 | 2017-10-11 | Квэлкомм Инкорпорейтед | Encoding of parameter sets and nal unit headers for video encoding |
| WO2018002425A2 (en) * | 2016-06-30 | 2018-01-04 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
| RU2653236C2 (en) * | 2012-09-26 | 2018-05-07 | Вилос Медиа Интернэшнл Лимитед | Image encoding method, image decoding method, image encoding device, image decoding device and image encoding and decoding device |
| RU2653299C2 (en) * | 2014-03-17 | 2018-05-07 | Нокиа Текнолоджиз Ой | Method and device for video coding and decoding |
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2633117C2 (en) * | 2012-01-14 | 2017-10-11 | Квэлкомм Инкорпорейтед | Encoding of parameter sets and nal unit headers for video encoding |
| RU2653236C2 (en) * | 2012-09-26 | 2018-05-07 | Вилос Медиа Интернэшнл Лимитед | Image encoding method, image decoding method, image encoding device, image decoding device and image encoding and decoding device |
| RU2653299C2 (en) * | 2014-03-17 | 2018-05-07 | Нокиа Текнолоджиз Ой | Method and device for video coding and decoding |
| WO2018002425A2 (en) * | 2016-06-30 | 2018-01-04 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| AU2023201375B2 (en) | Signaling of adaptive picture size in video bitstream | |
| JP7434620B2 (en) | Methods, computer systems, and computer programs for interlayer alignment in encoded video streams | |
| US12273547B2 (en) | Method for support of scalability with adaptive picture resolution | |
| AU2023201466A1 (en) | Signaling of scalability parameters in video bitstream | |
| CN113574896A (en) | Improved most probable mode list generation scheme | |
| JP2023065565A (en) | Method, apparatus and computer program for decoding encoded video stream | |
| CN116491116B (en) | Method, apparatus and storage medium for video encoding and decoding | |
| US11539957B2 (en) | Layered random access with reference picture resampling | |
| US11166038B2 (en) | Method for support of scalability with adaptive picture resolution | |
| CN112118453B (en) | Video decoding method and device, computer device and storage medium | |
| RU2775390C1 (en) | Adaptive image size signaling in video bitstream | |
| RU2787213C1 (en) | Method for restricting referencing to a set of parameters in an encoded video stream | |
| RU2773642C1 (en) | Signaling for reference picture oversampling | |
| RU2791938C1 (en) | Transmission of interlayer prediction in video bit stream | |
| RU2785364C1 (en) | Method for cyclic motion compensation with oversampling of the reference image | |
| RU2799572C1 (en) | Method for signaling a set of output layers with a subimage | |
| RU2803890C1 (en) | Layer alignment method in encoded video stream | |
| HK40098688B (en) | Method, apparatus and storage medium for video coding and decoding | |
| HK40098688A (en) | Method, apparatus and storage medium for video coding and decoding | |
| HK40035759B (en) | Video decoding method and apparatus, computer apparatus and storage meduim | |
| HK40056288B (en) | Method and apparatus for decoding encoded image, readable storage medium and computer device | |
| HK40054763A (en) | Method and device for obtaining intra prediction mode, and electronic device |
