Patent Document ID: 8446439
Application ID: 12536882
Patent Status: 1

Claim One:
1. A plurality of field programmable gate arrays configured to perform single pass BLOB (Binary Large Objects) analysis on at least one frame of video data, comprising: receiving said at least one frame of video data from an external source, said at least one frame of video data having a plurality of pixels; providing for two dimensional processing of said at least one frame of video data so as to define a pixel location for each of the plurality of pixels within said at least one frame of video data; providing logic signals which indicate an end of a line of video data and an end of said at least one frame of video data; processing each of said plurality of pixels in said at least one frame of video data in groups of four pixels, wherein a group of four pixels being processed is a current pixel group, each current pixel group consisting of: a current iteration first pixel contained on a Last Line BLOB Info signal during said current iteration, wherein said current iteration first pixel is immediately above said current iteration Last Pixel; a current iteration second pixel contained on a Last Line BLOB Info signal during said current iteration, wherein said current iteration second pixel is immediately above said current iteration Current Pixel; a current pixel group Current Pixel; and a current pixel group Last Pixel; determining during a first clock period whether each pixel of said current pixel group is a BLOB pixel of a BLOB by determining whether each pixel of said current pixel group is an active pixel; determining whether said current pixel group Current Pixel is part of a new BLOB group representing a target distinct from each of any previously identified target, wherein said new BLOB group consists of said Current Pixel, and when it is determined that said current pixel group Current Pixel is part of said new BLOB group: generating BLOB statistics of said new BLOB group during said first clock period in response to determining that said Current Pixel is part of said new BLOB group during said first clock period, wherein said BLOB statistics of said new BLOB group representing said target distinct from said any previously identified target consists of statistics of said Current Pixel; and determining during said first clock period whether said new BLOB group is not comprised of any additional pixels in said frame of video data; determining during said first clock period whether said current pixel group Current Pixel is to be treated as an additional member of a pre-existing BLOB group previously identified as representing at least one previously identified target, wherein all pixels of said pre-existing BLOB group are labeled with a group specific ID number, and when it is determined that said current pixel group Current Pixel is to be treated as an additional member of said pre-existing BLOB group: generating during said first clock period an updated BLOB group representing said at least one previously identified target by assigning said current pixel group Current Pixel said group specific ID number in response to determining that said current pixel group Current Pixel is to be treated as an additional member of said pre-existing BLOB group previously identified as representing said at least one previously identified target, wherein said updated BLOB group representing said at least one previously identified target is formed of all pixels in said pre-existing BLOB group plus said current pixel group Current Pixel, wherein said updated BLOB group is not susceptible to having any of its pixels converted and/or relabeled during said first clock period; generating BLOB statistics of said updated BLOB group representing said at least one previously identified target during said first clock period; determining during said first clock period when said updated BLOB group is not comprised of any additional pixels in said frame of video data; determining during said first clock period whether to merge BLOBs by determining whether said current pixel group Last Pixel and said current iteration first pixel have different BLOB IDs and either said current pixel group Current Pixel is inactive, said current iteration Last Pixel is active, said current iteration second pixel is active, and said current iteration first pixel is inactive, or said current pixel group Current Pixel is active, said current iteration Last Pixel is active, said current iteration second pixel is active, and said current iteration first pixel is inactive, and when it is determined to merge BLOBs: generating a merged BLOB group during said first clock period by relabeling all pixels having a BLOB ID assigned to said current pixel group Last Pixel prior to relabeling with a BLOB ID of said current iteration first pixel; and calculating BLOB statistics of said merged BLOB.