IP Library Granted Patent US 7,346,111
Granted Patent B2
US 7,346,111 · App. 10/732,135 · Granted Mar 18, 2008

Co-located motion vector storage

Assignee: LSI Logic 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 7,346,111
App. No.
10/732,135
Granted
Mar 18, 2008
Kind
B2
Abstract

A method for processing a video bitstream is disclosed. The method generally includes the steps of (A) determining co-located motion information for a plurality of co-located sub-blocks in a co-located macroblock of the video bitstream, (B) storing the co-located motion information for (i) at least a first three of the co-located sub-blocks along a left side of the co-located macroblock, (ii) at least a second three of the co-located sub-blocks along a right side of the co-located macroblock and (iii) less than all of the co-located sub-blocks and (C) inferring current motion information for a current macroblock co-located in a different picture from the co-located macroblock using the co-located motion information that was stored.

Claims (70)

1. A method for processing a video bitstream, comprising the steps of:

(A) determining co-located motion information of a plurality of co-located sub-blocks in a co-located macroblock of said video bitstream;

(B) storing said co-located motion information of (i) at least a first three of said co-located sub-blocks along a left side of said co-located macroblock, (ii) at least a second three of said co-located sub-blocks along a right side of said co-located macroblock and (iii) less than all of said co-located sub-blocks;

(C) inferring current motion information of a current macroblock co-located in a different picture from said co-located macroblock using said co-located motion information that was stored, wherein said current motion information is inferred without measuring an inter-picture difference; and

(D) generating a processed signal by one of (i) compressing said video bitstream using said current motion information and (ii) decompressing said video bitstream using said current motion information.

2. The method according to claim 1 , wherein (i) said first three co-located sub-blocks comprise a sub-block number 0 , a sub-block number 8 and a sub-block number 10 and (ii) said second three co-located sub-blocks comprise a sub-block number 5 , a sub-block number 13 and a sub-block number 15 per an H.264 numbering.

3. The method according to claim 1 , wherein step (B) comprises the sub-steps of:

storing said co-located motion information of at least a first four of said co-located sub-blocks along said left side; and

storing said co-located motion information of at least a second four of said co-located sub-blocks along said right side.

4. The method according to claim 3 , wherein said first four co-located sub-blocks comprise a sub-block number 0 , a sub-block number 2 , a sub-block number 8 and a sub-block number 10 of said co-located macroblock per an H.264 numbering.

5. The method according to claim 3 , wherein said second four co-located sub-blocks comprise a sub-block number 5 , a sub-block number 7 , a sub-block number 13 and a sub-block number 15 of said co-located macroblock per an H.264 numbering.

6. The method according to claim 1 , wherein step (C) comprises the sub-steps of:

inferring a first portion of said current motion information of a current sub-block number 10 of an even-macroblock row frame macroblock from a first portion of said co-located motion information of a co-located sub-block number 2 of said co-located macroblock per an H.264 numbering; and

inferring a second portion of said current motion information of a current sub-block number 0 of an odd-macroblock row frame macroblock in said current macroblock from a second portion of said co-located motion information of a co-located sub-block number 8 of said co-located macroblock per said H.264 numbering.

7. The method according to claim 1 , wherein step (C) comprises the sub-steps of:

inferring a first portion of said current motion information of a current sub-block number 15 of an even-macroblock row macroblock from a first portion of said co-located motion information of a co-located sub-block number 7 of said co-located macroblock per an H.264 numbering; and

inferring a second portion of said current motion information of a current sub-block number 5 of an odd-macroblock row frame macroblock in said current macroblock from a second portion of said co-located motion information of a co-located sub-block number 13 of said co-located macroblock per said H.264 numbering.

8. A method for processing a video bitstream, comprising the steps of:

(A) determining co-located motion information of a plurality of co-located sub-blocks in a co-located macroblock of said video, said co-located macroblock comprising a frame macroblock in an adaptive field/frame picture while in a first mode and a field macroblock while in a second mode;

(B) storing said co-located motion information of between at least six and less than all of said co-located sub-blocks;

(C) inferring current motion information of a current macroblock co-located in a different picture from said co-located macroblock using said co-located motion information that was stored, wherein said current motion information is inferred without measuring an inter-picture difference; and

(D) generating a processed signal by one of (i) compressing said video bitstream using said current motion information and (ii) decompressing said video bitstream using said current motion information.

9. The method according to claim 8 , wherein said co-located macroblock comprises said field macroblock.

10. The method according to claim 9 , wherein step (B) comprises the sub-step of:

storing said co-located motion information of not more than eight of said co-located sub-blocks.

11. The method according to claim 8 , wherein said co-located macroblock comprises two frame macroblocks.

12. The method according to claim 11 , wherein step (B) comprises the sub-step of:

storing said co-located motion information of not more than ten of said co-located sub-blocks between said two frame macroblocks.

13. An apparatus comprising:

a memory; and

a circuit configured to (i) determine co-located motion information of a plurality of co-located sub-blocks in a co-located macroblock of a video bitstream, (ii) store said co-located motion information of (a) at least three of said co-located sub-blocks along a left side of said co-located macroblock, (b) at least three of said co-located sub-blocks along a right side of said co-located macroblock and (c) less than all of said co-located sub-blocks in said memory and (iii) infer current motion information of a current macroblock co-located in a different picture from said co-located macroblock using said co-located motion information stored in said memory, wherein said current motion information is inferred without measuring an inter-picture difference.

14. The apparatus according to claim 13 , wherein said co-located macroblock comprises two field macroblocks.

15. The apparatus according to claim 14 , wherein said current macroblock comprises two frame macroblocks arranged vertically.

16. The apparatus according to claim 13 , wherein said current motion information of a first half of said current macroblock is inferred only from said co-located motion information of a first frame macroblock of said co-located macroblock.

17. The apparatus according to claim 16 , wherein said current motion information of a second half of said current macroblock is inferred only from said co-located motion information of a second frame macroblock of said co-located macroblock.

18. An apparatus comprising:

a memory; and

a circuit configured to (i) determine co-located motion information of a plurality of co-located sub-blocks in a co-located macroblock of a video bitstream, said co-located macroblock comprising a frame macroblock in an adaptive field/frame picture while in a first mode and a field macroblock while in a second mode, (ii) store said co-located motion information of between at least six and less than all of said co-located sub-blocks in said memory and (iii) infer a plurality of current motion information of a current macroblock co-located in a different picture from said co-located macroblock using said co-located motion information stored in said memory, wherein said current motion information is inferred without measuring an inter-picture difference.

19. The apparatus according to claim 18 , wherein said co-located macroblock comprises said field macroblock.

20. The apparatus according to claim 19 , wherein said circuit is further configured to use said co-location motion information from only four of said co-located sub-blocks.

21. The apparatus according to claim 18 , wherein said co-located macroblock comprises two frame macroblocks arranged vertically.

22. The apparatus according to claim 21 , wherein said circuit is further configured to infer said current motion information of each quadrant of said current macroblock from said co-located motion information in a corresponding quadrant of said co-located macroblock.

23. A method for processing a video bitstream, comprising the steps of:

(A) determining co-located motion information for a plurality of co-located sub-blocks in a co-located macroblock of said video bitstream;

(B) storing said co-located motion information for (i) at least a first three of said co-located sub-blocks along a left side of said co-located macroblock, (ii) at least a second three of said co-located sub-blocks along a right side of said co-located macroblock and (iii) less than all of said co-located sub-blocks;

(C) inferring current motion information for a current macroblock co-located in a different picture from said co-located macroblock using said co-located motion information that was stored; and

(D) generating a processed signal by one of (i) compressing said video bitstream using said current motion information and (ii) decompressing said video bitstream using said current motion information, wherein:

(i) step (B) comprises the sub-steps of

storing said co-located motion information of at least a first four of said co-located sub-blocks along said left side, and

storing said co-located motion information of at least a second four of said co-located sub-blocks along said right side;

(ii) said first four co-located sub-blocks comprise a sub-block number 0 , a sub-block number 2 , a sub-block number 8 and a sub-block number 10 of said co-located macroblock per an H.264 standard for numbering; and

(iii) step (C) comprises the sub-steps of:

inferring a first portion of said current motion information for a sub-block number 0 of an even-macroblock row frame macroblock in said current macroblock from a first portion of said co-located motion information for said sub-block number 0 of said co-located macroblock,

inferring a second portion of said current motion information for a sub-block number 10 of said even-macroblock row frame macroblock from a second portion of said co-located motion information for said sub-block number 2 of said co-located macroblock,

inferring a third portion of said current motion information for a sub-block number 0 of an odd-macroblock row frame macroblock in said current macroblock from a third portion of said co-located motion information for said sub-block number 8 of said co-located macroblock, and

inferring a fourth portion of said current motion information for a sub-block number 10 of said odd-macroblock row frame macroblock from a fourth portion of said co-located motion information for said sub-block 10 of said co-located macroblock.

24. A method for processing a video bitstream, comprising the steps of:

(A) determining co-located motion information for a plurality of co-located sub-blocks in a co-located macroblock of said video bitstream;

(B) storing said co-located motion information for (i) at least a first three of said co-located sub-blocks along a left side of said co-located macroblock, (ii) at least a second three of said co-located sub-blocks along a right side of said co-located macroblock and (iii) less than all of said co-located sub-blocks; and

(C) inferring current motion information for a current macroblock co-located in a different picture from said co-located macroblock using said co-located motion information that was stored; and

(D) generating a processed signal by one of (i) compressing said video bitstream using said current motion information and (ii) decompressing said video bitstream using said current motion information, wherein:

(i) step (B) comprises the sub-steps of

storing said co-located motion information of at least a first four of said co-located sub-blocks along said left side, and

storing said co-located motion information of at least a second four of said co-located sub-blocks along said right side;

(ii) said second four co-located sub-blocks comprise a sub-block number 5 , a sub-block number 7 , a sub-block number 13 and a sub-block number 15 of said co-located macroblock per an H.264 standard for numbering; and

(iii) step (C) comprises the sub-steps of

inferring a first portion of said current motion information for a sub-block number 5 of an even-macroblock row frame macroblock in said current macroblock from a first portion of said co-located motion information for said sub-block number 5 of said co-located macroblock,

inferring a second portion of said current motion information for a sub-block number 15 of said even-macroblock row macroblock from a second portion of said co-located motion information for said sub-block number 7 of said co-located macroblock,

inferring a third portion of said current motion information for a sub-block number 5 of an odd-macroblock row frame macroblock in said current macroblock from a third portion of said co-located motion information for said sub-block number 13 of said co-located macroblock, and

inferring a fourth portion of said current motion information for a sub-block number 15 of said odd-macroblock row frame macroblock from a fourth portion of said co-located motion information for said sub-block 15 of said co-located macroblock.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER PREVIOUSLY RECORDED AT REEL: 047357 FRAME: 0302. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048674/0834 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER PREVIOUSLY RECORDED ON REEL 047195 FRAME 0658. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047357/0302 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047195/0658 →
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 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
CHANGE OF NAME Recorded Jun 6, 2014
From: LSI LOGIC CORPORATION
To: LSI CORPORATION
Reel/Frame 033102/0270 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2003
From: WINGER, LOWELL L.; LINZER, ELLIOT N.
To: LSI LOGIC CORPORATION
Reel/Frame 014784/0264 →
Continuity (1)
Related Publication 20050129129A1 · Jun 16, 2005