Video decoding method, computer system and electronic device

By derive the incremental angle value of the chrominance component based on the intra prediction mode of the brightness component in AV1 video encoding and decoding, the problem of excessive computing complexity and resource consumption in the prior art is solved, and more efficient video data encoding and decoding is achieved.

CN116195251BActive Publication Date: 2025-04-22TENCENT AMERICA LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202180059987.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-08-14
Filing Date
2021-04-28
Publication Date
2025-04-22
Estimated Expiration
2041-04-28

AI Technical Summary

Technical Problem

In AV1 video codec, the prior art requires signaling nominal angles and incremental angles for all directional modes of chrominance and brightness components, resulting in increased computational complexity and resource consumption.

Method used

By deriving the incremental angle value of the chromatic component based at least on the intra prediction mode associated with the luminance component, the notification of all directional modes is reduced, and the video data is encoded or decoded based only on the incremental angle value of the corresponding luminance component.

Benefits of technology

The encoding and decoding process of video data is simplified, the calculation complexity and resource consumption are reduced, and the encoding and decoding efficiency is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116195251B_ABST
    Figure CN116195251B_ABST
Patent Text Reader

Abstract

The present application provides a method, a computer system, and an electronic device for encoding or decoding video data. Video data is received, the video data including a chrominance component having a first nominal angle and a plurality of first incremental angles, and a luminance component having a second nominal angle and a plurality of second incremental angles, wherein the first incremental angle depends on the second incremental angle. A first incremental angle value of the first incremental angle is signaled or parsed based on at least an intra-frame prediction mode associated with the luminance component. The video data is encoded or decoded based on the first incremental angle value corresponding to the first incremental angle.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Priority information

[0002] This application claims the benefit of priority to U.S. application No. 16 / 993,876, filed on August 14, 2020, the entire contents of which are incorporated by reference into this application. Technical Field

[0003] The present disclosure generally relates to the field of data processing, and more particularly to a video decoding method, a computer system, and an electronic device. Background Art

[0004] AOMedia Video 1 (AV1) is an open video codec designed for video transmission over the Internet. It was developed by the Alliance for Open Media (AOMedia) as a successor to VP9, ​​a consortium of semiconductor companies, video-on-demand providers, video content producers, software development companies, and web browser vendors founded in 2015. In AV1, there are a total of 56 angles, 8 of which are nominal angles, and the remaining angles are specified as increments from the nominal angles. Summary of the invention

[0005] Embodiments relate to a method, system, and computer-readable medium for encoding and / or decoding video data. According to one aspect, a method for encoding and / or decoding video data is provided. The method may include receiving video data, the video data including a chrominance component having a first nominal angle and a plurality of first incremental angles, and a luminance component having a second nominal angle and a plurality of second incremental angles, wherein the first incremental angle depends on the second incremental angle. Based on at least an intra-frame prediction mode associated with the luminance component, a first incremental angle value of the first incremental angle is signaled. Based on the first incremental angle value corresponding to the first incremental angle, the video data is encoded or decoded.

[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, and these program instructions are used to be executed by at least one of the one or more processors via at least one of the one or more memories, so that the computer system can perform a method. The method may include receiving video data, the video data including a chroma component having a first nominal angle and a plurality of first incremental angles, and a luminance component having a second nominal angle and a plurality of second incremental angles, wherein the first incremental angle depends on the second incremental angle. At least based on an intra-frame prediction mode associated with the luminance component, a first incremental angle value of the first incremental angle is signaled. Based on the first incremental angle value corresponding to the first incremental angle, the video data is encoded or decoded.

[0007] According to 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, and these program instructions may be executed by a processor. These program instructions may be executed by a processor to perform a method, which may accordingly include receiving video data, the video data including a chrominance component having a first nominal angle and a plurality of first incremental angles, and a luminance component having a second nominal angle and a plurality of second incremental angles, wherein the first incremental angle depends on the second incremental angle. At least based on an intra-frame prediction mode associated with the luminance component, a first incremental angle value of the first incremental angle is signaled. Based on the first incremental angle value corresponding to the first incremental angle, the video data is encoded or decoded. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] These and other objects, features and advantages will become apparent from the following detailed description of illustrative embodiments read in conjunction with the accompanying drawings. Since the illustrations are intended to facilitate a clear understanding by those skilled in the art in conjunction with the detailed description, the various features of the drawings are not drawn to scale. In the drawings:

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

[0010] Figure 2 is a diagram of nominal angles of AV1 according to at least one embodiment;

[0011] Figure 3 is an operational flow diagram illustrating steps performed by a program for encoding and decoding video data according to at least one embodiment;

[0012] Figure 4 According to at least one embodiment Figure 1 block diagrams of internal and external components of computers and servers depicted in;

[0013] Figure 5 According to at least one embodiment, Figure 1 A block diagram of an illustrative cloud computing environment of a computer system depicted in;

[0014] Figure 6 According to at least one embodiment Figure 5 A block diagram of the functional layers of an illustrative cloud computing environment. DETAILED DESCRIPTION

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

[0016] Embodiments relate generally to the field of data processing, and more particularly to video encoding and decoding. The exemplary embodiments described below provide a system, method, and computer program to encode and / or decode video data using, among other things, incremental angle values ​​derived from nominal angle values. Thus, some embodiments have the ability to improve the computational field by not requiring signaling of each incremental angle and allowing real-time calculation of incremental angle values.

[0017] As mentioned above, AOMedia Video 1 (AV1) is an open video codec format designed for video transmission on the Internet. It was developed by the Alliance for Open Media (AOMedia) to succeed VP9, ​​a consortium founded in 2015 that includes semiconductor companies, video on demand providers, video content producers, software development companies, and web browser manufacturers. In AV1, there are a total of 56 directional angles, 8 of which are nominal angles, and the remaining angles are specified as increments from the nominal angles. However, regardless of the co-located luminance prediction mode, both the nominal angles and the incremental angles of all directional modes are signaled for the chrominance component. In addition, the incremental angle is allowed for both the luminance intra-frame prediction mode and the chrominance intra-frame prediction mode, but the correlation of the incremental angles between the luminance component and the chrominance component is not used. Therefore, it may be advantageous to derive the incremental angle value of the chrominance component based on the nominal angle from the luminance component, rather than signaling all 56 angle values.

[0018] Various aspects are described herein with reference to flowchart illustrations and / or block diagrams of methods, devices (systems) and computer-readable media according to various embodiments. It should be understood that each block of the flowchart illustration and / or block diagram, and the combination of blocks in the flowchart illustration and / or block diagram can be implemented by computer-readable program instructions.

[0019] Reference now Figure 1 , a functional block diagram of a networked computer environment illustrates a video codec system 100 (hereinafter referred to as the "system") for encoding and / or decoding video data using incremental angles derived from nominal angles. It should be understood that Figure 1 This is merely an illustration of one implementation and is not intended to imply any limitations on the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made based on design and implementation requirements.

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

[0021] The server computer 114 may also operate in a cloud computing service model, such as software as a service (SaaS), platform as a service (PaaS), or infrastructure as a service (IaaS), as described below in conjunction with Figure 5 and Figure 6 The server computer 114 may also be located in a cloud computing deployment model, such as a private cloud, a community cloud, a public cloud, or a hybrid cloud.

[0022] The server computer 114 can be used to encode the video data and can run a video codec program 116 (hereinafter referred to as "program") that can interact with the database 112. Figure 3The video codec program method is explained in more detail. In one embodiment, the computer 102 can operate as an input device including a user interface, and the program 116 can run primarily on the server computer 114. In an alternative embodiment, the program 116 can run primarily on one or more computers 102, and the server computer 114 can be used to process and store data used by the program 116. It should be noted that the program 116 can be a stand-alone program, or can be integrated into a larger video codec program.

[0023] However, it should be noted that in some cases, processing for program 116 may be shared in any proportion between computer 102 and server computer 114. In another embodiment, program 116 may be executed on more than one computer, server computer, or some combination of computers and server computers (e.g., multiple computers 102 communicating with a single server computer 114 via network 110). For example, in another embodiment, program 116 may be executed on multiple server computers 114 communicating with multiple client computers via network 110. Alternatively, the program may be executed on a network server that communicates with the server and multiple client computers via a network.

[0024] The network 110 may include a wired connection, a wireless connection, a fiber optic connection, or some combination thereof. In general, the network 110 may be any combination of connections and protocols that support communication between the computer 102 and the server computer 114. The network 110 may include various types of networks, such as 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.

[0025] Figure 1 The number and arrangement of devices and networks shown in the FIG. are provided as examples. In practice, there may be Figure 1 Devices and / or networks additional to, fewer than, different from, or arranged differently from the devices and / or networks shown in FIG. Figure 1 Two or more of the devices shown in the figure may be implemented in a single device, or Figure 1The single device shown in FIG. 1 may be implemented as multiple distributed devices. Additionally or alternatively, a group of devices (eg, 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.

[0026] Reference now Figure 2 , depicts a diagram 200 illustrating nominal angles for AV1. In AV1, there are 8 nominal angles between 45 degrees and 207 degrees, which may include V_PRED, H_PRED, D45_PRED, D135_PRED, D113_PRED, D157_PRED, D203_PRED, and D67_PRED. For each nominal angle, there may be 7 smaller angles, making a total of 56 directional angles possible for AV1. The predicted angle may be represented by the nominal intra angle plus an angle increment, which is a step size of -3 to 3 times 3 degrees. The increment angle may not need to be signaled by the chroma component, but may be derived based on the corresponding luma intra prediction mode.

[0027] In one or more embodiments, when the current chroma intra prediction mode is a directional intra prediction mode, and the nominal angle of the chroma intra prediction mode is equal to the nominal angle of the corresponding luma intra prediction mode, the increment angle of the chroma component may be set equal to the increment angle of the luma intra prediction mode. Otherwise, the increment angle of the chroma component may be set equal to 0.

[0028] In one or more embodiments, the increment angle of the chroma component may be set equal to the increment angle of the luma component regardless of whether the nominal mode between luma and chroma is the same.

[0029] In one or more embodiments, when the current chroma intra prediction mode is a directional intra prediction mode, and the nominal angle of the chroma intra prediction mode is equal to the nominal angle of the corresponding luma intra prediction mode, the incremental angle of the chroma component may be set equal to the incremental angle of the luma intra prediction mode. Otherwise, when the nominal angle of the chroma intra prediction mode is equal to the left neighboring mode / upper neighboring mode of the corresponding luma block, the incremental angle of the chroma component may be set equal to the incremental angle of the left neighboring mode / upper neighboring mode of the corresponding luma block. Otherwise, the incremental angle of the chroma component may be set equal to 0.

[0030] In one or more embodiments, when semi-decoupled partitioning is applied, there may be multiple luminance blocks associated with one chrominance block. Therefore, multiple sample positions can be predefined, and the incremental angles and nominal angles associated with these positions for predicting the same-position luminance block can be identified. One or more of these identified nominal angles and incremental angles can be used to derive the incremental angle of the current chrominance block. In one example, the predefined sample positions may include an upper left sample and / or a center sample / middle sample. In another example, the predefined sample positions may include four corner samples and a center sample / middle sample. In another example, the incremental angle of the chrominance component may be derived using the incremental angle that may be most frequently used in the identified prediction mode. In another example, the predefined sample positions may include two selected positions of four corner samples and one center sample / middle sample. In another example, the predefined sample positions may include three selected positions of four corner samples and one center sample / middle sample.

[0031] In one or more embodiments, when the current chroma intra prediction mode is a directional intra prediction mode, and the nominal angle of the chroma intra prediction mode is equal to the nominal angle of the corresponding luma intra prediction mode, the incremental angle of the chroma component may be set equal to the incremental angle of the luma intra prediction mode. Otherwise, when the nominal angle of the chroma intra prediction mode is equal to the left neighboring mode / upper neighboring mode of the current chroma block, the incremental angle of the chroma component may be set equal to the incremental angle of the left neighboring mode / upper neighboring mode of the current chroma block. Otherwise, the incremental angle of the chroma component may be set equal to 0.

[0032] The incremental angle of the corresponding luminance block can be used for entropy coding of the incremental angle of the chrominance intra prediction mode. In one or more embodiments, the incremental angle of the co-located luminance block can be used as a context for entropy coding of the incremental angle of the chrominance component. In one or more embodiments, the incremental angle of the adjacent chrominance block is used as a context for entropy coding of the incremental angle of the chrominance component. In one or more embodiments, instead of signaling the incremental angle of the current chrominance block, the absolute difference between the incremental angle of the chrominance block and the incremental angle of the corresponding luminance block can be signaled for entropy coding of the chrominance intra prediction mode. In one or more embodiments, the above embodiments are applied only when the nominal modes between luminance and chrominance may be the same, or when the absolute difference in the prediction angle between the two modes is within a given threshold.

[0033] According to one or more embodiments, for entropy coding of chroma intra prediction mode, a first flag may be signaled to indicate whether the current mode is chroma-from-luma (CfL) predicted from luma. If the first flag is signaled as a value indicating that CfL is not used, a second flag may be signaled to indicate whether the current mode may be equal to the nominal mode of the corresponding luma block. If the current mode is equal to the nominal mode of the corresponding luma block, the current mode is a directional mode, and the use of an incremental angle is allowed, a third flag may be signaled to indicate the index of the incremental angle. Otherwise, the third flag is signaled to indicate which of the remaining nominal modes the current mode is. If the first flag is signaled as a value indicating that CfL is not used, parameters of the CfL mode may be further signaled.

[0034] According to one or more embodiments, for entropy coding and decoding of chroma intra prediction modes, a first flag may be signaled to indicate whether the current mode may be equal to the nominal mode or CfL mode of the corresponding luma block. If the first flag is signaled as a value indicating that the current mode is equal to the nominal mode or CfL mode of the corresponding luma block, a second flag may be signaled to indicate which of the two modes may be the current mode. If the current mode is equal to the nominal mode of the corresponding luma block, the current mode is a directional mode, and the incremental angle is allowed, an index of the incremental angle may be further signaled. If the current mode is the CfL mode, a parameter of the CfL mode may be further signaled. If the first flag is signaled as a value indicating that the current mode is not equal to the nominal mode or CfL mode of the corresponding luma block, a second flag may be signaled to indicate which of the remaining nominal modes may be applied to the current chroma block.

[0035] In one or more embodiments, in response to the nominal angle of the chroma component and the nominal angle of the luma component being the same or close to each other, the first delta angle value may be entropy encoded and decoded based on using the delta angle of the co-located luma block as context. The nominal angles may be close to each other when the difference between the nominal angles is less than or equal to 2 degrees. The delta angle value may be entropy encoded and decoded based on using the delta angle of the co-located luma block as context, or based on using the delta angle of the adjacent chroma block as context.

[0036] It should be appreciated that in one or more embodiments, the delta angles of luma blocks and chroma blocks may be entropy encoded using separate contexts, rather than sharing the same context between the delta angles of luma blocks and chroma blocks.

[0037] Reference now Figure 3 , depicts an operational flow diagram illustrating the steps of a method 300 for encoding and / or decoding video data. In some embodiments, Figure 3 One or more process blocks of may be performed by computer 102 ( Figure 1 ) and server computer 114 ( Figure 1 ) to execute. In some embodiments, Figure 3 One or more of the process blocks of may be performed by another device or group of devices separate from or including the computer 102 and the server computer 114 .

[0038] At 302, method 300 includes receiving video data including (1) a chrominance component having a first nominal angle and a plurality of first incremental angles, and (2) a luma component having a second nominal angle and a plurality of second incremental angles. The first incremental angle is dependent on the second incremental angle.

[0039] At 304 , method 300 includes resolving a first delta angle value for a first delta angle based on at least an intra prediction mode associated with a luma component.

[0040] At 306 , method 300 includes encoding and / or decoding video data based on a first delta angle value corresponding to the first delta angle.

[0041] It should be understood that Figure 3 This is merely an illustration of one implementation and is not meant to imply any limitations on how different embodiments may be implemented. Many modifications to the depicted environments may be made based on design and implementation requirements.

[0042] Figure 4 According to the illustrative embodiment Figure 1 400 of the internal and external components of a computer. It should be understood that Figure 4 This is merely an illustration of one implementation and is not intended to imply any limitations on the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made based on design and implementation requirements.

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

[0044] The processor 820 is implemented in hardware, firmware, or a combination of hardware and software. The 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 embodiments, the processor 820 includes one or more processors that can be programmed to perform functions. The bus 826 includes components that allow communication between internal components 800A, 800B.

[0045] Server computer 114 ( Figure 1 ) on one or more operating systems 828, software programs 108 ( Figure 1 ) and video codec program 116 ( Figure 1 ) are stored on one or more of the respective computer-readable tangible storage devices 830 for execution by one or more of the respective processors 820 via one or more of the respective RAMs 822 (which typically include cache memory). Figure 4 In the embodiment illustrated in , each of the computer-readable tangible storage devices 830 is a 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 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 another type of non-volatile computer-readable tangible storage device that can store computer programs and digital information.

[0046] Each set of internal components 800A, 800B also includes a R / W (read / write) drive or interface 832 to read from or write to one or more portable computer readable tangible storage devices 936 (such as CD-ROMs, DVDs, memory sticks, tapes, disks, optical disks, or semiconductor storage devices). Software programs, such as software program 108 ( Figure 1 ) and video codec program 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 drive 830.

[0047] 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. Server computer 114 ( Figure 1 ) on the software program 108 ( Figure 1) and video codec program 116 ( Figure 1 ) can be downloaded from an external computer to the computer 102 via a network (eg, the Internet, a local area network, or other wide area network) and a corresponding network adapter or interface 836. Figure 1 ) and server computer 114. The software program 108 and video codec 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 may include copper wire, fiber optic, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers.

[0048] Each of the groups of external components 900A, 900B may include a computer display 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-computer interface devices. Each of the groups of internal components 800A, 800B also includes a device driver 840 to interface with the computer display 920, the keyboard 930, and the computer mouse 934. The device driver 840, the R / W driver or interface 832, and the network adapter or interface 836 include hardware and software (stored in the storage device 830 and / or ROM 824).

[0049] It should be understood in advance that although the present disclosure includes a detailed description of cloud computing, the implementation of the teachings listed 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.

[0050] 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) that can be quickly provisioned and released with minimal management effort or interaction with the service provider. The cloud model can include at least five characteristics, at least three service models, and at least four deployment models.

[0051] Features are as follows:

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

[0053] Broad Web Access: Functionality is available over the web and accessed through standard mechanisms that facilitate use through diverse thin-client platforms or thick-client platforms (e.g., mobile phones, laptops, and PDAs).

[0054] Resource pooling: The computing resources of a provider are grouped into resource pools to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated as needed. Generally, consumers cannot control or know the exact location of the provided resources, but may be able to specify the location at a higher level of abstraction (e.g., country, state, or data center), thus being location-independent.

[0055] Rapid elasticity: Capacity can be quickly and elastically provisioned (in some cases automatically) to quickly scale out, and quickly released to quickly scale in. To the consumer, the capacity available for provisioning often appears to be unlimited, and any quantity can be purchased at any time.

[0056] Measurable services: Cloud systems automatically control and optimize resource usage by leveraging metering 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, providing transparency to both providers and consumers of utilized services.

[0057] The service model is as follows:

[0058] Software as a Service (SaaS): The capability provided to consumers is to use the vendor's applications running on a cloud infrastructure. The applications can be accessed from a variety of 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 networks, servers, operating systems, storage, or even individual application capabilities, except for possible limited user-specific application configuration settings.

[0059] Platform as a Service (PaaS): The capability provided to consumers is to deploy applications created or acquired by consumers onto cloud infrastructure, where these applications are created using programming languages ​​and tools supported by the provider. Consumers do not manage or control the underlying cloud infrastructure including networks, servers, operating systems, or storage, but have control over deployed applications and may also have control over the configuration of the application hosting environment.

[0060] Infrastructure as a Service (IaaS): The capabilities provided to consumers are the provision of processing, storage, network, and other basic computing resources on which consumers can deploy and run arbitrary software including operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but have control over the operating system, storage, deployed applications, and may have limited control over select networking components (e.g., host firewalls).

[0061] The deployment model is as follows:

[0062] Private cloud: Cloud infrastructure is operated by a single organization. It can be managed by that organization or a third party and can exist on-premises or off-premises.

[0063] Community cloud: Cloud infrastructure is shared by several organizations to support a specific community with common concerns (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by the organization or a third party and can exist inside or outside the organization.

[0064] Public cloud: Cloud infrastructure is available to the public or large industry groups and is owned by the organization that sells cloud services.

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

[0066] The cloud computing environment is service-oriented, with a focus on statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is the infrastructure consisting of a network of interconnected nodes.

[0067] refer to Figure 5 , depicts an illustrative cloud computing environment 500. As shown, the cloud computing environment 500 includes one or more cloud computing nodes 10, with which a local computing device used by a cloud consumer can communicate, the local computing device being such as a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, and / or an automobile computer system 54N. The cloud computing nodes 10 can communicate with each other. They can be physically or virtually grouped in one or more networks (not shown), which are private clouds, community clouds, public clouds, or hybrid clouds, or a combination thereof, such as those described above. This allows the cloud computing environment 500 to provide infrastructure as a service, platform as a service, and / or software as a service, without the cloud consumer needing to maintain resources on a local computing device for the service. It should be understood that Figure 5 The types of computing devices 54A-54N shown in are intended to be illustrative only, and cloud computing node 10 and cloud computing environment 500 may communicate with any type of computerized device over any type of network and / or network addressable connection (eg, using a web browser).

[0068] refer to Figure 6 , showing a cloud computing environment 500 ( Figure 5 ) provides a set of functional abstraction layers 600. It should be understood in advance that Figure 6The components, layers, and functions shown in the figure are intended to be illustrative only, and the embodiments are not limited thereto. As depicted in the figure, the following layers and corresponding functions are provided:

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

[0070] Virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities may 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 .

[0071] In one example, the management layer 80 may provide the functionality described below. Resource provisioning 81 provides dynamic procurement of computing resources and other resources for performing tasks within a cloud computing environment. Metering and pricing 82 provides cost tracking for the use of resources within a cloud computing environment, and provides bills and invoices for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, and protects data and other resources. 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 to meet the required service levels. Service level agreement (SLA) planning and fulfillment 85 provides pre-arrangement and procurement of cloud computing resources, where future demand for cloud computing resources is anticipated according to the SLA.

[0072] Workload layer 90 provides examples of functionality that can take advantage of a cloud computing environment. Examples of workloads and functionality that can be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom education delivery 93; data analytics processing 94; transaction processing 95; and video encoding / decoding 96. Video encoding / decoding 96 can encode / decode video data using delta angles derived from nominal angles.

[0073] Some embodiments may be directed to systems, methods and / or computer readable media at any possible level of technical detail integration.The computer readable medium may include a computer readable non-volatile storage medium having computer readable program instructions thereon for causing a processor to perform operations.

[0074] A computer-readable storage medium may be a tangible device that can store and store instructions used by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer disk, a hard drive, 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 disk (DVD), a memory stick, a floppy disk, a mechanically encoded device (such as a punched card or a raised structure in a groove on which instructions are recorded), and any suitable combination of the foregoing. As used herein, a computer-readable storage medium is not interpreted as being a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (e.g., an optical pulse by an optical cable), or an electrical signal transmitted by a wire.

[0075] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network (e.g., 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 transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The 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 to be stored in a computer-readable storage medium in the corresponding computing / processing device.

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

[0077] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a means for implementing the functions / actions specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can instruct a computer, a programmable data processing device, and / or other equipment to function in a specific manner, so that the computer-readable storage medium in which the instructions are stored includes such an article, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0078] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operating steps to be performed on the computer, other programmable apparatus, or other device, thereby producing a computer-executed process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0079] The flowcharts and block diagrams in the accompanying drawings illustrate the possible implementation architecture, functions and operations of the system, method and computer-readable medium according to various embodiments. In this regard, each box in the flowchart or block diagram can represent a module, segment or part of an instruction, which includes one or more executable instructions for implementing a specified logical function. The method, computer system and computer-readable medium may include additional boxes, fewer boxes, different boxes, or boxes arranged differently from the boxes depicted in the accompanying drawings. In some optional embodiments, the functions indicated in the box may not occur in the order indicated in the accompanying drawings. For example, two boxes shown in succession can actually be executed simultaneously or substantially simultaneously, or these boxes can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flowchart illustration and the combination of boxes in the block diagram and / or flowchart illustration can be implemented by a dedicated hardware-based system that performs a specified function or action or performs a combination of dedicated hardware and computer instructions.

[0080] Obviously, the systems and / or methods described herein can be implemented in various 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 is not a limitation of the implementation. Therefore, the operation and behavior of the systems and / or methods are described herein without reference to specific software code - it should be understood that software and hardware can be designed to implement the systems and / or methods based on the description herein.

[0081] Elements, actions or instructions used herein should not be interpreted as critical or necessary unless explicitly described as such. Moreover, as used herein, the articles "a" and "an" are intended to include one or more items and can be used interchangeably with "one or more". In addition, as used herein, the term "group" is intended to include one or more items (e.g., related items, unrelated items, combinations of related and unrelated items, etc.), and can be used interchangeably with "one or more". When only one item is meant, the term "one" or similar language is used. Moreover, as used herein, the terms "has", "have", "having" etc. are intended to be open terms. In addition, unless otherwise expressly stated, the phrase "based on" is intended to mean "based at least in part on".

[0082] Descriptions of various aspects and embodiments have been presented for illustrative purposes, but the description is not intended to be exhaustive or limited to the disclosed embodiments. Even if combinations of features are listed 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 that are not specifically listed in the claims and / or not disclosed in the specification. Although each dependent claim listed below may be directly subordinate to only one claim, the disclosure of possible implementations includes each dependent claim combined with each other claim in the claim group. Without departing from the scope of the described embodiments, many modifications and variations are obvious to those of ordinary skill in the art. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements relative to technologies found in the market, or to enable those of ordinary skill in the art to understand the embodiments disclosed herein.

Claims

1. A video decoding method, characterized in that: The method comprises: Receiving video data, the video data comprising (1) a chrominance component having a first nominal angle and a plurality of first incremental angles, and (2) a luma component having a second nominal angle and a plurality of second incremental angles, wherein the first incremental angles are dependent on the second incremental angles; parsing or deriving a first delta angle value for the first delta angle based at least on an intra prediction mode associated with the luma component, wherein the first delta angle value is derived from one or more nominal angles associated with one or more sample positions corresponding to one or more luma blocks based on application of semi-decoupled partitioning; and The video data is decoded based on the first delta angle value corresponding to the first delta angle.

2. The method according to claim 1, characterized in that: Based on that the chroma intra prediction mode is a directional intra prediction mode and the first nominal angle is equal to the second nominal angle, the first incremental angle is set to be equal to a second incremental angle value corresponding to the second incremental angle.

3. The method according to claim 1, characterized in that Based on the fact that the first nominal angle is equal to the left adjacent mode or the upper adjacent mode of the corresponding luminance block and the first nominal angle of the chrominance intra-frame prediction mode is not equal to the second nominal angle, the first incremental angle value is equal to the incremental angle value of the left adjacent mode or the upper adjacent mode of the corresponding luminance block.

4. The method according to claim 1, characterized in that The first incremental angle value is equal to a second incremental angle value corresponding to the second incremental angle.

5. The method according to claim 1, characterized in that The first increment angle value is entropy encoded and decoded based on a second increment angle value corresponding to the second increment angle.

6. The method according to claim 5, characterized in that signaling a first flag to indicate whether the current mode is a mode in which chrominance is predicted from luma; If the current mode is not a mode in which chrominance is predicted from luma, signaling a second flag to indicate whether the current mode is a nominal mode for the corresponding luma block and whether the current mode is a directional mode; and If the current mode is the nominal mode of the corresponding luma block, the current mode is a directional mode, and the use of the increment angle is allowed, a third flag is signaled to indicate the indexes of the first increment angle and the second increment angle.

7. The method according to claim 5, characterized in that The first increment angle value is based on entropy coding and decoding using the increment angle of the co-located luminance block as context.

8. The method according to claim 5, characterized in that The first incremental angle value is based on using the incremental angle of the adjacent chrominance block as context for entropy coding and decoding.

9. The method according to claim 5, characterized in that An absolute difference between the first delta angle value and a second delta angle value corresponding to the second delta angle signals entropy coding of a chroma intra prediction mode instead of signaling a delta angle of a current chroma block.

10. The method according to any one of claims 1 to 9, characterized in that: In response to the first nominal angle and the second nominal angle being the same or close to each other, signaling the incremental angle of the chroma intra-frame prediction mode, wherein the first nominal angle and the second nominal angle are close to each other when the difference in the nominal angle between the chroma block and its corresponding luminance block is less than 2.

11. The method according to claim 10, characterized in that In response to the first nominal angle and the second nominal angle being the same or close to each other, entropy encoding and decoding the first delta angle value is performed based on using a delta angle of a co-located luminance block as a context.

12. A video encoding method, characterized in that: The method comprises: Receiving video data, the video data comprising (1) a chrominance component having a first nominal angle and a plurality of first incremental angles, and (2) a luma component having a second nominal angle and a plurality of second incremental angles, wherein the first incremental angles are dependent on the second incremental angles; determining, based at least on an intra prediction mode associated with the luma component, a first delta angle value for the first delta angle, wherein the first delta angle value is derived from one or more nominal angles associated with one or more sample positions corresponding to one or more luma blocks based on application of semi-decoupled partitioning; and The video data is encoded based on the first delta angle value corresponding to the first delta angle.

13. A video decoding device, characterized in that: include: A receiving module configured to receive video data, the video data comprising (1) a chrominance component having a first nominal angle and a plurality of first incremental angles, and (2) a luminance component having a second nominal angle and a plurality of second incremental angles, wherein the first incremental angles are dependent on the second incremental angles; a parsing or deriving module for parsing or deriving a first delta angle value for the first delta angle based on at least an intra prediction mode associated with the luma component, wherein the first delta angle value is derived from one or more nominal angles associated with one or more sample positions corresponding to one or more luma blocks based on application of semi-decoupled partitioning; as well as A decoding module is used to decode the video data based on the first incremental angle value corresponding to the first incremental angle.

14. The video decoding device according to claim 13, characterized in that: The first increment angle value is based on entropy coding and decoding using the increment angle of the co-located luminance block as context.

15. The video decoding device according to claim 13, characterized in that: The first incremental angle value is based on using the incremental angle of the adjacent chrominance block as context for entropy coding and decoding.

16. The video decoding device according to claim 13, characterized in that: An absolute difference between the first delta angle value and a second delta angle value corresponding to the second delta angle signals entropy coding of a chroma intra prediction mode instead of signaling a delta angle of a current chroma block.

17. An electronic device, characterized in that: include: A memory for storing computer-readable instructions; a processor for reading the computer-readable instructions and executing the method according to any one of claims 1 to 12 as instructed by the computer-readable instructions.

18. A method for storing a video bitstream, characterized in that: The video bit stream is decoded based on the video decoding method according to any one of claims 1 to 11, or the video bit stream is generated according to the video encoding method according to claim 12.