US20130016769A1 - Signaling picture size in video coding - Google Patents

Signaling picture size in video coding Download PDF

Info

Publication number
US20130016769A1
US20130016769A1 US13/550,384 US201213550384A US2013016769A1 US 20130016769 A1 US20130016769 A1 US 20130016769A1 US 201213550384 A US201213550384 A US 201213550384A US 2013016769 A1 US2013016769 A1 US 2013016769A1
Authority
US
United States
Prior art keywords
coding unit
size
unit size
picture
pixels
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.)
Abandoned
Application number
US13/550,384
Inventor
Ying Chen
Marta Karczewicz
Ye-Kui Wang
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
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Priority to US13/550,384 priority Critical patent/US20130016769A1/en
Priority to PL12740268T priority patent/PL2732629T3/en
Priority to MX2014000720A priority patent/MX2014000720A/en
Priority to CA2841953A priority patent/CA2841953C/en
Priority to AU2012284120A priority patent/AU2012284120B2/en
Priority to CN201280035512.0A priority patent/CN103718551B/en
Priority to KR1020147004055A priority patent/KR101497882B1/en
Priority to TW101125715A priority patent/TWI502967B/en
Priority to PT127402683T priority patent/PT2732629T/en
Priority to HUE12740268A priority patent/HUE030661T2/en
Priority to MYPI2014000024A priority patent/MY165045A/en
Priority to DK12740268.3T priority patent/DK2732629T3/en
Priority to PCT/US2012/047066 priority patent/WO2013012864A1/en
Priority to SI201230768A priority patent/SI2732629T1/en
Priority to JP2014521714A priority patent/JP5792388B2/en
Priority to BR112014000941-4A priority patent/BR112014000941B1/en
Priority to ES12740268.3T priority patent/ES2639030T3/en
Priority to RU2014105655/08A priority patent/RU2586027C2/en
Priority to EP12740268.3A priority patent/EP2732629B1/en
Assigned to QUALCOMM INCORPORATED reassignment QUALCOMM INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: WANG, YE-KUI, CHEN, YING, KARCZEWICZ, MARTA
Publication of US20130016769A1 publication Critical patent/US20130016769A1/en
Priority to IL230248A priority patent/IL230248A/en
Priority to US14/449,034 priority patent/US20140341275A1/en
Priority to US17/657,563 priority patent/US11700384B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Definitions

  • This disclosure relates to the field of video coding.
  • Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital direct broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, tablet computers, e-book readers, digital cameras, digital recording devices, digital media players, video gaming devices, video game consoles, cellular or satellite radio telephones, so-called “smart phones,” video teleconferencing devices, video streaming devices, and the like.
  • Digital video devices implement video compression techniques, such as those described in the standards defined by MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, Advanced Video Coding (AVC), the High Efficiency Video Coding (HEVC) standard presently under development, and extensions of such standards.
  • Video devices may transmit, receive, encode, decode, and/or store digital video information more efficiently by implementing such video compression techniques.
  • Video compression techniques perform spatial (intra-picture) prediction and/or temporal (inter-picture) prediction to reduce or remove redundancy inherent in video sequences.
  • a video slice i.e., a video frame or a portion of a video frame
  • video blocks which may also be referred to as treeblocks, coding units (CUs) and/or coding nodes.
  • Video blocks in an intra-coded (I) slice of a picture are encoded using spatial prediction with respect to reference samples in neighboring blocks in the same picture.
  • Video blocks in an inter-coded (P or B) slice of a picture may use spatial prediction with respect to reference samples in neighboring blocks in the same picture or temporal prediction with respect to reference samples in other reference pictures.
  • Pictures may be referred to as frames, and reference pictures may be referred to a reference frames.
  • Residual data represents pixel differences between the original block to be coded and the predictive block.
  • An inter-coded block is encoded according to a motion vector that points to a block of reference samples forming the predictive block, and the residual data indicating the difference between the coded block and the predictive block.
  • An intra-coded block is encoded according to an intra-coding mode and the residual data.
  • the residual data may be transformed from the pixel domain to a transform domain, resulting in residual transform coefficients, which then may be quantized.
  • the quantized transform coefficients initially arranged in a two-dimensional array, may be scanned in order to produce a one-dimensional vector of transform coefficients, and entropy coding may be applied to achieve even more compression.
  • this disclosure describes techniques for coding video data included in pictures or frames of a video sequence.
  • this disclosure describes techniques where a picture size for a group of pictures in the video sequence may be coded based on an aligned coding unit size for the video sequence.
  • the aligned coding unit size for the video sequence may be selected from several possible coding unit sizes supported by the video coding scheme.
  • the techniques of this disclosure include signaling an aligned coding unit size for one or more of the pictures in the video sequence, and coding a size for the one or more pictures as a multiple of the smallest coding unit.
  • a method for encoding video data comprises determining a smallest coding unit size for each of a plurality of pictures defining a video sequence, wherein a smallest coding unit size is selected from a plurality of possible coding unit sizes including a maximum possible coding unit size; determining an aligned coding unit size for the video sequence based on the plurality of possible coding unit sizes; determining a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the aligned coding unit size; and signaling the aligned coding unit size value in sequence level syntax information.
  • a method of decoding video data comprises obtaining a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size; obtaining a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size, the second coding unit size, or a maximum coding unit size; and storing the decoded picture in a decoded picture buffer.
  • an apparatus for encoding video data comprises a video encoding device configured to determine a smallest coding unit size for each of a plurality of pictures defining a video sequence, wherein a smallest coding unit size is selected from a plurality of possible coding unit sizes including a maximum possible coding unit size; determine an aligned coding unit size for the video sequence based on the plurality of possible coding unit sizes; determine a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the aligned coding unit size; and signal the aligned coding unit size value in sequence level syntax information.
  • an apparatus for decoding video data comprises a video decoding device configured to obtain a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size; obtain a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size, the second coding unit size, or a maximum coding unit size; and store the decoded picture in a decoded picture buffer.
  • a device for encoding video data comprises means for determining a smallest coding unit size for each of a plurality of pictures defining a video sequence, wherein a smallest coding unit size is selected from a plurality of possible coding unit sizes including a maximum possible coding unit size; means for determining an aligned coding unit size for the video sequence based on the plurality of possible coding unit sizes; means for determining a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the aligned coding unit size; and means for signaling the aligned coding unit size value in sequence level syntax information.
  • a device for decoding video data comprises means for obtaining a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size; means for obtaining a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size, the second coding unit size, or a maximum coding unit size; and means storing the decoded picture in a decoded picture buffer.
  • a computer-readable storage medium comprises instructions stored thereon that, when executed, cause a processor of a device for encoding video data to determine a smallest coding unit size for each of a plurality of pictures defining a video sequence, wherein a smallest coding unit size is selected from a plurality of possible coding unit sizes including a maximum possible coding unit size; determine an aligned coding unit size for the video sequence based on the plurality of possible coding unit sizes; determine a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the aligned coding unit size; and signal the aligned coding unit size value in sequence level syntax information.
  • a computer-readable storage medium comprises instructions stored thereon that, when executed, cause a processor of a device for decoding video data to obtain a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size; obtain a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size, the second coding unit size, or a maximum coding unit size; and store the decoded picture in a decoded picture buffer.
  • FIG. 1 is a block diagram illustrating an example video encoding and decoding system.
  • FIG. 2 is a block diagram illustrating an example video encoder that may implement the techniques described in this disclosure.
  • FIG. 3 is a flowchart illustrating an example technique for encoding video data according to the techniques of this disclosure.
  • FIG. 4 is a block diagram illustrating an example video decoder that may implement the techniques described in this disclosure.
  • FIG. 5 is a flowchart illustrating an example technique for decoding video data according to the techniques of this disclosure.
  • a video sequence may include a group of pictures.
  • Each picture in the group of pictures may have a smallest coding unit size.
  • the smallest coding unit size may be a rectangle or square with one of the following pixel or sample dimensions: four pixels, eight pixels, 16 pixels, 32 pixels, and 64 pixels.
  • FIG. 1 is a block diagram illustrating one example of a video encoding and decoding system 10 that may implement techniques of this disclosure.
  • system 10 includes a source device 12 that transmits encoded video to a destination device 16 via a communication channel 15 .
  • Source device 12 and destination device 16 may comprise any of a wide range of devices.
  • source device 12 and destination device 16 may comprise wireless communication device handsets, such as so-called cellular or satellite radiotelephones.
  • the techniques of this disclosure which apply generally to the encoding and decoding may be applied to non-wireless devices including video encoding and/or decoding capabilities.
  • Source device 12 and destination device 16 are merely examples of coding devices that can support the techniques described herein.
  • source device 12 may include a video source 20 , a video encoder 22 , a modulator/demodulator (modem) 23 and a transmitter 24 .
  • Destination device 16 may include a receiver 26 , a modem 27 , a video decoder 28 , and a display device 30 .
  • Video source 20 may comprise a video capture device, such as a video camera, a video archive containing previously captured video, a video feed from a video content provider or another source of video. As a further alternative, video source 20 may generate computer graphics-based data as the source video, or a combination of live video, archived video, and computer-generated video. In some cases, if video source 20 is a video camera, source device 12 and destination device 16 may form so-called camera phones or video phones. In each case, the captured, pre-captured or computer-generated video may be encoded by video encoder 22 .
  • the encoded video information may then be modulated by modem 23 according to a communication standard, e.g., such as code division multiple access (CDMA), orthogonal frequency division multiplexing (OFDM) or any other communication standard or technique.
  • CDMA code division multiple access
  • OFDM orthogonal frequency division multiplexing
  • the encoded and modulated data can then be transmitted to destination device 16 via transmitter 24 .
  • Modem 23 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.
  • Receiver 26 of destination device 16 receives information over channel 15 , and modem 27 demodulates the information.
  • the video decoding process performed by video decoder 28 may include reciprocal techniques to the encoding techniques performed by video encoder 22 .
  • Communication channel 15 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 15 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 15 generally represents any suitable communication medium, or collection of different communication media, for transmitting video data from source device 12 to destination device 16 .
  • FIG. 1 is merely on example and the techniques of this disclosure may apply to video coding settings (e.g., video encoding or video decoding) that do not necessarily include any data communication between the encoding and decoding devices.
  • data could be retrieved from a local memory, streamed over a network, or the like.
  • An encoding device may encode and store data to memory, and/or a decoding device may retrieve and decode data from memory.
  • the encoding and decoding is performed by unrelated devices that do not communicate with one another, but simply encode data to memory and/or retrieve and decode data from memory.
  • the video data may be packetized for transmission or storage.
  • the video data may be assembled into a video file conforming to any of a variety of standards, such as the International Organization for Standardization (ISO) base media file format and extensions thereof, such as AVC.
  • ISO International Organization for Standardization
  • video encoder 22 and video decoder 28 may operate substantially according to a video compression standard such as the emerging HEVC standard. However, the techniques of this disclosure may also be applied in the context of a variety of other video coding standards, including some old standards, or new or emerging standards.
  • video encoder 22 and video decoder 28 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).
  • UDP user datagram protocol
  • Video encoder 22 and video decoder 28 each may be implemented 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 combinations thereof.
  • DSPs digital signal processors
  • ASICs application specific integrated circuits
  • FPGAs field programmable gate arrays
  • Each of video encoder 22 and video decoder 28 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 mobile device, subscriber device, broadcast device, server, or the like.
  • CDEC combined encoder/decoder
  • coder refers to an encoder, a decoder, or CODEC
  • coder, encoder, decoder and CODEC all refer to specific machines designed for the coding (encoding and/or decoding) of video data consistent with this disclosure.
  • coding may refer to either or both of encoding and/or decoding.
  • source device 12 and destination device 16 may operate in a substantially symmetrical manner.
  • each of source device 12 and destination device 16 may include video encoding and decoding components.
  • system 10 may support one-way or two-way video transmission between source device 12 and destination device 16 , e.g., for video streaming, video playback, video broadcasting, or video telephony.
  • Video encoder 22 and video decoder 28 may perform predictive coding in which a video block being coded is compared to one or more predictive candidates in order to identify a predictive block.
  • Video blocks may exist within individual video frames or pictures (or other independently defined units of video, such as slices). Frames, slices, portions of frames, groups of pictures, or other data structures may be defined as units of video information that include video blocks.
  • the process of predictive coding may be intra (in which case the predictive data is generated based on neighboring intra data within the same video frame or slice) or inter (in which case the predictive data is generated based on video data in previous or subsequent frames or slices).
  • Video encoder 22 and video decoder 28 may support several different predictive coding modes. Video encoder 22 may select a desirable video coding mode.
  • the differences between the current video block being coded and the predictive block are coded as a residual block, and prediction syntax (such as a motion vector in the case of inter coding, or a predictive mode in the case of intra coding) is used to identify the predictive block.
  • the residual block may be transformed and quantized.
  • Transform techniques may comprise a DCT process or conceptually similar process, integer transforms, wavelet transforms, or other types of transforms.
  • the transform process converts a set of pixel values (e.g., residual pixel values) into transform coefficients, which may represent the energy of the pixel values in the frequency domain.
  • Video encoder 22 and video decoder 28 may apply quantization to the transform coefficients. Quantization generally involves a process that limits the number of bits associated with any given transform coefficient.
  • video encoder 22 and video decoder 28 may perform entropy coding on the quantized and transformed residual video blocks.
  • Video encoder 22 may generate syntax elements as part of the encoding process to be used by video decoder 28 in the decoding process.
  • Video encoder 22 may also entropy encode syntax elements and include syntax elements in the encoded bitstream.
  • entropy coding comprises one or more processes that collectively compress a sequence of quantized transform coefficients and/or other syntax information.
  • Video encoder 22 and video decoder 28 may perform scanning techniques on the quantized transform coefficients in order to define one or more serialized one-dimensional vectors of coefficients from two-dimensional video blocks. The scanned coefficients may then entropy coded along with any syntax information, e.g., via content adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), or another entropy coding process.
  • CAVLC content adaptive variable length coding
  • CABAC context adaptive binary arithmetic coding
  • video encoder 22 may decode encoded video blocks in order to generate the video data that is used for subsequent prediction-based coding of subsequent video blocks. This is often referred to as a decoding loop of the encoding process, and generally mimics the decoding that is performed by a decoder device.
  • filtering techniques may be used to improve video quality, and e.g., smooth pixel boundaries and possibly remove artifacts from decoded video. This filtering may be in-loop or post-loop.
  • the filtering of reconstructed video data occurs in the coding loop, which means that the filtered data is stored by an encoder or a decoder for subsequent use in the prediction of subsequent image data.
  • the filtering of reconstructed video data occurs out of the coding loop, which means that unfiltered versions of the data are stored by an encoder or a decoder for subsequent use in the prediction of subsequent image data.
  • the loop filtering often follows a separate deblock filtering process, which typically applies filtering to pixels that are on or near boundaries of adjacent video blocks in order to remove blockiness artifacts that manifest at video block boundaries.
  • HEVC High Efficiency Video Coding
  • WD3 A recent draft of the HEVC standard, referred to as “HEVC Working Draft 3” or “WD3,” is described in document JCTVC-E603, Wiegand et al., “High efficiency video coding (HEVC) text specification draft 3,” Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 5th Meeting: Geneva, CH, 16-23 Mar., 2011, which is hereby incorporated by reference in its entirety.
  • JCT-VC Joint Collaborative Team on Video Coding
  • HM HEVC Test Model
  • the HEVC standard includes specific terms and block sizes for blocks of video data.
  • HEVC includes the terms largest coding unit (LCU), coding unit (CU), prediction unit (PU), and transform unit (TU).
  • LCUs, CUs, PUs, and TUs are all video blocks within the meaning of this disclosure. This disclosure also uses the term block to refer to any of a LCU, CU, PU, or TU.
  • syntax elements may be defined at the LCU level, the CU level, the PU level and the TU level.
  • an LCU refers to the largest sized coding unit which is a largest coding unit in terms of number of pixels supported in a given situation.
  • a CU has a similar purpose to a macroblock of H.264, except that a CU does not have a size distinction.
  • a CU may be split into sub-CUs and an LCU may be partitioned into smaller CUs.
  • the CUs may be partitioned into prediction units (PUs) for purposes of prediction.
  • a PU may represent all or a portion of the corresponding CU, and may include data for retrieving a reference sample for the PU.
  • PUs may have square or rectangular shapes.
  • TUs represent a set of pixel difference values or pixel residuals that may be transformed to produce transform coefficients, which may be quantized. Transforms are not fixed in the HEVC standard, but are defined according to transform unit (TU) sizes, which may be the same size as a given CU, or possibly smaller.
  • an LCU may be associated with a quadtree data structure. Further, in some examples residual samples corresponding to a CU may be subdivided into smaller units using a quadtree partitioning scheme which includes a quadtree structure known as “residual quad tree” (RQT).
  • RQT residual quad tree
  • a quadtree data structure includes one node per CU, where a root node may correspond to the LCU.
  • CU 0 may refer to the LCU
  • CU 1 through CU 4 may comprise sub-CUs of the LCU. If a CU is split into four sub-CUs, the node corresponding to the CU includes four leaf nodes, each of which corresponds to one of the sub-CUs.
  • Each node of the quadtree data structure may provide syntax data for the corresponding CU.
  • a node in the quadtree may include a split flag in the CU-level syntax to indicate whether the CU corresponding to the node is split into sub-CUs.
  • Syntax elements for a CU may be defined recursively, and may depend on whether the CU is split into sub-CUs. If a CU is not split further, it is referred as a leaf-CU.
  • four sub-CUs of a leaf-CU may also be referred to as leaf-CUs although there is no explicit splitting of the original leaf-CU. For example, if a CU at 16 ⁇ 16 size is not split further, the four 8 ⁇ 8 sub-CUs will also be referred to as leaf-CUs although the 16 ⁇ 16 CU was never split.
  • the leaf nodes or leaf-CUs of the RQT may correspond to TUs. That is, a leaf-CU may include a quadtree indicating how the leaf-CU is partitioned into TUs.
  • a leaf-CU may include one or more transform units (TUs). This disclosure may refer to the quadtree indicating how an LCU is partitioned as a CU quadtree and the quadtree indicating how a leaf-CU is partitioned into TUs as a TU quadtree.
  • the root node of a TU quadtree generally corresponds to a leaf-CU, while the root node of a CU quadtree generally corresponds to an LCU.
  • TUs of the TU quadtree that are not split are referred to as leaf-TUs.
  • a split flag may indicate whether a leaf-CU is split into four transform units. Then, each transform unit may be split further into four sub TUs. When a TU is not split further, it may be referred to as a leaf
  • the leaf nodes or leaf-CUs may include one or more prediction units (PUs).
  • the PU when the PU is inter-mode encoded, 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 leaf-CU defining the PU(s) may also describe, for example, partitioning of the CU into one or more PUs. Partitioning modes may differ depending on whether the CU is uncoded, intra-prediction mode encoded, or inter-prediction mode encoded. For intra coding, a PU may be treated the same as a leaf transform unit described below.
  • video encoder 22 may calculate a residual value for each leaf-TU using the intra prediction mode, as a difference between the portion of the predictive values corresponding to the TU and the original block. The residual value may be transformed, quantized, and scanned.
  • video encoder 22 may perform prediction at the PU level and may calculate a residual for each PU. The residual values corresponding to a leaf-CU may be transformed, quantized, and scanned.
  • a leaf-TU may be larger or smaller than a PU.
  • a PU may be collocated with a corresponding leaf-TU.
  • the maximum size of a leaf-TU may be the size of the corresponding leaf-CU.
  • the HEVC standard allows for transformations according to transformation units (TUs), which may be different for different CUs.
  • the TUs are typically sized based on the size of PUs within a given CU defined for a partitioned LCU, although this may not always be the case.
  • the TUs are typically the same size or smaller than the PUs.
  • Pixel difference values associated with the TUs may be transformed to produce transform coefficients, which may be quantized.
  • quantization may be applied according to a quantization parameter (QP) defined at the LCU level. Accordingly, the same level of quantization may be applied to all transform coefficients in the TUs associated with different PUs of CUs within an LCU.
  • QP quantization parameter
  • a change or difference i.e., a delta
  • the QP may be signaled with the LCU to indicate the change in QP relative to that of a previous LCU.
  • Video encoder 22 may perform video encoding of pictures, frames, slices, portions of frames, groups of pictures, or other video data by using LCUs, CUs, PUs and TUs defined according to the HEVC standard as units of video coding information.
  • video encoder 22 may encode one or more pictures of video data comprising largest coding units (LCUs), wherein the LCUs are partitioned into a set of block-sized coded units (CUs) according to a quadtree partitioning scheme.
  • Video encoder 22 and video decoder 28 may use CUs that have varying sizes consistent with the HEVC standard.
  • video encoder 22 may use possible CU sizes of 64 ⁇ 64, 32 ⁇ 32, 16 ⁇ 16, 8 ⁇ 8 and 4 ⁇ 4 pixels.
  • video encoder 22 may use a maximum CU size of 64 ⁇ 64 pixels for all pictures in the video sequence while some pictures in the video sequence may be encoded using a smallest possible CU size of 4 ⁇ 4 pixels while other pictures in the video sequence may be encoded using a smallest CU size of 8 ⁇ 8 pixels.
  • references in this disclosure to a CU may refer to a largest coding unit of a picture or a sub-CU of an LCU.
  • Video encoder 22 may split an LCU into sub-CUs, and each sub-CU may be further split into sub-CUs.
  • Video encoder 22 may include syntax data for a bitstream defined to indicate a maximum number of times an LCU is split. The number of time a LCU is split may be referred to as CU depth.
  • video encoder 22 may also define a smallest coding unit (SCU) for each picture in a video sequence.
  • SCU may refer to the smallest coding unit size used to code a picture when several possible CU sizes are available.
  • video encoder 22 may be configured to use one of possible CU sizes 64 ⁇ 64, 32 ⁇ 32, 16 ⁇ 16, 8 ⁇ 8 and 4 ⁇ 4 pixels to encode pictures in a video sequence.
  • all pictures in the video sequence may be encoded using the same SCU size, e.g., 4 ⁇ 4 pixels or 8 ⁇ 8 pixels.
  • some pictures in the video sequence may be encoded using a SCU size of 4 ⁇ 4 pixels while other pictures in the video sequence may be encoded using a SCU size of 8 ⁇ 8 pixels.
  • pictures in the video sequence may have respective SCUs of 4 ⁇ 4 pixels and 8 ⁇ 8 pixels, i.e., the SCU size may change among frames.
  • Video encoder 22 may determine a minimum SCU or a maximum SCU for a video sequence. In this example, the minimum SCU would be 4 ⁇ 4, while the maximum SCU would be 8 ⁇ 8.
  • Video encoder 22 may include various levels of syntax data within a bitstream that defines sizes of LCUs, CUs, PUs, TUs, and SCUs. For example, video encoder 22 may signal the size of LCU using sequence level syntax.
  • video encoder 22 may use various techniques to signal the size of a picture in the video sequence.
  • the size of a picture associated with a video sequence may be equal to a picture size of a decoded picture stored in a decoded picture buffer (DPB).
  • Pictures may have a unit size, such as a block of a selected height and width.
  • the picture size may be picture sizes supported by HEVC or another video standard e.g., picture sizes may include 320 ⁇ 240, 1920 ⁇ 1080, and 7680 ⁇ 4320.
  • video encoder 22 may signal syntax elements for coding texture view components in a slice header.
  • video encoder 22 may signal the size of a picture associated with a video sequence and/or a minimum smallest coding unit size associated with the video sequence using various syntax elements.
  • video decoder 28 may obtain various syntax elements indicating the size of a picture associated with a coded video sequence and/or a minimum smallest coding unit size associated with the coded video sequence and use such syntax elements in decoding the coded video sequence.
  • video encoder 22 may signal the minimum smallest coding unit size and the size of a picture associated with a video sequence in sequence level syntax information wherein the picture size is a multiple of the minimum smallest coding unit size.
  • video decoder 28 may obtain a coded video sequence including one or more coded pictures and a minimum smallest coding unit size for the video sequence in sequence level syntax information. Video decoder 28 may decode the coded pictures in the coded video sequence and store the decoded pictures in a decoded picture buffer with a picture size equal to a multiple of the minimum smallest coding unit size.
  • the size of a picture may be signaled in the unit of macroblocks.
  • a cropping window may be used.
  • a 1920 ⁇ 1080 picture can be coded as 1920 ⁇ 1088 in the bitstream, but the cropping window signals the real window to make the picture to be displayed as 1920 ⁇ 1080.
  • the size of a picture may be signaled in the unit of pixel.
  • One example of signaling the size of a picture in the unit of pixel is provided by the HEVC standard.
  • video encoder 22 and video decoder 28 may code video data where a size of a coded picture in a picture sequence is defined in terms of a particular type of coded unit (CU).
  • the particular types of coded blocks may be a LCU, a SCU, a minimum smallest CU, or a maximum smallest CU of each picture in the sequence of pictures, as described above.
  • video encoder 22 may indicate a unit used to signal a size of a picture relative to a size of a coding unit (CU) of the picture.
  • the unit may be equal to a size of the smallest CU size that is allowed in the coded video sequence. In some cases, the smallest CU size is the same for all pictures in the video sequence.
  • the smallest CU size of each picture in the video sequence may be different. In that case, the smallest CU size for each picture in a video sequence may not be smaller than the smallest possible CU size for the video sequence.
  • the unit indicated by video encoder 22 may be equal to a size of the largest coding unit (LCU) for a group of pictures.
  • a cropping window may be applied to the picture by video encoder 22 or video decoder 28 to reduce the size of the picture. The cropping window may crop at least one of a right side or a bottom side of a picture, for example.
  • video encoder 22 may signal a picture size relative to an aligned CU (ACU) size.
  • An aligned CU size may be a CU size that is used to specify a picture size of a decoded picture stored in a decoded picture buffer (DPB).
  • DPB decoded picture buffer
  • Such a picture size may have a width and height both as multiplications of the width and height of the aligned CU size.
  • the picture height may be a multiplication of a height of an aligned CU.
  • the size (width and height) of the aligned CU can be signaled in the same way as in the other alternatives.
  • video encoder 22 may signal an aligned CUs at various levels of syntax.
  • An ACU size may defined accord to the following examples: if all pictures in a video sequence have the same SCU size, the ACU may be defined as the SCU size. If, on the other hand, pictures in the video sequence have different SCU sizes, the ACU may be defined as the maximum or minimum SCU size among all pictures. Regardless of how the ACU is defined, the ACU size may be explicitly signaled by video encoder 22 in a sequence parameter set (SPS) or picture parameter set (PPS) associated with the video sequence. In some cases, the ACU size may be restricted such that it is equal to or less than the LCU size for a video sequence and equal to or larger than a SCU size for a video sequence.
  • SPS sequence parameter set
  • PPS picture parameter set
  • video encoder 22 may signal a picture size in a unit of LCU or a unit of SCU.
  • the unit used to signal a size of a coded picture may be signaled in a SPS. This unit may be equal to the size of a smallest CU size that is allowed for the coded video sequence.
  • the relative size of the smallest CU size for pictures referring to this PPS may be signaled by video encoder 22 . In the case where all pictures in a video sequence have the same SCU size, additional signaling of the relative size of the smallest CU may not be necessary in the PPS.
  • a relative smallest CU size for a portion of the pictures in the video sequence may be signaled in the PPS where the relative smallest CU size is larger than the minimum smallest CU for the video sequence.
  • the relative smallest CU size may be signaled in the PPS as a difference between the relative smallest CU size for the portion of the pictures and the minimum smallest CU size for the video sequence.
  • the picture size can be signaled by video encoder 22 with a unit of LCU in SPS.
  • the cropping window can be further signaled by video encoder 22 , using the cropping window may help video decoder identify the picture size, as long as the ACU size is known.
  • the unit when the SCU size varies for the pictures in the video sequence, the unit may be equal to the size of a maximum smallest CU size allowed in pictures in the coded video sequence.
  • the maximum CU size is 64 ⁇ 64 pixels, and some pictures have CU size of 4 ⁇ 4 pixels while and others have a smallest CU size of 8 ⁇ 8 pixels, the unit of the picture size may be 8 ⁇ 8 pixels.
  • a picture size would as signaled by video encoder 22 as 8 times 8 pixels by 9 times 8 pixels. Pixels in a picture that exceeded the 64 ⁇ 65 pixel size may be cropped using frame cropping syntax elements.
  • a maximum CU size is 64 ⁇ 64 pixels and some pictures have a smallest possible CU size of 4 ⁇ 4 pixels while others have a smallest CU size of 8 ⁇ 8 pixels.
  • the unit for the picture size is of 4 ⁇ 4 pixels.
  • the unit for the picture size is of 8 ⁇ 8 pixels.
  • Tables 1-7 below provide example syntax that may be implemented by video encoder 22 and video decoder 28 to perform techniques described herein.
  • Example syntax may be implemented by video encoder 22 and video decoder 28 using hardware, software, firmware, or any combination thereof.
  • video encoder 22 may signal the unit used to signal the size of the coded picture in the SPS (Sequence Parameter set).
  • this unit may be equal to the size of the smallest CU size that is allowed in the coded video sequence.
  • the smallest CU size shall not be smaller than the size of this unit.
  • Table 1 below provides an example of SPS raw byte sequence payload (RBSP) syntax used to signal the minimum smallest CU size for the coded picture in the video sequence.
  • RBSP SPS raw byte sequence payload
  • PPS picture parameter set
  • the relative size of the smallest CU size for pictures referring to this PPS may be signaled.
  • syntax element log2_max_coding_block_size_minus 3 may specify the maximum size of a coding block.
  • a variable Log2MaxCUSize may be set equal to: log2_max_coding_block_size_minus3+3.
  • log2_diff max_pic_alligned_min_coding_block_size may specify the difference between the minimum size of a coding block in the whole coded video sequence and the maximum size of a coding block.
  • a group of pictures may be defined such that a picture in a group of pictures shall not have a smallest coding CU size smaller than the difference value.
  • a variable Log2SeqMinCUSize may be set equal to
  • This value may range from 0 to log2 max coding block size minus3.
  • Variables Log2MaxCUSize and Log2SeqMinCUSize may be used be video encoder 22 and video decoder 28 to process for video coding.
  • Table 1 includes syntax elements pic_width_in_luma_samples, pic_height_in_luma_samples, and log2_min_coding_block_size_minus3, which appear in Table 1 with a strikethrough. These syntax elements represent an alternative example where the size of a picture may be signaled by the video encoder 22 in the unit of pixels.
  • video decoder 28 may determine whether a bitstream is conforming based on whether a condition the values of pic_width_in_luma_samples, pic_height_in_luma_samples, are integer multiples of log2_min_coding_block_size_minus3.
  • Table 2 below, provides another example of a SPS RBSP syntax, in accordance with the techniques that may be performed by video encoder 22 and video decoder 28 .
  • a width and height of a picture may be indicated by video encoder 22 relative to a width and height of an aligned CU.
  • an aligned CU may be a CU that is used by video encoder 22 and video decoder 28 to specify a picture size. That is, the picture width may be a multiplication of a width of an aligned CU.
  • the aligned CU size may be a size used to specify a picture size of a decoded picture stored in a decoded picture buffer (DPB).
  • a picture may contain one or more complete aligned CUs.
  • the aligned CU is an aligned smallest CU (SCU).
  • Table 2 specifies a height of a picture as pic_height_in_ alligned_scu and a width of the picture as pic_width_in_alligned_scu.
  • pic_width_in_alligned_cu may specify the width of the pictures in the coded video sequence in a unit of aligned CUs.
  • pic_height_in_alligned_cu may specify the height of the pictures in the coded video sequence in a unit of aligned CUs.
  • log2_max_coding_block_size_minus 3 may specify the maximum size of a coding block.
  • a variable Log2MaxCUSize may be set equal to log2_max_coding_block_size_minus3+3.
  • log2_diff max_pic_alligned_min_coding_block_size may specify a difference between a minimum size of a coding block in the whole coded video sequence and a maximum size of a coding block. In some examples, any picture may not have a smallest coding CU size smaller than that.
  • Table 3 below provides additional syntax elements for PPS RBSP that may be implemented by video encoder 22 and video decoder 28 in conjunction with SPS RBSP provided in either Table 1 or Table 2.
  • pic_scu_size_delta may specify a minimum size of a coding unit of the pictures referring to this picture parameter set. This value may range from 0 to log2_diff_max_pic alligned min coding block size.
  • the variable Log2MinCUSize may be set equal to Log2SeqMinCUSize+pic_scu_size_delta.
  • the variable Log 2 MinCUSize may be set equal to Log2SeqMinCUSize ⁇ pic_scu_size_delta.
  • pic_scu_size_delta can be a signed value (se(v)) and the variable Log2MinCUSize may be set equal to Log2SeqMinCUSize ⁇ pic_scu_size_delta.
  • an LCU size for a video sequence may be defined as N by N and the ACU size, selected according to one of the examples described above, may be defined as M by M.
  • the picture size may be signaled by video encoder 22 in the unit of LCU size may be defined as WL by HL.
  • the picture size with respect to the aligned CU size may be derived by video decoder 28 according to the following equation: (WL*N ⁇ crop_right_offset+M ⁇ 1)/M*M by (HL*N ⁇ crop_bottom_offset+M ⁇ 1)/M*M, wherein crop right offset and crop_bottom_offset are signaled by video encoder 22 in the cropping window and are the numbers of pixels cropped from the right and bottom boundary, respectively.
  • WL may be the value of the pic_width_in_LCU and WH is the value of pic_height_in_LCU in the Table 5 below.
  • the operations (e.g., divisions) in the equation above may be integer calculations.
  • the sizes of one or more pictures may be signaled by video encoder 22 relative to a size of a largest coding unit (LCU).
  • the sizes of the one or more pictures may be signaled by video encoder 22 in the sequence parameter set, for example.
  • the picture size may also be signaled by video encoder 22 with a num right offset ACU and num_bottom_offset_ACU, so the picture size is (WL*N ⁇ M*num_right _offset_ACU) by (HL*N ⁇ M*num_bottom_offset_ACU). These two parameters can be signaled in SPS or PPS.
  • the decoded picture is to be stored in the decoded picture buffer with a picture with respect to the aligned CU, which is (WL*N ⁇ num crop acu_right*M) by (HL*N ⁇ num_crop_acu_right*M).
  • a cropping window may be further signaled by video encoder 22 .
  • a cropping window may define at least a right side or a bottom side of a picture or other to be cropped. However, since the cropping window can be further signaled, the cropping window may be used to identifying the picture size when the aligned CU size is known.
  • a size of a picture in terms of width and height are given in terms of a largest coding unit (LCU). That is, pic_width_in_LCU may specify a size in pixels of one or more pictures relative to an LCU. Similarly, pic_height_in_LCU may specify a size in pixels of one or more pictures relative to an LCU.
  • the syntax element num_crop_acu_right may be signaled in the cropping window and define a number of pixels to be cropped on a right side of a picture or other video block.
  • syntax element num_crop_acu_bottom may be signaled in the cropping window and define a number of pixels to be cropped on a bottom side of a picture or other video block. In other examples, other sides of cropping windows are signaled.
  • the LCU size is N by N and the aligned CU size is M by M.
  • the picture size is signaled in terms of a unit of LCU size is given as WL by HL.
  • WL is the value of pic_width_in_LCU and HL is the value of pic_height_in_LCU.
  • Crop_right_offset may define a number of pixels to crop on a right side, and may be equal to num_crop_acu_right.
  • Crop_bottom_offset may define a number of pixels to crop on a bottom side, and may be equal to num_crop_acu_bottom.
  • the picture size with respect to the aligned CU (ACU) size can be determined from the following equations
  • Table 5 provides yet another example of additional syntax elements for pic_parameter set rbsp( ).
  • at least one of num_right_offset_ACU and num_bottom_offset_ACU may be signaled.
  • Table 6 shows num_right_offset_ACU and num_bottom_offset_ACU being signaled in the SPS, however, these values may be signaled elsewhere.
  • at least one of num_right_offset_ACU and num_bottom_offset_ACU may be signaled in a PPS.
  • the value num_crop_acu_right in Table 5 may specify a number of aligned CU sizes to be cropped from the LCU aligned picture from the right.
  • the cropped picture may be stored in the DPB.
  • the value num_crop_acu_bottom may specify a number of aligned CU sizes to be cropped from the LCU aligned picture from the bottom, to get the picture to be stored in the DPB.
  • the picture size can also be signaled with a num_right_offset_ACU and num_bottom_offset_ACU.
  • the picture size may be determined as:
  • a decoded picture that may be stored in a decoded picture buffer with a picture size with respect to the aligned CU may be given as follows:
  • a size (height and width in pixels) of the aligned CU may be signaled in the same way as in the examples above with respect to the picture size.
  • the size of the aligned CU may be the SCU size.
  • the aligned CU size may be a maximum or a minimum SCU size among all the pictures.
  • the aligned CU size may be signaled explicitly in at least one of the SPS or in the PPS.
  • the aligned CU size may be equal or less than a size of the LCU and equal or larger than the size of the SCU.
  • Table 6 below provides one example of frame cropping syntax that may be used in conjunction with any of the example embodiments described above.
  • the cropping window may be in sequence parameter set and follow the same semantics as those in H.264/AVC).
  • frame_cropping_flag 0 u(1) if( frame_cropping_flag ) ⁇ frame_crop_left_offset 0 ue(v) frame_crop_right_offset 0 ue(v) frame_crop_top_offset 0 ue(v) frame_crop_bottom_offset 0 ue(v) ⁇
  • FIG. 2 is a block diagram illustrating an example video encoder that may be configured to perform the techniques described in this disclosure.
  • Video encoder 50 may be configured to determine a smallest coding unit size for each of a plurality of pictures defining a video sequence, wherein a smallest coding unit size is selected from a plurality of possible coding unit sizes. Further, video encoder 50 may be configured to determine a minimum coding unit size for the video sequence based on the smallest coding unit determined for each of the plurality pictures defining the video sequence. In addition, video encoder 50 may be configured to determine a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the minimum coding unit size value. Moreover, video encoder 50 may be configured to signal the minimum coding unit size value in sequence level syntax information.
  • Video encoder 50 may correspond to video encoder 22 of device 20 , or a video encoder of a different device. As shown in FIG. 2 , video encoder 50 may include a prediction encoding module 32 , quadtree partition module 31 , adders 48 and 51 , and a memory 34 . Video encoder 50 may also include a transform module 38 and a quantization module 40 , as well as an inverse quantization module 42 and an inverse transform module 44 . Video encoder 50 may also include an entropy coding module 46 , and a filter module 47 , which may include deblock filters and post loop and/or in loop filters. The encoded video data and syntax information that defines the manner of the encoding may be communicated to entropy encoding module 46 , which performs entropy encoding on the bitstream.
  • prediction encoding module 32 may support a plurality of different coding modes 35 used in the encoding of video blocks. Prediction encoding module 32 may also comprise a motion estimation (ME) module 36 and a motion compensation (MC) module 37 .
  • ME motion estimation
  • MC motion compensation
  • Quadtree partition module 31 may partition units of video data into smaller units. For example, quadtree partition module 31 may break an LCU into smaller CU's and PU's according to HEVC partitioning described above.
  • Prediction encoding module 32 performs predictive coding techniques on video blocks (e.g. CUs and PUs). For inter coding, prediction encoding module 32 compares CUs or PUs to various predictive candidates in one or more video reference frames or slices (e.g., one or more “list” of reference data) in order to define a predictive block. For intra coding, prediction encoding module 32 generates a predictive block based on neighboring data within the same video frame or slice.
  • Prediction encoding module 32 outputs the prediction block and adder 48 subtracts the prediction block from the CU or PU being coded in order to generate a residual block.
  • At least some video blocks may be coded using advanced motion vector prediction (AMVP) described in HEVC.
  • AMVP advanced motion vector prediction
  • prediction encoding module may include a rate-distortion (R-D) module that compares coding results of video blocks (e.g., CUs or PUs) in different modes.
  • prediction encoding module 32 may also include a mode selection module to analyze the coding results in terms of coding rate (i.e., coding bits required for the block) and distortion (e.g., representing the video quality of the coded block relative to the original block) in order to make mode selections for video blocks.
  • the R-D module may provide analysis of the results of different modes to allow the mode selection module to select the desired mode for different video blocks.
  • transform module 38 applies a transform to the residual block.
  • the transform may comprise a discrete cosine transform (DCT) or a conceptually similar transform such as that defined by the ITU H.264 standard or the HEVC standard. So-called “butterfly” structures may be defined to perform the transforms, or matrix-based multiplication could also be used.
  • DCT discrete cosine transform
  • the size of the transform may vary for different CUs, e.g., depending on the level of partitioning that occurs with respect to a given LCU.
  • Transform units may be defined in order to set the transform size applied by transform module 38 . Wavelet transforms, integer transforms, sub-band transforms or other types of transforms could also be used. In any case, transform module 38 applies the transform to the residual block, producing a block of residual transform coefficients.
  • the transform in general, may convert the residual information from a pixel domain to a frequency domain.
  • Quantization module 40 then quantizes the residual transform coefficients to further reduce bit rate.
  • Quantization module 40 may limit the number of bits used to code each of the coefficients.
  • quantization module 40 may apply the delta QP defined for the LCU so as to define the level of quantization to apply (such as by combining the delta QP with the QP of the previous LCU or some other known QP).
  • entropy coding module 46 may scan and entropy encode the data.
  • CAVLC is one type of entropy coding technique supported by the ITU H.264 standard and the emerging HEVC standard, which may be applied on a vectorized basis by entropy coding module 46 .
  • CAVLC uses variable length coding (VLC) tables in a manner that effectively compresses serialized “runs” of coefficients and/or syntax elements.
  • VLC variable length coding
  • CABAC is another type of entropy coding technique supported by the ITU H.264 standard or the HEVC standard, which may be applied on a vectorized basis by entropy coding module 46 .
  • CABAC may involve several stages, including binarization, context model selection, and binary arithmetic coding. In this case, entropy coding module 46 codes coefficients and syntax elements according to CABAC. Many other types of entropy coding techniques also exist, and new entropy coding techniques will likely emerge in the future. This disclosure is not limited to any specific entropy coding technique.
  • the encoded video may be transmitted to another device or archived for later transmission or retrieval.
  • the encoded video may comprise the entropy coded vectors and various syntax information. Such information can be used by the decoder to properly configure the decoding process.
  • Inverse quantization module 42 and inverse transform module 44 apply inverse quantization and inverse transform, respectively, to reconstruct the residual block in the pixel domain.
  • Summer 51 adds the reconstructed residual block to the prediction block produced by prediction encoding module 32 to produce a reconstructed video block for storage in memory 34 .
  • Memory 34 may include a decoded picture buffer and reconstructed video blocks may form a decoded picture.
  • filter module 47 may apply filtering to the video block to improve video quality.
  • the filtering applied by filter module 47 may reduce artifacts and smooth pixel boundaries.
  • filtering may improve compression by generating predictive video blocks that comprise close matches to video blocks being coded.
  • FIG. 3 is a flowchart illustrating an example technique for encoding video data that may be performed by video encoder 22 or video encoder 50 .
  • Video encoder 20 or video encoder 50 may determine a smallest coding unit size for each of a plurality of pictures defining a video sequence ( 302 ).
  • a smallest coding unit size may be selected from a plurality of possible coding unit sizes.
  • the smallest coding unit may be one of 4 ⁇ 4, 8 ⁇ 8, 16 ⁇ 16, 32 ⁇ 32 or 64 ⁇ 64, where 64 ⁇ 64 is the maximum possible coding unit size.
  • Video encoder 20 or video encoder 50 may determine an aligned coding unit size for the video sequence from the determined smallest coding units ( 304 ).
  • Video encoder 20 of video encoder 50 may determine the aligned coding size based on the techniques described above. Video encoder 20 or video encoder 50 determine a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the aligned coding unit size value ( 306 ). In some cases the picture size associated with the video sequence may be a picture size of a decoded picture stored in a decoded picture buffer. Video encoder 20 or video encoder 50 may signal the aligned coding unit size value in sequence level syntax information ( 308 ).
  • FIG. 4 is a block diagram illustrating an example of a video decoder 60 , which decodes a video sequence that is encoded in the manner described herein.
  • Video decoder 60 may be configured to obtain a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size. Further, video decoder 60 may be configured to obtain a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size and the second coding unit size. In addition, video decoder 60 may be configured to store the decoded picture in a decoded picture buffer.
  • Video decoder 60 includes an entropy decoding module 52 , which performs the reciprocal decoding function of the encoding performed by entropy encoding module 46 of FIG. 2 .
  • entropy decoding module 52 may perform CAVLC or CABAC decoding, or any other type of entropy decoding used by video encoder 50 .
  • Video decoder 60 also includes a prediction decoding module 54 , an inverse quantization module 56 , an inverse transform module 58 , a memory 62 , and a summer 64 .
  • video decoder 60 includes a prediction decoding module 54 and a filter module 57 .
  • Prediction decoding module 54 of video decoder 60 may include motion compensation module 86 , which decodes inter coded blocks and possibly includes one or more interpolation filters for sub-pixel interpolation in the motion compensation process. Prediction decoding module 54 may also include an intra prediction module for decoding intra modes. Prediction decoding module 54 may support a plurality of modes 35 . Filter module 57 may filter the output of summer 64 , and may receive entropy decoded filter information so as to define the filter coefficients applied in the loop filtering.
  • entropy decoding module 52 Upon receiving encoded video data, entropy decoding module 52 performs reciprocal decoding to the encoding performed by entropy encoding module 46 (of encoder 50 in FIG. 2 ). At the decoder, entropy decoding module 52 parses the bitstream to determine LCU's and the corresponding partitioning associated with the LCU's. In some examples, an LCU or the CUs of the LCU may define coding modes that were used, and these coding modes may include the bi-predictive merge mode. Accordingly, entropy decoding module 52 may forward the syntax information to prediction unit that identifies the bi-predictive merge mode.
  • Memory 62 may include a decoded picture buffer. Decoded picture buffer may store a decoded picture.
  • the decoded picture may be associated with a video sequences such that the decoder picture is referenced during prediction decoding. Syntax information may be used by video decoder 60 to determine the size of the decoded picture to be stored in the decoded picture buffer according to the techniques described herein.
  • FIG. 5 is a flowchart illustrating an example technique for decoding video data that may be performed by video decoder 28 or video decoder 60 .
  • Video decoder 28 or video decoder 60 may obtain a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size ( 502 ).
  • first picture may be coded using a smallest coding unit size of 4 ⁇ 4 and second picture may be coded using a smallest coding unit size of 8 ⁇ 8.
  • Video decoder 28 or video decoder 60 may obtain a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size, the second coding unit size or a maximum coding unit size( 504 ). In one example, the picture size may be 1920 ⁇ 1080. Video decoder 28 or video decoder 60 may store the decoded picture in a decoded picture buffer ( 506 ). Further, video decoder 28 or video decoder 60 may determine whether a bitstream including a video sequence is a conforming bitstream based on whether the obtained picture size is a multiple of the aligned coding unit size.
  • 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.
  • any connection is properly termed a computer-readable medium.
  • a computer-readable medium For example, if instructions are transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium.
  • DSL digital subscriber line
  • 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.

Abstract

A video encoder is configured to determine a picture size for one or more pictures included in a video sequence. The picture size associated with the video sequence may be a multiple of an aligned coding unit size for the video sequence. In one example, the aligned coding unit size for the video sequence may comprise a minimum coding unit size where the minimum coding unit size is selected from a plurality of smallest coding unit sizes corresponding to different pictures in the video sequence. A video decoder is configured to obtain syntax elements to determine the picture size and the aligned coding unit size for the video sequence. The video decoder decodes the pictures included in the video sequence with the picture size, and stores the decoded pictures in a decoded picture buffer.

Description

  • This application claims the benefit of:
  • U.S. Provisional Application No. 61/508,659, filed Jul. 17, 2011;
  • U.S. Provisional Application No. 61/530,819, filed Sep. 2, 2011; and
  • U.S. Provisional Application No. 61/549,480 filed Oct. 20, 2011, each of which are hereby incorporated by reference in their entirety.
  • TECHNICAL FIELD
  • This disclosure relates to the field of video coding.
  • BACKGROUND
  • Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital direct broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, tablet computers, e-book readers, digital cameras, digital recording devices, digital media players, video gaming devices, video game consoles, cellular or satellite radio telephones, so-called “smart phones,” video teleconferencing devices, video streaming devices, and the like. Digital video devices implement video compression techniques, such as those described in the standards defined by MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, Advanced Video Coding (AVC), the High Efficiency Video Coding (HEVC) standard presently under development, and extensions of such standards. Video devices may transmit, receive, encode, decode, and/or store digital video information more efficiently by implementing such video compression techniques.
  • Video compression techniques perform spatial (intra-picture) prediction and/or temporal (inter-picture) prediction to reduce or remove redundancy inherent in video sequences. For block-based video coding, a video slice (i.e., a video frame or a portion of a video frame) may be partitioned into video blocks, which may also be referred to as treeblocks, coding units (CUs) and/or coding nodes. Video blocks in an intra-coded (I) slice of a picture are encoded using spatial prediction with respect to reference samples in neighboring blocks in the same picture. Video blocks in an inter-coded (P or B) slice of a picture may use spatial prediction with respect to reference samples in neighboring blocks in the same picture or temporal prediction with respect to reference samples in other reference pictures. Pictures may be referred to as frames, and reference pictures may be referred to a reference frames.
  • Spatial or temporal prediction results in a predictive block for a block to be coded. Residual data represents pixel differences between the original block to be coded and the predictive block. An inter-coded block is encoded according to a motion vector that points to a block of reference samples forming the predictive block, and the residual data indicating the difference between the coded block and the predictive block. An intra-coded block is encoded according to an intra-coding mode and the residual data. For further compression, the residual data may be transformed from the pixel domain to a transform domain, resulting in residual transform coefficients, which then may be quantized. The quantized transform coefficients, initially arranged in a two-dimensional array, may be scanned in order to produce a one-dimensional vector of transform coefficients, and entropy coding may be applied to achieve even more compression.
  • SUMMARY
  • In general, this disclosure describes techniques for coding video data included in pictures or frames of a video sequence. In particular, this disclosure describes techniques where a picture size for a group of pictures in the video sequence may be coded based on an aligned coding unit size for the video sequence. The aligned coding unit size for the video sequence may be selected from several possible coding unit sizes supported by the video coding scheme. The techniques of this disclosure include signaling an aligned coding unit size for one or more of the pictures in the video sequence, and coding a size for the one or more pictures as a multiple of the smallest coding unit.
  • In one example of the disclosure, a method for encoding video data comprises determining a smallest coding unit size for each of a plurality of pictures defining a video sequence, wherein a smallest coding unit size is selected from a plurality of possible coding unit sizes including a maximum possible coding unit size; determining an aligned coding unit size for the video sequence based on the plurality of possible coding unit sizes; determining a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the aligned coding unit size; and signaling the aligned coding unit size value in sequence level syntax information.
  • In another example, a method of decoding video data comprises obtaining a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size; obtaining a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size, the second coding unit size, or a maximum coding unit size; and storing the decoded picture in a decoded picture buffer.
  • In another example, an apparatus for encoding video data comprises a video encoding device configured to determine a smallest coding unit size for each of a plurality of pictures defining a video sequence, wherein a smallest coding unit size is selected from a plurality of possible coding unit sizes including a maximum possible coding unit size; determine an aligned coding unit size for the video sequence based on the plurality of possible coding unit sizes; determine a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the aligned coding unit size; and signal the aligned coding unit size value in sequence level syntax information.
  • In another example, an apparatus for decoding video data comprises a video decoding device configured to obtain a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size; obtain a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size, the second coding unit size, or a maximum coding unit size; and store the decoded picture in a decoded picture buffer.
  • In another example, a device for encoding video data comprises means for determining a smallest coding unit size for each of a plurality of pictures defining a video sequence, wherein a smallest coding unit size is selected from a plurality of possible coding unit sizes including a maximum possible coding unit size; means for determining an aligned coding unit size for the video sequence based on the plurality of possible coding unit sizes; means for determining a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the aligned coding unit size; and means for signaling the aligned coding unit size value in sequence level syntax information.
  • In another example, a device for decoding video data comprises means for obtaining a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size; means for obtaining a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size, the second coding unit size, or a maximum coding unit size; and means storing the decoded picture in a decoded picture buffer.
  • In another example, a computer-readable storage medium comprises instructions stored thereon that, when executed, cause a processor of a device for encoding video data to determine a smallest coding unit size for each of a plurality of pictures defining a video sequence, wherein a smallest coding unit size is selected from a plurality of possible coding unit sizes including a maximum possible coding unit size; determine an aligned coding unit size for the video sequence based on the plurality of possible coding unit sizes; determine a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the aligned coding unit size; and signal the aligned coding unit size value in sequence level syntax information.
  • In another example, a computer-readable storage medium comprises instructions stored thereon that, when executed, cause a processor of a device for decoding video data to obtain a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size; obtain a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size, the second coding unit size, or a maximum coding unit size; and store the decoded picture in a decoded picture buffer.
  • The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.
  • BRIEF DESCRIPTION OF DRAWINGS
  • FIG. 1 is a block diagram illustrating an example video encoding and decoding system.
  • FIG. 2 is a block diagram illustrating an example video encoder that may implement the techniques described in this disclosure.
  • FIG. 3 is a flowchart illustrating an example technique for encoding video data according to the techniques of this disclosure.
  • FIG. 4 is a block diagram illustrating an example video decoder that may implement the techniques described in this disclosure.
  • FIG. 5 is a flowchart illustrating an example technique for decoding video data according to the techniques of this disclosure.
  • DETAILED DESCRIPTION
  • A video sequence may include a group of pictures. Each picture in the group of pictures may have a smallest coding unit size. In one example, the smallest coding unit size may be a rectangle or square with one of the following pixel or sample dimensions: four pixels, eight pixels, 16 pixels, 32 pixels, and 64 pixels. In order to increase coding efficiency of the video sequence, it may be useful to determine the smallest coding unit size for the video sequence and specify a picture size for the group of pictures where the picture size is a multiple of the minimum of the smallest coding unit size for the video sequence.
  • FIG. 1 is a block diagram illustrating one example of a video encoding and decoding system 10 that may implement techniques of this disclosure. As shown in FIG. 1, system 10 includes a source device 12 that transmits encoded video to a destination device 16 via a communication channel 15. Source device 12 and destination device 16 may comprise any of a wide range of devices. In some cases, source device 12 and destination device 16 may comprise wireless communication device handsets, such as so-called cellular or satellite radiotelephones. The techniques of this disclosure, however, which apply generally to the encoding and decoding may be applied to non-wireless devices including video encoding and/or decoding capabilities. Source device 12 and destination device 16 are merely examples of coding devices that can support the techniques described herein.
  • In the example of FIG. 1, source device 12 may include a video source 20, a video encoder 22, a modulator/demodulator (modem) 23 and a transmitter 24. Destination device 16 may include a receiver 26, a modem 27, a video decoder 28, and a display device 30.
  • Video source 20 may comprise a video capture device, such as a video camera, a video archive containing previously captured video, a video feed from a video content provider or another source of video. As a further alternative, video source 20 may generate computer graphics-based data as the source video, or a combination of live video, archived video, and computer-generated video. In some cases, if video source 20 is a video camera, source device 12 and destination device 16 may form so-called camera phones or video phones. In each case, the captured, pre-captured or computer-generated video may be encoded by video encoder 22.
  • In some examples (but not all cases), once the video data is encoded by video encoder 22, the encoded video information may then be modulated by modem 23 according to a communication standard, e.g., such as code division multiple access (CDMA), orthogonal frequency division multiplexing (OFDM) or any other communication standard or technique. The encoded and modulated data can then be transmitted to destination device 16 via transmitter 24. Modem 23 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. Receiver 26 of destination device 16 receives information over channel 15, and modem 27 demodulates the information. The video decoding process performed by video decoder 28 may include reciprocal techniques to the encoding techniques performed by video encoder 22.
  • Communication channel 15 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 15 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 15 generally represents any suitable communication medium, or collection of different communication media, for transmitting video data from source device 12 to destination device 16. Again, FIG. 1 is merely on example and the techniques of this disclosure may apply to video coding settings (e.g., video encoding or video decoding) that do not necessarily include any data communication between the encoding and decoding devices. In other examples, data could be retrieved from a local memory, streamed over a network, or the like. An encoding device may encode and store data to memory, and/or a decoding device may retrieve and decode data from memory. In many cases, the encoding and decoding is performed by unrelated devices that do not communicate with one another, but simply encode data to memory and/or retrieve and decode data from memory. For example, after video data has been encoded, the video data may be packetized for transmission or storage. The video data may be assembled into a video file conforming to any of a variety of standards, such as the International Organization for Standardization (ISO) base media file format and extensions thereof, such as AVC.
  • In some cases, video encoder 22 and video decoder 28 may operate substantially according to a video compression standard such as the emerging HEVC standard. However, the techniques of this disclosure may also be applied in the context of a variety of other video coding standards, including some old standards, or new or emerging standards. Although not shown in FIG. 1, in some cases, video encoder 22 and video decoder 28 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).
  • Video encoder 22 and video decoder 28 each may be implemented 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 combinations thereof. Each of video encoder 22 and video decoder 28 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 mobile device, subscriber device, broadcast device, server, or the like. In this disclosure, the term coder refers to an encoder, a decoder, or CODEC, and the terms coder, encoder, decoder and CODEC all refer to specific machines designed for the coding (encoding and/or decoding) of video data consistent with this disclosure. In this disclosure, the term “coding” may refer to either or both of encoding and/or decoding.
  • In some cases, source device 12 and destination device 16 may operate in a substantially symmetrical manner. For example, each of source device 12 and destination device 16 may include video encoding and decoding components. Hence, system 10 may support one-way or two-way video transmission between source device 12 and destination device 16, e.g., for video streaming, video playback, video broadcasting, or video telephony.
  • Video encoder 22 and video decoder 28 may perform predictive coding in which a video block being coded is compared to one or more predictive candidates in order to identify a predictive block. Video blocks may exist within individual video frames or pictures (or other independently defined units of video, such as slices). Frames, slices, portions of frames, groups of pictures, or other data structures may be defined as units of video information that include video blocks. The process of predictive coding may be intra (in which case the predictive data is generated based on neighboring intra data within the same video frame or slice) or inter (in which case the predictive data is generated based on video data in previous or subsequent frames or slices). Video encoder 22 and video decoder 28 may support several different predictive coding modes. Video encoder 22 may select a desirable video coding mode. In predictive coding, after a predictive block is identified, the differences between the current video block being coded and the predictive block are coded as a residual block, and prediction syntax (such as a motion vector in the case of inter coding, or a predictive mode in the case of intra coding) is used to identify the predictive block. In some cases, the residual block may be transformed and quantized. Transform techniques may comprise a DCT process or conceptually similar process, integer transforms, wavelet transforms, or other types of transforms. In a DCT process, as an example, the transform process converts a set of pixel values (e.g., residual pixel values) into transform coefficients, which may represent the energy of the pixel values in the frequency domain. Video encoder 22 and video decoder 28 may apply quantization to the transform coefficients. Quantization generally involves a process that limits the number of bits associated with any given transform coefficient.
  • Following transform and quantization, video encoder 22 and video decoder 28 may perform entropy coding on the quantized and transformed residual video blocks. Video encoder 22 may generate syntax elements as part of the encoding process to be used by video decoder 28 in the decoding process. Video encoder 22 may also entropy encode syntax elements and include syntax elements in the encoded bitstream. In general, entropy coding comprises one or more processes that collectively compress a sequence of quantized transform coefficients and/or other syntax information. Video encoder 22 and video decoder 28 may perform scanning techniques on the quantized transform coefficients in order to define one or more serialized one-dimensional vectors of coefficients from two-dimensional video blocks. The scanned coefficients may then entropy coded along with any syntax information, e.g., via content adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), or another entropy coding process.
  • In some examples, as part of the encoding process, video encoder 22 may decode encoded video blocks in order to generate the video data that is used for subsequent prediction-based coding of subsequent video blocks. This is often referred to as a decoding loop of the encoding process, and generally mimics the decoding that is performed by a decoder device. In the decoding loop of an encoder or a decoder, filtering techniques may be used to improve video quality, and e.g., smooth pixel boundaries and possibly remove artifacts from decoded video. This filtering may be in-loop or post-loop. With in-loop filtering, the filtering of reconstructed video data occurs in the coding loop, which means that the filtered data is stored by an encoder or a decoder for subsequent use in the prediction of subsequent image data. In contrast, with post-loop filtering the filtering of reconstructed video data occurs out of the coding loop, which means that unfiltered versions of the data are stored by an encoder or a decoder for subsequent use in the prediction of subsequent image data. The loop filtering often follows a separate deblock filtering process, which typically applies filtering to pixels that are on or near boundaries of adjacent video blocks in order to remove blockiness artifacts that manifest at video block boundaries.
  • Efforts are currently in progress to develop a new video coding standard, currently referred to as High Efficiency Video Coding (HEVC). The upcoming standard is also referred to as H.265. A recent draft of the HEVC standard, referred to as “HEVC Working Draft 3” or “WD3,” is described in document JCTVC-E603, Wiegand et al., “High efficiency video coding (HEVC) text specification draft 3,” Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 5th Meeting: Geneva, CH, 16-23 Mar., 2011, which is hereby incorporated by reference in its entirety. The standardization efforts are based on a model of a video coding device referred to as the HEVC Test Model (HM). The HM presumes several capabilities of video coding devices over devices configured to code video data according to ITU-T H.264/AVC. For example, whereas H.264 provides nine intra-prediction encoding modes, HM provides as many as thirty-four intra-prediction encoding modes. Video encoder 22 may operate on blocks of video data consistent with the HEVC standard and HEVC Test Model.
  • The HEVC standard includes specific terms and block sizes for blocks of video data. In particular, HEVC includes the terms largest coding unit (LCU), coding unit (CU), prediction unit (PU), and transform unit (TU). LCUs, CUs, PUs, and TUs are all video blocks within the meaning of this disclosure. This disclosure also uses the term block to refer to any of a LCU, CU, PU, or TU. In HEVC, syntax elements may be defined at the LCU level, the CU level, the PU level and the TU level. In HEVC, an LCU refers to the largest sized coding unit which is a largest coding unit in terms of number of pixels supported in a given situation. In general, in HEVC a CU has a similar purpose to a macroblock of H.264, except that a CU does not have a size distinction. Thus, a CU may be split into sub-CUs and an LCU may be partitioned into smaller CUs. Further, the CUs may be partitioned into prediction units (PUs) for purposes of prediction. A PU may represent all or a portion of the corresponding CU, and may include data for retrieving a reference sample for the PU. PUs may have square or rectangular shapes. TUs represent a set of pixel difference values or pixel residuals that may be transformed to produce transform coefficients, which may be quantized. Transforms are not fixed in the HEVC standard, but are defined according to transform unit (TU) sizes, which may be the same size as a given CU, or possibly smaller.
  • In HEVC, an LCU may be associated with a quadtree data structure. Further, in some examples residual samples corresponding to a CU may be subdivided into smaller units using a quadtree partitioning scheme which includes a quadtree structure known as “residual quad tree” (RQT). In general, a quadtree data structure includes one node per CU, where a root node may correspond to the LCU. For example, CU0 may refer to the LCU, and CU1 through CU4 may comprise sub-CUs of the LCU. If a CU is split into four sub-CUs, the node corresponding to the CU includes four leaf nodes, each of which corresponds to one of the sub-CUs. Each node of the quadtree data structure may provide syntax data for the corresponding CU. For example, a node in the quadtree may include a split flag in the CU-level syntax to indicate whether the CU corresponding to the node is split into sub-CUs. Syntax elements for a CU may be defined recursively, and may depend on whether the CU is split into sub-CUs. If a CU is not split further, it is referred as a leaf-CU. In this disclosure, four sub-CUs of a leaf-CU may also be referred to as leaf-CUs although there is no explicit splitting of the original leaf-CU. For example, if a CU at 16×16 size is not split further, the four 8×8 sub-CUs will also be referred to as leaf-CUs although the 16×16 CU was never split.
  • The leaf nodes or leaf-CUs of the RQT may correspond to TUs. That is, a leaf-CU may include a quadtree indicating how the leaf-CU is partitioned into TUs. A leaf-CU may include one or more transform units (TUs). This disclosure may refer to the quadtree indicating how an LCU is partitioned as a CU quadtree and the quadtree indicating how a leaf-CU is partitioned into TUs as a TU quadtree. The root node of a TU quadtree generally corresponds to a leaf-CU, while the root node of a CU quadtree generally corresponds to an LCU. TUs of the TU quadtree that are not split are referred to as leaf-TUs. A split flag may indicate whether a leaf-CU is split into four transform units. Then, each transform unit may be split further into four sub TUs. When a TU is not split further, it may be referred to as a leaf-TU.
  • Further, the leaf nodes or leaf-CUs may include one or more prediction units (PUs). For example, when the PU is inter-mode encoded, 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 leaf-CU defining the PU(s) may also describe, for example, partitioning of the CU into one or more PUs. Partitioning modes may differ depending on whether the CU is uncoded, intra-prediction mode encoded, or inter-prediction mode encoded. For intra coding, a PU may be treated the same as a leaf transform unit described below.
  • Generally, for intra coding in HEVC, all the leaf-TUs belonging to a leaf-CU share the same intra prediction mode. That is, the same intra-prediction mode is generally applied to calculate predicted values for all TUs of a leaf-CU. For intra coding, video encoder 22 may calculate a residual value for each leaf-TU using the intra prediction mode, as a difference between the portion of the predictive values corresponding to the TU and the original block. The residual value may be transformed, quantized, and scanned. For inter coding in HEVC, video encoder 22 may perform prediction at the PU level and may calculate a residual for each PU. The residual values corresponding to a leaf-CU may be transformed, quantized, and scanned. For inter coding, a leaf-TU may be larger or smaller than a PU. For intra coding, a PU may be collocated with a corresponding leaf-TU. In some examples, the maximum size of a leaf-TU may be the size of the corresponding leaf-CU.
  • As described above, the HEVC standard allows for transformations according to transformation units (TUs), which may be different for different CUs. The TUs are typically sized based on the size of PUs within a given CU defined for a partitioned LCU, although this may not always be the case. The TUs are typically the same size or smaller than the PUs. Pixel difference values associated with the TUs may be transformed to produce transform coefficients, which may be quantized. Further, quantization may be applied according to a quantization parameter (QP) defined at the LCU level. Accordingly, the same level of quantization may be applied to all transform coefficients in the TUs associated with different PUs of CUs within an LCU. However, rather than signal the QP itself, a change or difference (i.e., a delta) in the QP may be signaled with the LCU to indicate the change in QP relative to that of a previous LCU.
  • Video encoder 22 may perform video encoding of pictures, frames, slices, portions of frames, groups of pictures, or other video data by using LCUs, CUs, PUs and TUs defined according to the HEVC standard as units of video coding information.
  • For example, video encoder 22 may encode one or more pictures of video data comprising largest coding units (LCUs), wherein the LCUs are partitioned into a set of block-sized coded units (CUs) according to a quadtree partitioning scheme. Video encoder 22 and video decoder 28 may use CUs that have varying sizes consistent with the HEVC standard. For example, video encoder 22 may use possible CU sizes of 64×64, 32×32, 16×16, 8×8 and 4×4 pixels. For a given video sequence, video encoder 22 may use a maximum CU size of 64×64 pixels for all pictures in the video sequence while some pictures in the video sequence may be encoded using a smallest possible CU size of 4×4 pixels while other pictures in the video sequence may be encoded using a smallest CU size of 8×8 pixels.
  • As described above, references in this disclosure to a CU may refer to a largest coding unit of a picture or a sub-CU of an LCU. Video encoder 22 may split an LCU into sub-CUs, and each sub-CU may be further split into sub-CUs. Video encoder 22 may include syntax data for a bitstream defined to indicate a maximum number of times an LCU is split. The number of time a LCU is split may be referred to as CU depth.
  • Further, video encoder 22 may also define a smallest coding unit (SCU) for each picture in a video sequence. An SCU may refer to the smallest coding unit size used to code a picture when several possible CU sizes are available. For example, video encoder 22 may be configured to use one of possible CU sizes 64×64, 32×32, 16×16, 8×8 and 4×4 pixels to encode pictures in a video sequence. In one example, all pictures in the video sequence may be encoded using the same SCU size, e.g., 4×4 pixels or 8×8 pixels. In other examples, some pictures in the video sequence may be encoded using a SCU size of 4×4 pixels while other pictures in the video sequence may be encoded using a SCU size of 8×8 pixels. Thus, in this example, pictures in the video sequence may have respective SCUs of 4×4 pixels and 8×8 pixels, i.e., the SCU size may change among frames. Video encoder 22 may determine a minimum SCU or a maximum SCU for a video sequence. In this example, the minimum SCU would be 4×4, while the maximum SCU would be 8×8.
  • Video encoder 22 may include various levels of syntax data within a bitstream that defines sizes of LCUs, CUs, PUs, TUs, and SCUs. For example, video encoder 22 may signal the size of LCU using sequence level syntax.
  • In addition to signaling the size of CUs used to encode a picture in a video sequence, video encoder 22 may use various techniques to signal the size of a picture in the video sequence. The size of a picture associated with a video sequence may be equal to a picture size of a decoded picture stored in a decoded picture buffer (DPB). Pictures may have a unit size, such as a block of a selected height and width. The picture size may be picture sizes supported by HEVC or another video standard e.g., picture sizes may include 320×240, 1920×1080, and 7680×4320. Further, video encoder 22 may signal syntax elements for coding texture view components in a slice header. Thus, video encoder 22 may signal the size of a picture associated with a video sequence and/or a minimum smallest coding unit size associated with the video sequence using various syntax elements. Likewise, video decoder 28 may obtain various syntax elements indicating the size of a picture associated with a coded video sequence and/or a minimum smallest coding unit size associated with the coded video sequence and use such syntax elements in decoding the coded video sequence. In one example, video encoder 22 may signal the minimum smallest coding unit size and the size of a picture associated with a video sequence in sequence level syntax information wherein the picture size is a multiple of the minimum smallest coding unit size. In one example, video decoder 28 may obtain a coded video sequence including one or more coded pictures and a minimum smallest coding unit size for the video sequence in sequence level syntax information. Video decoder 28 may decode the coded pictures in the coded video sequence and store the decoded pictures in a decoded picture buffer with a picture size equal to a multiple of the minimum smallest coding unit size.
  • In some video compression techniques that utilize fixed sized macroblocks (e.g., 16×16), the size of a picture may be signaled in the unit of macroblocks. When the width or height is not equal to a multiple of the fixed sized macroblock, a cropping window may be used. For example, a 1920×1080 picture can be coded as 1920×1088 in the bitstream, but the cropping window signals the real window to make the picture to be displayed as 1920×1080. In other techniques, the size of a picture may be signaled in the unit of pixel. One example of signaling the size of a picture in the unit of pixel is provided by the HEVC standard.
  • In one example, video encoder 22 and video decoder 28 may code video data where a size of a coded picture in a picture sequence is defined in terms of a particular type of coded unit (CU). The particular types of coded blocks may be a LCU, a SCU, a minimum smallest CU, or a maximum smallest CU of each picture in the sequence of pictures, as described above. More specifically, video encoder 22 may indicate a unit used to signal a size of a picture relative to a size of a coding unit (CU) of the picture. In one example, the unit may be equal to a size of the smallest CU size that is allowed in the coded video sequence. In some cases, the smallest CU size is the same for all pictures in the video sequence. In other cases, the smallest CU size of each picture in the video sequence may be different. In that case, the smallest CU size for each picture in a video sequence may not be smaller than the smallest possible CU size for the video sequence. In another example, the unit indicated by video encoder 22 may be equal to a size of the largest coding unit (LCU) for a group of pictures. In some examples, a cropping window may be applied to the picture by video encoder 22 or video decoder 28 to reduce the size of the picture. The cropping window may crop at least one of a right side or a bottom side of a picture, for example.
  • In another example, video encoder 22 may signal a picture size relative to an aligned CU (ACU) size. An aligned CU size may be a CU size that is used to specify a picture size of a decoded picture stored in a decoded picture buffer (DPB). Such a picture size may have a width and height both as multiplications of the width and height of the aligned CU size. Similarly, the picture height may be a multiplication of a height of an aligned CU. The size (width and height) of the aligned CU can be signaled in the same way as in the other alternatives. For example video encoder 22 may signal an aligned CUs at various levels of syntax.
  • An ACU size may defined accord to the following examples: if all pictures in a video sequence have the same SCU size, the ACU may be defined as the SCU size. If, on the other hand, pictures in the video sequence have different SCU sizes, the ACU may be defined as the maximum or minimum SCU size among all pictures. Regardless of how the ACU is defined, the ACU size may be explicitly signaled by video encoder 22 in a sequence parameter set (SPS) or picture parameter set (PPS) associated with the video sequence. In some cases, the ACU size may be restricted such that it is equal to or less than the LCU size for a video sequence and equal to or larger than a SCU size for a video sequence.
  • Further, in some examples, video encoder 22 may signal a picture size in a unit of LCU or a unit of SCU. In some examples, the unit used to signal a size of a coded picture may be signaled in a SPS. This unit may be equal to the size of a smallest CU size that is allowed for the coded video sequence. In the PPS, the relative size of the smallest CU size for pictures referring to this PPS may be signaled by video encoder 22. In the case where all pictures in a video sequence have the same SCU size, additional signaling of the relative size of the smallest CU may not be necessary in the PPS. In the case where the smallest CU size varies between pictures in a video sequence, a relative smallest CU size for a portion of the pictures in the video sequence may be signaled in the PPS where the relative smallest CU size is larger than the minimum smallest CU for the video sequence. The relative smallest CU size may be signaled in the PPS as a difference between the relative smallest CU size for the portion of the pictures and the minimum smallest CU size for the video sequence.
  • Alternatively, the picture size can be signaled by video encoder 22 with a unit of LCU in SPS. However, since the cropping window can be further signaled by video encoder 22, using the cropping window may help video decoder identify the picture size, as long as the ACU size is known.
  • Alternatively, when the SCU size varies for the pictures in the video sequence, the unit may be equal to the size of a maximum smallest CU size allowed in pictures in the coded video sequence. In an example where the maximum CU size is 64×64 pixels, and some pictures have CU size of 4×4 pixels while and others have a smallest CU size of 8×8 pixels, the unit of the picture size may be 8×8 pixels. In this example, if a picture has a size of 64×65 pixels, a picture size would as signaled by video encoder 22 as 8 times 8 pixels by 9 times 8 pixels. Pixels in a picture that exceeded the 64×65 pixel size may be cropped using frame cropping syntax elements.
  • In some examples, a maximum CU size is 64×64 pixels and some pictures have a smallest possible CU size of 4×4 pixels while others have a smallest CU size of 8×8 pixels. For this example, if the particular type of CU is the minimum possible smallest CU, the unit for the picture size is of 4×4 pixels. Continuing with the example, if the particular type of CU is the maximum possible smallest CU, the unit for the picture size is of 8×8 pixels.
  • Tables 1-7 below provide example syntax that may be implemented by video encoder 22 and video decoder 28 to perform techniques described herein. Example syntax may be implemented by video encoder 22 and video decoder 28 using hardware, software, firmware, or any combination thereof.
  • As described above, video encoder 22 may signal the unit used to signal the size of the coded picture in the SPS (Sequence Parameter set). In one example, this unit may be equal to the size of the smallest CU size that is allowed in the coded video sequence. In this example, if the smallest CU size may vary in a coded bitstream between pictures in a group of pictures, the smallest CU size shall not be smaller than the size of this unit. Table 1 below provides an example of SPS raw byte sequence payload (RBSP) syntax used to signal the minimum smallest CU size for the coded picture in the video sequence. In the picture parameter set (PPS), the relative size of the smallest CU size for pictures referring to this PPS may be signaled.
  • TABLE 1
    Sequence parameter set RBSP syntax
    De-
    seq_parameter_set_rbsp( ) { scriptor
    profile_idc u(8)
    reserved_zero_8bits /* equal to 0 */ u(8)
    level_idc u(8)
    seq_parameter_set_id ue(v)
    max_temporal_layers_minus1 u(3)
    Figure US20130016769A1-20130117-P00001
    Figure US20130016769A1-20130117-P00002
    Figure US20130016769A1-20130117-P00003
    Figure US20130016769A1-20130117-P00002
    bit_depth_luma_minus8 ue(v)
    bit_depth_chroma_minus8 ue(v)
    pcm_bit_depth_luma_minus1 u(4)
    pcm_bit_depth_chroma_minus1 u(4)
    log2_max_frame_num_minus4 ue(v)
    pic_order_cnt_type ue(v)
    if( pic_order_cnt_type = = 0 )
    log2_max_pic_order_cnt_lsb_minus4 ue(v)
    else if( pic_order_cnt_type = = 1 ) {
    delta_pic_order_always_zero_flag u(1)
    offset_for_non_ref_pic se(v)
    num_ref_frames_in_pic_order_cnt_cycle ue(v)
    for( i = 0; i <
    num_ref_frames_in_pic_order_cnt_cycle; i++ )
    offset_for_ref_frame[ i ] se(v)
    }
    max_num_ref_frames ue(v)
    gaps_in_frame_num_value_allowed_flag u(1)
    log2_ 
    Figure US20130016769A1-20130117-P00004
     max_coding_block_size_minus3
    ue(v)
    log2_diff_max_pic_alligned_min_coding_block_size ue(v)
    Figure US20130016769A1-20130117-P00005
    Figure US20130016769A1-20130117-P00006
    log2_min_transform_block_size_minus2 ue(v)
    log2_diff_max_min_transform_block_size ue(v)
    log2_min_pcm_coding_block_size_minus3 ue(v)
    max_transform_hierarchy_depth_inter ue(v)
    max_transform_hierarchy_depth_intra ue(v)
    chroma_pred_from_luma_enabled_flag u(1)
    loop_filter_across_slice_flag u(1)
    sample_adaptive_offset_enabled_flag u(1)
    adaptive_loop_filter_enabled_flag u(1)
    pcm_loop_filter_disable_flag u(1)
    cu_qp_delta_enabled_flag u(1)
    temporal_id_nesting_flag u(1)
    rbsp_trailing_bits( )
    }
  • In Table 1, syntax element log2_max_coding_block_size_minus3 may specify the maximum size of a coding block. A variable Log2MaxCUSize may be set equal to: log2_max_coding_block_size_minus3+3.
  • In Table 1, syntax element
  • log2_diff max_pic_alligned_min_coding_block_size may specify the difference between the minimum size of a coding block in the whole coded video sequence and the maximum size of a coding block. In some cases, a group of pictures may be defined such that a picture in a group of pictures shall not have a smallest coding CU size smaller than the difference value.
  • A variable Log2SeqMinCUSize may be set equal to

  • log2_minmax_coding_block_size_minus3+3−log2_diff_max_pic_alligned_min_coding_block_size.
  • This value may range from 0 to log2 max coding block size minus3. Variables Log2MaxCUSize and Log2SeqMinCUSize may be used be video encoder 22 and video decoder 28 to process for video coding.
  • It should be noted that Table 1 includes syntax elements pic_width_in_luma_samples, pic_height_in_luma_samples, and log2_min_coding_block_size_minus3, which appear in Table 1 with a strikethrough. These syntax elements represent an alternative example where the size of a picture may be signaled by the video encoder 22 in the unit of pixels. In one example, where a picture size has a width and height both as multiplications of the width and height of the ACU size, where the ACU size is equal to the minimum SCU of a video sequence, as described above, video decoder 28 may determine whether a bitstream is conforming based on whether a condition the values of pic_width_in_luma_samples, pic_height_in_luma_samples, are integer multiples of log2_min_coding_block_size_minus3.
  • Table 2, below, provides another example of a SPS RBSP syntax, in accordance with the techniques that may be performed by video encoder 22 and video decoder 28.
  • TABLE 2
    Sequence parameter set RBSP syntax
    De-
    seq_parameter_set_rbsp( ) { scriptor
    profile_idc u(8)
    reserved_zero_8bits /* equal to 0 */ u(8)
    level_idc u(8)
    seq_parameter_set_id ue(v)
    max_temporal_layers_minus1 u(3)
    pic_width_in_alligned_scu ue(v)
    pic_height_in_alligned_scu ue(v)
    bit_depth_luma_minus8 ue(v)
    bit_depth_chroma_minus8 ue(v)
    pcm_bit_depth_luma_minus1 u(4)
    pcm_bit_depth_chroma_minus1 u(4)
    log2_max_frame_num_minus4 ue(v)
    pic_order_cnt_type ue(v)
    if( pic_order_cnt_type = = 0 )
    log2_max_pic_order_cnt_lsb_minus4 ue(v)
    else if( pic_order_cnt_type = = 1 ) {
    delta_pic_order_always_zero_flag u(1)
    offset_for_non_ref_pic se(v)
    num_ref_frames_in_pic_order_cnt_cycle ue(v)
    for( i = 0; i <
    num_ref_frames_in_pic_order_cnt_cycle; i++ )
    offset_for_ref_frame[ i ] se(v)
    }
    max_num_ref_frames ue(v)
    gaps_in_frame_num_value_allowed_flag u(1)
    log2_max_coding_block_size_minus3 ue(v)
    log2_diff_max_pic_alligned_min_coding_block_size ue(v)
    log2_min_transform_block_size_minus2 ue(v)
    log2_diff_max_min_transform_block_size ue(v)
    log2_min_pcm_coding_block_size_minus3 ue(v)
    max_transform_hierarchy_depth_inter ue(v)
    max_transform_hierarchy_depth_intra ue(v)
    chroma_pred_from_luma_enabled_flag u(1)
    loop_filter_across_slice_flag u(1)
    sample_adaptive_offset_enabled_flag u(1)
    adaptive_loop_filter_enabled_flag u(1)
    pcm_loop_filter_disable_flag u(1)
    cu_qp_delta_enabled_flag u(1)
    temporal_id_nesting_flag u(1)
    rbsp_trailing_bits( )
    }
  • According to Table 2, a width and height of a picture may be indicated by video encoder 22 relative to a width and height of an aligned CU. As described above, an aligned CU may be a CU that is used by video encoder 22 and video decoder 28 to specify a picture size. That is, the picture width may be a multiplication of a width of an aligned CU. As described above, the aligned CU size may be a size used to specify a picture size of a decoded picture stored in a decoded picture buffer (DPB). In some examples, a picture may contain one or more complete aligned CUs. In some examples, the aligned CU is an aligned smallest CU (SCU).
  • Table 2 specifies a height of a picture as pic_height_in_ alligned_scu and a width of the picture as pic_width_in_alligned_scu. pic_width_in_alligned_cu may specify the width of the pictures in the coded video sequence in a unit of aligned CUs. pic_height_in_alligned_cu may specify the height of the pictures in the coded video sequence in a unit of aligned CUs.
  • log2_max_coding_block_size_minus3 may specify the maximum size of a coding block. A variable Log2MaxCUSize may be set equal to log2_max_coding_block_size_minus3+3.
  • log2_diff max_pic_alligned_min_coding_block_size may specify a difference between a minimum size of a coding block in the whole coded video sequence and a maximum size of a coding block. In some examples, any picture may not have a smallest coding CU size smaller than that.
  • Table 3 below provides additional syntax elements for PPS RBSP that may be implemented by video encoder 22 and video decoder 28 in conjunction with SPS RBSP provided in either Table 1 or Table 2.
  • TABLE 3
    Picture parameter set RBSP syntax
    De-
    pic_parameter_set_rbsp( ) { scriptor
    pic_parameter_set_id ue(v)
    seq_parameter_set_id ue(v)
    entropy_coding_mode_flag u(1)
    num_temporal_layer_switching_point_flags ue(v)
    for( i = 0; i <
    num_temporal_layer_switching_point_flags; i++ )
    temporal_layer_switching_point_flag[ i ] u(1)
    num_ref_idx_l0_default_active_minus1 ue(v)
    num_ref_idx_l1_default_active_minus1 ue(v)
    pic_init_qp_minus26 /* relative to 26 */ se(v)
    pic_scu_size_delta ue(v)
    constrained_intra_pred_flag u(1)
    slice_granularity u(2)
    shared_pps_info_enabled_flag u(1)
    if( shared_pps_info_enabled_flag )
    if( adaptive_loop_filter_enabled_flag )
    alf_param( )
    if( cu_qp_delta_enabled_flag )
    max_cu_qp_delta_depth u(4)
    rbsp_trailing_bits( )
    }
  • In Table 3, pic_scu_size_delta may specify a minimum size of a coding unit of the pictures referring to this picture parameter set. This value may range from 0 to log2_diff_max_pic alligned min coding block size.
  • The variable Log2MinCUSize may be set equal to Log2SeqMinCUSize+pic_scu_size_delta. Alternatively, if the size of the aligned CU is a maximum of the smallest CU sizes of all the pictures, the variable Log2MinCUSize may be set equal to Log2SeqMinCUSize−pic_scu_size_delta. Alternatively, if the aligned CU size can be of any possible CU size, in this case, pic_scu_size_delta can be a signed value (se(v)) and the variable Log2MinCUSize may be set equal to Log2SeqMinCUSize−pic_scu_size_delta.
  • In addition to the examples descried above, in one example, an LCU size for a video sequence may be defined as N by N and the ACU size, selected according to one of the examples described above, may be defined as M by M. In this case, the picture size may be signaled by video encoder 22 in the unit of LCU size may be defined as WL by HL. Thus, the picture size with respect to the aligned CU size may be derived by video decoder 28 according to the following equation: (WL*N−crop_right_offset+M−1)/M*M by (HL*N−crop_bottom_offset+M−1)/M*M, wherein crop right offset and crop_bottom_offset are signaled by video encoder 22 in the cropping window and are the numbers of pixels cropped from the right and bottom boundary, respectively. It should be noted that WL may be the value of the pic_width_in_LCU and WH is the value of pic_height_in_LCU in the Table 5 below. It should also be noted that the operations (e.g., divisions) in the equation above may be integer calculations.
  • Table 4 below provides another example of additional syntax elements for seq parameter_set_rbsp( ) In this example, the sizes of one or more pictures may be signaled by video encoder 22 relative to a size of a largest coding unit (LCU). The sizes of the one or more pictures may be signaled by video encoder 22 in the sequence parameter set, for example.
  • The picture size may also be signaled by video encoder 22 with a num right offset ACU and num_bottom_offset_ACU, so the picture size is (WL*N−M*num_right _offset_ACU) by (HL*N−M*num_bottom_offset_ACU). These two parameters can be signaled in SPS or PPS. The decoded picture is to be stored in the decoded picture buffer with a picture with respect to the aligned CU, which is (WL*N−num crop acu_right*M) by (HL*N−num_crop_acu_right*M).
  • In some examples, a cropping window may be further signaled by video encoder 22. A cropping window may define at least a right side or a bottom side of a picture or other to be cropped. However, since the cropping window can be further signaled, the cropping window may be used to identifying the picture size when the aligned CU size is known.
  • TABLE 4
    Sequence parameter set RBSP syntax
    De-
    seq_parameter_set_rbsp( ) { scriptor
    profile_idc u(8)
    reserved_zero_8bits /* equal to 0 */ u(8)
    level_idc u(8)
    seq_parameter_set_id ue(v)
    max_temporal_layers_minus1 u(3)
    pic_width_in_LCU ue(v)
    pic_height_in_LCU ue(v)
    num_crop_acu_right ue(v)
    num_crop_acu_bottom ue(v)
    bit_depth_luma_minus8 ue(v)
    bit_depth_chroma_minus8 ue(v)
    pcm_bit_depth_luma_minus1 u(4)
    pcm_bit_depth_chroma_minus1 u(4)
    log2_max_frame_num_minus4 ue(v)
    pic_order_cnt_type ue(v)
    if( pic_order_cnt_type = = 0 )
    log2_max_pic_order_cnt_lsb_minus4 ue(v)
    else if( pic_order_cnt_type = = 1 ) {
    delta_pic_order_always_zero_flag u(1)
    offset_for_non_ref_pic se(v)
    num_ref_frames_in_pic_order_cnt_cycle ue(v)
    for( i = 0; i <
    num_ref_frames_in_pic_order_cnt_cycle; i++ )
    offset_for_ref_frame[ i ] se(v)
    }
    max_num_ref_frames ue(v)
    gaps_in_frame_num_value_allowed_flag u(1)
    log2_max_coding_block_size_minus3 ue(v)
    log2_diff_max_pic_alligned_min_coding_block_size ue(v)
    log2_min_transform_block_size_minus2 ue(v)
    log2_diff_max_min_transform_block_size ue(v)
    log2_min_pcm_coding_block_size_minus3 ue(v)
    max_transform_hierarchy_depth_inter ue(v)
    max_transform_hierarchy_depth_intra ue(v)
    chroma_pred_from_luma_enabled_flag u(1)
    loop_filter_across_slice_flag u(1)
    sample_adaptive_offset_enabled_flag u(1)
    adaptive_loop_filter_enabled_flag u(1)
    pcm_loop_filter_disable_flag u(1)
    cu_qp_delta_enabled_flag u(1)
    temporal_id_nesting_flag u(1)
    frame_cropping_flag u(1)
    if( frame_cropping_flag ) {
    frame_crop_left_offset ue(v)
    frame_crop_right_offset ue(v)
    frame_crop_top_offset ue(v)
    frame_crop_bottom_offset ue(v)
    }
    rbsp_trailing_bits( )
    }
  • In the example show in Table 4, a size of a picture in terms of width and height are given in terms of a largest coding unit (LCU). That is, pic_width_in_LCU may specify a size in pixels of one or more pictures relative to an LCU. Similarly, pic_height_in_LCU may specify a size in pixels of one or more pictures relative to an LCU. The syntax element num_crop_acu_right may be signaled in the cropping window and define a number of pixels to be cropped on a right side of a picture or other video block. Similarly, the syntax element num_crop_acu_bottom may be signaled in the cropping window and define a number of pixels to be cropped on a bottom side of a picture or other video block. In other examples, other sides of cropping windows are signaled.
  • An example is provided for illustrative purposes only. In this example, the LCU size is N by N and the aligned CU size is M by M. The picture size is signaled in terms of a unit of LCU size is given as WL by HL. In this example, WL is the value of pic_width_in_LCU and HL is the value of pic_height_in_LCU. Crop_right_offset may define a number of pixels to crop on a right side, and may be equal to num_crop_acu_right. Crop_bottom_offset may define a number of pixels to crop on a bottom side, and may be equal to num_crop_acu_bottom.
  • From the picture size relative to the LCU size and the aligned CU size, the picture size with respect to the aligned CU (ACU) size can be determined from the following equations
  • width of picture relative to ACU = ( WL * N - crop_right _offset + M - 1 ) M M ( 1 ) height of picture relative to ACU = ( HL * N - crop_bottom _offset + M - 1 ) M M ( 2 )
  • It should be note that the operations in equations 1 and 2 may be integer calculations.
  • Table 5 provides yet another example of additional syntax elements for pic_parameter set rbsp( ). In this example, at least one of num_right_offset_ACU and num_bottom_offset_ACU may be signaled. Table 6 shows num_right_offset_ACU and num_bottom_offset_ACU being signaled in the SPS, however, these values may be signaled elsewhere. For example, at least one of num_right_offset_ACU and num_bottom_offset_ACU may be signaled in a PPS.
  • TABLE 5
    Sequence parameter set RBSP syntax
    De-
    seq_parameter_set_rbsp( ) { scriptor
    profile_idc u(8)
    reserved_zero_8bits /* equal to 0 */ u(8)
    level_idc u(8)
    seq_parameter_set_id ue(v)
    max_temporal_layers_minus1 u(3)
    pic_width_in_LCU ue(v)
    pic_height_in_LCU ue(v)
    num_crop_acu_right ue(v)
    num_crop_acu_bottom ue(v)
    bit_depth_luma_minus8 ue(v)
    bit_depth_chroma_minus8 ue(v)
    pcm_bit_depth_luma_minus1 u(4)
    pcm_bit_depth_chroma_minus1 u(4)
    log2_max_frame_num_minus4 ue(v)
    pic_order_cnt_type ue(v)
    if( pic_order_cnt_type = = 0 )
    log2_max_pic_order_cnt_lsb_minus4 ue(v)
    else if( pic_order_cnt_type = = 1 ) {
    delta_pic_order_always_zero_flag u(1)
    offset_for_non_ref_pic se(v)
    num_ref_frames_in_pic_order_cnt_cycle ue(v)
    for( i = 0; i <
    num_ref_frames_in_pic_order_cnt_cycle; i++ )
    offset_for_ref_frame[ i ] se(v)
    }
    max_num_ref_frames ue(v)
    gaps_in_frame_num_value_allowed_flag u(1)
    log2_max_coding_block_size_minus3 ue(v)
    log2_diff_max_pic_alligned_min_coding_block_size ue(v)
    log2_min_transform_block_size_minus2 ue(v)
    log2_diff_max_min_transform_block_size ue(v)
    log2_min_pcm_coding_block_size_minus3 ue(v)
    max_transform_hierarchy_depth_inter ue(v)
    max_transform_hierarchy_depth_intra ue(v)
    chroma_pred_from_luma_enabled_flag u(1)
    loop_filter_across_slice_flag u(1)
    sample_adaptive_offset_enabled_flag u(1)
    adaptive_loop_filter_enabled_flag u(1)
    pcm_loop_filter_disable_flag u(1)
    cu_qp_delta_enabled_flag u(1)
    temporal_id_nesting_flag u(1)
    frame_cropping_flag u(1)
    if( frame_cropping_flag ) {
    frame_crop_left_offset ue(v)
    frame_crop_right_offset ue(v)
    frame_crop_top_offset ue(v)
    frame_crop_bottom_offset ue(v)
    }
    rbsp_trailing_bits( )
    }
  • The value num_crop_acu_right in Table 5 may specify a number of aligned CU sizes to be cropped from the LCU aligned picture from the right. The cropped picture may be stored in the DPB. The value num_crop_acu_bottom may specify a number of aligned CU sizes to be cropped from the LCU aligned picture from the bottom, to get the picture to be stored in the DPB.
  • In an example corresponding with Table 5, the picture size can also be signaled with a num_right_offset_ACU and num_bottom_offset_ACU. The picture size may be determined as:

  • width of picture relative to ACU=WL(N−M)(num_right_offset ACU)  (3)

  • height of picture relative to ACU=WL(N−M)(num_bottom_offset ACU)  (4)
  • A decoded picture that may be stored in a decoded picture buffer with a picture size with respect to the aligned CU may be given as follows:

  • (WL*N−num_crop_acu_right*M) by (HL*N−num_crop_acu_bottom*M)  (5)
  • Thus, a size (height and width in pixels) of the aligned CU may be signaled in the same way as in the examples above with respect to the picture size. For example, if all pictures have the same smallest CU (SCU) size, the size of the aligned CU may be the SCU size. As another example, if the pictures have different SCU sizes, the aligned CU size may be a maximum or a minimum SCU size among all the pictures. The aligned CU size may be signaled explicitly in at least one of the SPS or in the PPS. The aligned CU size may be equal or less than a size of the LCU and equal or larger than the size of the SCU.
  • Table 6 below provides one example of frame cropping syntax that may be used in conjunction with any of the example embodiments described above. In one example, the cropping window may be in sequence parameter set and follow the same semantics as those in H.264/AVC).
  • TABLE 6
    Frame Cropping Syntax
    frame_cropping_flag 0 u(1)
    if( frame_cropping_flag ) {
    frame_crop_left_offset 0 ue(v)
    frame_crop_right_offset 0 ue(v)
    frame_crop_top_offset 0 ue(v)
    frame_crop_bottom_offset 0 ue(v)
    }
  • FIG. 2 is a block diagram illustrating an example video encoder that may be configured to perform the techniques described in this disclosure. Video encoder 50 may be configured to determine a smallest coding unit size for each of a plurality of pictures defining a video sequence, wherein a smallest coding unit size is selected from a plurality of possible coding unit sizes. Further, video encoder 50 may be configured to determine a minimum coding unit size for the video sequence based on the smallest coding unit determined for each of the plurality pictures defining the video sequence. In addition, video encoder 50 may be configured to determine a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the minimum coding unit size value. Moreover, video encoder 50 may be configured to signal the minimum coding unit size value in sequence level syntax information.
  • Video encoder 50 may correspond to video encoder 22 of device 20, or a video encoder of a different device. As shown in FIG. 2, video encoder 50 may include a prediction encoding module 32, quadtree partition module 31, adders 48 and 51, and a memory 34. Video encoder 50 may also include a transform module 38 and a quantization module 40, as well as an inverse quantization module 42 and an inverse transform module 44. Video encoder 50 may also include an entropy coding module 46, and a filter module 47, which may include deblock filters and post loop and/or in loop filters. The encoded video data and syntax information that defines the manner of the encoding may be communicated to entropy encoding module 46, which performs entropy encoding on the bitstream.
  • As shown in FIG. 2, prediction encoding module 32 may support a plurality of different coding modes 35 used in the encoding of video blocks. Prediction encoding module 32 may also comprise a motion estimation (ME) module 36 and a motion compensation (MC) module 37.
  • During the encoding process, video encoder 50 receives input video data. Quadtree partition module 31 may partition units of video data into smaller units. For example, quadtree partition module 31 may break an LCU into smaller CU's and PU's according to HEVC partitioning described above. Prediction encoding module 32 performs predictive coding techniques on video blocks (e.g. CUs and PUs). For inter coding, prediction encoding module 32 compares CUs or PUs to various predictive candidates in one or more video reference frames or slices (e.g., one or more “list” of reference data) in order to define a predictive block. For intra coding, prediction encoding module 32 generates a predictive block based on neighboring data within the same video frame or slice. Prediction encoding module 32 outputs the prediction block and adder 48 subtracts the prediction block from the CU or PU being coded in order to generate a residual block. At least some video blocks may be coded using advanced motion vector prediction (AMVP) described in HEVC.
  • In some cases, prediction encoding module may include a rate-distortion (R-D) module that compares coding results of video blocks (e.g., CUs or PUs) in different modes. In this case, prediction encoding module 32 may also include a mode selection module to analyze the coding results in terms of coding rate (i.e., coding bits required for the block) and distortion (e.g., representing the video quality of the coded block relative to the original block) in order to make mode selections for video blocks. In this way, the R-D module may provide analysis of the results of different modes to allow the mode selection module to select the desired mode for different video blocks.
  • Referring again to FIG. 2, after prediction encoding module 32 outputs the prediction block, and after adder 48 subtracts the prediction block from the video block being coded in order to generate a residual block of residual pixel values, transform module 38 applies a transform to the residual block. The transform may comprise a discrete cosine transform (DCT) or a conceptually similar transform such as that defined by the ITU H.264 standard or the HEVC standard. So-called “butterfly” structures may be defined to perform the transforms, or matrix-based multiplication could also be used. In some examples, consistent with the HEVC standard, the size of the transform may vary for different CUs, e.g., depending on the level of partitioning that occurs with respect to a given LCU. Transform units (TUs) may be defined in order to set the transform size applied by transform module 38. Wavelet transforms, integer transforms, sub-band transforms or other types of transforms could also be used. In any case, transform module 38 applies the transform to the residual block, producing a block of residual transform coefficients. The transform, in general, may convert the residual information from a pixel domain to a frequency domain.
  • Quantization module 40 then quantizes the residual transform coefficients to further reduce bit rate. Quantization module 40, for example, may limit the number of bits used to code each of the coefficients. In particular, quantization module 40 may apply the delta QP defined for the LCU so as to define the level of quantization to apply (such as by combining the delta QP with the QP of the previous LCU or some other known QP). After quantization is performed on residual samples, entropy coding module 46 may scan and entropy encode the data.
  • CAVLC is one type of entropy coding technique supported by the ITU H.264 standard and the emerging HEVC standard, which may be applied on a vectorized basis by entropy coding module 46. CAVLC uses variable length coding (VLC) tables in a manner that effectively compresses serialized “runs” of coefficients and/or syntax elements. CABAC is another type of entropy coding technique supported by the ITU H.264 standard or the HEVC standard, which may be applied on a vectorized basis by entropy coding module 46. CABAC may involve several stages, including binarization, context model selection, and binary arithmetic coding. In this case, entropy coding module 46 codes coefficients and syntax elements according to CABAC. Many other types of entropy coding techniques also exist, and new entropy coding techniques will likely emerge in the future. This disclosure is not limited to any specific entropy coding technique.
  • Following the entropy coding by entropy encoding module 46, the encoded video may be transmitted to another device or archived for later transmission or retrieval. The encoded video may comprise the entropy coded vectors and various syntax information. Such information can be used by the decoder to properly configure the decoding process. Inverse quantization module 42 and inverse transform module 44 apply inverse quantization and inverse transform, respectively, to reconstruct the residual block in the pixel domain. Summer 51 adds the reconstructed residual block to the prediction block produced by prediction encoding module 32 to produce a reconstructed video block for storage in memory 34. Memory 34 may include a decoded picture buffer and reconstructed video blocks may form a decoded picture. Prior to such storage, however, filter module 47 may apply filtering to the video block to improve video quality. The filtering applied by filter module 47 may reduce artifacts and smooth pixel boundaries. Moreover, filtering may improve compression by generating predictive video blocks that comprise close matches to video blocks being coded.
  • FIG. 3 is a flowchart illustrating an example technique for encoding video data that may be performed by video encoder 22 or video encoder 50. Video encoder 20 or video encoder 50 may determine a smallest coding unit size for each of a plurality of pictures defining a video sequence (302). In some cases, a smallest coding unit size may be selected from a plurality of possible coding unit sizes. For example, the smallest coding unit may be one of 4×4, 8×8, 16×16, 32×32 or 64×64, where 64×64 is the maximum possible coding unit size. Video encoder 20 or video encoder 50 may determine an aligned coding unit size for the video sequence from the determined smallest coding units (304). Video encoder 20 of video encoder 50 may determine the aligned coding size based on the techniques described above. Video encoder 20 or video encoder 50 determine a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the aligned coding unit size value (306). In some cases the picture size associated with the video sequence may be a picture size of a decoded picture stored in a decoded picture buffer. Video encoder 20 or video encoder 50 may signal the aligned coding unit size value in sequence level syntax information (308).
  • FIG. 4 is a block diagram illustrating an example of a video decoder 60, which decodes a video sequence that is encoded in the manner described herein. The techniques of this disclosure may be performed by video decoder 60 in some examples. Video decoder 60 may be configured to obtain a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size. Further, video decoder 60 may be configured to obtain a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size and the second coding unit size. In addition, video decoder 60 may be configured to store the decoded picture in a decoded picture buffer.
  • Video decoder 60 includes an entropy decoding module 52, which performs the reciprocal decoding function of the encoding performed by entropy encoding module 46 of FIG. 2. In particular, entropy decoding module 52 may perform CAVLC or CABAC decoding, or any other type of entropy decoding used by video encoder 50. Video decoder 60 also includes a prediction decoding module 54, an inverse quantization module 56, an inverse transform module 58, a memory 62, and a summer 64. In particular, like video encoder 50, video decoder 60 includes a prediction decoding module 54 and a filter module 57. Prediction decoding module 54 of video decoder 60 may include motion compensation module 86, which decodes inter coded blocks and possibly includes one or more interpolation filters for sub-pixel interpolation in the motion compensation process. Prediction decoding module 54 may also include an intra prediction module for decoding intra modes. Prediction decoding module 54 may support a plurality of modes 35. Filter module 57 may filter the output of summer 64, and may receive entropy decoded filter information so as to define the filter coefficients applied in the loop filtering.
  • Upon receiving encoded video data, entropy decoding module 52 performs reciprocal decoding to the encoding performed by entropy encoding module 46 (of encoder 50 in FIG. 2). At the decoder, entropy decoding module 52 parses the bitstream to determine LCU's and the corresponding partitioning associated with the LCU's. In some examples, an LCU or the CUs of the LCU may define coding modes that were used, and these coding modes may include the bi-predictive merge mode. Accordingly, entropy decoding module 52 may forward the syntax information to prediction unit that identifies the bi-predictive merge mode. Memory 62 may include a decoded picture buffer. Decoded picture buffer may store a decoded picture. The decoded picture may be associated with a video sequences such that the decoder picture is referenced during prediction decoding. Syntax information may be used by video decoder 60 to determine the size of the decoded picture to be stored in the decoded picture buffer according to the techniques described herein.
  • FIG. 5 is a flowchart illustrating an example technique for decoding video data that may be performed by video decoder 28 or video decoder 60. Video decoder 28 or video decoder 60 may obtain a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size (502). In one example, first picture may be coded using a smallest coding unit size of 4×4 and second picture may be coded using a smallest coding unit size of 8×8. Video decoder 28 or video decoder 60 may obtain a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size, the second coding unit size or a maximum coding unit size(504). In one example, the picture size may be 1920×1080. Video decoder 28 or video decoder 60 may store the decoded picture in a decoded picture buffer (506). Further, video decoder 28 or video decoder 60 may determine whether a bitstream including a video sequence is a conforming bitstream based on whether the obtained picture size is a multiple of the aligned coding unit size.
  • In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium and executed by a hardware-based processing unit. 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. In this manner, 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.
  • By way of example, and not limitation, 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. For example, if instructions are transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. It should be understood, however, that 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, as used herein, 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.
  • Instructions may be executed by one or more 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. Accordingly, the term “processor,” as used herein may refer to any of the foregoing structure or any other structure suitable for implementation of the techniques described herein. In addition, in some aspects, 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). 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.
  • Various aspects of the disclosure have been described. These and other aspects are within the scope of the following claims.

Claims (40)

1. A method of encoding video data comprising:
determining a smallest coding unit size for each of a plurality of pictures defining a video sequence, wherein a smallest coding unit size is selected from a plurality of possible coding unit sizes including a maximum possible coding unit size;
determining an aligned coding unit size for the video sequence based on the plurality of possible coding unit sizes;
determining a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the aligned coding unit size; and
signaling the aligned coding unit size value in sequence level syntax information.
2. The method of claim 1, wherein the aligned coding unit size is the maximum possible coding unit size.
3. The method of claim 2, wherein the plurality of possible coding unit sizes includes a maximum coding unit size of 64×64 pixels.
4. The method of claim 1, wherein determining a smallest coding unit size for each of the plurality of pictures includes determining a first smallest coding unit size of 4×4 pixels for a first picture and determining a second smallest coding unit size of 8×8 pixels for a second picture; and wherein the aligned coding unit size for the video sequence is 4×4 pixels.
5. The method of claim 1, wherein determining a smallest coding unit size for each of the plurality of pictures includes determining a first smallest coding unit size of 4×4 pixels for a first picture and determining a second smallest coding unit size of 8×8 pixels for a second picture; and wherein the aligned coding unit size for the video sequence is 8×8 pixels.
6. The method of claim 1, wherein the picture size specifies a picture size of a decoded picture stored in a decoded picture buffer.
7. A device configured to encode video data comprising:
means for determining a smallest coding unit size for each of a plurality of pictures defining a video sequence, wherein a smallest coding unit size is selected from a plurality of possible coding unit sizes including a maximum possible coding unit size;
means for determining an aligned coding unit size for the video sequence based on the plurality of possible coding unit sizes;
means for determining a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the aligned coding unit size; and
means for signaling the aligned coding unit size value in sequence level syntax information.
8. The device of claim 7, wherein the aligned coding unit size is the maximum possible coding unit size.
9. The method of claim 7, wherein the plurality of possible coding unit sizes includes a maximum coding unit size of 64×64 pixels.
10. The device of claim 7, wherein determining a smallest coding unit size for each of a plurality of pictures includes determining a first smallest coding unit size of 4×4 pixels for a first picture and determining a second smallest coding unit size of 8×8 pixels for a second picture; and wherein the aligned coding unit size for the video sequence is 4×4 pixels.
11. The device of claim 7, wherein determining a smallest coding unit size for each of a plurality of pictures includes determining a first smallest coding unit size of 4×4 pixels for a first picture and determining a second smallest coding unit size of 8×8 pixels for a second picture; and wherein the aligned coding unit size for the video sequence is 8×8 pixels.
12. The device of claim 7, wherein the picture size specifies a picture size of a decoded picture stored in a decoded picture buffer.
13. A device comprising a video encoder configured to:
determine a smallest coding unit size for each of a plurality of pictures defining a video sequence, wherein a smallest coding unit size is selected from a plurality of possible coding unit sizes including a maximum possible coding unit size;
determine an aligned coding unit size for the video sequence based on the plurality of possible coding unit sizes;
determine a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the aligned coding unit size; and
signal the aligned coding unit size value in sequence level syntax information.
14. The device of claim 13, wherein the aligned coding unit size is the maximum possible coding unit size.
15. The device of claim 14, wherein the plurality of possible coding unit sizes includes a maximum coding unit size of 64×64 pixels.
16. The device of claim 13, wherein determining a smallest coding unit size for each of a plurality of pictures includes determining a first smallest coding unit size of 4×4 pixels for a first picture and determining a second smallest coding unit size of 8×8 pixels for a second picture; and wherein the aligned coding unit size for the video sequence is 4×4 pixels.
17. The device of claim 13, wherein determining a smallest coding unit size for each of a plurality of pictures includes determining a first smallest coding unit size of 4×4 pixels for a first picture and determining a second smallest coding unit size of 8×8 pixels for a second picture; and wherein the aligned coding unit size for the video sequence is 8×8 pixels.
18. The device of claim 13, wherein the picture size specifies a picture size of a decoded picture stored in a decoded picture buffer.
19. A computer readable medium comprising instructions stored thereon that when executed cause a processor to:
determine a smallest coding unit size for each of a plurality of pictures defining a video sequence, wherein a smallest coding unit size is selected from a plurality of possible coding unit sizes including a maximum possible coding unit size;
determine an aligned coding unit size for the video sequence based on the plurality of possible coding unit sizes;
determine a picture size associated with the video sequence, wherein the picture size associated with the video sequence is an multiple of the aligned coding unit size; and
signal the aligned coding unit size value in sequence level syntax information.
20. The computer readable medium of claim 19, wherein the aligned coding unit size is the maximum possible coding unit size.
21. The computer readable medium of claim 20, wherein the plurality of possible coding unit sizes includes a maximum coding unit size of 64×64 pixels.
22. The computer readable medium of claim 19, wherein determining a smallest coding unit size for each of a plurality of pictures includes determining a first smallest coding unit size of 4×4 pixels for a first picture and determining a second smallest coding unit size of 8×8 pixels for a second picture; and wherein the minimum coding unit size for the video sequence is 4×4 pixels.
23. The computer readable medium of claim 19, wherein determining a smallest coding unit size for each of a plurality of pictures includes determining a first smallest coding unit size of 4×4 pixels for a first picture and determining a second smallest coding unit size of 8×8 pixels for a second picture; and wherein the minimum coding unit size for the video sequence is 8×8 pixels.
24. The device of claim 19, wherein the picture size specifies a picture size of a decoded picture stored in a decoded picture buffer.
25. A method of decoding video data comprising:
obtaining a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size;
obtaining a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size, the second coding unit size, or a maximum coding unit size; and
storing the decoded picture in a decoded picture buffer.
26. The method of claim 25, wherein the first smallest coding unit size is 4×4 pixels and the second coding unit size is 8×8 pixels and the pictures size is a multiple of the first coding unit size.
27. The method of claim 25, wherein the first smallest coding unit size is 4×4 pixels and the second coding unit size is 8×8 pixels and the pictures size is a multiple of the second coding unit size.
28. The method of claim 25, wherein the maximum coding unit size is 64×64 pixels and the pictures size is a multiple of the maximum coding unit size.
29. A device configured to decode video data comprising:
means for obtaining a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size;
means for obtaining a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size, the second coding unit size, or a maximum coding unit size; and
means for storing the decoded picture in a decoded picture buffer.
30. The device of claim 29, wherein the first smallest coding unit size is 4×4 pixels and the second coding unit size is 8×8 pixels and the pictures size is a multiple of the first coding unit size.
31. The device of claim 29, wherein the first smallest coding unit size is 4×4 pixels and the second coding unit size is 8×8 pixels and the pictures size is a multiple of the second coding unit size.
32. The device of claim 29, wherein the maximum coding unit size is 64×64 pixels and the pictures size is a multiple of the maximum coding unit size.
33. A device comprising a video decoder configured to:
obtain a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size;
obtain a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size, the second coding unit size, or a maximum coding unit size; and
store the decoded picture in a decoded picture buffer.
34. The device of claim 33, wherein the first smallest coding unit size is 4×4 pixels and the second coding unit size is 8×8 pixels and the pictures size is a multiple of the first coding unit size.
35. The device of claim 33, wherein the first smallest coding unit size is 4×4 pixels and the second coding unit size is 8×8 pixels and the pictures size is a multiple of the second coding unit size.
36. The device of claim 33, wherein the maximum coding unit size is 64×64 pixels and the pictures size is a multiple of the maximum coding unit size.
37. A computer readable medium comprising instructions stored thereon that when executed cause a processor to:
obtain a coded video sequence including a first picture coded using a first smallest coding unit size and a second picture coded using second smallest coding unit size;
obtain a picture size of a decoded picture to be stored in a decoded picture buffer wherein the picture size is a multiple of one of the first coding unit size, the second coding unit size, or a maximum coding unit size; and
store the decoded picture in a decoded picture buffer.
38. The computer readable medium of claim 37, wherein the first smallest coding unit size is 4×4 pixels and the second coding unit size is 8×8 pixels and the pictures size is a multiple of the first coding unit size.
39. The computer readable medium of claim 37, wherein the first smallest coding unit size is 4×4 pixels and the second coding unit size is 8×8 pixels and the pictures size is a multiple of the first coding unit size.
40. The computer readable medium of claim 37, wherein the maximum coding unit size is 64×64 pixels and the pictures size is a multiple of the maximum coding unit size.
US13/550,384 2011-07-17 2012-07-16 Signaling picture size in video coding Abandoned US20130016769A1 (en)

Priority Applications (22)

Application Number Priority Date Filing Date Title
US13/550,384 US20130016769A1 (en) 2011-07-17 2012-07-16 Signaling picture size in video coding
DK12740268.3T DK2732629T3 (en) 2011-07-17 2012-07-17 SIGNALIZING PICTURE SIZE IN VIDEO CODING
RU2014105655/08A RU2586027C2 (en) 2011-07-17 2012-07-17 Signalling image size when encoding video signal
CA2841953A CA2841953C (en) 2011-07-17 2012-07-17 Signaling picture size in video coding
AU2012284120A AU2012284120B2 (en) 2011-07-17 2012-07-17 Signaling picture size in video coding
CN201280035512.0A CN103718551B (en) 2011-07-17 2012-07-17 In video coding picture size is sent with signal
KR1020147004055A KR101497882B1 (en) 2011-07-17 2012-07-17 Signaling picture size in video coding
TW101125715A TWI502967B (en) 2011-07-17 2012-07-17 Signaling picture size in video coding
PT127402683T PT2732629T (en) 2011-07-17 2012-07-17 Signaling picture size in video coding
HUE12740268A HUE030661T2 (en) 2011-07-17 2012-07-17 Signaling picture size in video coding
MYPI2014000024A MY165045A (en) 2011-07-17 2012-07-17 Signaling picture size in video coding
PL12740268T PL2732629T3 (en) 2011-07-17 2012-07-17 Signaling picture size in video coding
PCT/US2012/047066 WO2013012864A1 (en) 2011-07-17 2012-07-17 Signaling picture size in video coding
BR112014000941-4A BR112014000941B1 (en) 2011-07-17 2012-07-17 Flag image size in video encoding
JP2014521714A JP5792388B2 (en) 2011-07-17 2012-07-17 Picture size signaling in video coding
SI201230768A SI2732629T1 (en) 2011-07-17 2012-07-17 Signaling picture size in video coding
ES12740268.3T ES2639030T3 (en) 2011-07-17 2012-07-17 Image size signaling in video encoding
MX2014000720A MX2014000720A (en) 2011-07-17 2012-07-17 Signaling picture size in video coding.
EP12740268.3A EP2732629B1 (en) 2011-07-17 2012-07-17 Signaling picture size in video coding
IL230248A IL230248A (en) 2011-07-17 2013-12-30 Signaling picture size in video coding
US14/449,034 US20140341275A1 (en) 2011-07-17 2014-07-31 Signaling picture size in video coding
US17/657,563 US11700384B2 (en) 2011-07-17 2022-03-31 Signaling picture size in video coding

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161508659P 2011-07-17 2011-07-17
US201161530819P 2011-09-02 2011-09-02
US201161549480P 2011-10-20 2011-10-20
US13/550,384 US20130016769A1 (en) 2011-07-17 2012-07-16 Signaling picture size in video coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/449,034 Continuation US20140341275A1 (en) 2011-07-17 2014-07-31 Signaling picture size in video coding

Publications (1)

Publication Number Publication Date
US20130016769A1 true US20130016769A1 (en) 2013-01-17

Family

ID=47518908

Family Applications (3)

Application Number Title Priority Date Filing Date
US13/550,384 Abandoned US20130016769A1 (en) 2011-07-17 2012-07-16 Signaling picture size in video coding
US14/449,034 Abandoned US20140341275A1 (en) 2011-07-17 2014-07-31 Signaling picture size in video coding
US17/657,563 Active US11700384B2 (en) 2011-07-17 2022-03-31 Signaling picture size in video coding

Family Applications After (2)

Application Number Title Priority Date Filing Date
US14/449,034 Abandoned US20140341275A1 (en) 2011-07-17 2014-07-31 Signaling picture size in video coding
US17/657,563 Active US11700384B2 (en) 2011-07-17 2022-03-31 Signaling picture size in video coding

Country Status (20)

Country Link
US (3) US20130016769A1 (en)
EP (1) EP2732629B1 (en)
JP (1) JP5792388B2 (en)
KR (1) KR101497882B1 (en)
CN (1) CN103718551B (en)
AU (1) AU2012284120B2 (en)
BR (1) BR112014000941B1 (en)
CA (1) CA2841953C (en)
DK (1) DK2732629T3 (en)
ES (1) ES2639030T3 (en)
HU (1) HUE030661T2 (en)
IL (1) IL230248A (en)
MX (1) MX2014000720A (en)
MY (1) MY165045A (en)
PL (1) PL2732629T3 (en)
PT (1) PT2732629T (en)
RU (1) RU2586027C2 (en)
SI (1) SI2732629T1 (en)
TW (1) TWI502967B (en)
WO (1) WO2013012864A1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140247874A1 (en) * 2011-10-07 2014-09-04 Sony Corporation Image processing apparatus and method
CN107820077A (en) * 2016-09-14 2018-03-20 北京金山云网络技术有限公司 A kind of maximum available code unit size determines method and device
WO2019009473A1 (en) * 2017-07-04 2019-01-10 엘지전자 주식회사 Area-based processing method and apparatus for 360-degree video
WO2020142358A1 (en) * 2019-01-02 2020-07-09 Tencent America LLC Adaptive picture resolution rescaling for inter-prediction and display
US20200359012A1 (en) * 2015-05-12 2020-11-12 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image by using blocks determined by means of adaptive order
US11012710B2 (en) 2019-03-06 2021-05-18 Tencent America LLC Techniques for intra prediction for 360 image and video coding
US20210329240A1 (en) * 2017-05-26 2021-10-21 Sk Telecom Co., Ltd. Apparatus and method for video encoding or decoding supporting various block sizes
US11218697B2 (en) * 2017-05-26 2022-01-04 Sk Telecom Co., Ltd. Apparatus and method for video encoding or decoding supporting various block sizes
US11223825B2 (en) * 2018-03-05 2022-01-11 Panasonic Intellectual Property Corporation Of America Decoder and decoding method
US11297349B2 (en) * 2017-05-31 2022-04-05 Sharp Kabushiki Kaisha Video decoding device and video encoding device
US11700384B2 (en) 2011-07-17 2023-07-11 Qualcomm Incorporated Signaling picture size in video coding
US11917173B2 (en) 2019-01-09 2024-02-27 Huawei Technologies Co., Ltd. Sub-picture sizing in video coding

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106658014B (en) * 2011-06-30 2021-01-08 三菱电机株式会社 Image encoding device and method, image decoding device and method
WO2016205999A1 (en) * 2015-06-23 2016-12-29 Mediatek Singapore Pte. Ltd. Adaptive coding group for image/video coding
US10212444B2 (en) * 2016-01-15 2019-02-19 Qualcomm Incorporated Multi-type-tree framework for video coding
US11159795B2 (en) * 2019-03-04 2021-10-26 Tencent America LLC Max transform size control
US20200314423A1 (en) * 2019-03-25 2020-10-01 Qualcomm Incorporated Fixed filters with non-linear adaptive loop filter in video coding
US11438611B2 (en) 2019-12-11 2022-09-06 Hfi Innovation Inc. Method and apparatus of scaling window constraint for worst case bandwidth consideration for reference picture resampling in video coding
US11445176B2 (en) 2020-01-14 2022-09-13 Hfi Innovation Inc. Method and apparatus of scaling window constraint for worst case bandwidth consideration for reference picture resampling in video coding
US11575941B2 (en) * 2021-03-23 2023-02-07 Tencent America LLC Parallel processing in video coding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060072669A1 (en) * 2004-10-06 2006-04-06 Microsoft Corporation Efficient repeat padding for hybrid video sequence with arbitrary video resolution
US20110194613A1 (en) * 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks
US20120106652A1 (en) * 2010-11-01 2012-05-03 Mediatek Inc. Apparatus and Method for High Efficiency Video Coding Using Flexible Slice Structure

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3844844B2 (en) 1997-06-06 2006-11-15 富士通株式会社 Moving picture coding apparatus and moving picture coding method
KR100925968B1 (en) 2001-12-17 2009-11-09 마이크로소프트 코포레이션 Skip macroblock coding
US7170937B2 (en) 2002-05-01 2007-01-30 Texas Instruments Incorporated Complexity-scalable intra-frame prediction technique
WO2003105070A1 (en) 2002-06-01 2003-12-18 Nokia Corporation Spatial prediction based intra coding
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
JP4509104B2 (en) 2003-03-03 2010-07-21 エージェンシー・フォア・サイエンス・テクノロジー・アンド・リサーチ Fast mode decision algorithm for intra prediction in advanced video coding
US7852919B2 (en) 2003-09-07 2010-12-14 Microsoft Corporation Field start code for entry point frames with predicted first field
EP1558039A1 (en) 2004-01-21 2005-07-27 Deutsche Thomson-Brandt Gmbh Method and apparatus for generating/evaluating prediction information in picture signal encoding/decoding
US7586924B2 (en) 2004-02-27 2009-09-08 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
JP4501631B2 (en) 2004-10-26 2010-07-14 日本電気株式会社 Image coding apparatus and method, computer program for image coding apparatus, and portable terminal
JP2007043651A (en) 2005-07-05 2007-02-15 Ntt Docomo Inc Dynamic image encoding device, dynamic image encoding method, dynamic image encoding program, dynamic image decoding device, dynamic image decoding method, and dynamic image decoding program
US20080095228A1 (en) 2006-10-20 2008-04-24 Nokia Corporation System and method for providing picture output indications in video coding
FR2908007A1 (en) 2006-10-31 2008-05-02 Thomson Licensing Sas Image sequence i.e. video, encoding method for video compression field, involves pre-selecting intra-encoding modes of macro-block with directions that correspond to gradient activities with minimal value to determine encoding mode
FR2916931A1 (en) 2007-05-29 2008-12-05 Thomson Licensing Sas METHOD OF SELECTING ENCODING DATA AND ENCODING DEVICE IMPLEMENTING SAID METHOD
JP4523625B2 (en) 2007-08-07 2010-08-11 パナソニック株式会社 Image coding apparatus and method
TW200910971A (en) 2007-08-22 2009-03-01 Univ Nat Cheng Kung Direction detection algorithms for H.264 intra prediction
DE102007049351A1 (en) 2007-10-15 2009-04-16 Siemens Ag A method and apparatus for creating a coded output video stream from at least two coded input video streams, and using the apparatus and coded input video stream
US8121197B2 (en) 2007-11-13 2012-02-21 Elemental Technologies, Inc. Video encoding and decoding using parallel processors
KR101306834B1 (en) 2008-09-22 2013-09-10 에스케이텔레콤 주식회사 Video Encoding/Decoding Apparatus and Method by Using Prediction Possibility of Intra Prediction Mode
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
US8634456B2 (en) * 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
US20100098156A1 (en) 2008-10-16 2010-04-22 Qualcomm Incorporated Weighted prediction based on vectorized entropy coding
JP5169978B2 (en) 2009-04-24 2013-03-27 ソニー株式会社 Image processing apparatus and method
US9154798B2 (en) 2009-09-14 2015-10-06 Thomson Licensing Methods and apparatus for efficient video encoding and decoding of intra prediction mode
KR101457894B1 (en) 2009-10-28 2014-11-05 삼성전자주식회사 Method and apparatus for encoding image, and method and apparatus for decoding image
EP2536151A4 (en) 2010-02-10 2014-03-19 Lg Electronics Inc Method and apparatus for processing a video signal
KR102223526B1 (en) 2010-04-09 2021-03-04 엘지전자 주식회사 Method and apparatus for processing video data
US8902978B2 (en) 2010-05-30 2014-12-02 Lg Electronics Inc. Enhanced intra prediction mode signaling
KR102047507B1 (en) 2010-11-25 2019-12-02 엘지전자 주식회사 Method offor signaling image information, and method offor decoding image information using same
KR20120070479A (en) 2010-12-21 2012-06-29 한국전자통신연구원 Method and apparatus for encoding and decoding of intra prediction mode information
EP2661880A4 (en) 2011-01-07 2016-06-29 Mediatek Singapore Pte Ltd Method and apparatus of improved intra luma prediction mode coding
BR112013014371B8 (en) 2011-01-07 2022-05-24 Hfi Innovation Inc Improved intrachrominance prediction mode encoding method and apparatus
JP5781313B2 (en) 2011-01-12 2015-09-16 株式会社Nttドコモ Image prediction coding method, image prediction coding device, image prediction coding program, image prediction decoding method, image prediction decoding device, and image prediction decoding program
JP2012147332A (en) 2011-01-13 2012-08-02 Sony Corp Encoding device, encoding method, decoding device, and decoding method
CN102595121A (en) 2011-01-15 2012-07-18 华为技术有限公司 Intra-frame prediction mode binarization method, device and system as well as decoding method
CN102685474B (en) 2011-03-10 2014-11-05 华为技术有限公司 Encoding and decoding method of prediction modes, encoding and decoding device and network system
AU2011201336B2 (en) 2011-03-23 2013-09-05 Canon Kabushiki Kaisha Modulo embedding of video parameters
US9872015B2 (en) 2011-04-21 2018-01-16 Hfi Innovation Inc. Method and apparatus for improved in-loop filtering
KR101383775B1 (en) 2011-05-20 2014-04-14 주식회사 케이티 Method And Apparatus For Intra Prediction
WO2012164902A1 (en) 2011-05-30 2012-12-06 株式会社Jvcケンウッド Image encoding device, image encoding method and image encoding program, as well as image decoding device, image decoding method and image decoding program
EP2533537A1 (en) 2011-06-10 2012-12-12 Panasonic Corporation Transmission of picture size for image or video coding
US20130016769A1 (en) 2011-07-17 2013-01-17 Qualcomm Incorporated Signaling picture size in video coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060072669A1 (en) * 2004-10-06 2006-04-06 Microsoft Corporation Efficient repeat padding for hybrid video sequence with arbitrary video resolution
US20110194613A1 (en) * 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks
US20120106652A1 (en) * 2010-11-01 2012-05-03 Mediatek Inc. Apparatus and Method for High Efficiency Video Coding Using Flexible Slice Structure

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11700384B2 (en) 2011-07-17 2023-07-11 Qualcomm Incorporated Signaling picture size in video coding
US10397583B2 (en) * 2011-10-07 2019-08-27 Sony Corporation Image processing apparatus and method
US20140247874A1 (en) * 2011-10-07 2014-09-04 Sony Corporation Image processing apparatus and method
US11962752B2 (en) * 2015-05-12 2024-04-16 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image by using blocks determined by means of adaptive order
US11956419B2 (en) * 2015-05-12 2024-04-09 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image by using blocks determined by means of adaptive order
US20200359012A1 (en) * 2015-05-12 2020-11-12 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image by using blocks determined by means of adaptive order
US20200359013A1 (en) * 2015-05-12 2020-11-12 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image by using blocks determined by means of adaptive order
US11956422B2 (en) * 2015-05-12 2024-04-09 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image by using blocks determined by means of adaptive order
US20220279164A1 (en) * 2015-05-12 2022-09-01 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image by using blocks determined by means of adaptive order
US20220210405A1 (en) * 2015-05-12 2022-06-30 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image by using blocks determined by means of adaptive order
US20220210406A1 (en) * 2015-05-12 2022-06-30 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image by using blocks determined by means of adaptive order
CN107820077A (en) * 2016-09-14 2018-03-20 北京金山云网络技术有限公司 A kind of maximum available code unit size determines method and device
US20210329240A1 (en) * 2017-05-26 2021-10-21 Sk Telecom Co., Ltd. Apparatus and method for video encoding or decoding supporting various block sizes
US11736691B2 (en) 2017-05-26 2023-08-22 Sk Telecom Co., Ltd. Apparatus and method for video encoding or decoding supporting various block sizes
US11792397B2 (en) 2017-05-26 2023-10-17 Sk Telecom Co., Ltd. Apparatus and method for video encoding or decoding supporting various block sizes
US11818348B2 (en) 2017-05-26 2023-11-14 Sk Telecom Co., Ltd. Apparatus and method for video encoding or decoding supporting various block sizes
US11218697B2 (en) * 2017-05-26 2022-01-04 Sk Telecom Co., Ltd. Apparatus and method for video encoding or decoding supporting various block sizes
US11665346B2 (en) * 2017-05-26 2023-05-30 Sk Telecom Co., Ltd. Apparatus and method for video encoding or decoding supporting various block sizes
US11297349B2 (en) * 2017-05-31 2022-04-05 Sharp Kabushiki Kaisha Video decoding device and video encoding device
US11259049B2 (en) 2017-07-04 2022-02-22 Lg Electronics Inc. Area-based processing method and apparatus for 360-degree video
WO2019009473A1 (en) * 2017-07-04 2019-01-10 엘지전자 주식회사 Area-based processing method and apparatus for 360-degree video
US11575892B2 (en) * 2018-03-05 2023-02-07 Panasonic Intellectual Property Corporation Of America Encoder and encoding method
US20220086440A1 (en) * 2018-03-05 2022-03-17 Panasonic Intellectual Property Corporation Of America Encoder and encoding method
US11223825B2 (en) * 2018-03-05 2022-01-11 Panasonic Intellectual Property Corporation Of America Decoder and decoding method
US11882283B2 (en) * 2018-03-05 2024-01-23 Panasonic Intellectual Property Corporation Of America Encoder, encoding method, decoder, and decoding method
US11290734B2 (en) 2019-01-02 2022-03-29 Tencent America LLC Adaptive picture resolution rescaling for inter-prediction and display
WO2020142358A1 (en) * 2019-01-02 2020-07-09 Tencent America LLC Adaptive picture resolution rescaling for inter-prediction and display
US11917173B2 (en) 2019-01-09 2024-02-27 Huawei Technologies Co., Ltd. Sub-picture sizing in video coding
US11012710B2 (en) 2019-03-06 2021-05-18 Tencent America LLC Techniques for intra prediction for 360 image and video coding

Also Published As

Publication number Publication date
SI2732629T1 (en) 2016-12-30
PT2732629T (en) 2017-01-13
US11700384B2 (en) 2023-07-11
JP2014521281A (en) 2014-08-25
AU2012284120A1 (en) 2014-02-13
BR112014000941A2 (en) 2017-02-14
IL230248A (en) 2016-12-29
ES2639030T3 (en) 2017-10-25
RU2014105655A (en) 2015-08-27
TW201313027A (en) 2013-03-16
RU2586027C2 (en) 2016-06-10
CA2841953C (en) 2017-01-03
MX2014000720A (en) 2014-02-27
TWI502967B (en) 2015-10-01
JP5792388B2 (en) 2015-10-14
US20140341275A1 (en) 2014-11-20
CA2841953A1 (en) 2013-01-24
AU2012284120B2 (en) 2016-03-03
MY165045A (en) 2018-02-28
CN103718551B (en) 2017-06-30
CN103718551A (en) 2014-04-09
KR101497882B1 (en) 2015-03-02
WO2013012864A1 (en) 2013-01-24
HUE030661T2 (en) 2017-05-29
EP2732629B1 (en) 2016-10-05
US20220295076A1 (en) 2022-09-15
DK2732629T3 (en) 2017-01-02
PL2732629T3 (en) 2017-07-31
BR112014000941B1 (en) 2022-06-07
EP2732629A1 (en) 2014-05-21
KR20140024482A (en) 2014-02-28

Similar Documents

Publication Publication Date Title
US11700384B2 (en) Signaling picture size in video coding
US8942282B2 (en) Variable length coding of coded block pattern (CBP) in video compression
KR101667836B1 (en) Bi-predictive merge mode based on uni-predictive neighbors in video coding
US9288501B2 (en) Motion vector predictors (MVPs) for bi-predictive inter mode in video coding
US9451277B2 (en) Restriction of prediction units in B slices to uni-directional inter prediction
US9900619B2 (en) Intra-coding of depth maps for 3D video coding
CN107211139B (en) Method, apparatus, and computer-readable storage medium for coding video data
EP2952000B1 (en) Unification of signaling lossless coding mode and pulse code modulation (pcm) mode in video coding
US20120189052A1 (en) Signaling quantization parameter changes for coded units in high efficiency video coding (hevc)
US20140348240A1 (en) Video coding using sample prediction among color components
KR20130105894A (en) Mode dependent scanning of coefficients of a block of video data
WO2013039908A2 (en) Non-square transform units and prediction units in video coding
US20150071359A1 (en) Two level last significant coefficient (lsc) position coding

Legal Events

Date Code Title Description
AS Assignment

Owner name: QUALCOMM INCORPORATED, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHEN, YING;KARCZEWICZ, MARTA;WANG, YE-KUI;SIGNING DATES FROM 20120723 TO 20120730;REEL/FRAME:028747/0215

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION