EP2636219A1 - Codage conjoint d'éléments de syntaxe pour codage vidéo - Google Patents

Codage conjoint d'éléments de syntaxe pour codage vidéo

Info

Publication number
EP2636219A1
EP2636219A1 EP11781721.3A EP11781721A EP2636219A1 EP 2636219 A1 EP2636219 A1 EP 2636219A1 EP 11781721 A EP11781721 A EP 11781721A EP 2636219 A1 EP2636219 A1 EP 2636219A1
Authority
EP
European Patent Office
Prior art keywords
component
transform unit
codeword
sub
transform
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
EP11781721.3A
Other languages
German (de)
English (en)
Inventor
Xianglin Wang
Marta Karczewicz
Wei-Jung Chien
Peisong Chen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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
Priority claimed from US13/283,335 external-priority patent/US9172963B2/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of EP2636219A1 publication Critical patent/EP2636219A1/fr
Withdrawn legal-status Critical Current

Links

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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/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

Definitions

  • a computer program product includes a computer-readable medium having stored thereon instructions that, when executed, cause a programmable processor to determine whether a component of a transform unit of a coding unit of video data includes at least one non-zero coefficient based on a codeword for the transform unit, determine whether the transform unit is split into sub-transform units based on the codeword, and decode the transform unit based on the determinations.
  • an apparatus for encoding video data includes a video encoder configured to determine whether a component of a transform unit of a coding unit of video data includes at least one non-zero coefficient, determine whether the transform unit is split into sub-transform units, select a codeword from a variable length code table, wherein the variable length code table provides an indication that the codeword corresponds to the determinations, and provide the codeword for the transform unit.
  • the video encoder may be further configured to send the codeword into a bitstream.
  • FIG. 3 is a block diagram that illustrates an example of a video decoder that may implement techniques for decoding jointly encoded one or more CBFs and a TSF for a TU of a CU of video data.
  • FIG. 4 is a conceptual diagram that illustrates examples of TUs of CUs of video data.
  • FIG. 5B is a conceptual diagram that illustrates an example of a residual quadtree transform data structure that represents partition information for the TU of FIG. 5A.
  • FIG. 5C is a conceptual diagram that illustrates an example of a uniform partition structure for a TU of a CU of video data.
  • FIG. 6 is a flowchart that illustrates an example method for jointly encoding one or more CBFs and a TSF for a TU of a CU of video data.
  • FIG. 7 is a flowchart that illustrates an example method for decoding jointly encoded one or more CBFs and a TSF for a TU of a CU of video data.
  • FIG. 8 is a flowchart that illustrates an example method for jointly encoding a luminance CBF, a chrominance CBF, and a TSF for a TU of a CU of video data.
  • this disclosure describes techniques for coding coded block flag (CBF) and transform split flat (TSF) syntax elements for transform units (TUs) of coding units (CUs) of video data.
  • CBF coded block flag
  • TSF transform split flat
  • TUs transform units
  • a CU generally includes one or more prediction units (PUs) indicating how to form prediction data for the CU.
  • TUs include residual data, that is, pixel-by-pixel differences between original video data and the prediction data, or a transformed version of the residual data i.e., transform coefficients.
  • a frame of video data may be divided into a number of largest CUs (LCUs), which may further be partitioned into sub-CUs.
  • a CU quadtree may describe how an LCU is partitioned into sub-CUs, and how each sub-CU is partitioned into further sub-CUs.
  • a CU that is not partitioned corresponds to a leaf-node of the CU quadtree.
  • Such a CU may be referred to as a leaf-node CU.
  • Each leaf-node CU includes one or more PUs and one or more TUs. Similar to CUs, TUs of a leaf-node CU may be partitioned into sub-TUs according to a TU quadtree.
  • Each node of the TU quadtree may include a TSF syntax element, where the TSF indicates whether the TU corresponding to the node is "split," that is, partitioned into sub-TUs.
  • video data is coded in a YUV color space, rather than an RGB color space.
  • the RGB color space describes values of red, green, and blue components of pixels
  • the YUV color space describes values of luminance (Y) and chrominance (U and V) components of pixels, where U typically represents blue hues of chrominance and V represents red hues of chrominance.
  • the YUV color space is also described as YCbCr, where Cb refers to blue hues and Cr refers to red hues.
  • a TU of a CU typically includes one or more components, where each of the components corresponds to one of the Y, U, or V components of the CU.
  • a TU may include a Y component to represent luminance data, a U component to represent blue hue data, and a V component to represent red hue data.
  • Each node of the TU quadtree may also include one or more CBF syntax elements, where each CBF indicates whether the corresponding component of the TU corresponding to the node is coded.
  • a component of a TU is considered "coded" when it includes at least one non-zero coefficient.
  • a component of a TU is considered coded when it includes at least one coefficient that has an absolute value greater than zero.
  • a CBF for a component of a TU has a value representing whether the component is coded, that is, whether the component includes at least one non-zero coefficient, or, in other words, at least one coefficient with an absolute value greater than zero.
  • the techniques of this disclosure may improve compression efficiency when coding CBF and TSF syntax elements for TUs of CUs of video data used to code the CUs.
  • a CBF or a TSF for a TU of a CU of video data is "coded" when the CBF or the TSF is encoded or decoded, that is, when an encoder or decoder maps values between a jointly coded CBF and TSF and a VLC codeword.
  • empirical testing performed in development of these techniques has demonstrated a correlation between CBFs and TSFs for TUs of CUs of video data.
  • a component of the TU when a TU is split into sub-TUs, it may be probable that a component of the TU is also coded. As another example, when a component of a TU is not coded, it may be probable that the TU is not split into sub-TUs. There may also be a correlation between whether components of a same TU are coded. For example, when one component of the TU is coded, it may be probable that other components of the TU are also coded.
  • Jointly coding correlated syntax elements for a TU of a CU of video data using variable length coding (VLC) techniques may improve compression efficiency. For example, because of the correlation, certain combinations of values of the syntax elements may be more likely than other combinations. As such, when jointly coding the correlated syntax elements using VLC techniques, the combinations that are more likely may be assigned shorter VLC codewords than the other, less likely combinations. In this manner, codewords that correspond to the more likely combinations may comprise fewer bits than codewords that correspond to the less likely combinations. For example, a codeword that corresponds to a most likely combination may comprise only a single bit. As such, application of the techniques of this disclosure may yield a bitstream that more efficiently represents the syntax elements in the most likely cases, than coding the syntax elements individually for the TU, e.g., using a single-bit flag for each syntax element.
  • VLC variable length coding
  • jointly coding one of the correlated syntax elements (e.g., a TSF) for sub-TUs of a TU of a CU of video data based on values of the other correlated syntax element (e.g., a CBF) for the sub-TUs, once again using VLC techniques, may also improve compression efficiency.
  • certain values of one of the correlated syntax elements may be more likely than other values, depending on a value of the other correlated syntax element.
  • certain values of a TSF for the sub-TU may be more likely than other values, depending on a value of a given CBF for the sub-TU.
  • some combinations of values of the TSFs may be more likely than other combinations, depending on values of CBFs for the sub-TUs, e.g., CBFs for luminance (Y) components of the sub-TUs.
  • CBFs for the sub-TUs
  • Y luminance
  • different VLC tables may be selected based on the values of the CBFs, such that the combinations of the values of the TSFs that are more likely given the values of the CBFs may be assigned shorter VLC codewords than other, less likely combinations.
  • certain values of a given CBF for the sub-TU may be more likely than other values, depending on a value of the TSF for the sub-TU.
  • some combinations of values of the CBFs may be more likely than other combinations, depending on values of the TSFs for the sub- TUs.
  • VLC tables may be selected based on the values of the TSFs, such that the combinations of the values of the CBFs that are more likely given the values of the TSFs may be assigned shorter VLC codewords than other, less likely combinations.
  • application of the techniques of this disclosure may yield a bitstream that more efficiently represents the syntax elements for the sub-TUs in the most likely cases, than coding the syntax elements individually for the sub-TUs, e.g., using a single-bit flag for each syntax element.
  • the techniques of this disclosure include jointly coding one or more CBFs and a TSF for a TU of a CU of video data.
  • the CBFs or TSF need not be jointly coded with the remaining CBFs and/or TSF for the TU.
  • the techniques of this disclosure may include coding a CBF representative of both chrominance components of the TU. That is, the techniques of this disclosure include bitwise "OR"ing CBFs for the chrominance components of the TU.
  • the techniques of this disclosure include providing a chrominance CBF, e.g., CBFc, for the TU, where CBF C represents CBFu
  • the CBFc may further be jointly coded with the TSF for the TU.
  • additional information may be provided indicative of whether each individual chrominance component of the TU is coded.
  • the additional information need not be provided.
  • each sub-TU of a TU of a CU of video data may also be a correlation between whether each sub-TU of a TU of a CU of video data is split into further sub-TUs, and whether one or more components of each sub-TU are coded, as previously described.
  • the techniques of this disclosure include jointly coding TSFs for sub-TUs of a TU of a CU of video data.
  • the techniques of this disclosure may include jointly coding the TSFs for the sub-TUs when none of the CBFs for each sub-TU is coded, i.e., values of the CBFs for the sub-TUs are inferred.
  • the TSFs need not be jointly coded with the remaining TSFs for the sub-TUs.
  • the techniques of this disclosure include jointly coding CBFs for a component of each of the sub-TUs.
  • the techniques may include jointly coding CBFs for a Y component of each of the sub-TUs when none of the CBFs for the chrominance components of each sub-TU is coded, i.e., values of the CBFs for the chrominance components of the sub-TUs are inferred, and when a TSF for each of the sub-TUs is also not coded, i.e., values of the TSFs for the sub-TUs are also inferred.
  • the CBFs need not be jointly coded with the remaining CBFs for the sub-TUs.
  • FIG. 1 is a block diagram that illustrates an example of a video encoding and decoding system 10 that may implement techniques for jointly coding one or more CBFs and a TSF for a TU of a CU of video data.
  • system 10 includes a source device 12 that transmits encoded video to a destination device 14 via a communication channel 16.
  • Source device 12 and destination device 14 may comprise any of a wide range of devices.
  • source device 12 and destination device 14 may comprise wireless communication devices, such as wireless handsets, so-called cellular or satellite radiotelephones, or any wireless devices that can communicate video information over a communication channel 16, in which case communication channel 16 is wireless.
  • communication channel 16 may comprise any combination of wireless or wired media suitable for transmission of encoded video data.
  • source device 12 includes a video source 18, video encoder 20, a modulator/demodulator (modem) 22 and a transmitter 24.
  • Destination device 14 includes a receiver 26, a modem 28, a video decoder 30, and a display device 32.
  • video encoder 20 of source device 12 and/or video decoder 30 of destination device 14 may be configured to apply the techniques for jointly coding one or more CBFs and a TSF for a TU of a CU of video data.
  • a source device and a destination device may include other components or arrangements.
  • source device 12 may receive video data from an external video source 18, such as an external camera.
  • destination device 14 may interface with an external display device, rather than including an integrated display device.
  • the illustrated system 10 of FIG. 1 is merely one example.
  • Techniques for jointly coding one or more CBFs and a TSF for a TU of a CU of video data may be performed by any digital video encoding and/or decoding device.
  • the techniques of this disclosure are performed by a video encoding device or a video decoding device, the techniques may also be performed by a video encoder/decoder, typically referred to as a "CODEC.”
  • Source device 12 and destination device 14 are merely examples of such coding devices in which source device 12 generates coded video data for transmission to destination device 14.
  • devices 12, 14 may operate in a substantially symmetrical manner such that each of devices 12, 14 includes video encoding and decoding components.
  • system 10 may support one-way or two-way video transmission between video devices 12, 14, e.g., for video streaming, video playback, video broadcasting, or video telephony.
  • Video source 18 of source device 12 may include a video capture device, such as a video camera, a video archive containing previously captured video, and/or a video feed from a video content provider.
  • video source 18 may generate computer graphics-based data as the source video, or a combination of live video, archived video, and computer-generated video.
  • source device 12 and destination device 14 may form so-called camera phones or video phones.
  • the techniques 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 information may then be modulated by modem 22 according to a communication standard, and transmitted to destination device 14 via transmitter 24.
  • Modem 22 may include various mixers, filters, amplifiers or other components designed for signal modulation.
  • Transmitter 24 may include circuits designed for transmitting data, including amplifiers, filters, and one or more antennas.
  • Video decoder 30 uses this syntax information, as well as other data in the bitstream, to decode the encoded bitstream, and to pass the decoded information to display device 32.
  • Display device 32 displays the decoded video data to a user, and may comprise any of a variety of display devices such as a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or another type of display device.
  • CTR cathode ray tube
  • LCD liquid crystal display
  • plasma display an organic light emitting diode (OLED) display, or another type of display device.
  • OLED organic light emitting diode
  • communication channel 16 may comprise any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines, or any combination of wireless and wired media.
  • Communication channel 16 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.
  • Communication channel 16 generally represents any suitable communication medium, or collection of different communication media, for transmitting video data from source device 12 to destination device 14, including any suitable combination of wired or wireless media.
  • Communication channel 16 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.
  • Video encoder 20 and video decoder 30 may operate according to a video compression standard, such as the ITU-T H.264 standard, alternatively referred to as MPEG-4, Part 10, Advanced Video Coding (AVC).
  • AVC Advanced Video Coding
  • the techniques of this disclosure are not limited to any particular coding standard.
  • Other examples include MPEG-2, ITU-T H.263, and the upcoming High Efficiency Video Coding (HEVC) standard.
  • HEVC High Efficiency Video Coding
  • video encoder 20 and video decoder 30 may each be integrated with an audio encoder and decoder, and may include appropriate MUX-DEMUX units, or other hardware and software, to handle encoding of both audio and video in a common data stream or separate data streams. If applicable, MUX-DEMUX units may conform to the ITU H.223 multiplexer protocol, or other protocols such as the user datagram protocol (UDP).
  • MUX-DEMUX units may conform to the ITU H.223 multiplexer protocol, or other protocols such as the user datagram protocol (UDP).
  • Video encoder 20 and video decoder 30 each may be implemented as any of a variety of suitable encoder and decoder 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
  • 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 camera, computer, mobile device, subscriber device, broadcast device, set-top box, server, or the like.
  • CDEC combined encoder/decoder
  • a video sequence typically includes a series of video frames.
  • a group of pictures generally comprises a series of one or more video frames.
  • a GOP may include syntax data in a header of the GOP, a header of one or more frames of the GOP, or elsewhere, that describes a number of frames included in the GOP.
  • Each frame may include frame syntax data that describes an encoding mode for the respective frame.
  • Video encoder 20 typically operates on video blocks within individual video frames in order to encode the video data.
  • Each video frame may include a plurality of slices, i.e., portions of the video frame.
  • Each slice may include a plurality of video blocks (e.g., LCUs), each of which may be partitioned into smaller blocks, also referred to as sub- blocks (e.g., sub-CUs).
  • a video block may correspond to a macroblock or a partition of a macroblock.
  • a video block may correspond to a CU, or a partition of a CU.
  • LCUs and sub- CUs thereof that is, any CU of a CU quadtree
  • CU sub- CUs thereof
  • video blocks may be partitioned into various "NxN" sub-block sizes, such as 16x16, 8x8, 4x4, 2x2, and so forth.
  • Video encoder 20 may partition each block recursively, that is, partition a 2Nx2N block into four NxN blocks, and partition any or all of the NxN blocks into four (N/2)x(N/2) blocks, and so forth.
  • NxN and N by N may be used interchangeably to refer to the pixel dimensions of the block in terms of vertical and horizontal dimensions, e.g., 16x16 pixels or 16 by 16 pixels.
  • an NxN block generally has N pixels in a vertical direction and N pixels in a horizontal direction, where N represents a nonnegative integer value.
  • the pixels in a block may be arranged in rows and columns.
  • blocks need not necessarily have the same number of pixels in the horizontal direction as in the vertical direction.
  • blocks may comprise NxM pixels, where M is not necessarily equal to N.
  • blocks that are 16 by 16 pixels in size may be referred to as macrob locks, and blocks that are less than 16 by 16 pixels may be referred to as partitions of a 16 by 16 macrob lock.
  • blocks may be defined more generally with respect to their size, for example, as CUs and partitions thereof, each having a varying size, rather than a fixed size.
  • Video blocks may comprise blocks of pixel data in the pixel domain, or blocks of transform coefficients in the transform domain, e.g., following application of a transform, such as a discrete cosine transform (DCT), an integer transform, a wavelet transform, or a conceptually similar transform to residual data for a given video block, wherein the residual data represents pixel differences between video data for the block and predictive data generated for the block.
  • a transform such as a discrete cosine transform (DCT), an integer transform, a wavelet transform, or a conceptually similar transform to residual data for a given video block, wherein the residual data represents pixel differences between video data for the block and predictive data generated for the block.
  • video blocks may comprise blocks of quantized transform coefficients in the transform domain, wherein, following application of a transform to residual data for a given video block, the resulting transform coefficients are also quantized.
  • video encoder 20 partitions a block into sub-blocks according to a block partitioning process.
  • video encoder 20 may be configured to partition a block into sub-blocks when the block includes high-frequency changes or other high amounts of detail.
  • video encoder 20 implements a rate- distortion optimization process that determines whether to partition a block into sub- blocks. Using smaller blocks to code video data may result in better prediction for blocks that include high levels of detail, and may therefore reduce the resulting error (that is, pixel-by-pixel difference between the prediction data and the original video data), represented as residual data.
  • Each block of video data includes a set of data providing coding information for the block.
  • video encoder 20 may be configured to perform a rate-distortion optimization process, in which video encoder 20 attempts to determine an optimal (or acceptable) partitioning scheme that balances the reduction in error (residual data or distortion) with the overhead (bit rate) associated with each of the blocks.
  • video blocks refer to both parent blocks and partitions thereof (i.e., sub-blocks).
  • a slice generally includes a plurality of video blocks (e.g., a set of LCUs), any or all of which may be partitioned into sub-blocks (e.g., sub-CUs) that may be further partitioned in a recursive fashion.
  • Each slice may correspond to an independently decodable unit of video data.
  • frames themselves may correspond to decodable units, or other portions of a frame may be defined as decodable units.
  • coded unit may refer to any independently decodable unit of video data, such as an entire frame, a slice of a frame, a group of pictures (GOP) also referred to as a sequence, or other independently decodable unit defined according to applicable coding techniques.
  • GOP group of pictures
  • HM refers to a block of video data as a CU.
  • a CU may refer to a 2Nx2N pixel image region that serves as a basic unit to which various coding tools are applied for compression.
  • a CU is conceptually similar to a macroblock of H.264/ AVC.
  • Syntax data within a bitstream may define an LCU, which is a largest CU in terms of the number of pixels for a particular unit (e.g., a slice, frame, GOP, or other unit of video data including LCUs).
  • a CU has a similar purpose to a macroblock of H.264, except that a CU does not have a size distinction.
  • any CU may be partitioned, or split into sub-CUs.
  • references in this disclosure to a CU may refer to an LCU of video data, or a sub-CU of an LCU.
  • An LCU may be split into sub-CUs, and each sub-CU may be further split into sub-CUs, and so forth.
  • syntax data for a bitstream may define a maximum number of times an LCU may be split, which may be referred to as a maximum partition level.
  • a bitstream may also define an SCU.
  • This disclosure also uses the term "block" to refer to any of a CU, a prediction unit (PU) of a CU, or a transform unit (TU) of a CU. PUs and TUs are described in greater detail below.
  • An LCU may be associated with a quadtree data structure that indicates how the LCU is partitioned.
  • a quadtree data structure associated with an LCU may be referred to as a CU quadtree.
  • a CU quadtree includes one node per CU of an LCU, where a root node corresponds to the LCU, and other nodes correspond to sub-CUs of the LCU. If a given CU is split into four sub-CUs, the node in the quadtree corresponding to the split CU includes four child nodes, each of which corresponds to one of the sub-CUs.
  • Each node of the quadtree data structure may provide syntax information for the corresponding CU.
  • a node in the quadtree may include a split flag for a corresponding CU, indicating whether the CU is split into four sub-CUs.
  • Syntax information for a given CU may be defined recursively, and may depend on whether the CU is split into sub-CUs.
  • a CU that is not split may include one or more prediction units (PUs).
  • a PU represents all or a portion of the corresponding CU, and includes data for retrieving a reference sample for the PU for purposes of performing prediction for the CU.
  • the PU may include data describing an intra-prediction mode for the PU.
  • the PU may include data defining a motion vector for the PU.
  • the data defining the motion vector may describe, for example, a horizontal component of the motion vector, a vertical component of the motion vector, a resolution for the motion vector (e.g., one-quarter pixel precision or one-eighth pixel precision), a reference frame to which the motion vector points, and/or a reference list (e.g., list 0 or list 1) for the motion vector.
  • Data for the CU defining the one or more PUs of the CU may also describe, for example, partitioning of the CU into the one or more PUs. Partitioning modes may differ between whether the CU is uncoded, intra-prediction mode encoded, or inter-prediction mode encoded.
  • a leaf node CU may also include one or more transform units (TUs).
  • video encoder 20 may calculate one or more residual blocks for the respective portions of the CU corresponding to the one of more PUs.
  • the residual blocks may represent a pixel difference between the video data for the CU and the predicted data for the one or more PUs.
  • a TU represents all or a portion of the residual blocks for the CU, and includes data for transforming and quantizing the corresponding residual block data, where the residual block is represented using residual data.
  • video encoder 20 may transform the residual data into transform coefficients, then quantize, and scan the transform coefficients of the TUs to form a set of quantized transform coefficients.
  • a TU is not necessarily limited to the size of a PU. Thus, TUs may be larger or smaller than corresponding PUs for the same CU. In some examples, the maximum size of a TU may correspond to the size of the corresponding CU.
  • a CU of video data may include each of a luminance component (Y), a first chrominance component (U), and a second chrominance component (V) of the corresponding video data. Accordingly, prediction and transform for a CU, as described above with reference to PUs and TUs, may be performed for each of the Y, U, and V components of a given CU of video data.
  • prediction information e.g., a prediction mode (intra- or inter-prediction) and characteristics thereof (e.g., a specific intra-prediction mode or a motion vector)
  • Y luminance
  • U first chrominance component
  • V second chrominance component
  • coefficients of residual data of the TU may be referred to as coefficients of residual data for Y, U, and V components of the TU. That is, the determined prediction information may be applied to each of the components of the TU to form individual blocks of residual data for each of the components, where the blocks of residual data include coefficients representative of pixel-by-pixel differences. Subsequently, the residual data may be transformed and quantized, forming blocks of quantized transform coefficients for each of the Y, U, and V components of the TU.
  • a leaf-node CU may further include a transform quadtree data structure that defines partitioning of one or more TUs of the CU.
  • a transform quadtree data structure may indicate partition information for TUs of a CU in a substantially similar manner as the CU quadtree described above with reference to an LCU.
  • the transform quadtree data structure may define how a largest TU of the CU is partitioned into sub- TUs.
  • the transform quadtree data structure may be referred to as a "residual quadtree transform" (RQT).
  • a TU of a CU may be partitioned according to a uniform partition structure, which is described in greater detail below with reference to FIG. 5C.
  • the TU may be a largest TU of the CU, or a sub-TU of the largest TU of the CU.
  • a largest TU of a CU may be partitioned into sub-TUs according to both an RQT and a uniform partition structure.
  • the largest TU may be partitioned into sub-TUs according to an RQT, and one or more of the sub-TUs may be partitioned into further sub-TUs according to a uniform partition structure.
  • each sub-TU of a TU partitioned according to the uniform partition structure may include syntax information describing whether a component (e.g., Y, U, or V) of the sub-TU includes at least one non-zero coefficient.
  • this syntax information generally corresponds to a CBF for the sub-TU, which may be referred to simply as a TU.
  • the syntax information may indicate how many sub-TUs result from splitting the TU according to the uniform partition structure, and the size of each sub-TU. For example, this syntax information for the sub-TUs may be included in the TU. .
  • CBF and TSF syntax elements for a TU of a CU of video data may each be represented using a single-bit value, e.g., a single-bit flag, as previously described.
  • a single-bit flag e.g., a single-bit flag
  • all three CBFs corresponding to Y, U, and V components of the TU may be included in a corresponding node of an RQT associated with the TU.
  • only a subset of the CBFs may be included in the node, e.g., when values of one or more of the CBFs can be inferred.
  • only the CBFs for the TU may be included in the corresponding node of the RQT, e.g., when a value of the TSF for the TU can be inferred.
  • a value of a TSF for a TU can be inferred when the TU has a size that is larger than a maximum permitted size for the CU, e.g., a maximum permitted size of transform for the CU.
  • the value of the TSF for the TU may be inferred to indicate that the TU is split into sub- TUs.
  • video encoder 20 may jointly encode CBFs or TSFs for sub-TUs of a given TU of the CU.
  • video decoder 30 may be configured to receive a single value from which video decoder 30 may determine the CBFs or the TSFs for the sub-TUs.
  • the CBFs or TSFs may be included in multiple nodes of an RQT that correspond to the sub-TUs.
  • the corresponding bit value in the flag pattern may be set to indicate the inference (e.g., "0").
  • the corresponding bit value may be set accordingly (e.g., "1").
  • video encoder 20 may be configured to jointly encode a CBF for a luminance component of the TU, e.g., CBFy, a CBF for both chrominance components of the TU, e.g., CBF C as previously described, and a TSF for the TU.
  • a CBF for a luminance component of the TU e.g., CBFy
  • a CBF for both chrominance components of the TU e.g., CBF C as previously described
  • TSF for the TU.
  • video encoder 20 may be further configured to determine whether the second chrominance component includes at least one non-zero coefficient.
  • CBFs or TSFs for sub-TUs of the TU may be jointly coded.
  • video encoder 20 may be further configured to select a second, different codeword representative of whether the sub-TUs are split into further sub-TUs, and provide the second codeword for the sub- TUs.
  • video encoder 20 may select the second codeword such that it represents whether components of the sub-TUs corresponding to the component of the TU include at least one non-zero coefficient, and provide the second codeword for the sub-TUs.
  • video encoder 20 may be further configured to send the second codeword into a bitstream.
  • video encoder 20 may encode the CU to include the CBFs and the TSF for the TU, and/or the CBFs or the TSFs for the sub-TUs, using the respective VLC codewords. Because using the VLC techniques described above may, in the average case, result in the codewords comprising fewer bits than individually encoded CBFs and TSFs represented by the codewords, there may be a relative bit savings for a coded bitstream including the codewords when using the techniques of this disclosure.
  • video decoder 30 may be configured to determine whether a component of a TU of a CU of video data includes at least one non-zero coefficient based on a codeword for the TU, determine whether the TU is split into sub-TUs based on the codeword, and decode the TU based on the determinations.
  • Video decoder 30 may use the decoding context to select the VLC table.
  • video decoder 30 may select a same VLC table regardless of which CBF is coded and which CBF is inferred.
  • the VLC table may include a mapping of codewords to CBF and TSF values.
  • video decoder 30 may select a different VLC table than when the TSF is coded along with the one or more CBFs.
  • video decoder 30 may select a different VLC table depending on a value of the inferred TSF.
  • the VLC table may include a mapping of codewords to CBF values.
  • video decoder 30 may determine whether one or more components of the TU include at least one non-zero coefficient, i.e., are coded, and whether the TU is split into sub-TUs, based on the codeword. Moreover, video decoder 30 may update the mapping between the codewords and the CBF and TSF values within the VLC table based on the above determinations to reflect which determinations are more or less likely to occur for the decoding context, e.g., to coordinate the mapping within the VLC table with a mapping in a corresponding VLC table used by video encoder 20 to jointly encode the one or more CBFs and the TSF for the TU.
  • video decoder 30 may be configured to decode individually encoded CBFs for the chrominance components of the TU. According to other examples, video decoder 30 may be configured to decode jointly encoded CBFs for the chrominance components of the TU in a similar manner as described above with reference to decoding jointly encoded one or more CBFs and a TSF for a TU of a CU of video data.
  • Video decoder 30 may use the second decoding context to select the second VLC table.
  • the second VLC table may include a mapping of codewords to CBFu and CBF V values.
  • video decoder 30 may determine whether each of the chrominance components of the TU includes at least one non-zero coefficient, i.e., is coded, based on the second codeword.
  • CBFs or TSFs for sub-TUs of the TU may be jointly coded.
  • video decoder 30 may be configured to determine whether the sub-TUs are split into further sub-TUs based on a second, different codeword for the sub-TUs.
  • video decoder 30 may be configured to determine whether a component of the sub-TUs corresponding to the component of the TU includes at least one non-zero coefficient based on the second codeword for the sub-TUs.
  • video decoder 30 may decode the CU using the one or more CBFs and the TSF for the TU, and/or the CBFs or the TSFs for the sub-TUs, determined using the one or more codewords.
  • VLC techniques described above may, in the average case, result in the one or more codewords comprising fewer bits than individually coded CBFs and TSFs represented by the codewords, there may be a relative bit savings for a coded bitstream including the codewords when using the techniques of this disclosure.
  • destination device 14 represents an example of an apparatus for decoding video data, including a video decoder configured to determine whether a component of a TU of a CU of video data includes at least one non-zero coefficient based on a codeword for the TU, determine whether the TU is split into sub-TUs based on the codeword, and decode the TU based on the determinations.
  • a video decoder configured to determine whether a component of a TU of a CU of video data includes at least one non-zero coefficient based on a codeword for the TU, determine whether the TU is split into sub-TUs based on the codeword, and decode the TU based on the determinations.
  • video encoder 20 receives a video frame or slice to be coded.
  • the frame or slice may be divided into multiple video blocks (e.g., LCUs).
  • Motion estimation unit 42 and motion compensation unit 44 may perform inter- predictive coding of a given received video block relative to one or more blocks in one or more reference frames to provide temporal compression.
  • Intra prediction unit 46 may perform intra-predictive coding of a given received video block relative to one or more neighboring blocks in the same frame or slice as the block to be coded to provide spatially-based prediction values for encoding the block.
  • Mode select unit 40 may select one of the coding modes, intra or inter, e.g., based on error results and based on a frame or slice type for the frame or slice including the given received block being coded, and provide the resulting intra- or inter-coded block to summer 50 to generate residual block data and to summer 62 to reconstruct the encoded block for use in a reference frame or reference slice.
  • intra- prediction involves predicting a current block relative to neighboring, previously coded blocks
  • inter-prediction involves motion estimation and motion compensation to temporally predict the current block.
  • Motion estimation unit 42 and motion compensation unit 44 represent the inter- prediction elements of video encoder 20. Motion estimation unit 42 and motion compensation unit 44 may be highly integrated, but are illustrated separately for conceptual purposes. Motion estimation is the process of generating motion vectors, which estimate motion for video blocks.
  • a motion vector for example, may indicate the displacement of a predictive block within a predictive reference frame (or other coded unit) relative to the current block being coded within the current frame (or other coded unit).
  • a predictive block is a block that is found to closely match the 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.
  • a motion vector may describe motion of a CU, though in some cases (e.g., when a CU is coded using merge mode), the CU may inherit motion information from another CU.
  • Motion compensation may involve fetching or generating the predictive block based on the motion vector determined by motion estimation.
  • motion estimation unit 42 and motion compensation unit 44 may be functionally integrated, in some examples.
  • Motion estimation unit 42 may calculate a motion vector for a video block of an inter-coded frame by comparing the video block to video blocks of a reference frame in reference frame store 64.
  • Motion compensation unit 44 may also interpolate sub-integer pixels of the reference frame, e.g., an I-frame or a P-frame, for the purposes of this comparison.
  • the ITU H.264 standard describes two lists: list 0, which includes reference frames having a display order earlier than a current frame being encoded, and list 1, which includes reference frames having a display order later than the current frame being encoded. Therefore, data stored in reference frame store 64 may be organized according to these lists.
  • Motion estimation unit 42 may compare blocks of one or more reference frames from reference frame store 64 to a block to be encoded of a current frame, e.g., a P- frame or a B-frame.
  • a motion vector calculated by motion estimation unit 42 may refer to a sub-integer pixel location of a reference frame.
  • Motion estimation unit 42 and/or motion compensation unit 44 may also be configured to calculate values for sub-integer pixel positions of reference frames stored in reference frame store 64 if no values for sub-integer pixel positions are stored in reference frame store 64.
  • Motion estimation unit 42 may send the calculated motion vector to entropy encoding unit 56 and motion compensation unit 44.
  • the reference frame block identified by a motion vector may be referred to as an inter-predictive block, or, more generally, a predictive block.
  • Motion compensation unit 44 may calculate prediction data based on the predictive block.
  • Intra-prediction unit 46 may intra-predict a current block, as an alternative to the inter-prediction performed by motion estimation unit 42 and motion compensation unit 44, as described above. In particular, intra-prediction unit 46 may determine an intra- prediction mode to use to encode a current block. In some examples, intra-prediction unit 46 may encode a current block using various intra-prediction modes, e.g., during separate encoding passes, and intra-prediction unit 46 (or mode select unit 40, in some examples) may select an appropriate intra-prediction mode to use from the tested modes.
  • intra-prediction unit 46 may calculate rate-distortion values using a rate-distortion analysis for the various tested intra-prediction modes, and select the intra-prediction mode having the best rate-distortion characteristics among the tested modes.
  • Rate-distortion analysis generally determines an amount of distortion (or error) between an encoded block and an original, unencoded block that was 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 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 value for the current block.
  • mode select unit 40 in conjunction with transform unit 52, and/or other units or components of video encoder 20, may determine TSFs for one or more TUs of an inter-prediction encoded or an intra-prediction encoded CU.
  • the TSFs representative of partition information for the one or more TUs as described above, may be determined as part of determining partition information for one or more PUs of the CU.
  • TU partition information for the CU may depend on PU partition information for the CU.
  • mode select unit 40 in conjunction with transform unit 52, may determine whether the one or more TUs of the CU are each split into sub-TUs as part of generating prediction data for the CU.
  • entropy encoding unit 56 may determine CBFs for the one or more TUs. For example, entropy encoding unit 56 may determine whether a component of each of the one or more TUs includes at least one non-zero coefficient, i.e., is coded, as part of generating syntax information used to encode the CU. In still other examples, other units or components of video encoder 20 may determine the CBFs and the TSFs for the one or more TUs of the CU.
  • video encoder 20 may perform a rate-distortion optimization process to determine appropriate CU, PU, and TU partitioning schemes, and encode the CU using the determined partitioning schemes. Video encoder 20 may also determine values for the CBFs and the TSFs for the one or more TUs of the CU, in some examples. Mode select unit 40, in conjunction with transform unit 52, may provide the TSFs to entropy encoding unit 56, which may also generate the CBFs.
  • entropy encoding unit 56 may jointly encode one or more CBFs and a TSF for a TU of the CU. Also in accordance with the techniques of this disclosure, entropy encoding unit 56 may jointly encode CBFs or TSFs for sub-TUs of a TU of the CU. [0123] After predicting a current block, e.g., using intra-prediction or inter-prediction, video encoder 20 may form a residual video block by subtracting the prediction data calculated by motion compensation unit 44 or intra-prediction unit 46 from the original video block being coded. Summer 50 represents the component or components that may perform this subtraction operation.
  • Transform unit 52 may apply a transform, such as a discrete cosine transform (DCT) or a conceptually similar transform, to the residual block, producing a video block comprising residual transform coefficient values.
  • Transform unit 52 may perform other transforms, such as those defined by the H.264 standard or used in HEVC, which are conceptually similar to DCT. Wavelet transforms, integer transforms, sub-band transforms, Karhunen-Loeve Transforms (KLTs), directional transforms, or other types of transforms could also be used.
  • transform unit 52 may apply the transform to the residual block, producing a block of residual transform coefficients.
  • the transform may convert the residual information from a pixel domain to a transform domain, such as a frequency domain.
  • Quantization unit 54 may quantize the residual 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.
  • entropy encoding unit 56 or another unit of video encoder 20 may be configured to perform other coding functions, in addition to entropy coding as described above.
  • entropy encoding unit 56 may be configured to determine CBP values for blocks of video data and partitions thereof.
  • entropy encoding unit 56 may perform run length coding of the coefficients in a block.
  • entropy encoding unit 56 may apply a zig-zag scan or other scan pattern to scan the transform coefficients in a block and encode runs of zeros for further compression.
  • Entropy encoding unit 56 also may construct header information with appropriate syntax elements for transmission in the encoded video bitstream. According to some coding standards, such as HEVC, such syntax elements may include one or more CBFs and a TSF for a TU of a CU of video data, e.g., represented using an RQT, as previously described.
  • one or more CBFs and a TSF for a TU of a CU of video data may be jointly coded.
  • entropy encoding unit 56 may encode blocks of video data (e.g., one or more CUs). Entropy encoding unit 56 may be configured to determine whether a component of a TU of a CU of video data includes at least one non-zero coefficient, determine whether the TU is split into sub-TUs, select a codeword from a VLC table, wherein the VLC table provides an indication that the codeword corresponds to the determinations, and provide the codeword for the TU. In this example, entropy encoding unit 56 may be further configured to send the codeword into a bitstream.
  • Entropy encoding unit 56 may be further configured to determine an encoding context for the TU used to select the particular VLC table.
  • the context may include various characteristics of the TU, e.g., one or more of the following: a prediction mode for a PU corresponding to the TU, a partition level for the TU, and a number of components of the TU to be represented by the codeword.
  • Entropy encoding unit 56 may use the encoding context to select the VLC table.
  • entropy encoding unit 56 may select a same VLC table regardless of which CBF is coded and which CBF is inferred.
  • the VLC table may include a mapping of codewords to CBF and TSF values.
  • entropy encoding unit 56 may select a different VLC table than when the TSF is coded along with the one or more CBFs. Furthermore, entropy encoding unit 56 may select a different VLC table depending on a value of the inferred TSF. In these examples, the VLC table may include a mapping of codewords to CBF values.
  • Entropy encoding unit 56 may further select the codeword that corresponds to the one or more CBFs and the TSF for the TU from the VLC table. Finally, entropy encoding unit 56 may provide the codeword for the TU. Once again, in this example, entropy encoding unit 56 may be further configured to send the codeword into a bitstream.
  • entropy encoding unit 56 may update the mapping of the codewords to the CBF and TSF values based on the above determinations to reflect which determinations are more or less likely to occur for the encoding context. For example, entropy encoding unit 56 may keep track of how often each combination of CBF and TSF values occurs for the encoding context, and set codewords associated with each combination such that the codewords have lengths that are inversely proportional to the likelihood of the corresponding combinations.
  • entropy encoding unit 56 may be configured to jointly encode a CBF for a luminance component of the TU, a CBF for both chrominance components of the TU, e.g., CBFc as previously described, and a TSF for the TU.
  • entropy encoding unit 56 may be further configured to determine whether the second chrominance component includes at least one non-zero coefficient.
  • entropy encoding unit 56 may be configured to select the codeword such that the VLC table provides an indication that the codeword represents whether at least one of the first chrominance component and the second chrominance component includes at least one non-zero coefficient, i.e., represents the CBFc for the TU.
  • entropy encoding unit 56 may be further configured to encode additional information indicative of whether each individual chrominance component includes at least one non-zero coefficient. In some examples, however, when the value of one of the two CBFs for the chrominance components can be inferred, entropy encoding unit 56 may be configured to not encode the additional information.
  • entropy encoding unit 56 may be configured to encode the CBFs for the chrominance components of the TU individually. According to other examples, entropy encoding unit 56 may be configured to jointly encode the CBFs for the chrominance components of the TU in a similar manner as described above with reference to jointly encoding one or more CBFs and a TSF for a TU of a CU of video data.
  • entropy encoding unit 56 may be further configured to select a second, different codeword from a second, different VLC table, wherein the second VLC table provides an indication that the second codeword represents whether the first chrominance component includes at least one non-zero coefficient, and whether the second chrominance component includes at least one nonzero coefficient.
  • Entropy encoding unit 56 may be further configured to provide the second codeword for the TU.
  • entropy encoding unit 56 may be further configured to send the second codeword into a bitstream.
  • entropy encoding unit 56 may be configured to determine a second, different encoding context for the TU used to select the second VLC table.
  • the context may include one or more of the following: a partition level for the CU, a partition level for the TU, a prediction mode for a PU corresponding to the TU, and CBF values corresponding to first chrominance components and second chrominance components of neighboring TUs of the TU.
  • the neighboring TUs may be other TUs of the CU for which CBFs and TSFs were previously jointly encoded in the same manner as described herein.
  • entropy encoding unit 56 may use a same encoding context for selecting both the first VLC table and the second VLC table, in which case the first and second encoding contexts discussed above may comprise the same context.
  • entropy encoding unit 56 may use the second encoding context to select the second VLC table.
  • the second VLC table may include a mapping of codewords to CBFu and CBF V values.
  • Entropy encoding unit 56 may further select the second codeword that corresponds to the chrominance CBFs, i.e., the CBFu and CBFy, for the TU from the second VLC table.
  • entropy encoding unit 56 may provide the second codeword for the TU.
  • entropy encoding unit 56 may be further configured to send the second codeword into a bitstream.
  • entropy encoding unit 56 may update the mapping of the codewords to the CBFu and CBF V values based on the above determinations to reflect which determinations are more or less likely to occur for the second encoding context. For example, entropy encoding unit 56 may keep track of how often each combination of CBFu and CBFy values occurs for the second encoding context, and set codewords associated with each combination such that the codewords have lengths that are inversely proportional to the likelihood of the corresponding combinations.
  • CBFs or TSFs for sub-TUs of the TU may be jointly coded.
  • entropy encoding unit 56 may be further configured to select a second, different codeword representative of whether the sub-TUs are split into further sub-TUs, and provide the second codeword for the sub-TUs.
  • entropy encoding unit 56 may select the second codeword such that it represents whether components of the sub-TUs corresponding to the component of the TU include at least one non-zero coefficient, i.e., are coded, and provide the second codeword for the sub-TUs.
  • entropy encoding unit 56 may be further configured to send the second codeword into a bitstream.
  • the second codeword may also comprise a VLC codeword.
  • the second codeword may be selected from a second, different VLC table using a second, different encoding context.
  • the second encoding context may include values of the CBFs for the sub- TUs, e.g., CBFs corresponding to the Y components of the sub-TUs.
  • the second encoding context may include values of the TSFs for the sub-TUs.
  • Tables 1-5 illustrate examples of VLC tables that may be used in accordance with the techniques of this disclosure.
  • the VLC table of Table 1 includes a mapping of CBF and TSF values for a TU of a CU of video data (shown in columns "CBFs and TSF for a TU of a CU"), to VLC codewords (shown in column "Codeword”) used to represent the corresponding CBF and TSF values.
  • the VLC table of Table 2 includes a mapping of CBF Y , CBFc, and TSF values for a TU of a CU of video data (shown in columns "CBF Y , CBFc, and TSF for a TU of a CU"), to VLC codewords (shown in column "Codeword") used to represent the corresponding CBF Y , CBF C , and TSF values.
  • the VLC table of Table 3 includes a mapping of CBFu and CBFy values for a TU of a CU of video data (shown in columns "CBFu and CBF V for a TU of a CU"), to VLC codewords (shown in column "Codeword”) used to represent the corresponding CBFu and CBF V values.
  • VLC tables of Table 4 and Table 5 include mappings of CBF and TSF values, respectively, for four sub-TUs of a TU of a CU (shown in columns "CBFs for sub-TUs of a TU of a CU” and “TSFs for sub-TUs of a TU of a CU"), to VLC codewords (shown in respective columns "Codeword”) also used to represent the corresponding CBF or TSF values.
  • each of Table 1, Table 2, Table 4, and Table 5 includes only an excerpt from, or a subset of, a full VLC table.
  • a full VLC table for each of Table 1 and Table 5 would ordinarily include up to 16 different entries of CBF and/or TSF value combinations mapped to a corresponding number of different VLC codewords to represent all possible CBF and/or TSF value combinations for the TU, or the sub-TUs.
  • a full VLC table of Table 2 would ordinarily include up to 8 different entries of CBF and TSF value combinations mapped to a corresponding number of different VLC codewords, also to represent all possible CBF and TSF value combinations for the TU.
  • a full VLC table of Table 4 would ordinarily include up to 15 different entries of CBF value combinations mapped to a corresponding number of different VLC codewords, to represent all possible CBF value combinations for the sub-TUs.
  • the CBF value combination corresponding to all four CBFs, e.g., for a component of each of the four sub-TUs, being zero is excluded from Table 4 because this combination can be indicated by a CBF for a corresponding component of the parent TU of the sub-TUs.
  • each codeword represents three CBFs and one TSF for a TU of a CU of video data.
  • more or fewer CBFs and TSFs may be represented (e.g., a subset of CBF Y , CBF u, and CBF v, or more than one TSF for a TU of a CU).
  • the number of codewords in Table 1 may vary based on the number of CBFs and TSFs which are jointly encoded. In this manner, Table 1 may have more or fewer entries than shown in this example.
  • a CBF value of "1" indicates that the corresponding component includes at least one non-zero coefficient, i.e., is coded, and a value of "0" indicates that the component does not include any non-zero coefficients, i.e., is not coded.
  • a TSF value of "1” indicates that the TU is split into sub-TUs, and a value of "0" indicates that the TU is not split.
  • different values may be used in Table 1 to indicate whether a component of a TU is coded, and whether the TU is split into sub-TUs.
  • mode select unit 40 in conjunction with transform unit 52, may provide a TSF for the TU having a value of "1" to entropy encoding unit 56.
  • entropy encoding unit 56 may determine CBFs for the TU, each CBF also having a value of "1,” as part of generating syntax information used to encode the CU.
  • Table 1 is further premised on the assumption that the case where all components of the TU are coded (that is, include at least one non-zero coefficient), and where the TU is split into sub-TUs, is the most likely case for the TU given the encoding context (i.e., the context that was used to select the VLC table depicted in Table 1). Accordingly, in this example, entropy encoding unit 56 would select the codeword "1" to represent the one or more CBFs and the TSF for the TU.
  • each codeword represents a CBF Y , a CBFc, and a TSF for a TU of a CU of video data.
  • more or fewer CBFs and TSFs may be represented (e.g., only a CBF C and a TSF for a TU of a CU).
  • the number of codewords in Table 2 may once again vary based on the number of CBFs and TSFs which are jointly encoded, and Table 2 may have more or fewer entries than shown in this example.
  • a CBF value of "1” indicates that the corresponding component is coded, and a value of "0" indicates that the component is not coded.
  • a CBFc value of "1” indicates that at least one of the chrominance components of the TU is coded, and a value of "0” indicates that the chrominance components are not coded.
  • a TSF value of "1” indicates that the TU is split into sub-TUs, and a value of "0” indicates that the TU is not split.
  • different values may be used in Table 2 to indicate whether a component of a TU is coded, and whether the TU is split into the sub-TUs.
  • the luminance component i.e., the Y component
  • at least one of the chrominance components i.e., the U and V components
  • the TU is split into sub-TUs.
  • mode select unit 40 in conjunction with transform unit 52, may provide a TSF for the TU having a value of "1" to entropy encoding unit 56.
  • entropy encoding unit 56 may determine a CBF Y and a CBFc for the TU, each CBF also having a value of "1," as part of generating syntax information used to encode the CU.
  • Table 2 is further premised on the assumption that the case where the luminance component and at least one of the chrominance components of the TU include at least one non-zero coefficient, and where the TU is split into sub-TUs, is the most likely case for the TU given the "first" encoding context (i.e., the encoding context that was used to select the VLC table depicted in Table 2).
  • entropy encoding unit 56 would select the codeword "1" to represent the CBF Y , the CBFc, and the TSF for the TU, which may be referred to as a first codeword in this example.
  • entropy encoding unit 56 may be further configured to encode additional information indicative of whether each individual chrominance component includes at least one non-zero coefficient, as illustrated in the example of Table 3 described in greater detail below. In some examples, however, as previously described, when the value of one of the two CBFs for the chrominance components can be inferred, entropy encoding unit 56 may be configured to not encode the additional information.
  • entropy encoding unit 56 may be configured to jointly encode the CBFs for the chrominance components of the TU.
  • each codeword represents a CBFu and a CBFy for a TU of a CU of video data.
  • a CBF value of "1” indicates that the corresponding component includes at least one nonzero coefficient
  • a value of "0" indicates that the component does not include any non-zero coefficients.
  • different values may be used in Table 3 to indicate whether a chrominance component of a TU includes at least one non-zero coefficient.
  • both of the chrominance components (i.e., the U and V components) of the TU include at least one non-zero coefficient.
  • entropy encoding unit 56 may determine a CBFu and a CBFy for the TU, each CBF having a value of "1," as part of generating syntax information used to encode the CU.
  • Table 3 is further premised on the assumption that the case where both chrominance components of the TU include at least one non-zero coefficient is the most likely case for the TU given the "second" encoding context (i.e., the encoding context that was used to select the VLC table depicted in Table 3). Accordingly, in this example, entropy encoding unit 56 would select the codeword "1" to represent the CBFu and the CBF V for the TU, which may be referred to as a second codeword in this example.
  • a component e.g., Y, U, or V
  • each of the sub-TUs includes at least one non-zero coefficient, or that the sub-TUs are each split into further sub-TUs.
  • mode select unit 40 in conjunction with transform unit 52, may provide the TSFs for the sub-TUs, each having a value of "1," to entropy encoding unit 56.
  • entropy encoding unit 56 may determine the CBFs for the sub-TUs corresponding to the component, each CBF also having a value of "1,” as part of generating syntax information used to encode the CU.
  • entropy encoding unit 56 may select the shortest codeword from Table 4.
  • entropy encoding unit 56 may also select the shortest codeword from Table 5. In any case, in this example, entropy encoding unit 56 would select the codeword "1" to represent the CBFs or the TSFs for the sub-TUs.
  • video decoder 30 may ultimately receive a codeword "1," corresponding to any one of the codewords selected by video encoder 20 in the examples of Tables 1- 5. Accordingly, video decoder 30 may decode the codeword using a substantially similar VLC table as the VLC table depicted in Table 1 or Table 2, and, in some cases, Table 3, to determine the one or more CBFs and the TSF for the TU. Similarly, video decoder 30 may decode the codeword using a substantially similar VLC table as the VLC table depicted in Table 4 or Table 5 to determine the CBFs or the TSFs, respectively, for the sub-TUs of the TU of the CU.
  • video decoder 30 may determine that all components (i.e., Y, U, and V components) of the TU include at least one non-zero coefficient, and that the TU is split into sub-TUs based on the codeword.
  • video decoder 30 may determine that the luminance component (i.e., the Y component) and at least one of the chrominance components (i.e., the U and V components) of the TU include at least one non-zero coefficient, and that the TU is split into sub-TUs, or that both of the chrominance components include at least one non-zero coefficient, respectively, based on the codeword.
  • video decoder 30 may determine that a component (e.g., Y, U, or V component) of each of the sub-TUs includes at least one non-zero coefficient based on the codeword. Similarly, using Table 5, video decoder 30 may determine that the sub-TUs are each split into further sub-TUs based on the codeword.
  • a component e.g., Y, U, or V component
  • a bit savings may be achieved, due to the codeword comprising a single bit, rather than two to four bits used to individually indicate the one or more CBFs and/or the TSF for the TU (e.g., the CBF Y , the CBF n , the CBF V , and the TSF, or the CBF n and the CBF V , for the TU), and the CBFs or the TSFs for the sub-TUs, as previously described.
  • the codeword comprising a single bit, rather than two to four bits used to individually indicate the one or more CBFs and/or the TSF for the TU (e.g., the CBF Y , the CBF n , the CBF V , and the TSF, or the CBF n and the CBF V , for the TU), and the CBFs or the TSFs for the sub-TUs, as previously described.
  • Tables 1-5 are merely examples of VLC tables used to encode one or more CBFs and a TSF for a TU of a CU, and CBFs or TSFs for sub- TUs of a TU of a CU.
  • the mappings of the VLC tables in Tables 1-5 are provided as examples of some of many possible mappings that may exist for VLC tables used according to the techniques of this disclosure.
  • the CBF and TSF values corresponding to all components of a TU of a CU including at least one non-zero coefficient, and to the TU being split into sub-TUs are mapped to a shortest codeword in the VLC table.
  • the CBF and TSF values corresponding to a luminance component and at least one of the chrominance components of a TU of a CU including at least one non-zero coefficient, and to the TU being split into sub-TUs are mapped to a shortest codeword in the VLC table.
  • the CBF values corresponding to both chrominance components of the TU including at least one non-zero coefficient are mapped to a shortest codeword in the VLC table.
  • the CBF values corresponding to a component of all sub-TUs of a TU of a CU including at least one non-zero coefficient, and the TSF values corresponding to sub-TUs of a TU of a CU being split into further sub-TUs are mapped to a shortest codeword in the respective VLC table.
  • the particular mapping indicates that the corresponding CBF and/or TSF values are determined to be the most likely values among the possibilities defined by the VLC table for the encoding context.
  • other CBF and TSF values may be determined to be the most likely.
  • CBF values indicating that all components of a TU of a CU do not include any non-zero coefficients, and a TSF value indicating that the TU is not split into sub-TUs may be determined to be the most likely.
  • CBF values indicating that a component of each of the sub-TUs of a TU of a CU does not include any non-zero coefficients, or TSF values indicating that each of sub-TUs of a TU of a CU is not split into further sub-TUs may also be determined to be the most likely.
  • different VLC tables may provide different mappings, based on the encoding context for the TU and the sub-TUs.
  • the corresponding mapping indicating relative likelihoods of different CBF and/or TSF values, may vary, and, for a given VLC table selected, the mapping may be continuously updated based on CBF and/or TSF values for other TUs of the CU, and TUs of one or more previously encoded CUs.
  • multiple encoding contexts determined for the TU, or for the sub-TUs, as described above may correspond to a common VLC table, e.g., any one of Tables 1-5. Accordingly, different encoding contexts may nevertheless result in using a common VLC table for coding one of more CBFs and a TSF for a TU, or CBFs or TSFs for sub-TUs of a TU, which may reduce system complexity and coding resources.
  • Tables 1-5 above utilize unary codewords to represent one or more CBFs and a TSF for a TU of a CU, and CBFs or TSFs for sub-TUs of the TU.
  • other types of variable length codes may be used in other examples, e.g., Exponential-Golomb, or other Huffman codes, or arithmetic codes.
  • certain codewords in Tables 1-5 may have similar bit-lengths, e.g., when probabilities of CBF and/or TSF values corresponding to each codeword are approximately the same.
  • any set of codewords may be used for Tables 1-5, so long as each of the codewords is uniquely decodable (e.g., none of the codewords is a prefix of another codeword in the same table).
  • Video encoder 20 may encode the CU to include the one or more CBFs and the TSF for the TU, and/or the CBFs or the TSFs for the sub-TUs, using the one or more codewords.
  • entropy encoding unit 56 may include the one or more codewords as part of encoded syntax information for the CU, as described above. Because using the VLC coding techniques described above may, in the average case, result in the one or more codewords comprising fewer bits than individually coded CBFs and TSFs represented by the codewords, there may be a relative bit savings for a coded bitstream including the codewords when using the techniques of this disclosure.
  • Inverse quantization unit 58 and inverse transform unit 60 apply inverse quantization and inverse transformation, respectively, to reconstruct the residual block in the pixel domain, e.g., for later use as a reference block.
  • Motion compensation unit 44 may calculate a reference block by adding the residual block to a predictive block of one of the frames of reference frame store 64. Motion compensation unit 44 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 reconstructed video block for storage in reference frame store 64.
  • the reconstructed video block may be used by motion estimation unit 42 and motion compensation unit 44 as a reference block to inter-code a block in a subsequent video frame.
  • video encoder 20 of FIG. 2 represents an example of an apparatus for encoding video data, including a video encoder configured to determine whether a component of a TU of a CU of video data includes at least one non-zero coefficient, determine whether the TU is split into sub-TUs, select a codeword from a VLC table, wherein the VLC table provides an indication that the codeword corresponds to the determinations, and provide the codeword for the TU.
  • FIG. 3 is a block diagram that illustrates an example of a video decoder 30 that may implement techniques for decoding jointly encoded one or more CBFs and a TSF for a TU of a CU of video data.
  • video decoder 30 includes an entropy decoding unit 70, motion compensation unit 72, intra prediction unit 74, inverse quantization unit 76, inverse transformation unit 78, reference frame store 82 and summer 80.
  • Video decoder 30 may, in some examples, perform a decoding pass generally reciprocal to the encoding pass described with respect to video encoder 20 (FIG. 2).
  • Motion compensation unit 72 may generate prediction data based on motion vectors received from entropy decoding unit 70.
  • Intra prediction unit 74 may generate prediction data based on an intra-prediction mode received from entropy decoding unit 70 for a corresponding CU.
  • Video decoder 30 may receive encoded video data (e.g., one or more CUs) encoded by, e.g., video encoder 20.
  • video decoder 30 may receive encoded video data from a storage medium, such as a CD-ROM, Blu-Ray disc, flash drive, hard drive, or other storage medium.
  • a storage medium such as a CD-ROM, Blu-Ray disc, flash drive, hard drive, or other storage medium.
  • one or more CBFs and a TSF for a TU of a CU of video data may be jointly coded.
  • the decoding context may include various characteristics of the TU, e.g., one or more of the following: a prediction mode for a PU corresponding to the TU, a partition level for the TU, and a number of components of the TU represented by the codeword.
  • entropy decoding unit 70 may select a different VLC table than when the TSF is coded along with the one or more CBFs. Furthermore, entropy decoding unit 70 may select a different VLC table depending on a value of the inferred TSF. In these examples, the VLC table may include a mapping of codewords to CBF values.
  • entropy decoding unit 70 may determine whether one or more components of the TU include at least one non-zero coefficient, i.e., are coded, and whether the TU is split into sub-TUs, based on the codeword. Moreover, entropy decoding unit 70 may update the mapping between the codewords and the CBF and TSF values within the VLC table based on the above determinations to reflect which determinations are more or less likely to occur for the decoding context, e.g., to coordinate the mapping within the VLC table with a mapping in a corresponding VLC table used by video encoder 20 to jointly encode the one or more CBFs and the TSF for the TU.
  • entropy decoding unit 70 may be configured to decode individually encoded CBFs for the chrominance components of the TU. According to other examples, entropy decoding unit 70 may be configured to decode jointly encoded CBFs for the chrominance components of the TU in a similar manner as described above with reference to decoding jointly encoded one or more CBFs and a TSF for a TU of a CU of video data.
  • entropy decoding unit 70 may be further configured to, after determining that at least one of the first chrominance component and the second chrominance component includes at least one non-zero coefficient based on the codeword, determine whether the first chrominance component includes at least one non-zero coefficient based on a second, different codeword for the TU. Entropy decoding unit 70 may be further configured to determine whether the second chrominance component includes at least one non-zero coefficient based on the second codeword.
  • entropy decoding unit 70 may be configured to determine a second decoding context for the TU in a manner substantially similar to that used by entropy encoding unit 56, as previously described, to select a second VLC table containing the second codeword.
  • the second decoding context may include one or more of the following: a partition level for the CU, a partition level for the TU, a prediction mode for a PU corresponding to the TU, and CBF values corresponding to first chrominance components and second chrominance components of neighboring TUs of the TU.
  • the codeword received by entropy decoding unit 70 comprises a first codeword for the TU.
  • Table 2 indicates that the codeword corresponds to a luminance component (i.e., the Y component) and at least one of the chrominance components (i.e., the U and V components) of the TU including at least one non-zero coefficient, and the TU being split into sub-TUs.
  • entropy decoding unit 70 may determine that, for a TU of a CU having a decoding context corresponding to Table 2, and for a first codeword received for the TU having the value "1," that the luminance component, and at least one of the chrominance components of the TU include at least one non-zero coefficient, and that the TU is split into sub-TUs.
  • a codeword for sub-TUs of a TU of a CU of video data received by entropy decoding unit 70 comprises "1.”
  • Table 4 indicates that the codeword corresponds to a component (e.g., Y, U, or V component) of each of the sub-TUs including at least one non-zero coefficient
  • Table 5 indicates that the codeword corresponds to each of the sub-TUs being split into further sub-TUs.
  • VLC coding techniques described above may, in the average case, result in the one or more codewords comprising fewer bits than individually coded CBFs and TSFs represented by the codewords, there may be a relative bit savings for a coded bitstream including the codewords when using the techniques of this disclosure.
  • Motion compensation unit 72 uses some of the syntax information for the encoded block to determine sizes of blocks used to encode frame(s) of the encoded video sequence, partition information that describes how each block of a frame or slice of the encoded video sequence is partitioned, modes indicating how each partition is encoded, one or more reference frames (and reference frame lists) for each inter- encoded block or partition, and other information to decode the encoded video sequence.
  • FIG. 4 is a conceptual diagram that illustrates examples of TUs of CUs of video data.
  • current CU 402 of video frame 400 may represent a currently-coded CU.
  • current CU 402 may represent a sub-CU of an LCU of video frame 400, corresponding to a leaf-node in a CU quadtree associated with the LCU, as previously described.
  • Current CU 402 may have any size, e.g., 8x8, 16x16, 32x32, or 64x64 pixels.
  • current CU 402 may include current TU 404, which, in turn, may include each of Y component 410, U component 412, and V component 414.
  • Y component 410 may correspond to a luminance component of current TU 404
  • U component 412 and V component 414 may correspond to a first chrominance component and a second chrominance component of current TU 404, respectively.
  • FIG. 4 also illustrates neighboring CU 406 of current CU 402 of video frame 400.
  • neighboring CU 406 is positioned to the left of current CU 402 in video frame 400.
  • neighboring CU 406, or any other neighboring CU of current CU 402 may be positioned above current CU 402 in video frame 400.
  • neighboring CUs of current CU 402 may be positioned at other locations neighboring current CU 402. As also shown in FIG.
  • FIG. 5 A is a conceptual diagram that illustrates an example of a TU of a CU of video data.
  • TU 500 which may represent a largest TU of a leaf- node CU, may be split into sub-TUs 502, 504, 506, and 508.
  • TU 500 has a size of 2Nx2N pixels.
  • each of sub-TUs 502, 504, 506, and 508 may have a size of NxN pixels.
  • sub-TU 504 may be split into sub- TUs 510, 512, 514, and 516, wherein each of sub-TUs 510, 512, 514, and 516 may have a size of N/2xN/2 pixels.
  • Sub-TUs 510, 512, 514, and 516 are also considered sub-TUs of TU 500.
  • sub-TU 516 may be split into sub-TUs 518, 520, 522, and 524, wherein each of sub-TUs 518, 520, 522, and 524 may have a size of N/4xN/4 pixels, and so forth.
  • TU 500 may be split into sub-TUs, wherein some of the sub-TUs may be split into further sub-TUs. In other words, TU 500 may be split into sub-TUs in a recursive manner.
  • each TU of a CU including a largest TU of the CU and sub-TUs of the largest TU, may be associated with a particular partition level (or "depth"), starting with level 0 corresponding to the root-node TU of the CU, also referred to as the "largest" TU for the CU.
  • TU 500 may correspond to a largest TU of a CU, and may be associated with a partition level 0.
  • FIG. 5B is a conceptual diagram that illustrates an example of an RQT that represents partition information for TU 500 of FIG. 5A.
  • RQT 526 includes a root node 528, which corresponds to TU 500, and is associated with a partition level 0.
  • RQT 526 includes terminal, or "leaf nodes 530, 534, 536, 538, 540, 542, 546, 548, 550, and 552, with no child nodes, and intermediate nodes 532 and 544, each having four child nodes.
  • root node 528 has four child nodes, including three leaf nodes 530, 534, and 536, and one intermediate node 532.
  • nodes 530, 532, 534, and 536 correspond to sub-TUs 502, 504, 506, and 508 of TU 500, respectively, and are each associated with a partition level 1.
  • node 532 Because node 532 is not a leaf node, node 532 includes four child nodes, including three leaf nodes 538, 540, and 542, and one intermediate node 544.
  • nodes 538, 540, 542, and 544 correspond to sub-TUs 510, 512, 514, and 516 of TU 500, respectively, and are each associated with a partition level 2.
  • Intermediate node 544 includes four leaf nodes 546, 548, 550, and 552, which correspond to sub-TUs 518, 520, 522, and 524 of TU 500, respectively, and are each associated with a partition level 3.
  • an RQT for a TU of a CU of video data may include more or fewer nodes and associated partition levels than the example of RQT 526.
  • each node of RQT 526 may include one or more CBFs and a TSF for the corresponding TU.
  • the one or more CBFs and the TSF for the TU may each be represented using a single- bit value, e.g., a single-bit flag.
  • video encoder 20 may jointly encode one or more CBFs and a TSF for a TU of a CU, e.g., TU 500, or sub-TUs of TU 500.
  • video encoder 20 may jointly encode the one or more CBFs and the TSF using a single VLC codeword, and video decoder 30 may receive the single VLC codeword, and decode the codeword to determine the one or more CBFs and the TSF for the TU.
  • video encoder 20 and/or video decoder 30 may jointly code one or more CBFs and a TSF for a TU of a CU of video data. Additionally, video encoder 20 and/or video decoder 30 may jointly code CBFs or TSFs for sub-TUs of a TU of a CU of video data. As described above, these techniques may enable coding CBF and TSF syntax elements for a TU of a CU of video data relatively more efficiently than when individually coding the syntax elements for the TU.
  • video encoder 20 may receive a block of video data (600).
  • the block may correspond to a CU, such as a sub-CU of an LCU, corresponding to a leaf-node in a CU quadtree associated with the LCU, as described above.
  • the CU may include one or more TUs, e.g., including a largest TU of the CU, which may be split into sub-TUs according to an RQT associated with the largest TU, as also described above.
  • the method of FIG. 6 may be applied recursively to any TU of the CU, including the largest TU of the CU, and sub-TUs of the largest TU.
  • Video encoder 20 may further determine whether one or more components of a given TU of the block, or CU, are coded, i.e., include at least one non-zero coefficient (602). For example, entropy encoding unit 56 may make this determination as part of generating syntax information used to encode the CU, as described above, where the results of the determination may correspond to one or more CBFs for the one or more components of the TU. Video encoder 20 may further determine whether the TU is split into sub-TUs (604).
  • entropy encoding unit 56 may output the codeword to the bitstream (614).
  • entropy encoding unit 56 may include the codeword in a node of an RQT corresponding to the TU, such that the codeword comprises a single value that represents the one or more CBFs and the TSF for the TU.
  • the method of FIG. 6 represents an example of a method of encoding video data, including determining whether a component of a TU of a CU of video data includes at least one non-zero coefficient, determining whether the TU is split into sub-TUs, selecting a codeword from a VLC table, wherein the VLC table provides an indication that the codeword corresponds to the determinations, and providing the codeword for the TU.
  • FIG. 7 is a flowchart that illustrates an example method for decoding jointly encoded one or more CBFs and a TSF for a TU of a CU of video data.
  • the techniques of FIG. 7 may generally be performed by any processing unit or processor, whether implemented in hardware, software, firmware, or a combination thereof, and when implemented in software or firmware, corresponding hardware may be provided to execute instructions for the software or firmware.
  • the techniques of FIG. 7 are described with respect to video decoder 30 (FIGS. 1 and 3), although it should be understood that other devices may be configured to perform similar techniques.
  • the steps illustrated in FIG. 7 may be performed in a different order or in parallel, and additional steps may be added and certain steps omitted, without departing from the techniques of this disclosure.
  • the CU may include one or more TUs, e.g., including a largest TU of the CU, which may be split into sub-TUs according to an RQT associated with the largest TU, as also described above.
  • the method of FIG. 7 may be applied recursively to any TU of the CU, including the largest TU of the CU and sub-TUs of the largest TU.
  • the codeword may comprise a VLC codeword.
  • Video decoder 30 may further determine a context for the TU (702).
  • entropy decoding unit 70 may determine the context for the TU in a substantially similar manner as described above with reference to entropy encoding unit 56, based on e.g., one or more of the following: a prediction mode for a PU corresponding to the TU, a partition level for the TU, and a number of components of the TU represented by the codeword.
  • VLC tables of video decoder 30 may be substantially similar to VLC tables of video encoder 20.
  • entropy decoding unit 70 may determine the context for the TU in a substantially similar manner as described above with reference to entropy encoding unit 56.
  • video decoder 30 selecting the VLC table using the context may result in the VLC table including a substantially similar mapping of VLC codewords to CBF and TSF values as that of a VLC table used by video encoder 20 to select the codeword. This similarity among the mappings may enable video decoder 30 to make the above determinations using the codeword and the VLC table.
  • the results of the above determinations may correspond to the one or more CBFs and the TSF for the TU.
  • a CBF value of "1” may indicate that a corresponding component of the TU is coded, and a CBF value of "0" may indicate that the component is not coded.
  • a TSF value of "1” may indicate that the TU is split into the sub-TUs, and a TSF value of "0" may indicate that the TU is not split.
  • the codeword may have a length that is inversely proportional to the likelihood of the CBF and the TSF values, i.e., likelihood of the one or more components of the TU being coded, and the TU being split into the sub-TUs, for the TU for the context.
  • entropy decoding unit 70 may decode the block, or CU, based on the above determinations (710). Additionally, in some examples, entropy decoding unit 70 may update the VLC table based on the above determinations to reflect which determinations are more or less likely to occur (712). For example, entropy decoding unit 70 may update the mapping of the codewords to the CBF and TSF values within the VLC table based on the determined CBF and TSF values, such that values that occur more frequently for the context are mapped to shorter VLC codewords than other, less frequently-occurring values, as previously described. In this manner, video decoder 30 may coordinate the mapping within the VLC table with a mapping within a VLC table used by video encoder 20 to jointly encode the one or more CBFs and the TSF for the TU.
  • the method of FIG. 7 represents an example of a method of decoding video data, including determining whether a component of a TU of a CU of video data includes at least one non-zero coefficient based on a codeword for the TU, determining whether the TU is split into sub-TUs based on the codeword, and decoding the TU based on the determinations.
  • FIG. 8 is a flowchart that illustrates an example method for jointly encoding a luminance CBF, a chrominance CBF, and a TSF for a TU of a CU of video data.
  • the techniques of FIG. 8 may generally be performed by any processing unit or processor, whether implemented in hardware, software, firmware, or a combination thereof, and when implemented in software or firmware, corresponding hardware may be provided to execute instructions for the software or firmware.
  • the techniques of FIG. 8 are described with respect to video encoder 20 (FIGS. 1 and 2), although it should be understood that other devices may be configured to perform similar techniques.
  • the steps illustrated in FIG. 8 may be performed in a different order or in parallel, and additional steps may be added and certain steps omitted, without departing from the techniques of this disclosure.
  • video encoder 20 may receive a block of video data (800).
  • the block may correspond to a CU, such as a sub-CU of an LCU, corresponding to a leaf-node in a CU quadtree associated with the LCU.
  • the CU may include one or more TUs, e.g., including a largest TU of the CU, which may be split into sub-TUs according to an RQT associated with the largest TU.
  • the method of FIG. 8 may be applied recursively to any TU of the CU, including the largest TU of the CU, and sub-TUs of the largest TU.
  • Video encoder 20 may further determine whether a first chrominance component or a second chrominance component of a given TU of the block, or CU, is coded, i.e., includes at least one non-zero coefficient (802).
  • entropy encoding unit 56 may determine whether at least one of the first chrominance component and the second chrominance component of the TU is coded as part of generating syntax information used to encode the CU.
  • Entropy encoding unit 56 may make this determination by bitwise "OR”ing previously determined values of CBFs for the first chrominance component and the second chrominance component of the TU, e.g., corresponding to CBFu and CBF V , where U and V refer to the first chrominance component and the second chrominance component, respectively. In other examples, entropy encoding unit 56 may make this determination using other techniques, e.g., by making the determination directly.
  • the results of this determination may correspond to a chrominance CBF, e.g., CBFc, for the TU, where CBFc may represent CBFu
  • CBFc may represent CBFu
  • video encoder 20 may further determine whether a luminance component of the TU is coded (804).
  • entropy encoding unit 56 may make this determination as part of generating the syntax information used to encode the CU.
  • the results of this determination may correspond to a luminance CBF, e.g., CBFy, for the TU, where Y refers to the luminance component.
  • Video encoder 20 may further determine whether the TU is split into sub-TUs (806). As described above, this determination may be made earlier in the process of encoding the CU, as part of generating prediction data for the CU, e.g., by mode select unit 40, in conjunction with transform unit 52, where the results of the determination may correspond to a TSF for the TU.
  • video encoder 20 may further determine values for the corresponding CBF Y , CBFc, and TSF. For example, a CBF Y value of "1" may indicate that the luminance component of the TU is coded, and a CBF Y value of "0" may indicate that the luminance component is not coded.
  • a CBFc value of "1" may indicate that at least one of the first chrominance component and the second chrominance component of the TU is coded, and a CBFc value of "0" may indicate that the first chrominance component and the second chrominance component are not coded.
  • a TSF value of "1” may indicate that the TU is split into the sub-TUs, and a TSF value of "0” may indicate that the TU is not split.
  • Video encoder 20 may further jointly encode the CBF Y , CBFc, and TSF for the TU.
  • mode select unit 40 and/or transform unit 52 may provide the value for the TSF to entropy encoding unit 56, and entropy encoding unit 56 may determine the values for the CBF Y and the CBFc as part of generating the syntax information used to encode the CU.
  • the entropy encoding unit 56 may determine a first context for the TU (808).
  • the first context for the CU may include, e.g., one or more of the following: a prediction mode for a PU corresponding to the TU, a partition level for the TU, and a number of components of the TU to be represented by the codeword.
  • entropy encoding unit 56 may receive information indicating the prediction mode for the PU corresponding to the TU from mode select unit 40. The information may be generated as part of generating prediction data for the CU. As another example, entropy encoding unit 56 may determine the partition level for the TU from other previously encoded TUs (e.g., a parent TU of the TU in the corresponding RQT) of the CU.
  • entropy encoding unit 56 may determine the number of components of the TU to be represented by the codeword by determining whether values of any CBFs for the TU may be inferred using other previously encoded TUs (e.g., parent and sibling TUs of the TU in the corresponding RQT) of the CU.
  • other previously encoded TUs e.g., parent and sibling TUs of the TU in the corresponding RQT
  • Entropy encoding unit 56 may further select a first VLC table based on the first context (810).
  • the first VLC table may include a mapping of codewords to CBFy, CBFc, and TSF values.
  • Entropy encoding unit 56 may further select a first codeword from the first VLC table representative of the above determinations (812). For example, as discussed above, entropy encoding unit 56 may select a shortest (e.g., single-bit) codeword when the CBF Y , CBF C , and TSF values comprise the most likely values for the TU for the first context.
  • entropy encoding unit 56 may select a codeword other than the shortest codeword when the CBF Y , CBFc, and TSF values are not the most likely values.
  • the selected codeword may have a length, e.g., a bit length, that is inversely proportional to the likelihood of the CBF Y , CBFc, and TSF values, i.e., likelihood that the luminance component of the TU is coded, that at least one of the first chrominance component and the second chrominance component of the TU is coded, and that the TU is split into the sub-TUs, once again, for the TU for the first context.
  • entropy encoding unit 56 may further update the first VLC table based on the above determinations to reflect which determinations are more or less likely to occur (814). For example, entropy encoding unit 56 may update the mapping of the codewords to the CBF Y , CBFc, and TSF values within the first VLC table based on the determined CBF Y , CBF C , and TSF values, such that values that occur more frequently within the first context are mapped to shorter codewords than other, less frequently-occurring values, as previously described.
  • entropy encoding unit 56 may output the first codeword to the bitstream (816).
  • entropy encoding unit 56 may include the first codeword in an RQT for the CU, such that the first codeword comprises a single value that represents the CBFy, CBFC, and TSF for the TU.
  • video encoder 20 may determine whether the first chrominance component or the second chrominance component of the TU of the block is coded (818). In this manner, video encoder 20 may determine whether at least one of the first chrominance component and the second chrominance component of the TU of the block is coded, as previously described. In the event that both the first chrominance component and the second chrominance component are not coded, entropy encoding unit 56 may stop jointly encoding the luminance CBF, chrominance CBFs, and TSF for the TU (820), and proceed to other coding tasks, e.g., encoding of other syntax elements for the CU or a subsequent CU. In the event at least one of the first chrominance component and the second chrominance component is coded, however, video encoder 20 may continue the encoding process by indicating which of the first and second chrominance components is coded.
  • entropy encoding unit 56 may determine whether the first chrominance component is coded (822). Entropy encoding unit 56 may further determine whether the second chrominance component is coded (824). As described above, entropy encoding unit 56 may make these determinations as part of generating the syntax information used to encode the CU, wherein the determinations may correspond to CBFu and CBF V for the TU, respectively. As also described above, in some examples, these determinations may be made previously in the encoding process for the purpose of determining the CBFc for the TU. In other examples, these determinations may be made at a different point in the encoding process, e.g., only when at least one of the first chrominance component and the second chrominance component is coded.
  • video encoder 20 may further determine values for the corresponding CBFu and CBF V .
  • a CBF value of "1" may indicate that a corresponding chrominance component of the TU is coded
  • a CBF value of "0" may indicate that the chrominance component is not coded.
  • Video encoder 20 may further provide an indication of whether the first chrominance component and the second chrominance component of the TU are coded. In some examples, video encoder 20 may provide this indication by explicitly signaling the CBFu and CBFy for the TU in the bitstream, wherein each CBF is signaled individually. In other examples, video encoder 20 may provide this indication by jointly encoding the CBFu and CBF V for the TU in a substantially similar manner as described above with reference to jointly encoding the CBFy, CBFc, and TSF for the TU.
  • entropy encoding unit 56 may determine a second context for the TU (826). For example, entropy encoding unit 56 may determine the second context for the TU based on e.g., one or more of the following: a partition level for the CU, a partition level for the TU, a prediction mode for a PU corresponding to the TU, and CBF values corresponding to first chrominance components and second chrominance components of neighboring TUs of the TU.
  • the neighboring TUs may be other TUs of the CU for which luminance CBFs, chrominance CBFs, and TSFs were previously jointly encoded in the same manner as described herein.
  • entropy encoding unit 56 may determine the partition level for the CU as part of generating the syntax information used to encode the CU, e.g., corresponding to a CU quadtree associated with an LCU of the CU, as previously described.
  • Entropy encoding unit 56 may further select a second VLC table based on the second context (828).
  • the second VLC table may include a mapping of codewords to CBFu and CBFy values.
  • entropy coding unit 56 may use a same context for selecting both the first VLC table and the second VLC table, in which case the first and second contexts discussed above may comprise the same context.
  • Entropy encoding unit 56 may further select a second codeword from the second VLC table representative of the above determinations for the first chrominance component and the second chrominance component (830). For example, as discussed above, entropy encoding unit 56 may select a shortest (e.g., single-bit) codeword when the CBFu and CBFy values comprise the most likely values for the TU for the second context. On the other hand, entropy encoding unit 56 may select a codeword other than the shortest codeword when the CBFu and CBFy values are not the most likely values.
  • a shortest codeword e.g., single-bit
  • the second codeword may have a length, e.g., a bit length, that is inversely proportional to the likelihood of the CBFu and CBFy values, i.e., likelihood of the first chrominance component and the second chrominance component of the TU being coded, once again, for the TU for the second context.
  • entropy encoding unit 56 may further update the second VLC table based on the above determinations to reflect which determinations are more or less likely to occur (832). For example, entropy encoding unit 56 may update the mapping of the codewords to the CBFu and CBFy values within the second VLC table based on the determined CBFu and CBFy values, such that values that occur more frequently within the second context are mapped to shorter codewords than other, less frequently-occurring values, as previously described.
  • entropy encoding unit 56 may output the second codeword to the bitstream (834).
  • entropy encoding unit 56 may include the second codeword in the RQT for the CU along with the first codeword, such that the second codeword comprises a single value that represents the CBFu and CBFy for the TU.
  • Entropy encoding unit 56 may then stop jointly encoding the luminance CBF, chrominance CBF, and TSF for the TU (820), and proceed to other coding tasks, e.g., encoding of other syntax elements for the CU or a subsequent CU.
  • the method of FIG. 8 represents an example of a method of encoding video data, including determining whether a component of a TU of a CU of video data includes at least one non-zero coefficient, determining whether the TU is split into sub-TUs, selecting a codeword from a VLC table, wherein the VLC table provides an indication that the codeword corresponds to the determinations, and providing the codeword for the TU.
  • FIG. 9 is a flowchart that illustrates an example method for decoding jointly encoded luminance CBF, a chrominance CBF, and TSF for a TU of a CU of video data.
  • the techniques of FIG. 9 may generally be performed by any processing unit or processor, whether implemented in hardware, software, firmware, or a combination thereof, and when implemented in software or firmware, corresponding hardware may be provided to execute instructions for the software or firmware.
  • the techniques of FIG. 9 are described with respect to video decoder 30 (FIGS. 1 and 3), although it should be understood that other devices may be configured to perform similar techniques.
  • the steps illustrated in FIG. 9 may be performed in a different order or in parallel, and additional steps may be added and certain steps omitted, without departing from the techniques of this disclosure.
  • video decoder 30 may receive a first codeword for a TU of a block of video data (900). As described above, video decoder 30 may also receive video data for the block, e.g., quantized transform coefficients and/or block header data, indicating a prediction mode for the block and other syntax information. As also described above, the block may correspond to a CU, such as a sub-CU of an LCU, corresponding to a leaf-node in a CU quadtree associated with the LCU. The CU may include one or more TUs, e.g., including a largest TU of the CU, which may be split into sub-TUs according to an RQT associated with the largest TU, as also described above.
  • TUs e.g., including a largest TU of the CU, which may be split into sub-TUs according to an RQT associated with the largest TU, as also described above.
  • the method of FIG. 9 may be applied recursively to any TU of the CU, including the largest TU of the CU and sub-TUs of the largest TU.
  • the first codeword may comprise a VLC codeword.
  • Video decoder 30 may further determine a first context for the TU (902).
  • entropy decoding unit 70 may determine the first context for the TU in a substantially similar manner as described above with reference to entropy encoding unit 56 of FIG. 8, based on e.g., one or more of the following: a prediction mode for a PU corresponding to the TU, a partition level for the TU, and a number of components of the TU represented by the codeword.
  • entropy decoding unit 70 may determine the prediction mode for the PU corresponding to the TU from received syntax information contained within the header data for the CU. As another example, entropy decoding unit 70 may determine the partition level for the TU from previously received codewords for other TUs (e.g., a parent TU of the TU in the corresponding RQT) of the CU. As still another example, entropy decoding unit 70 may determine the number of components of the TU represented by the codeword by making inferences using previously received codewords for other TUs (e.g., parent and sibling TUs of the TU in the corresponding RQT) of the CU.
  • entropy decoding unit 70 may determine the prediction mode for the PU corresponding to the TU from received syntax information contained within the header data for the CU. As another example, entropy decoding unit 70 may determine the partition level for the TU from previously received codewords for other TUs (e.g., a parent TU of
  • Entropy decoding unit 70 may further select a first VLC table based on the first context (904).
  • the first VLC table may include a mapping of codewords to CBFy, CBFc, and TSF values.
  • Entropy decoding unit 70 may further determine whether at least one of a first chrominance component and a second chrominance component of the TU is coded, i.e., includes at least one non-zero coefficient, based on the first codeword and the first VLC table.
  • entropy decoding unit 70 may further determine whether a luminance component of the TU is coded based on the first codeword and the first VLC table.
  • Entropy decoding unit 70 may further determine whether the TU is split into sub-TUs based on the first codeword and the first VLC table. For example, entropy decoding unit 70 may retrieve values for CBF Y , CBFc, and TSF syntax elements corresponding to the above determinations that are mapped to the received first codeword within the first VLC table. In this manner, entropy decoding unit 70 may determine whether the first codeword indicates that the first chrominance component or the second chrominance component of the TU of the block is coded (906), whether the first codeword indicates that the luminance component of the TU is coded (908), and whether the first codeword indicates that the TU is split into the sub- TUs (910).
  • VLC tables of video decoder 30 may be substantially similar to VLC tables of video encoder 20.
  • entropy decoding unit 70 may determine the first context for the TU in a substantially similar manner as described above with reference to entropy encoding unit 56 of FIG. 8.
  • video decoder 30 selecting the first VLC table using the first context may result in the first VLC table including a substantially similar mapping of VLC codewords to CBF Y , CBFc, and TSF values as that of a VLC table used by video encoder 20 to select the first codeword. This similarity among the mappings may enable video decoder 30 to make the above determinations using the first codeword and the first VLC table.
  • the results of the above determinations may correspond to the CBFy, CBFc, and TSF for the TU.
  • a CBF Y value of "1” may indicate that the luminance component of the TU is coded
  • a CBFy value of "0” may indicate that the luminance component is not coded.
  • a CBFc value of "1” may indicate that at least one of the first chrominance component and the second chrominance component of the TU is coded
  • a CBFc value of "0” may indicate that the first chrominance component and the second chrominance component are not coded.
  • the first codeword may have a length that is inversely proportional to the likelihood of the CBF- Y, CBFc, and TSF values, i.e., likelihood that the luminance component of the TU is coded, that at least one of the first chrominance component and the second chrominance component of the TU is coded, and that the TU is split into the sub-TUs, for the TU for the first context.
  • entropy decoding unit 70 may update the first VLC table based on the above determinations to reflect which determinations are more or less likely to occur (912). For example, entropy decoding unit 70 may update the mapping of the codewords to the CBF Y , CBFc, and TSF values within the first VLC table based on the determined CBF Y , CBF C , and TSF values, such that values that occur more frequently within the first context are mapped to shorter codewords than other, less frequently-occurring values, as previously described.
  • video decoder 30 may determine whether the first chrominance component or the second chrominance component of the TU of the block is coded (914). In this manner, video decoder 30 may determine whether at least one of the first chrominance component and the second chrominance component of the TU of the block is coded, as previously described. In the event that both the first chrominance component and the second chrominance component are not coded, entropy decoding unit 70 may stop decoding the jointly encoded luminance CBF, chrominance CBF, and TSF for the TU (916), and proceed to other coding tasks, e.g., decoding of other syntax elements for the CU or a subsequent CU. In the event at least one of the first chrominance component and the second chrominance component is coded, however, video decoder 30 may continue the decoding process by determining which of the first and second chrominance components is coded.
  • video decoder 30 may receive an indication of whether the first chrominance component and the second chrominance component of the TU are coded. In some examples, video decoder 30 may receive this indication in the form of explicitly signaled CBFu and CBFy for the TU in the bitstream, wherein each CBF is signaled individually. In other examples, video decoder 30 may receive this indication in the form of jointly encoded CBFu and CBFy for the TU in a substantially similar manner as described above with reference to decoding jointly encoded CBF Y , CBF C , and TSF for the TU.
  • entropy decoding unit 70 may receive a second codeword for the TU (918).
  • the second codeword may also comprise a VLC codeword, and may correspond to the jointly encoded CBFu and CBF V for the TU.
  • entropy decoding unit 70 or another unit of video decoder 30, may determine a second context for the TU (920).
  • entropy decoding unit 70 may determine the second context for the TU in a substantially similar manner as described above with reference to entropy encoding unit 56 of FIG.
  • the neighboring TUs may be other TUs of the CU for which jointly encoded luminance CBFs, chrominance CBFs, and TSFs were previously decoded in the same manner as described herein.
  • entropy decoding unit 70 may determine the partition level for the CU from the received syntax information contained within the header data for the CU, e.g., corresponding to a CU quadtree associated with an LCU of the CU, as previously described.
  • Entropy decoding unit 70 may further select a second VLC table based on the second context (922).
  • the second VLC table may include a mapping of codewords to CBFu and CBF V values.
  • entropy decoding unit 70 may use a same context for selecting both the first VLC table and the second VLC table, in which case the first and second contexts discussed above may comprise the same context.
  • Entropy decoding unit 70 may then determine whether the first chrominance component of the TU is coded based on the second codeword and the second VLC table. Furthermore, entropy decoding unit 70 may determine whether the second chrominance component of the TU is coded based on the second codeword and the second VLC table. For example, entropy decoding unit 70 may retrieve values for CBFu and CBF V syntax elements corresponding to the above determinations that are mapped to the received second codeword within the second VLC table.
  • entropy decoding unit 70 may determine whether the second codeword indicates that the first chrominance component of the TU is coded (924), as well as whether the second codeword indicates that the second chrominance component of the TU is coded (926).
  • VLC tables of video decoder 30 may be substantially similar to VLC tables of video encoder 20.
  • entropy decoding unit 70 may determine the second context for the TU in a substantially similar manner as described above with reference to entropy encoding unit 56 of FIG. 8.
  • video decoder 30 selecting the second VLC table using the second context may result in the second VLC table including a substantially similar mapping of VLC codewords to CBFu and CBF V values as that of a VLC table used by video encoder 20 to select the second codeword. This similarity among the mappings may enable video decoder 30 to make the above determinations using the second codeword and the second VLC table.
  • the results of the above determinations may correspond to the CBFu and CBFy for the TU.
  • a CBF value of "1" may indicate that the corresponding chrominance component of the TU is coded
  • a CBF value of "0" may indicate that the chrominance component is not coded.
  • the second codeword may have a length that is inversely proportional to the likelihood of the CBFu and CBFy values, i.e., likelihood that the first chrominance component and the second chrominance component of the TU are coded, once again, for the TU for the second context.
  • entropy decoding unit 70 may further update the second VLC table based on the above determinations to reflect which determinations are more or less likely to occur (928). For example, entropy decoding unit 70 may update the mapping of the codewords to the CBFu and CBFy values within the second VLC table based on the determined CBFu and CBFy values, such that values that occur more frequently within the second context are mapped to shorter codewords than other, less frequently-occurring values, as previously described.
  • video decoder 30 may stop decoding the jointly encoded luminance CBF, chrominance CBF, and TSF for the TU (916), and proceed to other coding tasks, e.g., decoding of other syntax elements for the CU or a subsequent CU.
  • the method of FIG. 9 represents an example of a method of decoding video data, including determining whether a component of a TU of a CU of video data includes at least one non-zero coefficient based on a codeword for the TU, determining whether the TU is split into sub-TUs based on the codeword, and decoding the TU based on the determinations.
  • 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 techniques described in this disclosure.
  • a computer program product may include a computer-readable medium.
  • such computer-readable storage media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium.
  • coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave are included in the definition of medium.
  • DSL digital subscriber line
  • computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transitory media, but are instead directed to non-transitory, tangible storage media.
  • Disk and disc includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
  • processors such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry.
  • DSPs digital signal processors
  • ASICs application specific integrated circuits
  • FPGAs field programmable logic arrays
  • processors may refer to any of the foregoing structure or any other structure suitable for implementation of the techniques described herein.
  • the functionality described herein may be provided within dedicated hardware and/or software modules configured for encoding and decoding, or incorporated in a combined codec. Also, the techniques could be fully implemented in one or more circuits or logic elements.
  • the techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC) or a set of ICs (e.g., a chip set).
  • IC integrated circuit
  • a set of ICs e.g., a chip set.
  • Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require realization by different hardware units. Rather, as described above, various units may be combined in a codec hardware unit or provided by a collection of interoperative hardware units, including one or more processors as described above, in conjunction with suitable software and/or firmware.

Landscapes

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

Abstract

Selon un exemple de la présente invention, un décodeur vidéo est configuré pour déterminer si une composante d'une unité de transformation d'une unité de codage de données vidéo comprend ou non au moins un coefficient non nul sur la base d'un mot de code pour l'unité de transformation, pour déterminer si l'unité de transformation est scindée ou non en sous-unités de transformation sur la base du mot de code, et pour décoder l'unité de transformation sur la base des déterminations. Selon un autre exemple, un codeur vidéo est configuré pour déterminer si une composante d'une unité de transformation d'une unité de codage de données vidéo comprend ou non au moins un coefficient non nul, pour déterminer si l'unité de transformation est scindée ou non en sous-unités de transformation, pour sélectionner un mot de code dans une table de codes à longueur variable (VLC), la table de codes à longueur variable fournissant une indication selon laquelle le mot de code correspond aux déterminations, et pour fournir le mot de code pour l'unité de transformation.
EP11781721.3A 2010-11-01 2011-10-31 Codage conjoint d'éléments de syntaxe pour codage vidéo Withdrawn EP2636219A1 (fr)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201061409052P 2010-11-01 2010-11-01
US201061409471P 2010-11-02 2010-11-02
US201161432548P 2011-01-13 2011-01-13
US201161435344P 2011-01-23 2011-01-23
US201161449556P 2011-03-04 2011-03-04
US201161450554P 2011-03-08 2011-03-08
US201161451448P 2011-03-10 2011-03-10
US13/283,335 US9172963B2 (en) 2010-11-01 2011-10-27 Joint coding of syntax elements for video coding
PCT/US2011/058608 WO2012061298A1 (fr) 2010-11-01 2011-10-31 Codage conjoint d'éléments de syntaxe pour codage vidéo

Publications (1)

Publication Number Publication Date
EP2636219A1 true EP2636219A1 (fr) 2013-09-11

Family

ID=45639660

Family Applications (1)

Application Number Title Priority Date Filing Date
EP11781721.3A Withdrawn EP2636219A1 (fr) 2010-11-01 2011-10-31 Codage conjoint d'éléments de syntaxe pour codage vidéo

Country Status (1)

Country Link
EP (1) EP2636219A1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3404918A1 (fr) * 2010-09-30 2018-11-21 Samsung Electronics Co., Ltd. Procédé de décodage vidéo pour décoder des symboles de structure hiérarchique

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3404918A1 (fr) * 2010-09-30 2018-11-21 Samsung Electronics Co., Ltd. Procédé de décodage vidéo pour décoder des symboles de structure hiérarchique

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HONGGANG QI ET AL: "Joint Coding Scheme for Maximum Macroblock Prediction Type and Coding Block Pattern", 25. PICTURE CODING SYMPOSIUM;24-4-2006 - 26-4-2006; BEIJING,, 24 April 2006 (2006-04-24), XP030080315 *
LEE B ET AL: "Improved side information signaling for QVBT in TMuC", 94. MPEG MEETING; 11-10-2010 - 15-10-2010; GUANGZHOU; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11),, no. M18091, 11 October 2010 (2010-10-11), XP030046681 *
See also references of WO2012061298A1 *

Similar Documents

Publication Publication Date Title
US9172963B2 (en) Joint coding of syntax elements for video coding
US9025661B2 (en) Indicating intra-prediction mode selection for video coding
CA2823948C (fr) Indication d'une selection d'un mode d'intraprediction pour un codage video a l'aide d'un cabac
CA2913797C (fr) Initialisation de parametre rice pour un codage de niveau de coefficient dans un processus de codage video
EP2622577B1 (fr) Codage vidéo utilisant l'intraprédiction
AU2011336589B2 (en) Separately coding the position of a last significant coefficient of a video block in video coding
US20110310976A1 (en) Joint Coding of Partition Information in Video Coding
US20120163448A1 (en) Coding the position of a last significant coefficient of a video block in video coding
US9491491B2 (en) Run-mode based coefficient coding for video coding
EP2636219A1 (fr) Codage conjoint d'éléments de syntaxe pour codage vidéo

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20130531

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20140925

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20190430