Lens distortion correction method
US-9210303-B2 · Dec 8, 2015 · US
US10674180B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10674180-B2 |
| Application number | US-201514622771-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 13, 2015 |
| Priority date | Feb 13, 2015 |
| Publication date | Jun 2, 2020 |
| Grant date | Jun 2, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
In one embodiment of the present invention, an encode validator identifies and classifies errors introduced during the parallel chunk-based translation of a source to a corresponding aggregate encode. In operation, upon receiving a source for encoding, a frame difference generator creates a frame difference file for the source. A parallel encoder then distributes per-chunk encoding operations across machines and creates an aggregate encode. The encode validator decodes the aggregate encode and creates a corresponding frame difference file. Subsequently, the encode validator performs phase correlation operations between the two frame difference files to detect errors generated by encoding process faults (i.e., dropping a frame, etc.) while suppressing discrepancies inherent in encoding, such as those attributable to low bit-rate encoding. Advantageously, since the encode validator leverages frame difference files, this indirect verification technique enables efficient debugging of parallel encoding processes in which the complete source is unavailable for post-encode analysis.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method for identifying errors introduced during encoding, the method comprising: receiving frame difference data derived from source data by determining, for each source frame included in a plurality of source frames of the source data, a difference between a characteristic of the source frame and a characteristic of an adjacent source frame that resides adjacent to the source frame in the plurality of source frames; receiving frame difference data derived from aggregate decoded data by determining, for each decoded frame included in a plurality of decoded frames of the aggregate decoded data, a difference between a characteristic of the decoded frame and a characteristic of an adjacent decoded frame that resides adjacent to the decoded frame in the plurality of decoded frames, wherein the plurality of source frames of the source data corresponds to the plurality of decoded frames of the aggregate decoded data, wherein the aggregate decoded data is generated by decoding aggregate encoded data that is derived from the source data by separately encoding a plurality of chunks of the source data to generate a plurality of encoded chunks of the source data and combining the plurality of encoded chunks of the source data, and wherein each chunk included in the plurality of chunks of the source data is encoded by a separate compute instance included in a plurality of compute instances; comparing the frame difference data derived from the source data and the frame difference data derived from the aggregate decoded data to generate a first comparison; detecting that an error condition occurred while encoding one or more encoded chunks of the source data included in the plurality of encoded chunks of the source data based on the first comparison; and debugging, based on the error condition, an encoding process performed to generate the one or more encoded chunks of source data by one or more compute instances included in the plurality of compute instances. 2. The computer-implemented method of claim 1 , wherein detecting that the error condition occurred comprises: determining (1) a first total number of source frames associated with the frame difference data derived from the source data, and (2) a second total number of decoded frames associated with the frame difference data derived from the aggregate decoded data, and determining that the first total number of source frames differs from the second total number of decoded frames by more than a predetermined threshold. 3. The computer-implemented method of claim 1 , wherein the comparing comprises: partitioning the frame difference data derived from the source data and the frame difference data derived from the decoded aggregate encode into a plurality of blocks, wherein each block in the plurality of blocks includes a subset of frame difference data derived from the source data and a corresponding subset of frame difference data derived from the decoded aggregate encoded data; and for each block, comparing the frame difference data derived from the source data to the frame difference data derived from the decoded aggregate encoded data to determine a phase correlation value for the block. 4. The computer-implemented method of claim 3 , wherein detecting that the error condition occurred comprises: identifying a first number of blocks, wherein each block included in the first number of blocks has a phase correlation value less than a first predetermined threshold; and determining that the first number of blocks is greater than a second predetermined threshold. 5. The computer-implemented method of claim 3 , wherein detecting that the error condition occurred comprises: for a first block, performing a phase shift operation on the frame difference data derived from the source data; for the first block, comparing the shifted frame difference data derived from the source data to the corresponding frame difference data derived from the decoded aggregate encoded data to determine a shifted phase correlation value; and determining that the shifted phase correlation value is greater than a phase correlation value for the first block by at least a first predetermined amount. 6. The computer-implemented method of claim 3 , wherein detecting that the error condition occurred comprises: identifying a scene cut based on the phase correlation values; identifying a first number of blocks, wherein each block included in the first number of blocks does not immediately precede the scene cut and has a phase correlation value less than a first predetermined threshold; and determining that the first number of blocks is greater than a second predetermined threshold. 7. The computer-implemented method of claim 3 , wherein detecting that the error condition occurred comprises: identifying a first block having a phase correlation value less than a first predetermined threshold; and determining that the encoding bit-rate of the aggregate encoded data is greater than a second predetermined threshold. 8. The computer-implemented method of claim 3 , wherein detecting that the error condition occurred comprises: identifying a set of low correlation blocks, wherein each block included in the set of low correlation blocks has a phase correlation value less than a first predetermined threshold; determining a distribution based on phase correlation values for the set of low correlation blocks; computing a confidence zone based on the distribution; identifying a first number of blocks, wherein each block included in the first number of blocks is included in the set of low correlation blocks and has a phase correlation value that is outside the confidence zone; and determining that the first number of blocks is greater than a second predetermined threshold. 9. The computer-implemented method of claim 8 , wherein identifying a first block that has a phase correlation value that is outside the confidence zone comprises applying the Grubbs test to the distribution. 10. One or more non-transitory computer-readable storage media including instructions that, when executed by one or more processing units, cause the one or more processing units to identify errors introduced during encoding by performing the steps of: receiving frame difference data derived from source data by determining, for each source frame included in a plurality of source frames of the source data, a difference between a characteristic of the source frame and a characteristic of an adjacent source frame that resides adjacent to the source frame in the plurality of source frames; receiving frame difference data derived from aggregate decoded data by determining, for each decoded frame included in a plurality of decoded frames of the aggregate decoded data, a difference between a characteristic of the decoded frame and a characteristic of an adjacent decoded frame that resides adjacent to the decoded frame in the plurality of decoded frames, wherein the plurality of source frames of the source data corresponds to the plurality of decoded frames of the aggregate decoded data, wherein the aggregate decoded data is generated by decoding aggregate encoded data that is derived from the source data by separately encoding a plurality of chunks of the source data to generate a plurality of encoded chunks of the source data and combining the plurality of encoded chunks of the source data, and wherein each chunk included in the plurality of chunks of the source data is encoded by a separate compute instance included in a plurality of compute instances; comparing the frame difference data derived from the source data and the frame difference data derived from the aggregate decoded data to
for digital television systems · CPC title
using error resilience · CPC title
the region being a block, e.g. a macroblock · CPC title
Diagnosis, testing or measuring for television systems or their details · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.