IP Library Granted Patent US 9,247,259
Granted Patent B2
US 9,247,259 · App. 11/870,060 · Granted Jan 26, 2016

Control of video compression based on file size constraint

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,247,259
App. No.
11/870,060
Granted
Jan 26, 2016
Kind
B2
Abstract

A method for processing data includes receiving an image sequence including a succession of image frames for encoding in an image sequence file. A target size of the image sequence file is specified. The image sequence file is generated by encoding the succession of the image frames using at least one variable compression parameter, which is adjusted during the encoding responsively to the target size. The image sequence file is outputted for transmission over a communication link.

Claims (46)

1. A method for processing data, comprising:

receiving an image sequence comprising a succession of image frames for encoding in an image sequence file;

specifying a target size of the image sequence file;

generating the image sequence file by performing for each current frame of the succession:

monitoring a cumulative data volume of the compressed image frames preceding the current frame;

calculating a budget for the current frame responsively to the cumulative data volume and the target size of the image sequence file;

selecting at least one variable compression parameter for the current frame, responsively to the budget calculated for the current frame; and

encoding the current frame responsively to the at least one selected variable compression parameter; and

outputting the image sequence file for transmission over a communication link.

2. The method according to claim 1 , wherein the at least one variable compression parameter comprises a quantization parameter.

3. The method according to claim 2 , wherein encoding the succession of the image frames comprises dividing each of the image frames into a plurality of basic units, and setting the quantization parameter respectively for each of the basic units in each of the image frames.

4. The method according to claim 1 , wherein the at least one variable compression parameter comprises a skip frame parameter, which is set so as to cause at least one of the image frames to be dropped from the image sequence file.

5. The method according to claim 1 , wherein encoding the succession of the image frames comprises:

defining a virtual buffer size responsively to the target size;

defining a buffer overflow curve, which decreases monotonically over at least a final portion of the succession of the image frames, indicating an amount by which a data volume at each frame in the image sequence file is permitted to exceed a working point indicated by the virtual buffer size; and

controlling the variable compression parameter while encoding the data so that the data volume remains within a bound indicated by the buffer overflow curve.

6. The method according to claim 5 , wherein controlling the variable compression parameter comprises dropping a given frame from the image sequence file upon determining that inclusion of the given frame in the image sequence file will cause the data volume to exceed the bound indicated by the buffer overflow curve for the given frame.

7. The method according to claim 1 , wherein encoding the succession of the image frames comprises compressing the image sequence in a single pass through the succession of the image frames.

8. The method according to claim 1 , wherein the file size is no less than 98% of the target size.

9. The method according to claim 1 , wherein said image sequence file having a file size that is no less than 90% of said target size, and, responsive to said image sequence file being greater than said target size, discarding at least one of said encoded image frames of said image sequence file thereby reducing the size of said image sequence file to be less than said target size.

10. The method according to claim 1 , wherein calculating the budget for the current frame comprises calculating a cumulative deviation of the cumulative data volume from a nominal frame budget determined as the file target size divided by a number of images in the succession of frames.

11. The method according to claim 1 , wherein outputting the image sequence file comprises outputting after compressing the entire succession of image frames.

12. Apparatus for processing data, comprising:

a memory, which is configured to receive an image sequence comprising a succession of image frames for encoding in an image sequence file; and

a processor, which is coupled to generate the image sequence file by performing for each current frame of the succession:

monitor a cumulative data volume of the compressed image frames preceding the current frame;

calculate a budget for the current frame responsively to the cumulative data volume and the target size of the image sequence file;

select at least one variable compression parameter for the current frame, responsively to the budget calculated for the current frame; and

encode the current frame responsively to the at least one selected variable compression parameter, and

to output the image sequence file for transmission over a communication link.

13. The apparatus according to claim 12 , wherein the at least one variable compression parameter comprises a quantization parameter.

14. The apparatus according to claim 13 , wherein the processor is configured to divide each of the image frames into a plurality of basic units, and to set the quantization parameter respectively for each of the basic units in each of the image frames.

15. The apparatus according to claim 12 , wherein the at least one variable compression parameter comprises a skip frame parameter, which is set by the processor so as to cause at least one of the image frames to be dropped from the image sequence file.

16. The apparatus according to claim 12 , wherein the processor is configured to encode the succession of the image frames by defining a virtual buffer size responsively to the target size, defining a buffer overflow curve indicating an amount by which a data volume at each frame in the image sequence file is permitted to exceed a working point indicated by the virtual buffer size, and controlling the variable compression parameter while encoding the data so that the data volume remains within a bound indicated by the buffer overflow curve.

17. The apparatus according to claim 16 , wherein the bound indicated by the buffer overflow curve decreases monotonically over at least a final portion of the succession of the image frames.

18. The apparatus according to claim 16 , wherein the processor is configured to drop a given frame from the image sequence file upon determining that inclusion of the given frame in the image sequence file will cause the data volume to exceed the bound indicated by the buffer overflow curve for the given frame.

19. The apparatus according to claim 12 , wherein the processor is configured to encode the succession of the image frames in a single pass through the succession of the image frames.

20. The apparatus according to claim 12 , wherein the file size is no less than 98% of the target size.

21. A computer software product, comprising a non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by a computer, cause the computer to receive an image sequence comprising a succession of image frames for encoding in an image sequence file, and to generate the image sequence file by performing for each current frame of the succession:

monitoring a cumulative data volume of the compressed image frames preceding the current frame;

calculating a budget for the current frame responsively to the cumulative data volume and the target size of the image sequence file;

selecting at least one variable compression parameter for the current frame, the budget calculated for the current frame, and

encoding the current frame responsively to the at least one selected variable compression parameter; and

to output the image sequence file for transmission over a communication link.

22. The product according to claim 21 , wherein the at least one variable compression parameter comprises a quantization parameter.

23. The product according to claim 21 , wherein the at least one variable compression parameter comprises a skip frame parameter, which is set by the computer so as to cause at least one of the image frames to be dropped from the image sequence file.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Aug 3, 2020
From: MIZRAHI TEFAHOT BANK, LTD.
To: FLASH NETWORKS LTD.
Reel/Frame 053381/0675 →
RELEASE OF SECURITY INTEREST Recorded May 16, 2018
From: MIZRAHI TEFAHOT BANK, LTD
To: FLASH NETWORKS LTD.
Reel/Frame 045823/0186 →
RELEASE OF SECURITY INTEREST Recorded May 16, 2018
From: KREOS CAPITAL IV (EXPERT FUND) LIMITED
To: FLASH NETWORKS LTD
Reel/Frame 046172/0758 →
SECURITY INTEREST Recorded May 16, 2018
From: FLASH NETWORKS LTD.
To: MIZRAHI TEFAHOT BANK, LTD..
Reel/Frame 046174/0432 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR NAME AND APPLICATION NUMBER 12632419. PREVIOUSLY RECORDED AT REEL: 024547 FRAME: 0885. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT . Recorded Feb 21, 2017
From: MOBIXELL NETWORKS (ISRAEL) LTD.
To: MIZRAHI TEFAHOT BANK LTD.
Reel/Frame 041760/0188 →
SECURITY INTEREST Recorded Jul 14, 2014
From: FLASH NETWORKS LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED; MIZRAHI TEFAHOT BANK, LTD.
Reel/Frame 033309/0712 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF ASSIGNEE PREVIOUSLY RECORDED ON REEL 033181 FRAME 0904. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 9, 2014
From: MOBIXELL NETWORKS, (ISRAEL) LTD
To: FLASH NETWORKS LTD.
Reel/Frame 033272/0322 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2014
From: MOBIXELL NETWORKS, (ISRAEL) LTD
To: FLASH NETWORKS ISRAEL
Reel/Frame 033181/0904 →
SECURITY AGREEMENT Recorded Jun 17, 2010
From: MOBIXELL NETWORKS, INC.
To: MIZRAHI TEFAHOT BANK LTD.
Reel/Frame 024547/0885 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2007
From: ROZEN, SHAUL; RAUDNITZ, DAN; WEXLER, YOSEF
To: MOBIXELL NETWORKS LTD.
Reel/Frame 019944/0656 →