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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/127—Prioritisation of hardware or computational resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/521—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/57—Motion estimation characterised by a search window with variable size or shape
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
- H04N5/145—Movement 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ührungsform100 durchgeführt werden kann. Bei der Ausführungsform von1 kann es zwei B-Frames,110 und115 , zwischen einem Vorwärts-Referenzframe120 und einem Rückwärts-Referenzframe130 geben. Frame110 kann der derzeitige Codierungsframe sein. Bei der Codierung des derzeitigen Blocks140 kann Spiegel-ME durchgeführt werden, um Bewegungsvektoren zu erhalten, indem Suchläufe in den Suchfenstern160 und170 der Referenzframes120 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 und180 gezeigt in1 . 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 Bild110 können die zwei Referenzbilder, FWRef120 und BWRef130 in einem Referenzpuffer verfügbar sein. Angenommen der verfügbare Block-MV zwischen BWRef130 und FWRef120 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 Referenzframe220 ) und FWRef1 (gezeigt als Referenzframe230 ) verwenden kann. Diese Referenzframes können verwendet werden, um einen Bewegungsvektor für einen Zielblock240 in einem derzeitigen Frame210 abzuleiten. Ein Suchfenster270 kann in Referenzframe220 spezifiziert sein, und ein Suchpfad kann in Suchfenster270 spezifiziert sein. Für jeden Bewegungsvektor MV0 in dem Suchpfad kann sein projektiver Bewegungsvektor MV1 in Suchfenster260 von Referenzframe230 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 Referenzblock280 , auf den durch MV0 in Referenzframe220 gezeigt wird, und (2) dem Referenzblock250 , auf den durch MV1 in Referenzframe230 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 Zielblock240 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 und180 gezeigt in1 . 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 (Frame220 von2 ) und FWRef1 (Frame430 ). 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ührungsform300 , die eine oder mehrere angrenzende Blocks340 (hier gezeigt als Blocks darüber und links vom Zielblock330 ) in einem derzeitigen Frame310 verwenden kann. Das kann die Generierung eines Bewegungsvektors basierend auf einem oder mehreren entsprechenden Blocks350 und355 in einem vorherigen Referenzframe320 und einem nachfolgenden Referenzframe360 ermöglichen, wo sich die Begriffe „vorherig” und „nachfolgend” auf eine zeitliche Reihenfolge beziehen. Der Bewegungsvektor kann dann auf Zielblock330 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ührungsform400 gezeigt. Um einen Zielblock430 in einem derzeitigen Frame410 zu codieren, kann man bereits decodierte Pixel verwenden, wobei diese Pixel in einem entsprechenden Block440 eines vorherigen Frames415 und in einem entsprechenden Block465 eines nachfolgenden Frames455 gefunden werden können. Ein erster Bewegungsvektor kann für den entsprechenden Block440 anhand der Durchführung einer Bewegungssuche durch einen oder mehrere Blocks450 des Referenzframes420 abgeleitet werden. Block(s)450 können an einen Block im Referenzframe420 grenzen, der dem Block440 des vorherigen Frames415 entspricht. Ein zweiter Bewegungsvektor kann für den entsprechenden Block465 des nachfolgenden Frames455 anhand der Durchführung einer Bewegungssuche durch einen oder mehrere Blocks470 des Referenzframes460 abgeleitet werden. Block(s)470 kann an einen Block im Referenzframe460 grenzen, der dem Block465 des nachfolgenden Frames455 entspricht. Basierend auf den ersten und zweiten Bewegungsvektoren, können die Vorwärts- und/oder Rückwärtsbewegungsvektoren für den Zielblock430 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 Referenzframe420 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 Beispiel500 , das einen Block der unteren Schicht540 entsprechend dem Zielblock530 des derzeitigen Bildes510 verwendet. Der Block540 kann in einem Bild515 auftreten, der dem derzeitigen Bild510 entspricht. Der entsprechende Block540 kann verwendet werden, um die Bewegungssuche, bei gegebenen ein oder mehreren Blocks550 und570 in den jeweiligen Referenzbildern520 und560 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 Zielblock530 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 Zielframe530 im derzeitigen Bild510 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 in6 gemäß einer Ausführungsform veranschaulicht. Bei610 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. Bei630 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 bei640 . - Ein Prozess
700 , um einen Suchbereich-Vektor auf Bildniveau adaptiv zu bestimmen, ist in7 gemäß einer Ausführungsform veranschaulicht. Bei710 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. Bei720 kann der Durchschnittswert der Vektoren Ref_MVi berechnet werden. Das resultiert in einem Vektor mv_ref. Bei730 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 bei740 . - 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. System800 kann einen Prozessor820 und einen Speicherkörper810 beinhalten, der ein oder mehr computerlesbare Medien beinhalten kann, die eine Computerprogrammlogik840 speichern können. Speicher810 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. Prozessor820 und Speicher810 können mittels einer von vielen Technologien, die einem Fachmann bekannt sind, wie z. B. einem Bus, in Kommunikation stehen. In Speicher810 enthaltene Logik kann von Prozessor820 gelesen und ausgeführt werden. Ein oder mehr I/O-(Eingabe/Ausgabe)-Ports und/oder I/O-(Eingabe-/Ausgabe)-Geräte, insgesamt als I/O830 gezeigt, kann/können ebenfalls mit Prozessor820 und Speicher810 verbunden sein. - Computerprogrammlogik
840 kann Bewegungsabschätzungslogik860 beinhalten. Bewegungsabschätzungslogik860 kann, wenn sie ausgeführt wird, die vorstehend beschriebene Bewegungsabschätzungsverarbeitung durchführen. Die Bewegungsabschätzungslogik860 kann zum Beispiel projektive Bewegungsabschätzungslogik umfassen, welche die oben beschriebenen Operationen durchführen kann, wenn sie ausgeführt wird. Logik860 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-Berechnungslogik850 durchgeführt werden. Dieses Modul kann deshalb die Operationen, die in6 und7 gezeigt sind, ausführen. Sobald der Suchbereich-Vektor generiert ist, kann man diesen Vektor verwenden, um die Suche, die von Bewegungsabschätzungslogik860 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-Architektur900 , die ein MV-Selbstableitungsmodul940 umfassen kann, wobei H.264 ein Videocodec-Standard ist. Information über das derzeitige Video kann von einem derzeitigen Videoblock910 in Form von einer Vielzahl an Frames bereitgestellt werden. Das derzeitige Video kann an eine Differenzierungseinheit911 weitergegeben werden. Die Differenzierungseinheit911 kann Teil der Differenzialpulsecodemodulation-(DPCM)(auch als Kernvideocodierung bezeichnet)-Schleife sein, die eine Bewegungskompensationsphase922 und eine Bewegungsabschätzungsphase918 umfassen kann. Die Schleife kann ebenfalls eine interne Vorhersagephase920 und interne Interpolationsphase924 umfassen. In einigen Fällen kann auch ein schleifeninterner Deblocking-Filter926 in der Schleife verwendet sein. - Das derzeitige Video
910 kann der Differenzierungseinheit911 und der Bewegungsabschätzungsphase918 bereitgestellt werden. Die Bewegungskompensationsphase922 oder die interne Interpolationphase924 kann einen Ausgang durch einen Switch923 erzeugen, der dann vom derzeitigen Video910 abgezogen werden kann, um einen Restwert zu erzeugen. Der Restwert kann dann in Transformier/Quantisier-Phase912 transformiert und quantisiert und der Entropie-Codierung im Block914 unterzogen werden. Eine Kanalausgabe erfolgt bei Block916 . - Der Ausgang der Bewegungskompensationphase
922 oder Zwischeninterpolationsphase924 kann einem Summator933 bereitgestellt werden, der ebenfalls einen Eingang von der Rückquantisierungseinheit930 und der Rücktransformationseinheit932 empfangen kann. Diese letzten zwei Einheiten können die Transformation und Quantisierung der Transformier/Quantisier-Phase912 annullieren. Die Rücktransformationseinheit932 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-Selbstableitungsmodul940 kann den Ausgang des schleifeninternen Deblocking-Filters926 empfangen und einen Ausgang an die Bewegungskompensationsphase922 bereitstellen. -
10 zeigt einen H.264-Videodecoder1000 mit einem MV-Selbstableitungsmodul1010 . Hier kann ein Decoder1000 für den Encoder900 der9 einen Kanaleingang1038 umfassen, der mit einer Entropie-Decodiereinheit1040 gekoppelt ist. Der Ausgang von Decodiereinheit1040 kann einer Rückquantisierungseinheit1042 , Rücktransformiereinheit1044 und dem MV-Selbstableitungsmodul1010 bereitgestellt werden. Das MV-Selbstableitungsmodul1010 kann mit einer Bewegungskompensationseinheit1048 gekoppelt sein. Der Ausgang der Entropie-Decodiereinheit1040 kann ebenfalls einer internen Interpolationseinheit1054 bereitgestellt werden, die einen Auswahl-Switch1023 bedienen kann. Die Information von Rücktransformationseinheit1044 und entweder der Bewegungskompensationseinheit1048 oder der internen Interpolationseinheit1054 , wie ausgewählt durch Switch1023 , kann dann summiert und einer schleifeninternen Deblocking-Einheit1046 bereitgestellt und der internen Interpolationseinheit1054 wieder zugeführt werden. Der Ausgang der schleifeninternen Deblocking-Einheit1046 kann dann dem MV-Selbstableitungsmodul1010 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)
- 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) + β, - Verfahren nach Anspruch 1, wobei α = 1,1 und β = (4, 4) ist.
- 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.
- 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.
- 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.
- 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.
- 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.
- Verfahren nach Anspruch 7, wobei die angrenzenden Blocks an den derzeitigen Block räumlich im derzeitigen Frame angrenzen.
- Verfahren nach Anspruch 7, wobei die angrenzenden Blocks in zeitlich angrenzenden Frames relativ zum derzeitigen Frame auftreten und dem derzeitigen Block entsprechen.
- 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) + β, - System nach Anspruch 10, wobei der Prozessor und Speicher in einem Videoencoder enthalten sind.
- System nach Anspruch 10, wobei der Prozessor und Speicher in einem Videodecoder enthalten sind.
- System nach Anspruch 10, wobei α = 1,1 und β = (4, 4) ist.
- 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.
- 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.
- 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.
- 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.
- 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.
- System nach Anspruch 18, wobei die angrenzenden Blocks an den derzeitigen Block räumlich im derzeitigen Frame grenzen.
- System nach Anspruch 18, wobei die angrenzenden Blocks in zeitlich angrenzenden Frames relativ zum derzeitigen Frame auftreten und dem derzeitigen Block entsprechen.
- 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)+ β, - Das Computerprogramm-Produkt nach Anspruch 21, wobei α = 1,1 und β = (4, 4) ist.
- 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.
- 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.
- 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.
- 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.
- 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.
- Computerprogramm-Produkt nach Anspruch 27, wobei die angrenzenden Blocks an den derzeitigen Block räumlich im derzeitigen Frame angrenzen.
- Computerprogramm-Produkt nach Anspruch 27, wobei die angrenzenden Blocks in zeitlich angrenzenden Frames relativ zum derzeitige Frame auftreten und dem derzeitigen Block entsprechen.
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)
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)
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)
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 |
-
2009
- 2009-10-20 US US12/582,061 patent/US8462852B2/en active Active
-
2010
- 2010-09-20 TW TW099131820A patent/TWI495328B/zh not_active IP Right Cessation
- 2010-09-21 JP JP2010211120A patent/JP4928627B2/ja active Active
- 2010-09-23 GB GB1015985A patent/GB2474745B/en active Active
- 2010-09-24 DE DE102010046508.9A patent/DE102010046508B4/de active Active
- 2010-09-26 CN CN201010507057.2A patent/CN102045563B/zh active Active
- 2010-10-20 KR KR1020100102216A patent/KR101239567B1/ko active IP Right Grant
-
2012
- 2012-07-23 KR KR1020120079944A patent/KR101713354B1/ko not_active Application Discontinuation
-
2013
- 2013-05-16 US US13/895,939 patent/US9445103B2/en active Active
Cited By (12)
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 |