TECHNICAL FIELD

This disclosure relates to video coding, and more particularly, to the coding of syntax information related to coefficients of a video block.

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. The 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 as 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

This disclosure describes techniques for coding coefficients associated with a block of video data during a video coding process, including techniques for coding information that identifies a scanning order associated with the block, i.e., scanning order information for the block. The techniques of this disclosure may improve efficiency for coding of scanning order information for blocks of video data used to code the blocks by coding scanning order information for a particular block using information that identifies a most probable scanning order for the block. In other words, the techniques may improve compression of the scanning order information for the blocks when the information is coded.

In one example, the coding efficiency may be improved by determining a most probable scanning order for a block of video data, and coding an indication of whether the scanning order associated with the block, i.e., the scanning order used to code the block, is the most probable scanning order. In this example, in the event the scanning order associated with the block is the most probable scanning order, no further scanning order information may be coded for the block. In the event the scanning order associated with the block is not the most probable scanning order, however, the techniques may further include coding an indication of the scanning order associated with the block. Because, by definition, a most probable scanning order for a particular block of video data will, on average, be used to code the block more often than any other scanning order that also may be used to code the block, the additional indication of the scanning order associated with the block will not be coded in numerous cases. As a result, the scanning order information for the block may be coded using less information than when using other techniques, e.g., when always coding the scanning order information for the block in its entirety.

As another example, the coding efficiency may be improved by, in the event the scanning order associated with the block is not the most probable scanning order, using a zig-zag scanning order to code the coefficients associated with the block. Once again, because, by definition, a most probable scanning order for a particular block of video data will, on average, be used to code the block more often than any other scanning order that also may be used to code the block, the initial indication of whether the scanning order associated with the block is the most probable scanning order will indicate the scanning order information for the block in its entirety in numerous cases, obviating the need for coding any further scanning order information. Furthermore, in the event the scanning order associated with the block is not the most probable scanning order, not coding an indication of the scanning order associated with the block, but rather using the zig-zag scanning order to code the coefficients associated with the block, may be sufficient to efficiently code the block. For example, any adverse effects of using the zig-zag scanning order to code the coefficients, rather than using another scanning order that may more efficiently scan the coefficients, may be outweighed by the reduced coding of the scanning order information for the block described above.

As still another example, the coding efficiency may be improved by designating the zig-zag scanning order as the most probable scanning order for the block. In this example, because the zig-zag scanning order may, on average, be used to code the block more often than any other scanning order that also may be used to code the block, the additional indication of the scanning order associated with the block may not be coded in numerous cases. Furthermore, by designating the zig-zag scanning order as the most probable scanning order, the coding efficiency may be improved by avoiding determining an actual most probable scanning order for the block, as described above.

In each of the examples described above, the coding efficiency may be further improved by entropy coding the scanning order information for the block, i.e., one or more of the indication of whether the scanning order associated with the block is the most probable scanning order, and the indication of the scanning order associated with the block. For example, the scanning order information may be entropy coded by performing a context adaptive entropy coding process, e.g., a context adaptive binary arithmetic coding (CABAC) process that includes applying a context model based on at least one context. In the examples described above, the at least one context may include one of the most probable scanning order, a prediction mode associated with the block, and a size associated with the block, which may result in probability estimates included within the context model being more accurate relative to probability estimates determined using other techniques. A result, the scanning order information for the block may be coded more efficiently. For example, the information may be coded using fewer bits than when using other techniques, e.g., when using other, less accurate probability estimates to code the information.

The techniques of this disclosure may, in some examples, be used with any context adaptive entropy coding methodology, including CABAC, probability interval partitioning entropy coding (PIPE), or another context adaptive entropy coding methodology. CABAC is described in this disclosure for purposes of illustration, but without limitation as to the techniques broadly described in this disclosure. Also, the techniques may be applied to coding of other types of data generally, e.g., in addition to video data.

Accordingly, the techniques of this disclosure may enable using more efficient coding methods relative to other methods when coding scanning order information for one or more blocks of video data. In this manner, there may be a relative bit savings for a coded bitstream including the information when using the techniques of this disclosure.

In one example, a method of coding coefficients associated with a block of video data during a video coding process includes coding information that identifies a scanning order associated with the block, including determining a most probable scanning order for the block, and coding an indication of whether the scanning order associated with the block is the most probable scanning order.

In another example, an apparatus for coding coefficients associated with a block of video data during a video coding process includes a video coder configured to code information that identifies a scanning order associated with the block, wherein to code the information that identifies the scanning order associated with the block, the video coder is configured to determine a most probable scanning order for the block, and code an indication of whether the scanning order associated with the block is the most probable scanning order.

In another example, a device for coding coefficients associated with a block of video data during a video coding process includes means for coding information that identifies a scanning order associated with the block, including means for determining a most probable scanning order for the block, and means for coding an indication of whether the scanning order associated with the block is the most probable scanning order.

The techniques described in this disclosure may be implemented in hardware, software, firmware, or combinations thereof. If implemented in hardware, an apparatus may be realized as an integrated circuit, a processor, discrete logic, or any combination thereof. If implemented in software, the software may be executed in one or more processors, such as a microprocessor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), or digital signal processor (DSP). The software that executes the techniques may be initially stored in a tangible computer-readable medium and loaded and executed in the processor.

Accordingly, this disclosure also contemplates a computer-readable medium comprising instructions that, when executed, cause a processor to code coefficients associated with a block of video data during a video coding process, wherein the instructions cause the processor to code information that identifies a scanning order associated with the block, wherein the instructions that cause the processor to code the information that identifies the scanning order associated with the block comprise instructions that cause the processor to determine a most probable scanning order for the block, and code an indication of whether the scanning order associated with the block is the most probable scanning order.

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.

