Video encoders/decoders and video encoding/decoding methods for video surveillance applications
AssigneeSTMicroelectronics International N.V.
InventorsSumit Johar, Surinder Pal Singh
Life of this patent
Estimating the term…
Abstract
Video encoders and decoders and video encoding and decoding methods are provided. A video encoder includes an input buffer configured to receive a video data stream and to supply current frame data, a frame buffer configured to store reconstructed frame data, and an encoder circuit configured to read reference frame data from the frame buffer, to encode the current frame data received from the input buffer using the reference frame data and to write the reconstructed frame data to the frame buffer. The encoder circuit may be configured to write the reconstructed frame data by overwriting the reference frame data in the frame buffer.
Claims16
A video encoder, comprising:
- an input buffer configured to receive a video data stream and to supply current frame data;
- a frame buffer configured to store reconstructed frame data, wherein the frame buffer comprises a single-frame buffer configured to store reference frame data comprising a plurality of reference macroblocks and to store current frame reconstructed data comprising a plurality of reconstructed macroblocks;
- and
- an encoder pipeline circuit configured to, in a macroblock-by-macroblock pipelined fashion for each reference macroblock of the reference frame data:
- read a first reference macroblock of the plurality of reference macroblocks of the reference frame data from a specified location in the frame buffer;
- encode, according to a zero motion vector algorithm, a first current macroblock of the current frame data received from the input buffer using the first reference macroblock to generate a first reconstructed macroblock of the plurality of reconstructed macroblocks;
- write the first reconstructed macroblock to the same specified location from which the first reference macroblock was read in the frame buffer, wherein the first reconstructed macroblock of the current frame reconstructed data and the other reference macroblocks of the reference frame data are concurrently stored in the single-frame buffer;
- and
- repeat the reading, encoding, and writing steps for each of the other reference macroblocks of the plurality of reference macroblocks on a macroblock-by-macroblock basis until the single-frame buffer is filled with the current frame reconstructed data.
A method for encoding video data, the method comprising:
- receiving, by an input buffer, a surveillance video data stream;
- supplying, by the input buffer, current frame data to an encoder pipeline circuit;
- reading in a macroblock-by-macroblock pipelined fashion, by the encoder pipeline circuit, a first reference macroblock of a plurality of reference macroblocks of reference frame data from a specified location in a frame buffer;
- encoding in the macroblock-by-macroblock pipelined fashion, by the encoder pipeline circuit and according to a zero motion vector algorithm, a first current macroblock of the current frame data using the first reference macroblock to provide a first reconstructed macroblock of a plurality of reconstructed macroblocks of reconstructed frame data;
- and
- writing in the macroblock-by-macroblock pipelined fashion, by the encoder pipeline circuit, the first reconstructed macroblock to the same specified location from which the first reference macroblock was read in the frame buffer, wherein the frame buffer comprises a single-frame buffer that concurrently stores the first reconstructed macroblock of the current frame data and the other reference macroblocks of the reference frame data.
A video decoder comprising:
- a frame buffer comprising a single-frame buffer configured to store reconstructed frame data and reference frame data, the reference frame data comprising a plurality of reference macroblocks;
- and
- a decoder pipeline circuit configured to, in pipelined fashion for each reference macroblock of the reference frame data:
- read a first reference macroblock of the plurality of reference macroblocks of the reference frame data from a specified location in the frame buffer, wherein other reference macroblocks of the reference frame data stored in the frame buffer are not read when the first reference macroblock is read;
- decode, according to a zero motion vector algorithm, a first current encoded macroblock of current frame encoded data using the first reference macroblock to generated a first reconstructed macroblock of a plurality of reconstructed macroblocks of current frame reconstructed data;
- write the first reconstructed macroblock to the same specified location from which the first reference macroblock was read in the frame buffer, wherein the first reconstructed macroblock of the current frame reconstructed data and the other reference macroblocks of the reference frame data are concurrently stored in the single-frame buffer;
- and
- repeat the reading, decoding, and writing steps for each of the other reference macroblocks of the plurality of reference macroblocks on a macroblock-by-macroblock basis until the single-frame buffer is filled with the current frame reconstructed data.
Dependencies are inferred from the claim text.