WO2020038378A1 - Procédé et dispositif de prédiction d'un bloc de chrominance - Google Patents
Procédé et dispositif de prédiction d'un bloc de chrominance Download PDFInfo
- Publication number
- WO2020038378A1 WO2020038378A1 PCT/CN2019/101657 CN2019101657W WO2020038378A1 WO 2020038378 A1 WO2020038378 A1 WO 2020038378A1 CN 2019101657 W CN2019101657 W CN 2019101657W WO 2020038378 A1 WO2020038378 A1 WO 2020038378A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- value
- point
- block
- luminance
- brightness
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N11/00—Colour television systems
- H04N11/04—Colour television systems using pulse code modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
Definitions
- the present application relates to the field of video encoding and decoding, and more particularly, to a method and device for predicting chroma blocks.
- Video codecs are widely used in digital video applications, such as broadcast digital TV, video distribution on the Internet and mobile networks, real-time conversation applications such as video chat and video conferencing, DVD and Blu-ray discs, video content capture and editing systems, and camcorders Security applications.
- Each picture of a video sequence is usually partitioned into a set of non-overlapping blocks, usually encoded at the block level.
- prediction blocks are generated by spatial (intra-picture) prediction and temporal (inter-picture) prediction.
- the prediction modes may include an intra prediction mode (spatial prediction) and an inter prediction mode (temporal prediction).
- the intra prediction mode set may include 35 different intra prediction modes, for example, a non-directional mode such as a DC (or average) mode and a planar mode; or a directional mode as defined in H.265; or Includes 67 different intra-prediction modes, such as non-directional modes such as DC (or average) mode and planar mode; or directional modes as defined in the developing H.266.
- the set of inter prediction modes depends on the available reference pictures and other inter prediction parameters, such as whether to use the entire reference picture or only a part of the reference picture.
- the existing video is generally a color video, which contains a chrominance component in addition to a luminance component. Therefore, in addition to encoding the luminance component, it is also necessary to encode the chrominance component.
- the value of the chroma component can be obtained through a more complicated method, and the efficiency of the chroma coding mode is low.
- the embodiments of the present application (or the present disclosure) provide an apparatus and method for chroma block prediction.
- the present invention relates to a prediction method for a chroma block.
- the method is performed by a device that decodes or encodes a video stream.
- the method includes: searching for a value of a luminance point in an adjacent region of a luminance block corresponding to a current chrominance block to obtain an extreme value of the luminance, the adjacent region includes a region of a row adjacent to the luminance block in a template-related region, The horizontal coordinate position of each luminance point searched in the area adjacent to the upper row of the luminance block is aligned with the horizontal coordinate position of the corresponding chrominance point in the chrominance image; the chromaticity point corresponding to the extreme value of the luminance is obtained.
- the brightness extreme value includes a brightness maximum value and a brightness minimum value
- the obtaining a value of a chroma point corresponding to the brightness extreme value includes:
- Obtaining a linear model coefficient according to the brightness extreme value and the value of the chromaticity point includes:
- the linear model coefficient is obtained according to the maximum value and the value of the corresponding chromaticity point, and the minimum value and the value of the corresponding chromaticity point.
- the horizontal coordinate of the first chrominance point is xb
- the horizontal coordinate of the first luminance point in the area adjacent to the upper row of the luminance block is 2 * xb
- the horizontal coordinate position of the first luminance point is aligned with the horizontal coordinate position of the first chrominance point.
- the invention in a second aspect, relates to a device for decoding a video stream, comprising a processor and a memory.
- the memory stores instructions that cause the processor to perform the method according to the first aspect.
- the invention in a third aspect, relates to a device for encoding a video stream, comprising a processor and a memory.
- the memory stores instructions that cause the processor to perform the method according to the first aspect.
- a computer-readable storage medium which stores instructions thereon, which, when executed, cause one or more processors to encode video data.
- the instructions cause the one or more processors to perform a method according to any possible embodiment of the first aspect.
- the invention relates to a computer program comprising program code which, when run on a computer, performs the method according to any possible embodiment of the first aspect.
- the embodiments of the present invention can effectively reduce the complexity of the linear mode and improve the efficiency of the chroma coding mode.
- FIG. 1A shows a block diagram of an example of a video encoding system for implementing an embodiment of the present invention
- FIG. 1B shows a block diagram of an example of a video encoding system including any one or both of the encoder 20 of FIG. 2 and the decoder 30 of FIG. 3;
- FIG. 2 is a block diagram showing an example structure of a video encoder for implementing an embodiment of the present invention
- FIG. 3 is a block diagram showing an example structure of a video decoder for implementing an embodiment of the present invention
- FIG. 4 is a block diagram illustrating an example of an encoding device or a decoding device
- FIG. 5 is a block diagram illustrating an example of another encoding device or decoding device
- Figure 6 shows an example of a YUV format sampling grid
- FIG. 7 is a schematic diagram showing a relationship between a position of a chroma sampling point and a position of a luminance sampling point
- FIG. 8 shows an embodiment of a linear mode (LM).
- FIG. 9 shows a schematic diagram of an upper template and a left template
- FIG. 10 shows a method flowchart of Embodiment 1 of the present invention.
- FIG. 11 is a schematic diagram of a search point location according to the first embodiment of the present invention.
- FIG. 12 shows a flowchart of a method according to a second embodiment of the present invention.
- FIG. 13 is a schematic diagram of a search point location according to the second embodiment of the present invention.
- FIG. 14 shows a schematic diagram of determining a final extreme value and a corresponding chromaticity value by the multi-point method in Embodiment 7 of the present invention.
- Video coding generally refers to processing a sequence of pictures that form a video or a video sequence.
- picture In the field of video coding, the terms “picture”, “frame” or “image” can be used as synonyms.
- Video encoding used in this application means video encoding or video decoding.
- Video encoding is performed on the source side and typically involves processing (e.g., by compressing) the original video picture to reduce the amount of data required to represent the video picture, thereby storing and / or transmitting more efficiently.
- Video decoding is performed on the destination side and usually involves inverse processing relative to the encoder to reconstruct the video picture.
- the video picture “encoding” involved in the embodiment should be understood as the “encoding” or “decoding” of the video sequence.
- the combination of the encoding part and the decoding part is also called codec (encoding and decoding).
- Each picture of a video sequence is usually partitioned into a set of non-overlapping blocks, usually encoded at the block level.
- the encoder side usually processes at the block (also called image block, or video block) level, that is, encodes the video.
- the prediction block is generated by spatial (intra-picture) prediction and temporal (inter-picture) prediction.
- the current block (currently processed or block to be processed) is subtracted from the prediction block to obtain the residual block, the residual block is transformed in the transform domain and the residual block is quantized to reduce the amount of data to be transmitted (compressed), and the decoder side will
- the inverse processing part relative to the encoder is applied to the encoded or compressed block to reconstruct the current block for representation.
- the encoder duplicates the decoder processing loop so that the encoder and decoder generate the same predictions (such as intra prediction and inter prediction) and / or reconstruction for processing, that is, encoding subsequent blocks.
- block may be part of a picture or frame. This application defines the following key terms:
- Current block Refers to the block currently being processed. For example, in encoding, it means the block that is currently being encoded; in decoding, it means the block that is currently being decoded. If the currently processed block is a chroma component block, it is called the current chroma block.
- the luma block corresponding to the current chroma block may be referred to as the current luma block.
- Reference block refers to the block that provides a reference signal for the current block. During the search process, multiple reference blocks can be traversed to find the best reference block.
- Predicted block The block that provides prediction for the current block is called the predicted block. For example, after traversing multiple reference blocks, the best reference block is found. This best reference block will provide prediction for the current block. This block is called a prediction block.
- Image block signal pixel value or sample value or sample signal in the image block.
- Prediction signal A pixel value or a sample value or a sampled signal within a prediction block is called a prediction signal.
- Embodiments of the encoder 20, the decoder 30, and the encoding system 10 are described below based on FIGS. 1A, 1B, and 3.
- FIG. 1A is a conceptual or schematic block diagram of an exemplary encoding system 10, for example, a video encoding system 10 that can utilize the technology of the present application (the present disclosure).
- the encoder 20 eg, video encoder 20
- decoder 30 eg, video decoder 30
- the encoding system 10 includes a source device 12 for providing the encoded data 13, such as the encoded picture 13, to a destination device 14 that decodes the encoded data 13, for example.
- the source device 12 includes an encoder 20, and may optionally include a picture source 16, such as a pre-processing unit 18 of a picture pre-processing unit 18, and a communication interface or communication unit 22.
- a picture source 16 such as a pre-processing unit 18 of a picture pre-processing unit 18, and a communication interface or communication unit 22.
- the picture source 16 may include or may be any kind of picture capture device for, for example, capturing real-world pictures, and / or any kind of pictures or comments (for screen content encoding, some text on the screen is also considered to be a picture to be encoded Or a part of an image) generating device, for example, a computer graphics processor for generating computer animated pictures, or for obtaining and / or providing real world pictures, computer animated pictures (for example, screen content, virtual reality (VR) ) Pictures) of any type of device, and / or any combination thereof (eg, augmented reality (AR) pictures).
- a computer graphics processor for generating computer animated pictures, or for obtaining and / or providing real world pictures, computer animated pictures (for example, screen content, virtual reality (VR) ) Pictures) of any type of device, and / or any combination thereof (eg, augmented reality (AR) pictures).
- AR augmented reality
- Pictures can be viewed as a two-dimensional array or matrix of sample points with luminance values.
- the sampling points in the array may also be called pixels (short for picture element) or pixels.
- the number of sampling points of the array or picture in the horizontal and vertical directions (or axes) defines the size and / or resolution of the picture.
- three color components are usually used, that is, a picture can be represented as or contain three sampling arrays.
- the picture includes corresponding red, green and blue sampling arrays.
- each pixel is usually represented in a luma / chroma format or color space, for example, YCbCr, including the luma component indicated by Y (sometimes also indicated by L) and the two chroma indicated by Cb and Cr Weight.
- Luma (abbreviated as luma) component Y represents luminance or gray level intensity (for example, both are the same in a grayscale picture), while two chroma (abbreviated as chroma) components Cb and Cr represent chroma or color information components .
- a picture in the YCbCr format includes a luminance sampling array of luminance sampling values (Y), and two chrominance sampling arrays of chrominance values (Cb and Cr).
- Y luminance sampling values
- Cb and Cr chrominance sampling arrays of chrominance values
- Pictures in RGB format can be converted or converted to YCbCr format, and vice versa. This process is also called color conversion or conversion. If the picture is black, the picture can only include an array of luminance samples.
- the picture source 16 may be, for example, a camera for capturing pictures, such as a memory of a picture memory, including or storing a previously captured or generated picture, and / or any category (internal Or external) interface.
- the camera may be, for example, an integrated camera that is local or integrated in the source device, and the memory may be local or, for example, an integrated memory that is integrated in the source device.
- the interface may be, for example, an external interface for receiving pictures from an external video source.
- the external video source is, for example, an external picture capture device, such as a camera, an external memory, or an external picture generation device.
- the external picture generation device is, for example, an external computer graphics processor, a computer. Or server.
- the interface may be any type of interface according to any proprietary or standardized interface protocol, such as a wired or wireless interface, an optical interface.
- the interface for acquiring the picture data 17 may be the same interface as the communication interface 22 or a part of the communication interface 22.
- a picture or picture data 17 (for example, video data 16) may also be referred to as an original picture or original picture data 17.
- the pre-processing unit 18 is configured to receive (original) picture data 17 and perform pre-processing on the picture data 17 to obtain pre-processed pictures 19 or pre-processed picture data 19.
- the pre-processing performed by the pre-processing unit 18 may include trimming, color format conversion (for example, conversion from RGB to YCbCr), color correction, or denoising. It is understood that the pre-processing unit 18 may be an optional component.
- An encoder 20 (eg, video encoder 20) is used to receive the pre-processed picture data 19 and provide the encoded picture data 21 (details will be further described below, for example, based on FIG. 2 or FIG. 4). In one example, the encoder 20 may be used to perform embodiments one to seven described below.
- the communication interface 22 of the source device 12 can be used to receive the encoded picture data 21 and transmit it to other devices, such as the destination device 14 or any other device, for storage or direct reconstruction, or for correspondingly storing the
- the encoded data 13 and / or the encoded picture data 21 are processed before transmitting the encoded data 13 to other devices, such as the destination device 14 or any other device for decoding or storage.
- the destination device 14 includes a decoder 30 (for example, a video decoder 30), and in addition, optionally, it may include a communication interface or communication unit 28, a post-processing unit 32, and a display device 34.
- a decoder 30 for example, a video decoder 30
- the communication interface 28 of the destination device 14 is used, for example, to receive the encoded picture data 21 or the encoded data 13 directly from the source device 12 or any other source.
- Any other source is, for example, a storage device, and the storage device is, for example, encoded picture data storage. device.
- the communication interface 22 and the communication interface 28 can be used for direct communication through a direct communication link between the source device 12 and the destination device 14 or transmission or reception of encoded picture data 21 or encoded data 13 through any type of network
- the link is, for example, a direct wired or wireless connection, and any type of network is, for example, a wired or wireless network or any combination thereof, or any type of private and public network, or any combination thereof.
- the communication interface 22 may be used, for example, to encapsulate the encoded picture data 21 into a suitable format, such as a packet, for transmission over a communication link or communication network.
- the communication interface 28 forming a corresponding part of the communication interface 22 may be used, for example, to decapsulate the encoded data 13 to obtain the encoded picture data 21.
- Both the communication interface 22 and the communication interface 28 may be configured as unidirectional communication interfaces, as indicated by the arrows for the encoded picture data 13 from the source device 12 to the destination device 14 in FIG. 1A, or configured as bidirectional communication interfaces, and It can be used, for example, to send and receive messages to establish a connection, acknowledge, and exchange any other information related to a communication link and / or data transmission such as encoded picture data transmission.
- the decoder 30 is configured to receive the encoded picture data 21 and provide the decoded picture data 31 or the decoded picture 31 (details will be further described below, for example, based on FIG. 3 or FIG. 5). In one example, the decoder 30 may be used to perform the following embodiments one to seven.
- the post-processor 32 of the destination device 14 is used to post-process decoded picture data 31 (also referred to as reconstructed picture data), for example, decoded picture 131 to obtain post-processed picture data 33, for example, post-processed Picture 33.
- the post-processing performed by the post-processing unit 32 may include, for example, color format conversion (e.g., conversion from YCbCr to RGB), color correction, retouching, or resampling, or any other processing, such as preparing the decoded picture data 31 to be processed by
- the display device 34 displays it.
- the display device 34 of the destination device 14 is used to receive the post-processed picture data 33 to display a picture to, for example, a user or a viewer.
- the display device 34 may be or may include any kind of display for presenting a reconstructed picture, such as an integrated or external display or monitor.
- the display may include a liquid crystal display (LCD), an organic light emitting diode (OLED) display, a plasma display, a projector, a micro LED display, a liquid crystal on silicon (LCoS), Digital light processor (DLP) or any other display of any kind.
- FIG. 1A illustrates the source device 12 and the destination device 14 as separate devices
- the device embodiment may also include the source device 12 and the destination device 14 or both of the functionality, that is, the source device 12 or corresponding And the functionality of the destination device 14 or equivalent.
- the same hardware and / or software, or separate hardware and / or software, or any combination thereof may be used to implement the source device 12 or corresponding functionality and the destination device 14 or corresponding functionality .
- Both the encoder 20 e.g., video encoder 20
- decoder 30 e.g., video decoder 30
- DSP digital signal processors
- ASIC application-specific integrated circuit
- FPGA field-programmable gate array
- the device may store the software's instructions in a suitable non-transitory computer-readable storage medium and may use one or more processors to execute the instructions in hardware to perform the techniques of the present disclosure . Any one of the foregoing (including hardware, software, a combination of hardware and software, etc.) can be considered as one or more processors.
- Each of the video encoder 20 and the video decoder 30 may be included in one or more encoders or decoders, and any of the encoders or decoders may be integrated as a combined encoder / decoder in a corresponding device (Codec).
- the source device 12 may be referred to as a video encoding device or a video encoding device.
- the destination device 14 may be referred to as a video decoding device or a video decoding device.
- the source device 12 and the destination device 14 may be examples of a video encoding device or a video encoding apparatus.
- Source device 12 and destination device 14 may include any of a variety of devices, including any type of handheld or stationary device, such as a notebook or laptop computer, mobile phone, smartphone, tablet or tablet computer, video camera, desktop Computer, set-top box, TV, display device, digital media player, video game console, video streaming device (such as content service server or content distribution server), broadcast receiver device, broadcast transmitter device, etc., and may not be used Or use any kind of operating system.
- a notebook or laptop computer mobile phone, smartphone, tablet or tablet computer, video camera, desktop Computer, set-top box, TV, display device, digital media player, video game console, video streaming device (such as content service server or content distribution server), broadcast receiver device, broadcast transmitter device, etc., and may not be used Or use any kind of operating system.
- source device 12 and destination device 14 may be equipped for wireless communication. Therefore, the source device 12 and the destination device 14 may be wireless communication devices.
- the video encoding system 10 shown in FIG. 1A is merely an example, and the techniques of this application may be applicable to video encoding settings (eg, video encoding or video decoding) that do not necessarily include any data communication between encoding and decoding devices.
- data may be retrieved from local storage, streamed over a network, and the like.
- the video encoding device may encode the data and store the data to a memory, and / or the video decoding device may retrieve the data from the memory and decode the data.
- encoding and decoding are performed by devices that do not communicate with each other, but only encode data to and / or retrieve data from memory and decode data.
- video decoder 30 may be used to perform the reverse process.
- video decoder 30 may be used to receive and parse such syntax elements, and decode related video data accordingly.
- video encoder 20 may entropy encode syntax elements into an encoded video bitstream.
- video decoder 30 may parse such syntax elements and decode related video data accordingly.
- FIG. 1B is an explanatory diagram of an example of a video encoding system 40 including the encoder 20 of FIG. 2 and / or the decoder 30 of FIG. 3 according to an exemplary embodiment.
- the system 40 may implement a combination of various techniques of the present application.
- the video encoding system 40 may include an imaging device 41, a video encoder 20, a video decoder 30 (and / or a video encoder implemented by the logic circuit 47 of the processing unit 46), an antenna 42, One or more processors 43, one or more memories 44, and / or a display device 45.
- the imaging device 41, antenna 42, processing unit 46, logic circuit 47, video encoder 20, video decoder 30, processor 43, memory 44, and / or display device 45 can communicate with each other.
- video encoding system 40 is shown with video encoder 20 and video decoder 30, in different examples, video encoding system 40 may include only video encoder 20 or only video decoder 30.
- the video encoding system 40 may include an antenna 42.
- the antenna 42 may be used to transmit or receive an encoded bit stream of video data.
- the video encoding system 40 may include a display device 45.
- the display device 45 may be used to present video data.
- the logic circuit 47 may be implemented by the processing unit 46.
- the processing unit 46 may include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, and the like.
- the video encoding system 40 may also include an optional processor 43, which may similarly include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, and the like.
- ASIC application-specific integrated circuit
- the logic circuit 47 may be implemented by hardware, such as dedicated hardware for video encoding, and the processor 43 may be implemented by general software, operating system, and the like.
- the memory 44 may be any type of memory, such as volatile memory (e.g., Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), etc.) or non-volatile memory Memory (for example, flash memory, etc.).
- the memory 44 may be implemented by a cache memory.
- the logic circuit 47 may access the memory 44 (eg, for implementing an image buffer).
- the logic circuit 47 and / or the processing unit 46 may include a memory (eg, a cache, etc.) for implementing an image buffer or the like.
- video encoder 20 implemented by logic circuits may include an image buffer (eg, implemented by processing unit 46 or memory 44) and a graphics processing unit (eg, implemented by processing unit 46).
- the graphics processing unit may be communicatively coupled to the image buffer.
- the graphics processing unit may include a video encoder 20 implemented by a logic circuit 47 to implement the various modules discussed with reference to FIG. 2 and / or any other encoder system or subsystem described herein.
- Logic circuits can be used to perform various operations discussed herein.
- Video decoder 30 may be implemented in a similar manner by logic circuit 47 to implement the various modules discussed with reference to decoder 30 of FIG. 3 and / or any other decoder system or subsystem described herein.
- video decoder 30 implemented by a logic circuit may include an image buffer (implemented by processing unit 2820 or memory 44) and a graphics processing unit (eg, implemented by processing unit 46).
- the graphics processing unit may be communicatively coupled to the image buffer.
- the graphics processing unit may include a video decoder 30 implemented by a logic circuit 47 to implement various modules discussed with reference to FIG. 3 and / or any other decoder system or subsystem described herein.
- the antenna 42 of the video encoding system 40 may be used to receive an encoded bit stream of video data.
- the encoded bitstream may contain data, indicators, index values, mode selection data, etc. related to encoded video frames discussed herein, such as data related to coded segmentation (e.g., transform coefficients or quantized transform coefficients) , (As discussed) optional indicators, and / or data defining code partitions).
- the video encoding system 40 may also include a video decoder 30 coupled to the antenna 42 and used to decode the encoded bitstream.
- the display device 45 is used to present video frames.
- FIG. 2 shows a schematic / conceptual block diagram of an example of a video encoder 20 for implementing the technology of the present (disclosed) application.
- the video encoder 20 includes a residual calculation unit 204, a transformation processing unit 206, a quantization unit 208, an inverse quantization unit 210, an inverse transformation processing unit 212, a reconstruction unit 214, a buffer 216, and a loop filter.
- the prediction processing unit 260 may include an inter prediction unit 244, an intra prediction unit 254, and a mode selection unit 262.
- the inter prediction unit 244 may include a motion estimation unit and a motion compensation unit (not shown).
- the video encoder 20 shown in FIG. 2 may also be referred to as a hybrid video encoder or a video encoder according to a hybrid video codec.
- the residual calculation unit 204, the transformation processing unit 206, the quantization unit 208, the prediction processing unit 260, and the entropy encoding unit 270 form the forward signal path of the encoder 20, while the inverse quantization unit 210, the inverse transformation processing unit 212,
- the constructing unit 214, the buffer 216, the loop filter 220, the decoded picture buffer (DPB) 230, and the prediction processing unit 260 form a backward signal path of the encoder, wherein the backward signal path of the encoder corresponds to To the decoder's signal path (see decoder 30 in Figure 3).
- the encoder 20 receives a picture 201 or a block 203 of the picture 201 through, for example, an input 202, for example, a picture in a picture sequence forming a video or a video sequence.
- the picture block 203 can also be called the current picture block or the picture block to be encoded
- the picture 201 can be called the current picture or the picture to be encoded (especially when the current picture is distinguished from other pictures in video encoding, other pictures such as the same video sequence (Ie previously encoded and / or decoded pictures in the video sequence of the current picture).
- An embodiment of the encoder 20 may include a segmentation unit (not shown in FIG. 2) for segmenting the picture 201 into multiple blocks, such as the block 203, and generally into multiple non-overlapping blocks.
- the segmentation unit can be used to use the same block size and corresponding raster to define the block size for all pictures in the video sequence, or to change the block size between pictures or subsets or groups of pictures, and split each picture into Corresponding block.
- the prediction processing unit 260 of the video encoder 20 may be used to perform any combination of the aforementioned segmentation techniques.
- block 203 is also or can be regarded as a two-dimensional array or matrix of sampling points with brightness values (sampling values), although its size is smaller than picture 201.
- block 203 may include, for example, one sampling array (e.g., a luminance array in the case of a black and white picture 201) or three sampling arrays (e.g., one luminance array and two chroma arrays in the case of a color picture) or a basis An array of any other number and / or category of color formats applied.
- the number of sampling points in the horizontal and vertical directions (or axes) of the block 203 defines the size of the block 203.
- the encoder 20 shown in FIG. 2 is used to encode a picture 201 block by block, for example, performing encoding and prediction on each block 203.
- the residual calculation unit 204 is configured to calculate the residual block 205 based on the picture block 203 and the prediction block 265 (the other details of the prediction block 265 are provided below). For example, the sample value of the picture block 203 is subtracted from the prediction by sample by pixel (pixel by pixel). Sample values of block 265 to obtain residual block 205 in the sample domain.
- the transform processing unit 206 is configured to apply a transform such as discrete cosine transform (DCT) or discrete sine transform (DST) on the sample values of the residual block 205 to obtain transform coefficients 207 in the transform domain.
- a transform such as discrete cosine transform (DCT) or discrete sine transform (DST)
- DCT discrete cosine transform
- DST discrete sine transform
- the transform coefficient 207 may also be referred to as a transform residual coefficient, and represents a residual block 205 in a transform domain.
- the transform processing unit 206 may be used to apply an integer approximation of DCT / DST, such as the transform specified for HEVC / H.265. Compared to an orthogonal DCT transform, this integer approximation is usually scaled by a factor. To maintain the norm of the residual blocks processed by the forward and inverse transforms, an additional scaling factor is applied as part of the transform process.
- the scaling factor is usually selected based on certain constraints, for example, the scaling factor is a power of two used for shift operations, the bit depth of the transform coefficients, the trade-off between accuracy, and implementation cost.
- a specific scaling factor is specified on the decoder 30 side by, for example, the inverse transform processing unit 212 (and on the encoder 20 side by, for example, the inverse transform processing unit 212 as the corresponding inverse transform), and accordingly, the The 20 side specifies a corresponding scaling factor for the positive transformation through the transformation processing unit 206.
- the quantization unit 208 is used to quantize the transform coefficients 207, for example, by applying scalar quantization or vector quantization to obtain the quantized transform coefficients 209.
- the quantized transform coefficient 209 may also be referred to as a quantized residual coefficient 209.
- the quantization process can reduce the bit depth associated with some or all of the transform coefficients 207. For example, n-bit transform coefficients may be rounded down to m-bit transform coefficients during quantization, where n is greater than m.
- the degree of quantization can be modified by adjusting the quantization parameter (QP). For scalar quantization, for example, different scales can be applied to achieve finer or coarser quantization.
- a smaller quantization step size corresponds to a finer quantization, while a larger quantization step size corresponds to a coarser quantization.
- An appropriate quantization step size can be indicated by a quantization parameter (QP).
- the quantization parameter may be an index of a predefined set of suitable quantization steps.
- smaller quantization parameters may correspond to fine quantization (smaller quantization step size)
- larger quantization parameters may correspond to coarse quantization (larger quantization step size)
- Quantization may include division by a quantization step size and corresponding quantization or inverse quantization performed, for example, by inverse quantization 210, or may include multiplication by a quantization step size.
- Embodiments according to some standards such as HEVC may use quantization parameters to determine the quantization step size.
- the quantization step size can be calculated using a fixed-point approximation using an equation containing division based on the quantization parameter. Additional scaling factors may be introduced for quantization and inverse quantization to restore the norm of the residual block that may be modified due to the scale used in the fixed-point approximation of the equation for the quantization step size and quantization parameter.
- inverse transform and inverse quantization scales can be combined.
- a custom quantization table can be used and signaled from the encoder to the decoder in, for example, a bitstream. Quantization is a lossy operation, where the larger the quantization step, the greater the loss.
- the inverse quantization unit 210 is used to apply the inverse quantization of the quantization unit 208 on the quantized coefficients to obtain the inverse quantized coefficients 211. For example, based on or using the same quantization step size as the quantization unit 208, the quantization scheme applied by the quantization unit 208 is applied. Inverse quantization scheme.
- the dequantized coefficient 211 may also be referred to as a dequantized residual coefficient 211, which corresponds to the transform coefficient 207, although the loss due to quantization is usually different from the transform coefficient.
- the inverse transform processing unit 212 is used to apply an inverse transform of the transform applied by the transform processing unit 206, for example, an inverse discrete cosine transform (DCT) or an inverse discrete sine transform (DST), in the sample domain.
- DCT inverse discrete cosine transform
- DST inverse discrete sine transform
- the inverse transform block 213 may also be referred to as an inverse transform inverse quantized block 213 or an inverse transform residual block 213.
- the reconstruction unit 214 (for example, the summer 214) is used to add the inverse transform block 213 (that is, the reconstructed residual block 213) to the prediction block 265 to obtain the reconstructed block 215 in the sample domain.
- the sample values of the reconstructed residual block 213 are added to the sample values of the prediction block 265.
- a buffer unit 216 (or simply "buffer" 216), such as a line buffer 216, is used to buffer or store the reconstructed block 215 and corresponding sample values, for example, for intra prediction.
- the encoder may be used to use any unfiltered reconstructed block and / or corresponding sample values stored in the buffer unit 216 for any category of estimation and / or prediction, such as intra-frame prediction.
- an embodiment of the encoder 20 may be configured such that the buffer unit 216 is used not only for storing the reconstructed block 215 for intra prediction 254, but also for the loop filter unit 220 (not shown in FIG. 2). Out), and / or, for example, to make the buffer unit 216 and the decoded picture buffer unit 230 form a buffer.
- Other embodiments may be used to use the filtered block 221 and / or blocks or samples from the decoded picture buffer 230 (neither shown in FIG. 2) as the input or basis for the intra prediction 254.
- the loop filter unit 220 (or simply "loop filter” 220) is configured to filter the reconstructed block 215 to obtain the filtered block 221, so as to smoothly perform pixel conversion or improve video quality.
- the loop filter unit 220 is intended to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or other filters, such as a bilateral filter, Adaptive loop filters (adaptive loop filters, ALF), or sharpening or smoothing filters, or cooperative filters.
- the loop filter unit 220 is shown as an in-loop filter in FIG. 2, in other configurations, the loop filter unit 220 may be implemented as a post-loop filter.
- the filtered block 221 may also be referred to as a filtered reconstructed block 221.
- the decoded picture buffer 230 may store the reconstructed encoded block after the loop filter unit 220 performs a filtering operation on the reconstructed encoded block.
- An embodiment of the encoder 20 may be used to output loop filter parameters (e.g., sample adaptive offset information), for example, directly output or by the entropy coding unit 270 or any other
- the entropy coding unit outputs after entropy coding, for example, so that the decoder 30 can receive and apply the same loop filter parameters for decoding.
- the decoded picture buffer (DPB) 230 may be a reference picture memory that stores reference picture data for the video encoder 20 to encode video data.
- DPB 230 can be formed by any of a variety of memory devices, such as dynamic random access (DRAM) (including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), and resistive RAM (resistive RAM, RRAM)) or other types of memory devices.
- DRAM dynamic random access
- SDRAM synchronous DRAM
- MRAM magnetoresistive RAM
- RRAM resistive RAM
- the DPB 230 and the buffer 216 may be provided by the same memory device or separate memory devices.
- a decoded picture buffer (DPB) 230 is used to store the filtered block 221.
- the decoded picture buffer 230 may be further used to store other previous filtered blocks of the same current picture or different pictures such as previously reconstructed pictures, such as the previously reconstructed and filtered block 221, and may provide a complete previous Reconstruction is the decoded picture (and corresponding reference blocks and samples) and / or part of the reconstructed current picture (and corresponding reference blocks and samples), for example for inter prediction.
- a decoded picture buffer (DPB) 230 is used to store the reconstructed block 215.
- Prediction processing unit 260 also referred to as block prediction processing unit 260, is used to receive or obtain block 203 (current block 203 of current picture 201) and reconstructed picture data, such as a reference to the same (current) picture from buffer 216 Samples and / or reference picture data 231 from one or more previously decoded pictures from the decoded picture buffer 230, and used to process such data for prediction, i.e., may be provided as inter-predicted blocks 245 or intra- Prediction block 265 of prediction block 255.
- the mode selection unit 262 may be used to select a prediction mode (such as an intra or inter prediction mode) and / or a corresponding prediction block 245 or 255 used as the prediction block 265 to calculate the residual block 205 and reconstruct the reconstructed block 215.
- a prediction mode such as an intra or inter prediction mode
- a corresponding prediction block 245 or 255 used as the prediction block 265 to calculate the residual block 205 and reconstruct the reconstructed block 215.
- An embodiment of the mode selection unit 262 may be used to select a prediction mode (e.g., selected from those prediction modes supported by the prediction processing unit 260) that provides the best match or minimum residual (minimum residual means Better compression in transmission or storage), or provide minimal signaling overhead (minimum signaling overhead means better compression in transmission or storage), or consider or balance both.
- the mode selection unit 262 may be configured to determine a prediction mode based on rate-distortion optimization (RDO), that is, to select a prediction mode that provides the minimum code-rate distortion optimization, or to select a prediction mode whose related code-rate distortion meets at least the prediction mode selection criteria.
- RDO rate-distortion optimization
- the encoder 20 is used to determine or select the best or optimal prediction mode from a set of (predetermined) prediction modes.
- the prediction mode set may include, for example, an intra prediction mode and / or an inter prediction mode.
- the intra prediction mode set may include 35 different intra prediction modes, or may include 67 different intra prediction modes, or may include intra prediction modes defined in the developing H.266.
- the set of inter-prediction modes depends on the available reference pictures (i.e., at least part of the decoded pictures previously stored in DBP 230) and other inter-prediction parameters, such as whether to use the entire reference picture or only a part of the reference picture, A search window area around the area of the current block, for example, is used to search for the best matching reference block, and / or for example, depending on whether pixel interpolation such as half-pixel and / or quarter-pixel interpolation is applied.
- a skip mode and / or a direct mode can also be applied.
- the prediction processing unit 260 may be further configured to divide the block 203 into smaller block partitions or sub-blocks, for example, using a quad-tree (QT) partition, a binary-tree (BT) partition, or Triple-tree (TT) segmentation, or any combination thereof, and for performing predictions, for example, for each of block partitions or sub-blocks, where the mode selection includes selecting the tree structure of the partitioned block 203 and the selection applied to the block The prediction mode for each of the partitions or sub-blocks.
- QT quad-tree
- BT binary-tree
- TT Triple-tree
- the inter prediction unit 244 may include a motion estimation (ME) unit (not shown in FIG. 2) and a motion compensation (MC) unit (not shown in FIG. 2).
- the motion estimation unit is configured to receive or obtain picture block 203 (current picture block 203 of current picture 201) and decoded picture 231, or at least one or more previously reconstructed blocks, for example, one or more other / different previous
- the reconstructed block of picture 231 is decoded for motion estimation.
- the video sequence may include the current picture and the previously decoded picture 31, or in other words, the current picture and the previously decoded picture 31 may be part of the picture sequence forming the video sequence or form the picture sequence.
- the encoder 20 may be used to select a reference block from multiple reference blocks of the same or different pictures in multiple other pictures, and provide a reference picture and / or a reference to a motion estimation unit (not shown in FIG. 2).
- the offset (spatial offset) between the position of the block (X, Y coordinates) and the position of the current block is used as an inter prediction parameter. This offset is also called a motion vector (MV).
- the motion compensation unit is used for obtaining, for example, receiving inter prediction parameters, and performing inter prediction based on or using the inter prediction parameters to obtain the inter prediction block 245.
- Motion compensation performed by a motion compensation unit may include taking out or generating a prediction block based on a motion / block vector determined through motion estimation (possibly performing interpolation on sub-pixel accuracy). Interpolation filtering can generate additional pixel samples from known pixel samples, potentially increasing the number of candidate prediction blocks that can be used to encode picture blocks.
- the motion compensation unit 246 may locate the prediction block pointed to by the motion vector in a reference picture list.
- Motion compensation unit 246 may also generate syntax elements associated with blocks and video slices for use by video decoder 30 when decoding picture blocks of video slices.
- the intra prediction unit 254 is configured to obtain, for example, a picture block 203 (current picture block) and one or more previously reconstructed blocks, such as reconstructed neighboring blocks, that receive the same picture for intra estimation.
- the encoder 20 may be used to select an intra prediction mode from a plurality of intra prediction modes.
- Embodiments of the encoder 20 may be used to select an intra-prediction mode based on an optimization criterion, such as based on a minimum residual (eg, an intra-prediction mode that provides a prediction block 255 most similar to the current picture block 203) or a minimum code rate distortion.
- an optimization criterion such as based on a minimum residual (eg, an intra-prediction mode that provides a prediction block 255 most similar to the current picture block 203) or a minimum code rate distortion.
- the intra prediction unit 254 is further configured to determine the intra prediction block 255 based on the intra prediction parameters of the intra prediction mode as selected. In any case, after selecting the intra prediction mode for the block, the intra prediction unit 254 is further configured to provide the intra prediction parameters to the entropy encoding unit 270, that is, to provide an indication of the selected intra prediction mode for the block. Information. In one example, the intra prediction unit 254 may be used to perform any combination of intra prediction techniques described below.
- the entropy coding unit 270 is configured to apply an entropy coding algorithm or scheme (for example, a variable length coding (VLC) scheme, a context adaptive VLC (context adaptive VLC, CAVLC) scheme, an arithmetic coding scheme, and a context adaptive binary arithmetic Coding (context, adaptive binary coding, CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding, or other entropy Encoding method or technique) applied to one or all of the quantized residual coefficients 209, inter prediction parameters, intra prediction parameters, and / or loop filter parameters (or not applied) to obtain
- VLC variable length coding
- CAVLC context adaptive VLC
- CABAC syntax-based context-adaptive binary arithmetic coding
- PIPE probability interval partitioning entropy
- the encoded picture data 21 is output in the form of, for example, an encoded bit stream 21.
- the encoded bitstream may be transmitted to video decoder 30 or archived for later transmission or retrieval by video decoder 30.
- the entropy encoding unit 270 may also be used to entropy encode other syntax elements of the current video slice that is being encoded.
- video encoder 20 may be used to encode a video stream.
- the non-transform-based encoder 20 may directly quantize the residual signal without a transform processing unit 206 for certain blocks or frames.
- the encoder 20 may have a quantization unit 208 and an inverse quantization unit 210 combined into a single unit.
- FIG. 3 illustrates an exemplary video decoder 30 for implementing the techniques of the present application.
- the video decoder 30 is configured to receive, for example, encoded picture data (eg, an encoded bit stream) 21 encoded by the encoder 20 to obtain a decoded picture 231.
- video decoder 30 receives video data from video encoder 20, such as an encoded video bitstream and associated syntax elements representing picture blocks of encoded video slices.
- the decoder 30 includes an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (such as a summer 314), a buffer 316, a loop filter 320, The decoded picture buffer 330 and the prediction processing unit 360.
- the prediction processing unit 360 may include an inter prediction unit 344, an intra prediction unit 354, and a mode selection unit 362.
- video decoder 30 may perform a decoding pass that is substantially inverse to the encoding pass described with reference to video encoder 20 of FIG. 2.
- the entropy decoding unit 304 is configured to perform entropy decoding on the encoded picture data 21 to obtain, for example, quantized coefficients 309 and / or decoded encoding parameters (not shown in FIG. 3), for example, inter prediction, intra prediction parameters , (Filtered) any or all of the loop filter parameters and / or other syntax elements.
- the entropy decoding unit 304 is further configured to forward the inter prediction parameters, the intra prediction parameters, and / or other syntax elements to the prediction processing unit 360.
- Video decoder 30 may receive syntax elements at the video slice level and / or the video block level.
- the inverse quantization unit 310 may be functionally the same as the inverse quantization unit 110, the inverse transform processing unit 312 may be functionally identical to the inverse transform processing unit 212, the reconstruction unit 314 may be functionally identical to the reconstruction unit 214, and the buffer 316 may be functionally Like the buffer 216, the loop filter 320 may be functionally the same as the loop filter 220, and the decoded picture buffer 330 may be functionally the same as the decoded picture buffer 230.
- the prediction processing unit 360 may include an inter prediction unit 344 and an intra prediction unit 354.
- the inter prediction unit 344 may be functionally similar to the inter prediction unit 244 and the intra prediction unit 354 may be functionally similar to the intra prediction unit 254.
- the prediction processing unit 360 is generally used to perform block prediction and / or obtain a prediction block 365 from the encoded data 21, and to receive or obtain prediction-related parameters from, for example, an entropy decoding unit 304 (explicitly or implicitly) and / or Information about the selected prediction mode.
- the intra-prediction unit 354 of the prediction processing unit 360 is used for the intra-prediction mode based on the signal representation and the previously decoded block from the current frame or picture Data to generate a prediction block 365 for a picture block of the current video slice.
- the inter-prediction unit 344 e.g., a motion compensation unit
- the other syntax elements generate a prediction block 365 for a video block of the current video slice.
- a prediction block may be generated from a reference picture in a reference picture list.
- the video decoder 30 may construct a reference frame list using a default construction technique based on the reference pictures stored in the DPB 330: List 0 and List 1.
- the prediction processing unit 360 is configured to determine prediction information for a video block of a current video slice by analyzing a motion vector and other syntax elements, and use the prediction information to generate a prediction block for a current video block that is being decoded. For example, the prediction processing unit 360 uses some of the received syntax elements to determine a prediction mode (e.g., intra or inter prediction) of a video block used to encode a video slice, an inter prediction slice type (e.g., B slice, P slice or GPB slice), construction information for one or more of the reference picture lists for the slice, motion vectors for each inter-coded video block for the slice, each warp for the slice The inter-prediction status and other information of the inter-coded video block to decode the video block of the current video slice.
- a prediction mode e.g., intra or inter prediction
- an inter prediction slice type e.g., B slice, P slice or GPB slice
- construction information for one or more of the reference picture lists for the slice motion vectors for each inter-coded video block
- the inverse quantization unit 310 may be used for inverse quantization (ie, inverse quantization) of the quantized transform coefficients provided in the bitstream and decoded by the entropy decoding unit 304.
- the inverse quantization process may include using the quantization parameters calculated by video encoder 20 for each video block in the video slice to determine the degree of quantization that should be applied and also to determine the degree of inverse quantization that should be applied.
- the inverse transform processing unit 312 is configured to apply an inverse transform (for example, an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process) to the transform coefficients to generate a residual block in the pixel domain.
- an inverse transform for example, an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process
- Reconstruction unit 314 (e.g., summer 314) is used to add inverse transform block 313 (i.e., reconstructed residual block 313) to prediction block 365 to obtain reconstructed block 315 in the sample domain, such as by The sample values of the reconstructed residual block 313 are added to the sample values of the prediction block 365.
- the loop filter unit 320 (during or after the encoding cycle) is used to filter the reconstructed block 315 to obtain the filtered block 321 so as to smoothly perform pixel conversion or improve video quality.
- the loop filter unit 320 may be used to perform any combination of filtering techniques described below.
- the loop filter unit 320 is intended to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or other filters such as a bilateral filter, Adaptive loop filters (adaptive loop filters, ALF), or sharpening or smoothing filters, or cooperative filters.
- the loop filter unit 320 is shown as an in-loop filter in FIG. 3, in other configurations, the loop filter unit 320 may be implemented as a post-loop filter.
- the decoded video block 321 in a given frame or picture is then stored in a decoded picture buffer 330 that stores reference pictures for subsequent motion compensation.
- the decoder 30 is used, for example, to output a decoded picture 31 through an output 332 for presentation to or review by a user.
- video decoder 30 may be used to decode the compressed bitstream.
- the decoder 30 may generate an output video stream without the loop filter unit 320.
- the non-transform-based decoder 30 may directly inversely quantize the residual signal without the inverse transform processing unit 312 for certain blocks or frames.
- the video decoder 30 may have an inverse quantization unit 310 and an inverse transform processing unit 312 combined into a single unit.
- FIG. 4 is a schematic structural diagram of a video decoding device 400 (such as a video encoding device 400 or a video decoding device 400) according to an embodiment of the present invention.
- Video coding device 400 is adapted to implement the embodiments described herein.
- the video coding device 400 may be a video decoder (such as video decoder 30 of FIG. 1A) or a video encoder (such as video encoder 20 of FIG. 1A).
- the video decoding device 400 may be one or more of the video decoder 30 of FIG. 1A or the video encoder 20 of FIG. 1A described above.
- the video decoding device 400 includes: an entry port 410 and a receiving unit (Rx) 420 for receiving data, a processor, a logic unit or a central processing unit (CPU) 430 for processing data, and a transmitter unit for transmitting data (Tx) 440 and egress port 450, and a memory 460 for storing data.
- the video decoding device 400 may further include a photoelectric conversion component and an electro-optic (EO) component coupled with the entrance port 410, the receiver unit 420, the transmitter unit 440, and the exit port 450 for an exit or entrance of an optical signal or an electric signal.
- EO electro-optic
- the processor 430 is implemented by hardware and software.
- the processor 430 may be implemented as one or more CPU chips, cores (eg, multi-core processors), FPGAs, ASICs, and DSPs.
- the processor 430 is in communication with the ingress port 410, the receiver unit 420, the transmitter unit 440, the egress port 450, and the memory 460.
- the processor 430 includes a decoding module 470 (eg, an encoding module 470 or a decoding module 470).
- the encoding / decoding module 470 implements the embodiments disclosed above. For example, the encoding / decoding module 470 implements, processes, or provides various encoding operations.
- the function of the video decoding device 400 is substantially improved through the encoding / decoding module 470, and the transition of the video decoding device 400 to different states is affected.
- the encoding / decoding module 470 is implemented with instructions stored in the memory 460 and executed by the processor 430.
- the memory 460 includes one or more magnetic disks, tape drives, and solid-state hard disks, which can be used as overflow data storage devices for storing programs when these programs are selectively executed, and for storing instructions and data read during program execution.
- the memory 460 may be volatile and / or non-volatile, and may be a read-only memory (ROM), a random access memory (RAM), a random content-addressable memory (TCAM), and / or a static state. Random access memory (SRAM).
- FIG. 5 is a simplified block diagram of an apparatus 500 that can be used as either or both of the source device 12 and the destination device 14 in FIG. 1A according to an exemplary embodiment.
- the device 500 may implement the technology of the present application.
- the device 500 for implementing chroma block prediction may be in the form of a computing system including a plurality of computing devices, or in a mobile phone, tablet computer, laptop computer, notebook computer, desktop The form of a single computing device, such as a computer.
- the processor 502 in the apparatus 500 may be a central processing unit.
- the processor 502 may be any other type of device or multiple devices capable of manipulating or processing information, existing or to be developed in the future.
- speed and efficiency advantages can be achieved using more than one processor.
- the memory 504 in the device 500 may be a read-only memory (ROM) device or a random access memory (RAM) device. Any other suitable type of storage device can be used as the memory 504.
- the memory 504 may include code and data 506 accessed by the processor 502 using the bus 512.
- the memory 504 may further include an operating system 508 and an application program 510, which contains at least one program that permits the processor 502 to perform the methods described herein.
- the application program 510 may include applications 1 to N, and applications 1 to N further include a video encoding application that performs the methods described herein.
- the device 500 may also include additional memory in the form of a slave memory 514, which may be, for example, a memory card for use with a mobile computing device. Because a video communication session may contain a large amount of information, this information may be stored in whole or in part in the slave memory 514 and loaded into the memory 504 for processing as needed.
- the apparatus 500 may also include one or more output devices, such as a display 518.
- the display 518 may be a touch-sensitive display combining a display and a touch-sensitive element operable to sense a touch input.
- the display 518 may be coupled to the processor 502 through a bus 512.
- other output devices may be provided that allow the user to program or otherwise use the device 500, or provide other output devices as an alternative to the display 518.
- the display can be implemented in different ways, including through a liquid crystal display (LCD), a cathode-ray tube (CRT) display, a plasma display, or a light emitting diode diode (LED) displays, such as organic LED (OLED) displays.
- LCD liquid crystal display
- CTR cathode-ray tube
- plasma display a plasma display
- LED light emitting diode diode
- OLED organic LED
- the apparatus 500 may further include or be in communication with an image sensing device 520, such as a camera or any other image sensing device 520 that can or will be developed in the future to sense an image, such as An image of a user running the device 500.
- the image sensing device 520 may be placed directly facing a user of the running apparatus 500.
- the position and optical axis of the image sensing device 520 may be configured such that its field of view includes an area immediately adjacent to the display 518 and the display 518 is visible from the area.
- the device 500 may also include or be in communication with a sound sensing device 522, such as a microphone or any other sound sensing device that can or will be developed in the future to sense the sound near the device 500.
- the sound sensing device 522 may be placed directly facing the user of the operating device 500 and may be used to receive a sound, such as a voice or other sound, emitted by the user when the device 500 is running.
- the processor 502 and the memory 504 of the apparatus 500 are shown in FIG. 5 as being integrated in a single unit, other configurations may be used.
- the operation of the processor 502 may be distributed among a plurality of directly coupleable machines (each machine having one or more processors), or distributed in a local area or other network.
- the memory 504 may be distributed among multiple machines, such as a network-based memory or a memory among multiple machines running the apparatus 500.
- the bus 512 of the device 500 may be formed by multiple buses.
- the slave memory 514 may be directly coupled to other components of the device 500 or may be accessed through a network, and may include a single integrated unit, such as one memory card, or multiple units, such as multiple memory cards. Therefore, the apparatus 500 can be implemented in various configurations.
- a color video contains a chrominance component (U, V) in addition to a luminance (Y) component. Therefore, in addition to encoding the luminance component, it is also necessary to encode the chrominance component.
- YUV4: 2: 2 4
- FIG. 6 where a cross represents a sampling point of a luminance component, and a circle represents a sampling point of a chrominance component.
- YUV4: 2: 0 is the most common.
- the chrominance component of an image block is also referred to as a chrominance block or a chrominance component block in this application.
- This application is described with YUV4: 2: 0, but it can also be applied to other sampling methods of luminance components and chrominance components.
- the chroma sampling point in the i-th row is related to the luminance sampling points in the 2 * i + 0, 2 * i + 1 rows, and the chrominance sampling point in the j-th column.
- the position of the (xb, yb) sampling point in the chroma image corresponds to the position in the luminance image Is (2 * xb, 2 * yb + 0.5).
- the position of (2 * xb, 2 * yb + 0.5) in the luminance image is called the corresponding position of the chroma sampling point (xb, yb).
- the luminance sampling point positions (2 * xb, 2 * yb), (2 * xb, 2 * yb + 1), and (2 * xb +1, 2 * yb), (2 * xb + 1, 2 * yb + 1), (2 * xb + 2, 2 * yb), (2 * xb + 2, 2 * yb + 1) are referred to as Associated luminance sampling points; among the associated luminance sampling points, the (2 * xb, 2 * yb), (2 * xb, 2 * yb + 1) position and the horizontal position of the luminance sampling point are related to the (xb, yb) position
- the chroma sampling points are aligned horizontally.
- a luminance point that is related to the position of the chrominance sampling point and aligned with the horizontal position of the sampling point is referred to as a luminance point that matches the chrominance position, or a matching luminance point for short.
- the value at the sampling point position is called the matched brightness value.
- both the points at the (2 * xb, 2 * yb) and (2 * xb, 2 * yb + 1) positions can be referred to as matching luminance points of the chroma sampling points at the (xb, yb) position.
- the pixels in the chroma image are referred to as chroma samples, or chroma points; the pixels in the luminance image are referred to as luma samples, or brightness. point.
- chroma intra prediction Similar to the luminance component, chroma intra prediction also uses the boundary pixels of adjacent reconstructed blocks around the current chroma block as the reference pixels of the current block, and maps the reference pixels to the pixels in the current chroma block according to a certain prediction mode. , As the predicted value of pixels in the current chroma block. The difference is that since the texture of the chroma component is generally simple, the number of intra prediction modes of the chroma component is generally less than the luminance component.
- Linear mode is a chroma intra prediction method that uses texture correlation between luminance and chroma. LM uses the reconstructed luminance component to derive the current chrominance block prediction value according to a linear model, which can be expressed as the following formula:
- ⁇ and ⁇ are linear model coefficients
- pred c (i, j) is the predicted value of the chroma pixel at the position (i, j)
- rec L ′ (i, j) is the luminance reconstruction block corresponding to the current chroma block (Hereinafter referred to as the corresponding luminance block) the luminance reconstruction pixel value at the (i, j) position after being down-sampled to the chroma component resolution.
- the linear model coefficients do not need to be coded for transmission, but use the edge pixels of adjacent reconstructed blocks of the current chrominance block and the luminance component pixels at corresponding positions of the edge pixels to derive ⁇ , ⁇ .
- N the number of adjacent reference pixels
- L n and C n are the values of the nth luma pixel and the value of the chroma pixel, 0 ⁇ n ⁇ N-1.
- L n and C n can form pixel value pairs, so a set of pixel value pairs can be obtained: ⁇ (L 0 , C 0 ), (L 1 , C 1 ), (L 2 , C 2 ) ... (L n , C n ) ...
- the method of determining the linear model coefficient using the value pair corresponding to the maximum brightness value L max and the minimum brightness value L min is referred to as an extreme value method, and the maximum brightness value L max is called a maximum brightness value or an extreme value.
- the corresponding value pair is called a maximum value pair
- the minimum brightness value L min is called a minimum brightness value or a minimum value
- the corresponding value pair is called a minimum value pair.
- the LM mode can effectively use the correlation between the luminance component and the chrominance component. Compared with the directional prediction mode, the LM method is more flexible, thereby providing a more accurate prediction signal for the chrominance component.
- the adjacent upper and left edges used to calculate the linear model coefficients are referred to as templates in this application.
- the adjacent upper edge is called the upper template
- the adjacent left edge is called the left template.
- the chrominance sampling points in the upper template are referred to as the upper template chroma points
- the luminance sampling points in the upper template are referred to as the upper template luma points.
- the left template chroma point and the left template luma point are known.
- the template luminance point and the template chrominance point correspond one-to-one, and the values of the sampling points constitute a value pair.
- the set of luminance point positions related to the chroma sampling points in the upper template is referred to as the upper template related luminance area or the upper template related area, and the set of luminance point locations related to the left template. This is called the left template-related brightness area or the left template-related area.
- the current chroma block uses the RDO criterion to select the best mode from the LM mode and other chroma modes.
- An embodiment of the present application proposes a linear model coefficient derivation method for reducing LM complexity. Specifically, when determining an extreme value pair, it is not necessary to perform a downsampling operation, but directly search for the brightness sampling point values in the relevant area of the template to determine the maximum and minimum values of brightness, and then determine the corresponding color. Degree point value.
- searching when searching, it only traverses the luminance sampling points that match the position of the chrominance sampling points to determine the extreme value of luminance, and then determines the corresponding chrominance value according to its position, and then determines the linear model coefficient.
- the embodiment of the present application also proposes a method for improving the robustness of the coefficients of the LM model. Specifically, after determining the positions of the maximum value points and the minimum value points, the brightness values of adjacent points around the points are weighted and weighted. Get the final brightness extreme. Similarly, after determining the extreme point of brightness, the position of the corresponding chromaticity point is obtained, the chromaticity values of its neighboring points are taken, and the chromaticity value corresponding to the final extreme value of brightness is obtained by weighting. Then calculate the linear model coefficients.
- the embodiments of the present application can effectively improve the efficiency of the chroma coding mode. It should be noted that the embodiments of the present application are mainly used for the intra prediction process, and this process exists at both the encoding end and the decoding end. Hereinafter, specific embodiments of the present invention will be described in detail.
- the value of one row of brightness points in the relevant region of the upper template needs to be used, and only the value of the brightness point that matches the position of the chroma point of the template is searched to determine the extreme value.
- the value of the chromaticity point corresponding to the extreme value is determined according to the position of the obtained extreme value.
- Step 1002 Obtaining the extreme value of brightness
- the value of the luminance point in the adjacent area of the luminance block corresponding to the current chrominance block is searched to obtain the extreme value of luminance.
- the search range here is the adjacent area of the luma block corresponding to the current chroma block, and the adjacent area includes a region adjacent to the upper row of the luma block in the template-related area.
- the position of the search point matches the position of the template chroma point, that is, the horizontal coordinate position of each luma point searched in the area adjacent to the upper row of the luma block and the horizontal coordinate position of the corresponding chroma point in the chroma image Aligned.
- the horizontal coordinate position of the first chrominance point is xb, and the horizontal coordinate of the first luminance point in the area adjacent to the upper row of the luminance block is 2 * xb, then the horizontal coordinate position of the first luminance point and the first The horizontal coordinate position of a chroma point is aligned.
- the vertical coordinate of the second chrominance point is yb, and the second The vertical coordinate of the brightness point is 2 * yb or 2 * yb + 1.
- the adjacent region includes a region in a template-related region adjacent to the luminance block in an upper row and an adjacent left column.
- the points on the top and left of the current luma block that match the chroma positions ⁇ (2 * xb, 2 * yb-1), (2 * xb + 2, 2 * yb-1 ), (2 * xb + 4, 2 * yb-1) ... (2 * xb + 2 * (W-1), 2 * yb-1), (2 * xb-2, 2 * yb), (2 * xb-2, 2 * yb + 2), (2 * xb-2, 2 * yb + 4), ... (2 * xb-2, 2 * yb + 2 * (H-1)) ⁇ ,
- W and H are the width and height of the current chroma block, respectively.
- the position of the searched luminance point matches the position of the template chrominance point, that is, the horizontal coordinate position of the searched luminance point is aligned with the horizontal coordinate position of the chrominance point.
- the maximum luminance value L max and the minimum luminance value L min are searched. For example, suppose the position of the obtained maximum brightness value is (2 * xb + 2 * (i-1), 2 * yb-1), and the position of the obtained minimum brightness value is (2 * xb-2, 2 * yb + 2 * (j-1)).
- Step 1004 Obtain the value of the chroma point
- the position of the corresponding chrominance point is the position of the chrominance point closest to the position of the extreme point of luminance.
- the corresponding chromaticity value at the position of (xb + i-1, yb-1) Chroma value denoted as C Lmax ;
- the corresponding chroma value is (xb-1, yb + j-1)
- the chromaticity value at the position is denoted as C Lmin .
- Step 1006 Obtaining linear model coefficients
- Step 1008 Obtain the predicted value of the chrominance block.
- the positions of the brightness points searched above may also be ⁇ (2 * xb, 2 * yb-1), (2 * xb + 2, 2 * yb-1), (2 * xb + 4, 2 * yb-1) ... (2 * xb + 2 * (W-1), 2 * yb-1), (2 * xb-2, 2 * yb + 1), (2 * xb-2, 2 * yb + 3), (2 * xb-2, 2 * yb + 5), ... (2 * xb-2, 2 * yb + 2 * H-1) ⁇ . If the extreme point is at (2 * xb-2, 2 * yb + 2 * (j-1) +1), the corresponding chromaticity point position is still (xb-1, yb + j-1).
- the x coordinate of the position of the adjacent brightness point on the left side of the brightness block may also be 2 * xb-1. At this time, the location of the brightness point is
- the search process described above may also use a search step s (s> 1), and the position of the search point still matches the position of the chroma point: for example, ⁇ (2 * xb + 2 * 0 * s, 2 * yb-1), (2 * xb + 2 * 1 * s, 2 * yb-1), (2 * xb + 2 * 2 * s, 2 * yb-1) ..., (2 * xb-2, 2 * yb + 2 * 0 * s), (2 * xb-2, 2 * yb + 2 * 1 * s), (2 * xb-2, 2 * yb + 2 * 2 * s) ...
- a non-downsampling method may be used only for the upper template brightness value, and the left template brightness value may still use the downsampling method.
- the position of the extreme point is determined from the point that matches the position of the chroma point in the relevant region of the upper template and the left template brightness value point after downsampling, and then the corresponding chroma point value is determined.
- the process of searching for extreme points since the process of searching for extreme points does not need to be based on a downsampling operation, it searches directly in the relevant area of the upper template to search for the brightness points that match the position of the chroma points, reducing the complexity of the LM mode and improving The efficiency of chroma coding mode.
- the value of the chromaticity point corresponding to the extreme value is determined according to the position of the obtained extreme value.
- Step 1202 Obtaining the extreme value of brightness
- the search range in the relevant area of the upper template includes the upper two lines of the brightness points closest to the current brightness block, that is, the current brightness block phase. Adjacent to the previous line, and adjacent to the second line. And the position of the search point matches the position of the template chroma point, that is, the horizontal coordinate position of each luma point searched in the area adjacent to the upper row of the luma block and the horizontal coordinate position of the corresponding chroma point in the chroma image Aligned.
- the non-downsampling method may be used only for the brightness value of the upper template, while the brightness value of the left template may still use the downsampling method.
- Adjacent regions also include a region of the left template column after downsampling. It should be noted that the area of the column of the left template is not necessarily adjacent to the current luma block.
- the positions of the extreme points are determined from the points that match the positions of the upper template chroma points in the relevant area of the upper template and the left template luminance points after downsampling, and then the corresponding chroma points are determined. .
- Step 1204 Obtain the value of the chroma point
- the position of the corresponding chrominance point is the position of the chrominance point closest to the position of the corresponding luminance extreme point.
- the positions of the matching chrominance points are the same. For example, (2 * xb + 2, 2 * yb-1) or (2 * xb + 2, 2 * yb-2), the positions of the matching chromaticity points are (xb + 1, yb-1).
- the chromaticity value of the point at the position is used as the chromaticity value corresponding to the extreme value of brightness.
- Step 1206 is similar to 1006, and step 1208 is similar to 1008, and details are not described again.
- the process of searching for extreme points since the process of searching for extreme points does not need to be based on a downsampling operation, it searches directly in the relevant region of the upper template to search for a brightness point that matches the position of the chromaticity point, which reduces the complexity of the LM mode and improves The efficiency of chroma coding mode.
- the extreme value in order to determine the extreme value of the brightness, the extreme value is searched within one row of the brightness points in the relevant area of the upper template, and only the value of the brightness point that matches the position of the chroma point of the template is searched to determine the initial extreme value. Position, and then obtain the final brightness extreme value based on the sampling method.
- the sampling method needs to use the value of 2 rows of brightness points.
- the value of the corresponding chromaticity point is determined according to the position of the obtained initial extreme value.
- Embodiment 1 The difference between this embodiment and Embodiment 1 is that in Embodiment 1, after the location of the extreme point is determined, the luma value of the corresponding location is directly taken as the extreme value of brightness. In this embodiment, the position of the extreme point is determined as the position of the initial extreme point, and then the corresponding brightness extreme value is obtained through the downsampling operation as the final brightness extreme value.
- L m (2 * L (2 * xb + 2 * (i-1), 2 * yb-1) + L (2 * xb + 2 * (i-1) -1, 2 * yb-1 ) + L (2 * xb + 2 * (i-1) +1, 2 * yb-1) + 2 * L (2 * xb + 2 * (i-1), 2 * yb-2) + L ( 2 * xb + 2 * (i-1) -1, 2 * yb-2) + L (2 * xb + 2 * (i-1) -1, 2 * yb-2) + L (2 * xb + 2 * (i-1) +1, 2 * yb-2) +4) >>> 3.
- L m (2 * L (2 * xb-2, 2 * yb + 2 * (j-1)) + L (2 * xb-1, 2 * yb + 2 * (j-1) ) + L ( 2 * xb-3, 2 * yb + 2 * (j-1) ) + 2 * L (2 * xb-2, 2 * yb + 2 * (j-1) +1) + L (2 * xb- 1, 2 * yb + 2 * (j-1) +1) + L (2 * xb-3, 2 * yb + 2 * (j-1) +1) +4)
- the down-sampling method for obtaining the final brightness extreme value is not specifically limited here.
- a 2-tap filter can also be used for the down-sampling.
- a 2-tap filter can also be used for the down-sampling.
- the brightness extreme value L m can also pass through the lower
- the sampling method described above obtains:
- L m (L (2 * xb + 2 * (i-1), 2 * yb-1) + L (2 * xb + 2 * (i-1), 2 * yb-2) +1) >> 1.
- L m (L (2 * xb-2, 2 * yb + 2 * (j-1)) + L (2 * xb-2, 2 * yb + 2 * (j-1) +1) +1) >> 1.
- the extreme value in order to determine the extreme value of the brightness, the extreme value is searched within one row of the brightness points in the relevant area of the upper template, and only the value of the brightness point that matches the position of the chroma point of the template is searched to determine the initial extreme value. Position, and then obtain the final brightness extreme value based on the sampling method.
- the sampling method needs to use the value of 1 line of brightness points.
- the value of the corresponding chromaticity point is determined according to the position of the obtained initial extreme value.
- Embodiment 3 The difference between this embodiment and Embodiment 3 is that if the location of the initial extreme point is in the upper template related area, its final brightness extreme downsampling operation uses only the value of the brightness point of the row above the current brightness block. For example: if the location of the initial extreme point is at (2 * xb + 2 * (i-1), 2 * yb-1), the final downsampling method of the extreme brightness value L m is:
- L m (2 * L (2 * xb + 2 * (i-1), 2 * yb-1) + L (2 * xb + 2 * (i-1) -1, 2 * yb-1) + L (2 * xb + 2 * (i-1) +1, 2 * yb-1) +2) >>> 2.
- the extreme value in order to determine the extreme value of brightness, the extreme value is searched in the two rows of brightness points in the relevant area of the upper template, and only the value of the brightness point that matches the position of the chroma point of the template is searched to determine the initial extreme value. Position, and then obtain the final brightness extreme value based on the sampling method.
- the sampling method needs to use the value of 2 rows of brightness points.
- the value of the corresponding chromaticity point is determined according to the position of the obtained initial extreme value.
- Embodiment 3 The difference between this embodiment and Embodiment 3 is that if the location of the initial extreme point is in the upper template related area, the final brightness extreme downsampling operation uses the values of the brightness points of the two upper rows adjacent to the current brightness block. For the luminance points in the same horizontal position, the matching chrominance points have the same position.
- the down-sampled luminance value corresponding to the position of the initial extreme point is obtained by the down-sampling operation, and used as the final luminance extreme value.
- L m (2 * L (2 * xb + 2 * (i-1), 2 * yb-1) + L (2 * xb + 2 * (i-1) -1, 2 * yb-1) + L (2 * xb + 2 * (i-1) +1, 2 * yb-1) + 2 * L (2 * xb + 2 * (i-1), 2 * yb-2) + L (2 * xb + 2 * (i-1) -1, 2 * yb-2) + L (2 * xb + 2 * (i-1) +1, 2 * yb-2) +4) >>> 3.
- the corresponding chromaticity point positions are all (xb + 1, yb-1), and the chromaticity value of the point at this position is taken as the chromaticity value corresponding to the extreme value of brightness.
- the down-sampling method can also use a 2-tap filter.
- L m (L (2 * xb + 2 * (i-1), 2 * yb-1) + L (2 * xb + 2 * (i-1), 2 * yb-2) +1) >> 1.
- the process of obtaining the brightness point value of the left template is not strictly distinguished. That is, regardless of how the left template brightness point value is obtained, it is within the scope of the embodiment of the present invention.
- the meaning of the search is to search in a template brightness value set (upper template + left template) including the upper template brightness value, instead of just searching the upper template brightness value.
- the number of search points is limited.
- the number of search points will be limited according to the block size. For example, when the block size is larger than a certain threshold value T, the number of search points is limited to M.
- T and M are positive integers.
- the position of the search point can be obtained based on the adaptive step size method:
- the position of the chroma point with the template (xb-1, yb + H-1), (xb-1, yb + H-1-1) ... (xb-1, yb), (xb, yb- 1), (xb + 1, yb-1), (xb + 2, yb-1), ... (xb + W-1, yb-1)
- the corresponding template brightness values are recorded as L 0 , L 1 , L 2 , ..., L N-1 .
- the set of search extreme points will be L 0 , L 1 * s , L 2 * s ... L (M-1) * s .
- the method of limiting the number of search points according to the block size can also be used in the first to fifth embodiments, that is, not all the brightness values that match the position of the template chroma points will be searched.
- the search is performed by matching the brightness point values of the template chroma point positions at the search step interval.
- the adaptive step size is set according to the block size.
- Embodiment 7 proposes a multi-point-based method. Specifically: after the position of the extreme point is determined, the spatially adjacent points are taken, and the weighted value is calculated as the final extreme value.
- L m (L C (xb-1, yb + i-1) + 2 * L C (xb-1, yb + i) + L C (xb-1, yb + i + 1) +2) >>> 2.
- L C (s, t) is the value of the template luminance point corresponding to the chromaticity point at the (s, t) position, and this value is obtained by the downsampling method.
- C Lm (C (xb-1, yb + i-1) + 2 * C (xb-1, yb + i) + C (xb-1, yb + i + 1) +2)> 2.
- the above-mentioned multi-point-based linear model coefficient derivation method can also be used in the first embodiment to the sixth embodiment, that is, instead of using only a maximum value and a minimum value and their corresponding chromaticity point values to calculate the linear model coefficients, Instead, the weighted values of the positions of the obtained extreme points and the values of the adjacent points in space are used as the final extreme values for calculating the linear model coefficients.
- the embodiment of the present invention may not perform a downsampling operation on the brightness points in the relevant area of the template first, but directly perform the search for the extreme value points in the relevant area of the template.
- the position of the search point and the chromaticity of the template The positions of the points match.
- the x coordinate of the search point is aligned with the x coordinate of the chroma point of the template.
- the value of the extreme point obtained by searching is used as the extreme value of brightness, and the value of the corresponding chromaticity point is obtained, and then the linear model coefficient is calculated.
- a final brightness extreme value may be obtained by a down-sampling method.
- the number of search points may be limited according to the block size.
- the block size exceeds a set threshold, the number of search points is a fixed value.
- the spatially adjacent points are taken, and the weighted value is calculated as the final extreme value.
- the weighted value is calculated as the final extreme value.
- the corresponding chromaticity values are also obtained by weighting.
- the embodiments of the present invention can effectively reduce the complexity of the LM mode and improve the efficiency of the chroma coding mode.
- the disclosure combined with the described method may be equally applicable to a corresponding device or system for performing the method, and vice versa.
- the corresponding device may include one or more units such as functional units to perform the described one or more method steps (e.g., one unit performs one or more steps Or multiple units, each of which performs one or more of the multiple steps), even if such one or more units are not explicitly described or illustrated in the drawings.
- the corresponding method may include a step to perform the functionality of one or more units (e.g., a step performs one or more units Functionality, or multiple steps, where each performs the functionality of one or more of the multiple units), even if such one or more steps are not explicitly described or illustrated in the drawings.
- a step performs one or more units Functionality, or multiple steps, where each performs the functionality of one or more of the multiple units
- the features of the various exemplary embodiments and / or aspects described herein may be combined with each other, unless explicitly stated otherwise.
- a computer-readable medium may include a computer-readable storage medium, which corresponds to a tangible medium such as a data storage medium or a communication medium including any medium that facilitates transfer of a computer program from one place to another, according to a communication protocol, for example.
- computer-readable media generally may correspond to (1) tangible computer-readable storage media that is non-transitory, or (2) a communication medium such as a signal or carrier wave.
- a data storage medium may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, codes, and / or data structures used to implement the techniques described in this disclosure.
- the computer program product may include a computer-readable medium.
- such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, disk storage or other magnetic storage devices, flash memory, or may be used to store instructions or data structures Any other media that requires program code and is accessible by the computer.
- any connection is properly termed a computer-readable medium.
- a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technology such as infrared, radio, and microwave is used to transmit instructions from a website, server, or other remote source
- Coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of the medium.
- the computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other temporary media, but are actually directed to non-transitory tangible storage media.
- magnetic disks and compact discs include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), flexible discs and Blu-ray discs, where the discs are usually magnetic The data is reproduced, while the optical disk uses a laser to reproduce the data optically. Combinations of the above should also be included within the scope of computer-readable media.
- processors such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits , ASIC), field programmable logic array (field programmable logic arrays, FPGA) or other equivalent integrated or discrete logic circuits.
- DSPs digital signal processors
- ASIC application specific integrated circuits
- FPGA field programmable logic arrays
- processors may refer to any of the above-described structures or any other structure suitable for implementing the techniques described herein.
- the functionality described herein may be provided within dedicated hardware and / or software modules for encoding and decoding, or incorporated in a composite codec. Also, the techniques could be fully implemented in one or more circuits or logic elements.
- the techniques of this disclosure may be implemented in a variety of devices or devices that include a wireless handset, an integrated circuit (IC), or a collection of ICs (eg, a chipset).
- IC integrated circuit
- the present disclosure describes various components, modules, or units to emphasize functional aspects of the device for performing the disclosed techniques, but does not necessarily need to be implemented by different hardware units.
- the various units may be combined in a codec hardware unit in combination with suitable software and / or firmware, or provided by a collection of interoperable hardware units, which include as described above One or more processors.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
La présente invention concerne un procédé et un dispositif permettant de prédire un bloc de chrominance. Le procédé consiste : à rechercher une valeur d'un point de luminance dans une région adjacente d'un bloc de luminance correspondant à un bloc de chrominance actuel, de manière à obtenir une valeur de luminance extrême, la région adjacente comprenant une région d'une rangée adjacente au-dessus du bloc de luminance dans une région liée à un modèle, et la position de coordonnées horizontales de chaque point de luminance recherché dans la région de la rangée adjacente au-dessus du bloc de luminance étant alignée avec la position de coordonnées horizontales d'un point de chrominance correspondant dans une image de chrominance ; à acquérir une valeur d'un point de chrominance correspondant à la valeur de luminance extrême ; à acquérir un coefficient de modèle linéaire en fonction de la valeur de luminance extrême et de la valeur du point de chrominance ; et acquérir une valeur de prédiction du bloc de chrominance actuel en fonction du coefficient de modèle linéaire et d'une valeur de reconstruction du bloc de luminance.
La présente invention peut réduire la complexité d'un mode linéaire et améliorer l'efficacité d'un mode de codage de chrominance.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810963328.1A CN110858903B (zh) | 2018-08-22 | 2018-08-22 | 色度块预测方法及装置 |
CN201810963328.1 | 2018-08-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020038378A1 true WO2020038378A1 (fr) | 2020-02-27 |
Family
ID=69593059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/101657 WO2020038378A1 (fr) | 2018-08-22 | 2019-08-20 | Procédé et dispositif de prédiction d'un bloc de chrominance |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110858903B (fr) |
WO (1) | WO2020038378A1 (fr) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112053450A (zh) * | 2020-09-10 | 2020-12-08 | 脸萌有限公司 | 文字的显示方法、装置、电子设备及存储介质 |
US11679109B2 (en) | 2019-12-23 | 2023-06-20 | Kymera Therapeutics, Inc. | SMARCA degraders and uses thereof |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11488285B2 (en) * | 2020-04-13 | 2022-11-01 | Apple Inc. | Content based image processing |
EP4458016A1 (fr) * | 2021-12-29 | 2024-11-06 | MediaTek Inc | Prédiction de modèle linéaire à composante transversale |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080175490A1 (en) * | 2005-07-15 | 2008-07-24 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding image |
CN103096057A (zh) * | 2011-11-08 | 2013-05-08 | 华为技术有限公司 | 一种色度帧内预测方法和装置 |
CN103227917A (zh) * | 2012-01-31 | 2013-07-31 | 华为技术有限公司 | 解码方法和装置 |
CN103260018A (zh) * | 2012-02-16 | 2013-08-21 | 乐金电子(中国)研究开发中心有限公司 | 帧内图像预测编解码方法及视频编解码器 |
CN103563383A (zh) * | 2011-06-03 | 2014-02-05 | 索尼公司 | 图像处理装置和图像处理方法 |
CN103688533A (zh) * | 2011-06-20 | 2014-03-26 | 联发科技(新加坡)私人有限公司 | 可减少行存储器的色度帧内预测方法及装置 |
CN104247422A (zh) * | 2011-11-07 | 2014-12-24 | 华为技术有限公司 | 用于改进帧内预测的新的角度表 |
CN104255033A (zh) * | 2012-01-19 | 2014-12-31 | 华为技术有限公司 | 用于lm模式计算的简化查找表 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9693070B2 (en) * | 2011-06-24 | 2017-06-27 | Texas Instruments Incorporated | Luma-based chroma intra-prediction for video coding |
US9948938B2 (en) * | 2011-07-21 | 2018-04-17 | Texas Instruments Incorporated | Methods and systems for chroma residual data prediction |
KR20130058524A (ko) * | 2011-11-25 | 2013-06-04 | 오수미 | 색차 인트라 예측 블록 생성 방법 |
US9438905B2 (en) * | 2012-04-12 | 2016-09-06 | Futurewei Technologies, Inc. | LM mode with uniform bit-width multipliers |
KR20200051831A (ko) * | 2014-10-28 | 2020-05-13 | 미디어텍 싱가폴 피티이. 엘티디. | 비디오 코딩을 위한 가이드된 크로스-컴포넌트 예측 방법 |
GB201500719D0 (en) * | 2015-01-15 | 2015-03-04 | Barco Nv | Method for chromo reconstruction |
US10455249B2 (en) * | 2015-03-20 | 2019-10-22 | Qualcomm Incorporated | Downsampling process for linear model prediction mode |
CN105306944B (zh) * | 2015-11-30 | 2018-07-06 | 哈尔滨工业大学 | 混合视频编码标准中色度分量预测方法 |
US10652575B2 (en) * | 2016-09-15 | 2020-05-12 | Qualcomm Incorporated | Linear model chroma intra prediction for video coding |
CN107580222B (zh) * | 2017-08-01 | 2020-02-14 | 北京交通大学 | 一种基于线性模型预测的图像或视频编码方法 |
-
2018
- 2018-08-22 CN CN201810963328.1A patent/CN110858903B/zh active Active
-
2019
- 2019-08-20 WO PCT/CN2019/101657 patent/WO2020038378A1/fr active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080175490A1 (en) * | 2005-07-15 | 2008-07-24 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding image |
CN103563383A (zh) * | 2011-06-03 | 2014-02-05 | 索尼公司 | 图像处理装置和图像处理方法 |
CN103688533A (zh) * | 2011-06-20 | 2014-03-26 | 联发科技(新加坡)私人有限公司 | 可减少行存储器的色度帧内预测方法及装置 |
CN104247422A (zh) * | 2011-11-07 | 2014-12-24 | 华为技术有限公司 | 用于改进帧内预测的新的角度表 |
CN103096057A (zh) * | 2011-11-08 | 2013-05-08 | 华为技术有限公司 | 一种色度帧内预测方法和装置 |
CN104255033A (zh) * | 2012-01-19 | 2014-12-31 | 华为技术有限公司 | 用于lm模式计算的简化查找表 |
CN103227917A (zh) * | 2012-01-31 | 2013-07-31 | 华为技术有限公司 | 解码方法和装置 |
CN103260018A (zh) * | 2012-02-16 | 2013-08-21 | 乐金电子(中国)研究开发中心有限公司 | 帧内图像预测编解码方法及视频编解码器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11679109B2 (en) | 2019-12-23 | 2023-06-20 | Kymera Therapeutics, Inc. | SMARCA degraders and uses thereof |
CN112053450A (zh) * | 2020-09-10 | 2020-12-08 | 脸萌有限公司 | 文字的显示方法、装置、电子设备及存储介质 |
US11836437B2 (en) | 2020-09-10 | 2023-12-05 | Lemon Inc. | Character display method and apparatus, electronic device, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN110858903B (zh) | 2022-07-12 |
CN110858903A (zh) | 2020-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111107356B (zh) | 图像预测方法及装置 | |
EP3883245B1 (fr) | Procédé et dispositif de prédiction d'un bloc de chrominance | |
CN111919444B (zh) | 色度块的预测方法和装置 | |
WO2020038378A1 (fr) | Procédé et dispositif de prédiction d'un bloc de chrominance | |
WO2020114394A1 (fr) | Procédé de codage/décodage vidéo, codeur vidéo et décodeur vidéo | |
CN112055200A (zh) | Mpm列表构建方法、色度块的帧内预测模式获取方法及装置 | |
US20230370597A1 (en) | Picture partitioning method and apparatus | |
WO2020224476A1 (fr) | Procédé, appareil et dispositif de division d'image | |
CN110876061B (zh) | 色度块预测方法及装置 | |
WO2020114393A1 (fr) | Procédé de transformée, procédé de transformée inverse, codeur vidéo, et décodeur vidéo | |
CN110944180B (zh) | 色度块预测方法及装置 | |
WO2020057506A1 (fr) | Procédé et dispositif de prédiction pour bloc de chrominance | |
RU2786626C2 (ru) | Способ и устройство для разделения изображения | |
WO2020043136A1 (fr) | Procédé et dispositif de partition d'image | |
WO2020057537A1 (fr) | Procédé de décodage de vidéo et décodeur de vidéo, et procédé de codage de vidéo et encodeur de vidéo |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19852800 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19852800 Country of ref document: EP Kind code of ref document: A1 |