Method, device, and computer program for signaling output subpicture layer set

JP2024180522A5Inactive Publication Date: 2025-08-21TENCENT AMERICA LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024178315
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2020-09-02
Filing Date
2024-10-10
Publication Date
2025-08-21
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

Existing video encoding technologies struggle to define operating points for sub-pictures within multi-layer bitstreams, as PTL information cannot account for the presence or absence of sub-pictures in different layers, leading to inefficiencies in encoding and decoding processes.

Method used

Incorporation of syntax elements to convey encoding of multiple sub-pictures across multiple layers, allowing for high-quality encoding of regions of interest and low-quality encoding of other sub-pictures, with specific flags and identifiers to manage sub-picture alignment and output modes.

Benefits of technology

Enhances video encoding efficiency by optimizing bandwidth and processing power usage through differential quality encoding of sub-pictures, improving visual quality in regions of interest while reducing overall resource consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a method, a computer program, and a computer system for coding a video sequence.SOLUTION: Video information corresponding to one or more subpictures within a picture is received. A first subpicture is identified from among the one or more subpictures as a region of interest. The first subpicture corresponding to the region of interest is encoded in a high quality mode. One or more other subpictures from among the one or more subpictures is encoded in a low quality mode. The first encoded subpicture and the encoded one or more other subpictures are output with one or more output layer sets.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application claims priority to U.S. Provisional Patent Application No. 62 / 907,352, filed September 27, 2019, and U.S. Patent Application No. 17 / 010,028, filed September 2, 2020, the entire contents of which are incorporated by reference.

[0002] [Technical field] FIELD OF THE DISCLOSURE This disclosure relates generally to the field of computing, and more particularly to video encoding. [Background technology]

[0003] A recent proposed contribution to JVET-P0225 includes the signaling of output layer sets and PTL information. The output layer set with profile-tier-level (PTL) information provides the operation point for a multi-layer bitstream. Summary of the Invention

[0004] Embodiments relate to methods, systems and computer readable media for encoding a video sequence. According to one aspect, a method for encoding a video sequence is provided. The method may include receiving video information corresponding to one or more sub-pictures in a picture. A first sub-picture is identified as a region of interest from among the one or more sub-pictures. The first sub-picture corresponding to the region of interest is encoded in a high quality mode. One or more other sub-pictures from the one or more sub-pictures are encoded in a lower quality mode. The encoded first sub-picture and the one or more other encoded sub-pictures are output together with one or more output layer sets.

[0005] According to another aspect, a computer system for encoding a video sequence is provided. The computer system may include one or more processors, one or more computer readable memories, one or more computer readable tangible devices, and program instructions stored in at least one of one or more storage devices executed by at least one of the one or more processors via at least one of the one or more memories, thereby enabling the computer system to perform a method. The method may include receiving video information corresponding to one or more sub-pictures in a picture. A first sub-picture is identified as a region of interest from among the one or more sub-pictures. The first sub-picture corresponding to the region of interest is encoded in a high quality mode. One or more other sub-pictures from the one or more sub-pictures are encoded in a low quality mode. The encoded first sub-picture and the one or more other encoded sub-pictures are output together with one or more output layer sets.

[0006] According to yet another aspect, a computer-readable storage medium for encoding a video sequence is provided. The computer-readable medium includes one or more computer-readable storage devices and program instructions stored in at least one of the one or more tangible storage devices, the program instructions being executable by a processor. The program instructions are executable by the processor to perform a method, which may include receiving video information corresponding to one or more sub-pictures in a picture. A first sub-picture is identified as a region of interest from among the one or more sub-pictures. The first sub-picture corresponding to the region of interest is encoded in a high-quality mode. One or more other sub-pictures from the one or more sub-pictures are encoded in a lower-quality mode. The encoded first sub-picture and the one or more other encoded sub-pictures are output with one or more output layer sets. [Brief description of the drawings]

[0007] These and other objects, features and advantages will become apparent from the following detailed description of illustrative embodiments, which is to be read in connection with the accompanying drawings, in which various features of the drawings are not drawn to scale for clarity purposes to facilitate understanding by those skilled in the art in connection with the detailed description. [Figure 1] 1 illustrates a networked computing environment in accordance with at least one embodiment. [Diagram 2] 1 is a set of example syntax elements according to at least one embodiment. [Diagram 3] 1 is an operational flowchart illustrating steps performed by a program for encoding video with sub-pictures in multiple layer sets in accordance with at least one embodiment. [Figure 4] FIG. 2 is a block diagram of internal and external components of the computer and server shown in FIG. 1 according to at least one embodiment. [Diagram 5] 2 is a block diagram of an exemplary cloud computing environment including the computer system shown in FIG. 1 according to at least one embodiment. [Figure 6] FIG. 6 is a block diagram of functional layers of the example cloud computing environment of FIG. 5 in accordance with at least one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0008] Detailed embodiments of the claimed structures and methods are disclosed herein. However, it is understood that the disclosed embodiments are merely illustrative of the claimed structures and methods, which may be embodied in various forms. However, these structures and methods may be embodied in many different forms and should not be construed as being limited to the exemplary embodiments described herein. Rather, these exemplary embodiments are provided so that this disclosure will be thorough and comprehensive, and will fully convey the scope to those skilled in the art. In the description, details of well-known features and techniques may be omitted to avoid unnecessarily obscuring the presented embodiments.

[0009] FIELD OF THE DISCLOSURE The embodiments relate generally to the field of computing, and more particularly to video coding. The exemplary embodiments described below provide, among other things, a system, method and computer program for coding a video having sub-pictures in multiple layer sets. Thus, some embodiments have the ability to improve the field of computing by allowing different coding schemes of variable quality to be used in coding sub-pictures in video data.

[0010] As mentioned above, recent proposed contributions to JVET-P0225 include conveying output layer sets and PTL information. The output layer sets with profile-tier-level (PTL) information provide the operation points of the multi-layer bitstream. However, the PTL information cannot define the operation points combined with sub-pictures. This is because each sub-picture in each layer may or may not be present in some applications. For example, in a picture-in-picture (PIP) use case, a region of interest (ROI) may be extended and coded as a sub-picture in the enhancement layer with high quality, while all regions in the base layer (i.e., all sub-pictures) may be coded with low quality. The sub-picture in the enhancement layer may be decoded and output in one output mode, and all regions in the base layer may be decoded and output in another output mode. In certain output modes, to indicate enhanced visual quality in an ROI (e.g., 360 viewport dependent processing), an output layer set can be composed of one or more sub-pictures from a base layer and one or more sub-pictures from an enhancement layer. Therefore, it can be advantageous to include syntax elements to convey the encoding of multiple sub-pictures contained across multiple layers in the video data.

[0011] Aspects of the present invention are described herein with reference to flowchart and / or block diagrams of methods, apparatus (systems) and computer-readable media according to various embodiments. It will be understood that each block of the flowchart and / or block diagrams, and combinations of blocks in the flowchart and / or block diagrams, can be implemented by computer-readable program instructions.

[0012] The exemplary embodiments described below provide a system, method, and computer program for encoding a video with sub-pictures in multiple layer sets. Referring now to Figure 1, a functional block diagram of a networked computing environment is shown illustrating a system 100 (hereinafter, "system") for encoding a video with sub-pictures in multiple layer sets. It should be appreciated that Figure 1 provides only one example of implementation and is not intended to imply any limitation with respect to the environments in which different embodiments may be implemented. Many modifications to the illustrated environment may be made based on design and implementation requirements.

[0013] The system 100 may include a computer 102 and a server computer 114. The computer 102 may communicate with the server computer 114 via a communication network 110 (hereinafter referred to as the "network"). The computer 102 may include a processor 104 and a software program 108 stored in a data storage device 106 and enabling a user to interface and communicate with the server computer 114. As described below with reference to FIG. 4, the computer 102 may include internal components 800A and external components 900A, respectively, and the server computer 114 may include internal components 800B and external components 900B, respectively. The computer 102 may be, for example, a mobile device, a phone, a personal digital assistant, a netbook, a laptop computer, a tablet computer, a desktop computer, or any type of computing device capable of running a program to access a network and access a database.

[0014] The server computer 114 may also operate in a cloud computing service model, such as Software as a Service (SaaS), Platform as a Service (PaaS), or Infrastructure as a Service (Iaas), as described below with respect to Figures 5 and 6. The server computer 114 may also be deployed in a cloud computing deployment model, such as a private cloud, a community cloud, a public cloud, or a hybrid cloud.

[0015] The server computer 114, which may be used to encode video having sub-pictures in multiple layer sets, may execute a sub-picture encoding program 116 (hereinafter "program") that may interact with the database 112. The method of the sub-picture encoding program is described in more detail below with respect to FIG. 3. In one embodiment, the computer 102 may operate as an input device including a user interface, while the program 116 may operate primarily on the server computer 114. In another embodiment, the program 116 may operate primarily on one or more computers 102, while the server computer 114 may be used for processing and storage of data used by the program 116. It should be noted that the program 116 may be a stand-alone program or may be integrated into a larger sub-picture encoding program.

[0016] It should be noted, however, that the processing of the program 116 may in some cases be shared in any proportion between the computer 102 and the server computer 114. In other embodiments, the program 116 may operate on more than one computer, server computer, or some combination of computers and server computers (e.g., multiple computers 102 communicating with a single server computer 114 over the network 110). In other embodiments, for example, the program 116 may operate on multiple server computers 114 that communicate with multiple client computers over the network 110. Alternatively, the program may operate on a network server that communicates with the server and multiple client computers over the network.

[0017] The network 110 may include wired, wireless, or fiber optic connections, or a combination thereof. In general, the network 110 may be any combination of connections and protocols that support communication between the computer 102 and the server computer 114. The network 110 may include various types of networks, such as, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, a telecommunications network such as the Public Switched Telephone Network (PSTN), a wireless network, a public switched network, a satellite network, a cellular network (e.g., a fifth generation (5G) network, a long-term evolution (LTE) network, a third generation (3G) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a metropolitan area network (MAN), a private network, an ad-hoc network, an intranet, an optical fiber-based network, etc., and / or a combination of the above or other types of networks.

[0018] The number and configuration of devices and networks shown in Figure 1 are provided as an example. In practice, there may be more, fewer, different, or differently configured devices and / or networks than those shown in Figure 1. Furthermore, two or more of the devices shown in Figure 1 may be implemented within a single device, or a single device shown in Figure 1 may be implemented as multiple distributed devices. Additionally or alternatively, a set of devices (e.g., one or more devices) of system 100 may perform one or more functions that are described as being performed by other sets of devices of system 100.

[0019] 2, an exemplary syntax element 200 according to one or more embodiments is shown. The syntax element 200 may include, among other things, a flag indicating whether a sub-picture partition may be aligned across layers, a flag indicating whether one or more sub-picture identification values ​​are present in each layer, a function to output sub-picture IDs that may be present in each output layer of each output layer set, and PTL information for each output layer set combined with the output sub-picture. It may be assumed that a syntax element that maps a sub-picture ID to a particular region of a picture may be presented in a parameter set or elsewhere. More specifically, the syntax element 200 may include the following:

[0020] A vps_subpics_present_flag equal to 1 may specify that the value of subpics_present_flag of one or more SPSs that reference this VPS may be equal to 1. A vps_subpics_present_flag equal to 0 may specify that the value of subpics_present_flag of any SPS that references this VPS may be equal to 0.

[0021] vps_subpic_aligned_across_layers_flag equal to 1 may specify that vps_max_subpics_minus1 and vps_sub_pic_id_layer[j] may be present in the VPS. If i is greater than 0, vps_max_subpics_minus1[i] may be inferred to be equal to vps_max_subpics_minus1 and vps_sub_pic_id_layer[i][j] may be inferred to be equal to vps_sub_pic_id_layer[j]. vps_subpic_aligned_across_layers_flag equal to 0 may specify that vps_max_subpics_minus1[i] and vps_sub_pic_id_layer[i][j] may be present if i is in the range 0 to vps_max_layers_minus1.

[0022] vps_max_subpics_minus1[i] plus 1 may specify the maximum number of subpictures for the i-th layer in a CVS that references a VPS. vps_max_subpics_minus1[i] may be equal to max_subpics_minus1 of the SPS whose nuh_layer_id is equal to vps_layer_id[i].

[0023] vps_sub_pic_id_layer[i][j] may specify the subpicture ID of the jth subpicture of the layer whose nuh_layer_id is equal to vps_layer_id[i]. For example:

[0024] if(vps_subpic_aligned_across_layers_flag) for(i=1;i <vps_max_layers_minus1;i++){ vps_max_subpics_minus1[i]=vps_max_subpics_minus1 for(j=0;j<=vps_max_subpics_minus1[i];j++){ vps_sub_pic_id_layer[i][j]=vps_sub_pic_id_layer[j] } } num_output_layer_sets_minus1 plus 1 may specify the number of output layer sets in a coded video sequence that references the VPS. If not present, the value of num_output_layer_sets_minus1 may be inferred to be equal to 0.

[0025] num_profile_tile_levels_minus1 plus 1 may specify the number of profile / layer / level information in a coded video sequence that references a VPS. If not present, the value of num_profile_tile_levels_minus1 may be inferred to be equal to 0.

[0026] vps_output_layers_mode[i] equal to 0 may specify that only the highest layer may be output in the i output layer set. vps_output_layer_mode[i] equal to 1 may specify that all layers may be output in the i output layer set. vps_output_layer_mode[i] equal to 2 may specify that the layers output may be layers with vps_output_layer_flag[i][j] equal to 1 in the i output layer set. The value of vps_output_layers_mode[i] may range from 0 to 2, inclusive.

[0027] vps_output_layer_flag[i][j] equal to 1 may specify that the jth layer of the ith output layer set may be output. vps_output_layer_flag[i][j] equal to 0 may specify that the jth layer of the ith output layer set may not be output.

[0028] profile_tier_level_idx[i][j] may specify the index of the profile_tier_level() syntax structure that applies to the jth layer of the ith output layer set in the list of profile_tier_level() syntax structures of the VPS.

[0029] all_subpic_output_flag[i][j] equal to 1 may specify that all subpictures of the jth layer of the ith output layer set may be output. all_subpic_output_flag[i][j] equal to 0 may specify that one or more subpictures of the jth layer of the ith output layer set may be output.

[0030] num_output_subpic_layer_minus1[i][j] may specify the number of output subpictures of the jth layer in the ith output layer set.

[0031] output_sub_pic_id_layer[i][j][k] may specify the subpicture ID of the kth subpicture of the jth layer in the ith output layer set.

[0032]

[0031] Referring now to Figure 3, there is shown an operational flowchart 300 illustrating steps performed by a program for encoding video having sub-pictures in multiple layer sets. Figure 3 may be described in conjunction with Figures 1 and 2. As noted above, the sub-picture encoding program 116 (Figure 1) may quickly and efficiently convey the encoding of multiple sub-pictures contained across multiple layers in the video data.

[0033] At 302, video information corresponding to one or more sub-pictures in a picture is received. The video information may include multiple layers and multiple layer sets each including one or more sub-pictures. The sub-pictures may be arranged within each of the layers and across the multiple layer sets. During operation, a sub-picture encoding program 116 (FIG. 1) on a server computer 114 (FIG. 1) may receive the video data. The video data may be received from computer 102 (FIG. 1) over communication network 110 (FIG. 1) or may be retrieved from database 112 (FIG. 1).

[0034] At 304, a first sub-picture is identified as a region of interest from among one or more sub-pictures. The first sub-picture may be a picture-in-picture region in the video data that may be extracted from a base layer for export at a higher quality. During operation, the sub-picture encoding program 116 (FIG. 1) uses one or more of the syntax elements 200 (FIG. 2) to identify a sub-picture as a region of interest.

[0035] At 306, a first sub-picture corresponding to the region of interest is encoded in a high quality mode. The region of interest may be expanded and encoded in a high quality mode as a sub-picture in an enhancement layer, and the remaining sub-pictures in the base layer may be encoded at a lower quality to save bandwidth and processing power. During operation, the sub-picture encoding program 116 (FIG. 1) may encode the identified region of interest in high quality and output the encoded video information over the communications network 110 (FIG. 1).

[0036] It can be appreciated that Figure 3 provides only one example implementation and is not meant to imply limitations on how different embodiments may be implemented Many modifications to the depicted environment may be made based on design and implementation requirements.

[0037] Figure 4 is a block diagram 400 of the internal and external components of the computer shown in Figure 1, in accordance with an exemplary embodiment. It should be appreciated that Figure 4 provides only one example implementation and is not intended to imply any limitation with respect to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made based on design and implementation requirements.

[0038] The computer 102 (FIG. 1) and the server computer 114 (FIG. 1) may include respective sets of internal components 800A,B and external components 900A,B shown in FIG. 4. Each of the set of internal components 800 includes one or more processors 820 on one or more buses 826, one or more computer-readable RAMs 822 and one or more computer-readable ROMs 824, one or more operating systems 828, and one or more computer-readable tangible storage devices 830.

[0039] The processor 820 may be implemented in hardware, firmware, or a combination of hardware and software. The processor 820 may be a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or other type of processing component. In some embodiments, the processor 820 includes one or more processors that are programmable to perform functions. The bus 826 includes components that enable communication between the internal components 800A,B.

[0040] One or more operating systems 828, software programs 108 (FIG. 1), and sub-picture encoding program 116 (FIG. 1) on server computer 114 (FIG. 1) are stored in one or more of respective computer-readable tangible storage devices 830 for execution by one or more of respective processors 820 via one or more of respective RAMs 822 (which typically include cache memory). In the embodiment shown in FIG. 4, each of computer-readable tangible storage devices 830 is a magnetic disk storage device of an internal hard drive. Alternatively, each of computer-readable tangible storage devices 830 is a semiconductor storage device such as ROM 824, EPROM, flash memory, optical disk, magneto-optical disk, solid-state disk, compact disc (CD), digital versatile disc (DVD), floppy disk, cartridge, magnetic tape, and / or other type of non-transitory computer-readable tangible storage device capable of storing computer programs and digital information.

[0041] Each set of internal components 800A,B also includes a R / W drive or interface 832 for reading from and writing to one or more portable computer readable tangible storage devices 936, such as a CD-ROM, a DVD, a memory stick, a magnetic tape, a magnetic disk, an optical disk, or a semiconductor storage device. Software programs, such as software program 108 (FIG. 1) and sub-picture encoding program 116 (FIG. 1), may be stored in one or more of the respective portable computer readable tangible storage devices 936 and read via the respective R / W drive or interface 832 and loaded onto the respective hard drive 830.

[0042] Each set of internal components 800A,B also includes a network adapter or interface 836, such as a TCP / IP adapter card, a wireless Wi-Fi interface card, or a 3G, 4G, or 5G wireless interface card, or other wired or wireless communication link. The software program 108 (FIG. 1) and the sub-picture encoding program 116 (FIG. 1) on the server computer 114 (FIG. 1) may be downloaded from an external computer to the computer 102 (FIG. 1) and the server computer 114 via a network (e.g., the Internet, a local area network, or other wide area network) and the respective network adapter or interface 836. From the network adapter or interface 836, the software program 108 and the sub-picture encoding program 116 on the server computer 114 are loaded onto the respective hard drives 830. The network may include copper wire, optical fiber, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers.

[0043] Each of the set of external components 900A,B may include a computer display monitor 920, a keyboard 930, and a computer mouse 934. The external components 900A,B may also include touch screens, virtual keyboards, touch pads, pointing devices, and other human interface devices. Each of the set of internal components 800A,B may also include a device driver 840 for interfacing to the computer display monitor 920, the keyboard 930, and the computer mouse 934. The device driver 840, the R / W drive or interface 832, and the network adapter or interface 836 include hardware and software (stored in the storage device 830 and / or ROM 824).

[0044] Although this disclosure includes detailed descriptions of cloud computing, it is understood in advance that implementation of the teachings described herein is not limited to a cloud computing environment. Rather, some embodiments may be implemented in conjunction with other types of computing environments now known or later developed.

[0045] Cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with the service provider. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0046] Its features are as follows.

[0047] On-Demand Self-Service: Cloud customers can unilaterally provision computing capacity, such as server time and network storage, automatically as needed, without the need for human interaction with the service provider.

[0048] Wide Area Network Access: Functionality is available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin-client or thick-client platforms (eg, cell phones, laptops, and PDAs).

[0049] Resource Pooling: A provider's computing resources are pooled to serve multiple customers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated according to demand. There is a sense of location independence in that customers generally have no control or knowledge regarding the exact location of the resources provided, but may be able to specify the location at a higher level of abstraction (e.g., country, state, data center).

[0050] Rapid Elasticity: Capabilities can be provided quickly and elastically, sometimes automatically, to rapidly scale out and rapidly scale in. To the consumer, the capabilities available for provisioning often appear unlimited, and can be purchased in any quantity at any time.

[0051] Metering Services: Cloud systems automatically control and optimize resource usage by utilizing metering capabilities (e.g., storage, processing, bandwidth, and active user accounts) at a level of abstraction appropriate to the type of service. Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of utilized services.

[0052] The service model is as follows:

[0053] Software as a Service (SaaS): The functionality offered to the consumer is the use of the provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying infrastructure, including networks, servers, operating systems, storage, or each individual application function, with the exception of limited user-specific application configuration settings.

[0054] Platform as a Service (PaaS): The functionality offered to the customer is the deployment of applications created or acquired by the customer, written using programming languages ​​and tools supported by the provider, on a cloud infrastructure. The customer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but has control over the deployed applications and, in some cases, the configuration of the application hosting environment.

[0055] Infrastructure as a Service (IaaS): The functionality provided to the customer is the provision of processing, storage, network and other basic computing resources on which the customer can deploy and run any software, including operating systems and applications. The customer does not manage or control the underlying cloud infrastructure, but has control over the operating systems, storage, deployed applications, and possibly limited control of selected network components (e.g., host firewalls).

[0056] The deployment model is as follows: Private Cloud: The cloud infrastructure is operated exclusively for an organization. The cloud infrastructure may be managed by the organization or a third party and may reside on-premises or off-premises.

[0057] Community Cloud: Cloud infrastructure is shared by several organizations to support a particular community with common concerns (e.g., mission, security requirements, policy and compliance considerations). The cloud infrastructure may be managed by the organization or a third party and may reside on-premise or off-premise.

[0058] Public Cloud: The cloud infrastructure is owned by an organization that sells cloud services and is made available to the general public or large industry organizations.

[0059] Hybrid Cloud: A cloud infrastructure consists of two or more clouds (private, community or public) that remain unique entities but are bound together by standardized or proprietary technologies that enable data and application portability (e.g. cloud bursting for load balancing between clouds).

[0060] Cloud computing environments are service-oriented with a focus on statelessness, low coupling, modularity and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0061] Referring to FIG. 5, an exemplary cloud computing environment 500 is shown. As shown, the cloud computing environment 500 includes one or more cloud computing nodes 10, and local computing devices used by cloud users, such as a personal digital assistant (PDA) or mobile phone 54A, a desktop computer 54B, a laptop computer 54C, and / or an automobile computer system 54N, may communicate with one or more cloud computing nodes 10. The cloud computing nodes 10 may communicate with each other. They may be physically or virtually grouped into one or more networks, such as private, community, public, or hybrid clouds, or combinations thereof, as described above (not shown). This allows the cloud computing environment 500 to provide infrastructure, platform, and / or software as a service without the cloud user having to maintain resources on the local computing device. It is understood that the types of computing devices 54A-54N shown in FIG. 5 are merely exemplary, and that the cloud computing nodes 10 and the cloud computing environment 500 may communicate with any type of computer device over any type of network and / or network addressable connection (e.g., using a web browser).

[0062] Referring to Figure 6, a set of functional abstraction layers 600 provided by the cloud computing environment 500 (Figure 5) is shown. It should be understood in advance that the components, layers and functions shown in Figure 6 are merely exemplary and the embodiments are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0063] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, Reduced Instruction Set Computer (RISC) architecture based server 62, server 63, blade server 64, storage devices 65, and network and network components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0064] The virtualization layer 70 provides an abstraction layer within which instances of virtual entities such as virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75 may be provided.

[0065] In one example, management layer 80 may provide the functionality described below. Resource provisioning 81 provides dynamic procurement of computing and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and charging or billing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud consumers and tasks and protection of data and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides allocation and management of cloud computing resources such that required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides advance provisioning and procurement of cloud computing resources where future requirements are anticipated according to SLAs.

[0066] The workload layer 90 provides examples of functions for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instructional delivery 93, data analytics processing 94, transaction processing 95, and sub-picture encoding 96. Sub-picture encoding 96 may encode video with sub-pictures in multiple layer sets.

[0067] Some embodiments may relate to systems, methods and / or computer-readable media at any conceivable level of technical detail. The computer-readable media may include a computer-readable non-transitory storage medium (or media) having computer-readable program instructions for causing a processor to perform operations.

[0068] A computer readable storage medium may be a tangible device that can hold and store instructions used by an instruction execution device. A computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer readable storage media includes portable computer disks, hard disks, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices such as punch cards, or raised structures in grooves having recorded instructions, and any suitable combination thereof. A computer readable storage medium as used herein should not be interpreted as a transitory signal in itself, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a wave guide or other transmission medium (e.g., a light pulse passing through a fiber optic cable), or an electric signal transmitted through a wire.

[0069] The computer readable program instructions described herein may be downloaded from a computer readable storage medium into each computing / processing device, or may be downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium in each computing / processing device.

[0070] The computer readable program code / instructions for performing the operations may be source or object code written in any combination of one or more programming languages, including assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or object-oriented programming languages ​​such as Smalltalk, C++, etc., and procedural programming languages ​​such as the "C" programming language or similar programming languages. The computer readable program instructions may be executed completely on the user's computer, partially on the user's computer as a stand-alone software package, partially on the user's computer and partially on a remote computer, or completely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, field programmable gate array (FPGA), or programmable logic array (PLA), may execute computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry to perform an aspect or operation.

[0071] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to generate a machine such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, generate means for implementing the functions / operations specified in the flowchart and / or block diagram blocks. These computer readable program instructions may also be stored on a computer readable storage medium that can instruct a computer, programmable data processing apparatus, and / or other device to function in a particular manner, such that a computer readable storage medium having instructions stored thereon includes an article of manufacture that includes instructions that implement aspects of the functions / operations specified in the flowchart and / or block diagram blocks.

[0072] The computer readable program instructions may also be loaded into a computer, other programmable data processing apparatus or other device and cause the computer, other programmable apparatus or other device to perform a series of operational steps to generate a computer-implemented process, whereby the instructions executing on the computer, other programmable apparatus or other device perform the functions / operations specified in the flowchart and / or block diagram blocks.

[0073] The flowcharts and block diagrams in the drawings illustrate the architecture, functionality, and operation of possible implementations of the systems, methods, and computer-readable media according to various embodiments. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or part of instructions, including one or more executable instructions for implementing the specified logical function. The methods, computer systems, and computer-readable media may include more, fewer, different, or differently arranged blocks than those shown in the drawings. In some alternative implementations, the functions described in the blocks may deviate from the order described in the drawings. For example, two blocks shown in succession may in fact be executed simultaneously or substantially simultaneously, or the blocks may possibly be executed in the reverse order, depending on the functionality involved. It is also noted that each block of the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a special-purpose hardware-based system that performs the specified functions or operations, or a combination of special-purpose hardware and computer instructions.

[0074] It will be apparent that the systems and / or methods described herein may be implemented in different forms of hardware, firmware, or a combination of hardware and software. The actual specific control hardware or software code used to implement these systems and / or methods is not intended to limit the implementation. Thus, the operation and behavior of the systems and / or methods are described herein without reference to any specific software code, and it will be understood that software and hardware may be designed to implement the systems and / or methods based on the description herein.

[0075] No element, act, or instruction used herein should be construed as critical or essential unless expressly stated otherwise. Additionally, the singular forms "a," "an," and "the" are intended to include one or more items and may be used interchangeably with "one or more." Additionally, the term "set" as used herein is intended to include one or more items (e.g., related items, unrelated items, combinations of related and unrelated items, etc.) and may be used interchangeably with "one or more." Where only one item is intended, the term "one" or similar language is used. Additionally, terms such as "having" as used herein are intended to be open-ended terms. Additionally, the term "based on" is intended to mean "based at least in part on" unless otherwise specified.

[0076] The description of various aspects and embodiments is presented for illustrative purposes, but is not intended to be exhaustive or limited to the disclosed embodiments. Even if combinations of features are recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of possible implementations. Indeed, many of these features may be combined in ways not specifically recited in the claims and / or disclosed in the specification. Although each dependent claim described below may directly depend on only one claim, the disclosure of possible implementations includes each dependent claim in combination with all other claims in the set of claims. Many changes and modifications will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terms used in this specification are selected to best explain the principles of the embodiments, practical applications or technical improvements to the technology found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.

Claims

1. A method for processing video data, comprising: acquiring video data; performing a conversion between said video data and a bitstream of said video data; Including, the bitstream includes a picture including one or more subpictures and a video parameter set; a first sub-picture among the one or more sub-pictures is coded in a high quality mode; the video parameter set includes an output layer set corresponding to the first subpicture and a first flag; The method, wherein the first flag indicates whether the subpicture partition is aligned across one or more output layers.

2. The video parameter set further includes a second flag, The method of claim 1 , wherein the second flag indicates whether a sub-picture identifier is present in each output layer.

3. The method described in claim 1, wherein a second subpicture among the one or more subpictures is encoded in a low-quality mode.

4. The method described in claim 3, wherein the output layer set includes an output layer corresponding to the second subpicture and a subpicture identifier for the second subpicture.

5. The method described in claim 1, wherein the output layer set includes a plurality of output layer sets, each of the plurality of output layer sets including one or more output layers and, for each output layer, subpicture identifiers for subpictures included in the output layer.

6. An apparatus for processing video data, comprising: one or more memories configured to store a computer program; one or more processors configured to access and execute said computer program to implement the method of any one of claims 1 to 5; An apparatus comprising:

7. A computer program for processing video data, comprising: A computer program causing one or more processors to carry out a method according to any one of claims 1 to 5.