IP Library Granted Patent US 10,616,587
Granted Patent B2
US 10,616,587 · App. 15/963,747 · Granted Apr 7, 2020

Bit rate control over groups of frames

Inventors: Jacek Stachurski (Woodland Hills, CA); Zoran Fejzo (Los Angeles, CA)
Assignee: DTS, Inc.
H04N19/152G10L19/002H04L65/607
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 10,616,587
App. No.
15/963,747
Granted
Apr 7, 2020
Kind
B2
Abstract

Systems and methods are described for processing data from a sequential series of groups of frames to achieve a target average processing bit rate for a particular group of frames in the series. In an example, a look-ahead buffer circuit can be populated with a number of frames from a particular group of frames, and a bit allocation can be determined for a frame in the look-ahead buffer circuit using bit request information about all of the frames in the buffer. The look-ahead buffer circuit can be populated with streaming frame information in a first-in-first-out manner, and bit allocation processing can be performed for each frame, in a particular group of frames, based on a frame position in the look-ahead buffer circuit and further based on bit requests associated with other frames in the look-ahead buffer circuit.

Claims (56)

1. A method for processing data from a sequential series of groups of frames to achieve a target average processing bit rate for a particular group of frames in the series, the series including a first group of frames F 1 through a last group of frames Fj, wherein each group of frames comprises Dj frames, the method comprising:

receiving B 1 frames of the first group of frames F 1 in a look-ahead processing buffer, the received frames including a first buffered frame F 1 0 through frame F 1 B1−1 , wherein B 1 is greater than 1 and B 1 is less than D 1 ;

determining, using a processor circuit, a first bit allocation for the first buffered frame F 1 0 based on one or more bit allocation requests corresponding to the received B 1 frames in the look-ahead processing buffer;

receiving, in the look-ahead processing buffer, a last frame F 1 D1−1 of the first group of frames F 1 to be encoded; and

determining, using the processor circuit, a subsequent bit allocation for the last frame F 1 D1−1 based on fewer than B 1 bit allocation requests.

2. The method of claim 1 , further comprising:

determining bit allocations for one or more other frames in the first group of frames F 1 preceding the last frame F 1 D1−1 ; and

expunging frames other than the last frame F 1 D1−1 from the look-ahead processing buffer;

wherein the determining the subsequent bit allocation for the last frame F 1 D1−1 of the first group of frames F 1 includes using a bit allocation request corresponding to only the last frame F 1 D1−1 .

3. The method of claim 1 , wherein the receiving the B 1 frames of the first group of frames F 1 in the look-ahead processing buffer includes receiving B 1 respective bit allocation requests for the B 1 received frames; and

wherein the determining the first bit allocation for the first buffered frame F 1 0 includes using information about each of the B 1 bit allocation requests corresponding to the received B 1 frames in the look-ahead processing buffer.

4. The method of claim 1 , further comprising encoding, using the same or other processor circuit, the first buffered frame F 1 0 using the first bit allocation.

5. The method of claim 1 , further comprising:

updating frame contents of the look-ahead processing buffer including removing the first buffered frame F 1 0 and receiving a later frame F 1 B1 such that the look-ahead processing buffer includes a second buffered frame F 1 1 through frame F 1 B1 ; and

determining, using the processor circuit, a bit allocation for the second buffered frame F 1 1 based on B 1 bit allocation requests corresponding to the updated frame contents of the look-ahead processing buffer.

6. The method of claim 1 , further comprising:

before encoding the last frame F 1 D1−1 from the first group of frames F 1 , buffering bit allocation requests for one or more frames of a subsequent second group of frames F 2 .

7. The method of claim 1 , further comprising:

before encoding the last frame F 1 D1−1 from the first group of frames F 1 :

populating a portion of a second look-ahead processing buffer with frames from a second group of frames F 2 , including receiving at least frame F 2 0 ;

following determining the subsequent bit allocation for the last frame F 1 D1−1 from the first group of frames F 1 :

filling the second look-ahead processing buffer with at least one additional frame of the second group of frames F 2 , the received frames including B 2 frames F 2 0 through F 2 B2−1 , wherein B 2 is greater than 1; and

determining, using the processor circuit, a bit allocation for the frame F 2 0 based on one or more bit allocation requests corresponding to the received B 2 frames in the second look-ahead processing buffer;

receiving, in the second look-ahead processing buffer, a last frame F 2 D2−1 of the second group of frames F 2 to be encoded, and expunging frames other than the last frame F 2 D2−1 from the second look-ahead processing buffer; and

determining, using the processor circuit, a bit allocation for the last frame F 2 D2−1 based on fewer than B 2 bit allocation requests.

8. The method of claim 1 , further comprising determining one or more constraints associated with the frames in the first group of frames F 1 , wherein the determining the one or more constraints includes one or more of:

determining a maximum bit rate or a minimum bit rate for a particular frame or group of frames;

determining a constraint that applies to multiple ones of the frames in the first group of frames F 1 ; and

determining respective constraints for each of the frames in the first group of frames F 1 .

9. The method of claim 1 , further comprising:

identifying a relative or absolute perceptual importance of the information in the frames of the first group of frames F 1 ; and

allocating a greater number of bits to the first frame F 1 0 than to a subsequent second frame F 1 1 when a perceptual importance of information in the first frame F 1 0 exceeds a perceptual importance of information in the second frame F 1 1 .

10. A method for processing data from a sequential series of groups of frames, including a first group of frames F 1 through a last group of frames Fj, wherein each group of frames comprises Dj frames, including a first frame Fn 0 through a last frame Fn Dj−1 , the method comprising:

receiving a first series of frames in a first buffer of size B frames, the first series of frames including frames F 1 0 through F 1 B−1 from the first group of frames F 1 , wherein B is less than a total number of frames D 1 in the first group of frames F 1 ;

encoding a first frame F 1 0 of the first group of frames F 1 , including:

receiving, at a first processor circuit, respective bit allocation requests for the first series of frames in the first buffer, the bit allocation requests based on constraints associated with the first series of frames in the first buffer;

determining, using the first processor circuit, a first bit allocation for the first frame F 1 0 based on at least one of the constraints associated with the first series of frames in the first buffer; and

encoding the first frame F 1 0 using the determined first bit allocation for the first frame F 1 0 ;

updating the first buffer to include a second series of frames, the second series of frames including frames F 1 1 through F 1 B from the first group of frames F 1 ;

encoding a second frame F 1 1 of the first group of frames F 1 , including:

receiving, at the first processor circuit, respective bit allocation requests for the second series of frames in the updated first buffer, the bit allocation requests based on constraints associated with the second series of frames in the updated first buffer;

determining, using the first processor circuit, a second bit allocation for the second frame F 1 1 based on at least one of the constraints associated with the second series of frames in the updated first buffer; and

encoding the second frame F 1 1 using the determined second bit allocation for the second frame F 1 1 .

11. The method of claim 10 , wherein the determining the first bit allocation for the first frame F 1 0 includes determining the first bit allocation using information about the bit allocation requests for all of the frames in the first series of frames in the first buffer.

12. The method of claim 10 , wherein the determining the first and second bit allocations for the first frame F 1 0 and the second frame F 1 1 , respectively, includes satisfying a first target average bit rate for the first group of frames F 1 .

13. The method of claim 10 , wherein the receiving the respective bit allocation requests for the first series of frames in the first buffer includes receiving requests that are based on constraints that include one or more of a minimum bit rate and a maximum bit rate.

14. The method of claim 10 , wherein the determining the first and second bit allocations for the first frame F 1 0 and the second frame F 1 1 , respectively, includes allocating the bits based on a relative perceptual importance of information in the first frame F 1 0 and the second frame F 1 1 .

15. A system for processing data from a sequential series of groups of frames to achieve a target average processing bit rate for a particular group of frames in the series, the series including a first group of frames F 1 through a last group of frames Fj, wherein each group of frames comprises Dj frames, the system comprising:

a look-ahead buffer circuit configured to receive B 1 frames of the first group of frames F 1 , the received frames including a first buffered frame F 1 0 through frame F 1 B1−1 , wherein B 1 is greater than 1 and B 1 is less than D 1 ;

a bit allocation processor circuit, coupled to the look-ahead buffer circuit, the bit allocation processor circuit configured to determine a first bit allocation for the first buffered frame F 1 0 based on the bit allocation requests corresponding to the received B 1 frames in the look-ahead processing buffer wherein the received B 1 frames include fewer than all of the frames from the first group of frames F 1 ; and

an encoder circuit configured to encode the first buffered frame F 1 0 using the determined first bit allocation.

16. The system of claim 15 , wherein the look-ahead buffer circuit is configured to receive new frames from the first group of frames F 1 and expunge old frames from the first group of frames F 1 in a first-in-first-out manner.

17. The system of claim 15 , wherein the bit allocation processor circuit is configured to determine a bit allocation for a second buffered frame F 1 1 based on bit allocation requests corresponding to B 1 frames, F 1 1 through F 1 B1 , in the look-ahead processing buffer.

18. The system of claim 15 , wherein the bit allocation processor circuit is configured to determine the first bit allocation based on constraints associated with one or more frames in the first group of frames F 1 or in another group of frames.

19. The system of claim 15 , wherein the bit allocation processor circuit is configured to determine the first bit allocation based on a relative perceptual importance characteristic of the first buffered frame F 1 0 with respect to other frames in the first group of frames F 1 .

20. The system of claim 15 , wherein the look-ahead buffer circuit is configured to receive the frames as a continuous data stream arriving from a network.

Assignments (4)
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS Recorded Oct 27, 2022
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VEVEO LLC (F.K.A. VEVEO, INC.); DTS, INC.; PHORUS, INC.; IBIQUITY DIGITAL CORPORATION
Reel/Frame 061786/0675 →
SECURITY INTEREST Recorded Jun 1, 2020
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS INC.; VEVEO, INC.; INVENSAS CORPORATION; INVENSAS BONDING TECHNOLOGIES, INC.; TESSERA, INC.; TESSERA ADVANCED TECHNOLOGIES, INC.; DTS, INC.; PHORUS, INC.; IBIQUITY DIGITAL CORPORATION
To: BANK OF AMERICA, N.A.
Reel/Frame 053468/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2018
From: STACHURSKI, JACEK; FEJZO, ZORAN
To: DTS, INC.
Reel/Frame 046462/0483 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2018
From: STACHURSKI, JACEK; FEJZO, ZORAN
To: DTS, INC.
Reel/Frame 046028/0536 →
Continuity (2)
Provisional Application 62490165 · Apr 26, 2017
Related Publication 20180316923A1 · Nov 1, 2018