Video compression encoder
First Claim
1. A video encoder receiving a serial stream of pixel data corresponding to groups of pixels in a video frame of information, comprising:
- a processor in a chip, with a local operating buffer also in the chip, programmed to;
determine a check value for the pixels of a given group based on a check value algorithm, store the check value for the given group in a memory location of the local operating buffer corresponding to the given group, encode the pixels of the given group into a code stream based on an encoding algorithm, continue the determining, storing, and encoding operations until the frame of information is encoded, and for a next video frame of information;
determine a current check value for the current group of pixels based on the same check value algorithm, encode the pixels of a given current group into a current code stream based on the same encoding algorithm, compare the current check value with the stored value for the corresponding given group of the previous frame, and if the current check value is the same as the stored value for the corresponding given group of the previous frame, preparing a copy command instructing a decoder to copy the pixel values of the given group of the previous frame, and if the current check value is not the same as the stored value for the corresponding given group of the previous frame, sending the current code stream to the decoder and overwriting the current check value to the memory location of the local operating buffer corresponding to the given group.
9 Assignments
0 Petitions
Accused Products
Abstract
A video compression encoder which does not require a video frame buffer is disclosed. Without a frame buffer, incoming pixels can not be compared to pixels previously sent to the decoder. Instead, the disclosed encoder only stores check values for groups of pixels sent. If a group'"'"'s check value has not changed, the encoder sends a command to the decoder not to change that pixel group. Also, without a frame buffer, an incoming video frame can not be captured and later sent to the decoder as network throughput permits. Instead, if throughput is insufficient to send an encoded group of pixels, the encoder leaves the check value for that group unchanged and sends a command instructing the decoder not to change those pixels. This defers updating that group until the next screen update is sent to the decoder. Grouping of pixels can be done in any fashion, for example; a group can be a single video line, a portion of a line, multiple lines or screen rectangles containing portions of multiple lines.
-
Citations
9 Claims
-
1. A video encoder receiving a serial stream of pixel data corresponding to groups of pixels in a video frame of information, comprising:
a processor in a chip, with a local operating buffer also in the chip, programmed to;
determine a check value for the pixels of a given group based on a check value algorithm, store the check value for the given group in a memory location of the local operating buffer corresponding to the given group, encode the pixels of the given group into a code stream based on an encoding algorithm, continue the determining, storing, and encoding operations until the frame of information is encoded, and for a next video frame of information;
determine a current check value for the current group of pixels based on the same check value algorithm, encode the pixels of a given current group into a current code stream based on the same encoding algorithm, compare the current check value with the stored value for the corresponding given group of the previous frame, and if the current check value is the same as the stored value for the corresponding given group of the previous frame, preparing a copy command instructing a decoder to copy the pixel values of the given group of the previous frame, and if the current check value is not the same as the stored value for the corresponding given group of the previous frame, sending the current code stream to the decoder and overwriting the current check value to the memory location of the local operating buffer corresponding to the given group. - View Dependent Claims (2)
-
3. A method of encoding a video stream comprising the steps of:
-
defining corresponding groups of pixels for video frames of a video stream;
receiving a serial stream of pixel data corresponding to a given group of pixels in a first video frame;
determining a check value for the pixels of the given group based on a check value algorithm;
storing the check value for the given group in a memory location corresponding to the given group;
encoding the pixels of the given group into a code stream based on an encoding algorithm;
continuing the determining, storing, and encoding steps for all the groups of pixels within the frame until the frame of information is encoded;
receiving a serial stream of pixel data corresponding to a given group of pixels in a next video frame of information and;
for a next video frame of information;
determining a current check value for the given group of pixels based on the same check value algorithm, comparing the current check value with the stored value for the corresponding given group of the previous frame, and if the current check value is the same as the stored value for the corresponding given group of the previous frame, preparing a copy command instructing a decoder to copy the pixel values of the given group of the previous frame, and if the current check value is not the same as the stored value for the corresponding given group of the previous frame, sending the current code stream to the decoder and overwriting the current check value to the memory location of the local operating buffer corresponding to the given group. - View Dependent Claims (4)
-
-
5. A video encoder receiving a serial stream of pixel data corresponding to groups of pixels in a video frame of information, comprising:
a processor in a chip, with a local operating buffer also in the chip, programmed to;
determine a check value for the pixels of a given group based on a check value algorithm, store the check value for the given group in a memory location of the local operating buffer corresponding to the given group, encode the pixels of the given group into a code stream based on an encoding algorithm, continue the determining, storing, and encoding operations until the frame of information is encoded, and for a next video frame of information;
determine a current check value for the current group of pixels based on the same check value algorithm, compare the current check value with the stored value for the corresponding given group of the previous frame, and if the current check value is the same as the stored value for the corresponding given group of the previous frame, preparing a copy command instructing a decoder to copy the pixel values of the given group of the previous frame, and if the current check value is not the same as the stored value for the corresponding given group of the previous frame, encoding the pixels of a given current group into a current code stream based on the same encoding algorithm, sending the current code stream to the decoder and overwriting the current check value to the memory location of the local operating buffer corresponding to the given group. - View Dependent Claims (6)
-
7. A method of encoding a video stream comprising the steps of:
-
determining a check value for the pixels of a given group based on a check value algorithm, storing the check value for the given group in a memory location of the local operating buffer corresponding to the given group, encoding the pixels of the given group into a code stream based on an encoding algorithm, continuing the determining, storing, and encoding operations until the frame of information is encoded, and for a next video frame of information;
determining a current check value for the current group of pixels based on the same check value algorithm, comparing the current check value with the stored value for the corresponding given group of the previous frame, and if the current check value is the same as the stored value for the corresponding given group of the previous frame, preparing a copy command instructing a decoder to copy the pixel values of the given group of the previous frame, and if the current check value is not the same as the stored value for the corresponding given group of the previous frame, encoding the pixels of a given current group into a current code stream based on the same encoding algorithm, sending the current code stream to the decoder and overwriting the current check value to the memory location of the local operating buffer corresponding to the given group. - View Dependent Claims (8)
-
-
9. A method for encoding a video stream using copy encoding commands comprising the steps of:
-
specifying the amount of memory available to store video information;
for some number of copy encoding commands, determining the amount memory required to implement each type of copy encoding command, where the amount of memory required to implement a given type of copy command is dependant on the amount of memory required to represent a defined group of pixels and the number of respective groups thereof that need to be stored;
choosing which copy commands types to implement based on the specified amount of memory and the amount of memory required to implement each type of command.
-
Specification