IP Library › Granted Patent US 9,813,732
Granted Patent B2
US 9,813,732 · App. 14/411,324 · Granted Nov 7, 2017

System and method for encoding video content using virtual intra-frames

Inventor: Stefan Lundberg (Lund, SE)
Assignee: Axis AB
H04N19/593H04N19/114H04N19/146H04N19/156H04N19/164H04N19/177H04N19/30H04N19/423H04N19/44H04N19/587H04N19/59G11B27/034H04N19/40H04N21/23406H04N21/23424H04N21/23439
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,813,732
App. No.
14/411,324
Granted
Nov 7, 2017
Kind
B2
Abstract

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.

Claims (96)

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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2015
From: LUNDBERG, STEFAN
To: AXIS AB
Reel/Frame 035308/0955 →
Continuity (2)
Provisional Application 61665855 · Jun 28, 2012
Related Publication 20150156511A1 · Jun 4, 2015