IP Library › Granted Patent US 8,731,068
Granted Patent B2
US 8,731,068 · App. 13/069,552 · Granted May 20, 2014

Video transcoder with flexible quality and complexity management

Inventors: Denis Vassilevich Parfenov (Moscow, RU); Pavel Aleksandrovich Aliseychik (Moscow, RU); Aleksey Alexandrovich Letunovskiy (Tokarevka, RU); Alexander Markovic (Media, PA); Ivan Leonidovich Mazurenko (Khimki, RU); Denis Vladimirovich Parkhomenko (Moscow, RU)
Assignee: LSI Corporation
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 8,731,068
App. No.
13/069,552
Granted
May 20, 2014
Kind
B2
Abstract

A video transcoder for converting a compressed input video bit-stream having one spatial resolution into a compressed output video bit-stream having a different spatial resolution in a manner that enables the transcoder to dynamically change the amount of computational resources allocated to the conversion process. In one embodiment, the video transcoder has a plurality of configurable processing paths whose configuration determines the amount of allocated computational resources. Exemplary processing-path configuration changes may include, but are not limited to engaging or disengaging a processing path, redirecting a data flow from flowing through one processing path to flowing through another processing path, and attaching or detaching one or more processing modules to an engaged processing path. The capability to make these and other configuration changes enables the video transcoder to adjust the computational complexity and picture quality on the fly, without interrupting the video sequence in the output video bit-stream.

Claims (71)

1. A method of resizing digital video, the method comprising:

processing a first compressed video bit-stream using a plurality of processing modules to generate a second compressed video bit-stream, wherein:

the first compressed video bit-stream has a first spatial resolution; and

the second compressed video bit-stream has a second spatial resolution, the second spatial resolution being different from the first spatial resolution; and

changing a configuration of the plurality of processing modules to change an amount of computational resources allocated to said processing; and

wherein the step of processing comprises:

partially decoding the first compressed video bit-stream to generate partially decoded video data;

demultiplexing the partially decoded video data to generate first data segments for intra-mode resizing in a first resizer, second data segments for mixed-mode resizing in a second resizer, and third data segments for inter-mode resizing in a third resizer, said first, second, and third resizers being configured to operate in parallel with one another; and

resizing the first, second, and third data segments in parallel using the first, second, and third resizers, respectively, wherein:

the first, second, and third data segments represent respective image portions at the first spatial resolution; and

the resizing produces data segments that represent said respective image portions at the second spatial resolution.

2. The method of claim 1 , wherein, while said changing is being performed, said processing continuously produces, from a sequence of video frames of the first compressed video bit-stream, a corresponding sequence of video frames for the second compressed video bit-stream.

3. The method of claim 1 , wherein no incoming video frame is being skipped, discarded, or dropped from said processing due to the change in the configuration of the plurality of processing modules.

4. The method of claim 1 , wherein the step of changing comprises:

changing data flow from flowing through a first processing module to flowing through a different second processing module, wherein data does not flow through the first processing module after said change.

5. The method of claim 1 , wherein the step of changing comprises one or both of:

changing a size of a buffer configured to store reference blocks for inter-prediction coding and/or intra-prediction coding at the second spatial resolution; and

engaging or disengaging one or more of a deblocking filter, a motion-estimation engine, and a motion-compensation module, each configured to operate on blocks having the second spatial resolution.

6. The method of claim 1 , wherein:

each of the second data segments comprises at least one intra-predicted block and at least one inter-predicted block; and

the resizing of each of the second data segments in the second resizer produces a respective resized data segment that is generated using either intra-prediction coding or inter-prediction coding, but not both.

7. The method of claim 1 , wherein the step of processing further comprises:

removing intra-prediction coding and inter-prediction coding from resized data segments to generate a first set of reference blocks having the second spatial resolution;

storing said first set in a first buffer;

subjecting said first set to feedback-loop processing to generate a corresponding second set of reference blocks having the second spatial resolution; and

storing said second set in a second buffer.

8. The method of claim 7 , wherein:

the first set comprises a first reference block;

the second set comprises a second reference block; and

the first block and the second block correspond to a same image portion at the second spatial resolution, but have different respective levels of residual errors.

9. The method of claim 7 , wherein, for each block from the first set, the second set has a corresponding block, with said two blocks being approximations of each other characterized by different respective levels of residual errors.

10. The method of claim 7 , wherein:

said feedback-loop processing comprises two or more feedback-loop cycles, each comprising motion-vector refinement to reduce residual errors corresponding to the second set; and

the second set is updated in the second buffer after each feedback-loop cycle.

11. The method of claim 7 , wherein said feedback-loop processing comprises a quantization operation and an inverse-quantization operation, but no discrete-cosine or integer transform and no inverse discrete-cosine or integer transform.

12. The method of claim 7 , wherein said feedback-loop processing comprises (i) a quantization operation and an inverse-quantization operation and (ii) a discrete-cosine or integer transform and an inverse discrete-cosine or integer transform.

13. The method of claim 1 , wherein the mixed-mode resizing in the second resizer comprises generating, from a respective one of the second data segments, a fourth data segment of compressed video data, wherein:

the respective one of the second data segments represents an image portion at the first spatial resolution;

the fourth data segment represents said image portion at the second spatial resolution;

the respective one of the second data segments comprises at least one intra-predicted block and at least one inter-predicted block; and

the fourth data segment comprises either one or more intra-predicted blocks or one or more inter-predicted blocks, but not both.

14. The method of claim 13 , wherein the mixed-mode resizing in the second resizer further comprises:

determining a coding type for the fourth data segment based on one or more reference blocks, one or more intra modes, and one or more motion vectors identified by the respective one of the second data segments;

selecting a resizer from a bank of resizers based on one or more of (i) the determined coding type, (ii) relative geometric positions of inter- and intra-predicted blocks in an image portion represented by the respective one of the second data segments, (iii) an intra mode predicted for the fourth data segment, and (iv) a motion-vector estimate for the fourth data segment, wherein the second resizer includes said bank of resizers; and

processing the respective one of the second data segments in the selected resizer of the bank of resizers to generate the fourth data segment.

15. The method of claim 14 , wherein different resizers in the bank of resizers differ from one another by at least one of (i) a corresponding nominal range, set, or ensemble of intra modes and (ii) a corresponding nominal range, set, or ensemble of motion vectors.

16. The method of claim 1 , further comprising:

receiving the first compressed video bit-stream from a remote encoder via a Network Abstraction Layer; and

applying the second compressed video bit-stream to the Network Abstraction Layer for being transported to a remote decoder.

17. The method of claim 1 , wherein the step of processing comprises one or both of:

deleting one or more peripheral rows and/or columns of pixels in a picture corresponding to the first compressed video bit-stream; and

inserting one or more empty peripheral rows and/or columns of pixels in a picture corresponding to the second compressed video bit-stream.

18. The method of claim 1 , wherein the method supports an H.264 standard.

19. An apparatus, comprising:

a decoding and resizing kernel configured to partially decompress a first compressed video bit-stream to generate partially decompressed video data;

a plurality of processing modules configured to process the partially decompressed video data;

an encoding kernel configured to compress the partially decompressed data that have been processed by said plurality of processing modules to generate a second compressed video bit-stream, wherein:

the first compressed video bit-stream has a first spatial resolution;

the second compressed video bit-stream has a second spatial resolution, the second spatial resolution being different from the first spatial resolution; and

a controller operatively coupled to the plurality of processing modules and adapted to change a configuration of said plurality of processing modules in response to a request to change an amount of computational resources allocated by the apparatus to a process of generating the second compressed video bit-stream from the first compressed video bit-stream; and

wherein the decoding and resizing kernel comprises a first resizer, a second resizer, and a third resizer configured to operate in parallel with one another; and

wherein the decoding and resizing kernel and the plurality of processing modules are further configured to:

partially decode the first compressed video bit-stream to generate partially decoded video data;

demultiplex the partially decoded video data to generate first data segments for intra-mode resizing in the first resizer, second data segments for mixed-mode resizing in the second resizer, and third data segments for inter-mode resizing in the third resizer; and

resize the first, second, and third data segments in parallel using the first, second, and third resizers, respectively, wherein:

the first, second, and third data segments represent respective image portions at the first spatial resolution; and

the resizing produces data segments that represent said respective image portions at the second spatial resolution.

20. The apparatus of claim 19 , wherein the decoding and resizing kernel comprises first, second, and third parallel resizing channels, wherein:

the first resizing channel comprises an intra-cache memory and the first resizer, wherein the intra-cache memory is configured to temporarily store the first data segments prior to providing said temporarily stored first data segments to the first resizer for said intra-mode resizing therein;

the third resizing channel comprises an inter-cache memory and the third resizer, wherein the inter-cache memory is configured to temporarily store the third data segments prior to providing said temporarily stored third data segments to the third resizer for said inter-mode resizing therein; and

the second resizing channel comprises the second resizer, wherein the second resizer is configured to resize each of the second data segments using either intra-prediction coding or inter-prediction coding, but not both, with a respective one of the intra-prediction coding or inter-prediction coding selected for each of the second data segments based on intra-mode residuals received from the intra-cache memory and inter-mode residuals received from the inter-cache memory.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 049248/0558 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047351/0384 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0910 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2012
From: LEE, CHUN D.; HOLLAND, CHARLES S.
To: EQUISTAR CHEMICALS, LP
Reel/Frame 028417/0646 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2011
From: PARFENOV, DENIS VASSILEVICH; ALISEYCHIK, PAVEL ALEKSANDROVICH; LETUNOVSKIY, ALEKSEY ALEXANDROVICH; MARKOVIC, ALEXANDER; MAZURENKO, IVAN LEONIDOVICH; PARKHOMENKO, DENIS VLADIMIROVICH
To: LSI CORPORATION
Reel/Frame 026003/0474 →
Priority Claims (1)
RU 2010135495 · Aug 24, 2010 · national
Continuity (1)
Related Publication 20120051440A1 · Mar 1, 2012