FI109394B - Method and apparatus for encoding and decoding a video image - Google Patents

Method and apparatus for encoding and decoding a video image Download PDF

Info

Publication number
FI109394B
FI109394B FI20002316A FI20002316A FI109394B FI 109394 B FI109394 B FI 109394B FI 20002316 A FI20002316 A FI 20002316A FI 20002316 A FI20002316 A FI 20002316A FI 109394 B FI109394 B FI 109394B
Authority
FI
Finland
Prior art keywords
pixel
value
change
preprocessing
inverted
Prior art date
Application number
FI20002316A
Other languages
Finnish (fi)
Swedish (sv)
Other versions
FI20002316A (en
FI20002316A0 (en
Inventor
Jarno Tulkki
Original Assignee
Hantro Products Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hantro Products Oy filed Critical Hantro Products Oy
Priority to FI20002316A priority Critical patent/FI109394B/en
Publication of FI20002316A0 publication Critical patent/FI20002316A0/en
Priority to AU2002212375A priority patent/AU2002212375A1/en
Priority to PCT/FI2001/000913 priority patent/WO2002033979A1/en
Publication of FI20002316A publication Critical patent/FI20002316A/en
Application granted granted Critical
Publication of FI109394B publication Critical patent/FI109394B/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Description

109394109394

Menetelmä ja laite videokuvan koodaamiseksi ja dekoodaami-seksiMethod and apparatus for encoding and decoding a video image

AlaArea

Keksinnön kohteina ovat menetelmä ja laite peräkkäisistä liikkumat-5 tornista kuvista muodostetun videokuvan koodaamiseksi. Lisäksi keksinnön kohteina ovat menetelmä ja laite peräkkäisistä liikkumattomista kuvista muodostetun videokuvan dekoodaamiseksi.The invention relates to a method and a device for encoding a video image formed by sequential motion towers. The invention further relates to a method and apparatus for decoding a video image formed from sequential still images.

TaustaBackground

Videokuvan koodausta ja dekoodausta käytetään datamäärän vä-10 hentämiseksi, jotta se voidaan tallentaa tehokkaammin jollekin muistivälineelle tai siirtää tietoliikenneyhteyttä käyttäen. Eräs esimerkki videokoodausstandardista on MPEG-4 (Moving Pictures Expert Group), jossa tavoitteena on lähettää videokuvaa reaaliaikaisesti langattomassa kanavassa. Tämä on erittäin kunnianhimoinen tavoite, sillä jos esimerkiksi lähetettävä kuva on cif-kokoa 15 (288 x 352 pikseliä) ja lähetystaajuus 15 kuvaa sekunnissa, olisi pakattava 36,5 miljoonaa bittiä 64 kilobittiin joka sekunti. Pakkaussuhde olisi tällöin erittäin suuri 570:1.Video coding and decoding are used to reduce the amount of data so that it can be stored more efficiently on a storage medium or transmitted over a communication link. An example of a video encoding standard is MPEG-4 (Moving Pictures Expert Group), which aims to stream video over a wireless channel in real time. This is a very ambitious goal because, for example, if the image to be transmitted has a cif size of 15 (288 x 352 pixels) and a transmission rate of 15 frames per second, 36.5 million bits should be compressed to 64 kilobits every second. The compression ratio would then be very high at 570: 1.

Kuvan siirtämiseksi kuva tyypillisesti jaetaan kuvalohkoiksi, joiden koko valitaan järjestelmään sopiviksi. Kuvalohkoinformaatio käsittää yleensä 20 tietoa kuvalohkon valoisuudesta, väristä ja sijainnista itse kuvassa. Kuvalohko-jen data kompressoidaan lohkoittain halutulla koodausmenetelmällä. Kompressointi perustuu vähemmän merkityksellisen datan poistamiseen. Kompres-§"\ sointimenetelmät jaetaan pääasiallisesti kolmeen eri luokkaan: spektrisen re- .. . dundanssin vähentäminen (Spectral Redundancy Reduction), tilaredundanssin I · *’ 25 vähentäminen (Spatial Redundancy Reduction) ja ajallisen redundanssin vä- *· "· hentäminen (Temporal Redundancy Reduction). Tyypillisesti kompressointiin :: käytetään näiden menetelmien erilaisia yhdistelmiä.To move an image, the image is typically divided into image blocks, the size of which is selected to fit the system. The block information generally comprises 20 information about the brightness, color, and position of the block in the image itself. The data in the image blocks is compressed block by block using the desired encoding method. Compression is based on the removal of less relevant data. The compression methods are divided into three main categories: Spectral Redundancy Reduction, Spatial Redundancy I · * '25 (Spatial Redundancy Reduction), and Temporal Redundancy Reduction (Temporal). Redundancy Reduction). Typically, various combinations of these methods are used for compression.

Spektrisen redundanssin vähentämiseksi sovelletaan esimerkiksi YUV-värimallia. YUV-mallissa käytetään hyödyksi sitä, että ihmisen silmä on 30 herkempi luminanssin eli valoisuuden vaihteluille kuin krominanssin eli värin muutoksille. YUV-mallissa on yksi luminanssikomponentti (Y) ja kaksi kromi-, nanssikomponenttia (U,V). Kahta krominanssikomponenttia voidaan nimittää : ; : myös cb- ja cr-komponenteiksi. Esimerkiksi H.263 videokoodausstandardin mukainen luminanssilohko on 16 x 16 pikseliä ja kumpikin krominanssilohko, : 35 jotka kattavat saman alueen kuin luminanssilohko, 8x8 pikseliä. Yhden lumi- I > ·For example, a YUV color scheme is used to reduce spectral redundancy. The YUV model takes advantage of the fact that the human eye is more sensitive to variations in luminance, or luminance, than to changes in chrominance, or color. The YUV model has one luminance component (Y) and two chromium nance components (U, V). Two chrominance components can be called:; : also for cb and cr components. For example, the H.263 video coding standard luminance block is 16 x 16 pixels and each chrominance block is: 35 which covers the same area as the luminance block, 8 x 8 pixels. Single Snow I> ·

t It I

I · • · 2 109394 nanssilohkon ja kahden krominanssilohkon yhdistelmää kutsutaan tässä standardissa makrolohkoksi (macroblock). Makrolohkot luetaan kuvasta yleensä riveittäin. Jokainen pikseli, sekä luminanssi- että krominanssilohkossa, voi saada arvon väliltä 0-255, eli yhden pikselin esittämiseen tarvitaan kahdeksan 5 bittiä. Esimerkiksi luminanssipikselin arvo 0 tarkoittaa mustaa ja arvo 255 valkoista.I · • · 2 109394 The combination of a nance block and two chrominance blocks is referred to in this standard as a macroblock. Macro blocks are usually read line by line. Each pixel, in both the luminance and chrominance blocks, can get a value between 0 and 255, meaning that eight pixels are required to represent one pixel. For example, a value of 0 for a luminance pixel is black and a value for 255 is white.

Tilaredundanssin vähentämiseksi käytetään esimerkiksi diskreetti-kosinimuunnosta (Discrete Cosine Transform, DCT). Diskreettikosinimuunnok-sessa muunnetaan kuvalohkon pikseliesitys tilataajuusesitykseksi. Lisäksi kulo valohkossa vain niillä signaalitaajuuksilla, joita siinä esiintyy, on suuriamplitu-diset kertoimet, ja niillä signaaleilla, joita kuvalohkossa ei esiinny, kertoimet ovat lähellä nollaa. Diskreettikosinimuunnos on periaatteessa häviötön muunnos ja signaaliin aiheutuu häiriötä vain kvantisoinnissa.For example, Discrete Cosine Transform (DCT) is used to reduce space redundancy. In discrete cosine conversion, the pixel representation of an image block is converted to a space frequency representation. In addition, only the signal frequencies that occur therein have high amplitude coefficients, and those signals which do not occur in the block have coefficients close to zero. The discrete cosine transform is basically a lossless transform and the signal is only disturbed by quantization.

Ajallista redundanssia pyritään vähentämään hyödyntäen sitä tosi-15 asiaa, että peräkkäiset kuvat yleensä muistuttavat toisiaan, joten sen sijaan, että kompressoitaisiin jokainen yksittäinen kuva, generoidaan kuvalohkojen lii-kedataa. Perusperiaate on seuraava: koodattavalle kuvalohkolle etsitään mahdollisimman hyvä aiemmin koodattu vertailulohko (reference block), vertai-lulohkon ja koodattavan kuvalohkon välinen liike mallinnetaan ja lasketut liike-20 vektorit (motion vector coefficients) lähetetään vastaanottimelle. Koodattavan lohkon ja vertailulohkon erilaisuus ilmaistaan virhetekijänä (prediction error component, prediction error frame). Kuvalohkon liikevektorin määrittämiseen (motion vector prediction) voidaan käyttää aiemmin muistiin talletettua vertai-Y: lukuvaa (reference picture, reference frame). Tällaista koodausta kutsutaan in- •: · ·: 25 ter-koodaukseksi, joka tarkoittaa saman kuvajonon kuvien välisten samankal- ;' ·": taisuuksien hyödyntämistä.An attempt is made to reduce temporal redundancy by taking advantage of the fact that sequential images generally resemble each other, so that instead of compressing each individual image, motion data of the blocks is generated. The basic principle is: to find the best possible coded reference block for the block to be coded, the motion between the reference block and the block to be coded is modeled and the calculated motion vector coefficients are transmitted to the receiver. The difference between the coded block and the reference block is expressed as a Prediction error component (Prediction error frame). The motion vector Prediction can be used to determine the motion picture Prediction previously stored in memory (reference picture, reference frame). This type of coding is called in- •: ·:: 25 ter coding, which means the equivalent between images in the same sequence of images; ' · ": Utilization of opportunities.

: Koska esillä olevan keksinnön kannalta mielenkiintoista on tilare- .Y’ dundanssin vähentäminen, tarkastelemme sitä seuraavaksi lähemmin. Makro- ! lohkolle tehdään diskreettikosinimuunnos kaavalla: ·· . 2 /v \ (2x + 1)mtt {ly + l)v;r 30 F(u,v) = — C(«)C(v)£ £/(x,Y)cos-—-cosY——- (1): Since it is of interest to the present invention to reduce spatial-.Y 'dundancy, we will now examine it in greater detail. Macro! the block is transformed into a discrete cosine transform by the formula: ··. 2 / v \ (2x + 1) mtt {ly + l) v; r 30 F (u, v) = - C («) C (v) £ £ / (x, Y) cos -—- cosY—— - (1)

N 2W 2 NN 2W 2 N

Y·: jossa x ja y ovat alkuperäisen lohkon koordinaatit, u ja v ovat ’.,.: muunnoslohkon koordinaatit, N = 8 ja : :’: -\=, kaikilla w,v = 0 c(«),c(v)= V2 . (2) ’ ·; · ’ [l, muulloin 3 109394Y ·: where x and y are the coordinates of the original block, u and v are the coordinates of the transform block, N = 8 and:: ': - \ =, for all w, v = 0 c («), c (v ) = V2. (2) '·; · '[L, otherwise 3,109,394

Seuraavaksi taulukossa 1 esitetään esimerkki siitä, miten 8x8 pikse-lin kokoinen lohko muunnetaan diskreettikosinimuunnoksella. Taulukon ylemmässä osassa on muuntamattomat pikselit, ja taulukon alaosassa diskreetti-kosinimuunnoksen jälkeinen tulos, jossa ensimmäinen alkio arvoltaan 1303, 5 ns. dc-kerroin, kuvaa pikseleiden keskimääräistä suuruutta lohkossa, ja muut 63 alkiota, ns. ac-kertoimet, kuvaavat pikseleiden hajontaa lohkossa.Next, Table 1 shows an example of how an 8x8 pixel block is converted by a discrete cosine transform. The upper part of the table contains the unmodified pixels, and the lower part of the table the result of the discrete cosine conversion, with the first element of 1303, 5 ns. dc coefficient, describes the average size of pixels in a block, and the other 63 elements, so-called. ac coefficients, which represent pixel scattering in a block.

Kuten taulukon 1 pikseleiden arvoista nähdään, niillä on suuri hajonta. Tällöin diskreettikosinimuunnoksen jälkeinen tulos sisältää myös paljon erisuuruisia ac-kertoimia.As can be seen from the pixel values in Table 1, they have a large dispersion. In this case, the result after the discrete cosine conversion also contains many different coefficients of ac.

10 249 241 248 255 248 251 250 246 215 249 199 214 236 193 218 220 118 219 175 135 176 118 172 186 87 187 230 123 182 172 178 205 112 154 166 122 164 154 143 159 124 115 112 122 110 113 116 111 120 121 122 122 124 123 122 121 _120 121 119 120 120 120 120 118_ 1303 -18 -3 -43 -32 -54 -22 28 335 -2 5 -20 -6 -26 -26 11 100 29 6 45 44 49 -8 -30 41 9 -9 39 25 42 25 -21 ·:·: 68-27-19 -9-24 -4 39 11 9 -18 -6 -23 -23 -1 18 9 : -54 10 10 -6 2 10 -9 -5 • # « _-18 5 3 2 5 -8 -11 1_ ( ·10 249 241 248 255 248 251 250 246 215 249 199 214 236 193 218 220 118 219 175 135 176 118 172 186 87 187 230 123 182 172 178 205 112 154 166 122 164 154 143 159 124 115 112 122 110 113 116 111 120 121 122 122 124 123 122 121 _120 121 119 120 120 120 120 118_ 1303 -18 -3 -43 -32 -54 -22 28 335 -2 5 -20 -6 -26 -26 11 100 29 6 45 44 49 -8 -30 41 9 -9 39 25 42 25 -21 ·: ·: 68-27-19 -9-24 -4 39 11 9 -18 -6 -23 -23 -1 18 9: -54 10 10 -6 2 10 -9 -5 • # «_-18 5 3 2 5 -8 -11 1_ {·

Taulukko 1 / Taulukossa 2 kuvataan lohko, jossa pikseleiden välillä on pieni ha- .··* 15 jonta. Kuten taulukosta 2 havaitaan, tällöin ac-kertoimet saavat samat arvot, ; eli lohko kompressoituu erittäin tehokkaasti.Table 1 / Table 2 describes a block with a small number of pixels between the pixels ·· * 15. As can be seen in Table 2, the ac coefficients get the same values,; that is, the block is compressed very efficiently.

• · · · 4 109394 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 _115 115 115 115 115 115 115 115_ 924 0 0 0 0 0 0 0 00000000 0 0000000 00000000 o o o o o o o o 00000000 00000000 _00000000_• · · · 4 109394 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 _115 115 115 115 115 115 115 115_ 924 0 0 0 0 0 0 0 00000000 0 0000000 00000000 oooooooo 00000000 00000000 _00000000_

Taulukko 2Table 2

Seuraavaksi diskreettikosinimuunnettu lohko ’’kvantisoidaan”, eli pe-5 riaatteessa sen jokainen alkio jaetaan jollain vakiolla. Tämä vakio saattaa vaihdella eri makrolohkojen välillä. Lisäksi ac-kertoimille käytetään yleensä :suurempaa jakajaa kuin dc-kertoimille. ’’Kvantisointiparametri”, josta kyseiset jakajat lasketaan, on välillä 1-31. Mitä enemmän nollia saadaan lohkoon, sitä paremmin lohko pakkaantuu, sillä nollia ei kanavaan lähetetä. Kvantisoiduille .···. 10 lohkoille voidaan vielä tehdä esillä olevan keksinnön kannalta merkityksettö- .···. miä koodausmenetelmiä ja lopulta niistä muodostetaan bittivirta, joka lähete tään dekooderiile. Kooderin sisällä kvantisoiduille lohkoille tehdään vielä kään-. , teiskvantisointi ja käänteisdiskreettikosinimuunnos, ja näin muodostetaan refe- / renssikuva, josta voidaan ennustaa seuraavien kuvien lohkoja. Jatkossa koo- 15 deri siis lähettää tulevan lohkon ja referenssilohkojen välistä erodataa. Näin : : ‘: pakkaustehokkuus paranee.Next, the discrete cosine transform block is "" quantized, "i.e. in principle each element of it is divided by some constant. This constant may vary between different macroblocks. In addition, for ac coefficients, a larger divisor is generally used than for dc coefficients. The 'quantization parameter' from which these divisors are calculated is in the range 1-31. The more zeros a block receives, the better the block will be compressed, since no zeros are transmitted to the channel. For the quantized. ···. 10 blocks can still be made irrelevant to the present invention. and encoding methods and eventually converting them into a bit stream which is transmitted to the decoder. Within the encoder, the quantized blocks are still inverted. , secondary quantization, and inverse discrete cosine transform, and thus a reference / reference image is formed from which blocks of the following images can be predicted. Thus, in the future, the encoder transmits the difference data between the incoming block and the reference blocks. Here's how:: ': Compression efficiency improves.

• > · · 1 > » 5 109394•> · · 1> »5 109394

Kvantisointi on videokoodauksen ongelma, sillä mitä suurempaa kvantisointia joudutaan käyttämään, sitä enemmän kuvasta katoaa tietoa ja lopputulos on epämiellyttävää katsottavaa.Quantization is a problem with video coding, because the greater the amount of quantization you have to use, the more data you lose from the image and the result is unpleasant to watch.

Dekooderi (Decoder) tekee bittivirran purkamisen ja tämän keksin-5 non kannalta epäoleellisten dekoodausmenetelmien jälkeen periaatteessa saman kuin kooderi (Encoder) teki referenssikuvaa muodostettaessa, eli lohkoille tehdään samat asiat kuin kooderissa, mutta käänteisesti.After decoding the bit stream and decoding methods irrelevant to this invention, the decoder does basically the same thing as the encoder did when generating the reference image, i.e. the blocks do the same thing as the encoder, but in reverse.

Lopulta koottu videokuva viedään näytölle ja lopputulos riippuu suuresti käytetystä kvantisointiparametrista. Jos nimittäin jokin lohkon alkio menee 10 kvantisoinnissa nollaksi, ei käänteiskvantisointi kykene sitä enää palauttamaan.Eventually, the compiled video image is displayed and the result depends largely on the quantization parameter used. Namely, if any element of a block goes to zero in quantization, inverse quantization is no longer able to restore it.

Lyhyt selostusShort description

Keksinnön tavoitteena on tarjota parannettu menetelmä videokuvan koodaamiseksi ja parannettu laite videokuvan koodaamiseksi. Lisäksi keksin-15 nön tavoitteena on tarjota parannettu menetelmä videokuvan dekoodaamisek-si ja parannettu laite videokuvan dekoodaamiseksi.An object of the invention is to provide an improved method for encoding a video image and an improved device for encoding a video image. It is a further object of the invention to provide an improved method of decoding video image and an improved device for decoding video image.

Keksinnön eräänä puolena esitetään patenttivaatimuksen 1 mukainen menetelmä videokuvan koodaamiseksi. Keksinnön eräänä puolena esitetään patenttivaatimuksen 6 mukainen menetelmä videokuvan dekoodaami-20 seksi. Keksinnön eräänä puolena esitetään patenttivaatimuksen 16 mukainen laite videokuvan koodaamiseksi. Keksinnön eräänä puolena esitetään patenttivaatimuksen 21 mukainen laite videokuvan dekoodaamiseksi.In one aspect, the invention provides a method for encoding a video image according to claim 1. In one aspect, the invention provides a method for decoding a video image according to claim 6. In one aspect, the invention provides a device for encoding a video image according to claim 16. In one aspect of the invention, there is provided a device according to claim 21 for decoding a video image.

V: Keksinnön muut edulliset suoritusmuodot ovat epäitsenäisten pa- ....: tenttivaatimusten kohteena.A: Other preferred embodiments of the invention are contemplated in the dependent claims.

» » ··.·. 25 Keksintö perustuu siihen, että ennen diskreettikosinimuunnosta loh- kolle tehdään kooderissa esiprosessointi, joka voidaan palauttaa käänteisesi- prosessoinnilla dekooderissa. Esiprosessoinnin ansiosta pakkaustehokkuus kasvaa, sillä esiprosessointi vähentää kuvassa olevaa kohinaa/hajontaa. Ku-' · · ·' ten jo edellä tuli esille taulukoiden 1 ja 2 yhteydessä, diskreettikosinimuunnok- 30 sen tehokkuus kasvaa lohkon hajonnan pienentyessä. Siten käytettyä kvan-| tisointiparametria voidaan pienentää, ja siitä huolimatta kanavalta vaadittu tie- ·’ .· donsiirtokapasiteetti pysyy suunnilleen samana. Käytännössä tämä tarkoittaa : ’·, sitä, että samalla tiedonsiirtonopeudella saadaan keksinnön mukaista esipro- sessointia ja käänteisesiprosessointia käyttäen tallennettua/siirrettyä parempi-’·;· 35 laatuista videokuvaa kuin ilman keksintöä.»» ··. ·. The invention is based on pre-processing in the encoder before discrete cosine conversion, which can be restored by inverse processing in the decoder. Preprocessing increases compression efficiency as preprocessing reduces noise / spread in the image. As discussed above in Tables 1 and 2, the efficiency of the discrete cosine transform increases with decreasing block dispersion. The quantum | thus used however, the data transmission capacity required by the channel remains approximately the same. In practice, this means: '·, that at the same data rate, better quality recorded video is recorded / transmitted using the preprocessing and inverse processing according to the invention; · · 35 quality video images than without the invention.

6 1093946 109394

KuvioluetteloList of figures

Keksinnön edulliset suoritusmuodot selostetaan esimerkinomaisesti alla viitaten oheisiin piirroksiin, joista: kuvio 1 esittää tunnetun tekniikan mukaisia laitteita videokuvan 5 koodaamiseksi ja dekoodaamiseksi; kuvio 2 esittää uudenlaisia laitteita videokuvan koodaamiseksi ja dekoodaamiseksi; kuvio 3 esittää videokuvan koodauksessa käytettävää esiproses- sointia; 10 kuvio 4 esittää videokuvan dekoodauksessa käytettävää kään- teisesiprosessointia; kuvio 5 esittää tunnetun tekniikan mukaisia pikseleitä kuviossa 1 kuvattujen laitteiden osien välisissä rajapinnoissa; kuvio 6 esittää uudenlaisia pikseleitä kuviossa 2 kuvattujen laittei-15 den osien välisissä rajapinnoissa; kuvio 7 on vuokaavio havainnollistaen menetelmää peräkkäisistä liikkumattomista kuvista muodostetun videokuvan koodaamiseksi; kuvio 8 on vuokaavio havainnollistaen menetelmää peräkkäisistä ! liikkumattomista kuvista muodostetun videokuvan dekoodaamiseksi; 20 kuvio 9 havainnollistaa esiprosessoinnin vaikutusta pikseleihin.Preferred embodiments of the invention will be described by way of example with reference to the accompanying drawings, in which: Figure 1 shows prior art devices for encoding and decoding a video image 5; Figure 2 illustrates novel devices for encoding and decoding video images; Figure 3 illustrates the preprocessing used for encoding a video image; Fig. 4 illustrates the inverse processing used in video image decoding; Figure 5 shows prior art pixels at the interfaces between parts of the devices illustrated in Figure 1; Figure 6 illustrates novel pixels at the interfaces between parts of the devices 15 shown in Figure 2; Fig. 7 is a flowchart illustrating a method for encoding a video image formed by a sequence of still images; Fig. 8 is a flowchart illustrating a method in succession! decoding a video image formed from still images; Figure 9 illustrates the effect of preprocessing on pixels.

Suoritusmuotojen kuvaus j Viitaten kuvioon 1 selostetaan tunnetun tekniikan mukaisia laitteita tvideokuvan koodaamiseksi ja dekoodaamiseksi. Henkilön 100 kasvoja kuva-taan videokameralla 102. Videokuva muodostuu kamerassa 102 yksittäisistä 25 peräkkäisistä liikkumattomista kuvista, joista kuviossa esitetään yksi liikkuma-: ton kuva 104. Kameralla 102 muodostetaan kuvaa 104 pikseleinä esittävä ,··, matriisi, esimerkiksi alussa kuvatulla tavalla, jossa luminanssille ja krominans- sille ovat omat matriisinsa. Kuvaa 104 pikseleinä esittävä datavuo 106 viedään seuraavaksi kooderiin 108. Tietenkin on mahdollista rakentaa myös sellainen ; 30 laite, jossa datavuo 106 saadaan kooderiin 108 esimerkiksi tiedonsiirtoyhteyttä ‘ · 1 *· pitkin tai vaikkapa tietokoneen muistivälineeltä. Tällöin tarkoituksena on se, et- | tä kompressoimaton videokuva 106 kompressoidaan kooderilla 108 esimer- : ··. kiksi edelleenlähetystä tai tallennusta varten.DESCRIPTION OF EMBODIMENTS Referring to Fig. 1, prior art devices for encoding and decoding a television image are described. The face of a person 100 is captured by a camcorder 102. The video image is formed by the camera 102 of 25 consecutive still images, one of which is a still image 104. The camera 102 generates a pixel, ··, matrix, e.g. and chrominance have their own matrices. The data stream 106 representing the image 104 in pixels is then passed to the encoder 108. Of course, it is also possible to construct one; A device 30 for transmitting data stream 106 to encoder 108, for example, via a data link '· 1 * · or, for example, from a computer storage medium. The purpose here is that the- | the uncompressed video image 106 is compressed by the encoder 108, e.g. for retransmission or storage.

.···. Koska mielenkiinnon kohteena olevissa laitteissa meitä kiinnostaa ’·’ 35 tilaredundanssin vähentämiseksi suoritettava kompressointi, kuvataan koode- 7 109394 rista 108 ja dekooderista 120 vain sen kannalta oleelliset osat. Muiden osien toiminta on alan ammattilaiselle selvää standardien ja oppikirjojen perusteella, esimerkiksi tähän viitteeksi otettavien teosten perusteella: - ISO/IEC JTC 1/SC 29/WG 11: ’’Generic coding of audio visual ob-5 jects - Part 2: Visual”, sivut 178, 179, 281.. ···. Since in the devices of interest we are interested in compression to reduce the state redundancy of '' '35, only the relevant parts of encoder 109 1094 and decoder 120 are described. The operation of the other parts will be apparent to one of ordinary skill in the art from reference to standards and textbooks, such as the following references: - ISO / IEC JTC 1 / SC 29 / WG 11: 'Generic coding of audio visual ob-5 jects - Part 2: Visual', pages 178, 179, 281.

- Vasudev Bhaskaran ja Konstantinos Konstantinides: ’’Image and Video Compressing Standards - Algorithms and Architectures, Second Edition”, Kluwer Academic Publishers 1997, luku 6: ’’The MPEG video standards”.- Vasudev Bhaskaran and Konstantinos Konstantinides: '' Image and Video Compressing Standards - Algorithms and Architectures, Second Edition '', Kluwer Academic Publishers 1997, Chapter 6: '' The MPEG Video Standards ''.

Kooderi 108 käsittää diskreettikosinimuunnosvälineet 110 suorittaa 10 edellä kuvatulla tavalla diskreettikosinimuunnos kunkin liikkumattoman kuvan 104 pikseleille. Diskreettikosinimuunnoksella muodostettu datavuo 112 viedään kvantisointivälineisiin 114, joilla suoritetaan kvantisointi valitulla kvan-tisointisuhteella. Kvantisoidulle datavuolle 116 voidaan suorittaa vielä muutakin koodausta, jota ei tässä kuitenkaan kuvata. Kooderilla 108 muodostettu 15 kompressoitu videokuva siirretään kanavaa 118 käyttäen dekooderille 120.Encoder 108 comprises discrete cosine conversion means 110 performs discrete cosine conversion on pixels of each still image 104 as described above. The data stream 112 generated by the discrete cosine transform is fed to quantization means 114 for performing quantization at a selected quantization ratio. Still other coding may be performed on the quantized data stream 116, which is not described herein. The compressed video image 15 formed by encoder 108 is transmitted using channel 118 to decoder 120.

Tässä ei ole kuvattu, miten kanava 118 toteutetaan, koska eri toteutusvaihtoehdot ovat alan ammattilaiselle selviä. Kanava 118 voi olla esimerkiksi kiin-j teä tai langaton tiedonsiirtoyhteys. Kanava 118 voidaan myös tulkita siirtotiek si, jota käyttäen videokuva tallennetaan jollekin muistivälineelle, esimerkiksi 20 laserlevylle, ja jota käyttäen videokuva sitten luetaan muistivälineeltä ja käsitellään dekooderilla 120.It is not described here how the channel 118 is implemented as the various embodiments will be apparent to those skilled in the art. For example, channel 118 may be a fixed or wireless communication link. Channel 118 may also be interpreted as a transmission path through which a video image is stored on a storage medium, such as a laser disk, and through which the video image is then read from a storage medium and processed by decoder 120.

I Dekooderi 120 käsittää käänteiskvantisointivälineet 122, joilla koo- derissa 108 suoritettu kvantisointi puretaan. Käänteiskvantisointi ei valitetta-, : vasti kykene enää palauttamaan lohkon alkiota, jonka arvo kvantisoinnissa : : 25 meni nollaksi.The decoder 120 comprises inverse quantization means 122 for decoding the quantization performed in encoder 108. Unfortunately, inverse quantization is no longer able to return a block element whose value in quantization:: 25 went to zero.

; · Käänteiskvantisoitu datavuo 124 viedään seuraavaksi käänteisdis- : kreettikosinimuunnosvälineisiin 126, joilla suoritetaan käänteisdiskreetti- .···. kosinimuunnos kunkin liikkumattoman kuvan 104 pikseleille. Saatu datavuo - 128 viedään sitten mahdollisten muiden dekoodausprosessien kautta näytölle 30 1 30, jossa esitetään liikkumattomista kuvista 104 muodostuva videokuva.; · The inverse quantized data stream 124 is then passed to inverse disc: chalk cosine conversion means 126 for performing inverse discrete. ···. cosine conversion for 104 pixels of each still image. The resulting data stream 128 is then passed through a possible other decoding process to a display 30 1 30 showing a video image of still images 104.

Kooderi 108 ja dekooderi 120 voidaan sijoittaa erilaisiin laitteisiin, » · > esimerkiksi tietokoneisiin, erilaisten radiojärjestelmien tilaajapäätelaitteisiin ku-ten matkaviestimiin, tai muihin laitteisiin, joissa halutaan käsitellä videokuvaa.The encoder 108 and decoder 120 may be located in various devices, such as computers, subscriber terminals of various radio systems, such as mobile stations, or other devices in which video image processing is desired.

; Kooderi 108 ja dekooderi 120 voidaan myös yhdistää samaan laitteeseen, jota . 35 voidaan tällöin nimittää videokoodekiksi.; Encoder 108 and decoder 120 may also be connected to the same device as. 35 can then be called a video codec.

8 1093948 109394

Kuviossa 5 kuvataan tunnetun tekniikan mukaisia pikseleitä kuviossa 1 kuvattujen laitteiden osien välisissä rajapinnoissa 106, 112, 116, 124 ja 128. Testikuvana on käytetty alan ammattilaisten tunteman testisekvenssin ”calendar_qcif.yuv” ensimmäisen kuvan ensimmäistä 8x8 kokoista luminanssi-5 lohkoa. Rajapinta 106 kuvaa datavuon sisältöä kameran 102 jälkeen. Rajapinta 112 kuvaa datavuon sisältöä diskreettikosinimuunnosvälineiden 110 jälkeen. Rajapinta 116 kuvaa datavuon sisältöä kvantisointivälineiden 114 jälkeen. Käytetty kvantisointisuhde on 17.Figure 5 illustrates prior art pixels at the interfaces 106, 112, 116, 124, and 128 of the components of the devices illustrated in Figure 1 as a test image using the first 8x8 luminance-5 blocks of the first image calendar sequence "calendar_qcif.yuv". The interface 106 illustrates the content of the data stream after the camera 102. The interface 112 illustrates the content of the data stream after the discrete cosine conversion means 110. The interface 116 illustrates the content of the data stream after the quantization means 114. The quantization ratio used is 17.

Yksinkertaisuuden vuoksi muita tunnettuja koodauksia ei ole käytet-10 ty, eli rajapinnan 116 datavuo siirretään kanavaa 118 pitkin dekooderille 120. Rajapinta 124 kuvaa datavuon sisältöä käänteiskvantisointivälineiden 122 jälkeen. Kuten kuviosta 5 havaitaan vertailemalla alkuperäistä datavuota 112 ennen kvantisointia ja rekonstruoitua datavuota 124 käänteiskvantisoinnin jälkeen, ei kvantisoinnin seurauksena rajapinnassa 116 esitettyjä nollaksi men-15 neitä ac-komponenttien arvoja enää saada palautettua ennalleen. Käytännössä tämä aiheuttaa sen, että alkuperäinen kuva 106 ennen dekoodausta ja rajapinnassa 128 kuvattu käänteisdiskreettikosinimuunnosvälineillä 126 rekonstruoitu kuva eivät vastaa enää toisiaan. Rekonstruoituun kuvaan on siis ilmestynyt kuvan laatua huonontavaa kohinaa.For simplicity, other known encodings are not used, i.e., the data stream of interface 116 is transmitted along channel 118 to decoder 120. Interface 124 describes the content of the data stream after inverse quantization means 122. As can be seen in Figure 5 by comparing the original data stream 112 before quantization and the reconstructed data stream 124 after inverse quantization, as a result of the quantization, the zero values of the ac components shown at interface 116 can no longer be restored. In practice, this causes the original image 106 before decoding and the image reconstructed by the inverse discrete cosine conversion means 126 described at the interface 128 to no longer match. Thus, noise that degrades image quality has appeared in the reconstructed image.

20 Kuvio 2 esittää uudenlaisia laitteita videokuvan koodaamiseksi ja dekoodaamiseksi. Koska kuvion 2 laitteet pohjautuvat kuviossa 1 esitettyihin tunnetun tekniikan mukaisiin laitteisiin, seuraavassa 2 selostetaan vain ne osat, jotka poikkeavat kuviossa 1 selostetuista laitteista.Figure 2 illustrates novel devices for encoding and decoding video images. Since the devices of Figure 2 are based on the prior art devices shown in Figure 1, only parts differing from the devices described in Figure 1 will be described below.

.i,: Kooderissa 108 diskreettikosinimuunnosvälineisiin 110 ovat yhtey- ·:··: 25 dessä esiprosessointivälineet 200 muokata liikkumattoman kuvan 104 kunkin pikselin arvoa ennen diskreettikosinimuunnoksen suorittamista. Esiprosessoin-; tivälineet 200 käsittävät kolmet eri välineet, joita kuvataan kuviossa 3..i,: In encoder 108, the discrete cine conversion means 110 is connected to the:: ··: 25 preprocessing means 200 to modify the value of each pixel of the still image 104 before performing the discrete cosine conversion. Esiprosessoin-; The means 200 comprise three different means, which are illustrated in Figure 3.

Ensimmäisillä välineillä muodostetaan kahden peräkkäisen pikselin arvon välinen pikselin arvon muutos. Alan ammattilainen voi valita olosuhtei-30 siin sopivan ja tehokkaan tavan toteuttaa tämä matemaattinen operaatio. Eräässä suoritusmuodossa esiprosessointivälineet 200 muodostavat pikselin ’· : arvon muutoksen vähentämällä jälkimmäisen pikselin arvosta edellisen pikse-The first means establish a change in pixel value between two successive pixel values. One skilled in the art can choose the appropriate and effective way to perform this mathematical operation. In one embodiment, the preprocessing means 200 generates a change in pixel '·: value by subtracting the value of the latter pixel from the former pixel value.

Iin arvon.Iin value.

Toisilla välineillä muodostetaan painotettu muutos käyttäen pikselin »ti · ,*·. 35 arvon muutosta ja etukäteen määrättyä painokerrointa. Alan ammattilainen voi valita olosuhteisiin sopivan ja tehokkaan tavan toteuttaa tämä matemaattinen 9 109394 operaatio. Eräässä suoritusmuodossa esiprosessointivälineet 200 muodostavat painotetun muutoksen jakamalla pikselin arvon muutoksen painokertoimella.Other means produce a weighted change using »ti ·, * ·. 35 value changes and a predetermined weight factor. One skilled in the art can select the appropriate and effective way to perform this mathematical 9,109,394 operation. In one embodiment, the preprocessing means 200 generates a weighted change by dividing the pixel value by a change in weight factor.

Kolmansilla välineillä asetetaan jälkimmäisen pikselin arvoksi paino-5 tettua muutosta käyttäen muokattu edellisen pikselin arvo. Alan ammattilainen voi valita olosuhteisiin sopivan ja tehokkaan tavan toteuttaa tämä matemaattinen operaatio. Eräässä suoritusmuodossa esiprosessointivälineet 200 muodostavat painotettua muutosta käyttäen muokatun edellisen pikselin arvon lisäämällä edellisen pikselin arvoon painotetun muutoksen.The third means sets the value of the latter pixel modified by the weighted change to the value of the previous pixel. One skilled in the art can choose the appropriate and effective way to perform this mathematical operation. In one embodiment, the preprocessing means 200 generates a weighted change using the previous pixel value modified by adding a weighted change to the previous pixel value.

10 Eräässä suoritusmuodossa esiprosessointivälineet 200 suorittavat esiprosessoinnin seuraavalla kaavalla tai sen kanssa matemaattisesti ekvivalentilla kaavalla: i yi=yn+((xi-yn)/k) (3) jossa y, on esiprosessoitu jälkimmäinen pikseli, y,.i on edellinen pik-15 seli, Xj on esiprosessoimaton jälkimmäinen pikseli, ja k on painokerroin.In one embodiment, the preprocessing means 200 performs preprocessing with the following formula or a mathematically equivalent formula: i yi = yn + ((xi-yn) / k) (3) where y, is the last pixel preprocessed, y, .i is the preceding pixel. , Xj is the last pixel unprocessed, and k is the weighting factor.

Painokerroin k on edullisesti yhtä suurempi luku. Eräässä edullises-| sa suoritusmuodossa painokerroin on kaksi, jolloin kaava 3 saa muodon yi=yi-i+((Xi-yi-i)/2) (4)The weight factor k is preferably a number greater than one. In one preferred embodiment in this embodiment, the weighting factor is two, whereby formula 3 takes the form yi = yi-i + ((Xi-yi-i) / 2) (4)

Eräs matemaattisesti ekvivalentti (eli saman tuloksen aikaansaava) 20 tapa esiprosessoinnin suorittamiseksi on käyttää laskentaan liukuvaa painotettua keskiarvoa. Painotetun keskiarvon kaava on n ί Σ»λ ! .. * = -*;--ψ- (5) ! Σ«, Σ“ ..,.: /=1 t » V. Jotta esiprosessoidun jälkimmäisen pikselin arvo pysyy edellisenOne mathematically equivalent (i.e., same result) 20 way to perform preprocessing is to use a moving weighted average for the calculation. The weighted average formula is n ί Σ »λ! .. * = - *; - ψ- (5)! Σ «, Σ“ ..,.: / = 1h »V. To keep the value of the last pixel in the preprocessed

t It I

,pikselin ja esiprosessoimattoman jälkimmäisen pikselin arvojen välillä, pätee, between the values of a pixel and the value of the latter, unprocessed, apply

.··. 25 painotetun keskiarvon kaavassa painokertoimelle Σαι = M, ja koska tässä M. ··. 25 in the formula for the weighting factor Σαι = M, and since here M

’ * " ’ /=1 on kaksi, niin ai+a2=2.'* "' / = 1 is two, so ai + a2 = 2.

Dekooderissa 120 käänteisdiskreettikosinimuunnosvälineisiin 126 :\i ovat yhteydessä käänteisesiprosessointivälineet 214 poistaa liikkumattoman •’’ f kuvan 104 kunkin pikselin esiprosessointi käänteisdiskreettikosinimuunnoksen i I » < , * . 30 suorittamisen jälkeen. Käänteisesiprosessointivälineet 214 käsittävät kolmet •:;, ‘ eri välineet, joita kuvataan kuviossa 4.In the decoder 120, the inverse discrete cosine conversion means 126: are connected to the inverse processing means 214 to remove the preprocessing of each pixel of the still image 104 of the inverse discrete cosine conversion i 1 <, *. 30 after running. The reverse processing means 214 comprises three different means described in Figure 4.

» I»I

Ensimmäisillä välineillä muodostetaan kahden peräkkäisen pikse-: Iin arvon välinen pikselin arvon muutos. Alan ammattilainen voi valita olosuh- » 10 109394 teisiin sopivan ja tehokkaan tavan toteuttaa tämä matemaattinen operaatio. Eräässä suoritusmuodossa käänteisesiprosessointivälineet 214 muodostavat pikselin arvon muutoksen vähentämällä jälkimmäisen pikselin arvosta edellisen pikselin arvon.The first means generate a change in pixel value between two successive pixel values. A person skilled in the art can choose the appropriate and effective way to perform this mathematical operation. In one embodiment, the reverse processing means 214 generates a change in pixel value by subtracting the value of the former pixel from the value of the latter.

5 Toisilla välineillä muodostetaan painotettu muutos käyttäen pikselin arvon muutosta ja videokuvan koodauksessa painotetun muutoksen muodostukseen käytettyä etukäteen määrättyä painokerrointa. Alan ammattilainen voi valita olosuhteisiin sopivan ja tehokkaan tavan toteuttaa tämä matemaattinen operaatio. Eräässä suoritusmuodossa käänteisesiprosessointivälineet 214 10 muodostavat painotetun muutoksen kertomalla pikselin arvon muutoksen ykkösellä pienennetyllä painokertoimella.Other means produce a weighted change using a change in pixel value and a predetermined weighting factor used to generate the weighted change in video coding. One skilled in the art can choose the appropriate and effective way to perform this mathematical operation. In one embodiment, the inverse processing means 214 10 generates a weighted change by multiplying the change in pixel value by a single reduced weight factor.

Kolmansilla välineillä asetetaan jälkimmäisen pikselin arvoksi painotettua muutosta käyttäen muokattu jälkimmäisen pikselin arvo. Alan ammattilainen voi valita olosuhteisiin sopivan ja tehokkaan tavan toteuttaa tämä ma-15 temaattinen operaatio. Eräässä suoritusmuodossa käänteisesiprosessointivä-lineet 214 muodostavat painotettua muutosta käyttäen muokatun jälkimmäisen pikselin arvon lisäämällä jälkimmäisen pikselin arvoon painotetun muutoksen.The third means sets the latter pixel value modified by the weighted change to the latter. One skilled in the art will be able to choose the appropriate and effective way to accomplish this Mon-15 themed operation. In one embodiment, the reverse processing means 214 generates a weighted change using the weighted change of the latter pixel by adding a weighted change to the value of the latter pixel.

Eräässä suoritusmuodossa käänteisesiprosessointivälineet 214 suorittavat käänteisesiprosessoinnin seuraavalla kaavalla tai sen kanssa ma-20 temaattisesti ekvivalentilla kaavalla:In one embodiment, the inverse processing means 214 performs the inverse processing with the following formula, or a therapeutically equivalent formula thereof, ma-20:

Xi=yi+(yi-yi-i)(k-i) (6) jossa Xj on esiprosessoimaton jälkimmäinen pikseli, y, on esiproses-V.* soitu jälkimmäinen pikseli, yM on edellinen pikseli, ja k on painokerroin.Xi = yi + (yi-yi-i) (k-i) (6) where Xj is the non-preprocessed last pixel, y, is the preprocessed-V. * Processed last pixel, yM is the previous pixel, and k is the weight factor.

·;··: Painokerroin k on edullisesti yhtä suurempi luku. Eräässä edullises- ;*·*; 25 sa suoritusmuodossa painokerroin on kaksi, jolloin kaava 6 saa muodon·; ··: The weight factor k is preferably a larger number. In a preferred embodiment; * · *; In this embodiment, the weighting factor is two, whereby formula 6 takes the form

Xi=yi+(yi-yi-i) (7) .···’ Kuten edellä jo kävi ilmi, esiprosessointi tai käänteisesiprosessointi voidaan suorittaa liikkumattoman kuvan sekä luminanssidatalle että kromi-'·’ nanssidatalle.Xi = yi + (yi-yi-i) (7) ··· 'As already stated above, preprocessing or inverse processing can be performed on both the luminance and chromium nance data of a still image.

30 Esiprosessointivälineet 200 tai käänteisesiprosessointivälineet 214 käsittelevät liikkumatonta kuvaa 104 riveittäin, sarakkeittain, makrolohkoittain, lohkoittain, tai muulla etukäteen määrätyllä ei-satunnaisella tavalla. Pääasia : on vain se, että sekä kooderi 108 että dekooderi 120 tuntevat käytetyn ,··, käsittelytavan. Periaatteessa esiprosessointi voidaan suorittaa myös kahdesti, 35 esimerkiksi ensin riveittäin ja sitten sarakkeittain.The preprocessing means 200 or the inverse processing means 214 process the still image 104 in rows, columns, macroblocks, blocks, or in any other predetermined non-random manner. The main point is just that both encoder 108 and decoder 120 are familiar with the ··· processing method used. In principle, preprocessing can also be performed twice, for example first in rows and then in columns.

i i · 11 109394i i · 11 109394

Esiprosessointivälineet 200, diskreettikosinimuunnosvälineet 110, kvantisointivälineet 114, käänteiskvantisointivälineet 122, käänteisetiskreetti-kosinimuunnosvälineet 126 ja käänteisesiprosessointivälineet 214 voidaan toteuttaa prosessorissa toimivana tietokoneohjelmana, jolloin esimerkiksi kukin 5 tarvittava toiminto toteutetaan omana ohjelmamodulina. Tietokoneohjelma siis sisältää rutiinit jäljempänä esiteltävien menetelmien vaiheiden toteuttamiseksi. Tietokoneohjelman myyntiä varten se voidaan tallentaa tietokoneen muistivälineelle esimerkiksi CD-ROM:ille (Compact Disc Read Only Memory). Tietokoneohjelma voidaan suunnitella siten, että se toimii myös normaalissa yleiskäyt-10 töisessä henkilökohtaisessa tietokoneessa, kannettavassa tietokoneessa, tietokoneverkon palvelimessa tai muussa tunnetun tekniikan mukaisessa tietokoneessa.The preprocessing means 200, the discrete cosine conversion means 110, the quantization means 114, the inverse quantization means 122, the inverse discrete cosine conversion means 126 and the inverse processing means 214 can be implemented as a computer program running in the processor. Thus, the computer program includes routines for performing the steps of the methods described below. For the purpose of selling a computer program, it may be stored on a computer storage medium such as a Compact Disc Read Only Memory (CD-ROM). The computer program may be designed to operate also on a normal general purpose personal computer, laptop computer, computer network server, or other prior art computer.

Kyseiset välineet 200, 110, 114, 122, 126 ja 214 voidaan toteuttaa myös laitteistoratkaisuna, esimerkiksi yhtenä tai useampana sovelluskohtaise-15 na integroituna piirinä (Application Specific Integrated Circuit, ASIC) tai erillis-komponenteista rakennettuna toimintalogiikkana. Välineiden toteutustavan valinnassa alan ammattilainen huomioi esimerkiksi tarvittavan prosessointitehon ja valmistuskustannukset. Myös erilaiset ohjelmiston ja laitteiston muodostamat hybriditoteutukset ovat mahdollisia.Such means 200, 110, 114, 122, 126 and 214 may also be implemented as a hardware solution, for example as one or more Application Specific Integrated Circuits (ASICs), or as operating logic built from discrete components. In selecting the means of implementation, one skilled in the art will consider, for example, the processing power required and the manufacturing cost. Various software and hardware hybrid implementations are also possible.

20 Kuviossa 6 kuvataan uudenlaisia pikseleitä kuviossa 2 kuvattujen laitteiden osien välisissä rajapinnoissa 202, 204, 206, 210, 212, 216. Testiku-vana on käytetty samaa luminanssilohkoa kuin kuviossa 5 eli testisekvenssin • · ”calendar_qcif.yuv” ensimmäisen kuvan ensimmäistä 8x8 kokoista luminanssi-*:··: lohkoa. Kuvion 2 mukaisessa laitteessa datavuon 106 sisältö kameran 102 jäl- 25 keen on sama kuin kuvion 1 mukaisessa laitteessa; siksi kuviossa 6 ei ole ku-vattu uudestaan datavuota 106. Rajapinta 202 kuvaa datavuon sisältöä esi-.···. prosessointivälineiden 200 jälkeen. Rajapinta 204 kuvaa datavuon sisältöä .·'··, diskreettikosinimuunnosvälineiden 110 jälkeen. Rajapinta 206 kuvaa datavuon sisältöä kvantisointivälineiden 114 jälkeen. Käytetty kvantisointisuhde on 11.Figure 6 illustrates novel pixels at the interfaces 202, 204, 206, 210, 212, 216 between the parts of the devices illustrated in Figure 2. The test lane uses the same luminance block as in Figure 5, i.e., the first 8x8 luminance of the test sequence. - *: ··: blocks. In the device of Figure 2, the content of the data stream 106 after the camera 102 is the same as that of the device of Figure 1; therefore, the data stream 106. is not re-depicted in Figure 6. The interface 202 illustrates the contents of the data stream. after processing means 200. The interface 204 illustrates the contents of the data stream. '' ··, after the discrete cine conversion means 110. Interface 206 illustrates the content of the data stream after quantization means 114. The quantization ratio used is 11.

. , 30 Yksinkertaisuuden vuoksi muita tunnettuja koodauksia ei ole käytet- ty, eli rajapinnan 206 datavuo siirretään kanavaa 208 pitkin dekooderille 120. Rajapinta 210 kuvaa datavuon sisältöä käänteiskvantisointivälineiden 122 jäl-• keen. Rajapinta 212 kuvaa datavuon sisältöä käänteisdiskreettikosinimuun- .···. nosvälineiden 126 jälkeen. Rajapinta 214 kuvaa datavuota käänteisesiproses- 35 sointivälineiden 214 jälkeen.. For simplicity, other known encodings are not used, i.e., the data stream of interface 206 is transmitted along channel 208 to decoder 120. Interface 210 describes the content of the data stream after inverse quantization means 122. Interface 212 describes the contents of the data stream in inverse discrete cinematic ···. after lifting means 126. The interface 214 illustrates a data stream after the reverse processing means 214.

12 10939412 109394

Kuviossa 5 kameralta tulevan alkuperäisen kuvan lohkon 106 ja de-kooderissa 120 rekonstruoidun lohkon 128 kunkin pikselin erotuksien itseisarvon summaksi saadaan laskemalla 677. Tämä luku kuvaa lohkoon koodauksessa ja dekoodauksessa tullutta kohinaa. Vastaavasti kuviossa 6 kameralta 5 tulevan alkuperäisen kuvan lohkon 106 ja dekooderissa 120 rekonstruoidun lohkon 216 kunkin pikselin erotuksien itseisarvon summaksi saadaan 596. Vertaamalla alkuperäistä lohkoa 106 ja rekonstruoitua lohkoa 128 sekä alkuperäistä lohkoa 106 ja esiprosessointia käyttämällä tuotettua rekonstruoitua lohkoa 216 havaitaan lohkon muodon säilyvän paremmin käytettäessä esipro-10 sessointia. Siis kuvion 2 mukaisia uutta kooderia 108 ja dekooderia 120 käytettäessä rekonstruoidun kuvan laatu on parempi, koska voitiin käyttää pienempää kvantisointisuhdetta vaaditun kanavan 118, 208 tiedonsiirtokapasiteetin pysyessä suunnilleen samana, sillä pakkaustehokkuus säilyy lähes sama na. Kuviossa 5 pakkaussuhde on noin 1:25 ja kuviossa 6 pakkaussuhde on 15 noin 1:23.In Figure 5, the absolute value of the difference between each pixel difference of the original image block 106 from the camera and the reconstructed block 128 at the decoder 120 is obtained by calculating 677. This figure illustrates the noise introduced into the block during coding and decoding. Similarly, in FIG. -10 sessions. Thus, with the new encoder 108 and decoder 120 of FIG. 2, the quality of the reconstructed image is better because a lower quantization ratio could be used while the required data transmission capacity of channel 118, 208 would remain approximately the same, since the compression efficiency would remain nearly the same. In Figure 5, the compression ratio is about 1:25 and in Figure 6, the compression ratio is about 1:23.

Kuvio 9 havainnollistaa esiprosessoinnin vaikutusta pikseleihin. Pik-j seleiksi on valittu kuviosta 5 rajapinnasta 106 ensimmäisen rivin kahdeksan alkuperäistä pikseliä ja kuviosta 6 rajapinnasta 202 ensimmäisen rivin kahdeksan esiprosessoitua pikseliä. Vaaka-akselilla on pikselin järjestysnumero 1-8, 20 ja pystyakselilla kuvataan pikselin arvoa välillä 0-120. Yhtenäinen viiva kuvaa alkuperäisiä pikseleitä ja katkoviiva esiprosessoituja pikseleitä. Kuten kuviosta 9 nähdään, esiprosessointi loiventaa pikseleiden arvojen vaihtelua.Figure 9 illustrates the effect of preprocessing on pixels. From pixel 5, eight original pixels of the first row of the interface 106 and pixel 8 of the first line of the pixel preprocessed pixel of interface 620 are selected as pixels. The horizontal axis has a pixel number from 1 to 8, 20 and the vertical axis represents a pixel value from 0 to 120. The solid line represents the original pixels and the dashed line represents the preprocessed pixels. As shown in Figure 9, preprocessing moderates the variation in pixel values.

Hakija on suorittanut kokeita, joissa kuvan visuaaliseen vertailuun :·: on käytetty huippusignaalikohinasuhde-estimaattoria (Peak Signal Noise Ra- 25 tio, PSNR), joka lasketaan kaavalla: • ' · 2552 :.'-i psnr = lOlog——-, (8) ::: jossa kuvakoko on MxN, f(x,y) on alkuperäisen kuvan pikseli ja r(x,y) on vertailtavan kuvan pikseli. Vertailussa psnr on laskettu luminanssien '· "· ja krominanssien psnrien keskiarvosta.Applicant has conducted experiments using visual comparison of image: ·: Peak Signal Noise Ratio Estimator (PSNR) calculated using the formula: • '· 2552: .'-i psnr = lOlog ——-, ( 8) ::: where the image size is MxN, f (x, y) is the pixel of the original image and r (x, y) is the pixel of the image to be compared. In the comparison, psnr is calculated as the average of the p · ns for luminances' · "· and chrominances.

30 Pakkaustehokkuutta vertaillessa taas käytetään yksinkertaisesti pa- : katun videokuvan kokoa. Esiprosessoinnissa on käytetty painokertoimena . · · \ kakkosta ja pyöristystä lähimpään kokonaislukuun.30 When comparing compression efficiency, the compressed video image size is simply used. Preprocessing is used as a weighting factor. · · \ Second and rounded to the nearest whole number.

Taulukoissa käytetyt lyhenteet: - Stream name tiedoston nimi 13 109394 - Pre enc esiprosessoinnin käyttö kooderissa ("+”= on käytetty, = ei ole käytetty) - Pre dec esiprosessoinnin käyttö dekooderissa - Size pakatun videokuvan koko tavuina 5 - QP käytetty kvantisointiparametri - Psnr dekoodatun videon psnr verrattuna alkuperäisen videon psnr.ään - Size rate pakkaussuhde (Size prosessoimaton /Abbreviations used in the tables: - Stream name filename 13 109394 - Use of pre enc pre-processing in encoder ("+" = used, = not used) - Use of pre dec pre-processing in decoder - Size of compressed video image in bytes 5 - Quantization parameter used in QP - Psnr for decoded video psnr compared to original video psnr - Size rate compression ratio (Size unprocessed /

Size prosessoitu) 10 - Psnr rate psnr-suhde (Psnr prosessoimaton /Size Processed) 10 - Psnr rate psnr ratio (Psnr unprocessed /

Psnr prosessoitu).Psnr processed).

Tarkastellaan ensin sekvenssiä ”calendar_qcif.yuv”, josta koodataan 20 ensimmäistä kuvaa.Let's first look at the sequence "calendar_qcif.yuv", which encodes the first 20 images.

Stream name Pre Pre size QP Psnr Size Psnr __enc Dec_____rate rate calendar qcif.yuv__ 448258 1 47.23 calendar qcif.yuv__+__ 269639 1 29.98 0.6 1.58 calendar qcif.yuv__+ + 269639 1 40.29 0.6 1.17 15Stream name Pre Pre size QP Psnr Size Psnr __enc Dec_____rate rate calendar qcif.yuv__ 448258 1 47.23 calendar qcif.yuv __ + __ 269639 1 29.98 0.6 1.58 calendar qcif.yuv __ + + 269639 1 40.29 0.6 1.17 15

Taulukko 3Table 3

Kun käytetään kvantisointiparametria 1 ja esikäsittelyä vain koode-V: rissa, mikä vastaa varsin hyvin perinteistä esikäsittelyä, paranee pakkausteho ·..·: 20 40%, mutta kuvan laatu taas heikkenee huomattavasti (58%). Jos esikäsittelyn ;v: dekoodaus lisätään dekooderiin, huononee kuvan laatu enää 17%.Using quantization parameter 1 and preprocessing only in code V, which is very similar to traditional preprocessing, results in a compression efficiency of · .. ·: 20 40%, but the image quality is significantly reduced (58%). If pre-processing; v: decoding is added to the decoder, the picture quality will only be reduced by 17%.

. · · : Stream name Pre Pre Size QP Psnr Size Psnr __enc Dec_____rate rate " calendar qcif.yuv__-__ 16752 15 28.30 __- calendar qcif.yuv__+__-__7941 15 25.92 0,47 1.09 calendar qcif.yuv__+ + 7941__15 26.73 0.47 1.06 .·. calendar qcif.yuv__+ + 14378 10 28.11 0.86 1.01 * · * : 25 Taulukko4 . .·; Kun kvantisointia on kasvatettu viiteentoista, huomataan, että koo- ,···. derissa suoritettavan esiprosessoinnin teho kasvaa jo yli kaksinkertaiseksi, > * » 14 109394 kun taas dekooderissa suoritettava menettää tehoaan verrattuna pienemmällä kvantisoinnilla ajettuun dataan. Kvantisointiparametrilla 10 ajettu testidata on kooltaan lähinnä prosessoimatonta: teho kasvaa n. 15 prosentilla, kuvan laadun pysyessä lähes muuttumattomana.. · ·: Stream name Pre Pre Size QP Psnr Size Psnr __enc Dec_____rate rate "calendar qcif.yuv __-__ 16752 15 28.30 __- calendar qcif.yuv __ + __-__ 7941 15 25.92 0.47 1.09 calendar qcif.yuv __ + + 7941__15 26.73 0.47 1.06. ·. Calendar qcif.yuv __ + + 14378 10 28.11 0.86 1.01 * · *: 25 Table 4. ·;; After increasing the quantization to fifteen, it is noticed that the power of pre-processing in size, ···. Der already doubles, > * »14 109394 whereas the decoder loses its power compared to the data driven by the lower quantization The test data run by the quantization parameter 10 is essentially unprocessed: the power increases by about 15% while the image quality remains virtually unchanged.

55

Stream name Pre Pre Size QP Psnr Size Psn enc Dec rate r ________rate calendar qcif.yuv__-__ 4904 30 25,53 calendar qcif.yuv__+___4757 22 25,08 0.97 1.02 calendar qcif.yuv__+ + 4757 22 25.55 0.97 1.00Stream name Pre Pre Size QP Psnr Size Psn enc Dec rate r ________rate calendar qcif.yuv __-__ 4904 30 25.53 calendar qcif.yuv __ + ___ 4757 22 25.08 0.97 1.02 calendar qcif.yuv __ + + 4757 22 25.55 0.97 1.00

Taulukko 5 10 Kun käytetään todella suurta kvantisointia, nähdään, että esipro- sessoinnin teho laskee. Nyt sama kuvanlaatu saavutetaan enää n. 3% paremmalla pakkaustehokkuudella.Table 5 10 When really high quantization is used, it is seen that the preprocessing power decreases. Now the same image quality is achieved with about 3% more compression.

Seuraavaksi kuvion 7 vuokaavioon viitaten selostetaan menetelmä peräkkäisistä liikkumattomista kuvista muodostetun videokuvan koodaamisek-15 si. Menetelmän suoritus aloitetaan lohkossa 700, jossa kooderi alkaa vastaanottaa koodattavaa videokuvaa. Lohkossa 702 otetaan käsittelyyn ensimmäisen kuvan ensimmäinen esiprosessoimaton osa.Referring now to the flowchart of Figure 7, a method for encoding a video image formed from a sequence of still images is described. Execution of the method begins at block 700 where the encoder begins to receive the video image to be encoded. In block 702, the first unprocessed part of the first image is processed.

Lohkossa 704 laskurin i arvoksi asetetaan yksi.In block 704, counter i is set to one.

| ", Lohkossa 706 ensimmäisen pikselin esiprosessoiduksi arvoksi (yi) 20 asetetaan esiprosessoimaton arvo (xi).| ", In block 706, the first pixel preprocessed value (yi) 20 is set to the unprocessed value (xi).

• : Lohkossa 708 kasvatetaan laskurin i arvoa yhdellä.•: In block 708, the value of counter i is incremented by one.

'·! Sitten lohkossa 710 aletaan suorittamaan varsinaista esiprosessoin- tia, eli ennen diskreettikosinimuunnoksen suorittamista toistetaan vuorollaan : liikkumattoman kuvan kullekin pikselille esiprosessointi, jossa: 25 - muodostetaan kahden peräkkäisen pikselin arvon välinen pikselin : arvonmuutos, .···’ - muodostetaan painotettu muutos käyttäen pikselin arvon muutosta * '' ’ ja etukäteen määrättyä painokerrointa, ja :.· ! - asetetaan jälkimmäisen pikselin arvoksi painotettua muutosta 30 käyttäen muokattu edellisen pikselin arvo.'·! Then, in block 710, the actual preprocessing is started, that is, before performing the discrete cosine conversion, it is repeated in turn: a preprocessing for each pixel of a still image, where: * '' 'and a predefined weighting factor, and:. - setting the latter pixel to the value of the previous pixel modified by weighted change 30.

. Esiprosessointi voidaan suorittaa esimerkiksi lohkossa 710 kuvattua • t # /. · ·. jo aiemmin selostettua kaavaa 3 käyttäen.. The preprocessing can be performed, for example, as described in block 710 • t # /. · ·. using formula 3 already described.

15 10939415 109394

Lohkossa 712 testataan, onko kuvan käsittelyn alla oleva osa saatu jo valmiiksi, eli esimerkissämme testataan, onko laskurin i arvo yhdellä kasvatettuna suurempi kuin kuvan osan viimeisen pikselin järjestysnumero. Esimerkiksi jos cif-kokoista kuvaa käsitellään riveittäin, niin tässä testataan, onko 5 i+1>352. Jos ei ole vielä käsitelty kuvan osan viimeistä pikseliä, mennään nuo len 714 mukaisesti takaisin lohkoon 708, josta suoritusta jatketaan kasvatta-I maila laskurin i arvoa yhdellä. Jos kuvan osan viimeinen pikseli tuli lohkossa 710 käsiteltyä, mennään nuolen 716 mukaisesti lohkoon 718, jossa testataan, onko koko kuva käsitelty.In block 712, it is tested whether the portion underneath the image processing has already been completed, i.e., in our example, the value of counter i, increased by one, is greater than the last pixel sequence number of the portion of the picture. For example, if a cif-sized image is processed line by line, here we test whether 5 i + 1> 352. If the last pixel of the portion of the image has not yet been processed, then back to block 708, according to step 714, from which execution is continued, incrementing the value of counter i by one. If the last pixel of the image entered at block 710 discussed, let the direction of arrow 716 in accordance with block 718 in which it tests whether the whole image processing.

10 Jos kuvan kaikkia osia ei ole vielä käsitelty, mennään nuolen 720 mukaisesti lohkoon 702, josta jatketaan ottamalla käsittelyyn seuraava kuvan esiprosessoimaton osa.10, if all elements of the image has not yet been addressed, we go to block 720 as indicated by arrow 702, which is continued by reading the next part of the image esiprosessoimaton.

Jos kuvan kaikki osat on käsitelty, mennään lohkosta 718 nuolen 722 mukaisesti lohkoon 724, jossa suoritetaan diskreettikosinimuunnos 724 15 liikkumattoman kuvan muuntamattomille pikseleille. Diskreettikosinimuunnos voidaan suorittaa lohkossa 724 joko koko kuvalle kerrallaan, tai sitten katkovii-voitetun lohkon 724 mukaisesti vuorollaan kullekin kuvan esiprosessoidulle osalle ennen kuin lohkossa 702 aletaan käsitellä kuvan seuraavaa osaa.If parts of the image have been processed, we go from block 718 according to arrow 722 to block 724, which is carried out diskreettikosinimuunnos 15 724 unmodified pixels of a still image. The discrete cosine conversion may be performed in block 724, either for the entire image at a time, or then in accordance with the broken line 724 for each preprocessed portion of the image in turn before processing the next portion of the image in block 702.

Sitten lohkossa 726 testataan, oliko edellinen esiprosessoitu kuva 20 kyseisen videokuvasekvenssin viimeinen. Jos ei ollut, mennään nuolen 728 mukaisesti lohkoon 702, jossa jatketaan käsittelyä ottamalla seuraavan kuvan ensimmäinen esiprosessoimaton osa käsittelyyn. Jos videokuvasekvenssin ,:.: esiprosessointi saatiin valmiiksi, mennään lohkosta 726 nuolen 730 mukaisesti :1 ’ i lohkoon 732, jossa lopetetaan menetelmän suoritus.Then, in block 726, it is tested whether the previous preprocessed image 20 was the last of the video sequence in question. If you did not, let's go according to arrow 728 to block 702, which will be continued by the processing of the first esiprosessoimaton the next part of the image processing. If videokuvasekvenssin.,:: Pre-processing was completed, we go from block 726 in accordance with an arrow 730: 1 'in block 732, where the embodiment of the method is terminated.

; 25 Menetelmää voidaan modifioida oheisten epäitsenäisten patentti- ; .· vaatimusten mukaisesti. Koska niiden sisältö on edellä selitetty kooderin 108 . · · ·. yhteydessä, ei selitystä enää tässä toisteta.; The method may be modified by the following dependent patents; .· according to the requirements. Because their contents are described above at codec 108. · · ·. context, the explanation is no longer repeated here.

,···, Lopuksi kuvioon 8 viitaten havainnollistetaan menetelmää peräkkäi sistä liikkumattomista kuvista muodostetun videokuvan dekoodaamiseksi.Finally, referring to FIG. 8, a method for decoding a video image formed from sequential still images is illustrated.

, . 30 Menetelmän suorittaminen aloitetaan lohkossa 800, jossa dekoode- ’; / ri alkaa vastaanottaa dekoodattavaa videokuvaa.,. Execution of the method is started in block 800 where the decoder '; / ri starts receiving decoded video.

Lohkossa 802 suoritetaan käänteisdiskreettikosinimuunnos 802 liik-• kumattoman kuvan pikseleille.In block 802, an inverse discrete cosine conversion 802 is performed on the still image pixels.

Sitten lohkossa 804 otetaan käsittelyyn kuvan ensimmäinen esipro- » »· 35 sessoimaton osa.Then, in block 804, the first pre-pro- portion of the image is processed.

1 Lohkossa 806 laskurin i alkuarvoksi asetetaan ykkönen.1 In block 806, the initial value of counter i is set to one.

I t II t I

16 10939416 109394

Lohkossa 808 ensimmäisen pikselin käänteisesiprosessoiduksi arvoksi (xi) asetetaan esiprosessoitu arvo (yi).In block 808, the preprocessed value (xi) of the first pixel is set to the preprocessed value (yi).

Lohkossa 810 kasvatetaan laskurin i arvoa ykkösellä.In block 810, the value of counter i is incremented by one.

Sitten lohkossa 812 aletaan suorittamaan varsinaista käänteisesi-5 prosessointia, eli käänteisdiskreettikosinimuunnoksen suorittamisen jälkeen toistetaan vuorollaan liikkumattoman kuvan kullekin pikselille käänteisesipro-sessointi, jossa: - muodostetaan kahden peräkkäisen pikselin arvon välinen pikselin arvon muutos, 10 - muodostetaan painotettu muutos käyttäen pikselin arvon muutosta ja videokuvan koodauksessa painotetun muutoksen muodostukseen käytettyä etukäteen määrättyä painokerrointa, ja - asetetaan jälkimmäisen pikselin arvoksi painotettua muutosta käyttäen muokattu jälkimmäisen pikselin arvo.Then, in block 812, the actual inverse-5 processing is started, i.e., after performing the inverse discrete cosine conversion, each pixel of the still image is repeatedly subjected to inverse processing, whereby: a predefined weighting factor used to generate the weighted change; and - setting the latter pixel to the value modified by the weighted change.

15 Käänteisesiprosessointi voidaan suorittaa esimerkiksi lohkossa 812 kuvattua jo aiemmin selostettua kaavaa 6 käyttäen.Reverse processing can be performed, for example, using the formula 6 already described in block 812.

| Lohkossa 814 testataan, onko kuvan käsittelyn alla oleva osa saatu jo valmiiksi, eli esimerkissämme testataan, onko laskurin i arvo yhdellä kasvatettuna suurempi kuin kuvan osan viimeisen pikselin järjestysnumero. Jos ei 20 ole vielä käsitelty kuvan osan viimeistä pikseliä, mennään nuolen 816 mukaisesti takaisin lohkoon 810, josta suoritusta jatketaan kasvattamalla laskurin i arvoa yhdellä. Jos kuvan osan viimeinen pikseli tuli lohkossa 812 käsiteltyä, mennään nuolen 818 mukaisesti lohkoon 820, jossa testataan, onko koko ku-va käsitelty.| In block 814, it is tested whether the portion under processing of the image has already been completed, i.e., in our example, the value of counter i, increased by one, is greater than the last pixel sequence number of the portion of the image. If 20 is not yet processed the last pixels of the image in accordance with the go direction of the arrow 816 back to block 810, where execution continues with the increasing value of the counter i by one. If the last pixel of the image entered at block 812 discussed, let the direction of arrow 818 in accordance with a block 820 in which it tests whether the size of the Ku-Va processed.

f 25 Jos kuvan kaikkia osia ei ole vielä käsitelty, mennään lohkosta 820 nuolen 824 mukaisesti lohkoon 804, josta jatketaan ottamalla käsittelyyn seu- ;11; raava kuvan esiprosessoimaton osa. Kuten kuviosta 8 nähdään, tässä koh- .·1·. dassa on optionaalinen katkoviivoitettu lohko 802, eli käänteisdiskreetti- kosinimuunnos voidaan suorittaa joko kuvan kaikille pikseleille ennen kään- , . 30 teisesiprosessointia tai sitten vuorollaan kullekin kuvan seuraavaksi kään- » » · ;,.: teisesiprosessoitavalle osalle.f 25, if all elements of the image has not yet been addressed, we go from block 820 according to arrow 824 to block 804, where processing is continued by monitoring; 11; a raw preprocess part of an image. As shown in Fig. 8, here · 1 ·. da has an optional dashed block 802, i.e., the inverse discrete cosine transformation can be performed on all pixels of the image before inverse. 30 secondary processing, or alternately for each portion of the image to be reversed »» ·;,.: Secondary processing.

·;·’ Jos kuvan kaikki osat on käsitelty, mennään lohkosta 820 nuolen ; 822 mukaisesti lohkoon 826, jossa testataan, oliko edellinen esiprosessoitu kuva kyseisen videokuvasekvenssin viimeinen. Jos ei ollut, mennään nuolen j \ 35 828 mukaisesti lohkoon 802, jossa jatketaan käsittelyä suorittamalla käänteis- diskreettikosinimuunnos seuraavan kuvan pikseleille. Jos videokuvasekvens- 17 109394 sin käänteisesiprosessointi saatiin valmiiksi, mennään lohkosta 826 nuolen 830 mukaisesti lohkoon 832, jossa lopetetaan menetelmän suoritus.·; · 'If all the parts of the image have been processed, block 820 of the arrow go; 822 to block 826 for testing whether the previous preprocessed image was the last of the video sequence in question. If not, we go the direction of arrow j \ 35 828 according to block 802, where processing is continued by carrying out a reverse diskreettikosinimuunnos the next image pixel. If videokuvasekvens- 17 109394 käänteisesiprosessointi sequence was completed, we go from block 826 according to arrow 830 to block 832, where the method embodiment is terminated.

Menetelmää voidaan modifioida oheisten epäitsenäisten patenttivaatimusten mukaisesti. Koska niiden sisältö on edellä selitetty dekooderin 5 120 yhteydessä, ei selitystä enää tässä toisteta.The method may be modified according to the appended dependent claims. Since their contents have been described above in connection with decoder 5 120, the description will not be repeated here.

; Kuviossa 7 ei ole kuvattu kvantisointia, joka suoritetaan kuviossa 7 lohkon 724 jälkeen, ja vastaavasti kuviossa 8 ei ole kuvattu käänteis-kvantisointia, joka suoritetaan ennen lohkoa 802. On huomattava, että menetelmien toimenpiteiden sekvenssin ei ole pakko olla kuvatun kaltainen. Jos 10 esimerkiksi reaaliaikaisuusvaatimus ei ole korkea ja laitteessa on tarpeeksi muistia, voidaan lohkon 724 mukainen diskreettikosinimuunnos suorittaa kerrallaan aina useammalle muistiin tallennetulle kuvalle.; Fig. 7 does not illustrate the quantization performed in Fig. 7 after block 724, and likewise Fig. 8 does not depict the inverse quantization performed prior to block 802. It should be noted that the sequence of procedures of the methods need not be as described. For example, if the real-time requirement 10 is not high and the device has enough memory, the discrete cine transform according to block 724 may be performed at any one time on more than one picture stored in memory.

Vaikka keksintöä on edellä selostettu viitaten oheisten piirustusten mukaiseen esimerkkiin, on selvää, ettei keksintö ole rajoittunut siihen, vaan si-15 tä voidaan muunnella monin tavoin oheisten patenttivaatimusten esittämän keksinnöllisen ajatuksen puitteissa. 1Although the invention has been described above with reference to the example of the accompanying drawings, it is clear that the invention is not limited thereto, but that it can be modified in many ways within the scope of the inventive idea set forth in the appended claims. 1

» » I»» I

· ·· ·

Claims (27)

1. Förfarande för kodning av en videobild som bildats av pä varand-ra följande stillbilder, omfattande: utförande av en diskret cosiniomvandling (724) för stillbildens icke-5 omvandlade pixlar; kännetecknat avatt innan den diskreta cosiniomvandlingen utförs, upprepas i tur och ordning för stillbildens varje pixel en förprocessering (710), där: en förändring av pixelvärdet mellan tvä pä varandra följande pixlars 10 värden bildas; en vägd förändring bildas genom användning av pixelvärdets förändring och ett pä förhand bestämt vägningstal; och som värde ät den senare pixeln sätts den föregäende pixelns bear-betade värde genom användning av den vägda förändringen. 15 2. Förfarande enligt patentkrav 1, kännetecknat avatt för ändringen av pixelvärdet bildas genom att föregäende pixels värde subtrahe-ras frän den senare pixelns värde.A method of encoding a video image formed by one of the following still images, comprising: performing a discrete cosine conversion (724) for the non-converted pixels of the still image; characterized by decreasing before the discrete cosine transformation is performed, a pre-processing (710) is repeated in sequence for each pixel of the still image, where: a change of the pixel value between two consecutive pixels 10 is formed; a weighted change is formed using the pixel value change and a predetermined weighting number; and as the value of the latter pixel, the processed value of the preceding pixel is set using the weighted change. The method according to claim 1, characterized by the change of the pixel value being formed by subtracting the previous pixel value from the value of the latter pixel. 3. Förfarande enligt nägot av de föregäende patentkraven, kännetecknat av att den vägda förändringen bildas genom att pixelvärdets 20 förändring divideras med vägningstalet.Method according to any of the preceding claims, characterized in that the weighted change is formed by dividing the change of the pixel value by the weighting number. 4. Förfarande enligt nägot av de föregäende patentkraven, k ä n -netecknatavatt genom användning av den vägda förändringen bildas fö- ". regäende pixels bearbetade värde genom att den vägda förändringen adderas . tili föregäende pixels värde. • · ·’ 25 5. Förfarande enligt nägot av de föregäende patentkraven, kän- f | · ’ · ’ *· n e t e c k n a t av att förprocesseringen utförs med följande formel eller med :... · en därmed matematiskt ekvivalent formel: yi=yi-i+((Xi-yi-i)/k) där yj är en förprocesserad senare pixel, , · 30 Yu är en föregäende pixel, Xj är en icke-förprocesserad senare pixel, k är ett vägningstal. : 6. Förfarande för dekodning av en videobild som bildats av pä var andra följande stillbilder, omfattande: 35 utförande av en inverterad diskret cosiniomvandling (802) för stillbil- * ·. dens icke-omvandlade pixlar; 24 109394 { kännetecknat avatt efter att den inverterade diskreta cosiniomvandlingen utförts, uppre-pas i tur och ordning för stillbildens varje pixel en inverterad förprocessering (812), där: 5 en förändring av pixelvärdet mellan tva pa varandra följande pixlars värden bildas; en vägd förändring bildas genom användning av pixelvärdets förändring och ett pä förhand bestämt vägningstal, som använts för att bilda den vägda förändringen vid kodning av videobilden; och 10 som värde at den senare pixeln sätts den senare pixelns bearbeta- de värde genom användning av den vägda förändringen.4. A method according to any of the preceding claims, characterized by using the weighted change, the processed value is calculated by adding the weighted change by adding the weighted change to the value of the preceding pixel. according to any of the preceding claims, characterized in that the preprocessing is carried out with the following formula or with: ... · a mathematically equivalent formula: yi = yi-i + ((Xi-yi-i ) / k) where yj is a preprocessed later pixel, · 30 Yu is a preceding pixel, Xj is a non-preprocessed later pixel, k is a weighting number: 6. Method of decoding a video image formed by each other the following still images, comprising: performing an inverted discrete cosine conversion (802) for its still-transformed pixels; characterized by decreasing after the inverted discrete cosine conversion one executed, repeated in order of each pixel of the still image, an inverted preprocessing (812) where: a change of the pixel value between two consecutive pixels values is formed; a weighted change is formed using the pixel value change and a predetermined weighting number used to form the weighted change when encoding the video image; and 10 as the value of the latter pixel is set the processed value of the latter pixel using the weighted change. 7. Förfarande enligt patentkrav 6, kännetecknat av att förändringen av pixelvärdet bildas genom att föregäende pixels värde subtrahe-ras frän den senare pixelns värde. 15 8. Förfarande enligt nägot av de föregäende patentkraven 6-7, kännetecknat av att den vägda förändringen bildas genom att pixelvärdets förändring multipliceras med vägningstalet minskat med ett.Method according to claim 6, characterized in that the change of the pixel value is formed by subtracting the previous pixel value from the value of the latter pixel. Method according to any of the preceding claims 6-7, characterized in that the weighted change is formed by multiplying the pixel value change by the weighting number reduced by one. 9. Förfarande enligt nägot av de föregäende patentkraven 6-8, kännetecknat av att genom användning av den vägda förändringen bil- 20 das den senare pixelns bearbetade värde genom att den vägda förändringen adderas tili den senare pixelns värde.Method according to any of the preceding claims 6-8, characterized in that by using the weighted change the processed value of the latter pixel is formed by adding the weighted change to the value of the latter pixel. 10. Förfarande enligt nägot av de föregäende patentkraven 6-9, ; kännetecknat av att den inverterade förprocesseringen av pixeln utförs .: med följande formel eller med en därmed matematiskt ekvivalent formel:A method according to any of the preceding claims 6-9; characterized in that the inverted preprocessing of the pixel is performed: by the following formula or by a mathematically equivalent formula: 25 Xi=yi+(yryi-i)(k-i) k '. där Xj är en icke-förprocesserad senare pixel, '/· y, är en förprocesserad senare pixel, ;' y,-i är en föregäende pixel, / k är ett vägningstal. 30 11. Förfarande enligt nägot av de föregäende patentkraven, • i kännetecknat av att vägningstalet är ett tai större än ett.Xi = yi + (yryi-i) (k-i) k '. where Xj is a non-preprocessed later pixel, '/ · y, is a preprocessed later pixel; y, -i is a preceding pixel, / k is a weighting number. Method according to any of the preceding claims, characterized in that the weighting number is one tai greater than one. 12. Förfarande enligt patentkrav 11, kännetecknat av att vägningstalet är tvä.Method according to claim 11, characterized in that the weighting number is two. 13. Förfarande enligt nägot av de föregäende patentkraven, 35 kännetecknat av att förprocesseringen eller den inverterade förproces- j 25 109394 seringen av pixeln utförs pä en stillbild radvis, spaltvis, makroblockvis, blockvis eller pä nägot annat pä förhand bestämt icke-slumpmässigt sätt.Method according to any of the preceding claims, characterized in that the preprocessing or inverted preprocessing of the pixel is performed in a still image in a row, column, macroblock, block or in some other predetermined non-random way. 14. Förfarande enligt nagot av de föregäende patentkraven, kännetecknat avatt förprocesseringen eller den inverterade förproces- 5 seringen av pixeln utförs pä stillbildens luminansdata.A method according to any of the preceding claims, characterized in that the preprocessing or inverted preprocessing of the pixel is performed on the luminance data of the still image. 15. Förfarande enligt nägot av de föregäende patentkraven, kännetecknat av att förprocesseringen eller den inverterade förprocesseringen av pixeln utförs pä stillbildens krominansdata.Method according to any of the preceding claims, characterized in that the preprocessing or inverted preprocessing of the pixel is performed on the chrominance data of the still image. 16. Apparat för kodning av en videobild som bildats av pä varandra 10 följande stillbilder, omfattande medel (110) för diskret cosiniomvandling för att utföra diskret cosiniomvandling pä stillbildens (104) pixlar; kännetecknad av att \ förprocesseringsmedel (200) är anslutna tili medlen (110) för diskret cosiniomvandling för att bearbeta stillbildens (104) varje pixelvärde, innan den 15 diskreta cosiniomvandlingen utförs; förprocesseringsmedlen (200) omfattar: medel för att bilda en förändring av pixelvärdet mellan tvä pä varandra följande pixlars värden; medel för att bilda en vägd förändring genom användning av pixel-20 värdets förändring och ett pä förhand bestämt vägningstal; medel för att som värde ät den senare pixeln sätta den föregäende pixelns bearbetade värde genom användning av den vägda förändringen. : 17. Apparat enligt patentkrav 16, kännetecknad av att för- , : processeringsmedlen (200) bildar förändringen av pixelvärdet genom att sub- 25 trahera föregäende pixels värde frän den senare pixelns värde. . 18. Apparat enligt nägot av de föregäende patentkraven 16-17, k ä n n e t e c k n a d av att förprocesseringsmedlen (200) bildar den vägda •;; ’ förändringen genom att dividera pixelvärdets förändring med vägningstalet. | '···' 19. Apparat enligt nägot av de föregäende patentkraven 16-18, 30 kännetecknad av att förprocesseringsmedlen (200) genom användning • av den vägda förändringen bildar föregäende pixels bearbetade värde genom ’: att addera den vägda förändringen tili föregäende pixels värde.An apparatus for encoding a video image formed by consecutive still images, comprising discrete cosine conversion means (110) for performing discrete cosine conversion at still image pixels (104); characterized in that the preprocessing means (200) are connected to the discrete cosine conversion means (110) to process each pixel value of the still image (104) before performing the discrete cosine conversion; the preprocessing means (200) comprises: means for forming a change in pixel value between two consecutive pixel values; means for forming a weighted change using the pixel value change and a predetermined weighting number; means to set as the value the latter pixel the processed value of the preceding pixel by using the weighted change. Apparatus according to claim 16, characterized in that the processing means (200) form the change of the pixel value by subtracting the previous pixel value from the value of the latter pixel. . Apparatus according to any of the preceding claims 16-17, characterized in that the preprocessing means (200) form the weighted; 'The change by dividing the pixel value change by the weighting number. | 19. Apparatus according to any one of the preceding claims 16-18, 30 characterized in that the preprocessing means (200), using the weighted change, form the processed value of the preceding pixels by ': adding the weighted change to the value of the preceding pixels. . 20. Apparat enligt nägot av de föregäende patentkraven 16-19, kännetecknad av att förprocesseringsmedlen (200) utför förprocesse-35 ringen med följande formel eller med en därmed matematiskt ekvivalent for-mel: 26 109394 yi=yi-i+((Xi-yi-i)/k) där y, är en förprocesserad senare pixel, yi-i är en föregäende pixel, Xi är en icke-förprocesserad senare pixel, 5 k är ett vägningstal.Apparatus according to any one of the preceding claims 16-19, characterized in that the preprocessing means (200) perform the preprocessing of the following formula or with a mathematically equivalent formula: 26i = yi-i + ((Xi-yi) -i) / k) where y, is a preprocessed lateral pixel, yi-i is a preceding pixel, Xi is a non-preprocessed lateral pixel, 5k is a weighting number. 21. Apparat för dekodning av en videobild som bildats av pä varand-ra följande stillbilder, omfattande medel (126) för inverterad diskret cosiniom-vandling för att utföra inverterad diskret cosiniomvandling pä stillbildens (104) pixlar; 10 kännetecknadavatt inverterade förprocesseringsmedel (214) är anslutna tili medlen (126) för inverterad diskret cosiniomvandling för att avlägsna förprocessering-en av stillbildens (104) varje pixelvärde, efter att den inverterade diskreta cosi-niomvandlingen utförts; 15 de inverterade förprocesseringsmedlen (214) omfattar: medel för att bilda en förändring av pixelvärdet mellan tvä pä var-andra följande pixlars värden; medel för att bilda en vägd förändring genom användning av pixel-värdets förändring och ett pä förhand bestämt vägningstal som använts för att 20 bilda den vägda förändringen vid kodning av videobilden; medel för att som värde ät den senare pixeln sätta den senare pix-elns bearbetade värde genom användning av den vägda förändringen.An apparatus for decoding a video image formed by one of the following still images, comprising means (126) for inverted discrete cosine conversion to perform inverted discrete cosine conversion on the pixels of the still image (104); Characterized by inverted preprocessing means (214) connected to inverted discrete cosine conversion means (126) to remove the preprocessing of each pixel value of the still image (104) after performing the inverted discrete cosine conversion; The inverted preprocessing means (214) comprises: means for forming a pixel value change between two successive pixel values; means for forming a weighted change using the pixel value change and a predetermined weighting number used to form the weighted change when encoding the video image; means to set as the value the latter pixel the processed value of the latter pixel using the weighted change. 22. Apparat enligt patentkrav 21, k ä n n e t e c k n a d av att de in- : verterade förprocesseringsmedlen (214) bildar förändringen av pixelvärdet ge- 25 nom att subtrahera föregäende pixels värde frän den senare pixelns värde. . . 23. Apparat enligt nägot av de föregäende patentkraven 21-22, ;, ‘ k ä n n e t e c k n a d av att de inverterade förprocesseringsmedlen (214) bil- ;; ' dar den vägda förändringen genom att multiplicera pixelvärdets förändring med | " vägningstalet minskat med ett.Apparatus according to claim 21, characterized in that the inverted preprocessing means (214) form the change of the pixel value by subtracting the previous pixel value from the value of the latter pixel. . . Apparatus according to any of the preceding claims 21-22, characterized in that the inverted preprocessing means (214) are automated; 'makes the weighted change by multiplying the change in pixel value by | "weighting number decreased by one. 24. Apparat enligt nägot av de föregäende patentkraven 21-23, kännetecknadavattde inverterade förprocesseringsmedlen (214) bildar genom användning av den vägda förändringen den senare pixelns bearbetade värde genom att addera den vägda förändringen tili den senare pixelns värde.Apparatus according to any of the preceding claims 21-23, characterized in that the inverted preprocessing means (214), by using the weighted change, form the processed value of the latter pixel by adding the weighted change to the value of the latter pixel. 25. Apparat enligt nägot av de föregäende patentkraven 21-24, : k ä n n e t e c k n a d av att de inverterade förprocesseringsmedlen (214) utför 27 109394 den inverterade förprocesseringen med följande formel eller med en därmed matematiskt ekvivalent formel: Xi=yi+(yryi-i)(k-i) där Xj är en icke-förprocesserad senare pixel, 5 y, är en förprocesserad senare pixel, Ym är en föregäende pixel, k är ett vägningstal.Apparatus according to any one of the preceding claims 21-24, characterized in that the inverted preprocessing means (214) perform the inverted preprocessing of the following formula or with a mathematically equivalent formula: Xi = yi + (yryi-i) (ki) where Xj is a non-preprocessed later pixel, y is a preprocessed later pixel, Ym is a preceding pixel, k is a weighting number. 26. Apparat enligt nägot av de föregäende patentkraven 16-25, kännetecknat avatt vägningstalet är ett tai större än ett.Apparatus according to any of the preceding claims 16-25, characterized in that the weighting number is one tai greater than one. 27. Apparat enligt patentkrav 26, kännetecknad avatt väg ningstalet är tvä.27. Apparatus according to claim 26, characterized by the weighted number being two. 28. Apparat enligt nägot av de föregäende patentkraven 16-27, kännetecknad avatt förprocesseringsmedlen (200) eller de inverterade förprocesseringsmedlen (214) behandlar stillbilden radvis, spaltvis, makro- 15 blockvis, blockvis eller pä nägot annat pä förhand bestämt icke-slumpmässigt sätt.28. Apparatus according to any of the preceding claims 16-27, characterized in that the preprocessing means (200) or the inverted preprocessing means (214) process the still image in a row, column, macro block, block or in some other predetermined non-random way. 29. Apparat enligt nägot av de föregäende patentkraven 16-28, kännetecknad avatt förprocesseringsmedlen (200) eller de inverterade förprocesseringsmedlen (214) behandlar stillbildens luminansdata.Apparatus according to any of the preceding claims 16-28, characterized in that the preprocessing means (200) or the inverted preprocessing means (214) process the luminance data of the still image. 30. Apparat enligt nägot av de föregäende patentkraven 16-29, kännetecknad avatt förprocesseringsmedlen (200) eller de inverterade förprocesseringsmedlen (214) behandlar stillbildens krominansdata. I · * * ♦ t » *Apparatus according to any of the preceding claims 16-29, characterized in that the preprocessing means (200) or the inverted preprocessing means (214) process the chrominance data of the still image. I · * * ♦ t »*
FI20002316A 2000-10-20 2000-10-20 Method and apparatus for encoding and decoding a video image FI109394B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FI20002316A FI109394B (en) 2000-10-20 2000-10-20 Method and apparatus for encoding and decoding a video image
AU2002212375A AU2002212375A1 (en) 2000-10-20 2001-10-19 Encoding and decoding of video image
PCT/FI2001/000913 WO2002033979A1 (en) 2000-10-20 2001-10-19 Encoding and decoding of video image

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20002316A FI109394B (en) 2000-10-20 2000-10-20 Method and apparatus for encoding and decoding a video image
FI20002316 2000-10-20

Publications (3)

Publication Number Publication Date
FI20002316A0 FI20002316A0 (en) 2000-10-20
FI20002316A FI20002316A (en) 2002-04-21
FI109394B true FI109394B (en) 2002-07-15

Family

ID=8559336

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20002316A FI109394B (en) 2000-10-20 2000-10-20 Method and apparatus for encoding and decoding a video image

Country Status (3)

Country Link
AU (1) AU2002212375A1 (en)
FI (1) FI109394B (en)
WO (1) WO2002033979A1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007138151A1 (en) 2006-05-30 2007-12-06 Hantro Products Oy Apparatus, arrangement, method and computer program product for digital video processing
FI20095273A0 (en) 2009-03-17 2009-03-17 On2 Technologies Finland Oy Digital video coding
EP2302845B1 (en) 2009-09-23 2012-06-20 Google, Inc. Method and device for determining a jitter buffer level
EP2405661B1 (en) 2010-07-06 2017-03-22 Google, Inc. Loss-robust video transmission using two decoders
US20120172281A1 (en) 2010-07-15 2012-07-05 Jeffrey John Scheibel Detergent compositions comprising microbially produced fatty alcohols and derivatives thereof
US8630412B2 (en) 2010-08-25 2014-01-14 Motorola Mobility Llc Transport of partially encrypted media
US8477050B1 (en) 2010-09-16 2013-07-02 Google Inc. Apparatus and method for encoding using signal fragments for redundant transmission of data
US8751565B1 (en) 2011-02-08 2014-06-10 Google Inc. Components for web-based configurable pipeline media processing
US8767821B2 (en) 2011-05-09 2014-07-01 Google Inc. System and method for providing adaptive media optimization
US9014265B1 (en) 2011-12-29 2015-04-21 Google Inc. Video coding using edge detection and block partitioning for intra prediction
US9210424B1 (en) 2013-02-28 2015-12-08 Google Inc. Adaptive prediction block size in video coding
US9313493B1 (en) 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5283646A (en) * 1992-04-09 1994-02-01 Picturetel Corporation Quantizer control method and apparatus
US5438374A (en) * 1993-12-10 1995-08-01 At&T Corp. System and method for filtering video signals

Also Published As

Publication number Publication date
FI20002316A (en) 2002-04-21
WO2002033979A1 (en) 2002-04-25
FI20002316A0 (en) 2000-10-20
AU2002212375A1 (en) 2002-04-29

Similar Documents

Publication Publication Date Title
US8254707B2 (en) Encoding device, encoding method, encoding program, decoding device, decoding method, and decoding program in interlace scanning
US8665943B2 (en) Encoding device, encoding method, encoding program, decoding device, decoding method, and decoding program
US6275527B1 (en) Pre-quantization in motion compensated video coding
US6301304B1 (en) Architecture and method for inverse quantization of discrete cosine transform coefficients in MPEG decoders
KR100964515B1 (en) Non-integer pixel sharing for video encoding
US8526488B2 (en) Video sequence encoding system and algorithms
EP0585051B1 (en) Image processing method and apparatus
JP2008527789A (en) Entropy encoding method
US20100086048A1 (en) System and Method for Video Image Processing
FI109394B (en) Method and apparatus for encoding and decoding a video image
EP1032211A2 (en) Moving picture transcoding system
JP2004241957A (en) Image processor and encoding device, and methods therefor
WO2006062333A1 (en) Method of coding and decoding moving picture
FI109395B (en) Stabilizing video images by filming a scene larger than the image and compensating camera motion by shifting the image within the film scene in a direction opposite to a predicted camera motion
FI109634B (en) Method and apparatus for encoding a video image
FI109635B (en) Method and device for post-processing video image
KR20170125154A (en) Method and apparatus of video decoder using curve intra prediction
US7613351B2 (en) Video decoder with deblocker within decoding loop
KR20160109617A (en) Decoding apparatus of digital video
US8326060B2 (en) Video decoding method and video decoder based on motion-vector data and transform coefficients data
CN111886868B (en) Method and apparatus for adaptive temporal filtering for substitute reference frame rendering
JPH07336684A (en) Picture signal decoding device
JP3542911B2 (en) Video compression device
US20080049836A1 (en) Method and System for a Fast Video Transcoder
KR20120129629A (en) Method of motion estimation and compensation using in-loop preprocessing filtering

Legal Events

Date Code Title Description
PC Transfer of assignment of patent

Owner name: GOOGLE INC.

Free format text: GOOGLE INC.

MM Patent lapsed