US9270999B2ActiveUtilityA1

Delayed chroma processing in block processing pipelines

92
Assignee: APPLE INCPriority: Sep 25, 2013Filed: Sep 25, 2013Granted: Feb 23, 2016
Est. expirySep 25, 2033(~7.2 yrs left)· nominal 20-yr term from priority
H04N 19/423H04N 19/186H04N 19/593H04N 19/107H04N 19/40H04N 19/86H04N 19/13H04N 19/96H04N 19/182H04N 19/52H04N 19/439H04N 19/176H04N 19/436H04N 19/159
92
PatentIndex Score
14
Cited by
35
References
20
Claims

Abstract

A block processing pipeline in which macroblocks are input to and processed according to row groups so that adjacent macroblocks on a row are not concurrently at adjacent stages of the pipeline. The input method may allow chroma processing to be postponed until after luma processing. One or more upstream stages of the pipeline may process luma elements of each macroblock to generate luma results such as a best mode for processing the luma elements. Luma results may be provided to one or more downstream stages of the pipeline that process chroma elements of each macroblock. The luma results may be used to determine processing of the chroma elements. For example, if the best mode for luma is an intra-frame mode, then a chroma processing stage may determine a best intra-frame mode for chroma and reconstruct the chroma elements according to the best chroma intra-frame mode.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. An apparatus, comprising:
 a block processing pipeline comprising a plurality of stages, each stage configured to perform one or more operations on a macroblock of pixels passing through the pipeline, wherein each macroblock includes at least one block of luma elements and at least one block of chroma elements; 
 wherein the apparatus is configured to process macroblocks of pixels from a current frame in the block processing pipeline so that adjacent macroblocks on a row are not concurrently at adjacent stages of the pipeline; and 
 wherein the block processing pipeline is configured to:
 process luma elements of a current macroblock at one or more upstream luma processing stages of the pipeline; and 
 process chroma elements of the current macroblock at one or more downstream chroma processing stages of the pipeline according to results of said processing the luma elements of the current macroblock at the one or more upstream luma processing stages. 
 
 
     
     
       2. The apparatus as recited in  claim 1 , wherein the one or more luma processing stages include a luma intra-frame estimation stage configured to determine a best intra-frame mode for the current macroblock according to neighbor luma elements from one or more neighbor macroblocks of the current macroblock in the current frame and output the determined best intra-frame mode to a mode decision stage in the pipeline. 
     
     
       3. The apparatus as recited in  claim 2 , wherein the neighbor luma elements include left neighbor luma elements from a left neighbor macroblock of the current macroblock received from a downstream luma reconstruction stage configured to reconstruct luma elements of the left neighbor block according to input from one or more upstream stages and feed back reconstructed luma elements from the reconstructed left neighbor macroblock to the intra-frame estimation stage. 
     
     
       4. The apparatus as recited in  claim 2 , wherein the one or more luma processing stages include a luma inter-frame estimation stage configured to determine a best inter-frame mode for the current macroblock according to luma elements from one or more previously processed reference frames for the current frame and output the determined best inter-frame mode to the mode decision stage in the pipeline. 
     
     
       5. The apparatus as recited in  claim 4 , wherein the mode decision stage is configured to:
 receive input from one or more upstream stages of the pipeline including best intra-frame mode from the luma intra-frame estimation stage and best inter-frame mode from the luma inter-frame estimation stage; 
 determine a best mode for the current macroblock according to the received input; and 
 output at least the determined best mode to one or more downstream stages of the pipeline. 
 
     
     
       6. The apparatus as recited in  claim 5 , wherein the one or more luma processing stages include a luma motion compensation stage and a luma reconstruction stage downstream to the mode decision stage, wherein the luma motion compensation stage and the luma reconstruction stage are configured to perform motion compensation and reconstruction of luma elements of the current macroblock according to results of the mode decision stage. 
     
     
       7. The apparatus as recited in  claim 5 , wherein the one or more chroma processing stages include a chroma motion compensation stage and a chroma reconstruction stage downstream to the mode decision stage, wherein the chroma motion compensation stage and the chroma reconstruction stage are configured to perform motion compensation and reconstruction of chroma elements of the current macroblock according to results of the mode decision stage. 
     
     
       8. The apparatus as recited in  claim 5 , wherein, to process chroma elements of the current macroblock, the one or more chroma processing stages are configured to:
 determine that the best mode received from the mode decision stage is an intra-frame mode; and 
 in response to said determining:
 perform intra-frame estimation for the chroma elements of the current macroblock to determine a best intra-frame mode for chroma; and 
 perform chroma reconstruction for the current macroblock according to the determined intra-frame mode for chroma. 
 
 
     
     
       9. The apparatus as recited in  claim 1 , wherein the rows of macroblocks are separated into a plurality of row groups each including two or more rows, wherein input of the macroblocks to the block processing pipeline is constrained on row group boundaries, wherein, after inputting a macroblock on a bottom row of a row group, a next macroblock is input from a top row of the row group. 
     
     
       10. A method, comprising:
 inputting macroblocks of pixels from a current frame to a block processing pipeline, wherein the pipeline includes a plurality of stages each configured to perform one or more operations on a macroblock, wherein said inputting the macroblocks spaces the macroblocks in the pipeline so that adjacent macroblocks on a row are not concurrently at adjacent stages of the pipeline, and wherein each macroblock includes at least one block of luma elements and at least one block of chroma elements; 
 for each input macroblock:
 processing luma elements of the macroblock at one or more luma processing stages of the pipeline to generate luma processing results; 
 processing chroma elements of the macroblock at one or more chroma processing stages of the pipeline according to said luma processing results; and 
 outputting the processed macroblock to a memory. 
 
 
     
     
       11. The method as recited in  claim 10 , wherein said processing luma elements of the macroblock at one or more luma processing stages of the pipeline to generate luma processing results comprises determining, by a luma intra-frame estimation stage, a best intra-frame mode for the macroblock according to neighbor luma elements from one or more previously processed neighbor macroblocks in the current frame. 
     
     
       12. The method as recited in  claim 11 , wherein said processing luma elements of the macroblock at one or more luma processing stages of the pipeline to generate luma processing results further comprises determining, by a mode decision stage, a best mode for reconstructing the macroblock according to input received from one or more upstream stages including the best intra-frame mode received from the luma intra-frame estimation stage. 
     
     
       13. The method as recited in  claim 12 , wherein said processing luma elements of the macroblock at one or more luma processing stages of the pipeline to generate luma processing results further comprises performing, by at least one of the one or more luma processing stages, motion compensation and reconstruction of luma elements of the macroblock according to results of the mode decision stage. 
     
     
       14. The method as recited in  claim 12 , wherein said processing chroma elements of the macroblock at one or more chroma processing stages of the pipeline according to said luma processing results comprises performing, by the one or more chroma processing stages, motion compensation and reconstruction of chroma elements of the macroblock according to results of the mode decision stage. 
     
     
       15. The method as recited in  claim 12 , wherein said processing chroma elements of the macroblock at one or more chroma processing stages of the pipeline according to said luma processing results comprises:
 determining, by the one or more chroma processing stages, that the best mode received from the mode decision stage is an intra-frame mode; and 
 in response to said determining:
 performing, by the one or more chroma processing stages, intra-frame estimation for the chroma elements of the macroblock to determine a best intra-frame mode for chroma; and 
 performing, by the one or more chroma processing stages, chroma reconstruction for the macroblock according to the determined intra-frame mode for chroma. 
 
 
     
     
       16. A device, comprising:
 a memory; and 
 an apparatus configured to process video frames and to store the processed video frames as frame data to the memory, the apparatus comprising a block processing pipeline that implements a plurality of stages each configured to perform one or more operations on a macroblock of pixels from a frame passing through the pipeline, wherein each macroblock includes at least one block of luma elements and at least one block of chroma elements; 
 wherein each frame is subdivided into rows and columns of macroblocks of pixels, wherein the apparatus is configured to input the macroblocks of pixels from each frame to the block processing pipeline so that adjacent macroblocks on a row are not concurrently at adjacent stages of the pipeline; 
 wherein one or more luma processing stages of the pipeline are configured to process luma elements of a macroblock to generate luma processing results for the macroblock; and 
 wherein one or more chroma processing stages of the pipeline are configured to process chroma elements of the macroblock according to said luma processing results for the macroblock. 
 
     
     
       17. The device as recited in  claim 16 , wherein, to process luma elements of a macroblock to generate luma processing results for the macroblock, the one or more luma processing stages are configured to determine a best mode for reconstructing the luma elements of the macroblock, wherein the best mode is one of an intra-frame mode determined according to neighbor luma elements from one or more previously processed neighbor macroblocks in the current frame or an inter-frame mode for the current macroblock determined according to luma elements from one or more previously processed reference frames. 
     
     
       18. The device as recited in  claim 17 , wherein, to process luma elements of a macroblock to generate luma processing results for the macroblock, the one or more luma processing stages are configured to perform motion compensation and reconstruction of luma elements of the macroblock according to the determined best mode. 
     
     
       19. The device as recited in  claim 17 , wherein, to process chroma elements of the macroblock according to said luma processing results for the macroblock, the one or more chroma processing stages are configured to perform motion compensation and reconstruction of chroma elements of the macroblock according to the determined best mode. 
     
     
       20. The device as recited in  claim 17 , wherein, to process chroma elements of the macroblock according to said luma processing results for the macroblock, the one or more chroma processing stages are configured to:
 determine that the best mode is an intra-frame mode; and 
 in response to said determining:
 perform intra-frame estimation for the chroma elements of the macroblock to determine an intra-frame mode for chroma; and 
 perform chroma reconstruction for the macroblock according to the determined intra-frame mode for chroma.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.