IP Library Granted Patent US 10,521,939
Granted Patent B2
US 10,521,939 · App. 13/896,105 · Granted Dec 31, 2019

System, method and recording medium for processing macro blocks for overlay graphics

Inventor: Himanshu Srivastava (Gorakhpur, IN)
Assignee: ANALOG DEVICES GLOBAL UNLIMITED COMPANY
G06T11/60
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,521,939
App. No.
13/896,105
Granted
Dec 31, 2019
Kind
B2
Abstract

An apparatus includes a processing unit that divides an overlay buffer into a plurality of macro blocks, draws a graphic primitive object including a plurality of pixels, identifies one of the plurality of macro blocks upon a determination that the plurality of pixels has crossed a boundary of the one of the plurality of macro blocks, and image processes the one of the plurality of macro blocks.

Claims (46)

1. An apparatus, comprising:

a processing unit configured to divide an overlay buffer into a plurality of macro blocks, to draw a graphic primitive object including a plurality of pixels, and to identify one of the plurality of macro blocks upon a determination that the plurality of pixels has crossed a boundary of a plurality of boundaries of the one of the plurality of macro blocks, wherein the processing unit does not check whether the plurality of pixels has crossed an other boundary of the plurality of boundaries, based on a direction in which the graphic primitive object is drawn,

the processing unit further configured to store overlay data and video data corresponding to the one of the plurality of macro blocks in an on-chip cache memory in response to the determination,

the processing unit further configured to perform an image processing of the one of the plurality of macro blocks with a portion of the graphic primitive object including the plurality of pixels,

the processing unit further configured to send an updated video macro block from the on-chip cache memory to an off-chip memory in response to the image processing,

the processing unit further configured to proceed to a next one of the plurality of macro blocks without performing the image processing on a current one of the plurality of macro blocks, if it is determined the plurality of pixels does not cross a boundary of a plurality of boundaries of the current one of the plurality of macro blocks.

2. The apparatus of claim 1 , wherein the processing unit is further configured to identify one of the plurality of macro blocks that contains an initial pixel of the graphic primitive object.

3. The apparatus of claim 1 , wherein the processing unit is further configured to update a bit corresponding to the one of the plurality of macro blocks in a variable and to perform the image processing on the one of the plurality of macro blocks upon a determination based on the bit in the variable.

4. The apparatus of claim 1 , wherein the processing unit is further configured to determine which one of a plurality of macro blocks of a video plane corresponds to the one of the plurality of macro blocks of the overlay buffer prior to the image processing.

5. The apparatus of claim 1 , wherein the plurality of pixels begins in an initial one of the plurality of macro blocks, and the processing unit is further configured to identify the initial one of the plurality of macro blocks and to perform the image processing on the initial one of the plurality of macro blocks.

6. The apparatus of claim 1 , wherein the graphic primitive object is selected from a group consisting of: a line, a rectangle, a circle, Line Draw, Poly Line Draw, Polygon, Rectangle Draw, Rectangle Fill, Rectangle Brush, Rounded Rectangle, Circle Draw, Circle Fill, Circle Brush, Circle Brush Fill, Circular Arc, Circular Pie, Circular Pie Fill, Ellipse Draw, Ellipse Fill, Ellipse Brush, Ellipse Brush Fill, Elliptical Arc, BitBlt (block transfer), BitBlt Shrinked, and BitBlt Stretched.

7. The apparatus of claim 1 , wherein the image processing is defined by at least one of a blending or a color conversion.

8. The apparatus of claim 1 , wherein the processing unit is further configured to retrieve the overlay data and the video data corresponding to the one of the plurality of macro blocks in response to the determination.

9. The apparatus of claim 8 , wherein the off-chip memory is a read-only memory (ROM), a random access memory (RAM), a hard drive, a compact disc, or a flash memory.

10. A method, comprising:

dividing an overlay buffer into a plurality of macro blocks;

drawing a graphic primitive object including a plurality of pixels;

identifying one of the plurality of macro blocks upon a determination that the plurality of pixels has crossed a boundary of a plurality of boundaries of the one of the plurality of macro blocks, wherein whether the plurality of pixels has crossed an other boundary of the plurality of boundaries is not checked, based on a direction in which the graphic primitive object is drawn;

storing overlay data and video data corresponding to the one of the plurality of macro blocks in an on-chip cache memory in response to the determination;

image processing the one of the plurality of macro blocks with a portion of the graphic primitive object including the plurality of pixels;

sending an updated video macro block from the on-chip cache memory to an off-chip memory in response to the image processing; and

proceeding to a next one of the plurality of macro blocks without performing the image processing on a current one of the plurality of macro blocks, if it is determined the plurality of pixels does not cross a boundary of a plurality of boundaries of the current one of the plurality of macro blocks.

11. The method of claim 10 , further comprising:

identifying one of the plurality of macro blocks that contains an initial pixel of the graphic primitive object.

12. The method of claim 10 , wherein the identifying includes updating a bit corresponding to the one of the plurality of macro blocks in a variable, and the image processing is performed upon a determination based on the bit in the variable.

13. The method of claim 10 , further comprising:

determining which one of a plurality of macro blocks of a video plane corresponds to the one of the plurality of macro blocks of the overlay buffer prior to the image processing.

14. The method of claim 10 , further comprising:

retrieving the overlay data and the video data corresponding to the one of the plurality of macro blocks in response to the determination.

15. The method of claim 10 , wherein the image processing is defined by at least one of a blending or a color conversion.

16. Logic encoded in one or more non-transitory, tangible media that includes code for execution and, when executed by a processor, operable to perform operations comprising:

dividing an overlay buffer into a plurality of macro blocks;

drawing a graphic primitive object including a plurality of pixels;

identifying one of the plurality of macro blocks upon a determination that the plurality of pixels has crossed a boundary of a plurality of boundaries of the one of the plurality of macro blocks, wherein the processor does not check whether the plurality of pixels has crossed an other boundary of the plurality of boundaries, based on a direction in which the graphic primitive object is drawn;

storing overlay data and video data corresponding to the one of the plurality of macro blocks in an on-chip cache memory in response to the determination;

image processing the one of the plurality of macro blocks with a portion of the graphic primitive object including the plurality of pixels;

sending an updated video macro block from the on-chip cache memory to an off-chip memory in response to the image processing; and

proceeding to a next one of the plurality of macro blocks without performing the image processing on a current one of the plurality of macro blocks, if it is determined the plurality of pixels does not cross a boundary of a plurality of boundaries of the current one of the plurality of macro blocks.

17. The logic of claim 16 , wherein the operations further comprise:

identifying one of the plurality of macro blocks that contains an initial pixel of the graphic primitive object.

18. The logic of claim 16 , wherein the identifying includes updating a bit corresponding to the one of the plurality of macro blocks in a variable, and the image processing is performed upon a determination based on the bit in the variable.

19. The logic of claim 16 , wherein the operations further comprise:

determining which one of a plurality of macro blocks of a video plane corresponds to the one of the plurality of macro blocks of the overlay buffer prior to the image processing.

20. The logic of claim 16 , wherein the operations further comprise:

retrieving the overlay data and the video data corresponding to the one of the plurality of macro blocks in response to the determination.

21. The logic of claim 16 , wherein the image processing is defined by at least one of a blending or a color conversion.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2022
From: ANALOG DEVICES GLOBAL UNLIMITED COMPANY
To: ANALOG DEVICES INTERNATIONAL UNLIMITED COMPANY
Reel/Frame 059108/0052 →
CHANGE OF NAME Recorded Apr 16, 2019
From: ANALOG DEVICES GLOBAL
To: ANALOG DEVICES GLOBAL UNLIMITED COMPANY
Reel/Frame 048912/0915 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2015
From: ANALOG DEVICES TECHNOLOGY
To: ANALOG DEVICES GLOBAL
Reel/Frame 034757/0690 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2013
From: SRIVASTAVA, HIMANSHU
To: ANALOG DEVICES TECHNOLOGY
Reel/Frame 030432/0092 →