Motion refinement engine with shared memory for use in video encoding and methods for use therewith

US9204149B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9204149-B2
Application numberUS-60294206-A
CountryUS
Kind codeB2
Filing dateNov 21, 2006
Priority dateNov 21, 2006
Publication dateDec 1, 2015
Grant dateDec 1, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A motion compensation module can be used in a video encoder for encoding a video input signal that includes a sequence of images that are segmented into a plurality of macroblocks. The motion compensation module includes a shared memory and a motion search module that generates a motion search motion vector for a plurality of subblocks for a plurality of partitionings of a macroblock of a plurality of macroblocks and generates a selected group of the plurality of partitionings and stores the selected group of partitionings and the corresponding motion search motion vectors in the shared memory. A motion refinement module retrieves the selected group of partitionings and the corresponding motion search motion vectors from the shared memory, that generates a refined motion vector for the plurality of subblocks for the selected group of the plurality of partitionings of the macroblock of the plurality of macroblocks, based on the motion search motion vector for each of the plurality of subblocks of the macroblock of the plurality of macroblocks.

First claim

Opening claim text (preview).

What is claimed is: 1. A motion compensation module for use in a video encoder for encoding a video input signal that includes a sequence of images that are segmented into a plurality of macroblocks, the motion compensation module comprising: a shared memory; a motion search module, coupled to the shared memory, that generates a motion search motion vector for a plurality of subblocks for a plurality of partitionings of a macroblock of a plurality of macroblocks and generates a selected group of the plurality of partitionings and stores the selected group of partitionings and the corresponding motion search motion vectors in the shared memory; and a motion refinement module, coupled to the motion search module, that retrieves the selected group of partitionings and the corresponding motion search motion vectors from the shared memory, that generates a refined motion vector for the plurality of subblocks for the selected group of the plurality of partitionings of the macroblock of the plurality of macroblocks, based on the motion search motion vector for each of the plurality of subblocks of the macroblock of the plurality of macroblocks. 2. The motion compensation module of claim 1 wherein the motion search module generates a trigger signal in response to storage of the selected group of partitionings of the macroblock and the corresponding motion search motion vectors in the shared memory, and wherein the motion refinement module commences retrieval of the selected group of partitionings and the corresponding motion search motion vectors from the shared memory in response to the trigger signal. 3. The motion compensation module of claim 1 wherein, the motion search module determines the selected group of the plurality of partitionings based on accumulated costs associated with the motion search motion vector for each of the plurality of subblocks of the plurality of partitionings of the macroblock of the plurality of macroblocks. 4. The motion compensation module of claim 3 wherein, the motion search module determines the selected group of the plurality of partitionings by comparing, for the plurality of partitionings of the macroblock of the plurality of macroblocks, the accumulated costs associated with the motion search motion vector for each of the plurality of subblocks with a first threshold, and assigning the selected group to be a partitioning with the accumulated costs that compares favorably to the first threshold. 5. The motion compensation module of claim 3 wherein, the motion search module determines the selected group of the plurality of partitionings by comparing, for the plurality of partitionings of the macroblock of the plurality of macroblocks, the accumulated costs associated with the motion search motion vector for each of the plurality of subblocks, and assigning the selected group to be a selected partitioning with the most favorable accumulated cost. 6. The motion compensation module of claim 3 wherein, the motion search module determines the selected group of the plurality of partitionings by comparing, for the plurality of partitionings of the macroblock of the plurality of macroblocks, the accumulated costs associated with the motion search motion vector for each of the plurality of subblocks with a second threshold, and assigning the selected group to be each of partitionings of the plurality of partitionings with accumulated cost that compares favorably to the second threshold. 7. The motion compensation module of claim 1 wherein the motion search module contemporaneously generates the motion search motion vector for the plurality of subblocks for a plurality of partitionings of a macroblock of a plurality of macroblocks. 8. The motion compensation module of claim 1 wherein the motion refinement module contemporaneously generates the refined motion vector for the plurality of subblocks for the selected group of the plurality of partitionings of the macroblock of the plurality of macroblocks. 9. A method for use in a video encoder for encoding a video input signal that includes a sequence of images that are segmented into a plurality of macroblocks, the method comprising: generating a motion search motion vector for a plurality of subblocks for a plurality of partitionings of a macroblock of a plurality of macroblocks; generating a selected group of the plurality of partitionings based on a group selection signal; storing the selected group of the plurality of partitionings and the corresponding motion search motion vectors in a shared memory; retrieving the selected group of the plurality of partitionings and the corresponding motion search motion vectors from the shared memory; and generating a refined motion vector for the plurality of subblocks for the selected group of the plurality of partitionings of the macroblock of the plurality of macroblocks, based on the motion search motion vector for each of the plurality of subblocks of the macroblock of the plurality of macroblocks. 10. The method of claim 9 further comprising: generating a trigger signal in response to storage of the selected group of partitionings of the macroblock and the corresponding motion search motion vectors in the shared memory, and wherein the step of retrieving the selected group of partitionings and the corresponding motion search motion vectors from the shared memory is performed in response to the trigger signal. 11. The method of claim 9 wherein, when the group selection signal has a first value, the step of generating the selected group of the plurality of partitionings determines the selected group of the plurality of partitionings by comparing, for the plurality of partitionings of the macroblock of the plurality of macroblocks, accumulated costs associated with the motion search motion vector for each of the plurality of subblocks with a first threshold; and assigning the selected group to be a partitioning with the accumulated costs that compares favorably to the first threshold. 12. The method of claim 11 wherein, when the group selection signal has a second value, the step of generating the selected group of the plurality of partitionings determines the selected group of the plurality of partitionings by comparing, for the plurality of partitionings of the macroblock of the plurality of macroblocks, the accumulated the costs associated with the motion search motion vector for each of the plurality of subblocks, and assigning the selected group to be a selected partitioning with the most favorable accumulated cost. 13. The method of claim 9 wherein, when the group selection signal has a third value, the step of generating the selected group of the plurality of partitionings determines the selected group of the plurality of partitionings by comparing, for the plurality of partitionings of the macroblock of the plurality of macroblocks, the accumulated costs associated with the motion search motion vector for each of the plurality of subblocks with a second threshold, and assigning the selected group to be each of partitionings of the plurality of partitionings with accumulated cost that compares favorably to the second threshold. 14. The method of claim 9 wherein the step of generating the motion search motion vector contemporaneously generates the motion search motion vector for the plurality of subblocks for a plurality of partitionings of a macroblock of a plurality of macroblocks. 15. The method of claim 9 wherein the step of generating the refined motion vector contemporaneously generates the refined motion vector for the plurality of subblocks for the selected group of the plurality of parti

Assignees

Inventors

Classifications

  • using sub-band based transform, e.g. wavelets · CPC title

  • using hierarchical techniques, e.g. scalability (H04N19/63 takes precedence) · CPC title

  • involving data partitioning, i.e. separation of data into packets or partitions according to importance · CPC title

  • using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT] · CPC title

  • Motion estimation based on rate distortion criteria · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9204149B2 cover?
A motion compensation module can be used in a video encoder for encoding a video input signal that includes a sequence of images that are segmented into a plurality of macroblocks. The motion compensation module includes a shared memory and a motion search module that generates a motion search motion vector for a plurality of subblocks for a plurality of partitionings of a macroblock of a plura…
Who is the assignee on this patent?
Ramachandran Avinash, Hong Edward, Qiu Gang, and 3 more
What technology area does this patent fall under?
Primary CPC classification H04N19/119. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 01 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).