WO2020056779A1 - Construction adaptative de liste de modes candidats les plus probables pour l'encodage et le décodage de données de vidéo - Google Patents

Construction adaptative de liste de modes candidats les plus probables pour l'encodage et le décodage de données de vidéo Download PDF

Info

Publication number
WO2020056779A1
WO2020056779A1 PCT/CN2018/107137 CN2018107137W WO2020056779A1 WO 2020056779 A1 WO2020056779 A1 WO 2020056779A1 CN 2018107137 W CN2018107137 W CN 2018107137W WO 2020056779 A1 WO2020056779 A1 WO 2020056779A1
Authority
WO
WIPO (PCT)
Prior art keywords
intra prediction
block
candidate list
current block
prediction modes
Prior art date
Application number
PCT/CN2018/107137
Other languages
English (en)
Inventor
Shurui YE
Li Wang
Original Assignee
Hangzhou Hikvision Digital Technology Co., Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co., Ltd filed Critical Hangzhou Hikvision Digital Technology Co., Ltd
Priority to PCT/CN2018/107137 priority Critical patent/WO2020056779A1/fr
Publication of WO2020056779A1 publication Critical patent/WO2020056779A1/fr

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Definitions

  • the present application generally relates to video data encoding and decoding, and in particular, to method and system of adaptively determining a most probable mode candidate list of intra prediction modes for a block of video data during video encoding and decoding.
  • Digital video is supported by a wide range of electronic devices, including digital televisions, laptop or desktop computers, tablet computers, digital cameras, digital recording devices, digital media players, video gaming consoles, smart phones, video teleconferencing devices, video streaming devices, etc.
  • the electronic devices may transmit, receive, encode, decode, and/or store digital video information by implementing certain video compression/decompression techniques, such as those described in the standards defined by MPEG-4, ITU-T H. 263, ITU-T H. 264/MPEG-4, Part 10, Advanced Video Coding (AVC) , High Efficiency Video Coding (HEVC) , and Versatile Video Coding (VVC) standard.
  • AVC Advanced Video Coding
  • HEVC High Efficiency Video Coding
  • VVC Versatile Video Coding
  • Video compression typically includes performing spatial (intra frame) prediction and/or temporal (inter frame) prediction to reduce or remove redundancy inherent in the video data.
  • a video frame is partitioned into multiple video blocks, which may also be referred to as treeblocks, coding units (CUs) and/or coding nodes.
  • Video blocks in an intra coded (I) slice of a video frame are encoded using spatial prediction with respect to reference samples in neighbor blocks within the same video frame.
  • Video blocks in an inter coded (P or B) slice of a video frame may use spatial prediction with respect to reference samples in neighbor blocks within the same video frame or temporal prediction with respect to reference samples in other reference video frames.
  • Spatial or temporal prediction based on a reference block results in a predictive block for a current video block to be coded. Residual data representing pixel differences between the current block to be coded and the predictive block is referred to as a residual block.
  • An inter coded block is encoded according to a motion vector that points to a reference block forming the predictive block, and the residual block.
  • An intra coded block is encoded according to an intra prediction mode and the residual block.
  • the residual block may be transformed from the pixel domain to a transform domain, resulting in residual transform coefficients, which may then be quantized.
  • the quantized transform coefficients initially arranged in a two-dimensional array, may be scanned to produce a one-dimensional vector of transform coefficients, and then entropy coded into a video bitstream to achieve even more compression.
  • the encoded video bitstream is then saved in a computer-readable storage medium (e.g., flash memory) to be accessed by another electronic device with digit video capability or directly transmitted to the electronic device wired or wirelessly.
  • the electronic device then performs video decompression (which is an opposite process to the video compression described above) by, e.g., parsing the encoded video bitstream to obtain syntax elements from the bitstream and reconstructing the digital video data to its original format from the encoded video bitstream based on at least in part the syntax elements obtained from the bitstream, and renders the reconstructed digital video data on a display of the electronic device.
  • One challenge of intra frame prediction of a current block is how to choose a reference block and a corresponding intra prediction mode for predicting the current block using the reference block more efficiently.
  • the present application describes implementations related to intra prediction and, more particularly, to methods for adaptively determining a most probable mode candidate list of intra prediction modes for a block of video data during video encoding and decoding.
  • a method of coding video data is performed at a computing device having one or more processors and memory storing a plurality of programs to be executed by the one or more processors.
  • the computing device selects, within the video frame, a plurality of neighbor blocks of the current block, each neighbor block located at a predefined location relative to the current block and having an associated intra prediction mode and adds one or more of the intra prediction modes associated with the plurality of neighbor blocks to a most probable mode candidate list for the current block in an order that is determined based on at least one of characteristics of the current block and characteristics of the plurality of neighbor blocks.
  • the computing device codes the current block using the chosen intra prediction mode.
  • a computing device includes one or more processors, memory and a plurality of programs stored in the memory.
  • the programs when executed by the one or more processors, cause the computing device to perform operations as described above.
  • the plurality of neighbor blocks include an above neighbor block (A) , a left neighbor block (L) , a below left neighbor block (BL) , an above right neighbor block (AR) , and an above left neighbor block (AL) relative to the current block.
  • the order of adding the one or more of the intra prediction modes associated with the plurality of neighbor blocks to the MPM candidate list is determined in accordance with a shape of the current block, wherein the shape of the current block includes a height-to-width ratio and/or an area of the current block.
  • the order of adding the one or more of the intra prediction modes associated with the plurality of neighbor blocks to the MPM candidate list is L-A-AL-BL-AR; or
  • the order of adding the one or more of the intra prediction modes associated with the plurality of neighbor blocks to the MPM candidate list is A-L-AL-AR-BL; or
  • the order of adding the one or more of the intra prediction modes associated with the plurality of neighbor blocks to the MPM candidate list is A-L-AL-AR-BL; or
  • the order of adding the one or more of the intra prediction modes associated with the plurality of neighbor blocks to the MPM candidate list is L-A-AL-BL-AR.
  • the order of adding the one or more of the intra prediction modes associated with the plurality of neighbor blocks to the MPM candidate list is L-A-AL-BL-AR; or
  • the order of adding the one or more of the intra prediction modes associated with the plurality of neighbor blocks to the MPM candidate list is L-A-AL-AR-BL.
  • the most probable mode candidate list after adding the one or more intra prediction modes associated with the plurality of neighbor blocks to the most probable mode candidate list, determining one or more derived intra prediction modes based on the one or more intra prediction modes associated with the plurality of neighbor blocks; and adding the one or more derived intra prediction modes to the most probable mode candidate list.
  • At least one of the one or more derived intra prediction modes is an intra prediction mode with a mode index of the intra prediction mode of a respective neighbor block plus an offset.
  • adding one or more default intra prediction modes to the most probable mode candidate list after adding the one or more intra prediction modes associated with the plurality of neighbor blocks to the most probable mode candidate list, adding one or more default intra prediction modes to the most probable mode candidate list, wherein the one or more default intra prediction modes comprise vertical mode and horizontal mode.
  • determining the intra prediction mode according to the MPM candidate list further includes:
  • rate-distortion costs for one or more intra modes in the MPM candidate list determining rate-distortion costs for one or more intra modes in the MPM candidate list; and determining an intra prediction mode based on its corresponding rate-distortion cost.
  • the MPM candidate list after adding the one or more intra prediction modes associated with the plurality of neighbor blocks to the MPM candidate list and before determining the intra prediction mode according to the MPM candidate list: selecting a first template of pixels above the current block and a second template of pixels to the left of the current block; predicting one of the first template of pixels and the second template of pixels from the other one of the first template of pixels and the second template of pixels, using one or more intra prediction modes within the MPM candidate list; and re-ordering the one or more intra prediction modes within the MPM candidate list in accordance with their corresponding prediction errors.
  • selecting a first template of pixels above the current block and a second template of pixels to the left of the current block selecting a first template of pixels above the current block and a second template of pixels to the left of the current block
  • N is an integer.
  • selecting a first template of pixels above the current block and a second template of pixels to the left of the current block selecting a first template of pixels above the current block and a second template of pixels to the left of the current block
  • N is an integer.
  • re-ordering intra prediction modes in the MPM candidate list in accordance with sizes of the corresponding neighbor blocks.
  • re-ordering intra prediction modes in the MPM candidate list in accordance with frequencies of the intra prediction modes are re-ordering intra prediction modes in the MPM candidate list in accordance with frequencies of the intra prediction modes.
  • re-ordering intra prediction modes in the MPM candidate list in accordance with correlations between the corresponding neighbor blocks and the current block.
  • ordering intra prediction modes of the plurality of neighbor blocks in accordance with their respective correlations with the current block ordering intra prediction modes of the plurality of neighbor blocks in accordance with their respective correlations with the current block; and adding top N of the intra prediction modes to the MPM candidate list from high to low, wherein N is an integer.
  • re-ordering intra prediction modes in the MPM candidate list in accordance with inter-block characteristics between the corresponding neighbor blocks and the current block, wherein the inter-block characteristics comprise a length of a portion of a side of the current block shared with a respective neighbor block or a ratio of the shared portion relative to the side of the current block or locations of the corresponding neighbor blocks relative to the current block.
  • a non-transitory computer readable storage medium stores a plurality of programs for execution by a computing device having one or more processors.
  • the programs when executed by the one or more processors, cause the computing device to perform operations as described above.
  • FIG. 1 is a block diagram illustrating an exemplary video encoding and decoding system in accordance with some implementations of the present disclosure.
  • FIG. 2 is a block diagram illustrating an exemplary video encoder in accordance with some implementations of the present disclosure.
  • FIG. 3 is a flow diagram illustrating a process for encoding a block of video data in accordance with some implementations of the present disclosure.
  • FIG. 4 is a block diagram illustrating an exemplary video decoder in accordance with some implementations of the present disclosure.
  • FIG. 5 is a flow diagram illustrating a process for decoding a block of video data in accordance with some implementations of the present disclosure.
  • FIGS. 6A-6D are block diagrams illustrating how a frame is partitioned into multiple video blocks for intra frame prediction in accordance with some implementations of the present disclosure.
  • FIG. 7A is a block diagram illustrating 67 candidate intra prediction modes for predicting a video block in accordance with some implementations of the present disclosure.
  • FIG. 7B is a block diagram illustrating exemplary locations of five neighbor blocks of a current block in accordance with some implementations of the present disclosure.
  • FIGS. 8A-8D are block diagrams illustrating different orders of adding intra prediction modes of neighbor blocks to a most probable mode candidate list of a current block in accordance with some implementations of the present disclosure.
  • FIG. 1 is a block diagram illustrating an exemplary video encoding and decoding system 10 for encoding and decoding blocks in, e.g., an intra prediction mode in accordance with some implementations of the present disclosure.
  • system 10 includes a source device 12 that generates and encodes video data to be decoded at a later time by a destination device 14.
  • Source device 12 and destination device 14 may comprise any of a wide range of electronic devices, including desktop or laptop computers, tablet computers, smart phones, set-top boxes, digital televisions, cameras, display devices, digital media players, video gaming consoles, video streaming device, or the like.
  • source device 12 and destination device 14 are equipped with wireless communication capabilities.
  • destination device 14 may receive the encoded video data to be decoded via a link 16.
  • Link 16 may comprise any type of communication medium or device capable of moving the encoded video data from source device 12 to destination device 14.
  • link 16 may comprise a communication medium to enable source device 12 to transmit the encoded video data directly to destination device 14 in real-time.
  • the encoded video data may be modulated according to a communication standard, such as a wireless communication protocol, and transmitted to destination device 14.
  • the communication medium may comprise any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines.
  • the communication medium may form part of a packet-based network, such as a local area network, a wide-area network, or a global network such as the Internet.
  • the communication medium may include routers, switches, base stations, or any other equipment that may be useful to facilitate communication from source device 12 to destination device 14.
  • the encoded video data may be transmitted from output interface 22 to a storage device 17. Subsequently, the encoded video data may be accessed from storage device 17 by destination device 14 via input interface 28.
  • Storage device 17 may include any of a variety of distributed or locally accessed data storage media such as a hard drive, Blu-ray discs, DVDs, CD-ROMs, flash memory, volatile or non-volatile memory, or any other suitable digital storage media for storing encoded video data.
  • storage device 17 may correspond to a file server or another intermediate storage device that may hold the encoded video data generated by source device 12. Destination device 14 may access the stored video data from storage device 17 via streaming or downloading.
  • the file server may be any type of computer capable of storing encoded video data and transmitting the encoded video data to destination device 14.
  • Exemplary file servers include a web server (e.g., for a website) , an FTP server, network attached storage (NAS) devices, or a local disk drive.
  • Destination device 14 may access the encoded video data through any standard data connection, including a wireless channel (e.g., a Wi-Fi connection) , a wired connection (e.g., DSL, cable modem, etc. ) , or a combination of both that is suitable for accessing encoded video data stored on a file server.
  • the transmission of encoded video data from storage device 17 may be a streaming transmission, a download transmission, or a combination of both.
  • source device 12 includes a video source 18, a video encoder 20 and an output interface 22.
  • Video source 18 may include a source such as a video capture device, e.g., a video camera, a video archive containing previously captured video, a video feed interface to receive video from a video content provider, and/or a computer graphics system for generating computer graphics data as the source video, or a combination of such sources.
  • a video capture device e.g., a video camera, a video archive containing previously captured video, a video feed interface to receive video from a video content provider, and/or a computer graphics system for generating computer graphics data as the source video, or a combination of such sources.
  • source device 12 and destination device 14 may form camera phones or video phones.
  • the implementations described in this disclosure may be applicable to video coding in general, and may be applied to wireless and/or wired applications.
  • the captured, pre-captured, or computer-generated video may be encoded by video encoder 20.
  • the encoded video data may be transmitted directly to destination device 14 via output interface 22 of source device 12.
  • the encoded video data may also (or alternatively) be stored onto storage device 32 for later access by destination device 14 or other devices, for decoding and/or playback.
  • Output interface 22 may further include a modem and/or a transmitter.
  • Destination device 14 includes an input interface 28, a video decoder 30, and a display device 34.
  • Input interface 28 may include a receiver and/or a modem and receive the encoded video data over link 16.
  • the encoded video data communicated over link 16, or provided on storage device 17, may include a variety of syntax elements generated by video encoder 20 for use by video decoder 30 in decoding the video data. Such syntax elements may be included within the encoded video data transmitted on a communication medium, stored on a storage medium, or stored a file server.
  • destination device 14 may include a display device 34, which can be an integrated display device and an external display device that is configured to communicate with destination device 14.
  • Display device 34 displays the decoded video data to a user, and may comprise any of a variety of display devices such as a liquid crystal display (LCD) , a plasma display, an organic light emitting diode (OLED) display, or another type of display device.
  • LCD liquid crystal display
  • OLED organic light emitting diode
  • Video encoder 20 and video decoder 30 may operate according to proprietary or industry standards, such as HEVC, MPEG-4, Part 10, Advanced Video Coding (AVC) , or extensions of such standards. It should be understood that the present disclosure is not limited to a specific video coding/decoding standard and may be applicable to other video coding/decoding standards. It is generally contemplated that video encoder 20 of source device 12 may be configured to encode video data according to any of these current or future standards. Similarly, it is also generally contemplated that video decoder 30 of destination device 14 may be configured to decode video data according to any of these current or future standards.
  • proprietary or industry standards such as HEVC, MPEG-4, Part 10, Advanced Video Coding (AVC) , or extensions of such standards. It should be understood that the present disclosure is not limited to a specific video coding/decoding standard and may be applicable to other video coding/decoding standards. It is generally contemplated that video encoder 20 of source device 12 may be configured to encode video data according to any of these current or future standards
  • Video encoder 20 and video decoder 30 each may be implemented as any of a variety of suitable encoder circuitry, such as one or more microprocessors, digital signal processors (DSPs) , application specific integrated circuits (ASICs) , field programmable gate arrays (FPGAs) , discrete logic, software, hardware, firmware or any combinations thereof.
  • DSPs digital signal processors
  • ASICs application specific integrated circuits
  • FPGAs field programmable gate arrays
  • an electronic device may store instructions for the software in a suitable, non-transitory computer-readable medium and execute the instructions in hardware using one or more processors to perform the video coding/decoding operations disclosed in the present disclosure.
  • Each of video encoder 20 and video decoder 30 may be included in one or more encoders or decoders, either of which may be integrated as part of a combined encoder/decoder (CODEC) in a respective device.
  • CDEC combined encoder/decoder
  • FIG. 2 is a block diagram illustrating an exemplary video encoder 20 in accordance with some implementations described in this disclosure.
  • Video encoder 20 may perform intra and inter predictive coding of video blocks within video frames.
  • Intra predictive coding relies on spatial prediction to reduce or remove spatial redundancy in video data within a given video frame or picture.
  • Inter predictive coding relies on temporal prediction to reduce or remove temporal redundancy in video data within adjacent video frames or pictures of a video sequence.
  • Intra prediction mode may refer to any of several spatial based compression modes described in the present disclosure.
  • video encoder 20 includes video data memory 40, prediction processing unit 41, decoded picture buffer (DPB) 64, summer 50, transform processing unit 52, quantization unit 54, and entropy encoding unit 56.
  • Prediction processing unit 41 further includes motion estimation unit 42, motion compensation unit 44, partition unit 45, intra prediction processing unit 46, and intra block copy (BC) unit 48.
  • video encoder 20 also includes inverse quantization unit 58, inverse transform processing unit 60, and summer 62 for video block reconstruction.
  • An in-loop filter (not pictured) may be positioned between summer 62 and DPB 64.
  • Video encoder 20 may take the form of a fixed or programmable hardware unit or may be divided among one or more of the illustrated fixed or programmable hardware units.
  • Video data memory 40 may store video data to be encoded by the components of video encoder 20.
  • the video data stored in video data memory 40 may be obtained, for example, from video source 18.
  • DPB 64 is a buffer that stores reference video data for use in encoding video data by video encoder 20 (e.g., in intra or inter predictive coding modes) .
  • Video data memory 40 and DPB 64 may be formed by any of a variety of memory devices.
  • video data memory 40 may be on-chip with other components of video encoder 20, or off-chip relative to those components.
  • partition unit 45 within prediction processing unit 41 partitions the video data into video blocks. This partitioning may also include partitioning the video data into slices, tiles, or other larger coding units (CUs) according to a quadtree structure associated with the video data.
  • Video encoder 20 generally illustrates the components that encode video blocks within a video frame to be encoded. The video frame may be divided into multiple video blocks (or sets of video blocks referred to as tiles) .
  • Prediction processing unit 41 may select one of a plurality of possible predictive coding modes, such as one of a plurality of intra predictive coding modes or one of a plurality of inter predictive coding modes, for the current video block based on residual results (e.g., coding rate and the level of distortion) .
  • Prediction processing unit 41 may provide the resulting intra or inter prediction coded block to summer 50 to generate a residual block and to summer 62 to reconstruct the encoded block for use as a reference frame.
  • intra prediction processing unit 46 within prediction processing unit 41 may perform intra predictive coding of the current video block relative to one or more neighbor blocks in the same frame as the current block to be coded to provide spatial compression.
  • Motion estimation unit 42 and motion compensation unit 44 within prediction processing unit 41 perform inter predictive coding of the current video block relative to one or more predictive blocks in one or more reference frames to provide temporal compression.
  • motion estimation unit 42 determines the inter prediction mode for a current video frame by generating a motion vector, which indicates the displacement of a prediction unit (PU) of a video block within the current video frame relative to a predictive block within a reference video frame, according to a predetermined pattern within a sequence of video frames.
  • the predetermined pattern may designate video frames in the sequence as P frames or B frames.
  • Intra BC unit 48 may determine vectors, e.g., block vectors, for intra BC coding in a manner similar to the determination of motion vectors by motion estimation unit 42 for inter prediction, or may utilize motion estimation unit 42 to determine the block vector.
  • a predictive block is a block that is deemed as closely matching the PU of the video block to be coded in terms of pixel difference, which may be determined by sum of absolute difference (SAD) , sum of square difference (SSD) , or other difference metrics.
  • video encoder 20 may calculate values for sub-integer pixel positions of reference frames stored in DPB 64. For example, video encoder 20 may interpolate values of one-quarter pixel positions, one-eighth pixel positions, or other fractional pixel positions of the reference frame. Therefore, motion estimation unit 42 may perform a motion search relative to the full pixel positions and fractional pixel positions and output a motion vector with fractional pixel precision.
  • Motion estimation unit 42 calculates a motion vector for a PU of a video block in an inter prediction coded frame by comparing the position of the PU to the position of a predictive block of a reference frame selected from a first reference frame list (List 0) or a second reference frame list (List 1) , each of which identifies one or more reference frames stored in DPB 64. Motion estimation unit 42 sends the calculated motion vector to motion compensation unit 44 and then to entropy encoding unit 56.
  • motion compensation unit 44 may locate the predictive block to which the motion vector points in one of the reference frame lists. Summer 50 then forms a residual video block formed of pixel difference values by subtracting pixel values of the predictive block from the pixel values of the current video block being coded.
  • the pixel difference values forming the residual vide block may include luma or chroma difference components or both.
  • Motion compensation unit 44 may also generate syntax elements associated with the video blocks of a video frame for use by video decoder 30 in decoding the video blocks of the video frame.
  • the syntax elements may include, for example, syntax elements defining the motion vector used to identify the predictive block, any flags indicating the prediction mode, or any other syntax information described herein. Note that motion estimation unit 42 and motion compensation unit 44 may be highly integrated, but are illustrated separately for conceptual purposes.
  • intra BC unit 48 may generate vectors and fetch predictive blocks in a manner similar to that described above in connection with motion estimation unit 42 and motion compensation unit 44, but with the predictive blocks being in the same frame as the current block being coded and with the vectors being referred to as block vectors as opposed to motion vectors.
  • intra BC unit 48 may use motion estimation unit 42 and motion compensation unit 44, in whole or in part, to perform such functions for Intra BC prediction according to the implementations described herein.
  • a predictive block may be a block that is deemed as closely matching the block to be coded, in terms of pixel difference, which may be determined by sum of absolute difference (SAD) , sum of squared difference (SSD) , or other difference metrics, and identification of the predictive block may include calculation of values for sub-integer pixel positions.
  • SAD sum of absolute difference
  • SSD sum of squared difference
  • video encoder 20 may form a residual video block by subtracting pixel values of the predictive block from the pixel values of the current video block being coded, forming pixel difference values.
  • the pixel difference values forming the residual video block may include both luma and chroma component differences.
  • Intra prediction processing unit 46 may intra-predict a current video block, as an alternative to the inter-prediction performed by motion estimation unit 42 and motion compensation unit 44, or the intra block copy prediction performed by intra BC unit 48, as described above.
  • intra prediction processing unit 46 may determine an intra prediction mode to use to encode a current block.
  • intra prediction processing unit 46 may encode a current block using various intra prediction modes, e.g., during separate encoding passes, and intra prediction processing unit 46 (or a mode select unit, in some examples) may select an appropriate intra prediction mode to use from the tested intra prediction modes.
  • intra prediction processing unit 46 may construct a most probable mode (MPM) candidate list according to some implementations of this disclosure. Intra prediction processing unit 46 then selects as the intra prediction mode for a particular block either an intra prediction mode in the MPM candidate list or an intra prediction mode not in the MPM candidate list.
  • MPM most probable mode
  • intra prediction processing unit 46 may, for example, calculate rate-distortion costs using a rate-distortion analysis algorithm for the various tested intra prediction modes, and select the intra prediction mode having the best rate-distortion characteristics (e.g., the one having the lowest rate-distortion cost) among the tested intra prediction modes.
  • Rate-distortion analysis generally determines an amount of distortion (or residual) between an encoded block and an original block encoded to produce the encoded block, as well as a bit rate (that is, a number of bits) used to produce the encoded block.
  • Intra prediction processing unit 46 may calculate ratios from the distortions and rates for the various encoded blocks to determine which intra prediction mode exhibits the best rate-distortion cost for the block.
  • intra prediction processing unit 46 may provide information indicative of the selected intra prediction mode for the block along with other syntax elements to entropy encoding unit 56.
  • Entropy encoding unit 56 may encode the information indicating the selected intra prediction mode in accordance with the implementations of the present disclosure. For blocks that are encoded using an intra prediction mode, entropy encoding unit 56 may also select one or more contexts for encoding the information indicating if the actual intra prediction mode is a mode in the MPM candidate list.
  • summer 50 forms a residual video block by subtracting the predictive block from the current video block.
  • the residual video data in the residual block may be included in one or more transform units (TUs) and provided to transform processing unit 52.
  • Transform processing unit 52 transforms the residual video data into residual transform coefficients using a transform, such as a discrete cosine transform (DCT) or a conceptually similar transform.
  • Transform processing unit 52 may convert the residual video data from a pixel domain to a transform domain, such as a frequency domain.
  • Transform processing unit 52 may send the resulting transform coefficients to quantization unit 54.
  • Quantization unit 54 quantizes the transform coefficients to further reduce bit rate. The quantization process may reduce the bit depth associated with some or all of the coefficients. The degree of quantization may be modified by adjusting a quantization parameter.
  • quantization unit 54 may then perform a scan of the matrix including the quantized transform coefficients. Alternatively, entropy encoding unit 56 may perform the scan.
  • entropy encoding unit 56 entropy encodes the quantized transform coefficients into a video bitstream using, e.g., context adaptive variable length coding (CAVLC) , context adaptive binary arithmetic coding (CABAC) , syntax-based context-adaptive binary arithmetic coding (SBAC) , probability interval partitioning entropy (PIPE) coding or another entropy encoding methodology or technique.
  • CAVLC context adaptive variable length coding
  • CABAC context adaptive binary arithmetic coding
  • SBAC syntax-based context-adaptive binary arithmetic coding
  • PIPE probability interval partitioning entropy
  • the encoded bitstream may then be transmitted to video decoder 30, or archived in storage device 32 for later transmission to or retrieval by video decoder 30.
  • Entropy encoding unit 56 may also entropy encode the motion vectors and the other syntax elements for the current video frame being coded.
  • Inverse quantization unit 58 and inverse transform processing unit 60 apply inverse quantization and inverse transformation, respectively, to reconstruct the residual video block in the pixel domain for later use as a reference block for prediction of other video blocks.
  • Motion compensation unit 44 and/or intra BC unit 48 may calculate a reference block by adding the reconstructed residual block to a predictive block of one reference frame within one of the reference frame lists.
  • Motion compensation unit 44 and/or intra BC unit 48 may also apply one or more interpolation filters to the reconstructed residual block to calculate sub-integer pixel values for use in motion estimation.
  • Summer 62 adds the reconstructed residual block to the motion compensated prediction block produced by motion compensation unit 44 to produce a reference block for storage in DPB 64.
  • the reference block may be used by intra BC unit 48, motion estimation unit 42 and motion compensation unit 44 as a reference block to inter predict another video block in a subsequent video frame.
  • Video encoder 20 represents an exemplary device for encoding video data that is configured to, via intra prediction processing unit 46, choose a current block of video data to be coded in an intra prediction mode, add an intra prediction mode of one or more neighbor blocks to an MPM candidate list for the current block, and generate information identifying an actual intra prediction mode associated with a particular neighbor block used to encode the current block of video data.
  • video encoder 20 may check one or more neighbor blocks in a predefined order to identify intra prediction modes to add to the MPM candidate list.
  • the predefined order may be fixed or adaptable to characteristics of the current block and the neighbor blocks.
  • video encoder 20 may add the intra prediction mode used to encode the neighbor block to the MPM candidate list for the current block.
  • video encoder 20 includes only one instance of the same intra prediction mode in the MPM candidate list for the current block.
  • Video encoder 20 may determine a number of neighbor blocks, their locations, and an order for checking the group of neighbor blocks based on one or more of a size of the current block, whether the current block is a square block or a rectangular block, whether the current block is a horizontally-oriented rectangular block or a vertically-oriented rectangular block, or a prediction mode used to encode a neighbor block of the group of neighbor blocks, a size of a neighbor block, whether a neighbor block is a square block or a rectangular block, or whether a neighbor block is vertically oriented or horizontally oriented, etc.
  • video encoder 20 may terminate the checking of the other neighbor blocks.
  • the threshold number may be less than a number of neighbor blocks in the group. In some implementations, the threshold number may be less than a maximum number of intra prediction modes included in the MPM candidate list.
  • Video encoder 20 may add one or more derived intra prediction modes to the MPM candidate list based on an intra prediction mode of a neighbor block. For example, video encoder 20 may add an intra prediction mode with a mode index of the intra prediction mode of the neighbor block plus/minus an offset (e.g., 1 or 2) to the MPM candidate list. Video encoder 20 may determine the offset based on characteristics of the current block or the neighbor block or both. In some implementations, video encoder 20 may add a first offset to the intra prediction mode of the first neighbor block to determine a first derived intra prediction mode, add a second offset to the intra prediction mode of the first neighbor block to determine a second derived intra prediction mode, and add the first derived intra prediction mode and the second derived intra prediction mode to the MPM candidate list. Similarly, when two derived intra prediction modes are the same intra prediction mode, video encoder 20 may include only one instance of the derived intra prediction mode in the MPM candidate list.
  • video encoder 20 may stop adding new derived intra prediction modes.
  • the threshold number of derived intra prediction modes plus a number of neighbor-based intra prediction modes included in the MPM candidate list may be less than a maximum number of intra prediction modes included in the MPM candidate list.
  • video encoder 20 may add one or more default intra prediction modes to the MPM candidate list when a number of neighbor-based intra prediction modes and derived intra prediction modes is still less than a maximum number of intra prediction modes included in the MPM candidate list until a total number of intra prediction modes in the MPM candidate list is equal to the maximum number of intra prediction modes included in the MPM candidate list is reached.
  • video encoder 20 may add the one or more neighbor-based intra prediction modes to the MPM candidate list, then one or more default intra prediction modes to the MPM candidate list, and finally one or more derived intra prediction modes to the MPM candidate list.
  • Video encoder 20 may generate information identifying an actual intra prediction mode used to encode the current block of video data.
  • the actual intra prediction mode used to encode the current block of video data may be a most probable mode or may be a non-most probable mode outside the MPM candidate list. If the actual intra prediction mode is a most probable mode, the information identifying the actual intra prediction mode used to encode the current block of video data may include a context coded index value that identifies one of the intra prediction modes in the MPM candidate list, and video encoder 20 may encode the context coded index value using any technique described herein or using other techniques.
  • the magnitude of the context coded index value has an adverse impact on the bit rate such that a smaller context coded index value is often more desirable to achieve a better bit rate in the encode video bit stream.
  • Video encoder 20 also represents an exemplary device for encoding video data by generating an MPM candidate list for a current block, determining an actual intra prediction mode for encoding the current block, in response to the fact that the actual intra prediction mode is included in the MPM candidate list, context encoding an index value corresponding to the actual intra prediction mode in the MPM candidate list, binarizing the index value associated with the actual intra prediction mode to determine a binarized codeword, mapping the binarized index value to bins, and context encoding each bin associated with the binarized codeword.
  • the binarized codeword may be one of a unary coded codeword, a truncated unary codeword, a fixed binary codeword, a Golomb coded codeword, an Exponential Golomb coded codeword, or a Rice coded codeword.
  • Each bin of the binarized codeword may correspond to one mode in the MPM candidate list.
  • Video encoder 20 may determine the context for each bin based on a classification of the most probable mode corresponding to each bin, e.g., whether the most probable mode is a horizontal mode, a vertical mode, a diagonal mode, or non-angular mode.
  • the context may be further used for decoding non-intra prediction-related syntax elements.
  • the MPM candidate list for the current block may be constructed using any technique described in this disclosure or other techniques.
  • FIG. 3 is a flow diagram illustrating a process for encoding a block of video data according to some implementations of this disclosure in connection with video encoder 20.
  • Video encoder 20 selects a current block of video data to be coded using an intra prediction mode (320) .
  • Video encoder 20 generates an MPM candidate list (322) , e.g., using the implementations described below.
  • Video encoder 20 determines an intra prediction mode using the MPM candidate list (324) and encodes the current block of video data using the intra prediction mode (326) .
  • FIG. 4 is a block diagram illustrating an exemplary video decoder 30 in accordance with some implementations of the present disclosure.
  • Video decoder 30 includes video data memory 79, entropy decoding unit 80, prediction processing unit 81, inverse quantization unit 86, inverse transform processing unit 88, summer 90, and DPB 92.
  • Prediction processing unit 81 further includes motion compensation unit 82, intra prediction processing unit 84, and intra BC unit 85.
  • Video decoder 30 may perform a decoding process generally reciprocal to the encoding process described above with respect to video encoder 20 in connection with FIG. 2.
  • a unit of video decoder 30 may be tasked to perform the implementations of the present disclosure. Also, in some examples, the implementations of the present disclosure may be divided among one or more of the units of video decoder 30.
  • intra BC unit 85 may perform the implementations of the present disclosure, alone, or in combination with other units of video decoder 30, such as motion compensation unit 82, intra prediction processing unit 84, and entropy decoding unit 80.
  • video decoder 30 may not include intra BC unit 85 and the functionality of intra BC unit 85 may be performed by other components of prediction processing unit 81, such as motion compensation unit 82.
  • Video data memory 79 may store video data, such as an encoded video bitstream, to be decoded by the other components of video decoder 30.
  • the video data stored in video data memory 79 may be obtained, for example, from storage device 32, from a local video source, such as a camera, via wired or wireless network communication of video data, or by accessing physical data storage media.
  • Video data memory 79 may form a coded picture buffer (CPB) that stores encoded video data from an encoded video bitstream.
  • CPB 92 stores reference video data for use in decoding video data by video decoder 30 (e.g., in intra or inter predictive coding modes) .
  • Video data memory 79 and DPB 92 may be formed by any of a variety of memory devices, such as dynamic random access memory (DRAM) , including synchronous DRAM (SDRAM) , magnetoresistive RAM (MRAM) , resistive RAM (RRAM) , or other types of memory devices. Video data memory 79 and DPB 92 may be provided by the same memory device or separate memory devices. In various examples, video data memory 79 may be on-chip with other components of video decoder 30, or off-chip relative to those components.
  • DRAM dynamic random access memory
  • SDRAM synchronous DRAM
  • MRAM magnetoresistive RAM
  • RRAM resistive RAM
  • Video data memory 79 and DPB 92 may be provided by the same memory device or separate memory devices.
  • video data memory 79 may be on-chip with other components of video decoder 30, or off-chip relative to those components.
  • video decoder 30 receives an encoded video bitstream that represents video blocks of an encoded video frame and associated syntax elements from video encoder 20.
  • Video decoder 30 may receive the syntax elements at the video frame level and/or the video block level.
  • Entropy decoding unit 80 of video decoder 30 entropy decodes the bitstream to generate quantized coefficients, motion vectors, and other syntax elements.
  • Entropy decoding unit 80 forwards the motion vectors and other syntax elements to prediction processing unit 81.
  • intra prediction processing unit 84 of prediction processing unit 81 may generate prediction data for a video block of the current video frame based on a signaled intra prediction mode and reference data from previously decoded blocks of the current frame. More specifically, intra prediction processing unit 84 may be configured to generate an MPM candidate list according to the MPM candidate list construction implementations described herein.
  • motion compensation unit 82 of prediction processing unit 81 produces predictive blocks for a video block of the current video frame based on the motion vectors and other syntax elements received from entropy decoding unit 80. The predictive blocks may be produced from a reference frame within one of the reference frame lists.
  • Video decoder 30 may construct the reference frame lists, List 0 and List 1, using default construction techniques based on reference frames stored in DPB 92.
  • intra BC unit 85 of prediction processing unit 81 produces predictive blocks for the current video block based on block vectors and other syntax elements received from entropy decoding unit 80.
  • the predictive blocks may be within a reconstructed region of the same picture as the current video block defined by video encoder 20.
  • Motion compensation unit 82 and/or intra BC unit 85 determines prediction information for a video block of the current video frame by parsing the motion vectors and other syntax elements, and then uses the prediction information to produce the predictive blocks for the current video block being decoded. For example, motion compensation unit 82 uses some of the received syntax elements to determine a prediction mode (e.g., intra or inter prediction) used to code video blocks of the video frame, an inter prediction frame type (e.g., B or P) , construction information for one or more of the reference frame lists for the frame, motion vectors for each inter predictive encoded video block of the frame, inter prediction status for each inter predictive coded video block of the frame, and other information to decode the video blocks in the current video frame.
  • a prediction mode e.g., intra or inter prediction
  • an inter prediction frame type e.g., B or P
  • intra BC unit 85 may use some of the received syntax elements, e.g., a flag, to determine that the current video block was predicted using the intra BC mode, construction information of which video blocks of the frame are within the reconstructed region and should be stored in DPB 92, block vectors for each intra BC predicted video block of the frame, intra BC prediction status for each intra BC predicted video block of the frame, and other information to decode the video blocks in the current video frame.
  • a flag e.g., a flag
  • Motion compensation unit 82 may also perform interpolation using the interpolation filters as used by video encoder 20 during encoding of the video blocks to calculate interpolated values for sub-integer pixels of reference blocks. In this case, motion compensation unit 82 may determine the interpolation filters used by video encoder 20 from the received syntax elements and use the interpolation filters to produce predictive blocks.
  • Inverse quantization unit 86 inverse quantizes the quantized transform coefficients provided in the bitstream and entropy decoded by entropy decoding unit 80 using a quantization parameter calculated by video encoder 20 for each video block in the video frame to determine a degree of quantization and, likewise, the same degree of inverse quantization that should be applied.
  • Inverse transform processing unit 88 applies an inverse transform, e.g., an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process, to the transform coefficients in order to produce residual blocks in the pixel domain.
  • summer 90 reconstructs a decoded video block by summing the residual blocks from inverse transform processing unit 88 with the corresponding predictive blocks generated by motion compensation unit 82 and intra BC unit 85.
  • An in-loop filter (not pictured) may be positioned between summer 90 and DPB 92.
  • the decoded video blocks in a given frame are then stored in DPB 92, which stores reference frames used for subsequent motion compensation.
  • DPB 92, or a memory device separate from DPB 92 may also store decoded video for later presentation on a display device, such as display device 34 of FIG. 1.
  • Video decoder 30 represents an exemplary device for decoding video data by choosing a current block of video data that was coded in an intra prediction mode, adding an intra prediction mode of one or more neighbor blocks to an MPM candidate list for the current block, and decoding the current block of video data using of the intra prediction modes.
  • Video decoder 30 may check a group of neighbor blocks in a predefined order to identify intra prediction modes used to encode neighbor blocks from the group of neighbor blocks into the MPM candidate list in a predefined order. When two neighbor blocks from the group of neighbor blocks are coded using a same intra prediction mode, only one instance of the same intra prediction mode is added to the MPM candidate list.
  • Video decoder 30 may determine a number of neighbor blocks, their locations, and an order for checking the neighbor blocks based on one or more of a size of the current block, whether the current block is a square block or a rectangular block, whether the current block is a horizontally-oriented rectangular block or a vertically-oriented rectangular block, or a prediction mode used to encode a neighbor block of the group of neighbor blocks, a size of a neighbor block, whether a neighbor block is a square block or a rectangular block, or whether a neighbor block is vertically oriented or horizontally oriented.
  • video decoder 30 may terminate the checking of other neighbor blocks.
  • the threshold number may, for example, be less than a number of neighbor blocks in the group. In some implementations, the threshold number may, for example, be less than a maximum number of intra prediction modes included in the MPM candidate list.
  • Video decoder 30 may add one or more derived intra prediction modes to the MPM candidate list based on an intra prediction mode of a neighbor block. For example, video decoder 30 may add an intra prediction mode with a mode index of the intra prediction mode of the neighbor block plus/minus an offset (e.g., 1 or 2) to the MPM candidate list. Video decoder 30 may determine the offset based on a characteristic of the current block or a characteristic of the neighbor block or both.
  • an offset e.g. 1 or 2
  • video decoder 30 may include only one instance of the derived intra prediction mode in the MPM candidate list.
  • video decoder 30 may stop adding new derived intra prediction modes.
  • the threshold number of derived intra prediction modes plus a number of neighbor-based intra prediction modes included in the MPM candidate list may be less than a maximum number of intra prediction modes included in the MPM candidate list.
  • video decoder 30 may add one or more default candidates to the MPM candidate list when a total number of available neighbor-based intra prediction modes and derived intra prediction modes is less than a maximum number of intra prediction modes included in the MPM candidate list until a number of intra prediction modes in the MPM candidate list is equal to a maximum number of intra prediction modes included in the MPM candidate list is reached.
  • video decoder 30 may add the one or more neighbor-based intra prediction modes to the MPM candidate list, then one or more default intra prediction modes to the MPM candidate list, and finally one or more derived intra prediction modes to the MPM candidate list.
  • video decoder 30 may use an intra prediction mode from the MPM candidate list or an intra prediction mode that is a non-most probable mode.
  • video decoder 30 may receive a context coded index value that identifies one intra prediction mode in the MPM candidate list from the syntax elements and decode the context coded index value using implementations described herein.
  • Video decoder 30 also represents an exemplary device for decoding video data by generating an MPM candidate list for a current block, receiving a context coded index value identifying an intra prediction mode included in the MPM candidate list, determining a context for decoding the context coded index value, and context decoding the context coded index value using the determined context to determine the intra prediction mode.
  • the MPM candidate list may be constructed using any of the implementations described in this disclosure and/or using other techniques not described in this disclosure.
  • video decoder 30 may map the context coded index value to bins to determine a binarized codeword that includes the index value and corresponds to an intra prediction mode from the MPM candidate list.
  • the binarized codeword may be any of a unary coded codeword, a truncated unary codeword, a fixed binary codeword, a Golomb coded codeword, and Exponential Golomb coded codeword, or a Golomb-Rice coded codeword.
  • Each bin of the binarized codeword may be context coded.
  • Each bin of the binarized codeword may correspond to one of the most probable modes in the MPM candidate list
  • Video decoder 30 may determine the context for each bin based on a classification of the most probable mode corresponding to each bin, e.g., whether the most probable mode is a horizontal mode, a vertical mode, a diagonal mode, or a non-angular mode.
  • the context may be further used for decoding non-intra prediction-related syntax elements.
  • FIG. 5 is a flow diagram illustrating a process of decoding a block of video data according to some implementations of this disclosure in connection with video decoder 30.
  • video decoder 30 selects a current block of video data coded using an intra prediction mode (330) .
  • Video decoder 30 generates an MPM candidate list (332) , e.g., using the implementations described below or any other implementations described in this disclosure.
  • Video decoder 30 determines an intra prediction mode using the MPM candidate list (334) and decodes the current block of video data using the intra prediction mode (336) .
  • the intra prediction mode used to decode the current block may be a most probable mode (i.e., a mode included in the MPM candidate list) or may be a non-most probable mode (i.e., a mode not included in the MPM candidate list) .
  • video decoder 30 may, for example, receive an indication that the intra prediction mode is not an intra prediction mode included in the MPM candidate list and receive additional syntax indicating the intra prediction mode.
  • video decoder 30 may receive a context coded index value identifying an intra prediction mode included in the MPM candidate list, determine a context for decoding the context coded index value; and context decode the context coded index value using the determined context to determine the intra prediction mode. Based on the determined context value, video decoder 30 may map the context coded index value to bins to determine a binarized codeword comprising the index value, where the codeword corresponds to an intra prediction mode from the MPM candidate list.
  • the binarized codeword may, for example, be a truncated unary codeword.
  • each bin of the binarized codeword is context coded.
  • Each bin of the binarized codeword may correspond to one of the most probable modes in the MPM candidate list.
  • a video sequence typically includes an ordered set of frames.
  • Each frame may include three sample arrays, denoted SL, S Cb , and S Cr .
  • SL is a two-dimensional array of luma samples.
  • S Cb is a two-dimensional array of Cb chroma samples.
  • S Cr is a two-dimensional array of Cr chroma samples.
  • a frame may be monochrome and therefore includes only one two-dimensional array of luma samples.
  • video encoder 20 (or more specifically partition unit 45) generates an encoded representation of a frame by partitioning the frame into a set of coding tree units (CTUs) .
  • a video frame may include an integer number of CTUs ordered consecutively in a raster scan order.
  • Each CTU is a largest logical coding unit and the width and height of the CTU are signaled by the video encoder 20 in a sequence parameter set, such that all the CTUs in a video sequence have the same size: 128 ⁇ 128, 64 ⁇ 64, 32 ⁇ 32, or 16 ⁇ 16.
  • the present application is not necessarily limited to a particular size. As shown in FIG.
  • each CTU may comprise one coding tree block (CTB) of luma samples, two corresponding coding tree blocks of chroma samples, and syntax elements used to code the samples of the coding tree blocks.
  • the syntax elements describe properties of different types of units of a coded block of pixels and how the video sequence can be reconstructed at the video decoder 30, including inter or intra prediction, intra prediction mode, motion vectors, and other parameters.
  • a CTU may comprise a single coding tree block and syntax elements used to code the samples of the coding tree block.
  • a coding tree block may be an NxN block of samples.
  • video encoder 20 may recursively perform quad-tree partitioning on the coding tree blocks of the CTU and divide the coding tree blocks into smaller coding units (CUs) .
  • a CU may comprise a coding block (CB) of luma samples and two corresponding coding blocks of chroma samples of a frame, and syntax elements used to code the samples of the coding blocks.
  • CB coding block
  • a CU may comprise a single coding block and syntax structures used to code the samples of the coding block.
  • video encoder 20 may further partition a coding block of a CU into one or more MxN prediction blocks (PB) as shown in FIG. 6D.
  • a prediction block is a rectangular (square or non-square) block of samples on which the same prediction, inter or intra, is applied.
  • a prediction unit (PU) of a CU may comprise a prediction block of luma samples, two corresponding prediction blocks of chroma samples, and syntax elements used to predict the prediction blocks. In monochrome pictures or pictures having three separate color planes, a PU may comprise a single prediction block and syntax structures used to predict the prediction block.
  • Video encoder 20 may generate predictive luma, Cb, and Cr blocks for luma, Cb, and Cr prediction blocks of each PU of the CU.
  • Video encoder 20 may use intra prediction or inter prediction to generate the predictive blocks for a PU. If video encoder 20 uses intra prediction to generate the predictive blocks of a PU, video encoder 20 may generate the predictive blocks of the PU based on decoded samples of the frame associated with the PU. If video encoder 20 uses inter prediction to generate the predictive blocks of a PU, video encoder 20 may generate the predictive blocks of the PU based on decoded samples of one or more frames other than the frame associated with the PU.
  • video encoder 20 may generate a luma residual block for the CU by subtracting the CU’s predictive luma blocks from its original luma coding block such that each sample in the CU’s luma residual block indicates a difference between a luma sample in one of the CU's predictive luma blocks and a corresponding sample in the CU's original luma coding block.
  • video encoder 20 may generate a Cb residual block and a Cr residual block for the CU, respectively, such that each sample in the CU's Cb residual block indicates a difference between a Cb sample in one of the CU's predictive Cb blocks and a corresponding sample in the CU's original Cb coding block and each sample in the CU's Cr residual block may indicate a difference between a Cr sample in one of the CU's predictive Cr blocks and a corresponding sample in the CU's original Cr coding block.
  • video encoder 20 may use quad-tree partitioning to decompose the luma, Cb, and Cr residual blocks of a CU into one or more luma, Cb, and Cr transform blocks.
  • a transform block is a rectangular (square or non-square) block of samples on which the same transform is applied.
  • a transform unit (TU) of a CU may comprise a transform block of luma samples, two corresponding transform blocks of chroma samples, and syntax elements used to transform the transform block samples.
  • each TU of a CU may be associated with a luma transform block, a Cb transform block, and a Cr transform block.
  • the luma transform block associated with the TU may be a sub-block of the CU's luma residual block.
  • the Cb transform block may be a sub-block of the CU's Cb residual block.
  • the Cr transform block may be a sub-block of the CU's Cr residual block.
  • a TU may comprise a single transform block and syntax structures used to transform the samples of the transform block.
  • Video encoder 20 may apply one or more transforms to a luma transform block of a TU to generate a luma coefficient block for the TU.
  • a coefficient block may be a two-dimensional array of transform coefficients.
  • a transform coefficient may be a scalar quantity.
  • Video encoder 20 may apply one or more transforms to a Cb transform block of a TU to generate a Cb coefficient block for the TU.
  • Video encoder 20 may apply one or more transforms to a Cr transform block of a TU to generate a Cr coefficient block for the TU.
  • video encoder 20 may quantize the coefficient block. Quantization generally refers to a process in which transform coefficients are quantized to possibly reduce the amount of data used to represent the transform coefficients, providing further compression.
  • video encoder 20 may entropy encode syntax elements indicating the quantized transform coefficients. For example, video encoder 20 may perform Context-Adaptive Binary Arithmetic Coding (CABAC) on the syntax elements indicating the quantized transform coefficients.
  • CABAC Context-Adaptive Binary Arithmetic Coding
  • video encoder 20 may output a bitstream that includes a sequence of bits that forms a representation of coded frames and associated data, which is either saved in storage device 32 or transmitted to destination device 14.
  • video decoder 30 may parse the bitstream to obtain syntax elements from the bitstream. Video decoder 30 may reconstruct the frames of the video data based at least in part on the syntax elements obtained from the bitstream. The process of reconstructing the video data may be generally reciprocal to the process performed by video encoder 20. Video decoder 30 may perform inverse transforms on the coefficient blocks associated with TUs of a current CU to reconstruct transform blocks associated with the TUs of the current CU. Video decoder 30 may reconstruct the coding blocks of the current CU by adding the samples of the predictive blocks for PUs of the current CU to corresponding samples of the transform blocks of the TUs of the current CU. After reconstructing the coding blocks for each CU of a frame, video decoder 30 may reconstruct the frame.
  • an MPM candidate list may be used for signaling which intra prediction mode in the MPM candidate list, if any, was actually chosen for predicting a particular code block by video encoder 20 and video decoder 30 sharing the same method of constructing the MPM candidate list.
  • signaling a most probable mode typically requires fewer bits than signaling a non-most probable mode
  • having the actual intra prediction mode used to encode a block of video data be a most probable mode more frequently may reduce the signaling overhead associated with signaling intra prediction modes.
  • multiple implementations of adding intra prediction modes associated with neighbor blocks of a current code block to the MPM candidate list in predefined orders are disclosed to increase the probability that the actual intra prediction mode used to encode the current code block will be a most probable mode in the MPM candidate list.
  • the implementations of this disclosure optimizes the order of intra prediction mode candidates in the MPM candidate list such that the most probable mode is more likely found at or close to the head of the MPM candidate list as much as possible.
  • video encoder 20 can use an even smaller context coded index value identifying the most probable mode in the MPM candidate list in the syntax elements associated with the current code block.
  • the implementations described in this disclosure can be used to generate an MPM candidate list of any size (generically referred to herein as size N) .
  • N may be equal to 6 as currently contemplated in the JVET, but other larger or smaller values for N may also be used.
  • the implementations of this disclosure are not limited to any particular value of N.
  • FIG. 7A is a block diagram illustrating intra prediction modes provided by JVET’s Jth meeting, the so-called “Benchmark Set” (BMS) -1.0.
  • BMS-1.0 includes a total of 67 intra prediction modes, including 65 angular modes (shown with mode indexes 2 to 33 being the “horizontal modes set” and mode indexes 34-66 being the “vertical modes set” ) plus two non-angular modes, referred to as the “planar mode” (mode index 0) and the “DC mode” (mode index 1) , which are collectively referred to as “non-angular modes set” .
  • the implementations of this disclosure is applied for any number of angular modes used for intra prediction.
  • the number of modes may be 35 as used in HEVC, or some other number of modes greater than 35.
  • the implementations may be applied for intra prediction mode coding of only a few selected color components, such as a luma component or a chroma component, it would be apparent to one of ordinary skill in the art that they may be applied for all available color components (luma and both chroma) , or in any other combination.
  • a video coder such as video encoder 20 or video decoder 30, may check three or more neighbor blocks of a group of neighbor blocks to identify intra prediction modes to add to an MPM candidate list for a current block. If a neighbor block is coded using an intra prediction mode, then the video coder may add the intra prediction mode used to code the neighbor block to the MPM candidate list for the current block.
  • the locations of the neighbor blocks checked by the video coder 20 may be fixed relative to the current block. For example, the locations of five neighbor blocks may include a left (L) block, an above (A) block, a below left (BL) block, an above right (AR) block, and/or an above left (AL) block as depicted in FIG. 7B.
  • the order in which intra prediction modes from the neighbor blocks are added to the MPM candidate list may depend on the current block size, whether the block is of a certain shape, such as rectangular or square, or based on context information such as the size or shape of a neighbor block as well as type or frequency of intra prediction modes of the neighbor blocks. Note that five neighbor locations in FIG. 7B are provided as an example, but fewer or more neighbor blocks can be considered in the construction of the MPM candidate list using the implementations.
  • a video coder can generate an MPM candidate list from different MPM types.
  • the different types include, but are not limited to, neighbor-based intra prediction modes, derived intra prediction modes, and default intra prediction modes.
  • a neighbor-based intra prediction mode indicates an intra prediction mode that is used for a neighbor block.
  • a default intra prediction mode refers to a constant intra prediction mode that does not change with the neighbor blocks.
  • the default intra prediction mode (s) may be one of a planar mode, a DC mode, a horizontal mode, or a vertical mode.
  • a derived intra prediction mode refers to an intra prediction mode that is derived based on a neighbor-based intra prediction mode or a default intra prediction mode.
  • a derived intra prediction mode may not be an actual intra prediction mode of a neighbor block.
  • a derived intra prediction mode may be a neighbor-based intra prediction mode ⁇ 1, ⁇ 2, etc.
  • a derived intra prediction mode can also be generated by another existing derived intra prediction mode.
  • the video coder may add intra prediction modes to the MPM candidate list according to the intra prediction mode type. For example, the video coder may first add neighbor-based intra prediction modes, then derived intra prediction modes when the number of neighbor-based intra prediction modes is less than N, and then default intra prediction modes when the total number of neighbor-based intra prediction modes and derived intra prediction modes is less than N. In another implementation, the video coder may add intra prediction modes with different types in an interleaved manner. For example, the video coder may add one or more default intra prediction modes after adding a certain number of neighbor-based intra prediction modes to the list. Alternatively, the video coder may add two neighbor-based intra prediction modes, two default intra prediction modes, and then more neighbor-based intra prediction modes.
  • MPM candidate list construction and derived modes will now be described.
  • neighbor-based intra prediction modes are considered to be included into the MPM candidate list, only unique intra prediction modes can be added to the list. For example, if one neighbor block has the same intra prediction mode, which is already added to the MPM candidate list, then such mode is not added to the list a second time.
  • the location of a neighbor block may be represented by a sub-block size, for example 4x4, meaning that it is the granularity at which intra prediction mode information is stored.
  • intra prediction mode information can be specified per pixel or for larger blocks, such as 8x8. If chroma is subsampled comparing to luma component, such as in 4: 2: 0 color format, then the chroma component sub-block location may be smaller, for example 2x2, which may correspond to luma 4x4.
  • multiple locations of neighbor blocks depicted in FIG. 7B may belong to the same code block. For example, if a neighbor block is 16x16 and the currently coded block is 8x8, then the above left and left locations may correspond to the same 16x16 neighbor block, where the intra prediction mode information would be the same for those locations.
  • the number of neighbor locations M can be equal to the MPM candidate list size N, but may be smaller or larger. In one example, the number M may always be smaller than N to allocate some room to include other types of intra prediction modes, e.g., derived or default intra prediction modes, into the MPM candidate list.
  • the number of locations can depend on the current and/or neighbor block's characteristics, such as block size, whether a block is square or rectangular, whether the rectangular block is a horizontally-oriented rectangular block (width is greater than height) or a vertically-oriented rectangular block (width is smaller than height) , the ratio between height and width, and the ratio between the larger and smaller value of height and width.
  • the number of locations may also depend on the neighbor block's prediction mode (e.g., intra or inter) .
  • This disclosure describes implementations for optimizing the order of a list of most probable intra prediction modes for a block of video data and reducing the coding overhead of signaling which of the most probable intra predictions mode from the list of most probable intra predictions modes was used to encode the block of video data so that the video decoder can use that intra prediction mode to decode the block of video data.
  • most probable intra predictions modes may also be referred to simply as most probable modes or MPMs.
  • the list of most probable intra prediction modes may also be referred to simply as a most probable mode candidate list or an MPM candidate list.
  • a video encoder may determine an MPM candidate list for the block.
  • a video decoder may determine the same MPM candidate list as determined by the video encoder by implementing the same MPM candidate list construction process implemented by the video encoder.
  • the video encoder can signal an intra prediction mode to the video decoder by signaling an index value that corresponds to a particular candidate in the MPM candidate list.
  • the MPM candidate list construction implementations described herein can be performed by either a video encoder or a video decoder.
  • the intra prediction modes selected as most probable modes for a particular block generally correspond to intra prediction modes that are statistically more likely to be used for coding the block.
  • different signaling techniques may be used if the actual intra prediction modes is an intra prediction mode in the MPM candidate list than if the actual intra prediction is one of the non-most probable modes.
  • the method utilized for signaling most probable modes in the in the MPM candidate list may, on average, require fewer bits than the signaling methods utilized for the non-most probable modes.
  • the order in which the intra prediction modes of neighbor blocks are added into the MPM candidate list may vary for certain blocks depending, e.g., on the current block size, whether the current block is square or rectangular, whether the current block is vertically oriented (width smaller than height) , or horizontally oriented (width larger than height) .
  • Multiple ordering strategies are provided below using the locations of neighbor blocks depicted in FIG. 7B as an example. But it will be apparent to one of ordinary skill in the art that these ordering strategies are not dependent upon the specific locations of neighbor blocks in FIG. 7B and they could be applied to other location arrangements of neighbor blocks around a current block.
  • the order of adding the intra prediction modes associated with the five neighbor blocks to the MPM candidate list is set to be L-A-AL-BL-AR; otherwise, the default order is set to be L-A-AR-BL-AL.
  • all the intra prediction modes added to the MPM candidate list should be unique ones out of the 67 modes depicted in FIG. 7A and there will be no duplicate intra prediction mode in the MPM candidate list.
  • the planar mode and DC mode can be placed at arbitrary locations in the MPM candidate list.
  • FIG. 8B depicts a different order of adding the intra prediction modes associated with the five neighbor blocks to the MPM candidate list.
  • FIG. 8C depicts yet another order of adding the intra prediction modes associated with the five neighbor blocks to the MPM candidate list.
  • the order of adding the intra prediction modes associated with the five neighbor blocks to the MPM candidate list is set to be A-L-AL-AR-BL; otherwise, the default order is set to be L-A-AR-BL-AL.
  • the three ordering methods described above is combined such that, when the current block is a horizontally-oriented block, the order is L-A-AL-BL-AR; when the current block is a square block, the order is L-A-AL-AR-BL; and when the current block is a vertically-oriented block, the order is A-L-AL-AR-BL.
  • the order of adding the intra prediction modes associated with the five neighbor blocks to the MPM candidate list depends on the width-height ratio of the current block. For example, when the width-height ratio of the current block is a predefined value selected from the group consisting of ⁇ ..., 1/16, 1/8, 1/4, 1/2, 1, 2, 4, 8, 16, ... ⁇ , the order of adding the intra prediction modes associated with the five neighbor blocks to the MPM candidate list is set to be L-A-AL-BL-AR; otherwise, i.e., when the ratio is not the predefined value, the default order is set to be L-A-AR-BL-AL.
  • two or more predefined values may be chosen for code blocks having different width-height ratios.
  • the width-height ratio of the current block is a first predefined value selected from the group consisting of ⁇ ..., 1/16, 1/8, 1/4, 1/2, 1, 2, 4, 8, 16, ... ⁇
  • the order of adding the intra prediction modes associated with the five neighbor blocks to the MPM candidate list is set to be L-A-AL-BL-AR
  • the width-height ratio of the current block is a second predefined value selected from the group consisting of ⁇ ..., 1/16, 1/8, 1/4, 1/2, 1, 2, 4, 8, 16, ... ⁇ , which is different from the first predefined value
  • the order of adding the intra prediction modes associated with the five neighbor blocks to the MPM candidate list is set to be L-A-AL-AR-BL; otherwise, i.e., when the ratio is not any of the predefined values, the default order is set
  • the order of adding the intra prediction modes associated with the five neighbor blocks to the MPM candidate list depends on the area of the current block. For example, when the area of the current block is less than a first predefined threshold value, the order of adding the intra prediction modes associated with the five neighbor blocks to the MPM candidate list is set to be L-A-AL-BL-AR; when the area of the current block is greater than the first predefined threshold value and less than a second predefined threshold value, which is greater than the first predefined threshold value, the order of adding the intra prediction modes associated with the five neighbor blocks to the MPM candidate list is set to be L-A-AR-BL-AL; otherwise, the default order is set to be L-A-AR-BL-AL.
  • the locations and intra prediction modes order within the MPM candidate list depends on the neighbor blocks characteristics.
  • the characteristics can be neighbor blocks intra prediction mode (e.g., the frequencies of the intra prediction mode associated with the neighbor blocks) , a function of neighbor block size, whether the neighbor block is square or vertically oriented or horizontally oriented, the ratio between height and width, the ratio between the larger and smaller value of height and width, the residual of neighbor blocks, etc.
  • residual of neighbor blocks may be the coded block flag (CBF) of the neighbor blocks, or the number of non-zero coefficients of the neighbor blocks.
  • CBF coded block flag
  • an intra prediction mode at a particular location within the MPM candidate list belongs to at least one particular type (e.g., planar, DC, horizontal or vertical)
  • the intra prediction mode is shifted forward or back in the list by one or multiple positions.
  • the intra prediction mode is shifted forward or back in the list by one or multiple positions.
  • a neighbor block has a similar shape as the current block (e.g., as defined by the width-height ratio)
  • the corresponding intra prediction mode is shifted forward or back in the list by one or multiple positions.
  • the intra prediction modes of the neighbor blocks are added to the MPM candidate list based on the size order of the neighbor blocks. When two or more neighbor blocks have the same size, their corresponding intra prediction modes are added to the list according to the following default order, L-A-AR-BL-AL. In some implementations, the order of adding intra prediction modes of the neighbor blocks to the MPM candidate list is based on their respective frequencies from high to low. For example, a first intra predict mode that are associated with two or more neighbor blocks will appear ahead of a second intra predict mode that is associated with one neighbor block in the MPM candidate list. When two or more intra prediction modes have the same frequency, they are added to the list according to the following default order, L-A-AR-BL-AL. Note that this approach works when there are more than five neighbor blocks. If the number of the neighbor blocks are less than five, and at least one neighbor block cannot be acquired from at least one location, the at least one neighbor block can be ignored in process of generating the MPM candidate list.
  • the inter-block characteristics may be used for adjusting the corresponding position of the intra prediction mode associated with the neighbor block.
  • the correlations may be related to the length of a portion of a side shared by the current block and a neighbor block or a ratio of the shared portion vs the entire side. For example, if a first neighbor block has a longer shared side portion or a higher ratio of the shared side portion with the current block than a second neighbor block, the position of an intra prediction mode corresponding to the first neighbor block should be placed ahead of an intra prediction mode corresponding to the second neighbor block in the MPM candidate list.
  • intra prediction modes corresponding to neighbor blocks at certain locations are given a higher priority in the MPM candidate list.
  • the order of adding the intra prediction modes according to one or more implementations above can be further adjusted by other measures. For example, a reason for choosing these most probable modes from the neighbor blocks is that they can be used for predicting pixel values at the current block with smaller residuals, which is often known as rate-distortion cost. Therefore, after the intra prediction modes corresponding to the neighbor blocks are added into the MPM candidate list according to one order as described above, they can be further adjusted according to their respective rate-distortion costs as depicted in FIG. 8D, of which one intra prediction mode (e.g., the one having the lowest cost) is then selected to be the actual intra prediction mode for the current block.
  • one intra prediction mode e.g., the one having the lowest cost
  • the size of the current block is mxn (m and n are both integers, which may or may not be the same) .
  • a template-1 having a pixel size of Lx2n is located above the current block and another template-2 having a pixel size of 2mxL is located on the left side of the current block.
  • certain intra prediction modes in the MPM candidate list and within a certain range e.g., modes between vertical mode 50 and mode 66 (from top right corner towards bottom left corner of the block, vice diagonal) are identified. For each of them, a prediction calculation is made for pixels in the template-2 using the pixels in the template-1 as reference.
  • the prediction residual (e.g., SAD/SATD/SSE/MSE, etc. ) is calculated for a corresponding intra prediction mode.
  • the intra prediction modes in the MPM candidate list and within the certain range are then re-ordered according to the residuals such that an intra prediction mode having a smaller prediction residual is placed ahead another intra prediction mode having a higher prediction residual in the MPM candidate list.
  • the same approach can be applied in a reverse order using the pixel values in the template-2 as reference for predicting the template-1 using intra prediction modes between mode 2 (from bottom left corner towards top right corner of the block) and horizontal mode 18.
  • this approach can be further generalized even if there is no initial order of intra prediction modes in the MPM candidate list. Instead, when the template-1 is used for predicting the template-2, all the modes between vertical mode 50 and mode 66 (from top right corner towards bottom left corner of the block) are tested for prediction residuals as described above. Based on the prediction results, a subset of modes (e.g., N being an integer) within the range that have prediction residuals less than a predefined threshold value are chosen to be added to the MPM candidate list. Similarly, this approach can be used reversely for testing intra prediction modes between mode 2 (from bottom left corner towards top right corner of the block) and horizontal mode 18. Actually these different approaches can be combined to generate a list of intra prediction modes in the MPM candidate list.
  • N being an integer
  • planar and DC modes can be inserted into one or more predefined locations in the MPM candidate list as long as there is no duplicate of any intra prediction mode in the list, angle or non-angle.
  • the video coder may only add a certain number (K) of neighbor-based intra prediction modes to the MPM candidate list of size N. For example, although M neighbor locations may be considered, but only K (K ⁇ M) number of neighbor-based intra prediction modes may be added to certain locations in the MPM candidate list according to a certain order. Once the number of added neighbor modes has reached K modes, the video coder may stop adding neighbor-based intra prediction modes into the MPM candidate list and reserve space in the MPM candidate list for other types of modes, such as derived intra prediction modes and/or default intra prediction modes.
  • K number of neighbor-based intra prediction modes
  • the video coder may add additional intra prediction modes, e.g., intra prediction modes derived from the intra prediction modes already added to the MPM candidate list and default intra prediction modes, to the list.
  • Derived intra prediction modes are the modes derived from the intra prediction modes that are already added to the MPM candidate list.
  • the derived intra prediction mode can be a mode obtained by adding certain offset to a mode from the MPM candidate list. The offset value can depend on the current or neighbor block characteristics as explained above.
  • the offsets can be applied in the certain order depending on the block characteristics. For example, the first offset is applied to all intra prediction modes already added to the MPM candidate list, then the second offset value is applied to already added modes into MPM candidate list, and so on, as long as only unique derived modes can be added to the MPM candidate list.
  • intra prediction modes from the neighbor blocks and derived modes may not be enough to complete the MPM candidate list.
  • the entire MPM candidate list may be composed from the default intra prediction modes.
  • inclusion of default intra prediction modes may ensure that the MPM candidate list is complete.
  • the default modes can be a subset of all possible intra prediction modes, and those modes can be unique.
  • the intra prediction modes selected for the default modes can be fixed, or be dependent on the current or neighbor block characteristics.
  • certain modes are always added to the MPM candidate list as the default modes, such as planar, DC, vertical mode, horizontal mode, mode 2 (from bottom left corner towards top right corner of the block) and mode 34 (from top left corner towards bottom right corner of the block) as depicted in FIG. 7A.
  • the default modes and the order in which the default modes are added to MPM candidate list can be fixed or dependent on characteristics of the current block and/or on characteristics of the neighbor blocks.
  • the default mode list can be planar, DC, vertical, horizontal, mode 2 (from bottom left corner towards top right corner of the block) and mode 34 (from top left corner towards bottom right corner of the block) .
  • some default modes can be inserted into the list before or after a certain number of neighbor-based intra prediction modes are already included to the MPM candidate list, for example after two neighbor-based intra prediction modes some default intra prediction modes are added.
  • Intra prediction mode classification described above may be applied to the block's intra prediction mode and may be used to signal additional intra prediction related syntax elements. It can be used for any method or syntax element that is applied or signaled after the intra prediction mode is coded, i.e., when intra prediction mode is already known at the video decoder. For every set in the classification, a separate context may be used. Entropy coding can exploit statistical dependences between elements to be coded using the context-based implementations described above.
  • Computer-readable media may include computer-readable storage media, which corresponds to a tangible medium such as data storage media, or communication media including any medium that facilitates transfer of a computer program from one place to another, e.g., according to a communication protocol.
  • Computer-readable media generally may correspond to (1) tangible computer-readable storage media which is non-transitory or (2) a communication medium such as a signal or carrier wave.
  • Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code and/or data structures for implementation of the implementations described in this disclosure.
  • a computer program product may include a computer-readable medium.
  • first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another.
  • a first electrode could be termed a second electrode, and, similarly, a second electrode could be termed a first electrode, without departing from the scope of the implementations.
  • the first electrode and the second electrode are both electrodes, but they are not the same electrode.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Selon l'invention, un dispositif informatique pour coder des données de vidéo est configuré pour coder des données de vidéo. Après l'acquisition d'un bloc courant d'une trame de vidéo, le dispositif informatique sélectionne, à l'intérieur de la trame de vidéo, une pluralité de blocs voisins du bloc courant, chaque bloc voisin étant situé à un emplacement prédéfini par rapport au bloc courant et ayant un mode d'intraprédiction associé et ajoute un ou plusieurs des modes d'intraprédiction associés à la pluralité de blocs voisins à une liste de modes candidats les plus probables pour le bloc courant dans un ordre qui est déterminé en fonction d'au moins une des caractéristiques du bloc courant et de caractéristiques de la pluralité de blocs voisins. Après la détermination d'un mode d'intraprédiction selon la liste de modes candidats les plus probables, le dispositif informatique code le bloc courant en utilisant le mode d'intraprédiction choisi.
PCT/CN2018/107137 2018-09-22 2018-09-22 Construction adaptative de liste de modes candidats les plus probables pour l'encodage et le décodage de données de vidéo WO2020056779A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/107137 WO2020056779A1 (fr) 2018-09-22 2018-09-22 Construction adaptative de liste de modes candidats les plus probables pour l'encodage et le décodage de données de vidéo

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/107137 WO2020056779A1 (fr) 2018-09-22 2018-09-22 Construction adaptative de liste de modes candidats les plus probables pour l'encodage et le décodage de données de vidéo

Publications (1)

Publication Number Publication Date
WO2020056779A1 true WO2020056779A1 (fr) 2020-03-26

Family

ID=69888076

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/107137 WO2020056779A1 (fr) 2018-09-22 2018-09-22 Construction adaptative de liste de modes candidats les plus probables pour l'encodage et le décodage de données de vidéo

Country Status (1)

Country Link
WO (1) WO2020056779A1 (fr)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113473119A (zh) * 2021-05-11 2021-10-01 浙江大华技术股份有限公司 图像/视频编码方法、装置、系统及计算机可读存储介质
WO2021242845A1 (fr) * 2020-05-27 2021-12-02 Tae Meon Bae Prédiction intra
WO2023202602A1 (fr) * 2022-04-19 2023-10-26 Mediatek Inc. Procédé et appareil de construction de liste de modes les plus probables sur la base d'une dérivation de mode intra côté décodeur dans un système de codage vidéo
WO2023234579A1 (fr) * 2022-05-30 2023-12-07 현대자동차주식회사 Procédé et appareil de codage/décodage d'image, et support d'enregistrement dans lequel est stocké un flux binaire

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017196957A1 (fr) * 2016-05-13 2017-11-16 Qualcomm Incorporated Signalisation de modes de prédiction intra en fonction de blocs voisins
WO2018064948A1 (fr) * 2016-10-04 2018-04-12 Mediatek Inc. Procédé et appareil de codage intra de chrominance dans un codage d'image et de vidéo

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017196957A1 (fr) * 2016-05-13 2017-11-16 Qualcomm Incorporated Signalisation de modes de prédiction intra en fonction de blocs voisins
WO2018064948A1 (fr) * 2016-10-04 2018-04-12 Mediatek Inc. Procédé et appareil de codage intra de chrominance dans un codage d'image et de vidéo

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J. CHEN ET AL.: "Algorithm description of Joint Exploration Test Model 2 (JEM2", JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISOIIEC JTC 1/SC 29/WG 11, 2ND MEETING: SAN DIEGO, USA, 20 February 2016 (2016-02-20), XP009510215 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021242845A1 (fr) * 2020-05-27 2021-12-02 Tae Meon Bae Prédiction intra
CN113473119A (zh) * 2021-05-11 2021-10-01 浙江大华技术股份有限公司 图像/视频编码方法、装置、系统及计算机可读存储介质
CN113473119B (zh) * 2021-05-11 2023-05-12 浙江大华技术股份有限公司 图像/视频编码方法、装置、系统及计算机可读存储介质
WO2023202602A1 (fr) * 2022-04-19 2023-10-26 Mediatek Inc. Procédé et appareil de construction de liste de modes les plus probables sur la base d'une dérivation de mode intra côté décodeur dans un système de codage vidéo
WO2023234579A1 (fr) * 2022-05-30 2023-12-07 현대자동차주식회사 Procédé et appareil de codage/décodage d'image, et support d'enregistrement dans lequel est stocké un flux binaire

Similar Documents

Publication Publication Date Title
KR102578959B1 (ko) 인트라 예측 모드들의 이웃 기반의 시그널링
US20220337847A1 (en) Cross component determination of chroma and luma components of video data
US20220030228A1 (en) Methods and apparatus of video coding using improved matrix-based intra prediction coding mode
WO2020056779A1 (fr) Construction adaptative de liste de modes candidats les plus probables pour l'encodage et le décodage de données de vidéo
US20220174301A1 (en) Methods and apparatus of video coding using palette mode
CN114615506B (zh) 视频解码方法、计算设备、存储介质
CN114097244A (zh) 以4:4:4色度格式进行视频编解码的方法和装置
WO2020223496A1 (fr) Procédés et appareil de codage conjoint de résidus de chrominance
US20220086464A1 (en) Methods and apparatus of segment-based video coding using palette mode
CN115209139B (zh) 视频编解码中的预测模式信令
KR20220153091A (ko) 팔레트 모드를 사용한 비디오 코딩 방법 및 장치
CN115004706A (zh) 关于变换和系数信令的方法和装置
JP7401631B2 (ja) パレットモードを用いたビデオコーディングの方法および装置
WO2021062017A1 (fr) Procédés et appareils permettant d'effectuer une analyse de débit-distorsion pour le mode palette
CN118075461A (zh) 一种视频解码的方法、装置和介质

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: 18933884

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: 18933884

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 18933884

Country of ref document: EP

Kind code of ref document: A1