1. A memory system comprising:
at least one initiator;
a Serial Advanced Technology Attachment (SATA ) device;
an improved bridge device configured to facilitate communication between the at least one initiator and the SATA device and having at least one Serial Attached Small Computer System Interface (SCSI) (SAS) input port and operative to receive information through the at least one input port from the initiators, the improved bridge device for processing a notification event wherein notification is sent to the at least one initiators during a notification event, and for performing an action, based on a an event, thereby facilitating ease of communication.
2. A memory system, as recited in claim 1, wherein the at least one input port is at least one SAS input port.
3. A memory system, as recited in claim 1, further including a plurality of expanders coupled between the plurality of initiators and the improved bridge device.
4. A memory system, as recited in claim 1, wherein the at least one input port is at least one SATA input port.
5. A memory system, as recited in claim 3, wherein an expander includes an initiator.
6. A memory system, as recited in claim 1, wherein the improved bridge device is a multi-port SAS mux and SAS-to-SATA bridge device.
7. A memory system, as recited in claim 6, wherein the improved bridge device includes an affiliation table used for associating the plurality of initiators and SAS ports with their corresponding notification event, the notification event indicative of a condition wherein a corresponding initiator is prevented from accessing the improved bridge device.
8. A memory system, as recited in claim 1, further including reserved tags dynamically assignable from the initiators’ tags based on in-coming initiator commands, wherein the reserved tags are used for issuing commands to the SATA device.
9. A memory system, as recited in claim 8, further including means for clearing affiliations associated with initiators to reclaim the assigned tag.
10. A memory system, as recited in claim 8, wherein the assigned reserved tags, reserved tags assigned to initiator tags, are in sequential order.
11. A memory system, as recited in claim 6, wherein the affiliation table has a depth associated therewith and the depth is limited to a predetermined depth.
12. A memory system, as recited in claim 6, further including a mailbox table including mailbox information including information passed between initiators.
13. A memory system, as recited in claim 12, further including an affiliation counter, for maintaining status of changes to the topology of the bridge device wherein mismatch of the values between the current value of the counter and a previous value thereof when it was read last time being indicative of a change in topology of the bridge device.
14. A memory system, as recited in claim 12, wherein the affiliation table includes SAS address for identifying initiators and being affiliated with one or more ports, and further wherein, affiliated SAS addresses are moved, atomically, to a new set of SAS addresses.
15. A memory system, as recited in claim 14, wherein the affiliation table is caused to be cleared as to a SAS address associated with an initiator that has exceeded a predetermined time by which to communicate with the improved bridge device.
16. A memory system, as recited in claim 15, further including one or more expanders wherein the improved bridge device includes an affiliation table used for associating the plurality of initiators and SAS ports with their corresponding notification event, the notification event indicative of a condition wherein a corresponding initiator is prevented from accessing the improved bridge device.
17. A memory system, as recited in claim 1, further including one or more expanders including an affiliation table used for associating the plurality of initiators and SAS ports with their corresponding notification event, the notification event indicative of a condition wherein a corresponding initiator is prevented from accessing the improved bridge device.
18. A memory system, as recited in claim 1, further including one or more expanders coupled to the improved bridge device wherein the initiator is interrupt driven with notification events causing an interrupt to the improved bridge device thereby avoiding querying an expander to find the location of the event.
19. A memory system, as recited in claim 1, further including one or more expanders coupled to the improved bridge device wherein the initiator is interrupt driven wherein upon the occurrence of a notification event an interrupt is caused to inform the improved bridge device of the notification event and further wherein no links are dropped as a result of the notification event.
20. A memory system, as recited in claim 1, further including one or more expanders coupled to the improved bridge device wherein the improved bridge device generates a notification frame or primitive to the initiator and the initiator uses this frame or primitive as an interrupt to itself.
21. A memory system, as recited in claim 7, further including a replacement initiator replacing one of the at least one initiator that has failed.
22. A improved bridge device comprising:
at least two SAS input ports for coupling the device to at least one initiator;
a SATA port for coupling the device to a disk drive; and
a bridge for converting the received information to SATA information for communication with the disk drive, the device causing communication between at least two of the plurality of initiators, the multi-port bridge device configured to facilitate communication between the at least one initiator and the disk drive and having at least two SAS input ports and coupled and operative to receive information through the input ports from the initiators, the multi-port bridge device for processing a notification event wherein notification is sent to the at least one initiator during a notification event, and for performing an action, based on a an event, thereby facilitating ease of communication.
23. A improved bridge device, as recited in claim 22, wherein the device is a target.
24. A improved bridge device, as recited in claim 22, further including an affiliation table used for associating the plurality of initiators and SAS ports with their corresponding notification event, the notification event being indicative of a condition wherein a corresponding initiator is prevented from accessing the improved bridge device.
25. A improved bridge device, as recited in claim 22, further including a mailbox table including information passed between initiators.
26. A improved bridge device, as recited in claim 22, further including an affiliation counter for incrementing every time there is a change to the affiliation table.
27. A method of notifying one or more initiators of an event, comprising:
Setting a notification flag;
Sending a notification to one or more initiators;
Performing an action based on an event; and
Clearing the notification flag.
28. A method of notifying one or more initiators of an event, as recited in claim 27, wherein the notification event is an error event.
29. A method of notifying one or more initiators of an event, as recited in claim 27, wherein the notification event is a non-error event.
30. A method of notifying, as recited in claim 27, further including requesting an STP or SMP open.
31. A method of notifying, as recited in claim 27, further including determining whether or not the notification flag is set and if sot, performing normal operation.
32. A method of notifying, as recited in claim 27, further including, upon determining that the notification flag is set, determining whether or not the notification is sent to an intended initiator and if so, issuing a STP retry.
33. A method of notifying, as recited in claim 32, further including upon determining that the notification flag is not set, determining whether or not notification is ready to be sent and if so, sending the notification and if not, issuing a STP retry.
34. A method of notifying, as recited in claim 33, further including clearing the notification flag.
35. A method of notifying, as recited in claim 34, further including cleaning up commands.
36. A method of notifying, as recited in claim 33, further including accepting clearing of flag.
37. A method of receiving read log data by one or more initiators, comprising.
receiving notification of reading log data;
requesting, through SMP, to read log data;
determining if read log data is ready; and
returning read log data.
38. A method of receiving read log data, as recited in claim 37, further including determining if read log data is fetched and if so, receiving notification of read log data and if not, returning read log data is not available.
39. A method of receiving read log data, as recited in claim 37, further including remapping tags associated with initiators.
40. A method of transferring information between two or more initiators comprising:
Setting notification flag with reason code;
Sending notification to a particular initiator; and
Performing action based on the reason code.
41. A method of transferring information between two or more initiators comprising:
Storing information in a mailbox table;
Setting a notification flag with reason code;
Sending notification to a particular initiator; and
Causing the stored information to be read based on the reason code.
42. A method of transferring information, as recited in claim 41, wherein sending notification is performed without affecting SATA commands.
43. A method of detecting error associated with a SATA disk drive coupled for access to a plurality of initiators comprising:
detecting an error;
setting notification flag;
sending notification of error to a particular initiator;
resetting the drive;
resending non-failing commands to drive; and
clearing notification flag.
44. A method of resetting a SATA disk drive coupled for access to a plurality of initiators comprising:
receiving a command to reset the disk drive;
setting the status of the plurality of initiators to \u2018Notification\u2019;
fetching error log information;
storing the error log information; and
resetting the drive.
45. A method of resetting a SATA disk drive, as recited in claim 44, further including the steps of being queried as to the status of a particular initiator and informing the particular initiator of its status of \u2018Notification\u2019.
46. A method of resetting a SATA disk drive, as recited in claim 44, further including clearing the \u2018Notification\u2019 status for the plurality of initiators.
47. A method of resetting a SATA disk drive, as recited in claim 44, further including returning the error log information to a requesting initiator.
48. A method of resetting a SATA disk drive, as recited in claim 44, further including avoiding causing broadcast of the same.
49. A method of resetting a SATA disk drive, as recited in claim 44, wherein resetting the drive is performed without dropping a link.
50. A method of resetting a SATA disk drive, as recited in claim 44, wherein resetting the drive is performed through a link and propagating the resetting to another port without dropping any links.
51. A method of receiving log data by one or more initiators, comprising.
receiving notification of log data other than read log data;
requesting, through SMP, the log data;
determining if the log data is ready; and
returning the log data.
52. A method of receiving log data, as recited in claim 51, further including determining if log data is fetched and if so, receiving notification of the log data and if not, returning the log data is not available.
53. A method of receiving log data, as recited in claim 51, further including remapping tags associated with initiators.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method for removing false foreground image content in a foreground detection process performed on a video sequence, the method comprising:
receiving video data from a sequence of frames taken from an associated image capture device monitoring a scene of interest;
for a current frame, comparing a current feature value of each current pixel against a feature value of a corresponding pixel in a background model of the scene of interest;
classifying the each current pixel as belonging to one of a candidate foreground image and a background based on the comparing;
generating a first classification image representing the candidate foreground image using current pixels classified as belonging to the candidate foreground image;
applying the first classification image to a previously trained classifier in a block-wise manner to generate a binary decision for each pixel-block of the first classification image;
generating a coarse scale classification image based on the binary decision of the each pixel block;
generating a modified classification image representing the foreground image by removing redundant pixels between the coarse scale classification image and the first classification image.
2. The method of claim 1, wherein the classifying the each pixel as belonging to the one of the foreground image and background includes:
performing a comparison of the current feature value in the current frame relative to the corresponding feature value in the background model.
3. The method of claim 1, wherein the false foreground detection includes at least one of a shadow and a light cast from a moving object.
4. The method of claim 1, wherein the applying the first classification image to a previously trained classifier in a block-wise manner to generate a binary decision for each pixel-block includes:
segmenting the first classification image into pixel blocks;
for each pixel block, calculating a first feature vector for the current frame;
calculating a second feature vector for a current background estimate;
comparing the second feature vector with the first feature vector to obtain a difference feature vector corresponding to the pixel block;
inputting the resulting difference feature vector to the previously trained classifier; and,
outputting a classification decision for the each pixel block.
5. The method of claim 1, further comprising:
computing a convex hull on the modified classification image to generate the foreground image.
6. The method of claim 1, further comprising training the classifier before receiving the video data, the training including:
locating an object in a sample frame;
computing a feature of at least one segmented block in the sample frame corresponding to the object;
computing a difference between the current feature value and a corresponding feature value for a corresponding one of the at least one segmented block in a background estimate;
labeling each difference as corresponding to one of a foreground object and a false foreground object; and,
training the classifier using the labeled samples and corresponding difference features.
7. The method of claim 6, wherein the current feature value represents one of a texture and color.
8. The method of claim 6, wherein the current feature value represents a feature that is invariant to monotonic transformations of color intensities.
9. A system for removing false foreground image content in a video sequence, the system comprising a false foreground image detection device including a memory and a processor in communication with the processor configured to:
receive video data from a sequence of frames taken from an associated image capture device monitoring a scene of interest;
for a current frame, compare a current feature value of each current pixel against a feature value of a corresponding pixel in a background model of the scene of interest;
classify the each current pixel as belonging to one of a candidate foreground image and a background based on the comparing;
generate a first classification image representing the candidate foreground image using current pixels classified as belonging to the candidate foreground image;
apply the first classification image to a previously trained classifier in a block-wise manner to generate a binary decision for each pixel-block of the first classification image;
generate a coarse scale classification image based on the binary decision of the each pixel block; and,
generate a modified classification image representing the foreground image by removing redundant pixels between the coarse scale classification image and the first classification image.
10. The system of claim 9, wherein the processor is further configured to:
perform a comparison of the current feature value in the current frame relative to a corresponding feature value in the background model for the classifying of the each pixel as belonging to the one of the foreground image and background.
11. The system of claim 9, wherein the false foreground detection includes at least one of a shadow and a light cast from a moving object.
12. The system of claim 9, wherein the processor is further configured to:
segment the first classification image into pixel blocks;
for each pixel block, calculate a first feature vector for the current frame;
calculate a second feature vector for a current background estimate;
compare the second feature vector with the first feature vector to obtain a difference feature vector corresponding to the pixel block;
input the resulting difference feature vector to the previously trained classifier; and,
output a classification decision for the each pixel block.
13. The system of claim 9, wherein the processor is further configured to:
compute a convex hull on the modified classification image to generate the foreground image.
14. The system of claim 9, wherein the processor is further configured to:
locate an object in a sample frame;
compute a feature of at least one segmented block in the sample frame corresponding to the object;
compute a difference between the current feature value and a corresponding feature value for a same block in a background estimate;
label each difference as corresponding to one of a foreground object and a false foreground object; and,
train a classifier using the labeled samples and corresponding difference features.
15. The system of claim 14, wherein the current feature value represents one of a texture and color.
16. The system of claim 14, wherein the current feature value represents a feature that is invariant to monotonic transformations of color intensities.