IP Library Granted Patent US 9,357,213
Granted Patent B2
US 9,357,213 · App. 13/711,758 · Granted May 31, 2016

High-density quality-adaptive multi-rate transcoder systems and methods

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,357,213
App. No.
13/711,758
Granted
May 31, 2016
Kind
B2
Abstract

The present invention provides methods and systems that create numerous high-quality output streams at different spatial or temporal resolutions from a single input stream. An input stream is transcoded at a first transcoder module to provide N output streams, wherein each of the N output streams comprises different versions of the input stream. Parameters are obtained during transcoding of the input stream and provided to a second transcoder module together with the input stream. The input stream may be transcoded at the second transcoder module to produce M output streams based on the parameters received from the first transcoder module. The parameters received from the first transcoder module may be used to enhance the transcoding at the second transcoder module.

Claims (91)

1. A method for transcoding video streams, comprising:

transcoding an input stream at a first transcoder module to provide N output streams, wherein each of the N output streams comprises different versions of the input stream;

providing parameters obtained during transcoding of the input stream to a second transcoder module together with the input stream; and

transcoding the input stream at the second transcoder module to produce M output streams based on the parameters received from the first transcoder module;

wherein the parameters received from the first transcoder module are used to enhance the transcoding at the second transcoder module.

2. A method in accordance with claim 1 , wherein the transcoding of the input stream at the first transcoder module further comprises:

at least partially decoding the input stream at the first transcoder module.

3. A method in accordance with claim 2 , further comprising:

at least one of storing the input stream in a stream buffer and storing the at least partially decoded input stream in a frame buffer; and

storing the parameters in a memory.

4. A method in accordance with claim 2 , wherein the parameters are provided by:

extracting statistical parameters during at least partial decoding of the input stream.

5. A method in accordance with claim 2 , wherein transcoding the input stream at the first transcoder module further comprises:

re-encoding the at least partially decoded input stream to produce the N output streams;

wherein each of the N-output streams is obtained by re-encoding the input stream at one or more different resolutions and/or in one or more different encoding formats.

6. A method in accordance with claim 5 , wherein the parameters comprise statistical parameters obtained during the at least partial decoding or the re-encoding of the input stream.

7. A method in accordance with claim 2 , wherein the parameters are obtained from at least one of the input stream, the at least partially decoded input stream, and the N output streams.

8. A method in accordance with claim 7 , wherein the N output streams are in a compressed domain.

9. A method in accordance with claim 1 , wherein the parameters comprise respective parameters for each of the N output streams.

10. A method in accordance with claim 1 , wherein the parameters comprise at least one of picture bits, picture quantization factors, motion information, mode decision histograms, spatial activities, temporal activities, resolution histograms, picture distortion, picture type frequencies, structural similarities, grey-level histograms, and picture sample dynamic range.

11. A method in accordance with claim 1 , wherein:

a first subset of the M output streams has identical transcoding attributes as a corresponding subset of the N output streams;

a second subset of the M output streams has different transcoding attributes from any of the N output streams;

the transcoding attributes comprise at least one of resolution, bit-rate, frame-rate, stream format, and picture type assignment.

12. A method in accordance with claim 1 , further comprising:

mapping the parameters from any one of N output streams for use in producing a desired one of the M output streams.

13. A method in accordance with claim 12 , wherein the mapping of the parameters comprises correlating a plurality of macroblock resolutions of the one N output stream to the desired M output stream.

14. A method in accordance with claim 13 , wherein correlating the macroblock resolutions further comprises comparing a ratio of a number of macroblocks between the one N output stream and the desired M output stream.

15. A method for transcoding video streams, comprising:

transcoding an input stream at a first transcoder module to provide N output streams, wherein each of the N output streams comprises different versions of the input stream;

providing parameters obtained during transcoding of the input stream to a second transcoder module together with the input stream;

transcoding the input stream at the second transcoder module to produce M output streams based on the parameters received from the first transcoder module; and

grouping desired M output streams into two or more groups by correlating a macroblock resolution of a selected group member of each group of the desired M output streams with a closest macroblock resolution of at least one of the N output streams;

wherein the parameters received from the first transcoder module are used to enhance the transcoding at the second transcoder module.

16. A method in accordance with claim 15 , wherein:

the at least one N output stream comprises at least one seed stream for the corresponding group of M output streams;

the at least one seed stream, base-band statistics from a decoded version of the at least one seed stream, or the parameters from the at least one seed stream are provided to the second transcoder module for use in producing the M output streams of the corresponding group.

17. A method in accordance with claim 15 , further comprising:

creating sub-groups in each group of M output streams by correlating a number of bits per macroblock from the desired M output streams with a number of bits per macroblock from the N output streams.

18. A method in accordance with claim 15 , further comprising:

determining an optimum N output stream for use as a seed stream from the N output streams by correlating a number of bits per macroblock of the selected group member and a number of bits per macroblock of each of the N output streams; and

at least one of the seed stream, base-band statistics from a decoded version of the seed stream, or the parameters from the seed stream are provided to the second transcoder module for use in producing the M output streams of the corresponding group.

19. A method in accordance with claim 18 , further comprising:

for each of the N output streams that does not meet minimum criteria during the correlating, providing at least one of each such N output stream, base-band statistics from a decoded version of each such N output stream, or parameters from each such N output stream to the second transcoder module for producing an enhanced version of each of such N output streams as a corresponding one of the M output streams.

20. A method in accordance with claim 1 , further comprising:

providing at least one of the N output streams to the second transcoder module to produce enhanced versions of the at least one N output streams as a corresponding at least one of the M output streams.

21. A method in accordance with claim 1 , further comprising:

determining a correlation condition between the N output streams and the desired M output streams;

mapping the parameters from the N output streams for use in the transcoding of the input stream at the second transcoder module to produce the M output streams based on the determined correlation condition.

22. A method for optimizing video quality in a transcoder system, comprising:

providing a first set of parallel transcoder modules;

providing a second set of parallel transcoder modules;

providing an identical input stream to the first set of parallel transcoder modules to provide Y output streams;

determining parameters from the transcoding of the input stream;

providing the Y output streams and the parameters to the second set of parallel transcoder modules to produce X output streams;

wherein the parameters received from the first set of parallel transcoder modules are used to enhance the transcoding at the second set of parallel transcoder modules.

23. A method in accordance with claim 22 , further comprising:

partitioning the Y output streams into a plurality of groups based on a correlation of macroblock resolutions of the Y output streams.

24. A method in accordance with claim 23 , further comprising:

providing each group of the Y output streams and the parameters corresponding to the particular group to a corresponding transcoder module of the second set of parallel transcoder modules based on a correlation of the macroblock resolutions of the group of the Y output streams and the desired macroblock resolution of the X output streams to be produced by the corresponding transcoder module of the second set of transcoder modules.

25. A method in accordance with claim 23 , wherein the correlation of the macroblock resolutions of the Y output streams for the partitioning further comprises, comparing a ratio of macroblocks of the Y output streams.

26. A method in accordance with claim 23 , further comprising:

selecting a seed stream from the Y output streams of each group that has a desired resolution;

using the parameters from the seed stream to enhance the transcoding process at least one of the transcoder modules of the second set of transcoder modules.

27. A method in accordance with claim 26 , wherein the desired resolution is one of:

the largest resolution in the group, or

a centroid of all resolutions in the group.

28. A method in accordance with claim 23 , further comprising:

partitioning each group into sub-groups based on a correlation of the bits per macroblock for each of Y output streams.

29. A method in accordance with claim 28 , further comprising:

selecting a seed stream from the Y output streams of each sub-group that has a desired resolution;

using the parameters from the seed stream to enhance the transcoding process at least one of the transcoder modules of the second set of transcoder modules.

30. A method in accordance with claim 29 , wherein the desired resolution is one of:

the largest resolution in the sub-group, or

a centroid of all resolutions in the sub-group.

31. A method in accordance with claim 22 , further comprising:

determining whether any of the Y output streams is of a lower quality or has a weak macroblock correlation to other of the Y output streams;

transcoding any such Y output streams at least two times using a subset of the transcoder modules of the second set of parallel transcoder modules.

32. A method in accordance with claim 22 , further comprising:

transcoding the input stream or a seed stream chosen from the Y output streams that has a desired resolution at least two times using a subset of the transcoder modules of the second set of parallel transcoder modules.

33. A method in accordance with claim 32 , further comprising:

transcoding the seed stream more times than an output stream that is not associated with the target resolution.

34. A method in accordance with claim 32 , further comprising:

transcoding an output stream that is not associated with the target resolution once.

35. A method in accordance with claim 22 , wherein:

parameters from a first transcoder module of the first set of parallel transcoder modules are provided to at least one other transcoder module of the first set of parallel transcoder modules for use in enhancing the transcoding of the input stream.

36. A system for transcoding video streams, comprising:

at least a first transcoder module and a second transcoder module; wherein:

the first transcoder module is adapted to transcode an input stream to provide N output streams, wherein each output stream comprises a different version of the input stream;

the second transcoder module is adapted to receive the input stream and parameters obtained during transcoding of the input stream at the first transcoder module; and

the second transcoder module is adapted to transcode the input stream to produce M output streams based on the received parameters.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 28, 2020
From: PNC BANK, NATIONAL ASSOCIATION, AS EXISTING AGENT
To: BROADCAST LENDCO, LLC, AS SUCCESSOR AGENT
Reel/Frame 052050/0074 →
SECURITY AGREEMENT Recorded Apr 1, 2015
From: IMAGINE COMMUNICATIONS CORP. (F/K/A HBC SOLUTIONS, INC.)
To: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 035353/0208 →
PATENT COLLATERAL SECURITY AGREEMENT Recorded Mar 27, 2015
From: IMAGINE COMMUNICATIONS CORPORATION (FORMERLY KNOWN AS HBC SOLUTIONS, INC.)
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 035327/0262 →
SECURITY INTEREST Recorded Mar 27, 2015
From: IMAGINE COMMUNICATIONS CORPORATION (FORMERLY KNOWN AS HBC SOLUTIONS, INC.)
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 035275/0228 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2015
From: RGB NETWORKS, INC.
To: IMAGINE COMMUNICATIONS CORP.
Reel/Frame 035071/0354 →
RELEASE OF SECURITY INTEREST Recorded Feb 11, 2015
From: SILICON VALLEY BANK
To: RGB NETWORKS, INC
Reel/Frame 034955/0630 →
SECURITY INTEREST Recorded Aug 3, 2014
From: RGB NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 033463/0440 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2012
From: MOHSENIAN, NADER
To: RGB NETWORKS, INC.
Reel/Frame 029451/0121 →