IP Library Granted Patent US 7,133,452
Granted Patent B1
US 7,133,452 · App. 10/375,725 · Granted Nov 7, 2006

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,133,452
App. No.
10/375,725
Granted
Nov 7, 2006
Kind
B1
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 (103)

1. A method of transcoding video data in a lossless manner, the method comprising:

receiving a first data stream having a first protocol;

determining if a first condition exists, wherein the first condition exists when the first data stream includes a first macroblock comprising a first motion vector and a differential motion vector;

when the first condition is determined to exist:

determining a second motion vector based upon adding the first motion vector and the differential motion vector;

encoding a second macroblock based upon the second motion vector; and

providing the second macroblock to a second data stream in place of the first macroblock, wherein the second macroblock is based on a second protocol different than the first protocol.

2. The method of claim 1 further comprising:

determining if a second condition exists, wherein the second condition exists when the first data stream includes a skipped P-macroblock and a first B-macroblock is forward predicted from image data associated with the skipped P-macroblock location;

when the second condition is determined to exist:

encoding a first P-macroblock based on a decoded image data of the first data stream representing an image for display at an image location of the skipped P-macroblock; and

providing the first P-macroblock to the second data stream to replace the skipped P-macroblock.

3. The method of claim 2 further comprising:

encoding the first P-macroblock based on a motion vector value of zero.

4. The method of claim 3 further comprising:

determining if a third condition exists, wherein the third condition exists when the first data stream includes a skipped B-macroblock;

when the third condition is determined to exist:

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

providing the first B-macroblock to the second data stream to replace the skipped B-macroblock.

5. The method of claim 3 further comprising:

determining if a third condition exists, wherein the third condition exists when the first data stream includes a skipped B-macroblock;

when the third condition is determined to exist:

encoding a first B-macroblock based on a motion vector of a second B-macroblock in the same frame as the skipped B-macroblock; and

providing the first B-macroblock to the second data stream to replace the skipped B-macroblock.

6. The method of claim 2 further comprising:

determining if a third condition exists, wherein the third condition exists when the first data stream includes a skipped B-macroblock;

when the third condition is determined to exist:

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

providing the first B-macroblock to the second data stream to replace the skipped B-macroblock.

7. The method of claim 6 further comprising:

encoding the first B-macroblock based on a motion vector of a second B-macroblock in the same frame as the skipped B-macroblock.

8. The method of claim 7 , wherein the second B-macroblock is a macroblock to be rendered prior to the first B-macroblock.

9. The method of claim 8 , wherein the third B-macroblock comprises data to be displayed immediately adjacent to the first B-macroblock.

10. The method of claim 2 further comprising:

determining if a third condition exists, wherein the third condition exists when the first data stream includes a skipped B-macroblock;

when the third condition is determined to exist:

encoding a second B-macroblock based on a motion vector of a third B-macroblock in the same frame as the skipped B-macroblock; and

providing the second B-macroblock to the second data stream to replace the skipped B-macroblock.

11. The method of claim 1 further comprising:

determining if a second condition exists, wherein the second condition exists when the first data stream includes a skipped P-macroblock wherein a first B-macroblock is forward predicted from image data associated with the skipped P-macroblock location;

when the second condition is determined to exist:

encoding a first P-macroblock based upon a motion vector value of zero; and

providing the first P-macroblock to the second data stream to replace the skipped P-macroblock.

12. The method of claim 1 further comprising:

determining if a second condition exists, wherein the second condition exists when the first data stream includes a skipped B-macroblock;

when the second condition is determined to exist:

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

providing the first B-macroblock to the second data stream to replace the skipped B-macroblock.

13. The method of claim 12 further comprising:

encoding the first B-macroblock based on a motion vector of a second B-macroblock in the same frame as the skipped B-macroblock.

14. The method of claim 13 , wherein the second B-macroblock is a macroblock to be rendered prior to the first B-macroblock.

15. The method of claim 14 wherein the second B-macroblock comprises data to be displayed immediately adjacent to the second B-macroblock.

16. The method of claim 1 further comprising:

determining if a second condition exists, wherein the second condition exists when the first data stream includes a skipped B-macroblock;

when the second condition is determined to exist:

encoding a first B-macroblock based on a motion vector of a second B-macroblock in the same flame as the skipped B-macroblock; and

providing the first B-macroblock to the second data stream to replace the skipped B-macroblock.

17. A method of transcoding video data in a lossless manner, the method comprising:

receiving a first data stream having a first protocol;

determining if a first condition exists, wherein the first condition exists when the first data stream includes a skipped B-macroblock vector;

when the first condition is determined to exist:

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

providing the first B-macroblock to a second data stream to replace the skipped B-macroblock, wherein the second macroblock is based on a second protocol different than the first protocol.

18. The method of claim 17 further comprising:

determining if a second condition exists, wherein the second condition exists when the first data stream includes a skipped P-macroblock wherein a second B-macroblock is forward predicted from image data associated with the skipped P-macroblock location;

when the second condition is determined to exist:

encoding a first P-macroblock based on a decoded image data of the first data stream representing an image for display at an image location of the skipped P-macroblock; and

providing the first P-macroblock to the second data stream to replace the skipped P-macroblock.

19. The method of claim 18 further comprising:

encoding the first P-macroblock based on a motion vector value of zero.

20. The method of claim 17 further comprising:

determining if a second condition exists, wherein the second condition exists when the first data stream includes a skipped P-macroblock wherein a second B-macroblock is forward predicted from image data associated with the skipped P-macroblock location;

when the second condition is determined to exist:

encoding a first P-macroblock based on a motion vector value of zero; and

providing the first P-macroblock to the second data stream to replace the skipped P-macroblock.

21. A method of transcoding video data in a lossless manner, the method comprising:

receiving a first data stream having a first protocol;

determining if a first condition exists, wherein the first condition exists when the first data stream includes a skipped P-macroblock wherein a first B-macroblock is forward predicted from image data associated with the skipped P-macroblock location;

when the first condition is determined to exist:

encoding a first P-macroblock based on a decoded image data of the first data stream representing an image for display at an image location of the skipped P-macroblock; and

providing the first P-macroblock to a second data stream to replace the skipped P-macroblock, wherein the second macroblock is based on a second protocol different than the first protocol.

22. A system comprising:

means for receiving a first data stream having a first protocol;

means for determining if a first condition exists, wherein the first condition exists when the first data stream includes a first macroblock comprising a first motion vector and a differential motion vector;

when the first condition is determined to exist:

means for determining a second motion vector based upon adding the first motion vector and the differential motion vector;

means for encoding a second macroblock based upon the second motion vector; and

means for providing the second macroblock to a second data stream in place of the first macroblock wherein the second macroblock is based on a second protocol different than the first protocol.

23. The system of claim 22 , further comprising:

means for determining if a second condition exists, wherein the second condition exists when the first data stream includes a skipped P-macroblock and a first B-macroblock is forward predicted from image data associated with the skipped P-macroblock location;

when the second condition is determined to exist:

means for encoding a first P-macroblock based on a decoded image data of the first data stream representing an image for display at an image location of the skipped P-macroblock; and

means for providing the first P-macroblock to the second data stream to replace the skipped P-macroblock.

24. The system of claim 23 further comprising:

means for determining if a third condition exists, wherein the third condition exists when the first data stream includes a skipped B-macroblock;

when the third condition is determined to exist:

means for encoding a first B-macroblock based on a prediction error data set to zero; and

means for providing the first B-macroblock to the second data stream to replace the skipped B-macroblock.

25. The system of claim 23 further comprising:

means for determining if a third condition exists, wherein the third condition exists when the first data stream includes a skipped B-macroblock;

when the third condition is determined to exist:

means for encoding a first B-macroblock based on a motion vector of a second B-macroblock in the same frame as the skipped B-macroblock; and

means for providing the first B-macroblock to the second data stream to replace the skipped B-macroblock.

Assignments (1)
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2017
From: COMERICA BANK
To: VIXS SYSTEMS, INC.
Reel/Frame 043601/0817 →