Video encoding method, computer device, system and computer readable medium

By disabling the prediction of chrominance component mode according to luminance component for specific conditions in AV1 encoding, the problem of increasing luminance-chrominance delay in AV1 is solved, and lower decoding delay and higher encoding efficiency are achieved.

CN115699730BActive Publication Date: 2025-02-07TENCENT AMERICA LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202180038213.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-06-30
Filing Date
2021-04-15
Publication Date
2025-02-07
Estimated Expiration
2041-04-15

AI Technical Summary

Technical Problem

In AOMedia Video 1 (AV1) encoding, the introduced luminance-chromaticity delay increases due to the separation of the luminance and chromaticity division structures, especially when SDP is applied, the delay increases to 128 pixels by 128 pixels sample, resulting in an increase in decoding delay.

Method used

The brightness-chromaticity decoding delay is reduced by disabling the prediction chromaticity component mode for a specific block size when a specific condition is met. Specific conditions include the size of the luminance block and chrominance block, the type of brightness division, and the depth of the transform division.

Benefits of technology

The delay introduced by predicting the chrominance component according to the luminance component is effectively reduced, and the efficiency of video encoding is improved, especially when specific conditions are met, the decoding delay of the chrominance block is significantly reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115699730B_ABST
    Figure CN115699730B_ABST
Patent Text Reader

Abstract

A method, computer program, and computer system for encoding video data are provided. Data corresponding to a video frame is received. It is determined whether semi-decoupled partitioning is applied to the received image data. If it is determined that the received image data is semi-decoupled partitioned, a mode of predicting chroma components from luma components is disabled for chroma blocks associated with the received image data.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the benefit of priority to U.S. Application No. 16 / 917,050, filed on June 30, 2020, which is incorporated herein by reference in its entirety. Technical Field

[0003] The present disclosure generally relates to the field of data processing, and more particularly to video encoding and decoding, and more particularly to a video encoding method, a computer device, a 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. AOMedia Video 1 was developed by the Alliance for Open Media (AOMedia) as the successor to VP9, ​​which was established in 2015 and includes semiconductor companies, video on demand providers, video content producers, software development companies, and web browser vendors. AV1 specifies a chroma-from-luma mode that allows chroma-only intra-frame prediction and can model chroma pixels as linear functions of the corresponding reconstructed luma pixels. Currently in AV1, the luma-chroma delay introduced by the mode is 32 pixels by 32 pixels samples, which means that a 16 pixel by 16 pixel chroma block can be started after the reconstruction of a 32 pixel by 32 pixel luma block. However, when SDP (Semi-Decoupled Partitioning, SDP) is applied, the luma-chroma delay introduced by the CfL mode increases to 128 pixels by 128 pixels samples due to the separation of the luma and chroma partitioning structures. Therefore, it may be advantageous to limit CfL to reduce luma-chroma decoding delay if certain predefined conditions are met. Summary of the invention

[0005] According to one aspect, a method for encoding video data is provided. The method may include receiving data corresponding to a video frame. Determining whether semi-decoupled partitioning is applied to the received image data. If it is determined that the received image data is semi-decoupled partitioned, disabling a mode of predicting chroma components from luma components for chroma blocks associated with the received image data.

[0006] According to an embodiment, a computer device is provided, which includes: one or more computer-readable non-transitory storage media configured to store computer program codes; and one or more computer processors configured to access the computer program codes and execute the above video encoding method according to the instructions of the computer program codes.

[0007] According to another aspect, a computer system for encoding video data is provided. The computer system may include a receiving unit configured to receive image data corresponding to a video frame; a determining unit configured to determine whether semi-decoupled partitioning is applied to the received image data; and a disabling unit configured to disable a mode of predicting a chroma component from a luma component for a chroma block associated with the received image data based on determining that the received image data is semi-decoupled partitioned.

[0008] According to another aspect, a computer-readable medium for encoding 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 tangible storage device in the one or more tangible storage devices, wherein the program instructions can be executed by a processor to perform a video encoding method.

[0009] The present invention improves the computational art by allowing for improved reduced latency in predicting chroma components from luma components to be disabled for certain block sizes when one or more conditions are met. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] These and other objects, features and advantages will become apparent from the following detailed description of illustrative embodiments which is 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 and ease of 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 functional block diagram of a process for predicting chrominance components from luma components according to at least one embodiment;

[0013] Figure 3 is an operational flow diagram illustrating steps performed by a program for encoding video data based on limiting prediction of chroma components from luma components when one or more conditions are satisfied, in accordance with at least one embodiment;

[0014] Figure 4 According to at least one embodiment Figure 1A block diagram of the internal and external components of the computer and server computer depicted in;

[0015] 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; and

[0016] 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

[0017] Detailed embodiments of the claimed structures and methods are disclosed herein; however, it is understood that the disclosed embodiments are merely illustrative of the claimed structures and methods that may be implemented in various forms. However, these structures and methods may be implemented in many different forms and should not be construed as limited to the exemplary embodiments set forth herein. Instead, these exemplary embodiments are provided so that the disclosure will be comprehensive 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 embodiments presented.

[0018] Embodiments relate generally 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 video based on, among other things, determining whether to use semi-decoupled partitioning for video data. Thus, some embodiments have the ability to improve the computational art by allowing for improved reduced latency in predicting chroma components from luma components to be disabled for certain block sizes when one or more conditions are met.

[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 a successor to VP9, ​​which was established in 2015 and includes semiconductor companies, video-on-demand providers, video content producers, software development companies, and web browser vendors. AV1 specifies a chroma-from-luma (CfL) mode that allows chroma-only intra-frame prediction and can model chroma pixels as linear functions of corresponding reconstructed luma pixels. Currently in AV1, the luma-chroma delay introduced by the mode is 32 pixel by 32 pixel samples, which means that a 16 pixel by 16 pixel chroma block can be started after the reconstruction of a 32 pixel by 32 pixel luma block. However, when SDP (Semi-Decoupled Partitioning, SDP) is applied, the luma-chroma delay introduced by the CfL mode increases to 128 pixel by 128 pixel samples due to the separation of luma and chroma partitioning structures. Therefore, it may be advantageous to limit CfL to reduce luma-chroma decoding delay when certain predefined conditions are met.

[0020] 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 will be understood that each block in 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.

[0021] Now refer to Figure 1 , a functional block diagram of a networked computer environment shows a video frame encoding system 100 (hereinafter referred to as the "system") for encoding video data based on limiting the prediction of chrominance components from luma components when one or more conditions are met. It should be understood that Figure 1 This only provides an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made based on design and implementation requirements.

[0022] 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 computer 102 may interface with a user and communicate with server computer 114. Figure 4As discussed, computer 102 may include internal components 800A and external components 900A, respectively, and server computer 114 may include internal components 800B and external components 900B, respectively. Computer 102 may be, for example, a mobile device, a phone, a personal digital assistant, a netbook, a laptop computer, a tablet computer, a desktop computer, or any type of computing device capable of running programs, accessing a network, and accessing a database.

[0023] The server computer 114 may also operate in a cloud computing service model such as Software as a Service (SaaS), Platform as a Service (PaaS), or Infrastructure as a Service (IaaS), as described below with respect to 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.

[0024] A server computer 114 that can be used to encode video data can run a video encoding program 116 (hereinafter referred to as a "program") that can interact with the database 112. Figure 3 The video encoding program method is described 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 encoding program.

[0025] However, it should be noted that in some instances, processing for program 116 may be shared in any ratio between computer 102 and server computer 114. In another embodiment, program 116 may operate on more than one computer, server computer, or some combination of computers and server computers, such as multiple computers 102 communicating with a single server computer 114 across network 110. In another embodiment, for example, program 116 may run on multiple server computers 114 communicating with multiple client computers across network 110. Alternatively, the program may run on a network server communicating with a server computer and multiple client computers across the network.

[0026] 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 will support communication between the computer 102 and the server computer 114. The network 110 may include various types of networks, such as, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, a telecommunication 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.

[0027] Figure 1 The number and arrangement of devices and networks shown in the figure are provided as examples. In practice, there may be Figure 1 The devices and / or networks shown in FIG. 1 may include additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or differently arranged devices and / or networks than those shown in FIG. Figure 1 Two or more of the devices shown in may be implemented in a single device, or Figure 1 The single device shown in can be implemented as multiple distributed devices. Additionally or alternatively, a set of devices (eg, one or more devices) of the system 100 can perform one or more functions described as being performed by another set of devices of the system 100.

[0028] Now refer to Figure 2 , describes a functional block diagram for predicting chrominance components from luma components 200. Predicting chrominance components from luma components can be expressed as CfL(α)=α×LAC+DC, where L ACα may represent the AC contribution of the luma component, α may represent the parameters of the linear model, and DC represents the DC contribution of the chroma component. The reconstructed luma pixels may be subsampled to the chroma resolution by the subsampling module 202, and the average value determined by the averaging module 204 may be subtracted by the subtraction module 206 to form the AC contribution. In order to approximate the chroma AC component based on the AC contribution, the parameter α is determined based on the original chroma pixels and is signaled in the bitstream. The parameter α may be multiplied by the AC contribution by the multiplication module 208. The DC contribution of the chroma component may be calculated using an intra-frame DC mode, and the DC contribution of the chroma component may be added to the output of the multiplication module 208 by the addition module 210.

[0029] Block size may refer to the width or height of a block, the maximum of width and height, the minimum of width and height, the region size, or the aspect ratio of a block. A superblock may refer to the largest coding unit (LCU) in AV1, such as a block of 128 pixels by 128 pixels. A luma block may refer to a luma block co-located with a chroma block. Semi-decoupled partition (SDP) may be used interchangeably with semi-decoupled tree.

[0030] When SDP is applied, in order to reduce the luminance-chrominance decoding delay, if one of the following conditions is not met, the prediction of chrominance components from luminance components can be disabled for chrominance blocks based on one or more conditions. These conditions may include: the width or height of the luminance block is greater than a predefined threshold T1; the width or height of the chrominance block is greater than a predefined threshold T2; the luminance partition type at the super block node is a vertical partition type such as a vertical binary tree partition, a vertical "T-type" partition, or a vertical ternary tree partition; and the width or height of the luminance block is greater than a predefined threshold T3 and the transform partition depth is greater than or equal to a given threshold D0. T1, T2, and T3 can be positive integers such as 16, 32, 64, etc. D0 can be a positive integer such as 1, 2, 3, etc.

[0031] For example, T1 may be equal to 64, T2 may be equal to 32, T3 may be equal to 64, and D0 may be equal to 2. CfL mode may be disabled for chroma blocks in the following cases: the luma block at a 64-pixel by 64-pixel node is not quadtree-partitioned or horizontally binary-tree-partitioned or not partitioned; the luma block is partitioned using left T-partitioning, right T-partitioning, or L-partitioning; the luma block is horizontally quad-partitioned or vertically quad-partitioned; or the luma block is ternary-tree-partitioned (also known as 3-way partitioning). CfL mode may be disabled for chroma blocks in the following cases: the superblock size is equal to or greater than 128x128, and the luma partition type at the superblock node is not quadtree-partitioning, or is vertical binary-tree-partitioning or ternary-tree-partitioning. This condition is met if the superblock size is equal to or greater than 128 pixels by 128 pixels, the luma partition type at the superblock node is horizontal binary-tree-partitioning, and the 128-pixel by 64-pixel block is vertical binary-tree-partitioning. Otherwise, CfL mode is disabled for chroma blocks. When the chroma block at the 32-pixel by 32-pixel node is split by a ternary tree, a vertical binary tree, or a T-type split, or is not split by a quadtree, or is split by a horizontal binary tree, or is not split, the CfL mode may be disabled for all sub-chroma blocks in the 32-pixel by 32-pixel block.

[0032] Now refer to Figure 3 , depicts an operational flow chart 300 showing steps performed by a program for encoding video data. Figure 3 Can be helped by Figure 1 and Figure 2 As described above, the video encoding program 116 ( Figure 1 ) can encode video quickly and efficiently using prediction of chroma components from luma components based on limiting the prediction of chroma components from luma components when one or more conditions are met.

[0033] At 302, data corresponding to a video frame is received. The data may be a still image, or may be video data from which one or more frames may be extracted. In operation, the server computer 114 ( Figure 1 ) on the video encoding program 116 ( Figure 1 ) can be transmitted through the communication network 110 ( Figure 1 ) from computer 102( Figure 1 ) receives video frame data, or may receive video frame data from database 112 ( Figure 1 ) to retrieve video frame data.

[0034] At 304, it is determined whether semi-decoupled partitioning is applied to the received image data. Semi-decoupled partitioning or flexible block partitioning can allow chroma blocks to have different coding block partitioning than luma components. In operation, the video encoding program 116 ( Figure 1) can determine that semi-decoupled partitioning has been applied to the received image data.

[0035] At 306, based on determining that the received image data is semi-decoupled partitioned, a mode of predicting chroma components from luma components is disabled for chroma blocks associated with the received image data. Semi-decoupled partitioning may introduce delays in the encoding process. Reducing delays by selectively disabling prediction of chroma components from luma components for blocks that have been semi-decoupled partitioned may be beneficial. In operation, if it has been determined that semi-decoupled partitioning has been used for the received image data, the video encoding program 116 ( Figure 1 ) can disable the prediction process 200 of the chrominance component prediction based on the luma component ( Figure 2 ). In this case, the video encoding program 116 may encode the video frame from the image data without using prediction of the chrominance components from the luma components.

[0036] Understandably, Figure 3 This merely provides an illustration of one implementation and does not imply any limitation on how different embodiments may be implemented. Many modifications to the depicted environments may be made based on design and implementation requirements.

[0037] According to one embodiment, the mode of predicting chrominance components from luma components is disabled based on a height or a width of a luma block associated with the received image data being greater than a predefined threshold.

[0038] According to one embodiment, the mode of predicting chroma components from luma components is disabled based on the height or width of the chroma block associated with the received image data being greater than a predefined threshold.

[0039] According to one embodiment, the mode of predicting chroma components based on luma components is disabled based on that the luma partition type associated with the super block node is a vertical partition type.

[0040] According to one embodiment, the vertical partition type includes one or more of vertical binary tree partition, vertical T-type partition and vertical ternary tree partition.

[0041] According to one embodiment, the chroma component prediction from luma component mode is disabled based on a height or width of a luma block associated with the received image data being greater than a first predefined threshold and a transform partition depth being greater than or equal to a second threshold.

[0042] According to one embodiment, the method further includes: encoding the video data based on disabling the prediction of the chrominance component based on the luminance component in the following circumstances: the width or height associated with the luminance block is greater than a predefined threshold T1; the width or height associated with the chrominance block is greater than a predefined threshold T2; or the width or height of the luminance block is greater than a predefined threshold T3 and the transform partition depth is greater than or equal to a given threshold D0.

[0043] According to one embodiment, T1 is set equal to 64 and T2 is set equal to 32.

[0044] According to one embodiment, T3 is set equal to 64 and D0 is set equal to 2.

[0045] According to one embodiment, T1 is set equal to 64, and when the luma block at the 64x64 node is not partitioned by the quadtree or is not partitioned, the mode of predicting the chroma component from the luma component is disabled for the chroma block.

[0046] According to one embodiment, T1 is set equal to 64, and when the luma block at the 64x64 node is not partitioned by the quadtree, partitioned by the horizontal binary tree, or not partitioned, the mode of predicting the chroma component from the luma component is disabled for the chroma block.

[0047] According to one embodiment, T1 is set equal to 64, and when the luma block at the 64 by 64 node is partitioned using left T-partitioning or right T-partitioning, the predicting chroma components from luma component mode is disabled for the chroma block.

[0048] According to one embodiment, T1 is set equal to 64, and when the luma block at the 64x64 node is L-split or T-split, the mode of predicting the chroma component from the luma component is disabled for the chroma block.

[0049] According to one embodiment, T1 is set equal to 64, and when the luma block at the 64x64 node is divided into four horizontally or four vertically, the mode of predicting the chroma component from the luma component is disabled for the chroma block.

[0050] According to one embodiment, T1 is set equal to 64, and when the luma block at the 64×64 node is divided by the ternary tree, the mode of predicting the chroma component from the luma component is disabled for the chroma block.

[0051] According to one embodiment, when the super block size is equal to or greater than 128 by 128 and the luma partition type at the super block node is not quadtree partitioning, the mode of predicting chroma components from luma components is disabled for chroma blocks.

[0052] According to one embodiment, when the super block size is equal to or greater than 128 by 128 and the luma partition type at the super block node is vertical binary tree partitioning or ternary tree partitioning, the mode of predicting chroma components based on luma components is disabled for the chroma block.

[0053] According to one embodiment, when the super block size is less than 128 by 128, the luma partition type at the super block node is partitioned into a partition other than a horizontal binary tree partition and the 128 by 64 block is partitioned into a partition of a vertical binary tree partition, the mode of predicting the chroma component based on the luma component is disabled for the chroma block.

[0054] According to one embodiment, T2 is set equal to 32, and when the chroma block at the 32x32 node is not partitioned by a quadtree or is partitioned by a horizontal binary tree or is not partitioned, the mode of predicting the chroma component based on the luma component is disabled for all sub-chroma blocks of the 32x32 node.

[0055] According to one embodiment, T2 is set equal to 32, and when the chroma block at the 32x32 node is split by a ternary tree, a vertical binary tree, or a T-type split, the mode of predicting the chroma component based on the luminance component is disabled for all sub-chroma blocks of the 32x32 node.

[0056] According to one embodiment, T2 is set equal to 16, and when the chroma block at the 32x32 node is vertically T-split, the mode of predicting the chroma component from the luma component is disabled for all sub-chroma blocks of the 32x32 node.

[0057] 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 merely provides an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made based on design and implementation requirements.

[0058] Computer 102 ( Figure 1 ) and server computer 114 ( Figure 1 ) can include Figure 4800A, 800B and corresponding groups of external components 900A, 900B are shown in FIG. Each group of internal components 800 includes one or more processors 820 on one or more buses 826, one or more computer-readable RAMs (Random Access Memory, RAM) 822 and one or more computer-readable ROMs (Read Only Memory, ROM) 824, one or more operating systems 828, and one or more computer-readable tangible storage devices 830.

[0059] 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 implementations, 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 and 800B.

[0060] One or more operating systems 828, software programs 108 ( Figure 1 ) and server computer 114 ( Figure 1 ) on the video encoding program 116 ( Figure 1 ) are stored on one or more corresponding computer-readable tangible storage devices 830 for execution by one or more corresponding processors 820 via one or more corresponding RAMs 822 (which typically include cache memory). Figure 4In the illustrated embodiment, 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 (Erasable Programmable Read-Only Memory, EPROM), flash memory, optical disk, magneto-optical disk, solid state disk, compact disk (Compact Disc, CD), digital versatile disk (Digital Versatile Disk, DVD), floppy disk, cassette tape, magnetic tape and / or another type of non-transitory computer-readable tangible storage device that can store computer programs and digital information.

[0061] Each set of internal components 800A, 800B also includes an R / W drive or interface 832 to read from and write to one or more portable computer readable tangible storage devices 936 such as CD-ROMs (Compact Disc Read-Only Memory, CD-ROMs), DVDs, memory sticks, tapes, disks, optical disks, or semiconductor storage devices. Figure 1 ) and video encoding program 116 ( Figure 1 ) can be stored on one or more corresponding portable computer-readable tangible storage devices 936, read via a corresponding R / W drive or interface 832, and loaded into a corresponding hard drive 832.

[0062] 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 Program 108 ( Figure 1 ) and server computer 114 ( Figure 1 ) on the video encoding program 116 ( Figure 1 ) can be downloaded from an external computer to the computer 102 via a network (such as 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 the video encoding program 116 on the server computer 114 are loaded from the network adapter or interface 836 to the corresponding hard disk drive 832. The network may include copper wire, fiber optic, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers.

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

[0064] It is understood in advance that although the present disclosure includes detailed descriptions about 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.

[0065] 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 rapidly provisioned and released with minimal management effort or interaction with a service provider. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0066] Features are as follows:

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

[0068] Broad network access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin-client platforms or thick-client platforms (e.g., mobile phones, laptops, and PDAs).

[0069] Resource pooling: A 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 based on demand. There is a sense of location independence because consumers generally have no control or knowledge of the exact location of the resources provided, but may be able to specify the location at a higher level of abstraction (e.g., country, state, or data center).

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

[0071] Metered Services: Cloud systems automatically control and optimize resource usage 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 usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the utilized services.

[0072] The service model is as follows:

[0073] Software as a Service (SaaS): The capability provided to consumers is to use the provider's applications running on a cloud infrastructure. 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, with the possible exception of limited user-specific application configuration settings.

[0074] Platform as a Service (PaaS): The capability 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 networks, servers, operating systems, or storage, but has control over the deployed applications and possible configuration of the application hosting environment.

[0075] Infrastructure as a Service (IaaS): The capabilities provided to consumers are the provision of processing, storage, networking, and other basic computing resources on which consumers can deploy and run arbitrary software, which may include 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 possibly limited control over selected networking components (e.g., a host firewall).

[0076] The deployment model is as follows:

[0077] Private cloud: Cloud infrastructure is operated only for an organization. Cloud infrastructure can be managed by the organization or a third party and can exist locally (on-premises) or externally (off-premises).

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

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

[0080] 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).

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

[0082] Reference Figure 5 , depicts an illustrative cloud computing environment 500. As shown, the cloud computing environment 500 includes one or more cloud computing nodes 10, and local computing devices used by cloud consumers, such as personal digital assistants (PDAs) or cellular phones 54A, desktop computers 54B, laptop computers 54C, and / or automotive computer systems 54N, can communicate with one or more cloud computing nodes 10. The cloud computing nodes 10 can communicate with each other. The cloud computing nodes 10 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 500 to provide infrastructure, platforms, 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).

[0083] Reference 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 6 The components, layers, and functions shown are intended to be illustrative only, and the implementation is not limited thereto. As depicted, the following layers and corresponding functions are provided:

[0084] 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.

[0085] 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 .

[0086] In one example, the management layer 80 may provide the following functions. Resource provisioning 81 provides dynamic acquisition of computing resources and other resources for performing tasks within a cloud computing environment. Metering and pricing 82 provides cost statistics when utilizing resources within a cloud computing environment, as well as bills or invoices for consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for 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 so that the required service levels are met. Service Level Agreement (SLA) planning and fulfillment 85 provides pre-arrangement and procurement of cloud computing resources, anticipating future demand for the cloud computing resources based on the SLA.

[0087] Workload layer 90 provides examples of functionality for which a cloud computing environment may be utilized. Examples of workloads and functionality that may be provided from this layer include: drawing and navigation 91; software development and lifecycle management 92; virtual classroom instruction delivery 93; data analytics processing 94; transaction processing 95; and video encoding 96. Video encoding 96 may encode video data based on limiting the prediction of chrominance components from luma components when one or more conditions are met.

[0088] Some embodiments may involve systems, methods, and / or computer-readable media at any possible level of integrated technical detail. A computer-readable medium may include a computer-readable non-transitory storage medium (or multiple media) having computer-readable program instructions thereon for causing a processor to perform operations.

[0089] A computer-readable storage medium may be a tangible device capable of retaining and storing 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 disk, a random access memory (Random Access Memory, RAM), a read-only memory (Read-Only Memory, ROM), an erasable programmable read-only memory (Erasable Programmable Read-Only Memory, EPROM or flash memory), a static random access memory (Static Random Access Memory, SRAM), a portable compact disc read-only memory (Compact Disc Read-Only Memory, CD-ROM), a digital versatile disk (Digital Versatile Disk, DVD), a memory stick, a floppy disk, a mechanical encoding device such as a punch card or a raised structure in a groove on which instructions are recorded, and any suitable combination of the foregoing. Computer-readable storage media as used herein should not be construed as being itself a transient signal such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (such as light pulses passing through a fiber optic cable), or an electrical signal transmitted through a wire.

[0090] 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 such as 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.

[0091] The computer readable program code / instruction for performing the operation can be an assembly instruction, an instruction set architecture (Instruction-Set-Architecture, ISA) instruction, a machine instruction, a machine-related instruction, a microcode, a firmware instruction, a state setting data, a configuration data of an integrated circuit system, 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 language or similar programming languages. The computer readable program instructions can be executed entirely on the user's computer, partially on the user's computer, 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 case of executing entirely on a remote computer or server, 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 (e.g., by using the Internet of 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) can execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuit system to perform various aspects or operations.

[0092] 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 device for implementing the functions / actions specified in one or more blocks in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can guide the computer, programmable data processing device, and / or other equipment to operate in a specific manner, so that the computer-readable storage medium having the instructions stored therein includes an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0093] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps executed on the computer, other programmable apparatus, or other device produces a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0094] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functions and operations 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, a segment or a portion of an instruction, which includes one or more executable instructions for implementing a specific logical function. The method, computer system and computer-readable media may include additional blocks, fewer blocks, different blocks or blocks of different arrangements compared to those blocks depicted in the accompanying drawings. In some alternative implementations, the functions indicated in the blocks may not occur in the order indicated in the figure. For example, the two blocks shown in succession may actually be performed simultaneously or substantially simultaneously, or the blocks may sometimes be performed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart illustration and the combination of the blocks in the block diagram and / or flowchart illustration may be implemented by a hardware-based dedicated system that performs a specific function or action or realizes a combination of dedicated hardware and computer instructions.

[0095] It will be apparent that 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 does not limit 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.

[0096] Unless explicitly described as such, the elements, actions or instructions used herein should not be interpreted as critical or necessary. In addition, as used herein, the articles "a kind of" 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 (such as related items, unrelated items, combinations of related items and unrelated items, etc.), and can be used interchangeably with "one or more". In the case of only one item being meant, the term "one" or similar language is used. In addition, as used herein, the terms "have", "have", "with", 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".

[0097] The description of various aspects and embodiments has been presented for illustrative purposes, but is not intended to be exhaustive or limited to the disclosed embodiments. Even if combinations of features are described 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 described in the claims and / or disclosed in the specification. Although each dependent claim listed in the attached claims can directly refer to only one claim, the disclosure of possible implementations includes the combination of each dependent claim with each other claim in the claim set. Without departing from the scope of the described embodiments, many modifications and changes will be 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 to the prior art found in the market, or to enable other ordinary technicians in the art to understand the embodiments disclosed herein.

Claims

1. A video encoding method, characterized in that: The method comprises: receiving image data corresponding to a video frame; determining whether semi-decoupled partitioning is applied to the received image data, the semi-decoupled partitioning allowing chroma blocks to have a different coding block partition than luma components; and disabling a mode of predicting chroma components from luma components for a chroma block associated with the received image data based on determining that the received image data is semi-decoupled partitioned; The method of disabling a mode of predicting a chroma component from a luma component for a chroma block associated with the received image data based on determining that the received image data is semi-decoupled, comprises: The mode of predicting chroma components from luma components is disabled based on that the luma partition type associated with the super block node is a vertical partition type.

2. The method according to claim 1, characterized in that: Predicting the chroma component from the luma component is disabled for the chroma block based on one or more of the following conditions, the conditions including: the width or height of the luma block is greater than a predefined threshold T1; the width or height of the chroma block is greater than a predefined threshold T2; the width or height of the luma block is greater than a predefined threshold T3 and the transform partition depth is greater than or equal to a given threshold D0.

3. The method according to claim 1, characterized in that The vertical partition type includes one or more of a vertical binary tree partition, a vertical T-type partition, and a vertical ternary tree partition.

4. The method according to claim 2, characterized in that: Set T1 equal to 64 and set T2 equal to 32.

5. The method according to claim 4, characterized in that Set T3 equal to 64 and set D0 equal to 2.

6. The method according to claim 2, characterized in that T1 is set equal to 64, and when the luma block at the 64 by 64 node is not partitioned by the quadtree, partitioned by the horizontal binary tree, or not partitioned, the mode of predicting the chroma component from the luma component is disabled for the chroma block.

7. The method according to claim 2, characterized in that: T1 is set equal to 64, and when the luma block at the 64 by 64 node is partitioned using left T-partition or right T-partition, the predict chroma component from luma component mode is disabled for the chroma block.

8. The method according to claim 2, characterized in that: T1 is set equal to 64, and when the luma block at the 64 by 64 node is L-split or T-split, the predicting chroma component from luma component mode is disabled for the chroma block.

9. The method according to claim 2, characterized in that: T1 is set equal to 64, and when the luma block at the 64 by 64 node is divided into four horizontally or four vertically, the predicting chroma component from luma component mode is disabled for the chroma block.

10. The method according to claim 2, characterized in that T1 is set equal to 64, and when the luma block at the 64 by 64 node is divided by the ternary tree, the mode of predicting the chroma component from the luma component is disabled for the chroma block.

11. The method according to claim 2, characterized in that When the super block size is equal to or greater than 128 by 128 and the luma partition type at the super block node is not quadtree partitioning, the mode of predicting chroma components based on luma components is disabled for chroma blocks.

12. The method according to claim 2, characterized in that: When the super block size is equal to or greater than 128 by 128 and the luma partition type at the super block node is vertical binary tree partition or ternary tree partition, the mode of predicting the chroma component based on the luma component is disabled for the chroma block.

13. The method according to claim 2, characterized in that When the super block size is less than 128 by 128, the luma partition type at the super block node is partitioned into a partition other than a horizontal binary tree partition and the 128 by 64 block is partitioned into a partition of a vertical binary tree partition, the mode of predicting the chroma component based on the luma component is disabled for the chroma block.

14. The method according to claim 2, characterized in that T2 is set equal to 32, and when the chroma block at the 32x32 node is not partitioned by the quadtree or is partitioned by the horizontal binary tree or is not partitioned, the mode of predicting the chroma component from the luma component is disabled for all sub-chroma blocks of the 32x32 node.

15. The method according to claim 2, characterized in that T2 is set equal to 32, and when the chroma block at the 32x32 node is split by a ternary tree, a vertical binary tree, or a T-type split, the mode of predicting the chroma component from the luma component is disabled for all sub-chroma blocks of the 32x32 node.

16. A computer device, characterized in that: The computer device comprises: one or more computer-readable non-transitory storage media configured to store computer program code; and One or more computer processors configured to access the computer program code and execute the method according to any one of claims 1 to 15 as instructed by the computer program code.

17. A computer system for encoding video data, characterized in that: The computer system comprises: A receiving unit configured to receive image data corresponding to a video frame; a determining unit configured to determine whether semi-decoupled partitioning is applied to the received image data, the semi-decoupled partitioning allowing a chroma block to have a different coding block partition than a luma component; and A disabling unit is configured to disable a mode of predicting a chroma component based on a luminance component for a chroma block associated with the received image data based on determining that the received image data is semi-decoupled divided; the disabling unit, based on determining that the received image data is semi-decoupled divided, disabling the mode of predicting a chroma component based on a luminance component for a chroma block associated with the received image data, comprises: disabling the mode of predicting a chroma component based on a luminance division type associated with a super block node being a vertical division type.

18. A non-transitory computer readable medium, characterized in that The non-transitory computer-readable medium has stored thereon a computer program for encoding 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 15.

19. A method for processing a video bitstream, characterized in that: The video bit stream is generated according to the encoding method according to any one of claims 1 to 15.

Citation Information

Patent Citations

  • Method and apparatus for video encoding and decoding with partially shared luma and chroma coding trees

    WO2019231751A1