NO20170267A1 - Macro block level adaptive frame / field encoding at the macro block level for digital video content - Google Patents

Macro block level adaptive frame / field encoding at the macro block level for digital video content Download PDF

Info

Publication number
NO20170267A1
NO20170267A1 NO20170267A NO20170267A NO20170267A1 NO 20170267 A1 NO20170267 A1 NO 20170267A1 NO 20170267 A NO20170267 A NO 20170267A NO 20170267 A NO20170267 A NO 20170267A NO 20170267 A1 NO20170267 A1 NO 20170267A1
Authority
NO
Norway
Prior art keywords
field
block
macroblocks
macroblock
pair
Prior art date
Application number
NO20170267A
Other languages
Norwegian (no)
Other versions
NO342643B1 (en
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/en
Application filed by Motorola Mobility Llc filed Critical Motorola Mobility Llc
Publication of NO342643B1 publication Critical patent/NO342643B1/en

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

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. The present invention relates to coding and decoding of digital video content. More specifically, the present invention relates to frame mode coding and field mode coding of digital video content at the macroblock level as used in the MPEG-4 part 10 AVC/H.264 standard as a video coding standard.

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. Video compression is used in many current and upcoming products. It is an essential part of digital television set-top boxes (STBs), digital satellite systems (DSS), high-definition television (HDTV) decoders, digital video disc (DVD) players, video conferencing, Internet video and multimedia content, and other digital video applications. Without video compression, the digital video content can be extremely large, making it difficult or even impossible for the digital video content to be efficiently stored, transmitted or viewed.

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. The digital video content includes a stream of images that can be displayed as an image on a television receiver, computer screen or other electronic device capable of displaying the digital video content. An image presented in time before a particular image is in a "reverse directional relationship" to that particular image. Likewise, an image displayed after a particular image is in the "forward direction" relationship to that particular image.

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. Video compression is achieved in an encoding process in which each frame is encoded as either one frame or as two fields. Each frame includes a number of lines of spatial information. For example, a typical frame contains 480 horizontal lines. Each field contains half the number of lines in the frame. As an example, if the frame includes 480 horizontal lines, each field includes 240 horizontal lines. In a typical configuration, one of the fields comprises the odd numbered lines in the frame and the other field comprises the even numbered lines in the frame. The field comprising the odd number lines will be referred to as the "top" field hereinafter and in the appended claims, unless otherwise specifically stated. Likewise, the even-numbered lines are referred to as the "bottom field" in what follows here and in the accompanying claims, unless otherwise stated. The two fields can be inset together to form an inset frame.

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. The general idea behind video encoding is to remove data from the digital video content that is considered "non-essential". The reduced amount of data then requires less bandwidth for broadcasting or transmission. After the compressed video data has been transmitted, it must be decoded, or decompressed. In this process, the transmitted video data is processed to produce approximation data that is substituted into the video data to replace the "non-essential" data that is removed in the encoding process.

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. Video encoding transforms the digital video content into a compressed form that can be stored using less space and transmitted using less bandwidth than uncompressed digital video content. This is achieved by taking advantage of the temporal and spatial redundancies in the images of the video content. The digital video content may be stored on a storage medium such as a hard disk, DVD or other non-volatile storage medium.

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. There are a number of video coding methods that compress the digital video content. Accordingly, the video coding standards have been developed to standardize the various video coding methods so that the compressed digital video content is rendered in formats that a majority of video encoders and decoders can recognize. For example, the Motion Picture Experts Group (MPEG) and the International Telecommunication Union (ITU-T) have developed video coding standards that are widely used. Examples of these standards include MPEG-1, MPEG-2, MPEG-4, ITU-T H261 and ITU-T H263 standards.

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. Most modern video coding standards, such as those developed by MPEG ITU-T, are based in part on a temporal prediction algorithm with motion compensation (MC). Temporal prediction with motion compensation is used to remove temporal redundancy between successive frames in a digital video broadcast.

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. The temporal prediction algorithm with motion compensation usually uses one or two reference images to encode a particular image. A reference image is an image that has already been encoded. By comparing the particular image to be encoded with one of the reference images, the temporal prediction algorithm with motion compensation can take advantage of the temporal redundancy that exists between the reference image and the particular image to be encoded and then encode the image with a greater degree of compression than if the image were coded without using the temporal prediction algorithm with motion compensation. One of the reference images can be in the reverse direction in relation to the particular image to be coded. The second reference image is in the forward direction relative to the particular image to be coded.

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 (AVQ/H264 standard. However, as demands for higher resolution, more complex graphic content and faster transfer times increase, so does the need for better methods of video compression. To this end, a new video coding standard is currently being developed jointly by ISO and ITU-T. The new video coding standard is called MPEG-4 Advanced Video Coding (AVQ/H264 standard.

I henhold til aspekter ved oppfinnelsen tilbebringes det en fremgangsmåte for koding, en fremgangsmåte for dekoding , et apparat for koding, og et apparat for dekoding slik det er angitt i kravene. 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 innbærer koding og dekoding hver av makroblokkene i hvert bilde i strømmen av bilder i enten rammemodus eller i feltmodus. According to aspects of the invention, a method for encoding, a method for decoding, an apparatus for encoding, and an apparatus for decoding are provided as stated in the claims. In one of many possible embodiments, the present invention provides a method for encoding, decoding and bitstream generation of digital video content. The digital video content includes a stream of images which may be intra images, predicted images or bi-predicted images. Each of the images includes macro blocks which can further be divided into smaller blocks. The method involves encoding and decoding each of the macroblocks of each image in the stream of images in either frame mode or field mode.

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 3 c 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 The accompanying drawings illustrate various realizations of the present invention, and thus form part of the description. Along with the following description, the drawings demonstrate and explain the principles of the present invention. The illustrated embodiments are examples of the present invention and do not limit the scope of the invention. Figure 1 illustrates a sequence example for three types of images that can be used to implement the present invention, as defined by a video coding standard example such as the MPEG-4 part 10 AVC/H.264 standard. Figure 2 shows that each image is preferably divided into slices containing macroblocks in accordance with an embodiment of the present invention. Figure 3a shows that a macroblock can further be divided into a block size that is 16 by 8 pixels in accordance with an embodiment of the present invention. Figure 3b shows that a macroblock can further be divided into a block size that is 8 by 16 pixels in accordance with an embodiment of the present invention. Figure 3c shows that a macroblock can further be divided into a block size that is 8 by 8 pixels in accordance with an embodiment of the present invention. Figure 3d shows that a macroblock can be further divided into a block size that is 8 times

4 piksler i samsvar med en legemliggjøring av foreliggende oppfinnelse. 4 pixels in accordance with an embodiment of the present invention.

Figur 3e viser at en makroblokk videre kan oppdeles i en blokkstørrelse som er 4 ganger Figure 3e shows that a macroblock can be further divided into a block size that is 4 times

8 piksler i samsvar med en legemliggjøring av foreliggende oppfinnelse. 8 pixels in accordance with an embodiment of the present invention.

Figur 3f viser at en makroblokk videre kan oppdeles i en blokkstørrelse som er 4 ganger Figure 3f shows that a macroblock can be further divided into a block size that is 4 times

4 piksler i samsvar med en legemliggjøring av foreliggende oppfinnelse. 4 pixels in accordance with an embodiment of the present invention.

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. Figure 4 shows an image construction example using temporal prediction with motion compensation that illustrates embodiments of the present invention. Figure 5 shows that a macroblock is divided into a top field and a bottom field if it is to be coded in field mode. Figure 6a shows that a macroblock encoded in field mode can be divided into a block with a size of 16 by 8 pixels in accordance with an embodiment of the present invention. Figure 6b shows that a macroblock encoded in field mode can be divided into a block with a size of 8 by 8 pixels in accordance with an embodiment of the present invention. Figure 6c shows that a macroblock encoded in field mode can be divided into a block with a size of 4 by 8 pixels in accordance with an embodiment of the present invention. Figure 6d shows that a macroblock encoded in field mode can be divided into a block with a size of 4 by 4 pixels in accordance with an embodiment of the present invention. Figure 7 illustrates an example of a macroblock pair that can be used in AFF coding on a pair of macroblocks in accordance with an embodiment of the present invention. Figure 8 shows that a macroblock pair to be coded in field mode is first split into a 16 by 16 pixel top field block and a 16 by 16 pixel bottom field block.

Figur 9 viser to mulige avsøkingsmønstre i AFF-koding av makroblokkpar. Figure 9 shows two possible scanning patterns in AFF coding of macroblock pairs.

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. Figure 10 shows another embodiment of the present invention which extends the concept of AFF coding on a pair of macroblocks to AFF coding on a group of four or more adjacent macroblocks. Figure 11 shows some of the information included in the bitstream that holds information relating to each macroblock in a stream. Figure 12 shows a block to be encoded and its neighboring blocks and will be used to explain various preferred methods for calculating the PMV of a block in a macroblock. Figure 13 shows an alternative definition of neighboring blocks if the scanning path is a vertical scanning path. Figure 14 shows that each pixel value is predicted from the neighboring blocks' pixel values in accordance with an embodiment of the present invention.

Figur 15 viser forskjellige forutsigelsesretninger for intra_4x4-koding. Figure 15 shows different prediction directions for intra_4x4 coding.

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. Figure 16a-b illustrates that the selected intra-prediction mode (intra_pred_mode) of a 4 by 4 pixel block is highly correlated with adjacent blocks' prediction modes. Figure 17a-d shows neighboring block definitions in relation to a current macroblock pair to be coded.

For de angitte tegninger gjelder at identiske henvisningstall angir tilsvarende, men ikke nødvendigvis identiske, elementer. For the indicated drawings, identical reference numbers indicate corresponding, but not necessarily identical, elements.

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. The present invention provides a method for adaptive frame/field (AFF) encoding of digital video content comprising a stream of images or slices of an image at the macroblock level. The present invention extends the concept of image-level AFF to macroblocks. In frame-level AFF encoding, each frame is encoded in a stream of frames to be encoded in either frame mode or field mode, regardless of the frame encoding mode or field encoding mode of other frames to be encoded. If the image is encoded in frame mode, the two fields that form the inset frame are co-encoded. Conversely, if the image is encoded in field mode, the two fields forming an inset frame are encoded separately. The encoder determines the type of encoding, frame mode encoding or field mode encoding, that is most beneficial for each image and selects that encoding type for the image. The exact procedure for choosing between frame mode and field mode is not critical to the present invention and will not be detailed here.

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. As stated above, the MPEG-4 Part 10 AVC/H.264 standard is a new standard for encoding and compressing digital video content. The documents establishing the MPEG-4 Part 10 AVC/H.264 standard are hereby incorporated by reference, which include the "Joint Final Committee Draft (JFCD) and Joint Video Specification" issued by the Joint Video Team (JVT) on August 10, 2002 (See also ITU-T recommendation H.264 and ISO/IEC 14496-10 AVC). The aforementioned JVT consists of experts from ISO MPEG and ITU-T. Due to the public nature of the MPEG-4 Part 10 AVC/H.264 standard, the present invention will not attempt to document all the existing aspects of video coding in accordance with MPEG-4 Part 10 AVC/H.264, but will instead support itself on the standard's incorporated specifications.

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. Although this method of AFF coding is compatible with and will be explained using the standard guidelines of MPEG-4 Part 10 AVC/H.264, it can be modified and applied to suit a particular standard or application.

Ved bruk av tegningene, vil foretrukne legemliggjøringer av foreliggende oppfinnelse nå bli forklart. Using the drawings, preferred embodiments of the present invention will now be explained.

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. Figure 1 illustrates a sequence example for three image types that can be used to implement the present invention, as defined by an example of a video coding standard such as, for example, the standard MPEG-4 part 10 AVC/H.264. As previously mentioned, the encoder encodes the images and the decoder decodes the images. The encoder or decoder may be a processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a coder/decoder (CODEC), a digital signal processor (DSP), or another electronic device capable of encoding the current of pictures. However, as used hereinafter and in the appended claims, the term "encoder" will be used to refer broadly to any electronic device that encodes digital video content comprising a stream of images, unless otherwise specifically stated. The term "decoder" will be used to refer broadly to any electronic device that decodes digital video content that includes a stream of images.

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), prediterte (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. As shown in Figure 1, there are preferably three image types that can be used in the video coding method. Three image types are defined to provide support for random access to stored digital video content while investigating the maximum redundancy reduction using temporal prediction with motion compensation. The three image types are intra (I) images (100), predicted (P) images (102a, b) and bi-predicted (B) images (101a-d). An I-picture (100) provides an access point for random access to stored digital video content and can be encoded with only mild compression. Intra images (100) are coded without reference to reference images.

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). A predicted image (102a,b) is encoded using an I-image, a P-image or a B-image that has already been encoded as a reference image. The reference picture can be either in the forward or reverse temporal direction in relation to the P-picture being coded. The predicted images (102a, b) can be coded by more compression than the intraimages (100).

Et bi-prediktert bilde (101a-d) kodes ved bruk av to tidsreferansebilder, et foroverreferansebilde og et reversreferansebilde. Foroverreferansebildet kalles enkelte ganger et fortidsreferansebild 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. A bi-predicted picture (101a-d) is encoded using two time reference pictures, a forward reference picture and a reverse reference picture. The forward reference image is sometimes called a past reference image and the reverse reference image is sometimes called a future reference image. An embodiment of the present invention is one where the forward reference picture and the reverse reference picture can be in the same temporal direction in relation to the B picture to be coded. Bi-predicted images (101a-d) can be encoded with the most compression of the three image types mentioned.

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. The reference relationships (103) between the three image types are illustrated in figure 1. For example, the P image (102a) can be coded using the coded I image (100) as its reference image. The B-pictures (101a-d) may be encoded using the encoded I-picture (100) or the encoded P-picture (102a) as their reference pictures, as shown in Figure 1. Under the principles of an embodiment of the present invention coded B-pictures (101a-d) can also be used as reference pictures for other B-pictures to be coded. For example, the B-image (101c) in figure 1 is shown with two other B-images (101b and 101d) as its reference images.

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-l (401). Bildet N-l (401) er referansebildet for kodingen av bilde N (400) og kan være i tidsmessig foroverretning eller reversretning i forhold til bilde N (400). The number and specific order of the I-images (100), B-images (101a-d) and P-images (102a, b) shown in Figure 1 are provided as an example of a configuration of images, but are not necessary to implement the present invention. Any number of I-images, B-images and P-images can be used in any order to best serve a particular application. The standard MPEG-4 part 10 AVC/H.264 does not impose any limitation on the number of B frames that must be between two reference frames, nor does it limit the number of frames between two I frames. Figure 2 shows that each image (200) is preferably divided into slices (202). A disc (202) includes a macroblock group (201). A macroblock (201) is a rectangular group of pixels. As shown in Figure 2, a preferred size for a macroblock (201) is 16 by 16 pixels. Figures 3a-f show that a macroblock can further be divided into blocks of smaller size. For example, as shown in Figures 3a-f, a macroblock can be further divided into block sizes of 16 by 8 pixels (Figure 3a, 300), 8 by 16 pixels (Figure 3b, 301), 8 by 8 pixels (Figure 3c, 302), 8 by 4 pixels (Figure 3d, 303), 4 by 8 pixels (Figure 3e, 304) or 4 by 4 pixels (Figure 3f, 305). These smaller sized blocks are preferred in some applications that make use of the motion compensated temporal prediction algorithm. Figure 4 shows an image construction example using temporal prediction with motion compensation illustrating an embodiment of the present invention. Temporal prediction with motion compensation assumes that a current image, image N (400), can be modulated locally as a translation of another image, image N-1 (401). The image N-1 (401) is the reference image for the coding of image N (400) and can be temporally forward or reverse in relation to image N (400).

Som vist i figur 4 blir hvert bilde fortrinnsvis delt i to skiver som omfatter makroblokker (201a, b). Bildet N-l (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-l (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-l (401) ved å estimere den nødvendige mengde av tidsmessig bevegelse i bildeinnholdet i hver makroblokk (201a) hos bildet N-l (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. As shown in Figure 4, each image is preferably divided into two slices comprising macroblocks (201a, b). Image N-l (401) contains an image (403) to be displayed in image N (400). The image (403) will be in a different temporal position in the image N (402) than is the case for the image N-1 (401) as shown in Figure 4. The image content in each macroblock (201b) for the image N (400) is predicted from the image content in each corresponding macroblock (201a) of the image N-l (401) by estimating the necessary amount of temporal movement in the image content in each macroblock (201a) of the image N-l (401) for the image (403) to move to its new temporal position (402) in image N (400). Instead of the original image (402) being encoded, it is the difference (404) between the image (402) and its prediction (403) that is actually encoded and transmitted.

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. For each image (402) in the image N (400), the temporal prediction can often be described using a motion vector that represents the amount of temporal movement necessary for the image (403) to move to a new temporal position in the image N (402). The motion vectors (406) used for temporal prediction with motion compensation must be coded and transmitted.

Figur 4 viser at bildet (402) i bildet N (400) kan representeres ved hjelp av forskjellen Figure 4 shows that the image (402) in the image N (400) can be represented using the difference

(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. (404) between the image and its prediction and the associated motion vectors (406). The exact coding procedure using the motion vectors can be varied as best serves the particular application and can be easily implemented by one skilled in the art.

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. To understand AFF coding at the macroblock level, a brief introduction to AFF coding at the image level of a stream of images will now be given. A frame in an interleaved sequence contains two fields, namely the top field and the bottom field, which are interleaved and separated in time by a field period. The field period has a duration that corresponds to half of a frame period. In frame-level AFF coding, the two fields in an inset frame can be coded together or coded separately. If they are coded together, frame mode coding is used. In contrast, if two fields are coded separately, field mode coding is used.

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. On the other hand, fixed frame/field encoding encodes all the images in a stream of images in only one mode. This mode can be frame mode or it can be field mode. Frame-level AFF is preferred for fixed frame/field encoding in many applications because it allows the encoder to select the mode, frame mode or field mode, to encode each frame in the stream of frames based on the content of the digital video material. AFF coding results in better compression than is achieved with fixed frame/field coding in many applications.

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. One embodiment of the present invention is one where AFF coding can be performed on smaller portions of an image. This smaller part can be a macroblock, a pair of macroblocks, or a group of macroblocks. Each macroblock, macroblock pair, or group of macroblocks or slice is encoded in frame mode or field mode, regardless of how the other macroblocks in the image are encoded. AFF coding will in each of the three cases be described in detail below.

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 bevegelseskompensasj on. In the first case, AFF encoding is performed on a single macroblock. If the macroblock is to be coded in frame mode, the two fields in the macroblock are coded together. Once encoded as a frame, the macroblock can be further divided into smaller blocks as shown in Figures 3a-f for use in the temporal prediction algorithm with motion compensation.

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. However, if the macroblock is to be coded in field mode, the macroblock (500) is split into a top field (501) and a bottom field (502), as shown in Figure 5. The two fields are then coded separately. In Figure 5, the macroblock has M rows of pixels and N columns of pixels. A preferred value for N and M is 16, which makes the macroblock (500) a 16 by 16 pixel macroblock. As shown in Figure 5, every other row of pixels is shaded. The shaded areas represent rows of pixels in the top field of the macroblock (500) and the unshaded areas represent rows of pixels in the bottom field of the macroblock (500).

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. As shown in Figures 6a-d, a macroblock encoded in field mode can be divided into four additional blocks. It is necessary for a block to have single parity. The single parity requirement means that a block cannot include both a top field and a bottom field. Rather, it must accommodate a single parity of fields. Thus, as shown in Figures 6a-d, a field mode macroblock can be divided into blocks that are 16 by 8 pixels (Figure 6a, 600), 8 by 8 pixels (Figure 6b, 601), 4 by 8 pixels (Figure 6c, 602 ) and 4 by 4 pixels (Figure 6d, 603). Figures 6a-d show that each block contains fields with single parity.

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 innbæ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. AFF encoding on macroblock pairs will now be explained. AFF coding on macroblock pairs will sometimes be referred to as pair-based AFF coding. A comparison of the block sizes in Figures 6a-d with those in Figures 3a-f shows that a macroblock coded in field mode can be divided into fewer block patterns than is the case for a macroblock coded in frame mode. The block sizes of 16 by 16 pixels, 8 by 16 pixels, and 8 by 4 pixels are not available for a macroblock encoded in field mode due to the single parity requirement. This implies that the performance of a single block-based AFF may not be good for some sequences or applications that strongly prefer field mode coding. To guarantee field mode macroblock coding performance, in some applications it is preferred that macroblocks encoded in field mode have the same block sizes as macroblocks encoded in frame mode. This can be achieved by performing AFF encoding on pairs of macroblocks rather than on macroblocks individually.

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. Figure 7 illustrates an example of a pair of macroblocks (700) that can be used in AFF coding on a pair of macroblocks in accordance with an embodiment of the present invention. If the pair of macroblocks (700) is to be encoded in frame mode, the pair is encoded as two frame-based macroblocks. In each macroblock, the two fields in each of the macroblocks are coded together. Once encoded as frames, the macroblocks can be further divided into smaller blocks as shown in Figures 3a-f for use in the temporal prediction algorithm with motion compensation.

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 However, if the pair of macroblocks (700) is to be coded in field mode, it is first split into a top field 16 by 16 pixel block (800) and a bottom field 16 by 16 pixel block

(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. (800), as shown in figure 8. The two fields are then coded separately. In Figure 8, each macroblock in the macroblock pair (700) has N=16 columns of pixels and M=16 rows of pixels. Thus, the dimensions of the pair of macroblocks (700) are 16 by 32 pixels. As shown in Figure 8, every other row of pixels is shaded. The shaded areas represent rows of pixels in the top field of the macroblocks and the unshaded areas represent the rows of pixels in the bottom field of the macroblocks. The top field block (800) and the bottom field block (801) can now be divided into one of the possible block sizes shown in figures 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 In accordance with one embodiment of the present invention, there are two possible scan paths in the AFF encoding of the pair of macroblocks (700). A scan path determines the order in which the macroblock pairs in an image are encoded. Figure 9 shows two possible scanning paths in AFF coding of the pairs of macroblocks (700). One of the scan paths is a horizontal scan path (900). In the horizontal scan path

(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. (900), the macroblock pair (700) is encoded in an image (200) from left to right and from top to bottom, as shown in Figure 9. The second scan path is a vertical scan path (901). In the vertical scan path (901), the macroblock pairs (700) in an image (200) are encoded from top to bottom and from left to right, as shown in Figure 9. For frame mode coding, the topmost macroblock in a macroblock pair (700) is first encoded followed by of the bottom macro block. For field mode encoding, the top field macroblock in a macroblock pair is encoded first, followed by the bottom field macroblock.

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. Another embodiment of the present invention extends the AFF encoding concept on a pair of macroblocks to AFF encoding on a group of four or more adjacent macroblocks (902), as shown in Figure 10. AFF encoding on a group of macroblocks will occasionally be referred to as group-based AFF coding. The same scanning paths, horizontally (900) and vertically (901), are used in the scanning of macroblock pairs that are used in the scanning of groups of neighboring macroblocks (902). Although the example shown in Figure 10 shows a group of four macroblocks, the group may comprise more than four macroblocks.

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. If the group of macroblocks (902) is to be encoded in frame mode, the group is encoded as four frame-based macroblocks. In each macroblock, the two fields in each of the macroblocks are jointly coded. Once coded as frames, the macroblocks can be further divided into smaller blocks as shown in Figures 3a-f for use in the temporal prediction algorithm with motion compensation.

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. However, for example, if a group of four macroblocks (902) is to be encoded in field mode, it is first split into a top field block of 32 by 16 pixels and a bottom field block of 32 by 16 pixels. The two fields are then coded separately. The top field block and the bottom field block can now be split into macro blocks. Each macroblock is further divided into one of the possible block sizes shown in figures 3a-f. Because this process corresponds to that shown in Figure 8, a separate figure is not provided to illustrate this embodiment.

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. In AFF coding at the macroblock level, a frame/field flag bit is preferably included in a picture's bitstream to indicate the mode, frame mode or field mode, used in the coding of each macroblock. The bit stream includes information that applies to each macroblock in a stream, as shown in Figure 11. For example, the bit stream can include an image preamble (110) and information (111) about the macroblock type (113). Preferably, the frame/field flag (112) is included before each macroblock in the bitstream if AFF is performed on each individual macroblock. If AFF is performed on macroblock pairs, the frame/field flag (112) is preferably included before each macroblock pair in the bit stream. And finally, if AFF is performed on a macroblock group, the frame/field flag (112) is preferably included before each macroblock group in the bit stream. In one embodiment, the frame/field flag bit (112) is a 0 if frame mode is to be used and a 1 if field encoding is to be used. In another embodiment, the frame/field flag bit (112) is a 1 if frame mode is to be used and a 0 if field coding is to be used.

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. A further embodiment of the present invention involves a method for determining the block sizes into which the encoder divides a macroblock for AFF at the macroblock level. A preferred but not exclusive method for determining the ideal block size is the sum absolute difference (SAD) with or without bias or rate distortion bias (RD). For example, SAD checks the performance of the possible block sizes and selects the ideal block size based on its result. The exact procedure for using SAD with or bias or RD-bias can easily be carried out by an expert in the field.

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. According to an embodiment of the present invention, each frame/field-based macroblock in the macroblock-level AFF can be intracoded or intercoded. In intracoding, the macroblock is coded without temporal reference to other macroblocks. On the other hand, intercoding uses temporal prediction with motion compensation to encode the macroblocks.

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. If intercoding is used, a block with a size equal to 16 by 16 pixels, 16 by 8 pixels, 8 by 16 pixels or 8 by 8 pixels can have its own reference images. The block can be either a frame-based or field-based macro block. The MPEG-4 Part 10 AVC/H.264 standard allows for multiple reference frames instead of just two reference frames. The use of multiple reference images improves the performance of the motion-compensated temporal prediction algorithm by allowing the encoder to find a block in the reference image that best matches the block to be encoded. By using the block in the reference picture in the coding process which most coincides with the block to be coded, the greatest possible compression can be achieved in the coding of the picture. The reference images are stored in frame and field buffers and assigned reference frame numbers and reference field numbers based on their temporal distance from the current image being encoded. The closer the reference image is to the current image being stored, the more likely it is that the reference image will be selected. For field mode coding, the reference frames for a block can be any top field or bottom field in any of the reference frames in the frame buffers or field buffers.

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. Each block in a frame-based or field-based macroblock can have its own motion vectors. The motion vectors are spatially, predictively encoded. In accordance with an embodiment of the present invention, prediction motion vectors (PMV) for each block are also calculated in intercoding. The algebraic difference between a block's PMVs and its associated motion vectors is then calculated and encoded. This produces the compressed bits for motion vectors.

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. Reference is then made to figure 12 which is used to explain different preferred methods for calculating the PMV for a block in a macro block. A current block E, shown in Figure 12, is to be intercoded as well as its neighboring blocks A, B, C and D. I will hereafter be referred to as a current block and A, B, C and D will hereafter be referred to as neighboring blocks to E, with unless otherwise stated. The PMV of the block E is derived from its neighboring vectors' motion vectors. These neighboring blocks in the example in figure 12 are A, B, C and D. A preferred method for calculating the PMV for block E is to calculate either the meridian of the motion vectors of blocks A, B, C and D, the average of these motion vectors or the weight of these motion vectors average. Each of the blocks A through E can be in either frame mode or field mode.

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. Another preferred method of calculating PMV for block E is to use a yes/no method. Under the principles of the yes/no procedure, a block must be in the same frame encoding mode or field encoding mode as block E to have its motion vector included in the calculation of PMV for E. For example, if block E in Figure 12 is in frame mode, block A must also be in frame mode to have its motion vector included in the calculation of the PMV for the block E. If one of the neighboring blocks of E does not have the same encoding mode as the mode of the block E, its motion vector is not used in the calculation of the sought PMV for the block 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. The "always method" can also be used to calculate PMV for block E. In the "always method", blocks A, B, C and D are always used with the calculation of PMV for block E, regardless of whether they are according to frame coding mode or field coding mode. If E is in frame mode and the neighboring block is in field mode, the neighboring block's vertical component is multiplied by 2 before it is included in the PMV calculation for block E. If E is in field mode and a neighboring block is in frame mode, the neighboring block's vertical component is divided by 2 for it to be included in The PMV calculation for block 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 The "selective method" can also be used to calculate the PMV for block E if the macroblock has been encoded using pair-based AFF encoding or group-based AFF encoding. In the "selective method", a frame-based block has a frame-based motion vector that points to a reference frame. The block is also assigned a field-based motion vector that points to a reference field. The field-based motion vector is the frame-based motion vector of the block that has

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. the vertical motion vector component divided by two. The reference field number is the reference frame number multiplied by two. A field-based block has a field-based motion vector that points to a reference field. The block is also assigned a frame-based motion vector that points to a reference frame. The frame-based motion vector is the field-based motion vector of the block with the vertical motion vector component multiplied by two. The reference frame number is the reference field number divided by two.

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. The derivation of a block's PMV using the "selective method" will now be explained using Figure 12 as a reference. In macroblock pair-based AFF, each block in a macroblock is associated with a companion block that resides in the same geometric location within the macroblock pair's other macroblock. In Figure 12, each of the neighboring blocks (A, B, C and D) of E may or may not be in the same frame or field coding mode as block E. Therefore, the following rule applies: If E is in frame mode and a neighboring block is in frame mode , the neighboring block's true frame-based motion vector is used 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. If E is in frame mode and a neighboring block is in field mode, the following rules apply for calculating E's PMV. If the neighboring block (for example, block A) and its companion field-based block have the same reference field, the average of the two blocks' assigned frame-based motion vectors is used for the calculation of E's PMV. The reference frame number used for the PMV calculation is the reference field number of the neighboring block divided by two. However, if the neighboring block and its companion field block have different reference fields, the neighboring block cannot be used in the calculation of 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. If E is in field mode and a neighboring block is in frame mode, the following rules apply for calculating PMV for E. If the neighboring block (for example, block A) and the accompanying frame-based block have the same reference frame, the average of the two blocks' assigned field-based motion vectors is used for the calculation of E's PMV. The reference field number used for the PMV calculation is the neighboring block's reference number multiplied by two. However, if the neighboring block and its companion field block have different reference frames, then the neighboring block cannot be used in the calculation of 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. If E is in field mode and a neighboring block is in field mode, the neighboring block's true field-based motion vector is used in the calculation of 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. An alternative preferred option can be used in the "selective method" to calculate a block's PMV. In Figure 12, each of block E's neighboring blocks (A, B, C, and D) may or may not be in the same frame or field coding mode as block E. Therefore, the following rules apply to this alternative, preferred option for the selective method: If E is in frame mode and a neighboring block is in frame mode, the neighboring block's true frame-based motion vector is used 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. If E is in frame mode and a neighboring block is in field mode, the weighted average of the neighboring block's assigned frame-based motion vectors and its companion field-based block is used to calculate the PMV for E. The weighting factors are based on the neighboring block's reference field numbers and its companion block.

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. If E is in field mode and a neighboring block is in frame mode, the weighted average of the neighboring block's assigned field-based motion vectors and its companion frame-based block is used to calculate E's PMV. The weighting factors are based on the neighboring block's reference frame numbers and the companion block.

Hvis E er i feltmodus og en naboblokk er i feltmodus, anvendes naboblokkens sanne feltbaserte bevegelsesvektor til beregningen av PMV for E. If E is in field mode and a neighboring block is in field mode, the neighboring block's true field-based motion vector is used to calculate the PMV for E.

En annen foretrukket fremgangsmåte for beregning av en blokks PMV er "alt-selektivmetoden". 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. Another preferred method for calculating a block's PMV is the "all-selective method". This method can be used in single-block AFF coding, pair-based macroblock AFF coding or group-based AFF coding. In this method, each block is assigned a horizontal and a vertical index number that represents the block's horizontal and vertical coordinates. Each block is also assigned a horizontal and vertical field coordinator. A block's horizontal field coordinate is the same as the block's horizontal coordinate. For a block in a top field macroblock, the vertical field coordinate is half the block's vertical coordinate and is assigned top field polarity. For a block in the bottom field macro block, the block's vertical field coordinate is obtained by subtracting 4 from the block's vertical coordinate and dividing the result by 2. The block is also assigned bottom field polarity. The result of assigning different field polarities to two blocks is that there are now two blocks with the same horizontal and vertical field coordinates, but with different field polarities. Thus, given the coordinates of a block, the field coordinates and its field polarity can be calculated, and vice versa.

"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. The "alt-selective method" will now be explained in more detail using Figure 12 as a reference. The PMV for block E must be calculated. Let bx represent the horizontal size of the block E divided by 4, which is the size of a block in this example. The PMVs for E are obtained as follows, depending on whether E is in frame mode or field mode.

La blokken E være i rammemodus, og la (x, y) representere horisontalkoordinatene Let block E be in frame mode, and let (x, y) represent the horizontal coordinates

henholdsvis vertikalkoordinatene for E. Naboblokkene til E er definert på følgende vis. A er blokken hvis koordinater er (x-l,y). B er blokken hvis koordinater er (x,y-l). D er blokken hvis koordinater er ((x-l,y-l). 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. respectively the vertical coordinates for E. The neighboring blocks of E are defined as follows. A is the block whose coordinates are (x-l,y). B is the block whose coordinates are (x,y-l). D is the block whose coordinates are ((x-l,y-l). C is the block whose coordinates are (x+bx+1, y-1). If one of A, B, C, or D is in field mode, then its vertical motion vector is multiplied by 2 before it is used for prediction and its reference frame number calculated by dividing its reference field by 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. Then let the block E be in top or bottom field mode and let (xf, yf) represent the horizontal field coordinates and the vertical field coordinates respectively for E. In this case the neighbors of E are defined as follows. A is the block whose field coordinates are (xf-1, yf) and has the same polarity as E. B is the block whose field coordinates are (xf, yf-1) and has the same polarity as E. D is the block whose field coordinates are (xf -1, yf-1) and has the same polarity as E. C is the block whose field coordinates are (xf+bx+1, yf) and has the same polarity as E. If A, B, C or D is in frame mode, then split its vertical motion vector by 2 before it is used for prediction and its reference field is calculated by multiplying its reference frame by 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. In all of the methods outlined above for determining a block's PMV, a horizontal scan path was assumed. However, the scanning path can also be a vertical scanning path. In this case, the neighboring blocks of the relevant block E are defined as shown in Figure 13. A vertical scan path is preferred in some applications because the information in all neighboring blocks is available for the calculation of the PMV for the relevant block E.

En annen legemliggjøring av foreliggende oppfinnelse er Another embodiment of the present invention is

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. directional segmentation prediction. In directional segmentation prediction, 16 by 8 pixel blocks and 8 by 16 pixel blocks have rules that apply only to their PMV calculations. These rules apply in all PMV calculation methods for these block sizes. The rules will now be explained in more detail in connection with Figure 12. In each of these rules, a relevant block E will have its PMV calculation.

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 First, a 16 by 16 pixel block consists of an upper block and lower block. The upper block contains the upper 8 rows of 16 pixels. The lower block contains the bottom 8 rows of 16 pixels. In the following description, block E is in figure 12

en 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. a 16 by 16 pixel block. For the upper block in the 16 by 8 pixel block, block B is used to predict block E's PMV if it has the same reference image as block E. Otherwise, median prediction is used to predict block E's PMV. For the lower block in a 16 by 8 pixel block, block A is used to predict block E's PMV if it has the same reference image as block E. Otherwise, median prediction is used to predict block 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 12 8 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. An 8 by 16 pixel block is used in a left and right block. Both the left and right blocks are 8 by 16 pixels. In the following description, the blocks A-E in Figure 12 are 8 by 16 pixel blocks. For the left block, block A is used to predict block E's PMV if it has the same reference image as block E. Otherwise, median prediction is used to predict block E's PMV. For the right block, block C is used to predict block E's PMV if it has the reference image as block E. Or median prediction is used to predict block 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. For 16 by 8 pixel blocks and 8 by 16 blocks, A, B, or C may be in different coding modes (frame or field) than the current block E. The following rules apply to both block sizes. If E is in frame mode and A, B or C is in field mode, the reference frame number of A, B or C is calculated by dividing its reference field by 2. If E is in field mode and A, B or C is in frame mode, the reference field number of A is calculated , B or C by multiplying its frame of reference by 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. According to another embodiment of the present invention, a macroblock in a P picture may be omitted in AFF encoding. If a macroblock is omitted, its data is not transmitted in the encoding of the image. An omitted macroblock in a P picture is reconstructed by copying the collocated macroblock in the last coded reference picture. The collocated macroblock is defined as having motion compensation using PMV as defined over or without motion vectors. The following rules apply to omitted macroblocks in a P-picture. If AFF coding is performed per macroblock, is an omitted macroblock in frame mode. If AFf encoding is performed on macroblock pairs and if both macroblocks are omitted, then they are in frame mode. However, if only one of the macroblocks in a macroblock pair is omitted, its frame or field encoding mode is the same as that of the non-omitted macroblock in the same macroblock pair. If AFF encoding is performed on a group of macroblocks and if the entire group of macroblocks is omitted, then all macroblocks are in frame mode. If at least one non-skipped macroblock occurs, then the skipped macroblocks are in the same group in the same frame or field encoding mode as the non-skipped macroblock.

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. An alternative procedure for omitted macroblocks is as follows. If a macroblock pair is omitted, its frame and field encoding mode follows that of its neighboring macroblock pair to the left. If the neighboring macroblock pair on the left is not available, its encoding mode follows its neighboring macroblock pair towards the top. If none of the neighboring macroblock pairs to the left or above are available, the omitted macroblock is set to frame mode.

En annen legemliggjøring av foreliggende oppfinnelse er Another embodiment of the present invention is

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 direct mode macro block encoding for B frames. In direct mode encoding, a B-picture has two motion vectors, forward and backward motion vectors. Each motion vector points to a reference image. Both the forward movement vector and the backward movement vector can point in the same temporal direction. For direct-mode macroblock coding in B-frames, the forward and

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. the backward motion vectors of a block from the collocated block in the backward reference image. The collocated block in the backward reference image can be frame-mode coded or field-mode coded. The following rules apply in direct mode macro block encoding for B-frame.

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. If the collocated block is in frame mode and if the current direct mode macroblock is also in frame mode, the two associated motion vectors of a block in the direct mode macroblock are computed from the collocated block. The forward reference frame is the one used by the collocated block. The reverse reference frame is the same frame where the collocated block resides.

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. If the collocated block is in frame mode and if the current direct mode block is in field mode, the two associated motion vectors of a block in the direct mode macroblock are calculated from the collocated block's motion vector with the vertical component divided by two. The forward reference field is the same parity field of the reference frame that was used by the collocated block. The reverse reference field is the same parity field of the reverse reference frame where the collocated block resides.

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. If the collocated block is in field mode and if the current direct mode macroblock is also in field mode, the associated motion vectors of a block in the direct mode macroblock are calculated from the collocated block with the same field parity. The forward reference field is the field used by the collocated block. The reverse reference field is the same field where the collocated block resides.

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. If the collocated block is in field mode and if the current direct mode macroblock is in frame mode, the two associated motion vectors of the block in the direct mode macroblock are calculated from the collocated block's motion vector with the vertical component multiplied by two. The forward reference frame is the frame in one of whose fields is used by the collocated block. The reverse reference field is the frame in one of whose fields the collocated block resides.

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. An alternative option is to force the direct mode block to be in the same frame or field encoding mode as the collocated block. In this case, the direct mode block is also in frame mode if the co-located block of a direct mode block is in frame mode. The direct mode block's two frame-based motion vectors are derived from the frame-based forward motion vector of the collocated block. The forward reference frame is used by the collocated block. The reverse reference frame is where the collocated block resides.

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. However, if the co-located block of a direct mode block is in field mode, the direct mode block is also in field mode. The two field-based motion vectors of the direct mode block are derived from the collocated block's field-based forward motion vector. The forward reference field is used by the collocated block. The reverse reference field is where the collocated block resides.

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 transformasjonskoefifsientinformasjon. 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. A macroblock in a B-picture may also be omitted in AFF encoding according to another embodiment of the present invention. An omitted macroblock in a B-picture is reconstructed as a normal direct-mode macroblock without any encoded transform coefficient information. For omitted macroblocks in a B picture, the following rules apply. If AFF coding is performed per macroblock, is an omitted macroblock either in frame mode or in the frame or field encoding mode of the collocated block in its reverse reference image. If AFF encoding is performed on macroblock pairs and if both macroblocks are omitted, then they are in frame mode or in the same frame or field encoding mode as the co-located macroblock pair in its reverse reference image. However, if only one of the macroblocks in a macroblock pair is omitted, its frame or field encoding mode is the same as that of the non-omitted macroblock in the same macroblock pair. If AFF coding is performed on a group of macroblocks and if the entire group of macroblocks is omitted, then all the macroblocks are in frame mode or in the same frame or field coding mode as the collocated group of macroblocks in the reverse reference image. If there is at least one macroblock that is not omitted, then the omitted macroblock is in the same group in the same frame or field encoding mode as the non-omitted macroblock.

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_16xl6 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. As previously mentioned, a block can be intracoded. Intrablocks are spatially predictively coded. There are two possible intra-coding modes for a macroblock in macroblock-level AFF coding. The first is intra_4x4 mode and the second is intra_16xl6 mode. In both, each pixel's value is predicted using the real, constructed pixel values from neighboring blocks. By predicting pixel values, more compression can be achieved. Intra_4 x 4 mode and intra_16 x 16 mode will each be explained in more detail below.

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_ 4x4 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_4 x 4 mode, the predictions of the pixels in a 4 by 4 pixel block, as shown in Figure 14, are derived from its pixels to the left and above. In Figure 14, the 16 pixels in the block of 4 by 4 pixels are labeled A through P. Also, as shown in Figure 4, the neighboring pixels are A through P. The neighboring pixels are shown in capital letters. As shown in Figure 15, there are different prediction directions for intra_4x4 coding. They are vertical (0), horizontal (1) DC prediction (mode 2), diagonal down/left (3), diagonal down/right (4), vertical-left (5), horizontal-down (6), vertical- right (7) and horizontal-up (8). DC prediction averages all the neighboring pixels together to predict a particular pixel value.

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. For intra_16 x 16 mode, however, there are four different prediction directions. The prediction directions are also referred to as prediction modes. These prediction directions are vertical predictions (0), horizontal predictions (1), DC prediction and plane prediction. In the following, plan prediction will not be explained.

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. An intrablock and its neighboring blocks can be coded in frame or field mode. Intraprediction is performed on reconstructed blocks. A reconstructed block can be presented in both frame and field modes, regardless of the block's actual frame or field encoding mode. Since only the pixels of the reconstructed blocks are used for intra prediction, the following rules apply.

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. If a block of 4 by 4 pixels or 16 by 16 pixels is in frame mode, the neighboring pixels used in calculating the pixel value predictions are in the frame structure. If a block of 4 by 4 pixels or 16 by 16 pixels is in field mode, the neighboring pixels used in calculating the block's pixel value prediction are in the field structure with the same field parity.

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. The selected intra-prediction mode (intra_pred_mode) of a 4 by 4 pixel block is highly correlated with adjacent blocks' prediction modes. This is illustrated in Figure 16a.

Figur 16a viser at A og B er tilstøtende blokker til C. Blokken Cs 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 (mestsannsynligmodus) 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. Figure 16a shows that A and B are adjacent blocks to C. Block C's prediction mode is to be determined. Figure 16b shows the order of intra-prediction information in the bit stream. When and A and B's prediction modes are known (including the case where A or B are both off-disk) the most likely prediction mode (most likely mode) for C is given. If one of the blocks A or B is "outside" the most probable prediction mode is equal to DC prediction (mode 2). Otherwise, it is equal to the minimum of prediction modes used for blocks A and B. When an adjacent block is coded with 16 by 16 intramodes, the prediction mode is the DC prediction mode. When an adjacent block is coded a non-intra-macroblock, the prediction mode is "mode: DC prediction" in the normal case and "outside" in the limited intra-update case.

For å signalisere et forutsigelsesmodustall for en 4 ganger 4 blokk overføres først parameteren anvendmestsannsynligmodus. 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ærendemodusvelger 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) To signal a prediction mode number for a 4 by 4 block, the parameter applymost likely mode is first passed. This parameter is represented by a 1-bit code word and can assume the values 0 or 1. If the most likely mode used is equal to 1, the most likely mode is used. Otherwise, an additional parameter remainingmodeselector is sent as a 3-bit codeword, which can assume a value from 0 to 7. The codeword is a binary representation of the value remainingmodeselector. The prediction mode number is calculated as: if (remaining mode select > most likely mode)

intraforutsigelsemodus = gjenværendemodusvelger, intra prediction mode = residual mode selector,

ellers else

intraforutsigelsemodus = gjenværende_modus_velger+l. intraprediction mode = remaining_mode_selector+l.

Rangeringen av forutsigelsesmodi som er tilordnet blokker C er derfor moden for mest sannsynlig etterfulgt av de gjenværende modi i stigende orden. The ranking of prediction modes assigned to block C is therefore mature for most likely followed by the remaining modes in ascending order.

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. An embodiment of the present invention includes the following rules that apply to intra-mode prediction for an intra-prediction mode for a 4 by 4 pixel block or an intra-prediction mode for a 16 by 16 pixel block. Block C and its neighboring blocks A and B can be in frame or field mode. One of the following rules shall apply. Figures 16a-b will be used in the following explanations of the rules.

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. Rule 1: A or B is used as the neighboring block of C only if A or B is in the same frame/field mode as C. Otherwise, A or B is considered to be outside.

Regel 2: A og B anvendes som naboblokker til C uten hensyn til deres ramme-/feltkodingsmodus. Rule 2: A and B are used as neighboring blocks to C regardless of their frame/field coding mode.

Regel 3: Hvis C er kodet i rammemodus og har koordinater (x,y), så er A blokken med koordinatene (x,y-l) og B er blokken med koordinatene x-l,y). Ellers, hvis C er kodet som felt og har feltkoordinatene (xf,yf) så er A blokken hvis feltkoordinater er Rule 3: If C is encoded in frame mode and has coordinates (x,y), then A is the block with coordinates (x,y-l) and B is the block with coordinates x-l,y). Otherwise, if C is coded as field and has the field coordinates (xf,yf) then A is the block whose field coordinates are

(xf, yf-1) og har samme feltpolaritet som C og B er blokken hvis feltkoordinater er (xf-l,yf) og har samme feltpolaritet som C. (xf, yf-1) and has the same field polarity as C and B is the block whose field coordinates are (xf-l,yf) and has the same field polarity as 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, I, 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, II, 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. Rule 4: This rule only applies to macroblocks. In the case of decoding the prediction modes of blocks numbered 3, 6, 7, 9, 12, 13, 11, 14 and 15 as shown in Figure 16b, the neighboring blocks above and to the left are in the same macroblock as the current block. However, in the case of decoding the prediction modes of blocks numbered 1, 4 and 5, the top block (block A) is in a different macroblock pair than the current macroblock pair. In the case of decoding the prediction mode of blocks number 2, 8 and 10, the block on the left (block B) is in another macroblock pair. In the case of decoding the prediction mode of the block numbered 0, the blocks that are both left and above are in different macroblock pairs. For a macroblock in field decoding mode, the neighboring blocks of blocks numbered 0, I, 4, 5, 2, 8 and 10 shall be defined as follows: If the macroblock pair (170) above is decoded in field mode, for block numbers 0, 1 and 5 in the top field macroblock (173), the blocks numbered 10, 11, 14 and 15 respectively in the top field macroblock (173) of the macroblock pair (170) above be considered as the neighboring blocks above for the relevant macroblock pair (171) as shown in Figure 17a. For blocks numbered 0, 1, 4 and 5 in the bottom field macroblock (174), blocks numbered 10, II, 14 and 15 respectively in the bottom field MB of the macroblock pair (170) above shall be considered as the neighboring blocks above for the relevant macroblock pair (171), as it is shown in Figure 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 However, if the macroblock pair (170) above is decoded in frame mode, then for the blocks numbered 0, 1, 4 and 5 in the top field macroblock (173), the blocks numbered 10, 11, 14 and 15 respectively in the bottom frame macroblock (176) of the macroblock pair

(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 (170) above be considered as the upper neighbor blocks of the relevant macroblock pair (171), as shown in figure 17b. For blocks numbered 0, 1, 4 and 5 in the bottom field macro block

(174), skal blokker nummerert henholdsvis 10, 11, 14ogl5i bunnrammemakroblokken (174), blocks numbered respectively 10, 11, 14 and 5 in the bottom frame macro block shall

(176) hos makroblokkparet (170) over bli betraktet som overnaboblokkene til det aktuelle makroblokkparet (171), slik det er vist i figur 17b. (176) of the macroblock pair (170) above be considered as the neighboring blocks of the relevant macroblock pair (171), as shown in figure 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. If the macroblock pair (172) on the left is decoded in field mode, then for blocks numbered 0, 2, 8 and 10 in the top field macroblock (173), blocks numbered 5, 7, 13 and 15 respectively in the top field macroblock (173) of the macroblock pair (172) to the left be considered as the neighboring blocks to the left of the relevant macroblock pair (171), as shown in figure 17c. For blocks numbered 0, 2, 8 and 10 in the bottom field macroblock (174), blocks numbered 5, 7, 13 and 15 respectively in the bottom field macroblock (174) of the macroblock pair (172) on the left shall be considered as the neighboring blocks to the left of the relevant macroblock pair ( 171), as shown in figure 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 If the macroblock pair (172) on the left is decoded in frame mode, then for blocks numbered 0, 2, 8 and 10 in the top field macroblock (173), the blocks numbered 5, 7, 13 and 15 respectively in the top frame macroblock (175) of the macroblock pair (172) to the left be considered neighboring blocks to the left of the macroblock pair in question

(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. (171), as shown in figure 17d. For blocks numbered 0, 2, 8 and 10 in the bottom field macroblock (174), blocks numbered 5, 7, 13 and 15 respectively in the bottom field macroblock (176) of the macroblock pair (172) on the left shall be considered as the neighboring blocks to the left of the relevant macroblock pair ( 171), as shown in figure 17d.

For makroblokkpar på den øvre grensen til en skive, skal For macroblock pairs on the upper boundary of a slice, shall

intramodusforutsigelsesverdien som blir anvendt for å forutsi en feltmakroblokk innstilles til DC-forutsigelse hvis makroblokkparet (172) til venstre er i rammekodingsmodus. the intramode prediction value used to predict a field macroblock is set to DC prediction if the macroblock pair (172) on the left is in frame coding mode.

De forutgående beskrivelser av intrakoding og intramodusforutsigelse kan utvides til adaptive blokktransformer. The preceding descriptions of intracoding and intramode prediction can be extended to adaptive block transforms.

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. In another embodiment of the present invention, loop filtering is performed on the reconstructed blocks. A reconstructed block can be represented in either frame/field structure, regardless of the block's frame/field encoding mode. Loop (deblock) filtering is a process of weighted averaging of neighboring blocks' pixels. Figure 12 will be used to explain loop filtering. Assume that E in Figure 12 is a reconstructed block, and that A, B, C, and D are its reconstructed neighboring blocks, as shown in Figure 12, and that they are all represented in frame structure. As A, B, C, D and E can be frame or field coded, the following rules apply: Rule 1: If E is frame coded, loop filtering is performed over the pixels of E and its neighboring blocks A, B, C and 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. Rule 2: If E is field coded, loop filtering is performed over the top field pixels and bottom field pixels of E and its neighboring blocks A, B, C and D separately.

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. In another embodiment of the present invention, padding is performed on the reconstructed frame by repeating the boundary pixels. As the boundary blocks can be coded in frame or field mode, the following rules apply: Rule 1: The pixels on the left or right vertical line of a boundary block are repeated if necessary.

Regel 2: Hvis en grenseblokk er i rammekoding, repeteres pikslene på grenseblokkens topp- eller bunnhorisontallinje. Rule 2: If a border block is in frame encoding, the pixels on the border block's top or bottom horizontal line are repeated.

Regel 3: Hvis en grenseblokk er i feltkoding, gjentas vekselvis pikslene på grenseblokkens to topp- eller to bunnhorisontallinjer (to felt). Rule 3: If a border block is in field coding, the pixels on the border block's two top or two bottom horizontal lines (two fields) are repeated alternately.

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 ikke-sikksakkavsøkerne anvendes for makroblokker i feltkoding. In another embodiment of the present invention, two-dimensional transform coefficients are transformed into one-dimensional arrays of coefficients prior to entropy coding. The scanning path can be either zigzag or non-zigzag. The zigzag scanner is preferably for progressive sequences, but can also be used for interlace sequences with slow movements. The non-zigzag scanners are preferably for nested sequences. For macroblock AFF encoding, the following options can be used: Option 1: The zigzag scan is used for macroblocks in frame mode while the non-zigzag scanners are used for macroblocks in field encoding.

Valg 2: Sikksakk-avsøkingen anvendes for makroblokker både i ramme- og feltmodi. Option 2: The zigzag scan is used for macroblocks in both frame and field modes.

Valg 3: Ikke-sikksakkavsøking anvendes for makroblokker i både ramme- og feltmodi. Option 3: Non-zigzag scanning is used for macroblocks in both frame and field modes.

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. In the description above, the present invention has been explained by means of embodiments to illustrate the invention. However, many modifications and variations are possible on the basis of the indications given above. On the basis of the embodiments and principles of the invention described here, experts in the field are able to utilize the invention in various embodiments and with various modifications as is best suited to the specific intended application.

Det er også tilveiebragt en ytterligere første 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 fremgangsmåten innbefatter trinnene: å velge å kode eller dekode en gruppe av naboblokker i en rammemodus eller en feltmodus, å arrangere gruppene av naboblokker for prosessering til rammemakroblokker eller feltmakroblokker i samsvar med den valgte av rammemodusen eller feltmodusen, og å kode eller dekode rammemakroblokkene eller feltmakroblokkene, der trinnet med å arrangere gruppen av nabomakroblokker for prosessering til rammemakroblokker eller feltmakroblokker innbefatter trinnene: - i rammemodusen, å fellesprosessere to felter i gruppen av nabomakroblokker, hvilken gruppe av nabomakroblokker er delt i rammemakroblokker, hvor hver av rammemakroblokkene inkluderer både toppfeltpiksler og bunnfeltpiksler, og - i feltmodusen, å separatprosessere to felter i gruppen av nabomakroblokker, hvilken gruppe av nabomakroblokker er delt i feltmakroblokker, hvor hver av feltmakroblokkene inkluderer toppfeltpiksler eller bunnfeltpiksler, og at rammemakroblokkene og feltmakroblokkene er av samme størrelse. Also provided is a further first method of encoding or decoding digital video content, which digital video content comprises a stream of images each of which may be intraframes, predicted frames or bi-predicted frames, each of the frames comprising macroblocks, the method comprising the steps of: selecting to encode or decoding a group of neighboring blocks in a frame mode or a field mode, arranging the groups of neighboring blocks for processing into frame macroblocks or field macroblocks in accordance with the selected of the frame mode or field mode, and encoding or decoding the frame macroblocks or field macroblocks, wherein the step of arranging the group of neighboring macroblocks for processing into frame macroblocks or field macroblocks includes the steps: - in the frame mode, to jointly process two fields in the group of neighboring macroblocks, which group of neighboring macroblocks is divided into frame macroblocks, where each of the frame macroblocks includes both top field pixels and bottom field tpixels, and - in the field mode, to separately process two fields in the group of neighboring macroblocks, which group of neighboring macroblocks is divided into field macroblocks, where each of the field macroblocks includes top field pixels or bottom field pixels, and that the frame macroblocks and field macroblocks are of the same size.

Videre en ytterligere andre fremgangsmåte ifølge den ytterligere første fremgangsmåten, hvor rammemakroblokkene eller feltmakroblokkene kan deles i blokker, og hver av blokkene innbefatter 16 ganger 16 piksler, 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. Furthermore, a further second method according to the further first method, where the frame macroblocks or field macroblocks can be divided into blocks, and each of the blocks includes 16 by 16 pixels, 16 by 8 pixels, 8 by 16 pixels, 8 by 8 pixels, 8 by 4 pixels, 4 by 8 pixels or 4 by 4 pixels.

Videre en ytterligere tredje fremgangsmåte ifølge den ytterligere andre fremgangsmåten, videre innbefattende å beregne prediksjonsbevegelses-vektorer for hver av blokkene. Furthermore, a further third method according to the further second method, further including calculating prediction motion vectors for each of the blocks.

Videre en ytterligere fjerde fremgangsmåte ifølge den ytterligere første fremgangsmåten, videre innbefattende å utelate rammemakroblokken eller feltmakroblokken i et prediktert bilde og ikke å overføre data for rammeblokken hhv. feltmakroblokken som har blitt utelatt. Furthermore, a further fourth method according to the further first method, further including omitting the frame macro block or the field macro block in a predicted image and not transferring data for the frame block or the field macro block that has been omitted.

Videre en ytterligere femte fremgangsmåte ifølge den ytterligere første fremgangsmåten, videre innbefattende å utelate rammemakroblokken eller feltmakroblokken i et biprediktert bilde og ikke å overføre data fra rammemakroblokken hhv. feltmakroblokken som har blitt utelatt. Furthermore, a further fifth method according to the further first method, further comprising omitting the frame macroblock or the field macroblock in a bi-predicted image and not transferring data from the frame macroblock or the field macro block that has been omitted.

Videre en ytterligere sjette fremgangsmåte ifølge den ytterligere første fremgangsmåten, videre innbefattende å kode rammemakroblokken eller feltmakroblokken i direktemodus i de bipredikterte bildene. Furthermore, a further sixth method according to the further first method, further including encoding the frame macroblock or the field macroblock in direct mode in the bi-predicted images.

Videre en ytterligere syvende fremgangsmåte ifølge den ytterligere første fremgangsmåten, videre innbefattende å prediktere romlig pikselverdier for rammemakroblokken eller feltmakroblokken i intrabildene, de predikterte bildene eller de bipredikterte bildene. Furthermore, a further seventh method according to the further first method, further including predicting spatial pixel values for the frame macroblock or the field macroblock in the intra-images, the predicted images or the bi-predicted images.

Videre en ytterligere åttende fremgangsmåte ifølge den ytterligere første fremgangsmåten, videre innbefattende å prediktere tidsmessig pikselverdier for rammemakroblokken eller feltmakroblokken i de predikterte bildene eller de bipredikterte bildene. Furthermore, a further eighth method according to the further first method, further comprising temporally predicting pixel values for the frame macroblock or the field macroblock in the predicted images or the bi-predicted images.

Claims (16)

1. Fremgangsmåte for koding av et bilde i en bildesekvens,karakterisert ved: å dividere nevnte bilde i et antall mindre deler, hvori hver av nevnte flerhet av mindre porsjoner er et par vertikalt tilstøtende makroblokker; og selektivt kode i det minste en av nevnte flertall av mindre deler i rammekodemodus, og minst ett av nevnte antall mindre porsjoner i felt kodingsmodus, hvori begge felt av hvert av de nevnte makroblokker er kodet i fellesskap dersom nevnte rammekodingsmodus er valgt.1. Method for coding an image in an image sequence, characterized by: dividing said image into a number of smaller parts, in which each of said plurality of smaller portions is a pair of vertically adjacent macroblocks; and selectively encode at least one of said plurality of smaller parts in frame coding mode, and at least one of said number of smaller portions in field coding mode, in which both fields of each of said macroblocks are coded jointly if said frame coding mode is selected. 2. Fremgangsmåte ifølge krav 1, videre omfattende: dannelse av nevnte par av makroblokker fra en toppfeltblokk og en bunnfeltblokk, når nevnte par av makroblokker skal kodes i nevnte felt kodingsmodus.2. Method according to claim 1, further comprising: formation of said pair of macroblocks from a top field block and a bottom field block, when said pair of macroblocks is to be coded in said field coding mode. 3. Fremgangsmåte ifølge krav 2, hvori nevnte dannelsestrinn omfatter: å ta en toppdel av nevnte toppfeltblokk for å danne et toppfelt av en første makroblokk av nevnte par av makroblokker; å ta en bunndel av nevnte toppfeltblokk for å danne et toppfelt av en andre makroblokk av nevnte par av makroblokker; å ta en toppdel av nevnte bunnfeltblokk for å danne et bunnfelt av en første makroblokk av nevnte par av makroblokker; og ta en bunndel av nevnte bunnfeltblokk for å danne et bunnfelt av en andre makroblokk av nevnte par av makroblokker.3. Method according to claim 2, wherein said forming step comprises: taking a top part of said top field block to form a top field of a first macroblock of said pair of macroblocks; taking a bottom portion of said topfield block to form a topfield of a second macroblock of said pair of macroblocks; taking a top portion of said bottom field block to form a bottom field of a first macroblock of said pair of macroblocks; and taking a bottom portion of said bottom field block to form a bottom field of a second macroblock of said pair of macroblocks. 4. Fremgangsmåte for å dekode et kodet bilde med et antall mindre porsjoner fra en bitstrøm,karakterisert ved:: å dekode i det minste en av nevnte antall mindre porsjoner i rammekodingsmodus, og minst ett av nevnte antall mindre porsjoner i feltkodingsmodus, hvori hver av nevnte flerhet av mindre porsjoner er et par vertikalt tilstøtende makroblokker; og ved hjelp av nevnte flertall av dekodede mindre porsjoner å konstruere et dekodet bilde, hvori begge felt av hvert av de nevnte makroblokker blir dekodet i fellesskap dersom nevnte rammekodingsmodus er valgt.4. Method for decoding a coded image with a number of smaller portions from a bit stream, characterized by: decoding at least one of said number of smaller portions in frame coding mode, and at least one of said number of smaller portions in field coding mode, wherein each of said plurality of smaller portions are a pair of vertically adjacent macroblocks; and using said plurality of decoded smaller portions to construct a decoded image, in which both fields of each of said macroblocks are decoded jointly if said frame coding mode is selected. 5. Fremgangsmåte ifølge krav 4, videre omfattende: dannelse av nevnte par av makroblokker fra en toppfeltblokk og en bunnfeltblokk, når nevnte par av makroblokker er kodet i nevnte feltkodingsmodus.5. Method according to claim 4, further comprising: formation of said pair of macroblocks from a top field block and a bottom field block, when said pair of macroblocks is coded in said field coding mode. 6. Fremgangsmåte ifølge krav 5, hvori nevnte dannelsestrinn omfatter: å ta en toppdel av nevnte toppfeltblokk for å danne et toppfelt av en første makroblokk av nevnte par av makroblokker; å ta en bunndel av nevnte toppfeltblokken for å danne et toppfelt av en andre makroblokk av nevnte par av makroblokker; å ta en toppdel av nevnte bunnfeltblokken for å danne en bunnfelt av en første makroblokk av nevnte par av makroblokker; og ta et bunndel av bunnfeltblokken for å danne et bunnfelt av en andre makroblokk av nevnte par av makroblokker.6. Method according to claim 5, wherein said forming step comprises: taking a top part of said top field block to form a top field of a first macroblock of said pair of macroblocks; taking a bottom portion of said top field block to form a top field of a second macroblock of said pair of macroblocks; taking a top portion of said bottom field block to form a bottom field of a first macroblock of said pair of macroblocks; and taking a bottom portion of the bottom field block to form a bottom field of a second macroblock of said pair of macroblocks. 7. Apparat for koding av et bilde i en bildesekvens,karakterisert ved: midler for å dele nevnte bilde i et antall mindre deler, hvori hver av nevnte flerhet av mindre porsjoner er et par vertikalt tilstøtende makroblokker; og midler for selektivt å kode minst en av nevnte flertall av mindre deler i rammekodingsmodus, og minst ett av nevnte antall mindre porsjoner i felt kodemodus, hvori kodingen er påført på et par av makroblokker, og hvori begge felt av hvert av de nevnte makroblokker er kodet i fellesskap dersom nevnte rammekodingsmodus er valgt.7. Apparatus for encoding an image in an image sequence, characterized by: means for dividing said image into a number of smaller portions, wherein each of said plurality of smaller portions is a pair of vertically adjacent macroblocks; and means for selectively encoding at least one of said plurality of smaller portions in frame encoding mode, and at least one of said plurality of smaller portions in field encoding mode, wherein the encoding is applied to a pair of macroblocks, and wherein both fields of each of said macroblocks are coded jointly if said frame coding mode is selected. 8. Apparat ifølge krav 7, videre omfattende: midler for å danne nevnte par av makroblokker fra en toppfeltblokk og en bunnfeltblokk, når paret av makroblokker er kodet i nevnte feltkodingsmodus.8. Apparatus according to claim 7, further comprising: means for forming said pair of macroblocks from a top field block and a bottom field block, when the pair of macroblocks is coded in said field coding mode. 9. Apparat ifølge krav 8, hvori midlene for dannelse tar en toppdel av nevnte toppfeltblokk for å danne et toppfelt av en første makroblokk av nevnte par av makroblokker, og tar en bunndel av nevnte toppfeltblokk for å danne et toppfelt av en andre makroblokk av nevnte par av makroblokker, og tar en toppdel av nevnte bunnfeltblokk for å danne et bunnfelt av en første makroblokk av nevnte par av makroblokker, og tar et bunnfelt av nevnte bunnfeltblokk for å danne et bunnfelt av en andre makroblokk av nevnte par av makroblokker.9. Apparatus according to claim 8, wherein the means for forming takes a top part of said top field block to form a top field of a first macroblock of said pair of macroblocks, and takes a bottom part of said top field block to form a top field of a second macroblock of said pair of macroblocks, and taking a top part of said bottom field block to form a bottom field of a first macroblock of said pair of macroblocks, and taking a bottom field of said bottom field block to form a bottom field of a second macroblock of said pair of macroblocks. 10. Apparat for dekoding av et kodet bilde med et antall mindre porsjoner fra en bitstrøm, omfattende: midler for å dekode minst ett av nevnte antall mindre porsjoner i rammekodingsmodus, og minst ett av nevnte antall mindre porsjoner i feltkodingsmodus, hvori hver av nevnte flerhet av mindre porsjoner er et par vertikalt tilstøtende makroblokker; og midler for å bruke nevnte flertall av dekodede mindre porsjoner for å konstruere et dekodet bilde, hvori begge felt av hvert av de nevnte makroblokker blir dekodet i fellesskap dersom nevnte rammekodingsmodus er valgt.10. Apparatus for decoding an encoded image with a number of smaller portions from a bit stream, comprising: means for decoding at least one of said number of smaller portions in frame coding mode, and at least one of said number of smaller portions in field coding mode, wherein each of said plurality of smaller portions are a pair of vertically adjacent macroblocks; and means for using said plurality of decoded smaller portions to construct a decoded image, wherein both fields of each of said macroblocks are jointly decoded if said frame encoding mode is selected. 11. Apparat ifølge krav 10, videre omfattende: midler for å danne nevnte par av makroblokker fra en toppfeltblokk og en bunnfeltblokk, når nevnte par av makroblokker er kodet i nevnte feltkodingsmodus.11. Apparatus according to claim 10, further comprising: means for forming said pair of macroblocks from a top field block and a bottom field block, when said pair of macroblocks is coded in said field coding mode. 12. Apparat ifølge krav 11, hvori nevnte midler for dannelse tar en toppdel av nevnte toppfeltblokk for å danne et toppfelt av en første makroblokk av nevnte par av makroblokker, og tar en bunndel av nevnte toppfeltblokk for å danne et toppfelt av en andre makroblokk av nevnte par av makroblokker, og tar en toppdel av nevnte bunnfeltblokk for å danne et bunnfelt av en første makroblokk av nevnte par av makroblokker, og tar en bunndel av nevnte bunnfeltblokk for å danne et bunnfelt av en andre makroblokk av nevnte par av makroblokker.12. Apparatus according to claim 11, wherein said means for forming takes a top part of said top field block to form a top field of a first macroblock of said pair of macroblocks, and takes a bottom part of said top field block to form a top field of a second macroblock of said pair of macroblocks, and takes a top part of said bottom field block to form a bottom field of a first macroblock of said pair of macroblocks, and takes a bottom part of said bottom field block to form a bottom field of a second macroblock of said pair of macroblocks. 13. Apparat ifølge et hvilke somhelst av krav 10 til 12, hvori det minste en av nevnte flerhet av par av makroblokker omfatter blokker inkludert de samme mulige blokkstørrelser når de er i rammekodingsmodus eller feltkodingsmodus, og blokkene er for bruk tidsmessig forutsigelse med bevegelseskompensasjon.13. Apparatus according to any one of claims 10 to 12, wherein at least one of said plurality of pairs of macroblocks comprises blocks including the same possible block sizes when in frame coding mode or field coding mode, and the blocks are for use temporal prediction with motion compensation. 14. Apparat ifølge hvilket som helst av kravene 10 til 13, hvoi minst en av nevnte flerhet av par av makroblokker omfatter blokker som har en blokkstørrelse inkludert 16x16 bildeelementer, 16x8 bildeelementer, 8x16 piksler, 8x8 bildeelementer 8x4 piksler, 4x8 piksler, eller 4x4 piksler når de er i feltkodingsmodus, eller når de er i rammekodingsmodus.14. Apparatus according to any one of claims 10 to 13, wherein at least one of said plurality of pairs of macroblocks comprises blocks having a block size including 16x16 pixels, 16x8 pixels, 8x16 pixels, 8x8 pixels 8x4 pixels, 4x8 pixels, or 4x4 pixels when are in field encoding mode, or when they are in frame encoding mode. 15. Apparat ifølge hvilket som helst av kravene 10 til 14, hvori minst en blokk av i det minste én av nevnte flerhet av par av makroblokker er for bruk i tidsmessig forutsigelse med bevegelseskompensering med en blokkstørrelse inkludert 16 x 16 piksler, 16x8 piksler, 8x16 piksler, 8x8 piksler, 8x4 piksler, 4x8 piksler, eller 4 x 4 piksler.15. Apparatus according to any one of claims 10 to 14, wherein at least one block of at least one of said plurality of pairs of macro blocks is for use in temporal prediction with motion compensation having a block size including 16x16 pixels, 16x8 pixels, 8x16 pixels, 8x8 pixels, 8x4 pixels, 4x8 pixels, or 4 x 4 pixels. 16. Apparat ifølge hvilket som helst av kravene 10 til 15, hvori minst en av nevnte flerhet av par av makroblokker er forbundet med en ramme / felt flagg, der rammen / felt flagget indikerer rammekodingsmodus eller feltkodingsmodus.16. Apparatus according to any one of claims 10 to 15, wherein at least one of said plurality of pairs of macroblocks is associated with a frame/field flag, wherein the frame/field flag indicates frame coding mode or field coding mode.
NO20170267A 2001-11-21 2017-02-24 Macro block level adaptive frame / field encoding at macro block level for digital video content NO342643B1 (en)

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 true NO20170267A1 (en) 2004-07-21
NO342643B1 NO342643B1 (en) 2018-06-25

Family

ID=61800178

Family Applications (2)

Application Number Title Priority Date Filing Date
NO20170267A NO342643B1 (en) 2001-11-21 2017-02-24 Macro block level adaptive frame / field encoding at macro block level for digital video content
NO20181242A NO20181242A1 (en) 2001-11-21 2018-09-24 Macro block level adaptive frame / field encoding at the macro block level for digital video content

Family Applications After (1)

Application Number Title Priority Date Filing Date
NO20181242A NO20181242A1 (en) 2001-11-21 2018-09-24 Macro block level adaptive frame / field encoding at the macro block level for digital video content

Country Status (1)

Country Link
NO (2) NO342643B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0608231A1 (en) * 1991-04-25 1994-08-03 Thomson Brandt Gmbh Process for coding picture signals.

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0608231A1 (en) * 1991-04-25 1994-08-03 Thomson Brandt Gmbh Process for coding picture signals.

Also Published As

Publication number Publication date
NO20181242A1 (en) 2004-07-21
NO342643B1 (en) 2018-06-25

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 (en) Macro block level adaptive frame / field encoding at the macro block level for digital video content
NO343010B1 (en) Adaptive frame / field encoding at the macro block level for digital video content

Legal Events

Date Code Title Description
MK1K Patent expired