IP Library Granted Patent US 8,588,300
Granted Patent B1
US 8,588,300 · App. 13/450,307 · Granted Nov 19, 2013

Efficient transcoding between formats using macroblock buffer

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,588,300
App. No.
13/450,307
Granted
Nov 19, 2013
Kind
B1
Abstract

Transcoder chip having a buffer for temporarily storing decoded macroblocks and compressed domain parameters. A video decoding module of the transcoding chip decodes and stores the decoded macroblocks in the buffer in a first sequence. The video encoding module then reads the data from the buffer in a second sequence different from the first sequence to encode the macroblocks in a different format. The buffer can also be used for deblocking the macroblocks and for filtering motion vectors. By using the buffer, data traffic between the transcoding chip and external memory is reduced, increasing the speed for transcoding a video sequence from one format to another.

Claims (30)

1. A system for processing a video sequence, comprising:

a memory module configured to receive macroblocks in a frame or field of a first video sequence in a first format, the memory module configured to simultaneously store a subset of the received macroblocks fewer than all macroblocks in the frame or field; and

a video encoding module coupled to the memory module, the video encoding module configured to retrieve the stored macroblocks from the memory module in a second sequence, the video encoding module further configured to encode the retrieved macroblocks into a frame or field of a second video sequence in a second format.

2. The system of claim 1 , wherein the subset of the received macroblocks is three rows of the received macroblocks.

3. The system of claim 2 , wherein four rows of macroblocks in the frame or field of the first video sequence are processed by interleaving storing of the decoded macroblocks to the memory module and retrieving of the stored macroblocks from the memory module using a look-up table.

4. The system of claim 1 , further comprising a video processing module coupled to the memory module, wherein the video processing module is configured to process the frame or field of the first video sequence for storing in the memory module.

5. The system of claim 4 , wherein the processing of the frame or the field of the first video sequence comprises decoding of the frame or the field of the first video sequence to obtain the macroblocks.

6. The system of claim 4 , wherein the processing of the frame or the field of the first video sequence comprises performing filtering of motion vectors of the macroblocks in horizontal and vertical direction.

7. The system of claim 4 , wherein the processing of the frame or the field of the first video sequence comprises deblocking of the macroblocks.

8. The system of claim 1 , wherein the first format uses a Macroblock-Adaptive Frame/Field (MBAFF) coding sequence, and the second format uses a non-MBAFF coding sequence.

9. The system of claim 1 , wherein the first format uses a non Macroblock-Adaptive Frame/Field (MBAFF) coding sequence, and the second format uses a MBAFF coding sequence.

10. A method for processing a video sequence, comprising:

receiving, at a memory module, macroblocks in a frame or field of a first video sequence in a first format;

storing simultaneously in the memory module a subset of the received macroblocks fewer than all macroblocks in the frame or field;

retrieving, at a video encoding module, the stored macroblocks from the memory module in a second sequence; and

encoding the retrieved macroblocks into a frame or field of a second video sequence in a second format.

11. The method of claim 10 , wherein the subset of the received macroblocks is three rows of the macroblocks in the frame or the field.

12. The method of claim 11 , wherein four rows of macroblocks are processed by interleaving storing of the macroblocks to the memory module and reading of the stored macroblocks from the memory module using a look-up table.

13. The method of claim 10 , further comprising processing the frame or field of the first video sequence for storing in the memory module.

14. The method of claim 13 , wherein the processing of the frame or the field of the first video sequence comprises decoding of the frame or the field of the first video sequence to obtain the macroblocks.

15. The method of claim 13 , wherein the processing of the frame or the field of the first video sequence comprises performing filtering of motion vectors of the macroblocks in horizontal and vertical direction.

16. The method of claim 13 , wherein the processing of the frame or the field of the first video sequence comprises deblocking of the macroblocks.

17. The method of claim 10 , wherein the first format uses a Macroblock-Adaptive Frame/Field (MBAFF) coding sequence, and the second format uses a non-MBAFF coding sequence.

18. The method of claim 10 , wherein the first format uses a non Macroblock-Adaptive Frame/Field (MBAFF) coding sequence, and the second format uses a MBAFF coding sequence.

19. A non-transitory computer readable storage medium structured to store instructions executable by a processing system, the instructions when executed cause the processing system to:

receive, at a memory module, macroblocks in a frame or field of a first video sequence in a first format;

store simultaneously in the memory module a subset of the received macroblocks;

retrieve, at a video encoding module, the stored macroblocks from the memory module in a second sequence fewer than all macroblocks in the frame or field; and

encode the retrieved macroblocks into a frame or field of a second video sequence in a second format.

20. The computer-readable storage medium of claim 19 , wherein the subset of the received macroblocks is three rows of the macroblocks in the frame or the field.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE LISTED CHANGE OF NAME SHOULD BE MERGER AND CHANGE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0180. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 12, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 041354/0148 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040652/0180 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
CHANGE OF NAME Recorded Jan 27, 2015
From: ZENVERGE, INC.
To: ZENVERGE, LLC
Reel/Frame 034817/0375 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: ZENVERGE LLC
To: FREESCALE SEMICONDUCTOR INC.
Reel/Frame 034766/0476 →