Not Applicable
Not Applicable
A portion of the material in this patent document is subject to copyright protection under the copyright laws of the United States and of other countries. The owner of the copyright rights has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the United States Patent and Trademark Office publicly available file or records, but otherwise reserves all copyright rights whatsoever. The copyright owner does not hereby waive any of its rights to have this patent document maintained in secrecy, including without limitation its rights pursuant to 37 C.F.R. §1.14.
1. Field of the Invention
This invention pertains generally to video encoding and decoding, and more particularly to achieving continuity within the sample adaptive offset (SAO) filter within a high-efficiency video coding (HEVC) system, or similar.
2. Description of Related Art
Enhanced video compression techniques are eagerly sought toward optimizing compression. The latest efforts by the Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T and ISO/IEC MPEG aim to support ultra high video resolution and mobile applications while reducing the bitrate compressed in H.264/AVC coding systems, within a high efficiency video coding (HEVC) standard.
HEVC divides frames into coding tree blocks (CTBs) that can be further subdivided into coding units (CUs), such as using quadtree segmentation. A coding unit (CU) may have variable sizes depending on video content toward achieving a desired coding efficiency. CUs typically include a luminance component Y and two chroma components, U and V. The size of U and V components relate to the number of samples, and can be the same or different from that of the Y component, as depends upon the video sampling format. The CUs can be further subdivided into prediction unit (PU) partitions during intra-prediction and inter-prediction as well as transform units (TUs) defined for transform and quantization. Transform units (TU) generally refer to a block of residual data to which a transform is applied when generating transform coefficients.
HEVC introduced new elements over current video coding systems, such as H.264/AVC, and similar codecs. For example, although HEVC still involves motion compensated inter predictions, transforms, and entropy coding, it utilizes either arithmetic coding or variable length coding. In addition, following the deblocking filter is a new sample adaptive offset (SAO) filter. The SAO unit considers the entire frame as a hierarchical quadtree. Quadrants in this quadtree are activated by the SAO transmitting syntax values which each represent an intensity band of pixel values referred to as band offset (BO) or the difference compared to neighboring pixel intensities referred to as edge offset (EO). For each type in SAO (BO and EO), transmitted offset values referred to as SAO offset will be added to the corresponding pixels.
In recent HEVC implementations, the reconstructed image histogram (entire intensity range) is divided into a plurality of bands (e.g., 32 bands), with each band having a different offset. Fewer bands (e.g., 4 bands) are selected by the encoder to be transmitted as offsets. If no offset value is transmitted for a band, then the default value if zero. Band offset (BO) in HEVC transmits offsets for 4 bands of the image histogram which is divided into 32 bands. If a reconstructed pixel value falls in one of the 4 bands, then the offsets are added to the reconstructed value.
Offsets in BO are computed individually based on average performance (mean-square error—MSE). However, the use of average performance is insufficient to assure a visually pleasing picture. Discontinuities at the boundaries between the offsets (e.g., 4 offsets transmitted) should also be avoided in a natural image. Artificial edges are created in an image when two very different offset values are added to two neighboring pixels having similar original values. Edges arising from this issue are especially visible to human eyes in smooth areas of the scene.
Therefore, a method and apparatus are needed for encoding and decoding video using an SAO filter in which artificial edges are not introduced in response to selecting between the limited number of offset bands.
A sample adaptive offset (SAO) method for HEVC and similar encoders/decoders is taught which utilizes a process of boundary interpolation (BI) for band offsets (BO), largest coding unit (LCU), or a combination of both. Specifically, the boundary interpolation (BI) method of SAO is taught which mitigates introduction of artificial edges in response to the limited number of offsets transmitted. Interpolation at the band boundary generally has a maximum distance d, such as between 4 to 10, and more preferably 6 or 8, as the distance between the two values that have their original offset value. Offset values for other pixels in between the two offset values are preferably linearly calculated for the sake of simplicity, although more complex smoothing can be alternatively performed without departing from the teachings of the present invention. LCU boundary interpolation follows a similar set of steps to smooth a number of pixels about the periphery of each block, such as an LCU. Interpolation at the LCU boundary generally has maximum distance d such as between 2 to 6, and more preferably 4.
Further aspects of the invention will be brought out in the following portions of the specification, wherein the detailed description is for the purpose of fully disclosing preferred embodiments of the invention without placing limitations thereon.
The invention will be more fully understood by reference to the following drawings which are for illustrative purposes only:
The inventive SAO filter boundary interpolation (BI) method can be implemented in an encoding system (encoder and decoder) as described in the following paragraphs.
In considering BO offsets for the SAO filter, the current HEVC specification does not restrict the magnitude of the difference between neighboring offsets; only the value of each individual offset is restricted to +/−16 in 8 bit pictures. This magnitude is sufficiently large to introduce strong edges, as the derivative can be as large as 32. Use of the inventive boundary interpolation (BI) to the band offsets according to the invention eliminates these edge problems.
It should also be noted that in HEVC, offsets are applied only to the current LCU, and not likely to the next ones, whereby it is beneficial to perform a similar boundary interpolation (BI) to the LCU boundary.
The SAO boundary interpolation (BI) mechanisms are described below within an encoder and decoder, respectively.
The encoder 10 is shown with encoding elements 12 executed by a computing means 46 exemplified with one or more processors 48, along with one or more memory devices 50. It will be appreciated that elements of the present invention can be implemented as programming stored on a media, which can be accessed for execution by a CPU for an encoder and/or decoder.
In the example, video frame input 14 is shown along with reference frames 16 and frame output 18. Inter-prediction 20 is depicted with motion estimation (ME) 22 and motion compensation (MC) 24. Intra-prediction 26 is shown with switching 25 depicted between inter-prediction and intra-prediction. A sum junction 28 is shown with output to a forward transform 30 which is performed based on the predictions to generate transform coefficients of residual data. Quantization of the transform coefficients is performed at quantization stage 32, which is followed by entropy encoding 34. Inverse quantization 36 and inverse transform 38 operations are shown coupled to a summing junction 40.
Output of summing junction 40, is a decoded video signal which is received by a deblocking filter 42, then a boundary interpolation (BI) sample adaptive offset (SAO) filter 44 according to the present invention, to produce an output 18.
It should be appreciated that the decoder can be implemented with a processing means 100 which comprises at least one processing device 102 and at least one memory 104 for executing programming associated with the decoding. In addition, it will be noted that elements of the present invention can be implemented as programming stored on a media, wherein said media can be accessed for execution by processing device (CPU) 102.
It will be recognized that elements of the present invention 10 and 70 are implemented for execution by a processing means 46 and 100, such as in response to programming resident in memory 50 and 104 which is executable on computer processor (CPU) 48 and 102. In addition, it will be appreciated that elements of the present invention can be implemented as programming stored on a media, wherein said media can be accessed for execution by CPU 48 and/or 102.
It should also be appreciated that the above programming is executable from the memory which is a tangible (physical) computer readable media that is non-transitory in that it does not merely constitute a transitory propagating signal, but is actually capable of retaining programming, such as within any desired form and number of static or dynamic memory devices. These memory devices need not be implemented to maintain data under all conditions (e.g., power fail) to be considered herein as non-transitory media.
To understand BI for BO, it will be recognized that HEVC working draft 6 (WD6) divides the entire intensity range into 32 bands. The encoder selects 4 bands, out of the 32, for which it transmits band offsets. Each offset is individually restricted to +/−16 in 8 bit pictures. Each offset sent spans a number of the 32 bands, such as 4 bands per offset sent with the remaining bands being considered zero. It should be appreciated, that pixels whose values are originally close, but are placed at different sides of the band boundary can end up with offset values which are far apart after the SAO process is performed. Compounding the issue, pixels with similar intensity values usually are also spatially close, especially in areas which are smooth, wherein the artificial edges produced by the limitations of current band offset techniques are especially noticeable. Attempting to limit offset differences at the encoder can slightly reduce the problem, yet introduces coding efficiency losses since the best offset value cannot be selected.
The present invention solves this artificial edge problem by performing an interpolation operation (e.g., linear for sake of simplicity) toward smoothing band boundaries, without the need of changing the original offset values. Although, any form of interpolative smoothing may be utilized according to the invention, for the sake of simplicity of illustration, the example embodiment describes a linear smoothing using linear interpolation at the boundary.
According to this method, a non-zero offset may be applied to some pixels that belong to bands for which the encoder has not sent any offsets, such as pixels with intensities 7 and 24 in
where D is the bit precision that enables an integer multiplication and shift operation instead of a division. Trivially, for the two values i=0 and i=d+1 we get the original values O0 and O1, respectively, as expected. It will be noted that since both D and dare known and fixed, the division in equation (1) above can be performed offline and rounded to the closest integer for each value i. For typical values of d=4 (two pixels on each side) and D=2, D=4, and D=8, the coefficients i×2D/d+1 are listed in Table 1.
Interpolation at the band boundary generally has maximum distance d, such as between 4 to 10, and more preferably 6 or 8, as the distance between the two values that have their original offset value.
Similar problems can arise at partition boundaries arising between largest coding units (LCU), whereby the periphery (boundary region) between one LCU can have different offsets from the next LCU, resulting in a discontinuity at the boundary area.
In
Interpolation at the LCU boundary generally has a maximum distance d for LCU boundary interpolation, such as between 2 to 6, and more preferably 4. In a preferred embodiment these offset are linearly calculated for the sake of simplicity.
It will be appreciated that
Embodiments of the present invention were tested assuming d=4 in band boundary smoothing (for 8 bit images), resulting in modifying the offsets for two pixel values on each side of the boundary. Similarly, for the case of LCU smoothing, the offset for two pixels in the boundary of the LCU were modified. The bit-depth precision was set to 8, however, a 4 bit precision will result in similar results (difference is in the second digits).
Both objective and subjective results were determined as described in the following paragraphs. Objective results were determined with CE1 anchors and test condition is followed to obtain results shown in Tables 2 and 3. Table 2 lists results obtained for band boundary interpolation, while Table 3 lists results obtained for a combination of band boundary interpolation and LCU boundary interpolation. Each of these tables contains four sections (1) Random Access Main, (2) Low delay B Main with CU as 64×64, (3) 32×32, and (4) 16×16, with each table section including results of an HE10 (high efficiency test condition) variant.
To obtain subjective results, in response to human perception, the reconstructed videos from a software containing both band and LCU smoothing methods were studied and compared with CE1 anchors. In order to make a fair comparison between the proposed method and the reference, factors other than SAO were made as similar as possible. This is because if the rate-distortion optimization (RDO) takes a slightly different route, the resulting videos may appear very different in areas of a frame, while on the average the performance seen would be similar. As a result, in the present study, the only focus was on Intra coding structure so that the reconstructed picture before SAO are exactly the same for every picture and the differences observed are thus due to SAO only.
Embodiments of the present invention may be described with reference to flowchart illustrations of methods and systems according to embodiments of the invention, and/or algorithms, formulae, or other computational depictions, which may also be implemented as computer program products. In this regard, each block or step of a flowchart, and combinations of blocks (and/or steps) in a flowchart, algorithm, formula, or computational depiction can be implemented by various means, such as hardware, firmware, and/or software including one or more computer program instructions embodied in computer-readable program code logic. As will be appreciated, any such computer program instructions may be loaded onto a computer, including without limitation a general purpose computer or special purpose computer, or other programmable processing apparatus to produce a machine, such that the computer program instructions which execute on the computer or other programmable processing apparatus create means for implementing the functions specified in the block(s) of the flowchart(s).
Accordingly, blocks of the flowcharts, algorithms, formulae, or computational depictions support combinations of means for performing the specified functions, combinations of steps for performing the specified functions, and computer program instructions, such as embodied in computer-readable program code logic means, for performing the specified functions. It will also be understood that each block of the flowchart illustrations, algorithms, formulae, or computational depictions and combinations thereof described herein, can be implemented by special purpose hardware-based computer systems which perform the specified functions or steps, or combinations of special purpose hardware and computer-readable program code logic means.
Furthermore, these computer program instructions, such as embodied in computer-readable program code logic, may also be stored in a computer-readable memory that can direct a computer or other programmable processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the block(s) of the flowchart(s). The computer program instructions may also be loaded onto a computer or other programmable processing apparatus to cause a series of operational steps to be performed on the computer or other programmable processing apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable processing apparatus provide steps for implementing the functions specified in the block(s) of the flowchart(s), algorithm(s), formula(e), or computational depiction(s).
From the discussion above it will be appreciated that the invention can be embodied in various ways, including the following:
1. An apparatus for sample adaptive offset (SAO) signaling during video entropy encoding, comprising: (a) a video encoder configured for receiving a video signal, said video encoder including a processor; (b) programming executable on said processor and configures for: (i) receiving a decoded video signal having a reconstructed image histogram from a deblocking filter of said video encoder; (ii) dividing the reconstructed image histogram into a plurality of bands; (iii) selecting a subset of bands of these plurality of bands for transmission as band offsets (BO); and (iv) interpolating between each of said subset of bands within said plurality of images to create a smooth transition area between each of said subset of bands within said plurality of bands.
2. The apparatus of any of the previous embodiments, wherein said programming is configured to perform boundary interpolation (BI) between each band offset (BO) to a predetermined number of pixels.
3. The apparatus of any of the previous embodiments, wherein said predetermined number of pixels comprises a value d for band offsets which is set between 4 to 10.
4. The apparatus of any of the previous embodiments, wherein said predetermined number of pixels comprises a value d for band offsets which is set to either 6 or 8.
5. The apparatus of any of the previous embodiments, wherein said programming is configured to perform boundary interpolation (BI) to a predetermined number of pixels at an LCU boundary.
6. The apparatus of any of the previous embodiments, wherein said predetermined number of pixels is given by a value d for LCU boundaries set at between 2 to 6.
7. The apparatus of any of the previous embodiments, wherein said predetermined number of pixels is given by a value d for LCU boundaries set at 4.
8. The apparatus of any of the previous embodiments, wherein said boundary interpolation (BI) is performed using linear interpolation.
9. The apparatus of any of the previous embodiments, further comprising programming executable on said processor for performing boundary interpolation (BI) to largest coding units (LCUs), by: (i) computing values in LCU partition boundary; (ii) assuming adjacent LCU boundaries have zero offset; and (iii) interpolation of filtering applied to said partition boundary to provide a smooth transition sloping toward a zero offset at boundary with adjacent LCU boundary.
10. The apparatus of any of the previous embodiments, wherein said video encoder comprises a video encoder utilizing a high efficiency video coding (HEVC) standard.
11. An apparatus for sample adaptive offset (SAO) signaling during video entropy encoding, the apparatus comprising: (a) a video encoder configured for receiving a video signal, said video encoder including a processor; (b) programming executable on said processor for: (i) receiving a decoded video signal having a reconstructed image histogram from a deblocking filter of said video encoder; (ii) dividing the reconstructed image histogram into a plurality of bands; (iii) selecting a subset of bands of these plurality of bands for transmission as band offsets (BO); (iv) interpolating between each of said subset of bands within said plurality of images to create a smooth transition area between each of said subset of bands within said plurality of bands; and (v) interpolating around the perimeter of each LCU boundary to create a smooth transition area between each LCU.
12. The apparatus of any of the previous embodiments, wherein said programming is configured to perform boundary interpolation (BI) between each band offset (BO) to a predetermined maximum number of pixels.
13. The apparatus of any of the previous embodiments, wherein said predetermined maximum number of pixels comprises a value d, set for band offsets between 4 to 10.
14. The apparatus of any of the previous embodiments, wherein said predetermined maximum number of pixels comprises a value d, set for band offsets to either 6 or 8.
15. The apparatus of any of the previous embodiments, wherein said programming is configured to perform interpolation around the perimeter of each LCU to a predetermined maximum number of pixels.
16. The apparatus of any of the previous embodiments, wherein said predetermined maximum number of pixels is given by a value d set for LCU boundaries between 2 to 6.
17. The apparatus of any of the previous embodiments, wherein said predetermined maximum number of pixels is given by a value d set at 4.
18. The apparatus of any of the previous embodiments, wherein said interpolation for both band offsets (BO) and LUC boundaries is a linear interpolation.
19. The apparatus of any of the previous embodiments, further comprising programming executable on said processor for interpolating at an LCU boundary, in response to: (i) computing values in LCU partition boundary; (ii) assuming adjacent LCU boundaries have zero offset; and (iii) interpolation of filtering applied to said partition boundary to provide a smooth transition sloping toward a zero offset at boundary with adjacent LCU boundary.
20. A method of performing sample adaptive offset (SAO) filtering within a video entropy encoder, the method comprising: (a) receiving a decoded video signal having a reconstructed image histogram from a deblocking filter of a video encoder receiving a video signal processed by programming executing on a computer processor within said video encoder; (b) dividing the reconstructed image histogram into a plurality of bands; (c) selecting a subset of bands of these plurality of bands for transmission as band offsets (BO); and (d) interpolating between each of said subset of bands within said plurality of images to create a smooth transition area between each of said subset of bands within said plurality of bands.
Although the description above contains many details, these should not be construed as limiting the scope of the invention but as merely providing illustrations of some of the presently preferred embodiments of this invention. Therefore, it will be appreciated that the scope of the present invention fully encompasses other embodiments which may become obvious to those skilled in the art, and that the scope of the present invention is accordingly to be limited by nothing other than the appended claims, in which reference to an element in the singular is not intended to mean “one and only one” unless explicitly so stated, but rather “one or more.” All structural and functional equivalents to the elements of the above-described preferred embodiment that are known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the present claims. Moreover, it is not necessary for a device or method to address each and every problem sought to be solved by the present invention, for it to be encompassed by the present claims. Furthermore, no element, component, or method step in the present disclosure is intended to be dedicated to the public regardless of whether the element, component, or method step is explicitly recited in the claims. No claim element herein is to be construed under the provisions of 35 U.S.C. 112, sixth paragraph, unless the element is expressly recited using the phrase “means for.”
This application is a nonprovisional of U.S. provisional patent application Ser. No. 61/624,912 filed on Apr. 16, 2012, incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61624912 | Apr 2012 | US |