NO342643B1 - Makroblokknivå adaptiv ramme-/feltkoding på makroblokknivå for digitalt videoinnhold - Google Patents

Makroblokknivå adaptiv ramme-/feltkoding på makroblokknivå for digitalt videoinnhold Download PDF

Info

Publication number
NO342643B1
NO342643B1 NO20170267A NO20170267A NO342643B1 NO 342643 B1 NO342643 B1 NO 342643B1 NO 20170267 A NO20170267 A NO 20170267A NO 20170267 A NO20170267 A NO 20170267A NO 342643 B1 NO342643 B1 NO 342643B1
Authority
NO
Norway
Prior art keywords
field
frame
macroblocks
mode
block
Prior art date
Application number
NO20170267A
Other languages
English (en)
Other versions
NO20170267A1 (no
Inventor
Ajay Luthra
Limin Wang
Rajeev Gandhi
Krit Panusopone
Original Assignee
Motorola Mobility Llc
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
Priority claimed from PCT/US2002/037739 external-priority patent/WO2003047272A2/en
Publication of NO20170267A1 publication Critical patent/NO20170267A1/no
Application filed by Motorola Mobility Llc filed Critical Motorola Mobility Llc
Publication of NO342643B1 publication Critical patent/NO342643B1/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for 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/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/103Selection of coding mode or of prediction mode
    • H04N19/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
    • 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/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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction

Abstract

Oppfinnelsen angår en fremgangsmåte og et system for koding og dekoding av digitalt videoinnhold. Det digitale videoinnholdet innbefatter en strøm av bilder som hver kan være innbyrdes, predikterte eller bipredikterte bilder. Hver av bildene innbefatter makroblokker som videre kan deles i mindre blokker. Fremgangsmåten angir koding og dekoding hver av de mindre blokkene i hvert bilde i strømmen av bilder i enten rammemodus eller feltmodus.

Description

Foreliggende oppfinnelse angår koding og dekoding av digitalt videoinnhold. Mer bestemt angår foreliggende oppfinnelse rammemoduskoding og feltmoduskoding av digitalt videoinnhold på makroblokknivå slik det anvendes i MPEG-4 del 10 AVC/H.264 standarden som videokodingsstandard.
Videokomprimering anvendes i mange nåtidige og kommende produkter. Det er en vesentlig del av digitale fjernsyns-sett-topp-bokser (STB’er), digitale satellittsystemer (DSS), dekodere for høydefinisjonstelevisjon (HDTV), spillere for digitale bildeplater (DVD), videokonferanser, internettvideo og multimediainnhold, og andre digitale videoanvendelser. Uten videokomprimering kan det digitale videoinnholdet være ekstremt stort, hvilket gjør det vanskelig eller kanskje til og med umulig at det digitale videoinnholdet kan effektivt lagres, overføres eller bli betraktet.
Det digitale videoinnholdet innbefatter en strøm av bilder som kan fremvises som et bilde på en fjernsynsmottaker, datamaskinskjerm eller en annen elektronisk innretning som er i stand til å fremvise det digitale videoinnholdet. Et bilde som fremvises i tid før et bestemt bilde er i et ”reversretningsforhold” til det bestemte bildet. Likeledes er et bilde som fremvises etter et bestemt bilde i det ”foroverretningsforhold” til det bestemte bildet.
Videokomprimering oppnås i en kodingsprosess i hvilken hvert bilde kodes som enten en ramme eller som to felt. Hver ramme innbefatter et antall linjer med romlig informasjon. Eksempelvis inneholder en typisk ramme 480 horisontallinjer. Hvert felt inneholder halve linjeantallet i rammen. Som eksempel, hvis rammen innbefatter 480 horisontallinjer innbefatter hvert felt 240 horisontallinjer. I en typisk konfigurasjon omfatter et av feltene oddetallslinjene i rammen og det andre feltet omfatter liketallslinjene i rammen. Feltet som omfatter oddetallslinjene vil bli omtalt som ”topp”-feltet i det heri etterfølgende og i de vedfølgende krav, med mindre annet spesielt er angitt. Likeledes omtales de liketallsnummererte linjer som ”bunnfeltet” i det heri etterfølgende og i de vedfølgende krav, med mindre annet er angitt. De to feltene kan være innfelt sammen for å danne en innfelt ramme.
Den generelle tanke bak videokoding er å fjerne data fra det digitale videoinnholdet som anses som ”ikke-essensiell”. Den reduserte datamengden krever da mindre båndbredde for kringkasting eller overføring. Etter at de komprimerte videodata har blitt overført, må de dekodes, eller dekomprimeres. I denne prosessen prosesseres de overført videodata for å fremstille tilnærmingsdata som erstattes i videodataene for å erstatte de ”ikke-essensielle” data som blir fjernet i kodingsprosessen.
Videokoding omformer det digitale videoinnholdet til en komprimert form som kan lagres ved bruk av mindre plass og som kan overføres ved bruk av mindre båndbredde enn for ukomprimert, digitalt videoinnhold. Dette oppnås ved å dra fordel av de tidsmessige og romlige redundanser i videoinnholdets bilder. Det digitale videoinnholdet kan lagres på et lagringsmedium slik som en harddisk, DVD eller et annet ikke-flyktig lagringsmedium.
Det foreligger et antall videokodingsfremgangsmåter som komprimerer det digitale videoinnholdet. Følgelig har videokodingsstandardene blitt utviklet for å standardisere de forskjellige videokodingsmetodene slik at det komprimerte digitale videoinnholdet gjengis i formater som en majoritet av videokodere og dekodere kan gjenkjenne. Som eksempel har Motion Picture Experts Group (MPEG) og International Telecommunication Union (ITU-T) utviklet videokodingsstandarder som anvendes i bredt omfang. Eksempler på disse standardene innbefatter MPEG-1, MPEG-2, MPEG-4, ITU-T H261 og ITU-T H263 standarder.
De fleste moderne videokodingsstandarder, slik som de som er utviklet av MPEG ITU-T, er til dels basert på en algoritme for tidsmessig forutsigelse med bevegelseskompensasjon (MC). Tidsmessig forutsigelse med bevegelseskompensasjon anvendes for å fjerne tidsmessig redundans mellom påfølgende bilder i en digital videokringkasting.
Algoritmen for tidsmessig forutsigelse med bevegelseskompensasjon benytter vanligvis et eller to referansebilder for å kode et bestemt bilde. Et referansebilde er et bilde som allerede har blitt kodet. Ved å sammenligne det bestemte bildet som skal kodes med et av referansebildene, kan algoritmen for tidsmessig forutsigelse med bevegelseskompensasjon dra fordel av den tidsmessige redundans som foreligger mellom referansebildet og det bestemte bildet som skal kodes og så kode bildet med en større kompresjonsgrad enn om bildet ble kodet uten bruk av algoritmen for tidsmessig forutsigelse med bevegelseskompensasjon. Et av referansebildene kan være i reversretning i forhold til det bestemte bildet som skal kodes. Det andre referansebildet er i foroverretningen i forhold til det bestemte bildet som skal kodes.
Imidlertid, etter som krav om høyere oppløsning, mer sammensatt grafisk innhold og hurtigere overføringstid øker, følger også behovet for bedre fremgangsmåter for videokomprimering. For dette formål utvikles for tiden en ny videokodingsstandard i fellesskap av ISO og ITU-T. Den nye videokodingsstandarden kalles MPEG-4 Advanced Video Coding (AVC)/H.264 standard.
I BORGWARDT P., Core Experiment on Interlaced Video coding VCEG-N85, ITU-T TELECOMMUNICATION STANDARIZATION SECTOR OF ITU-T Q.6/SG 16 Video Coding Expert Group (VCEG), 2001.09.24, Santa Barbara, CS, USA, sidene 1-10 vises det en metode for koding og dekoding av digitalt bildeinnhold.
I US6226327B1 beskrives det en videokodemetode og apparat som velger mellom rammebasert og feltbasert predikteringsmodus. Dokumentet beskriver rammebasert prediksjon av hver makroblokk. For feltbasert bevegelsesprediksjon av makroblokkene blir en makroblokk og den umiddelbart nedenstående makroblokk vurdert som en makroblokkgruppe og prediksjon foretas for makroblokkgruppe etter makroblokkgruppe.
Det er tilveiebragt en fremgangsmåte for koding og dekoding av digitalt videoinnhold slik som angitt i krav 1 og et apparat slik som angitt i krav 13. I en av mange mulige legemliggjøringer tilveiebringer foreliggende oppfinnelse en fremgangsmåte for koding, dekoding og bitstrømgenerering av digital videoinnhold. Det digitale videoinnholdet innbefatter en strøm av bilder som kan være intrabilder, predikterte bilder eller bipredikterte bilder. Hvert av bildene innbefatter makroblokker som videre kan deles i mindre blokker. Fremgangsmåten innebærer koding og dekoding hver av makroblokkene i hvert bilde i strømmen av bilder i enten rammemodus eller i feltmodus.
De vedfølgende tegninger illustrerer forskjellige realiseringer av foreliggende oppfinnelse, og utgjør således del av beskrivelsen. Samme med den følgende beskrivelse demonstrerer og forklarer tegningene foreliggende oppfinnelses prinsipper. De illustrerte legemliggjøringer er eksempler på foreliggende oppfinnelse og begrenser ikke oppfinnelsens omfang.
Figur 1 illustrerer et sekvenseksempel for tre typer av bilder som kan anvendes for å implementere foreliggende oppfinnelse, slik de er definert ved et videokodingsstandardeksempel slik som MPEG-4 del 10 AVC/H.264 standarden.
Figur 2 viser at hvert bilde fortrinnsvis deles i skiver som rommer makroblokker i samsvar med en legemliggjøring av foreliggende oppfinnelse.
Figur 3a viser at en makroblokk videre kan oppdeles i en blokkstørrelse som er 16 ganger 8 piksler i samsvar med en legemliggjøring av foreliggende oppfinnelse.
Figur 3b viser at en makroblokk videre kan oppdeles i en blokkstørrelse som er 8 ganger 16 piksler i samsvar med en legemliggjøring av foreliggende oppfinnelse.
Figur 3c viser at en makroblokk videre kan oppdeles i en blokkstørrelse som er 8 ganger 8 piksler i samsvar med en legemliggjøring av foreliggende oppfinnelse.
Figur 3d viser at en makroblokk videre kan oppdeles i en blokkstørrelse som er 8 ganger 4 piksler i samsvar med en legemliggjøring av foreliggende oppfinnelse.
Figur 3e viser at en makroblokk videre kan oppdeles i en blokkstørrelse som er 4 ganger 8 piksler i samsvar med en legemliggjøring av foreliggende oppfinnelse.
Figur 3f viser at en makroblokk videre kan oppdeles i en blokkstørrelse som er 4 ganger 4 piksler i samsvar med en legemliggjøring av foreliggende oppfinnelse.
Figur 4 viser et bildekonstruksjonseksempel som gjør bruk av tidsmessig forutsigelse med bevegelseskompensasjon som illustrerer legemliggjøring av foreliggende oppfinnelse.
Figur 5 viser at en makroblokk er oppdelt i et toppfelt og et bunnfelt hvis det skal kodes i feltmodus.
Figur 6a viser at en makroblokk som er kodet i feltmodus kan deles i en blokk med en størrelse på 16 ganger 8 piksler i samsvar med en legemliggjøring av foreliggende oppfinnelse.
Figur 6b viser at en makroblokk som er kodet i feltmodus kan deles i en blokk med en størrelse på 8 ganger 8 piksler i samsvar med en legemliggjøring av foreliggende oppfinnelse.
Figur 6c viser at en makroblokk som er kodet i feltmodus kan deles i en blokk med en størrelse på 4 ganger 8 piksler i samsvar med en legemliggjøring av foreliggende oppfinnelse.
Figur 6d viser at en makroblokk som er kodet i feltmodus kan deles i en blokk med en størrelse på 4 ganger 4 piksler i samsvar med en legemliggjøring av forliggende oppfinnelse.
Figur 7 illustrerer et eksempel på et makroblokkpar som kan anvendes i AFF-koding på et par makroblokker i samsvar med en legemliggjøring av foreliggende oppfinnelse.
Figur 8 viser at et makroblokkpar som skal kodes i feltmodus først deles opp i en 16 ganger 16 pikslers toppfeltblokk og en 16 ganger 16 pikslers bunnfeltblokk.
Figur 9 viser to mulige avsøkingsmønstre i AFF-koding av makroblokkpar.
Figur 10 viser en annen legemliggjøring av foreliggende oppfinnelse som utvider konseptet med AFF-koding på et makroblokkpar til AFF-koding på en gruppe av fire eller flere naboliggende makroblokker.
Figur 11 viser noe av informasjonen som er inkludert i bitstrømmen som rommer informasjon som angår hver makroblokk i en strøm.
Figur 12 viser en blokk som skal kodes og dens naboblokker og vil bli anvendt for å forklare forskjellige foretrukne fremgangsmåter for å beregne PMV til en blokk i en makroblokk.
Figur 13 viser en alternativ definisjon av naboblokker hvis avsøkingsveien er en vertikal avsøkingsvei.
Figur 14 viser at hver pikselverdi forutsies fra naboblokkenes pikselverdier i samsvar med en legemliggjøring av foreliggende oppfinnelse.
Figur 15 viser forskjellige forutsigelsesretninger for intra_4x4-koding.
Figur 16a-b illustrerer at den valgte intra-forutsigelsesmodus (intra_pred_modus) til en 4 ganger 4 piksler blokk er høykorrelert med tilstøtende blokkers forutsigelsesmodi.
Figur 17a-d viser naboblokkdefinisjoner i forhold til et gjeldende makroblokkpar som skal kodes.
For de angitte tegninger gjelder at identiske henvisningstall angir tilsvarende, men ikke nødvendigvis identiske, elementer.
Foreliggende oppfinnelse tilveiebringer en fremgangsmåte for adaptiv ramme-/feltkoding (AFF) av digitalt videoinnhold som innbefatter en strøm av bilder eller skiver av et bilde på makroblokknivå. Foreliggende oppfinnelse utvider konseptet med bildenivå-AFF til makroblokker. I AFF-koding på bildenivå kodes hvert bilde i en strøm av bilder som skal kodes i enten rammemodus eller feltmodus, uten hensyn til rammekodingsmodus eller feltkodingsmodus til andre bilder som skal kodes. Hvis bildet kodes i rammemodus gjøres en samkoding av de to feltene som danner den innfelte rammen. På motsatt vis, hvis bildet er kodet i feltmodus, kodes adskilt de to feltene som danner en innfelt ramme. Koderen bestemmer den type koding, rammemoduskoding eller feltmoduskoding, som er mest fordelaktig for hvert bilde og velger denne kodingstypen for bildet. Den nøyaktige fremgangsmåten for valg mellom rammemodus og feltmodus er ikke kritisk for foreliggende oppfinnelse og vil ikke bli angitt i nærmere detalj her.
Som angitt over, er standarden MPEG-4 del 10 AVC/H.264 en ny standard for koding og komprimering av digitalt videoinnhold. Dokumentene som etablererer standarden MPEG-4 del 10 AVC/H.264 er herved inkorporert ved henvisning, som inkluderer ”Joint Final Committee Draft (JFCD) og Joint Video Specification” som er utgitt av Joint Video Team (JVT) den 10. august 2002. (Se også ITU-T anbefaling H.264 og ISO/IEC 14496-10 AVC). Den nevnte JVT består av eksperter fra ISO MPEG og ITU-T. Som følge av den offentlige karakter til MPEG-4 del 10 AVC/H.264 standarden, vil foreliggende oppfinnelse ikke forsøke å dokumentere alle de eksisterende aspekter ved videokoding i samsvar med MPEG-4 del 10 AVC/H.264, men vil isteden støtte seg på standardens inkorporerte spesifikasjoner.
Selv om denne fremgangsmåten for AFF-koding er kompatibel med og vil bli forklart ved bruk av standardretningslinjene til MPEG-4 del 10 AVC/H.264, kan den modifiseres og anvendes slik det passer en bestemt standard eller anvendelse.
Ved bruk av tegningene, vil foretrukne legemliggjøringer av foreliggende oppfinnelse nå bli forklart.
Figur 1 illustrerer et sekvenseksempel for tre bildetyper som kan anvendes for å implementere foreliggende oppfinnelse, slik den er definert ved et eksempel på en videokodingsstandard slik som for eksempel standarden MPEG-4 del 10 AVC/H.264. Som tidligere nevnt, koder koderen bildene og dekoderen dekoder bildene. Koderen eller dekoderen kan være en prosessor, en applikasjonsbestemt integrert krets (ASIC), en feltprogrammerbar portoppstilling (FPGA), en koder/dekoder (CODEC), en digital signalprosessor (DSP) eller en annen elektronisk innretning som er i stand til å kode strømmen av bilder. Imidlertid, som anvendt i det heri følgende og i de vedfølgende krav, vil begrepet ”koder” bli anvendt for å vise i utvidet mening til alle elektroniske innretninger som koder digitalt videoinnhold som innbefatter en strøm av bilder, med mindre annet er spesielt angitt. Begrepet ”dekoder” vil bli anvendt for å vise i bredt omfang til alle elektroniske innretninger som dekoder digitalt videoinnhold som innbefatter en strøm av bilder.
Som vist i figur 1, foreligger fortrinnsvis tre bildetyper som kan anvendes i videokodingsfremgangsmåten. Tre bildetyper defineres for å gi støtte for slumpaksess til lagret digitalt videoinnhold og samtidig undersøke den maksimale redundansreduksjonen ved bruke av tidsmessig forutsigelse med bevegelseskompensasjon. De tre bildetypene er intra (I)-bilder (100), predikterte (P)-bilder (102a, b) og bi-predikterte (B)-bilder (101a-d). Et I-bilde (100) tilveiebringer et aksesspunkt for slumpaksess til lagret digitalt videoinnhold og kan kodes med bare svak komprimering. Intrabilder (100) kodes uten å referere til referansebilder.
Et prediktert bilde (102a, b) kodes ved bruk av et I-bilde, et P-bilde eller et B-bilde som allerede har blitt kodet som et referansebilde. Referansebildet kan være enten i den tidsmessige foroverretningen eller reversretningen i forhold til P-bildet som kodes. De predikterte bildene (102a, b) kan kodes ved mer komprimering enn intrabildene (100).
Et bi-prediktert bilde (101a-d) kodes ved bruk av to tidsreferansebilder, et foroverreferansebilde og et reversreferansebilde. Foroverreferansebildet kalles enkelte ganger et fortidsreferansebilde og reversreferansebildet kalles enkelte ganger et fremtidsreferansebilde. En legemliggjøring av foreliggende oppfinnelse er en hvor foroverreferansebildet og reversreferansebildet kan være i den samme tidsmessige retningen i forhold til B-bildet som skal kodes. Bi-predikterte bilder (101a-d) kan kodes med mest komprimering av de nevnte tre bildetyper.
Referanseforholdene (103) mellom de tre bildetypene er illustrert i figur 1.
Eksempelvis kan P-bildet (102a) kodes ved bruk av det kodede I-bildet (100) som sitt referansebilde. B-bildene (101a-d) kan kodes ved bruk av det kodede I-bildet (100) eller de kodede P-bildet (102a) som sine referansebilder, slik det er vist i figur 1. Under prinsippene til en legemliggjøring av forliggende oppfinnelse kan kodede B-bilder (101a-d) også anvendes som referansebilder for andre B-bilder som skal kodes.
Eksempelvis er B-bildet (101c) i figur 1 vist med to andre B-bilder (101b og 101d) som sine referansebilder.
Antallet og den bestemte rekkefølge for I-bildene (100), B-bildene (101a-d) og P-bildene (102a, b) som er vist i figur 1 er gitt som et eksempel på en konfigurasjon av bilder, men er ikke nødvendige for å implementere foreliggende oppfinnelse. Ethvert antall av I-bilder, B-bilder og P-bilder kan anvendes i enhver rekkefølge for best å tjene en bestemt anvendelse. Standarden MPEG-4 del 10 AVC/H.264 pålegger ingen begrensning på det antall B-bilder som skal være mellom to referansebilder og begrenser heller ikke bildeantallet mellom to I-bilder.
Figur 2 viser at hvert bilde (200) fortrinnsvis er delt i skiver (202). En skive (202) innbefatter en makroblokkgruppe (201). En makroblokk (201) er en rektangulær pikselgruppe. Som vist i figur 2, er en foretrukket størrelse for en makroblokk (201) 16 ganger 16 piksler.
Figurene 3a-f viser at en makroblokk videre kan deles i blokker av mindre størrelse. For eksempel, som vist i figurene 3a-f, kan en makroblokk bli videre delt i blokkstørrelser av 16 ganger 8 piksler (figur 3a, 300), 8 ganger 16 piksler (figur 3b, 301), 8 ganger 8 piksler (figur 3c, 302), 8 ganger 4 piksler (figur 3d, 303), 4 ganger 8 piksler (figur 3e, 304) eller 4 ganger 4 piksler (figur 3f, 305). Disse blokkene som er av mindre størrelse er foretrukket i noen anvendelser som gjør bruk av algoritmen for tidsmessig forutsigelse med bevegelseskompensasjon.
Figur 4 viser et bildekonstruksjonseksempel ved bruk av tidsmessig forutsigelse med bevegelseskompensasjon som illustrerer en legemliggjøring av foreliggende oppfinnelse. Tidsmessig forutsigelse med bevegelseskompensasjon antar at et gjeldende bilde, bilde N (400), kan moduleres lokalt som en oversettelse av et annet bilde, bilde N-1 (401). Bildet N-1 (401) er referansebildet for kodingen av bilde N (400) og kan være i tidsmessig foroverretning eller reversretning i forhold til bilde N (400).
Som vist i figur 4 blir hvert bilde fortrinnsvis delt i skiver som omfatter makroblokker (201a, b). Bildet N-1 (401) rommer et bilde (403) som skal vises i bildet N (400).
Bildet (403) vil være i en annen tidsmessig posisjon i bildet N (402) enn det som er tilfellet for bildet N-1 (401) som vist i figur 4. Bildeinnholdet i hver makroblokk (201b) for bildet N (400) forutsies fra bildeinnholdet i hver korresponderende makroblokk (201a) for bildet N-1 (401) ved å estimere den nødvendige mengde av tidsmessig bevegelse i bildeinnholdet i hver makroblokk (201a) hos bildet N-1 (401) for at bildet (403) skal bevege seg til sin nye tidsmessige posisjon (402) i bildet N (400). I stedet for at det opprinnelige bildet (402) skal kodes, er det forskjellen (404) mellom bildet (402) og dets forutsigelse (403) som faktisk kodes og overføres.
For hvert bilde (402) i bildet N (400), kan den tidsmessige forutsigelsen ofte beskrives ved hjelp av bevegelsesvektor som representerer mengden av tidsmessige bevegelse som er nødvendig for at bildet (403) skal flytte seg til en ny, tidsmessig posisjon i bildet N (402). Bevegelsesvektorene (406) som blir anvendt for tidsmessig forutsigelse med bevegelseskompensasjon må kodes og overføres.
Figur 4 viser at bildet (402) i bildet N (400) kan representeres ved hjelp av forskjellen (404) mellom bildet og dets forutsigelse og de assosierte bevegelsesvektorene (406). Den nøyaktige kodingsfremgangsmåten ved bruk av bevegelsesvektorene kan varieres som det best tjener den bestemte anvendelse og kan enkelt implementeres av en fagkyndig på området.
For å forstå AFF-koding på makroblokknivå, vil det nå bli gitt en kort innføring til AFF-koding på bildenivå av en strøm av bilder. En ramme i en innfelt sekvens inneholder to felt, nemlig toppfeltet og bunnfeltet, som er innfelt (”interleaved”) og adskilt i tid med en feltperiode. Feltperioden har en varighet som tilsvarer halvdelen av en rammeperiode. I AFF-koding på bildenivå kan de to feltene i en innfelt ramme felleskodes eller kodes separat. Hvis de felleskodes, anvendes rammemoduskoding. Derimot, hvis to felt kodes separat, anvendes feltmoduskoding.
På den annen side, koder fast ramme-/feltkoding alle bildene i en strøm av bilder i kun en modus. Denne modus kan være rammemodus eller den kan være feltmodus. AFF på bildenivå er foretrukket for fast ramme-/feltkoding i mange anvendelser fordi den tillater koderen å velge den modus, rammemodus eller feltmodus, som skal kode hvert bilde i strømmen av bilder på grunnlag av det digitale videomaterialets innhold. AFF-koding resulterer i bedre komprimering enn det som oppnås med fast ramme-/feltkoding i mange anvendelser.
En legemliggjøring av foreliggende oppfinnelse er en hvor AFF-koding kan bli utført på mindre deler av et bilde. Denne mindre delen kan være en makroblokk, et makroblokkpar, eller en gruppe av makroblokker. Hver makroblokk, makroblokkpar eller gruppe av makroblokker eller skive kodes i rammemodus eller feltmodus, uten hensyn til hvordan de andre makroblokkene i bildet er kodet. AFF-koding vil i hvert av de tre tilfellene bli beskrevet i detalj i det følgende.
I det første tilfellet utføres AFF-koding på en enkelt makroblokk. Hvis makroblokken skal kodes i rammemodus, felleskodes de to feltene i makroblokken. Straks den er kodet som en ramme kan makroblokken bli videre delt i mindre blokker som vist i figurene 3a-f for bruk i algoritmen for tidsmessig forutsigelse med bevegelseskompensasjon.
Imidlertid, hvis makroblokken skal kodes i feltmodus, deles makroblokken (500) i et toppfelt (501) og et bunnfelt (502), som vist i figur 5. De to feltene blir så kodet adskilt. I figur 5 har makroblokken M rader med piksler og N kolonner med piksler. En foretrukket verdi for N og M er 16, hvilket gjør makroblokken (500) til 16 ganger 16 pikslers makroblokk. Som vist i figur 5 er hver annen rad med piksler skyggelagt. De skyggelagte områdene representerer rader med piksler i makroblokkens (500) toppfelt og de uskyggelagte områdene representerer rader med piksler i makroblokkens (500) bunnfelt.
Som vist i figurene 6a-d, kan en makroblokk som er kodet i feltmodus deles i fire ytterligere blokker. Det er nødvendig for en blokk å ha enkeltparitet.
Enkeltparitetskravet innebærer at en blokk ikke kan innbefatte både toppfelt og bunnfelt. Den må heller romme en enkelt paritet av felt. Således, som vist i figurene 6a-d, kan en feltmodusmakroblokk bli delt i blokker som er 16 ganger 8 piksler (figur 6a, 600), 8 ganger 8 piksler (figur 6b, 601), 4 ganger 8 piksler (figur 6c, 602) og 4 ganger 4 piksler (figur 6d, 603). Figurene 6a-d viser at hver blokk rommer felt med enkeltparitet.
AFF-koding på makroblokkpar vil nå bli forklart. AFF-koding på makroblokkpar vil til tider bli omtalt som parbasert AFF-koding. En sammenligning av blokkstørrelsene i figurene 6a-d med de i figurene 3a-f viser at en makroblokk kodet i feltmodus kan deles i færre blokkmønstre enn det som er tilfellet for en makroblokk kodet i rammemodus. Blokkstørrelsene på 16 ganger 16 piksler, 8 ganger 16 piksler og 8 ganger 4 piksler er ikke tilgjengelige for en makroblokk som er kodet i feltmodus på grunn av enkeltparitetskravet. Dette innebærer at ytelsen til en enkeltblokkbasert AFF kan vise seg ikke å være god for noen sekvenser eller anvendelser som sterkt foretrekker feltmoduskoding. For å garantere feltmodusmakroblokkodingens ytelse, er det i noen anvendelser foretrukket at makroblokker som er kodet i feltmodus har de samme blokkstørrelser som makroblokker som er kodet i rammemodus. Dette kan oppnås ved å utføre AFF-koding for makroblokkpar i stedet for på makroblokker enkeltvis.
Figur 7 illustrerer et eksempel på et par makroblokker (700) som kan anvendes i AFF-koding på et makroblokkpar i samsvar med en legemliggjøring av foreliggende oppfinnelse. Hvis paret av makroblokker (700) skal kodes i rammemodus, kodes paret som to rammebaserte makroblokker. I hver makroblokk samkodes de to feltene i hver av makroblokkene. Straks de er kodet som rammer kan makroblokkene bli videre oppdelt i mindre blokker som vist i figurene 3a-f for bruk i algoritmen for tidsmessig forutsigelse med bevegelseskompensasjon.
Imidlertid, hvis paret av makroblokker (700) skal kodes i feltmodus, deles det først i et toppfelt 16 ganger 16 pikslers blokk (800) og en bunnfelts 16 ganger 16 pikslers blokk (800), som vist i figur 8. De to feltene kodes så adskilt. I figur 8 har hver makroblokk i makroblokkparet (700) N=16 kolonner med piksler og M=16 rader med piksler. Såldes er de dimensjonene til paret av makroblokker (700) 16 ganger 32 piksler. Som vist i figur 8 er annen hver rad med piksler skyggelagt. De skyggelagte områdene representerer rader med piksler i toppfeltet av makroblokkene og de uskyggelagte områdene representerer radene med piksler i makroblokkenes bunnfelt.
Toppfeltblokken (800) og bunnfeltblokken (801) kan nå deles i en av de mulige blokkstørrelsene som er vist i figurene 3a-f.
I samsvar med en legemliggjøring av foreliggende oppfinnelse, foreligger to mulige avsøkingsveier i AFF-kodingen av paret av makroblokker (700). En avsøkingsvei bestemmer rekkefølgen i hvilken makroblokkparene i et bilde kodes. Figur 9 viser to mulige avsøkingsveier i AFF-koding av parene av makroblokker (700). En av avsøkingsveiene er en horisontal avsøkingsvei (900). I den horisontale avsøkingsveien (900), kodes makroblokkparet (700) i et bilde (200) fra venstre til høyre og ovenfra og ned, som vist i figur 9. Den andre avsøkingsveien er en vertikal avsøkingsvei (901). I den vertikale avsøkingsveien (901) kodes makroblokkparene (700) i et bilde (200) fra øverst til nederst og fra venstre til høyre, slik det er vist i figur 9. For rammemoduskoding kodes først den øverste makroblokken i et makroblokkpar (700) etterfulgt av bunnmakroblokken. For feltmoduskoding kodes toppfeltmakroblokken i et makroblokkpar først, etterfulgt av bunnfeltmakroblokken.
En annen legemliggjøring av foreliggende oppfinnelse utvider AFF-kodingens konsept på et par makroblokker til AFF-koding på en gruppe av fire eller flere naboliggende makroblokker (902), som vist i figur 10. AFF-koding på en gruppe av makroblokker vil av og til bli omtalt som gruppebasert AFF-koding. De samme avsøkingsveiene, horisontalt (900) og vertikalt (901), anvendes i avsøkingen av makroblokkpar som blir anvendt i avsøkingen av grupper av naboliggende makroblokker (902). Selv om eksempelet som er vist i figur 10 viser en gruppe med fire makroblokker, kan gruppen omfatte flere enn fire makroblokker.
Hvis gruppen med makroblokker (902) skal kodes i rammemodus, blir gruppen kodet som fire rammebaserte makroblokker. I hver makroblokk felleskodes de to feltene i hver av makroblokkene. Straks de er kodet som rammer kan makroblokkene bli videre oppdelt i mindre blokker som vist i figurene 3a-f for bruk i algoritme for tidsmessig forutsigelse med bevegelseskompensering.
Imidlertid, hvis en gruppe av fire makroblokker (902) for eksempel skal kodes i feltmodus, deles den først opp i en toppfeltblokk med 32 ganger 16 piksler og en bunnfeltblokk med 32 ganger 16 piksler. De to feltene blir så kodet adskilt.
Toppfeltblokken og bunnfeltblokken kan nå deles i makroblokker. Hver makroblokk deles videre i en av de mulige blokkstørrelsene som er vist i figurene 3a-f. Fordi denne prosessen tilsvarer den som er vist i figur 8, tilveiebringes ikke en egen figur for å illustrere denne legemliggjøringen.
I AFF-koding på makroblokknivået inkluderes fortrinnsvis en ramme-/feltflaggbit i et bildets bitstrøm for å angi den modus, rammemodus eller feltmodus, som anvendes i kodingen av hver makroblokk. Bitstrømmen innbefatter informasjon som gjelder hver makroblokk i en strøm, slik det er vist i figur 11. Eksempelvis kan bitstrømmen innbefatte en bildeinnleder (110) og informasjon (111) om makroblokktypen (113). Fortrinnsvis er ramme-/feltflagget (112) inkludert før hver makroblokk i bitstrømmen hvis AFF utføres på hver enkelt makroblokk. Hvis AFF utføres på makroblokkpar, inkluderes fortrinnsvis ramme-/feltflagget (112) før hvert makroblokkpar i bitstrømmen. Og til slutt, hvis AFF utføres på en makroblokkgruppe, inkluderes fortrinnsvis ramme-/feltflagget (112) før hver makroblokkgruppe i bitstrømmen. I en legemliggjøring er ramme-/feltflaggbiten (112) en 0 hvis rammemodus skal anvendes og en 1 hvis feltkoding skal anvendes. I en annen legemliggjøring er ramme-/feltflaggbiten (112) en 1 hvis rammemodus skal anvendes og et 0 hvis feltkoding skal anvendes.
En ytterligere legemliggjøring av foreliggende oppfinnelse innebærer en fremgangsmåte for å bestemme de blokkstørrelser som koderen deler en makroblokk i for AFF på makroblokknivå. En foretrukket, men ikke utelukkende fremgangsmåte for å bestemme den ideelle blokkstørrelsen er sum-absolutt-differansen (SAD) med eller uten bias eller rateforvrengningsbias (RD). Eksempelvis kontrollerer SAD de mulige blokkstørrelsenes ytelse og velger den ideelle blokkstørrelsen på grunnlag av sitt resultat. Den eksakte fremgangsmåte for bruk av SAD med eller bias eller RD-bias kan enkelt utføres av en fagkyndig på området.
I henhold til en legemliggjøring av foreliggende oppfinnelse kan hver ramme-/feltbasert makroblokk i AFF på makroblokknivå bli intrakodet eller interkodet. I intrakoding kodes makroblokken uten tidsmessig henvisning til andre makroblokker. På den annen side anvendes i interkoding tidsmessig forutsigelse med bevegelseskompensering for å kode makroblokkene.
Hvis interkoding anvendes kan en blokk med en størrelse lik 16 ganger 16 piksler, 16 ganger 8 piksler, 8 ganger 16 piksler eller 8 ganger 8 piksler ha sine egne referansebilder. Blokken kan være enten en rammebasert eller feltbasert makroblokk. Standarden MPEG-4 del 10 AVC/H.264 tillater et mangfold av referansebilder i stedet for kun to referansebilder. Bruken av flere referansebilder forbedrer ytelsen til algoritmen med tidsmessig forutsigelse med bevegelseskompensering ved å gi koderen mulighet for å finne en blokk i referansebildet som best mulig tilsvarer den blokken som skal kodes. Ved bruk av den blokken i referansebildet i kodingsprosessen som er mest sammenfallende med den blokken som skal kodes, kan den størst mulige komprimering oppnås i kodingen av bildet. Referansebildene lagres i ramme- og feltbuffere og tilordnes referanserammenumre og referansefeltnumre på grunnlag av den tidsmessige avstanden de har fra det gjeldende bildet som blir kodet. Jo nærmere referansebildet er det aktuelle bildet som lagres, desto sannsynlig er det at referansebildet vil bli valgt. For feltmoduskoding kan referansebildene for en blokk være et hvilket som helst toppfelt eller bunnfelt i et hvilket som helst av referansebildene i rammebufferne eller feltbufferne.
Hver blokk i en rammebasert eller feltbasert makroblokk kan ha sine egne bevegelsesvektorer. Bevegelsesvektorene er romlig, prediktivt kodet. I samsvar med en legemliggjøring av foreliggende oppfinnelse beregnes i interkoding også prediksjonsbevegelsesvektorer (PMV) for hver blokk. Den algebraiske forskjellen mellom en blokks PMV’er og dens assosierte bevegelsesvektorer beregnes så og kodes. Dette fremstiller de komprimerte biter for bevegelsesvektorer.
Det gjøres så henvisning til figur 12 som anvendes for å forklare forskjellige foretrukne fremgangsmåter for beregning av PMV for en blokk i en makroblokk. En aktuell blokk E, vist i figur 12, skal interkodes så vel som dens naboblokker A, B, C og D. I vil heretter omtales som en aktuell blokk og A, B, C og D vil heretter omtales som naboblokker til E, med mindre annet er angitt. PMV for blokken E utledes fra den nabovektorers bevegelsesvektorer. Disse naboblokkene i eksempelet i figur 12 er A, B, C og D. En foretrukket fremgangsmåte for å beregne PMV for blokk E er å beregne enten meridianen til bevegelsesvektorene til blokkene A, B, C og D, disse bevegelsesvektorenes gjennomsnitt eller disse bevegelsesvektorenes veide gjennomsnitt. Hver av blokkene A til og med E kan være i enten rammemodus eller feltmodus.
En annen foretrukket fremgangsmåte for å beregne PMV for blokk E er å anvende en ja/nei-fremgangsmåte. Under ja/nei-fremgangsmåtens prinsipper må en blokk være i den samme rammekodingsmodus eller feltkodingsmodus som blokken E for å få sin bevegelsesvektor inkludert i beregningen av PMV for E. Eksempelvis, hvis blokken E i figur 12 er i rammemodus, må blokk A også være i rammemodus for å få sin bevegelsesvektor inkludert i beregningen av PMV for blokken E. Hvis en av naboblokkene til E ikke har den samme kodingsmodus som modus for blokken E, blir dens bevegelsesvektor ikke anvendt i beregningen av den søkte PMV for blokken E.
”Alltidmetoden” kan også anvendes for å beregne PMV for blokk E. I ”alltidmetoden”, anvendes alltid blokkene A, B, C og D med beregning av PMV for blokken E, uten hensyn til om de er i henhold til rammekodingsmodus eller feltkodingsmodus. Hvis E er i rammemodus og naboblokken er i feltmodus, multipliseres naboblokkens vertikalkomponent med 2 før den blir inkludert i PMV-beregningen for blokken E.
Hvis E er i feltmodus og en naboblokk er i rammemodus, deles naboblokkens vertikalkomponent med 2 for den blir inkludert i PMV-beregningen for blokken E.
”Selektivmetoden” kan også anvendes for å beregne PMV for blokken E hvis makroblokken har blitt kodet ved bruk av parbasert AFF-koding eller gruppebasert AFF-koding. I ”selektivmetoden”, har en rammebasert blokk en rammebasert bevegelsesvektor som peker til en referanseramme. Blokken tildeles også en feltbasert bevegelsesvektor som peker til et referansefelt. Den feltbaserte bevegelsesvektoren er den rammebaserte bevegelsesvektoren til den blokken som har vertikalbevegelsesvektorkomponenten dividert med to. Referansefeltnummeret er referanserammenummeret multiplisert med to. En feltbasert blokk har en feltbasert bevegelsesvektor som peker til et referansefelt. Blokken har også tildelt en rammebasert bevegelsesvektor som peker til en referanseramme. Den rammebaserte bevegelsesvektoren er den feltbaserte bevegelsesvektoren til blokken med vertikalbevegelsesvektorkomponenten multiplisert med to. Referanserammenummeret er referansefeltnummeret delt på to.
Utledningen av en blokks PMV ved bruk av ”selektivmetoden” vil nå bli forklart ved bruk av figur 12 som referanse. I makroblokkparbasert AFF, assosieres hver blokk i en makroblokk med en ledsagerblokk som har tilhold i det samme geometriske stedet innen makroblokkparets andre makroblokk. I figur 12 kan eller kan ikke hver av naboblokkene (A, B, C og D) til E være i den samme ramme- eller feltkodingsmodus som blokk E. Derfor gjelder den følgende regel:
Hvis E er i rammemodus og en naboblokk er i rammemodus, anvendes naboblokkens sanne rammebaserte bevegelsesvektor for E’s PMV.
Hvis E er rammemodus og en naboblokk er i feltmodus, gjelder de følgende regler for beregning av E’s PMV. Hvis naboblokken (for eksempel blokk A) og dens ledsagende feltbaserte blokk har det samme referansefeltet anvendes gjennomsnittet av de to blokkenes tildelte rammebaserte bevegelsesvektorer for beregningen av E’s PMV. Referanserammenummeret som blir brukt for PMV-beregningen er referansefeltnummeret til naboblokken delt på to. Imidlertid, hvis naboblokken og dens ledsagerfeltblokk har forskjellige referansefelt, de kan ikke naboblokken bli anvendt i beregningen av PMV for E.
Hvis E er i feltmodus og en naboblokk er i rammemodus, gjelder de følgende regler for beregning av PMV for E. Hvis naboblokken (for eksempel blokk A) og den ledsagende rammebaserte blokk har den samme referanserammen, anvendes gjennomsnittet av de to blokkenes tildelte feltbaserte bevegelsesvektorer for beregningen av E’s PMV.
Referansefeltnummeret som blir anvendt for PMV-beregningen er naboblokkens referansenummer multiplisert med to. Imidlertid, hvis naboblokken og dens ledsagerfeltblokk har forskjellige referanserammer, da kan naboblokken ikke bli anvendt i beregningen av PMV for E.
Hvis E er i feltmodus og en naboblokk er i feltmodus, anvendes naboblokkens sanne feltbaserte bevegelsesvektor i beregningen av E’s PMV.
En alternativ foretrukket valgmulighet kan bli anvendt i ”selektivmetoden” for å beregne en blokks PMV. I figur 12 kan eller kan ikke hver av blokken E’s naboblokker (A, B, C og D) være i den samme ramme- eller feltkodingsmodus som blokk E. Derfor gjelder de følgende regler for denne alternative, foretrukne valgmulighet for selektivmetoden:
Hvis E er i rammemodus og en naboblokk er i rammemodus, anvendes naboblokkens sanne rammebaserte bevegelsesvektor for E’s PMV.
Hvis E er i rammemodus og en naboblokk er i feltmodus, anvendes det veide gjennomsnitt av naboblokkens tildelte, rammebaserte bevegelsesvektorer og dens ledsagende feltbaserte blokk for beregningen av PMV for E. Vektingsfaktorene er basert på naboblokkens referansefeltnumre og dens ledsagerblokk.
Hvis E er i feltmodus og en naboblokk er i rammemodus, anvendes det veide gjennomsnitt av naboblokkens tildelte, feltbaserte bevegelsesvektorer og dens ledsagende rammebaserte blokk for beregningen av E’s PMV. Vektingsfaktorene er basert på naboblokkens referanserammenumre og den ledsagerblokk.
Hvis E er i feltmodus og en naboblokk er i feltmodus, anvendes naboblokkens sanne feltbaserte bevegelsesvektor til beregningen av PMV for E.
En annen foretrukket fremgangsmåte for beregning av en blokks PMV er ”altselektivmetoden”. Denne metoden kan anvendes i enkeltblokk-AFF-koding, parbasert makroblokk-AFF-koding eller gruppebasert AFF-koding. I denne metoden tildeles hver blokk et horisontalt og et vertikalt indeksnummer som representerer blokkens horisontal- og vertikalkoordinater. Hver blokk tildeles også en horisontal og vertikal feltkoordinator. En blokks horisontale feltkoordinat er den samme som blokkens horisontalkoordinat. For en blokk i en toppfeltmakroblokk er vertikalfeltkoordinaten halvdelen av blokkens vertikalkoordinat og tildeles toppfeltpolaritet. For en blokk i bunnfeltmakroblokken oppnås blokkens vertikalfeltkoordinat ved å subtrahere 4 fra blokkens vertikalkoordinat og å dele resultatet på 2. Blokken tildeles også bunnfeltpolaritet. Resultatet av å tildele forskjellige feltpolariteter til to blokker er at det nå foreligger to blokker med de samme horisontal- og vertikalfeltkoordinatene, men med forskjellige feltpolariteter. Således, gitt koordinatene til en blokk, kan feltkoordinatene og dens feltpolaritet bli beregnet, og omvendt.
”Alt-selektivmetoden” vil nå bli forklart i nærmere detalj ved bruk av figur 12 som en referanse. PMV for blokk E skal beregnes. La bx representere horisontalstørrelsen til blokken E delt på 4, hvilket er størrelsen til en blokk i dette eksempelet. PMV’ene for E oppnås som følger, avhengig av hvorvidt E er i rammemodus eller feltmodus.
La blokken E være i rammemodus, og la (x, y) representere horisontalkoordinatene henholdsvis vertikalkoordinatene for E. Naboblokkene til E er definert på følgende vis. A er blokken hvis koordinater er (x-1,y). B er blokken hvis koordinater er (x,y-1). D er blokken hvis koordinater er ((x-1,y-1). C er blokken hvis koordinater er (x+bx+1, y-1). Hvis en av A, B, C eller D er i feltmodus, så multipliseres dens vertikalbevegelsesvektor på 2 før den anvendes for forutsigelse og dens referanserammenummer beregnet ved å dele dens referansefelt på 2.
La så blokken E være i topp- eller bunnfeltmodus og la (xf, yf) representere horisontalfeltkoordinatene henholdsvis vertikalfeltkoordinatene for E. I dette tilfellet er naboene til E definert som følger. A er blokken hvis feltkoordinater er (xf-1, yf) og har den samme polaritet som E. B er blokken hvis feltkoordinater er (xf, yf-1) og har den samme polaritet som E. D er blokken hvis feltkoordinater er (xf-1, yf-1) og har samme polaritet som E. C er blokken hvis feltkoordinater er (xf+bx+1, yf) og har samme polaritet som E. Hvis A, B, C eller D er i rammemodus, så deles dens vertikalbevegelsesvektor med 2 før den blir anvendt for forutsigelse og dens referansefelt beregnes ved å multiplisere dets referanseramme med 2.
I alle de fremgangsmåter som er angitt over for å bestemme en blokks PMV, ble det antatt en horisontal avsøkingsvei. Imidlertid kan avsøkingsveien også være en vertikal avsøkingsvei. I dette tilfellet defineres naboblokkene til den aktuelle blokken E som vist i figur 13. En vertikal avsøkingsvei foretrekkes i enkelte anvendelser fordi informasjonen i alle naboblokker er tilgjengelig for beregningen av PMV for den aktuelle blokken E.
En annen legemliggjøring av foreliggende oppfinnelse er retningssegmenteringsforutsigelse. I retningssegmenteringsforutsigelse har 16 ganger 8 pikselblokker og 8 ganger 16 pikselblokker regler som gjelder kun for deres PMV-beregninger. Disse reglene gjelder i alle PMV-beregningsfremgangsmåter for disse blokkstørrelsene. Reglene vil nå bli forklart i nærmere detalj i tilknytning til figur 12. I hver av disse reglene skal en aktuell blokk E få sin PMV-beregning.
Først består en 16 ganger 16 pikselblokk av en øvre blokk og nedre blokk. Den øvre blokken rommer de øvre 8 rader med 16 piksler. Den nedre blokken rommer de nederste 8 rader med 16 piksler. I den følgende beskrivelsen er blokken E i figur 12 16 ganger 16 pikselblokk. For den øvre blokken i 16 ganger 8 pikselblokk, anvendes blokk B for å forutsi blokk E’s PMV hvis den har det samme referansebildet som blokken E. Ellers anvendes med medianforutsigelse for å forutsi blokkens E’s PMV. For den nedre blokken i en 16 ganger 8 pikselblokk, anvendes blokken A for å forutsi blokken E’s PMV hvis den har det samme referansebildet som blokken E. Ellers anvendes medianforutsigelse for å forutsi blokkens E’s PMV.
En 8 ganger 16 pikselblokk anvendes i en venstre og høyre blokk. Både den venstre og den høyre blokken er 8 ganger 16 piksler. I den følgende beskrivelse er blokkene A-E i figur 128 ganger 16 pikselblokker. For den venstre blokken anvendes blokk A for å forutsi blokken E’s PMV hvis den har det samme referansebildet som blokken E. Ellers anvendes medianforutsigelse for å forutsi blokken E’s PMV. For den høyre blokken anvendes blokken C for å forutsi blokken E’s PMV hvis den har det referansebildet som blokken E. Eller anvendes medianforutsigelse for å forutsi blokken E’s PMV.
For 16 ganger 8 pikselblokker og 8 ganger 16 blokker, kan A, B eller C være i forskjellige kodingsmodi (ramme eller felt) enn den aktuelle blokken E. De følgende regler gjelder for begge blokkstørrelsene. Hvis E er i rammemodus og A, B eller C er i feltmodus, beregnes referanserammenummeret til A, B eller C ved å dividere dens referansefelt med 2. Hvis E er i feltmodus og A, B eller C er i rammemodus, beregnes referansefeltnummeret til A, B eller C ved å multiplisere dens referanseramme med 2.
I henhold til en annen legemliggjøring av foreliggende oppfinnelse kan en makroblokk i et P-bilde utelates i AFF-koding. Hvis en makroblokk utelates overføres ikke dens data i kodingen av bildet. En utelatt makroblokk i et P-bilde rekonstrueres ved å kopiere den samlokaliserte makroblokken i det sist kodede referansebildet. Den samlokaliserte makroblokken defineres som den som har bevegelseskompensering ved bruk av PMV som definert over eller uten bevegelsesvektorer. De følgende regler gjelder for utelatte makroblokker i et P-bilde. Hvis AFF-koding utføres pr. makroblokk, er en utelatt makroblokk i rammemodus. Hvis AFf-koding utføres på makroblokkpar og hvis begge makroblokkene er utelatt, da er de i rammemodus. Imidlertid, hvis kun en av makroblokkene i et makroblokkpar utelates, er dens ramme- eller feltkodingsmodus den samme som for den ikke-utelatte makroblokken i det samme makroblokkparet. Hvis AFF-koding utføres på en gruppe av makroblokker og hvis hele gruppen av makroblokker utelates, så er alle makroblokkene i rammemodus. Hvis det forekommer minst en makroblokk som ikke utelates, så er de utelatte makroblokkene i den samme gruppen i den samme ramme- eller feltkodingsmodus som den ikke-utlatte makroblokken.
En alternativ fremgangsmåte for utelatte makroblokker er som følger. Hvis et makroblokkpar utelates, følger dens ramme- og feltkodingsmodus dens nabomakroblokkpar som ligger til venstre. Hvis nabomakroblokkparet til venstre ikke er tilgjengelig, følger dets kodingsmodus dets nabomakroblokkpar mot toppen. Hvis ingen av nabomakroblokkparene til venstre eller over er tilgjengelig, stilles den utelatte makroblokken til rammemodus.
En annen legemliggjøring av foreliggende oppfinnelse er direktemodusmakroblokkoding for B-bilder. I direktemoduskoding har et B-bilde to bevegelsesvektorer, forover- og bakoverbevegelsesvektorer. Hver bevegelsesvektor peker til et referansebilde. Både foroverbevegelsesvektoren og bakoverbevegelsesvektoren kan peke i den samme tidsmessige retningen. For direktemodusmakroblokkoding i B-bilder beregnes forover- og bakoverbevegelsesvektorene for en blokk fra den samlokaliserte blokken i bakoverreferansebildet. Den samlokaliserte blokken i bakoverreferansebildet kan være rammemoduskodet eller feltmoduskodet. De følgende regler gjelder i direktemodusmakroblokkoding for B-bilde.
Hvis den samlokaliserte blokken er i rammemodus og hvis den aktuelle direktemodusmakroblokken også er i rammemodus, beregnes de to assosierte bevegelsesvektorene til en blokk i direktemodusmakroblokken fra den samlokaliserte blokken. Foroverreferanserammen er den som blir anvendt av den samlokaliserte blokken. Reversreferanserammen er den samme rammen hvor den samlokaliserte blokken har tilhold.
Hvis den samlokaliserte blokken er i rammemodus og hvis den aktuelle direktemodusblokken er i feltmodus, beregnes de to assosierte bevegelsesvektorene til en blokk i direktemodusmakroblokken fra den samlokaliserte blokkens bevegelsesvektor med vertikalkomponenten delt på to. Foroverreferansefeltet er det samme paritetsfeltet til referanserammen som ble anvendt av den samlokaliserte blokken. Reversreferansefeltet er det samme paritetsfeltet til reversreferanserammen hvor den samlokaliserte blokken har tilhold.
Hvis den samlokaliserte blokken er i feltmodus og hvis den aktuelle direktemodusmakroblokken også er i feltmodus, beregnes de assosierte bevegelsesvektorene til en blokk i direktemodusmakroblokken fra den samlokaliserte blokken med den samme feltpariteten. Foroverreferansefeltet er feltet som blir anvendt av den samlokaliserte blokken. Reversreferansefeltet er det samme feltet hvor den samlokaliserte blokken har tilhold.
Hvis den samlokaliserte blokken er i feltmodus og hvis den aktuelle direktemodusmakroblokken er i rammemodus, beregnes de to assosierte bevegelsesvektorene til blokken i direktemodusmakroblokken fra den samlokaliserte blokkens bevegelsesvektor med vertikalkomponenten multiplisert med to.
Foroverreferanserammen er den rammen i en av hvis felt anvendes av den samlokaliserte blokken. Reversreferansefeltet er den rammen i en av hvis felt den samlokaliserte blokken har tilhold.
En alternativ valgmulighet er å tvinge direktemodusblokken til å være i den samme ramme- eller feltkodingsmodus som den samlokaliserte blokken. I dette tilfellet er direktemodusblokken også i rammemodus hvis den samlokaliserte blokken for en direktemodusblokk er i rammemodus. Direkte modusblokkens to rammebaserte bevegelsesvektorer utledes fra den rammebaserte foroverbevegelsesvektoren til den samlokaliserte blokken. Foroverreferanserammen anvendes av den samlokaliserte blokken. Reversreferanserammen er der den samlokaliserte blokken har tilhold.
Imidlertid, hvis den samlokaliserte blokken for en blokk i direktemodus er i feltmodus, er direktemodusblokken også i feltmodus. De to feltbaserte bevegelsesvektorene til direktemodusblokken utledes fra den samlokaliserte blokkens feltbaserte foroverbevegelsesvektor. Foroverreferansefeltet anvendes av den samlokaliserte blokken. Reversreferansefeltet er der den samlokaliserte blokken har tilhold.
En makroblokk i et B-bilde kan også utelates i AFF-koding i henhold til en annen legemliggjøring av foreliggende oppfinnelse. En utelatt makroblokk i et B-bilde rekonstrueres som en vanlig direktemodusmakroblokk uten noen kodet transformasjonskoeffisientinformasjon. For utelatte makroblokker i et B-bilde, gjelder de følgende regler. Hvis AFF-koding utføres pr. makroblokk, er en utelatt makroblokk enten i rammemodus eller i den ramme- eller feltkodingsmodus som for den samlokaliserte blokken i dens reversreferansebilde. Hvis AFF-koding utføres på makroblokkpar og hvis begge makroblokkene utelates, så er de i rammemodus eller i den samme ramme- eller feltkodingsmodus som for det samlokaliserte makroblokkparet i dens reversreferansebilde. Imidlertid, hvis kun en av makroblokkene i et makroblokkpar utelates, er dens ramme- eller feltkodingsmodus den samme som for den ikke-utelatte makroblokken i det samme makroblokkparet. Hvis AFF-koding utføres på en gruppe av makroblokker og hvis hele gruppen av makroblokker utelates, så er alle makroblokkene i rammemodus eller i den samme ramme- eller feltkodingsmodus som den samlokaliserte gruppen av makroblokker i reversreferansebildet. Hvis det er minst en makroblokk som ikke er utelatt, så er den utelatte makroblokken i den samme gruppen i den samme ramme- eller feltkodingsmodus som for den ikke-utelatte makroblokken.
Som tidligere nevnt, kan en blokk være intrakodet. Intrablokker er romlig prediktivkodede. Det foreligger to mulig intrakodingsmodi for en makroblokk i makroblokknivå-AFF-koding. Den første er intra_4x4 modus og den andre er intra_16x16 modus. I begge forutsies hvert piksels verdi ved bruk av de reelle, konstruerte pikselverdiene fra naboblokker. Ved å forutsi pikselverdier kan mer komprimering oppnås. Intra_4 x 4 modus og intra_16 x 16 modus vil hver bli forklart i nærmere detalj under.
For intra_4 x 4 modus utledes forutsigelsene av pikslene i en 4 ganger 4 pikselblokk, som vist i figur 14, fra dens piksler til venstre og over. I figur 14 er de 16 piksler i blokken med 4 ganger 4 piksler merket A til og med P. Også, som vist i figur 4, er nabopikslene A til og med P. Nabopikslene er vist med store bokstaver. Som vist i figur 15 foreligger de forskjellige forutsigelsesretninger for intra_ 4 x 4 koding. De er vertikale (0), horisontale (1) DC forutsigelse (modus 2), diagonal ned/venstre (3), diagonal ned/høyre (4), vertikal-venstre (5), horisontal-ned (6), vertikal-høyre (7) og horisontal-opp (8). DC-forutsigelse gjør gjennomsnitt av alle nabopikslene sammen for å forutsi en bestemt pikselverdi.
For intra_16 x 16 modus, foreligger imidlertid fire forskjellige forutsigelsesretninger. Forutsigelsesretningene omtales også som forutsigelsesmodi. Disse forutsigelsesretningene er vertikalforutsigelser (0), horisontalforutsigelser (1), DC-forutsigelse og planforutsigelse. I det følgende vil planforutsigelse ikke bli forklart.
En intrablokk og dens naboblokker kan være kodet i ramme- eller feltmodus.
Intraforutsigelse utføres på rekonstruerte blokker. En rekonstruert blokk kan presenteres i både ramme- og feltmodus, uten hensyn til blokkens faktiske ramme- eller feltkodingsmodus. Etter som kun de rekonstruerte blokkenes piksler anvendes for intraforutsigelse, gjelder de følgende regler.
Hvis en blokk med 4 ganger 4 piksler eller 16 ganger 16 piksler er i rammemodus, er nabopikslene som blir anvendt i beregning av pikselverdiforutsigelsene i rammestrukturen. Hvis en blokk på 4 ganger 4 piksler eller 16 ganger 16 piksler er i feltmodus, er nabopikslene som blir anvendt i beregning av blokkens pikselverdiforutsigelse i feltstrukturen med den samme feltparitet.
Den valgte intra-forutsigelsesmodus (intra_pred_mode) til en 4 ganger 4 pikselblokk er høykorrelert med tilstøtende blokker forutsigelsesmodi. Dette er illustrert i figur 16a. Figur 16a viser at A og B er tilstøtende blokker til C. Blokken C’s forutsigelsesmodus skal fastlegges. Figur 16b viser rekkefølgen av intraforutsigelsesinformasjon i bitstrømmen. Når og A og B’s forutsigelsesmodi er kjent (innbefattende tilfellet hvor A eller B begge er utenfor skiven) er den mest sannsynlige forutsigelsesmodus (mest_sannsynlig_modus) for C er gitt. Hvis en av blokkene A eller B er ”utenfor” er den mest sannsynlige forutsigelsesmodus lik DC forutsigelse (modus 2). Ellers er den lik det minimum av forutsigelsesmodi som blir anvendt for blokkene A og B. Når en tilstøtende blokk er kodet med 16 ganger 16 intramodus, er forutsigelsesmoden DC forutsigelsesmodus. Når en tilstøtende blokk er kodet en ikke-intra-makroblokk, er forutsigelsesmoden ”modus: DC-forutsigelse” i det vanlige tilfellet og ”utenfor” i tilfellet med begrenset intra-oppdatering.
For å signalisere et forutsigelsesmodustall for en 4 ganger 4 blokk overføres først parameteren anvend_mest_sannsynlig_modus. Denne parameteren er representert ved et 1 bit kodeord og kan anta verdiene 0 eller 1. Hvis anvend_mest_sannsynlig_modus er like 1 anvendes modus for mest sannsynlig. Ellers sendes en tilleggsparameter gjenværende_modus_velger som et 3 biters kodeord, som kan anta verdi fra 0 til 7. Kodeordet er en binærrepresentasjon av verdien gjenværende_modus_velger.
Forutsigelsesmodustallet beregnes som:
hvis (gjenværende_modus_velger > mest_sannsynlig_modus) intra_forutsigelse_modus = gjenværende_modus_velger,
ellers
intra_forutsigelse_modus = gjenværende_modus_velger+1.
Rangeringen av forutsigelsesmodi som er tilordnet blokker C er derfor moden for mest sannsynlig etterfulgt av de gjenværende modi i stigende orden.
En legemliggjøring av foreliggende oppfinnelse innbefatter de følgende regler som gjelder for intramodusforutsigelse for en intra-forutsigelsesmodus for en 4 ganger 4 pikselblokk eller en intra-forutsigelsesmodus for en 16 ganger 16 pikselblokk. Blokk C og dens naboblokker A og B kan være i ramme- eller feltmodus. En av de følgende regler skal gjelde. Figurene 16a-b vil bli anvendt i de følgende forklaringer av reglene.
Regel 1: A eller B anvendes som naboblokken til C kun hvis A eller B er i den samme ramme-/feltmodus som C. Ellers betraktes A eller B som å være utenfor.
Regel 2: A og B anvendes som naboblokker til C uten hensyn til deres ramme-/feltkodingsmodus.
Regel 3: Hvis C er kodet i rammemodus og har koordinater (x,y), så er A blokken med koordinatene (x,y-1) og B er blokken med koordinatene x-1,y). Ellers, hvis C er kodet som felt og har feltkoordinatene (xf,yf) så er A blokken hvis feltkoordinater er (xf, yf-1) og har samme feltpolaritet som C og B er blokken hvis feltkoordinater er (xf-1,yf) og har samme feltpolaritet som C.
Regel 4: Denne regelen gjelder kun makroblokker. I tilfellet med dekoding av forutsigelsesmodiene til blokker som er nummerert 3, 6, 7, 9, 12, 13, 11, 14 og 15 som vist i figur 16b, er naboblokkene over og til venstre i den samme makroblokken som den aktuelle blokken. Imidlertid, i tilfellet med dekoding av forutsigelsesmodiene til blokker som er nummeret 1, 4 og 5, er toppblokken (blokk A) i et annet makroblokkpar enn det aktuelle makroblokkparet. I tilfellet med dekoding av forutsigelsesmoden til blokker nummeret 2, 8 og 10, er blokken til venstre (blokk B) i et annet makroblokkpar. I tilfellet med dekoding av forutsigelsesmoden til blokken som er nummerert 0, er blokkene som både er til venstre og over i forskjellige makroblokkpar. For en makroblokk i feltdekodingsmodus skal naboblokkene til blokkene som er nummerert 0, 1, 4, 5, 2, 8 og 10 bli definert som følger:
Hvis makroblokkparet (170) over er dekodet i feltmodus skal, for blokknumrene 0, 1 og 5 i toppfeltmakroblokken (173), blokkene nummerert 10, 11, 14 henholdsvis 15 i toppfeltmakroblokken (173) hos makroblokkparet (170) over bli betraktet som naboblokkene over for det aktuelle makroblokkparet (171) som vist i figur 17a. For blokker nummer 0, 1, 4 og 5 i bunnfeltmakroblokken (174), skal blokker nummerert 10, 11, 14 henholdsvis 15 i bunnfelt-MB hos makroblokkparet (170) over bli betraktet som naboblokkene over for det aktuelle makroblokkparet (171), slik det er vist i figur 17a.
Imidlertid, hvis makroblokkparet (170) over er dekodet i rammemodus, så skal for blokkene med nummer 0, 1, 4 og 5 i toppfeltmakroblokken (173), blokkene nummerert henholdsvis 10, 11, 14 og 15 i bunnrammemakroblokken (176) hos makroblokkparet (170) over bli betraktet som overnaboblokkene til det aktuelle makroblokkparet (171), slik det er vist i figur 17b. For blokker nummerert 0, 1, 4 og 5 i bunnfeltmakroblokken (174), skal blokker nummerert henholdsvis 10, 11, 14 og 15 i bunnrammemakroblokken (176) hos makroblokkparet (170) over bli betraktet som overnaboblokkene til det aktuelle makroblokkparet (171), slik det er vist i figur 17b.
Hvis makroblokkparet (172) til venstre er dekodet i feltmodus, så skal for blokker nummert 0, 2, 8 og 10 i toppfeltmakroblokken (173), blokker nummerert henholdsvis 5, 7, 13 og 15 i toppfeltmakroblokken (173) hos makroblokkparet (172) til venstre bli betraktet som naboblokkene til venstre for det aktuelle makroblokkparet (171), slik det er vist i figur 17c. For blokker nummerert 0, 2, 8 og 10 i bunnfeltmakroblokken (174), skal blokker nummerert henholdsvis 5, 7, 13 og 15 i bunnfeltmakroblokken (174) hos makroblokkparet (172) til venstre bli betraktet som naboblokkene til venstre for det aktuelle makroblokkparet (171), slik det er vist i figur 17c.
Hvis makroblokkparet (172) til venstre er dekodet i rammemodus, så skal for blokker nummerert 0, 2, 8 og 10 i toppfeltmakroblokken (173), blokkene nummerert henholdsvis 5, 7, 13 og 15 i topprammemakroblokken (175) hos makroblokkparet (172) til venstre bli betraktet som naboblokker til venstre for det aktuelle makroblokkparet (171), slik det er vist i figur 17d. For blokker nummerert 0, 2, 8 og 10 i bunnfeltmakroblokken (174), skal blokker nummerert henholdsvis 5, 7, 13 og 15 i bunnfeltmakroblokken (176) hos makroblokkparet (172) til venstre bli betraktet som naboblokkene til venstre for det aktuelle makroblokkparet (171), slik det er vist i figur 17d.
For makroblokkpar på den øvre grensen til en skive, skal intramodusforutsigelsesverdien som blir anvendt for å forutsi en feltmakroblokk innstilles til DC-forutsigelse hvis makroblokkparet (172) til venstre er i rammekodingsmodus.
De forutgående beskrivelser av intrakoding og intramodusforutsigelse kan utvides til adaptive blokktransformer.
Ved en annen legemliggjøring av foreliggende oppfinnelse utføres sløyfefiltrering på de rekonstruerte blokkene. En rekonstruert blokk kan være representert i enten ramme-/feltstruktur, uansett blokkens ramme-/feltkodingsmodus. Sløyfe (deblokk) -filtrering er en prosess med vektet midling av naboblokkenes piksler. Figur 12 vil bli anvendt for å forklare sløyfefiltrering. Anta at E i figur 12 er en rekonstruert blokk, og at A, B, C og D er dens rekonstruerte naboblokker, slik det er vist i figur 12, og at de alle er representert i rammestruktur. Etter som A, B, C, D og E kan være ramme- eller feltkodet, gjelder de følgende regler:
Regel 1: Hvis E er rammekodet, utføres sløyfefiltrering over pikslene til E og dens naboblokker A, B, C og D.
Regel 2: Hvis E er feltkodet, utføres sløyfefiltrering over toppfeltpikslene og bunnfeltpikslene hos E og dens naboblokker A, B, C og D adskilt.
Ved en annen legemliggjøring av forliggende oppfinnelse utføres innfylling (”padding”) på den rekonstruerte rammen ved å gjenta grensepikslene. Etter som grenseblokkene kan være kodet i ramme- eller feltmodus, gjelder de følgende regler:
Regel 1: Pikslene på den venstre eller høyre vertikallinjen av en grenseblokk gjentas om nødvendig.
Regel 2: Hvis en grenseblokk er i rammekoding, repeteres pikslene på grenseblokkens topp- eller bunnhorisontallinje.
Regel 3: Hvis en grenseblokk er i feltkoding, gjentas vekselvis pikslene på grenseblokkens to topp- eller to bunnhorisontallinjer (to felt).
Ved en annen legemliggjøring av foreliggende oppfinnelse omformes todimensjonaltransformkoeffisienter til endimensjonalrekker av koeffisienter før entropikoding. Avsøkingsveien kan være enten sikksakk eller ikke-sikksakk.
Sikksakkavsøkeren er fortrinnsvis for progressive sekvenser, men kan også bli anvendt for innfelte (”interlace”) sekvenser med langsomme bevegelser. Ikke-siksakkavsøkerne er fortrinnsvis for innfelte sekvenser. For makroblokk-AFF-koding, kan de følgende valg anvendes:
Valg 1: Sikksakk-avsøkingen anvendes for makroblokker i rammemodus mens ikkesikksakkavsøkerne anvendes for makroblokker i feltkoding.
Valg 2: Sikksakk-avsøkingen anvendes for makroblokker både i ramme- og feltmodi.
Valg 3: Ikke-sikksakkavsøking anvendes for makroblokker i både ramme- og feltmodi.
I beskrivelsen over har foreliggende oppfinnelse blitt forklart ved hjelp av legemliggjøringer for å illustrere oppfinnelsen. Mange modifikasjoner og variasjoner er imidlertid mulig på grunnlag av de angivelser som er gitt over. På grunnlag av de legemliggjøringer og prinsipper for oppfinnelsen som her er beskrevet, setter fagfolk på området i stand til å utnytte oppfinnelsen i forskjellige legemliggjøringer og med forskjellige modifikasjon slik det er best passet den bestemte anvendelse man har tenkt seg.

Claims (13)

Patentkrav
1.
Fremgangsmåte for å kode eller dekode digitalt videoinnhold, hvilket digitale videoinnhold innbefatter en strøm av bilder som hver kan være intrabilder, predikterte bilder eller bipredikterte bilder, hvor hver av bildene innbefatter makroblokker, k a r a k t e r i s e r t v e d at fremgangsmåten innbefatter trinnene:
å velge å kode eller dekode hvert par av vertikalt tilstøtende makroblokker i en rammemodus eller en feltmodus,
å arrangere nevnte par av makroblokker til rammemakroblokker eller feltmakroblokker i samsvar med den valgte av rammemodusen eller feltmodusen, og
å kode eller dekode rammemakroblokkene eller feltmakroblokkene,
hvor trinnene med å arrangere nevnte par av makroblokker til rammemakroblokker eller feltmakroblokker innbefatter trinnene:
i rammemodusen, å prosessere sammen to felter i nevnte par av makroblokker, hvilken nevnte par av makroblokker er delt i rammemakroblokker, og hver av rammemakroblokkene inkluderer både toppfeltpiksler og bunnfeltpiksler,
i feltmodusen, å prosessere separat to felter i nevnte par av makroblokker, hvilken nevnte par av makroblokker er delt i feltmakroblokker, og hvor hver av feltmakroblokkene inkluderer toppfeltpiksler eller bunnfeltpiksler,
hvor rammemakroblokkene og feltmakroblokkene er av samme størrelse.
2.
Fremgangsmåte ifølge krav 1, hvori hver av rammemakroblokkene og hver av feltmakroblokkene er 16 ganger 16 piksler.
3.
Fremgangsmåte ifølge krav 1 eller 2, hvori paret av makroblokker er 32 ganger 16 piksler.
4.
Fremgangsmåte ifølge et hvilke som helst av krav 1 til 3, hvori i det minste et av nevnte feltmakroblokker eller nevnte rammemakroblokker er ytterligere dividert i mindre blokkstørrelser inkludert de samme mulige blokkstørrelser når de er i rammemodusen eller feltmodusen, de mindre blokkstørrelsene er for bruk i tidsmessig forutsigelse med bevegelseskompensasjon.
5.
Fremgangsmåte ifølge krav 4, hvori de mindre blokkstørrelsene innbefatter 16 ganger 8 piksler, 8 ganger 16 piksler, 8 ganger 8 piksler, 8 ganger 4 piksler, 4 ganger 8 piksler eller 4 ganger 4 piksler.
6.
Fremgangsmåte ifølge krav 1, 2 eller 3, hvori i det minste en av nevnte rammemakroblokker eller feltmakroblokker er ytterligere dividert i mindre blokkstørrelser, de mindre blokkstørrelsene innbefatter 16 ganger 8 piksler, 8 ganger 16 piksler, 8 ganger 8 piksler, 8 ganger 4 piksler, 4 ganger 8 piksler eller 4 ganger 4 piksler.
7.
Fremgangsmåte ifølge krav 4, 5 eller 6, videre innbefattende å beregne prediksjonsbevegelses-vektorer for hver av blokkene med mindre størrelse.
8.
Fremgangsmåte ifølge et hvilket som helst av krav 1 til 7, videre innbefattende å bruke et ramme/felt-flagg for paret av makroblokker for å indikere rammemodus eller feltmodus.
9.
Fremgangsmåte ifølge et hvilket som helst av krav 1 til 8, hvori å velge å kode eller dekode i en rammemodus eller en feltmodus inkluderer å kode eller dekode innenfor et bilde.
10.
Fremgangsmåte ifølge krav 1, videre innbefattende å kode rammemakroblokken eller feltmakroblokken i direktemodus i de bipredikterte bildene.
11.
Fremgangsmåte ifølge krav 1, videre innbefattende å prediktere rommelig pikselverdier for rammemakroblokken eller feltmakroblokken i intrabildene, de predikterte bildene eller de bipredikterte bildene.
12.
Fremgangsmåte ifølge krav 1, videre innbefattende å prediktere på tidsmessig vis pikselverdier for rammemakroblokken eller feltmakroblokken i de predikterte bildene eller de bipredikterte bildene.
13.
Apparat tilpasset å utføre trinnene i fremgangsmåten som beskrevet i et hvilket som helst av de foregående krav.
NO20170267A 2001-11-21 2017-02-24 Makroblokknivå adaptiv ramme-/feltkoding på makroblokknivå for digitalt videoinnhold NO342643B1 (no)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US33300401P 2001-11-21 2001-11-21
US33392101P 2001-11-27 2001-11-27
US39573402P 2002-07-12 2002-07-12
PCT/US2002/037739 WO2003047272A2 (en) 2001-11-21 2002-11-21 Macroblock level adaptive frame/field coding for digital video content

Publications (2)

Publication Number Publication Date
NO20170267A1 NO20170267A1 (no) 2004-07-21
NO342643B1 true NO342643B1 (no) 2018-06-25

Family

ID=61800178

Family Applications (2)

Application Number Title Priority Date Filing Date
NO20170267A NO342643B1 (no) 2001-11-21 2017-02-24 Makroblokknivå adaptiv ramme-/feltkoding på makroblokknivå for digitalt videoinnhold
NO20181242A NO20181242A1 (no) 2001-11-21 2018-09-24 Makroblokknivå adaptiv ramme-/feltkoding på makroblokknivå for digitalt videoinnhold

Family Applications After (1)

Application Number Title Priority Date Filing Date
NO20181242A NO20181242A1 (no) 2001-11-21 2018-09-24 Makroblokknivå adaptiv ramme-/feltkoding på makroblokknivå for digitalt videoinnhold

Country Status (1)

Country Link
NO (2) NO342643B1 (no)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0608231A1 (de) * 1991-04-25 1994-08-03 Thomson Brandt Gmbh Verfahren zur bildsignalcodierung.

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0608231A1 (de) * 1991-04-25 1994-08-03 Thomson Brandt Gmbh Verfahren zur bildsignalcodierung.

Also Published As

Publication number Publication date
NO20181242A1 (no) 2004-07-21
NO20170267A1 (no) 2004-07-21

Similar Documents

Publication Publication Date Title
DK2271115T3 (en) Adaptive frame / field encoding at macro block level of digital video content
DK1449385T3 (en) Adaptive frame / field encoding at macro block level of digital video content
NO20181242A1 (no) Makroblokknivå adaptiv ramme-/feltkoding på makroblokknivå for digitalt videoinnhold
NO343010B1 (no) Adaptiv ramme-/feltkoding på makroblokknivå for digitalt videoinnhold

Legal Events

Date Code Title Description
MK1K Patent expired