Video encoding and decoding method and apparatus, computer system, and computer-readable medium

By identifying the brightness block context of predefined positions in AV1 video encoding, signaling notification of chromaticity intra prediction mode is improved, the problem of insufficient efficiency in the prior art is solved, and more efficient video encoding and decoding is achieved.

CN114731393BActive Publication Date: 2025-08-01TENCENT AMERICA LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080063291.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-10-02
Filing Date
2020-11-09
Publication Date
2025-08-01
Estimated Expiration
2040-11-09

AI Technical Summary

Technical Problem

In the existing AV1 video encoding and decoding technologies, the signaling notification efficiency of the chroma intra prediction mode is not high, resulting in insufficient video encoding and decoding efficiency.

Method used

The signaling notification process is improved by identifying entropy encoding contexts for the chroma intra prediction mode by identifying co-located luminance blocks at one or more predefined locations.

Benefits of technology

The efficiency of video encoding and decoding is improved, and signaling notification of chroma intra prediction mode is optimized.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114731393B_ABST
    Figure CN114731393B_ABST
Patent Text Reader

Abstract

Methods, computer programs, and computer systems are provided for encoding or decoding video data. Video data including chrominance components and a luminance component is received. One or more contexts for entropy encoding a chrominance intra prediction mode are identified based on co-located luminance blocks at one or more predefined positions. The video data is decoded based on the identified contexts.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. Provisional Patent Application No. 63 / 026,495 filed on May 18, 2020 and U.S. Patent Application No. 17 / 061,854 filed on October 2, 2020, the entire contents of which are incorporated herein. Technical Field

[0003] The present invention relates to the field of data processing, and more particularly to video encoding and / or decoding. Specifically, the present invention relates to a video decoding method and apparatus, a computer system, and a computer-readable medium. Background Art

[0004] AOMedia Video 1 (AV1) is an open video coding format designed for video transmission over the internet. Developed as the successor to VP9, AOMedia was formed in 2015 by the Alliance for Open Media (AOMedia), a consortium comprised of semiconductor companies, video-on-demand providers, video content producers, software developers, and web browser vendors. Many components of the AV1 project stem from previous research work by alliance members. Individual contributors launched experimental technology platforms several years ago: Xiph / Mozilla's Daala released code in 2010, Google's experimental VP9 evolution project, VP10, was announced on September 12, 2014, and Cisco's Thor was announced on August 11, 2015. Building on the VP9 codebase, AV1 incorporates other technologies, some of which were developed within these experimental formats. The first version 0.1.0 of the AV1 reference codec was released on April 7, 2016. The consortium announced the release of the AV1 bitstream specification, along with a software-based reference encoder and decoder, on March 28, 2018. Verified version 1.0.0 of the specification was released on June 25, 2018, and Verified version 1.0.0 with Errata 1 was released on January 8, 2019. The AV1 bitstream specification includes a reference video codec. Existing AV1 technology suffers from inefficient video encoding and decoding. Summary of the Invention

[0005] Embodiments relate to methods, systems, and computer-readable media 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 chrominance components and luminance components. Identifying one or more contexts for entropy encoding a chrominance intra prediction mode based on co-located luminance blocks at one or more predefined locations. Decoding the video data based on the identified contexts.

[0006] According to another aspect, a computer system for encoding and / or decoding video data is provided. 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 on 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 capable of performing the method. The method may include receiving video data including chrominance components and luminance components. Identifying one or more contexts for entropy encoding a chrominance intra prediction mode based on co-located luminance blocks at one or more predefined locations. Decoding the video data based on the identified contexts.

[0007] According to another aspect, an apparatus for encoding and / or decoding video data is provided. The apparatus includes a receiving module that receives video data including chrominance components and luminance components; an identifying module that identifies one or more contexts for entropy encoding a chrominance intra prediction mode based on co-located luminance blocks at one or more predefined locations; and a decoding module that decodes the video data based on the identified contexts.

[0008] 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 on at least one of the one or more tangible storage devices that are executable by a processor. The program instructions are executable by the processor to perform a method that may correspondingly include receiving video data including chrominance components and luminance components. Identifying one or more contexts for entropy encoding a chrominance intra prediction mode based on co-located luminance blocks at one or more predefined locations. Decoding the video data based on the identified contexts.

[0009] The present invention provides a method, apparatus, computer system, and computer-readable medium for encoding and / or decoding video data. The method includes receiving video data including chrominance components and luminance components, identifying one or more contexts for entropy encoding of chrominance intra prediction modes based on co-located luminance blocks at one or more predefined positions, and decoding the video data based on the identified contexts. By identifying one or more contexts for entropy encoding of chrominance intra prediction modes based on co-located luminance blocks at one or more predefined positions, the signaling of chrominance intra prediction modes is improved, thereby enhancing the efficiency of video encoding and decoding. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] These and other objects, features, and advantages will become apparent from the following detailed description of illustrative embodiments to be read in conjunction with the accompanying drawings. The various features of the drawings are not to scale as the illustrations are for clarity in facilitating understanding by those skilled in the art in conjunction with the detailed description. In the drawings:

[0011] Figure 1 illustrates a networked computer environment according to at least one embodiment;

[0012] Figure 2 is a diagram of an encoding tree structure of luminance and chrominance components of video data according to at least one embodiment.

[0013] Figure 3 is a flowchart of operations showing steps performed by a program for encoding video data according to at least one embodiment;

[0014] Figure 4 is according to at least one embodiment Figure 1 a block diagram of internal and external components of a computer and a server depicted in

[0015] Figure 5 is according to at least one embodiment including Figure 1 a block diagram of an illustrative cloud computing environment of a computer system depicted in

[0016] Figure 6 is according to at least one embodiment of Figure 5 a block diagram of the functional layers of an illustrative cloud computing environment. DETAILED DESCRIPTION

[0017] Specific embodiments of the claimed structures and methods are disclosed herein; however, it is to be understood that the disclosed embodiments are merely illustrative of the claimed structures and methods that may be implemented in various forms. These structures and methods may, however, be embodied in many different forms and should not be construed as limited to the exemplary embodiments set forth 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 specification, details of well-known features and techniques may be omitted to avoid unnecessarily obscuring the presented embodiments.

[0018] Embodiments generally relate to the field of data processing and, more particularly, to video encoding and decoding. The exemplary embodiments described below provide systems, methods, and computer programs for encoding and / or decoding video data based in particular on context associated with co-located luma blocks at one or more predefined locations. Thus, some embodiments have the ability to improve the computational field by using improved signaling for chroma intra prediction modes to improve encoding and decoding efficiency.

[0019] As previously described, AOMedia Video 1 (AV1) is an open video coding format designed for video transmission over the Internet. AOMedia Video 1 was developed by the Alliance for Open Media (AOMedia) as the successor to VP9. The alliance was formed in 2015 and includes semiconductor companies, video-on-demand providers, video content producers, software development companies, and web browser vendors. Many components of the AV1 project originated from prior research work by alliance members. Individual contributors started experimental technology platforms several years ago: Xiph / Mozilla's Daala had its code published in 2010, Google's experimental VP9 evolution project VP10 was announced on September 12, 2014, and Cisco's Thor had its code published on August 11, 2015. Based on the VP9 codebase, AV1 incorporated other technologies, some of which were developed in these experimental formats. The first version 0.1.0 of the AV1 reference codec was published on April 7, 2016. The alliance announced the release of the AV1 bitstream specification, along with software-based reference encoder and decoder, on March 28, 2018. A validation version 1.0.0 of the specification was released on June 25, 2018. A validation version 1.0.0 of the specification with errata 1 was released on January 8, 2019. The AV1 bitstream specification includes reference video codecs.

[0020] In AV1, semi - decoupled partitioning (SDP) can be used. However, in SDP, the luma blocks and chroma blocks in a superblock can have different partitions, and the area of a chroma block may cover multiple luma coding blocks. So, it may not be optimal to always use the top - left position of the chroma block to locate the corresponding luma mode. Additionally, when the luma and chroma blocks in a superblock have different partitions, the CfL mode is more likely to be selected as the best mode, but this characteristic is not well utilized in the chroma mode signaling method. Moreover, when signaling the intra - chroma prediction mode, all the luma modes within the current superblock are available. But this is not utilized to design better codewords for signaling the intra - chroma prediction mode. Therefore, to improve the signaling of the intra - chroma prediction mode, it may be advantageous to identify one or more contexts for entropy - coding the intra - chroma prediction mode based on co - located luma blocks at one or more predefined positions.

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

[0022] Now referring to Figure 1 , a functional block diagram of a networked computer environment of a video encoding system 100 (hereinafter “the system”) for encoding and / or decoding video data based on a coding tree structure type is shown. It should be understood that Figure 1 only an illustration of one implementation is provided, without implying any limitation to the environments in which different embodiments can be implemented. Many modifications can be made to the depicted environment based on design and implementation requirements.

[0023] The system 100 can include a computer 102 and a server computer 114. The computer 102 can communicate with the server computer 114 via a communication network 110 (hereinafter “the network”). The computer 102 can include a processor 104 and a software program 108 stored on a data storage device 106 and capable of connecting to a user interface and communicating with the server computer 114. As will be discussed with reference to Figure 4 , the computer 102 can include internal components 800A and external components 900A respectively, and the server computer 114 can include internal components 800B and external components 900B respectively. The computer 102 can be, for example, a mobile device, a phone, a personal digital assistant, a netbook, a laptop computer, a tablet computer, a desktop computer, or any type of computing device capable of running programs, accessing the network, and accessing a database.

[0024] As discussed below regarding Figure 6 the server computer 114 may also operate in a cloud computing service model such as Software as a Service (SaaS), Platform as a Service (PaaS), or Infrastructure as a Service (IaaS). The server computer 114 may also be located in a cloud computing deployment model such as a private cloud, community cloud, public cloud, or hybrid cloud.

[0025] The server computer 114, which can be used to encode video data, can run a video encoding program 116 (hereinafter “the program”) that can interact with the database 112. The video encoding program method is described in more detail below with reference to Figure 3 In one embodiment, the computer 102 may operate as an input device including a user interface, while 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 to process and store 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.

[0026] However, it should be noted that in some instances, the processing of the program 116 may be shared between the computer 102 and the server computer 114 at any ratio. In another embodiment, the program 116 may run on more than one computer, server computer, or some combination of computers and server computers. For example, multiple computers 102 communicate with a single server computer 114 via the network 110. In another embodiment, for example, the program 116 may run on multiple server computers 114, and the multiple server computers communicate with multiple client computers via the network 110. Alternatively, the program may run on a web server that communicates with the server and multiple client computers via the network.

[0027] Network 110 may include a wired connection, a wireless connection, a fiber optic connection, or some combination thereof. Generally, network 110 may 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 a local area network (LAN), a wide area network (WAN) such as the Internet, a telecommunications network such as a 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, a fiber-based network, etc., and / or a combination of these or other types of networks.

[0028] Figure 1 The number and arrangement of the devices and networks shown are merely examples. In fact, there may be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or devices and / or networks with a different arrangement from those Figure 1 shown. Additionally, Figure 1 two or more of the devices shown may be implemented within a single device, or Figure 1 the single device shown may be implemented as multiple distributed devices. Additionally or alternatively, a group of devices (e.g., one or more devices) of system 100 may perform one or more functions described as being performed by another group of devices of system 100.

[0029] Now referring to Figure 2 , a block diagram 200 of an exemplary coding tree structure for video data is depicted. The coding tree structure may include a luminance component 202 and a chrominance component 204.

[0030] A semi-decoupled partitioning (SDP) scheme (i.e., a semi-separated tree (SST) or a flexible block partitioning of the chrominance component) may be used. According to SDP, the luminance component 202 and the chrominance component 204 in a superblock (SB) may have the same or different block partitions, which may depend on the luminance coding block size or the luminance tree depth. When the luminance block area size is greater than a threshold T1 or the coding tree partition depth of the luminance block is less than or equal to a threshold T2, then the chrominance block may use the same coding tree structure as the luminance. Otherwise, when the block area size is less than or equal to T1 or the luminance partition depth is greater than T2, the corresponding chrominance block may have a different coding block partition from the luminance component, which may be referred to as the flexible block partitioning of the chrominance component. T1 may be a positive integer, such as 128 or 256. T2 may be a positive integer, such as 1 or 2.

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

[0032] In one embodiment, when both the middle position and the upper left corner of the current chrominance block can be used to locate the corresponding luminance block, then these two luminance modes can be quantized before performing context selection. In one embodiment, the luminance mode can be quantized into two values before performing the context selection process, and the luminance mode can be an oriented mode or a non-oriented mode.

[0033] In another embodiment, the non-oriented mode can be quantized into a single value, and the oriented mode can be quantized into a smaller set according to its angle. In an example, the oriented mode can be quantized into 4 values, where 0 means the angle of the current mode can be equal to or less than 90 degrees, 1 means the angle of the current mode can be between 90 degrees and 135 degrees, 2 means the angle of the current mode can be between 135 degrees and 180 degrees, and 3 means the angle of the current mode can be greater than 180 degrees.

[0034] In one embodiment, the context can be derived as an intra prediction mode that can be used to predict most of the samples in the co-located luminance block.

[0035] In one embodiment, multiple sample positions can be predefined, and the intra prediction modes associated with these positions for predicting the co-located luminance block can be identified, and then one of these identified prediction modes can be used to derive the context value. In an example, the prediction mode most frequently used among the identified prediction modes can be used to derive the context value. 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 among the four corner samples and a center / middle sample. In a fifth example, the predefined sample positions include three selected positions among the four corner samples and a center / middle sample.

[0036] In one embodiment, if co-located luma blocks at one or more predefined positions cannot be predicted by an intra prediction mode while the current chroma coding block can be predicted by an intra prediction mode, the prediction mode of the co-located one or more luma blocks may be mapped to one or more predefined intra prediction modes. In one example, when the co-located luma blocks can be coded by IBC or Palette mode, the default intra prediction mode may 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 mode.

[0037] According to one or more embodiments, when signaling the chroma intra prediction mode, a flag, i.e., the CfL flag, may be signaled first to indicate whether the current chroma mode can be a CfL mode. In one embodiment, the chroma intra prediction mode of an adjacent block may be used to derive a context for signaling the CfL flag. In one example, when neither of the adjacent chroma modes is a CfL mode, the first context may be used. Otherwise, the second context may be used. In another example, when neither of the adjacent chroma modes is a CfL mode, the first context may be used. Otherwise, when one of the adjacent chroma modes can be a CfL mode, the second context may be used. Otherwise, the third context may be used.

[0038] In one embodiment, the corresponding luma mode may be used to derive a context for signaling the CfL flag. In one embodiment, the coordinates of the corresponding luma mode may be located at the middle position and the upper left corner of the current chroma block. In another embodiment, when the corresponding luma mode can be a directional mode, the first context may be used. Otherwise, the second context may be used. In another embodiment, when two corresponding luma modes can be applied to determine the context of the CfL flag, 3 contexts may be used. When two corresponding luma modes can be non-directional modes, the first context may be used. Otherwise, when one of the corresponding luma modes can be a non-directional mode, the second context may be used. Otherwise, the third context may be used.

[0039] According to one or more embodiments, to signal a chrominance intra prediction mode, a list can be constructed that includes previously encoded luma modes within the current picture / slice / tile. For the current chrominance block, only the N luma modes with the highest occurrence rate can be allowed and signaled, where N can be a positive integer. In one embodiment, N can be a power of 2 value. In one embodiment, only the previously encoded luma modes within the current superblock row can be used. In one embodiment, when SDP can be enabled, only the previously encoded luma modes within the current superblock can be used.

[0040] According to one or more embodiments, all nominal intra prediction angles can be allowed for luma encoded blocks and all nominal intra prediction angles can also be allowed and signaled for chroma encoded blocks, while for chroma intra encoded blocks only a subset of the incremental angles for the nominal angles can be allowed and signaled. In one embodiment, all non - directional modes, such as DC, SMOOTH, SMOOTH - H, SMOOTH - V modes, can be allowed and signaled for chroma intra encoded blocks. In one embodiment, only the incremental angles for co - located luma intra prediction modes can be allowed and signaled for chroma encoded blocks. In one embodiment, the nominal angle can be signaled first along with the non - directional modes. Thereafter, if the current mode can be a directional mode and equal to the co - located luma nominal mode, a second flag can be signaled to indicate the index of the incremental angle for the nominal angle. In another embodiment, all allowed intra prediction modes for chroma encoded blocks can be signaled together.

[0041] Now referring to Figure 3 , an operational flowchart depicting the steps of a method 300 for encoding and / or decoding video data is shown. In some implementations, Figure 3 one or more processing blocks of Figure 1 can be executed by a computer 102 ( Figure 1 ) and a server computer 114 ( Figure 3 ). In some implementations,

[0042] one or more processing blocks of

[0043] can be executed by another device or group of devices separate from or including the computer 102 and the server computer 114.

[0044] At 306, method 300 includes decoding video data based on the identified context.

[0045] It will be appreciated that Figure 3 only an illustration of one implementation is provided and does not imply any limitation on how different implementations can be achieved. Many modifications can be made to the depicted environment based on design and implementation requirements.

[0046] Figure 4 is according to an illustrative implementation Figure 1 Block diagram 400 of the internal and external components of the computer depicted in. It should be understood that Figure 4 only an illustration of one implementation is provided and does not imply any limitation on the environment in which different implementations can be achieved. Many modifications can be made to the depicted environment based on design and implementation requirements.

[0047] Computer 102 ( Figure 1 ) and server computer 114 ( Figure 1 ) can include Figure 4 corresponding sets of internal components 800A, 800B and external components 900A, 900B as shown in. Each set in the 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, one or more operating systems 828, and one or more computer-readable tangible storage devices 830 on one or more buses 826.

[0048] 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 that can be programmed to perform functions. Bus 826 includes components that allow communication between internal components 800A, 800B.

[0049] One or more operating systems 828, software program 108 ( Figure 1 ) and video encoding program 116 ( Figure 1 ) on server computer 114 ( Figure 1 ) are stored on one or more of the corresponding computer-readable tangible storage devices 830 to be executed by one or more of the corresponding processors 820 via one or more of the corresponding RAMs 822 (which typically includes a cache memory). In Figure 4In the embodiment shown, each of the computer-readable tangible storage devices 830 is a magnetic disk storage device of an internal hard disk drive. Alternatively, each of the 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 disk (CD), digital versatile disk (DVD), floppy disk, cartridge tape, magnetic tape, and / or another type of non-transitory computer-readable tangible storage device that can store computer programs and digital information.

[0050] Each set of internal components 800A, 800B 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 108 ( Figure 1 ) and video encoding programs 116 ( Figure 1 ) can be stored on one or more of the corresponding portable computer-readable tangible storage devices 936, read via the corresponding R / W drive or interface 832, and loaded into the corresponding hard disk drive 830.

[0051] Each set of internal components 800A, 800B 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 programs 108 ( Figure 1 ) and the video encoding program 116 ( Figure 1 ) on the server computer 114 ( Figure 1 ) can be downloaded from an external computer to the computer 102 ( Figure 1 ) and the server computer 114 via a network (e.g., the Internet, a local area network, or other wide area network) and the corresponding network adapter or interface 836. The software program 108 and the video encoding program 116 on the server computer 114 are loaded from the network adapter or interface 836 into the corresponding hard disk drive 830. The network can include copper wire, optical fiber, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers.

[0052] Each set in the collection of external components 900A, 900B may include a computer monitor 920, a keyboard 930, and a computer mouse 934. The external components 900A, 900B may also include a touch screen, a virtual keyboard, a touch pad, a pointing device, and other human-machine interface devices. Each set in the collection of internal components 800A, 800B further includes a device driver 840 that interfaces with the computer monitor 920, the keyboard 930, and the computer mouse 934. The device driver 840, the R / W drive or interface 832, and the network adapter or interface 836 include hardware and software (stored in the storage device 830 and / or ROM 824).

[0053] It should be understood in advance that although this disclosure includes a detailed description of cloud computing, the implementation of the teachings described herein is not limited to a cloud computing environment. Instead, some embodiments can be implemented in conjunction with any other type of computing environment now known or later developed.

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

[0055] The characteristics are as follows:

[0056] On-demand self-service: Cloud consumers can automatically provision computing capabilities, such as server time and network storage, unilaterally as needed, without human interaction with the service provider.

[0057] Broad network access: The capabilities are available over a network and are accessed through standard mechanisms that facilitate use by heterogeneous thin-client platforms or thick-client platforms (e.g., mobile phones, laptop computers, and PDAs).

[0058] Resource pooling: The provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated according to demand. There is a sense of location independence because consumers generally do not control or know the exact location of the provided resources, but can specify a location at a higher level of abstraction (e.g., country, state, or data center).

[0059] Rapid elasticity: The ability can be supplied quickly and elastically (automatically in some cases), to scale out rapidly and release quickly to scale in rapidly. To consumers, the available capacity usually appears unlimited and can be purchased in any quantity at any time.

[0060] Measured service: The cloud system automatically controls and optimizes resource use by leveraging metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource use can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.

[0061] The service models are as follows:

[0062] Software as a Service (SaaS): The ability provided to consumers is to use the provider's applications running on the cloud infrastructure. The applications can be accessed from various client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0063] Platform as a Service (PaaS): The ability provided to consumers is to deploy consumer-created or acquired applications created using programming languages and tools supported by the provider onto the cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but has control over the deployed applications and possibly the application hosting environment configuration.

[0064] Infrastructure as a Service (IaaS): The ability provided to consumers is to provide processing, storage, networking, and other fundamental computing resources where the consumer can deploy and run arbitrary software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating systems, storage, deployed applications, and possibly limited control over selecting network components (e.g., host firewalls).

[0065] The deployment models are as follows:

[0066] Private cloud: The cloud infrastructure is operated solely for an organization. It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0067] Community cloud: The cloud infrastructure is shared by several organizations and supports a specific community with shared concerns (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0068] Public cloud: The cloud infrastructure is available for the general public or a large industry group and is owned by an organization that sells cloud services.

[0069] Hybrid cloud: The cloud infrastructure is a combination of two or more clouds (private, community, or public), which remain unique entities but are bound together by standardized or proprietary technology that enables portability of data and applications (e.g., cloud bursting for load balancing between clouds).

[0070] The cloud computing environment is service-oriented, with an emphasis on statelessness, low coupling, modularity, and semantic interoperability. The core of cloud computing is the infrastructure of a network that includes interconnected nodes.

[0071] Refer to Figure 5 , which depicts an illustrative cloud computing environment 500. As shown, the cloud computing environment 500 includes: one or more cloud computing nodes 10, local computing devices used by cloud consumers, such as a personal digital assistant (PDA) or cellular phone 54A, desktop computer 54B, laptop computer 54C, and / or in-vehicle computer system 54N, which can communicate with the one or more cloud computing nodes 10. The cloud computing nodes 10 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as a private cloud, community cloud, public cloud, or hybrid cloud, or a combination thereof, as described above. This allows the cloud computing environment 600 to provide infrastructure, platform, and / or software as a service, and cloud consumers do not need to maintain resources on local computing devices. It should be understood that Figure 5 the types of computing devices 54A to 54N shown in

[0072] Refer to Figure 6 , which shows a set of functional abstraction layers 600 provided by the cloud computing environment 500 ( Figure 5 ). It should be understood in advance that Figure 6 the components, layers, and functions shown in

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

[0074] The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 71; virtual storage 72; virtual networks 73 including virtual private networks; virtual applications and operating systems 74; and virtual clients 75.

[0075] In one example, the management layer 80 can provide the functions described below. Resource provisioning 81 provides for the dynamic procurement of computing resources and other resources for performing tasks within a cloud computing environment. Metering and pricing 82 provides cost analysis for utilization of resources within a cloud computing environment, as well as billing or invoicing for consumption of these resources. In one example, these resources can include application software licenses. Security measures provide authentication for cloud consumers and tasks, as well as protection for data and other resources. The user portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides cloud computing resource allocation and management such that the required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides for the pre-arrangement and procurement of cloud computing resources and anticipates future requirements for cloud computing resources according to SLA expectations.

[0076] The workload layer 90 provides examples of functions that can be used in a cloud computing environment. Examples of workloads and functions that can be provided from this layer include: graphics and navigation 91; software development and lifecycle management 92; virtual classroom delivery 93; data analysis processing 94; transaction processing 95; and video encoding 96. Video encoding 96 can encode and / or decode video data based on context associated with co-located luminance blocks at one or more predefined locations.

[0077] Some embodiments can relate to systems, methods, and / or computer-readable media at any possible level of integration technology detail. The computer-readable media can include computer-readable non-transitory storage media (or media), having computer-readable program instructions thereon for causing a processor to perform operations.

[0078] A computer-readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. A computer-readable storage medium can be, by way of example and not limitation, 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. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanically encoded device such as a punch card or raised structures in a groove record ing instructions thereon, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be construed to be a transient 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., a light pulse passing through an optical fiber cable) or an electrical signal transmitted through a wire.

[0079] The computer-readable program instructions described herein can be downloaded to a corresponding computing / processing device from a computer-readable storage medium or downloaded to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network, and / or a wireless network. The network can 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 in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the corresponding computing / processing device.

[0080] The computer-readable program code / instruction for performing the operation may be: assembly instruction, instruction set architecture (ISA) instruction, machine instruction, machine-related instruction, microcode, firmware instruction, status setting data, configuration data of an integrated circuit, or source code or object code written in any combination of one or more programming languages, the one or more programming languages including object-oriented programming languages such as Smalltalk, C++, etc. and procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, executed 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 case of being executed entirely on a remote computer or server, 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 may be connected to an external computer (e.g., through the Internet using an Internet service provider). In some embodiments, an electronic circuit system including, for example, a programmable logic circuit system, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute the computer-readable program instructions by utilizing the status information of the computer-readable program instructions to personalize the electronic circuit system so as to perform various aspects or operations.

[0081] These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to generate a machine, such that the instructions executed via the processor of the computer or other programmable data processing device create a means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium, which may direct a computer, a programmable data processing device, and / or other devices to act in a particular manner, such that the computer-readable storage medium storing the instructions includes an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0082] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing device, or other device, so that a series of operation steps to be executed on the computer, other programmable device, or other device can generate a computer-implemented process, such that the instructions executed on the computer, other programmable device, or other device implement the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0083] The flowcharts and block diagrams in the accompanying 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 instructions that includes one or more executable instructions for implementing a particular logical function. The methods, computer systems, and computer-readable media may include additional blocks, fewer blocks, different blocks, or differently arranged blocks compared to those depicted in the figures. In some alternative implementations, the functions noted in the blocks may not occur in the order noted in the accompanying drawings. For example, two blocks shown in succession may actually be executed simultaneously or substantially simultaneously, or the blocks may sometimes be executed in the reverse order depending on the functionality involved. It will also be noted that each block in the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, can be implemented by a dedicated hardware-based system that performs a particular function or action or a combination of dedicated hardware and computer instructions.

[0084] It will be apparent that the systems and / or methods described herein can be implemented in different forms of hardware, firmware, or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods does not limit the implementation. Thus, the operations and behaviors of the systems and / or methods are described herein without reference to specific software code, and it should be understood that software and hardware can be designed based on the description herein to implement the systems and / or methods.

[0085] Unless explicitly described otherwise, the elements, acts, or instructions used herein should not be construed as critical or essential. Additionally, as used herein, the articles "a" and "an" are intended to include one or more items and can be interchanged with "one or more." Further, as 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, etc.) and can be interchanged with "one or more." The term "one" or similar language is used when intending only a single item. Additionally, as used herein, the terms "having," "have," "containing," etc. are intended to be open-ended terms. Further, unless otherwise explicitly stated, the phrase "based on" is intended to mean "at least partially based on."

[0086] The descriptions of various aspects and embodiments have been presented for illustrative purposes, but these descriptions are not intended to be exhaustive or limited to the disclosed embodiments. Although combinations of features are recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of possible implementations. In fact, many of these features can be combined in ways not specifically recited in the claims and / or not disclosed in the specification. Although each dependent claim listed below may directly depend on only one claim, the disclosure of possible implementations includes each dependent claim in combination with every other claim in the set of claims. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the described embodiments. The terms used herein are chosen to best explain the principles of the embodiments, the practical application, or the technical improvement over technologies found in the marketplace, or to enable other ordinary skilled artisans in the art to understand the embodiments disclosed herein.

Claims

1. A video decoding method executable by a processor, characterized in that The method includes: Receiving video data including a chrominance component and a luminance component, wherein the chrominance component and the luminance component in a super block SB have different block partitions, and the area of one chrominance block covers multiple luminance blocks; Determining a chrominance intra prediction mode based on a luminance mode list, wherein the luminance mode list includes N previously encoded luminance modes with the highest occurrence rates within the current super block, and N is a positive integer; Identifying one or more contexts for entropy encoding the chrominance intra prediction mode based on co-located luminance blocks at one or more predefined positions; and Decoding the video data based on the identified contexts.

2. The method according to claim 1, characterized in that The one or more predefined positions include one or more of the middle position and the upper left corner of the current chrominance block.

3. The method according to claim 1, wherein The method further includes: Identifying one or more predefined sample positions; Identifying an intra prediction mode associated with the multiple predefined sample positions for predicting co-located luminance blocks; and Deriving a context value based on the prediction mode among the identified intra prediction modes.

4. The method according to claim 3, characterized in that, Using the most frequently used prediction mode among the identified prediction modes to derive the context value.

5. The method according to claim 3, characterized in that, The predefined sample positions include one or more corner samples and a center sample; or The predefined sample positions include four corner samples.

6. The method according to claim 1, wherein The method further includes: mapping the intra prediction mode to one or more predefined intra prediction modes based on the co-located luminance blocks at one or more predefined positions not predicted by the intra prediction mode and based on the current chrominance encoded block predicted by the intra prediction mode.

7. The method according to claim 6, wherein Deriving the context for entropy encoding the chrominance intra prediction mode based on a default intra prediction mode based on co-located luminance blocks encoded by intra block copy or palette mode.

8. The method according to claim 7, characterized in that The default intra prediction modes include one or more of DC, SMOOTH, SMOOTH-H, SMOOTH-V, and Paeth prediction modes.

9. The method according to claim 1, wherein Based on determining to signal the chrominance intra prediction mode, determining a signaling flag to indicate whether the current chrominance mode is a CfL mode (chrominance mode from luminance).

10. The method according to claim 9, wherein The corresponding luminance mode is used to derive the context for signaling the flag, and the coordinates of the corresponding luminance mode are located at the middle position and the upper left corner of the current chrominance block.

11. The method according to claim 1, characterized in that For a chrominance encoded block, determining and signaling all nominal intra prediction angles allowed for a luminance encoded block.

12. The method according to claim 11, wherein For a chrominance intra encoded block, determining and signaling only a subset of incremental angles for the nominal angles.

13. The method according to claim 12, characterized in that, For a chrominance intra encoded block, determining and signaling all non-directional modes.

14. The method according to claim 12, wherein For the chrominance encoded block, determining and signaling only the incremental angles corresponding to the intra prediction mode of the co-located luminance block.

15. The method according to claim 14, wherein The method further includes: Determining the nominal angles along with non-directional modes; and Based on the current mode being in a directional mode and equal to the co-located luminance nominal mode, determining a second flag to indicate the index of the incremental angle for the nominal angle.

16. The method according to claim 14, wherein Determine that all allowed intra prediction modes for a chrominance coding block are signaled together.

17. A video encoding method, characterized in that, The method includes: Obtaining video data including a chrominance component and a luminance component, wherein the chrominance component and the luminance component in a super block SB have different block partitions, and the area of one chrominance block covers multiple luminance blocks; Determining a chrominance intra prediction mode based on a luminance mode list, wherein the luminance mode list includes N previously encoded luminance modes with the highest occurrence rate within the current super block, and N is a positive integer; Setting one or more contexts for entropy coding of the chrominance intra prediction mode based on co - located luminance blocks at one or more predefined positions; and Encoding the video data based on the set contexts.

18. A video decoding device, characterized in that, The apparatus includes: A memory that stores instructions; and A processor that communicates with the memory, wherein when the processor executes the instructions, the processor is configured to cause the apparatus to perform the method according to any one of claims 1 to 16.

19. A non - transitory computer - readable medium having stored thereon a computer program for decoding video data, the computer program being configured to cause one or more computer processors to perform the method according to any one of claims 1 to 17.

20. A method for storing a bitstream, characterized in that, Performing the video coding method of claim 17 to generate a bitstream; and storing the bitstream.

Citation Information

Patent Citations

  • Using luma information for chroma prediction with separate luma-chroma framework in video coding

    CN108781282A

  • Image prediction method and device for deriving chroma intra-prediction mode

    WO2020050607A1