Systems and methods are provided for encoding raw image content encoded using one or more virtual intra-frames. In an exemplary method, a stream of video content may be encoded to generate compressed video data that includes an intra-frame and a plurality of corresponding inter-frames. The compressed video data may be stored within a buffer, and when the amount of data in the buffer exceeds a threshold value, a virtual intra-frame may be computed based on decoded inter-frame data. The virtual intra-frame may be output for storage in the buffer.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer-implemented method, comprising: receiving a stream of video content; encoding, using a video codec, the video content stream to generate compressed video data, the compressed video data comprising an intra-frame and a plurality of corresponding inter-frames; and storing the compressed video data within a buffer, wherein the encoding comprises: obtaining intra-frame data associated with the encoded intra-frame; encoding, based on the intra-frame data, a portion of the video content stream to generate a corresponding one of the inter-frames; determining whether an amount of compressed data stored in the buffer exceeds a first threshold value; when the amount of compressed data in the buffer exceeds the first threshold value, decoding the last generated inter-frame in the buffer and computing a viral intra-frame based on the decoded inter-frame data, the virtual intra-frame representing an out of sequence intra-frame in a group-of-pictures; and outputting the virtual intra-frame with the last generated inter-frame for storage in the buffer.
2. The method of claim 1 , wherein the encoding further comprises encoding a first portion of the video content stream to generate the intra-frame, the first portion preceding the portion of the video content stream associated with the inter-frame.
3. The method of claim 1 , wherein the encoding further comprises; computing a group-of-pictures length associated with the compressed video data, when the amount of buffered data fails to exceed the first threshold value; determining whether the computed group-of-pictures length exceeds a predetermined threshold length; and encoding an additional portion of the video content stream to generate an additional inter-frame, when the computed group-of-pictures length does not exceed the predetermined threshold length.
4. The method of claim 3 , wherein: the buffer comprises one or more previously-encoded groups of intra-frames and corresponding inter-frames; and when the computed group-of-pictures length exceeds the predetermined threshold length, discarding the previously-encoded groups of intra-frames and corresponding inter-frames.
5. The method of claim 1 , wherein the encoding further comprises determining whether the amount of buffered data exceeds a second threshold value, the second threshold value being larger than the first threshold value.
6. The method of claim 5 , wherein the encoding further comprises maintaining the virtual intra-frame and discarding encoding video content preceding the virtual intra-frame, when the amount of buffered data exceeds the second threshold value.
7. The method of claim 1 , further comprising: receiving information indicative of a triggering incident; and generating, based on the received information, an instruction to transmit at least a portion of the buffered data to a recipient.
8. The method of claim 7 , wherein the triggering incident comprises at least one of a request for video content, an occurrence of a predetermined event within the received video stream, a receipt of predetermined data through an interface, or a detection of a predetermined event by a sensor.
9. The method of claim 7 , wherein generating the instruction further comprises: determining whether the buffered data includes the intra-frame and the virtual intra-frame; discarding the virtual intra-frame and maintaining the corresponding inter-frame, when the buffered data includes the intra-frame and the virtual intra-frame; and generating the buffered data portion based on the intra-frame.
10. The method of claim 7 , further comprising: determining whether the buffered data includes the virtual intra-frame and fails to include the intra-frame; and generating the buffered data portion based on the virtual intra-frame, when the buffered data includes the virtual intra-frame and fails to include the intra-frame.
11. The method of claim 1 , further comprising: receiving at least one frame of compressed video data; decoding the received frame; determining whether the decoded frame corresponds to an intra-frame; and storing at least the decoded frame in a data repository, when the decoded frame corresponds to an intra-frame.
12. The method of claim 11 , further comprising: determining that the decoded frame corresponds to an inter-frame; when the decoded frame is an inter-frame, computing a group-of-pictures length associated with the received data; determining whether the computed group-of-pictures length exceeds a predetermined threshold length; and storing at least the decoded inter-frame within the data repository, when the computer group-of-pictures length fails to exceed the predetermined threshold length.
13. The method of claim 12 , further comprising: generating an additional intra-frame based on the decoded inter-frame data, when the computed group-of-pictures length exceeds the predetermined threshold length; and storing at least the additional intra-frame within the data repository.
14. An apparatus, comprising: a video codec configured to encode a stream of video content to generate compressed video data, the compressed video data comprising an intra-frame and a plurality of corresponding inter-frames; and a storage device couple to the video codec unit and configured to store the compressed video data within a buffer, wherein the video codec is further configured to: obtain intra-frame data associated with the encoded intra-frame; encode, based on the intra-frame data, a portion of the video content stream to generate a corresponding one of the inter-frames; determine whether an amount of compressed data stored in the buffer exceeds a first threshold value; when the amount of compressed data in the buffer exceeds the first threshold value, decode the last generated inter-frame in the buffer and compute a virtual intra-frame based on the decoded inter-frame data, the virtual intra-frame representing an out of sequence intra-frame in a group-of-pictures; and provide the virtual intra-frame with the last generated intra-frame as output for storage in the buffer.
15. The apparatus of claim 14 , wherein the video codec is further configured to: encode a first portion of the video content stream to generate the intra-frame, the first portion preceding the portion of the video content stream associated with the inter-frame.
16. The apparatus of claim 14 , wherein the video codec is further configured to: compute a group-of-pictures length associated with the compressed video data, when the amount of buffered data fails to exceed the first threshold value; determine whether the computed group-of-pictures length exceeds a predetermined threshold length; and encode an additional portion of the video content stream to generate an additional inter-frame, when the computed group-of-pictures length fails to exceed the predetermined threshold length.
17. The apparatus of claim 16 , wherein: the buffer comprises one or more previously-encoded groups of intra-frames and corresponding inter-frames; and when the computed group-of-pictures length exceeds the predetermined threshold length, the video codec is further configured to discard the previously-encoded groups of inter-frames and corresponding inter-frames.
18. The apparatus of claim 14 , wherein the video codec is further configured to: determine whether the amount of buffered data exceeds a second threshold value, the second threshold value being larger than the first threshold value.
19. The apparatus of claim 18 , wherein the vide coded is further configured to: maintain the virtual intra-frame and discard encoded video content preceding the virtual intra-frame, when the amount of buffered data exceeds the second threshold value.
20. The apparatus of claim 14 , wherein the video codec is further configured to: receive information indicative of a triggering incident; and generate, based on the received information, an instruction to transmit at least a portion of the buffered data to a recipient.
21. The apparatus of claim 20 , wherein the video codec is further configured to: determine that the buttered data includes the intra-frame and the virtual intra-frame; discard the virtual intra-frame and maintain the corresponding inter-frame, when the buffered data includes the intra-frame and the virtual intra-frame; and generate the buffered data portion based on the intra-frame.
22. The apparatus of claim 20 , wherein the video is codec is further configured to: determine whether the buffered data includes the virtual intra-frame and fails to include the intra-frame; and generate the buffered data portion based on the virtual intra-frame, when the buffered data includes the virtual intra-frame and fails to include the intra-frame.
23. The apparatus of claim 14 , wherein the video codec is further configured to: receive at least one frame of compressed video data; decode the received frame; determine whether the decoded frame corresponds to an intra-frame; and generate an instruction to store at least the decoded frame in the storage device, when decoded frame corresponds to an intra-frame.
24. The apparatus of claim 23 , wherein the video codec is further configured to: determine that the decoded frame corresponds to an inter-frame; when the decoded frame is an inter-frame, compute a group-of-pictures length associated with the received data; determine whether the computed group-of-pictures length exceeds a predetermined threshold length; and generate an instruction to store at least the decoded inter-frame within the storage device, when the computed group-of-pictures length fails to exceed the predetermined threshold length.
25. The apparatus of claim 24 , wherein the video codec is further configured to: generate an additional intra-frame based on the decoded inter-frame data, when the computed group-of-pictures length exceeds the predetermined threshold length; and generate an instruction to store at least the additional intra-frame within the storage device.
26. A tangible, non-transitory computer-readable medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform the steps of: encoding a stream of video content to generate compressed video data, the compressed video data comprising an intra-frame and a plurality of corresponding inter-frames; and storing the compressed video data within a buffer, wherein the encoding comprises: obtaining intra-frame data associated with the encoded intra-frame; encoding, based on the intra-frame data, a portion of the video content stream to generate a corresponding one of the inter-frames; determining whether an amount of compressed data stored in the buffer exceeds a first threshold value; when the amount of compressed data in the buffer exceeds the first threshold value, decoding the last generated inter-frame in the buffer and computing a virtual intra-frame based on the decoded inter-frame data, the virtual intra-frame representing an out of sequence intra-frame in a group-of-pictures; and outputting the virtual intra-frame with the last generated inter-frame for storage in the buffer.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
June 26, 2013
November 7, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.