Combining multi-layered bitmap files using network specific hardware
First Claim
1. A method for processing image layers comprising:
- configuring a first process flow by;
packetizing each of a plurality of image layers into separate packet streams comprising a multiplicity of packets wherein each packet among the multiplicity of packets comprises a packet number, a z value, and at least one pixel, wherein each of the at least one pixel comprises an alpha value and at least one pixel value, and wherein the z value for each packet is equal to a pixel z value shared by all of the at least one pixel in the packet;
ordering the packets among the multiplicity of packets based on the packet number of each of the packets;
loading each of the at least two packet streams into separate ingress queues;
configuring a second process flow by taking the packets from the separate ingress queues, sorting the packets based on z value to produce z sorted packets, and loading the z sorted packets into at least two egress queues, wherein the number of egress queues equals the number of separate ingress queues;
configuring a third process flow by taking the z sorted packets from the at least two egress queues, and alpha blending the at least one pixels in the packets to produce a multitude of output packets comprising a packet number and at least one pixel, wherein each of the at least one pixel comprises at least one pixel value;
configuring a fourth process flow by producing an image from the multitude of output packets and presenting the image on a display device; and
allocating a plurality of execution threads to one or more of the first process flow, the second process flow, the third process flow and the fourth process flow such that the process flows run in parallel and wherein two or more of the process flows are performed sequentially by one of the plurality of executing threads.
3 Assignments
0 Petitions
Accused Products
Abstract
Images and video can be produced by compositing or alpha blending a group of image layers or video layers. Increasing resolution or the number of layers results in increased computational demands. As such, the available computational resources limit the images and videos that can be produced. A computational architecture in which the image layers are packetized and streamed through processors can be easily scaled so to handle many image layers and high resolutions. The image layers are packetized to produce packet streams. The packets in the streams are received, placed in queues, and processed. For alpha blending, ingress queues receive the packetized image layers which are then z sorted and sent to egress queues. The egress queue packets are alpha blended to produce an output image or video.
-
Citations
18 Claims
-
1. A method for processing image layers comprising:
-
configuring a first process flow by;
packetizing each of a plurality of image layers into separate packet streams comprising a multiplicity of packets wherein each packet among the multiplicity of packets comprises a packet number, a z value, and at least one pixel, wherein each of the at least one pixel comprises an alpha value and at least one pixel value, and wherein the z value for each packet is equal to a pixel z value shared by all of the at least one pixel in the packet;ordering the packets among the multiplicity of packets based on the packet number of each of the packets; loading each of the at least two packet streams into separate ingress queues; configuring a second process flow by taking the packets from the separate ingress queues, sorting the packets based on z value to produce z sorted packets, and loading the z sorted packets into at least two egress queues, wherein the number of egress queues equals the number of separate ingress queues; configuring a third process flow by taking the z sorted packets from the at least two egress queues, and alpha blending the at least one pixels in the packets to produce a multitude of output packets comprising a packet number and at least one pixel, wherein each of the at least one pixel comprises at least one pixel value; configuring a fourth process flow by producing an image from the multitude of output packets and presenting the image on a display device; and allocating a plurality of execution threads to one or more of the first process flow, the second process flow, the third process flow and the fourth process flow such that the process flows run in parallel and wherein two or more of the process flows are performed sequentially by one of the plurality of executing threads. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method comprising:
-
configuring a first process flow by;
packetizing each of a plurality of image layers into separate packet streams comprising a multiplicity of packets wherein each packet among the multiplicity of packets comprises a packet number and at least one pixel, wherein each of the at least one pixel comprises an alpha value, a z value, and at least one pixel value, and wherein the z value for each packet is equal to a pixel z value shared by all of the at least one pixel in the packet;ordering the packets among the multiplicity of packets based on the packet number of each of the packets; loading each of the at least two packet streams into separate ingress queues, taking the packets from the separate ingress queues and loading the packets into at least two egress queues, wherein the number of egress queues equals the number of separate ingress queues; configuring a second process flow by taking the packets from the at least two egress queues, z sorting per pixel based on the z value within each one of the at least one pixel to produce z sorted pixels; configuring a third process flow by alpha blending the z sorted pixels to produce a multitude of output packets comprising a packet number and at least one pixel, wherein each of the at least one pixel comprises at least one pixel value; and configuring a fourth process flow by producing an image from the multitude of output packets and presenting the image on a display device; and allocating a plurality of execution threads to one or more of the first process flow, the second process flow, the third process flow and the fourth process flow such that the process flows run in parallel and wherein two or more of the process flows are performed sequentially by one of the plurality of executing threads. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. A system comprising:
-
separate ingress queues for separately receiving each of at least two packet streams comprising a multiplicity of packets comprising a packet number, a z value, and at least one pixel, wherein each of the at least one pixel comprises an alpha value and at least one pixel value, and wherein the z value for each packet is equal to a pixel z value shared by all of the at least one pixel in the packet; a reordering module executed by a processor, configured to reorder the multiplicity of packets received by the separate ingress queues based on the packet number of each of the packets; a temporary storage for storage of packets that are out of order until an immediate predecessor packet is received; at least one sorting module that obtains packets from the separate ingress queues and puts the packets onto at least two egress queues based on the z value of the packets, wherein the number of egress queues equals the number of separate ingress queues; a blending module that obtains packets from the at least two egress queues and alpha blends the at least one pixel in the packets to produce a multitude of output packets comprising a packet number and at least one pixel, wherein each of the at least one pixel comprises at least one pixel value. - View Dependent Claims (15, 16, 17, 18)
-
Specification