Chroma Intra predictive mode signaling method, computer system, and program

By identifying contexts for chroma intra-predictive modes based on luma blocks at predefined positions, the inefficiencies in AV1's chroma intra-predictive mode signaling are addressed, enhancing encoding and decoding efficiency.

JP7893943B2Active Publication Date: 2026-07-22TENCENT AMERICA LLC
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
TENCENT AMERICA LLC
Filing Date
2025-06-11
Publication Date
2026-07-22

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies, such as AV1, face inefficiencies in chroma intra-predictive mode signaling due to semi-decoupled partitioning (SDP) where luma and chroma blocks have different partitions, leading to suboptimal use of top-left position for mode identification and lack of utilization of luma modes for better codeword design.

Method used

Identify contexts for entropy coding chroma intra-predictive modes based on collated luma blocks at predefined locations, using middle and upper-left corner positions, and derive contexts for chroma intra-prediction modes from neighboring luma modes to improve signaling efficiency.

Benefits of technology

Enhances encoding and decoding efficiency by optimizing chroma intra-predictive mode signaling, leveraging luma block contexts to improve computational performance and reduce redundancy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007893943000001
    Figure 0007893943000001
  • Figure 0007893943000002
    Figure 0007893943000002
  • Figure 0007893943000003
    Figure 0007893943000003
Patent Text Reader

Abstract

To provide a method for encoding or decoding video data, a computer program, and a computer system.SOLUTION: Video data including chroma components and luma components is received. One or more contexts for entropy coding a chroma intra prediction mode are identified based on one or more co-located luma blocks at predefined positions. The video data is decoded based on the identified context.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. 63 / 026,495, filed May 18, 2020, and U.S. Patent Application No. 17 / 061,854, filed Oct. 2, 2020, the entire contents of which are incorporated herein by reference.

[0002] The present disclosure generally relates to the field of data processing, and more particularly to video encoding and / or decoding.

Background Art

[0003] AOMedia Video 1 (AV1) is an open video coding format designed for video transmission over the Internet. Developed as a successor to VP9, ​​it was created in 2015 by the Alliance for Open Media (AOMedia), a consortium that includes semiconductor companies, video-on-demand providers, video content producers, software development companies, and web browser vendors. Many of the components of the AV1 project were sourced from previous research efforts by members of the alliance. Individual contributors started experimental technology platforms several years earlier, namely Xiph's / Mozilla's Daala, which had already released its code in 2010, Google's experimental VP9 evolution project VP10, which was announced on September 12, 2014, and Cisco's Thor, which was released on August 11, 2015. Built upon the VP9 codebase, AV1 incorporates additional technologies, some of which were developed in these experimental formats. The first version 0.1.0 of the AV1 standard codec was released on April 7, 2016. The Alliance announced the release of the AV1 bitstream specification on March 28, 2018, along with reference software-based encoders and decoders. A valid version 1.0.0 of the specification was released on June 25, 2018. A valid version 1.0.0 with Errata 1 of the specification was released on January 8, 2019. The AV1 bitstream specification includes a reference video codec. [Overview of the project] [Means for solving the problem]

[0004] The embodiments relate to methods, systems, and computer-readable media for encoding and / or decoding video data. According to one embodiment, a method for encoding and / or decoding video data is provided. The method may include the step of receiving video data containing a chroma component, and the luma component is received. One or more contexts for entropy coding the chroma intra-predictive mode are identified based on one or more multiples of collated luma blocks at predefined locations. The video data is decoded based on the identified contexts.

[0005] In another embodiment, a computer system is provided for encoding and / or decoding video data. The computer system may include one or more processors, one or more computer-readable memories, one or more computer-readable tangible storage devices, and program instructions stored in one or more storage devices for execution by one or more of the processors via at least one of the one or more memories, thereby enabling the computer system to perform the method. The method may include the step of receiving video data containing a chroma component, and the luma component is received. One or more contexts for entropy coding the chroma intra-predictive mode are identified based on one or more multiples of collated luma blocks at predefined locations. The video data is decoded based on the identified contexts.

[0006] In yet another embodiment, a computer-readable medium is provided for encoding and / or decoding video data. The computer-readable medium may include one or more computer-readable storage devices and program instructions stored in at least one of 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 data containing chroma components accordingly, and the luma components are received. One or more contexts for entropy coding the chroma intra-predictive mode are identified based on one or more multiples of collated luma blocks at predefined locations. The video data is decoded based on the identified contexts.

[0007] These and other purposes, features and advantages will become apparent from the following detailed description of exemplary embodiments, which should be read in conjunction with the accompanying drawings. Since the examples are for clarity to facilitate understanding for those skilled in the art, together with the detailed description, various features of the drawings are not to exact scale. The drawings are as follows: [Brief explanation of the drawing]

[0008] [Figure 1] This figure shows a networked computer environment according to at least one embodiment. [Figure 2] This is a diagram of the coding tree structure of the chroma and luma components of video data according to at least one embodiment. [Figure 3] This is an operation flowchart illustrating the steps performed by a program that codes video data, according to at least one embodiment. [Figure 4] Figure 1 is a block diagram of the internal and external components of a computer and server illustrated in at least one embodiment. [Figure 5]This is a block diagram of an exemplary cloud computing environment, including the computer system illustrated in Figure 1, according to at least one embodiment. [Figure 6] Figure 5 is a block diagram of the functional layer of an exemplary cloud computing environment according to at least one embodiment. [Modes for carrying out the invention]

[0009] Detailed embodiments of the claimed structures and methods are disclosed herein, but it should be understood that the disclosed embodiments are merely illustrative of the claimed structures and methods, which may be embodied in various forms. These structures and methods may, however, 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 to ensure that this disclosure is detailed and complete and fully conveys its scope to those skilled in the art. In this description, well-known features and technical details may be omitted to avoid unnecessarily obscuring the presented embodiments.

[0010] The embodiments generally relate to the field of data processing, more specifically to video encoding and decoding. The exemplary embodiments described below provide, among other things, systems, methods, and computer programs for encoding and / or decoding video data based on context associated with collated luma blocks at one or more predefined locations. Thus, some embodiments have the ability to improve the computational field by improving encoding and decoding efficiency using improved signaling for chromatic intra-predictive modes.

[0011] As mentioned earlier, AOMedia Video 1 (AV1) is an open video coding format designed for video transmission over the internet. It was developed as a successor to VP9 by the Alliance for Open Media (AOMedia), a consortium established in 2015 that includes semiconductor companies, video-on-demand providers, video content producers, software development companies, and web browser vendors. Many of the components of the AV1 project were sourced from previous research efforts by members of the alliance. Individual contributors started experimental technology platforms many years ago. For example, Xiph's / Mozilla's Daala had already released its code in 2010, Google's experimental VP9 evolution project VP10 was announced on September 12, 2014, and Cisco's Thor was released on August 11, 2015. Built on the VP9 codebase, AV1 incorporates additional technologies, some of which were developed in these experimental formats. The first version 0.1.0 of the AV1 standard codec was released on April 7, 2016. The Alliance announced the release of the AV1 bitstream specification on March 28, 2018, along with reference software-based encoders and decoders. A valid version 1.0.0 of the specification was released on June 25, 2018. A valid version 1.0.0 with Errata 1 of the specification was released on January 8, 2019. The AV1 bitstream specification includes a reference video codec.

[0012] In AV1, semi-decoupled partitioning (SDP) may be used. However, in SDP, the luma and chroma blocks of a single superblock can have different partitions, and the region of a single chroma block may cover multiple luma coding blocks, making it not always optimal to use the top-left position of the chroma block to identify the corresponding luma mode. In addition, when the luma and chroma blocks of a single superblock have different partitions, the CfL mode has a higher probability of being selected as the best mode, but this characteristic is not fully utilized in chroma mode signaling methods. Furthermore, when signaling chroma intra-predictive modes, all luma modes in the current superblock are available. However, this is not utilized to design better codewords for signaling chroma intra-predictive modes. Therefore, for improved signaling for chroma intra-predictive modes, it may be advantageous to identify one or more contexts for entropy coding the chroma intra-predictive modes based on collated luma blocks at one or more predefined positions.

[0013] Embodiments of methods, apparatus (systems), and computer-readable media will be described herein with reference to flowcharts and / or block diagrams of various embodiments. It will be understood that each block in a flowchart and / or block diagram, as well as combinations of blocks in a flowchart and / or block diagram, can be implemented by computer-readable program instructions.

[0014] Referring here to Figure 1, this is a functional block diagram of a network computer environment showing a video coding system 100 (hereinafter referred to as the "System") for encoding and / or decoding video data based on a coding tree structure type. It should be understood that Figure 1 provides only an example of one implementation form and does not imply any limitation regarding the 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 the 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, which interfaces with a user and can communicate with the server computer 114. As described below with reference to Figure 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, telephone, personal digital assistant, netbook, laptop computer, tablet computer, desktop computer, or any type of computing device that can run programs, access a network, and access a database.

[0016] 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 (laaS), as described below with respect to Figures 6 and 7. The 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] A server computer 114, which may be used to encode video data, is capable of running a video coding program 116 (hereinafter referred to as "the program") that can interact with a database 112. The video coding program method is described in more detail below with reference to Figure 3. In one embodiment, computer 102 may act as an input device including a user interface, and the program 116 may run primarily on the server computer 114. In an alternative embodiment, the program 116 may run primarily on one or more computers 102, and 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 standalone program or may be integrated into a larger video coding program.

[0018] However, it should be noted that the processing of program 116 may, in some cases, be shared between computer 102 and server computer 114 in any ratio. In other embodiments, program 116 may run on multiple computers, server computers, or any combination of computers and server computers, for example, multiple computers 102 communicating with a single server computer 114 via network 110. In other embodiments, for example, program 116 may run on multiple server computers 114 communicating with multiple client computers via network 110. Alternatively, the program may run on a network server communicating with a server and multiple client computers via a network.

[0019] Network 110 may include wired connections, wireless connections, fiber optic connections, 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 may include various types of networks, such as local area networks (LANs), wide area networks (WANs) such as the Internet, telecommunications networks such as public switched telephone networks (PSTNs), wireless networks, public switched networks, satellite networks, cellular networks (e.g., fifth-generation (5G) networks, long-term evolution (LTE) networks, third-generation (3G) networks, code division multiple access (CDMA) networks, etc.), public land mobile networks (PLMNs), metropolitan area networks (MANs), private networks, ad hoc networks, intranets, fiber optic-based networks, and / or combinations of these or other types of networks.

[0020] The number and arrangement of devices and networks shown in Figure 1 are provided as an example. In practice, there may be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or devices and / or networks in a different arrangement than that shown in Figure 1. Furthermore, two or more 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 in system 100 (e.g., one or more devices) may perform one or more functions described as being performed by other sets of devices in system 100.

[0021] Referring to Figure 2, a block diagram 200 of an exemplary coding tree structure of video data is illustrated. The coding tree structure may include a luma component 202 and a chroma component 204.

[0022] A semi-separated partitioning (SDP) scheme (i.e., a semi-separate tree (SST) for the chroma component or flexible block separation) may be used. According to SDP, the luma component 202 and chroma component 204 of a certain super block (SB) may have the same or different block partitions, which may depend on the luma coding block size or luma tree depth. When the luma block area size is greater than a threshold T1 or the coding tree partition depth of the luma block is less than or equal to a threshold T2, the chroma block may use the same coding tree structure as the luma. Otherwise, when the block area size is less than or equal to T1 or the luma partition depth is greater than T2, the corresponding chroma block may have a different coding block partition with the luma component, which may be 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.

[0023] According to one or more embodiments, when SDP may be applied and one chroma coding block may be associated with a plurality of luma coding blocks, the context used for entropy coding the chroma intra prediction mode may depend on the corresponding luma block located at one or more predefined positions. In one embodiment, the one or more predefined positions may include the middle position and / or the upper left corner of the current chroma block. In one embodiment, the middle position of the current chroma block may be the upper left corner of the current chroma block.

[0024] In one embodiment, when both the middle position and the upper left corner of the current chroma block may be used to identify the corresponding luma block, these two luma modes may be quantized before performing context selection. In one embodiment, the luma mode may be quantized to two values before performing the context selection process, which may be a directional mode or a non-directional mode.

[0025] In other embodiments, the omnidirectional mode may be quantized to a single value, and the directional modes may be quantized to a smaller set according to their angles. In one example, the directional modes may be quantized to four values, where 0 means that the angle of the current mode can be less than 90 degrees, 1 means that the angle of the current mode can be from 90 degrees to 135 degrees, 2 means that the angle of the current mode can be from 135 degrees to 180 degrees, and 3 means that the angle of the current mode can be greater than 180 degrees.

[0026] In one embodiment, the context may be derived as an intra prediction mode that can be used to predict a majority of the samples of the collocated luma blocks.

[0027] In one embodiment, a plurality of sample positions may be predefined, an intra prediction mode associated with these positions for predicting the collocated luma blocks may be identified, and then a context value may be derived using one of these identified prediction modes. In one example, the context value may be derived using the prediction mode that can be most frequently used among the identified prediction modes. In a second example, the predefined sample positions include four corner samples and a center / middle sample. In a third example, the predefined sample positions include four corner samples. In a fourth example, the predefined sample positions include two selected positions of the four corner samples and one center / middle sample. In a fifth example, the predefined sample positions include three selected positions of the four corner samples and one center / middle sample.

[0028] In one embodiment, if a collated luma block at one or more predefined locations may not be predicted by an intra-prediction mode, and the current chroma coding block can be predicted by an intra-prediction mode, then the prediction mode of the collated luma block can be mapped to one or more predefined intra-prediction modes. For example, when a collated luma block can be coded by an IBC or Palette mode, a default intra-prediction mode can be used to derive a context for entropy coding the chroma intra-prediction mode. The default intra-prediction mode includes, but is not limited to, DC, SMOOTH, SMOOTH-H, SMOOTH-V, or Paeth prediction modes.

[0029] According to one or more embodiments, when signaling a chromatintra prediction mode, a flag, namely a CfL flag, may be signaled first to indicate whether the current chromat mode could be a CfL mode. In one embodiment, the chromatintra prediction modes of a neighboring block may be used to derive a context for signaling the CfL flag. In one example, a first context may be used when none of the neighboring chromat modes are likely to be CfL modes. Otherwise, a second context may be used. In another example, a first context may be used when none of the neighboring chromat modes are likely to be CfL modes. Otherwise, a second context may be used when one of the neighboring chromat modes is likely to be a CfL mode. Otherwise, a third context may be used.

[0030] In one embodiment, a context for signaling the CfL flag can be derived using the corresponding luminous modes. In one embodiment, the coordinates of the corresponding luminous modes may be located in the middle and upper-left corner of the current chroma block. In another embodiment, a first context may be used when the corresponding luminous modes may be directional modes; otherwise, a second context may be used. In another embodiment, three contexts may be used when two corresponding luminous modes may be employed to determine the context of the CfL flag. A first context may be used when both corresponding luminous modes may be omnidirectional modes; otherwise, a second context may be used when one of the corresponding luminous modes may be omnidirectional; otherwise, a third context may be used.

[0031] According to one or more embodiments, a list can be constructed containing previously encoded luma modes within the current picture / slice / tile for signaling chromintra prediction modes. Only the N luma modes with the highest frequency of occurrence may be allowed and signaled for the current chroma block, where N may be a positive integer. In one embodiment, N may be a power of 2. In one embodiment, only previously encoded luma modes within the current superblock row may be used. In one embodiment, when SDP may be enabled, only previously encoded luma modes within the current superblock may be used.

[0032] According to one or more embodiments, all nominal intra-predictive angles allowed for a luma-coded block are also allowed and signaled for a chroma-coded block, whereas only a subset of delta angles relative to nominal angles are allowed and signaled for a chroma-intra-coded block. In one embodiment, all omnidirectional modes, such as DC, SMOOTH, SMOOTH-H, and SMOOTH-V modes, are allowed and signaled for a chroma-intra-coded block. In one embodiment, only delta angles relative to collated luma-intra-predictive modes are allowed and signaled for a chroma-coded block. In one embodiment, nominal angles may first be signaled together with omnidirectional modes. Then, if the current mode is a directional mode and equal to a collated luma-nominal mode, a second flag may be signaled to indicate the index of the delta angle relative to the nominal angle. In other embodiments, all intra-predictive modes allowed for a chroma-coded block may be signaled together.

[0033] Referring here to Figure 3, an operational flowchart illustrating the steps of method 300 for encoding and / or decoding video data is shown. In some implementations, one or more process blocks in Figure 3 may be executed by computer 102 (Figure 1) and server computer 114 (Figure 1). In some implementations, one or more process blocks in Figure 3 may be executed by other devices or groups of devices separate from computer 102 and server computer 114, or including computer 102 and server computer 114.

[0034] In 302, method 300 includes the step of receiving video data that includes chroma and luma components.

[0035] In 304, method 300 includes the step of identifying one or more contexts for entropy coding of the chromatintra prediction mode based on coordinated luma blocks located at one or more predefined locations.

[0036] In 306, method 300 includes the step of decoding video data based on the identified context.

[0037] It should be understood that Figure 3 provides only an example of one implementation configuration and does not imply any limitation on how different embodiments may be carried out. Many modifications to the illustrated environment may be made based on design and implementation requirements.

[0038] Figure 4 is a block diagram 400 of the internal and external components of the computer shown in Figure 1, according to one exemplary embodiment. It should be understood that Figure 4 provides only an example of one implementation and does not imply any limitation regarding the environment in which different embodiments may be implemented. Many modifications to the illustrated environment may be made based on design and implementation requirements.

[0039] Computer 102 (Figure 1) and server computer 114 (Figure 1) may include sets of internal components 800A, 800B and external components 900A, 900B, respectively, as shown in Figure 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.

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

[0041] One or more operating systems 828, software programs 108 (Figure 1), and video coding programs 116 (Figure 1) on the server computer 114 (Figure 1) are stored in one or more computer-readable tangible storage devices 830 so that they can be executed by one or more of the respective processors 820 via one or more of their respective RAMs 822 (typically including cache memory). In the embodiment shown in Figure 4, each of the computer-readable tangible storage devices 830 is a magnetic disk storage device of an internal hard drive. Alternatively, each of the computer-readable tangible storage devices 830 is a semiconductor storage device such as a ROM 824, EPROM, flash memory, optical disk, magneto-optical disk, solid-state disk, compact disk (CD), digital versatile disk (DVD), floppy disk, cartridge, magnetic tape, and / or other types of non-temporary computer-readable tangible storage devices that can store computer programs and digital information.

[0042] Each set of internal components 800A and 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 program 108 (Figure 1) and video coding program 116 (Figure 1), may be stored in one or more of the respective portable computer-readable tangible storage devices 936, read via their respective R / W drives or interfaces 832, and loaded into their respective hard drives 830.

[0043] Each set of internal components 800A and 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 link. The software program 108 (Figure 1) and video coding program 116 (Figure 1) on the server computer 114 (Figure 1) can be downloaded from an external computer to computer 102 (Figure 1) and the server computer 114 via the network (e.g., the Internet, a local area network, or another wide area network) and the respective network adapter or interface 836. From the network adapter or interface 836, the software program 108 and video coding program 116 on the server computer 114 are loaded onto their respective hard drives 830. The network may include copper, fiber optic, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers.

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

[0045] While this disclosure includes a detailed description of cloud computing, it should be understood in advance that the implementations of the teachings enumerated herein are not limited to cloud computing environments. Rather, some embodiments can be implemented in conjunction with any other type of computing environment currently known or to be developed in the future.

[0046] 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 deployed with minimal administrative effort or interaction with service providers. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0047] The characteristics are as follows: On-demand self-service: Cloud consumers can unilaterally provision computing functions such as server time and network storage automatically as needed, without requiring human interaction with service providers. Extensive network access: Functionality is 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: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated as needed. Consumers generally have no control or knowledge of the exact location of the resources provided, but they have a sense of location independence in that they can specify the location at a higher level of abstraction (e.g., country, state, or data center). Rapid elasticity: Features can be provisioned quickly and elastically, sometimes automatically, to scale out rapidly, and released quickly to scale in rapidly. To consumers, the features available for provisioning often appear unlimited and can be purchased in any quantity at any time. Measured Services: Cloud systems automatically control and optimize resource usage by leveraging metric capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported to provide transparency to both the providers and consumers of the services being used.

[0048] The service model is as follows: Software as a Service (SaaS): The functionality provided to consumers is the use of a provider's applications running on cloud infrastructure. These applications are accessible from various client devices via thin client interfaces, such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or even individual application functionalities, except for limited user-specific application configuration settings. Platform as a Service (PaaS): The functionality offered to consumers is the deployment of applications they have created or acquired, written using programming languages ​​and tools supported by the provider, onto a cloud infrastructure. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they do control the deployed applications and, in some cases, the configuration of the application hosting environment. Infrastructure as a Service (laaS): The functionality provided to consumers is the provisioning of processing, storage, networking, and other basic computing resources, allowing consumers to deploy and run any software, including operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but they do have limited control over the operating system, storage, deployed applications, and, in some cases, selected networking components (e.g., host firewalls).

[0049] The deployment model is as follows: Private Cloud: The cloud infrastructure operates solely for the organization. It may be managed by the organization or a third party, and may reside on-premises or off-premises. Community Cloud: A cloud infrastructure is shared by several organizations and supports a specific community with shared interests (e.g., mission, security requirements, policies, and compliance considerations). It may be managed by an organization or a third party and may reside on-premises or off-premises. Public cloud: Cloud infrastructure is provided to the general public or large industry groups and is owned by organizations that sell cloud services. Hybrid Cloud: Cloud infrastructure is a configuration of two or more clouds (private, community, or public) that remain separate entities but are linked together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0050] Cloud computing environments are service-oriented, focusing on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is infrastructure, including a network of interconnected nodes.

[0051] Referring to Figure 5, an exemplary cloud computing environment 500 is illustrated. As shown in the illustration, the cloud computing environment 500 includes one or more cloud computing nodes 10 that can communicate with local computing devices used by cloud consumers, such as personal digital assistants (PDAs) or mobile phones 54A, desktop computers 54B, laptop computers 54C, and / or automotive computer systems 54N. The cloud computing nodes 10 can communicate with each other. They may be physically or virtually grouped (not shown) in one or more networks, such as the private cloud, community cloud, public cloud, hybrid cloud, or a combination thereof. This allows the cloud computing environment 600 to provide infrastructure, platforms, and / or software as a service, eliminating the need for cloud consumers to maintain resources on their local computing devices. The types of computing devices 54A-54N shown in Figure 5 are intended for illustrative purposes only, and it should be understood that the cloud computing nodes 10 and the cloud computing environment 500 can communicate with any type of computerized device via any type of network and / or network addressable connections (e.g., using a web browser).

[0052] 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 functionalities shown in Figure 6 are for illustrative purposes only, and embodiments are not limited thereto. As illustrated, the following layers and corresponding functionalities are provided:

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

[0054] The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities may be provided: namely, a virtual server 71, virtual storage 72, a virtual network 73 including a virtual private network, a virtual application and operating system 74, and a virtual client 75.

[0055] For example, the management layer 80 may provide the functions described below. Resource provisioning 81 provides the dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Measurement and pricing 82 provides cost tracking as resources are used within the cloud computing environment and billing or invoicing for the consumption of these resources. For example, these resources may include application software licenses. Security provides identification and verification for cloud consumers and tasks, as well as protection for data and other resources. The user portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 provides the allocation and management of cloud computing resources to ensure that the required service levels are met. Service level agreement (SLA) planning and execution 85 provides the pre-positioning and procurement of cloud computing resources whose future requirements are expected to conform to the SLA.

[0056] The workload layer 90 provides examples of functions that can leverage a cloud computing environment. 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 coding 96. Video coding 96 can encode and / or decode video data based on the context associated with collated luma blocks at one or more predefined locations.

[0057] Some embodiments may relate to systems, methods, and / or computer-readable media in integration at any possible level of technical detail. Computer-readable media may include computer-readable non-temporary storage media having computer-readable program instructions for causing a processor to perform an action.

[0058] A computer-readable storage medium can be a tangible device capable of holding and storing instructions for use by an instruction-executing device. A computer-readable storage medium may, but is not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, 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 multipurpose disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or grooved raised structures on which instructions are recorded, and any suitable combination thereof. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., optical pulses through optical fiber cables), or electrical signals transmitted through wires.

[0059] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or 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 fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface of each computing / processing device receives computer-readable program instructions from the network and transfers the computer-readable program instructions for storage on a computer-readable storage medium within each computing / processing device.

[0060] The computer-readable program code / instructions for performing an operation may be either source code 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, integrated circuit configuration data, or object-oriented programming languages ​​such as Smalltalk and C++, and procedural programming languages ​​such as the C programming language or similar programming languages. The computer-readable program instructions may run entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer, 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 via any type of network, including a local area network (LAN) or wide area network (WAN), or it may be connected to an external computer (for example, via 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 computer-readable program instructions by personalizing the electronic circuit using state information of computer-readable program instructions in order to perform an action or operation.

[0061] These computer-readable program instructions may be provided to a general-purpose computer, a dedicated computer, or a processor of another programmable data processing device for manufacturing a machine, such that instructions executed via the processor of a computer or other programmable data processing device create means for performing functions / operations specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can instruct computers, programmable data processing devices, and / or other devices to function in a particular way, and as a result, a computer-readable storage medium having stored instructions may include a product containing instructions that perform modes of functions / operations specified in one or more blocks of a flowchart and / or block diagram.

[0062] Computer-readable program instructions may also be loaded onto a computer, other programmable device, or other device to generate a computer-executed process by causing the computer, other programmable device, or other device to perform a series of action steps so that the instructions executed on the computer, other programmable device, or other device perform a function / operation specified in one or more blocks of a flowchart and / or block diagram.

[0063] The flowcharts and block diagrams in the figures illustrate the architecture, functions, and operation of possible implementations of systems, methods, and computer-readable media in various embodiments. In this regard, each block in a flowchart or block diagram may represent a module, segment, or part of an instruction containing one or more executable instructions for implementing a specified logical function. Methods, computer systems, and computer-readable media may contain more blocks, fewer blocks, different blocks, or blocks in different arrangements than those illustrated in the figures. In some alternative implementations, the functions described in the blocks may be performed in an order different from that shown in the figures. For example, two blocks shown consecutively may actually be executed simultaneously or substantially simultaneously, or blocks may sometimes be executed in reverse order depending on the related functions. It should also be noted that each block in a block diagram and / or flowchart, and combinations of blocks in a block diagram and / or flowchart, may be implemented by a dedicated hardware-based system that performs a specified function or operation, or a combination of dedicated hardware and computer instructions.

[0064] It will be apparent that the systems and / or methods described herein may be implemented in different forms of hardware, firmware, or combinations of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods is not limited to the implementation form. 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 software and hardware may be designed to implement the systems and / or methods based on the descriptions herein.

[0065] Any elements, actions, or instructions used herein should not be construed as important or essential unless expressly stated otherwise. Furthermore, where used herein, the articles “a” and “an” are intended to include one or more items and may be used interchangeably with “one or more.” Additionally, where used herein, the term “set” is intended to include one or more items (e.g., related items, unrelated items, combinations of related and unrelated items) and may be used interchangeably with “one or more.” When only one item is intended, the term “one” or a similar term is used. Furthermore, where used herein, terms such as “has,” “have,” and “having” are intended to be open-ended terms. Additionally, the phrase “based on” is intended to mean “at least partially based on” unless otherwise specified.

[0066] The descriptions of various aspects and embodiments are presented for illustrative purposes only and are not intended to be exhaustive or limitful to the disclosed embodiments. While combinations of features are described in the claims and / or disclosed herein, 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 described in the claims and / or disclosed herein. Each dependent claim listed below may depend directly on only one claim, but the disclosure of possible implementations includes each dependent claim in combination with all other claims in the claim set. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been selected to best describe the principles of the embodiments, their 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. [Explanation of symbols]

[0067] 10 Cloud Computing Nodes 54A Computing devices (mobile phones) 54B Computing Devices (Desktop Computers) 54C Computing Devices (Laptop Computers) 54N Computing Devices (Automotive Computer Systems) 60 hardware and software layers 61 Mainframe 62 RISC (Reduced Instruction Set Computer) architecture-based servers 63 servers 64 Blade Servers 65 Storage Devices 66 Networks and Network Components 67 Network Application Server Software 68 Database Software 70. Virtualization Layer 71 Virtual Servers 72 Virtual Storage 73 Virtual networks including virtual private networks 74 Virtual Applications and Operating Systems 75 Virtual Clients 80 Management layer 81. Resource Provisioning 82 Measurement and Pricing 83 User Portal 84. Service Level Management 85. Planning and Implementation of Service Level Agreements (SLAs) 90 workload layers 91 Mapping and Navigation 92 Software Development and Lifecycle Management 93 Virtual Classroom Educational Delivery 94 Data Analysis Processing 95 Transaction Processing 96 Video Coding 100 Video Coding Systems 102 Computer 104 Processors 106 Data Storage Devices 108 Software Programs 110 Communication Network 112 Databases 114 Server Computers 116 Video Coding Programs 200 Block diagram of the coding tree structure 202 Luma components 204 Chroma Components 400 Block diagrams of internal and external components 500 Cloud Computing Environments 600 Functional Abstraction Layer 800A, 800B Internal Components 820 processor 822 RAM 824 ROM 826 Bus 828 Operating Systems 830 Tangible storage devices, hard drives 832 R / W drive or interface 836 Network adapter or interface 840 Device Drivers 900A, 900B External Components 920 Computer Display Monitor 930 Keyboard 934 Computer Mouse 936 Portable Computer Readable Tangible Memory Device

Claims

1. A video decoding method that can be executed by one or more processors, The steps include receiving a video bitstream having multiple blocks, including the current chroma block, and a first flag for the current chroma block, A step of selecting an entropy decoding context for entropy decoding one or more parameters of the current chroma block, based on the number of neighboring blocks of the current block using chroma-from-luma (CfL) mode, If the number of neighboring blocks using the CfL mode is less than a threshold, the step of selecting a first context as the entropy decoding context, If the number of neighboring blocks using the CfL mode is greater than the threshold, the step of selecting a second context as the entropy decoding context, wherein the second context is different from the first context. Steps including, A step of entropy decoding the first flag from the video bitstream using the entropy decoding context, wherein the first flag indicates whether the CfL mode is enabled for the current chroma block. A step of decoding the current chroma block according to the value of the first flag, A method that includes [a certain feature].

2. The method according to claim 1, wherein the first flag is entropy-decoded based on the respective intra-prediction modes of one or more neighboring chroma blocks of the current chroma block.

3. The method according to claim 1, wherein the threshold value is 1.

4. The method according to claim 1, wherein the first flag is entropy-decoded based on the prediction mode of one or more luma blocks corresponding to the current chroma block.

5. The method according to claim 4, wherein the one or more luma blocks include a first luma block located in the upper left corner of the current chroma block.

6. The method according to claim 4, wherein the one or more luma blocks include a first luma block located between the current chroma blocks.

7. If the prediction mode of the first luma block of the one or more luma blocks is a directional mode, the first flag is entropy-decoded using the third context, If the prediction mode of the first luma block is omnidirectional mode, the first flag is entropy-decoded using the fourth context. The method according to claim 4.

8. The method according to claim 1, further comprising the step of constructing a list of possible chromatintra prediction modes for the current chromat block based on the set of N chromat modes with the highest occurrence rate, wherein N is a positive integer.

9. The method according to claim 8, wherein the set of N luma modes is signaled in the video bitstream.

10. The method according to claim 8, wherein N is a power of 2.

11. A computer program for causing one or more processors to perform the method described in any one of claims 1 to 10.