IP Library Granted Patent US 9,749,713
Granted Patent B2
US 9,749,713 · App. 12/580,212 · Granted Aug 29, 2017

Budget encoding

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,749,713
App. No.
12/580,212
Granted
Aug 29, 2017
Kind
B2
Abstract

A method includes receiving streaming media data having a media frame and a frame index referencing the media frame; allocating a frame budget for an output media frame by estimating a frame size of the output media frame based on the frame index; generating the output media frame in real-time by processing the media frame based on first processing parameters and, if the allocated frame budget is greater than a frame size of the processed media frame, padding the processed media frame; and providing the output media frame.

Claims (48)

1. A method for transcoding streaming video data, the method comprising:

receiving, from a data network, encoded streaming media data including a plurality of media frames and a frame index specifying an original frame size and a byte offset of individual encoded frames of the plurality of media frames;

allocating a frame budget for an output media frame to generate an output frame index, by estimating a frame size of the output media frame based on a respective original frame size in the frame index;

generating the output media frame in real-time by processing the media frame based on first processing parameters;

in response to the allocated frame budget being greater than a frame size of the processed media frame, padding the processed media frame;

in response to the allocated frame budget being less than a frame size of the processed media frame, determining second processing parameters based on the frame budget and the first processing parameters, re-processing the media frame based on the second processing parameters and, in response to the allocated frame budget being greater than a frame size of the re-processed media frame, padding the re-processed media frame; and

providing the output media frame.

2. The method of claim 1 , further comprising:

extracting the frame index referencing media frames presented in the streaming media data; and

generating, before the output media frames are generated, the output frame index referencing the output media frames based on the allocated frame budgets and the frame index referencing the plurality of media frames.

3. The method of claim 1 , further comprising:

retrieving the media frame from the streaming media data based on the frame index;

decoding the media frame; and

obtaining the first processing parameters based on the decoded media frame.

4. The method of claim 3 , wherein obtaining the first processing parameters includes obtaining one or more first quantization parameters used for quantizing the media frame.

5. The method of claim 1 , wherein determining the second processing parameters includes determining one or more second quantization parameters for quantizing the media frame.

6. The method of claim 1 , further comprising:

compressing the output media frame using a lossless compression technique before a user device receives the output media frame.

7. The method of claim 6 , further comprising:

allocating the frame budget for the output media frame based on awareness of the compressing such that the chance for the processed media frame to fit within the frame budget is improved.

8. A device coupled to receive streaming media data having a plurality of media frames and a frame index specifying an original frame size and a byte offset of individual encoded frames of the plurality of media frames, the device comprising:

a frame budget algorithm module configured to allocate a frame budget for an output media frame to generate an output frame index, by estimating a frame size of the output media frame based on a respective original frame size of a respective encoded frame in the received frame index;

a processing algorithm module configured to determine first processing parameters based on the frame budget and the media frame, and determine, if the output frame does not fit within the frame budget, second processing parameters based on the frame budget and the first processing parameters;

a processing module configured to process the media frame based on the first processing parameters;

a frame padder configured to pad the processed media frame to generate the output media frame; and

a frame writer configured to provide the output media frame.

9. The device of claim 8 , further comprising:

a media reader configured to receive the frame index referencing media frames presented in the streaming media data.

10. The device of claim 9 , wherein each output media frame has a corresponding frame budget.

11. The device of claim 8 , further comprising:

an output-frame-index generator configured to generate, before the output media frames are generated, the output frame index referencing the output media frames based on the allocated frame budgets and the frame index referencing the plurality of media frames.

12. The device of claim 11 , the output-frame-index generator is further configured to:

update the output frame index based on configuration information of the encoder.

13. The device of claim 8 , further comprising:

a decoder configured to decode the media frame, and obtain information from the decoded media frame to facilitate the processing algorithm module to determine the first processing parameters.

14. The device of claim 8 , the processing algorithm module is further configured to:

determine one or more first quantization parameters for quantizing the media frame.

15. The device of claim 8 , the processing algorithm module is further configured to:

determine one or more second quantization parameters for quantizing the media frame.

16. The device of claim 8 , the processing module is further configured to:

re-processing the media frame based on the second processing parameters such that the re-processed media frame fits within the frame budget.

17. A non-transitory computer readable medium storing instructions that, when executed, cause a computer to perform a method for transcoding streaming video data, the method, the method comprising:

receiving, from a data network, encoded streaming media data including a plurality of media frames and a frame index specifying an original frame size and a byte offset of individual encoded frames of the plurality of media frame;

allocating a frame budget for an output media frame to generate an output frame index, by estimating a frame size of the output media frame based on a respective original frame size in the frame index;

generating the output media frame in real-time by processing the media frame based on first processing parameters;

if the allocated frame budget is greater than a frame size of the processed media frame, padding the processed media frame;

if the allocated frame budget is less than a frame size of the processed media frame, determining second processing parameters based on the frame budget and the first processing parameters, re-processing the media frame based on the second processing parameters and, if the allocated frame budget is greater than a frame size of the re-processed media frame, padding the re-processed media frame; and

providing the output media frame.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2023
From: BYTEMOBILE INNOVATIONS, LLC
To: OPTIMORPHIX, INC.
Reel/Frame 064020/0183 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2022
From: CITRIX SYSTEMS, INC.
To: BYTEMOBILE INNOVATIONS, LLC
Reel/Frame 059087/0052 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2015
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 037289/0606 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2015
From: CITRIX SYSTEMS, INC.
To: BYTEMOBILE, INC.
Reel/Frame 035440/0599 →
RELEASE OF SECURITY INTEREST Recorded Feb 20, 2015
From: PARTNERS FOR GROWTH III, L.P.
To: BYTEMOBILE, INC.
Reel/Frame 034991/0891 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 6, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 031730/0322 →
THIS SUBMISSION IS TO CORRECT THE SPELLING OF THE RECEIVING PARTY (ASSIGNEE)'S STREET NAME IN THE ORIGINAL COVER SHEET RECORDED AT REEL/FRAME 030609/0389. THE ADDRESS NAME SHOULD BE WEST CYPRESS CREEK ROAD. Recorded Sep 17, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 031287/0874 →
MERGER Recorded Jun 13, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 030609/0389 →
SECURITY AGREEMENT Recorded Dec 22, 2011
From: BYTEMOBILE, INC.
To: PARTNERS FOR GROWTH III, L.P.
Reel/Frame 027438/0616 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2009
From: MELNYK, MIGUEL; KIDD, ROBERT; SESTRICH, JOSEPH; TIDEMANN, JEREMY; AYYAR, KARTIK; KOOPMANS, FREDERICK; PENNER, ANDREW
To: BYTEMOBILE, INC.
Reel/Frame 023603/0065 →