Imaging systems with fixed output sizes and frame rates
First Claim
1. A method of generating a data stream of encoded image frames using an image encoder in an electronic device, wherein each of the encoded image frames has a given predetermined file size and wherein the encoded image frames are transmitted in the data stream at a given predetermined frame rate, the method comprising:
- with the image encoder and for a given image frame in the data stream, inserting into the data stream a first block of encoded image data during a first time period and inserting into the data stream a second block of encoded image data during a second time period that is after the first time period;
after the beginning of the first time period and prior to the beginning of the second time period, determining if the image encoder is on track to encode the given image frame at the given predetermined file size; and
with the image encoder, for the given image frame, and between the first time period and the second period, inserting a given block of padding data into the data stream, wherein the given block of padding data has a size that is varied in response to the determination of if the image encoder is on track to encode the given image frame at the given predetermined file size.
1 Assignment
0 Petitions
Accused Products
Abstract
An imaging system may include an image sensor and an image encoder that encodes images from the image sensor with fixed output sizes and frame rates. The image encoder may encode images from the image sensor into an image format such as a Joint Photographic Experts Group (JPEG) format. The image encoder may insert padding data between image blocks in the encoded data to compensate in real time for variations in the encoded size of an image. The amount of padding data inserted by the encoder may be calculated to ensure the encoded image has a file size close to, but not greater than, the required fixed output size. If needed, the encoder may add additional padding data after the image blocks are encoded in a blanking period before a subsequent image is encoded so that the final size of the encoded image is equal to the required output size.
-
Citations
19 Claims
-
1. A method of generating a data stream of encoded image frames using an image encoder in an electronic device, wherein each of the encoded image frames has a given predetermined file size and wherein the encoded image frames are transmitted in the data stream at a given predetermined frame rate, the method comprising:
-
with the image encoder and for a given image frame in the data stream, inserting into the data stream a first block of encoded image data during a first time period and inserting into the data stream a second block of encoded image data during a second time period that is after the first time period; after the beginning of the first time period and prior to the beginning of the second time period, determining if the image encoder is on track to encode the given image frame at the given predetermined file size; and with the image encoder, for the given image frame, and between the first time period and the second period, inserting a given block of padding data into the data stream, wherein the given block of padding data has a size that is varied in response to the determination of if the image encoder is on track to encode the given image frame at the given predetermined file size. - View Dependent Claims (2, 3, 4, 5, 10, 11, 12)
-
-
6. A method of generating a data stream of encoded image frames using an image encoder in an electronic device, wherein each of the encoded image frames has a given predetermined file size and wherein the encoded image frames are transmitted in the data stream at a given predetermined frame rate, the method comprising:
-
with the image encoder and for a given image frame in the data stream, inserting into the data stream a first block of encoded image data during a first time period and inserting into the data stream a second block of encoded image data during a second time period that is after the first time period; with the image encoder, for the given image frame, and between the first time period and the second period, inserting a given block of padding data into the data stream; with the image encoder, before the first time period, and for the given image frame, inserting into the data stream a first plurality of blocks of encoded image data; with the image encoder, after the second time period, and for the given image frame, inserting into the data stream a second plurality of blocks of encoded image data; and with the image encoder and for the given image frame, inserting additional blocks of padding data into the data stream, wherein each of the additional blocks of padding data is associated with a respective one of the blocks of encoded image data from the first and second pluralities of blocks of encoded image data, wherein inserting the given block of padding data into the data stream comprises; calculating a remaining file size value by subtracting at least the combined file size of the first plurality of blocks of encoded image data and the first block of encoded image data from the given predetermined file size, wherein each of the encoded image frames is an encoded version of an un-encoded image frame, wherein each of the un-encoded image frames has a file size, and wherein the first plurality of blocks of encoded image data are associated with a first portion of a given un-encoded image frame, and wherein inserting the given block of padding data into the data stream comprises; calculating a current compression ratio by dividing the combined file size of the first plurality of blocks of encoded image data and the first block of encoded image data by the file size of the first portion of the given un-encoded image frame, wherein the given un-encoded image frame includes the first portion that has been encoded and includes a second portion that includes a portion that has not yet been encoded and a portion associated with the second block of encoded image data and wherein inserting the given block of padding data into the data stream comprises; calculating an estimated remaining encoded file size value by dividing the file size of the second portion of the given un-encoded image frame by the current compression ratio. - View Dependent Claims (7, 8, 9)
-
-
13. A method comprising:
-
with an image encoder in an electronic device, producing a data stream of encoded image frames at a given frame rate, wherein producing the stream of encoded image frames comprises producing each of the image frames at a given file size; and with the image encoder, inserting a given amount of padding data into the data stream between a first encoded image portion of a given image frame and a second encoded image portion of the given image frame, wherein the first encoded image portion of the given image frame corresponds to a first portion of a given unencoded image frame, wherein the second encoded image portion of the given image frame corresponds to a second portion of the given unencoded image frame, and wherein inserting the padding data into the data stream between the first encoded image portion of the given image frame and the second encoded image portion of the given image frame comprises; determining the given amount of the padding data by dividing the size of the second portion of the given unencoded image frame by a current compression ratio. - View Dependent Claims (14, 15, 16, 17)
-
-
18. An electronic device comprising:
-
a host subsystem configured to receive a data stream of encoded image frames at a given predetermined frame rate, wherein each of the encoded image frames has a given predetermined file size; and an image encoder that produces the data stream of encoded image frames by, for each of the encoded image frames, inserting padding data into the data stream between at least a first encoded portion of that image frame and a second encoded portion of that image frame, wherein the image encoder determines the amount of the padding data that is inserted into the data stream between the first and second encoded portions at least partly based on the given predetermined file size, the file size of the first encoded portion, and an estimated file size of the second encoded portion. - View Dependent Claims (19)
-
Specification