1460897485-d0c280e8-04ca-4dc2-9122-75222ae2a5c9

1. A method for calibrating a black level in an imager to reduce flicker noise, comprising:
setting a first range;
setting a second range;
measuring the black level;
comparing the black level to the second range;
determining when the black level is within the second range; and when it is:
determining if the black level has been calibrated, and when it is holding a DAC output; otherwise
adjusting a DAC code such that the black level is moved toward the first range.
2. The method of claim 1, wherein the second range is larger than the first range.
3. The method of claim 1, wherein the first range corresponds to a range that is larger than a noise level at a highest PGA gain.
4. The method of claim 1, wherein the second range corresponds to a range that is smaller than a level which reduces an ADC dynamic range too much due to a large black level.
5. The method of claim 1, wherein the first range and the second range are programmable.
6. The method of claim 2, wherein measuring the black level and adjusting the DAC code such that the black level is moved toward the first range, further comprises adjusting a frequency associated with measuring the black level and adjusting the DAC code.
7. The method of claim 6, wherein the frequency can be from a frame-to-frame frequency to a line-by-line frequency.
8. The method of claim 5, wherein when the black level has been calibrated holding the DAC output until the black level moves beyond the second range.
9. The method of claim 8, wherein adjusting the DAC code such that the black level is moved toward the first range further comprises using a small step size.
10. The method of claim 5, further comprising determining a step size in which to adjust the DAC code.
11. The method of claim 10, wherein determining the step size in which to adjust the DAC code, further comprises using a small step size when the black level is within the second range.
12. The method of claim 11, wherein determining the step size in which to adjust the DAC code, further comprises using a large step size when the black level is beyond the second range.
13. The method of claim 5, wherein determining if the black level has been calibrated, further comprises determining if the black level has been within the first range.
14. An apparatus for calibrating a black level to reduce flicker noise, comprising:
a processing circuit configured to perform the following steps:
comparing the black level to a first range and a second range;
determining when the black level is within the second range; and when it is:
determining if the black level has been calibrated, and when it has been outputting a signal to a DAC including an output, wherein the signal includes information used by the DAC to hold the output constant; otherwise
outputting a signal to the DAC, wherein the signal includes DAC code information used by the DAC to adjust the output such that the black level is moved toward the first range.
15. The apparatus of claim 14, wherein the second range is larger than the first range.
16. The apparatus of claim 14, further comprising a PGA coupled to the DAC, and the processing circuit, wherein the first range corresponds to a range that is larger than a noise level at a highest gain associated with the PGA.
17. The apparatus of claim 16, further comprising an ADC coupled to the processing circuit and the PGA, wherein the second range corresponds to a range that is smaller than a level which reduces a dynamic range relating to the ADC too much due to a large black level.
18. The apparatus of claim 15, wherein determining if the black level has been calibrated, further comprises adjusting a frequency to measure the black level.
19. The apparatus of claim 18, wherein the frequency can be from a frame-to-frame frequency to a line-by-line frequency.
20. The apparatus of claim 14, wherein the first range and the second range are programmable.
21. The apparatus of claim 20, wherein when the black level has been calibrated holding a DAC output until the black level moves beyond the second range.
22. The apparatus of claim 21, wherein adjusting the DAC code such that the black level is moved toward the first range further comprises using a small step size.
23. The apparatus of claim 22, wherein adjusting the DAC code further comprises setting a time to adjust the DAC code.
24. The apparatus of claim 20, further comprising determining a step size in which to adjust the DAC code.
25. The apparatus of claim 24, wherein determining the step size in which to adjust the DAC code, further comprises using a small step size when the black level is within the second range.
26. The apparatus of claim 25, wherein determining the step size in which to adjust the DAC code, further comprises using a large step size when the black level is beyond the second range.
27. The apparatus of claim 20, wherein determining if the black level has been calibrated, further comprises determining if the black level has been within the first range.
28. An apparatus for calibrating a black level to reduce flicker noise, comprising:
means for measuring the black level;
means for comparing the black level to a first range and a second range; and
means for determining when the black level is within the second range; and when it is:
means for determining if the black level has been calibrated, and when it has been, means for holding a DAC code; otherwise
means for adjusting the DAC code such that the black level is moved toward the first range.

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 of deleting log records, the method comprising:
identifying, by a computing device from a log record database, a plurality of log records generated during a time period, wherein each log record corresponds to a user activity;
for each identified log record:
determining, by the computing device, whether a delete request associated with the log record has been made, and
in response to determining that a delete request has not been received:
identifying a unique identifier associated with the log record,
searching a user activity table for an entry having a key table index associated with the unique identifier, wherein the entry is associated with a timestamp,
using the key table index and the timestamp to identify a key associated with the unique identifier and the timestamp from a key table,
encrypting, by the computing device, at least a portion of the log record with the identified key to generate an encrypted value, and
storing the encrypted value as an entry in the log record database that is associated with the identified log record;
for each entry in the user activity table:
generating the key table index associated with the entry, wherein the key table index corresponds to an entry in the key table,
generating a random key associated with the entry,
storing the random key in the key table at the key table index,
determining whether the entry includes a delete request, and
in response to determining that the entry includes a delete request, adding the delete request and a timestamp of a log record associated with the delete request to a delete list.
2. The method of claim 1, wherein identifying a plurality of log records generated during a time period comprises identifying a plurality of log records that are generated after an end of an analysis interval but before an end of a completion time period.
3. The method of claim 1, wherein encrypting at least a portion of the log record with the identified key to generate an encrypted value, comprises encrypting one or more of the following:
the user identifier, and
the user activity.
4. The method of claim 1, further comprising:
receiving a second delete request, wherein the second delete request indicates that the log record is to be deleted;
identifying a unique identifier and a timestamp associated with the log record;
searching the user activity table for a key database table index associated with the unique identifier of the record to be deleted;
using the key database table index to identify an entry in the key database table that corresponds to the timestamp of the log record; and
deleting a key associated with the identified entry from the key database table.
5. The method of claim 4, wherein deleting the key comprises:
identifying a first back pointer from the identified entry to a previous entry in the key table;
identifying a second back pointer from a subsequent entry in the key table to the identified entry;
deleting the first back pointer; and
adjusting the second back pointer so that it points at the previous entry in the key table.
6. The method of claim 4, wherein the second delete request comprises one or more of the following:
a request to delete a certain web activity action; and
a request to delete a user account.
7. The method of claim 1, further comprising:
receiving a second delete request, wherein the second delete request indicates that the log record is to be deleted;
identifying, based on the second delete request, a plurality of log records to be deleted;
for each of the plurality of log records to be deleted:
identifying a unique identifier and a timestamp associated with the log record to be deleted,
searching the user activity table for an entry having a key table index associated with the unique identifier of the record to be deleted,
using the key table index associated with the entry to identify an entry in the key table that corresponds to the timestamp associated with the log record, and
deleting a key associated with the identified entry from the key table.
8. The method of claim 7, wherein deleting the key comprises:
identifying a first back pointer from the identified entry to a previous entry in the key table;
identifying a second back pointer from a subsequent entry in the key table to the identified entry;
deleting the first back pointer; and
adjusting the second back pointer so that it points at the previous entry in the key table.
9. (canceled)
10. The method of claim 1, wherein determining whether a delete request associated with the log record has been made comprises determining whether the delete request is present on the delete list.
11. A system of deleting log records, the system comprising:
a computing device; and
a computer-readable storage medium in communication with the computing device, wherein the computer-readable storage medium comprises one or more programming instructions that, when executed, cause the computing device to:
identify a plurality of log records generated during a time period, wherein each log record corresponds to a user activity, and
for each identified log record:
determine whether a delete request associated with the log record has been made,
in response to determining that a delete request has not been received:
identifying a unique identifier associated with the log record,
searching a user activity table for an entry having a key table index associated with the unique identifier, wherein the entry is associated with a timestamp,
using the key table index and timestamp to identify a key associated with the unique identifier and the timestamp from a key table,
encrypting, by the computing device, at least a portion of the log record with the identified key to generate an encrypted value, and
storing the encrypted value as an entry in the log record database that is associated with the identified log record, and
for each entry in the user activity table:
generate the key table index associated with the entry, wherein the key table index corresponds to an entry in the key table,
generate a random key associated with the entry,
store the random key in the key table at the key table index,
determine whether the entry includes a delete request, and
in response to determining that the entry includes a delete request, add the delete request and a timestamp of a log record associated with the delete request to a delete list.
12. The system of claim 11, wherein the one or more programming instructions that, when executed, cause the computing device to identify a plurality of log records generated during a time period comprise one or more programming instructions that, when executed, cause the computing device to identify a plurality of log records that are generated after an end of an analysis interval but before an end of a completion time period.
13. The system of claim 11, wherein the one or more programming instructions that, when executed, cause the computing device to encrypt at least a portion of the log record with the identified key to generate an encrypted value comprises one or more programming instructions that, when executed, cause the computing device to encrypt one or more of the following:
the user identifier, and
the user activity.
14. The system of claim 11, wherein the computer-readable storage medium further comprises one or more programming instructions that, when executed, cause the computing device to:
receive a second delete request, wherein the second delete request indicates that the log record is to be deleted;
identify a unique identifier and a timestamp associated with the log record;
search the user activity table for a key table index associated with the unique identifier of the record to be deleted;
use the key table index to identify an entry in the key table that corresponds to the timestamp of the log record; and
delete a key associated with the identified entry from the key table.
15. The system of claim 14, wherein the one or more programming instructions that, when executed, cause the computing device to delete the key comprise one or more programming instructions that, when executed, cause the computing device to:
identify a first back pointer from the identified entry to a previous entry in the key table;
identify a second back pointer from a subsequent entry in the key table to the identified entry;
delete the first back pointer; and
adjust the second back pointer so that it points at the previous entry in the key table.
16. The system of claim 14, wherein the second delete request comprises one or more of the following:
a request to delete a certain web activity action; and
a request to delete a user account.
17. The system of claim 11, wherein the computer-readable storage medium further comprises one or more programming instructions that, when executed, cause the computing device to:
receive a second delete request, wherein the second delete request indicates that the log record is to be deleted;
identify, based on the second delete request, a plurality of log records to be deleted;
for each of the plurality of log records to be deleted:
identify a unique identifier and a timestamp associated with the log record to be deleted,
search the user activity table for an entry having key table index associated with the unique identifier,
use the key table index to identify an entry in the key table that corresponds to the timestamp associated with the log record to be deleted, and
delete a key associated with the identified entry from the key table.
18. The system of claim 17, wherein the one or more programming instructions that, when executed, cause the computing device to delete the key comprise one or more programming instructions that, when executed, cause the computing device to:
identify a first back pointer from the identified entry to a previous entry in the key table;
identify a second back pointer from a subsequent entry in the key table to the identified entry;
delete the first back pointer; and
adjust the second back pointer so that it points at the previous entry in the key table.
19. (canceled)
20. The system of claim 11, wherein the one or more programming instructions that, when executed, cause the computing device to determine whether a delete request associated with the log record has been made comprise one or more programming instructions that, when executed, cause the computing device to determine whether the delete request is present on the delete list.