Method, device and system for method of encoding a sequence of frames in a video stream
AssigneeAxis AB
InventorsViktor Edpalm, Björn Ardö
Life of this patent
Estimating the term…
Abstract
The present teachings relate to the field of video encoding. In particular, the present teachings relate to a method, device, and system for encoding a sequence of frames wherein a motion level of image data of an initial frame in the sequence of frames is determined to be below a motion level threshold. The encoding method described herein may reduce the bit rate for the encoded sequence of frames, while avoiding that the encoded video stream looks unnatural or frozen when decoded and displayed.
Claims15
A method of encoding a sequence of frames in a video stream by an encoder, the sequence of frames being in an order corresponding to a capturing time of the sequence of frames, wherein, upon determining that a motion level of image data of an initial frame in the sequence of frames is below a motion level threshold, the method comprising:
- encoding first frames among the sequence of frames as a plurality of reference frames, each reference frame of the plurality of encoded reference frames being an intra-frame encoded frame or an inter-frame encoded frame and corresponding to a frame among the sequence of frames;
- and
- encoding second frames among the sequence of frames as a plurality of empty frames, each corresponding to a frame among the sequence of frames, wherein an empty frame comprises macroblocks encoded as skip blocks and a reference to another frame in the video stream, by, for each frame of the second frames among the sequence of frames to be encoded as an empty frame:
- selecting an encoded reference frame among the plurality of encoded reference frames;
- and
- encoding the frame of the second frames among the sequence of frames as an empty frame having a direct or indirect reference to the selected reference frame, wherein an indirect reference is made via a previously encoded empty frame which refers to the selected reference frame;
- wherein for at least one pair of consecutive empty frames in the encoded sequence of frames, the selected reference frame for a first empty frame in the pair differs from the selected reference frame for a second empty frame in the pair,
- wherein the frame among the sequence of frames corresponding to the selected reference frame for the first empty frame and the frame among the sequence of frames corresponding to the selected reference frame for the second empty frame both are temporally preceding to the frames among the sequence of frames corresponding to the first and second empty frames in the sequence of frames.
A computer program product comprising a non-transitory computer readable storage medium including instructions, which when executed by a device having a processing capability, cause the device to execute instructions to perform operations for encoding a sequence of frames in a video stream being in an order corresponding to a capturing time of the sequence of frames, wherein, upon determining that a motion level of image data of an initial frame in the sequence of frames is below a motion level threshold comprising:
- encoding first frames among the sequence of frames as a plurality of reference frames, each reference frame of the plurality of encoded reference frames being an intra-frame encoded frame or an inter-frame encoded frame and corresponding to a frame among the sequence of frames;
- and
- encoding second frames among the sequence of frames as a plurality of empty frames, each corresponding to a frame among the sequence of frames, wherein an empty frame comprises macroblocks encoded as skip blocks and a reference to another frame in the video stream, by, for each frame of the second frames among the sequence of frames to be encoded as an empty frame:
- selecting an encoded reference frame among the plurality of encoded reference frames;
- and
- encoding the frame of the second frames among the sequence of frames as an empty frame having a direct or indirect reference to the selected reference frame, wherein an indirect reference is made via a previously encoded empty frame which refers to the selected reference frame;
- wherein for at least one pair of consecutive empty frames in the encoded sequence of frames, the selected reference frame for a first empty frame in the pair differs from the selected reference frame for a second empty frame in the pair,
- wherein the frame among the sequence of frames corresponding to the selected reference frame for the first empty frame and the frame among the sequence of frames corresponding to the selected reference frame for the second empty frame both are temporally preceding to the frames among the sequence of frames corresponding to the first and second empty frames in the sequence of frames.
A device for encoding a sequence of frames in a video stream being in an order corresponding to a capturing time of the sequence of frames, the device comprising a processor, wherein upon determining, by the processor, that a motion level of image data of an initial frame in the sequence of frames is below a motion level threshold, the processor being configured to:
- encode first frames among the sequence of frames as a plurality of reference frames, each reference frame of the plurality of encoded reference frames being an intra-frame encoded frame or an inter-frame encoded frame and corresponding to a frame among the sequence of frames;
- and
- encode second frames among the sequence of frames as a plurality of empty frames, each corresponding to a frame among the sequence of frames, wherein an empty frame comprises macroblocks encoded as skip blocks and a reference to another frame in the video stream, by, for each frame of the second frames among the sequence of frames to be encoded as an empty frame:
- select an encoded reference frame among the encoded reference frames;
- and
- encode the frame of the second frames among the sequence of frames as an empty frame having a direct or indirect reference to the selected reference frame, wherein an indirect reference is made via a previously encoded empty frame which refers to the selected reference frame;
- wherein for at least one pair of consecutive empty frames in the encoded sequence of frames, the reference frame selected for a first empty frame in the pair differs from the reference frame selected for a second empty frame in the pair,
- wherein the frame among the sequence of frames corresponding to the selected reference frame for the first empty frame and the frame among the sequence of frames corresponding to the selected reference frame for the second empty frame both are temporally preceding to the frames among the sequence of frames corresponding to the first and second empty frames in the sequence of frames.
A system comprising:
- a first device for continuously capturing data of a scene, and producing a video stream comprising a sequence of frames based on the captured data, the video stream being in an order corresponding to a capturing time of the sequence of frames;
- a second device configured to determine a motion level for each frame of the video stream;
- and
- a third device configured to receive the sequence of frames and the determined motion levels for the sequence of frames,
- wherein the third device comprises a processor configured to, upon determining that a motion level of image data of an initial frame in the sequence of frames is below a motion level threshold:
- encode first frames among the sequence of frames as a plurality of reference frames, each reference frame of the plurality of encoded reference frames being an intra-frame encoded frame or an inter-frame encoded frame and corresponding to a frame among the sequence of frames;
- and
- encode second frames among the sequence of frames as a plurality of empty frames, each corresponding to a frame among the sequence of frames, wherein an empty frame comprises macroblocks encoded as skip blocks and a reference to another frame in the video stream, by, for each frame of the second frames among the sequence of frames to be encoded as an empty frame:
- select an encoded reference frame among the encoded reference frames;
- and
- encode the frame of the second frames among the sequence of frames as an empty frame having a direct or indirect reference to the selected reference frame, wherein an indirect reference is made via a previously encoded empty frame which refers to the selected reference frame;
- wherein for at least one pair of consecutive empty frames in the encoded sequence of frames, the reference frame selected for a first empty frame in the pair differs from the reference frame selected for a second empty frame in the pair,
- wherein the frame among the sequence of frames corresponding to the selected reference frame for the first empty frame and the frame among the sequence of frames corresponding to the selected reference frame for the second empty frame both are temporally preceding to the frames among the sequence of frames corresponding to the first and second empty frames in the sequence of frames.
Dependencies are inferred from the claim text.