DE102010046508A1 - Verfahren und Vorrichtung, um einen Suchbereich für die Bewegungsabschätzung adaptiv auszuwählen - Google Patents

Verfahren und Vorrichtung, um einen Suchbereich für die Bewegungsabschätzung adaptiv auszuwählen Download PDF

Info

Publication number
DE102010046508A1
DE102010046508A1 DE102010046508A DE102010046508A DE102010046508A1 DE 102010046508 A1 DE102010046508 A1 DE 102010046508A1 DE 102010046508 A DE102010046508 A DE 102010046508A DE 102010046508 A DE102010046508 A DE 102010046508A DE 102010046508 A1 DE102010046508 A1 DE 102010046508A1
Authority
DE
Germany
Prior art keywords
block
frame
current
blocks
motion vectors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102010046508A
Other languages
English (en)
Other versions
DE102010046508B4 (de
Inventor
Lidong Xu
Yi Jen San Jose Chiu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tahoe Research Ltd
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102010046508A1 publication Critical patent/DE102010046508A1/de
Application granted granted Critical
Publication of DE102010046508B4 publication Critical patent/DE102010046508B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/127Prioritisation of hardware or computational resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation

Abstract

Systeme, Verfahren, und Computerprogramm-Produkte, die verwendet werden können, um einen Suchbereich (search range, SR) beim Durchführen der Bewegungsabschätzung bei zum Beispiel einem Videoencoder oder -decoder zu bestimmen. Das Bestimmen eines Bewegungsvektors für einen derzeitigen Block während der Bewegungsabschätzung kann die Suche innerhalb eines Suchfensters einschließen, das sich in einem Referenzframe oder in einem zuvor decodierten Block befinden kann, der räumlich oder zeitlich an den derzeitigen Block grenzt. Solch eine Suche sucht einen Bewegungsvektor, der eine Metrik, wie z. B. eine Gesamtabweichung zwischen entsprechenden Blocks von Referenzframes, minimiert. Ein Bewegungsvektor, der solch eine Metrik minimiert, kann ein guter Kandidat für die Verwendung in der Bewegungsabschätzung sein. Die Suche kann leistungsfähiger werden, wenn ein Suchbereich so bestimmt wird, dass das Ausmaß der Suche begrenzt ist. Ein Suchbereich kann auf Blockniveau oder auf Bildniveau bestimmt werden.

Description

  • HINTERGRUND
  • Bewegungsabschätzung (motion estimation, ME) bei der Videocodierung kann verwendet werden, um die Videokomprimierungsleistung zu verbessern, indem temporare Redundanz zwischen Videoframes entfernt oder verringert wird. Um einen Eingabeblock zu codieren, kann herkömmliche Bewegungsabschätzung bei einem Encoder innerhalb eines spezifizierten Suchfensters in Referenzframes durchgeführt werden. Dadurch kann ein Bewegungsvektor bestimmt werden, um die Gesamtabweichungen (sum of absolute differences, SAD) zwischen dem Eingabeblock und einem Referenzblock in einem Referenzframe zu minimieren. Die Information des Bewegungsvektors (motion vector, MV) kann dann an einen Decoder zur Bewegungskompensation übertragen werden. Der Bewegungsvektor kann für nicht ganzzahlige Pixeleinheiten bestimmt werden, und Interpolationsfilter können verwendet werden, um nicht ganzzahlige Pixelwerte zu berechnen.
  • Wo die ursprünglichen Eingabeframes bei dem Decoder nicht verfügbar sind, kann ME bei dem Decoder mittels der rekonstruierten Referenzframes durchgeführt werden. Bei der Codierung eines vorhergesagten Frames (P-Frame) kann es mehrere Referenzframes in einem Vorwärts-Referenzpuffer geben. Bei der Codierung eines Doppelvorhersage-Frames (B-Frame) kann es mehre Referenzframes im Vorwärtsreferenzpuffer und mindestens einen Referenzframe in einem Rückwärtsreferenzpuffer geben. Zur Codierung eines B-Frames kann Spiegel-ME oder projektive ME durchgeführt werden, um den MV zu erhalten. Zur Codierung eines P-Frames kann projektive ME durchgeführt werden, um den MV zu erhalten.
  • Bei anderen Zusammenhängen kann ein blockbasierter Bewegungsvektor beim Videodecoder durch Ausführen der Bewegungsabschätzung an verfügbaren zuvor decodierten Pixeln in Bezug auf Blocks in einem oder mehreren Frames erzeugt werden. Die verfügbaren Pixel könnten zum Beispiel räumlich angrenzende Blocks in der sequenziellen Scancodierungsreihenfolge des derzeitigen Frames, Blocks in einem zuvor decodierten Frame oder Blocks in einem Downsampling-Frame in einer unteren Schicht sein, wenn Schichtcodierung verwendet wurde. Die verfügbaren Pixel können alternativ eine Kombination der oben erwähnten Blocks sein.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN/FIGUREN
  • 1 veranschaulicht Spiegelbewegungsabschätzung bei einem Decoder gemäß einer Ausführungsform.
  • 2 veranschaulicht projektive Bewegungsabschätzung bei einem Decoder gemäß einer Ausführungsform.
  • 3 zeigt MV-Ableitung unter Verwendung bereits decodierter Blocks von einem derzeitigen Frame, wo die Bewegungssuche gemäß einer Ausführungsform auf Blocks in zwei unterschiedlichen Referenzframes basiert.
  • 4 zeigt MV-Ableitung unter Verwendung zuvor decodierter Blocks von bereits decodierten vorherigen und nachfolgenden Frames gemäß einer Ausführungsform.
  • 5 zeigt MV-Ableitung unter Verwendung eines zuvor decodierten Blocks von einem niedrigeren Niveau in einem Schichtcodierungszusammenhang gemäß einer Ausführungsform.
  • 6 ist ein Ablaufdiagramm, das die Bestimmung eines Suchbereichvektors auf Blockniveau gemäß einer Ausführungsform zeigt.
  • 7 ist ein Ablaufdiagramm, das die Bestimmung eines Suchbereichvektors auf Bildniveau gemäß einer Ausführungsform zeigt.
  • 8 zeigt einen Berechnungszusammenhang einer exemplarischen Softwareausführungsform.
  • 9 ist ein Blockdiagramm, das ein MV-Selbstableitungsmodul im Zusammenhang mit einem H.264-Encoder gemäß einer Ausführungsform zeigt.
  • 10 ist ein Blockdiagramm, das ein MV-Selbstableitungsmodul im Zusammenhang mit einem H.264-Decoder gemäß einer Ausführungsform zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Im Folgenden werden Systeme, Verfahren und Computerprogramm-Produkte beschrieben, die verwendet werden können, um einen Suchbereich-Vektor (search range, SR) beim Durchführen der Bewegungsabschätzung bei zum Beispiel einem Videoencoder oder -decoder zu bestimmen. Das Bestimmen eines Bewegungsvektors für einen derzeitigen Block während der Bewegungsabschätzung kann die Suche innerhalb eines Suchfensters einschließen, das sich in einem Referenzframe oder in einem zuvor decodierten Block befinden kann, der räumlich oder zeitlich an den derzeitigen Block grenzt. Solch eine Suche sucht einen Bewegungsvektor, der eine Metrik wie z. B. ein SAD zwischen entsprechenden Blocks von Referenzframes minimiert. Ein Bewegungsvektor, der solch eine Metrik minimiert, kann ein guter Kandidat für die Verwendung in der Bewegungsabschätzung sein. Die Suche kann leistungsfähiger werden, wenn ein Suchbereich so bestimmt wird, dass das Ausmaß der Suche begrenzt ist.
  • Eine Suche kann auf Blockniveau oder auf Bildniveau durchgeführt werden. Beim Bestimmen eines Suchbereich-Vektors auf Blockniveau kann der Suchbereich-Vektor für unterschiedliche Blocks im gesamten Frame unterschiedlich sein. Beim Bestimmen eines Suchbereich-Vektors auf Bildniveau kann derselbe Suchbereich-Vektor für jeden Block im Frame verwendet werden.
  • Bei einer Ausführungsform kann ein Suchbereich-Vektor aus einer Suchbereich-Komponente in jedem der horizontalen und vertikalen Richtungen bestehen.
  • Es ist zu beachten, dass die Begriffe „Frame” und „Bild” hier auf austauschbare Weise gebraucht werden, wie es ein Fachmann verstehen würde.
  • Spiegel-ME
  • Spiegel-ME kann sowohl Vorwärts- als auch Rückwärts-Referenzframes verwenden und wird demzufolge im Allgemeinen zur Codierung von B-Frames angewendet. 1 zeigt, wie Spiegel-ME gemäß einer Ausführungsform 100 durchgeführt werden kann. Bei der Ausführungsform von 1 kann es zwei B-Frames, 110 und 115, zwischen einem Vorwärts-Referenzframe 120 und einem Rückwärts-Referenzframe 130 geben. Frame 110 kann der derzeitige Codierungsframe sein. Bei der Codierung des derzeitigen Blocks 140 kann Spiegel-ME durchgeführt werden, um Bewegungsvektoren zu erhalten, indem Suchläufe in den Suchfenstern 160 und 170 der Referenzframes 120 bzw. 130 durchgeführt werden. Wie vorstehend erwähnt, kann Spiegel-ME mit den zwei Referenzframes durchgeführt werden, wo der derzeitige Eingabeblock bei dem Decoder möglicherweise nicht verfügbar ist.
  • Eine exemplarische Bewegungssuche in diesem Zusammenhang kann wie folgt ablaufen. Ein Suchfenster kann im Vorwärts-Referenzframe angegeben werden. Dieses Suchfenster kann sowohl bei dem Encoder als auch dem Decoder das gleiche sein. Ein Suchpfad kann im Vorwärtssuchfenster angegeben sein. Gesamtsuche oder jedes schnelle Suchschema kann hier verwendet werden, solange der Encoder und Decoder dem gleichen Suchpfad folgen. Für einen Vektor MV0 im Suchpfad kann dessen Spiegel-Bewegungsvektor MV1 im Rückwärtssuchfenster erhalten werden. Hier kann davon ausgegangen werden, dass die Bewegungskurve während der zugehörigen Zeitdauer eine gerade Linie ist, die relativ kurz sein kann. MV1 kann als die folgende Funktion von MV0 erhalten werden, wobei d0 und d1 die Abstände zwischen dem derzeitigen Frame und jedem der entsprechenden Referenzframes sein können. MV1 = d₁ / d₀MV0
  • Eine Metrik, wie z. B. eine SAD, kann zwischen (i) dem Referenzblock, auf den durch MV0 im Vorwärts-Referenzframe gezeigt wird, und (ii) dem Referenzblock, auf den durch MV1 im Rückwärts-Referenzframe gezeigt wird, berechnet werden. Diese Referenzblocks sind als 150 und 180 gezeigt in 1. Es kann bestimmt werden, ob in dem Suchpfad irgendwelche zusätzlichen Bewegungsvektoren MV0 vorhanden sind. Wenn dem so ist, kann mehr als ein MV0 erhalten werden, wo jeder MV0 einen verbundenen MV1 aufweist. Außerdem kann für jedes eines solchen zugehörigen Paares eine Metrik, z. B. eine SAD, erhalten werden. Der MV0, der den optimalen Wert für die Metrik generiert, z. B. die minimale SAD, wird ausgewählt.
  • Angesichts des Paars von Bewegungsvektoren MV0 und MV1, das für den derzeitigen Block erhalten wird, können seine Vorwärts-Vorhersagen P0(MV0) mit MV0 erhalten werden, seine Rückwärts-Vorhersagen P1 (MV1) können mit MV1 erhalten werden und seine Bidirektional-Vorhersagen können mit sowohl MV0 als auch MV1 erhalten werden. Die Bidirektional-Vorhersagen können beispielsweise der Mittelwert von P0(MV0) und P1(MV1) oder der gewichtete Mittelwert (P0(MV0)·d1 + P1(MV1)·d0)/(d0 + d1) sein. Eine alternative Funktion kann verwendet werden, um eine Bidirektional-Vorhersage zu erhalten. Bei einer Ausführungsform können der Encoder und Decoder das gleiche Vorhersageverfahren verwenden.
  • Spiegel-ME nimmt an, dass Bewegungen zwischen jeden zwei angrenzenden Bildern linear sind, wie gezeigt in 1. Bei der Codierung eines derzeitigen Blocks in Bild 110 können die zwei Referenzbilder, FWRef 120 und BWRef 130 in einem Referenzpuffer verfügbar sein. Angenommen der verfügbare Block-MV zwischen BWRef 130 und FWRef 120 sei Ref_MVi für Block i (hier ist der Bewegungsvektor gemäß der Entfernung des Bildes angepasst), dann kann der Suchbereich-Vektor unter Verwendung aller Ref_MVi bestimmt werden, indem man eine lineare oder nichtlineare Verarbeitungsfunktion f() verwendet, SR = SR_Pic = f(Ref_MVi).
  • Die Verarbeitungsfunktion f() kann bei einer Ausführungsform wie folgt sein. Zuerst kann der Durchschnittswert von absolutem Ref_MVi über Blocks i erhalten werden. Der Durchschnittswert kann mit mv_ref bezeichnet sein. Dann kann für das Bild 110 der adaptive Suchbereich wie folgt berechnet werden. α und β können zwei vorherbestimmte Konstanten sein (ein Skalar und ein Vektor). Diese können bei einer Ausführungsform auf 1,1 und (4, 4) gesetzt sein. Hier ist der berechnete adaptive SR als SR_Pic gezeigt. Dies kann als der adaptive Bildniveau-Suchbereich-Vektor verwendet werden. SR = SR_Pic = α·mv_ref + β
  • Für jeden Block im Frame 110 kann der Blockniveau-Suchbereich basierend auf den Bewegungsvektoren von zeitlichen und/oder räumlichen angrenzenden Blocks bestimmt werden. Nehmen wir zum Beispiel an, dass die Bewegungsvektoren von angrenzenden Blocks i Nbr_MVi sind (hier ist der Bewegungsvektor gemäß der Entfernung des Bildes skaliert). Dann kann der Suchbereich-Vektor unter Verwendung aller Nbr_MVi bestimmt werden, indem man eine lineare oder nichtlineare Verarbeitungsfunktion g() verwendet, SR = SR_Blk = g(Nbr_MVi).
  • Bei einer Ausführungsform kann die Verarbeitungsfunktion g() wie folgt sein. Zuerst kann der Durchschnittswert von absolutem Nbr_MVi erhalten werden, bezeichnet mit mv_nbr. Dann kann der adaptive Blockniveau-Suchbereich-Vektor SR_Blk wie folgt berechnet werden. Wo α und β zwei Konstanten sind, die bei einer Ausführungsform auf 1,1 und (4, 4) gesetzt sein können, SR = SR_Blk = α·mv_nbr + β
  • Bei einigen Ausführungsformen kann es sein, dass die horizontalen und vertikalen Komponenten in einem Suchbereich-Vektor identisch sein müssen. Hier kann der Wert der größeren von den zwei Komponenten sowohl für die horizontalen als auch die vertikalen Komponenten verwendet sein.
  • Projektive Bewegungsabschätzung
  • Projektive ME kann durchgeführt werden, um einen MV zur Codierung des derzeitigen Blocks abzuleiten. 2 zeigt ein exemplarisches projektives ME-Szenarium, das zwei Vorwärtsreferenz-Frames, FWRef0 (gezeigt als Referenzframe 220) und FWRef1 (gezeigt als Referenzframe 230) verwenden kann. Diese Referenzframes können verwendet werden, um einen Bewegungsvektor für einen Zielblock 240 in einem derzeitigen Frame 210 abzuleiten. Ein Suchfenster 270 kann in Referenzframe 220 spezifiziert sein, und ein Suchpfad kann in Suchfenster 270 spezifiziert sein. Für jeden Bewegungsvektor MV0 in dem Suchpfad kann sein projektiver Bewegungsvektor MV1 in Suchfenster 260 von Referenzframe 230 bestimmt werden. Für jedes Paar von Bewegungsvektoren, MV0 und sein zugehöriger Bewegungsvektor MV1, kann eine Metrik, wie z. B. ein SAD zwischen (1) dem Referenzblock 280, auf den durch MV0 in Referenzframe 220 gezeigt wird, und (2) dem Referenzblock 250, auf den durch MV1 in Referenzframe 230 gezeigt wird, berechnet werden. Der Bewegungsvektor MV0, der den Optimalwert für die Metrik ergibt, z. B. die minimale SAD, kann anschließend als der Bewegungsvektor für Zielblock 240 ausgewählt werden.
  • Der Prozess für den projektiven ME kann wie folgt ablaufen. Es kann ein Suchfenster in einem ersten Vorwärts-Referenzframe spezifiziert sein. Dieses Fenster kann sowohl bei dem Encoder als auch dem Decoder das gleiche sein. Ein Suchpfad kann in diesem Suchfenster spezifiziert sein. Gesamtsuche oder schnelle Suchschemata können hier verwendet werden, sodass beispielsweise der Encoder und Decoder dem gleichen Suchpfad folgen können. Für einen Bewegungsvektor MV0 im Suchpfad kann dessen projektiver Bewegungsvektor MV1 in einem zweiten Suchfenster in einem zweiten Vorwärts-Referenzframe erhalten werden. Hier kann davon ausgegangen werden, dass die Bewegungskurve über diese kurze Zeitdauer eine gerade Linie ist. MV1 kann als die folgende Funktion von MV0 erhalten werden, wobei d0 und d1 die Abstände zwischen dem derzeitigen Frame und jedem der entsprechenden Referenzframes sein können. MV1 = d₁ / d₀MV0
  • Eine Metrik, wie z. B. eine SAD, zwischen (i) dem Referenzblock, auf den durch MV0 in dem ersten Referenzframe gezeigt wird, und (ii) dem Referenzblock, auf den durch MV1 in dem zweiten Referenzframe gezeigt wird, kann berechnet werden. Diese Referenzblocks sind als 150 und 180 gezeigt in 1. Es kann bestimmt werden, ob es irgendwelche zusätzlichen Bewegungsvektoren MV0 gibt, die in dem Suchpfad verbleiben und die noch nicht berücksichtigt worden sind. Auf diese Weise können Paare, MV0 und MV1, bestimmt und eine Metrik, wie z. B. eine SAD, für jedes Paar berechnet werden. Auf diese Art und Weise kann ein Satz von Paaren, MV0 und MV1, bestimmt und eine Metrik, z. B. eine SAD, für jeden Satz berechnet werden. Einer der MV0s kann ausgewählt werden, wobei der ausgewählte MV0 den Optimalwert für die Metrik ergibt, wie z. B. die minimale SAD. Dieser MV0 kann dann verwendet werden, um Bewegung für den derzeitigen Block vorherzusagen.
  • Die Vorhersagen für den derzeitigen Block können auf verschiedene Arten erhalten werden. Die Vorhersagen können beispielsweise P0(MV0), P1(MV1), (P0(MV0) + P1(MV1))/2 oder (P0(MV0)·d1 + P1(MV1)·d0)/(d0 + d1) sein. Bei weiteren Ausführungsformen können andere Funktionen verwendet werden. Die Vorhersagen können sowohl bei dem Encoder als auch dem Decoder auf die gleiche Art und Weise erhalten werden.
  • Der projektive ME kann annehmen, dass Bewegung zwischen zwei angrenzenden Bildern linear ist, wie gezeigt in 2 verkörpern. Indem man dasselbe Verfahren, wie für Spiegel-ME oben beschrieben verwendet, kann der Bildniveau-Suchbereich unter Verwendung der Block-Bewegungsvektoren zwischen FWRef0 erhalten werden (Frame 220 von 2) und FWRef1 (Frame 430). Der Blockniveau-Suchbereich kann unter Verwendung der Bewegungsvektor-Information von Blocks erhalten werden, die an den derzeitigen Block zeitlich und räumlich, wie oben beschrieben in Bezug auf Spiegel-ME, angrenzen.
  • Auf räumlich angrenzenden Blocks basierende Bewegungsabschätzung
  • 3 zeigt eine Ausführungsform 300, die eine oder mehrere angrenzende Blocks 340 (hier gezeigt als Blocks darüber und links vom Zielblock 330) in einem derzeitigen Frame 310 verwenden kann. Das kann die Generierung eines Bewegungsvektors basierend auf einem oder mehreren entsprechenden Blocks 350 und 355 in einem vorherigen Referenzframe 320 und einem nachfolgenden Referenzframe 360 ermöglichen, wo sich die Begriffe „vorherig” und „nachfolgend” auf eine zeitliche Reihenfolge beziehen. Der Bewegungsvektor kann dann auf Zielblock 330 angewandt werden. Bei einer Ausführungsform kann man eine Rasterscan-Codierungsreihenfolge verwenden, um räumliche Nachbarblocks darüber, links, darüber und links und darüber und rechts vom Zielblock zu bestimmen. Dieser Ansatz kann für B-Frames verwendet werden, die sowohl vorhergehende als auch folgende Frames für die Decodierung einsetzen.
  • Der veranschaulichte Ansatz durch 3 kann auf verfügbare Pixel von räumlich angrenzenden Blocks in einem derzeitigen Frame angewandt werden, solange die angrenzenden Blocks vor dem Zielblock in der sequenziellen Scancodierungsreihenfolge decodiert wurden. Des Weiteren kann dieser Ansatz Bewegungssuche in Bezug auf Referenzframes in Referenzframe-Listen für einen derzeitigen Frame anwenden.
  • Die Verarbeitung der Ausführungsform von 3 kann wie folgt stattfinden. Zuerst können ein oder mehrere Blocks von Pixeln im derzeitigen Frame identifiziert werden, wo die identifizierten Blocks an den Zielblock des derzeitigen Frames angrenzen. Die Bewegungssuche für die identifizierten Blocks kann dann basierend auf entsprechenden Blocks in einem zeitlich nachfolgenden Referenzframe und auf entsprechenden Blocks in einem vorherigen Referenzframe durchgeführt werden. Die Bewegungssuche kann in Bewegungsvektoren für die identifizierten Blocks resultieren. Alternativ können die Bewegungsvektoren der angrenzenden Blocks vor der Identifizierung dieser Blocks bestimmt werden. Die Bewegungsvektoren können dann verwendet werden, um den Bewegungsvektor für den Zielblock abzuleiten, der dann für die Bewegungskompensation für den Zielblock verwendet werden kann. Diese Ableitung kann unter Verwendung jedes geeigneten Prozesses durchgeführt werden, der dem Fachmann bekannt ist. Solch ein Prozess kann zum Beispiel und ohne Einschränkung Durchschnittswichtung oder Medianfilterung sein.
  • Wenn das derzeitige Bild sowohl Rückwärts- als auch Vorwärtsreferenzbilder im Referenzpuffer aufweist, kann man dasselbe Verfahren verwenden, wie das für Spiegel-ME verwendete, um die adaptiven Bildniveau- und Blockniveau-Suchbereich-Vektoren zu erhalten. Wenn nur Vorwärtsreferenzbilder verfügbar sind, kann man das für projektive ME oben beschriebene Verfahren verwenden, um den adaptiven Bildniveau- und Blockniveau-Suchbereich zu erhalten.
  • Auf zeitlich angrenzenden Blocks basierende Bewegungsabschätzung
  • Bei einer alternativen Ausführungsform können die entsprechenden Blocks von vorherigen und nachfolgenden rekonstruierten Frames in der zeitlichen Reihenfolge verwendet werden, um einen Bewegungsvektor abzuleiten. Dieser Ansatz ist in 4 als Ausführungsform 400 gezeigt. Um einen Zielblock 430 in einem derzeitigen Frame 410 zu codieren, kann man bereits decodierte Pixel verwenden, wobei diese Pixel in einem entsprechenden Block 440 eines vorherigen Frames 415 und in einem entsprechenden Block 465 eines nachfolgenden Frames 455 gefunden werden können. Ein erster Bewegungsvektor kann für den entsprechenden Block 440 anhand der Durchführung einer Bewegungssuche durch einen oder mehrere Blocks 450 des Referenzframes 420 abgeleitet werden. Block(s) 450 können an einen Block im Referenzframe 420 grenzen, der dem Block 440 des vorherigen Frames 415 entspricht. Ein zweiter Bewegungsvektor kann für den entsprechenden Block 465 des nachfolgenden Frames 455 anhand der Durchführung einer Bewegungssuche durch einen oder mehrere Blocks 470 des Referenzframes 460 abgeleitet werden. Block(s) 470 kann an einen Block im Referenzframe 460 grenzen, der dem Block 465 des nachfolgenden Frames 455 entspricht. Basierend auf den ersten und zweiten Bewegungsvektoren, können die Vorwärts- und/oder Rückwärtsbewegungsvektoren für den Zielblock 430 bestimmt werden. Diese letzteren Bewegungsvektoren können dann für die Bewegungskompensation für den Zielblock verwendet werden.
  • Die ME-Vearbeitung für solch eine Situation ist wie folgt. Ein Block kann zuerst in einem vorherigen Frame identifiziert werden, wo dieser identifizierte Block dem Zielblock des derzeitigen Frames entsprechen kann. Ein erster Bewegungsvektor kann für diesen identifizierten Block des vorherigen Frames bestimmt werden, wo der erste Bewegungsvektor relativ zu einem entsprechenden Block eines ersten Referenzframes definiert werden kann. Ein Block kann in einem nachfolgenden Frame identifiziert werden, wo dieser Block dem Zielblock des derzeitigen Frames entsprechen kann. Ein zweiter Bewegungsvektor kann für diesen identifizierten Block des nachfolgenden Frames bestimmt werden, wo der zweite Bewegungsvektor relativ zu dem entsprechenden Block eines zweiten Referenzframes definiert werden kann. Ein oder zwei Bewegungsvektoren können für den Zielblock unter Verwendung der jeweiligen ersten und zweiten Bewegungsvektoren oben bestimmt werden.
  • Beim Codieren/Decodieren des derzeitigen Bildes sind die Block-Bewegungsvektoren zwischen dem vorherigen Frame 415 und dem Referenzframe 420 verfügbar. Indem man diese Bewegungsvektoren verwendet, kann der adaptive Bildniveau-Suchbereich in der für den projektiven ME oben beschriebenen Weise bestimmt werden. Die Bewegungsvektoren des entsprechenden Blocks und der Blocks, die räumlich an den entsprechenden Block angrenzen, können verwendet werden, um den adaptiven Blockniveau-Suchbereich wie im Fall vom Spiegel-ME abzuleiten.
  • Bewegungsabschätzung basierend auf Blocks in einer unteren Downsampling-Schicht
  • Bei einer Ausführungsform können Pixel, die verwendet werden können, um einen MV für einen Zielblock zu bestimmen, aus entsprechenden Blocks in einer unteren Schicht kommen, deren Video von einem Originaleingang in einem skalierbaren Videocodierungsszenarium downgesampelt wurde. 5 zeigt ein Beispiel 500, das einen Block der unteren Schicht 540 entsprechend dem Zielblock 530 des derzeitigen Bildes 510 verwendet. Der Block 540 kann in einem Bild 515 auftreten, der dem derzeitigen Bild 510 entspricht. Der entsprechende Block 540 kann verwendet werden, um die Bewegungssuche, bei gegebenen ein oder mehreren Blocks 550 und 570 in den jeweiligen Referenzbildern 520 und 560 in der unteren Schicht, durchzuführen. Die Referenzbilder in der unteren Schicht können die Vorwärts- oder Rückwärts-(vorherigen oder nachfolgenden)-Bilder in der zeitlichen Reihenfolge sein. Da der Bewegungsvektor in der Downsampling-Schicht abgeleitet werden kann, kann der Bewegungsvektor vergrößert werden, bevor er auf den Zielblock 530 in der Zielschicht angewandt wird.
  • Dieser Ansatz kann ebenfalls auf bereits decodierte Blocks angewandt werden, die räumliche Nachbarn zum Block 540 in der unteren Schicht entsprechend dem Zielframe 530 im derzeitigen Bild 510 sind.
  • Die Verarbeitung für diese Ausführungsform ist wie folgt. In Anbetracht eines Zielblocks in einem derzeitigen Frame kann ein entsprechender Block in einem entsprechenden Frame in einer unteren Schicht identifiziert werden. Ein Bewegungsvektor kann für den entsprechenden Block in der unteren Schicht relativ zu einem oder mehreren Referenzframes in der unteren Schicht bestimmt werden. Der bestimmte Bewegungsvektor kann dann für die Bewegungsabschätzung für den Zielblock im derzeitigen Frame verwendet werden. Bei einer alternativen Ausführungsform wird der Bewegungsvektor an der unteren Schicht vor der Identifizierung des Blocks in der unteren Schicht für ME-Zwecke für die Zielschicht bestimmt.
  • Beim Decodieren des derzeitigen Bildes in der Zielschicht wurde das Bild der unteren Schicht bereits decodiert und die Block-Bewegungsvektoren zwischen dem derzeitigen Bild der unteren Schicht und den Referenzbildern der unteren Schicht sind verfügbar. Diese Block-Bewegungsvektoren kann man verwenden, um den adaptiven Bildniveau-Suchbereich, wie oben beschrieben in Bezug auf Spiegel-ME, zu bestimmen. Außerdem können die Bewegungsvektoren des ortsgleich angeordneten Blocks der unteren Schicht und der Blocks, die räumlich an den ortsgleich angeordneten Block der unteren Schicht angrenzen, verwendet werden, um den adaptiven Blockniveau-Suchbereich, wie oben beschrieben für Spiegel-ME, zu bestimmen.
  • Verarbeitung für die adaptive Bestimmung von SR
  • Ein Prozess 600, um einen Suchbereich-Vektor auf Blockniveau adaptiv zu bestimmen, ist in 6 gemäß einer Ausführungsform veranschaulicht. Bei 610 können eine Reihe von Blocks berücksichtigt werden, wo die Blocks an den derzeitigen Block in einem derzeitigen Frame angrenzen können. Für jeden angrenzenden Block i im derzeitigen Frame kann der jeweilige Bewegungsvektor, Nbr_MVi erhalten werden. Hier können angrenzende Blocks räumliche Nachbarn sein. Räumliche Nachbarn können unmittelbar an den derzeitigen Block angrenzen, oder auch nicht. Alternativ können angrenzende Blocks, wie oben beschrieben, zeitliche Nachbarn sein.
  • Bei 620 kann der Durchschnittswert der Vektoren Nbr_MVi berechnet werden. Das resultiert in einem Vektor mv_nbr. Bei 630 wird der Suchbereich-Vektor auf Blockniveau bestimmt, SR_Blk = (α·mv_nbr) + β
  • Hier sind α und α im Voraus festgelegte Konstanten, die experimentell bestimmt werden können, wobei α ein Skalarwert und β ein zweidimensionaler Vektor sein kann. Bei einer Ausführungsform ist α = 1,1 and α = (4, 4). Der Prozess 600 endet bei 640.
  • Ein Prozess 700, um einen Suchbereich-Vektor auf Bildniveau adaptiv zu bestimmen, ist in 7 gemäß einer Ausführungsform veranschaulicht. Bei 710 kann für jeden Block i in einem nachfolgenden oder vorhergehenden Frame der jeweilige Bewegungsvektor, Ref_MVi erhalten werden. Solch ein Frame kann zum Beispiel ein Referenzframe sein. Bei 720 kann der Durchschnittswert der Vektoren Ref_MVi berechnet werden. Das resultiert in einem Vektor mv_ref. Bei 730 wird der Suchbereich-Vektor auf Bildniveau bestimmt, SR_Pic = (α·mv_ref) + β
  • Wie zuvor sind α und β im Voraus festgelegte Konstanten, die experimentell bestimmt werden können, wobei α ein Skalarwert und β ein zweidimensionaler Vektor sein kann. Bei einer Ausführungsform ist α = 1,1 and β = (4, 4). Der Prozess 700 endet bei 740.
  • Implementierung
  • Die vorstehend beschriebene Verarbeitung kann in Hardware, Firmware oder Software oder einer Kombination davon implementiert sein. Zusätzlich können ein oder mehr hierin offenbarte Merkmale in Hardware, Software, Firmware oder Kombinationen davon implementiert sein, einschließlich separater und integrierter Schaltkreislogik, anwendungsspezifischer integrierter Schaltkreis-(application specific integrated circuit, ASIC)-Logik und Mikrocontrollern, und können als Teil eines Domain-spezifischen integrierten Schaltkreisgehäuses oder einer Kombination von integrierten Schaltkreisgehäusen implementiert sein. Der Begriff Software, wie hierin verwendet, kann sich auf ein Computerprogramm-Produkt beziehen, einschließlich eines computerlesbaren Mediums, in dem Computerprogrammlogik gespeichert ist, um ein Computersystem zu veranlassen, ein oder mehr Merkmal(e) und/oder Kombinationen von Merkmalen, die hierin offenbart sind, auszuführen.
  • Eine Software- oder Firmwareausführungsform der vorstehend beschriebenen Verarbeitung ist in 8 dargestellt. System 800 kann einen Prozessor 820 und einen Speicherkörper 810 beinhalten, der ein oder mehr computerlesbare Medien beinhalten kann, die eine Computerprogrammlogik 840 speichern können. Speicher 810 kann als eine Festplatte und ein Laufwerk, ein Wechselmedium, wie z. B. Compact Disk und Compact Drive, oder ein Read-Only-Memory-(ROM)-Gerät implementiert sein. Prozessor 820 und Speicher 810 können mittels einer von vielen Technologien, die einem Fachmann bekannt sind, wie z. B. einem Bus, in Kommunikation stehen. In Speicher 810 enthaltene Logik kann von Prozessor 820 gelesen und ausgeführt werden. Ein oder mehr I/O-(Eingabe/Ausgabe)-Ports und/oder I/O-(Eingabe-/Ausgabe)-Geräte, insgesamt als I/O 830 gezeigt, kann/können ebenfalls mit Prozessor 820 und Speicher 810 verbunden sein.
  • Computerprogrammlogik 840 kann Bewegungsabschätzungslogik 860 beinhalten. Bewegungsabschätzungslogik 860 kann, wenn sie ausgeführt wird, die vorstehend beschriebene Bewegungsabschätzungsverarbeitung durchführen. Die Bewegungsabschätzungslogik 860 kann zum Beispiel projektive Bewegungsabschätzungslogik umfassen, welche die oben beschriebenen Operationen durchführen kann, wenn sie ausgeführt wird. Logik 860 kann ebenfalls, oder alternativ, zum Beispiel Spiegel-Bewegungsabschätzungslogik, Logik, um ME basierend auf zeitlichen oder räumlichen Nachbarn eines derzeitigen Blocks auszuführen, oder Logik, um ME basierend auf einem Block der unteren Schicht, der dem derzeitigen Block entspricht, auszuführen, umfassen.
  • Bevor die Bewegungsabschätzungslogik 860 seine Verarbeitung durchführt, kann ein Suchbereich-Vektor generiert werden. Dies kann wie oben beschrieben von der Suchbereich-Berechnungslogik 850 durchgeführt werden. Dieses Modul kann deshalb die Operationen, die in 6 und 7 gezeigt sind, ausführen. Sobald der Suchbereich-Vektor generiert ist, kann man diesen Vektor verwenden, um die Suche, die von Bewegungsabschätzungslogik 860 ausgeführt wird, zu begrenzen.
  • Eine Logik, um Suchbereich-Vektorbestimmung durchzuführen, kann in einem MV-Selbstableitungsmodul enthalten sein, das in einer größeren Codec-Architektur verwendet wird. 9 zeigt eine exemplarische H.264-Videoencoder-Architektur 900, die ein MV-Selbstableitungsmodul 940 umfassen kann, wobei H.264 ein Videocodec-Standard ist. Information über das derzeitige Video kann von einem derzeitigen Videoblock 910 in Form von einer Vielzahl an Frames bereitgestellt werden. Das derzeitige Video kann an eine Differenzierungseinheit 911 weitergegeben werden. Die Differenzierungseinheit 911 kann Teil der Differenzialpulsecodemodulation-(DPCM)(auch als Kernvideocodierung bezeichnet)-Schleife sein, die eine Bewegungskompensationsphase 922 und eine Bewegungsabschätzungsphase 918 umfassen kann. Die Schleife kann ebenfalls eine interne Vorhersagephase 920 und interne Interpolationsphase 924 umfassen. In einigen Fällen kann auch ein schleifeninterner Deblocking-Filter 926 in der Schleife verwendet sein.
  • Das derzeitige Video 910 kann der Differenzierungseinheit 911 und der Bewegungsabschätzungsphase 918 bereitgestellt werden. Die Bewegungskompensationsphase 922 oder die interne Interpolationphase 924 kann einen Ausgang durch einen Switch 923 erzeugen, der dann vom derzeitigen Video 910 abgezogen werden kann, um einen Restwert zu erzeugen. Der Restwert kann dann in Transformier/Quantisier-Phase 912 transformiert und quantisiert und der Entropie-Codierung im Block 914 unterzogen werden. Eine Kanalausgabe erfolgt bei Block 916.
  • Der Ausgang der Bewegungskompensationphase 922 oder Zwischeninterpolationsphase 924 kann einem Summator 933 bereitgestellt werden, der ebenfalls einen Eingang von der Rückquantisierungseinheit 930 und der Rücktransformationseinheit 932 empfangen kann. Diese letzten zwei Einheiten können die Transformation und Quantisierung der Transformier/Quantisier-Phase 912 annullieren. Die Rücktransformationseinheit 932 kann der Schleife entquantisierte und enttransformierte Information wieder bereitstellen.
  • Das MV-Selbstableitungsmodul 940 kann die für die Ableitung eines Bewegungsvektors hier beschriebene Verarbeitung implementieren. Das MV-Selbstableitungsmodul 940 kann den Ausgang des schleifeninternen Deblocking-Filters 926 empfangen und einen Ausgang an die Bewegungskompensationsphase 922 bereitstellen.
  • 10 zeigt einen H.264-Videodecoder 1000 mit einem MV-Selbstableitungsmodul 1010. Hier kann ein Decoder 1000 für den Encoder 900 der 9 einen Kanaleingang 1038 umfassen, der mit einer Entropie-Decodiereinheit 1040 gekoppelt ist. Der Ausgang von Decodiereinheit 1040 kann einer Rückquantisierungseinheit 1042, Rücktransformiereinheit 1044 und dem MV-Selbstableitungsmodul 1010 bereitgestellt werden. Das MV-Selbstableitungsmodul 1010 kann mit einer Bewegungskompensationseinheit 1048 gekoppelt sein. Der Ausgang der Entropie-Decodiereinheit 1040 kann ebenfalls einer internen Interpolationseinheit 1054 bereitgestellt werden, die einen Auswahl-Switch 1023 bedienen kann. Die Information von Rücktransformationseinheit 1044 und entweder der Bewegungskompensationseinheit 1048 oder der internen Interpolationseinheit 1054, wie ausgewählt durch Switch 1023, kann dann summiert und einer schleifeninternen Deblocking-Einheit 1046 bereitgestellt und der internen Interpolationseinheit 1054 wieder zugeführt werden. Der Ausgang der schleifeninternen Deblocking-Einheit 1046 kann dann dem MV-Selbstableitungsmodul 1010 zugeführt werden.
  • Das MV-Selbstableitungsmodul kann sich am Videoencoder befinden und mit der Videodecoderseite synchronisieren. Das MV-Selbstableitungsmodul könnte alternativ auf eine generische Videcodec-Architektur angewandt werden und ist nicht auf die H.264-Codierungsarchitektur beschränkt.
  • Schlussfolgerung
  • Verfahren und Systeme werden hierin mithilfe funktionaler Bausteine offenbart, wie z. B. denjenigen, die vorstehend aufgeführt sind, die deren Funktionen, Merkmale und Beziehungen beschreiben. Zumindest einige der Grenzen dieser funktionalen Bausteine wurden zum besseren Verständnis der Beschreibung hierin willkürlich definiert. Alternative Grenzen können definiert werden, solange deren spezifizierte Funktionen und Beziehungen angemessen durchgeführt werden. Außerdem können der vorstehend beschriebene Encoder und Decoder in entsprechenden Systemen eingebaut sein, die ein Videosignal unter Verwendung der vorstehend angeführten Prozesse codieren bzw. das so erhaltene codierte Signal decodieren.
  • Obwohl hierin verschiedene Ausführungsformen offenbart sind, sollte es selbstverständlich sein, dass diese lediglich beispielhaft und nicht einschränkend dargelegt wurden. Es ist für Fachleute offensichtlich, dass verschiedene Änderungen hinsichtlich Form und Detail daran vorgenommen werden können, ohne von dem Geist und Umfang der hierin offenbarten Verfahren und Systeme abzuweichen. Somit sollten die Bandbreite und der Umfang der Ansprüche nicht durch eine der beispielhaften Ausführungsformen, die hierin offenbart sind, eingeschränkt werden.

Claims (29)

  1. Verfahren, umfassend: das Bestimmen einer Reihe von Bewegungsvektoren bezogen auf Blocks, die mit einem derzeitigen Block verbunden sind; das Berechnen eines Durchschnittswerts (mean value, mv) der zusammenhängenden Bewegungsvektoren; und das Berechnen eines Suchbereich-Vektors SR, gemäß der Formel SR = (α·mv) + β, wobei α ein vorherbestimmter konstanter Skalar und β ein vorherbestimmter konstanter Vektor ist, SR eine Bewegungssuche in der Durchführung der Bewegungsabschätzung für den derzeitigen Block begrenzt und die Bestimmung, mv-Berechnung und SR-Berechnung von einem Prozessor ausgeführt werden.
  2. Verfahren nach Anspruch 1, wobei α = 1,1 und β = (4, 4) ist.
  3. Verfahren nach Anspruch 1, wobei die zusammenhängenden Bewegungsvektoren mit den jeweiligen Blocks eines Referenzframes verbunden sind, und wobei der Suchbereich-Vektor SR verwendet wird, um die Bewegungsabschätzung für den derzeitigen Block eines derzeitigen Frames und für alle anderen Blocks im derzeitigen Frame durchzuführen.
  4. Verfahren nach Anspruch 3, wobei sich jeder der zusammenhängenden Bewegungsvektoren von einem jeweiligen Block eines Rückwärts-Referenzframes zu einem entsprechenden Block eines Vorwärts-Referenzframes erstreckt.
  5. Verfahren nach Anspruch 3, wobei sich jeder der zusammenhängenden Bewegungsvektoren von einem jeweiligen Block eines ersten Vorwärts-Referenzframes zu einem entsprechenden Block eines zweiten Vorwärts-Referenzframes erstreckt.
  6. Verfahren nach Anspruch 3, wobei sich jeder der zusammenhängenden Bewegungsvektoren von einem jeweiligen Block in einem Rückwärts-Referenzframe zu einem vorherigen Frame relativ zum derzeitigen Frame erstreckt, oder von einem jeweiligen Block in einem Vorwärts-Referenzframe zu einem nachfolgenden Frame relativ zum derzeitigen Frame.
  7. Verfahren nach Anspruch 1, wobei die zusammenhängenden Bewegungsvektoren mit Blocks verbunden sind, die an den derzeitigen Block angrenzen, und wobei der Suchbereich-Vektor SR in der Durchführung der Bewegungsabschätzung für den derzeitigen Block verwendet wird.
  8. Verfahren nach Anspruch 7, wobei die angrenzenden Blocks an den derzeitigen Block räumlich im derzeitigen Frame angrenzen.
  9. Verfahren nach Anspruch 7, wobei die angrenzenden Blocks in zeitlich angrenzenden Frames relativ zum derzeitigen Frame auftreten und dem derzeitigen Block entsprechen.
  10. System, umfassend: einen Prozessor; und einen mit dem Prozessor in Kommunikation stehenden Speicher, um eine Vielzahl an Verarbeitungsbefehlen zu speichern, um den Prozessor anzuweisen, eine Reihe von Bewegungsvektoren bezogen auf Blocks, die mit einem derzeitigen Block verbunden sind, zu bestimmen; einen Durchschnittswert (mean value, mv) von zusammenhängenden Bewegungsvektoren zu berechnen; und einen Suchbereich-Vektor SR gemäß einer Formel zu berechnen SR = (α·mv) + β, wobei α ein vorherbestimmter konstanter Skalar und β ein vorherbestimmter konstanter Vektor ist, und wobei SR verwendet wird, um eine Bewegungssuche in der Durchführung der Bewegungsabschätzung für den derzeitigen Block zu begrenzen.
  11. System nach Anspruch 10, wobei der Prozessor und Speicher in einem Videoencoder enthalten sind.
  12. System nach Anspruch 10, wobei der Prozessor und Speicher in einem Videodecoder enthalten sind.
  13. System nach Anspruch 10, wobei α = 1,1 und β = (4, 4) ist.
  14. System nach Anspruch 10, wobei die zusammenhängenden Bewegungsvektoren mit den jeweiligen Blocks eines Referenzframes verbunden sind, und wobei der Suchbereich-Vektor SR verwendet wird, um die Bewegungsabschätzung für den derzeitigen Block eines derzeitigen Frames und für alle anderen Blocks im derzeitigen Frame durchzuführen.
  15. System nach Anspruch 14, wobei sich jeder der zusammenhängenden Bewegungsvektoren von einem jeweiligen Block eines Rückwärts-Referenzframes zu einem entsprechenden Block eines Vorwärts-Referenzframes erstreckt.
  16. System nach Anspruch 14, wobei sich jeder der zusammenhängenden Bewegungsvektoren von einem jeweiligen Block eines ersten Vorwärts-Referenzframes zu einem entsprechenden Block eines zweiten Vorwärts-Referenzframes erstreckt.
  17. System nach Anspruch 14, wobei sich jeder der zusammenhängenden Bewegungsvektoren von einem jeweiligen Block in einem Rückwärts-Referenzframe zu einem vorherigen Frame relativ zum derzeitigen Frame erstreckt, oder von einem jeweiligen Block in einem Vorwärts-Referenzframe zu einem nachfolgenden Frame relativ zum derzeitigen Frame.
  18. System nach Anspruch 10, wobei die zusammenhängenden Bewegungsvektoren mit Blocks verbunden sind, die an den derzeitigen Block angrenzen, und wobei der Suchbereich-Vektor SR in der Durchführung der Bewegungsabschätzung für den derzeitigen Block verwendet wird.
  19. System nach Anspruch 18, wobei die angrenzenden Blocks an den derzeitigen Block räumlich im derzeitigen Frame grenzen.
  20. System nach Anspruch 18, wobei die angrenzenden Blocks in zeitlich angrenzenden Frames relativ zum derzeitigen Frame auftreten und dem derzeitigen Block entsprechen.
  21. Ein Computerprogramm-Produkt einschließlich eines computerlesbaren Mediums, in dem Computerprogrammlogik gespeichert ist, wobei die Computerprogrammlogik beinhaltet: Logik, um einen Prozessor zu veranlassen, eine Reihe von Bewegungsvektoren zu bestimmen, die mit Blocks in Beziehung stehen, die mit einem derzeitigen Block verbunden sind; Logik, um weiter den Prozessor zu veranlassen, einen Durchschnittswert (mean value, mv) der zusammenhängenden Bewegungsvektoren zu berechnen; und Logik, um weiter den Prozessor zu veranlassen, einen Suchbereich-Vektor SR zu berechnen gemäß der Formel SR = (α·mv)+ β, wobei α ein vorherbestimmter konstanter Skalar und β ein vorherbestimmter konstanter Vektor ist, und SR eine Bewegungssuche in der Durchführung der Bewegungsabschätzung für den derzeitigen Block begrenzt.
  22. Das Computerprogramm-Produkt nach Anspruch 21, wobei α = 1,1 und β = (4, 4) ist.
  23. Computerprogramm-Produkt nach Anspruch 21, wobei die zusammenhängenden Bewegungsvektoren mit den jeweiligen Blocks eines Referenzframes verbunden sind, und wobei der Suchbereich-Vektor SR verwendet wird, um die Bewegungsabschätzung für den derzeitigen Block eines derzeitigen Frames und für alle anderen Blocks im derzeitigen Frame durchzuführen.
  24. Computerprogramm-Produkt nach Anspruch 23, wobei sich jeder der zusammenhängenden Bewegungsvektoren von einem jeweiligen Block eines ersten Vorwärts-Referenzframes zu einem entsprechenden Block eines zweiten Vorwärts-Referenzframes erstreckt.
  25. Computerprogramm-Produkt nach Anspruch 23, wobei sich jeder der zusammenhängenden Bewegungsvektoren von einem jeweiligen Block eines ersten Vorwärts-Referenzframes zu einem entsprechenden Block eines zweiten Vorwärts-Referenzframes erstreckt.
  26. Computerprogramm-Produkt nach Anspruch 23, wobei sich jeder der zusammenhängenden Bewegungsvektoren von einem jeweiligen Block in einem Rückwärts-Referenzframe zu einem vorherigen Frame relativ zum derzeitigen Frame erstreckt, oder von einem jeweiligen Block in einem Vorwärts-Referenzframe zu einem nachfolgenden Frame relativ zum derzeitigen Frame.
  27. Computerprogramm-Produkt nach Anspruch 21, wobei die zusammenhängenden Bewegungsvektoren mit Blocks verbunden sind, die an den derzeitigen Block angrenzen, und wobei der Suchbereich-Vektor SR in der Durchführung der Bewegungsabschätzung für den derzeitigen Block verwendet wird.
  28. Computerprogramm-Produkt nach Anspruch 27, wobei die angrenzenden Blocks an den derzeitigen Block räumlich im derzeitigen Frame angrenzen.
  29. Computerprogramm-Produkt nach Anspruch 27, wobei die angrenzenden Blocks in zeitlich angrenzenden Frames relativ zum derzeitige Frame auftreten und dem derzeitigen Block entsprechen.
DE102010046508.9A 2009-10-20 2010-09-24 Verfahren und Vorrichtung, um einen Suchbereich für die Bewegungsabschätzung adaptiv auszuwählen Active DE102010046508B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/582,061 2009-10-20
US12/582,061 US8462852B2 (en) 2009-10-20 2009-10-20 Methods and apparatus for adaptively choosing a search range for motion estimation

Publications (2)

Publication Number Publication Date
DE102010046508A1 true DE102010046508A1 (de) 2011-06-01
DE102010046508B4 DE102010046508B4 (de) 2021-11-25

Family

ID=43086778

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010046508.9A Active DE102010046508B4 (de) 2009-10-20 2010-09-24 Verfahren und Vorrichtung, um einen Suchbereich für die Bewegungsabschätzung adaptiv auszuwählen

Country Status (7)

Country Link
US (2) US8462852B2 (de)
JP (1) JP4928627B2 (de)
KR (2) KR101239567B1 (de)
CN (1) CN102045563B (de)
DE (1) DE102010046508B4 (de)
GB (1) GB2474745B (de)
TW (1) TWI495328B (de)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8462852B2 (en) 2009-10-20 2013-06-11 Intel Corporation Methods and apparatus for adaptively choosing a search range for motion estimation
US8917769B2 (en) 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
US9509995B2 (en) 2010-12-21 2016-11-29 Intel Corporation System and method for enhanced DMVD processing
US9654792B2 (en) 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
US10250885B2 (en) 2000-12-06 2019-04-02 Intel Corporation System and method for intracoding video data

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110002387A1 (en) * 2009-07-03 2011-01-06 Yi-Jen Chiu Techniques for motion estimation
US8855205B2 (en) * 2010-05-26 2014-10-07 Newratek Inc. Method of predicting motion vectors in video codec in which multiple references are allowed, and motion vector encoding/decoding apparatus using the same
US9300970B2 (en) 2010-07-09 2016-03-29 Samsung Electronics Co., Ltd. Methods and apparatuses for encoding and decoding motion vector
KR102221331B1 (ko) * 2010-11-24 2021-03-03 벨로스 미디어 인터내셔널 리미티드 움직임 벡터 산출 방법, 화상 부호화 방법, 화상 복호 방법, 움직임 벡터 산출 장치 및 화상 부호화 복호 장치
CN106878742B (zh) 2011-01-12 2020-01-07 太阳专利托管公司 动态图像编解码装置
WO2012114694A1 (ja) * 2011-02-22 2012-08-30 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号方法、および、動画像復号装置
KR101878008B1 (ko) 2011-03-03 2018-07-13 선 페이턴트 트러스트 동화상 부호화 방법, 동화상 복호 방법, 동화상 부호화 장치, 동화상 복호 장치 및 동화상 부호화 복호 장치
MX2014000159A (es) 2011-07-02 2014-02-19 Samsung Electronics Co Ltd Metodo y aparato para la codificacion de video, y metodo y aparato para la decodificacion de video acompañada por inter prediccion utilizando imagen co-localizada.
US20130107960A1 (en) * 2011-11-02 2013-05-02 Syed Ali Scene dependent motion search range adaptation
TWI461066B (zh) * 2011-11-03 2014-11-11 Ind Tech Res Inst 彈性調整估算搜尋範圍的移動估算方法及視差估算方法
CN107493474B (zh) * 2011-11-08 2021-01-12 株式会社Kt 利用解码装置对视频信号进行解码的方法
US10021387B2 (en) 2012-04-20 2018-07-10 Intel Corporation Performance and bandwidth efficient fractional motion estimation
GB2512829B (en) * 2013-04-05 2015-05-27 Canon Kk Method and apparatus for encoding or decoding an image with inter layer motion information prediction according to motion information compression scheme
CN103281533B (zh) * 2013-05-14 2016-02-24 芯原微电子(北京)有限公司 用于可伸缩视频编码中增强层运动估计的设备和方法
KR101382367B1 (ko) * 2013-11-13 2014-04-09 주식회사 아나패스 움직임 추정 방법 및 이를 이용한 영상 처리 장치
TWI538487B (zh) 2013-12-05 2016-06-11 財團法人工業技術研究院 螢幕視訊之預測編碼的方法與系統
US20150208082A1 (en) * 2014-01-21 2015-07-23 Vixs Systems, Inc. Video encoder with reference picture prediction and methods for use therewith
JP6159292B2 (ja) * 2014-05-26 2017-07-05 日本電信電話株式会社 動きベクトル検出装置、動きベクトル検出方法及び動きベクトル検出プログラム
JP6538609B2 (ja) * 2016-05-11 2019-07-03 日本電信電話株式会社 動きベクトル検出装置、動きベクトル検出方法及び動きベクトル検出プログラム
CN106851302B (zh) * 2016-12-22 2019-06-25 国网浙江省电力公司杭州供电公司 一种基于帧内编码压缩域的监控视频运动目标检测方法
MX2020007969A (es) * 2018-01-29 2020-10-28 Vid Scale Inc Conversión de velocidad ascendente de fotogramas con complejidad baja.
CN109145744B (zh) * 2018-07-19 2020-08-18 西安理工大学 一种基于自适应预测模式的lstm网络行人重识别方法
WO2020084476A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Sub-block based prediction
CN111083492B (zh) 2018-10-22 2024-01-12 北京字节跳动网络技术有限公司 双向光流中的梯度计算
CN111436230A (zh) 2018-11-12 2020-07-21 北京字节跳动网络技术有限公司 仿射预测的带宽控制方法
CN113170093B (zh) 2018-11-20 2023-05-02 北京字节跳动网络技术有限公司 视频处理中的细化帧间预测
WO2020177755A1 (en) 2019-03-06 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Usage of converted uni-prediction candidate
US20220150532A1 (en) * 2019-03-11 2022-05-12 Telefonaktiebolaget Lm Ericsson (Publ) Motion refinement and weighted prediction
KR20230169434A (ko) 2019-04-02 2023-12-15 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 디코더 측 움직임 벡터 유도
CN116074533B (zh) * 2023-04-06 2023-08-22 湖南国科微电子股份有限公司 运动矢量预测方法、系统、电子设备及存储介质

Family Cites Families (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0170932B1 (ko) * 1994-12-29 1999-03-20 배순훈 영상의 시각적, 기하학적 특성에 따른 고속 움직임 추정장치
EP0883860B1 (de) * 1996-02-29 2006-08-23 Acuson Corporation System, verfahren und wandler zum ausrichten mehrerer ultraschallbilder
JPH1023420A (ja) * 1996-07-02 1998-01-23 Matsushita Electric Ind Co Ltd 動き検出方法および動き検出装置
GB2320388B (en) 1996-11-29 1999-03-31 Sony Corp Image processing apparatus
JP3226020B2 (ja) * 1997-05-28 2001-11-05 日本電気株式会社 動きベクトル検出装置
JP3149840B2 (ja) * 1998-01-20 2001-03-26 日本電気株式会社 動きベクトル検出装置及び方法
US6519005B2 (en) 1999-04-30 2003-02-11 Koninklijke Philips Electronics N.V. Method of concurrent multiple-mode motion estimation for digital video
JP2000350211A (ja) * 1999-06-07 2000-12-15 Toshiba Corp 動画像符号化方法及び動画像符号化装置
US6990151B2 (en) * 2001-03-05 2006-01-24 Intervideo, Inc. Systems and methods for enhanced error concealment in a video decoder
DE10127238C1 (de) 2001-05-28 2003-01-16 Demag Cranes & Components Gmbh Einrichtung zur Erfassung einer Seilbewegung für ein Hebezeug, insbesondere für einen pneumatisch betriebenen Seilbalancer
KR100408294B1 (ko) * 2001-09-05 2003-12-01 삼성전자주식회사 저전송율 동영상 부호화에 적합한 움직임 추정 방법
EP1294194B8 (de) * 2001-09-10 2010-08-04 Texas Instruments Incorporated Verfahren und Vorrichtung zur Bewegungsvektorenabschätzung
JP4472986B2 (ja) * 2001-09-12 2010-06-02 エヌエックスピー ビー ヴィ 動き推定および/または補償
JP2003169338A (ja) * 2001-09-18 2003-06-13 Matsushita Electric Ind Co Ltd 動きベクトル検出方法及び装置並びに方法プログラムを記録した媒体
JP4114859B2 (ja) * 2002-01-09 2008-07-09 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
KR100746315B1 (ko) 2002-01-18 2007-08-03 가부시끼가이샤 도시바 동화상 부호화방법 및 장치와 동화상 복호화방법 및 장치
KR100474285B1 (ko) * 2002-04-08 2005-03-08 엘지전자 주식회사 모션벡터결정방법
JP2003319400A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置、復号装置、画像処理装置、それらの方法およびプログラム
US7386048B2 (en) 2002-05-28 2008-06-10 Sharp Laboratories Of America, Inc. Methods and systems for image intra-prediction mode organization
US7289672B2 (en) 2002-05-28 2007-10-30 Sharp Laboratories Of America, Inc. Methods and systems for image intra-prediction mode estimation
JP2004048512A (ja) * 2002-07-12 2004-02-12 Renesas Technology Corp 動画像符号化方法と動画像符号化回路
US6707367B2 (en) 2002-07-23 2004-03-16 Broadcom, Corp. On-chip multiple tap transformer and inductor
US7023921B2 (en) * 2002-08-06 2006-04-04 Motorola, Inc. Method and apparatus for determining block match quality
US6925123B2 (en) * 2002-08-06 2005-08-02 Motorola, Inc. Method and apparatus for performing high quality fast predictive motion search
JP4198550B2 (ja) 2002-09-10 2008-12-17 株式会社東芝 フレーム補間方法およびこのフレーム補間方法を用いた装置
US7319862B1 (en) 2002-09-26 2008-01-15 Exphand, Inc. Block-based encoding and decoding information transference system and method
US7010279B2 (en) 2002-11-27 2006-03-07 Broadcom Corporation Radio frequency integrated circuit electro-static discharge circuit
KR100534207B1 (ko) * 2002-12-09 2005-12-08 삼성전자주식회사 비디오 부호화기의 움직임 추정기 및 그 방법
JP3968712B2 (ja) * 2003-04-28 2007-08-29 ソニー株式会社 動き予測補償装置及びその方法
JP2004343349A (ja) * 2003-05-14 2004-12-02 Matsushita Electric Ind Co Ltd 動きベクトル検出装置およびディジタルカメラ装置
US7526028B2 (en) 2003-07-25 2009-04-28 Taiwan Imaging-Tek Corp. Motion estimation method and apparatus for video data compression
JP2005057270A (ja) 2003-08-01 2005-03-03 Stmicroelectronics Sa 切換え可能なインダクタンス
JP4366571B2 (ja) * 2003-09-18 2009-11-18 日本電気株式会社 動画像符号化装置及び方法
US20050135481A1 (en) * 2003-12-17 2005-06-23 Sung Chih-Ta S. Motion estimation with scalable searching range
US7346109B2 (en) 2003-12-23 2008-03-18 Genesis Microchip Inc. Motion vector computation for video sequences
US7751482B1 (en) * 2004-02-27 2010-07-06 Vbrick Systems, Inc. Phase correlation based motion estimation in hybrid video compression
JP4252916B2 (ja) * 2004-03-18 2009-04-08 富士通マイクロエレクトロニクス株式会社 動きベクトルの探索範囲を決定する方法
KR100631777B1 (ko) * 2004-03-31 2006-10-12 삼성전자주식회사 다 계층의 모션 벡터를 효율적으로 압축하는 방법 및 장치
US7515637B2 (en) * 2004-05-21 2009-04-07 Broadcom Advanced Compression Group, Llc Video decoding for motion compensation with weighted prediction
EP1610560A1 (de) 2004-06-24 2005-12-28 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zur Erzeugung und zur Decodierung von codierten Bilddateien
US20050286777A1 (en) * 2004-06-27 2005-12-29 Roger Kumar Encoding and decoding images
JP4537136B2 (ja) * 2004-07-16 2010-09-01 財団法人北九州産業学術推進機構 動き推定方法及び動き推定装置、並びにプログラム
JP4699460B2 (ja) 2004-07-20 2011-06-08 クゥアルコム・インコーポレイテッド 時間的なビデオ圧縮における運動ベクトル予測のための方法および装置
US8553776B2 (en) 2004-07-21 2013-10-08 QUALCOMM Inorporated Method and apparatus for motion vector assignment
CN101023673B (zh) 2004-09-16 2011-06-08 汤姆逊许可证公司 具有利用局部亮度变化的加权预测的视频编解码器
US7764740B2 (en) 2004-11-24 2010-07-27 Electronics And Telecommunications Research Institute Fast block mode determining method for motion estimation, and apparatus thereof
TWI254571B (en) * 2004-12-07 2006-05-01 Sunplus Technology Co Ltd Method for fast multiple reference frame motion estimation
US8693540B2 (en) 2005-03-10 2014-04-08 Qualcomm Incorporated Method and apparatus of temporal error concealment for P-frame
US7526256B2 (en) 2005-05-25 2009-04-28 Broadcom Corporation Transformer-based multi-band RF front-end architecture
TWI277010B (en) 2005-09-08 2007-03-21 Quanta Comp Inc Motion vector estimation system and method
US8107748B2 (en) 2005-09-16 2012-01-31 Sony Corporation Adaptive motion search range
US8005308B2 (en) * 2005-09-16 2011-08-23 Sony Corporation Adaptive motion estimation for temporal prediction filter over irregular motion vector samples
EP1962302A4 (de) * 2005-12-16 2013-05-29 Murata Manufacturing Co Verbundtransformator und isoliertes schaltnetzteil
US9215475B2 (en) * 2006-02-02 2015-12-15 Thomson Licensing Method and apparatus for motion estimation using combined reference bi-prediction
US20070239546A1 (en) 2006-04-10 2007-10-11 Scott Blum Computer implemented interactive advertising system and method
US20070268964A1 (en) * 2006-05-22 2007-11-22 Microsoft Corporation Unit co-location-based motion estimation
TW200803516A (en) * 2006-06-02 2008-01-01 Tatung Co Ltd Moving estimation method
KR100829169B1 (ko) * 2006-07-07 2008-05-13 주식회사 리버트론 H.264 코딩의 압축모드 예측 장치 및 방법
JP4322904B2 (ja) 2006-09-19 2009-09-02 株式会社東芝 補間フレーム作成装置、動きベクトル検出装置、補間フレーム作成方法、動きベクトル検出方法、補間フレーム作成プログラムおよび動きベクトル検出プログラム
US7756348B2 (en) 2006-10-30 2010-07-13 Hewlett-Packard Development Company, L.P. Method for decomposing a video sequence frame
CN100548049C (zh) * 2007-01-09 2009-10-07 浙江大学 一种基于多参考帧的h.264快速运动估计的方法
US7675365B2 (en) * 2007-01-10 2010-03-09 Samsung Electro-Mechanics Systems and methods for power amplifiers with voltage boosting multi-primary transformers
KR101365574B1 (ko) * 2007-01-29 2014-02-20 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
US7586458B2 (en) 2007-03-19 2009-09-08 Ahmadreza Rofougaran Method and system for using a transformer for FM transmit and FM receive functionality
KR20080085423A (ko) 2007-03-20 2008-09-24 엘지전자 주식회사 Bma 연산기 및 이를 이용한 인코더
US20080240242A1 (en) 2007-03-27 2008-10-02 Nokia Corporation Method and system for motion vector predictions
US8160150B2 (en) * 2007-04-10 2012-04-17 Texas Instruments Incorporated Method and system for rate distortion optimization
US20080281685A1 (en) 2007-05-07 2008-11-13 Christopher Jaffe Media with embedded advertising
JP4523023B2 (ja) * 2007-08-07 2010-08-11 パナソニック株式会社 画像符号化装置および方法
KR101396365B1 (ko) * 2007-08-28 2014-05-30 삼성전자주식회사 영상의 시공간적 움직임 추정/보상 방법 및 장치
CN101378504B (zh) * 2007-08-31 2011-12-07 昆山杰得微电子有限公司 用于h.264编码的块匹配运动估计方法
KR101540138B1 (ko) * 2007-12-20 2015-07-28 퀄컴 인코포레이티드 적응적 조사영역을 갖는 모션추정 장치 및 방법
KR100929607B1 (ko) 2007-12-26 2009-12-03 한양대학교 산학협력단 엠펙-2 메인 프로파일에서 h.264/avc 베이스라인프로파일로의 트랜스코딩 방법
US9602774B2 (en) 2007-12-28 2017-03-21 Verizon Patent And Licensing Inc. Method and apparatus for providing virtual channels
US8044759B2 (en) * 2008-01-08 2011-10-25 Samsung Electro-Mechanics Overlapping compact multiple transformers
US20090207915A1 (en) * 2008-02-15 2009-08-20 Freescale Semiconductor, Inc. Scalable motion search ranges in multiple resolution motion estimation for video compression
KR20090095317A (ko) 2008-03-05 2009-09-09 삼성전자주식회사 영상 부호화 및 복호화 방법 및 장치
EP2266318B1 (de) * 2008-03-19 2020-04-22 Nokia Technologies Oy Kombinierte bewegungsvektor- und referenzindexvorhersage für die videocodierung
US20090238268A1 (en) * 2008-03-20 2009-09-24 Mediatek Inc. Method for video coding
WO2009126260A1 (en) * 2008-04-11 2009-10-15 Thomson Licensing Methods and apparatus for template matching prediction (tmp) in video encoding and decoding
US20090323807A1 (en) 2008-06-30 2009-12-31 Nicholas Mastronarde Enabling selective use of fractional and bidirectional video motion estimation
TWI357086B (en) * 2008-07-03 2012-01-21 Advanced Semiconductor Eng Transformer and method for adjusting mutual induct
TW201019620A (en) 2008-11-04 2010-05-16 Ra Link Technology Corp Front-end architecture of RF transceiver and transceiver chip thereof
US8358696B2 (en) 2008-12-31 2013-01-22 Intel Corporation Motion estimation techniques
US20110286523A1 (en) * 2009-01-29 2011-11-24 Anthony Peter Dencher Method and apparatus for efficient hardware motion estimation
WO2010086041A1 (en) 2009-01-30 2010-08-05 Gottfried Wilhelm Leibniz Universität Hannover Method and apparatus for coding and decoding a video signal
US8076996B2 (en) 2009-02-10 2011-12-13 Electronics And Telecommunications Research Institute Hybrid balun apparatus
US8279018B1 (en) 2009-03-16 2012-10-02 Marvell International Ltd. Trifila balun for wireless transceiver
US8295551B2 (en) * 2009-04-08 2012-10-23 Samsung Electronics Co., Ltd. System and method of adaptive vertical search range tracking for motion estimation in digital video
US8494056B2 (en) 2009-05-21 2013-07-23 Ecole De Technologie Superieure Method and system for efficient video transcoding
US8917769B2 (en) 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
US9654792B2 (en) * 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
US8462852B2 (en) 2009-10-20 2013-06-11 Intel Corporation Methods and apparatus for adaptively choosing a search range for motion estimation
US20110002387A1 (en) * 2009-07-03 2011-01-06 Yi-Jen Chiu Techniques for motion estimation
GB2477033B (en) 2009-07-03 2012-04-18 Intel Corp Techniques for motion estimation
JP5216710B2 (ja) 2009-07-24 2013-06-19 日立コンシューマエレクトロニクス株式会社 復号化処理方法
JP5248632B2 (ja) 2010-01-14 2013-07-31 インテル コーポレイション 動き推定のための技術
US7940152B1 (en) * 2010-05-21 2011-05-10 Samsung Electro-Mechanics Company, Ltd. Multi-primary and distributed secondary transformer for power amplifier systems
WO2012045225A1 (en) 2010-10-06 2012-04-12 Intel Corporation System and method for low complexity motion vector derivation
JP5721851B2 (ja) 2010-12-21 2015-05-20 インテル・コーポレーション Dmvd処理のシステムおよび方法の改善
US8519814B2 (en) 2011-09-30 2013-08-27 Intel Corporation Switchable transformer with embedded switches inside the windings

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10250885B2 (en) 2000-12-06 2019-04-02 Intel Corporation System and method for intracoding video data
US10701368B2 (en) 2000-12-06 2020-06-30 Intel Corporation System and method for intracoding video data
US8917769B2 (en) 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
US9445103B2 (en) 2009-07-03 2016-09-13 Intel Corporation Methods and apparatus for adaptively choosing a search range for motion estimation
US9538197B2 (en) 2009-07-03 2017-01-03 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
US9654792B2 (en) 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
US9955179B2 (en) 2009-07-03 2018-04-24 Intel Corporation Methods and systems for motion vector derivation at a video decoder
US10404994B2 (en) 2009-07-03 2019-09-03 Intel Corporation Methods and systems for motion vector derivation at a video decoder
US10863194B2 (en) 2009-07-03 2020-12-08 Intel Corporation Methods and systems for motion vector derivation at a video decoder
US11765380B2 (en) 2009-07-03 2023-09-19 Tahoe Research, Ltd. Methods and systems for motion vector derivation at a video decoder
US8462852B2 (en) 2009-10-20 2013-06-11 Intel Corporation Methods and apparatus for adaptively choosing a search range for motion estimation
US9509995B2 (en) 2010-12-21 2016-11-29 Intel Corporation System and method for enhanced DMVD processing

Also Published As

Publication number Publication date
CN102045563A (zh) 2011-05-04
DE102010046508B4 (de) 2021-11-25
GB2474745B (en) 2011-11-23
KR20120100853A (ko) 2012-09-12
GB2474745A (en) 2011-04-27
KR101713354B1 (ko) 2017-03-07
TW201121334A (en) 2011-06-16
US20110090964A1 (en) 2011-04-21
KR101239567B1 (ko) 2013-03-05
TWI495328B (zh) 2015-08-01
JP2011091794A (ja) 2011-05-06
GB201015985D0 (en) 2010-11-03
US9445103B2 (en) 2016-09-13
US20130336402A1 (en) 2013-12-19
CN102045563B (zh) 2014-06-18
KR20110043490A (ko) 2011-04-27
JP4928627B2 (ja) 2012-05-09
US8462852B2 (en) 2013-06-11

Similar Documents

Publication Publication Date Title
DE102010046508B4 (de) Verfahren und Vorrichtung, um einen Suchbereich für die Bewegungsabschätzung adaptiv auszuwählen
DE10300533B4 (de) Direktmodus-Bewegungsvektor-Berechnungsverfahren für B-Bilder
DE69834902T2 (de) Bewegungskompensierte prädiktive bildkodierung und -dekodierung
DE102010025816A1 (de) Verfahren und Systeme zum Abschätzen von Bewegung basierend auf rekonstruierten Referenzframes bei einem Videodecoder
DE19825042C2 (de) Verfahren zur Bewegungsvektorcodierung bei MPEG-4
DE69635369T2 (de) Videokodierungsvorrichtung
DE10300529B4 (de) Verfahren zum Kodieren bewegter Bilder
DE60215241T2 (de) Verfahren und Vorrichtung zur Reduzierung von Störungen in dekodierten Bildern mit Nachfilterung
DE102005029127A1 (de) Verfahren und Vorrichtung zur optimierten prädiktiven Videocodierung
DE102011008630A1 (de) Techniken zur Bewegungsseinschätzung
DE10300692A1 (de) Blockvorhersageverfahren unter Verwendung eines verbesserten Direkt-Modus
EP2490448A1 (de) Kodierverfahren und Bildkodiervorrichtung zur Kompression einer Bildsequenz
EP0259562A1 (de) Verfahren zur bewegungskompensierten Bild-zu-Bild-Prädiktionscodierung
EP2067359A2 (de) Verfahren zur datenkompression in einer videosequenz
DE102013015821B4 (de) System und Verfahren zur Verbesserung der Videokodierung unter Verwendung von Inhaltsinformation
DE112012000397T5 (de) Videocodiersystem unter Verwendung von implizierten Referenzframes
DE112005000033T5 (de) Adaptiv gewichtetes Bewegungsabschätzungsverfahren und Bildwechselfrequenz-Wandlereinrichtung, die das Verfahren einsetzt
DE102019103346A1 (de) Ssim-basierte rate-distortion-optimierung für eine verbesserte wahrnehmbare qualität bei videos
DE60213039T2 (de) MPEG4-Videokodierung mit "skipped macroblock" Mode
DE602005000425T2 (de) Verfahren und Anordnung zur Erzeugung von Kandidatenvektoren für Bildinterpolierungssysteme, die Bewegungsabschätzung und -kompensation verwenden
DE102011006036B4 (de) Verfahren und Vorrichtungen zur Bildung eines Prädiktionswertes
DE69636273T2 (de) Bewegtbildcodiervorrichtung, Bewegtbilddecodiervorrichtung und Bewegtbildcodier-/-Decodiervorrichtung
EP1101196B1 (de) Verfahren und anordnung zur bewegungsschätzung in einem digitalisierten bild mit bildpunkten
DE10392466T5 (de) Verfahren zur Abschätzung von Rückwertsbewegungs-Vektoren innerhalb einer Videosequenz
DE69824983T2 (de) Verfahren und Gerät zur Codierung durch Luminanzschätzung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04N0007260000

Ipc: H04N0019000000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04N0007260000

Ipc: H04N0019000000

Effective date: 20131204

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R081 Change of applicant/patentee

Owner name: TAHOE RESEARCH, LTD., IE

Free format text: FORMER OWNER: INTEL CORPORATION, SANTA CLARA, CALIF., US

R082 Change of representative

Representative=s name: DENNEMEYER & ASSOCIATES S.A., DE