RU2782245C1 - Method for supporting network abstraction layer (nal) blocks of mixed types in an encoded image - Google Patents
Method for supporting network abstraction layer (nal) blocks of mixed types in an encoded image Download PDFInfo
- Publication number
- RU2782245C1 RU2782245C1 RU2021128852A RU2021128852A RU2782245C1 RU 2782245 C1 RU2782245 C1 RU 2782245C1 RU 2021128852 A RU2021128852 A RU 2021128852A RU 2021128852 A RU2021128852 A RU 2021128852A RU 2782245 C1 RU2782245 C1 RU 2782245C1
- Authority
- RU
- Russia
- Prior art keywords
- picture
- encoded
- vcl
- nal
- type
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 40
- 238000004590 computer program Methods 0.000 claims description 7
- 239000000126 substance Substances 0.000 abstract 1
- 230000008569 process Effects 0.000 description 18
- 108091000069 Cystinyl Aminopeptidase Proteins 0.000 description 16
- 102100020872 Leucyl-cystinyl aminopeptidase Human genes 0.000 description 16
- 230000033001 locomotion Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 11
- 230000006835 compression Effects 0.000 description 11
- 238000007906 compression Methods 0.000 description 11
- 230000002123 temporal effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 9
- 241001482237 Pica Species 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- FMYKJLXRRQTBOR-UBFHEZILSA-N (2s)-2-acetamido-4-methyl-n-[4-methyl-1-oxo-1-[[(2s)-1-oxohexan-2-yl]amino]pentan-2-yl]pentanamide Chemical group CCCC[C@@H](C=O)NC(=O)C(CC(C)C)NC(=O)[C@H](CC(C)C)NC(C)=O FMYKJLXRRQTBOR-UBFHEZILSA-N 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 244000050403 Iris x germanica Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Abstract
Description
ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИLINK TO RELATED APPLICATIONS
[0001] Настоящая заявка испрашивает приоритет предварительной патентной заявки США №62/956 254, поданной 1 января 2020 г., и патентной заявки США №17/077 035, поданной 22 октября 2020 г., которые включены в настоящий документ в полном объеме.[0001] This application claims priority of US Provisional Application No. 62/956,254, filed January 1, 2020, and US Patent Application No. 17/077,035, filed October 22, 2020, which are incorporated herein in their entirety.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF TECHNOLOGY TO WHICH THE INVENTION RELATES
[0002] Варианты осуществления настоящего изобретения относятся к кодированию и декодированию видео, и, в частности, к поддержке использования в кодированном изображении блоков уровня сетевой абстракции (NAL, Network Abstraction Layer) смешанных типов.[0002] Embodiments of the present invention relate to video encoding and decoding, and in particular to supporting the use of mixed types of Network Abstraction Layer (NAL) blocks in an encoded image.
УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION
[0003] В проекте спецификации универсального кодирования видео (VVC, Versatile Video Coding) JVET-P2001 (включен в настоящий документ в полном объеме) (с редакционными изменениями JVET-Q0041) поддерживается функция смешанных типов блоков уровня сетевой абстракции (NAL), которая позволяет иметь один или более блоков NAL слайса. имеющих тип внутренней точки произвольного доступа (IRAP, intra random access point) или чистого произвольного доступа (CRA, clean random access), и один или более блоков NAL слайса, имеющих другой тип и не являющихся блоками IRAP. Эта функция может использоваться для слияния двух различных битовых потоков в один или для поддержки различных периодов произвольного доступа для каждой локальной области (субизображения). В настоящее время для поддержки этой функциональной возможности определены следующие синтаксис и семантика:[0003] Versatile Video Coding (VVC) Specification Draft JVET-P2001 (incorporated herein in its entirety) (with editorial changes JVET-Q0041) supports a mixed network abstraction layer (NAL) block type feature that allows have one or more slice NAL units. having the type of internal random access point (IRAP, intra random access point) or pure random access (CRA, clean random access), and one or more slice NAL units having a different type and not being IRAP units. This function can be used to merge two different bitstreams into one or to support different random access periods for each local area (sub-picture). The following syntax and semantics are currently defined to support this functionality:
[0004] В таблице 1 ниже приведен пример синтаксиса набора параметров изображения полезной нагрузки исходной последовательности байтов (RBSP, Raw Byte Sequence Payload).[0004] Table 1 below shows an example of the raw byte sequence payload (RBSP) image parameter set syntax.
[0005] Если значение элемента синтаксиса mixed_nalu_types_in_pic_flag равно 1, то это означает, что у каждого изображения, относящегося к набору параметров изображения (PPS, Picture Parameter Set), есть более одного блока NAL уровня кодирования видео (VCL, Video Coding Layer), при этом значения параметров nal_unit_type блоков NAL VCL различаются, и изображение не является изображением IRAP. Если значение элемента синтаксиса mixed_nalu_types_in_pic_flag равно 0, то это означает, что у каждого изображения, ссылающегося на этот PPS, есть один или более блоков NAL VCL, при этом блоки NAL VCL каждого изображения, ссылающегося на этот PPS, имеют одинаковые значения параметра nal_unit_type.[0005] If the value of the mixed_nalu_types_in_pic_flag syntax element is 1, then this means that each picture belonging to the Picture Parameter Set (PPS) has more than one Video Coding Layer (VCL) NAL unit, with In this case, the values of the nal_unit_type parameters of the VCL NAL units are different and the picture is not an IRAP picture. If the value of the mixed_nalu_types_in_pic_flag syntax element is 0, then this means that each picture referring to this PPS has one or more VCL NAL units, and the VCL NAL units of each picture referring to this PPS have the same nal_unit_type parameter values.
[0006] Если значение элемента синтаксиса no_mixed_nalu_types_in_pic_constraint_flag равно 1, значение элемента синтаксиса mixed nalu_types_in_pic_flag должно быть равно 0.[0006] If the value of the no_mixed_nalu_types_in_pic_constraint_flag syntax element is 1, the value of the mixed nalu_types_in_pic_flag syntax element shall be 0.
[0007] Согласно действующей спецификации VVC, коды и классы типов блоков NAL определяются, как показано в таблице 2 ниже.[0007] According to the current VVC specification, NAL unit type codes and classes are defined as shown in Table 2 below.
[0008] Для каждого слайса со значением параметра nal_unit_type nalUnitTypeA в диапазоне от IDR_W_RADL до CRA_NUT включительно в изображении picA, которое также содержит один или более слайсов с другим значением nal_unit_type (т.е. значение флага mixed_nalu_types_in_pic_flag для изображения picA равно 1), применяются следующие правила:[0008] For each slice with a nal_unit_type parameter value of nalUnitTypeA ranging from IDR_W_RADL to CRA_NUT inclusive in the picA image, which also contains one or more slices with a different nal_unit_type value (i.e., the value of the mixed_nalu_types_in_pic_flag flag for the picA image is 1), the following apply regulations:
[0009] (А) Слайс должен принадлежать субизображению subpicA, для которого значение соответствующего элемента синтаксиса subpic treated as_pic flag[i] равно 1.[0009] (A) The slice must belong to a subpicture subpicA for which the value of the corresponding subpic treated as_pic flag[i] syntax element is 1.
[0010] (В) Слайс не должен принадлежать субизображению picA, содержащему блоки NAL VCL с элементом синтаксиса nal_unit_type, не равным nalUnitTypeA.[0010] (B) A slice must not belong to a picA subimage containing VCL NAL units with a nal_unit_type syntax element not equal to nalUnitTypeA.
[0011] (С) Для всех следующих (в порядке декодирования) PU в кодированной видеопоследовательности уровня (CLVS, Coded Layer Video Sequence) ни список RefPicList[0], ни список RefPicListf [1] слайса в субизображении subpicA не должен включать в активной записи какое-либо изображение, предшествующее (в порядке декодирования) picA.[0011] (C) For all of the following (in decoding order) PUs in the Coded Layer Video Sequence (CLVS), neither RefPicList[0] nor RefPicListf[1] of the slice in subpicture subpicA shall include in the active entry any picture preceding (in decoding order) picA.
[0012] Для блоков NAL VCL любого отдельного изображения применяются следующие правила:[0012] For VCL NAL units of any single picture, the following rules apply:
[0013] Если значение элемента синтаксиса mixed nalu_types_in_pic_flag равно 0, значение элемента синтаксиса nal_unit_type должно быть одинаковым для всех блоков NAL кодированного слайса изображения. Считается, что изображение или PU имеет тот же тип блока NAL, что и блоки NAL кодированного слайса изображения или PU. [0014] В противном случае (если значение элемента синтаксиса mixed_nalu_types_in_pic_flag равно 1), один или более блоков NAL VCL все должны иметь определенное значение параметра nal_unit_type в диапазоне от IDR_W_RADL до CRA_NUT включительно, а все остальные блоки NAL VCL должны иметь определенное значение параметра nal_unit_type в диапазоне от TRAIL_NUT до RSV VCL 6 включительно или равное GDR_NUT.[0013] If the value of the mixed nalu_types_in_pic_flag syntax element is 0, the value of the nal_unit_type syntax element must be the same for all NAL units of the encoded picture slice. The picture or PU is considered to be of the same NAL unit type as the encoded picture slice or PU NAL units. [0014] Otherwise (if the value of the mixed_nalu_types_in_pic_flag syntax element is 1), one or more VCL NAL units must all have a specific nal_unit_type parameter value in the range IDR_W_RADL through CRA_NUT inclusive, and all other VCL NAL units must have a specific nal_unit_type parameter value in range from TRAIL_NUT to RSV VCL 6 inclusive or equal to GDR_NUT.
СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
[0015] В существующей концепции использования блоков NAL VCL смешанных типов, описанной выше в разделе «Уровень техники», могут присутствовать некоторые проблемы.[0015] There may be some problems with the current concept of using mixed type VCL NAL units, as described in the Background section above.
[0016] В некоторых случаях, когда изображение состоит из блоков NAL VCL смешанных типов, может быть сложно однозначно определить тип изображения.[0016] In some cases, when an image consists of mixed types of VCL NAL units, it may be difficult to unambiguously determine the image type.
[0017] Иногда, когда в одном PU (изображении) смешиваются блоки NAL разных типов, могут возникать конфликты с ограничениями временного идентификатора (например, Temporalld).[0017] Sometimes, when NAL units of different types are mixed in the same PU (image), conflicts with temporal identifier constraints (eg, Temporalld) may occur.
[0018] Например, в текущей спецификации VVC существуют следующие ограничения на Temporalld: Если значение элемента синтаксиса nal_unit_type находится в диапазоне от IDR_W_RADL до RSV IRAP12 включительно, то значение элемента синтаксиса Temporalld должно быть равно 0. Если значение элемента синтаксиса nal_unit_type равно STSA_NUT, значение элемента синтаксиса Temporalld должно быть равно 0.[0018] For example, the current VVC specification has the following restrictions on Temporalld: If the value of the nal_unit_type syntax element is in the range of IDR_W_RADL through RSV IRAP12, then the value of the Temporalld syntax element must be 0. If the value of the nal_unit_type syntax element is STSA_NUT, the value of the element syntax Temporalld should be 0.
[0019] В некоторых случаях, если элемент синтаксиса mixed_nalu_types_in_pic_flag передается в наборе PPS, то блоки NAL слайса в CLVS должны ссылаться по меньшей мере на две блока NAL PPS. Кроме того, при извлечении субизображения связанный с ним PPS должен быть перезаписан путем изменения значения элемента синтаксиса mixed nalu_types_in_pic_flag.[0019] In some cases, if the mixed_nalu_types_in_pic_flag syntax element is conveyed in a PPS set, then the slice NAL units in the CLVS must refer to at least two PPS NAL units. Also, when extracting a sub-picture, its associated PPS must be overwritten by changing the value of the mixed nalu_types_in_pic_flag syntax element.
[0020] В некоторых случаях в существующей концепции может не поддерживаться одновременное существование опережающих декодируемых блоков NAL произвольного доступа (RADL, Random Access Decodable Leading) / опережающих пропускаемых блоков NAL произвольного доступа (RASL, Random Access Skipped Leading) с последующими изображениями (Trail pictures) в изображении (PU).[0020] In some cases, the existing concept may not support the simultaneous existence of advanced decoded random access NAL units (RADL, Random Access Decodable Leading) / advanced skipped random access NAL units (RASL, Random Access Skipped Leading) with subsequent images (Trail pictures) in picture (PU).
[0021] В некоторых случаях, когда изображение в уровне ссылается на другое изображение в другом уровне, элемент синтаксиса mixed_nalu_types_in_pic flag может быть не выровнен.[0021] In some cases, when an image in a layer refers to another image in another layer, the mixed_nalu_types_in_pic flag syntax element may be misaligned.
[0022] Варианты осуществления настоящего изобретения могут решать одну или более указанных выше проблем и/или другие проблемы.[0022] Embodiments of the present invention may solve one or more of the above problems and/or other problems.
[0023] Согласно одному или более вариантам осуществления предлагается способ, выполняемый по меньшей мере одним процессором. Согласно этому способу: принимают первый блок уровня сетевой абстракции (NAL) уровня видеокодирования (VCL) первого слайса кодированного изображения и второй блок NAL VCL второго слайса кодированного изображения, причем первый блок NAL VCL относится к первому типу блоков NAL VCL, а второй блок NAL VCL относится ко второму типу блоков NAL VCL, который отличается от первого типа блоков NAL VCL; и декодируют кодированное изображение, причем декодирование содержит определение типа кодированного изображения на основании первого типа блока NAL VCL и второго типа блока NAL VCL либо на основании индикатора, полученного по меньшей мере одним процессором, который указывает на то, что кодированное изображение содержит блоки NAL VCL разных типов.[0023] According to one or more embodiments, a method is provided that is executed by at least one processor. According to this method: the first NAL unit of the video coding layer (VCL) of the first encoded image slice and the second NAL VCL unit of the second encoded image slice are received, the first VCL NAL unit belongs to the first VCL NAL unit type, and the second VCL NAL unit refers to the second VCL NAL unit type, which is different from the first VCL NAL unit type; and decoding the encoded picture, the decoding comprising determining the type of the encoded picture based on the first VCL NAL unit type and the second VCL NAL unit type, or based on an indicator obtained by at least one processor that indicates that the encoded picture contains VCL NAL units of different types.
[0024] Согласно одному из вариантов осуществления упомянутое определение содержит определение того, что кодированное изображение является последующим изображением (trailing picture), на основании первого типа блока NAL VCL, указывающего, что первый блок NAL VCL содержит кодированный слайс последующего изображения, и второго типа блока NAL VCL, указывающего, что второй блок NAL VCL содержит кодированный слайс изображения мгновенного обновления декодирования (IDR, Instantaneous Decoding Refresh) или кодированный слайс изображения чистого произвольного доступа (CRA, Clean Random Access).[0024] According to one embodiment, said determination comprises determining that an encoded picture is a trailing picture based on a first VCL NAL block type indicating that the first VCL NAL block contains an encoded slice of the subsequent picture, and a second block type NAL VCL indicating that the second NAL VCL contains an Instantaneous Decoding Refresh (IDR) encoded image slice or a Clean Random Access (CRA) encoded image slice.
[0025] Согласно одному из вариантов осуществления упомянутое определение содержит определение того, что кодированное изображение является опережающим декодируемым изображением произвольного доступа (RADL), на основании первого типа блока NAL VCL, указывающего, что первый блок NAL VCL содержит кодированный слайс изображения RADL, и второго типа блока NAL VCL, указывающего, что второй блок NAL VCL содержит кодированный слайс изображения мгновенного обновления декодирования (IDR) или кодированный слайс изображения чистого произвольного доступа (CRA).[0025] According to one embodiment, said determination comprises determining that the encoded picture is a forward decodable random access (RADL) picture, based on a first VCL NAL unit type indicating that the first VCL NAL unit contains an encoded RADL picture slice, and a second a VCL NAL unit type indicating that the second VCL NAL unit contains an instant decoding update (IDR) encoded picture slice or a pure random access (CRA) encoded picture slice.
[0026] Согласно одному из вариантов осуществления упомянутое определение содержит определение того, что кодированное изображение является изображением пошагового доступа к временному подуровню (STSA, step-wise temporal sub-layer access), на основании первого типа блока NAL VCL, указывающего, что первый блок NAL VCL содержит кодированный слайс изображения STS А, и второго типа блока NAL VCL, указывающего, что второй блок NAL VCL не содержит кодированный слайс изображения мгновенного обновления декодирования (IDR).[0026] According to one embodiment, said definition comprises determining that the encoded picture is a step-wise temporal sub-layer access (STSA) picture based on a first VCL NAL unit type indicating that the first unit The VCL NAL contains an encoded picture slice STS A, and a second VCL NAL unit type indicating that the second VCL NAL unit does not contain an instant decoding refresh (IDR) encoded picture slice.
[0027] Согласно одному из вариантов осуществления упомянутое определение содержит определение того, что кодированное изображение является последующим изображением, на основании первого типа блока NAL VCL, указывающего, что первый блок NAL VCL содержит кодированный слайс изображения пошагового доступа к временному подуровню (STSA), и второго типа блока NAL VCL, указывающего, что второй блок NAL VCL не содержит кодированный слайс изображения чистого произвольного доступа (CRA).[0027] According to one embodiment, said determination comprises determining that an encoded picture is a subsequent picture based on a first VCL NAL unit type indicating that the first VCL NAL unit contains a STSA encoded picture slice, and a second VCL NAL unit type indicating that the second VCL NAL unit does not contain a pure random access (CRA) encoded picture slice.
[0028] Согласно одному из вариантов осуществления упомянутое определение содержит определение того, что кодированное изображение является последующим изображением, на основании первого типа блока NAL VCL, указывающего, что первый блок NAL VCL содержит кодированный слайс изображения постепенного обновления декодирования (GDR, Gradual Decoding Refresh), и второго типа блока NAL VCL, указывающего, что второй блок NAL VCL не содержит кодированный слайс изображения мгновенного обновления декодирования (IDR) или кодированный слайс изображения чистого произвольного доступа (CRA).[0028] According to one embodiment, said definition comprises determining that the encoded picture is a subsequent picture based on the first VCL NAL block type indicating that the first VCL NAL block contains a Gradual Decoding Refresh (GDR) encoded picture slice , and a second VCL NAL unit type indicating that the second VCL NAL unit does not contain an instant decoding update (IDR) encoded picture slice or a pure random access (CRA) encoded picture slice.
[0029] Согласно одному из вариантов осуществления индикатор представляет собой флаг, при этом в процессе определения определяют, что кодированное изображение является последующим изображением, на основании флага, который указывает на то, что кодированное изображение содержит блоки NAL VCL смешанных типов.[0029] According to one embodiment, the indicator is a flag, wherein the determination process determines that the encoded picture is a subsequent picture based on a flag that indicates that the encoded picture contains mixed type VCL NAL units.
[0030] Согласно одному из вариантов осуществления, индикатор представляет собой флаг, при этом в процессе декодирования кодированного изображения далее определяют, что идентификатор TemporallD кодированного изображения равен 0, на основании флага, который указывает на то, что кодированное изображение содержит блоки NAL VCL смешанных типов.[0030] According to one embodiment, the indicator is a flag, wherein the process of decoding the encoded picture further determines that the identifier TemporallD of the encoded picture is 0 based on a flag that indicates that the encoded picture contains mixed type VCL NAL units .
[0031] Согласно одному из вариантов осуществления индикатор представляет собой флаг, при этом в соответствии с предлагаемым способом флаг принимают в заголовке изображения или заголовке слайса.[0031] According to one embodiment, the indicator is a flag, in accordance with the proposed method, the flag is received in the image header or slice header.
[0032] Согласно одному из вариантов осуществления, индикатор представляет собой флаг, а кодированное изображение находится в первом уровне, и в соответствии с предлагаемым способом далее принимают флаг и определяют, что дополнительное кодированное изображение, находящееся во втором уровне, который является опорным уровнем первого уровня, содержит блоки NAL VCL смешанных типов, на основании флага, который указывает на то, что кодированное изображение содержит блоки NAL VCL смешанных типов.[0032] According to one of the embodiments, the indicator is a flag, and the encoded image is in the first level, and in accordance with the proposed method, the flag is further received and it is determined that the additional encoded image located in the second level, which is the reference level of the first level , contains mixed type VCL NAL units, based on a flag that indicates that the encoded picture contains mixed type VCL NAL units.
[0033] Согласно одному или нескольким вариантам осуществления предлагается система, которая содержит: память, сконфигурированную для хранения компьютерного программного кода; и по меньшей мере один процессор, сконфигурированный для приема по меньшей мере одного кодированного видеопотока, доступа к компьютерному программному коду и выполнения операций в соответствии с инструкциями компьютерного программного кода. Компьютерный программный код содержит: код декодирования, сконфигурированный таким образом, чтобы по меньшей мере один процессор декодировал кодированное изображение из по меньшей мере одного кодированного видеопотока, при этом код декодирования содержит код определения, сконфигурированный таким образом, чтобы по меньшей мере один процессор определял тип кодированного изображения на основании первого типа блока NAL VCL первого слайса кодированного изображения и второго типа блока NAL VCL второго слайса кодированного изображения, или на основании индикатора, полученного по меньшей мере одним процессором, указывающего, что кодированное изображение содержит блоки NAL VCL смешанных типов, при этом первый тип блока NAL VCL отличается от второго типа блока NAL VCL.[0033] According to one or more embodiments, a system is provided that includes: a memory configured to store computer program code; and at least one processor configured to receive at least one encoded video stream, access the computer program code, and perform operations in accordance with instructions from the computer program code. The computer program code comprises: a decoding code configured such that at least one processor decodes an encoded image from at least one encoded video stream, wherein the decoding code comprises a determination code configured such that at least one processor determines the type of encoded image based on the first VCL NAL unit type of the first coded picture slice and the second VCL NAL unit type of the second coded picture slice, or based on an indicator obtained by at least one processor indicating that the encoded picture contains mixed-type VCL NAL units, wherein the first the VCL NAL unit type is different from the second VCL NAL unit type.
[0034] Согласно одному из вариантов осуществления код определения сконфигурирован таким образом, чтобы по меньшей мере один процессор определял, что кодированное изображение является последующим изображением, на основании первого типа блока NAL VCL, указывающего, что первый блок NAL VCL содержит кодированный слайс последующего изображения, и второго типа блока NAL VCL, указывающего, что второй блок NAL VCL содержит кодированный слайс изображения мгновенного обновления декодирования (IDR) или кодированный слайс изображения чистого произвольного доступа (CRA).[0034] According to one embodiment, the determination code is configured such that at least one processor determines that the encoded picture is a subsequent picture, based on the first VCL NAL unit type indicating that the first VCL NAL unit contains an encoded slice of the subsequent picture, and a second VCL NAL unit type indicating that the second VCL NAL unit comprises an instant decode refresh (IDR) encoded picture slice or a pure random access (CRA) encoded picture slice.
[0035] Согласно одному из вариантов осуществления код определения сконфигурирован таким образом, чтобы по меньшей мере один процессор определял, что кодированное изображение является опережающим декодируемым изображением произвольного доступа (RADL), на основании первого типа блока NAL VCL, указывающего, что первый блок NAL VCL содержит кодированный слайс изображения RADL, и второго типа блока NAL VCL, указывающего, что второй блок NAL VCL содержит кодированный слайс изображения мгновенного обновления декодирования (IDR) или кодированный слайс изображения чистого произвольного доступа (CRA).[0035] According to one embodiment, the determination code is configured such that at least one processor determines that the encoded picture is a random access decodable advance (RADL) picture based on the first VCL NAL unit type indicating that the first VCL NAL unit contains an encoded RADL picture slice, and a second VCL NAL unit type indicating that the second VCL NAL unit contains an instant decoding update (IDR) encoded picture slice or a pure random access (CRA) encoded picture slice.
[0036] Согласно одному из вариантов осуществления код определения сконфигурирован таким образом, чтобы по меньшей мере один процессор определял, что кодированное изображение является изображением пошагового доступа к временному подуровню (STSA), на основании первого типа блока NAL VCL, указывающего, что первый блок NAL VCL содержит кодированный слайс изображения STSA, и второго типа блока NAL VCL, указывающего, что второй блок NAL VCL не содержит кодированный слайс изображения мгновенного обновления декодирования (IDR).[0036] According to one embodiment, the determination code is configured such that at least one processor determines that the encoded picture is a stepwise temporal sublayer access (STSA) picture based on the first VCL NAL unit type indicating that the first NAL unit The VCL contains an STSA encoded picture slice, and a second VCL NAL unit type indicating that the second VCL NAL unit does not contain an instant decoding update (IDR) encoded picture slice.
[0037] Согласно одному из вариантов осуществления код определения сконфигурирован таким образом, чтобы по меньшей мере один процессор определял, что кодированное изображение является последующим изображением, на основании первого типа блока NAL VCL, указывающего, что первый блок NAL VCL содержит кодированный слайс изображения пошагового доступа к временному подуровню (STSA), и второго типа блока NAL VCL, указывающего, что второй блок NAL VCL не содержит кодированный слайс изображения чистого произвольного доступа (CRA).[0037] According to one embodiment, the determination code is configured such that at least one processor determines that the encoded picture is a subsequent picture, based on the first VCL NAL unit type indicating that the first VCL NAL unit contains an encoded incremental access picture slice to the temporal sublayer (STSA), and a second VCL NAL unit type indicating that the second VCL NAL unit does not contain a pure random access (CRA) encoded picture slice.
[0038] Согласно одному из вариантов осуществления код определения сконфигурирован таким образом, чтобы по меньшей мере один процессор определял, что кодированное изображение является последующим изображением, на основании первого типа блока NAL VCL, указывающего, что первый блок NAL VCL содержит кодированный слайс изображения с постепенным обновлением декодирования (GDR), и второго типа блока NAL VCL, указывающего, что второй блок NAL VCL не содержит кодированный слайс изображения мгновенного обновления декодирования (IDR) или кодированный слайс изображения чистого произвольного доступа (CRA).[0038] According to one embodiment, the determination code is configured such that at least one processor determines that the encoded picture is a subsequent picture, based on the first VCL NAL unit type indicating that the first VCL NAL unit contains a coded picture slice with gradual decoding update (GDR), and a second VCL NAL unit type indicating that the second VCL NAL unit does not contain an instant decoding update (IDR) encoded picture slice or a pure random access (CRA) encoded picture slice.
[0039] Согласно одному из вариантов осуществления, индикатор представляет собой флаг, при этом код определения сконфигурирован таким образом, чтобы по меньшей мере один процессор определял, что кодированное изображение является последующим изображением, на основании флага, который указывает на то, что кодированное изображение содержит блоки NAL VCL смешанных типов.[0039] According to one embodiment, the indicator is a flag, wherein the determination code is configured such that at least one processor determines that the encoded picture is a subsequent picture based on a flag that indicates that the encoded picture contains mixed type VCL NAL units.
[0040] Согласно одному из вариантов осуществления, индикатор представляет собой флаг, при этом код определения дополнительно сконфигурирован таким образом, чтобы по меньшей мере один процессор определял, что идентификатор TemporallD кодированного изображения равен 0, на основании флага, указывающего на то, что кодированное изображение содержит блоки NAL VCL смешанных типов.[0040] According to one embodiment, the indicator is a flag, wherein the determination code is further configured such that at least one processor determines that the identifier TemporallD of the encoded picture is 0 based on a flag indicating that the encoded picture contains mixed type VCL NAL units.
[0041] Согласно одному из вариантов осуществления индикатор представляет собой флаг, при этом по меньшей мере один процессор сконфигурирован таким образом, чтобы приримать флаг в заголовке изображения или заголовке слайса.[0041] According to one embodiment, the indicator is a flag, wherein at least one processor is configured to receive the flag in an image header or a slice header.
[0042] Согласно одному или более вариантам предлагается машиночитаемый носитель, в котором хранятся компьютерные инструкции. При выполнении этих компьютерных инструкций по меньшей мере одним процессором последний: декодирует кодированное изображение из по меньшей мере одного кодированного видеопотока, при этом в процессе декодирования определяет тип кодированного изображения на основании первого типа блока NAL VCL первого слайса кодированного изображения и второго типа блока NAL VCL второго слайса кодированного изображения, или на основании индикатора, полученного по меньшей мере одним процессором, указывающего, что кодированное изображение содержит блоки NAL VCL смешанных типов, при этом первый тип блока NAL VCL отличается от второго типа блока NAL VCL.[0042] One or more embodiments provide a computer-readable medium that stores computer instructions. When these computer instructions are executed by at least one processor, the latter: decodes an encoded image from at least one encoded video stream, while in the process of decoding determines the type of the encoded image based on the first type of the VCL NAL unit of the first slice of the encoded image and the second type of the NAL VCL unit of the second slice of the encoded picture, or based on an indicator obtained by at least one processor indicating that the encoded picture contains mixed VCL NAL unit types, wherein the first VCL NAL unit type is different from the second VCL NAL unit type.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
[0043] Другие признаки, характер и различные преимущества настоящего изобретения станут более понятными из последующего подробного описания и прилагаемых чертежей:[0043] Other features, nature and various advantages of the present invention will become more apparent from the following detailed description and the accompanying drawings:
[0044] На фиг. 1 представлена упрощенная структурная схема системы связи в соответствии с одним из вариантов осуществления.[0044] FIG. 1 is a simplified block diagram of a communication system in accordance with one embodiment.
[0045] На фиг. 2 представлена упрощенная структурная схема системы связи в соответствии с одним из вариантов осуществления.[0045] FIG. 2 is a simplified block diagram of a communication system in accordance with one embodiment.
[0046] На фиг. 3 представлена упрощенная структурная схема декодера в соответствии с одним из вариантов осуществления.[0046] FIG. 3 is a simplified block diagram of a decoder according to one embodiment.
[0047] На фиг. 4 представлена упрощенная структурная схема кодера в соответствии с одним из вариантов осуществления.[0047] FIG. 4 is a simplified block diagram of an encoder in accordance with one embodiment.
[0048] На фиг. 5 представлена блок-схема блоков NAL в соответствии с одним из вариантов осуществления.[0048] FIG. 5 is a block diagram of NAL units in accordance with one embodiment.
[0049] На фиг. 6 представлена структурная схема декодера в соответствии с одним из вариантов осуществления.[0049] FIG. 6 is a block diagram of a decoder according to one embodiment.
[0050] На фиг. 7 представлена компьютерная система, подходящая для реализации вариантов осуществления.[0050] FIG. 7 shows a computer system suitable for implementing the embodiments.
ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION
[0051] На фиг. 1 представлена упрощенная структурная схема компьютерной системы (100) в соответствии с одним из вариантов осуществления настоящего изобретения. Система (100) может содержать по меньшей мере два терминала (110, 120), соединенных по сети (150). Для однонаправленной передачи данных первый терминал (110) может кодировать видеоданные в локальном режиме для передачи на другой терминал (120) по сети (150). Второй терминал (120) может принимать кодированные видеоданные другого терминала по сети (150), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может широко использоваться в приложениях для мультимедийных сервисов и им подобных.[0051] FIG. 1 is a simplified block diagram of a computer system (100) in accordance with one embodiment of the present invention. The system (100) may include at least two terminals (110, 120) connected via a network (150). For unidirectional data transmission, the first terminal (110) may encode video data in local mode for transmission to another terminal (120) over the network (150). The second terminal (120) may receive the encoded video data of another terminal over the network (150), decode the encoded data, and display the recovered video data. Unidirectional data transmission can be widely used in applications for multimedia services and the like.
[0052] На фиг. 1 показана вторая пара терминалов (130, 140), предназначенных для поддержки двунаправленной передачи кодированного видео, которая может происходить, например, во время видеоконференций. Для двунаправленной передачи данных первый терминал (130, 140) может кодировать видеоданные в локальном режиме для передачи на другой терминал по сети (150). Каждый терминал (130, 140) также может принимать кодированные видеоданные, переданные другим терминалом, может декодировать кодированные данные и отображать восстановленные видеоданные на локальном устройстве отображения.[0052] In FIG. 1 shows a second pair of terminals (130, 140) designed to support bi-directional transmission of coded video, which may occur during video conferences, for example. For bi-directional data transmission, the first terminal (130, 140) may encode the video data in local mode for transmission to another terminal over the network (150). Each terminal (130, 140) may also receive the encoded video data transmitted by the other terminal, may decode the encoded data, and display the reconstructed video data on a local display device.
[0053] Терминалы (110-140), представленные на фиг. 1, могут быть серверами, персональными компьютерами, смартфонами и/или терминалами любого другого типа. Например, терминалы (110-140) могут быть ноутбуками, планшетными компьютерами, медиаплеерами и/или специализированным оборудованием для видеоконференций. Сеть (150) представляет собой любую совокупность сетей, по которым передаются кодированные видеоданные между терминалами (110-140), в том числе, например, проводных и/или беспроводных сетей связи. Сеть связи (150) может осуществлять передачу данных в режиме коммутации каналов и/или коммутации пакетов. К числу используемых сетей принадлежат телекоммуникационные сети, локальные вычислительные сети, глобальные вычислительные сети и/или сеть Интернет. Архитектура и топология сети (150) не имеют значения для реализации настоящего изобретения, если иное не оговорено ниже в настоящем документе.[0053] The terminals (110-140) illustrated in FIG. 1 may be servers, personal computers, smartphones, and/or any other type of terminal. For example, terminals (110-140) may be laptops, tablet computers, media players, and/or dedicated video conferencing equipment. Network (150) is any collection of networks that transmit encoded video data between terminals (110-140), including, for example, wired and/or wireless communication networks. The communication network (150) may transmit data in circuit switched and/or packet switched mode. The networks used include telecommunications networks, local area networks, global area networks and/or the Internet. The architecture and topology of the network (150) is not relevant to the implementation of the present invention, unless otherwise specified below in this document.
[0054] На фиг. 2 показан пример реализации настоящего изобретения, в котором видеокодер и видеодекодер размещаются в среде потоковой передачи данных. Описываемое изобретение может в равной степени использоваться в других приложениях с поддержкой видео, в частности, видеоконференциях, цифровом телевидении, хранении сжатого видео на цифровых носителях, включая CD, DVD, карты памяти и тому подобные устройства, и так далее.[0054] FIG. 2 shows an embodiment of the present invention in which a video encoder and a video decoder are placed in a streaming media. The described invention can be equally used in other video-enabled applications such as videoconferencing, digital television, compressed video storage on digital media including CDs, DVDs, memory cards, and the like, and so on.
[0055] Как показано на фиг. 2, система потоковой передачи (200) может содержать подсистему захвата (213), которая может состоять из источника видео (201) и кодера (203). Источник видео (201) может быть, например, цифровой камерой и может быть сконфигурирован таким образом, чтобы создавать поток отсчетов несжатого видео (202). Поток отсчетов несжатого видео (202) может создавать большой объем данных по сравнению с битовыми потоками кодированного видео и может обрабатываться кодером (203), подключенным к камере (201). Кодер (203) может содержать аппаратные средства, программное обеспечение или их комбинацию, позволяющие обеспечить или реализовать аспекты раскрываемого изобретения, как более подробно описывается ниже. Битовый поток кодированного видео (204) может содержать меньший объем данных по сравнению с потоком отсчетов и может храниться на сервере потоковой передачи (205) для последующего использования. Один или более клиентов потоковой передачи (206) могут обращаться к потоковому серверу (205), чтобы получать битовые потоки видео (209), которые могут быть копиями битового потока кодированного видео (204).[0055] As shown in FIG. 2, the streaming system (200) may include a capture subsystem (213), which may consist of a video source (201) and an encoder (203). The video source (201) may be, for example, a digital camera and may be configured to produce an uncompressed video sample stream (202). The uncompressed video sample stream (202) may generate a large amount of data compared to the encoded video bitstreams and may be processed by an encoder (203) connected to a camera (201). The encoder (203) may include hardware, software, or a combination thereof to provide or implement aspects of the disclosed invention, as described in more detail below. The encoded video bitstream (204) may contain less data than the sample stream and may be stored on a streaming server (205) for later use. One or more streaming clients (206) may contact the streaming server (205) to receive video bitstreams (209), which may be copies of the encoded video bitstream (204).
[0056] В вариантах осуществления сервер потоковой передачи (205) может также функционировать как сетевой элемент с поддержкой мультимедиа (MANE, Media-Aware Network Element). Например, сервер потоковой передачи (205) может быть сконфигурирован таким образом, чтобы ограничивать битовый поток кодированного видео (204) и подбирать потенциально различные битовые потоки для одного или более клиентов потоковой передачи (206). В некоторых вариантах осуществления MANE может быть реализован в системе потоковой передачи (200) отдельно от сервера потоковой передачи (205).[0056] In embodiments, the streaming server (205) may also function as a media-aware network element (MANE). For example, the streaming server (205) may be configured to limit the encoded video bitstream (204) and match potentially different bitstreams for one or more streaming clients (206). In some embodiments, the MANE may be implemented in the streaming system (200) separate from the streaming server (205).
[0057] Клиенты потоковой передачи (206) могут содержать видеодекодер (210) и дисплей (212). Видеодекодер (210) может, например, декодировать битовый поток видео (209), который является входящей копией битового потока кодированного видео (204), и создавать исходящий поток отсчетов видео (211), который может воспроизводиться на дисплее (212) или другом устройстве воспроизведения (не показано). В некоторых системах потоковой передачи данных битовые потоки видео (204, 209) могут кодироваться по определенным стандартам кодирования/сжатия видео. Примером такого стандарта, в частности, может служить Рекомендация МСЭ-Т Н.265. В настоящее время разрабатывается стандарт кодирования видео, получивший неофициальное название Versatile Video Coding (VVC). Описываемые варианты осуществления могут использоваться в контексте стандарта VVC.[0057] Streaming clients (206) may include a video decoder (210) and a display (212). The video decoder (210) may, for example, decode the video bitstream (209) which is an incoming copy of the encoded video bitstream (204) and produce an outgoing video sample stream (211) that can be played back on a display (212) or other playback device. (not shown). In some streaming systems, the video bitstreams (204, 209) may be encoded according to certain video coding/compression standards. An example of such a standard, in particular, is ITU-T Rec. H.265. A video coding standard is currently being developed, unofficially called Versatile Video Coding (VVC). The described embodiments may be used in the context of the VVC standard.
[0058] На фиг. 3 показан пример структурной схемы видеодекодера (210), подключенного к дисплею (212), в соответствии с одним из вариантов осуществления настоящего изобретения.[0058] FIG. 3 shows an example block diagram of a video decoder (210) connected to a display (212) in accordance with one embodiment of the present invention.
[0059] Видеодекодер (210) может содержать канал (312), приемник (310), буферную память (315), энтропийный декодер/анализатор (320), блок масштабирования / обратного преобразования (351), блок внутрикадрового предсказания (352), блок предсказания с компенсацией движения (353), агрегатор (355), блок петлевого фильтра (356), память опорных изображений (357) и память текущего изображения (358). По меньшей мере в одном варианте осуществления видеодекодер (210) может содержать интегральную схему, ряд интегральных схем и/или другие электронные схемы. Видеодекодер (210) также может быть частично или полностью реализован в виде программного обеспечения, работающего на одном или более процессорах с соответствующей памятью.[0059] The video decoder (210) may include a channel (312), a receiver (310), a buffer memory (315), an entropy decoder/analyzer (320), a scaling/inverse transform block (351), an intra-prediction block (352), a motion compensated prediction (353), aggregator (355), loop filter block (356), reference picture memory (357), and current picture memory (358). In at least one embodiment, video decoder (210) may comprise an integrated circuit, a number of integrated circuits, and/or other electronic circuits. The video decoder (210) may also be partially or completely implemented in software running on one or more processors with appropriate memory.
[0060] В настоящем и прочих вариантах осуществления приемник (310) может принимать одну или более кодированных видеопоследовательностей, которые должны декодироваться декодером (210) по одной кодированной видеопоследовательности в один момент времени, при этом декодирование каждой кодированной видеопоследовательности осуществляется независимо от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может быть получена из канала (312), который может быть аппаратно-программным соединением с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные наряду с другими данными, например кодированными аудиоданными и/или вспомогательными данными, которые могут передаваться использующим их соответствующим объектам (не показаны). Приемник (310) может отделить кодированную видеопоследовательность от других данных. Для устранения влияния сетевого джиттера между приемником (310) и энтропийным декодером/анализатором (320) (далее - анализатор) может быть установлена буферная память (315). Если приемник (310) принимает данные от устройства хранения/передачи с достаточной пропускной способностью и возможностью управления или от изосинхронной сети, буферная память (315) может не использоваться или иметь небольшой объем. При использовании в пакетных сетях с негарантированной доставкой данных, таких как Интернет, может потребоваться буферная память (415), которая будет иметь относительно большой объем и может быть адаптивной.[0060] In the present and other embodiments, the receiver (310) may receive one or more coded video sequences to be decoded by the decoder (210) one coded video sequence at a time, with each coded video sequence being decoded independently of other coded video sequences. The encoded video sequence may be obtained 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, which may be transmitted to their respective entities (not shown) using them. The receiver (310) may separate the encoded video sequence from other data. To eliminate the influence of network jitter between the receiver (310) and the entropy decoder/analyzer (320) (hereinafter referred to as the analyzer), a buffer memory (315) can be installed. If the receiver (310) is receiving data from a storage/transmission device with sufficient bandwidth and control capability, or from an isosynchronous network, the buffer memory (315) may be unused or small. When used in packet networks with non-guaranteed data delivery, such as the Internet, buffer memory (415) may be required, which will be relatively large and may be adaptive.
[0061] Видеодекодер (210) может содержать анализатор (320) для восстановления символов (321) из видеопоследовательности, подвергшейся энтропийному кодированию. Категории этих символов содержат, например, информацию для управления работой декодера (210), а также, возможно, информацию для управления устройством воспроизведения, в частности дисплеем (212), которое может быть подключено к декодеру, как показано на фиг. 2. Управляющая информация для устройств(-а) воспроизведения может быть представлена, например, в виде сообщений информации для дополнительной оптимизации (SEI, Supplementary Enhancement Information) или фрагментов набора параметров информации об удобстве использования изображения (VUI, Video Usability Information) (не показано). Анализатор (320) может осуществлять анализ / энтропийное декодирование полученной кодированной видеопоследовательности. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом кодирования видео и может следовать принципам, хорошо известным специалистам в данной области, в частности, кодированию с переменной длиной, кодированию Хаффмана, арифметическому кодированию с учетом или без учета контекста и т.д. Анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основании по меньшей мере одного параметра, соответствующего группе. В подгруппы могут входить группы изображений (GOP), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU), блоки, единицы преобразования (TU), единицы предсказания (PU) и т.д. Анализатор (320) может также извлекать из кодированной видеопоследовательности такую информацию, как коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.[0061] The video decoder (210) may include an analyzer (320) for recovering symbols (321) from an entropy-encoded video sequence. The categories of these symbols contain, for example, information for controlling the operation of the decoder (210), and possibly also information for controlling a playback device, in particular a display (212), which may be connected to the decoder, as shown in FIG. 2. The control information for the playback device(s) can be represented, for example, as Supplementary Enhancement Information (SEI) messages or Video Usability Information (VUI) parameter set fragments (not shown). ). The analyzer (320) may perform analysis/entropy decoding of the received encoded video sequence. Encoding of the encoded video sequence may be in accordance with a video coding technology or standard, and may follow principles well known to those skilled in the art, such as variable length coding, Huffman coding, context sensitive or context sensitive arithmetic coding, etc. The analyzer (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, coding units (CUs), blocks, transform units (TUs), prediction units (PUs), and so on. The analyzer (320) may also extract information such as transform coefficients, quantizer parameter values, motion vectors, and so on, from the encoded video sequence.
[0062] Анализатор (320) может выполнять операцию энтропийного декодирования / анализа видеопоследовательности, полученной из буферной памяти (315), для создания символов (321).[0062] The analyzer (320) may perform an entropy decoding/analysis operation of the video sequence obtained from the buffer memory (315) to create symbols (321).
[0063] Восстановление символов (321) может использовать множество различных единиц в зависимости от типа кодированного видеоизображения или его частей (например, интер-изображение и интра-изображение, интер-блок и интра-блок) и других факторов. Состав и характер использования единиц может регулироваться управляющей информацией подгруппы, которая была извлечена анализатором (320) из кодированной видеопоследовательности. Поток такой управляющей информации подгруппы между анализатором (320) и различными блоками ниже для простоты не показан.[0063] Symbol recovery (321) may use many different units depending on the type of encoded video image or parts thereof (eg, inter-picture and intra-picture, inter-block and intra-block) and other factors. The composition and nature of the use of units can be regulated by the control information of the subgroup, which was extracted by the analyzer (320) from the encoded video sequence. The flow of such subgroup control information between the analyzer (320) and the various blocks is not shown below for simplicity.
[0064] Помимо уже упомянутых функциональных блоков декодер 210 может быть концептуально разделен на ряд функциональных блоков, как описано ниже. На практике, в условиях коммерческих ограничений, многие из этих блоков тесно взаимодействуют друг с другом и могут, по меньшей мере частично, интегрироваться друг с другом. Однако при описании настоящего изобретения целесообразно использовать концептуальное деление на указанные ниже функциональные единицы.[0064] In addition to the functional blocks already mentioned, the
[0065] Один блок представляет собой блок масштабирования / обратного преобразования (351). Блок масштабирования / обратного преобразования (351) может получать от анализатора (320) квантованный коэффициент преобразования, а также управляющую информацию в виде символа(-ов) (321), включая данные об используемом типе преобразования, размере блока, коэффициенте квантования, матрице масштабирования квантования и т.д. На выходе блока масштабирования / обратного преобразования (351) могут быть получены блоки, содержащие значения отсчетов, которые могут быть поданы в агрегатор (355).[0065] One block is a scaling/inverse transform block (351). The scaling/inverse transform block (351) can receive from the analyzer (320) the quantized transform coefficient, as well as control information in the form of symbol(s) (321), including data on the type of transform used, block size, quantization factor, quantization scaling matrix etc. At the output of the scaling / inverse transformation block (351), blocks containing sample values can be obtained, which can be fed to the aggregator (355).
[0066] В некоторых случаях выходные отсчеты блока масштабирования / обратного преобразования (351) могут относиться к блоку внутреннего кодирования, то есть блоку, который не использует информацию предсказания на основе ранее восстановленных изображений, но может использовать информацию предсказания на основе ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена блоком внутрикадрового предсказания (352). В некоторых случаях блок внутрикадрового предсказания (352) формирует блок таких же размера и формы, как и восстанавливаемый блок, используя информацию об уже восстановленных соседних блоках, извлеченную из текущего (частично восстановленного) изображения, находящегося в памяти текущего изображения (358). В некоторых случаях агрегатор (355) добавляет индивидуально для каждого отсчета информацию для предсказания, которую создает блок внутрикадрового предсказания (352), к информации выходного отсчета, поступающей от блока масштабирования / обратного преобразования (351).[0066] In some cases, the output samples of the scaler/inverse transform block (351) may refer to an intra coding block, that is, a block that does not use prediction information based on previously restored images, but can use prediction information based on previously restored parts of the current image . Such prediction information may be provided by an intra prediction block (352). In some cases, the intra-prediction block (352) generates a block of the same size and shape as the restored block, using information about already restored neighboring blocks extracted from the current (partially restored) image in the current image memory (358). In some cases, the aggregator (355) adds, individually for each sample, the prediction information generated by the intra prediction block (352) to the output sample information from the scaler/inverse transform block (351).
[0067] В других случаях выходные отсчеты блока масштабирования / обратного преобразования (351) могут относиться к блоку межкадрового кодирования с возможной компенсацией движения. В этом случае блок предсказания с компенсацией движения (353) может обращаться к памяти опорных изображений (357) для получения отсчетов, используемых для предсказания. После компенсации движения полученных отсчетов в соответствии с символами (321), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (355) к выходу блока масштабирования / обратного преобразования (351) (в данном случае называемому остаточными отсчетами или остаточным сигналом), чтобы сформировать информацию о выходных отсчетах. Адреса в памяти опорных изображений (357), по которым блок предсказания с компенсацией движения (353) извлекает отсчеты предсказания, могут определяться векторами движения. Векторы движения могут быть доступны блоку предсказания с компенсацией движения (353) в виде символов (321), которые могут быть представлены, например, компонентами X, Y и опорным изображением. Компенсация движения также может предусматривать интерполяцию значений отсчетов, получаемых из памяти опорных изображений (357), когда используются точные векторы движения на уровне суботсчетов, механизмы предсказания вектора движения и т.д.[0067] In other cases, the output samples of the scaler/inverse transform block (351) may refer to an interframe coding block with possible motion compensation. In this case, the motion-compensated predictor (353) may access the reference picture memory (357) to obtain samples used for prediction. After compensating for the movement of the received samples according to the symbols (321) associated with the block, these samples can be added by the aggregator (355) to the output of the scaler / inverse transform (351) block (in this case called residual samples or residual signal) to form output information. The addresses in the reference picture memory (357) from which the motion-compensated predictor (353) retrieves prediction samples may be determined by the motion vectors. The motion vectors may be available to the motion compensated prediction block (353) as symbols (321), which may be represented by, for example, X, Y components, and a reference picture. Motion compensation may also involve interpolation of sample values obtained from the reference picture memory (357) when accurate sub-sample-level motion vectors, motion vector prediction mechanisms, etc. are used.
[0068] Выходные отсчеты агрегатора (355) могут подвергаться различным методам петлевой фильтрации в блоке петлевого фильтра (356). В технологиях сжатия видео могут использоваться технологии петлевой фильтрации под управлением параметров, содержащихся в битовом потоке кодированного видео и доступных блоку петлевого фильтра (356) в виде символов (321) от анализатора (320), но они также могут реагировать на метаинформацию, полученную в процессе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее восстановленные и прошедшие петлевую фильтрацию значения отсчетов.[0068] The output samples of the aggregator (355) may be subjected to various loop filtering techniques in the loop filter block (356). Video compression technologies may use loop filtering techniques controlled by parameters contained in the encoded video bitstream and available to the loop filter block (356) in the form of symbols (321) from the analyzer (320), but they may also be responsive to meta-information obtained in the process. decoding the previous (in the order of decoding) parts of the encoded image or encoded video sequence, as well as responding to previously restored and loop filtered sample values.
[0069] На выходе блока петлевого фильтра (356) может присутствовать поток отсчетов, который может подаваться на устройство воспроизведения, например дисплей (212), а также сохраняться в памяти опорных изображений (357) с целью последующего использования для межкадрового предсказания.[0069] At the output of the loop filter block (356), there may be a stream of samples that can be fed to a playback device, such as a display (212), and also stored in reference picture memory (357) for later use for inter-picture prediction.
[0070] Некоторые кодированные изображения после полной реконструкции могут служить в качестве опорных изображений для будущего предсказания. Когда кодированное изображение полностью восстановлено и идентифицировано как опорное изображение (например, анализатором (320)), текущее опорное изображение может стать частью памяти опорных изображений (357), при этом память текущего изображения может быть перераспределена под свежее изображение до начала восстановления следующего кодированного изображения.[0070] Some encoded pictures after full reconstruction may serve as reference pictures for future prediction. When the encoded picture is fully recovered and identified as a reference picture (e.g., by the analyzer (320)), the current reference picture may become part of the reference picture memory (357), whereby the current picture memory may be reallocated to a fresh picture before the next encoded picture is restored.
[0071] Видеодекодер (210) может выполнять операции декодирования в соответствии с заранее заданной технологией сжатия видео, например, рекомендацией МСЭ-Т Н.265. Кодированная видеопоследовательность может соответствовать синтаксису, установленному используемыми технологией или стандартом сжатия, в том смысле, что она соответствует как самому синтаксису технологии или стандарта сжатия видео, определенному в документации по технологии сжатия видео или стандарте, так и конкретным профилям, которые закреплены в этих документах. Для соответствия отдельным требованиям таких технологии или стандарта сжатия видео может также потребоваться, чтобы сложность кодированной видеопоследовательности не выходила за рамки, определяемые уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов восстановления (измеряемую, например, в миллионах отсчетов в секунду), максимальный размер опорного изображения и так далее. Ограничения, определяемые уровнями, в некоторых случаях могут быть дополнительно сужены спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, которые передаются в кодированной видеопоследовательности.[0071] The video decoder (210) may perform decoding operations in accordance with a predetermined video compression technology, such as ITU-T Rec. H.265. The encoded video sequence may conform to the syntax defined by the compression technology or standard being used, in the sense that it conforms both to the syntax of the video compression technology or standard itself, as defined in the video compression technology or standard documentation, and to the specific profiles that are enshrined in those documents. Compliance with individual requirements of such a video compression technology or standard may also require that the complexity of the encoded video sequence does not go beyond the level of the video compression technology or standard. In some cases, levels limit the maximum image size, the maximum frame rate, the maximum recovery sample rate (measured in millions of samples per second, for example), the maximum reference image size, and so on. The limits defined by the levels may in some cases be further narrowed by the specifications of the Hypothetical Reference Decoder (HRD) and the metadata for managing the HRD buffer that is carried in the encoded video sequence.
[0072] В одном из вариантов осуществления приемник (310) может принимать дополнительные (избыточные) данные вместе с кодированным видео. Дополнительные данные могут быть частью кодированной(-ых) последовательности(-ей) видео. Дополнительные данные могут использоваться видеодекодером (210) для правильного декодирования данных и/или более точного восстановления исходных видеоданных. Дополнительные данные могут быть представлены, например, в виде временных, пространственных слоев или слоев улучшения SNR, избыточных слайсов, избыточных изображений, кодов прямой коррекции ошибок и так далее.[0072] In one embodiment, the receiver (310) may receive additional (redundant) data along with the encoded video. The additional data may be part of the encoded video sequence(s). The additional data may be used by the video decoder (210) to properly decode the data and/or recover the original video data more accurately. The additional data may be represented, for example, as temporal, spatial or SNR enhancement layers, redundant slices, redundant images, FEC codes, and so on.
[0073] На фиг. 4 показан пример структурной схемы видеокодера (203), подключенного к источнику видео (201), в соответствии с одним из вариантов осуществления настоящего изобретения.[0073] FIG. 4 shows an example block diagram of a video encoder (203) connected to a video source (201), in accordance with one embodiment of the present invention.
[0074] Видеокодер (203) может содержать, например, кодер, представляющий собой кодер источника (430), механизм кодирования (432), (локальный) декодер (433), память опорных изображений (434), предсказатель (435), передатчик (440), энтропийный кодер (445), контроллер (450) и канал (460).[0074] The video encoder (203) may include, for example, an encoder representing a source encoder (430), an encoding engine (432), a (local) decoder (433), a reference picture memory (434), a predictor (435), a transmitter ( 440), entropy encoder (445), controller (450) and channel (460).
[0075] Видеокодер (203) может принимать отсчеты видео от источника видео (201) (не являющегося частью кодера), который может захватывать видеоизображение(-я), подлежащее(-ие) кодированию кодером (203).[0075] The video encoder (203) may receive video samples from a video source (201) (not part of the encoder) that may capture the video image(s) to be encoded by the encoder (203).
[0076] Источник видео (201) может предоставить кодеру (203) для кодирования исходную видеопоследовательность в виде цифрового потока отсчетов видео, которые могут иметь любую подходящую разрядность (например 8 бит, 10 бит, 12 бит, …), любое цветовое пространство (например ВТ.601, Y CrCB, RGB, …), и любую подходящую структуру дискретизации (например Y CrCb 4:2:0, Y CrCb 4:4:4). В системах сервисов мультимедиа источником видео (201) может быть устройство хранения, в котором хранится предварительно подготовленное видео. В системе видеоконференцсвязи источником видео (203) может быть камера, которая захватывает локальное изображение в виде видеопоследовательности. Видеоданные могут предоставляться в виде множества отдельных изображений, которые передают движение при последовательном просмотре. Сами изображения могут быть представлены в виде пространственного массива пикселей, где каждый пиксель может состоять из одного или более отсчетов в зависимости от используемой структуры дискретизации, цветового пространства и т.д. Специалисту в данной области легко понять взаимосвязь между пикселями и отсчетами. В приведенном ниже описании фигурируют отсчеты.[0076] The video source (201) may provide the encoder (203) for encoding the source video sequence as a digital stream of video samples, which may have any suitable bit depth (e.g. 8 bit, 10 bit, 12 bit, ...), any color space (e.g. BT.601, Y CrCB, RGB, ...), and any suitable sampling structure (eg Y CrCb 4:2:0, Y CrCb 4:4:4). In media services systems, the video source (201) may be a storage device that stores pre-rendered video. In a videoconferencing system, the video source (203) may be a camera that captures a local image as a video sequence. The video data may be provided as a plurality of individual images that convey motion when viewed sequentially. The images themselves can be represented as a spatial array of pixels, where each pixel can consist of one or more samples depending on the sampling structure, color space, etc. used. It is easy for a person skilled in the art to understand the relationship between pixels and samples. In the description below, the readings appear.
[0077] Согласно одному из вариантов осуществления кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в режиме реального времени или в условиях любых других временных ограничений, какие требует приложение. Обеспечение надлежащей скорости кодирования является одной из функций контроллера (450). Контроллер (450) может также управлять другими функциональными блоками, как описано ниже, и быть функционально связан с другими функциональными блоками. Для большей наглядности эти связи не изображены. В число параметров, устанавливаемых контроллером (450), могут входить параметры, относящиеся к управлению скоростью (пропуск изображений, квантователь, значение лямбда в методах оптимизации по критерию скорость-искажения,…), размер изображения, компоновка группы изображений (GOP), максимальный диапазон поиска вектора движения и так далее. Специалист в данной области может легко определить другие функции контроллера (450), которые могут относиться к видеокодеру (203), оптимизированному под определенную конструкцию системы.[0077] According to one embodiment, the encoder (203) can encode and compress images of the original video sequence into the encoded video sequence (443) in real time or under any other time constraints as required by the application. Ensuring the proper coding rate is one of the functions of the controller (450). The controller (450) may also control other functional blocks, as described below, and be operatively linked to other functional blocks. For clarity, these relationships are not shown. The parameters set by the controller (450) may include parameters related to speed control (skipping images, quantizer, lambda value in rate-distortion optimization methods,…), image size, group of pictures (GOP) arrangement, maximum range motion vector search and so on. One of ordinary skill in the art can readily determine other functions of the controller (450) that may relate to a video encoder (203) optimized for a particular system design.
[0078] Некоторые видеокодеры работают по схеме, которая известна специалистам в данной области как «петля кодирования». Если крайне упростить описание, то петля кодирования может состоять из кодирующей части кодера источника (430) (отвечающего, например, за создание символов на основе входного изображения, подлежащего кодированию, и опорного(-ых) изображения(-й)), и (локального) декодера (433) встроенного в кодер (203), который восстанавливает символы, чтобы создать отсчеты, которые также создавал бы (удаленный) декодер в некоторых технологиях сжатия видео, когда сжатие между символами и битовым потоком кодированного видео осуществляется без потерь. Поток восстановленных отсчетов может вводиться в память опорных изображений (434). Поскольку декодирование потока символов приводит к результатам с точностью до бита независимо от местоположения декодера (локального или удаленного), содержимое памяти опорных изображений локального и удаленного кодера также совпадает с точностью до бита. Другими словами, часть кодера, отвечающая за предсказание, «видит» в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые «видит» декодер при использовании предсказания в процессе декодирования. Этот фундаментальный принцип синхронности опорного изображения (и смещения, возникающего в том случае, когда невозможно поддерживать синхронность, например, из-за ошибок в канале) известен специалистам в данной области.[0078] Some video encoders operate in what is known to those skilled in the art as a "coding loop". If the description is extremely simplified, then the encoding loop may consist of the encoding part of the source encoder (430) (responsible, for example, for creating symbols based on the input image to be encoded and the reference image(s)), and (local ) a decoder (433) built into the encoder (203) that decompresses the symbols to create samples that a (remote) decoder would also create in some video compression technologies when the compression between the symbols and the encoded video bitstream is lossless. The reconstructed sample stream may be entered into a reference picture memory (434). Since decoding a stream of symbols results in bit-accurate results regardless of the location of the decoder (local or remote), the contents of the reference picture memory of the local and remote encoder are also bit-accurate. In other words, the prediction part of the encoder "sees" as reference picture samples exactly the same sample values that the decoder "sees" when using prediction in the decoding process. This fundamental principle of reference picture synchronism (and the offset that occurs when synchronism cannot be maintained, for example due to channel errors) is known to those skilled in the art.
[0079] «Локальный» декодер (433) может функционировать так же, как и «удаленный» декодер (210), который уже был подробно рассмотрен выше при описании фиг. 3. Однако поскольку символы доступны, а кодирование и/или декодирование символов энтропийным кодером (445) и анализатором (320) в кодированную видеопоследовательность может быть выполнено без потерь, в локальном декодере (433) части декодера (210), связанные с энтропийным декодированием, в том числе канал (312), приемник (310), буферная память (315) и анализатор (320), могут быть реализованы не полностью.[0079] The "local" decoder (433) may function in the same way as the "remote" decoder (210), which has already been discussed in detail above in the description of FIG. 3. However, since the symbols are available and the entropy encoder (445) and parser (320) can be losslessly encoded and/or decoded into the encoded video sequence, in the local decoder (433) the entropy decoding related parts of the decoder (210) including channel (312), receiver (310), buffer memory (315) and analyzer (320), may not be fully implemented.
[0080] Здесь следует оговориться, что любая технология декодирования, кроме анализа и/или энтропийного декодирования, которая применяется в декодере, может потребоваться и в соответствующем кодере в практически идентичном функциональном виде. По этой причине описание настоящего изобретения посвящено главным образом работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными по отношению к всесторонне описанным технологиям декодирования. Лишь некоторые аспекты требуют более подробного описания, которое приводится ниже.[0080] It should be noted here that any decoding technology, other than analysis and/or entropy decoding, that is applied in a decoder may be required in a corresponding encoder in a substantially identical functional form. For this reason, the description of the present invention is mainly devoted to the operation of the decoder. The description of encoding technologies can be abbreviated as they are inverse to the comprehensively described decoding technologies. Only a few aspects require a more detailed description, which is given below.
[0081] Кодер источника (430) во время работы может выполнять предиктивное кодирование с компенсацией движения, когда входное изображение кодируется с предсказанием по одному или более кодированным ранее изображениям из видеопоследовательности, которые были определены как "опорные изображения". В этом случае механизм кодирования (432) кодирует различия между блоками пикселей входного изображения и блоками пикселей опорного изображения(-й), которые могут быть выбраны в качестве источника(-ов) предсказания для входного изображения.[0081] The source encoder (430) may perform motion-compensated predictive coding when an input picture is predictively encoded on one or more previously encoded pictures from a video sequence that have been defined as "reference pictures". In this case, the coding engine (432) encodes the differences between the pixel blocks of the input image and the pixel blocks of the reference image(s) that can be selected as the prediction source(s) for the input image.
[0082] Локальный видеодекодер (433) может декодировать кодированные[0082] The local video decoder (433) can decode the encoded
видеоданные изображений, которые могут быть определены как опорные изображения, на основании символов, создаваемых кодером источника (430). Процессы, выполняемые в механизме кодирования (432), преимущественно могут быть процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг. 4), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) воспроизводит процессы декодирования, которые могут быть выполнены видеодекодером для опорных изображений, и может обеспечить хранение восстановленных опорных изображений в памяти опорных изображений (434). Таким образом кодер (203) может локально хранить копии восстановленных опорных изображений, которые по содержанию идентичны восстановленным опорным изображениям, получаемым удаленным видеодекодером (в отсутствие ошибок при передаче).image video data that can be determined as reference images based on the symbols generated by the source encoder (430). The processes performed in the encoding engine (432) may advantageously be lossy processes. When the encoded video data can be decoded in a video decoder (not shown in FIG. 4), the reconstructed video sequence can typically be a copy of the original video sequence with some errors. The local video decoder (433) reproduces the decoding processes that may be performed by the video decoder for the reference pictures and may store the reconstructed reference pictures in the reference picture memory (434). Thus, the encoder (203) can locally store copies of the reconstructed reference pictures that are identical in content to the reconstructed reference pictures received by the remote video decoder (in the absence of transmission errors).
[0083] Предсказатель (435) может выполнять поиск предсказаний для механизма кодирования (432). То есть для нового кодируемого изображения предсказатель (435) может искать в памяти опорных изображений (434) данные отсчета (в виде кандидатов в опорные блоки пикселей) или определенные метаданные, такие как векторы движения опорного изображения, формы блоков и так далее, которые могут служить подходящим источником предсказания для новых изображений. При поиске подходящих источников предсказания предсказатель (435) может оперировать соотношением между блоками отсчетов и блоками пикселей. В некоторых случаях, в зависимости от результатов поиска, полученных предсказателем (435), источники предсказания для входного изображения могут быть получены из нескольких опорных изображений, хранящихся в памяти опорных изображений (434).[0083] The predictor (435) may search for predictions for the encoding engine (432). That is, for a new encoded picture, the predictor (435) may search the reference picture memory (434) for sample data (in the form of pixel reference block candidates) or certain metadata such as reference picture motion vectors, block shapes, and so on, which can serve as suitable prediction source for new images. When searching for suitable sources of prediction, the predictor (435) may operate on the relationship between blocks of samples and blocks of pixels. In some cases, depending on the search results obtained by the predictor (435), prediction sources for the input picture may be obtained from multiple reference pictures stored in the reference picture memory (434).
[0084] Контроллер (450) может управлять операциями кодирования видеокодера (430), в том числе, например, задавать параметры и параметры подгрупп, используемые для кодирования видеоданных.[0084] 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.
[0085] Выходные данные всех упомянутых выше функциональных блоков могут быть подвергнуты энтропийному кодированию в энтропийном кодере (445).[0085] The output of all the functional blocks mentioned above can be entropy encoded in an entropy encoder (445).
Энтропийный кодер переводит символы, сформированные различными функциональными блоками, в кодированную видеопоследовательность, сжимая эти символы без потерь посредством технологий, известных специалистам в данной области, таких как кодирование Хаффмана, кодирование переменной длины, арифметическое кодирование и так далее.An entropy encoder translates symbols generated by various functional blocks into an encoded video sequence, losslessly compressing these symbols using techniques known to those skilled in the art such as Huffman coding, variable length coding, arithmetic coding, and so on.
[0086] Передатчик (440) может буферизировать кодированную(-ые) последовательность(-и) видео, созданную(-ые) энтропийным кодером (445), для подготовки к передаче по каналу связи (460), который может быть аппаратным/программным подключением к устройству хранения, где будут храниться кодированные видеоданные. Передатчик (440) может объединять кодированные видеоданные от видеокодера (430) с другими передаваемыми данными, например кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).[0086] The transmitter (440) may buffer the encoded video sequence(s) created by the entropy encoder (445) in preparation for transmission over a communication channel (460), which may be a hardware/software connection to the storage device where the encoded video data will be stored. The transmitter (440) may combine the encoded video data from the video encoder (430) with other transmitted data, such as encoded audio data and/or auxiliary data streams (sources not shown).
[0087] Контроллер (450) может управлять работой кодера (203). В процессе кодирования контроллер (450) может присвоить каждому кодированному изображению определенный тип, что может повлиять на методы кодирования, которые могут быть применены к соответствующему изображению. Например, изображения могут часто быть отнесены к интракадру (изображение типа I), изображению с предсказанием (изображение типа Р) или изображению с двунаправленным предсказанием (изображение типа В).[0087] The controller (450) may control the operation of the encoder (203). During the encoding process, the controller (450) may assign a certain type to each encoded image, which may affect the encoding methods that can be applied to the corresponding image. For example, images can often be referred to as an intraframe (type I image), a predictive image (type P image), or a bidirectional predictive image (type B image).
[0088] Интра-кадр (изображение типа I) может кодироваться и декодироваться без использования любого другого изображения в последовательности в качестве источника предсказания. Некоторые видеокодеки позволяют использовать различные типы интракадров, включая, например, изображения мгновенного обновления декодера (IDR). Специалистам в данной области известны эти варианты изображений типа I и их соответствующие применения и признаки.[0088] An intra frame (type I picture) can be encoded and decoded without using any other picture in the sequence as a prediction source. Some video codecs allow various types of intraframes to be used, including, for example, instant decoder update (IDR) pictures. Those skilled in the art will be aware of these Type I image variants and their respective applications and features.
[0089] Изображение с предсказанием (изображение типа Р) может кодироваться и декодироваться с помощью внутрикадрового или межкадрового предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.[0089] A predictive picture (P-type picture) may be encoded and decoded using intra-frame or inter-frame prediction using at most one motion vector and a reference index to predict sample values of each block.
[0090] Изображение с двунаправленным предсказанием (изображение типа В) может кодироваться и декодироваться с помощью внутрикадрового или межкадрового предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогичным образом, изображения с множественным предсказанием для восстановления одного блока могут использовать более двух опорных изображений и связанных с ними метаданных.[0090] A picture with bidirectional prediction (picture type B) can be encoded and decoded using intra frame or inter frame prediction using no more than two motion vectors and reference indices to predict the sample values of each block. Similarly, multiple prediction pictures may use more than two reference pictures and their associated metadata to reconstruct one block.
[0091] Исходные изображения обычно могут быть пространственно разбиты на множество блоков отсчетов (например, блоки размером 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодироваться поблочно. Блоки могут быть кодироваться с предсказанием по другим (уже кодированным) блокам согласно типу кодирования, применяемому к соответствующим изображениям блоков. Например, блоки изображений типа I могут кодироваться без предсказания или с предсказанием по уже кодированным блокам того же изображения (пространственное предсказание или внутрикадровое предсказание). Блоки пикселей изображений типа Р могут кодироваться без предсказания, с пространственным или временным предсказанием по одному ранее кодированному опорному изображению. Блоки изображений типа В могут кодироваться без предсказания, с пространственным или временным предсказанием по одному или двум ранее кодированным опорным изображениям.[0091] Source images can typically be spatially partitioned into multiple blocks of samples (eg, blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and encoded block by block. The blocks may be predictively encoded on other (already encoded) blocks according to the coding type applied to the corresponding block images. For example, type I image blocks may be encoded without prediction or with prediction on already encoded blocks of the same image (spatial prediction or intra prediction). Blocks of pixels of P-type images may be encoded without prediction, with spatial or temporal prediction on one previously encoded reference picture. Type B picture blocks may be encoded without prediction, with spatial or temporal prediction on one or two previously encoded reference pictures.
[0092] Видеокодер (203) может выполнять операции кодирования в соответствии с заранее заданным стандартом или технологией кодирования видео, например рекомендацией МСЭ-Т Н.265. Видеокодер (203) в процессе своей работы может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Таким образом, кодированные видеоданные могут соответствовать синтаксису, определенному используемыми технологией или стандартом кодирования видео.[0092] The video encoder (203) may perform encoding operations in accordance with a predetermined video coding standard or technology, such as ITU-T Rec. H.265. The video encoder (203) may perform various compression operations during its operation, including predictive coding operations that exploit temporal and spatial redundancy in the input video sequence. Thus, the encoded video data may follow the syntax defined by the video coding technology or standard used.
[0093] В одном из вариантов осуществления передатчик (440) может передавать дополнительные данные вместе с кодированным видео. Видеокодер (430) может включать в себя такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут включать в себя временные, пространственные уровни и уровни улучшения SNR, другие формы избыточных данных, например, избыточные изображения и слайсы, сообщения информации дополнительного улучшения (SEI), фрагменты набора параметров информации об удобстве использования (VUI) и т.д.[0093] In one embodiment, the transmitter (440) may transmit additional data along with the encoded video. Video encoder (430) may include such data as part of an encoded video sequence. Additional data may include temporal, spatial, and SNR enhancement levels, other forms of redundant data such as redundant images and slices, incremental enhancement information (SEI) messages, usability information (VUI) parameter set fragments, and so on.
[0094] Варианты осуществления настоящего изобретения могут модифицировать действующую спецификацию VVC и реализовывать коды и классы типов блоков NAL определенные в таблице 2 выше.[0094] Embodiments of the present invention may modify the current VVC specification and implement the NAL unit type codes and classes defined in Table 2 above.
[0095] «Изображение внутренней точки произвольного доступа» (или «изображение IRAP») может быть изображением, которое для межкадрового предсказания в процессе декодирования не обращается ни к каким изображениям кроме себя самого и может быть изображением чистого произвольного доступа (CRA) или изображением мгновенного обновления декодирования (IDR). Первое (в порядке декодирования) изображение в битовом потоке может быть изображением IRAP или изображением с постепенным обновлением декодирования (GDR). При наличии в нужный момент необходимых наборов параметров, изображение IRAP и все следующие за ним (в порядке декодирования) изображения в кодированной видеопоследовательности (CVS), не являющиеся изображениями RASL, могут быть правильно декодированы без декодирования каких-либо изображений, предшествующих (в порядке декодирования) изображению IRAP.[0095] An "internal random access point picture" (or "IRAP picture") may be a picture that does not refer to any pictures other than itself for inter-frame prediction in the decoding process, and may be a pure random access (CRA) picture or an instantaneous decode updates (IDR). The first (in decoding order) picture in the bitstream may be an IRAP picture or a Gradual Decoding Update (GDR) picture. With the necessary parameter sets available at the right time, an IRAP picture and all following (in decoding order) non-RASL coded video sequence (CVS) pictures can be correctly decoded without decoding any of the pictures preceding it (in decoding order). ) to the IRAP image.
[0096] «Последующее изображение» (trailing picture) может быть изображением, которое не является изображением IRAP и следует (в порядке вывода) за связанным с ним изображением IRAP, при этом оно не является изображением пошагового доступа к временному подуровню (STSA).[0096] A "trailing picture" may be a picture that is not an IRAP picture and follows (in output order) its associated IRAP picture, while it is not a stepwise temporal sublayer access (STSA) picture.
[0097] «Изображение пошагового доступа к временному подуровню» (или «изображение STSA») может быть изображением, которое не использует для внешнего предсказания изображения с тем же идентификатором Temporalld, что и изображение STSA. Изображения, следующие (в порядке декодирования) за изображением STSA с тем же идентификатором Temporalld, что и изображение STSA, не могут использовать для внешнего предсказания изображения, предшествующие (в порядке декодирования) изображению STSA, с тем же Temporalld, что и изображение STSA. Изображение STSA может обеспечить переключение вверх на подуровень, содержащий изображение STSA, с ближайшего нижнего подуровня. У изображений STSA идентификатор Temporalld может быть больше 0.[0097] A "Temporal Step Access Picture" (or "STSA Picture") may be a picture that does not use pictures with the same Temporalld ID as the STSA picture for inter-prediction. Pictures following (in decoding order) an STSA picture with the same Temporalld as the STSA picture cannot use pictures preceding (in decoding order) an STSA picture with the same Temporalld as the STSA picture for inter prediction. The STSA image may provide an upward switching to the sublayer containing the STSA image from the nearest lower sublayer. STSA images can have a Temporalld ID greater than 0.
[0098] «Опережающее пропускаемое изображение произвольного доступа» (или «изображение RASL») может быть изображением, которое является опережающим изображением для связанного изображения CRA. Если у связанного изображения CRA значение флага NoIncorrectPicOutputFlag равно 1, изображение RASL не может выводиться и не может правильно декодироваться, поскольку изображение RASL может содержать ссылки на изображения, которые отсутствуют в битовом потоке. Изображения RASL не могут использоваться в качестве опорных изображений в процессе декодирования изображений, не являющихся изображениями RASL. Если изображения RASL присутствуют, все они могут предшествовать (в порядке декодирования) всем последующим изображениям того же самого связанного изображения CRA.[0098] The "Advance random access skip picture" (or "RASL picture") may be a picture that is a leading picture for the associated CRA picture. If the associated CRA image has the NoIncorrectPicOutputFlag flag set to 1, the RASL image cannot be output and cannot be correctly decoded because the RASL image may contain image references that are not present in the bitstream. RASL pictures cannot be used as reference pictures in a non-RASL picture decoding process. If RASL pictures are present, they may all precede (in decoding order) all subsequent pictures of the same associated CRA picture.
[0099] «Опережающее декодируемое изображение произвольного доступа» (или «изображение RADL») может быть опережающим изображением, которое не используется как опорное изображение в процессе декодирования последующих изображений того же самого связанного изображения IRAP. Если изображения RADL присутствуют, все они могут предшествовать (в порядке декодирования) всем последующим изображениям того же самого связанного изображения IRAP.[0099] The "Advance random access decodable picture" (or "RADL picture") may be a leading picture that is not used as a reference picture in the process of decoding subsequent pictures of the same associated IRAP picture. If RADL pictures are present, they may all precede (in decoding order) all subsequent pictures of the same associated IRAP picture.
[0100] «Изображение мгновенного обновления декодирования» (или «изображение IDR») может быть изображением, с которым не связаны опережающие изображения, присутствующие в битовом потоке (например, со значением параметра nal_unit_type равным IDR_N_LP), или с которым не связаны изображения RASL, присутствующие в битовом потоке, но с которым могут быть связаны изображения RADL в битовом потоке (например, со значением параметра nal_unit_type равным IDR_W_RADL).[0100] An "immediate decoding update picture" (or "IDR picture") may be a picture with which leading pictures present in the bitstream are not associated (for example, with a nal_unit_type parameter value of IDR_N_LP), or with which RASL pictures are not associated, present in the bitstream, but with which RADL images in the bitstream can be associated (eg, with a nal_unit_type parameter value of IDR_W_RADL).
[0101] «Изображение чистого произвольного доступа» (или «изображение CRA») может быть изображением, которое для внешнего предсказания в процессе декодирования не обращается ни к каким изображениям кроме себя самого и может быть первым (в порядке декодирования) изображением в битовом потоке или может появляться в битовом потоке позже. С изображением CRA могут быть связаны изображения RADL или RASL. Если у изображения CRA значение флага NoIncorrectPicOutputFlag равно 1, связанные изображения RASL не могут выводиться декодером, поскольку они не могут правильно декодироваться, так как могут содержать ссылки на изображения, которые отсутствуют в битовом потоке.[0101] A “Pure Random Access Picture” (or “CRA Picture”) may be a picture that does not refer to any pictures other than itself for inter prediction in the decoding process, and may be the first (in decoding order) picture in a bitstream, or may appear in the bitstream later. A CRA image may have RADL or RASL images associated with it. If the CRA picture has the NoIncorrectPicOutputFlag flag set to 1, the associated RASL pictures cannot be output by the decoder because they cannot be correctly decoded because they may contain references to pictures that are not in the bitstream.
[0102] Согласно одному или более вариантам осуществления, если элемент синтаксиса mixed nalu_types_in_pic_flag набора PPS, на который ссылается кодированное изображение, равен 1, то тип кодированного изображения определяется (например, декодером) следующим образом:[0102] According to one or more embodiments, if the mixed nalu_types_in_pic_flag syntax element of the PPS referenced by the encoded picture is 1, then the type of the encoded picture is determined (e.g., by a decoder) as follows:
[0103] (А) Если параметр nal_unit_type блока NAL изображения равен TRAIL_NUT, а параметр nal_unit_type другого блока NAL изображения находится в диапазоне от IDR_W_RADL до CRA_NUT, то изображение определяется как последующее изображение.[0103] (A) If the nal_unit_type parameter of an image NAL unit is TRAIL_NUT, and the nal_unit_type parameter of another image NAL unit is in the range of IDR_W_RADL to CRA_NUT, then the image is determined as a subsequent image.
[0104] (В) Если параметр nal_unit_type блока NAL изображения равен RADLJNUT, а параметр nal_unit_type другого блока NAL изображения находится в диапазоне от IDRWRADL до CRA_NUT, то изображение определяется как изображение RADL.[0104] (B) If the nal_unit_type parameter of an image NAL unit is RADLJNUT, and the nal_unit_type parameter of another image NAL unit is in the range of IDRWRADL to CRA_NUT, then the image is determined to be a RADL image.
[0105] (С) Если параметр nal_unit_type блока NAL изображения равен STSA_NUT, а параметр nal_unit_type другого блока NAL изображения равен IDR_W_RADL или IDR_N_LP, то изображение определяется как изображение STSA.[0105] (C) If the nal_unit_type parameter of an image NAL unit is STSA_NUT and the nal_unit_type parameter of another image NAL unit is IDR_W_RADL or IDR_N_LP, then the image is determined to be an STSA image.
[0106] (D) Если параметр nal_unit_type блока NAL изображения равен STSA_NUT, а параметр nal_unit_type другого блока NAL изображения равен CRA_NUT, то изображение определяется как последующее изображение.[0106] (D) If the nal_unit_type parameter of an image NAL unit is STSA_NUT and the nal_unit_type parameter of another image NAL unit is CRA_NUT, then the image is determined as a subsequent image.
[0107] (Е) Если параметр nal_unit_type блока NAL изображения равен GDR_NUT, а параметр nal_unit_type другого блока NAL изображения находится в диапазоне от IDR_W_RADL до CRA_NUT, то изображение определяется как последующее изображение.[0107] (E) If the nal_unit_type parameter of an image NAL unit is GDR_NUT, and the nal_unit_type parameter of another image NAL unit is in the range of IDR_W_RADL to CRA_NUT, then the image is determined as a subsequent image.
[0108] Согласно одному или более вариантам осуществления, если элемент синтаксиса mixed_nalu_types_in_pic_flag набора PPS, на который ссылается кодированное изображение, равен 1, то тип кодированного изображения определяется (например, декодером) как последующее изображение.[0108] According to one or more embodiments, if the mixed_nalu_types_in_pic_flag syntax element of the PPS set referenced by the encoded picture is 1, then the type of the encoded picture is determined (eg, by a decoder) as a subsequent picture.
[0109] Описанный выше аспект может обеспечить решение «проблемы 1», описанной выше в разделе «Сущность изобретения».[0109] The aspect described above may provide a solution to "Problem 1" described above in the "Summary" section.
[0110] Согласно одному или нескольким вариантам осуществления смешивание блоков STSA NAL с блоками IRAP NAL может быть запрещено.[0110] According to one or more embodiments, the mixing of STSA NAL units with IRAP NAL units may be prohibited.
[0111] Например, для блоков NAL VCL любого отдельного изображения могут применяться следующие правила:[0111] For example, for VCL NAL units of any single picture, the following rules may apply:
[0112] Если значение флага mixed_nalu_types_in_pic flag равно 0, значение параметра nal_unit_type должно быть (ими может быть определено) одинаковым для всех блоков NAL кодированных слайсов изображения. Считается, что изображение или PU имеет тот же тип блока NAL, что и блоки NAL кодированного слайса изображения или PU.[0112] If the value of the flag mixed_nalu_types_in_pic flag is 0, the value of the nal_unit_type parameter must be (they can be defined) the same for all NAL units of the encoded slices of the picture. The picture or PU is considered to be of the same NAL unit type as the encoded picture slice or PU NAL units.
[0113] В противном случае (если значение флага mixed_nalu_types_in_pic_flag равно 1), то один или более блоков NAL VCL должны все иметь (или могут быть определены как имеющие) определенное значение параметра nal_unit_type в диапазоне от IDR_W_RADL до CRA_NUT включительно, а все остальные блоки NAL VCL должны иметь (или могут быть определены как имеющие) определенное значение параметра nal_unit_type в диапазоне от RADL_NUT до RSV_VCL_6 включительно, или равное GDR_NUT или TRAIL_NUT.[0113] Otherwise (if the value of the mixed_nalu_types_in_pic_flag flag is 1), then one or more VCL NAL units must all have (or can be determined to have) a specific nal_unit_type parameter value in the range from IDR_W_RADL to CRA_NUT inclusive, and all other NAL units VCLs must have (or may be defined to have) a specific nal_unit_type parameter value in the range RADL_NUT through RSV_VCL_6 inclusive, or equal to GDR_NUT or TRAIL_NUT.
[0114] Согласно одному из вариантов осуществления кодер может быть сконфигурирован таким образом, чтобы применять вышеизложенные правила для предотвращения смешивания блоков STSA_NAL с блоками IRAP_NAL. Согласно одному из вариантов осуществления декодер может быть сконфигурирован таким образом, чтобы определять значения блоков типа NAL на основании вышеизложенных правил.[0114] According to one embodiment, the encoder may be configured to apply the above rules to prevent mixing of STSA_NAL blocks with IRAP_NAL blocks. According to one embodiment, the decoder may be configured to determine NAL unit values based on the above rules.
[0115] Согласно одному или более вариантам осуществления ограничение Temporalld на STSA_NUT действующего проекта спецификации VVC JVET-P2001 может быть удалено.[0115] According to one or more embodiments, the Temporalld constraint on STSA_NUT of the current draft VVC JVET-P2001 specification may be removed.
[0116] То есть, например, в варианте осуществления настоящего изобретения можно не реализовывать ограничение, согласно которому идентификатор Temporalld не должен быть равен 0, если параметр nal_unit_type имеет значение STSA_NUT. Однако вариант осуществления может по-прежнему реализовывать ограничение, согласно которому, идентификатор Temporalld должен быть (или может быть определен) равным 0, если параметр nal_unit_type имеет значение в диапазоне от IDR_W_RADL до RSV_IRAP_12 включительно.[0116] That is, for example, in an embodiment of the present invention, it is possible not to implement the constraint that the Temporalld identifier must not be equal to 0 if the nal_unit_type parameter is set to STSA_NUT. However, an embodiment may still implement the constraint that the Temporalld identifier must be (or can be defined) equal to 0 if the nal_unit_type parameter has a value in the range of IDR_W_RADL through RSV_IRAP_12, inclusive.
[0117] Согласно одному или нескольким вариантам осуществления может быть реализовано ограничение, согласно которому идентификатор Temporalld изображения с флагом mixed nalu_types_in_pic flag, равным 1, должен быть равен 0. Например, кодер или декодер по настоящему изобретению может определить идентификатор TemporallD изображения равным 0 на основании того, что флаг mixed nalu_types_inj_pic flag равен 1.[0117] According to one or more embodiments, a constraint may be implemented that the TemporallD of an image with a mixed nalu_types_in_pic flag of 1 must be 0. For example, an encoder or decoder of the present invention may determine the TemporallD of an image to be 0 based on that the mixed nalu_types_inj_pic flag is 1.
[0118] Описанные выше аспекты могут обеспечить решение «проблемы 2», описанной выше в разделе «Сущность изобретения».[0118] The aspects described above may provide a solution to "problem 2" described above in the "Summary" section.
[0119] Согласно одному или более вариантам осуществления элемент синтаксиса mixed_nalu_types_in_pic_flag может присутствовать в заголовке изображения или заголовке слайса вместо присутствия в наборе PPS. Пример элемента синтаксиса mixed nalu_types_in_pic flag в заголовке изображения приведен в теблице 3 ниже.[0119] According to one or more embodiments, the mixed_nalu_types_in_pic_flag syntax element may be present in the image header or slice header instead of being present in the PPS set. An example of the mixed nalu_types_in_pic flag syntax element in an image header is shown in Table 3 below.
[0120] Если значение элемента синтаксиса mixed_nalu_types_in_pic_flag равно 1, то это может означать, что у каждого изображения, связанного с РН, есть более одного блока NAL VCL, при этом значения параметров nal_unit_type блоков NAL VCL различаются и изображение не является изображением IRAP. Если значение элемента синтаксиса mixed nalu_types_in_pic flag равно 0, то это может означать, что у каждого изображения, связанного с РН, есть один или более блоков NAL VCL, при этом блоки NAL VCL каждого изображения, связанного с РН, имеют одинаковые значения параметра nal_unit_type.[0120] If the value of the mixed_nalu_types_in_pic_flag syntax element is 1, then this may mean that each image associated with the PH has more than one NAL VCL unit, while the values of the nal_unit_type parameters of the VCL NAL units are different and the image is not an IRAP image. If the value of the mixed nalu_types_in_pic flag syntax element is 0, then this may mean that each picture associated with the PH has one or more NAL VCL units, and the NAL units of each picture associated with the PH have the same nal_unit_type parameter values.
[0121] Если значение элемента синтаксиса no_mixed_nalu_types_in_pic_constraint_flag равно 1, значение флага mixed_nalu_types_in_pic_flag должно быть (или может быть определено) равным 0.[0121] If the value of the no_mixed_nalu_types_in_pic_constraint_flag syntax element is 1, the value of the mixed_nalu_types_in_pic_flag flag must be (or may be defined) equal to 0.
[0122] Согласно одному или более вариантам осуществления элемент синтаксиса mixed nalu_types_inj_pic flag может присутствовать в заголовке изображения или заголовке слайса с флагом присутствия в SPS.[0122] According to one or more embodiments, the mixed nalu_types_inj_pic flag syntax element may be present in an image header or slice header with an SPS presence flag.
[0123] Пример SPS с флагом присутствия (sps_mixed_nalu_types_present_flag) приведен в таблице 4 ниже.[0123] An example of an SPS with a presence flag (sps_mixed_nalu_types_present_flag) is shown in Table 4 below.
[0124] Пример заголовка изображения с элементом синтаксиса mixed_nalu_types_in_pic_flag приведен в таблице 5 ниже.[0124] An example of a picture header with a mixed_nalu_types_in_pic_flag syntax element is shown in Table 5 below.
[0125] Если значение элемента синтаксиса sps_mixed_nalu_types_present flag равно 1, то это может означать, что у нуля или более изображений, ссылающихся на этот набор SPS, есть более одного блока NAL VCL, при этом значения параметров nal_unit_type блоков NAL VCL различаются и изображение не является изображением IRAP. Если значение элемента синтаксиса sps mixed nalu_types_jtresentflag равно 0, то это означает, что у каждого изображения, ссылающегося на этот набор SPS, есть один или более блоков NAL VCL, при этом блоки NAL VCL каждого изображения, ссылающегося на этот набор PPS, имеют одинаковые значения параметра nal_unit_type.[0125] If the value of the sps_mixed_nalu_types_present flag syntax element is 1, then this may mean that zero or more images referencing this SPS set have more than one NAL VCL unit, while the values of the nal_unit_type parameters of the VCL NAL units differ and the image is not IRAP image. If the value of the sps mixed nalu_types_jtresentflag syntax element is 0, then this means that each image referring to this SPS set has one or more VCL NAL units, and the VCL NAL units of each image referring to this PPS set have the same values parameter nal_unit_type.
[0126] Если значение элемента синтаксиса no mixed nalu_types_in_pic constraint flag равно 1, значение элемента синтаксиса sps_mixed_nalu_types_present_flag должно быть (или может быть определено) равным 0.[0126] If the value of the no mixed nalu_types_in_pic constraint flag syntax element is 1, the value of the sps_mixed_nalu_types_present_flag syntax element shall be (or may be defined) equal to 0.
[0127] Если значение элемента синтаксиса mixed_nalu_types_in_pic_flag равно 1, то это может означать, что у каждого изображения, связанного с РН, есть более одного блока NAL VCL, при этом значения параметров nal_unit_type блоков NAL VCL различаются и изображение не является изображением IRAP. Если значение элемента синтаксиса mixed nalu_types_in_pic flag равно 0, то это может означать, что у каждого изображения, связанного с РН, есть один или более блоков NAL VCL, при этом блоки NAL VCL каждого изображения, связанного с РН, имеют одинаковые значения параметра nal_unit_type. Если флаг mixed nalu_types_in_pic flag отсутствует, его значение можно принять (например, в декодере) равным 0.[0127] If the value of the mixed_nalu_types_in_pic_flag syntax element is equal to 1, then this may mean that each image associated with the PH has more than one NAL VCL unit, while the values of the nal_unit_type parameters of the VCL NAL units are different and the image is not an IRAP image. If the value of the mixed nalu_types_in_pic flag syntax element is 0, then this may mean that each picture associated with the PH has one or more NAL VCL units, and the NAL units of each picture associated with the PH have the same nal_unit_type parameter values. If the mixed nalu_types_in_pic flag is absent, its value can be taken (for example, in the decoder) to be 0.
[0128] Описанные выше аспекты могут обеспечить решение «проблемы 3», описанной выше в разделе «Сущность изобретения».[0128] The aspects described above may provide a solution to "Problem 3" described above in the "Summary" section.
[0129] Согласно одному или более вариантам осуществления флаг mixed nalu_types_injtic flag может быть заменен индикатором mixed_nalu_types_in_pic_idc.[0129] In one or more embodiments, the mixed nalu_types_injtic flag may be replaced by a mixed_nalu_types_in_pic_idc indicator.
[0130] Пример набора параметров изображения с элементом синтаксиса mixed_nalu_types_in_pic_idc приведен в таблице 6 ниже.[0130] An example of a picture parameter set with a mixed_nalu_types_in_pic_idc syntax element is shown in Table 6 below.
[0131] Если значение элемента синтаксиса mixed_nalu_types_in_pic_idc равно 1 или 2, то это может означать, что у каждого изображения, ссылающегося на этот набор PPS, есть более одного блока NAL VCL, при этом значения параметров nal_unit_type блоков NAL VCL различаются и изображение не является изображением IRAP. Если значение элемента синтаксиса mixed_nalu_types_in_pic_idc равно 0, то это может означать, что у каждого изображения, ссылающегося на этот набор PPS, есть один или более блоков NAL VCL, при этом блоки NAL VCL каждого изображения, ссылающегося на этот набор PPS, имеют одинаковые значения параметра nal_unit_type. Другие значения элемента синтаксиса mixed nalu_types_injtic idc могут быть зарезервированы МСЭ-Т ИСО/МЭК для использования в будущем.[0131] If the value of the mixed_nalu_types_in_pic_idc syntax element is 1 or 2, then this may mean that each image referring to this PPS set has more than one NAL VCL unit, while the values of the nal_unit_type parameters of the VCL NAL units differ and the image is not an image IRAP. If the value of the mixed_nalu_types_in_pic_idc syntax element is 0, then this may mean that each picture referring to this PPS set has one or more VCL NAL units, and the VCL NAL units of each picture referring to this PPS set have the same parameter values nal_unit_type. Other values of the mixed nalu_types_injtic idc syntax element may be reserved by ITU-T ISO/IEC for future use.
[0132] Если значение элемента синтаксиса no_mixed_nalu_types_in_pic_constraint_idc равно 1, значение индикатора mixed nalu_types_injtic_idc должно быть (или может быть определено, например, декодером) равным 0.[0132] If the value of the no_mixed_nalu_types_in_pic_constraint_idc syntax element is equal to 1, the value of the mixed nalu_types_injtic_idc indicator should be (or may be determined, for example, by a decoder) equal to 0.
[0133] Для каждого слайса со значением параметра nal_unit_type nalUnitTypeA в диапазоне от IDR_W_RADL до CRA_NUT включительно, в изображении picA, которое также содержит один или более слайсов с другим значением параметра nal_unit_type (т.е. значение индикатора mixed_nalu_types_in_pic_idc для изображения picA равно 1), могут применяться следующие правила:[0133] For each slice with a nal_unit_type parameter value of nalUnitTypeA ranging from IDR_W_RADL to CRA_NUT inclusive, in a picA image that also contains one or more slices with a different nal_unit_type parameter value (i.e., the mixed_nalu_types_in_pic_idc indicator value for the picA image is 1), the following rules may apply:
[0134] (А) Слайс должен принадлежать (или может быть определен принадлежащим) субизображению subpicA, для которого значение соответствующего флага subpic_treated_as_pic_flag[i] равно 1.[0134] (A) The slice must belong to (or can be determined to belong to) a subpicture subpicA for which the value of the corresponding subpic_treated_as_pic_flag[i] flag is 1.
[0135] (В) Слайс не должен принадлежать (или может быть определен не принадлежащим) субизображению picA, содержащему блоки NAL VCL с элементом синтаксиса nal_unit_type, не равным nalUnitTypeA.[0135] (B) A slice must not belong to (or may be determined not to belong to) a picA subimage containing VCL NAL units with a nal_unit_type syntax element not equal to nalUnitTypeA.
[0136] (С) Для всех следующих (в порядке декодирования) единиц PU в последовательности CLVS ни список RefPicListf 0], ни список RefPicListf 1] слайса в субизображении subpicA не должны включать в активной записи какое-либо изображение, предшествующее (в порядке декодирования) picA.[0136] (C) For all subsequent (in decoding order) PUs in the CLVS sequence, neither RefPicListf 0] nor RefPicListf 1] of the slice in subpicture subpicA shall include in the active record any picture preceding (in decoding order ) picA.
[0137] Список RefPicList[0] может быть списком опорных изображений, который используется для межкадрового предсказания слайса Р или первым списком опорных изображений, используемых для межкадрового предсказания слайса В.[0137] RefPicList[0] may be a reference picture list that is used for inter prediction of slice P or a first reference picture list used for inter prediction of slice B.
Список RefPicList[l] может быть вторым списком опорных изображений, используемых для межкадрового предсказания слайса В.The RefPicList[l] list may be the second reference picture list used for inter-picture prediction of slice B.
[0138] Для блоков NAL VCL любого отдельного изображения могут применяться следующие правила:[0138] For VCL NAL units of any single picture, the following rules may apply:
[0139] (А) Если значение элемента синтаксиса mixed_nalu_types_in_pic_idc равно 1, один или более блоков NAL VCL все должны иметь (или могут быть определены как имеющие) определенное значение параметра nal_unit_type в диапазоне от IDR_W_RADL до CRA_NUT включительно, а все остальные блоки NAL VCL должны иметь (или могут быть определены как имеющие) определенное значение параметра nal_unit_type в диапазоне от TRAIL_NUT до RSV VCL 6 включительно или равное GDR_NUT.[0139] (A) If the value of the mixed_nalu_types_in_pic_idc syntax element is 1, one or more VCL NAL units must all have (or can be determined to have) a specific nal_unit_type parameter value in the range IDR_W_RADL through CRA_NUT inclusive, and all other VCL NAL units must have (or may be defined as having) a specific nal_unit_type parameter value in the range TRAIL_NUT through RSV VCL 6, or equal to GDR_NUT.
[0140] (А) Если значение элемента синтаксиса mixed nalu_types_in_pic_idc равно 2, один или более блоков NAL VCL все должны иметь (или могут быть определены как имеющие) определенное значение параметра nal_unit_type равное RASL_NUT или RADL_NUT включительно или равное GDR_NUT, а все остальные блоки NAL VCL должны иметь (или могут быть определены как имеющие) определенное значение параметра nal_unit_type в диапазоне от TRAIL_NUT до RSV VCL 6 включительно, или равное GDR_NUT, при этом одно значение nal_unit_type отличается от другого значения nal_unit_type.[0140] (A) If the value of the mixed nalu_types_in_pic_idc syntax element is 2, one or more VCL NAL units must all have (or may be determined to have) a specific nal_unit_type parameter value equal to RASL_NUT or RADL_NUT inclusive or equal to GDR_NUT, and all other NAL units VCLs must have (or may be defined as having) a specific nal_unit_type parameter value ranging from TRAIL_NUT to RSV VCL 6 inclusive, or equal to GDR_NUT, with one nal_unit_type value different from another nal_unit_type value.
[0141] (С) В противном случае (если значение mixed_nalu_types_in_pic_idc равно 0), значение параметра nal_unit_type должно быть (ими может быть определено) одинаковым для всех блоков NAL кодированных слайсов изображения. Считается, что изображение или PU имеет тот же тип блока NAL, что и блоки NAL кодированного слайса изображения или PU.[0141] (C) Otherwise (if the value of mixed_nalu_types_in_pic_idc is 0), the value of the nal_unit_type parameter must be (they can be defined) the same for all NAL units of the encoded slices of the picture. The picture or PU is considered to be of the same NAL unit type as the encoded picture slice or PU NAL units.
[0142] Если значение индикатора mixed_nalu_types_in_pic_idc в наборе PPS, на который ссылается кодированное изображение, равно 1 или 2, изображение может быть определено (например, декодером) как последующее изображение.[0142] If the value of the mixed_nalu_types_in_pic_idc indicator in the PPS set referenced by the encoded picture is 1 or 2, the picture may be determined (eg, by a decoder) as a subsequent picture.
[0143] Описанные выше аспекты могут обеспечить решение «проблемы 4», описанной выше в разделе «Сущность изобретения».[0143] The aspects described above may provide a solution to "Problem 4" described above in the "Summary" section.
[0144] Согласно одному или более вариантам осуществления, если элемент синтаксиса mixed nalu_types_injpic flag изображения в уровне А равен 1, флаг mixed nalu_types_in jtic flag изображения в уровне В, который является опорным уровнем для уровня А, должен быть (или может быть определен) равным 1 в том же AU.[0144] According to one or more embodiments, if the mixed nalu_types_injpic flag syntax element of the image in layer A is 1, the mixed nalu_types_in jtic flag of the image in layer B, which is the reference layer for layer A, should be (or can be defined) equal to 1 in the same AU.
[0145] Описанный выше аспект может обеспечить решение «проблемы 5», описанной выше в разделе «Сущность изобретения».[0145] The aspect described above may provide a solution to "problem 5" described above in the "Summary" section.
[0146] Согласно одному или более вариантам осуществления, один или более битовых потоков кодированных видеоданных и содержащиеся в них структуры и элементы синтаксиса (такие как описанные выше блоки NAL VCL и наборы параметров) могут приниматься декодерами, описанными в настоящем изобретении, для декодирования полученных видеоданных. Декодеры, описанные в настоящем изобретении, могут декодировать кодированное изображение видео на основе блоков NAL VCL (например блоков NAL VCL (500), показанных на фиг. 5) кодированного изображения со смешанными типами блоков NAL VCL в соответствии с вариантами осуществления настоящего изобретения.[0146] According to one or more embodiments, one or more encoded video bitstreams and structures and syntax elements contained therein (such as VCL NAL units and parameter sets described above) may be received by the decoders described in the present invention to decode the received video data. . The decoders described in the present invention can decode an encoded video image based on VCL NAL units (e.g., VCL NAL units (500) shown in FIG. 5) of an encoded image with mixed VCL NAL unit types in accordance with embodiments of the present invention.
[0147] Например, в соответствии с фиг. 6 декодер (600) может содержать код декодирования (610), сконфигурированный таким образом, чтобы по меньшей мере один процессор декодера (600) декодировал кодированное изображение на основании блоков NAL VCL. Согласно одному или более вариантам осуществления код декодирования (610) может включать в себя код определения (620), сконфигурированный таким образом, чтобы по меньшей мере один процессор декодера (600), как описано в вариантах осуществления настоящего изобретения, (а) определял или ограничивал тип блока NAL одного или более блоков NAL VCL кодированного изображения на основании типа блока NAL другого одного или более блоков NAL VCL кодированного изображения или на основании индикатора (например флага), (b) определял или ограничивал тип кодированного изображения на основании типа блока NAL одного или более блоков NAL VCL кодированного изображения или на основании индикатора (например флага), (с) определял или ограничивал идентификатор TemporallD кодированного изображения на основании типа блока NAL одного или более блоков NAL VCL кодированного изображения или на основании индикатора (например, флага), и/или (d) определял или ограничивал индикатор (например флаг), который указывает, имеет ли кодированное изображение множество блоков NAL VCL смешанных типов блока NAL, на основании другого индикатора (например флага), который получен или определен.[0147] For example, in accordance with FIG. 6, the decoder (600) may comprise a decoding code (610) configured such that at least one decoder processor (600) decodes the encoded picture based on the VCL NAL units. According to one or more embodiments, the decoding code (610) may include a determination code (620) configured such that at least one decoder processor (600), as described in embodiments of the present invention, (a) determines or limits the NAL unit type of one or more VCL NAL units of the encoded picture based on the NAL unit type of the other one or more VCL VCL units of the encoded picture or based on an indicator (e.g. flag), (b) determined or restricted the encoded picture type based on the NAL unit type of one or more coded picture VCL NAL units or based on an indicator (eg, flag), (c) determine or restrict the coded picture identifier TemporallD based on the NAL unit type of one or more coded picture VCL NAL units or based on an indicator (eg, flag), and/ or (d) define or limit an indicator (such as a flag) that indicates whether it whether the encoded picture has a plurality of VCL NAL units of mixed NAL unit types, based on another indicator (eg, flag) that is received or determined.
[0148] Варианты осуществления настоящего изобретения могут использоваться по отдельности или комбинироваться в любом порядке. Кроме того, каждый из способов, кодеров и декодеров согласно настоящему изобретению может быть реализован схемой обработки (например одним или несколькими процессорами или одной или несколькими интегральными схемами). В одном из примеров один или более процессоров выполняют программу, которая хранится на машиночитаемом носителе.[0148] Embodiments of the present invention may be used singly or combined in any order. In addition, each of the methods, encoders, and decoders of the present invention may be implemented by a processing circuit (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 computer-readable medium.
[0149] Описанные выше методы могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых инструкций и физически храниться на одном или более машиночитаемых носителях. На фиг. 7 представлен пример компьютерной системы (900), которая подходит для реализации вариантов осуществления настоящего изобретения.[0149] The methods described above may be implemented in computer software using computer-readable instructions and physically stored on one or more computer-readable media. In FIG. 7 shows an example of a computer system (900) that is suitable for implementing embodiments of the present invention.
[0150] Компьютерное программное обеспечение может быть закодировано с помощью любого подходящего машинного кода или компьютерного языка, который может быть подвергнут сборке, компиляции, объединению или аналогичным механизмам для создания кода, содержащего инструкции, которые могут быть выполнены непосредственно или посредством интерпретации, выполнения микрокода и тому подобных действий центральными процессорами (CPU), графическими процессорами (GPU) и другими подобными устройствами.[0150] Computer software may be encoded in any suitable machine code or computer language that may be assembled, compiled, combined, or similar mechanisms to produce code containing instructions that can be executed directly or through interpretation, execution of microcode, and similar actions by central processing units (CPUs), graphics processing units (GPUs) and other similar devices.
[0151] Инструкции могут выполняться на различных типах компьютеров или их компонентов, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и другие подобные устройства.[0151] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, IoT devices, and other similar devices.
[0152] Показанные на фиг. 7 компоненты компьютерной системы (900) приведены в качестве примера и не подразумевают каких-либо ограничений в отношении области применения или функциональности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Также не следует трактовать конфигурацию компонентов с точки зрения каких-либо зависимостей или требований, относящихся к любому из компонентов, показанных в примере осуществления компьютерной системы (900), или их комбинации.[0152] Shown in FIG. 7, the components of the computer system (900) are exemplary and are not intended to suggest any limitation as to the scope or functionality of the computer software implementing embodiments of the present invention. Also, do not interpret the configuration of the components in terms of any dependencies or requirements relating to any of the components shown in the exemplary computer system (900), or combinations thereof.
[0153] Компьютерная система (900) может содержать определенные устройства ввода с человеко-машинным интерфейсом. Такое устройство ввода с человеко-машинным интерфейсом может реагировать на ввод данных одним или более пользователями посредством, например, тактильного ввода (в частности нажатием клавиш, пролистыванием, движением информационных перчаток), звукового ввода (в частности голосом, хлопками), визуального ввода (в частности жестами), обонятельного ввода (не показан). Устройства человеко-машинного интерфейса могут также использоваться для захвата информации от определенных носителей, не обязательно непосредственно связанных с сознательным вводом данных человеком, например аудио (в частности речь, музыка, звуки окружающей среды), изображения (в частности сканированные изображения, фотографические изображения, полученные с помощью фотокамеры), видео (в частности двухмерное видео, трехмерное видео, включая стереоскопическое видео).[0153] The computer system (900) may include certain human-machine interface input devices. Such a human-machine interface input device may respond to data input by one or more users through, for example, tactile input (eg, keystrokes, swipes, glove movements), audio input (eg, voice, claps), visual input (in in particular gestures), olfactory input (not shown). Human interface devices may also be used to capture information from certain media not necessarily directly related to conscious human input, such as audio (in particular speech, music, environmental sounds), images (in particular scanned images, photographic images taken camera), video (in particular 2D video, 3D video including stereoscopic video).
[0154] Устройства ввода человеко-машинного интерфейса могут содержать одно или более (показано только по одному) из следующих устройств: клавиатура (901), мышь (902), трекпад (903), сенсорный экран (910), информационная перчатка, джойстик (905), микрофон (906), сканер (907), камера (908).[0154] Human interface input devices may comprise one or more (only one shown) of the following: keyboard (901), mouse (902), trackpad (903), touch screen (910), glove, joystick ( 905), microphone (906), scanner (907), camera (908).
[0155] Компьютерная система (900) может также содержать определенные устройства вывода с человеко-машинным интерфейсом. Такие устройства вывода с человеко-машинным интерфейсом могут стимулировать органы чувств одного или более пользователей, используя, например, тактильный вывод, звук, свет и запах/вкус. Такие устройства вывода человеко-машинного интерфейса могут содержать тактильные устройства вывода (в частности тактильная обратная связь посредством сенсорного экрана (910), информационной перчатки или джойстика (905), но также могут использоваться устройства тактильной обратной связи, которые не служат устройствами ввода). Например, такими устройствами могут быть устройства вывода звука (в частности динамики (909), наушники (не показаны)), устройства визуального вывода (в частности экраны (910), в том числе ЭЛТ-экраны, ЖК-экраны, плазменные экраны, OLED-экраны, каждый из которых может иметь или не иметь возможности сенсорного ввода, каждый из которых может иметь или не иметь возможности тактильной обратной связи, причем некоторые из них могут быть способны обеспечивать двухмерный визуальный вывод или более чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не показаны), голографические дисплеи и дымовые баки (не показаны)), а также принтеры (не показаны).[0155] The computer system (900) may also include certain human interface output devices. Such human interface output devices can stimulate the senses of one or more users using, for example, tactile output, sound, light, and smell/taste. Such human interface output devices may comprise tactile output devices (particularly tactile feedback via touch screen (910), data glove, or joystick (905), but tactile feedback devices that do not serve as input devices may also be used). For example, such devices may be audio output devices (particularly speakers (909), headphones (not shown)), visual output devices (particularly screens (910), including CRT screens, LCD screens, plasma screens, OLED screens, each of which may or may not have touch input capability, each of which may or may not have tactile feedback capability, some of which may be capable of providing two-dimensional visual output or more than three-dimensional output by means such as stereographic output, virtual reality goggles (not shown), holographic displays and smoke tanks (not shown), and printers (not shown).
[0156] Компьютерная система (900) может также содержать доступные пользователю устройства хранения данных и связанные с ними носители, в частности, оптические носители, включая CD/DVD ROM/RW (920) с CD/DVD или подобные им носители (921), флеш-накопители (922), съемные жесткие диски или твердотельные накопители (923), устаревшие магнитные носители, например ленты и дискеты (не показаны), специализированные устройства на основе ПЗУ/ASIC/IUiy, например защитные ключи (не показаны), и тому подобные устройства.[0156] The computer system (900) may also include user-accessible storage devices and associated media, in particular optical media, including CD/DVD ROM/RW (920) with CD/DVD or similar media (921), flash drives (922), removable hard drives or solid state drives (923), legacy magnetic media such as tapes and floppy disks (not shown), dedicated ROM/ASIC/IUiy devices such as dongles (not shown), etc. similar devices.
[0157] Специалисты в данной области также должны понимать, что в контексте настоящего изобретения термин «машиночитаемый носитель» не охватывает среду передачи, электромагнитные волны или другие кратковременные сигналы.[0157] Persons skilled in the art should also understand that, in the context of the present invention, the term "computer-readable medium" does not encompass transmission media, electromagnetic waves, or other transient signals.
[0158] Компьютерная система (900) может также содержать интерфейс для подключения к одной или более сетям связи. Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того сети могут быть локальными, глобальными, городскими, транспортными и промышленными, работающими в режиме реального времени, устойчивыми к задержкам и т.д. Примерами сетей могут служить локальные сети, например Ethernet, беспроводные локальные сети, сотовые сети, например GSM, 3G, 4G, 5G, LTE и т.п., телевизионные проводные или беспроводные глобальные цифровые сети, в том числе кабельное телевидение, спутниковое телевидение и наземное вещательное телевидение, транспортные и промышленные сети, в том числе CANBus, и т.п. Для некоторых сетей обычно требуются внешние адаптеры сетевого интерфейса, которые подключаются к определенным портам данных общего назначения или периферийным шинам (949) (например порты USB компьютерной системы (900); другие обычно интегрируются в ядро компьютерной системы (900) путем подключения к системной шине, как описано ниже (например интерфейс Ethernet в компьютерной системе ПК или интерфейс сотовой сети в компьютерной системе смартфона). С помощью любой из этих сетей компьютерная система (900) может взаимодействовать с другими объектами. Такое взаимодействие может быть однонаправленным только для приема (например, вещательного телевидения), однонаправленным только для передачи (например определенным устройствам CANbus по шине CANbus) или двунаправленным, например с другими компьютерными системами с использованием локальных или глобальных цифровых сетей. Такое взаимодействие может включать в себя взаимодействие с облачной вычислительной средой (955). Для каждой из описанных выше сетей и сетевых интерфейсов могут использоваться определенные протоколы и стеки протоколов.[0158] The computer system (900) may also include an interface for connecting to one or more communication networks. Networks can be, for example, wireless, wired, optical. In addition, networks can be local, global, urban, transport and industrial, operating in real time, resistant to delays, etc. Examples of networks include local area networks, such as Ethernet, wireless local area networks, cellular networks, such as GSM, 3G, 4G, 5G, LTE, etc., wired or wireless digital wide area networks, including cable television, satellite television, and terrestrial broadcast television, transport and industrial networks, including CANBus, etc. Some networks typically require external network interface adapters that connect to certain general-purpose data ports or peripheral buses (949) (for example, computer system USB ports (900); others are usually integrated into the computer system core (900) by connecting to the system bus, as described below (e.g., an Ethernet interface on a PC computer system or a cellular network interface on a smartphone computer system.) Through any of these networks, the computer system (900) can communicate with other entities. Such communication can be unidirectional for receive only (e.g., broadcast television), unidirectional transmission-only (e.g. to certain CANbus devices over the CANbus) or bidirectional, such as with other computer systems using LANs or WANs. Such interactions may include interactions with a cloud computing environment (955). For each of described by you Several networks and network interfaces may use specific protocols and protocol stacks.
[0159] Упомянутые выше устройства человеко-машинного интерфейса, доступные пользователю устройства хранения данных и сетевые интерфейсы (954) могут быть подключены к ядру (940) компьютерной системы (900).[0159] The human-machine interface devices mentioned above, user-accessible storage devices, and network interfaces (954) can be connected to the core (940) of the computer system (900).
[0160] Ядро (940) может содержать один или более центральных процессоров (CPU) (941), графических процессоров (GPU) (942), специализированные программируемые блоки обработки в виде программируемых логических интегральных схем (FPGA) (943), аппаратные ускорители для определенных задач (944) и т.д. Эти устройства, наряду с постоянным запоминающим устройством (ПЗУ) (945), оперативным запоминающим устройством (ОЗУ) (946), внутренними устройствами хранения большой емкости, такими как недоступные пользователю внутренние жесткие диски, твердотельные накопители и тому подобные устройства (947), могут быть подключены через системную шину (948). В некоторых компьютерных системах системная шина (948) может быть доступна посредством одного или более физических разъемов для возможности расширения за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут подключаться либо непосредственно к системной шине ядра (948), либо через периферийную шину (949). Периферийная шина может быть построена на архитектуре PCI, USB и т.п. Графический адаптер 950 может входить в состав ядра 940.[0160] The core (940) may include one or more central processing units (CPUs) (941), graphics processing units (GPUs) (942), specialized programmable processing units in the form of programmable logic integrated circuits (FPGAs) (943), hardware accelerators for certain tasks (944), etc. These devices, along with Read Only Memory (ROM) (945), Random Access Memory (RAM) (946), internal mass storage devices such as user-inaccessible internal hard drives, solid state drives, and the like (947), can be connected via the system bus (948). In some computer systems, the system bus (948) may be available through one or more physical connectors for expansion with additional CPUs, GPUs, or the like. Peripherals can be connected either directly to the kernel system bus (948) or via a peripheral bus (949). The peripheral bus can be built on the architecture of PCI, USB, etc.
[0161] CPU (941), GPU (942), FPGA (943) и ускорители (944) могут выполнять определенные инструкции, которые в совокупности могут образовывать вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ПЗУ (945) или ОЗУ (946). В ОЗУ (946) могут также храниться временные данные, тогда как постоянные данные могут храниться, например, во внутреннем запоминающем устройстве (947). Быстрое сохранение и извлечение в любом из запоминающих устройств может обеспечиваться за счет использования кеш-памяти, которая может быть тесно связана с одним или более CPU (941), GPU (942), запоминающим устройством (947), ПЗУ (945), ОЗУ (946) и т.п.[0161] CPUs (941), GPUs (942), FPGAs (943), and accelerators (944) may execute certain instructions, which together may form the aforementioned computer code. This computer code may be stored in ROM (945) or RAM (946). The RAM (946) may also store temporary data, while the permanent data may be stored, for example, in the internal storage device (947). Fast storage and retrieval in any of the storage devices can be achieved through the use of cache memory, which can be closely associated with one or more CPU (941), GPU (942), storage device (947), ROM (945), RAM ( 946), etc.
[0162] В машиночитаемом носителе может храниться компьютерный код для выполнения различных операций, реализуемых компьютером. Носитель и компьютерный код могут быть специально разработаны и сконструированы для целей настоящего изобретения или могут быть хорошо известны и доступны специалистам в области компьютерного программного обеспечения.[0162] A computer-readable medium may store computer code for performing various computer-implemented operations. The medium and computer code may be specially designed and constructed for the purposes of the present invention, or may be well known and available to those skilled in the art of computer software.
[0163] В качестве примера и не в целях ограничения, компьютерная система с архитектурой (900) и, в частности, ядро (940) могут обеспечивать функциональные возможности в результате того, что процессор(-ы) (включая CPU, GPU, FPGA, ускорители и т.п.) выполняет(-ют) программное обеспечение, записанное на одном или более физических машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступными пользователю запоминающими устройствами большой емкости, как было описано выше, а также определенными физическими запоминающими устройствами ядра (940), такими как внутреннее запоминающее устройство ядра (947) или ПЗУ (945). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (940). Машиночитаемый носитель может состоять из одного или более запоминающих устройств или микросхем в зависимости от конкретных потребностей. Под управлением программного обеспечения ядро (940) и, в частности, входящие в него процессоры (включая CPU, GPU, FPGA и т.п.) могут выполнять определенные процессы или отдельные части определенных процессов, описанные в настоящем документе, включая определение структур данных, хранящихся в ОЗУ (946), и модификацию таких структур данных в соответствии с процессами, определенными программным обеспечением. В дополнение или в качестве альтернативы компьютерная система может обеспечивать функциональные возможности за счет аппаратной или иным образом реализованной в электрической схеме логики (например, ускоритель (944)), которая может работать вместо программного обеспечения или вместе с ним для выполнения отдельных процессов или отдельных частей отдельных процессов, описанных в настоящем документе. Под программным обеспечением может подразумеваться логика, и наоборот, когда это уместно. Под машиночитаемым носителем может пониматься схема (например интегральная схема (ИС)), в которой хранится программное обеспечение для выполнения, или схема, воплощающая логику для выполнения, или и то, и другое, когда это уместно. Настоящее изобретение распространяется на любую приемлемую комбинацию аппаратных средств и программного обеспечения.[0163] By way of example and not limitation, the computer system architecture (900), and in particular the core (940), may provide functionality as a result of the processor(s) (including CPU, GPU, FPGA, accelerators, etc.) execute(s) software stored on one or more physical machine-readable media. Such computer-readable media can be media associated with user-accessible mass storage devices, as described above, as well as certain physical kernel storage devices (940), such as internal kernel storage (947) or ROM (945). Software implementing various embodiments of the present invention may be stored on such devices and executed by the kernel (940). The computer-readable medium may consist of one or more storage devices or microchips, depending on specific needs. Under the control of the software, the core (940) and, in particular, its constituent processors (including CPUs, GPUs, FPGAs, etc.) may execute certain processes or parts of certain processes described in this document, including the definition of data structures, stored in RAM (946), and modification of such data structures in accordance with the processes defined by the software. In addition, or alternatively, a computer system may provide functionality through hardware or otherwise circuitry-embedded logic (e.g., an accelerator (944)) that may operate in place of or in conjunction with software to perform separate processes or portions of separate processes described in this document. Software can mean logic and vice versa when appropriate. A computer-readable medium may refer to a circuit (eg, an integrated circuit (IC)) that stores software to execute, or a circuit that implements logic to execute, or both, as appropriate. The present invention extends to any suitable combination of hardware and software.
[0164] Хотя выше описано несколько не накладывающих ограничений примеров осуществления, в объем изобретения также включаются возможные изменения, модификации и различные эквиваленты. Таким образом следует понимать, что специалисты в данной области смогут разработать многочисленные системы и способы, которые, несмотря на то, что они явно не представлены или не описаны в настоящем документе, реализуют принципы настоящего изобретения и, следовательно, соответствуют его сущности и объему.[0164] Although several non-limiting exemplary embodiments have been described above, the scope of the invention also includes possible changes, modifications, and various equivalents. Thus, it should be understood that those skilled in the art will be able to develop numerous systems and methods that, although not expressly represented or described herein, implement the principles of the present invention and, therefore, fall within its spirit and scope.
Claims (22)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US62/956,254 | 2020-01-01 | ||
| US17/077,035 | 2020-10-22 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RU2782245C1 true RU2782245C1 (en) | 2022-10-25 |
Family
ID=
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150016546A1 (en) * | 2013-07-15 | 2015-01-15 | Qualcomm Incorporated | Cross-layer alignment of intra random access point pictures |
| US20150085917A1 (en) * | 2012-05-04 | 2015-03-26 | Lg Electronics Inc. | Method for storing image data, method for parsing image data, and an apparatus for using the same |
| US20150195548A1 (en) * | 2014-01-08 | 2015-07-09 | Qualcomm Incorporated | Support of non-hevc base layer in hevc multi-layer extensions |
| US20160234517A1 (en) * | 2013-09-26 | 2016-08-11 | Telefonaktiebolaget L M Ericsson (Publ) | Hybrid codec scalable video |
| US9648322B2 (en) * | 2012-07-10 | 2017-05-09 | Qualcomm Incorporated | Coding random access pictures for video coding |
| US9794595B2 (en) * | 2014-03-18 | 2017-10-17 | Qualcomm Incorporated | Derivation of end of sequence NAL unit information for multi-layer bitstreams |
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150085917A1 (en) * | 2012-05-04 | 2015-03-26 | Lg Electronics Inc. | Method for storing image data, method for parsing image data, and an apparatus for using the same |
| US9648322B2 (en) * | 2012-07-10 | 2017-05-09 | Qualcomm Incorporated | Coding random access pictures for video coding |
| US20150016546A1 (en) * | 2013-07-15 | 2015-01-15 | Qualcomm Incorporated | Cross-layer alignment of intra random access point pictures |
| US20160234517A1 (en) * | 2013-09-26 | 2016-08-11 | Telefonaktiebolaget L M Ericsson (Publ) | Hybrid codec scalable video |
| US20150195548A1 (en) * | 2014-01-08 | 2015-07-09 | Qualcomm Incorporated | Support of non-hevc base layer in hevc multi-layer extensions |
| US9794595B2 (en) * | 2014-03-18 | 2017-10-17 | Qualcomm Incorporated | Derivation of end of sequence NAL unit information for multi-layer bitstreams |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN115623203B (en) | Method for video coding and related device | |
| CN115499652B (en) | Video encoding and decoding method and related device | |
| CN116614645B (en) | Video stream encoding method and apparatus | |
| CN113892260B (en) | A video encoding and decoding method and related device | |
| JP7297089B2 (en) | Method, system and computer program for supporting mixed NAL unit types in coded pictures | |
| CN116567255A (en) | Method for encoding and decoding encoded picture and related device | |
| CN113574896B (en) | Method, device and electronic device for obtaining intra-frame prediction mode | |
| CN113348666A (en) | Method for identifying group of graph blocks | |
| CN113812158B (en) | Method, device and electronic device for decoding encoded video code stream | |
| CN114073084A (en) | Method and apparatus for efficient signaling of picture size and partition information in video streams | |
| RU2782245C1 (en) | Method for supporting network abstraction layer (nal) blocks of mixed types in an encoded image | |
| RU2773642C1 (en) | Signaling for reference picture oversampling | |
| RU2787711C1 (en) | Managing a buffer of decoded images for encoding video signals | |
| RU2775739C1 (en) | Layered random access method in encoded video stream | |
| CN121012928A (en) | Video encoding and decoding method and device, method for processing machine vision media data, method for processing video code stream, and computer readable storage medium | |
| HK40065291A (en) | Video coding and decoding method, apparatus and storage medium | |
| HK40052148A (en) | Method and system for decoding coded video stream | |
| HK40065291B (en) | Video coding and decoding method, apparatus and storage medium | |
| HK40050899B (en) | Method for decoding coded picture and related device |