IP Library Granted Patent US 9,532,080
Granted Patent B2
US 9,532,080 · App. 13/485,609 · Granted Dec 27, 2016

Systems and methods for the reuse of encoding information in encoding alternative streams of video data

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,532,080
App. No.
13/485,609
Granted
Dec 27, 2016
Kind
B2
Abstract

Systems and methods for reusing encoding information in the encoding of alternative streams of video data in accordance with embodiments of the invention are disclosed. In one embodiment of the invention, encoding multimedia content for use in adaptive streaming systems, includes selecting a first encoding level from a plurality of encoding levels using a media server, determining encoding information for a first stream of video data using the first encoding level and the media server, encoding the first stream of video data using the media server, where the first stream of video data includes a first resolution and a first bitrate, selecting a second encoding level from the plurality of encoding levels using the media server, and encoding a second stream of video data using the encoding information and the media server, where the second stream of video data includes a second resolution and a second bitrate.

Claims (47)

1. A method for encoding multimedia content for use in adaptive streaming systems, comprising:

selecting a first encoding level from a plurality of encoding levels using a media server;

determining encoding information for a first stream of video data using the first encoding level and the media server, wherein determining encoding information comprises determining encoding information selected from the group consisting of estimating motion estimation results, selecting weighted prediction results, and determining scene changes;

encoding the first stream of video data using the encoding information and the media server, where the first stream of video data includes a first resolution and a first bitrate;

selecting a second encoding level from the plurality of encoding levels using the media server; and

encoding a second stream of video data reusing the encoding information and the media server, where the second stream of video data includes a second resolution and a second bitrate.

2. The method of claim 1 , wherein the first resolution and the second resolution are the same.

3. The method of claim 2 , wherein the first bitrate is lower than the second bitrate.

4. The method of claim 2 , wherein the first bitrate is greater than the second bitrate.

5. The method of claim 1 , wherein the first resolution is lower than the second resolution.

6. The method of claim 1 , wherein the first resolution is higher than the second resolution.

7. The method of claim 1 , further comprising:

determining motion estimations for the first stream of video data using the first encoding level and the media server; and

scaling the determined motion estimation results for the second stream of video data using the second encoding level and the media server.

8. The method of claim 7 , wherein determining motion estimation includes hierarchical motion estimations using the media server.

9. The method of claim 1 , further comprising storing the first stream of video data and the second stream of video data in a container file using the media server.

10. The method of claim 9 , wherein the container file is a Matroska container file.

11. The method of claim 1 , further comprising storing the first stream of video data and the second stream of video data in separate container files using the media server.

12. The method of claim 1 , wherein encoding the first stream of video data and encoding the second stream of video data utilizes scalable video coding.

13. A media server, comprising:

memory configured to store multimedia content, where the multimedia content includes a source video; and

a processor;

wherein the processor is configured by a media encoder application to:

select a first encoding level from a plurality of encoding levels;

determine encoding information for a first stream of video data using the first encoding level wherein determining encoding information comprises determining encoding information selected from the group consisting of estimating motion estimation results, selecting weighted prediction results, and determining scene changes;

encode the first stream of video data using the encoding information, where the first stream of video data includes a first resolution and a first bitrate;

select a second encoding level from the plurality of encoding levels; and

encode a second stream of video data reusing the encoding information, where the second stream of video data includes a second resolution and a second bitrate.

14. The media server of claim 13 , wherein the first resolution and the second resolution are the same.

15. The media server of claim 14 , wherein the first bitrate is lower than the second bitrate.

16. The media server of claim 14 , wherein the first bitrate is greater than the second bitrate.

17. The media server of claim 13 , wherein the first resolution is lower than the second resolution.

18. The media server of claim 13 , wherein the first resolution is higher than the second resolution.

19. The media server of claim 13 , wherein the processor is further configured to:

determine motion estimations for the first stream of video data using the first encoding level; and

scale the determined motion estimation results for the second stream of video data using the second encoding level.

20. The media server of claim 19 , wherein the determined motion estimation includes hierarchical motion estimations.

21. The media server of claim 13 , wherein the processor is further configured to store the first stream of video data and the second stream of video data in a container file.

22. The media server of claim 21 , wherein the container file is a Matroska container file.

23. The media server of claim 13 , wherein the processor is further configured to store the first stream of video data and the second stream of video data in separate container files.

24. The media server of claim 13 , wherein the first stream of video data and the second stream of video data are encoded using scalable video coding.

25. A non-transitory machine readable medium containing processor instructions, where execution of the instructions by a processor causes the processor to perform a process comprising:

selecting a first encoding level from a plurality of encoding levels;

determining encoding information for a first stream of video data using the first encoding level, wherein determining encoding information comprises determining encoding information selected from the group consisting of: estimating motion estimation results, selecting weighted prediction results, and determining scene changes;

encoding the first stream of video data using the encoding information, where the first stream of video data includes a first resolution and a first bitrate;

selecting a second encoding level from the plurality of encoding levels; and

encoding a second stream of video data reusing the encoding information, where the second stream of video data includes a second resolution and a second bitrate.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2021
From: SONIC IP, LLC
To: NLD HOLDINGS I, LLC
Reel/Frame 055238/0786 →
ENTITY CONVERSION Recorded Jan 22, 2021
From: SONIC IP, INC.
To: SONIC IP, LLC
Reel/Frame 055086/0960 →
ENTITY CONVERSION Recorded Jan 22, 2021
From: SONIC IP, LLC
To: SONIC IP, LLC
Reel/Frame 055089/0821 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2013
From: DIVX, LLC
To: SONIC IP, INC.
Reel/Frame 031713/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2012
From: ZURPAL, SERGEY; VOLNIN, LEONID
To: DIVX, LLC
Reel/Frame 028549/0314 →