NO175558B - Video tags - Google Patents

Video tags

Info

Publication number
NO175558B
NO175558B NO892039A NO892039A NO175558B NO 175558 B NO175558 B NO 175558B NO 892039 A NO892039 A NO 892039A NO 892039 A NO892039 A NO 892039A NO 175558 B NO175558 B NO 175558B
Authority
NO
Norway
Prior art keywords
data
buffer
sum
administrative
image
Prior art date
Application number
NO892039A
Other languages
Norwegian (no)
Other versions
NO175558C (en
NO892039D0 (en
NO892039L (en
Inventor
David Geoffrey Morrison
Andrew Peter Heron
David Owen Beaumont
Original Assignee
British Telecomm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB878722394A external-priority patent/GB8722394D0/en
Application filed by British Telecomm filed Critical British Telecomm
Publication of NO892039D0 publication Critical patent/NO892039D0/en
Publication of NO892039L publication Critical patent/NO892039L/en
Publication of NO175558B publication Critical patent/NO175558B/en
Publication of NO175558C publication Critical patent/NO175558C/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Description

Foreliggende oppfinnelse vedrører en video-koder, og særlig en koder som benytter betinget oppfriskning hvorved data som representerer endringer i et bilde mellom delbilder, blir sendt for å oppdatere et lagret bilde ved en dekoder. The present invention relates to a video encoder, and in particular an encoder that uses conditional refresh whereby data representing changes in an image between partial images is sent to update a stored image at a decoder.

Transformasjonskoding kan også benyttes hvor hvert delbilde av et bilde som skal kodes, typisk omfatter en sammenstilling av bilde-elementer som er inndelt i blokker på NxM bilde-elementer. Hver blokk med bilde-elementer blir transformasjonskodet, for eksempel ved å anvende en diskret cosinus-transformasjon (DCT). Generelt vil en blokk med NxM bilde-elementer bli transformert til en sammenstilling av NxM koeffisienter. Den resulterende sammenstilling av koeffisienter blir så kvantisert ved å dele hver koeffisient med en variabel kvantiseringsfaktor. De kvantiserte koeffisientene kan kodes i en variabel lengde-kode, for eksempel Huffman-kode. Flere koder som benytter variabel lengde, kan være tilgjengelig, og i så fall blir det tatt en beslutning om hvilken som velges brukt for en spesiell koeffisient, avhengig av koeffisientenes statistikker. Transformation coding can also be used, where each part of an image to be coded typically comprises a compilation of image elements which are divided into blocks of NxM image elements. Each block of picture elements is transform coded, for example by applying a discrete cosine transform (DCT). In general, a block of NxM image elements will be transformed into an assembly of NxM coefficients. The resulting array of coefficients is then quantized by dividing each coefficient by a variable quantization factor. The quantized coefficients can be coded in a variable length code, for example Huffman code. Several codes using variable length may be available, in which case a decision is made as to which one to use for a particular coefficient, depending on the statistics of the coefficients.

Ved slike kodingsmåter blir data generert med en ujevn hastighet ved senderen, og et utgangs-bufferlager blir vanligvis benyttet for å sikre at overføring finner sted ved en jevn datahastighet. In such encoding methods, data is generated at an uneven rate at the transmitter, and an output buffer is usually used to ensure that transmission takes place at an even data rate.

Fyllingsgraden av utgangsbufferen kan brukes til å bestemme kvantiseringsfaktoren, slik at når bufferen fyller seg, blir kvantiseringsfaktoren øket. Når bufferlagert tømmes, kan kvantiseringsfaktoren derimot minskes. The degree of filling of the output buffer can be used to determine the quantization factor, so that when the buffer fills up, the quantization factor is increased. However, when the buffer is emptied, the quantization factor can be reduced.

Det er også vanlig praksis ikke å sende koeffisienter som representerer hver blokk av hvert delbilde av bildet, men å sende dem bare for de blokker hvor endringer har inntruffet, med hensyn til den tilsvarende foregående blokk, som overskrider en terskel. Terskelen kan også bestemmes som en funksjon av utgangs-bufferlagerets fyllingsgrad. It is also common practice not to send coefficients representing each block of each subframe of the image, but to send them only for those blocks where changes have occurred, with respect to the corresponding preceding block, that exceed a threshold. The threshold can also be determined as a function of the output buffer storage level.

Det oppstår problemer når administrativ informasjon skal innbefattes i datastrømmen før den variable lengdekoding og overføringen. Problems arise when administrative information is to be included in the data stream before the variable length coding and the transmission.

Europeisk patentsøknad nr. 180,345, publisert 7. mai 1986, viser en fremgangsmåte og et apparat for bilde-koding, hvor et linje-synkroniseringssignal, et kodings-modussignal og et lengdekodesignal multiplekses for å tilveiebringe et multi-plekssignal som leveres til et bufferlager hvor det utsettes for hastighetstilpasning og deretter utmates til en over-føringsbane. European Patent Application No. 180,345, published May 7, 1986, discloses a method and apparatus for image encoding, wherein a line sync signal, an encoding mode signal and a length code signal are multiplexed to provide a multiplexed signal which is supplied to a buffer storage where it is subjected to speed adjustment and then output to a transfer path.

En artikkel med tittel "An Architecture for Hybrid Coding of NTSC TV Signals" av Jalali og Rao, IEEE International Conference on Communications, Denver, Colorado, 14.-18. juni 1991, bind 2 av 4, side 22.4.1-22.4.5, IEEE New York US, viser en DPCM koder hvor innholdet i blokk-kodebufferet og koeffisient-kodebufferet avleses for å tilveiebringe data for overføring. Dersom størrelsen av noen av de kodede prediksjonsfeil i koeffisient-kodebufferet er større enn en terskel /3, betraktes koder-blokken som aktiv, og et "1" lagres i et blokk-kodebuffer sammen med stedskodene. Blokk-koden sendes før sending av prediksjonsfeilene. På den annen side lagres et "0" i blokk-kodebufferet dersom størrelsen av alle de kodede koeffisientene i koeffisient-kodebufferet er mindre enn /3. I dette tilfellet sendes blokk-koden, og alle koeffisient-ordene som tilhører den blokken, ses bort fra. Ettersom koding og overføring ikke kan utføres samtidig, er det tilveiebrakt to identiske sett med blokk-kodebuffere og koeffisient-kodebuffere. Disse bufferene arbeider på en måte som ligner på "ping-pong". A paper entitled "An Architecture for Hybrid Coding of NTSC TV Signals" by Jalali and Rao, IEEE International Conference on Communications, Denver, Colorado, 14-18 June 1991, Volume 2 of 4, Pages 22.4.1-22.4.5, IEEE New York US, shows a DPCM encoder where the contents of the block code buffer and the coefficient code buffer are read to provide data for transmission. If the size of any of the coded prediction errors in the coefficient code buffer is greater than a threshold /3, the code block is considered active, and a "1" is stored in a block code buffer together with the location codes. The block code is sent before sending the prediction errors. On the other hand, a "0" is stored in the block code buffer if the size of all the coded coefficients in the coefficient code buffer is less than /3. In this case, the block code is sent, and all the coefficient words belonging to that block are ignored. Since encoding and transmission cannot be performed simultaneously, two identical sets of block code buffers and coefficient code buffers are provided. These buffers work in a manner similar to "ping-pong".

US patent nr. 4,394,774 beskriver et apparat for koding av et videosignal, hvor et buffer som følger en variabel lengdekoder, tilveiebringer tilbakekoblings-styring for den foregående variable lengdekoderen. Det faktiske innholdet av bufferet står således i direkte forhold til antallet overførte biter som dette innholdet representerer. US Patent No. 4,394,774 describes an apparatus for encoding a video signal, where a buffer following a variable length encoder provides feedback control for the preceding variable length encoder. The actual content of the buffer is thus directly proportional to the number of transmitted bits that this content represents.

En artikkel med tittel "Commercialised Interframe Codec for NTSC Colour Video Signals" av Mizui og Inamura, Japan Telecommunications Review, bind 21, nr. 2, april 1979, side 109-117, viser en videokoder hvor et bufferlager er anbrakt mellom en generator for video-datasignaler og en koder for ord med variabel lengde. An article entitled "Commercialised Interframe Codec for NTSC Color Video Signals" by Mizui and Inamura, Japan Telecommunications Review, Vol. 21, No. 2, April 1979, pages 109-117, shows a video codec in which a buffer layer is placed between a generator for video data signals and an encoder for variable length words.

I samsvar med foreliggende oppfinnelse er det tilveiebrakt en videokoder som omfatter: en genereringsanordning for å generere fra et inngangs-videosignal data med en variabel hastighet; In accordance with the present invention, there is provided a video encoder comprising: a generating device for generating from an input video signal data at a variable rate;

en variabel lengde-kodingsanordning for koding av dataene ved bruk av en variabel lengdekode, som en rekke kodede ord; og a variable length encoding means for encoding the data using a variable length code, such as a series of code words; and

et bufferlager mellom genereringsanordningen og den variable lengde-kodingsanordningen. Videokoderen kjennetegnes ved at den innbefatter en beregningsanordning for å beregne summen av lengdene av de kodede ord som vil bli frembrakt av den variable lengde-kodingsanordningen fra det momentane innhold av bufferlageret. a buffer between the generating means and the variable length coding means. The video encoder is characterized in that it includes a calculation device for calculating the sum of the lengths of the coded words which will be produced by the variable length coding device from the instantaneous contents of the buffer storage.

Oppfinnelsen vil nå bli beskrevet ved hjelp av et eksempel under henvisning til de vedføyde tegninger hvor: Fig. 1 er et blokkskjema over de første trinn i en video- koder; Fig. 2 viser et funksjonsblokk-skjerna over en koder som innbefatter en foretrukket utførelsesform av oppfinnelsen; og The invention will now be described by means of an example with reference to the attached drawings where: Fig. 1 is a block diagram of the first steps in a video codes; Fig. 2 shows a function block kernel above an encoder which includes a preferred embodiment of the invention; and

Fig. 3 er et blokkskjema over en egnet dekoder. Fig. 3 is a block diagram of a suitable decoder.

Figur 1 illustrerer frontenden til en videokoder. Digitale inngangssignaler blir levert via en inngang 1 og blir differensialkodet ved subtraksjon i en subtraherer 2 av en forutsagt bildeelement-verdi fra den aktuelle, mottatte bildeelement-verdi. Differanse-verdiene blir så kodet ved hjelp av en transformasjonskoder 3 hvor NxM (for eksempel 8 x 8) blokker med elementer blir underkastet en transformasjon, for eksempel den diskrete cosinus-transformasjon (DCT), for å frembringe et likt antall NxM med koeffisienter. Koeffisientene blir kvantisert i en kvantisator 4 og ført til en utgang 5. For fremtidig referanse skal det bemerkes at kvantisatoren 4 kan være innrettet for å avgi koeffisienter bare opp til den siste koeffisient i en blokk som er forskjellig fra null. Hvis prediksjons-feilen eller forut-sigelses-feilen er null eller liten for en spesiell blokk, kan det i virkeligheten være at ingen koeffisienter vil bli avgitt for den blokken. Den kan dessuten variere utgangssekvensen for å redusere det antall koeffisienter som kodes, for eksempel på den måte som er beskrevet i internasjonal patentsøknad nr. PCT/GB88/00519 og europeisk patentsøknad nr. 88306060.0. Figure 1 illustrates the front end of a video encoder. Digital input signals are delivered via an input 1 and are differentially coded by subtraction in a subtracter 2 of a predicted picture element value from the relevant, received picture element value. The difference values are then encoded using a transformation encoder 3 where NxM (for example 8 x 8) blocks of elements are subjected to a transformation, for example the discrete cosine transform (DCT), to produce an equal number of NxM coefficients. The coefficients are quantized in a quantizer 4 and fed to an output 5. For future reference it should be noted that the quantizer 4 may be arranged to output coefficients only up to the last coefficient in a block that is different from zero. If the prediction error or prediction error is zero or small for a particular block, it may actually be that no coefficients will be output for that block. It may also vary the output sequence to reduce the number of coefficients to be encoded, for example in the manner described in International Patent Application No. PCT/GB88/00519 and European Patent Application No. 88306060.0.

Den prediktive koding skjer hovedsakelig fra delbilde til delbilde, og prediktoren omfatter hovedsakelig et delbildelager 6. For å unngå feil ved mottageren, blir imidlertid transformasjonskodingen og kvantiseringen innbefattet (på konvensjonell måte) i den prediktorsløyfen som dermed innbefatter en invers kvantisator 7, og en invers transformasjonskoder 8; også et filter 9 - idet komponentene innenfor de strekede linjene på figur 1 danner en lokal dekoder. The predictive coding takes place mainly from sub-picture to sub-picture, and the predictor mainly comprises a sub-picture store 6. In order to avoid errors at the receiver, however, the transformation coding and the quantization are included (in a conventional way) in the predictor loop which thus includes an inverse quantizer 7, and an inverse transformation codes 8; also a filter 9 - in that the components within the dashed lines in figure 1 form a local decoder.

Med hensyn til den inverse kvantisator 7 er det selvsagt ikke mulig å gjenvinne informasjon som er tapt ved kvantisering. Den inverse kvantisator skal reversere enhver ikke-linearitet og alle andre reversible kodingsfunksjoner utført av kvantisatoren. Det arrangement som er vist på figur 1, er adaptivt, d.v.s. at kodingsmåten blir variert i avhengighet av bildeinnholdet. Dette er illustrert som utført av en styreenhet 10 som også antas å bestemme hvilke blokker som har en tilstrekkelig lav differanse fra det tidligere delbilde, til at de ikke behøver å bli kodet av kvantisatoren i det hele tatt. Mulige variasjoner er: - omkobling mellom differensiell og absolutt koding (styrelinje 11), With regard to the inverse quantizer 7, it is of course not possible to recover information that is lost by quantization. The inverse quantizer shall reverse any non-linearity and any other reversible coding functions performed by the quantizer. The arrangement shown in Figure 1 is adaptive, i.e. that the coding method is varied depending on the image content. This is illustrated as being carried out by a control unit 10 which is also assumed to determine which blocks have a sufficiently low difference from the previous partial image, so that they do not need to be coded by the quantizer at all. Possible variations are: - switching between differential and absolute coding (control line 11),

- variasjon av filterparameterne (styrelinje 12) - variation of the filter parameters (control line 12)

- variasjon av kvantisatorkarakteristikkene, også variasjon av andre kodingsfunksjoner som kan være innbefattet i kvantisatoren, slik som variering av den sekvens koeffisientene overføres med (styrelinje 13) - koderen kan også omfatte bevegelseskompensasjon generelt antydet ved hjelp av en bevegelseskompensasjons-enhet 14, og denne kan igjen være adaptiv. - variation of the quantizer characteristics, also variation of other coding functions that may be included in the quantizer, such as variation of the sequence with which the coefficients are transferred (control line 13) - the encoder may also include motion compensation generally indicated by means of a motion compensation unit 14, and this may again be adaptive.

For enkelthets skyld er inngangene til styreenheten 10 ikke vist. En senere del av koderen omfatter et bufferlager for å sikre en konstant overført datahastighet til tross for den ujevne hastighet dataene genereres ved, og buffertilstanden blir kommunisert til styreenheten (linje 15) slik at middelhastigheten for genereringen kan reguleres for å forhindre overflyt eller tømming av bufferlageret. I tillegg kan styreenheten 10 ha innganger forbundet med ett eller flere av de punkter som er merket * i henhold til den funksjon som den skal utføre. Alle disse funksjonene er i og for seg kjente og vil derfor ikke bli diskutert i detalj. Det er selvsagt nødvendig at informasjon som indikerer den kodingstype som er blitt brukt, leveres til den mottager dataene sendes, og frontende-seksjonen på figur 1 har utganger 16 for slik administrativ informasjon. For the sake of simplicity, the inputs to the control unit 10 are not shown. A later part of the encoder includes a buffer to ensure a constant transmitted data rate despite the uneven rate at which the data is generated, and the buffer state is communicated to the control unit (line 15) so that the average rate of generation can be regulated to prevent buffer overflow or emptying . In addition, the control unit 10 can have inputs connected to one or more of the points marked * according to the function it is to perform. All these functions are known in and of themselves and will therefore not be discussed in detail. It is, of course, necessary that information indicating the coding type that has been used be delivered to the recipient the data is sent to, and the front-end section in Figure 1 has outputs 16 for such administrative information.

Den administrative informasjon (eller blokk-innledningen) som skal overføres for en blokk, antas å omfatte: The administrative information (or block preamble) to be transmitted for a block is assumed to include:

Blokkposisjon - beregnet senere Block position - calculated later

Modus (intra/inter-delbilde) - fra styrelinje 11 Filterdata - fra styrelinje 12 Kvantiseringstype - fra kvantisator 4 Kode som indikerer om Mode (intra/inter-part image) - from control line 11 Filter data - from control line 12 Quantization type - from quantizer 4 Code indicating whether

bevegelseskompensasjon brukes motion compensation is used

Blokkbevegelses-vektor - fra bevegelseskompen-sas jonsenhet 14 Koeffisientsekvens - fra kvantisator 4. Block motion vector - from motion compensation ion unit 14 Coefficient sequence - from quantizer 4.

Det avgis også et signal CL som indikerer om ingen koeffisienter blir avgitt for vedkommende blokk. A signal CL is also emitted which indicates whether no coefficients are emitted for the relevant block.

I det arrangement som er vist på figur 1, blir video-signaler behandlet i sann tid. In the arrangement shown in Figure 1, video signals are processed in real time.

En blokk med NxM bilde-elementer gir opphav til en blokk med NxM koeffisienter. Den momentane hastighet som koeffisientene genereres med, er dermed video-bildeelement-hastigheten (for eksempel 5,37 MHz) selv om den midlere genereringshastighet (som er variabel) vil være lavere på grunn av ikke-overføring av (a) data for uendrede blokker, og (b) slutt-koeffisienter som har verdien null. A block of NxM image elements gives rise to a block of NxM coefficients. The instantaneous rate at which the coefficients are generated is thus the video pixel rate (eg 5.37 MHz) although the average generation rate (which is variable) will be lower due to non-transmission of (a) data for unchanged blocks , and (b) final coefficients that have the value zero.

Det antas at den administrative informasjonen blir generert i blokker som svarer til bildeblokkene. Muligheten for også å generere administrative blokker for et fullstendig bilde eller grupper av blokker innenfor et bilde, vil bli diskutert senere. Det antas at variabel lengdekoding skal brukes for overføring av koeffisientene. Koderen må It is assumed that the administrative information is generated in blocks corresponding to the image blocks. The possibility of also generating administrative blocks for a complete image or groups of blocks within an image will be discussed later. It is assumed that variable length coding will be used for the transmission of the coefficients. The coder must

(i) utføre den variable lengdekoding (i) perform the variable length encoding

(ii) sette sammen koeffisient-informasjonen og den administrative informasjon i en ønsket sekvens eller rekkefølge (iii) bufferlagre dataene hvis genereringshastighet vil variere på grunn av de ovenfor diskuterte faktorer, samt den variable lengdekoding, for tilpasning til en ønsket konstant utgangs-datahastighet. (ii) assemble the coefficient information and the administrative information in a desired sequence or order (iii) buffer the data whose generation rate will vary due to the factors discussed above, as well as the variable length encoding, for adaptation to a desired constant output data rate.

Prinsipielt ville det være mulig å bufferlagre koeffisientene og de administrative data separat og lese dem ut ved utgangstakt-hastigheten. For enhver blokk kan imidlertid de administrative data være til stede uten koeffisienter, eller begge kan være fraværende, eller (når bildet eller gruppen med administrative data er til stede) koeffisienter kan være til stede uten blokk-innledninger. Dette sammen med den variable lengdekoding gjør styring av buffer-fyllingsgraden til en kompleks operasjon. In principle, it would be possible to buffer the coefficients and the administrative data separately and read them out at the output clock rate. For any block, however, the administrative data may be present without coefficients, or both may be absent, or (when the image or group of administrative data is present) coefficients may be present without block introductions. This together with the variable length coding makes managing the buffer filling rate a complex operation.

Det neste trinn i koderen, som vist på figur 2, tjener derfor til å sette sammen koeffisientdataene og de administrative data eller innledningene. Koeffisientdataene og de adminsitrative data blir skrevet inn i respektive lagre 21, 22 av typen først inn, først ut (FIFO) ved videohastighet. De blir selektivt lest ut ved en momentan hastighet som er høyere med tilstrekkelig margin til at lagrene aldri overfylles. Dette kan hensiktsmessig gjøres ved et multiplum av taktfrekvensen for koder-utgangen, som typisk kan være fra 384 kbit/s til 1,544 eller 2,048 Mbit/s, i de to sistnevnte tilfellene kan det benyttes en lesehastighet på 6,144 eller 6,176 MHz. De linjer som forbinder elementene på figur 2 er markert med tall som indikerer antallet parallelle dataforbindelser i vedkommende forbindelse. I noen tilfeller hvor det bare er en forbindelse, er det overførte signal blitt indikert. The next step in the coder, as shown in figure 2, therefore serves to assemble the coefficient data and the administrative data or introductions. The coefficient data and the administrative data are written into respective first-in, first-out (FIFO) stores 21, 22 at video rate. They are selectively read out at an instantaneous speed that is higher by a sufficient margin so that the stores are never overfilled. This can conveniently be done by a multiple of the clock frequency for the encoder output, which can typically be from 384 kbit/s to 1.544 or 2.048 Mbit/s, in the two latter cases a reading speed of 6.144 or 6.176 MHz can be used. The lines connecting the elements in Figure 2 are marked with numbers indicating the number of parallel data connections in the relevant connection. In some cases where there is only one connection, the transmitted signal has been indicated.

Koeffisientdata blir mottatt fra utgangen 5 på figur 1 (med et "siste koeffisient"-flagg tilføyd den siste koeffisient i en blokk). Før dataene innføres i lageret blir en VLC-velger- eller ordidentitets-kode tilføyd hver koeffisient ved hjelp av en VLC-innføringsenhet 23, i henhold til den informasjon som tilveiebringes av Coefficient data is received from output 5 of Figure 1 (with a "last coefficient" flag added to the last coefficient in a block). Before the data is entered into the storage, a VLC selector or word identity code is added to each coefficient by means of a VLC entry unit 23, according to the information provided by

"kvantiseringsklasse"-utgangen fra figur 1. Denne identifiserer for senere bruk hvilket av et antall sett av variable lengdekoder som skal brukes for kvantisering av koef-fisienten. Koeffisientdataene og ordidentitets-kodene blir skrevet inn i FIFO-lageret 21 ved hjelp av en skrivestyre-enhet 24. the "quantization class" output from Figure 1. This identifies for later use which of a number of sets of variable length codes should be used for quantization of the coefficient. The coefficient data and word identity codes are written into the FIFO storage 21 by means of a write control unit 24.

I mellomtiden blir de administrative data samlet til en sekvens ved hjelp av en prekoder 25 sammen med en blokk-posi-sjonskode fra en posisjonskalkulator 2 6 (synkronisert med operasjonen til frontenden på figur 1) og ordidentitets-koder for å bestemme det VLC-kodesett som skal brukes. Den sender dette frem til en skrivestyre-enhet 27 sammen med signalet CL. Meanwhile, the administrative data is assembled into a sequence by means of a precoder 25 together with a block position code from a position calculator 26 (synchronized with the operation of the front end in Figure 1) and word identity codes to determine the VLC code set. to be used. It forwards this to a writing control unit 27 together with the signal CL.

Selv om det ikke prinsipielt er viktig, kan koderen sørge for kodingen av administrativ informasjon med hensyn til et fullstendig delbilde av bildet, eller av en gruppe med blokker. Disse kan typisk omfatte noe av eller alt det følgende, nemlig: en bildeinnledning som inntreffer ved begynnelsen av bildet; Although not essential in principle, the encoder may provide for the encoding of administrative information with respect to a complete sub-image of the image, or of a group of blocks. These may typically include some or all of the following, namely: a picture introduction that occurs at the beginning of the picture;

en gruppeinnledning som kommer foran en gruppe med blokker; og a group header that precedes a group of blocks; and

en blokkinnledning som tidligere diskutert. a block introduction as previously discussed.

Grunnen til dette arrangementet er at det kan være mulig å redusere den totale datamengde som skal overføres, for eksempel en enkelt bevegelsesektor eller The reason for this arrangement is that it may be possible to reduce the total amount of data to be transferred, for example a single movement sector or

kvantiseringsstrategien kan være tilstrekkelig for hele bildet, eller en gruppe med blokker. Når en hel gruppe med blokker ikke behøver overføring av bildeinformasjon, vil en enkelt innledning være tilstrekkelig. Ikke kodingsrelatert informasjon vedrørende bildet kan også innføres. the quantization strategy may be sufficient for the entire image, or a group of blocks. When a whole group of blocks does not need the transmission of image information, a single introduction will be sufficient. Non-encoding-related information regarding the image can also be entered.

Innledningene kan typisk omfatte noe av eller alt det følgende: The introductions can typically include some or all of the following:

Bildeinnledning- Image Intro-

Startkode Start code

Buffertilstand Buffer state

Bildenummer (et modulo n tall (f.eks. n = 64) Image number (a modulo n number (e.g. n = 64)

inkrementert med 1 for hvert suksessivt bilde) Bildetype (delt skjerm, dokument o.s.v.) incremented by 1 for each successive image) Image type (split screen, document, etc.)

Grupp einnledning Group introduction

Gruppeposisj on Group position on

Modus (intra/inter-delbilde) Mode (intra/inter-frame)

Filterdata Filter data

Kvantiseringstype Quantization type

Kode som indikerer om informasjon for blokken skal følge Code indicating whether information for the block should follow

Gruppebevegelses-vektor Group motion vector

Disse antas å bli samlet eller sammensatt i en innlednings-generator 28 og levert til skrivestyre-enheten 27. These are assumed to be collected or assembled in a lead-in generator 28 and delivered to the writing control unit 27.

Ved begynnelsen av hver gruppe med blokker mottar styreenheten 27 en "gruppe med blokker"-innledningssekvens. Ved begynnelsen av hvert bilde mottar enheten 27 en bilde-inn-ledningssekvens. Dette skjer mens FIFO-lageret 21 fylles opp med den første blokken med koeffisientdata og koderen 25 beregner de administrative data for den første blokken. Enheten 27 lagrer de administrative data for bilde og gruppe i FIFO-lageret 22 sammen med deres ordidentitets-koder At the beginning of each group of blocks, the controller 27 receives a "group of blocks" preamble sequence. At the beginning of each frame, the unit 27 receives a frame-in lead sequence. This occurs while the FIFO storage 21 is filled up with the first block of coefficient data and the encoder 25 calculates the administrative data for the first block. The unit 27 stores the administrative data for image and group in the FIFO storage 22 together with their word identity codes

(ordidentitets-koden indikerer til VLC-koderen hvilke spesielle administrative data ordet representerer). (the word identity code indicates to the VLC encoder which special administrative data the word represents).

Ved begynnelsen av den neste blokken, d.v.s. den andre blokken i vedkommende gruppe, mottar styreenheten 27 dataene fra prekoderen 25 og bestemmer så i henhold til instruksjoner i dataene som er mottatt av prekoderen 25 og "gruppe med blokker"-og "bilde"-innledningssekvensene, hvilke av de administrative data som skal overføres og skriver dem inn i FIFO-lageret 22 sammen med deres tilhørende ordidentitetskoder. (For eksempel kan bevegelsesvektor-formasjon utelates når bevegelseskompensasjonskoden indikerer at ingen bevegelsesvektor er nødvendig, eller når informasjonen inneholdes i "gruppe med blokker"-innledningen. Hvis signalet CL indikerer at koeffisientdataene er blitt generert for blokken, skriver enheten 27 deretter et entydig omkoblingsord til FIFO-lageret 22 og indikerer at koeffisientdata skal innføres ved det punkt i datastrømmen, og skriver så en blokkslutt-kode. At the beginning of the next block, i.e. the second block in the relevant group, the control unit 27 receives the data from the precoder 25 and then determines according to instructions in the data received by the precoder 25 and the "group of blocks" and "image" preamble sequences, which of the administrative data shall are transferred and write them into FIFO storage 22 along with their associated word identity codes. (For example, motion vector formation may be omitted when the motion compensation code indicates that no motion vector is required, or when the information is contained in the "group of blocks" preamble. If the signal CL indicates that the coefficient data has been generated for the block, unit 27 then writes a unique switch word to FIFO storage 22 and indicates that coefficient data is to be entered at that point in the data stream, and then writes an end-of-block code.

Det er fire mulige kombinasjoner av koeffisientdata fra FIFO-lageret 21 og administrative blokkdata fra FIFO-lageret 22: (i) ingen administrative data og ingen koeffisientdata, i så fall blir ingenting lagret i hverken FIFO-lager 21 eller FIFO-lager 22 for vedkommende blokk. (ii) administrative data pluss koeffisientdata, i hvilket tilfelle administrative data, et omkoblings-ord og en blokkslutt-kode blir lagret i FIFO-lager 22 og koeffisientdata blir lagret i FIFO-lager 21. (iii) administrative data og ingen koeffisientdata, i hvilket tilfelle administrative data blir lagret i FIFO-lager 22, men ikke noe omkoblings-ord, sluttblokk-kode eller koeffisientdata blir lagret. (iv) koeffisientdata og ingen administrative data; dette kan inntreffe når bilde- eller gruppe-innledningen inneholder tilstrekkelig informasjon til å kjennetegne vedkommende blokk. I dette tilfelle blir koeffisientdata lagret i FIFO-lageret 21, og bare et omkoblingsord og en blokkslutt-kode blir lagret There are four possible combinations of coefficient data from FIFO storage 21 and administrative block data from FIFO storage 22: (i) no administrative data and no coefficient data, in which case nothing is stored in either FIFO storage 21 or FIFO storage 22 for that block. (ii) administrative data plus coefficient data, in which case administrative data, a switch word and an end-of-block code are stored in FIFO storage 22 and coefficient data are stored in FIFO storage 21. (iii) administrative data and no coefficient data, i in which case administrative data is stored in FIFO storage 22, but no switch word, end block code or coefficient data is stored. (iv) coefficient data and no administrative data; this can occur when the image or group introduction contains sufficient information to characterize the relevant block. In this case, coefficient data is stored in the FIFO storage 21, and only a switching word and a block end code are stored

i FIFO-lageret 23. in the FIFO warehouse 23.

De administrative data blir skrevet inn i FIFO-lagrene 21, 22 ved å bruke taktsignaler <pw for videohastigheten, utlesning blir bevirket ved å bruke et taktsignal med høyere frekvens øR når en lesekommando mottas fra en styreenhet 29. The administrative data is written into the FIFO stores 21, 22 using clock signals <pw for the video rate, readout is effected using a higher frequency clock signal øR when a read command is received from a control unit 29.

Formålet med utlesnings-styreenheten 29 er å lese data fra de to FIFO-lagrene for å innskyte de to datatypene i en ønsket sekvens på følgende måte: En bildeinnledning blir fulgt av en blokkgruppe-innledning eller en annen bildeinnledning. The purpose of the readout control unit 29 is to read data from the two FIFO stores in order to insert the two data types in a desired sequence in the following way: An image preamble is followed by a block group preamble or another image preamble.

En blokkgruppe-innledning blir fulgt av administrative blokkdata eller en annen blokkgruppe-innledning. A block group preamble is followed by administrative block data or another block group preamble.

Administrative blokkdata blir fulgt av en koeffisientblokk (i hvilket tilfelle dataene inneholder ordet omkobling) eller av ytterligere administrative data (omkobling fraværende). Administrative block data is followed by a coefficient block (in which case the data contains the word switch) or by additional administrative data (switch absent).

En gruppe med koeffisienter blir fulgt av administrative blokkdata eller av en ytterligere koeffisientgruppe. A group of coefficients is followed by administrative block data or by a further group of coefficients.

For å oppnå dette inneholder styreenheten 29 en lesepeker som kan skiftes mellom en første tilstand hvor den leser data fra FIFO-lager 22 og en annen tilstand hvor den leser data fra FIFO-lager 21. Pekeren er som illustrasjon representert av en vippe 2 01 som når den er tilbakestilt (første tilstand) eller satt (annen tilstand) muliggjør passering av en lesekommando til det relevante lager via port 292 eller 293. To achieve this, the control unit 29 contains a read pointer that can be switched between a first state where it reads data from FIFO storage 22 and a second state where it reads data from FIFO storage 21. The pointer is represented by way of illustration by a rocker 2 01 which when reset (first state) or set (second state) enables the passage of a read command to the relevant storage via port 292 or 293.

Innledningsvis er enheten satt i den første tilstand, og administrative data blir utlest og fremført til et bufferlager 30 inntil forekomster av et omkoblings-ord, som indikerer at koeffisientdata er nødvendig for en blokk, blir erkjent av en omkoblingsord-detektor 294 som skifter enheten til den annen tilstand. Deretter blir koeffisientdata lest fra lageret 21 til bufferlageret 30. Dette fortsetter inntil alle koeffisientene er blitt lest ut og et "siste koeffisient"-flagg detekteres av en flaggdetektor 295 som tilbakestiller enheten til den første tilstand, hvorved ytterligere administrative data kan leses. Styreenheten 29 fortsetter så på denne måten å lese fra de to lagrene. Hvis noen av lagrene tømmes, blir dette signalisert til styreenheten som forsinker en eventuell lesekommando til vedkommende lager inntil signalet forsvinner. Initially, the device is set in the first state, and administrative data is read out and fed into a buffer store 30 until occurrences of a switch word, indicating that coefficient data is required for a block, are recognized by a switch word detector 294 which switches the device to the other condition. Then, coefficient data is read from storage 21 to buffer storage 30. This continues until all the coefficients have been read and a "last coefficient" flag is detected by a flag detector 295 which resets the unit to the initial state, whereby further administrative data can be read. The control unit 29 then continues in this way to read from the two stores. If any of the stores are emptied, this is signaled to the control unit, which delays a possible read command to the relevant store until the signal disappears.

Når således administrative data blir lagret i FIFO-lageret 22, men ingen koeffisientdata er til stede vedrørende den blokken, så blir ikke noe omkoblings-ord lagret av skrivestyreenheten 27 eller lest av styreenheten 29, og dermed leser sistnevnte kontinuerlig to eller flere påfølgende blokker av administrative data. Når en blokk med koeffisienter derimot er lagret i FIFO-lageret 21, men det ikke er noen tilhørende administrative data, så vil et omkoblings-ord og en blokkslutt-kode bli skrevet inn i FIFO-lageret med hensyn til hver slik koeffisientblokk. Dette betyr at styreenheten 21 vil reagere på hvert omkoblings-ord og lese en koeffisientblokk fra FIFO-lageret 21. Ved slutten av hver blokk, når "siste koeffisient"-flagget blir mottatt, vil styreenheten 29 vende tilbake for å lese FIFO-lageret 22 inntil det neste omkoblings-ord forekommer. Thus, when administrative data is stored in the FIFO storage 22, but no coefficient data is present regarding that block, then no switching word is stored by the write control unit 27 or read by the control unit 29, and thus the latter continuously reads two or more consecutive blocks of administrative data. When, on the other hand, a block of coefficients is stored in the FIFO storage 21, but there is no associated administrative data, then a switching word and a block end code will be written into the FIFO storage with respect to each such coefficient block. This means that the controller 21 will respond to each switch word and read a block of coefficients from the FIFO store 21. At the end of each block, when the "last coefficient" flag is received, the controller 29 will return to read the FIFO store 22 until the next switching word occurs.

De administrative data og koeffisientdatene er nå blitt samlet i den nødvendige sekvens eller rekkefølge, selv om de kan inneholde gap som inntreffer når FIFO-lagrene 21, 22 blir tomme. På konvensjonell måte kan deretter omforming til variabel lengdekode (VLC-kode) utføres fulgt av innføring i bufferlageret 30 for bufferlagring til en kontinuerlig datastrøm for utmatning, men bufferlagring av ord med variabel lengde krever komplekse skift- og styre-arrangementer for lagring og gjenfinning av ord med forskjellige lengder ved bruk av et lager med fast ordstørrelse. På figur 2 blir derfor bufferlagringen først utført ved hjelp av bufferlageret 3 0 som allerede er nevnt, som følges av en variabel lengdekoder 31 og et parallelt inn, serie ut-register 32 (PISO-register). The administrative data and the coefficient data have now been collected in the required sequence or order, although they may contain gaps that occur when the FIFO stores 21, 22 become empty. Conventionally, conversion to variable length code (VLC code) can then be performed followed by entry into buffer storage 30 for buffering into a continuous data stream for output, but buffering of variable length words requires complex shift and control arrangements for storage and retrieval of words of different lengths using a fixed word size store. In Figure 2, the buffer storage is therefore first carried out by means of the buffer storage 30 already mentioned, which is followed by a variable length encoder 31 and a parallel in, serial out register 32 (PISO register).

De data som leses fra FIFO-lagrene 21, 22 blir lagret i bufferlageret 30 under styring av styreenheten 29 (bortsett fra omkoblings-ordet som det ikke lenger er noe bruk for). Siden en konstant bithastighet er nødvendig ved utgangen fra PISO-registeret 32, blir bufferlageret ikke lest med en konstant hastighet; utlesning blir styrt av en teller 3 3 som forklart nedenfor. Man vil huske at hver koeffisient (eller del med administrativ informasjon) blir fulgt av en ordidentitetskode som identifiserer hvilket sett med variable lengdekoder som skal brukes. Data- og ordidentitets-kodene blir levert til den variable lengdekoder 31 (som ganske enkelt kan være en oppslagstabell i form av et leselager) som avgir de kodede dataord til registeret 32. De blir også levert til en ytterligere oppslagstabell, en lengdedetektor 34, som avgir den aktuelle ordlengde til telleren 33 for å bestemme det antall utgangstakt-pulser øL som skal leveres til registeret 31. Telleren tjener også til, når den siste taktpuls er blitt sendt til registeret 32, å avgi en lesekommando for utlesning av den neste datadel (og dens ordidentitetskode) fra bufferlageret 30. The data read from the FIFO stores 21, 22 are stored in the buffer store 30 under the control of the control unit 29 (apart from the switching word, which is no longer used). Since a constant bit rate is required at the output of the PISO register 32, the buffer store is not read at a constant rate; readout is controlled by a counter 3 3 as explained below. It will be remembered that each coefficient (or piece of administrative information) is followed by a word identity code that identifies which set of variable length codes is to be used. The data and word identity codes are supplied to the variable length encoder 31 (which can simply be a look-up table in the form of a read store) which outputs the coded data words to the register 32. They are also supplied to a further look-up table, a length detector 34, which transmits the relevant word length to the counter 33 to determine the number of output clock pulses øL to be delivered to the register 31. The counter also serves, when the last clock pulse has been sent to the register 32, to issue a read command for reading out the next data part ( and its word identity code) from the buffer store 30.

For å muliggjøre kontinuerlig overføring ved den faste datahastighet som er bestemt av PISO 32, er det nødvendig å innbefatte tilbakekobling til koderen på figur 1 (og kvantisatoren 4 spesielt) for å regulere datagenererings-hastigheten. Konvensjonelt blir dette gjort på grunnlag av utgangs-bufferlagerets fyllingsgrad. Noen dekodere krever også overføring av senderbuffer-tilstanden for å bidra til synkroniseringsoperasjoner ved dekoderen, som beskrevet i Europeisk patent nr. 0103380 og US-patent nr 4 562 466. Fordi den variable lengdekoder i foreliggende tilfelle følger etter bufferlageret, er det aktuelle datainnhold av bufferlageret ikke direkte relatert til antallet overførte bit som innholdet representerer. Derfor er det nødvendig å bestemme hva bufferinnholdet "ville" være hvis det var i variabel lengdekodet form. Dette oppnås på følgende måte: Først blir en lengdedetektor 35 (identisk med detektoren 34) koblet for å motta data- og ordidentitets-koder levert til bufferinngangen. De lengder som den frembringer, blir summert i et akkumulatorarrangement bestående av en adderer 36 og en låsekrets 37 som gir en løpende sum av antallet kodede bit representert av de data som innføres i bufferlageret. To enable continuous transmission at the fixed data rate determined by PISO 32, it is necessary to include feedback to the encoder of Figure 1 (and quantizer 4 in particular) to regulate the data generation rate. Conventionally, this is done on the basis of the degree of filling of the output buffer storage. Some decoders also require transfer of the transmitter buffer state to assist synchronization operations at the decoder, as described in European Patent No. 0103380 and US Patent No. 4,562,466. Because the variable length code in the present case follows the buffer store, the relevant data content of the buffer storage not directly related to the number of transmitted bits that the content represents. Therefore, it is necessary to determine what the buffer contents "would" be if they were in variable-length encoded form. This is achieved in the following way: First, a length detector 35 (identical to the detector 34) is connected to receive data and word identity codes delivered to the buffer input. The lengths it produces are summed in an accumulator arrangement consisting of an adder 36 and a latch circuit 37 which gives a running sum of the number of coded bits represented by the data entered in the buffer storage.

Den momentane verdi av denne totalsummen blir lagret i bufferlageret sammen med den nyeste datadel. Når en datadel leses ut, indikerer den tilhørende sum nå det totale antall utgangsbit som representeres av bufferlagerets datautlesning. Differansen mellom denne og den innførte sum (dannet i en subtraherer 38) er den "teoretiske" buffer-fyllingsgrad som kommuniseres til styreenheten 10 (via linje 15 på figur 1), og kan også sendes til FIFO-skrivestyreenheten 27 hvis buffertilstands-informasjon skal innbefattes i den overførte administrative informasjon. Som vist blir bare de åtte mest signifikante bit i summen bufferlagret og levert til subtra-hereren. Dette gir en tilstrekkelig indikasjon til å forhindre buffer-overflyt/tømming under antagelse av en egnet bufferstørrelse. The instantaneous value of this total is stored in the buffer storage together with the most recent data part. When a chunk of data is read out, the associated sum now indicates the total number of output bits represented by the buffer's data readout. The difference between this and the entered sum (formed in a subtracter 38) is the "theoretical" buffer filling level which is communicated to the control unit 10 (via line 15 in figure 1), and can also be sent to the FIFO write control unit 27 if buffer state information is to included in the transferred administrative information. As shown, only the eight most significant bits of the sum are buffered and delivered to the subtracter. This provides a sufficient indication to prevent buffer overflow/emptying assuming a suitable buffer size.

I FIFO-lageret 21 kan transformasjones-koeffisientene kodes i enten en endimensjonal eller en todimensjonal variabel lengdekode. Hvis endimensjonal variabel lengdekoding blir brukt, blir hver koeffisient i hver blokk, d.v.s. fra "blokkstart" til siste koeffisient som er forskjellig fra null, skrevet inn i FIFO-lageret 21. For hver koeffisient blir ordidentitetskoden som genereres i kodevelger-enheten 23 også skrevet inn i FIFO-lageret som tidligere forklart (dette viser VLC-koderen hvilket VLC-kodesett som skal brukes for vedkommende koeffisient). Hvis todimensjonal variabel lengdekoding blir brukt, så beregner enheten 2 3 i tillegg løpelengden av nuller før hver koeffisient forskjellig fra null, og skriver denne inn i FIFO-lageret 21 sammen med koeffisientstørrelsen som et enkelt ord hver gang en koeffisient som er forskjellig fra null, nås. In the FIFO storage 21, the transformation coefficients can be coded in either a one-dimensional or a two-dimensional variable length code. If one-dimensional variable length coding is used, each coefficient in each block, i.e. from "block start" to the last non-zero coefficient written into the FIFO store 21. For each coefficient, the word identity code generated in the code selector unit 23 is also written into the FIFO store as previously explained (this shows the VLC encoder which VLC code set to be used for the coefficient in question). If two-dimensional variable length coding is used, the unit 2 3 additionally calculates the trailing length of zeros before each non-zero coefficient, and writes this into the FIFO storage 21 together with the coefficient size as a single word each time a non-zero coefficient, be reached.

Selv om den koderen som er beskrevet ovenfor, kan brukes med en konvensjonell dekoder, avspeiler den dekoderen som er vist på figur 23 visse av de teknikker som brukes i koderen. Videodata blir mottatt ved hjelp av en linje-tilpasningsenhet 40 synkront med en linjetakt på 2,048 MHz (eller 1,544 MHz). Dataene blir behandlet og ført videre til en synkroniseringsdetektor 41 sammen med indikasjon på eventuelle linjefeil som detekteres av linje-tilpasningsenheten. Synkroniseringsdetektoren 41 avsøker kontinuerlig den mottatte datastrøm etter en bildestartkode (PSC) som indikerer begynnelsen på data for et nytt bilde. Hvis koden er feilaktig, settes et feilflagg. Kombinasjonen av PSC-feilflagget og linje-feilflagget blir ført til en takt-generatorenhet 42. Although the encoder described above can be used with a conventional decoder, the decoder shown in Figure 23 reflects some of the techniques used in the encoder. Video data is received by means of a line matching unit 40 synchronously with a line clock of 2.048 MHz (or 1.544 MHz). The data is processed and passed on to a synchronization detector 41 together with indication of any line errors detected by the line matching unit. The synchronization detector 41 continuously scans the received data stream for a picture start code (PSC) indicating the beginning of data for a new picture. If the code is incorrect, an error flag is set. The combination of the PSC error flag and the line error flag is fed to a clock generator unit 42.

Ved begynnelsen til et nytt bilde blir seriedataene mottatt av en variabel lengdekoder-enhet 43 og blir dekodet fra faste eller variable lengdedata til faste lengdedata og avgitt i parallell form. For hver datadel genereres en ordidentitet av en sekvenseringsenhet 44. Denne har et leselager 441 som inneholder en sekvens med lagrede ord, idet en ordutlesning blir koblet tilbake via en låsekrets 442 (taktstyrt ved hjelp av en utgang fra den variable lengdedekoder etter at hvert ord er blitt dekodet), for å danne adressen for det neste ord. Lageret er programmert slik at det etter tilbakestilling til en basisadresse ved hjelp av en bildestartkode, frembringer en sekvens av ordidentitetskoder som svarer til den overføringssekvens som er beskrevet tidligere. Når sekvensen kan variere, blir fore-komsten av ord som indikerer nærværet eller fraværet av følgende valgfrie felter gjenkjent i en gjenkjenningskrets 443 som styrer inngangen til ytterligere adresselinjer i lageret 441 for å endre sekvensen. På lignende måte får deteksjon av begynnelsen av koeffisientdataene sekvenseringskretsen til å gå inn i en sløyfe hvor den relevante ordidentitet gjentatt adresserer seg selv, inntil gjenkjennelsen av en blokkslutt-kode forårsaker en ytterligere sekvensendring. Ordidentiteten blir (sammen med en løpelengde-verdi for todimensjonalt variabelt lengdekode koeffisienter) ført til en buffertilpasser 45. Hvis forskjellige variable lengdekode-sett brukes for forskjellige parametere, kan ordidentitets-etiketter brukes til å signalisere VLC-dekoderen 33 (via linje 444) for å velge de riktige kodesett. At the beginning of a new picture, the serial data is received by a variable length encoder unit 43 and is decoded from fixed or variable length data to fixed length data and output in parallel form. For each data part, a word identity is generated by a sequencing unit 44. This has a read storage 441 which contains a sequence of stored words, a word readout being fed back via a latch circuit 442 (clocked by means of an output from the variable length decoder after each word is been decoded), to form the address for the next word. The storage is programmed so that after resetting to a base address by means of a frame start code, it produces a sequence of word identity codes corresponding to the transfer sequence described earlier. When the sequence may vary, the occurrence of words indicating the presence or absence of the following optional fields is recognized in a recognition circuit 443 which directs the entry of additional address lines in the memory 441 to change the sequence. Similarly, detection of the beginning of the coefficient data causes the sequencing circuit to enter a loop where the relevant word identity repeatedly addresses itself, until the recognition of an end-of-block code causes a further sequence change. The word identity is (along with a run-length value for two-dimensional variable length code coefficients) passed to a buffer adapter 45. If different variable length code sets are used for different parameters, word identity labels can be used to signal the VLC decoder 33 (via line 444) for to select the correct code sets.

De parallelle utgangsdata fra den variable lengdekoderen sammen med ordidentitetskoderen, blir resynkronisert i en buffertilpasser 45 til et multiplum av linjetakten, d.v.s. 6,176 MHz (eller 6,144 MHz for en linjehastighet på 1,544 Mbit/s). Dataene blir så sendt til en bufferenhet 47 sammen med et bufferskrive-åpnings-signal 45 (BWE-signal). En ytterligere funksjon av buffertilpasseren er å trekke ut det bildenummeret som tidligere er nevnt. Dette nummeret blir ført til en bilderepetisjons-styreenhet 46. The parallel output data from the variable length encoder together with the word identity encoder are resynchronized in a buffer adapter 45 to a multiple of the line rate, i.e. 6.176 MHz (or 6.144 MHz for a line speed of 1.544 Mbit/s). The data is then sent to a buffer unit 47 together with a buffer write-open signal 45 (BWE signal). A further function of the buffer matcher is to extract the frame number previously mentioned. This number is fed to an image repetition control unit 46.

Bufferenheten 47 virker som en hastighetsomformer eller et elastisk lager som tilpasser de innkomne data som ankommer med en jevn hastighet, men som blir ujevn etter VLC-dekoding, til de bilderelaterte data som brukes ved en annen ujevn hastighet. En beregning av buffer-fyllingsgraden eller buffertilstanden blir foretatt i en beregningsenhet 48 som er identisk med enhetene 35 til 38 på figur 2, og ført til taktgenerator-enheten 42. Det siste bildenummer som leses ut av bufferenheten 47, blir også trukket ut i denne enheten og ført til bilderepetisjons-styreenheten 47. The buffer unit 47 acts as a rate converter or elastic layer that adapts the incoming data that arrives at a uniform rate, but becomes uneven after VLC decoding, to the image-related data used at a different uneven rate. A calculation of the buffer filling degree or buffer state is made in a calculation unit 48 which is identical to the units 35 to 38 in Figure 2, and passed to the clock generator unit 42. The last frame number read out by the buffer unit 47 is also extracted in this the unit and taken to the image repetition control unit 47.

Taktgenerator-enheten 42 genererer et taktsignal relatert til bildeelement-hastigheten (for eksempel 5,37 MHz) og bilderelaterte synkroniseringssignaler. Den nominelle taktfrekvens blir generert som en normalverdi og brukes alltid hvis linje-eller PSC-feil er blitt detektert. Den kan imidlertid The clock generator unit 42 generates a clock signal related to the picture element speed (eg 5.37 MHz) and picture related synchronization signals. The nominal clock frequency is generated as a normal value and is always used if line or PSC errors have been detected. However, it can

varieres av verdien til buffertilstanden. is varied by the value of the buffer state.

Data blir lest ut av bufferenheten 47 under styring av en demultiplekser-enhet 49, signalisert ved hjelp av et buffer-leseåpnings-signal. Den hastighet som dataene blir trukket ut fra bufferenheten 47 med, blir bestemt av bildedata-innholdet. ved begynnelsen av et "bilde" eller et "blokkgruppe"-synkroniseringssignal fra taktgenerator-enheten, leser demultiplekseren 49 data fra bufferenheten. Ordidentiteten til datainnholdene blir kontrollert etterhvert som de leses, og straks en bildestartkode blir detektert, blir ytterligere utlesninger fra bufferenheten sperret inntil det neste bilde-signal eller blokkgruppe-signal. Inngangsdataene blir lagret i først-inn, først-ut lageret, synkronisert til 6,176 MHz (eller 6,144 MHz) og utlesningene fra FIFO-lagrene synkronisert til en bildeelement-hastighet på nominelt 5,37 MHz. Det er et FIFO-lager 490 for de administrative bildedata, 491 for koeffisientene og 492 og 493 for ordidentitetene til de administrative data og koeffisientene, respektive. Data is read out of the buffer unit 47 under the control of a demultiplexer unit 49, signaled by means of a buffer read opening signal. The speed with which the data is extracted from the buffer unit 47 is determined by the image data content. at the beginning of a "picture" or a "block group" synchronization signal from the clock generator unit, the demultiplexer 49 reads data from the buffer unit. The word identity of the data contents is checked as they are read, and as soon as an image start code is detected, further readings from the buffer unit are blocked until the next image signal or block group signal. The input data is stored in the first-in, first-out storage, synchronized to 6.176 MHz (or 6.144 MHz) and the readouts from the FIFO stores synchronized to a pixel rate of nominally 5.37 MHz. There is a FIFO storage 490 for the administrative image data, 491 for the coefficients, and 492 and 493 for the word identities of the administrative data and coefficients, respectively.

En ordidentitets-dekoder 494 fastslår fra de ordidentiteter som leses ut fra bufferlageret, om det tilhørende dataord er koeffisientdata eller administrative data, og styrer en demultiplekser 495 for å dirigere disse og den tilhørende ordidentitet til det riktige FIFO-lager. Utgangen fra FIFO-lageret 492 for koeffisientdata blir rekonstruert i blokker (496) med hjelp av en ordidentitets-dekoder 497 og mates til bildedata-inngangen på den riktige dekoder, 50, som kan være av identisk konstruksjon med den lokale dekoder som er vist i blokken med brutte linjer på figur 1. En ytterligere ordidentitets-dekoder 498 tjener til å skjelne fra utgangen av ordidentitets-lageret 492 om utgangen fra FIFO-lageret 490 er en bevegelsesvektor, filter, kvantisator-indeks, klasse, o.s.v. og dirigerer den via en demultiplekser 499 til den riktige enhet i dekoderen 50. A word identity decoder 494 determines from the word identities read out from the buffer storage, whether the associated data word is coefficient data or administrative data, and controls a demultiplexer 495 to direct these and the associated word identity to the correct FIFO storage. The output from the coefficient data FIFO store 492 is reconstructed into blocks (496) by means of a word identity decoder 497 and fed to the picture data input of the appropriate decoder, 50, which may be of identical construction to the local decoder shown in the block with broken lines in Figure 1. A further word identity decoder 498 serves to discern from the output of the word identity store 492 whether the output of the FIFO store 490 is a motion vector, filter, quantizer index, class, etc. and routes it via a demultiplexer 499 to the appropriate unit in the decoder 50.

Bilderepetisjons-styreenheten 46 kontrollerer at der er minst to bildestart-koder i bufferenheten 47 klar for demultiplekseren 49 for å behandle et fullstendig bilde. Hvis denne betingelsen ikke er oppfylt, avgir bilderepetisjons-styreenheten en bilderepetisjons-kommando til demultiplekseren og instruerer den om å stoppe lesing av bufferlageret og vente på det neste bildesynkroniseringssignal før den fortsetter sin behandling. Resultatet er at det rekonstituerte bildet ikke The frame repetition control unit 46 checks that there are at least two frame start codes in the buffer unit 47 ready for the demultiplexer 49 to process a complete frame. If this condition is not met, the frame repetition controller issues a frame repetition command to the demultiplexer and instructs it to stop reading the buffer store and wait for the next frame synchronization signal before continuing its processing. The result is that the reconstructed image does not

oppdateres med ny informasjon og blir effektivt repetert. is updated with new information and is effectively repeated.

Claims (6)

1. Videokoder, omfattende en genereringsanordning for å generere fra et inngangs-videosignal data med en variabel hastighet (1-29); en variabel lengde-kodingsanordning for koding av dataene ved bruk av en variabel lengdekode, som en rekke kodede ord; og et bufferlager (3 0) mellom genereringsanordningen (1-29) og den variable lengde-kodingsanordningen (31), karakterisert ved at koderen innbefatter en beregningsanordning (35-38) for å beregne summen av lengdene av de kodede ord som vil bli frembrakt av den variable lengde-kodingsanordningen (31) fra det momentane innhold av bufferlageret (30) .1. Video codes, comprehensive a generating means for generating from an input video signal data at a variable rate (1-29); a variable length encoding means for encoding the data using a variable length code, such as a series of code words; and a buffer storage (30) between the generating device (1-29) and the variable length coding device (31), characterized in that the encoder includes a calculation device (35-38) to calculate the sum of the lengths of the coded words that will be produced by the variable length encoding device (31) from the current content of the buffer storage (30). 2. Videokoder ifølge krav 1, karakterisert ved at beregningsanordningen (35-38) innbefatter en anordning (35) for, for hver datapost som innføres i bufferlageret (3 0), å bestemme lengden av det tilsvarende kodede ord i samsvar med den variable lengdekode, en akkumuleringsanordning (36) for å akkumulere summen av de således bestemte lengder, og en subtraksjonsanordning (38) for fra denne summen å subtrahere summen av de ordlengder som tilsvarer de dataposter som er blitt utlest fra bufferlageret (30) .2. Video codes according to claim 1, characterized in that the calculation device (35-38) includes a device (35) for, for each data record entered into the buffer storage (30), to determine the length of the corresponding coded word in accordance with the variable length code, an accumulation device (36) for to accumulate the sum of the thus determined lengths, and a subtraction device (38) to subtract from this sum the sum of the word lengths corresponding to the data records which have been read from the buffer storage (30). 3. Videokoder ifølge krav 2, karakterisert ved at den innbefatter en styreanordning (29) innrettet for å lagre i bufferlageret (30), sammen med en datapost, den nevnte sum av de således bestemte lengder, og for å lese ut denne summen fra bufferlageret (30) når dataposten utleses, for derved å tilveiebringe den sum som skal subtraheres for subtraksjonsanord-ningen (38).3. Video codes according to claim 2, characterized in that it includes a control device (29) arranged to store in the buffer storage (30), together with a data record, the aforementioned sum of the thus determined lengths, and to read out this sum from the buffer storage (30) when the data record is read out, thereby providing the sum to be subtracted for the subtraction device (38). 4. Videokoder ifølge et av de foregående krav, karakterisert ved at den er innrettet for å sende beregningsanordningens bestemte sum av lengder som administrativ informasjon.4. Video codes according to one of the preceding claims, characterized in that it is designed to send the calculation device's determined sum of lengths as administrative information. 5. Videokoder ifølge et av de foregående krav, karakterisert ved at genereringsanordningen (1-29) er innrettet for å variere videosignalets datahastighet under styring av beregningsanordningen på grunnlag av dennes bestemte sum av lengder.5. Video codes according to one of the preceding claims, characterized in that the generating device (1-29) is arranged to vary the data rate of the video signal under control of the calculation device on the basis of its determined sum of lengths. 6. Videokoder ifølge et av de foregående krav, karakterisert ved at den videre omfatter: en første kodingsanordning (1-14) for generering, for blokker av bilde-elementer i et bilde som skal kodes, av bildedata som indikerer disse elementenes tilstand; en andre kodingsanordning (25) for generering av administrative data med hensyn til blokker og/eller grupper av blokker med bilde-elementer, der de administrative data innbefatter informasjon om den kodingstype som benyttes av den første kodingsanordning (1-14); et første ytterligere bufferlager (21) for lagring av bildedataene; et andre ytterligere bufferlager (22) for lagring av de administrative data; en anordning for innføring av flagg i det første og det andre ytterligere bufferlager (21, 22); og en anordning for selektivt å lese ut data fra enten det første ytterligere bufferlager (21) eller det andre ytterligere bufferlager (22) for innskriving i bufferlageret (30), idet utlesningsanordningen reagerer på opptredenen av et flagg i det ytterligere bufferlager (21, 22) som leses, ved å avslutte lesing fra dette bufferlageret (21, 22) og begynne utlesning fra det andre lageret (22, 21), slik at en ønsket sekvens av bildedata og administrative data oppnås.6. Video encoder according to one of the preceding claims, characterized in that it further comprises: a first coding device (1-14) for generating, for blocks of image elements in an image to be coded, image data indicating the state of these elements; a second coding device (25) for generating administrative data with regard to blocks and/or groups of blocks with image elements, where the administrative data includes information about the coding type used by the first coding device (1-14); a first further buffer storage (21) for storing the image data; a second additional buffer storage (22) for storing the administrative data; a device for introducing flags into the first and second additional buffer stores (21, 22); and a device for selectively reading out data from either the first additional buffer store (21) or the second additional buffer store (22) for writing into the buffer store (30), the readout device responding to the appearance of a flag in the additional buffer store (21, 22 ) which is read, by ending reading from this buffer storage (21, 22) and starting reading from the other storage (22, 21), so that a desired sequence of image data and administrative data is obtained.
NO892039A 1987-09-23 1989-05-22 Video tags NO175558C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB878722394A GB8722394D0 (en) 1987-09-23 1987-09-23 Video coder
PCT/GB1988/000789 WO1989003153A1 (en) 1987-09-23 1988-09-23 Video coder

Publications (4)

Publication Number Publication Date
NO892039D0 NO892039D0 (en) 1989-05-22
NO892039L NO892039L (en) 1989-07-21
NO175558B true NO175558B (en) 1994-07-18
NO175558C NO175558C (en) 1994-10-26

Family

ID=26292776

Family Applications (1)

Application Number Title Priority Date Filing Date
NO892039A NO175558C (en) 1987-09-23 1989-05-22 Video tags

Country Status (2)

Country Link
AU (1) AU619504B2 (en)
NO (1) NO175558C (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05276500A (en) * 1991-07-19 1993-10-22 Sony Corp Moving image coding and decoding device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI75072C (en) * 1982-07-23 1988-04-11 British Telecomm Data transmission system.
US4727421A (en) * 1984-10-04 1988-02-23 Nec Corporation Method of coding picture signal and picture coding/decoding apparatus utilizing the same
FR2589020B1 (en) * 1985-10-22 1987-11-20 Eude Gerard TRANSFORMATION HYBRID CODING METHOD FOR TRANSMITTING IMAGE SIGNALS

Also Published As

Publication number Publication date
AU619504B2 (en) 1992-01-30
AU2489288A (en) 1989-04-18
NO175558C (en) 1994-10-26
NO892039D0 (en) 1989-05-22
NO892039L (en) 1989-07-21

Similar Documents

Publication Publication Date Title
EP0309280B1 (en) Video coder
EP0899959B1 (en) Image data coding and restoring method and apparatus for coding and restoring the same
EP0385317B1 (en) Signal processing device
KR100225542B1 (en) Method and apparatus for image signal encoding
US5504823A (en) Image data partitioning circuit for parallel image decoding system
US5841475A (en) Image decoding with dedicated bidirectional picture storage and reduced memory requirements
EP0306250B1 (en) Signal coding
JPS61114675A (en) Refreshing system in coding between frames
JPH06253288A (en) Method for masking error in transmission system
US5936670A (en) Method and device for decoding coded digital video signals
USRE34824E (en) Video coder
EP0862331B1 (en) Image encoding apparatus and image encoding method
JP2626152B2 (en) Imaging signal processing device
US5668547A (en) Runlength coding method and apparatus for use in a video signal encoding system
NO175558B (en) Video tags
US5485214A (en) Dual bus dual bank architecture for motion compensation
JP2871714B2 (en) Predictive still image encoder / decoder
US5122874A (en) Coding arrangement including variable length encoder incorporating a buffer filling control based on averaged block quality, and an associated decoding device
JP2936627B2 (en) Image decoding method with compensation for abandonment
JP2006502673A (en) In-stream lossless compression of digital image sensor data
JP2006502673A6 (en) In-stream lossless compression of digital image sensor data
JPS6320074B2 (en)
JPH0275247A (en) Variable rate picture hierarchy encoding system
JPS62175037A (en) Information transmission system
JPS63198492A (en) Still picture encoding system