RU2787711C1 - Managing a buffer of decoded images for encoding video signals - Google Patents
Managing a buffer of decoded images for encoding video signals Download PDFInfo
- Publication number
- RU2787711C1 RU2787711C1 RU2021127724A RU2021127724A RU2787711C1 RU 2787711 C1 RU2787711 C1 RU 2787711C1 RU 2021127724 A RU2021127724 A RU 2021127724A RU 2021127724 A RU2021127724 A RU 2021127724A RU 2787711 C1 RU2787711 C1 RU 2787711C1
- Authority
- RU
- Russia
- Prior art keywords
- image
- picture
- buffer
- slnr
- sublayer
- Prior art date
Links
- UIIMBOGNXHQVGW-UHFFFAOYSA-M buffer Substances [Na+].OC([O-])=O UIIMBOGNXHQVGW-UHFFFAOYSA-M 0.000 title claims abstract description 83
- 230000000875 corresponding Effects 0.000 claims abstract description 20
- 230000002123 temporal effect Effects 0.000 claims description 62
- 238000004590 computer program Methods 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 abstract description 11
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 238000000034 method Methods 0.000 description 38
- 238000007906 compression Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 229940040608 SPS Drugs 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 230000002093 peripheral Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000001702 transmitter Effects 0.000 description 4
- 230000004301 light adaptation Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001413 cellular Effects 0.000 description 2
- 230000003287 optical Effects 0.000 description 2
- 210000002381 Plasma Anatomy 0.000 description 1
- 230000002457 bidirectional Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000035943 smell Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 230000000153 supplemental Effects 0.000 description 1
- 230000000576 supplementary Effects 0.000 description 1
- 230000001131 transforming Effects 0.000 description 1
- 230000001052 transient Effects 0.000 description 1
Images
Abstract
Description
ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИCROSS-REFERENCE TO RELATED APPLICATIONS
[1] По данной заявке испрашивается приоритет согласно предварительной заявке на патент США №62/819,460, поданной 15 марта 2019 года в Ведомство по патентам и товарным знакам США, и заявке на патент США №16/815,710, поданной 11 марта 2020 года в Ведомство по патентам и товарным знакам США, раскрытие которых включено в состав настоящего описания посредством ссылки.[1] This application claims priority under U.S. Provisional Application No. 62/819,460 filed March 15, 2019 with the U.S. Patent and Trademark Office and U.S. Patent Application No. 16/815,710 filed March 11, 2020 with the U.S. Patent and Trademark Office. under US Patents and Trademarks, the disclosure of which is incorporated into the present description by reference.
ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY
[2] Раскрытие настоящего изобретения относится к группе технологий усовершенствованного кодирования видеосигналов, более конкретно, к управлению буфером декодированных изображений.[2] The disclosure of the present invention relates to a group of advanced video coding technologies, more specifically, to decoded picture buffer management.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯBACKGROUND OF THE INVENTION
[3] Системы для декодирования включают буфер декодированных изображений для хранения изображений, подлежащих использованию в качестве опорных при декодировании.[3] Systems for decoding include a decoded picture buffer for storing pictures to be used as references in decoding.
СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
[4] Некоторые примеры раскрытия настоящего изобретения позволяют улучшить способ управления буфером декодированных изображений с помощью, например, настройки адаптации временного подуровня.[4] Some examples of the disclosure of the present invention allow to improve the method of managing the decoded picture buffer by, for example, adjusting the adaptation of the temporal sublayer.
[5] В соответствии с некоторыми примерами осуществления предлагается способ. Способ включает сохранение предварительно декодированных изображений видеопотока в буфере изображений, включая первое множество изображений одинакового временного подуровня, при этом первое множество изображений включает по меньшей мере одно опорное изображение подуровня для предсказания текущего изображения видеопотока; определение, является ли изображение из первого множества изображений не опорным изображением подуровня (SLNR, Sublayer Non-Reference), на основе индикатора, представленного в заголовке слайса и/или в заголовке изображения; удаление, на основе изображения, определенного в качестве изображения SLNR, изображения SLNR из буфера изображений; и предсказание текущего изображения с использованием одного или более изображений из по меньшей мере одного опорного изображения подуровня, хранящегося в буфере изображений, после удаления изображения SLNR из буфера изображений.[5] According to some embodiments, a method is provided. The method includes storing pre-decoded images of the video stream in an image buffer, including a first plurality of images of the same temporal sublayer, the first plurality of images including at least one reference sublayer image for predicting a current image of the video stream; determining whether an image from the first plurality of images is a Sublayer Non-Reference (SLNR) image based on an indicator provided in the slice header and/or the image header; deleting, based on the image determined as the SLNR image, the SLNR image from the image buffer; and predicting the current picture using one or more pictures from at least one sublayer reference picture stored in the picture buffer after deleting the SLNR picture from the picture buffer.
[6] Согласно примеру осуществления, определение, является ли изображение первого множества изображений изображением SLNR, включает идентификацию типа блока уровня абстракции сети (NAL, Network Abstract Layer) изображения и определение, является ли изображение изображением SLNR, на основе идентифицированного типа блока NAL.[6] According to an exemplary embodiment, determining whether an image of the first plurality of images is an SLNR image includes identifying a Network Abstract Layer (NAL) block type of the image and determining whether the image is an SLNR image based on the identified NAL block type.
[7] Согласно примеру осуществления, способ также включает предоставление идентификатора для изображения, определенного в качестве изображения SLNR, на основе определения изображения в качестве изображения SLNR, при этом удаление включает удаление изображения из буфера изображений на основе идентификатора.[7] According to the exemplary embodiment, the method also includes providing an identifier for an image determined as an SLNR image based on determining the image as an SLNR image, wherein deletion includes deleting the image from an image buffer based on the identifier.
[8] Согласно примеру осуществления, способ также включает формирование списка опорных изображений, включающего элемент для каждого изображения из первого множества, при этом предоставление идентификатора включает предоставление идентификатора в элементе списка опорных изображений, который соответствует изображению, определенному как изображение SLNR.[8] According to an exemplary embodiment, the method also includes generating a reference picture list including an entry for each picture from the first set, wherein providing an identifier includes providing an identifier in a reference picture list entry that corresponds to an image determined to be an SLNR picture.
[9] Согласно примеру осуществления, ранее декодированные изображения, хранящиеся в буфере изображений, содержат второе изображение, которое является опорным изображением, и способ также включает определение, является ли значение временного подуровня второго изображения больше заранее заданного значения; удаление второго изображения из буфера изображений на основе определения того, что значение временного подуровня второго изображения больше заранее заданного значения.[9] According to an exemplary embodiment, the previously decoded pictures stored in the picture buffer include a second picture that is a reference picture, and the method also includes determining whether the second picture's temporal sublayer value is greater than a predetermined value; deleting the second image from the image buffer based on determining that the second image temporal sublayer value is greater than a predetermined value.
[10] Согласно примеру осуществления, способ также включает предоставление идентификатора для второго изображения на основе определения того, что значение временного подуровня второго изображения больше заранее заданного значения, при этом удаление второго изображения включает удаление второго изображения из буфера изображений на основе идентификатора.[10] According to an exemplary embodiment, the method also includes providing an identifier for the second image based on determining that the second image temporal sublayer value is greater than a predetermined value, wherein deleting the second image includes deleting the second image from the image buffer based on the identifier.
[11] Согласно примеру осуществления, способ также включает сравнение заранее заданного значения со значением, соответствующим наибольшему номеру идентификации временного подуровня, при этом определение, является ли значение временного подуровня второго изображения больше заранее заданного значения, осуществляется на основе заранее заданного значения, которое определяется как отличающееся от значения, соответствующего наибольшему номеру идентификации временного подуровня.[11] According to the exemplary embodiment, the method also includes comparing the predetermined value with the value corresponding to the highest temporal sublayer identification number, wherein determining whether the value of the temporal sublayer of the second image is greater than the predetermined value is performed based on the predetermined value, which is determined as different from the value corresponding to the highest temporal sublayer identification number.
[12] Согласно примеру осуществления, способ также включает определение, является ли текущее изображение изображением внутренней точки произвольного доступа (IRAP, Intra Random Access Point); определение, указывает ли флаг на то, что отсутствует вывод пропущенного опережающего изображения произвольного доступа (RASL, Random Access Skipped Leading); и определение, следует ли устанавливать соответствующий идентификатор для каждого опорного изображения, хранимого в буфере изображений, при этом соответствующий идентификатор для каждого опорного изображения указывает, должно ли каждое опорное изображение удаляться из буфера изображений, на основе того, определяется ли текущее изображение как изображение IRAP и определяется ли флаг, указывающий на отсутствие вывода изображения RASL.[12] According to an exemplary embodiment, the method also includes determining whether the current image is an Intra Random Access Point (IRAP) image; determining whether a flag indicates that there is no output of a random access skipped leading picture (RASL, Random Access Skipped Leading); and determining whether to set a corresponding ID for each reference picture stored in the picture buffer, wherein the respective ID for each reference picture indicates whether each reference picture should be removed from the picture buffer, based on whether the current picture is determined to be an IRAP picture, and whether a flag is defined indicating that no RASL image is being output.
[13] Согласно примеру осуществления, значение временного подуровня второго изображения больше, чем значение временного подуровня первого множества изображений, хранящихся в буфере изображений.[13] According to an embodiment, the temporal sublayer value of the second image is larger than the temporal sublayer value of the first plurality of images stored in the image buffer.
[14] Согласно примеру осуществления, способ также включает удаление изображений из буфера изображений, на которые отсутствует ссылка в списке опорных изображений, на основе изображений, на которые отсутствует ссылка в списке опорных изображений.[14] According to the exemplary embodiment, the method also includes deleting pictures from the buffer of pictures not referenced in the reference picture list based on pictures not referenced in the reference picture list.
[15] В соответствии с некоторыми примерами осуществления предлагается декодер для декодирования видеопотока. Декодер содержит память, сконфигурированную для хранения компьютерного программного кода, и по меньшей мере один процессор, сконфигурированный для доступа к компьютерному программному коду и работающий под управлением компьютерного программного кода, при этом компьютерный программный код включает: код сохранения, сконфигурированный для выполнения по меньшей мере одним процессором сохранения предварительно декодированных изображений видеопотока в буфере изображений, включая первое множество изображений одинакового временного подуровня, при этом первое множество изображений включает по меньшей мере одно опорное изображение подуровня для предсказания текущего изображения видеопотока; код определения, сконфигурированный для выполнения по меньшей мере одним процессором определения, является ли изображение из первого множества изображений не опорным изображением подуровня (SLNR), на основе индикатора, представленного в заголовке слайса и/или в заголовке изображения; код удаления, сконфигурированный для выполнения по меньшей мере одним процессором удаления, на основе изображения, определенного в качестве изображения SLNR, изображения SLNR в буфере изображений; и код предсказания, сконфигурированный для выполнения по меньшей мере одним процессором предсказания текущего изображения с использованием одного или более изображений из по меньшей мере одного опорного изображения подуровня, хранящегося в буфере изображений, после удаления изображения SLNR из буфера изображений.[15] According to some embodiments, a decoder is provided for decoding a video stream. The decoder comprises a memory configured to store computer program code and at least one processor configured to access the computer program code and operate under the control of the computer program code, wherein the computer program code includes: a storage code configured to be executed by at least one a processor for storing pre-decoded images of the video stream in an image buffer including a first plurality of images of the same temporal sublayer, the first plurality of images including at least one reference sublayer image for predicting a current image of the video stream; determination code configured to perform at least one processor determining whether an image of the first plurality of images is a non-sublayer reference image (SLNR) based on an indicator provided in the slice header and/or in the picture header; deletion code configured to perform deletion by at least one processor, based on the image determined as the SLNR image, of the SLNR image in the image buffer; and a prediction code configured to perform prediction by the at least one processor of the current picture using one or more pictures from the at least one sublayer reference picture stored in the picture buffer after deleting the SLNR picture from the picture buffer.
[16] Согласно примеру осуществления, код определения сконфигурирован для выполнения по меньшей мере одним процессором идентификации типа блока уровня абстракции сети (NAL) изображения и определения, является ли изображение изображением SLNR, на основе идентифицированного типа блока NAL.[16] According to an exemplary embodiment, the determination code is configured to perform at least one processor identifying a network abstraction layer (NAL) unit type of an image and determining whether the image is an SLNR image based on the identified NAL unit type.
[17] Согласно примеру осуществления, по меньшей мере один процессор сконфигурирован для доступа к компьютерному программному коду и работы под управлением компьютерного программного кода, который также включает код предоставления идентификатора, сконфигурированный для выполнения по меньшей мере одним процессором предоставления идентификатора для изображения, определенного в качестве изображения SLNR, на основе определения изображения в качестве изображения SLNR, и код удаления, сконфигурированный для выполнения по меньшей мере одним процессором удаления изображения SLNR из буфера изображений на основе идентификатора.[17] According to an exemplary embodiment, the at least one processor is configured to access and operate the computer program code, which also includes an identifier granting code configured to be executed by the at least one processor to provide an identifier for an image determined as an SLNR image based on determining the image as an SLNR image, and deletion code configured to perform at least one processor deleting the SLNR image from the image buffer based on the identifier.
[18] Согласно примеру осуществления, по меньшей мере один процессор сконфигурирован для доступа к компьютерному программному коду и работы под управлением компьютерного программного кода, который также включает код формирования, сконфигурированный для выполнения по меньшей мере одним процессором формирование списка опорных изображений, включающего элемент для каждого изображения из первого множества изображений, и код предоставления идентификатора, сконфигурированный для выполнения по меньшей мере одним процессором предоставления идентификатора в элементе списка опорных изображений, который соответствует изображению, определенному как изображение SLNR.[18] According to an exemplary embodiment, at least one processor is configured to access the computer program code and operate under the control of the computer program code, which also includes generation code configured to perform at least one processor generation of a reference picture list including an element for each images from the first plurality of images, and an ID granting code configured to be executed by at least one ID granting processor in the reference picture list entry that corresponds to the picture determined as the SLNR picture.
[19] Согласно примеру осуществления, ранее декодированные изображения, хранящиеся в буфере изображений, содержат второе изображение, которое является опорным изображением, код определения сконфигурирован для выполнения по меньшей мере одним процессором определения, является ли значение временного подуровня второго изображения больше заранее заданного значения; и код удаления сконфигурирован для выполнения по меньшей мере одним процессором удаления второго изображения из буфера изображений на основе определения того, что значение временного подуровня второго изображения больше заранее заданного значения.[19] According to an exemplary embodiment, the previously decoded pictures stored in the picture buffer include a second picture that is a reference picture, the determination code is configured to make at least one processor determine whether the second picture's temporal sublayer value is greater than a predetermined value; and the deletion code is configured to perform at least one processor deleting the second image from the image buffer based on determining that the second image temporal sublayer value is greater than a predetermined value.
[20] Согласно примеру осуществления, код предоставления идентификатора сконфигурирован для выполнения по меньшей мере одним процессором предоставления идентификатора для второго изображения на основе определения того, что значение временного подуровня второго изображения больше заранее заданного значения, и код удаления сконфигурирован для выполнения по меньшей мере одним процессором удаления второго изображения из буфера изображений на основе идентификатора.[20] According to an exemplary embodiment, the ID grant code is configured to be executed by at least one processor for providing an ID for the second image based on determining that the value of the temporal sublayer of the second picture is greater than a predetermined value, and the deletion code is configured to be executed by at least one processor deleting the second image from the image buffer based on the ID.
[21] Согласно примеру осуществления, код определения сконфигурирован для выполнения по меньшей мере одним процессором сравнения заранее заданного значения со значением, соответствующим наибольшему номеру идентификации временного подуровня, при этом определение, является ли значение временного подуровня второго изображения больше заранее заданного значения, осуществляется на основе заранее заданного значения, которое определяется как отличающееся от значения, соответствующего наибольшему номеру идентификации временного подуровня.[21] According to the exemplary embodiment, the determination code is configured to perform at least one processor comparing the predetermined value with the value corresponding to the highest temporal sublayer identification number, wherein determining whether the value of the temporal sublayer of the second picture is greater than the predetermined value is performed based on a predetermined value, which is determined to be different from the value corresponding to the highest temporal sublayer identification number.
[22] Согласно примеру осуществления, код определения сконфигурирован для выполнения по меньшей мере одним процессором определения, является ли текущее изображение изображением внутренней точки произвольного доступа (IRAP); и определения, указывает ли флаг на то, что отсутствует вывод пропущенного опережающего изображения произвольного доступа (RASL); и компьютерный программный код также содержит код предоставления идентификатора, сконфигурированный для выполнения по меньшей мере одним процессором установки соответствующего идентификатора для каждого опорного изображения, хранимого в буфере изображений, при этом соответствующий идентификатор для каждого опорного изображения указывает, должно ли каждое опорное изображение удаляться из буфера изображений, если определяется, что текущее изображение является изображением IRAP, и определяется, что флаг, указывает на отсутствие вывода изображения RASL.[22] According to an exemplary embodiment, the determination code is configured to perform at least one processor determining whether the current image is an internal random access point (IRAP) image; and determining whether the flag indicates that there is no skipped random access advance picture (RASL) output; and the computer program code also includes an identifier providing code configured to cause the at least one processor to set a respective identifier for each reference picture stored in the picture buffer, wherein the respective identifier for each reference picture indicates whether each reference picture is to be removed from the picture buffer. if the current image is determined to be an IRAP image and the flag is determined to indicate that no RASL image is being output.
[23] Согласно примеру осуществления, значение временного подуровня второго изображения больше, чем значение временного подуровня первого множества изображений, хранящихся в буфере изображений.[23] According to an exemplary embodiment, the value of the temporal sublayer of the second image is greater than the value of the temporal sublayer of the first plurality of images stored in the image buffer.
[24] Согласно некоторым примерам осуществления настоящего изобретения предлагается машиночитаемый носитель информации, на котором хранятся компьютерные инструкции. При выполнении компьютерных инструкций по меньшей мере один процессор инициируется для сохранения предварительно декодированных изображений видео потока в буфере изображений, включая первое множество изображений одинакового временного подуровня, при этом первое множество изображений включает по меньшей мере одно опорное изображение подуровня для предсказания текущего изображения видеопотока; определения, является ли изображение из первого множества изображений не опорным изображением подуровня (SLNR), на основе индикатора, представленного в заголовке слайса и/или в заголовке изображения; удаления, на основе изображения, определенного в качестве изображения SLNR, изображения SLNR из буфера изображений; и предсказания текущего изображения с использованием одного или более изображений из по меньшей мере одного опорного изображения подуровня, которое хранится в буфере изображений, после удаления изображения SLNR из буфера изображений.[24] According to some embodiments of the present invention, a computer-readable storage medium is provided that stores computer instructions. When executing computer instructions, at least one processor is initiated to store pre-decoded images of the video stream in an image buffer, including a first plurality of images of the same temporal sublayer, wherein the first plurality of images includes at least one reference sublayer image for predicting the current image of the video stream; determining whether an image from the first plurality of images is a non-sublayer reference image (SLNR) based on an indicator provided in the slice header and/or the image header; deleting, based on the image determined as the SLNR image, the SLNR image from the image buffer; and predicting the current picture using one or more pictures from at least one sublayer reference picture stored in the picture buffer after deleting the SLNR picture from the picture buffer.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
[25] Дополнительные признаки, особенности и различные преимущества раскрываемого предмета изобретения становятся более очевидными из последующего подробного описания и прилагаемых чертежей, на которых:[25] Additional features, features and various advantages of the disclosed subject matter become more apparent from the following detailed description and the accompanying drawings, in which:
[26] на фиг. 1 показано схематическое представление упрощенной блок-схемы системы связи в соответствии с примером осуществления настоящего изобретения.[26] in FIG. 1 is a schematic representation of a simplified block diagram of a communication system in accordance with an embodiment of the present invention.
[27] На фиг. 2 показано схематическое представление упрощенной блок-схемы системы потоковой передачи в соответствии с примером осуществления настоящего изобретения.[27] FIG. 2 is a schematic representation of a simplified block diagram of a streaming system in accordance with an embodiment of the present invention.
[28] На фиг. 3 показано схематическое представление упрощенной блок-схемы видеодекодера и дисплея в соответствии с примером осуществления настоящего изобретения.[28] FIG. 3 is a schematic representation of a simplified block diagram of a video decoder and display in accordance with an embodiment of the present invention.
[29] На фиг. 4 показано схематическое представление упрощенной блок-схемы видеокодера и источника видеосигнала в соответствии с примером осуществления настоящего изобретения.[29] FIG. 4 is a schematic representation of a simplified block diagram of a video encoder and video source in accordance with an exemplary embodiment of the present invention.
[30] На фиг. 5 показан алгоритм выполнения процесса в соответствии с примером осуществления настоящего изобретения.[30] FIG. 5 shows a process flow in accordance with an exemplary embodiment of the present invention.
[31] На фиг. 6 показан алгоритм выполнения процесса в соответствии с примером осуществления настоящего изобретения.[31] FIG. 6 shows a process flow in accordance with an exemplary embodiment of the present invention.
[32] На фиг. 7 представлена схема, иллюстрирующая устройство в соответствии с примером осуществления настоящего изобретения.[32] FIG. 7 is a diagram illustrating an apparatus according to an embodiment of the present invention.
[33] На фиг. 8 показана блок-схема компьютерной системы, подходящей для реализации примеров осуществления настоящего изобретения.[33] FIG. 8 is a block diagram of a computer system suitable for implementing exemplary embodiments of the present invention.
ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION
[34] На фиг. 1 показана упрощенная блок-схема системы 100 связи в соответствии с примером раскрытия настоящего изобретения. Система 100 может содержать по меньшей мере два терминала 110, 120, взаимосвязанных через сеть 150. Для однонаправленной передачи данных первый терминал 110 может кодировать видеоданные в локальном местоположении для передачи их в другой терминал 120 через сеть 150. Второй терминал 120 может принимать кодированные видеоданные из другого терминала по сети 150, декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может представлять собой общую функцию в медийных обслуживающих приложениях и т.п.[34] FIG. 1 shows a simplified block diagram of a
[35] На фиг. 1 показана вторая пара терминалов 130, 140, предназначенных для поддержки двусторонней передачи кодированных видеоданных, которая может осуществляться, например, в процессе видеоконференц-связи. Для двусторонней передачи данных каждый терминал 130, 140 может кодировать видеоданные, захваченные в локальном местоположении, для передачи в другой терминал по сети 150. Каждый терминал 130, 140 также может принимать кодированные видеоданные, переданные другим терминалом, может декодировать кодированные данные и отображать восстановленные видеоданные на локальном устройстве отображения.[35] FIG. 1 shows a second pair of
[36] Показанные на фиг. 1 терминалы 110-140 могут представлять собой, например, серверы, персональные компьютеры и смартфоны, и/или терминал любого тип. Например, терминалы 110-140 могут представлять собой ноутбуки, планшеты, медиаплееры и/или специализированное оборудование для видеоконференций. Сеть 150 представляет любое количество сетей, которые передают кодированные видеоданные между терминалами 110-140, включая, например, проводные и/или беспроводные сети связи. Сеть 150 связи может осуществлять обмен данными по линиям связи с коммутацией каналов или с коммутацией пакетов. Типичные сети включают телекоммуникационные сети, локальные и глобальные сети и/или Интернет. С целью настоящего обсуждения можно предположить, что архитектура и топология сети 150 не существенна для принципов раскрытия изобретения, если ниже не указано иное.[36] Shown in FIG. 1, terminals 110-140 may be, for example, servers, personal computers and smartphones, and/or any type of terminal. For example, terminals 110-140 may be laptops, tablets, media players, and/or specialized video conferencing equipment. Network 150 represents any number of networks that transmit encoded video data between terminals 110-140, including, for example, wired and/or wireless networks. Communication network 150 may communicate over circuit-switched or packet-switched links. Typical networks include telecommunications networks, local and wide area networks and/or the Internet. For the purposes of this discussion, it may be assumed that the architecture and topology of network 150 is not essential to the principles of the disclosure, unless otherwise noted below.
[37] На фиг. 2 в качестве примера применения раскрываемого предмета изобретения показано расположение кодера и декодера видеосигнала в потоковой среде. Раскрываемый предмет настоящего изобретения может использоваться с другими допустимыми применениями видеосигнала, включая, например, видеоконференц-связь, цифровое телевидение, хранение сжатых видеоданных на цифровых носителях, включая CD, DVD, карту памяти и т.п.[37] FIG. 2 shows the location of a video encoder and decoder in a streaming environment as an example of the application of the disclosed subject matter. The disclosed subject matter of the present invention may be used with other valid video applications including, for example, videoconferencing, digital television, compressed video storage on digital media including CD, DVD, memory card, and the like.
[38] Как показано на фиг. 2, система 200 потоковой передачи может содержать подсистему 213 захвата, которая включает в свой состав источник 201 видеосигнала и кодер 203. Система 200 потоковой передачи может также содержать по меньшей мере один потоковый сервер 205 и/или по меньшей мере один потоковый клиент 206.[38] As shown in FIG. 2,
[39] Источник 201 видеосигнала может создавать, например, несжатый поток 202 отсчетов видеосигнала. Источник 201 видеосигнала может представлять собой, например, цифровую видеокамеру. Поток 202 отсчетов, изображенный в виде полужирной линии, чтобы обратить внимание на большой объем данных по сравнению с кодированными битовыми видеопотоками, может обрабатываться кодером 203, соединенным с камерой. Кодер 203 может содержать аппаратуру, программное обеспечение или комбинацию этих компонентов для активирования или реализации аспектов раскрываемого предмета изобретения, как более подробно описывается ниже. Кодер 203 может также генерировать кодированный битовый видеопоток 204. Кодированный битовый видеопоток 204, изображенный в виде тонкой линии, чтобы обратить внимание на небольшой объем данных по сравнению с несжатым видеопотоком 202 отсчетов, может для дальнейшего использования храниться на потоковом сервере. Один или более потоковых клиентов 206 могут осуществлять доступ к потоковому серверу 205 для извлечения битовых видеопотоков 209, которые могут представлять собой копии кодированного битового видеопотока 204.[39]
[40] Потоковые клиенты 206 могут включать в свой состав видеодекодер 210 и дисплей 212. Видеодекодер 210 может, например, декодировать битовый видеопоток 209, представляющий собой входящую копию кодированного битового видеопотока 204, и создавать исходящий видеопоток 211 отсчетов, который может отображаться на дисплее 212 или на другом устройстве визуализации (не показанном на чертеже). В некоторых потоковых системах битовые видеопотоки 204, 209 могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видеоданных. Примером таких стандартов, без ограничения указанным примером, может являться рекомендация Н.265 ITU-T. В стадии разработки находится стандарт кодирования видеоданных, неформально известный как усовершенствованное видеокодирование (VVC, Versatile Video Coding). Примеры раскрытия настоящего изобретения могут использоваться в контексте VVC.[40] Streaming
[41] На фиг. 3 показан пример функциональной блок-схемы видеодекодера 210, подключенного к дисплею 212, в соответствии с примером раскрытия настоящего изобретения.[41] FIG. 3 shows an exemplary functional block diagram of a
[42] Видеодекодер 210 может содержать канал 312, приемник 310, буферную память 315, энтропийный декодер/анализатор 320, блок 351 масштабирования/обратного преобразования, блок 352 внутреннего предсказания, блок 353 предсказания компенсации движения, агрегатор 355, блок 356 контурного фильтра, память 357 опорных изображений и память 358 текущих изображений. Согласно по меньшей мере одному примеру осуществления видеодекодер 210 может содержать интегрированную схему, ряд интегрированных схем и/или другие электронные цепи. Видеодекодер 210 может быть также полностью или частично реализован в виде программного обеспечения, выполняющегося на одном или более CPU со связанной памятью.[42] The
[43] В этом и других примерах осуществления приемник 310 может принимать одну или более кодированных видеопоследовательностей, подлежащих декодированию декодером 210, по одной последовательности в конкретный момент времени, при этом декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься по каналу 312, который может представлять собой аппаратную/программную линию связи с запоминающим устройством, хранящим кодированные видеоданные. Приемник 310 может принимать кодированные видеоданные совместно с другими данными, например, с кодированными звуковыми данными и/или с потоками служебных данных, которые могут пересылаться в соответствующие им объекты применения (не показанные на чертеже). Приемник 310 может разделять кодированную видеопоследовательность от других данных. Для устранения флуктуации в сети между приемником 310 и энтропийным декодером/анализатором 320 (далее называемым "анализатор") может устанавливаться буферная память 315. Если приемник 310 принимает данные из запоминающего устройства/устройства пересылки с достаточной полосой пропускания и управляемостью или из изосинхронной сети, буферная память 315 может не использоваться или иметь небольшой размер. Для использования в пакетных сетях наилучшего качества обслуживания, таких как Интернет, может потребоваться буфер 315, который может быть достаточно большим и адаптируемым по размеру.[43] In this and other embodiments, receiver 310 may receive one or more encoded video sequences to be decoded by
[44] Видеодекодер 210 может содержать анализатор 320 для восстановления символов 321 из энтропийно кодированной видеопоследовательности. Категории таких символов включают, например, информацию, используемую для управления функционированием декодера 210, а также потенциальную информацию для управлением устройством визуализации, таким как дисплей 212, который может быть связан с декодером, как показано на фиг. 2. Управляющая информация для устройства (устройств) визуализации может передаваться, например, в формате сообщений дополнительной усовершенствованной информации (SEI, Supplementary Enhancement Information) или фрагментов набора параметров применимости визуальной информации (VUI, Video Usability Information) (не показанной на чертеже). Анализатор 320 может анализировать/энтропийно декодировать принятую видеопоследовательность. Кодирование кодированной видеопоследовательности может выполняться в соответствии с технологией или стандартом видеокодирования и может следовать принципам, хорошо известным специалисту в этой области техники, включая кодирование с переменной длиной, кодирование по методу Хаффмена, арифметическое кодирование с учетом или без учета контекстной зависимости и т.д. Анализатор 320 может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного из параметров, соответствующих группе. Подгруппы могут включать группы изображений (GOP, Groups of Pictures), изображения, тайлы, слайсы, макроблоки, блоки кодирования (CU, Coding Unit), блоки преобразования (TU, Transform Unit), блоки предсказания (PU, Prediction Unit) и т.д. Анализатор 320 также может извлекать из кодированной видеопоследовательности такую информацию как коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.[44]
[45] Анализатор 320 может выполнять операцию энтропийного декодирования/анализа видеопоследовательности, принятой из буферной памяти 315, для создания символов 321.[45] The
[46] При восстановлении символов 321 может быть задействовано множество различных блоков, в зависимости от типа кодированного видеоизображения или его части (например: от взаимосвязанных или внутренних изображений и блоков) и других факторов. Задействованными в этом процессе блоками и способом их взаимодействия может управлять информация управления подгруппами, которая анализируется на основе кодированной видеопоследовательности анализатором 320. Поток такой информации управления подгруппами между анализатором 320 и множеством блоков, описываемый ниже, не изображен на чертеже для простоты изложения.[46] Many different blocks may be involved in symbol recovery 321, depending on the type of encoded video image or part thereof (eg, interconnected or inter-images and blocks) and other factors. The blocks involved in this process and the way they interact can be controlled by subgroup control information that is parsed based on the encoded video sequence by the
[47] Помимо уже упомянутых функциональных блоков, декодер 210, как описано ниже, концептуально может подразделяться на ряд других функциональных блоков. В практических реализациях при работе в условиях коммерческих ограничений множество этих блоков тесно взаимодействуют друг с другом и могут, по меньшей мере частично, интегрироваться друг в друга. Однако с целью описания раскрываемого предмета изобретения применяется приведенное ниже концептуальное разделение на функциональные блоки.[47] In addition to the functional blocks already mentioned, the
[48] Один из блоков может представлять собой блок 351 преобразователя видеоформата/обратного преобразования. Блок 351 преобразователя видеоформата/обратного преобразования может принимать квантованный коэффициент преобразования, а также управляющую информацию, включая информацию об используемом способе преобразования, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д., в качестве символа(-ов) 321 из анализатора 320. Блок 351 преобразователя видеоформата/обратного преобразования может выводить блоки, содержащие значения отсчетов, которые могут подаваться в агрегатор 355.[48] One of the blocks may be a
[49] В некоторых случаях выходные отсчеты блока 351 преобразователя видеоформата/обратного преобразования могут принадлежать внутренне кодированному блоку; то есть блоку, который не использует информацию предсказания из предварительно восстановленных изображений, но может использовать информацию предсказания из предварительно восстановленных частей текущего изображения. Такая информация предсказания может предоставляться блоком 352 внутреннего предсказания. В некоторых случаях блок 352 внутреннего предсказания генерирует блок того же размера и формы, что и восстанавливаемый блок, с использованием окружающей уже восстановленной информации, извлеченной из текущего (частично восстановленного) изображения, хранимого в памяти 358 текущих изображений. Агрегатор 355 в некоторых случаях добавляет на основе отсчетов информацию предсказания, сгенерированную блоком 352 внутреннего предсказания, в выходную информацию отсчетов, представленную блоком 351 преобразователя видеоформата/обратного преобразования.[49] In some cases, the output samples of the video format converter/
[50] В других случаях выходные отсчеты блока 351 преобразователя видеоформата/обратного преобразования могут принадлежать взаимно кодированному блоку с потенциальной компенсацией движения. В таком случае блок 353 предсказания компенсации движения может осуществлять доступ к памяти 357 опорных изображений для извлечения отсчетов, используемых для предсказания. После компенсации движения извлеченные образцы в соответствии с символами 321, принадлежащими блоку, могут добавляться агрегатором 355 к выходным данным блока 351 преобразователя видеоформата/обратного преобразования (в этом случае эти данные называются остаточными отсчетами или остаточным сигналом), для того чтобы сгенерировать выходную информацию отсчетов. Адреса в памяти 357 опорных изображений, по которым блок 353 предсказания компенсации движения извлекает отсчеты предсказания, могут управляться векторами движения. Векторы движения могут быть доступны блоку 353 предсказания компенсации движения в виде символов 321, которые могут, например, характеризоваться компонентами х, Y и опорными изображениями. Компенсация движения также может включать интерполяцию значений отсчетов при извлечении из памяти 357 опорных изображений, если используются точные векторы движения подотсчетов, механизмы предсказания векторов движения и т.д.[50] In other cases, the output samples of the video format converter/
[51] Выходные отсчеты агрегатора 355 могут обрабатываться с использованием различных технологий контурной фильтрации в блоке 356 контурного фильтра. Технологии сжатия видеоданных могут включать технологии внутриконтурной фильтрации, которые управляются параметрами, включаемыми в кодированный битовый видеопоток, и становятся доступными блоку 356 контурной фильтрации в виде символов 321 из анализатора 320, но также могут реагировать на метаинформацию, получаемую в процессе декодирования предшествующих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее восстановленные, подвергшиеся контурной фильтрации значения отсчетов.[51] The output samples of the
[52] Выход блока 356 контурного фильтра может представлять собой поток отсчетов, который может подаваться на устройство визуализации, такое как дисплей 212, а также сохраняться в памяти 357 опорных изображений для последующего использования в межкадровом предсказании.[52] The output of
[53] Определенные кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для последующего предсказания. После того как кодированное изображение полностью восстановлено и идентифицировано как опорное изображение (например, анализатором 320), текущее опорное изображение, сохраненное в памяти 358 текущих изображений, может стать частью памяти 357 опорных изображений, и обновленная память текущих изображений может перераспределяться перед началом восстановления следующего кодированного изображения.[53] Certain encoded pictures after full recovery can be used as reference pictures for subsequent prediction. Once the encoded picture is fully recovered and identified as a reference picture (e.g., by parser 320), the current reference picture stored in
[54] Видеодекодер 210 может выполнять операции декодирования в соответствии с заранее заданной технологией сжатия видеоданных, которая может документироваться в стандарте, таком как рекомендация Н.265 ITU-T. Кодированная видеопоследовательность может соответствовать синтаксису, указанному используемыми технологией или стандартом сжатия видеоданных, в том смысле, что она придерживается синтаксиса технологии или стандарта сжатия видеоданных, заданным в документе или стандарте по технологии сжатия видеоданных и, в особенности, в профильных документах этих стандартов. Кроме того, для соответствия некоторым технологиям или стандартам сжатия видеоданных сложность кодированных видеопоследовательностей может находиться в пределах, определенных уровнем технологии или стандарта сжатия видеоданных. В некоторых случаях уровни сложности ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для восстановления (измеряемую, например, в миллионах отсчетов в секунду), максимальный размер опорного изображения и т.д. Уровни сложности могут также в некоторых случаях ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сообщаемыми в кодированной видеопоследовательности.[54]
[55] Согласно примеру осуществления, приемник 310 может принимать дополнительные (избыточные) данные вместе с кодированными видеоданными. Дополнительные данные могут вставляться в кодированную видеопоследовательность(-и). Дополнительные данные могут использоваться видеодекодером 210 для корректного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут предоставляться в виде, например, временных, пространственных или усовершенствованных уровней SNR, избыточных слайсов, избыточных изображений, кодов с прямым исправлением ошибок и т.д.[55] According to an exemplary embodiment, receiver 310 may receive additional (redundant) data along with encoded video data. Additional data may be inserted into the encoded video sequence(s). The additional data may be used by
[56] На фиг. 4 показан пример функциональной блок-схемы видеокодера 203, связанного с источником 201 видеосигнала, в соответствии с примером раскрытия настоящего изобретения.[56] FIG. 4 shows an exemplary functional block diagram of a
[57] Видеокодер 203 может содержать, например, кодер, который является кодером 430 источника, ядро 432 кодирования, (локальный) декодер 433, память 434 опорных изображений, предсказатель 435, передатчик 440, энтропийный кодер 445, контроллер 450 и канал 460.[57] The
[58] Кодер 203 может принимать отсчеты видеосигнала из источника 201 видеосигнала (не являющегося частью кодера), который может захватывать видеоизображение(-я), подлежащее кодированию кодером 203.[58] The
[59] Источник 201 видеосигнала может предоставлять исходные видеопоследовательности, подлежащие кодированию кодером 203, в виде цифрового видеопотока отсчетов, который может иметь любую подходящую битовую глубину (например: х бит, 10 бит, 12 бит, …), любое цветовое пространство (например, ВТ.601 Y CrCB, RGB, …) и любую подходящую структуру отсчетов (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В обслуживающей медийной системе источник 201 видеосигнала может представлять собой запоминающее устройство, на котором хранятся ранее подготовленные видеоданные. В системе видеоконференц-связи источник 203 видеосигнала может представлять собой камеру, которая захватывает локальную графическую информацию в форме видеопоследовательности. Видеоданные могут предоставляться в виде множества отдельных изображений, которые передают движение при последовательном просмотре. Непосредственно изображения могут быть организованы как пространственный массив пикселей, каждый из которых может содержать одну или более отсчетов, в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в этой области техники нетрудно понять взаимосвязь между пикселями и отсчетами. В последующем описании делается акцент на отсчеты.[59] The
[60] Согласно примеру осуществления, кодер 203 может кодировать и сжимать изображения исходной видеопоследовательности для преобразования ее в кодированную видеопоследовательность 443 в реальном времени или в соответствии с любыми другими ограничениями по времени, в зависимости от предъявляемых требований. Обеспечение подходящей скорости кодирования может являться одной из функций, выполняемых контроллером 450. Контроллер 450 может также управлять другими функциональными блоками, как описывается ниже, и может функционально соединяться с этими блоками. Для простоты эта связь не обозначена на чертеже. Параметры, устанавливаемые контроллером 450, могут включать в свой состав параметры, относящиеся к управлению скоростью (пропуск изображения, квантователь, значение лямбда для технологий оптимизации искажения от скорости передачи, …), размер изображения, уровень группы изображений (GOP), максимальный диапазон поиска вектора движения и т.д. Специалист в этой области техники может легко идентифицировать другие функции контроллера 450, в той мере, в какой они могут относиться к видеокодеру (203), оптимизированному для структуры определенной системы.[60] According to an exemplary embodiment, the
[61] Некоторые видеокодеры работают в режиме, который специалисту в этой области техники известен как "контур кодирования". В упрощенном описании контур кодирования может состоять из частей кодирования исходного кодера 430 (ответственного за создание символов на основе входного изображения, подлежащего кодированию, и опорного изображения(-ий)) и встроенного в кодер 203 (локального) декодера 433, который восстанавливает символы для создания данных отсчетов, которые (удаленный) декодер также должен создавать, если сжатие между символами и кодированным битовым видеопотоком выполняется без потерь согласно определенным технологиям сжатия видеоданных. Этот восстановленный поток отсчетов может записываться в память 434 опорных изображений. Поскольку декодирование символьного потока приводит к точным битовым результатам независимо от местоположения декодера (локальное или удаленное), память опорных изображений также содержит точные биты между локальным кодером и удаленным кодером. Другими словами, подсистема предсказания кодера "видит" в качестве отсчетов опорных изображений в точности те же значения отсчетов, которые должен "увидеть" декодер при использовании предсказания в процессе декодирования. Этот фундаментальный принцип синхронности опорных изображений (и результирующий сдвиг, если синхронность не может поддерживаться, например, из-за ошибок в канале) известен специалисту в этой области техники.[61] Some video encoders operate in a mode known to those skilled in the art as "coding loop". In a simplified description, an encoding loop may consist of the encoding portions of a source encoder 430 (responsible for generating symbols based on the input image to be encoded and the reference image(s)) and a (local)
[62] Работа "локального" декодера 433, по существу, может быть аналогична функционированию "удаленного" декодера 210, который уже подробно описывался выше со ссылкой на фиг. 3. Однако, поскольку символы доступны и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером 445 и анализатором 320 может выполняться без потерь, часть энтропийного декодирования декодера 210, включая канал 312, приемник 310, буферную память 315 и анализатор 320, может быть не полностью реализована в локальном декодере 433.[62] The operation of the "local"
[63] Здесь следует заметить, что любая технология декодирования, за исключением анализа/энтропийного декодирования, используемая в декодере, может по существу в идентичном функциональном виде потребоваться в соответствующем кодере. По этой причине при раскрытии предмета настоящего изобретения акцент делается на работе декодера. Описание технологий кодера может быть сокращено, поскольку они могут быть обратными по отношению к всесторонне описанным технологиям декодера. Более подробного описания, приводимого ниже, требуют только определенные области.[63] It should be noted here that any decoding technique, with the exception of analysis/entropy decoding, used in a decoder may be required in a substantially identical functional form in a corresponding encoder. For this reason, in the disclosure of the subject matter of the present invention, emphasis is placed on the operation of the decoder. The description of the encoder technologies may be abbreviated as they may be inverse to the comprehensively described decoder technologies. The more detailed description below is only required for certain areas.
[64] Одной из функций кодера 430 источника может являться выполнение кодирования с предсказанием и компенсацией движения, при котором с предсказанием кодируются входные кадры со ссылкой на один или более ранее кодированных кадров видеопоследовательности, обозначаемых как "опорные кадры". Таким образом, ядро 432 кодирования кодирует разности между блоками пикселей входного кадра и блоками пикселей опорного кадра(-ов), которые могут выбираться в качестве ссылки (-ок) предсказания на входной кадр.[64] One function of the source encoder 430 may be to perform motion-compensated predictive coding, in which input frames are predictively encoded with reference to one or more previously encoded frames of the video sequence, referred to as "reference frames". Thus, the
[65] Локальный видеодекодер 433 может декодировать кодированные видеоданные или кадры, которые могут обозначаться как опорные кадры, на основе символов, созданных исходным кодером 430. Операции ядра 432 кодирования могут преимущественно являться процессами с потерями. Если кодированные видеоданные декодируются в видеодекодере (не показанном на фиг. 4), то восстановленная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер 433 дублирует процессы декодирования, которые могут выполняться видеодекодером с опорными кадрами, которые могут сохраняться в памяти 434 опорных изображений. Таким образом, кодер 203 может локально сохранять копии восстановленных опорных кадров, имеющие то же содержимое, что и восстановленные опорные кадры, которые должны быть получены видеодекодером на дальнем конце (отсутствие ошибок при передаче).[65] The
[66] Предсказатель 435 может выполнять поиск с предсказанием для ядра 432 кодирования. То есть, для нового кадра, подлежащего кодированию, предсказатель 435 может осуществлять в памяти 434 опорных изображений поиск данных отсчетов (в качестве подходящих блоков опорных пикселей) или определенных метаданных, таких как векторы движения опорных изображений, формы блоков и т.д., которые могут служить в качестве подходящей ссылки предсказания для новых изображений. Предсказатель 435 может работать на основе блока отсчетов на блок пикселей для поиска подходящих ссылок предсказания. В некоторых случаях, определяемых результатами поиска, получаемыми предсказателем 435, входное изображение может характеризоваться ссылками предсказания, полученными на основе множества опорных изображений, хранимых в памяти 434 опорных изображений.[66] The predictor 435 may perform a predictive search for the
[67] Контроллер 450 может управлять операциями кодирования видеокодера 430, включая, например, установку параметров и параметров подгрупп, используемых для кодирования видеоданных.[67] Controller 450 may control the encoding operations of video encoder 430, including, for example, setting parameters and subgroup parameters used to encode video data.
[68] К выходным данным всех упомянутых выше функциональных блоков может применяться энтропийное кодирование в энтропийном кодере 445. Энтропийный кодер транслирует символы, сгенерированные различными функциональными блоками, в кодированную видеопоследовательность путем сжатия символов без потерь в соответствии с технологиями, известными специалисту в этой области техники, например, посредством кодирования по методу Хаффмена, кодирования с переменной длиной, арифметического кодирования.[68] The output of all the functional blocks mentioned above can be entropy encoded in an entropy encoder 445. The entropy encoder translates the symbols generated by the various functional blocks into an encoded video sequence by losslessly compressing the symbols in accordance with techniques known to one skilled in the art, for example, by Huffman coding, variable length coding, arithmetic coding.
[69] Передатчик 440 может буферизировать кодированную видеопоследовательность(-и), созданную энтропийным кодером 445, с целью подготовки ее для передачи по каналу 446 связи, который может представлять собой аппаратную/программную линию связи с запоминающим устройством, в котором должны храниться кодированные видеоданные. Передатчик 440 может объединять кодированные видеоданные из видеокодера 430 с другими данными, подлежащими передаче, например, с кодированными потоками звуковых и/или служебных данных (эти источники не показаны на чертеже).[69] Transmitter 440 may buffer the encoded video sequence(s) generated by entropy encoder 445 in order to prepare it for transmission over communication channel 446, which may be a hardware/software link to a storage device in which the encoded video data is to be stored. Transmitter 440 may combine the encoded video data from video encoder 430 with other data to be transmitted, such as encoded audio and/or service data streams (these sources are not shown).
[70] Контроллер 450 может управлять работой кодера 203. В процессе кодирования контроллер 450 может назначать каждому кодированному изображению определенный тип кодированного изображения, который может влиять на технологию кодирования, которая может применяться к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы: внутреннее изображение (Intra Picture, I-изображение), изображение с предсказанием (Predictive Picture, Р-изображение) или изображение с двунаправленным предсказанием (Bi-directionally Predictive Picture, В-изображение).[70] The controller 450 may control the operation of the
[71] Внутреннее изображение (I-изображение) может представлять собой изображение, которое может кодироваться и декодироваться без использования любого другого кадра в последовательности в качестве источника предсказания. Некоторые видеокодеки предусматривают различные типы внутренних изображений, включая, например, изображения обновления независимого декодера (IDR, Independent Decoder Refresh). Специалист в этой области техники осведомлен об этих вариантах I-изображений, их применениях и признаках.[71] An intra-picture (I-picture) may be an image that can be encoded and decoded without using any other frame in the sequence as a prediction source. Some video codecs provide various types of internal images, including, for example, Independent Decoder Refresh (IDR) images. One of skill in the art is aware of these I-image variants, their uses and features.
[72] Изображение с предсказанием (Р-изображение) может кодироваться и декодироваться с использованием внутреннего или взаимного предсказания с помощью не более чем одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.[72] A predictive picture (P-picture) can be encoded and decoded using intra or inter prediction with no more than one motion vector and a reference index to predict sample values of each block.
[73] Двунаправленное изображение с предсказанием (В-изображение) может кодироваться и декодироваться с использованием внутреннего или взаимного предсказания с помощью не более чем двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Подобным образом, изображения с множественным предсказанием могут использовать более двух опорных изображений и связанных метаданных для восстановления одного блока.[73] A bi-directional predictive picture (B-picture) can be encoded and decoded using intra or inter prediction with no more than two motion vectors and reference indices to predict sample values of each block. Similarly, multi-prediction pictures may use more than two reference pictures and associated metadata to reconstruct a single block.
[74] Исходные изображения в общем случае могут пространственно разделяться на множество блоков отсчетов (например, блоков отсчетов 4×4, 8×8, 4×8 или 16×16) и кодироваться в режиме "блок за блоком". Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки как определяется назначением кодирования, применимого к соответствующим изображениям блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на уже кодированные блоки того же изображения (пространственное предсказание или внутреннее предсказание). Блоки пикселей Р-изображений могут кодироваться без предсказания, с использованием пространственного предсказания или временного предсказания со ссылкой на одно предварительно кодированное опорное изображение. Блоки В-изображений могут кодироваться без предсказания, с использованием пространственного предсказания или временного предсказания со ссылкой на одно или два предварительно кодированных опорных изображений.[74] Source images can generally be spatially divided into multiple sample blocks (eg, 4×4, 8×8, 4×8, or 16×16 sample blocks) and encoded in a block-by-block fashion. The blocks may be predictively encoded with reference to other (already encoded) blocks as determined by the purpose of the encoding applicable to the corresponding block images. For example, I-picture blocks may be encoded without prediction or predictively with reference to already encoded blocks of the same picture (spatial prediction or intra prediction). P-picture pixel blocks may be encoded without prediction, using spatial prediction or temporal prediction with reference to one pre-coded reference picture. Blocks of B-pictures may be encoded without prediction, using spatial prediction or temporal prediction with reference to one or two pre-coded reference pictures.
[75] Видеокодер 430 может выполнять операции кодирования в соответствии с заранее заданной технологией или стандартом кодирования видеоданных, таким как рекомендация Н.265 ITU-T. В процессе функционирования видеокодер 430 может выполнять различные операции сжатия, включая операции кодирования с предсказанием, в которых используется временная или пространственная избыточность во входной видеопоследовательности. Кодированные видеоданные, таким образом, могут соответствовать синтаксису, указанному используемыми технологией или стандартом видеокодирования.[75] Video encoder 430 may perform encoding operations in accordance with a predetermined video coding technology or standard, such as ITU-T H.265 recommendation. In operation, video encoder 430 may perform various compression operations, including predictive coding operations that exploit temporal or spatial redundancy in the input video sequence. The encoded video data may thus conform to the syntax specified by the video coding technology or standard used.
[76] Согласно примеру осуществления, передатчик 440 может передавать дополнительные данные вместе с кодированной видеоинформацией. Видеокодер 430 может включать такие данные в кодированную видеопоследовательность. Дополнительные данные могут включать в свой состав усовершенствованные временные/пространственные/SNPv уровни, другие виды избыточных данных, такие как избыточные изображения и слайсы, сообщения дополнительной усовершенствованной информации (SEI), фрагменты набора параметров применимости визуальной информации (VUI) и т.д.[76] According to an exemplary embodiment, transmitter 440 may transmit additional data along with encoded video information. Video encoder 430 may include such data in an encoded video sequence. Additional data may include advanced temporal/spatial/SNPv layers, other types of redundant data such as redundant images and slices, enhanced supplemental information (SEI) messages, visual information applicability parameter set (VUI) fragments, and so on.
[77] Кодеры и декодеры, согласно раскрытию настоящего изобретения, могут реализовывать управление буфером декодированных изображений с учетом такого буфера декодированных изображений (DPB, Decoded Picture Buffer), например, как память 357 опорных изображений и память 434 опорных изображений.[77] Encoders and decoders according to the disclosure of the present invention may implement decoded picture buffer management in view of such a decoded picture buffer (DPB) such as reference picture memory 357 and reference picture memory 434, for example.
[78] В буфере декодированных изображений могут храниться декодированные изображения, которые должны быть доступны для ссылки с целью восстановления последующих изображений в процессе декодирования. Например, изображения, хранимые в буфере декодированных изображений, могут быть доступны для использования в качестве ссылок в процессе предсказания одного или более последующих изображений.[78] The decoded picture buffer may store decoded pictures that need to be available for reference in order to reconstruct subsequent pictures during the decoding process. For example, pictures stored in the decoded picture buffer may be available for use as references in the process of predicting one or more subsequent pictures.
[79] Кодеры и декодеры согласно раскрытию настоящего изобретения могут создавать и/или использовать один или более списков опорных изображений (например, синтаксический элемент "RefPicList[i]"), в каждом из которых перечисляются изображения, хранящиеся в буфере декодированных изображений. Например, каждый индекс в списке опорных изображений может относиться к соответствующему изображению в буфере декодированных изображений. Список опорных изображений может, например, ссылаться на список опорных изображений, которые могут использоваться для взаимного предсказания.[79] Encoders and decoders according to the disclosure of the present invention may create and/or use one or more reference picture lists (eg, the "RefPicList[i]" syntax element), each of which lists the pictures stored in the decoded picture buffer. For example, each index in the reference picture list may refer to a corresponding picture in the decoded picture buffer. The reference picture list may, for example, refer to a list of reference pictures that can be used for inter prediction.
[80] Ниже описываются некоторые аспекты управления буфером декодированных изображений в соответствии с раскрытием настоящего изобретения.[80] Some aspects of decoded picture buffer management in accordance with the disclosure of the present invention are described below.
[81] Некоторые примеры раскрытия настоящего изобретения позволяют улучшить способ управления буфером декодированных изображений с помощью, например, настройки адаптации временного подуровня. Термин "подуровень" может ссылаться на временный масштабируемый уровень временного масштабируемого битового потока, который содержит блоки VCLNAL с конкретным значением переменной TemporalId и связанные блоки, не являющиеся блоками VCLNAL.[81] Some examples of the disclosure of the present invention allow to improve the method of managing the decoded picture buffer by, for example, adjusting the adaptation of the temporal sublayer. The term "sublayer" may refer to a temporal scalable layer of a temporal scalable bitstream that contains VCLNAL units with a particular TemporalId variable value and associated non-VCLNAL units.
[82] Например, согласно примеру осуществления, блоки уровня абстракции сети (NAL), а именно: "TRAIL_NUT", "STSA_NUT", "RASL_NUT" и "RADL_NUT", переопределяются как ("TRAIL_N", "TRAIL_R"), ("STSA_N", "STSA_R"), ("RASL_N, RASL_R"), и ("RADL_N, RASL_R"), соответственно, для указания являются ли изображения в том же временном подуровне опорными изображениями. Изображения, отличные от опорных, с временным идентификатором, равным идентификатору текущего изображения, подлежащего декодированию, могут включаться в список RefPicList[i].[82] For example, according to the exemplary embodiment, Network Abstraction Layer (NAL) blocks, namely: "TRAIL_NUT", "STSA_NUT", "RASL_NUT", and "RADL_NUT", are redefined as ("TRAIL_N", "TRAIL_R"), (" STSA_N", "STSA_R"), ("RASL_N, RASL_R"), and ("RADL_N, RASL_R"), respectively, to indicate whether the pictures in the same temporal sublayer are reference pictures. Pictures other than reference pictures with a temp ID equal to the ID of the current picture to be decoded may be included in RefPicList[i].
[83] Согласно примеру осуществления, sps_max_dec_pic_buffering_minus1 сообщается для каждого наибольшего временного идентификатора в наборе параметров последовательности (SPS, Sequence Parameter Set).[83] According to an exemplary implementation, sps_max_dec_pic_buffering_minus1 is reported for each largest temporal identifier in the sequence parameter set (SPS, Sequence Parameter Set).
[84] Согласно примеру осуществления, список неиспользуемых опорных изображений для каждого наибольшего временного идентификатора сообщается в заголовке группы тайлов.[84] According to an exemplary embodiment, a list of unused reference pictures for each highest temporal identifier is reported in the tile group header.
[85] Согласно примеру осуществления, все опорные изображения с временным идентификатором (например, синтаксический элемент "TemporalId"), большим указанного наибольшего временного идентификатора (например, синтаксический элемент "HighestTid"), помечаются как "неиспользуемые для ссылки", если значение указанного наибольшего временного идентификатора не равно "sps_max_sub_layers_minus1".[85] According to an exemplary embodiment, all reference pictures with a temporal identifier (e.g., the "TemporalId" syntax element) greater than the specified highest temporal identifier (e.g., the "HighestTid" syntax element) are marked as "unused for reference" if the value of the specified highest temporary id is not equal to "sps_max_sub_layers_minus1".
[86] В соответствии с некоторыми примерами раскрытия настоящего изобретения блоки NAL, не используемые для предсказания и восстановления других блоков NAL, следующих за ними в том же временном подуровне, могут, возможно, отбрасываться из буфера декодированных изображений, в зависимости от целевого битового потока или доступного битового потока сети.[86] In accordance with some examples of the disclosure of the present invention, NAL units not used to predict and recover other NAL units following them in the same temporal sublayer may optionally be discarded from the decoded picture buffer, depending on the target bitstream or available network bitstream.
[87] Например, на фиг. 5 показан алгоритм, иллюстрирующий, каким образом кодеры и декодеры, согласно раскрытию настоящего изобретения, могут обрабатывать соответствующие блоки NAL путем анализа и интерпретации типов блоков NAL. Как показано на фиг. 5, декодер (или кодер) может выполнять процесс 500. Процесс 500 может включать анализ заголовка блока NAL (501) и идентификацию типа блока NAL, представленного в текущий момент (502). Далее декодер (или кодер) может определить, используется ли блок NAL, представленный в текущий момент, для предсказания и восстановления последующих блоков NAL в том же временном подуровне (503). На основе определения декодер (или кодер) может восстановить/переслать последующий блок NAL с использованием блока NAL, представленного в текущий момент (504), или, в альтернативном варианте, отбросить блок NAL, представленный в текущий момент, из буфера декодированных изображений (505) без использования блока NAL для предсказания и восстановления последующего блока NAL. Например, если определяется, что блок NAL, представленный в текущий момент, используется для предсказания и восстановления последующих блоков NAL в том же временном подуровне, декодер (или кодер) может восстановить/переслать последующий блок NAL с использованием блока NAL, представленного в текущий момент (504) и сохраненного в буфере декодированных изображений. Если блок NAL, представленный в текущий момент, не используется для предсказания и восстановления последующего блока NAL, декодер (или кодер) может отбросить блок NAL, представленный в текущий момент, из буфера декодированных изображений (505) без использования блока NAL для предсказания и восстановления последующего блока NAL. Предсказание и восстановление последующего блока NAL может относиться к декодированию, использующему буфер декодированных изображений, текущего изображения посредством предсказания и восстановления текущего изображения.[87] For example, in FIG. 5 is a flowchart illustrating how encoders and decoders according to the disclosure of the present invention can process respective NAL units by parsing and interpreting NAL unit types. As shown in FIG. 5, a decoder (or encoder) may perform
[88] Примеры раскрытия настоящего изобретения могут использоваться отдельно или в сочетании друг с другом в любом порядке. Кроме того, каждый из способов, кодеров и декодеров, соответствующих раскрытию настоящего изобретения, могут быть реализованы схемой обработки (например, одним или более процессорами или одной или более интегральными схемами). В одном из примеров один или более процессоров исполняют программу, записанную на машиночитаемом носителе, для выполнения функций способов, кодеров и декодеров, описанных в рамках раскрытия настоящего изобретения.[88] Examples of the disclosure of the present invention can be used alone or in combination with each other in any order. In addition, each of the methods, encoders and decoders according to the disclosure 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 recorded on a computer-readable medium to perform the functions of the methods, encoders, and decoders described within the scope of the disclosure of the present invention.
[89] Как описано выше, типы блоков NAL, а именно: "TRAIL_NUT", "STSA_NUT", "RASL_NUT" и "RADL_NUT", разделяются и определяются как ("TRAIL_N", "TRAIL_R"), ("STSA_N", "STSA_R"), ("RASL_N, RASL_R"), и ("RADL_N, RASL_R") для указания не опорных изображений в том же подуровне. Соответственно, кодеры и декодеры, согласно раскрытию настоящего изобретения, могут использовать, например, блоки NAL, описанные ниже в таблице 1.[89] As described above, NAL unit types, namely "TRAIL_NUT", "STSA_NUT", "RASL_NUT", and "RADL_NUT", are separated and defined as ("TRAIL_N", "TRAIL_R"), ("STSA_N", " STSA_R"), ("RASL_N, RASL_R"), and ("RADL_N, RASL_R") to indicate non-reference pictures in the same sublayer. Accordingly, encoders and decoders according to the disclosure of the present invention may use, for example, the NAL units described in Table 1 below.
[90] Тип изображения подуровня может быть одним из представленных выше типов блока NAL. Если тип блока NAL изображения (например, синтаксический элемент "nal_unit_type") равен "TRAIL_N", "TSA_N", "STSA_N", "RADL_N" или "RASL_N", то изображение не является опорным в подуровне (SLNR). В противном случае, изображение является опорным в подуровне. Изображение SLNR может представлять собой изображение, содержащее отсчеты, которые не могут использоваться для взаимного предсказания в процессе декодирования последующих изображений того же подуровня в порядке декодирования. Опорное изображение подуровня может представлять собой изображение, содержащее отсчеты, которые могут использоваться для взаимного предсказания в процессе декодирования последующих изображений того же подуровня в порядке декодирования. Опорное изображение подуровня может также использоваться для взаимного предсказания в процессе декодирования последующих изображений более высокого подуровня в порядке декодирования.[90] The sublayer picture type may be one of the above NAL unit types. If the picture NAL unit type (eg, "nal_unit_type" syntax element) is "TRAIL_N", "TSA_N", "STSA_N", "RADL_N", or "RASL_N", then the picture is not a sublayer reference (SLNR). Otherwise, the image is the reference in the sublevel. An SLNR picture may be a picture containing samples that cannot be used for inter prediction in the process of decoding subsequent pictures of the same sublayer in the decoding order. A sublayer reference image may be an image containing samples that can be used for inter prediction in the decoding process of subsequent images of the same sublayer in decoding order. The sublayer reference picture may also be used for inter prediction in the process of decoding subsequent higher sublayer pictures in the decoding order.
[91] Путем предоставления блоков NAL (таких, например, как блоки VCLNAL), указывающих не опорные изображения, лишние блоки NAL могут отбрасываться для адаптации битовой скорости. Изображения, отличные от опорных, с временным идентификатором (указывающим временный подуровень, которому принадлежит изображение), равным идентификатору текущего изображения, могут включаться в список RefPicList[i]. В этом отношении, согласно примеру осуществления, не опорные изображения могут помечаться как "неиспользуемое опорное изображение" и могут сразу удаляться из буфера декодированных изображений.[91] By providing NAL units (such as, for example, VCLNAL units) indicating non-reference pictures, extra NAL units can be discarded for bit rate adaptation. Non-reference pictures with a temporal identifier (indicating the temporal sublayer to which the picture belongs) equal to the current picture's identifier may be included in RefPicList[i]. In this regard, according to an exemplary embodiment, non-reference pictures may be marked as an "unused reference picture" and may be immediately removed from the decoded picture buffer.
[92] Например, согласно примеру осуществления, декодер (или кодер) может определять, является ли изображение изображением SLNR, на основе блока NAL, связанного с изображением, и если изображение является изображением SLNR, отмечать изображение как "неиспользуемое опорное изображение". Изображение, которое может сохраняться в буфере декодированных изображений, может отмечаться путем ввода идентификатора в элемент, соответствующий изображению в списке опорных изображений, и идентификатор, например, может быть следующим: "не опорное изображение" или "неиспользуемое опорное изображение". Декодер (или кодер) может выполнять такие операции на шаге 503 процесса 500, как показано на фиг. 5. Далее декодер (или кодер) может удалять изображение из буфера декодированных изображений на основе значения отметки изображения. Декодер (или кодер) может выполнять такую операцию в качестве части шага 505 процесса 500, как показано на фиг. 5.[92] For example, according to an exemplary embodiment, a decoder (or encoder) may determine if an image is an SLNR image based on the NAL unit associated with the image, and if the image is an SLNR image, mark the image as an "unused reference image". A picture that can be stored in the decoded picture buffer may be marked by entering an identifier into an element corresponding to the picture in the reference picture list, and the identifier may be "not a reference picture" or "an unused reference picture", for example. The decoder (or encoder) may perform such operations at
[93] Согласно примеру осуществления, списки опорных изображений "RefPicList[0]" и "RefPicList[1]" могут формироваться следующим образом:[93] According to an embodiment, reference picture lists "RefPicList[0]" and "RefPicList[1]" may be formed as follows:
[94] Согласно примеру осуществления, для согласования битового потока могут применяться ограничения. Например, в кодере или декодере может применяться ограничение, заключающееся в том, что в RefPicList[0] или RefPicList[1] отсутствует активный элемент, для которого истинно одно или более следующих утверждений: (1) значение элемента равно "не опорное изображение"; (2) изображение является изображением SLNR и его идентификатор "TemporalId" равен идентификатору текущего изображения.[94] According to an exemplary embodiment, restrictions may be applied to match the bitstream. For example, an encoder or decoder may apply the constraint that there is no active element in RefPicList[0] or RefPicList[1] for which one or more of the following is true: (1) the element's value is "not a reference picture"; (2) the image is an SLNR image and its "TemporalId" is equal to the current image's ID.
[95] Как описывалось выше, согласно примеру осуществления, синтаксический элемент "sps_max_dec_pic_buffering_minus1" может сигнализироваться для каждого наибольшего временного идентификатора (например, синтаксический элемент "HighestTid") в SPS.[95] As described above, according to the exemplary embodiment, the "sps_max_dec_pic_buffering_minus1" syntax element may be signaled for each highest temporal identifier (eg, the "HighestTid" syntax element) in the SPS.
[96] Значение переменной "HighestTid" может определяться внешними средствами, если они доступны. В противном случае, значение "HighestTid" может устанавливаться равным значению синтаксического элемента "sps_max_sub_layers_minus1". Затем декодер может оценить максимальный требуемый размер буфера декодированных изображений для заданного значения "HighestTid".[96] The value of the variable "HighestTid" may be determined by external means, if available. Otherwise, the "HighestTid" value may be set to the value of the "sps_max_sub_layers_minus1" syntax element. The decoder may then estimate the maximum required decoded picture buffer size for a given value of "HighestTid".
[97] Согласно примеру осуществления, SPS может включать типовой синтаксис, показанный в качестве примера в таблице 2.[97] According to an exemplary embodiment, the SPS may include the exemplary syntax shown in Table 2 as an example.
[98] Значение "sps_max_dec_pic_buffering_minus1[i]" плюс 1 указывает максимальный требуемый размер буфера декодированных изображений для кодированной видеопоследовательности (CVS, Coded Video Sequence) в блоках буферов хранения изображений, если значение "HighestTid" равно i. Значение "sps_max_dec_pic_buffering_ minus1[i]" может находиться в диапазоне от 0 до "MaxDpbSize" - 1 включительно, где "MaxDpbSize" указывается в другом месте.[98] The value "sps_max_dec_pic_buffering_minus1[i]" plus 1 indicates the maximum required decoded picture buffer size for the coded video sequence (CVS, Coded Video Sequence) in picture storage buffer blocks if the value "HighestTid" is equal to i. The value of "sps_max_dec_pic_buffering_ minus1[i]" can range from 0 to "MaxDpbSize" - 1 inclusive, where "MaxDpbSize" is specified elsewhere.
[99] Как описывается выше, в примере список неиспользуемых опорных изображений для каждого наибольшего временного идентификатора сообщается в заголовке группы тайлов.[99] As described above, in the example, a list of unused reference pictures for each highest temporal identifier is reported in the tile group header.
[100] В зависимости от значения "HighestTid" некоторые опорные изображения каждого временного подуровня могут не использоваться в качестве ссылки для последующих изображений. Согласно примеру осуществления, неиспользуемые опорные изображения, соответствующие каждому значению "HighestTid" в заголовке группы тайлов, могут сообщаться явным образом. Путем явной сигнализации неиспользуемых опорных изображений, соответствующих каждому значению "HighestTid" в заголовке группы тайлов, неиспользуемые декодированные опорные изображения могут сразу удаляться из DPB.[100] Depending on the value of "HighestTid", some reference pictures of each temporal sublayer may not be used as a reference for subsequent pictures. According to an exemplary embodiment, unused reference pictures corresponding to each "HighestTid" value in a tile group header may be explicitly reported. By explicitly signaling unused reference pictures corresponding to each "HighestTid" value in the tile group header, unused decoded reference pictures can be immediately removed from the DPB.
[101] Согласно примеру осуществления, SPS может включать типовой синтаксис, показанный в качестве примера в таблице 3.[101] According to an exemplary embodiment, the SPS may include the exemplary syntax shown in Table 3 as an example.
[102] Значение "unused_ref_pic_signaling_enabled_flag", равное 0, указывает на то, что "num_unused_ref_pic" и "delta_poc_unused_ref_pic[i]" отсутствуют в заголовке группы тайлов, и неявно определяется интервал времени удаления декодированного изображения из DPB. Значение "unused_ref_pic_signaling_enabled_flag", равное 1, указывает на то, что "num_unused_ref_pic" и "delta_poc_unused_ref_pic[i]" находятся в заголовке группы тайлов, и посредством анализа "delta_poc_unused_ref_pic[i]" явно определяется интервал времени удаления декодированного изображения из DPB.[102] The value of "unused_ref_pic_signaling_enabled_flag" equal to 0 indicates that "num_unused_ref_pic" and "delta_poc_unused_ref_pic[i]" are not present in the tile group header, and the decoded image removal time interval from the DPB is implicitly determined. The value of "unused_ref_pic_signaling_enabled_flag" equal to 1 indicates that "num_unused_ref_pic" and "delta_poc_unused_ref_pic[i]" are in the tile group header, and by parsing "delta_poc_unused_ref_pic[i]", the decoded picture removal time interval from the DPB is explicitly determined.
[103] Согласно примеру осуществления, заголовок группы тайлов может включать типовой синтаксис, показанный в качестве примера в таблице 4.[103] According to an exemplary embodiment, a tile group header may include the exemplary syntax shown in Table 4 as an example.
[104] Значение "num_unused_ref_pic" указывает количество элементов для неиспользуемых опорных изображений. Если они отсутствуют, значение этого поля может устанавливаться равным 0.[104] The value "num_unused_ref_pic" indicates the number of elements for unused reference pictures. If they are absent, the value of this field can be set to 0.
[105] Значение "delta_poc_unused_ref_pic[i]" указывает абсолютную разность между порядковыми значениями счетчика текущего изображения и неиспользуемого декодированного опорного изображения, на которое ссылается i-й элемент. Значение "delta_poc_unused_ref_pic[i]" может находиться в диапазоне от 0 до 215-1 включительно.[105] The value "delta_poc_unused_ref_pic[i]" indicates the absolute difference between the ordinal values of the counter of the current picture and the unused decoded reference picture referred to by the i-th element. The value of "delta_poc_unused_ref_pic[i]" may range from 0 to 2 15 -1 inclusive.
[106] Если "unused_ref_pic_signaling_enabled_flag" равно 1, применимо следующее:[106] If "unused_ref_pic_signaling_enabled_flag" is 1, the following applies:
[107] Согласно примеру осуществления, декодер (или кодер) может определять, должно ли изображение отмечаться как "неиспользуемое опорное изображение", на основе представленного выше определения. Декодер (или кодер) могут выполнять такие операции на шаге 503 процесса 500, показанного на фиг. 5. Далее декодер (или кодер) может удалять изображение из буфера декодированных изображений на основе отмеченного изображения. Декодер (или кодер) может выполнять такую операцию в качестве части шага 505 процесса 500, показанного на фиг. 5.[107] According to an exemplary embodiment, a decoder (or encoder) may determine whether a picture should be marked as an "unused reference picture" based on the definition above. The decoder (or encoder) may perform such operations at
[108] В соответствии с аспектом примера осуществления все опорные изображения с "Temporal Id", большим HighestTid, могут отмечаться как "неиспользуемые для ссылки", если значение "HighestTid" не равно "sps_max_sub_layers_minus1".[108] According to an aspect of the exemplary embodiment, all reference pictures with a "Temporal Id" greater than HighestTid may be marked as "unused for reference" if the value of "HighestTid" is not equal to "sps_max_sub_layers_minus1".
[109] Значение "HighestTid" может сразу заменяться внешними средствами. Процесс извлечения битового подпотока может применяться с использованием значения "HighestTid" в качестве входного.[109] The "HighestTid" value can be directly replaced by external means. The bit substream extraction process may be applied using the "HighestTid" value as input.
[110] Например, процесс может вызываться один раз для изображения после декодирования заголовка группы тайлов и процесса декодирования для создания списка опорных изображений для группы тайлов, но перед декодированием данных группы тайлов. В результате выполнения процесса одно или более опорных изображений отмечаются в DPB как "неиспользуемое для ссылки" или "используемое для долгосрочной ссылки".[110] For example, the process may be called once per image after decoding the tilegroup header and the decoding process to generate the reference picture list for the tilegroup, but before decoding the tilegroup data. As a result of the process, one or more reference pictures are marked in the DPB as "unused for reference" or "used for long-term reference".
[111] Согласно примеру осуществления, декодированное изображение в DPB может отмечаться как "неиспользуемое для ссылки", "используемое для краткосрочной ссылки" или "используемое для долгосрочной ссылки", но в заданный момент времени в процессе декодирования может использоваться только одна отметка из трех указанных. Назначение одной из этих отметок изображению может неявно привести к удалению другой из этих отметок, если это применимо. Если изображение, на которое осуществляется ссылка, отмечается как "используемое для ссылки", это совокупно рассматривается как ссылки на изображение, отмеченное как "используемое для краткосрочной ссылки" или "используемое для долгосрочной ссылки" (но не обе отметки).[111] According to an exemplary embodiment, a decoded image in the DPB may be marked as "unused for reference", "used for short-term reference", or "used for long-term reference", but at a given point in time, only one of the three indicated marks can be used in the decoding process. . Assigning one of these labels to an image may implicitly remove the other of these labels, if applicable. If a referenced image is marked as "linked", it is collectively considered to be links to an image marked as "short-term linked" or "long-term linked" (but not both).
[112] Декодированное изображение в DPB может идентифицироваться (например, индексироваться) отдельно или сохраняться в DPB в соответствии со своей отметкой. Например, краткосрочные опорные изображения (STRP, Short Term Reference Picture) могут идентифицироваться своими значениями "PicOrderCntVal". Долгосрочные опорные изображения (LTRP, Long Term Reference Picture) могут идентифицироваться блоками LSB Log2(MaxLtPicOrderCntLsb) их значений "PicOrderCntVal".[112] The decoded image in the DPB may be identified (eg, indexed) separately or stored in the DPB according to its mark. For example, Short Term Reference Picture (STRP) may be identified by their "PicOrderCntVal" values. Long Term Reference Picture (LTRP) can be identified by LSB Log2(MaxLtPicOrderCntLsb) blocks of their "PicOrderCntVal" values.
[113] Если текущее изображение является изображением IRAP с флагом "NoRaslOutputFlag", равным 1, все опорные изображения, в настоящий момент находящиеся в DPB (если такие имеются), отмечаются как "неиспользуемые для ссылки". Значение "NoRaslOutputFlag", равное 1, может указывать на то, что декодер не выводит изображения RASL.[113] If the current picture is an IRAP picture with "NoRaslOutputFlag" set to 1, all reference pictures currently in the DPB (if any) are marked as "unused for reference". A "NoRaslOutputFlag" value of 1 may indicate that the decoder does not output RASL images.
[114] Все опорные изображения с "TemporalId", большим HighestTid, отмечаются как "неиспользуемые для ссылки", если значение "HighestTid" не равно "sps_max_sub_layers_minus1".[114] All reference pictures with "TemporalId" greater than HighestTid are marked as "unused for reference" if the value of "HighestTid" is not equal to "sps_max_sub_layers_minus1".
[115] В примере, показанном на фиг. 6, декодеры и кодеры в соответствии с раскрытием настоящего изобретения могут выполнять процесс 600. Процесс 600 может выполняться на основе определения, что значение "HighestTid" не равно "sps_max_sub_layers_minus1". Как показано на фиг. 6, декодер (или кодер) может определять значение временного идентификатора опорного изображения (601). Например, первое опорное изображение перечисляется в DPB или в списке опорных изображений. Далее декодер (или кодер) может сравнивать значение временного идентификатор опорного изображения с заранее заданным значением (например, со значением "HighestTid") (602). Если значение временного идентификатора больше заранее заданного значения, декодер (или кодер) может отметить опорное изображение как "неиспользуемое для ссылки" (603). Согласно примеру осуществления, декодер (или кодер) может ставить метку в DPB или в списке опорных изображений.[115] In the example shown in FIG. 6, decoders and encoders in accordance with the disclosure of the present invention may perform
[116] Независимо от того, превосходит ли значение временного идентификатора заранее заданное значение, декодер (или кодер) может затем определить, существует ли другое опорное изображение в DPB (или в списке опорных изображений), собственное значение временного идентификатора которого не сравнивалось с заранее заданным значением идентификатора на шаге 602 (604). Если декодер (или кодер) определяет, что существует другое опорное изображение в DPB (или в списке опорных изображений), собственное значение временного идентификатора которого не сравнивалось с заранее заданным значением идентификатора на шаге 602, декодер (или кодер) может повторить шаги 601-604 для всех опорных изображений в DPB (или в списке опорных изображений). После того как декодер (или кодер) определяет, что все опорные изображения в DPB (или в списке опорных изображений) имеют собственные соответствующие значения временного идентификатора, которые сравнивались с заранее заданным значением идентификатора на шаге 602, декодер (или кодер) может удалить опорные изображения, отмеченные как "неиспользуемые для ссылки" из DPB (605). Декодер (или кодер) может декодировать текущее изображение с использованием DPB с любым количеством изображений, удаленных из DPB (606).[116] Regardless of whether the temporal ID value is greater than a predetermined value, the decoder (or encoder) may then determine if another reference picture exists in the DPB (or in the reference picture list) whose own temporal ID value has not been compared to the predefined value. the identifier value in step 602 (604). If the decoder (or encoder) determines that there is another reference picture in the DPB (or reference picture list) whose own temporal ID value has not been compared to the predefined ID value in
[117] Согласно примерам осуществления, декодер (или кодер) может также выполнять другие функции для декодирования текущего изображения с использованием DPB. Например, декодеры (и кодеры) могут альтернативно или дополнительно применять следующие функции: (1) для каждого элемента LTRP в RefPicList[0] или RefPicList[1], если опорное изображение является изображением STRP, декодер (или кодер) может отметить изображение как "используемое для долгосрочной ссылки"; (2) декодер (или кодер) может отметить каждое опорное изображение в DPB, на которое не осуществляется ссылка любым из элементов в RefPicList[0] или RefPicList[1], как "неиспользуемое для ссылки".[117] According to the embodiments, the decoder (or encoder) may also perform other functions to decode the current picture using the DPB. For example, decoders (and encoders) may alternatively or additionally apply the following functions: (1) for each LTRP entry in RefPicList[0] or RefPicList[1], if the reference picture is an STRP picture, the decoder (or encoder) may mark the picture as " used for long-term reference"; (2) a decoder (or encoder) may mark each reference picture in the DPB that is not referenced by any of the elements in RefPicList[0] or RefPicList[1] as "unused for reference".
[118] Согласно примеру осуществления, декодер (или кодер) может удалить все опорные изображения в DPB, которые отмечены как "неиспользуемые для ссылки", перед декодированием текущего изображения с использованием DPB или сохранить такие опорные изображения в DPB и проигнорировать опорные изображения при использовании DPB для декодирования текущего изображения.[118] According to an exemplary embodiment, a decoder (or encoder) may remove all reference pictures in the DPB that are marked "not used for reference" before decoding the current picture using the DPB, or store such reference pictures in the DPB and ignore the reference pictures when using the DPB. to decode the current image.
[119] Согласно примерам осуществления, устройство 800 может содержать компьютерный программный код, хранящийся в памяти, при исполнении которого по меньшей мере один процессор выполняет функции декодеров и кодеров, описанные выше.[119] According to embodiments, device 800 may include computer program code stored in memory, upon execution of which at least one processor performs the decoder and encoder functions described above.
[120] Например, на фиг. 7 компьютерный программный код устройства 800 может содержать код 810 сохранения, код 820 определения, код 830 удаления и код 840 декодирования.[120] For example, in FIG. 7, the computer program code of device 800 may include a
[121] Код 810 сохранения может быть сконфигурирован для выполнения по меньшей мере одним процессором сохранения предварительно декодированных изображений видеопотока в буфере декодированных изображений, включая множество первых изображений одного временного подуровня, при этом множество первых изображений включает по меньшей мере одно опорное изображение подуровня для предсказания текущего изображения видеопотока.[121] The
[122] Код 820 определения может быть сконфигурирован для выполнения по меньшей мере одним процессором выполнения определений с использованием одной или более технологий, описанных выше. Например, код 820 определения может быть сконфигурирован для выполнения по меньшей мере одним процессором определения, является ли изображение, входящее в состав множества первых изображений, не опорным изображением подуровня (SLNR). В альтернативном варианте или дополнительно код 820 определения может быть сконфигурирован для выполнения по меньшей мере одним процессором идентификации типа блока изображения уровня абстракции сети (NAL) и определения, является ли изображение изображением SLNR, на основе идентифицированного типа блока NAL. В альтернативном варианте или дополнительно, код 820 определения может быть сконфигурирован для выполнения по меньшей мере одним процессором определения, является ли значение временного подуровня изображения больше заранее заданного значения (например, значения "HighestTid"). В альтернативном варианте или дополнительно код 820 определения может быть сконфигурирован для выполнения по меньшей мере одним процессором сравнения заранее заданного значения (например, значения "HighestTid") со значением, соответствующим наибольшему номеру идентификации временного подуровня. В альтернативном варианте или дополнительно код 820 определения может быть сконфигурирован для выполнения по меньшей мере одним процессором определения, является ли значение временного подуровня изображения(-й) больше заранее заданного значения (например, значения "HighestTid"), если заранее заданное значение определяется не равным значению, соответствующему наибольшему номеру идентификации временного подуровня. В альтернативном варианте или дополнительно код 820 определения может быть сконфигурирован для выполнения по меньшей мере одним процессором определения, является ли значение текущего изображения изображением внутренней точки произвольного доступа (IRAP), и определения, указывает ли флаг на то, что отсутствует вывод пропущенного опережающего изображения произвольного доступа (RASL).[122] The
[123] Код 830 определения может быть сконфигурирован для выполнения по меньшей мере одним процессором удаления одного или более изображений из буфера декодированных изображений в соответствии с одной или более технологий, описанных выше. Например, код 830 удаления может быть сконфигурирован для выполнения по меньшей мере одним процессором удаления изображения SLNR из буфера декодированных изображений на основе определения изображения в качестве изображения SLNR. В альтернативном варианте или дополнительно код 830 удаления может быть сконфигурирован для выполнения по меньшей мере одним процессором удаления изображения(-ий) из буфера декодированных изображений на основе определения, что значение временного подуровня изображения(-ий) больше заранее заданного значения (например, значения "HighestTid"). Согласно примерам осуществления, код 830 удаления может конфигурироваться для выполнения по меньшей мере одним процессором удаления изображений из буфера декодированных изображений на основе идентификаторов (например, отмеченных как "неиспользуемые для ссылки" или "не опорные").[123] The
[124] Код 840 декодирования может быть сконфигурирован для выполнения по меньшей мере одним процессором декодирования текущего изображения с использованием буфера декодированных изображений в соответствии с одной или более технологий, описанных выше. Например, согласно примеру осуществления, код 840 декодирования содержит код предсказания, сконфигурированный для выполнения по меньшей мере одним процессором предсказания текущего изображения с использованием одного или более изображений из по меньшей мере одного опорного изображения подуровня, хранящегося в буфере декодированных изображений, после удаления изображений из буфера декодированных изображений (например, изображений SLNR или изображений, отмеченных таким идентификатором, как "неиспользуемые для ссылки" или "не опорные изображения").[124] The decoding code 840 may be configured to perform at least one processor decoding the current picture using the decoded picture buffer in accordance with one or more of the techniques described above. For example, according to an exemplary embodiment, decoding code 840 comprises a prediction code configured to be performed by at least one current picture prediction processor using one or more pictures from at least one sublayer reference picture stored in a decoded picture buffer after the pictures are removed from the buffer. decoded pictures (eg, SLNR pictures or pictures marked with an identifier such as "not used for reference" or "not reference pictures").
[125] Согласно примерам осуществления, компьютерный программный код может также содержать код 850 предоставления идентификатора и код 860 формирования.[125] According to exemplary embodiments, the computer program code may also include an identifier grant code 850 and a generation code 860.
[126] Код 850 предоставления идентификатора может быть сконфигурирован для выполнения по меньшей мере одним процессором предоставления идентификаторов с использованием одной или более технологий, описанных выше. Идентификаторы могут указывать, например, что заданное изображение является "неиспользуемым для ссылки", "используемым для кратковременной ссылки" или "используемым для долговременной ссылки". Например, код 850 предоставления идентификатора может конфигурироваться для выполнения по меньшей мере одним процессором предоставления идентификатора (например, такой отметки как "неиспользуемое для ссылки" или "не опорное изображение") для изображения, определенного как изображение SLNR, на основе изображения, определяемого как изображение SLNR. В альтернативном варианте или дополнительно, код 850 предоставления идентификатора может быть сконфигурирован для выполнения по меньшей мере одним процессором предоставления идентификатора элемента списка опорных изображений, соответствующего изображению, определенному как изображение SLNR. В альтернативном варианте или дополнительно, код 850 предоставления идентификатора может быть сконфигурирован для выполнения по меньшей мере одним процессором предоставления идентификатора изображения(-ий) на основе определения, что значение временного подуровня изображения(-ий) больше заранее заданного значения (например, значения "HighestTid"). В альтернативном варианте или дополнительно, код 850 предоставления идентификатора может быть сконфигурирован для выполнения по меньшей мере одним процессором установки идентификатора каждого опорного изображения, в настоящий момент хранящегося в DPB, указывающего, что каждое опорное изображение, хранимое в настоящий момент, должно удаляться из DPB в том случае, если текущее изображение определяется как изображение IRAP, и флаг указывает на то, что нет вывода изображения RASL.[126] Identifier grant code 850 may be configured to be performed by at least one identifier grant processor using one or more of the technologies described above. The identifiers may indicate, for example, that the given image is "unused for link", "used for short term link" or "used for long term link". For example, the identifier grant code 850 may be configured to perform an identifier grant (e.g., a mark such as "not used for reference" or "not a reference picture") for an image determined to be an SLNR image based on an image determined to be an SLNR image to be performed by at least one processor. SLNR. Alternatively or additionally, the ID grant code 850 may be configured to perform at least one processor providing a reference picture list item ID corresponding to the picture determined to be the SLNR picture. Alternatively, or additionally, the identifier grant code 850 may be configured to be performed by at least one processor to provide the identifier of the image(s) based on a determination that the value of the temporal sublayer of the image(s) is greater than a predetermined value (e.g., the value "HighestTid "). Alternatively or additionally, the ID grant code 850 may be configured to cause at least one processor to set an ID of each reference picture currently stored in the DPB indicating that each reference picture currently stored should be removed from the DPB at if the current image is defined as an IRAP image and the flag indicates that no RASL image is being output.
[127] Код 860 формирования может быть сконфигурирован для выполнения по меньшей мере одним процессором формирования одного или более списков опорных изображений в соответствии с одной или более технологий, описанных выше. Например, код 860 формирования может быть сконфигурирован для выполнения по меньшей мере одним процессором формирования списка опорных изображений, содержащего элемент для одного или более изображений в DPB.[127] Generating code 860 may be configured to perform at least one processor generating one or more reference picture lists in accordance with one or more of the techniques described above. For example, generating code 860 may be configured to be performed by at least one processor generating a reference picture list containing an entry for one or more pictures in the DPB.
[128] Технологии, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых инструкций, которые физически хранятся на одном или более машиночитаемых носителях. Например, на фиг. 8 показана компьютерная система 900, подходящая для реализации определенных примеров раскрытия настоящего изобретения.[128] The techniques described above may be implemented in computer software using computer-readable instructions that are physically stored on one or more computer-readable media. For example, in FIG. 8 shows a
[129] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или языка программирования, который может ассемблироваться, компилироваться, компоноваться или с помощью подобных механизмов формировать код, содержащий команды, которые могут выполняться непосредственно или интерпретироваться, выполняться в виде микрокоманд и т.п. центральными процессорами компьютера (CPU, Central Processing Unit), графическими процессорами (GPU, Graphics Processing Unit) и т.п.[129] Computer software may be coded using any suitable machine code or programming language that can be assembled, compiled, linked, or similar mechanisms to form code containing instructions that can be directly executed or interpreted, executed as microinstructions, etc. .P. computer central processing units (CPU, Central Processing Unit), graphic processors (GPU, Graphics Processing Unit), etc.
[130] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшеты, серверы, смартфоны, игровые устройства, устройства "Интернета вещей" и т.п.[130] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablets, servers, smartphones, gaming devices, IoT devices, and the like.
[131] Компоненты, показанные на фиг. 8 для компьютерной системы 900, являются примерами, и не предполагается, что они каким-либо образом ограничивают объем использования или функциональность компьютерного программного обеспечения, реализующего примеры раскрытия настоящего изобретения. Кроме того, конфигурация компонентов не должна рассматриваться в плане какой-либо зависимости или требований, связанных с любым компонентом или с комбинацией компонентов, показанных в рамках неограниченного примера компьютерной системы 900.[131] The components shown in FIG. 8 for
[132] Компьютерная система 900 может включать устройства ввода пользовательского интерфейса. Такое устройство ввода пользовательского интерфейса может отвечать за ввод одним или более пользователями с помощью, например, тактильных средств ввода (таких как нажатие клавиш, сдвиг экрана, движения информационной перчаткой), звукового ввода (например, голосом, хлопками), визуального ввода (например, жестикуляцией), обонятельного ввода (не изображено на чертеже). Устройства пользовательского интерфейса также могут применяться для захвата определенной медийной информации, не обязательно непосредственно связанной с сознательным вводом пользователя, такой как звуковой сигнал (например, речь, музыка, звуковое сопровождение), изображения (например, отсканированные изображения, фотографии, полученные с помощью камеры получения неподвижных изображений), видеоинформация (такая как двумерное видео, трехмерное видео, включая стереоскопическое видео).[132]
[133] Устройства пользовательского интерфейса могут включать в свой состав (на чертеже показано только одно устройство каждого типа) клавиатуру 901, мышь 902, сенсорную панель 903, сенсорный экран 910, информационную перчатку, джойстик 905, микрофон 906, сканер 907, камеру 908.[133] The user interface devices may include (only one device of each type is shown in the drawing) a
[134] Компьютерная система 900 может также включать в свой состав устройства вывода пользовательского интерфейса. Такие устройства вывода пользовательского интерфейса могут стимулировать восприятие одного или более пользователей с помощью, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода пользовательского интерфейса могут включать в свой состав устройства тактильного вывода (например, тактильную обратную связь через сенсорный экран 910, информационную перчатку или джойстик 905, но также могут существовать устройства тактильной обратной связи, которые не являются устройствами ввода). Например, такими устройствами могут быть устройства звукового вывода (такие как громкоговорители 909, наушники (не показаны на чертеже)), устройства визуального вывода (такие как экраны 910, включая экраны CRT, жидкокристаллические экраны, плазменные экраны, OLED-экраны, каждый из которых может быть оснащен средствами сенсорного ввода, средствами тактильной обратной связи, некоторые из которых могут выводить двумерные изображения или изображения с размерностью, большей, чем три измерения, через такие средства, как стереографический вывод; очки виртуальной реальности (не показаны на чертеже), голографические дисплеи и дымовые баки (не показаны на чертеже)) и принтеры (не показаны на чертеже).[134]
[135] Компьютерная система 900 также может содержать доступные пользователю запоминающие устройства и связанные с ними носители, такие как оптические носители, включая CD/DVD ROM/RW 920 с CD/DVD или похожие носители 921, флеш-накопитель 922, съемный или несъемный жесткий диск 923, традиционные магнитные носители, такие как дискета (не показана на чертеже), специализированные устройства, основанные на ROM/ASIC/PLD, такие как аппаратные ключи (не показаны на чертеже) и т.п.[135]
[136] Специалистам в этой области техники должно быть понятно, что термин "машиночитаемый носитель", используемый в связи с предметом раскрытия настоящего изобретения, не охватывает средства передачи, сигналы несущей или другие кратковременные сигналы.[136] Those skilled in the art will appreciate that the term "computer-readable medium" as used in connection with the subject matter of the present invention does not encompass transmission media, carrier signals, or other transient signals.
[137] Компьютерная система 900 также может содержать интерфейс с одной или более сетями связи. Сети, например, могут быть беспроводными, проводными, оптическими. Сети также могут быть локальными, глобальными, городскими, транспортными и промышленными, реального времени, устойчивыми к задержке и т.д. Примеры сетей включают локальные сети, такие как Ethernet, беспроводные LAN, сотовые сети, включая GSM, 3G, 4G, 5G, LTE и т.п., телевизионные проводные или беспроводные глобальные цифровые сети, включая кабельное ТВ, спутниковое TV и наземное телевизионное вещание, транспортные и промышленные сети, включая CANBus и т.д. В определенных сетях обычно требуются внешние адаптеры сетевого интерфейса, которые подключаются к определенным портам данных общего назначения или к периферийным шинам 949 (такие, например, как USB-порты компьютерной системы 900); другие обычно интегрируются в ядро компьютерной системы 900 путем подключения к системной шине, как описано ниже (например, Ethernet-интерфейс в персональном компьютере или сотовый сетевой интерфейс в компьютерной системе смартфона). При использовании любой из этих сетей компьютерная система 900 может взаимодействовать с другими объектами. Такая связь может быть однонаправленной, только в приемном направлении (например, телевизионное вещание), однонаправленной, только в передающем направлении (например, CANbus с определенными устройствами CANbus), или двунаправленной, например, с другими компьютерными системами с использованием локальных или глобальных цифровых сетей. Такая связь может включать связь со средой 955 облачных вычислений. Определенные протоколы и стеки протоколов могут использоваться в каждой из этих сетей и сетевых интерфейсов, как описано выше.[137]
[138] Вышеупомянутые пользовательские интерфейсные устройства, доступные пользователю запоминающие устройства и сетевые интерфейсы 954 могут подключаться к ядру 940 компьютерной системы 900.[138] The aforementioned user interface devices, user accessible storage devices, and network interfaces 954 may be connected to the
[139] Ядро 940 может содержать один или более центральных процессоров (CPU) 941, графических процессоров (GPU) 942, специализированных программируемых процессорных блоков в виде программируемых пользователем вентильных матриц (FPGA, Field Programmable Gate Area) 943, аппаратных ускорителей 944 для определенных задач и т.д. Эти устройства совместно с постоянной памятью (ROM, Read-Only Memory) 945, оперативной памятью 946, внутренними массовыми запоминающими устройствами 947, такими как внутренние, не доступные пользователю жесткие диски, SSD и т.п., могут соединяться через системную шину 948. В некоторых компьютерных системах доступ к системной шине 948 может осуществляться в виде одного или более физических разъемов, позволяющих добавлять CPU, GPU и т.п. Периферийные устройства могут подключаться либо непосредственно к системной шине 948 ядра, либо через периферийную шину 949. Архитектуры периферийной шины включают PCI, USB и т.п. Графический адаптер 950 может включаться в ядро 940.[139] The
[140] CPU 941, GPU 942, FPGA 943 и ускорители 944 могут исполнять определенные инструкции, которые в совокупности могут компенсировать недостатки упомянутого выше компьютерного кода. Компьютерный код может храниться в ROM 945 или RAM 946. Промежуточные данные могут также храниться в RAM 946, в то время как постоянные данные могут храниться, например, во внутреннем массовом запоминающем устройстве 947. Быстрая запись и извлечение данных из любых запоминающих устройств может выполняться с использованием кэш-памяти, которая может быть тесно связана с одним или более CPU 941, GPU 942, внутренними массовыми запоминающими устройствами 947, ROM 945, RAM 946 и т.п.[140]
[141] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых на компьютере. Медийный и компьютерный код может быть специально разработан и составлен в целях раскрытия настоящего изобретения, или эти коды могут быть хорошо известны и доступны специалистам в области компьютерного программного обеспечения.[141] The computer-readable medium may contain computer code for performing various operations implemented on the computer. The media and computer code may be specially designed and compiled for the purpose of disclosing the present invention, or these codes may be well known and available to those skilled in the art of computer software.
[142] Без ограничения приведенным примером, компьютерная система 900 определенной архитектуры и, в частности, ядро 940 может обеспечивать функциональность в результате выполнения процессором(-ами) (включая CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, реализованного на одном или более машиночитаемых носителях. Такой машиночитаемый носитель, как указывалось выше, может представлять собой носитель, связанный с соответствующим массовым запоминающим устройством, доступным пользователю, а также определенный носитель ядра 940, являющийся по своей природе долговременным носителем информации, таким как массовое запоминающее устройство 947, расположенное внутри ядра, или ROM 945. Программное обеспечение, реализующее различные примеры раскрытия настоящего изобретения, может храниться на таких устройствах и выполняться ядром 940. Машиночитаемый носитель может содержать одно или более запоминающих устройств или микросхем в соответствии с конкретными требованиями. Программное обеспечение может инициализировать ядро 940 и, в частности, процессоры, расположенные в нем (включая CPU, GPU, FPGA и т.п.), для выполнения конкретных процессов или частей конкретных процессов, приведенных в этом описании, включая определение структур данных в RAM 946 и модификацию таких структур данных в соответствии с процессами, определенными программным обеспечением. Кроме того, или в качестве альтернативы, компьютерная система может обеспечивать функциональность в результате логических аппаратных решений или встроенных в схему (например, ускорителя 944) решений, которые могут работать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей конкретных процессов, приведенных в этом описании. Ссылка на программное обеспечение может охватывать логические схемы и наоборот, где это приемлемо. Ссылка на машиночитаемый носитель может охватывать схему (например, интегральную микросхему (IC, Integrated Circuit)), в которой хранится исполняемое программное обеспечение, схему, в которой реализованы исполняемые логические команды, или оба этих компонента, где это приемлемо. Раскрытие настоящего изобретения охватывает любую подходящую комбинацию аппаратуры и программного обеспечения.[142] Without being limited to the above example, a
[143] Хотя изобретение было описано посредством нескольких не ограничивающих его примеров осуществления, существуют изменения, перестановки и различные заменяющие эквиваленты в объеме настоящего изобретения. Следует отметить, что специалисты в этой области техники способны разработать ряд систем и способов, которые, хотя явно не показаны и не описаны, но реализуют принципы раскрытия настоящего изобретения и, следовательно, соответствуют его сущности и объему.[143] Although the invention has been described through several non-limiting examples of implementation, there are changes, permutations and various replacement equivalents within the scope of the present invention. It should be noted that those skilled in the art are able to develop a number of systems and methods that, although not explicitly shown or described, implement the principles of the disclosure of the present invention and therefore fall within its spirit and scope.
Claims (36)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62/819,460 | 2019-03-15 | ||
US16/815,710 | 2020-03-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2787711C1 true RU2787711C1 (en) | 2023-01-11 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2641475C2 (en) * | 2012-09-24 | 2018-01-17 | Квэлкомм Инкорпорейтед | Sequence level flag for buffer parameters coded at level of sub-pictures of pictures |
US9900605B2 (en) * | 2013-10-14 | 2018-02-20 | Qualcomm Incorporated | Device and method for scalable coding of video information |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2641475C2 (en) * | 2012-09-24 | 2018-01-17 | Квэлкомм Инкорпорейтед | Sequence level flag for buffer parameters coded at level of sub-pictures of pictures |
US9900605B2 (en) * | 2013-10-14 | 2018-02-20 | Qualcomm Incorporated | Device and method for scalable coding of video information |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113892260B (en) | Video encoding and decoding method and related device | |
KR20200125733A (en) | Method and apparatus for video coding | |
CN113711605B (en) | Method, apparatus, system and computer readable medium for video encoding and decoding | |
KR20200140364A (en) | Simplified Best Probability Mode List Generation Method | |
US11516486B2 (en) | Decoded picture buffer management for video coding | |
CN113348666A (en) | Method for identifying group of graph blocks | |
KR20210036408A (en) | Method and apparatus for video coding | |
CN118694978A (en) | Video encoding and decoding method, method for processing code stream, storage medium and electronic device | |
JP7237410B2 (en) | Method, Apparatus, and Computer Program for Efficient Signaling of Picture Size and Segmentation Information in Video Bitstreams | |
CN113508582B (en) | Video encoding and decoding methods, devices and readable media | |
CN113491128B (en) | Method and related apparatus for decoded picture memory management | |
CN110557632B (en) | Video decoding method, video decoder, and computer-readable medium | |
RU2787711C1 (en) | Managing a buffer of decoded images for encoding video signals | |
CN118679740A (en) | Multi-template-based intra-frame template matching prediction |