Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
A method and apparatus for processing reconstructed video using in-loop filter in a video coding system are disclosed. The method uses chroma in-loop filter indication to indicate whether chroma components are processed by in-loop filter when the luma in-loop filter indication indicates that in-loop filter processing is applied to the luma component. An additional flag may be used to indicate whether the in-loop filter processing is applied to an entire picture using same in-loop filter information or each block of the picture using individual in-loop filter information. Various embodiments according to the present invention to increase efficiency are disclosed, wherein various aspects of in-loop filter information are taken into consideration for efficient coding such as the property of quadtree-based partition, boundary conditions of a block, in-loop filter information sharing between luma and chroma components, indexing to a set of in-loop filter information, and prediction of in-loop filter information.
Latest MEDIATEK INC. Patents:
- METHOD AND APPARATUS FOR MANAGING ASSOCIATION BETWEEN CLIENT AND MEMBER ACCESS POINT IN MULTI-ACCESS POINT SYSTEM
- ARTIFICIAL INTELLIGENCE (AI)-CHANNEL STATE INFORMATION (CSI) AUTOMATED LABELING METHOD
- DIFFERENTIAL ALL-PASS COUPLING CIRCUIT WITH COMMON MODE FEEDBACK
- Antenna for multi-broadband and multi-polarization communication
- Video encoder with motion compensated temporal filtering
The present invention claims priority to U.S. Provisional Patent Application No. 61/486,504, filed May 16, 2011, entitled “Sample Adaptive Offset for Luma and Chroma Components”, U.S. Provisional Patent Application No. 61/498,949, filed Jun. 20, 2011, entitled “LCU-based Syntax for Sample Adaptive Offset”, and U.S. Provisional Patent Application No. 61/503,870, filed Jul. 1, 2011, entitled “LCU-based Syntax for Sample Adaptive Offset”. The present invention is also related to U.S. Non-Provisional patent application Ser. No. 13/158,427, entitled “Apparatus and Method of Sample Adaptive Offset for Video Coding”, filed on Jun. 12, 2011. The U.S. Provisional Patent Applications and U.S. Non-Provisional patent application are hereby incorporated by reference in their entireties.
FIELD OF THE INVENTIONThe present invention relates to video processing. In particular, the present invention relates to apparatus and method for adaptive in-loop filtering including sample adaptive offset compensation and adaptive loop filter.
BACKGROUNDIn a video coding system, the video data are subject to various processing such as prediction, transform, quantization, deblocking, and adaptive loop filtering. Along the processing path in the video coding system, certain characteristics of the processed video data may be altered from the original video data due to the operations applied to video data. For example, the mean value of the processed video may be shifted. Intensity shift may cause visual impairment or artifacts, which is especially more noticeable when the intensity shift varies from frame to frame. Therefore, the pixel intensity shift has to be carefully compensated or restored to reduce the artifacts. Some intensity offset schemes have been used in the field. For example, an intensity offset scheme, termed as sample adaptive offset (SAO), classifies each pixel in the processed video data into one of multiple categories according to a context selected. The conventional SAO scheme is only applied to the luma component. It is desirable to extend SAO processing to the chroma components as well. The SAO scheme usually requires incorporating SAO information in the video bitstream, such as partition information to divide a picture or slice into blocks and the SAO offset values for each block so that a decoder can operate properly. The SAO information may take up a noticeable portion of the bitrate of compressed video and it is desirable to develop efficient coding to incorporate the SAO information. Besides SAO, adaptive loop filter (ALF) is another type of in-loop filter often applied to the reconstructed video to improve video quality. Similarly, it is desirable to apply ALF to the chroma component as well to improve video quality. Again, ALF information such as partition information and filter parameters has to be incorporated in the video bitstream so that a decoder can operate properly. Therefore, it is also desirable to develop efficient coding to incorporate the ALF information in the video bitstream.
BRIEF SUMMARY OF THE INVENTIONA method and apparatus for processing reconstructed video using in-loop filter in a video decoder are disclosed. The method and apparatus incorporating an embodiment according to the present invention comprises deriving reconstructed video data from a video bitstream, wherein the reconstructed video data comprises luma component and chroma components; receiving chroma in-loop filter indication from the video bitstream if luma in-loop filter indication in the video bitstream indicates that in-loop filter processing is applied to the luma component; determining chroma in-loop filter information if the chroma in-loop filter indication indicates that the in-loop filter processing is applied to the chroma components; and applying the in-loop filter processing to the chroma components according to the chroma in-loop filter information if the chroma in-loop filter indication indicates that the in-loop filter processing is applied to the chroma components. The chroma components may use a single chroma in-loop filter flag or each of the chroma components may use its own chroma in-loop filter flag to control whether the in-loop filter processing is applied. An entire picture may share the in-loop filter information. Alternatively, the picture may be divided into blocks and each block uses its own in-loop filter information. When in-loop filter processing is applied to blocks, the in-loop filter information for a current block may be derived from neighboring blocks in order to increase coding efficiency. Various embodiments according to the present invention to increase coding efficiency are disclosed, wherein various aspects of in-loop filter information are taken into consideration for efficient coding such as the property of quadtree-based partition, boundary conditions of a block, in-loop filter information sharing between luma and chroma components, indexing to a set of in-loop filter information, and prediction of in-loop filter information.
A method and apparatus for processing reconstructed video using in-loop filter in a video decoder, wherein a picture area of the reconstructed video is partitioned into blocks and the in-loop filter is applied to the blocks, are disclosed. The method and apparatus comprise deriving reconstructed block from a video bitstream; receiving in-loop filter information from the video bitstream if a current reconstructed block is a new partition; deriving the in-loop filter information from a target block if the current reconstructed block is not said new partition, wherein the current reconstructed block is merged with the target block selected from one or more candidate blocks corresponding to one or more neighboring blocks of the current reconstructed block; and applying in-loop filter processing to the current reconstructed block using the in-loop filter information. In order to increase coding efficiency, a merge flag in the video bitstream may be used for the current block to indicate the in-loop filter information sharing with one of neighboring blocks if more than one neighboring block exists. If only one neighboring block exists, the in-loop filter information sharing is inferred without the need for the merge flag. According to the quadtree-partition property and merge information of said one or more candidate blocks, a candidate block may be eliminated from merging with the current reconstructed block so as to increase coding efficiency.
A method and apparatus for processing reconstructed video using in-loop filter in a corresponding video encoder are disclosed. Furthermore, a method and apparatus for processing reconstructed video using in-loop filter in a corresponding video encoder, wherein a picture area of the reconstructed video is partitioned into blocks and the in-loop filter is applied to the blocks, are also disclosed.
In High Efficiency Video Coding (HEVC), a technique named Adaptive Offset (AO) is introduced to compensate the offset of reconstructed video and AO is applied inside the reconstruction loop. A method and system for offset compensation is disclosed in U.S. Non-Provisional patent application Ser. No. 13/158,427, entitled “Apparatus and Method of Sample Adaptive Offset for Video Coding”. The method and system classify each pixel into a category and apply intensity shift compensation or restoration to processed video data based on the category of each pixel. Besides adaptive offset, Adaptive Loop Filter (ALF) has also been introduced in HEVC to improve video quality. ALF applies spatial filter to reconstructed video inside the reconstruction loop. Both AO and ALF are considered as a type of in-loop filter in this disclosure.
The exemplary encoder shown in
The in-loop filtering is only applied to the luma component of reconstructed video according to the current HEVC standard. It is beneficial to apply in-loop filtering to chroma components of reconstructed video as well. The information associated with in-loop filtering for the chroma components may be sizeable. However, a chroma component typically results in much smaller compressed data than the luma component. Therefore, it is desirable to develop a method and apparatus for applying in-loop filtering to the chroma components efficiently. Accordingly, an efficient method and apparatus of SAO for chroma component are disclosed.
In one example incorporating an embodiment of the present invention, an indication is provided for signaling whether in-loop filtering is turned ON or not for chroma components when SAO for the luma component is turned ON. If SAO for the luma component is not turned ON, the SAO for the chroma components is also not turned ON. Therefore, there is no need to provide the indication for signaling whether in-loop filtering is turned ON or not for the chroma components in this case. A example of pseudo codes for the embodiment mentioned above is shown below:
The flag to indicate if SAO for chroma is turned ON is called chroma in-loop filter indication since it can be used for SAO as well as ALF. SAO is one example of in-loop filter processing, where the in-loop filter processing may be ALF. In another example incorporating an embodiment of the present invention, individual indications are provided for signaling whether in-loop filtering is turned ON or not for chroma components Cb and Cr when SAO for the luma component is turned ON. If SAO for the luma component is not turned ON, the SAO for the two chroma components is also not turned ON. Therefore, there is no need to provide the individual indications for signaling whether in-loop filtering is turned ON or not for the two chroma components in this case. A example of pseudo codes for the embodiment mentioned above is shown below:
As mentioned before, it is desirable to develop efficient in-loop filtering method. For example, it is desired to reduce information required to provide indication regarding whether SAO is turned ON and SAO parameters if SAO is turned ON. Since neighboring blocks often have similar characteristics, neighboring blocks may be useful in reducing requiring SAO information.
In the current HEVC standard, the quadtree-based algorithm can be used to adaptively divide a picture region into four sub-regions to achieve better performance. In order to maintain the coding gain of SAO, the encoding algorithm for the quadtree-based SAO partition has to be efficiently designed. The SAO parameters (SAOP) include SAO type index and offset values of the selected type. An exemplary quadtree-based SAO partition is shown in
-
- SAOP of P1 is the same as SAOP for P2, P5, and P6;
- SAOP of P9 is the same as SAOP for P10; and
- SAOP of P11 is the same as SAOP for P12.
According to the partition information of SAO, each LCU can be a new partition or merged with other LCUs. If the current LCU is merged, several merge candidates can be selected. To illustrate an exemplary syntax design to allow information sharing, only two merge candidates are allowed for quad-tree partitioning of
In another embodiment according to the present invention, the relation with neighboring blocks (LCUs) and the properties of quadtree partition are used to reduce the amount of data required to transmit SAO related information. Furthermore, the boundary condition of a picture region such as a slice may introduce some redundancy in dependency among neighboring blocks and the boundary condition can be used to reduce the amount of data required to transmit SAO related information. The relation among neighboring blocks may also introduce redundancy in dependency among neighboring blocks and the relation among neighboring blocks may be used to reduce the amount of data required to transmit SAO related information.
An example of redundancy in dependency among neighboring blocks is illustrated in
As shown in the above example, there are only two allowed cases, i.e. block C is a new partition or block C is merged with block B. Therefore, a single bit for newPartitionFlag is adequate to identify the two cases. In another example, blocks D and B are in the same partition and block A is in another partition, blocks B and C will be in different partitions as shown in
In addition, chroma and luma components may share the same SAO information for color video data. The SAO information may also be shared between chroma components. For example, chroma components (Cb and Cr) may use the partition information of luma so that there is no need to signal the partition information for the chroma components. In another example, Cb and Cr may share the same SAO parameters (SAOP) and therefore only one set of SAOP needs to be transmitted for Cb and Cr to share. SAO syntax for luma can be used for chroma components where the SAO syntax may include quadtree syntax and LCU-based syntax.
The examples of utilizing redundancy in dependency among neighboring blocks as shown in
If the processing of SAO refers to the data located in the other slice, SAO will avoid fetching data from any other slice by use a padding technique or change pattern to replace data from other slices. To reduce data required for SAO information, SAO parameters can be transmitted in a predicted form, such as the difference between SAO parameters for a current block and the SAO parameters for a neighboring block or neighboring blocks. Another embodiment according to the present invention is to reduce SAO parameters for chroma. For example, Edge-based Offset (EO) classification classifies each pixel into four categories for the luma component. The number of EO categories for the chroma components can be reduced to two to reduce the transmitted data associated with SAO information for the current block. The number of bands for band offset (BO) classification is usually sixteen for the luma component. In yet another example, the number of bands for band offset (BO) classification may be reduced to eight for the chroma components.
The example in
Exemplary syntax design incorporating various embodiments according to the present invention is illustrated below.
The sample adaptive offset (SAO) adopted in HM-3.0 uses a quadtree-based syntax, which divides a picture region into four sub-regions using a split flag recursively, as shown in
In another embodiment according to the present invention, SAOP for each LCU may be shared by following LCUs. The number of consecutive subsequent LCUs sharing the same SAOP may be indicated by a run signal.
In order to reduce the bitrate for the run signal, the run signal of the above LCU can be used as a predictor for the run signal of the current LCU. Instead of encoding the run signal directly, the difference of the two run signals is encoded, where the difference is denoted as d_run as shown in
In one embodiment according to the present invention, a flag may be used to indicate that all SAOPs in the current LCU row are the same as those in the above LCU row. For example, a flag, RepeatedRow, for each LCU row can be used to indicate that all SAOPs in this LCU row are the same as those in the above LCU row. If RepeatedRow flag is equal to 1, no more information needs to be coded. For each LCU in the current LCU row, the related SAOP is copied from the LCU in the above LCU row. If RepeatedRow flag is equal to 0, the SAOPs of this LCU row are coded.
In another embodiment according to the present invention, a flag may be used to signal whether RepeatedRow flag is used or not. For example, the EnableRepeatedRow flag can be used to indicate whether RepeatedRow flag is used or not. The EnableRepeatedRow flag can be signaled at a slice or picture level. If EnableRepeatedRow is equal to 0, the RepeatedRow flag is not coded for each LCU row. If EnableRepeatedRow is equal to 1, the RepeatedRow flag is coded for each LCU row.
In yet another embodiment according to the present invention, the RepeatedRow flag at the first LCU row of a picture or a slice can be saved. For the case of a picture having only one slice, the RepeatedRow flag of the first LCU row can be saved. For the case of one picture with multiple slices, if the SAO process is slice-independent operation, the RepeatedRow flag of the first LCU row in a slice can be saved; otherwise, the RepeatedRow flag will be signaled. The method of saving RepeatedRow flag at the first LCU row of one picture or one slice can also be applied to the case where the EnableRepeatedRow flag is used.
To reduce transmitted data associated with SAOP, an embodiment according to the present invention uses a run signal to indicate that all of SAOPs in the following LCU rows are the same as those in the above LCU row. For example, for N consecutive LCU rows containing the same SAOP, the SAOP and a run signal equal to N−1 are signaled at the first LCU row of the N consecutive repeated LCU rows. The maximum and minimum runs of the repeated LCU rows in one picture or slice can be derived and signaled at slice or picture level. Based on the maximum and minimum values, the run number can be coded using a fixed-length code word. The word length of the fixed-length code can be determined according to the maximum and minimum run values and thus can be adaptively changed at slice or picture level.
In another embodiment according to the present invention, the run number in the first LCU row of a picture or a slice is coded. In the method of entropy coding of runs and delta-runs mentioned earlier for the first LCU row of one picture or one slice, if the SAOP is repeated for consecutive LCUs, a run is coded to indicate the number of LCUs sharing the SAOP. If the predictor of a run is not available, the run can be encoded by using unsigned variable length code (U_VLC) or fixed-length code word. If the fixed-length code is used, the word length can be coded adaptively based on the image width, the coded runs, or the remaining LCU, or the word length can be fixed based on the image width or be signaled to the decoder. For example, an LCU row in a picture has N LCUs and the LCU being SAO processed is the k-th LCU in the LCU row, where k=0 . . . N−1. If a run needs to be coded, the maximum number of run is N−1−k. The word length of the to-be-coded run is floor(log 2(N−1−k)+1). In another example, the maximum and minimum number of run in a slice or picture can be calculated first. Based on the maximum and minimum value, the word length of the fixed-length code can be derived and coded.
In yet another embodiment according to the present invention, the information for the number of runs and delta-runs can be incorporated at slice level. The number of runs, delta-runs or the number of LCUs, NumSaoRun, is signaled at slice level. The number of LCUs for the current coding SAOP can be specified using the NumSaoRun flag. Furthermore, the number of runs and delta-runs or the number of LCUs can be predicted using the number of LCUs in one coding picture. The prediction equation is given by:
NumSaoRun=sao_num_run_info+NumTBsInPicture,
where NumTBsInPicture is the number of LCUs in one picture and sao_num_run_info is the predicted residual value. Syntax sao_num_run_info can be coded using a signed or unsigned variable-length. Syntax sao_num_run_info may also be coded using a signed or unsigned fixed-length code word.
Embodiment of in-loop filter according to the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, an embodiment of the present invention can be a circuit integrated into a video compression chip or program codes integrated into video compression software to perform the processing described herein. An embodiment of the present invention may also be program codes to be executed on a Digital Signal Processor (DSP) to perform the processing described herein. The invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA). These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention. The software code or firmware codes may be developed in different programming languages and different format or style. The software code may also be compiled for different target platform. However, different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.
The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Claims
1. A method for processing reconstructed video using Sample Adaptive Offset in a video decoder, the method comprising:
- deriving reconstructed video data from a video bitstream, wherein the reconstructed video data comprises luma component and chroma components;
- receiving chroma Sample Adaptive Offset indication from the video bitstream if luma Sample Adaptive Offset indication in the video bitstream indicates that Sample Adaptive Offset processing is applied to the luma component;
- determining chroma Sample Adaptive Offset information if the chroma Sample Adaptive Offset indication indicates that the Sample Adaptive Offset processing is applied to the chroma components; and
- applying the Sample Adaptive Offset processing to the chroma components according to the chroma Sample Adaptive Offset information if the chroma Sample Adaptive Offset indication indicates that the Sample Adaptive Offset processing is applied to the chroma components.
2. The method of claim 1, wherein the chroma Sample Adaptive Offset indication uses a single chroma Sample Adaptive Offset flag for the chroma components to share.
3. The method of claim 1, wherein the chroma Sample Adaptive Offset indication uses individual chroma Sample Adaptive Offset flags for the chroma components respectively.
4. The method of claim 1, wherein a chroma picture area of the reconstructed video is partitioned into chroma blocks and the chroma Sample Adaptive Offset is applied to the chroma blocks; wherein the chroma Sample Adaptive Offset information is received from the video bitstream if a current reconstructed chroma block corresponding to one of the chroma components is a new partition; the chroma Sample Adaptive Offset information is derived from a target chroma block if the current reconstructed chroma block is not said new partition; and wherein the current reconstructed chroma block is merged with the target chroma block selected from one or more candidate chroma blocks corresponding to one or more neighboring chroma blocks of the current reconstructed chroma block.
5. The method of claim 4, wherein the chroma Sample Adaptive Offset information is determined based on a merge flag in the video bitstream if said one or more neighboring chroma blocks contain more than one neighboring chroma block; and wherein the chroma Sample Adaptive Offset information is inferred if said one or more neighboring chroma blocks contain one neighboring chroma block.
6. The method of claim 5, wherein at least one of said one or more candidate chroma blocks is eliminated from merging with the current reconstructed chroma block according to quadtree-partition property and merge information of said one or more candidate chroma blocks.
7. The method of claim 1, wherein a picture area of the reconstructed video is partitioned into blocks; wherein luma Sample Adaptive Offset and the chroma Sample Adaptive Offset are applied to luma blocks and chroma blocks respectively; and wherein partition information for the chroma components are derived from the partition information for the luma component.
8. The method of claim 7, wherein the chroma components share the chroma Sample Adaptive Offset information.
9. The method of claim 7, wherein the picture area of the reconstructed video is partitioned into the blocks using quadtree partition; and wherein quadtree-based syntax for the chroma components is derived from the quadtree-based syntax for the luma component.
10. The method of claim 1, wherein a picture area of the reconstructed video is partitioned into blocks; wherein luma Sample Adaptive Offset and the chroma Sample Adaptive Offset are applied to luma blocks and chroma blocks using luma Sample Adaptive Offset information and the chroma Sample Adaptive Offset information respectively; and wherein the luma Sample Adaptive Offset information associated with each luma block or the chroma Sample Adaptive Offset information associated with each chroma block is encoded using an index pointing to a first set of luma Sample Adaptive Offset information or a second set of chroma Sample Adaptive Offset information.
11. The method of claim 10, wherein a first set size corresponding to a number of luma Sample Adaptive Offset information in the first set is updated when new luma Sample Adaptive Offset information is signaled or a second set size corresponding to the number of the chroma Sample Adaptive Offset information in the second set is updated when new chroma Sample Adaptive Offset information is signaled.
12. The method of claim 11, wherein a first bit length to represent the first set size or a second bit length to represent the second set size is dynamically adjusted to accommodate the first set size or the second set size.
13. The method of claim 1, wherein the Sample Adaptive Offset processing applied to the chroma components replaces exterior data from one or more other chroma picture areas with known data or current chroma picture area data or the Sample Adaptive Offset processing is skipped if the Sample Adaptive Offset processing for the current chroma picture area refers to the exterior data.
14. The method of claim 13, wherein a control flag is used to indicate whether the Sample Adaptive Offset processing replaces exterior data or whether to skip the Sample Adaptive Offset processing if the Sample Adaptive Offset processing for the current chroma picture area refers to the exterior data.
15. The method of claim 14, wherein the control flag is a sequence level flag or a picture level flag.
16. The method of claim 14, wherein the control flag is shared by multiple Sample Adaptive Offsets.
17. The method of claim 1, wherein a picture area of the reconstructed video is partitioned into blocks; wherein luma Sample Adaptive Offset and the chroma Sample Adaptive Offset are applied to luma blocks and chroma blocks using luma Sample Adaptive Offset information and the chroma Sample Adaptive Offset information respectively; and wherein the luma Sample Adaptive Offset information or the chroma Sample Adaptive Offset information for a current block is respectively predicted by the luma Sample Adaptive Offset information or the chroma Sample Adaptive Offset information for one or more other blocks.
18. The method of claim 17, wherein the luma Sample Adaptive Offset information or the chroma Sample Adaptive Offset information for the current block is respectively predicted by the luma Sample Adaptive Offset information or the chroma Sample Adaptive Offset information corresponding to one or more neighboring blocks of the current block.
19. (canceled)
20. A method for processing reconstructed video using in-loop filter in a video decoder, wherein a picture area of the reconstructed video is partitioned into blocks and the in-loop filter is applied to the blocks, the method comprising:
- deriving reconstructed video data comprising reconstructed block from a video bitstream;
- receiving in-loop filter information from the video bitstream if a current reconstructed block is a new partition;
- deriving the in-loop filter information from a target block if the current reconstructed block is not said new partition, wherein the current reconstructed block is merged with the target block selected from one or more candidate blocks corresponding to one or more neighboring blocks of the current reconstructed block; and
- applying in-loop filter processing to the current reconstructed block using the in-loop filter information.
21. The method of claim 20, wherein said deriving the in-loop filter information is based on a merge flag in the video bitstream if said one or more neighboring blocks contain more than one neighboring block; and wherein said deriving the in-loop filter information is inferred if said one or more neighboring blocks contain one neighboring block.
22. The method of claim 20, wherein at least one of said one or more candidate blocks is eliminated from merging with the current reconstructed block according to quadtree-partition property and merge information of said one or more candidate blocks.
23. A method for processing reconstructed video using Sample Adaptive Offset in a video encoder, the method comprising:
- deriving reconstructed video data comprising luma component and chroma components;
- incorporating chroma Sample Adaptive Offset indication in a video bitstream if luma Sample Adaptive Offset indication indicates that Sample Adaptive Offset processing is applied to the luma component;
- incorporating chroma Sample Adaptive Offset information in the video bitstream if the chroma Sample Adaptive Offset indication indicates that the Sample Adaptive Offset processing is applied to the chroma components; and
- applying the Sample Adaptive Offset processing to the chroma components according to the chroma Sample Adaptive Offset information if the chroma Sample Adaptive Offset indication indicates that the Sample Adaptive Offset processing is applied to the chroma components.
24. The method of claim 23, wherein a chroma picture area of the reconstructed video is partitioned into chroma blocks and the chroma Sample Adaptive Offset is applied to the chroma blocks; wherein the chroma Sample Adaptive Offset information is incorporated in the video bitstream if a current reconstructed chroma block corresponding to one of the chroma components is a new partition; the chroma Sample Adaptive Offset information is derived from a target chroma block if the current reconstructed chroma block is not said new partition; and wherein the current reconstructed chroma block is merged with the target chroma block selected from one or more candidate chroma blocks corresponding to one or more neighboring chroma blocks of the current reconstructed chroma block.
25. The method of claim 23, wherein a picture area of the reconstructed video is partitioned into blocks; wherein luma Sample Adaptive Offset and the chroma Sample Adaptive Offset are applied to luma blocks and chroma blocks respectively; and wherein partition information for the chroma components are derived from the partition information for the luma component.
26. The method of claim 23, wherein a picture area of the reconstructed video is partitioned into blocks; wherein luma Sample Adaptive Offset and the chroma Sample Adaptive Offset are applied to luma blocks and chroma blocks using luma Sample Adaptive Offset information and the chroma Sample Adaptive Offset information respectively; and wherein the luma Sample Adaptive Offset information associated with each luma block or the chroma Sample Adaptive Offset information associated with each chroma block is encoded using an index pointing to a first set of luma Sample Adaptive Offset information or a second set of chroma Sample Adaptive Offset information.
27. The method of claim 23, wherein a picture area of the reconstructed video is partitioned into blocks; wherein luma Sample Adaptive Offset and the chroma Sample Adaptive Offset are applied to luma blocks and chroma blocks using luma Sample Adaptive Offset information and the chroma Sample Adaptive Offset information respectively; and wherein the luma Sample Adaptive Offset information or the chroma Sample Adaptive Offset information for a current block is provided using prediction based on the luma Sample Adaptive Offset information or the chroma Sample Adaptive Offset information for one or more other blocks.
28. (canceled)
29. A method for processing reconstructed video using in-loop filter in a video encoder, wherein a picture area of the reconstructed video is partitioned into blocks and the in-loop filter is applied to the blocks, the method comprising:
- deriving reconstructed video data;
- incorporating in-loop filter information in a video bitstream if a current reconstructed block is a new partition;
- incorporating the in-loop filter information in the video bitstream based on a target block if the current reconstructed block is not said new partition, wherein the current reconstructed block is merged with the target block selected from one or more candidate blocks corresponding to one or more neighboring blocks of the current reconstructed block; and
- applying in-loop filter processing to the current reconstructed block using the in-loop filter information.
30. An apparatus for processing reconstructed video using Sample Adaptive Offset in a video decoder, the apparatus comprising:
- means for deriving reconstructed video data from a video bitstream, wherein the reconstructed video data comprises luma component and chroma components;
- means for receiving chroma Sample Adaptive Offset indication from the video bitstream if luma Sample Adaptive Offset indication in the video bitstream indicates that Sample Adaptive Offset processing is applied to the luma component;
- means for determining chroma Sample Adaptive Offset information if the chroma Sample Adaptive Offset indication indicates that the Sample Adaptive Offset processing is applied to the chroma components; and
- means for applying the Sample Adaptive Offset processing to the chroma components according to the chroma Sample Adaptive Offset information if the chroma Sample Adaptive Offset indication indicates that the Sample Adaptive Offset processing is applied to the chroma components.
31. The apparatus of claim 30, wherein a chroma picture area of the reconstructed video is partitioned into chroma blocks and the chroma Sample Adaptive Offset is applied to the chroma blocks; wherein the chroma Sample Adaptive Offset information is received from the video bitstream if a current reconstructed chroma block corresponding to one of the chroma components is a new partition; the chroma Sample Adaptive Offset information is derived from a target chroma block if the current reconstructed chroma block is not said new partition; and wherein the current reconstructed chroma block is merged with the target chroma block selected from one or more candidate chroma blocks corresponding to one or more neighboring chroma blocks of the current reconstructed chroma block.
32. (canceled)
33. An apparatus for processing reconstructed video using in-loop filter in a video decoder, wherein a picture area of the reconstructed video is partitioned into blocks and the in-loop filter is applied to the blocks, the apparatus comprising:
- means for deriving reconstructed video data comprising reconstructed block from a video bitstream;
- means for receiving in-loop filter information from the video bitstream if a current reconstructed block is a new partition;
- means for deriving the in-loop filter information from a target block if the current reconstructed block is not said new partition, wherein the current reconstructed block is merged with the target block selected from one or more candidate blocks corresponding to one or more neighboring blocks of the current reconstructed block; and
- means for applying in-loop filter processing to the current reconstructed block using the in-loop filter information.
34. The apparatus of claim 33, wherein said deriving the in-loop filter information is based on a merge flag in the video bitstream if said one or more neighboring blocks contain more than one neighboring block; and wherein said deriving the in-loop filter information is inferred if said one or more neighboring blocks contain one neighboring block.
35. The apparatus of claim 33, wherein at least one of said one or more candidate blocks is eliminated from merging with the current reconstructed block according to quadtree-partition property and merge information of said one or more candidate blocks.
36. An apparatus for processing reconstructed video using Sample Adaptive Offset in a video encoder, the apparatus comprising:
- means for deriving reconstructed video data comprising luma component and chroma components;
- means for incorporating chroma Sample Adaptive Offset indication in a video bitstream if luma Sample Adaptive Offset indication indicates that Sample Adaptive Offset processing is applied to the luma component;
- means for incorporating chroma Sample Adaptive Offset information in the video bitstream if the chroma Sample Adaptive Offset indication indicates that the Sample Adaptive Offset processing is applied to the chroma components; and
- means for applying the Sample Adaptive Offset processing to the chroma components according to the chroma Sample Adaptive Offset information if the chroma Sample Adaptive Offset indication indicates that the Sample Adaptive Offset processing is applied to the chroma components.
37. (canceled)
38. An apparatus for processing reconstructed video using in-loop filter in a video encoder, wherein a picture area of the reconstructed video is partitioned into blocks and the in-loop filter is applied to the blocks, the apparatus comprising:
- means for deriving reconstructed video data;
- means for incorporating in-loop filter information in a video bitstream if a current reconstructed block is a new partition;
- means for incorporating the in-loop filter information in the video bitstream based on a target block if the current reconstructed block is not said new partition, wherein the current reconstructed block is merged with the target block selected from one or more candidate blocks corresponding to one or more neighboring blocks of the current reconstructed block; and
- means for applying in-loop filter processing to the current reconstructed block using the in-loop filter information.
39. A method for processing reconstructed video using Sample Adaptive Offset in a video decoder, the method comprising:
- deriving reconstructed video data from a video bitstream; and
- applying block-based Sample Adaptive Offset processing to a block of the reconstructed video data, wherein a picture is divided into a plurality of blocks, and wherein each block may use Sample Adaptive Offset information associated with each block;
- wherein the Sample Adaptive Offset information associated with a current block is shared by another block according to information incorporated in the video bitstream.
40. The method of claim 39, wherein the Sample Adaptive Offset information associated with the current block is shared by one or more following blocks as indicated by a run signal.
41. The method of claim 40, wherein the run signal is incorporated in a slice level.
42. The method of claim 39, wherein the Sample Adaptive Offset information associated with the current block is shared by an above-block as indicated by a merge-above flag.
43. The method of claim 39, wherein the Sample Adaptive Offset information associated with the current block is shared by one or more following blocks as indicated by a run-difference signal; wherein the run-difference signal is determined based on a difference between a current run and a prediction run; wherein the current run is associated with a first number of blocks following the current block to share the Sample Adaptive Offset information with the current block; and wherein the prediction run is associated with a second number of blocks following an above-block to share the Sample Adaptive Offset information with the above block.
44. The method of claim 43, wherein the run-difference signal is set to the current run if the prediction run is not available.
45. The method of claim 44, wherein the current run is encoded using an unsigned variable length code if the prediction run is not available; and wherein the run-difference signal is encoded using a signed variable length code if the prediction run is available.
46. The method of claim 45, wherein the unsigned variable length code or the signed variable length code is selected from a group consisting of k-th order exp-Golomb code, Golomb-Rice code, and CABAC code.
47. The method of claim 39, wherein each block is a largest coding unit (LCU).
48. The method of claim 39, wherein all the blocks in a current row share the Sample Adaptive Offset information with all the blocks in an above-row if a repeated-row flag indicates a repeated row; and wherein the Sample Adaptive Offset information is incorporated in the video bitstream if the repeated-row flag indicates a non-repeated row.
49. The method of claim 48, wherein an enable-repeated-row flag is incorporated in the video bitstream to indicate whether the repeated-row flag is incorporated in the video bitstream for each row of blocks.
50. The method of claim 48, wherein the repeated-row flag is omitted in the video bitstream for the picture consisting of one slice or for a first slice of a multi-slice picture using slice-independent Sample Adaptive Offset processing.
51. The method of claim 39, wherein the Sample Adaptive Offset information associated with a current row of blocks is shared by one or more following rows of blocks as indicated by a row-run signal associated with a number of said one of more following rows.
52. The method of claim 51 wherein the row-run signal is represented by a fixed length code; and wherein bit length of the fixed length code is derived based on minimum row run and maximum row run.
53. A method for processing reconstructed video using Sample Adaptive Offset in a video encoder, the method comprising:
- deriving reconstructed video data; and
- applying block-based Sample Adaptive Offset processing to a block of the reconstructed video data, wherein a picture is divided into a plurality of blocks, and wherein each block may use Sample Adaptive Offset information associated with each block;
- wherein the Sample Adaptive Offset information associated with a current block is shared by another block according to information incorporated in a video bitstream.
54. The method of claim 53, further comprising incorporating a run signal in the video bitstream to indicate a number of one or more following blocks to share the Sample Adaptive Offset information associated with the current block.
55. The method of claim 54, wherein the run signal is incorporated in a slice level.
56. The method of claim 54, further comprising incorporating a merge-above flag in the video bitstream to indicate that the Sample Adaptive Offset information associated with the current block is shared by an above-block.
57. The method of claim 53, further comprising incorporating a run-difference signal to indicate that the Sample Adaptive Offset information associated with the current block is shared by one or more following blocks as indicated by the run-difference signal; wherein the run-difference signal is determined based on a difference between a current run and a prediction run; wherein the current run is associated with a first number of blocks following the current block to share the Sample Adaptive Offset information with the current block; and wherein the prediction run is associated with a second number of blocks following an above-block to share the Sample Adaptive Offset information with the above block.
58. An apparatus for processing reconstructed video using Sample Adaptive Offset in a video decoder, the apparatus comprising:
- means for deriving reconstructed video data from a video bitstream; and
- means for applying block-based Sample Adaptive Offset processing to a block of the reconstructed video data, wherein a picture is divided into a plurality of blocks, and wherein each block may use Sample Adaptive Offset information associated with each block; wherein the Sample Adaptive Offset information associated with a current block is shared by another block according to information incorporated in the video bitstream.
59. An apparatus for processing reconstructed video using Sample Adaptive Offset in a video encoder, the apparatus comprising:
- means for deriving reconstructed video data; and
- means for applying block-based Sample Adaptive Offset processing to a block of the reconstructed video data, wherein a picture is divided into a plurality of blocks, and wherein each block may use Sample Adaptive Offset information associated with each block;
- wherein the Sample Adaptive Offset information associated with a current block is shared by another block according to information incorporated in a video bitstream.
Type: Application
Filed: Dec 6, 2011
Publication Date: Nov 22, 2012
Applicant: MEDIATEK INC. (Hsinchu)
Inventors: Chih-Ming Fu (Hsinchu), Ching-Yeh Chen (Taipei), Chia-Yang Tsai (New Taipei), Yu-Wen Huang (Taipei), Shaw-Min Lei (Hsinchu)
Application Number: 13/311,953
International Classification: H04N 7/12 (20060101);