US2015036738A1PendingUtilityA1

Method and apparatus for real-time sao parameter estimation

Assignee: TEXAS INSTRUMENTS INCPriority: Jul 30, 2013Filed: Jul 30, 2014Published: Feb 5, 2015
Est. expiryJul 30, 2033(~7 yrs left)· nominal 20-yr term from priority
H04N 19/82H04N 19/176H04N 19/182H04N 19/147H04N 19/117H04N 19/149H04N 19/00915H04N 19/00175H04N 19/00066H04N 19/00303
62
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

The disclosure provides a sample adaptive offset (SAO) encoder. The SAO encoder includes a statistics collection (SC) block and a rate distortion optimization (RDO) block coupled to the SC block. The SC block receives a set of deblocked pixels and a set of original pixels. The SC block categorizes each deblocked pixel of the set of deblocked pixels in at least one of a plurality of band and edge categories. The SC block estimates an error in each category as difference between a deblocked pixel of the set of deblocked pixels and corresponding original pixel of the set of original pixels. The RDO block determines a set of candidate offsets associated with each category and selects a candidate offset with a minimum RD cost. The minimum RD cost is used by a SAO type block and a decision block to generate final offsets for the SAO encoder.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A sample adaptive offset (SAO) encoder comprising:
 a statistics collection (SC) block configured to receive a set of deblocked pixels and a set of original pixels, the SC block configured to:
 categorize each deblocked pixel of the set of deblocked pixels in at least one of a plurality of band categories and a plurality of edge categories; 
 count a number of deblocked pixels in each category of the plurality of band categories and the plurality of edge categories; and 
 estimate an error in each category from a difference between a deblocked pixel of the set of deblocked pixels and corresponding original pixel of the set of original pixels; 
   a rate distortion optimization (RDO) block coupled to the SC block, the RDO block is configured to:
 determine a sign of the error in each category; 
 determine a set of candidate offsets associated with each category, a value of a candidate offset of the set of candidate offsets is between a maximum candidate offset and a minimum candidate offset; 
 estimate a rate distortion (RD) cost associated with each candidate offset of the set of candidate offsets determined for each category; and 
 determine a minimum RD cost of the estimated RD costs for each category. 
   
     
     
         2 . The SAO encoder of  claim 1 , wherein the RDO block is configured to estimate the RD cost for each candidate offset using the count of the number of deblocked pixels in each category and an absolute value of the estimated error for each category. 
     
     
         3 . The SAO encoder of  claim 1 , wherein the RDO block is configured to estimate the RD cost for each candidate offset using a bitrate data from a look-up table stored in the SAO encoder. 
     
     
         4 . The SAO encoder of  claim 1 , wherein the RDO block is configured to modify a sign of the corresponding candidate offset used to determine the minimum RD cost based on the sign of the error in each category. 
     
     
         5 . The SAO encoder of  claim 1  further comprising a SAO type block coupled to the RDO block, the SAO type block configured to:
 receive the minimum RD cost and corresponding candidate offset for each category, the minimum RD cost is determined from the corresponding candidate offset; 
 generate a set of band SAO types such that each band SAO type of the set of band SAO types comprises a set of band categories of the plurality of band categories; 
 generate a set of edge SAO types such that each edge SAO type of the set of edge SAO types comprises a set of edge categories of the plurality of edge categories; 
 estimate a band cost associated with each band SAO type, the band cost associated with a band SAO type is estimated by summing the minimum RD cost associated with each band category combined to form the band SAO type; 
 estimate an edge cost associated with each edge SAO type, the edge cost associated with an edge SAO type is estimated by summing the minimum RD cost associated with each edge category combined to form the edge SAO type; 
 determine a minimum band cost of the estimated band costs; 
 provide a minimum band cost, a set of band categories combined to form the band SAO type for which the minimum band cost is obtained and corresponding candidate offsets associated with each band category of the set of band categories, to a decision block; and 
 provide the edge cost associated with each edge SAO type and corresponding candidate offsets associated with each edge category combined to form the edge SAO type, to the decision block. 
 
     
     
         6 . The SAO encoder of  claim 5 , wherein the SAO type block is configured to estimate the minimum band cost using the bitrate data from a look-up table stored in the SAO encoder. 
     
     
         7 . The SAO encoder of  claim 5 , wherein:
 when the set of deblocked pixels corresponds to a luma component of a current LCU (largest coding unit), the minimum band cost is a luma minimum band cost and the edge cost associated with each edge SAO type is a luma edge cost; and   when the set of deblocked pixels corresponds to a chroma component of the current LCU, the minimum band cost is a chroma minimum band cost and the edge cost associated with each edge SAO type is a chroma edge cost.   
     
     
         8 . The SAO encoder of  claim 7 , wherein:
 when the set of deblocked pixels corresponds to the luma component of the current LCU, the candidate offsets corresponding to the minimum band cost are candidate offsets corresponding to the luma minimum band cost and the candidate offsets associated with each edge category combined to form the edge SAO type are candidate offsets corresponding to each luma edge cost; and   when the set of deblocked pixels corresponds to the chroma component of the current LCU, the candidate offsets corresponding to the minimum band cost are candidate offsets corresponding to the chroma minimum band cost and the candidate offsets associated with each edge category combined to form the edge SAO type are candidate offsets corresponding to each chroma edge cost.   
     
     
         9 . The SAO encoder of  claim 1  further comprising a merge mode block coupled to the SC block and configured to:
 receive the count of the number of deblocked pixels in each category and the estimated error in each category; 
 receive a final left SAO type associated with a left LCU; 
 receive final offsets corresponding to the final left SAO type associated with the left LCU; 
 estimate a left merge cost associated with the current LCU from the final offsets associated with the left LCU; 
 receive a final top SAO type associated with a top LCU; 
 receive final offsets corresponding to the final top SAO type associated with the top LCU; and 
 estimate a top merge cost associated with the current LCU from the final offsets associated with the top LCU. 
 
     
     
         10 . The SAO encoder of  claim 9 , wherein:
 when the set of deblocked pixels corresponds to the luma component of the current LCU, the left merge cost is a luma left merge cost and the top merge cost is a luma top merge cost; and   when the set of deblocked pixels corresponds to the chroma component of the current LCU, the left merge cost is a chroma left merge cost and the top merge cost is a chroma top merge cost.   
     
     
         11 . The SAO encoder of  claim 9 , wherein each of the final left SAO type and the final top SAO type comprises a final luma SAO type and a final chroma SAO type. 
     
     
         12 . The SAO encoder of  claim 1  further comprising a decision block coupled to the SAO type block and the merge mode block, the decision block is configured to:
 receive the luma minimum band cost, the luma edge cost associated with each edge SAO type and a SAO disable cost; 
 receive the chroma minimum band cost, the chroma edge cost associated with each edge SAO type and the SAO disable cost; 
 receive the luma left merge cost and the chroma left merge cost from the merge mode block; and 
 receive the luma top merge cost and the chroma top merge cost from the merge mode block. 
 
     
     
         13 . The SAO encoder of  claim 12 , wherein the decision block is configured to:
 select a minimum of the luma minimum band cost, the luma edge cost associated with each edge SAO type and the SAO disable cost to generate a best luma cost;   select a minimum of the chroma minimum band cost, the chroma edge cost associated with each edge SAO type and the SAO disable cost to generate a best chroma cost;   add the best luma cost and the best chroma cost to generate a joint cost;   add the luma left merge cost and the chroma left merge cost to generate a joint left merge cost;   add the luma top merge cost and the chroma top merge cost to generate a joint top merge cost; and   select a minimum of the joint cost, the joint left merge cost and the joint top merge cost to generate a final cost.   
     
     
         14 . The SAO encoder of  claim 13 , wherein offsets corresponding to the best luma cost are best luma offsets and offsets corresponding to the best chroma cost are best chroma offsets. 
     
     
         15 . The SAO encoder of  claim 14 , wherein the best luma offsets comprises at least one of offsets corresponding to the SAO disable cost, the candidate offsets corresponding to the luma minimum band cost and the candidate offsets corresponding to each luma edge cost. 
     
     
         16 . The SAO encoder of  claim 14 , wherein the best chroma cost comprises at least one of offsets corresponding to the SAO disable cost, the candidate offsets corresponding to the chroma minimum band cost and the candidate offsets corresponding to each chroma edge cost. 
     
     
         17 . The SAO encoder of  claim 12 , wherein the decision block is configured to:
 select the final offsets corresponding to the final left SAO type associated with the left LCU when the final cost is equal to the joint left merge cost;   select the final offsets corresponding to the final top SAO type associated with the top LCU when the final cost is equal to the joint top merge cost; and   select the best luma offsets and the best chroma offsets when the final cost is equal to the joint cost.   
     
     
         18 . A method of generating final offsets in a SAO encoder comprising:
 receiving a set of deblocked pixels and a set of original pixels;   categorizing each deblocked pixel of the set of deblocked pixels in at least one of a plurality of band categories and a plurality of edge categories;   counting a number of deblocked pixels in each category of the plurality of band categories and the plurality of edge categories;   estimating an error in each category from a difference between a deblocked pixel of the set of deblocked pixels and corresponding original pixel of the set of original pixels;   determining a sign of the error in each category;   determining a set of candidate offsets associated with each category, a value of a candidate offset of the set of candidate offsets is between a maximum candidate offset and a minimum candidate offset;   estimating a rate distortion (RD) cost associated with each candidate offset of the set of candidate offsets determined for each category; and   determining a minimum RD cost of the estimated RD costs for each category.   
     
     
         19 . The method of  claim 18  further comprising:
 receiving the minimum RD cost and corresponding candidate offset for each category, the minimum RD cost is determined from the corresponding candidate offset; 
 generating a set of band SAO types such that each band SAO type of the set of band SAO types comprises a set of band categories of the plurality of band categories; 
 generating a set of edge SAO types such that each edge SAO type of the set of edge SAO types comprises a set of edge categories of the plurality of edge categories; 
 estimating a band cost associated with each band SAO type, the band cost associated with a band SAO type is estimated by summing the minimum RD cost associated with each band category combined to form the band SAO type; 
 estimating an edge cost associated with each edge SAO type, the edge cost associated with an edge SAO type is estimated by summing the minimum RD cost associated with each edge category combined to form the edge SAO type; 
 determining a minimum band cost of the estimated band costs; 
 generating a minimum band cost, a set of band categories combined to form the band SAO type for which the minimum band cost is obtained and corresponding candidate offsets associated with each band category of the set of band categories; and 
 generating the edge cost associated with each edge SAO type and corresponding candidate offsets associated with each edge category combined to form the edge SAO type. 
 
     
     
         20 . The method of  claim 18 , further comprising:
 receiving the count of the number of deblocked pixels in each category and the estimated error in each category;   receiving a final left SAO type associated with a left LCU;   receiving final offsets corresponding to the final left SAO type associated with the left LCU;   estimating a left merge cost associated with a current LCU from the final offsets associated with the left LCU;   receiving a final top SAO type associated with a top LCU;   receiving final offsets corresponding to the final top SAO type associated with the top LCU; and   estimating a top merge cost associated with the current LCU from the final offsets associated with the top LCU.   
     
     
         21 . The method of  claim 20 , wherein when the set of deblocked pixels corresponds to a luma component of the current LCU:
 the minimum band cost is a luma minimum band cost and the edge cost associated with each edge SAO type is a luma edge cost;   the candidate offsets corresponding to the minimum band cost are candidate offsets corresponding to the luma minimum band cost and the candidate offsets associated with each edge category combined to form the edge SAO type are candidate offsets corresponding to each luma edge cost; and   the left merge cost is a luma left merge cost and the top merge cost is a luma top merge cost.   
     
     
         22 . The method of  claim 20 , wherein when the set of deblocked pixels corresponds to a chroma component of the current LCU:
 the minimum band cost is a chroma minimum band cost and the edge cost associated with each edge SAO type is a chroma edge cost;   the candidate offsets corresponding to the minimum band cost are candidate offsets corresponding to the chroma minimum band cost and the candidate offsets associated with each edge category combined to form the edge SAO type are candidate offsets corresponding to each chroma edge cost; and   the left merge cost is a chroma left merge cost and the top merge cost is a chroma top merge cost.   
     
     
         23 . The method of  claim 18  further comprising:
 selecting a minimum of the luma minimum band cost, the luma edge cost associated with each edge SAO type and the SAO disable cost to generate a best luma cost; 
 selecting a minimum of the chroma minimum band cost, the chroma edge cost associated with each edge SAO type and the SAO disable cost to generate a best chroma cost; 
 adding the best luma cost and the best chroma cost to generate a joint cost; 
 adding the luma left merge cost and the chroma left merge cost to generate a joint left merge cost; 
 adding the luma top merge cost and the chroma top merge cost to generate a joint top merge cost; and 
 selecting a minimum of the joint cost, the joint left merge cost and the joint top merge cost to generate a final cost. 
 
     
     
         24 . The method of  claim 23 , wherein offsets corresponding to the best luma cost are best luma offsets and offsets corresponding to the best chroma cost are best chroma offsets. 
     
     
         25 . The method of  claim 18  further comprising:
 selecting the final offsets corresponding to the final left SAO type associated with the left LCU when the final cost is equal to the joint left merge cost; 
 selecting the final offsets corresponding to the final top SAO type associated with the top LCU when the final cost is equal to the joint top merge cost; and 
 selecting the best luma offsets and the best chroma offsets when the final cost is equal to the joint cost.

Join the waitlist — get patent alerts

Track US2015036738A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.