IP Library Granted Patent US 7,480,333
Granted Patent B2
US 7,480,333 · App. 12/116,632 · Granted Jan 20, 2009

Method and system for transcoding 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 7,480,333
App. No.
12/116,632
Granted
Jan 20, 2009
Kind
B2
Abstract

A first method of transcoding video data is disclosed that generates a motion vector for a macroblock encoded as a dual prime macro block that has a direct motion vector, and differential motion vector for its two fields respectively. Another method of transcoding includes replacing a skipped P-macroblock that has been used to backward predict a B-Frame with a P-macroblock having a motion vector of zero. Another method of transcoding includes replacing a skipped B-macroblock with a macroblock having a motion vector from a macroblock of the same frame of the skipped B-macroblock that is not co-located.

Claims (49)

1. A method comprising:

receiving a first data stream comprising encoded image data; and

transcoding the first data stream to generate a second data stream, the transcoding comprising:

determining whether the first data stream is characterized by one of:

a skipped P macroblock and a first B-macroblock that is forward predicted from image data associated with an image location of the skipped P-macroblock; and

a skipped B-macroblock;

responsive to the first data stream including the skipped P-macroblock and the first B-macroblock:

encoding a first P-macroblock based on the image data at the image location of the skipped P-macroblock; and

implementing the first P-macroblock in the second data stream in place of the skipped P-macroblock; and

responsive to the first data stream including the skipped B-macroblock:

encoding a second B-macroblock based on a prediction error data set to zero; and

implementing the second B-macroblock in the second data stream in place of the skipped B-macroblock.

2. The method of claim 1 , wherein the first data stream includes the skipped P-macroblock and the first B-macroblock.

3. The method of claim 2 , wherein encoding the first P-macroblock comprises encoding the first P-macroblock with a motion vector value of zero.

4. The method of claim 2 , wherein encoding the first P-macroblock comprises encoding the first P-macroblock based on a second P-macroblock associated with the image location of the skipped P-macroblock.

5. The method of claim 4 , wherein encoding the first P-macroblock based on the second P-macroblock comprises encoding the first P-macroblock based on decoded texture data from the second P-macroblock.

6. The method of claim 2 , wherein encoding the first P-macroblock comprises transcoding the skipped P-macroblock via an open-loop transcoder to generate the first P-macroblock.

7. The method of claim 1 , wherein the first data stream is encoded based on a first protocol and the second data stream is encoded based on a second protocol different than the first protocol.

8. The method of claim 7 , wherein the first protocol comprises an MPEG2 protocol and the second protocol comprises an MPEG4 protocol.

9. The method of claim 1 , wherein the first data stream includes the skipped B-macroblock.

10. The method of claim 9 , wherein encoding the second B-macroblock comprises encoding the second B-macroblock based on a motion vector of a third B-macroblock in the same frame as the skipped B-macroblock.

11. The method of claim 10 , wherein the third B-macroblock is a macroblock to be rendered prior to the second B-macroblock.

12. The method of claim 10 , wherein the third B-macroblock comprises image data to be displayed immediately adjacent to the second B-macroblock.

13. The method of claim 9 , wherein encoding the second B-macroblock comprises encoding the second B-macroblock based on a motion vector of zero responsive to the skipped B-frame being associated with an initial image location of a frame sequence.

14. The method of claim 9 , wherein encoding the second B-macroblock comprises encoding the second B-macroblock via an open-loop transcoder.

15. An electronic device comprising:

a transcoder configured to transcode a first data stream comprising encoded image data to generate a second data stream by:

determining whether the first data stream is characterized by one of:

a skipped P macroblock and a first B-macroblock that is forward predicted from image data associated with an image location of the skipped P-macroblock; and

a skipped B-macroblock;

responsive to the first data stream including the skipped P-macroblock and the first B-macroblock:

encoding a first P-macroblock based on the image data at the image location of the skipped P-macroblock; and

implementing the first P-macroblock in the second data stream in place of the skipped P-macroblock; and

responsive to the first data stream including the skipped B-macroblock:

encoding a second B-macroblock based on a prediction error data set to zero; and

implementing the second B-macroblock in the second data stream in place of the skipped B-macroblock.

16. The electronic device of claim 15 , wherein the first data stream includes the skipped P-macroblock and the first B-macroblock.

17. The electronic device of claim 16 , wherein the transcoder is configured to encode the first P-macroblock by encoding the first P-macroblock with a motion vector value of zero.

18. The electronic device of claim 16 , wherein the transcoder is configured to encode the first P-macroblock based on a second P-macroblock associated with the image location of the skipped P-macroblock.

19. The electronic device of claim 18 , wherein the transcoder is configured to encode the first P-macroblock based on decoded texture data from the second P-macroblock.

20. The electronic device of claim 16 , wherein the transcoder comprises an open-loop transcoder configured to transcode the skipped P-macroblock to generate the first P-macroblock.

21. The electronic device of claim 15 , wherein the first data stream is encoded based on a first protocol and the second data stream is encoded based on a second protocol different than the first protocol.

22. The electronic device of claim 21 , wherein the first protocol comprises an MPEG2 protocol and the second protocol comprises an MPEG4 protocol.

23. The electronic device of claim 15 , wherein the first data stream includes the skipped B-macroblock

24. The electronic device of claim 23 , wherein the transcoder is configured to encode the second B-macroblock based on a motion vector of a third B-macroblock in the same frame as the skipped B-macroblock.

25. The electronic device of claim 24 , wherein the third B-macroblock is a macroblock to be rendered prior to the second B-macroblock.

26. The electronic device of claim 24 , wherein the third B-macroblock comprises image data to be displayed immediately adjacent to the second B-macroblock.

27. The electronic device of claim 23 , wherein the transcoder is configured to encode the second B-macroblock based on a motion vector of zero responsive to the skipped B-frame being associated with an initial image location of a frame sequence.

28. The electronic device of claim 23 , wherein the transcoder comprises an open-loop transcoder configured to encode the second B-macroblock.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2017
From: COMERICA BANK
To: VIXS SYSTEMS, INC.
Reel/Frame 043601/0817 →
SECURITY INTEREST Recorded Jul 18, 2016
From: VIXS SYSTEMS INC.
To: COMERICA BANK
Reel/Frame 039380/0479 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2008
From: RAULT, PATRICK
To: VIXS SYSTEMS, INC.
Reel/Frame 021631/0518 →