Semi-decoupled partitioning for video coding
By determining separate encoding tree structures for luma and chroma components based on specific thresholds and content characteristics, the method enhances video encoding efficiency, reducing distortion and bit usage while adapting to diverse content.
Patent Information
- Application Number
- JP2025044385
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-12-17
- Filing Date
- 2025-03-19
- Publication Date
- 2025-06-23
- Estimated Expiration
- 2041-02-02
AI Technical Summary
Existing video encoding formats like AV1 use fixed thresholds for determining whether luma and chroma components use the same or different encoding tree structures, which does not account for content diversity and can result in inefficient use of bits for unnecessary partition types.
A method for encoding and decoding video data that determines separate encoding tree structures for luma and chroma components based on specific thresholds and content characteristics, allowing for flexible block partitioning and optimizing bit usage.
This approach improves encoding and decoding efficiency by identifying optimal encoding tree structure types for luma and chroma components, reducing distortion and bit usage while adapting to varying content complexities.
Smart Images

Figure 2025093324000001_ABST
Abstract
Description
Technical Field
[0001] [Cross - Reference to Related Applications] This application claims priority to U.S. Provisional Patent Application No. 63 / 023,059, filed on May 11, 2020, and U.S. Patent Application No. 17 / 125,350, filed on December 17, 2020, with the United States Patent and Trademark Office, the entire contents of which are incorporated herein by reference.
[0002] [Technical Field] The present disclosure generally relates to the field of data processing, and more particularly to video encoding and / or decoding.
Background Art
[0003] AV1 (AOMedia Video 1) is an open video encoding format designed for video transmission over the Internet. It was developed as a successor to VP9 by AOMedia (Alliance for Open Media), a consortium established in 2015. AOMedia includes semiconductor companies, video - on - demand providers, video content producers, software development companies, and web browser vendors.
Summary of the Invention
[0004] Embodiments relate to a method, a system, and a computer - readable medium for encoding and / or decoding video data. According to one aspect, a method for encoding and / or decoding video data is provided. The method may include receiving video data including a chroma component and a luma component. A first encoding tree structure associated with the luma component and a second encoding tree structure associated with the chroma component are determined. The video data is decoded based on the first encoding tree structure and the second encoding tree structure.
[0005] According to another aspect, a computer system for encoding and / or decoding video data is provided. The computer system includes one or more processors, one or more computer-readable memories, one or more computer-readable tangible storage devices, and program instructions stored in at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, whereby the computer system is enabled to execute a method. The method may include receiving video data including a chroma component and a luma component. A first encoding tree structure associated with the luma component and a second encoding tree structure associated with the chroma component are determined. The video data is decoded based on the first encoding tree structure and the second encoding tree structure.
[0006] According to yet another aspect, a computer-readable medium for encoding and / or decoding video data is provided. The computer-readable medium may include 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 a processor to execute a method that may include receiving video data including a chroma component and a luma component. A first encoding tree structure associated with the luma component and a second encoding tree structure associated with the chroma component are determined. The video data is decoded based on the first encoding tree structure and the second encoding tree structure.
Brief Description of the Drawings
[0007] The above and other objects, features and advantages will become apparent from the following detailed description of exemplary embodiments read in conjunction with the accompanying drawings. The drawings are provided to clarify for ease of understanding by those skilled in the art in connection with the detailed description, and various features of the drawings are not to scale.
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
DETAILED DESCRIPTION OF THE INVENTION
[0008] Although detailed embodiments of the structures and methods recited in the claims are disclosed herein, it is to be understood that the disclosed embodiments are merely examples of the structures and methods recited in the claims that may be embodied in various forms. However, these structures and methods may be embodied in many different forms and should not be construed as limited to the exemplary embodiments described herein. Rather, these exemplary embodiments are provided so that this disclosure will be thorough and complete and will fully convey the scope to those skilled in the art. In the description, well-known features and techniques may be omitted in order to avoid unnecessarily obscuring the presented embodiments.
[0009] Embodiments generally relate to the field of data processing, and more particularly to video encoding and decoding. The exemplary embodiments described below provide, among other things, a system, method, and computer program for encoding and / or decoding video data based on an encoding tree structure of components of the video data. Accordingly, some embodiments have the ability to improve the field of computing by improving encoding and decoding efficiency by identifying the same or different encoding tree structure types between components of video data and restrictions of a particular encoding tree structure type.
[0010] As described above, AV1 (AOMedia Video 1) is an open video encoding format designed for video transmission over the Internet. It was developed as a successor to VP9 by AOMedia (Alliance for Open Media), a consortium established in 2015. AOMedia includes semiconductor companies, video on demand providers, video content producers, software development companies, and web browser vendors.
[0011] In AV1, semi-decoupled tree partitioning, or semi-separate tree or flexible-block partitioning may be used for the chroma component. In this method, the luma blocks and chroma blocks within one superblock may have the same block partitioning or different block partitionings, which may depend on the luma coded block size or luma tree depth. If the luma block area size is larger than a certain threshold T1, or if the coded tree partition depth of the luma block is less than or equal to another threshold T2, the chroma component may use the same coded tree structure as the luma component. Otherwise, if the block area size is less than or equal to T1, or if the luma partition depth is greater than T2, the corresponding chroma blocks may have a different coded block partitioning from the luma component, which is called flexible-block partitioning for the chroma component. T1 may be a positive integer such as 128 or 256. T2 may be a positive integer such as 1 or 2.
[0012] However, in semi - decoupled partition splitting, a fixed threshold of luma block size or the tree depth of the luma component is used to determine whether luma and chroma use different trees, which does not take into account the diversity of different contents. Luma and chroma can have different trees, but still use the same amount of partition types. Since some of the partition types may not be useful for the chroma component, the reduction of distortion from these partition types may not be suitable for the extra bits transmitted for these partition types. Further, when the luma - encoded block and the chroma - encoded block use different block partition splittings, the chroma block may have a higher tree depth than the luma block. Since this may rarely occur, it may not be optimal to spend extra bits to convey these cases. Further, when the encoding depth of the luma block exceeds a certain threshold, luma and chroma may use different tree structures. However, when the luma block has a very complex texture, the chroma block is also likely to become a block with a relatively complex texture. Therefore, it may be advantageous to identify whether the chroma component and the luma component use the same encoding tree structure type or different encoding tree structure types, and limit a specific encoding tree structure type based on various conditions.
[0013] Aspects are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer - readable media according to various embodiments. It is understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer - readable program instructions.
[0014] Next, referring to FIG. 1, it is a functional block diagram of a network-connected computer environment showing a video encoding system 100 (hereinafter referred to as "the system") for encoding and / or decoding video data based on an encoding tree structure type. It should be recognized that FIG. 1 is merely an illustration of one implementation and does not imply any limitation regarding an environment in which different embodiments may be implemented. Many modifications to the illustrated environment may be made based on design and implementation requirements.
[0015] System 100 may include a computer 102 and a server computer 114. Computer 102 may communicate with server computer 114 via a communication network 110 (hereinafter referred to as "the network"). Computer 102 may include a processor 104 and a software program 108 stored in a data storage device 106 and capable of interfacing with a user and communicating with server computer 114. As will be described below with reference to FIG. 4, computer 102 may include internal components 800A and external components 900A respectively, and server computer 114 may include internal components 800B and external components 900B respectively. 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 executing a program to access the network and access a database.
[0016] 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 FIGS. 6 and 7. Server computer 114 may also be deployed in a cloud computing deployment model such as a private cloud, community cloud, public cloud, or hybrid cloud.
[0017] The server computer 114 that can be used to encode video data can execute a video encoding program 116 (hereinafter referred to as "program") that can interact with the database 112. The video encoding program method will be 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 storing 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 video encoding program.
[0018] However, in some cases, it should be noted that the processing of program 116 may be shared in any ratio between computer 102 and server computer 114. In other embodiments, program 116 may operate on more than one computer, server computer, or some combination of computers and server computers, for example, multiple computers 102 that communicate with a single server computer 114 across network 110. In other embodiments, for example, program 116 may operate on multiple server computers 114 that communicate with multiple client computers across network 110. Alternatively, the program may operate on a network server that communicates with servers and multiple client computers across the network.
[0019] Network 110 may include a wired connection, a wireless connection, an optical fiber connection, or any combination thereof. Generally, Network 110 can be any combination of connections and protocols that support communication between Computer 102 and Server Computer 114. Network 110 can be, 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 various types of networks such as combinations of the above or other types of networks.
[0020] The number and arrangement of the devices and networks shown in FIG. 1 are provided as an example. In practice, there may be more devices and / or networks, fewer devices and / or networks, different devices and / or networks, or devices and / or networks with different arrangements than those shown in FIG. 1. Further, two or more of the devices shown in FIG. 1 may be implemented within a single device, or a single device shown in FIG. 1 may be implemented as a plurality of distributed devices. Further alternatively or as an alternative, a set of devices (e.g., one or more devices) of system 100 may perform one or more functions described as being performed by other sets of devices of system 100.
[0021] Referring now to FIG. 2, a block diagram 200 of an exemplary coding tree structure for video data is shown. The coding tree structure may include a luma component 202 and a chroma component 204.
[0022] In addition to the luma block size and the coding tree depth of the luma block, the partition type of the luma coded block may also be used to determine whether the luma or chroma coded blocks within the superblock use the same partition split or a different partition split. In one embodiment, if the luma block size is greater than a certain threshold T1, and / or if the coding tree split depth of the luma block is less than or equal to a certain threshold T2, and / or if only quadtree splitting (4-direction splitting) can be used for the luma block, the chroma block may use the same coding tree structure as the luma. Otherwise, they may use different coding tree structures. In one embodiment, if the luma block size is greater than a certain threshold T1, or if the coding tree split depth of the luma block is less than or equal to a certain threshold T2, and / or if only quadtree splitting (4-direction splitting) or binary splitting (2-direction splitting) can be used for the luma block, the chroma block may use the same coding tree structure as the luma block. Otherwise, if the luma block size is less than T1, or if the coding tree split depth of the luma block is greater than or equal to T2, the chroma block and the luma block may use different coding tree structures as part of a flexible block partitioning method. In one embodiment, if an L-type partition or a T-type partition can be used for the luma coded block, the luma and chroma coded blocks may use different partition splitting methods. The L-type block partition splitting tree method can split a block into an L-type partition and a rectangular partition. Similarly, the T-type block partition splitting tree method can split a block into a T-type partition and two rectangular partitions.
[0023] When the luma and chroma coded blocks within a single superblock may use different partitioning structures, the partition types allowed for the chroma coded blocks may be a subset of the partition types allowed for the luma coded blocks. In one embodiment, when the luma coded block and the chroma coded block use different partition trees from each other, an L-shaped partition or a T-shaped partition may not be allowed for the chroma coded block. In one embodiment, when the luma and chroma coded blocks may use different partition tree types from each other, only quadtree partitioning (4-way partitioning) and / or binary partitioning (2-way partitioning) may be allowed for the chroma coded block. In one embodiment, when the luma and chroma coded blocks use different partition tree types from each other, an L-shaped partition may not be allowed to further partition the chroma coded block. In one embodiment, when the luma and chroma coded blocks may use different partition tree types from each other, only quadtree partitioning (4-way partitioning) or binary partitioning (2-way partitioning) may be further partitioned for the chroma coded block.
[0024] When the luma and chroma coded blocks within a single superblock may use different tree structures, the tree depth of the chroma coded blocks may not exceed the maximum tree depth of the luma coded blocks within this superblock. In one embodiment, when the luma and chroma coded blocks within a single superblock may use different partitioning structures, the area size of the chroma coded blocks cannot be made smaller than the minimum area size of the luma coded blocks within this superblock. In one embodiment, when the luma and chroma coded blocks within a single superblock use different tree structures, the tree depth of the quadtree splitting (4-direction splitting) for the chroma coded blocks cannot exceed the maximum tree depth of the quadtree splitting (4-direction splitting) for the luma coded blocks within this superblock. In one embodiment, when the luma and chroma coded blocks within a single superblock use different tree structures, the tree depth of the binary tree (2-direction splitting) + ternary tree (3-direction splitting) for the chroma coded blocks cannot exceed the maximum tree depth of the binary tree (2-direction splitting) + ternary tree (3-direction splitting) for the luma coded blocks within this superblock. In one embodiment, when the chroma blocks may be partitioned at a depth such that they can have the same tree depth as the luma coded blocks at the same position, the partitioning pattern and whether the current chroma blocks can be partitioned are not transmitted.
[0025] Within one superblock, if the depth of the luma-encoded block can exceed a certain threshold T1, or if the minimum luma-block area size can be less than or equal to another threshold T2, the luma and chroma-encoded blocks may share a partial tree structure. In one embodiment, if the minimum luma-block area size can be less than or equal to the threshold T2, the chroma and luma blocks may share a top S-level tree structure, and both T2 and S may be non-negative integers. For example, T2 can be 128 or 256, and S can be 1 or 2. In one example, T2 may be set to 256 and S may be set to 1. In another example, since the minimum luma-encoded block may be 16×16, the luma and chroma may share the first-level tree depth, and below that point, the luma and chroma may have different tree structures in the tree structure.
[0026] Within one superblock, the condition under which the luma and chroma can start another tree partitioning may depend on the partitioning information of the luma. In one embodiment, if the luma (or chroma) block can be partitioned to a depth of N0 and then the luma and chroma have different tree partitioning structures, N0 may depend on the partitioning depth (N1) of the luma.
[0027] Within one superblock, the starting point of when the luma and chroma start another tree partitioning may be transmitted in the bitstream. In one embodiment, the starting point of when the luma and chroma start another tree partitioning may be transmitted at the superblock level. Thus, the starting point of a different tree may be different for different superblocks. The point at which different tree structures start to differ may be transmitted in the high-level syntax of the bitstream. The high-level syntax may include one or more of a sequence header, a frame header, a slice header, etc.
[0028] Within one superblock starting from a superblock, for each subpartition, a flag indicating whether luma and chroma share the same partition tree may be transmitted. If the flag can be transmitted as a value indicating that luma and chroma share the same partition tree, chroma may not need to transmit further partition splitting information. Otherwise, for the chroma component, partition splitting information may be further transmitted.
[0029] Referring next to FIG. 3, an operational flowchart showing the steps of a method 300 for encoding and / or decoding video data is shown. In some implementations, one or more processing blocks in FIG. 3 may be executed by computer 102 (FIG. 1) and server computer 114 (FIG. 1). In some implementations, one or more processing blocks in FIG. 3 may be executed by other devices or groups of devices that are separate from or include computer 102 and server computer 114.
[0030] At 302, method 300 includes receiving video data including a chroma component and a luma component.
[0031] At 304, method 300 includes determining a first encoding tree structure associated with the luma component and a second encoding tree structure associated with the chroma component, whereby the first encoding tree structure and the second encoding tree structure share the same top-level encoding tree structure.
[0032] At 306, method 300 includes decoding the video data based on the first encoding tree structure and the second encoding tree structure.
[0033] It can be recognized that FIG. 3 provides only an example of one implementation and does not imply any limitation as to how different embodiments may be implemented. Many modifications to the illustrated environment may be made based on design and implementation requirements.
[0034] Figure 4 is a block diagram 400 of the internal and external components of the computer shown in FIG. 1 according to an exemplary embodiment. It should be recognized that FIG. 4 is merely an illustration of one implementation and does not imply any limitation regarding the environments in which different embodiments may be implemented. Many modifications to the illustrated environment may be made based on design and implementation requirements.
[0035] Computer 102 (FIG. 1) and server computer 114 (FIG. 1) may each include a respective set of internal components 800A, B and external components 900A, B shown in FIG. 4. Each set of internal components 800 includes one or more processors 820, one or more computer-readable RAMs 822 and one or more computer-readable ROMs 824 on one or more buses 826, one or more operating systems 828, and one or more computer-readable tangible storage devices 830.
[0036] Processor 820 is implemented in hardware, firmware, or a combination of hardware and software. Processor 820 is 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 another type of processing component. In some implementations, processor 820 includes one or more processors programmable to execute functions. Bus 826 includes components that enable communication between internal components 800A, B.
[0037] One or more operating systems 828, software programs 108 (FIG. 1), and video encoding programs 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 (typically including 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 types of non-transitory computer-readable tangible storage devices capable of storing computer programs and digital information.
[0038] Each set of internal components 800A, B also includes an R / W drive or interface 832 for reading from and writing to one or more portable computer-readable tangible storage devices 936 such as CD-ROMs, DVDs, memory sticks, magnetic tapes, magnetic disks, optical disks, or semiconductor storage devices. Software programs such as software programs 108 (FIG. 1) and video encoding programs 116 (FIG. 1) may be stored in one or more of respective portable computer-readable tangible storage devices 936, read via respective R / W drives or interfaces 832, and loaded into respective hard drives 830.
[0039] 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. Software program 108 (FIG. 1) and video encoding program 116 (FIG. 1) on server computer 114 (FIG. 1) can be downloaded from an external computer to computer 102 (FIG. 1) and server computer 114 via a network (e.g., the Internet, a local area network, or other wide area network) and respective network adapters or interfaces 836. From the network adapter or interface 836, software program 108 and video encoding program 116 on server computer 114 are loaded onto respective hard drives 830. The network may include copper wire, fiber optic, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers.
[0040] Each set of external components 900A, B can include a computer display monitor 920, a keyboard 930, and a computer mouse 934. External components 900A, B can also include a touch screen, a virtual keyboard, a touch pad, a pointing device, and other human interface devices. Each set of internal components 800A, B also includes a device driver 840 for interfacing with computer display monitor 920, keyboard 930, and computer mouse 934. Device driver 840, R / W drive or interface 832, and network adapter or interface 836 include hardware and software (stored in memory device 830 and / or ROM 824).
[0041] This disclosure includes detailed descriptions related to cloud computing, but it is understood in advance that the implementation of the teachings described herein is not limited to cloud computing environments. Rather, some embodiments are implementable with any other type of computing environment, whether currently known or later developed.
[0042] Cloud computing is a service delivery model that enables 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 a service provider. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
[0043] The characteristics are as follows. · On-demand self-service: Cloud consumers can one-sidedly provision computing capabilities such as server time and network storage automatically as needed, without the need for human interaction with the service provider. · Broad network access: The capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs). · Resource pooling: The provider's computing resources are pooled to serve multiple users using a multi-tenant model, and different physical and virtual resources are dynamically assigned and re-assigned on demand. Generally, the user does not have control or awareness of the exact location of the resources provided, but there is a concept of location independence in that the location can be specified at a higher level of abstraction (e.g., country, state, or data center). · Rapid elasticity: In some cases, the functionality can be provisioned quickly and elastically so that it is automatically released to scale out rapidly and scale in rapidly. To the user, the functionality available for provisioning often appears limitless and can be purchased in any quantity at any time. · Metering service: The cloud system automatically controls and optimizes resource usage by leveraging metering capabilities at some level of abstraction (e.g., storage, processing, bandwidth, and active user accounts) appropriate to the type of service. Resource usage is monitored, controlled, and reported, providing transparency to both the provider and the user of the service being utilized.
[0044] The service model is as follows. · Software as a Service (SaaS): The functionality provided to the user is the use of the provider's applications running on the cloud infrastructure. The applications are accessible from various client devices through a client interface such as a web browser (e.g., web-based email). The user does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even the individual application functionality, although in some cases user-specific application configuration settings are an exception. · Platform as a Service (PaaS): The functionality provided to the user is to deploy the user-created or acquired applications that are created using the programming languages and tools supported by the provider on the cloud infrastructure. The user does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but controls the deployed applications and, in some cases, the configuration of the application hosting environment.
[0045] Infrastructure as a Service (IaaS): The functions provided to users are to provision processing, storage, network, and other basic computing resources. Users can deploy and run any software that may include operating systems and applications. Users do not manage or control the underlying cloud infrastructure, but have control over limited aspects such as the operating system, storage, deployed applications, and optionally selected network components (e.g., host firewalls).
[0046] The deployment models are as follows. · Private cloud: The cloud infrastructure is dedicatedly operated for an organization. It may be managed by the organization or a third party and may exist on-premises or off-premises. · Community cloud: The cloud infrastructure is shared by several organizations to support a specific community with common concerns (e.g., mission, security requirements, policies, and compliance considerations). It may be managed by the organization or a third party and may exist on-premises or off-premises. · Public cloud: The cloud infrastructure is made available to the general public or large industry groups and is owned by an organization that sells cloud services. · Hybrid cloud: The cloud infrastructure remains a distinct entity but is composed of two or more clouds (private, community, or public) joined together by standardized or proprietary technologies (e.g., cloud bursting for load distribution between clouds) that enable data and application portability.
[0047] The cloud computing environment is service-oriented, focusing on statelessness, low coupling, modularity, and semantic interoperability. The core of cloud computing is the infrastructure that includes a network of interconnected nodes.
[0048] Referring to FIG. 5, an exemplary cloud computing environment 500 is shown. As illustrated, 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 a mobile phone 54A, a desktop computer 54B, a laptop computer 54C, and / or an automotive computer system 54N, may communicate with the one or more cloud computing nodes 10. The cloud computing nodes 10 may communicate with each other. These may be physically or virtually grouped in one or more networks, such as the private, community, public, or hybrid clouds as described above, or combinations thereof (not shown). This enables the cloud computing environment 600 to provide infrastructure, platform, and / or software as a service where cloud users do not need to maintain resources on local computing devices. The types of computing devices 54A-54N shown in FIG. 5 are only intended to be exemplary, and it is understood that the cloud computing nodes 10 and the cloud computing environment 500 can communicate with any type of computer device over any type of network and / or network addressable connection (e.g., using a web browser).
[0049] Referring to FIG. 6, a set of functional abstraction layers 600 provided by a cloud computing environment 500 (FIG. 5) is shown. It should be understood in advance that the components, layers, and functions shown in FIG. 6 are only intended to be exemplary, and the embodiments are not limited thereto. As shown in the figure, the following layers and corresponding functions are provided.
[0050] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include a mainframe 61, a server 62 based on a RISC (Reduced Instruction Set Computer) architecture, a server 63, a blade server 64, a storage device 65, and a network and networking component 66. In some embodiments, the software components include network application server software 67 and database software 68.
[0051] The virtualization layer 70 provides an abstraction layer from which examples of virtual entities such as a virtual server 71, virtual storage 72, a virtual network 73 including a virtual private network, virtual applications and an operating system 74, and a virtual client 75 may be provided.
[0052] In one example, the management layer 80 may provide the functions described below. Resource provisioning 81 provides for the dynamic procurement of computing resources and other resources utilized to execute tasks within a cloud computing environment. Metering and pricing 82 provides for cost tracking when resources are utilized within a cloud computing environment and for charging or billing for the use of these resources. In one example, these resources may include application software licenses. Security provides for authentication for cloud users and tasks and for the protection of data and other resources. The user portal 83 provides access to the cloud computing environment for users and system administrators. Service level management 84 provides for the allocation and management of cloud computing resources such that the required service levels are met. Planning and enforcement of service level agreements (SLAs) 85 provides for the pre - placement and procurement of cloud computing resources for which future requirements are predicted in accordance with an SLA.
[0053] The workload layer 90 provides examples of functions that a cloud computing environment may utilize. 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 education delivery 93, data analysis processing 94, transaction processing 95, and video encoding / decoding 96. Video encoding / decoding 96 may encode / decode video data based on an encoding tree structure type.
[0054] Some embodiments may relate to a system, method, and / or computer - readable medium in the integration of any possible level of technical detail. The computer - readable medium may include a computer - readable non - transitory storage medium (or media) having computer - readable program instructions for causing a processor to execute operations.
[0055] A computer-readable storage medium can be a tangible device that holds and stores instructions for use by an instruction execution device. The computer-readable storage medium can be, for example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing, but is not limited thereto. 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 disc 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 instructions recorded thereon, and any suitable combination of these. As used herein, a computer-readable storage medium should not be construed to be a signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., an optical pulse passing through an optical fiber cable), or an electrical signal transmitted through a wire, which are transient signals themselves.
[0056] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to respective computing / processing devices, or can be downloaded from an external computer or an 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 fibers, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within each computing / processing device.
[0057] The computer-readable program code / instructions for performing the operations may be in any combination of source code or object code written in any one or more programming languages, including assembly instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuits, or object-oriented programming languages such as Smalltalk, C++, and procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may be executed entirely 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 entirely 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, for example, an electronic circuit including a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA) may execute the computer-readable program instructions by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit to perform the aspects or operations.
[0058] 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 produce a machine, such that the instructions executed via the processor of the computer or other programmable data processing apparatus create means for implementing the functions / acts specified in the flowchart and / or block diagram blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer-readable storage medium having the instructions stored therein comprises an article of manufacture including instructions for implementing the function / act manner specified in the flowchart and / or block diagram blocks.
[0059] The computer-readable program instructions may also be loaded onto a computer, other programmable apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram blocks.
[0060] Flowcharts and block diagrams in the drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer-readable media according to various embodiments. In this regard, each block in the flowchart or block diagram may represent a module, segment, or portion of one or more executable instructions for implementing the specified logical function. The methods, computer systems, and computer-readable media may include more blocks, fewer blocks, different blocks, or differently arranged blocks than those shown in the drawings. In some alternative implementations, the functions described in the blocks may be performed out of the order described in the drawings. For example, two blocks shown in succession may actually be executed simultaneously or substantially simultaneously, or, depending on the functions involved, may sometimes be executed in the reverse order. Also, note that each block in the block diagram and / or flowchart diagram, and combinations of blocks in the block diagram and / or flowchart diagram, can be implemented by a dedicated hardware-based system that performs the specified function or operation, or by a combination of dedicated hardware and computer instructions.
[0061] It is obvious 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 special control hardware or software code used to implement these systems and / or methods is not a limitation of the implementation. Therefore, the operation and behavior of the systems and / or methods are described herein without reference to specific software code, and it is understood that the software and hardware may be designed to implement the systems and / or methods based on the description herein.
[0062] Any element, act, or instruction used in this specification should not be construed as important or essential unless explicitly described. Also, as used in this specification, the singular is intended to include one or more items and may be used interchangeably with "one or more." Further, as used in this specification, the term "set" 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." The term "one" or similar language is used when only one item is intended. Also, as used in this specification, terms such as "has," "have," "having," etc. are intended to be open-ended terms. Further, the phrase "based on" is intended to mean "at least in part based on" unless explicitly stated otherwise.
[0063] The descriptions of the various aspects and embodiments are presented for illustrative purposes and are not intended to be exhaustive or limited to the disclosed embodiments. Even if a combination of features is disclosed in the claims and / or the specification, these combinations are not intended to limit the disclosure of possible implementations. In fact, many of these features may be combined in ways not specifically disclosed in the claims and / or the specification. Each of the dependent claims listed below may be directly dependent on only one claim, but the disclosure of possible implementations includes combinations of each dependent claim with all other claims within the scope of the claims. Many modifications and variations 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, the practical application to technologies found in the market, or the technical improvements, or to enable those skilled in the art to understand the embodiments disclosed herein.
Claims
[Claim 1] 1. A method of video encoding executable by a processor, comprising: receiving video data including chroma and luma components; determining a first coding tree structure associated with the luma component and a second coding tree structure associated with the chroma components, the first coding tree structure and the second coding tree structure sharing a same top-level coding tree structure; decoding the video data based on the first coding tree structure and the second coding tree structure; The method includes:
Citation Information
Patent Citations
System and method for scaling transform coefficient level values
JP2020506593A
Method and apparatus for video encoding and decoding with partially shared luma and chroma coding trees
WO2019231751A1