(12) Oversettelse av europeisk patentskrift

Størrelse: px
Begynne med side:

Download "(12) Oversettelse av europeisk patentskrift"

Transkript

1 (12) Oversettelse av europeisk patentskrift (11) NO/EP B1 (19) NO NORGE (1) Int Cl. H04N 19/196 (14.01) H04N 19/11 (14.01) H04N 19/122 (14.01) H04N 19/129 (14.01) H04N 19/13 (14.01) H04N 19/132 (14.01) H04N 19/14 (14.01) H04N 19/17 (14.01) H04N 19/19 (14.01) H04N 19/176 (14.01) H04N 19/194 (14.01) H04N 19/46 (14.01) H04N 19/93 (14.01) H04N 19/60 (14.01) H04N 19/61 (14.01) H04N 19/8 (14.01) H04N 19/96 (14.01) Patentstyret (21) Oversettelse publisert (80) Dato for Den Europeiske Patentmyndighets publisering av det meddelte patentet (86) Europeisk søknadsnr (86) Europeisk innleveringsdag (87) Den europeiske søknadens Publiseringsdato () Prioritet.07.09, US, P.08.17, US, P.08.26, US, P , US, , US, , US, (84) Utpekte stater AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR (73) Innehaver Qualcomm Incorporated, 77 Morehouse Drive, San Diego, CA 92121, US-USA (72) Oppfinner KARCZEWICZ, Marta, c/o Qualcomm Incorporated77 Morehouse Drive, San DiegoCA 92121, US-USA COBAN, Muhammed, Zeyd, c/o Qualcomm Incorporated77 Morehouse Drive, San DiegoCA 92121, US-USA CHEN, Peisong, c/o Qualcomm Incorporated77 Morehouse Drive, San DiegoCA 92121, US-USA CHUANG, Hsiao-Chiang, c/o Qualcomm Incorporated77 Morehouse Drive, San DiegoCA 92121, US-USA JOSHI, Rajan, Laxman, c/o Qualcomm Incorporated77 Morehouse Drive, San DiegoCA 92121, US-USA (74) Fullmektig Tandbergs Patentkontor AS, Postboks 170 Vika, 0118 OSLO, Norge (4) Benevnelse Tilpassing av settet av mulige frekvenstransformasjoner basert på blokkstørrelse og intramodus (6) Anførte publikasjoner US-A DAVIES (BBC) T ET AL: "Suggestion for a Test Model", 1. JCT-VC MEETING; ; DRESDEN; (JOINTCOLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-TSG.16 ); URL: 7 May (-0-07), XP000726, ISSN: AMONOU (FT) I ET AL: "Video coding technology proposal by France Telecom, NTT, NTT

2 DoCoMo, Panasonic and Technicolor", 1. JCT-VC MEETING; ; DRESDEN; (JOINTCOLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-TSG.16 ); URL: no. XP00072, 7 May (-0-07), XP00073, ISSN: XIN ZHAO ET AL: "Rate-distortion optimized transform for intra-frame coding", ACOUSTICS SPEECH AND SIGNAL PROCESSING (ICASSP), IEEE INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 14 March (-03-14), pages , XP , ISBN: LI Z G ET AL: "Fast Mode Decision Algorithm for Intraprediction in H.264/AVC Video Coding", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 1, no. 7, 1 July 0 ( ), pages , XP011136, ISSN: 1-821, DOI:.19/TCSVT

3 1 Beskrivelse TEKNISK OMRÅDE [0001] Denne oppfinnelsen vedrører koding av video BAKGRUNN [0002] Digitale videofunksjoner kan innlemmes i et bredt spekter av anordninger, herunder digitale fjernsyn, digitale direkte kringkastingssystemer, trådløse kringkastingssystemer, personlige digitale assistenter (PDA'er), bærbare eller stasjonære datamaskiner, digitale kameraer, digitale opptaksanordninger, digitale mediaspillere, videospillanordninger, videospillkonsoller, mobil- eller satellittradiotelefoner, videokonferanseanordninger og liknende. Digitale videoanordninger utfører videokomprimeringsteknikker, så som de beskrevet i standardene definert av MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, del, AVC (Advanced Video Coding), den kommende standarden HEVC (High Efficiency Video Coding) (også omtalt som H.26), og utvidelser av slike standarder, for å sende ut og motta digital videoinformasjon mer effektivt. [0003] Videokomprimeringsteknikker utfører romlig prediksjon og/eller tidsmessig prediksjon for å redusere eller fjerne redundans knyttet til videosekvenser. Ved blokkbasert videokoding kan en videoramme eller bildelinje (slice) bli delt inn i makroblokker. Hver makroblokk kan bli delt inn ytterligere. Makroblokker i en intrakodet (I) videoramme eller bildelinje blir kodet ved anvendelse av romlig prediksjon med hensyn til tilstøtende makroblokker. Makroblokker i en interkodet (Peller B-) videoramme eller bildelinje kan anvende romlig prediksjon med hensyn til tilstøtende makroblokker i samme ramme eller bildelinje eller tidsmessig prediksjon med hensyn til andre referanserammer. [0004] Det henvises til følgende dokumenter som beskriver kjent teknikk: DAVIES (BBC) T ET AL: "Suggestion for a Test Model",1. JCT-VC MEETING; ; DRESDEN; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 OG ITU-TSG.16 ); URL: 7. mai (-0-07) viser et forslag til en testmodell for den kommende HEVCstandarden, hvor et forskjellige antall transformasjoner tilveiebringes avhengig av størrelsen til en blokk. XIN ZHAO ET AL: "Rate-distortion optimized transform for intra-frame coding", ACOUSTICS SPEECH AND SIGNAL PROCESSING (ICASSP), IEEE INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 14. mars (-03-14), sidene , ISBN: , viser tilknyting av flere transformasjoner til hver

4 2 intraprediksjonsmodus, valg av én av dem ved anvendelse av et taktfordreiningskriterium og angivelse av den valgte transformasjonen for dekoderen OPPSUMMERING [000] Foreliggende oppfinnelse vedrører en fremgangsmåte ved dekoding av videodata ifølge det vedføyde krav 1, et apparat for dekoding av videodata ifølge det vedføyde krav 7, et dataprogramprodukt ifølge det vedføyde krav 9, en fremgangsmåte ved koding av videodata ifølge det vedføyde krav, et apparat for koding av videodata ifølge det vedføyde krav 13 samt et dataprogramprodukt ifølge det vedføyde krav 1. KORT BESKRIVELSE AV TEGNINGENE [0006] Figur 1 er et blokkdiagram som illustrerer et eksempel på et system for koding og dekoding av video som kan anvende teknikker for koding og dekoding av transformasjonsenheter i en kodeenhet. Figur 2 er et blokkdiagram som illustrerer et eksempel på en videokoder som kan realisere hvilke som helst av eller alle teknikkene for koding av transformasjonsenheter av videodata som beskrives i denne redegjørelsen. Figur 3 er et blokkdiagram som illustrerer et eksempel på en videodekoder, som dekoder en kodet videosekvens. Figur 4 er et konseptuelt diagram som illustrerer en graf som viser et eksempel på et sett av prediksjonsretninger knyttet til forskjellige intraprediksjonsmodi. Figur er et konseptuelt diagram som illustrerer forskjellige intraprediksjonsmodi spesifisert av standarden ITU-T H.264/AVC. Figur 6 er et konseptuelt diagram som illustrerer et sikksakkskann for en blokk av transformasjonskoeffisienter. Figurene 7A og 7B er konseptuelle diagrammer som illustrerer et eksempel på et kvadtre og en tilhørende største kodeenhet (LCU - Largest Coding Unit). Figur 8 er et flytdiagram som illustrerer et eksempel på en fremgangsmåte for å velge en transformasjon og et skann å anvende på en blokk basert på en intraprediksjonsmodus valgt for blokken. Figur 9 er et flytdiagram som illustrerer et annet eksempel på en fremgangsmåte for å velge en transformasjon og et skann å anvende på en blokk basert på en intraprediksjonsmodus valgt for blokken. Figur er et flytdiagram som illustrerer et eksempel på en fremgangsmåte for å anvende en intraprediksjonsmodus og en transformasjon på under-cu'er av bestemte størrelser.

5 Figur 11 er et flytdiagram som illustrerer et eksempel på en fremgangsmåte for å utføre et adaptivt skann av transformasjonskoeffisienter basert på en valgt transformasjon anvendt på en blokk av residualverdier. Figur 12 er et flytdiagram som illustrerer et eksempel på en fremgangsmåte for å velge en kontekstmodell å anvende ved skanning og entropikoding av syntakselementer som beskriver adaptivt skannede koeffisienter. Figur 13 er et flytdiagram som illustrerer et eksempel på en fremgangsmåte for å dekode en transformasjonsenhet som er kodet ved anvendelse av én eller flere av teknikkene ifølge denne oppfinnelsen. Figur 14 er et flytdiagram som illustrerer et eksempel på en fremgangsmåte for å velge en transformasjon å anvende på en intrakodet blokk som inkluderer en kantlinje for hvilken DC-intraprediksjonsmodus er signalisert. DETALJERT BESKRIVELSE [0007] Generelt beskriver denne redegjørelsen teknikker for koding av videodata. Mer spesifikt beskriver denne redegjørelsen teknikker i tilknytning til transformasjon av residualdata og skanning av transformasjonskoeffisienter under en videokodingsprosess. Kodede videodata kan inkludere prediksjonsdata og residualdata. En videokoder kan produsere prediksjonsdataene under en intraprediksjonsmodus eller en interprediksjonsmodus. Intraprediksjon innebærer generelt prediksjon av en blokk i et bilde i forhold til tidligere kodede naboblokker i det samme bildet. Interprediksjon inkluderer generelt prediksjon av en blokk i et bilde i forhold til data i et tidligere kodet bilde. [0008] Etter intra- eller interprediksjon kan en videokoder regne ut en residualverdi for blokken. Residualverdien svarer generelt til differansen mellom de predikerte dataene for blokken og den sanne verdien for blokken. For ytterligere å komprimere residualverdien for en blokk, kan residualverdien bli transformert til et sett av transformasjonskoeffisienter som kompakterer så mye data (også omtalt som "energi") som mulig til så få koeffisienter som mulig. Transformasjonskoeffisientene svarer til en todimensjonal matrise av koeffisienter som har samme størrelse som den opprinnelige blokken. Med andre ord er det like mange transformasjonskoeffisienter som det er pikseler i den opprinnelige blokken. Som følge av transformasjonen kan imidlertid mange av transformasjonskoeffisientene ha verdier lik null. [0009] I noen tilfeller kan en sekundær transformasjon, så som en rotasjonstransformasjon, bli anvendt på en delmengde av transformasjonskoeffisientene generert av den første transformasjonen. For eksempel, etter transformasjon av en residualblokk til en matrise av transformasjonskoeffisienter, kan en rotasjonstransformasjon bli anvendt på 8 8-blokken av transformasjonskoeffisientene med lavest frekvens. Selv om dette eksempelet beskriver en rotasjonstransformasjon

6 som en sekundær transformasjon, kan andre sekundære transformasjoner (f.eks. KLT'er, DCT'er og liknende) også bli anvendt som sekundære transformasjoner. Slike sekundære transformasjoner kan også bli valgt basert på en signalisert intraprediksjonsmodus for blokken. [00] Henvisninger til "DCT-transformasjoner" skal forstås å inkludere både fasttallsutførelser og flyttallsutførelser. Nærmere bestemt kan en utførelse av en DCTtransformasjon faktisk omfatte en approksimasjon av en DCT, slik at DCTtransformasjonen har heltallige koeffisienter (dvs. fasttall-koeffisienter) heller enn rasjonale koeffisienter. [0011] I noen eksempler kan en transformasjon omfatte en ikke-separabel transformasjon. Ikke-separable transformasjoner er typisk regnemessig krevende og videokoderanordninger kan derfor i stedet anvende separable transformasjoner. I alminnelighet inkluderer separable transformasjoner en horisontalkomponent som anvendes på rader i blokken og en vertikalkomponent som anvendes på kolonner i blokken. På denne måten kan en separabel transformasjon ha en radtransformasjonskomponent og en kolonnetransformasjonskomponent, også omtalt som to ortogonale transformasjonskomponenter. To matriser kan bli anvendt for å definere en separabel transformasjon, hver av matrisene svarende til én av de ortogonale transformasjonskomponentene. En ikke-separabel transformasjon kan inkludere kun én matrise som, når den anvendes, genererer et konseptuelt tilsvarende resultat som bruk av den separable transformasjonen, men gjennom forholdsvis mer krevende beregninger. [0012] Transformasjon av en blokk av residualdata produserer et sett av transformasjonskoeffisienter for blokken. Videokoderen kan da kvantisere transformasjonskoeffisientene for ytterligere å komprimere videodataene. Kvantisering inkluderer generelt å avbilde verdier innenfor et forholdsvis stort sett til verdier i et forholdsvis lite sett, og på den måten redusere mengden av data nødvendig for å representere de kvantiserte transformasjonskoeffisientene. Etter kvantisering kan videokoderen skanne transformasjonskoeffisientene og generere en éndimensjonal vektor fra den todimensjonale matrisen med de kvantiserte transformasjonskoeffisientene. Videokoderen kan nulle ut bestemte koeffisienter før eller etter skannet, f.eks. alle utenom det øvre venstre hjørnet av matrisen eller alle koeffisientene i arrayet fra en posisjon N til enden av arrayet. [0013] Videokoderen kan så entropikode det resulterende arrayet for å komprimere dataene enda mer. I noen eksempler kan videokoderen være innrettet for å anvende koder med variabel lengde (VLC - Variable Length Code) for å representere forskjellige mulige kvantiserte transformasjonskoeffisienter i arrayet, f.eks. ved anvendelse av kontekstadaptiv koding med varierende lengde (CAVLC - Context- Adaptive Variable Length Coding). I andre eksempler kan videokoderen være innrettet for å anvende binær aritmetisk koding for å kode de resulterende kvantiserte

7 1 2 3 koeffisientene, f.eks. ved anvendelse av kontekstadaptiv binæraritmetisk koding (CABAC - Context-Adaptive Binary Artithmetic Coding). [0014] Denne oppfinnelsen beskriver flere teknikker knyttet til transformasjon, kvantisering, skanning og entropikoding av residualverdier under en videokodingsprosess. Teknikkene kan bli anvendt av både videokoder- og videodekoderenheter, herunder videokodere/-dekodere (kodeker) og prosesseringsenheter innrettet for å utføre koding og/eller dekoding av video. Med "videokoderenheter" eller "videokoderanordninger" skal forstås enheter eller anordninger i stand til å kode, dekode eller både kode og dekode videodata. [001] Det jobbes for tiden med å utvikle en ny standard for koding av video, for nærværende omtalt som HEVC (High Efficiency Video Coding). Den kommende standarden omtales også som H.26. Standardiseringsarbidet er basert på en modell av en videokoderanordning omtalt som HEVC Test Model (HM). HM forutsetter flere funksjoner hos videokoderanordninger enn anordninger i samsvar f.eks. med ITU-T H.264/AVC. For eksempel, mens H.264 tilveiebringer ni intraprediksjonskodingsmodi, tilveiebringer HM så mange som trettifire intraprediksjonskodingsmodi. [0016] HM omtaler en blokk av videodata som en kodeenhet (CU), som kan inkludere én eller flere prediksjonsenheter (PUs) og/eller én eller flere transformasjonsenheter (TU'er). Syntaksdata i en bitstrøm kan definere en største kodeenhet (LCU), som er en største kodeenhet med hensyn til antallet pikseler. Generelt har en CU et tilsvarende formål som en makroblokk i H.264, bortsett fra at en CU ikke har størrelsesskjelning. En CU kan derfor bli splittet opp i under-cu'er. Generelt kan omtale i denne beskrivelsen av en CU henvise til en største kodeenhet i et bilde eller en under-cu av en LCU. En LCU kan bli splittet opp i under-cu'er, og hver under-cu kan igjen bli splittet opp inn i nye under-cu'er. Syntaksdata for en bitstrøm kan definere et maksimalt antall ganger en LCU kan bli splittet, omtalt som CU-dybde. En bitstrøm kan derfor også definere en minste kodeenhet (SCU - Smallest Coding Unit). Denne beskrivelsen anvender også betegnelsen "blokk" om hvilken som helst av en CU, PU eller TU. [0017] En LCU kan være tilknyttet en kvadtre-datastruktur. I alminnelighet inkluderer en kvadtre-datastruktur én node per CU, hvor en rotnode svarer til LCU'en. Dersom en CU blir splittet opp i fire under-cu'er, inkluderer noden svarende til CU'en fire bladnoder, som hver svarer til én av under-cu'ene. Hver node i kvadtre-datastrukturen kan tilveiebringe syntaksdata for den tilhørende CU'en. For eksempel kan en node i kvadtreet inkludere et splittet-flagg, som angir om CU'en svarende til noden er splittet opp i under-cu'er. Syntakselementer for en CU kan bli definert rekursivt, og kan avhenge av om CU'en om splittet opp i under-cu'er. Dersom en CU ikke er ytterligere oppsplittet, omtales den som en blad-cu. I denne beskrivelsen vil 4 under-cu'er i en blad-cu også bli omtalt som blad-cu'er selv om det ikke er noen eksplisitt

8 oppsplitting av den opprinnelige blad-cu'en. Dersom for eksempel en CU med størrelse 16x16 ikke er splittet opp ytterligere, vil fire 8x8 under-cu'er også bli omtalt som blad-cu'er, selv om 16x16-CU'en aldri ble splittet. [0018] Videre kan TU'er til blad-cu'er også være tilknyttet respektive kvadtredatastrukturer. Nærmere bestemt kan en blad-cu inkludere et kvadtre som angir hvordan blad-cu'en er delt inn i TU'er. Denne beskrivelsen omtaler kvadtreet som angir hvordan en LCU er inndelt som et CU-kvadtre og kvadtreet som angir hvordan en blad-cu er delt inn i TU'er som et TU-kvadtre. Rotnoden til et TU-kvadtre svarer i alminnelighet til en blad-cu, mens rotnoden til et CU-kvadtre i alminnelighet svarer til en LCU. TU'er i TU-kvadtreet som ikke er splittet omtales som blad-tu'er. [0019] En blad-cu kan inkludere én eller flere prediksjonsenheter (PU'er). Generelt representerer en PU hele eller en del av den tilhørende CU'en, og kan inkludere data for å hente frem en referanseprøve for PU'en. Når for eksempel PU'en er kodet i intermodus, kan PU'en inkludere data som definerer en bevegelsesvektor for PU'en. Dataene som definerer bevegelsesvektoren kan beskrive, for eksempel, en horisontalkomponent av bevegelsesvektoren, en vertikalkomponent av bevegelsesvektoren, en oppløsning for bevegelsesvektoren (f.eks. fjerdedels pikselpresisjon eller åttendedels pikselpresisjon), en referanseramme som bevegelsesvektoren peker til og/eller en referanseliste (f.eks. liste 0 eller liste 1) for bevegelsesvektoren. Data for blad-cu'en som definerer PU'en(e) kan også beskrive, for eksempel, inndeling av CU'en i én eller flere PU'er. Inndelingsmodi kan være forskjellige avhengig av om CU'en er kodet, intraprediksjonsmoduskodet eller interprediksjonsmoduskodet. For intrakoding kan en PU behandles på samme måte som en blad-transformasjonsenhet, beskrevet nedenfor. [00] En blad-cu kan inkludere én eller flere transformasjonsenheter (TU'er). Transformasjonsenhetene kan spesifiseres ved anvendelse av en TU-kvadtrestruktur, som angitt over. Nærmere bestemt kan et splittet-flagg angi om en blad-cu er splittet opp i fire transformasjonsenheter. Hver transformasjonsenhet kan så bli delt ytterligere inn i 4 under-tu'er. Når en TU ikke et splittet opp ytterligere, kan den bli omtalt som en blad-tu. I alminnelighet, for intrakoding, deler alle blad-tu'ene som tilhører en blad-cu samme intraprediksjonmodus. Nærmere bestemt blir normalt samme intraprediksjonsmodus anvendt for å regne ut predikerte verdier for alle TU'er i en blad-cu. For intrakoding kan en videokoder regne ut en residualverdi for hver blad- TU, ved anvendelse av intraprediksjonmodusen, som en differanse mellom den andelen av de prediktive verdiene som svarer til TU'en og den opprinnelige blokken. Residualverdien kan bli transformert, kvantisert og skannet. For interkoding kan en videokoder utføre prediksjon på PU-nivå og kan regne ut et residual for hver PU. Residualverdiene svarende til en blad-cu kan bli transformert, kvantisert og skannet. For interkoding kan en blad-tu være større eller mindre enn en PU. For intrakoding

9 kan en PU være samlokalisert med en tilhørende blad-tu. I noen eksempler kan den maksimale størrelsen til en blad-tu være størrelsen til den tilhørende blad-cu'en. [0021] Generelt anvender denne beskrivelsen betegnelsene CU og TU henholdsvis om en blad-cu og blad-tu, dersom ikke annet er angitt. Generelt vedrører teknikkene ifølge denne oppfinnelsen transformasjon, kvantisering, skanning og entropikoding av data i en CU. Som et eksempel inkluderer teknikkene ifølge denne oppfinnelsen valg av en transformasjon å anvende for å transformere en residualverdi for en intrapredikert blokk basert på en intraprediksjonsmodus anvendt for å predikere blokken. Denne beskrivelsen anvender også betegnelsen "retningstransformasjon" eller "konstruert transformasjon" om en slik transformasjon som avhenger av intraprediksjonsmodusretning. Nærmere bestemt kan en videokoder velge en retningstransformasjon å anvende på en transformasjonsenhet (TU). Som angitt over inkluderer intraprediksjon å predikere en TU i en aktuell CU for et bilde fra tidligere kodede CU'er og TU'er for det samme bildet. Mer spesifikt kan en videokoder intrapredikere en aktuell TU for et bilde ved anvendelse av en gitt intraprediksjonsmodus. [0022] Teknikkene ifølge denne oppfinnelsen inkluderer å knytte bestemte transformasjoner til intraprediksjonsmodi. Det kan derfor være en én-til-énkorrepondanse mellom intraprediksjonsmodi og transformasjoner i henhold til teknikker ifølge denne oppfinnelsen. I noen eksempler kan det være en mange-til-énkorrepondanse mellom intraprediksjonsmodi og transformasjoner derav. For eksempel kan et stort sett av intraprediksjonsmodi bli avbildet til et mindre sett av intraprediksjonsmodi, og hvert av de mindre settene av intraprediksjonsmodi kan bli avbildet én-til-én til respektive transformasjoner. [0023] Transformasjonene kan også bli avbildet til respektive skannemønstre. I noen eksempler kan intraprediksjonsmodi bli avbildet til både transformasjoner og skann, mens i andre eksempler, intraprediksjonsmodi kan bli avbildet til transformasjoner og transformasjoner kan bli avbildet til skann. I forskjellige eksempler kan ulike kombinasjoner av transformasjoner og koeffisientskann bli anvendt. For eksempel kan intraprediksjonsmodi bli avbildet til modusavhengige retningstransformasjoner, og et sikksakkskann kan bli anvendt i alle tilfeller. [0024] I noen eksempler, heller enn å avbilde intraprediksjonsmodi til transformasjoner og/eller skannemønstre, kan en videokoder være innrettet for å signalisere en kombinasjon av én eller flere transformasjoner og et skannemønster som skal anvendes. Likeledes kan en videodekoder være innrettet for å bestemme en transformasjon og et skannemønster å anvende basert på en mottatt angivelse, heller enn en avbildning mellom en intraprediksjonsmodus og transformasjonene og skannemønsteret. [002] Transformasjonene kan inkludere en diskret cosinustransformasjon (DCT) og åtte retningstransformasjoner, også omtalt som Karhunen-Loève-transformasjoner

10 (KLT'er). DCT-transformasjonen er generelt en sum av cosinusfunksjoner med forskjellige frekvenser, hvor funksjonene blir anvendt på residualverdiene. Hver av KLT'ene inkluderer i alminnelighet to matriser. Hver matrise i KLT'en har samme størrelse som residualblokken som skal transformeres. KLT'ene kan avledes fra treningssettdata eller avledes analytisk ved å anta en modell for videorammerne og/eller prediksjonsresidualet. [0026] En HM-koder kan være utformet med trettifire intraprediksjonsmodi for bestemte blokkstørrelser. For å støtte en én-til-én-avbildning mellom retningsbestemte intraprediksjonsmodi og retningstransformasjoner, vil HM-kodere og -dekodere derfor måtte lagre opptil 68 matriser for hver støttet transformasjonsstørrelse. Videre kan blokkstørrelsene for hvilke alle trettifire intraprediksjonsmodi er støttet være forholdsvis store blokker, f.eks. 16x16 pikseler, 32x32 pikseler, eller enda større. [0027] I noen eksempler tilveiebringer denne oppfinnelsen teknikker for å redusere antallet retningstransformasjoner som kodere og dekodere trenger å støtte. Nærmere bestemt kan kodere og dekodere støtte færre retningstransformasjoner enn antallet tilgjengelige intraprediksjonsmodi. En koder i samsvar med disse teknikkene kan for eksempel avbilde et forholdsvis stort sett av intraprediksjonsmodi til en delmengde av intraprediksjonsmodiene. Hver av intraprediksjonsmodiene i delmengden kan ha en tilknyttet retningstransformasjon. Nærmere bestemt kan intraprediksjonsmodiene i delmengden ha en én-til-én-korrespondanse med et sett av retningstransformasjoner. Intraprediksjonsmodiene i det store settet kan derfor ha en mange-til-énkorrespondanse med settet av retningstransformasjoner. [0028] For eksempel kan hver av de 34 retningsbestemte intraprediksjonsmodiene i HM bli avbildet til én av de åtte retningsbestemte intraprediksjonsmodiene i H.264. Videokoderen kan derfor velge en retningsbestemt prediksjonsmodus for å intrapredikere en verdi for en aktuell TU, bestemme en intraprediksjonsmodus fra delmengden til hvilken den valgte modusen er avbildet, så anvende retningstransformasjonen avbildet til intraprediksjonsmodusen fra delmengden for å transformere den aktuelle TU'en. I tillegg kan hver av retningstransformasjonene være tilknyttet et respektivt skannemønster. Koderen kan således utføre skannet knyttet til retningstransformasjonen for å generere en vektor av transformasjonskoeffisienter som så kan bli kvantisert. Videre kan koderen være utformet med en maksimal størrelse for vektoren. Nærmere bestemt kan koderen slutte å skanne transformasjonskoeffisientene når den maksimale størrelsen nås, uansett om den neste koeffisienten som skal skannes er forskjellig fra null. [0029] Ved å anvende teknikkene beskrevet over trenger ikke koderen signalisere hvilken transformasjonen som er anvendt for en gitt TU når teknikkene beskrevet over blir anvendt. Nærmere bestemt kan koderen og dekoderen begge være utformet med mange-til-én-avbildningen av intraprediksjonsmodi for det store settet til intra-

11 9 1 prediksjonsmodi for delmengden, og én-til-én-avbildningen av intraprediksjonsmodi for delmengden til retningstransformasjoner. Ved å signalisere intraprediksjonsmodusen fra det store settet kan dekoderen således slå fast hvilken transformasjonen som ble anvendt for å transformere blokken. Dessuten kan disse teknikkene realiseres av eldre eksisterende anordninger med begrenset minne som kan allokeres til lagring av matriser for de forskjellige retningsbestemte transformasjonene. [00] En HM-koder kan være utformet slik at det tilgjengelige settet av intraprediksjonsmodi for en blokk er forskjellig basert på blokkens størrelse. Nærmere bestemt kan størrelsen til en CU bestemme antallet intraprediksjonsmodi tilgjengelig for CU'en, fra hvilke koderen kan velge en intraprediksjonsmodus for å predikere verdier anvendt for å regne ut koeffisienter for TU'ene. Tabell 1 nedenfor illustrerer ett eksempel på en korrespondanse mellom CU-størrelse og antallet intraprediksjonsmodi tilgjengelig for CU'er av denne størrelsen. I denne beskrivelsen omtales 4 under-cu'er av en blad-cu også som blad-cu'er, selv om det ikke er noen eksplisitt oppsplitting av den opprinnelige blad-cu'en. Dersom blad-cu'en har den minste CU-størrelsen, kan disse 4 under-cu'ene velge forskjellige intraprediksjonsmodi. Tabellen har således en oppføring for CU-størrelse 4x4. TABELL 1 CU-størrelse Antall intraprediksjonsmodi 4x4 17 8x x x x64 2 [0031] I alminnelighet kan en videokoder signalisere en prediksjonsretning for en blokk, for at en videodekoder skal kunne dekode blokken korrekt. I noen eksempler kan en videokoder være innrettet for å bestemme én enkelt prediksjonsretning for en CU som kan bli anvendt for alle TU'er tilhørende CU'en. Som angitt over i tabell 1 har imidlertid noen blokkstørrelser færre intraprediksjonsmodi tilgjengelig sammenliknet med andre blokkstørrelser. Slike tilfeller kan løses ved å la antallet prediksjonsretninger ved CU-blokkstørrelsen bli anvendt for TU-blokkstørrelser. Alternativt kan intraprediksjonsmodiene for et større sett bli avbildet til intraprediksjonsmodi for et mindre sett, f.eks. en delmengde. Som angitt over kan det være en mange-til-énrelasjon mellom intraprediksjonsmodi for det større settet og intraprediksjonsmodi for et mindre sett.

12 1 2 3 [0032] til kvadtre-strukturer kan føre til oppdeling av en stor blokk (CU) til mindre blokker (TU'er). Den romlige prediksjonsmodusen for rotblokken (for CU'en) kan bli signalisert eksplisitt i bitstrømmen. De resulterende mindre TU-kvadtreblokkene (TU'ene) kan arve sine prediksjonsmodi fra de til rotblokken i TU-kvadtreet (som svarer til CU'en). Imidlertid kan antallet romlige prediksjonsretninger som støttes av de mindre blokkene (TU'er) være forskjellig fra det til rotblokken (CU). Dette kan løses ved å tillate flere prediksjonsretninger for de mindre blokkene (TU'er). Alternativt kan prediksjonsmodiene for de mindre blokkene (TU'er) bli avledet fra de til rotblokken (CU) av en mange-til-én-avbildning eller én-til-én-avbildning i henhold til et forbestemt kriterium, så som minimering av differansen i prediksjonsretningsvinkel mellom intraprediksjonsretningen for CU'en og prediksjonsretningene støttet i den mindre blokken. Retningstransformasjoner og skannemønstre kan bli valgt basert på denne avbildningen. [0033] På denne måten kan videokoderen signalisere en intraprediksjonsretning én gang for en CU. Antatt at CU'en inkluderer en TU med en størrelse som ikke støtter den signaliserte intraprediksjonsretningen, kan videokoderen fastslå intraprediksjonsmodusen for TU'en basert på avbildningen. Nærmere bestemt kan videokoderen intrapredikere en predikert blokk anvendt for å regne ut en TU ved anvendelse av intraprediksjonsmodusen for det mindre settet til hvilken den signaliserte intraprediksjonsmodusen for det større settet er avbildet. Likeledes kan en videodekoder inkludere samme løsning, slik at videodekoderen kan bestemme intraprediksjonsmodi for hver TU i en mottatt CU. Alternativt kan antallet prediksjonsmodi for en TU økes slik at det samsvarer med antallet prediksjonsmodi for den tilhørende CU'en. [0034] I noen eksempler, for noen intraprediksjonsmodi, kan flere transformasjoner være mulig for TU'er av bestemte størrelser. I slike tilfeller kan en videodekoder være ute av i stand til å finne transformasjonen som skal anvendes på TU'en utelukkende ut fra intraprediksjonsmodusen. Videokoderen kan derfor være nødt til å signalisere transformasjonen som skal anvendes for TU'er med størrelser for hvilke flere transformasjoner er mulig. Heller enn å signalisere transformasjonen for hver slik TU, kan denne informasjonen bli signalisert på CU-nivå. I et slikt tilfelle kan denne transformasjonen gjelde for alle TU'er inneholdt i CU'en. For TU'er med størrelser for hvilke bare én transformasjon er avbildet til den signaliserte intraprediksjonsmodusen, kan den avbildede transformasjonen bli anvendt. [003] Videre trenger syntaksen som spesifiserer transformasjonen bare forefnnes dersom CU'en inkluderer en TU med en størrelse for hvilken flere transformasjoner er mulig. For TU'er for hvilke bare én transformasjon er mulig, kan videokoderen og - dekoderen bestemme transformasjonen som skal anvendes basert på den valgte intraprediksjonsmodusen. For TU'er med en størrelse for hvilken flere transformasjoner

13 er mulig, kan imidlertid videokoderen eksplisitt signalisere transformasjonen som skal anvendes for alle TU'er av tilsvarende størrelse i CU'en, f.eks. ved å signalisere transformasjonen som skal anvendes i roten av TU-kvadtreet for CU'en. [0036] På denne måten, dersom en videodekoder møter på en TU med en størrelse for hvilken flere transformasjoner er mulig basert på intraprediksjonsmodusen for CU'en svarende til TU'en, kan dekoderen bestemme transformasjonen å anvende basert på den eksplisitte signaleringen. For andre TU'er kan videodekoderen anvende transformasjonen tilknyttet intraprediksjonsmodusen signalisert for CU'en. [0037] I noen eksempler kan en videokoder anvende flere enn én transformasjon (f.eks. flere enn én separabel transformasjon) på en residualverdi for en CU. For eksempel kan videokoderen transformere en TU i CU'en én gang ved anvendelse av en første transformasjon, og med det produsere et første sett av transformasjonskoeffisienter, så anvende en andre transformasjon på det første settet av transformasjonskoeffisienter, og med det produsere et andre sett av transformasjonskoeffisienter. Denne prosessen med å anvende to eller flere transformasjoner på en TU kan omtales som en kaskadet transformasjon. I noen eksempler kan den andre transformasjonen bli anvendt bare på en delmengde av koeffisienter produsert av den første transformasjonen. Det må forstås at den andre transformasjonen kan omfatte en andre separabel transformasjon, mens den første transformasjonen kan omfatte en første separabel transformasjon. Kaskadede transformasjoner kan derfor bli anvendt ved å anvende totalt fire matriser på koeffisientene: to for den første separable transformasjonen og ytterligere to for den andre separable transformasjonen. [0038] I noen eksempler kan den andre transformasjonen (dvs. den andre separable transformasjonen) svare til en rotasjonstransformasjon (ROT). En rotasjonstransformasjon kan generelt betraktes å endre koordinatsystemet til transformasjonsbasisen. For eksempel kan en videokoder først anvende en retningstransformasjon og så en rotasjonstransformasjon, på en TU. Som et annet eksempel kan videokoderen først anvende en DCT på en TU, og så anvende en rotasjonstransformasjon på TU'en. Videokoderen kan være innrettet med flere rotasjonstransformasjoner. Videokoderen kan videre være innrettet for å anvende en rotasjonstransformasjon etter bestemte retningstransformasjoner og/eller i forbindelse med bestemte intraprediksjonsmodi. Nærmere bestemt kan videokoderen være innrettet for å anvende en rotasjonstransformasjon for bestemte kombinasjoner av retningstransformasjoner og bestemte intraprediksjonsmodi. De forskjellige rotasjonstransformasjonene kan være indeksert med en bestemt verdi, f.eks. rotasjonsvinkelen. I noen eksempler blir ikke alle koeffisientene transformert ved anvendelse av en rotasjonstransformasjon. For eksempel kan en videokoder være innrettet for kun å rotasjonstransformere lavfrekvente transformasjonskoeffisienter i en TU.

14 [0039] I noen eksempler inkluderer teknikkene ifølge denne oppfinnelsen videre å intramoduspredikere en TU som har en detektert kantlinje innenfor TU'en. For eksempel kan en videokoderenhet detektere tilstedeværelse av en kantlinje i en naboblokk, og så fastslå om kantlinjen fortsetter inn i den aktuelle TU'en. Kantlinjehåndterende prediksjonsmodi kan tilveiebringes for å intrapredikere en slik TU. Videokoderen kan avgjøre om den skal predikere TU'en ved anvendelse av den kantlinjebaserte prediksjonsmodusen eller en annen retningsbestemt intraprediksjonsmodus. Når en kantlinje blir fastslått å forefinnes i TU'en, og når kantlinjebasert prediksjonsmodus er valgt, kan en verdi som angir DC-prediksjonsmodus bli anvendt for å signalisere intraprediksjonsmodusen som anvendes, men som følge av fastslåelsen av eksistens av kantlinjen kan denne verdien bli tolket å angi kantlinjehåndterende prediksjonsmodus. Videre kan vinkelen til kantlinjen bli bestemt og avbildet til en retningstransformasjon på en måte tilsvarende avbildningen av retningsbestemte intraprediksjonsmodi til retningstransformasjoner omtalt over. Tilsvarende kan et skannemønster avbildet til retningstransformasjonenogså bli anvendt i dette eksempelet. [0040] Denne oppfinnelsen tilveiebringer også teknikk for skanning av transformasjonskoeffisienter for å produsere en éndimensjonal vektor som så kan bli entropikodet. Ifølge disse teknikkene kan en videokoder være innrettet for å velge et fast skannemønster basert på forskjellige faktorer, eller for å utføre et adaptivt skann. For eksempel kan en videokoder inkludere et sett av faste skannemønstre. Videokoderen kan velge ett av de faste skannemønstrene basert på forskjellige kriterier, som for eksempel en intraprediksjonsmodus, en transformasjon valgt for en TU, hvorvidt TU'en blir transformert ved anvendelse av en kaskadet transformasjon, en rotasjonstransformasjon valgt for TU'en, eller en hvilken som helst kombinasjon av dette. For eksempel kan videokoderen velge én fra et sett av forhåndsdefinerte skann basert på en intraprediksjonsmodus, en sekundær transformasjon eller en kombinasjon av dette. I noen eksempler kan videokoderen velge en skanneindeks basert på én eller flere av faktorene omtalt over, hvor skanneindeksen kan svare til enten et fast eller et adaptivt skann. [0041] I noen eksempler kan en videokoder være innrettet å skanne transformasjonskoeffisienter adaptivt. Videokoderen kan lagre et innledende, fast skannemønster. Etter hvert som videokoderen koder inn blokker for et bilde kan videokoderen oppdatere skannemønsteret adaptivt. Videokoderen kan for eksempel samle inn statistikk som indikerer om koeffisienter i bestemte posisjoner ofte har verdien null, og dersom en koeffisient i en gitt posisjon vanligvis er null, kan videokoderen velge å skanne denne koeffisienten senere enn andre koeffisienter som vanligvis har verdier forskjellige fra null. Videre kan videokoderen lagre separate faste skann og/eller skannestatistikk for forskjellige kombinasjoner av faktorer, som for eksempel en intraprediksjonsmodus, en

15 transformasjon valgt for en TU, hvorvidt TU'en er transformert ved anvendelse av en kaskadet transformasjon, en rotasjonstransformasjon valgt for TU'en, eller en hvilken som helst kombinasjon av dette. I noen eksempler kan en videokoder lagre separat statistikk for hver kombinasjon av kaskadede transformasjoner, f.eks. en første transformasjon etterfulgt av en rotasjonstransformasjon. I noen eksempler kan videokoderen anvende et adaptivt skann når videokoderen anvender en kaskadet transformasjon, og et fast skann når videokoderen anvender én enkelt transformasjon. [0042] Som angitt over genererer skanning av en todimensjonal matrise av transformasjonskoeffisienter en éndimensjonal vektor som så kan bli entropikodet. I noen eksempler kan en videokoder entropikode transformasjonskoeffisientene med bruk av kontekstadaptiv binæraritmetisk koding (CABAC). Videokoderen kan også entropikode syntakselementer, som for eksempel et signifikant koeffisient-flagg og et siste koeffisient-flagg. Når den skanner transformasjonskoeffisienter adaptivt, kan en videokoder sette verdien til signifikant koeffisient-flagget for å angi hvorvidt koeffisientene er signifikante eller ikke. Videokoderen kan for eksempel være innrettet for å fastslå at en koeffisient er signifikant når verdien til koeffisienten er forskjellig fra null. Videokoderen kan også sette verdien til siste koeffisient-flagget for å angi den siste koeffisienten i vektoren produsert av det adaptive skannet. En videodekoder kan anvende disse syntakselementene for å oppdatere lokalt lagret statistikk, for inverst adaptivt å skanne de entropikodede koeffisientene. Denne oppfinnelsen tilveiebringer teknikker for å velge en kontekstmodell når CABAC blir utført for å kode slike syntakselementer. Videokoderen kan velge kontekstmodellen basert for eksempel på en intraprediksjonsmodus for CU'en som kodes, blant andre elementer. [0043] Figur 1 er et blokkdiagram som illustrerer et eksempel på et system for innkoding og dekoding av video som kan anvende teknikker for innkoding og dekoding av transformasjonsenheter i en kodeenhet. Som vist i figur 1 innbefatter systemet en kildeanordning 12 som sender innkodet video til en målanordning 14 via en kommunikasjonskanal 16. Kildeanordningen 12 og målanordningen 14 kan omfatte hvilke som helst av en rekke forskjellige anordninger. I noen tilfeller kan kildeanordningen 12 og målanordningen 14 omfatte trådløse kommunikasjonsanordninger, så som trådløse håndsett, såkalte mobil- eller satellittradiotelefoner eller hvilke som helst trådløse anordninger i stand til å kommunisere videoinformasjon over en kommunikasjonskanal 16, i hvilket tilfelle kommunikasjonskanalen 16 er trådløs. [0044] Teknikkene ifølge denne oppfinnelsen, som vedrører innkoding og dekoding av transformasjonsenheter, er imidlertid ikke nødvendigvis begrenset til trådløse anvendelser eller omgivelser. For eksempel kan disse teknikkene være anvendelige for fjernsynskringkasting over eteren, kabelfjernsynssendinger, satellittfjernsynssendinger, internett-baserte videosendinger, innkodet digital video som er kodet inn på et lagringsmedium, eller andre scenarier. Kommunikasjonskanalen 16 kan sålees omfatte

16 en hvilken som helst kombinasjon av trådløse eller kabelbaserte medier egnet for overføring eller lagring av innkodede videodata. [004] I eksempelet i figur 1 innbefatter kildeanordningen 12 en videokilde 18, en videokoder, en modulator/demodulator (modem) 22 og en sender 24. Målanordningen 14 innbefatter en mottaker 26, et modem 28, en videodekoder og en fremvisningsanordning 32. Ifølge denne oppfinnelsen kan videokoderen i kildeanordningen 12 være innrettet for å anvende teknikkene for innkoding og dekoding av transformasjonsenheter ifølge denne oppfinnelsen. I andre eksempler kan en kildeanordning og en målanordning inkludere andre komponenter eller innretninger. For eksempel kan kildeanordningen 12 motta videodata fra en ekstern videokilde 18, så som et eksternt kamera. Likeledes kan en målanordning 14 ha grensesnitt mot en ekstern fremvisningsanordning, heller enn å inkludere en integrert fremvisningsanordning. [0046] Det illustrerte systemet i figur 1 er kun ett eksempel. Teknikker for innkoding og dekoding av transformasjonsenheter kan bli utført av en hvilken som helst digital anordning for koding og/eller dekoding av video. Selv om teknikkene ifølge denne oppfinnelsen i alminnelighet blir utført av en videokoderanordning eller en videodekoderanordning, kan teknikkene også bli utført av en videokoder/-dekoder, typisk omtalt som en "KODEK". Kildeanordningen 12 og målanordningen 14 er kun eksempler på slike koderanordninger hvor kildeanordningen 12 genererer kodede videodata for overføring til målanordningen 14. I noen eksempler kan anordningene 12, 14 jobbe på en hovedsakelig symmetrisk måte slik at hver av anordningene 12, 14 inkluderer komponenter for innkoding og dekoding av video. Systemet kan således støtte enveis eller toveis videooverføring mellom videoanordninger 12, 14, f.eks. for streaming av video, avspilling av video, kringkasting av video eller videotelefoni. [0047] Videokilden 18 i kildeanordningen 12 kan inkludere en videoopptaksanordning, så som et videokamera, et videoarkiv inneholdende tidligere innspilt video og/eller en videofeed fra en leverandør av videoinnhold. Som et ytterligere alternativ kan videokilden 18 generere datagrafikk-baserte data som kildevideoen, eller en kombinasjon av linjevideo, arkivert video, og datamaskin-generert video. I noen tilfeller, dersom videokilden 18 er et videokamera, kan kildeanordningen 12 og målanordningen 14 være såkalte kameratelefoner eller videotelefoner. Som nevnt over kan imidlertid teknikkene som beskrives i denne oppfinnelsen være anvendelige for videokoding generelt, og kan bli anvendt i trådløse og/eller kabelbaserte anvendelser. I hvert tilfelle kan innspilt, forhåndsinnspilt eller datamaskin-generert video bli kodet inn av videokoderen. Den innkodede videoinformasjonen kan så bli modulert av modemet 22 i henhold til en kommunikasjonsstandard, og sendt til målanordningen 14 via senderen 24. Modemet 22 kan inkludere forskjellige miksere, filtre, forsterkere eller

17 andre komponenter innrettet for signalmodulering. Senderen 24 kan inkludere kretser innrettet for utsending av data, inkludert forsterkere, filtre og én eller flere antenner. [0048] Mottakeren 26 i målanordningen 14 mottar informasjon over kanalen 16, og modemet 28 demodulerer informasjonen. Igjen kan videokodingsprosessen implementere én eller flere av teknikkene som beskrives her for å kode og dekode transformasjonsenheter. Informasjonen som kommuniseres over kanalen 16 kan inkludere syntaksinformasjon definert av videokoderen, som også anvendes av videodekoderen, som inkluderer syntakselementer som beskriver trekk og/eller prosessering av kodeenheter eller andre enheter av kodede videodata, f.eks. grupper av bilder (GOP'er), bildelinjer, rammer og liknende. En CU-kvadtre-datastruktur kan være en del av syntaksinformasjonen for en største kodeenhet. Nærmere bestemt kan hver LCU innlemme syntaksinformasjon i form av et CU-kvadtre, som kan beskrive hvordan LCU'en er splittet opp i under-cu'er og signalisere informasjon om hvordan LCU'en og under-cu'ene er innkodet. Likeledes kan TU-kvadtre-datastrukturer være en del av syntaksinformasjonen for blad-cu'er i LCU'en, som kan beskrive hvordan de respektive blad-cu'ene er oppsplittet i TU'er. [0049] Videodekoderen kan anvende CU-kvadtreet og TU-kvadtreet for å bestemme hvordan den skal dekode CU'er i et mottatt bilde, herunder TU'er i CU'ene. Videodekoderen kan så dekode CU'ene og sende dekodede videodata til fremvisningsanordningen 32. Fremvisningsanordningen 32 viser de dekodede videodataene for en bruker, og kan omfatte en hvilken som helst av en rekke forskjellige fremvisningsanordninger, så som et katodertrålerør (CRT), en LCD-skjerm, en plasmaskjerm, en OLED-(Organic Light Emitting Diode)-skjerm eller en annen type fremvisningsanordning. [000] I eksempelet i figur 1 kan kommunikasjonskanalen 16 omfatte et hvilket som helst trådløst eller kabelbasert kommunikasjonsmedium, så som et RF-(radiofrekvens)- spektrum eller én eller flere fysiske overføringslinjer, eller en hvilken som helst kombinasjon av trådløse og kabelbaserte medier. Kommunikasjonskanalen 16 kan være del av et pakkebasert nettverk, så som et lokalt nettverk, et regionalt nettverk eller et globalt nettverk, så som Internett. Kommunikasjonskanalen 16 representerer generelt et hvilket som helst passende kommunikasjonsmedium, eller en samling av forskjellige kommunikasjonsmedier, for å sende videodata fra kildeanordningen 12 til målanordningen 14, herunder en hvilken som helst passende kombinasjon av kabelbaserte eller trådløse medier. Kommunikasjonskanalen 16 kan inkludere rutere, svitsjer, basestasjoner eller hvilket som helst annet utstyr som kan være nyttig for å lette kommunikasjon fra kildeanordningen 12 til målanordningen 14. [001] Videokoderen og videodekoderen kan operere i henhold til en videokomprimeringsstandard, så som standarden ITU-T H.264, alternativt omtalt som MPEG-4, del, AVC (Advanced Video Coding). Som et annet eksempel kan

18 videokoderen og videodekoderen operere i henhold til standarden HEVC (High Efficiency Video Coding), og kan være i overensstemmelse med HEVC Test Model (HM). Teknikkene ifølge denne oppfinnelsen er imidlertid ikke begrenset til noen bestemt kodingsstandard. Andre eksempler inkluderer MPEG-2 og ITU-T H.263. Selv om det ikke er vist i figur 1, kan, i noen aspekter, hver av videokoderen og videodekoderen være integrert med en lydinnkoder og -dekoder, og kan inkludere passende MUX-DEMUX-enheter, eller annen maskinvare og programvare, for å ta seg av koding av både lyd og bilde i en felles datastrøm eller separate datastrømmer. Om aktuelt kan MUX-DEMUX-enheter være i overensstemmelse med multiplekserprotokollen ITU H.223, eller andre protokoller så som UDP (User Datagram Protocol). [002] Standarden ITU-T H.264/MPEG-4 (AVC) ble formulert av ITU-T VCEG (Video Coding Experts Group) sammen med ISO/IEC MPEG (Moving Picture Experts Group) som et produkt av et fellesskap kjent som JVT (Joint Video Team). I noen aspekter kan teknikkene som beskrives i denne oppfinnelsen bli anvendt på anordninger som generelt følger standarden H.264. Standarden H.264 er beskrevet i ITU-T Recommendation H.264, avansert videokoding for generiske audiovisuelle tjenester, av ITU-T Study Group, og datert mars 0, som kan omtales her som standarden H.264 eller spesifikasjonen H.264, eller standarden eller spesifikasjonen H.264/AVC. JVT (Joint Video Team) jobber stadig med utvidelser av H.264/MPEG-4 AVC. [003] Hver av videokoderen og videodekoderen kan realiseres som en hvilken som helst av en rekke forskjellige passende innkoderkretser, så som én eller flere mikroprosessorer, digitale signalprosessorer (DSP'er), applikasjonsspesifikke integrerte kretser (ASIC'er), feltprogrammerbare portmatriser (FPGA'er), diskret logikk, programvare, maskinvare, fastvare eller hvilke som helst kombinasjoner av dette. Når teknikkene realiseres i programvare, kan en anordning lagre instruksjoner for programvaren i et passende, ikke-volatilt datamaskinlesbart medium og utføre instruksjonene ved anvendelse av én eller flere prosessorer for å utføre teknikkene ifølge denne oppfinnelsen. Hver av videokoderen og videodekoderen kan være innlemmet i én eller flere kodere eller dekodere, som begge kan være integrert som del av en kombinert koder/dekoder (KODEK) i et respektivt kamera, en datamaskin, mobil anordning, abonnentanordning, kringkastingsanordning, dekoderboks, tjener eller liknende. [004] En videosekvens inkluderer typisk en serie av videorammer. En gruppe av bilder (GOP) omfatter i alminnelighet en serie av én eller flere videorammer. En GOP kan inkludere syntaksdata i en header for GOP'en, en header i én eller flere rammer for GOP'en, eller andre steder, som beskriver antall rammer innlemmet i GOP'en. Hver ramme kan inkludere rammesyntaksdata som beskriver en innkodingsmodus for den aktuelle rammen. Videokoderen jobber typisk på kodeenheter innenfor

19 enkeltvideorammer for å kode inn videodataene. En kodeenhet kan svare til en LCU eller en under-cu, og betegnelsen CU kan henvise til en LCU eller en under-cu. Headerinformasjon for en LCU kan beskrive LCU'ens størrelse, antallet ganger LCU'en kan splittes (omtalt som CU-dybde i denne beskrivelsen), og annen informasjon. Hver videoramme kan inkludere et flertall bildelinjer, og hver bildelinje kan inkludere et flertall LCU'er. [00] I noen eksempler kan prediksjon bli utført for forskjellige CU-størrelser. Størrelsen til en LCU kan defineres av syntaksinformasjon. Antatt at størrelsen til en gitt bladnode-cu er 2Nx2N, kan intraprediksjonsstørrelser inkludere 2Nx2N eller NxN, i noen eksempler, og symmetriske interprediksjonsstørrelser kan inkludere 2Nx2N, 2NxN, Nx2N, eller NxN. I noen eksempler kan asymmetrisk splitting bli anvendt for interprediksjon med størrelser på 2NxnU, 2.NxnD, nlx.2n og nrx2n. Ved asymmetrisk splitting blir én retning for en CU ikke splittet, mens den andre retningen blir splittet opp i 2% og 7%. Hvilken andel av CU'en som er 2%-delen angis av en "n" etterfulgt av en angivelse av "Opp", "Ned", "Venstre" eller "Høyre". For eksempel henviser "2NxnU" således til en 2Nx2N CU som er splittet horisontalt med en 2Nx,N PU øverst og en 2Nx1,N PU nederst. [006] I denne beskrivelsen kan "NxN" og "N ganger N" bli anvendt om hverandre for å henvise til pikseldimensjonene til en blokk (f.eks. CU, PU eller TU) med hensyn til vertikale og horisontale dimensjoner, f.eks. 16x16 pikseler eller 16 ganger 16 pikseler. Generelt vil en 16x16-blokk ha 16 pikseler i vertikal retning (y = 16) og 16 pikseler i horisontal retning (x = 16). Likeledes har en NxN-blokk generelt N pikseler i vertikal retning og N pikseler i horisontal retning, hvor N representerer en ikke-negativ heltallsverdi. Pikslene i en blokk kan være anordnet i rader og kolonner. Dessuten trenger ikke blokker nødvendigvis ha samme antall pikseler i horisontal retning som i vertikal retning. For eksempel kan blokker omfatte NxM pikseler, hvor M ikke nødvendigvis er lik N. [007] PU'er i en CU kan omfatte pikseldata i det romlige domenet (også omtalt som pikseldomenet), mens TU'er i CU'en kan bli transformert for å generere koeffisienter i transformasjonsdomenet, f.eks. etter bruk av en transformasjon, så som en diskret cosinustransformasjon (DCT), en heltallstransformasjon, en wavelet-transformasjon eller en konseptuelt tilsvarende transformasjon på residual-videodata. Residualdataene representerer i alminnelighet pikselforskjeller mellom verdier for en PU og verdiene for samlokaliserte, uinnkodede pikseler fra de innmatede videodataene. Koeffisientene kan også bli kvantisert. De transformerte koeffisientene i TU'en kan sies å være i frekvensdomenet. [008] Videokoderen kan implementere hvilke som helst av eller alle teknikkene ifølge denne oppfinnelsen for å forbedre koding av transformasjonsenheter i en kodeenhet. Likeledes kan videodekoderen implementere hvilke som helst av eller

20 alle disse teknikkene for å forbedre dekoding av transformasjonsenheter i en kodeenhet. Generelt er teknikkene ifølge denne oppfinnelsen rettet mot transformasjon av koeffisienter i transformasjonsenheter etter utregning av koeffisientene basert på intramodusprediksjon. Imidlertid kan noen aspekter ved denne oppfinnelsen også bli realiseres i forbindelse med interprediksjonskoding. Kun som et eksempel vil disse teknikkene bli beskrevet i forbindelse med intraprediksjonskoding av TU'er. Det må imidlertid forstås at noen aspekter ved disse teknikkene også kan bli utført i forbindelse med interprediksjonskoding. [009] Videokoderen kan motta en LCU og avgjøre om den skal splitte opp LCU'en i fire kvadranter, hver omfattende en under-cu, eller om den skal kode LCU'en uten oppsplitting. Etter en avgjørelse om å splitte opp en LCU skal i under-cu'er, kan videokoderen avgjøre om den skal splitte opp hver under-cu i fire kvadranter, hver omfattende en under-cu. Videokoderen kan fortsette rekursivt å avgjøre om en CU skal splittes opp, med et maksimalt antall oppsplittinger angitt av LCU'ens dybde. Videokoderen kan tilveiebringe en CU-kvadtre-datastruktur som indikerer oppsplitting av en LCU og under-cu'er av LCU'en. LCU'en kan svare til en rotnode i LCU-kvadtreet. Hver node i CU-kvadtreet kan svare til en CU av LCU'en. Videre kan hver node innlemme et splittet-flagg som angir om den tilhørende CU'en er splittet. [0060] Dersom LCU'en er splittet, kan for eksempel videokoderen sette verdien til splittet-flagget i rotnoden for å angi at LCU'en er splittet. Deretter kan videokoderen sette verdier for undernoder til rotnoden for å angi hvilke, om noen, av under-cu'ene av LCU'en som er splittet. En CU som ikke er splittet kan svare til en bladnode i CUkvadtre-datastrukturen, hvor en bladnode ikke har undernoder. Videre kan hver bladnode-cu kan inkludere én eller flere TU'er, som angitt av et TU-kvadtre for bladnode-cu'en. [0061] Videokoderen kan kode inn hver under-cu i LCU'en svarende til en bladnode i kvadtre-datastrukturen. For å gi et eksempel beskriver denne beskrivelsen teknikkene i tilknytning til intraprediksjonskoding av TU'er svarende til bladnode- CU'en. Ved intramoduskoding kan videokoderen danne prediksjonsenheter (PU'er) for hver TU svarende til en bladnode i TU-kvadtre-datastrukturen. I noen eksempler kan videokoderen velge én av trettifire forskjellige intraprediksjonsmodi for CU'en og signalisere den valgte intraprediksjonsmodusen i rotnoden i TU-kvadtreet. Med start ved en første, største TU (samme størrelse som bladnode-cu'en i CU-kvadtreet) kan videokoderen avgjøre om den skal dele opp den største TU'en og, rekursivt, om den skal dele opp under-tu'er i moder-tu'en. Videokoderen kan videre signalisere en intraprediksjonsmodus i bladnode-cu-kvadtreet for CU'en som inkluderes TUkvadtreet, hvor den signaliserte intraprediksjonsmodusen kan beskrive intraprediksjonsmodusen som skal anvendes for å regne ut predikerte verdier for hver av TU'ene i TU-kvadtreet svarende til CU'en. Videokoderen henter frem prediksjons-

21 dataene for TU'ene fra tilstøtende, tidligere kodede videodata, i henhold til den valgte intraprediksjonsmodusen. På denne måten har PU'er i en CU predikert ved anvendelse av en intraprediksjonsmodus samme størrelse som TU'er i CU'en. [0062] I samsvar med teknikkene ifølge denne oppfinnelsen, dersom den valgte intraprediksjonsmodusen ikke er tilgjengelig for den aktuelle CU'en, f.eks. som følge av dens størrelse, kan videokoderen velge en intraprediksjonsmodus til hvilken modusen signalisert ved roten av kvadtreet blir avbildet. Nærmere bestemt kan videokoderen innlemme informasjon som avbilder hver av modiene i et stort sett av modi til modi i et mindre sett, f.eks. en delmengde av det store settet, i en mange-til-éntilordning. Videokoderen kan så intrapredikere én eller flere PU'er for CU'en ved anvendelse av intraprediksjonsmodusen fra det mindre settet. På denne måten trenger videokoderen bare å signalisere én intraprediksjonsmodus for LCU'en, selv om videokoderen kan anvende flere modi for å intrapredikere under-cu'er av LCU'en uten eksplisitt å signalisere hver av modiene og under-cu'ene for hvilke modiene blir anvendt. Flere intraprediksjonsmodi kan derfor bli anvendt uten å øke mengden informasjon som innlemmes i bitstrømmen, noe som reduserer administrasjon. I en annen utførelsesform kan et større antall prediksjonsretninger være tillatt på CU-nivå for å muliggjøre bruk av samme intraprediksjonsmodus for LCU'en uavhengig av størrelsen til under-cu'er eller størrelsen til PU'er. [0063] Videokoderen kan videre være utformet med kantlinjebaserte prediksjonsmodi for å predikere TU'er i en CU som videokoderen slår fast at inkluderer en kantlinje. Generelt svarer en kantlinje til en høyfrekvent endring langs en forholdsvis rett linje gjennom TU'en. For eksempel kan en kantlinje opptre langs randen til et objekt representert i TU'en med kontrast mot en bakgrunn også representert i TU'en. For å detektere en kantlinje i en TU, kan videokoderen regne ut gradienter for pikseler i TU'en og avgjøre om gradientene identifiserer en linje gjennom TU'en. Etter å ha slått fast at en aktuell TU inkluderer en kantlinje, kan videokoderen avgjøre om den skal anvende den kantlinjebaserte prediksjonsmodusen. Dersom en slik kantlinje detekteres, og når den kantlinjebaserte prediksjonsmodusen er valgt, kan videokoderen signalisere bruk av den kantlinjebaserte prediksjonsmodusen ved anvendelse av en verdi som ellers ville angi bruk av DC-prediksjonsmodus. Nærmere bestemt, etter å ha detektert tilstedeværelse av en kantlinje i en aktuell blokk, kan videokoderen velge en intraprediksjonsmodus fra et sett som inkluderer den kantlinjebaserte prediksjonsmodusen og andre retningsbestemte prediksjonsmodi (men ikke inkluderer DCmodus), og når den kantlinjebaserte prediksjonsmodusen er valgt, signalisere bruk av kantlinjebasert prediksjonsmodus på samme måte som den ville signalisert bruk av DC-prediksjonsmodus. [0064] Etter intraprediktiv eller interprediktiv koding for å generere predikerte data for en TU i en CU, kan videokoderen regne ut residualdata, omfattende koeffisienter for

22 1 2 3 TU'ene som representerer forskjeller i pikselnivå mellom de predikerte dataene og de opprinnelige dataene for TU'en. Videokoderen kan danne én eller flere TU'er inneholdende residualdata for CU'en på denne måten. Videokoderen kan så transformere TU'ene. I samsvar med teknikkene ifølge denne oppfinnelsen kan videokoderen velge en transformasjon å anvende på en TU basert på en intraprediksjonsmodus anvendt for å intramoduspredikere data for TU'en. [006] I noen eksempler kan videokoderen inkludere konfigurasjonsdata som tilveiebringer en mange-til-én-avbildning mellom et stort sett av intraprediksjonsmodi og et mindre sett av intraprediksjonsmodi. For eksempel kan videokoderen inkludere konfigurasjonsdata som tilveiebringer en avbildning mellom de 34 intraprediksjonsmodiene i HM og de ni intraprediksjonsmodiene i H.264. Videre kan videokoderen inkludere konfigurasjonsdata som tilveiebringer en avbildning mellom det mindre settet av intraprediksjonsmodi og retningstransformasjoner. Settet av retningstransformasjoner kan ha samme størrelse som det mindre settet av intraprediksjonsmodi, slik at det er en én-til-én-avbildning mellom det mindre settet av intraprediksjonsmodi og settet av retningstransformasjoner. På denne måten kan konfigurasjonsdataene for videokoderen tilveiebringe en indirekte mange-til-énavbildning mellom det store settet av intraprediksjonsmodi og settet av retningstransformasjoner. Alternativt kan det i noen eksempler være en én-til-én-avbildning av det store settet av retningstransformasjoner til et større sett av retningstransformasjoner eller andre konstruerte transformasjoner, så som diskrete cosinustransformasjoner, diskrete sinustransformasjoner eller andre konseptuelt tilsvarende transformasjoner. Uansett, med bruk av avbildningen, kan videokoderen velge en transformasjon for hver TU basert på intraprediksjonsmodusen valgt for en CU, inkludert TU'en. [0066] I noen eksempler kan flere retningstransformasjoner være mulig for en TU av en gitt størrelse. I noen eksempler kan videokoderen signalisere en valgt intraprediksjonsmodus (f.eks. en valgt intraprediksjonsretning) ved roten av en TUkvadtre-datastruktur svarende til en CU (nærmere bestemt en bladnode-cu i CUkvadtreet), og den valgte intraprediksjonsmodusen kan gjelde for alle TU'er i CU'en. Dersom alle TU'er i CU'en har størrelser for hvilke bare én transformasjon er mulig, kan videokoderen gå frem i samsvar med eksempelet over, der transformasjonen kan fastslås fra en signalisert intraprediksjonsmodus for LCU'en. Dersom derimot minst én TU i CU'en har en størrelse for hvilken flere transformasjoner er mulig, kan videokoderen velge én av de mulige transformasjonene og signalisere den valgte transformasjonen i rotnoden i TU-kvadtreet. Videokoderen kan således anvende den signaliserte transformasjonen for å transformere alle TU'er i CU'en som har en størrelse med flere tilhørende mulige transformasjoner. På denne måten kan videokoderen signalisere en transformasjon eksplisitt, uten å forbruke for mye ekstra båndbredde.

23 [0067] I noen eksempler, når videokoderen anvender en kantlinjebasert intraprediksjonsmodus for å predikere en verdi for en TU, kan videokoderen velge en transformasjon å anvende på TU'en basert på en vinkel til kantlinjen. Som omtalt over kan videokoderen slå fast at en kantlinje foreligger i en aktuell TU basert på deteksjon av en kantlinje i en tilstøtende TU som deler en grense med den aktuelle TU'en. I samsvar med teknikkene ifølge denne oppfinnelsen kan videokoderen regne ut en relativ vinkel for kantlinjen og anvende vinkelen til kantlinjen for å velge en retningstransformasjon, på en måte tilsvarende som å velge en retningstransformasjon for en intraprediksjonsmodus. For eksempel kan videokoderen sammenlikne vinkelen til kantlinjen med vinkler for de retningsbestemte intraprediksjonsmodiene, bestemme en retningsbestemt intraprediksjonsmodus som har en vinkel som er nærmest vinkelen til kantlinjen, og så transformere TU'en predikert med kantlinjebasert prediksjonsmodus ved anvendelse av den transformasjonen som er avbildet til den fastslåtte intraprediksjonsmodusen. [0068] I noen eksempler kan videokoderen være innrettet for å anvende flere enn én transformasjon på en TU, hvilket tilfelle denne beskrivelsen omtaler som en kaskadet transformasjon. For eksempel kan den første transformasjonen svare til en diskret cosinustransformasjon (DCT) eller en Karhunen-Loève-transformasjon (KLT), også i alminneliget omtalt som en retningstransformasjon. Når en retningstransformasjon velges basert på en intraprediksjonsmodus avbildet til retningstransformasjonen, kan transformasjonen omtales som en modus-avhengig retningstransformasjon (MDDT - Mode-Dependent Directional Transformation). Denne beskrivelsen henviser også til en transformasjon valgt basert på en intraprediksjonsmodus som en konstruert transformasjon, som kan inkludere retningstransformasjoner, diskrete cosinustransformasjoner, diskrete sinustransformasjoner eller andre konseptuelt tilsvarende transformasjoner valgt spesifikt for en prediksjonsmodus. [0069] Den andre transformasjonen kan svare til en rotasjonstransformasjon. I noen eksempler kan videokoderen være utformet med flere rotasjonstransformasjoner. Videokoderen kan velge én av rotasjonstransformasjonene å anvende ved å regne ut "Rate-Distortion"-kostnader for hver av rotasjonstransformasjonene, i noen eksempler. Videokoderen kan være innrettet for å anvende rotasjonstransformasjonen på en lavere antall koeffisienter enn den første transformasjonen. I samsvar med teknikkene ifølge denne oppfinnelsen kan videokoderen inkludere konfigurasjonsdata for modusavhengige rotasjonstransformasjoner (MDROT), inkludert en kolonnetransformasjonsmatrise og en radtransformasjonsmatrise. Intraprediksjonsmodiene kan bli avbildet både til en første transformasjon, f.eks. én av MDDT'ene, og én av rotasjonstransformasjonene, f.eks. én av MDROT'ene. En signalisert intraprediksjonsmodus for en CU kan således også gi en angivelse av en første transformasjon som skal anvendes på en TU i LCU'en og en andre transformasjon som skal anvendes på TU'en.

24 Selv om MDROT-transformasjoner er beskrevet som eksempler, må det forstås at den andre transformasjonen kan omfatte andre transformasjoner, så som retningstransformasjoner. [0070] Ved å transformere koeffisienter i en TU produserer en videokoder en matrise av transformasjonskoeffisienter. Denne matrisen har samme størrelse som TU'en. Generelt klargjør transformasjonsprosessen residualdataene for kvantisering, som komprimerer dataene ytterligere. Med kvantisering menes i alminnelighet en prosess der transformasjonskoeffisientene blir kvantisert for muligens å redusere mengden data som anvendes for å representere koeffisientene. Kvantiseringsprosessen kan redusere bit-dybden for noen av eller alle koeffisientene. For eksempel kan en n-bits verdi bli avrundet ned til en m-bits verdi under kvantisering, hvor n er større enn m. [0071] I noen eksempler kan videokoderen anvende en forhåndsdefinert skannerekkefølge for å skanne de kvantiserte transformasjonskoeffisientene for å generere en vektor som kan bli entropikodet. For eksempel, etter en tradisjonell transformasjon eller en modusavhengig transformasjon, kan videokoderen være innrettet for å anvende et sikksakkskann. Videokoderen kan også være innrettet for å anvende et skann basert på en intraprediksjonsmodus og/eller én eller flere transformasjoner anvendt på blokken. I noen eksempler kan videokoderen utføre et adaptivt skann etter transformasjon og kvantisering av koeffisienter for en TU. I noen eksempler kan videokoderen omfatte konfigurasjonsdata som definerer forskjellige skanneskjemaer for hvert mulige transformasjonsskjema. For eksempel kan videokoderen inkludere konfigurasjonsdata omfattende en én-til-én-avbildning mellom et sett av retningstransformasjoner og et sett av forhåndsdefinerte skannemønstre. Skannemønstrene kan være definert basert på empirisk testing av skann etter en gitt retningstransformasjon, for å optimalisere plasseringen av transformasjonskoeffisienter i vektoren etter den aktuelle retningsbestemte transformasjonen. Alternativt kan videokoderen inkludere konfigurasjonsdata som definerer skanneindekser til hvilke intraprediksjonsmodi (eller transformasjonsskjemaer) kan bli avbildet, hvor skanneindeksene kan angi enten forhåndsdefinerte skann eller adaptive skann. [0072] Følgelig kan hver retningstransformasjon ha et tilhørende skannemønster som er forholdsvis optimalisert for denne retningsbestemte transformasjonen, basert på empirisk testing. Som angitt over trenger ikke videokoderen signalisere retningstransformasjonen eller skannemønsteret anvendt for en gitt TU, forutsatt at det foreligger en avbildning mellom en intraprediksjonsmodus signalisert i et TU-kvadtre for en CU som inkluderer TU'en og retningstransformasjonen og skannemønsteret. I forskjellige eksempler kan skannemønstrene være avhengige av en valgt første transformasjon (f.eks. DCT eller MDDT), en valgt andre transformasjon (f.eks. MDROT, DCT eller en annen sekundær separabel transformasjon), eller en

25 kombinasjon av begge. I noen eksempler kan én av to kaskadede transformasjoner omfatte en konstruert transformasjon anvendt i en gitt retning (f.eks. horisontal eller vertikal), og videokoderen kan velge en skannerekkefølge, i alminnelighet svarende til samme retning eller en ortogonal retning, basert på konfigurasjonsdataene. [0073] I eksempler hvor videokoderen anvender en kaskadet transformasjon på en TU, kan videokoderen adaptivt skanne koeffisienter fremkommet fra den kaskadede transformasjonen. For å utføre et adaptivt skann kan videokoderen i alminnelighet spore statistikk som indikerer om en gitt posisjon i matrisen av transformasjonskoeffisienter har større eller mindre sannsynlighet for å være signifikant (f.eks. ikke null). Videokoderen kan tilpasse skannemønsteret over tid slik at skannemønsteret svarer til disse statistiske sannsynlighetene. Nærmere bestemt kan det adaptive skannemønsteret forsøke å sikre at de transformasjonskoeffisientene som har en relativt høyere sannsynlighet for å være signifikante (f.eks. ikke null) blir skannet før transformasjonskoeffisienter som har en relativt lavere sannsynlighet for å være signifikante. Alternativt kan videokoderen velge en skanneindeks til hvilken den kaskadede transformasjonen blir avbildet. [0074] Videokoderen kan spore skannestatistikk for hver mulige kaskadede transformasjon separat. For eksempel kan sannsynligheten for en gitt koeffisientposisjon i transformasjonsmatrisen være forskjellig basert på den første og andre transformasjonen anvendt under en kaskadet transformasjon. Videokoderen kan derfor spore separate, uavhengige sett av statistikker for hver mulige kaskadet transformasjon. Som et eksempel, antatt at intraprediksjonsmodi er avbildet til både en MDDT og en MDROT (eller en annen sekundær separabel transformasjon), kan videokoderen spore uavhengig statistikk for hver kombinasjon av MDDT og MDROT (eller en annen sekundær transformasjon) anvendt på TU'er. Som et annet eksempel kan videokoderen være innrettet for å utføre kaskadet transformasjon bare når videokoderen anvender en DCT på en TU. På den måten kan videokoderen utføre adaptiv skanning og uavhengig spore statistikk for å utføre adaptiv skanning, basert på en valgt MDROT (eller en annen sekundær separabel transformasjon) for TU'en anvendt etter DCT-transformasjonen. [007] I noen eksempler, uansett om et adaptivt skann eller et forbestemt skann blir anvendt, kan videokoderen nulle ut koeffisienter i arrayet etter skannet. Nærmere bestemt kan videokoderen sette verdier for koeffisienter i posisjon N til enden av arrayet lik null. Verdien til N kan være knyttet til størrelsen til CU'en og/eller størrelsen til TU'en. I noen eksempler kan videokoderen nulle ut transformasjonskoeffisienter i matrisen før skanning, f.eks. alle andre koeffisienter i matrisen enn koeffisientene i øvre venstre hjørne av matrisen. [0076] Etter skanning av transformasjonsmatrisen for å danne en éndimensjonal vektor kan videokoderen entropikode den éndimensjonale vektoren, f.eks. i henhold til

26 innholdsadaptiv koding med variabel lengde (CAVLC), kontekstadaptiv binæraritmetisk koding (CABAC), syntaksbasert kontekstadaptiv binæraritmetisk koding (SBAC) eller en annen entropikodingsmetode. [0077] For å utføre CAVLC kan videokoderen velge en kode med variabel lengde for et symbol som skal sendes ut. Kodeord i VLC kan konstrueres slik at forholdsvis kortere koder svarer til mer sannsynlige symboler, mens lengre koder svarer til mindre sannsynlige symboler. På denne måten kan bruk av VLC oppnå en bitbesparelse i forhold, for eksempel, til bruk av kodeord av lik lengde for hvert symbol som skal sendes. [0078] For å utføre CABAC kan videokoderen velge en kontekstmodell å anvende på en bestemt kontekst for å kode inn symboler som skal sendes. Konteksten kan for eksempel vedrøre hvorvidt naboverdier er forskjellig fra null eller ikke. Videokoderen kan også entropikode syntakselementer, så som et signifikant koeffisient-flagg og et siste koeffisient-flagg som genereres ved utførelse av et adaptivt skann. I samsvar med teknikkene ifølge denne oppfinnelsen kan videokoderen velge kontekstmodellen å anvende for å kode disse syntakselementene basert for eksempel på en intraprediksjonsretning, en skanneposisjon til koeffisienten svarende til syntakselementene, blokktype og/eller transformasjontype, blant andre faktorer som anvendes for valg av kontekstmodell. [0079] Videodekoderen kan jobbe på en hovedsakelig symmetrisk måte i forhold til den til videokoderen. For eksempel kan videodekoderen motta entropikodede data som representerer en innkodet CU, inkludert innkodede TU-data. Disse mottatte dataene kan inkludere informasjon som angir en intraprediksjonsmodus anvendt for å kode inn PU-dataene, antatt at CU'en ble kodet med intraprediksjon. Videodekoderen kan invers-entropikode de mottatte dataene og med det frembringe innkodede kvantiseringskoeffisienter. Når videokoderen entropikoder data ved anvendelse av en kodealgoritme med variabel lengde, kan videodekoderen anvende én eller flere VLC-tabeller for å bestemme et symbol svarende til et mottatt kodeord. Når videokoderen entropikoder data ved anvendelse av en aritmetisk kodingsalgoritme, kan videodekoderen anvende en kontekstmodell for å dekode dataene, som kan svare til den samme kontekstmodellen som ble anvendt av videokoderen for å kode inn dataene. [0080] Videodekoderen kan så inversskanne de dekodede koeffisientene, ved anvendelse av et inversskann som speiler skannet anvendt av videokoderen. For å inversskanne koeffisientene adaptivt, kan videodekoderen dekode syntakselementer, inkludert signifikant koeffisient-flagg og siste koeffisient-flagg, for å regenerere statistikken anvendt av videokoderen for å utføre det adaptive skannet. Videodekoderen kan med det danne en todimensjonal matrise fra den éndimensjonale vektoret fremkommet fra entropidekodingsprosessen.

27 [0081] Etter dette kan videodekoderen inverskvantisere koeffisientene i den todimensjonale matrisen generert av inversskannet. Videodekoderen kan så anvende én eller flere inverse transformasjoner på den todimensjonale matrisen. De inverse transformasjonene kan svare til transformasjonene anvendt av videokoderen. Videodekoderen kan bestemme de inverse transformasjonene som skal anvendes basert for eksempel på intraprediksjonsmodusen anvendt for å regne ut koeffisienter for TU'en, og dersom flere transformasjoner er tilgjengelige for en TU av en gitt størrelse, informasjon signalisert ved roten til et TU-kvadtre svarende til CU'en som inkluderer TU'en som dekodes. På denne måten kan videodekoderen velge én eller flere inverse transformasjones som skal anvendes på inverskvantiserte koeffisienter for en TU for å gjenskape TU'en, basert på en intraprediksjonsmodus signalisert for TU'en. Videre kan videodekoderen regne ut en predikert verdi for TU'en ved anvendelse av en intraprediksjonsmodus svarende til en signalisert angivelse av intraprediksjonsmodusen, f.eks. i TU-kvadtreet. I noen eksempler kan videodekoderen fastslå at det foreligger en kantlinje i TU'en, basert på en kantlinje detektert i en tilstøtende TU, og når en DC-modus er signalisert, i stedet anvende en kantlinjebasert modus for å predikere en verdi for TU'en. [0082] Videokoderen og videodekoderen kan begge realiseres som en hvilken som helst av en rekke forskjellige egnede koder- eller dekoderkretser, avhengig av hva som er hensiktsmessig, så som én eller flere mikroprosessorer, digitale signalprosessorer (DSP'er), applikasjonsspesifikke integrerte kretser (ASIC'er), feltprogrammerbare portmatriser (FPGA'er), diskrete logikkretser, programvare, maskinvare, fastvare eller hvilke som helst kombinasjoner av dette. Hver av videokoderen og videodekoderen kan være innlemmet i én eller flere kodere eller dekodere, som begge kan være integrert som en del av en kombinert videokoder/- dekoder (KODEK). Et apparat som innbefatter videokoderen og/eller videodekoderen kan omfatte en integrert krets, en mikroprosessor og/eller en trådløs kommunikasjonsanordning, så som en mobiltelefon. [0083] Figur 2 er et blokkdiagram som illustrerer et eksempel på videokoderen som kan implementere hvilke som helst av eller alle teknikkene for koding av transformasjonsenheter for videodata beskrevet i denne redegjørelsen. Videokoderen kan utføre intra- og interkoding av CU'er innenfor videorammer. Intrakoding baserer seg på romlig prediksjon for å redusere eller fjerne romlig redundans i video innenfor en gitt videoramme. Interkoding baserer seg på tidsmessig prediksjon for å redusere eller fjerne tidsmessig redundans mellom en aktuell ramme og tidligere kodede rammer i en videosekvens. Intramodus (I-modus) kan henvise til en hvilken som helst av flere romlig baserte komprimeringsmodi, og intermodi, så som enveisprediksjon (P-modus) eller toveisprediksjon (B-modus), kan henvise til en hvilken som helst av flere tidsbaserte komprimeringsmodi.

28 [0084] Som vist i figur 2 mottar videokoderen en aktuell videoblokk innenfor en videoramme som skal kodes. I eksempelet i figur 2 innbefatter videokoderen en bevegelseskompenseringsenhet 44, en bevegelsesestimeringsenhet 42, en intraprediksjonsenhet 46, et referanserammelager 64, en adderer 0, en transformeringsenhet 2, en kvantiseringsenhet 4 og en entropikodingsenhet 6. Transformeringsenheten 2 illustrert i figur 2 er enheten som utfører den faktiske transformasjonen, som ikke må forveksles med en TU, i en CU. For rekonstruksjon av videoblokker innbefatter videokoderen også en inverskvantiseringsenhet 8, en inverstransformeringsenhet 60 og en adderer 62. I tillegg kan videokoderen inkludere konfigurasjonsdata, så som avbildningsdata 66. Et avblokkingsfilter (ikke vist i figur 2) kan også være innlemmet for å filtrere blokkgrenser for å fjerne blokkartefakter fra rekonstruert video. Om ønsket vil avblokkingsfilteret typisk filtrere utmatingen fra addereren 62. [008] Under innkodingsprosessen mottar videokoderen en videoramme eller bildelinje som skal kodes. Rammen eller bildelinjen kan bli delt inn i flere videoblokker, f.eks. største kodeenheter (LCUs). Bevegelsesestimeringsenheten 42 og bevegelseskompenseringsenheten 44 utfører interprediktiv koding av den mottatte videoblokken i forhold til én eller flere blokker i én eller flere referanserammer for å bevirke tidsmessig komprimering. Intraprediksjonsenheten 46 kan utføre intraprediktiv koding av den mottatte videoblokken i forhold til én eller flere naboblokker i samme ramme eller bildelinje som blokken som skal kodes for å bevirke romlig komprimering. [0086] Modusvalgenheten 40 kan velge én av kodingsmodiene, intra eller inter, f.eks. basert på feilresultater (noen ganger omtalt som forvrengning), og gir den resulterende intra- eller interkodede blokken til addereren 0 for å generere residualblokkdata og til addereren 62 for å rekonstruere den innkodede blokken for bruk i en referanseramme. Noen videorammer kan være designerte I-rammer, hvor alle blokkene i en I-ramme er innkodet i en intraprediksjonsmodus. I noen tilfeller kan intraprediksjonsenheten 46 utføre intraprediksjonskoding av en blokk i en P- eller B-ramme, f.eks. når bevegelsessøk utført av bevegelsesestimeringsenheten 42 ikke resulterer i tilfredsstillende prediksjon av blokken. [0087] Bevegelsesestimeringsenheten 42 og bevegelseskompenseringsenheten 44 kan være tett integrerte, men er illustrert som separate for å tydeliggjøre konseptet. Bevegelsesestimering er prosessen med å generere bevegelsesvektorer, som estimerer bevegelse for videoblokker. En bevegelsesvektor kan for eksempel angi adressedifferansen til en prediksjonsenhet i en aktuell ramme i forhold til et referansesample fra en referanseramme. Et referansesample er en blokk som er funnet å være tett sammenfallende med den andelen av CU'en som inkluderer PU'en som kodes med hensyn til pikseldifferanse, som kan bestemmes av en sum av absolutte differanser (SAD), sum av kvadratiske differanser (SSD) eller andre differansemål. Bevegelses-

29 kompensering, utført av bevegelseskompenseringsenheten 44, kan involvere innhenting eller generering av verdier for prediksjonsenheten basert på bevegelsesvektoren bestemt ved bevegelsesestimering. Igjen kan bevegelsesestimeringsenheten 42 og bevegelseskompenseringsenheten 44 være funksjonelt integrerte, i noen eksempler. [0088] Bevegelsesestimeringsenheten 42 beregner en bevegelsesvektor for en prediksjonsenhet i en interkodet ramme ved å sammenlikne prediksjonsenheten med referansesampler fra en referanseramme lagret i referanserammelageret 64. I noen eksempler kan videokoderen regne ut verdier for brøkdelte pikselposisjoner i referanserammer lagret i referanserammelageret 64. For eksempel kan videokoderen regne ut verdier for fjerdedels pikselposisjoner, åttendedels pikselposisjoner eller andre pikselposisjonsbrøker for referanserammen. Bevegelsesestimeringsenheten 42 kan derfor utføre et bevegelsessøk i forhold til de fulle pikselposisjonene og pikselposisjonsbrøkene og mate ut en bevegelsesvektor med brøkdelte pikselpresisjoner. Bevegelsesestimeringsenheten 42 sender den beregnede bevegelsesvektoren til entropikodingsenheten 6 og bevegelseskompenseringsenheten 44. Andelen av referanserammen identifisert av en bevegelsesvektor kan omtales som et referansesample. Bevegelseskompenseringsenheten 44 kan regne ut en prediksjonsverdi for en prediksjonsenhet for en aktuell CU, f.eks. ved å hente frem referansesampelet identifisert av en bevegelsesvektor for PU'en. [0089] Intraprediksjonsenheten 46 kan intraprediksjonskode den mottatte blokken, som et alternativ til interprediksjon utført av bevegelsesestimeringsenheten 42 og bevegelseskompenseringsenheten 44. Intraprediksjonsenheten 46 kan kode inn den mottatte blokken relativt tidligere kodede naboblokker, f.eks. blokker over, over og til høyre, over og til venstre, eller til venstre for den aktuelle blokken, antatt en venstremot-høyre, topp-til-bunn kodingsrekkefølge for blokker (så som en rasterskannrekkefølge). Intraprediksjonsenheten 46 kan være utformet med en rekke forskjellige intraprediksjonsmodi. For eksempel kan intraprediksjonsenheten 46 være utformet med et bestemt antall retningsprediksjonsmodi, f.eks. 34 retningsprediksjonsmodi, basert på størrelsen til CU'en som kodes. [0090] Intraprediksjonsenheten 46 kan velge en intraprediksjonsmodus for eksempel ved å regne ut feilverdier for forskjellige intraprediksjonsmodi og velge en modus som gir den laveste feilverdien. Retningsbestemte prediksjonsmodi kan inkludere funksjoner for å kombinere verdier for romlige nabopikseler og anvende de kombinerte verdiene på én eller flere pikselposisjoner i en PU. Når verdier for alle pikselposisjoner i PU'en er regnet ut, kan intraprediksjonsenheten 46 regne ut en feilverdi for prediksjonsmodusen basert på pikseldifferanser mellom PU'en og den mottatte blokken som skal innkodes. Intraprediksjonsenheten 46 kan fortsette å teste intraprediksjonsmodi inntil en intraprediksjonsmodus som gir en akseptabel feilverdi oppdages. Intraprediksjonsenheten 46 kan da sende PU'en til addereren 0.

30 [0091] I samsvar med teknikkene ifølge denne oppfinnelsen kan intraprediksjonsenheten 46 være innrettet for å predikere en blokk som inkluderer en kantlinje med bruk av en kantlinjebasert prediksjonsmodus. Spesielt kan intraprediksjonsenheten 46 analysere piksler i tidligere kodede naboblokker for å fastslå om en kantlinje er detektert i minst én av naboblokkene, og om kantlinjen krysser en grense mellom den tidligere kodede blokken og den aktuelle blokken. For å detektere kantlinjen kan intraprediksjonsenheten 46 regne ut gradienter for pikseler i de tidligere kodede naboblokkene i både horisontal og vertikal retning. Når gradientene for et flertall pikseler i én av naboblokkene er nokså vinkelrett på en felles linje som krysser en grense mellom naboblokken og den aktuelle blokken, kan intraprediksjonsenheten 46 fastslå at den aktuelle blokken også inkluderer en kantlinje (spesielt en kantlinje langs linjen detektert som beskrevet over). Det må forstås at betegnelsen "kantlinje" i denne sammenhengen henviser til en høyfrekvent endring langs en forholdsvis rett linje innenfor en blokk av pikseler, og ikke til randen eller grensen mellom separat kodede blokker. [0092] Når en kantlinje blir oppdaget i blokken kan intraprediksjonsenheten 46 således avgjøre om den skal predikere blokken ved anvendelse av en kantlinjebasert prediksjonsmodus eller en retningsbestemt intraprediksjonsmodus. Når intraprediksjonsenheten 46 velger kantlinjebasert prediksjonsmodus, kan intraprediksjonsenheten 46 signalisere at DC-prediksjonsmodus ble anvendt for å predikere blokken, for å unngå å øke antallet verdier nødvendig for å signalisere intraprediksjonsmodi. Som vil bli beskrevet mer detaljert med støtte i figur 3, kan derfor en videodekoder, så som videodekoderen, være innrettet for å tolke en angivelse (f.eks. et signal eller syntaksinformasjon) av at DC prediksjonsmodus ble anvendt for å predikere en blokk som en angivelse av en kantlinjebasert prediksjonsmodus når videodekoderen fastslår at en kantlinje foreligger i blokken. [0093] Videokoderen danner en residualblokk ved å subtrahere prediksjonsdataene beregnet av bevegelseskompenseringsenheten 44 eller intraprediksjonsenheten 46 fra den opprinnelige videoblokken som kodes. Addereren 0 representerer komponenten eller komponentene som utfører denne subtraksjonsoperasjonen. Residualblokken kan svare til en todimensjonal matrise av verdier, hvor antallet verdier i residualblokken er det samme som antallet pikseler i PU'en svarende til residualblokken. Verdiene i residualblokken kan svare til differansene mellom samlokaliserte pikseler i PU'en og i den opprinnelige blokken som skal kodes. [0094] Transformeringsenheten 2 kan danne én eller flere transformasjonsenheter (TU'er) fra residualblokken. Transformeringsenheten 2 anvender en transformasjon, så som en diskret cosinustransformasjon (DCT), en retningstransformasjon eller en konseptuelt tilsvarende transformasjon, på TU'en, og genererer med det en videoblokk omfattende transformasjonskoeffisienter. I samsvar med teknikkene ifølge denne

31 oppfinnelsen kan intraprediksjonsenheten 46 sende en angivelse av intraprediksjonsmodusen valgt for TU'en til transformeringsenheten 2, f.eks. ved å signalisere modusen i en node eller et TU-kvadtre svarende til TU'en. Med det kan transformeringsenheten 2 velge en transformasjon å anvende på TU'en basert på angivelsen av intraprediksjonsmodusen mottatt fra intraprediksjonsenheten 46. [009] I noen eksempler er transformeringsenheten 2 innrettet for å velge en transformasjon, så som en retningstransformasjon, å anvende på TU'en basert på en intraprediksjonsmodus anvendt for å predikere TU'en. Nærmere bestemt kan avbildningsdata 66 lagre konfigurasjonsdata som beskriver en transformasjon som skal anvendes basert på intraprediksjonsmodusen anvendt for å predikere TU'en. På denne måten kan transformeringsenheten 2 transformere en residualblokk ved anvendelse av en transformasjon avbildet til en intraprediksjonsmodus anvendt for å beregne residualblokken. Likeledes kan avbildningsdata 66 avbilde en intraprediksjonsmodus, en transformasjon eller begge til en gitt skanneindeks, som kan bli anvendt for å velge et skann som skal anvendes for å kvantisere transformasjonskoeffisienter for blokken. [0096] I noen eksempler kan avbildningsdataene 66 lagre konfigurasjonsdata omfattende en mange-til-én-avbildning mellom et stort sett av intraprediksjonsmodi og et mindre sett av intraprediksjonsmodi. Det mindre settet kan omfatte en delmengde av intraprediksjonsmodiene. I noen eksempler kan det store settet omfatte intraprediksjonsmodi støttet av HEVC-testmodellen, mens det mindre settet kan omfatte intraprediksjonsmodi støttet av H.264. Avbildningsdataene 66 kan også inkludere en avbildning, så som en én-til-én-avbildning, mellom det mindre settet av intraprediksjonsmodi og transformasjoner. Det mindre settet av intraprediksjonsmodi kan være én-til-én-avbildet til retningstransformasjoner som er utformet for å gi de empirisk beste transformasjonsresultatene for den tilhørende intraprediksjonsmodusen. [0097] I noen eksempler kan intraprediksjonsmodi i det store settet og i det mindre settet være knyttet til respektive prediksjonsvinkler. Avbildningen mellom det store settet av prediksjonsmodi og det mindre settet kan derfor bestemmes ved å velge en prediksjonsvinkel for én av intraprediksjonsmodiene i det mindre settet som approksimerer prediksjonsvinkelen for en intraprediksjonsmodus i det store settet. La α representere prediksjonsvinkelen for én av intraprediksjonsmodiene i det store settet, og la βi representere prediksjonsvinkelen til i-te intraprediksjonsmodus i det mindre settet. For å avbilde intraprediksjonsmodusen til én av intraprediksjonsmodiene i det mindre settet kan videokoderen, gitt α, finne βi slik at likning 1 nedenfor er oppfylt: 3 [0098] Transformeringsenheten 2 kan motta angivelsen av den valgte intraprediksjonsmodusen fra intraprediksjonsenheten 46 og så spørre avbildningsdataene 66

32 1 2 3 for å bestemme en transformasjon å anvende for å transformere en TU som inneholder residualverdiene mottatt fra addereren 0. Dersom TU'en har en størrelse for hvilken flere alternative transformasjoner er mulige, kan transformeringsenheten 2 eller en annen enhet i videokoderen velge en transformasjon for TU'er av den størrelsen, slik at transformeringsenheten 2 kan anvende samme transformasjon på alle TU'er av denne størrelsen i en samme CU. I noen eksempler kan transformeringsenheten 2 videre være innrettet for å utføre en rotasjonstransformasjon kaskadet fra den første transformasjonen. Nærmere bestemt, etter den første transformasjonen, kan transformeringsenheten 2 velge og anvende en rotasjonstransformasjon på transformasjonskoeffisientene. Transformeringsenheten 2 kan velge rotasjonstransformasjonen basert for eksempel på intraprediksjonsmodusen anvendt for å predikere PU'en for den aktuelle TU'en. [0099] Som angitt over er intraprediksjonsenheten 46 i noen eksempler innrettet for å avgjøre om en blokk inneholder en kantlinje (dvs. en høyfrekvent endring mellom pikseler innenfor blokken). Når en kantlinje detekteres, kan intraprediksjonsenheten 46 velge enten en kantlinjebasert prediksjonsmodus eller en tradisjonell retningsbestemt intraprediksjonsmodus. Nærmere bestemt kan intraprediksjonsenheten 46 erstatte DCprediksjonsmodus med kantlinjebasert prediksjonsmodus. I noen eksempler, når blokken predikeres ved anvendelse av kantlinjebasert prediksjonsmodus, velger transformeringsenheten 2 en transformasjon (for eksempel en retningstransformasjon) avbildet til retningen til en intraprediksjonsmodus som har en vinkel som er en nær approksimasjon til en vinkel til kantlinjen. Nærmere bestemt bestemmer transformeringsenheten 2, i noen eksempler, en vinkel for kantlinjen innenfor blokken og velger en transformasjon som er avbildet til en retningsbestemt intraprediksjonsmodus som har en vinkel som er en nær approksimasjon (f.eks. har en minimal avstand i forhold til) vinkelen til kantlinjen. I noen eksempler er transformeringsenheten 2 innrettet for å velge en transformasjon som er avbildet til en retningsbestemt intraprediksjonsmodus som har en vinkel som er en nær approksimasjon til vinkelen til en kantlinje detektert i en blokk. [00] Videokoderen kan også signalisere bruk av kantlinjebasert prediksjonsmodus med bruk av en verdi som ellers ville bli anvendt for å signalisere bruk av DCprediksjonsmodus. Selv om DC-prediksjonsmodus signaliseres, kan således kantlinjebasert prediksjonsmodus bli anvendt for å predikere blokken. Likeledes, selv om kantlinjebasert prediksjonsmodus kan bli anvendt for å predikere blokken, kan transformeringsenheten 2 anvende den transformasjonen avbildet til den intraprediksjonsmodusen som har en vinkel som approksimerer vinkelen til kantlinjen detektert i blokken. [01] Avbildningsdataene 66 kan tilveiebringe konfigurasjonsdata som angir at når en kantlinje detekteres i en blokk for hvilken DC-prediksjonsmodus er signalisert,

33 transformeringsenheten 2 skal velge en transformasjon som har en vinkel som approksimerer vinkelen til kantlinjen. Videre, som angitt over, kan avbildningsdataene 66 inkludere en avbildning fra intraprediksjonsmodi og vinkler for intraprediksjonsmodiene (som kan definere intraprediksjonsmodiene) til retningstransformasjoner. Følgelig kan transformeringsenheten 2 spørre avbildningsdataene 66 for å bestemme en intraprediksjonsmodus som har en vinkel som er en nær approksimasjon til vinkelen til en kantlinje i en blokk, og for å avgjøre hvilken transformasjon som er avbildet til den aktuelle intraprediksjonsmodusen. [02] På denne måten er videokoderen et eksempel på en videokoder innrettet for å beregne en residualblokk for en blokk av videodata basert på en predikert blokk dannet ved anvendelse av en intraprediksjonsmodus, og transformere residualblokken ved anvendelse av en transformasjon avbildet til intraprediksjonsmodusen. Videokoderen er også et eksempel på en videokoder innrettet for å motta en angivelse av en første intraprediksjonsmodus i et første sett av intraprediksjonsmodi for en blokk av videodata, bestemme en andre intraprediksjonsmodus fra et mindre sett av intraprediksjonsmodi til hvilken den første intraprediksjonsmodusen er avbildet, bestemme en retningstransformasjon til hvilken den andre intraprediksjonsmodusen er avbildet, og anvende retningstransformasjonen på residualdata for blokken. [03] Videre er videokoderen også et eksempel på en videokoder innrettet for å velge en intraprediksjonsmodus å anvende for å kode inn en blokk av videodata, avgjøre om blokken inkluderer en delblokk med en størrelse for hvilken flere transformasjoner er mulig basert på delblokkens størrelse og den valgte intraprediksjonsmodusen, når blokken inkluderer en delblokk med en størrelse for hvilken flere transformasjoner er mulig basert på delblokkens størrelse og den valgte intraprediksjonsmodusen, velge én av de flere mulige transformasjonene, transformere delblokken ved anvendelse av den valgte av de flere mulige transformasjonene, og gi en angivelse av den valgte av de flere mulige transformasjonene for blokkens størrelse. [04] Videokoderen er også et eksempel på en videokoder innrettet for å fastslå at en blokk som skal intraprediksjonskodes inneholder en kantlinje innenfor blokken, beregne en residualblokk for blokken basert på en prediksjonsverdi regnet ut ved anvendelse av en kantlinjebasert intraprediksjonsmodus, transformere residualblokken med bruk av en retningstransformasjon avbildet til en retningsbestemt intraprediksjonsmodus som har en vinkel som approksimerer en vinkel til kantlinjen, og mate ut informasjon representativ for den transformerte residualblokken og informasjon som angir at blokken ble predikert ved anvendelse av en DC-intraprediksjonsmodus. [0] Transformeringsenheten 2 kan sende de resulterende transformasjonskoeffisientene til kvantiseringsenheten 4. Kvantiseringsenheten 4 kan da kvantisere transformasjonskoeffisientene. I noen eksempler kan kvantiseringsenheten 4 så utføre et skann av matrisen som inneholder de kvantiserte transformasjonskoeffisientene.

34 Alternativt kan entropikodingsenheten 6 utføre skannet. Denne beskrivelsen beskriver at entropikodingsenhet 6 utfører skannet, selv om det må forstås at, i andre eksempler, andre prosesseringsenheter, så som kvantiseringsenheten 4, kan utføre skannet. [06] I noen eksempler kan entropikodingsenheten 6 motta en angivelse av den valgte intraprediksjonsmodusen fra intraprediksjonsenheten 46 eller fra transformeringsenheten 2. Entropikodingsenheten 6 kan velge et skann å anvende på matrisen av transformasjonskoeffisienter, for å omdanne den todimensjonale matrisen til en éndimensjonal vektor. I noen eksempler velger entropikodingsenheten 6 et skann fra et forbestemt sett av skann. Avbildningsdataene 66 kan avbilde det mindre settet av intraprediksjonsmodi til det forbestemte settet av skann. Entropikodingsenheten 6 kan velge skannet basert på forskjellige trekk ved den aktuelle TU'en, som for eksempel blokktype (inter eller intra), intraprediksjonsmodusen (antatt en intrakodet blokk) og/eller en type transformasjon anvendt på TU'en (f.eks. DCT eller KLT). [07] I noen eksempler kan entropikodingsenheten 6 være innrettet for å utføre et adaptivt skann. Innledningsvis (f.eks. for en første TU i en aktuell ramme) kan entropikodingsenheten 6 anvende et forbestemt skannemønster. Over tid kan entropikodingsenheten 6 oppdatere skannemønsteret for å utføre det adaptive skannet. I alminnelighet er målet for det adaptive skannet å bestemme en sannsynlighet for at en gitt transformasjonskoeffisient vil være forskjellig fra null. Deretter går skannerekkefølgen i alminnelighet fra koeffisienter med høyest sannsynlighet for å være forskjellig fra null til lavest sannsynlighet for å være forskjellig fra null. Entropikodingsenheten 6 kan bestemme disse sannsynlighetene over tid ved anvendelse av forskjellige statistikker og beregninger. Videre kan entropikodingsenheten 6 spore separat statistikk for hver intraprediksjonsmodus, transformasjon, kaskadet transformasjon eller en hvilken som helst kombinasjon av dette. [08] Entropikodingsenheten 6 kan anvende en tabell med høydynamisk område og dynamisk oppdatering av skannetabeller for å bestemme sannsynlighetene for at transformasjonskoeffisienter er forskjellige fra null, og for å bestemme den adaptive skannerekkefølgen. Antatt en TU av størrelse NxN, kan hver av disse tabellene være NxN-tabeller med verdier svarende til transformasjonskoeffisientene for TU'en. Tabellen med høydynamisk område kan være en fast, forbestemt tabell som gir sannsynligheter for at hver transformasjonskoeffisient er forskjellig fra null. Denne tabellen kan bli beregnet basert på et sett av treningsdata. Videre kan denne tabellen bli anvendt for å tilveiebringe et startpunkt for den adaptive skannerekkefølgen. [09] Entropikodingsenheten 6 kan oppdatere den dynamisk oppdaterte skannetabellen over tid til å reflektere nylig bestemt statistikk for transformasjonskoeffisienter. Entropikodingsenheten 6 kan holde telling på antallet ganger hver koeffisient i en gitt posisjon i NxN-transformasjonsmatrisen er forskjellig fra null.

35 Nærmere bestemt, for hver TU i en aktuell ramme, kan entropikodingsenheten 6 inkrementere verdier i den dynamiske oppdaterte skannetabellen svarende til koeffisienter forskjellig fra null i den aktuelle transformasjonsblokken, spesifikt i den dynamisk oppdaterte skannetabellen tilknyttet intraprediksjonsmodusen, transformasjonene og/eller den kaskadede transformasjonen for den aktuelle CU'en. Dersom for eksempel transformasjonskoeffisienten i rad 2 og kolonne 1 er forskjellig fra null, kan entropikodingsenheten 6 legge til én i verdien i den dynamisk oppdaterte skannetabellen i rad 2 og kolonne 1. Entropikodingsenheten 6 kan også periodisk normalisere verdiene i den dynamisk oppdaterte skannetabellen, for å hindre at verdiene overstiger en maksimalverdi. [01] For å utføre det adaptive skannet for en første TU i en aktuell ramme kan entropikodingsenheten 6 skanne basert på utelukkende på tabellem med høydynamisk område. Entropikodingsenheten 6 kan også initialisere den dynamisk oppdaterte skannetabellen ved f.eks. å sette alle verdier i den dynamisk oppdaterte skannetabellen til null. For hver ikke-null koeffisient i transformasjonsblokken kan entropikodingsenheten 6 legge til én i den samlokaliserte verdien i den dynamisk oppdaterte skannetabellen tilknyttet intraprediksjonsmodusen og transformasjonen eller den kaskadede transformasjonen for den aktuelle TU'en. For etterfølgende TU'er som anvender samme intraprediksjonsmodus og transformasjon eller kaskadet transformasjon kan entropikodingsenheten 6 først konsultere den dynamisk oppdaterte skannetabellen for å slå fast hvilke av transformasjonskoeffisientene som har høyest sannsynlighet for å være forskjellige fra null, så skanne i rekkefølge av avtagende sannsynlighet for at koeffisienter er forskjellig fra null. I noen tilfeller kan to eller flere verdier i den dynamisk oppdaterte skannetabellen være like. I et slikt tilfelle kan entropikodingsenheten 6 konsultere tabellen med høydynamisk område for å avgjøre hvilken koeffisient som er den neste som skal skannes. På denne måten kan entropikodingsenheten 6 utføre et adaptivt skann for hver intraprediksjonsmodus, transformasjon eller kaskadet transformasjon (eller en hvilken som helst kombinasjon av disse) basert på en kombinasjon av en tabell med høydynamisk område og en dynamisk oppdatert skannetabell. [0111] Ved å skanne den todimensjonale matrisen av transformasjonskoeffisienter kan entropikodingsenheten 6 generere en éndimensjonal array som inneholder transformasjonskoeffisientene. Entropikodingsenheten 6 kan så skanne TU'en for å danne et array og kvantisere transformasjonskoeffisientene i gruppen etter skannet for ytterligere å redusere bithastighet. Kvantiseringsprosessen kan redusere birdybden for noen av eller alle koeffisientene. Graden av kvantisering kan kodifiseres ved å justere en kvantiseringsparameter. [0112] Entropikodingsenheten 6 kan også entropikode syntakselementer for koeffisientene i matrisen før eller under det adaptive skannet. Syntakselementene kan

36 inkludere et signifikant koeffisient-flagg som angir om en gitt koeffisient er signifikant (f.eks. ikke null) og et siste koeffisient-flagg som angir om en gitt koeffisient er den siste koeffisienten skannet i det adaptive skannet. En videodekoder kan anvende disse syntakselementene for å rekonstruere den dynamisk oppdaterte skannetabellen, slik at videodekoderen kan inversskanne koeffisientene innkodet av entropikodingsenheten 6. [0113] For å entropikode syntakselementene kan entropikodingsenheten 6 utføre CABAC og velge kontekstmodeller basert for eksempel på antallet signifikante koeffisienter i de N foregående skannede koeffisientene, hvor N er en heltallsverdi som kan være knyttet til størrelsen til blokken som skannes. Entropikodingsenheten 6 kan også velge kontekstmodellen basert på en prediksjonsmodus anvendt for å beregne residualdata som ble transformert til blokken av transformasjonskoeffisienter, og en type transformasjon anvendt for å transformere residualdataene til blokken av transformasjonskoeffisienter. Når de samsvarende prediksjonsdataene ble predikert ved anvendelse av en intraprediksjonsmodus, kan entropikodingsenheten 6 videre basere valget av kontekstmodell på intraprediksjonsmodusens retning. [0114] På denne måten representerer videokoderen et eksempel på en videokoder innrettet for å transformere residualdata for en blokk av videodata ved anvendelse av en første transformasjon for å generere en todimensjonal mellomblokk av transformasjonskoeffisienter, transformere den todimensjonale mellomblokken av transformasjonskoeffisienter med bruk av en rotasjonstransformasjon for å generere en todimensjonal blokk av transformasjonskoeffisienter, velge et sett av statistikk knyttet til minst én av den første transformasjonen og rotasjonstransformasjonen, hvor settet av statistikk gir sannsynligheter for at posisjoner i den todimensjonale blokken av transformasjonskoeffisienter vil være forskjellig fra null, og adaptivt skanne den todimensjonale blokken av transformasjonskoeffisienter basert på det valgte settet av statistikk. [011] Videokoderen representerer også et eksempel på en videokoder innrettet for å skanne en todimensjonal blokk av transformasjonskoeffisienter for å generere en éndimensjonal vektor av transformasjonskoeffisientene, bestemme verdier som angir om transformasjonskoeffisientene i den éndimensjonale vektoren er signifikante, og entropikode minst én av verdiene med bruk av en kontekstmodell valgt basert på i hvert fall en prosentandel av signifikante koeffisienter i et forbestemt antall verdier innkodet før den minst ene av verdiene. [0116] I noen eksempler kan transformeringsenheten 2 være innrettet for å nulle ut bestemte transformasjonskoeffisienter (nærmere bestemt transformasjonskoeffisienter i bestemte posisjoner). For eksempel kan transformeringsenheten 2 være innrettet for å nulle ut alle transformasjonskoeffisienter utenfor øvre venstre kvadrant av TU'en etter transformasjonen. Som et annet eksempel kan entropikodingsenheten 6 være innrettet

37 for å nulle ut transformasjonskoeffisienter i arrayet etter en bestemt posisjon i arrayet. I noen eksempler kan entropikodingsenheten 6 kvantisere en todimensjonal matrise, og entropikodingsenheten 6 kan utføre skannet. Uansett kan videokoderen være innrettet for å nulle ut en bestemt andel av transformasjonskoeffisientene, f.eks. før eller etter skannet. Med å "nulle ut" menes å sette koeffisientens verdi lik null, men ikke nødvendigvis å droppe eller forkaste koeffisienten. [0117] Etter kvantisering entropikoder entropikodingsenheten 6 de kvantiserte transformasjonskoeffisientene. For eksempel kan entropikodingsenheten 6 utføre innholdsadaptiv koding med variabel lengde (CAVLC), kontekstadaptiv binæraritmetisk koding (CABAC) eller en annen entropikodingsteknikk. Etter entropikodingen av entropikodingsenheten 6 kan den innkodede videoen bli sendt til en annen anordning eller arkivert for senere utsending eller fremhenting. For kontekstadaptiv binæraritmetisk koding kan kontekst kan være basert på naboblokker. [0118] I noen tilfeller kan entropikodingsenheten 6 eller en annen enhet i videokoderen være innrettet for å utføre andre kodingsfunksjoner, i tillegg til entropikoding. For eksempel kan entropikodingsenheten 6 være innrettet for å bestemme kodet blokkmønster-(cbp)-verdier for blokkene. I noen tilfeller kan entropikodingsenheten 6 også utføre løpelengdekoding av koeffisientene i en blokk. [0119] Inverskvantiseringsenheten 8 og inverstransformeringsenheten 60 anvender henholdsvis invers kvantisering og invers transformasjon for å rekonstruere residualblokken i pikseldomenet, f.eks. for senere bruk som en referanseblokk. Bevegelseskompenseringsenheten 44 kan beregne en referanseblokk ved å addere residualblokken til en prediktiv blokk for én av rammene i referanserammelageret 64. Bevegelseskompenseringsenheten 44 kan også anvende én eller flere interpolasjonsfiltre på den rekonstruerte residualblokken for å beregne brøkdelte pikselverdier for bruk til bevegelsesestimering. Addereren 62 adderer den rekonstruerte residualblokken til den bevegelseskompenserte prediksjonsblokken produsert av bevegelseskompenseringsenheten 44 for å generere en rekonstruert videoblokk for lagring i referanserammelageret 64. Den rekonstruerte videoblokken kan bli anvendt av bevegelsesestimeringsenheten 42 og bevegelseskompenseringsenheten 44 som en referanseblokk for å interkode en blokk i en etterfølgende videoramme. [01] Figur 3 er et blokkdiagram som illustrerer et eksempel på videodekoderen, som dekoder en innkodet videosekvens. I eksempelet i figur 3 innbefatter videodekoderen en entropidekoderenhet 70, en bevegelseskompenseringsenhet 72, en intraprediksjonsenhet 74, en inverskvantiseringsenhet 76, en inverstransformeringsenhet 78, et referanserammelager 82 og en adderer 80. Videodekoderen kan, i noen eksempler, utføre et dekodingsløp hovedsakelig motsvarende kodingsløpet beskrevet med hensyn til videokoderen (figur 2). Bevegelseskompenseringsenheten 72 kan generere prediksjonsdata basert på bevegelsesvektorer mottatt fra entropi-

38 dekoderenheten 70. Intraprediksjonsenheten 74 kan generere prediksjonsdata for en aktuell blokk i en aktuell ramme basert på en signalisert intraprediksjonsmodus og data fra tidligere dekodede blokker i den aktuelle rammen. [0121] I noen eksempler kan entropidekoderenheten 70 eller inverskvantiseringsenheten 76 skanne de mottatte verdiene med bruk av et skann som speiler det anvendt av videokoderen. I eksempelet i figur 3 innbefatter videodekoderen avbildningsdata 84, som kan inkludere data tilsvarende eller identiske med de i avbildningsdataene 66. Videodekoderen kan således velge et skann basert for eksempel på en angivelse av en intrakodingsmodus for en aktuell blokk (f.eks. presentert ved rotnoden til et kvadtre for LCU'en som inkluderer den aktuelle blokken), en transformasjon for den aktuelle blokken, en kaskadet transformasjon for den aktuelle blokken eller de andre faktorene anvendt av videokoderen for å velge skannet. Likeledes kan videodekoderen være innrettet for å utføre et adaptivt skann, eller for å velge et forbestemt skann basert på disse faktorene. På denne måten kan videodekoderen generere en todimensjonal matrise av kvantiserte transformasjonskoeffisienter fra et mottatt, éndimensjonalt array av koeffisienter. [0122] Inverskvantiseringsenheten 76 inverskvantiserer, dvs. dekvantiserer, de kvantiserte transformasjonskoeffisientene innlemmet i bitstrømmen og dekodet av entropidekoderenheten 70. Inverskvantiseringsprosessen kan inkludere en tradisjonell prosess, f.eks. som definert av dekodingsstandarden H.264 eller av HEVC. Inverskvantiseringsprosessen kan inkludere bruk av en kvantiseringsparameter QPy beregnet av videokoderen for CU'en for å bestemme en grad av kvantisering og, likeledes, en grad av inverskvantisering som skal anvendes. [0123] Inverstransformeringsenheten 8 anvender en invers transformasjon, f.eks. en invers DCT, en invers heltallstransformasjon, en invers rotasjonstransformasjon eller en invers retningstransformasjon. I noen eksempler kan inverstransformeringsenheten 78 bestemme en invers transformasjon basert på en intraprediksjonsmodus signalisert for en mottatt intraprediksjonskodet blokk. Dersom blokken har en størrelse for hvilken flere enn én transformasjon er mulig, basert på intraprediksjonsmodusen, kan inverstransformeringsenheten 78 bestemme en transformasjon å anvende på den aktuelle blokken basert på en transformasjon signalisert ved rotnoden til et kvadtre for en LCU som inkluderer den aktuelle blokken. I noen eksempler kan inverstransformeringsenheten 78 anvende en kaskadet invers transformasjon, f.eks. først en invers rotasjonstransformasjon etterfulgt av en invers retningstransformasjon. [0124] I noen eksempler, f.eks. hvor den signaliserte intraprediksjonsmodusen er DCprediksjonsmodus, kan inverstransformeringsenheten 8 (eller en annen enhet i videodekoderen ) avgjøre om en kantlinje foreligger i den aktuelle blokken. Inverstransformeringsenheten 8 kan avgjøre om en kantlinje foreligger ved hjelp av teknikker som hovedsakelig svarer til de beskrevet med hensyn til videokoderen i

39 figur 2. Dersom en kantlinje foreligger i den aktuelle blokken, kan inverstransformeringsenheten 78 bestemme en vinkel til kantlinjen innenfor blokken og velge en invers transformasjon som er avbildet til en intraprediksjonsmodus som har en vinkel som approksimerer kantlinjens vinkel. [012] Som angitt over kan avbildningsdataene 84 tilveiebringe vinkler for intraprediksjonsmodi og avbildninger mellom intraprediksjonsmodi og inverse transformasjoner. Inverstransformeringsenheten 78 kan derfor spørre avbildningsdataene 84 for å bestemme en invers transformasjon som er avbildet til en intraprediksjonsmodus som har en vinkel som er en nær approksimasjon av vinkelen til kantlinjen, når DC-prediksjonsmodus er signalisert. Videre kan intraprediksjonsenheten 74 anvende en kantlinjebasert prediksjonsmodus for å predikere blokken, heller enn DC-prediksjonsmodus som signalisert for blokken, når kantlinjen er detektert i blokken. Avbildningsdataene 84 kan også tilveiebringe en avbildning fra en intraprediksjonsmodus, en sekundær transformasjon, så som en rotasjonstransformasjon, eller en kombinasjon av dette, til en skanneindeks, for å velge et inverst skann for mottatte kvantiserte transformasjonskoeffisienter. [0126] Bevegelseskompenseringsenheten 72 genererer bevegelseskompenserte blokker, muligens ved å utføre interpolasjon basert på interpolasjonsfiltre. Identifikatorer for interpolasjonsfiltre som skal anvendes for bevegelsesestimering med delpikselpresisjon kan være innlemmet i syntakselementene. Bevegelseskompenseringsenheten 72 kan anvende interpolasjonsfiltre som anvendt av videokoderen under koding av videoblokken for å regne ut interpolerte verdier for brøkdeler av pikseler i en referanseblokk. Bevegelseskompenseringsenheten 72 kan bestemme interpolasjonsfiltrene anvendt av videokoderen i henhold til mottatt syntaksinformasjon og anvende interpolasjonsfiltrene for å generere prediktive blokker. [0127] Bevegelseskompenseringsenheten 72 og intraprediksjonsenheten 74 anvender noe av syntaksinformasjonen (f.eks. tilveiebragt av et kvadtre) for å bestemme størrelser til LCU'er anvendt for å kode inn rammen(e) i den innkodede videosekvensen, dele opp informasjon som beskriver hvordan hver CU i en ramme i den innkodede videosekvensen er splittet og likeledes hvordan under-cu'er er splittet), modi som angir hvordan hver oppsplitting er innkodet (f.eks. intra- eller interprediksjon, og for intraprediksjon en intraprediksjonskodingsmodus), én eller flere referanserammer (og/eller referanselister inneholdende identifikatorer for referanserammene) for hver interkodede PU, og annen informasjon for å dekode den kodede videosekvensen. [0128] Addereren 80 kombinerer residualblokkene med de samsvarende prediksjonsblokkene generert av bevegelseskompenseringsenheten 72 eller intraprediksjonsenheten 74 for å danne dekodede blokker. Om ønsket kan et avblokkingsfilter også bli anvendt for å filtrere de dekodede blokkene for å fjerne blokkartefakter. De dekodede

40 videoblokkene blir så lagret i referanserammelageret 82, som tilveiebringer referanseblokker for etterfølgende bevegelseskompensasjon og også genererer dekodet video for presentasjon på en fremvisningsanordning (så som fremvisningsanordningen 32 i figur 1). [0129] På denne måten er videodekoderen et eksempel på en videodekoder innrettet for å bestemme en intraprediksjonsmodus som skal anvendes for å predikere en blokk av videodata, og for å inverstransformere transformerte residualdata for blokken ved anvendelse av en invers transformasjon avbildet til intraprediksjonsmodusen. Videodekoderen er også et eksempel på en videodekoder innrettet for å motta en angivelse av en første intraprediksjonsmodus i et første sett av intraprediksjonsmodi for en blokk av innkodede videodata, bestemme en andre intraprediksjonsmodus fra et mindre sett av intraprediksjonsmodi til hvilken den første intraprediksjonsmodusen er avbildet, bestemme en invers retningstransformasjon til hvilken den andre intraprediksjonsmodusen er avbildet, og anvende den inverse retningstransformasjonen på transformerte residualdata for blokken. [01] Videodekoderen er også et eksempel på en videodekoder innrettet for å motta en første angivelse av en intraprediksjonsmodus å anvende for å dekode en blokk av videodata, avgjøre om blokken inkluderer en delblokk med en størrelse for hvilken flere transformasjoner er mulig basert på delblokkens størrelse og den angitte intraprediksjonsmodusen, når blokken inkluderer delblokken av størrelsen for hvilken flere inverse transformasjoner er mulig basert på delblokkens størrelse og den angitte intraprediksjonsmodusen, motta en andre angivelse av én av de flere mulige inverse transformasjonene, og inverstransformere delblokken ved anvendelse av den angitte ene av de flere mulige inverse transformasjonene. [0131] Videodekoderen er også et eksempel på en videodekoder innrettet for å motta verdier som angir om innkodede transformasjonskoeffisienter i en mottatt éndimensjonal vektor av innkodede transformasjonskoeffisienter er signifikante, entropidekode minst én av verdiene med bruk av en kontekstmodell valgt basert på i hvert fall en prosentandel av signifikante koeffisienter i et forbestemt antall verdier dekodet før den minst ene av verdiene, og inversskanne den éndimensjonale vektoren for å generere todimensjonal blokk av transformasjonskoeffisienter. [0132] Videodekoderen er også et eksempel på en videodekoder innrettet for å motta en angivelse av at residualdata for en blokk av videodata ble transformert ved anvendelse av både en første transformasjon og en rotasjonstransformasjon for å generere en todimensjonal blokk av transformasjonskoeffisienter, velge et sett av statistikk knyttet til minst én av den første transformasjonen og rotasjonstransformasjonene, hvor settet av statistikk gir sannsynligheter for at posisjoner i den todimensjonale blokken av transformasjonskoeffisienter vil være forskjellige fra null, og adaptivt inversskanne en mottatt éndimensjonal vektor som inkluderer en kodet

41 versjon av residualdataene for blokken basert på det valgte settet av statistikk for å generere en todimensjonal matrise av transformasjonskoeffisienter for blokken. [0133] Videodekoderen er videre et eksempel på en videodekoder innrettet for å motta informasjon som angir at en intraprediksjonsmodus for en blokk av videodata er en DC-intraprediksjonsmodus, bestemme en vinkel for en kantlinje i blokken av videodata basert på angivelsen av DC-intraprediksjonsmodiene for blokken, inverstransformere blokken ved anvendelse av en invers retningstransformasjon avbildet til en retningsbestemt intraprediksjonsmodus som har en vinkel som approksimerer vinkelen til kantlinjen, og dekode den inverstransformerte blokken. [0134] Figur 4 er et konseptuelt diagram som illustrerer en graf 4 som avbilder et eksempel på et sett av retninger knyttet til intraprediksjonsmodi. I eksempelet i figur 4 kan blokken 6 være predikert fra nabopikseler 0A-0AG (nabopikseler 0) avhengig av en valgt intraprediksjonsmodus. Piler 2A-2AG (pilene 2) representerer retninger eller vinkler knyttet til forskjellige intraprediksjonsmodi. Eksempelet i figur 4 representerer intraprediksjonsmodi tilveiebragt av HM'en. I andre eksempler kan imidlertid flere eller færre intraprediksjonsmodi tilveiebringes. Selv om eksempelblokken 6 er en 8x8 pikselblokk, kan en blokk generelt ha et hvilket som helst antall pikseler, f.eks. 4x4, 8x8, 16x16, 32x32, 64x64, 128x128 etc. Selv om HM'en tilveiebringer kvadratiske PU'er, kan teknikkene ifølge denne oppfinnelsen også anvendes med andre blokkstørrelser, f.eks. NxM-blokker, hvor N ikke nødvendigvis er lik M. [013] En intraprediksjonsmodus kan være definert i henhold til en vinkel til prediksjonsretningen i forhold til, for eksempel, en horisontal akse som er vinkelrett på de vertikale sidene av blokken 6. Hver av pilene 2 kan derfor representere en gitt vinkel til en prediksjonsretning for en tilhørende intraprediksjonsmodus. I noen eksempler kan en retningsbestemt intraprediksjonsmodus være definert av et par av heltall (dx, dy), som kan representere retningen den tilhørende intraprediksjonsmodusen anvender for interpolasjon av kontekstpiksler. Nærmere bestemt kan vinkelen til intraprediksjonsmodusen bli beregnet som dy/dx. Med andre ord kan vinkelen representeres i henhold til den horisontale forskyvningen dx og den vertikale forskyvningen dy. Verdien til en piksel i posisjon (x, y) i blokken 6 kan bestemmes fra én av nabopikslene 0 gjennom hvilken det går en linje som også går gjennom posisjonen (x, y) med en vinkel lik dy/dx. [0136] I noen eksempler kan hver av intraprediksjonsmodiene svarende til vinkler representert av pilene 2 være avbildet til en bestemt transformasjon. To eller flere intraprediksjonsmodi kan være avbildet til samme transformasjon, i noen eksempler. Transformasjonener kan svare til retningstransformasjoner, KLT'er, rotasjonstransformasjoner, diskrete cosinustransformasjoner, diskrete sinustransformasjoner, fouriertransformasjoner eller andre transformasjoner som er spesifikt valgt for bestemte

42 40 intraprediksjonsmodi. Slike transformasjoner kan omtales generelt som "konstruerte" transformasjoner, ved at transformasjonene er valgt for bestemte intraprediksjonsmodi. [0137] Som angitt over kan i noen eksempler et sett av intraprediksjonsmodi bli avbildet, gjennom en mange-til-én-tilordning, til et mindre sett, f.eks. en delmengde, av intraprediksjonsmodi. Sagt på en annen måte kan vinklene for intraprediksjonsmodiene i et stort sett av modi bli avbildet til vinklene til intraprediksjonsmodi i et mindre sett av modi. I noen eksempler kan avbildningen bli realisert ved anvendelse av en matematisk formel. For eksempel kan formelen gi en avbildning som minimerer den absolutte prediksjonsvinkeldifferansen mellom den faktiske prediksjonsretningsvinkelen, betegnet her som α, og prediksjonsretningsvinklene til et mindre sett av intraprediksjonsmodi, betegnet her som βi'er. Gitt en prediksjonsretningsvinkel α, kan formelen gi en βi slik at formel (1) over er oppfylt. Formel (1) er for enkelhets skyld gjentatt nedenfor: [0138] I ett eksempel kan det mindre settet av intraprediksjonsmodi ha vinkler som er de samme som pilene 2E, 2I, 2M, 2Q, 2U, 2Y, I02AC og 2AG. Hver av vinklene til pilene 2 kan således avbildes til én av vinklene til pilene 2E, 21, 2M, 2Q, 2U, 2Y, 2AC og 2AG. Som ett eksempel kan vinkler for pilene 2A-2E avbildes til vinkelen for pilen 2E, vinkler for pilene 2F-2I kan bli avbildet til vinkelen for pilen 21, vinkler for pilene 2J-2M kan bli avbildet til vinkelen for pilen 2M, vinkler for pilene 2N-2Q kan bli avbildet til vinkelen for pilen 2Q, vinkler for pilene 2R-2U kan bli avbildet til vinkelen for pilen 2U, vinkler for pilene 2V-2Y kan bli avbildet til vinkelen for pilen 2Y, vinkler for pilene 2Z-2AC kan bli avbildet til vinkelen for pilen 2AC, og vinkler for pilene 2AD-2AG kan bli avbildet til vinkelen for pilen 2AG. [0139] Andre avbildninger kan også tilveiebringes. I noen eksempler kan videokoderen og videodekoderen utstyres med en rekke forskjellige avbildninger, og videokoderen kan tilveiebringe informasjon som angir avbildningen anvendt for en gitt bitstrøm, f.eks. i headerdata, et sett av sekvensparameter (SPS) eller andre signaliserte data. [0140] Som angitt over kan, i noen eksempler, en videokoderanordning (så som videokoderen eller videodekoderen ) innrettes for å avgjøre om det foreligger en kantlinje i en blokk. For eksempel kan videokoderanordningen være innrettet for å avgjøre om det foreligger en kantlinje i blokk 6 basert på en analyse av pikseler i én eller flere naboblokker, hvor naboblokkene kan inkludere én eller flere nabopikseler 0. Generelt kan en tidligere kodet naboblokk dele en grense med blokk 6, hvor grensen kan svare til én eller flere av nabopikslene 0. For eksempel kan en venstre

43 naboblokk til blokk 6 inkludere nabopikseler 0I-0P som definerer en grense mellom den venstre naboblokken og blokk 6. [0141] Videokoderanordningen kan være innrettet for å regne ut gradienter for pikseler i en tidligere kodet naboblokk for å avgjøre om det foreligger en kantlinje i den tidligere kodede naboblokken. Videokoderanordningen kan videre avgjøre om kantlinjen krysser (dvs. skjærer) en grense mellom den tidligere kodede naboblokken og en aktuell blokk, så som blokken 6. I eksempelet med den venstre naboblokken til blokk 6 beskrevet over, kan videokoderanordningen avgjøre om gradienter for pikseler i den venstre naboblokken indikerer tilstedeværelse av en kantlinje som skjærer grensen mellom den venstre naboblokken og blokk 6, hvor grensen defineres av pikslene 0I-0P i dette eksempelet. Når videokoderanordningen fastslår at gradienter for pikseler i den venstre naboblokken indikerer tilstedeværelse av en kantlinje og at kantlinjen krysser grensen definert av pikslene 0I-0P, kan videokoderanordningen faststlå at kantlinjen fortsetter inn i blokk 6 og således at blokk 6 inkluderer en kantlinje. [0142] I noen eksempler, når videokoderanordningen fastslår at signalisert intraprediksjonsmodus for blokk 6 er DC-prediksjonsmodus, og at blokk 6 inkluderer en kantlinje, kan videokoderanordningen predikere blokken 6 ved anvendelse av en kantlinjebasert intraprediksjonsmodus. Videre kan videokoderanordningen bestemme en vinkel for kantlinjen. Videokoderanordningen kan så bestemme en vinkel til en prediksjonsmodus, generelt angitt av pilene 2, som best approksimerer kantlinjens vinkel. Videokoderanordningen kan så velge en transformasjon (som kan svare til en invers transformasjon ved dekoding) som er avbildet til den intraprediksjonsmodusen som har vinkelen som best approksimerer vinkelen til kantlinjen, og anvende den valgte transformasjonen på residualdata for blokken 6. Under en innkodingsprosess kan videokoderanordningen anvende transformasjonen på en TU i blokk 6, mens under en dekodingsprosess kan videokoderanordningen anvende en invers transformasjon på transformerte residualdata for blokk 6. [0143] Figur er et konseptuelt diagram som illustrerer intraprediksjonsmodi 1A- 1I (intraprediksjonsmodi 1) i H.264. Intraprediksjonsmodus 1C svarer til en DC-intraprediksjonsmodus, og er derfor ikke nødvendigvis forbundet med en faktisk vinkel. De gjenværende intraprediksjonsmodiene 1 kan ha en tilhørende vinkel, tilsvarende vinklene til pilene 2 i figur 4. For eksempel svarer vinkelen til intraprediksjonsmodus 1A til pilen 2Y, vinkelen til intraprediksjonsmodus 1B svarer til pilen 21, vinkelen til intraprediksjonsmodus 1D svarer til pilen 2AG, vinkelen til intraprediksjonsmodus 1E svarer til pilen 2Q, vinkelen til intraprediksjonsmodus 1F svarer til pilen 2U, vinkelen til intraprediksjonsmodus 1G

44 svarer til pilen 2M, vinkelen til intraprediksjonsmodus 1H svarer til pilen 2AD og vinkelen til intraprediksjonsmodus 1I svarer til pilen 2E. [0144] Vinkler til piler 2 som ikke direkte svarer til én av intraprediksjonsmodiene 1 kan være avbildet til én av intraprediksjonsmodiene 1. For eksempel kan vinkelen for én av intraprediksjonsmodiene 1 som approksimerer vinkelen til én av pilene 2 svare til vinkelen til hvilken én av pilene 2 er avbildet. [014] Hver av intraprediksjonsmodiene 1 kan være avbildet til en gitt transformasjon, f.eks. med en én-til-én-korrespondanse. For eksempel kan en videokoderanordning, så som videokoderen eller videodekoderen, inkludere konfigurasjonsdata som avbilder intraprediksjonsmodus 1C til en DCT, og hver av de andre intraprediksjonsmodiene 1 til en bestemt retningstransformasjon, f.eks. en KLT. Vinkler for hver av intraprediksjonsmodiene forbundet med pilene 2 (figur 4) kan derfor være avbildet til vinkler for intraprediksjonsmodi 1 (figur ). Intraprediksjonsmodi 1 kan i sin tur være avbildet til transformasjoner, f.eks. retningstransformasjoner. På denne måten kan vinkler for hver av intraprediksjonsmodiene forbundet med pilene 2 (figur 4) være avbildet til retningstransformasjoner. På den måten kan videokoderen og videodekoderen bestemme en retningstransformasjon som skal anvendes på en TU basert på en intraprediksjonsmodus valgt for en PU svarende til TU'en. [0146] Figur 6 er et konseptuelt diagram som illustrerer et eksempel på et sikksakkskann av koeffisienter 1A-1P (koeffisientene 1). Koeffisientene 1 svarer generelt til kvantiserte transformasjonskoeffisienter, fremkommet fra transformasjon og kvantisering av pikseler eller en TU. Videokoderen kan være innrettet for å skanne en blokk av koeffisienter med bruk av sikksakkskannet i figur 6 etter f.eks. bruk av en DCT på en residualblokk. I dette eksempelet begynner sikksakkskannet ved koeffisienten 1A, fortsetter så til koeffisienten 1B, så til koeffisienten 1E, så til koeffisienten 1I, så til koeffisienten 1F, så til koeffisienten 1C, så til koeffisienten 1D, så til koeffisienten 1G, så til koeffisienten 1J, så til koeffisienten 1M, så til koeffisienten 1N, så til koeffisienten 1K, så til koeffisienten 1H, så til koeffisienten 1L, så til koeffisienten, og til slutt til koeffisienten 1P. [0147] Ved å utføre dette skannet kan den todimensjonale anordningen av koeffisienter for pikseler omdannes til et éndimensjonalt array som inkluderer verdier for hver av koeffisientene 1. Disse verdiene kan anordnes i arrayet i skannets rekkefølge. For eksempel kan verdien for koeffisient 1A befinne seg først i arrayet, etterfulgt av verdier for koeffisientene 1B, 1E, 1I, 1F osv. [0148] Andre forhåndsdefinerte skannemønstre kan også defineres for andre transformasjoner. For eksempel kan hver retningstransformasjon tilknyttes et skannemønster som er utformet for å plassere lavfrekvente koeffisienter fremkommet

45 fra retningstransformasjonen tidligere i et array enn mer høyfrekvente koeffisienter. Én av retningstransformasjonene kan bevirke til at mer lavfrekvente koeffisienter opptrer langs kolonnen lengst til venstre i en blokk av transformasjonskoeffisienter, i hvilket tilfelle et tilhørende skann kan være definert som begynner ved koeffisient 1A, så fortsetter til koeffisient 1E, så til koeffisient 11, så til koeffisient 1M, så til 1B, osv. Som et annet eksempel kan en annen av retningstransformasjonene bevirke til at mer lavfrekvente koeffisienter opptrer langs den øvre raden i en blokk av transformasjonskoeffisienter, i hvilket tilfelle et tilhørende skann kan være definert som begynner ved koeffisient 1A, så fortsetter til koeffisient 1B, så til koeffisient 1C, så til koeffisient 1D, så til koeffisient 1E osv. [0149] I noen eksempler kan videokoderen være innrettet for å utføre et adaptivt skann, heller enn et forhåndsdefinert skann. Det adaptive skannet kan variere over tid basert på statistikk som indikerer om bestemte koeffisienter (dvs. koeffisienter svarende til koeffisientene 1) er signifikante. Videre kan videokoderen beregne separate sett av statistikker basert for eksempel på en intraprediksjonsmodus valgt for å predikere en blokk, en indeks til en rotasjonstransformasjon som skal anvendes etter en innledende transformasjon, eller andre faktorer. [0] I noen eksempler kan videokoderen inkludere to tabeller for disse statistikkene: en tabell med høydynamisk område og en dynamisk oppdatert skannetabell. Antatt at blokken som skal skannes har NxN koeffisienter, kan hver av disse to tabellene også ha størrelse NxN. Tabellen med høydynamisk område kan være et fast, forbestemt tabell som gir sannsynligheter for at hver transformasjonskoeffisient er forskjellig fra null. Denne tabellen kan beregnes basert på et sett av treningsdata. Videre kan denne tabellen bli anvendt for å tilveiebringe startpunktet for den adaptive skannerekkefølgen. Generelt kan tabellen med høydynamisk område være statisk (dvs. uendret) for en bitstrøm. [011] Den dynamisk oppdaterte skannetabellen kan bli oppdatert over tid til å reflektere nylig bestemt statistikk for transformasjonskoeffisienter. Spesielt kan videokoderen holde telling på antallet ganger hver koeffisient er forskjellig fra null. Nærmere bestemt kan videokoderen, for hver transformasjonsblokk, inkrementere verdier i den dynamisk oppdaterte skannetabellen svarende til koeffisienter forskjellige fra null i den aktuelle transformasjonsblokken. Dersom for eksempel transformasjonskoeffisienten svarende til koeffisienten 1E er forskjellig fra null, kan videokoderen legge til én i verdien i den dynamisk oppdaterte skannetabellen svarende til koeffisienten 1E. Verdiene i den dynamisk oppdaterte skannetabellen kan også bli normalisert periodisk, for å hindre at verdiene overstiger en maksimalverdi. [012] For å utføre det adaptive skannet for en første transformasjonsenhet for en ramme kan videokoderen skanne basert på tabellen med høydynamisk område alene. Videokoderen kan også initialisere den dynamisk oppdaterte skannetabellen

46 f.eks. ved å sette alle verdiene i den dynamisk oppdaterte skannetabellen til null. For hver ikke-null koeffisient i transformasjonsblokken kan videokoderen legge til én i den samlokaliserte verdien i den dynamisk oppdaterte skannetabellen. For etterfølgende blokker kan videokoderen først konsultere den dynamisk oppdaterte skannetabellen for å avgjøre hvilke av transformasjonskoeffisientene som har høyest sannsynlighet for å være forskjellige fra null, så skanne i rekkefølge av avtagende sannsynlighet for at koeffisienter er forskjellig fra null. I noen tilfeller kan to eller flere verdier i den dynamisk oppdaterte skannetabellen være like. I et slikt tilfelle konsulterer kvantiseringsenheten 4 tabellen med høydynamisk område for å bestemme hvilken koeffisient som er den neste som skal skannes. På denne måten kan kvantiseringsenheten 4 utføre et adaptivt skann basert på en kombinasjon av en tabell med høydynamisk område og en dynamisk oppdatert skannetabell. [013] Tabellen med høydynamisk område kan være den samme for all statistikk for adaptive skann, i noen eksempler. Videokoderen kan derfor inkludere dynamisk oppdaterte skannetabeller spesifikke for eksempel for den valgte intraprediksjonsmodusen, rotasjonstransformasjonsindeksen eller en kombinasjon av dette. I noen eksempler kan videokoderen være innrettet for å velge blant forbestemte, statiske skann når en rotasjonstransformasjon ikke er anvendt, og for å utføre et adaptivt skann når en rotasjonstransformasjon er anvendt, og videre for å velge statistikk for å utføre det adaptive skannet basert på den ene eller begge av den valgte intraprediksjonsmodusen og indeksen til den valgte rotasjonstransformasjonen. Alternativt kan videokoderen være innrettet for å velge et forhåndsdefinert skann basert på en indeks til rotasjonstransformasjonen, en intraprediksjonsmodus eller en kombinasjon av dette. Videodekoderen kan være innrettet på tilsvarende måte som videokoderen til å velge et passende skann. [014] Figurene 7A og 7B er konseptuelle diagrammer som illustrerer et eksempel på et kvadtre og en tilhørende største kodeenhet 172. Figur 7A viser et eksempel på et kvadtre, som inkluderer noder anordnet på en hierarkisk måte. Hver node i et kvadtre, så som kvadtreet, kan være en bladnode uten undernoder, eller ha fire undernoder. I eksempelet i figur 7A inkluderer kvadtreet en rotnode 12. Rotnoden 12 har fire undernoder, inkludert bladnoder 16A-16C (bladnodene 16) og en node 14. Siden noden 14 ikke er en bladnode, inkluderer noden 14 fire undernoder, som i dette eksempelet er bladnoder 18A-18D (bladnodene 18). [01] Kvadtreet kan inkludere data som beskriver trekk ved en tilhørende største kodeenhet (LCU), så som LCU 172 i dette eksempelet. For eksempel kan kvadtreet, gjennom sin struktur, beskrive oppsplitting av LCU'en i under-cu'er. Anta at LCU 172 har størrelsen 2Nx2N. LCU 172, i dette eksempelet, har fire under-cu'er 176A-176C (under-cu'ene 176) og 174, hver av størrelse NxN. Under-CU 174 er igjen delt inn i fire under-cu'er 178A-178D (under-cu'ene 178), hver av størrelse N/2xN/2.

47 Strukturen til kvadtreet svarer til oppsplittingen av LCU 172, i dette eksempelet. Nærmere bestemt svarer rotnoden 12 til LCU 172, bladnodene 16 svarer til under- CU'ene 176, node 14 svarer til under-cu 174 og bladnodene 18 svarer til under- CU'ene 178. [016] Data for noder i kvadtreet kan angi om CU'en svarende til noden er splittet. Dersom CU'en er splittet, kan fire ytterligere noder forefinnes i kvadtreet. I noen eksempler kan en node i et kvadtre inplementeres tilsvarende som følgende pseudokode: kvadtre_node { boolean split_flag(l); // signaleringsdata if(split_flag) { kvadtre_node child1; kvadtre_node child2; kvadtre_node child3; kvadtre_node child4: } } Verdien split_flag kan være en én-bits verdi som representerer hvorvidt CU'en svarende til aktuell node er splittet. Hvis CU'en ikke er splittet, kan verdien til split_flag være '0', mens hvis CU'en er splittet, kan verdien til split_flag være '1'. For eksempelet med kvadtreet kan et array av split_flag-verdier være [017] I noen eksempler kan hver av under-cu'ene 176 og under-cu'ene 178 intraprediksjonskodes ved anvendelse av samme intraprediksjonsmodus. Videokoderen kan derfor gi en angivelse av intraprediksjonsmodusen i rotnoden 12. Videre kan under-cu'er av visse størrelser ha flere mulige transformasjoner for en gitt intraprediksjonsmodus. I samsvar med teknikkene ifølge denne oppfinnelsen kan videokoderen gi en angivelse av transformasjonen å anvende for slike under-cu'er i rotnoden 12. For eksempel kan under-cu'er av størrelse N/2xN/2 ha flere mulige transformasjoner tilgjengelig. Videokoderen kan signalisere transformasjonen å anvende i rotnoden 12. På den måten kan videodekoderen bestemme hvilken transformasjon som skal anvendes på under-cu'er 178 basert på intraprediksjonsmodusen signalisert i rotnoden 12 og transformasjonen signalisert i rotnoden 12. [018] Videokoderen trenger således ikke signalisere transformasjoner som skal anvendes på under-cu'er 176 og under-cu'er 178 i bladnodene 16 og bladnodene 18, men kan i stedet bare signalisere en intraprediksjonsmodus og, i noen eksempler, en transformasjon som skal anvendes på under-cu'er av bestemte størrelser, i rotnoden 12, i samsvar med teknikkene ifølge denne oppfinnelsen. På denne måten kan disse

48 teknikkene redusere administrasjonskostnaden forbundet med signalisering av transformasjonsfunksjoner for hver under-cu i en LCU, så som LCU 172. [019] I noen eksempler kan intraprediksjonsmodi for under-cu'er 176 og/eller under- CU'er 178 være forskjellige fra intraprediksjonsmodi for LCU 172. Videokoderen og videodekoderen kan være utformet med funksjoner som avbilder en intraprediksjonsmodus signalisert ved rotnoden 12 til en tilgjengelig intraprediksjonsmodus for under-cu'ene 176 og/eller under-cu'ene 178. Funksjonen kan tilveiebringe en mange-til-én-avbildning av intraprediksjonsmodi tilgjengelig for LCU 172 til intraprediksjonsmodi for under-cu'ene 176 og/eller under-cu'ene 178. [0160] Selv om Figur 7A illustrerer et eksempel på et CU-kvadtre, må det forstås at et tisvarende kvadtre kan bli anvendt for TU'er i en bladnode-cu. Nærmere bestemt kan en bladnode-cu inkludere et TU-kvadtre som beskriver oppdeling av TU'er for CU'en. Et TU-kvadtre kan generelt likne et CU-kvadtre, bortsett fra at TU-kvadtreet kan signalisere intraprediksjonsmodi for TU'er i CU'en enkeltvis. [0161] Figur 8 er et flytdiagram som illustrerer et eksempel på en fremgangsmåte for å velge en transformasjon og et skan å anvende på en blokk basert på en intraprediksjonsmodus valgt for blokken. Selv om den beskrives generelt som utført av komponenter i videokoderen (figur 2) for forklaringsformål, må det forstås at andre videokoderenheter, så som prosessorer, prosesseringsenheter, maskinvare-baserte kodingsenheter, så som kodere/dekodere (kodeker), og liknende, også kan innrettes for å utføre fremgangsmåten i figur 8. [0162] I eksempelet i figur 8 kan transformeringsenheten 2 innledningsvis motta residualdata for en aktuell TU (180). I tillegg kan transformeringsenheten 2 også motta en angivelse av en intraprediksjonsmodus valgt for TU'en. Fra denne angivelsen kan transformeringsenheten 2 bestemme en prediksjonsretning for TU'en (182). For eksempel kan transformeringsenheten 2 bestemme en vinkel til prediksjonsretningen for den angitte intraprediksjonsmodusen. [0163] Uansett, etter å ha slått fast intraprediksjonsmodusen, kan transformeringsenheten 2 velge en transformasjon å anvende på residualdataene basert på en avbildning fra intraprediksjonsmodusen til transformasjonen (186). For eksempel kan transformeringsenheten 2 velge transformasjonen som skal anvendes ved å spørre avbildningsdataene 66 med intraprediksjonsretningen og fastslå hvilken transformasjon intraprediksjonsretningen er avbildet til. Transformasjonen kan svare til en diskret cosinustransformasjon eller en retningstransformasjon, så som en modusavhengig retningstransformasjon (MDDT). Transformeringsenheten 2 kan deretter anvende den valgte transformasjonen på residualdataene for å transformere residualdataene (188). I noen eksempler kan avbildningsdataene 66 videre inkludere en angivelse av at transformeringsenheten 2 skal anvende to eller flere transformasjoner, så som en

49 rotasjonstransformasjon etter den første transformasjonen, i hvilket tilfelle transformeringsenheten 2 videre kan anvende den angitte rotasjonstransformasjonen. [0164] Ved å transformere residualdataene kan transformeringsenheten 2 generere en todimensjonal matrise av transformasjonskoeffisienter som har samme antall koeffisienter som residualdataene. I eksempelet i figur 8 kan kvantiseringsenheten 4 deretter kvantisere transformasjonskoeffisientene (190). I noen eksempler kan kvantiseringsenheten 4 skanne den todimensjonale koeffisientmatrisen for å generere et éndimensjonalt array, f.eks. før eller etter kvantisering av koeffisientene. Alternativt kan entropikodingsenheten 6 skanne den todimensjonale matrisen. [016] I dette eksempelet kan entropikodingsenheten 6 spørre avbildningsdataene 66 for å velge et skann å anvende på de kvantiserte transformasjonskoeffisientene (192). I noen eksempler kan avbildningsdataene 66 inkludere data som avbilder intraprediksjonsmodi til bestemte, forhåndsdefinerte skannemønstre. I noen eksempler kan avbildningsdataene 66 inkludere data som avbilder transformasjoner til forhåndsdefinert skannemønstre. I noen eksempler, f.eks. hvor avbildningsdataene 66 angir at en rotasjonstransformasjon skal anvendes på transformasjonskoeffisienter, kan avbildningsdataene 66 videre angi at et adaptivt skann skal utføres, eller et forhåndsdefinert skann til hvilket rotasjonstransformasjonen er avbildet. I eksempler der et adaptivt skann blir utført, kan avbildningsdataene 66 videre inkludere skannstatistikk, f.eks. en tabell emed høydynamisk område og en dynamisk oppdatert skannetabell, avbildet til intraprediksjonsmodusen, en indeks til den første transformasjonen, en indeks til rotasjonstransformasjonen, en kombinasjon derav, og/eller andre faktorer. [0166] Entropikodingsenheten 6 kan så skanne de kvantiserte transformasjonskoeffisientene med bruk av det valgte skannet (194), f.eks. det forhåndsdefinerte skannet eller det adaptive skannet basert på valgt skannstatistikk. I noen eksempler kan entropikodingsenheten 6 være utformet med en skanneposisjon (som kan være mindre enn eller lik antallet transformasjonskoeffisienter) etter hvilken entropikodingsenheten 6 kan nulle ut koeffisientverdiene i arrayet. Etter skanning av et antall koeffisienter lik skanneposisjonen, kan entropikodingsenheten 6 sette gjenværende arrayverdier lik null. Nulling av transformasjonskoeffisienter kan finne sted før eller etter skannet, i noen eksempler. [0167] I noen eksempler kan entropikodingsenheten 6 så entropikode de skannede koeffisientene i arrayet etter skannet (196). Alternativt, i noen eksempler, kan entropikodingsenheten 6 entropikode koeffisientene etter hvert som de skannes. I alle fall kan entropikodingsenheten 6 anvende enten CABAC eller CAVLC for å entropikode koeffisientene. [0168] Når CABAC blir anvendt, og når et adaptivt skann blir utført, kan entropikodingsenheten 6 entropikode syntakselementer, herunder signifikant koeffisientflagg og siste koeffisient-flagg. Entropikodingsenheten 6 kan velge kontekstmodeller

50 for å entropikode signifikant koeffisient-flagg basert på en blokktype (intra eller inter), en valgt intraprediksjonsmodus (antatt at blokken predikeres i en intramodus), og/eller en type transformasjon anvendt (f.eks. DCT eller retningsbestemt/klt). Entropikodingsenheten 6 kan velge kontekstmodeller for entropikoding av siste koeffisient-flagg basert på rekkefølgeindeksen i det adaptive skannet, blokktype, romlig prediksjonsretning og/eller en valgt transformasjon. [0169] På denne måten representerer fremgangsmåten i figur 8 et eksempel på en fremgangsmåte som inkluderer å beregne en residualblokk for en blokk av videodata basert på en predikert blokk dannet ved anvendelse av en intraprediksjonsmodus, og transformere residualblokken ved anvendelse av en transformasjon avbildet til intraprediksjonsmodusen. [0170] Figur 9 er et flytdiagram som illustrerer et annet eksempel på en fremgangsmåte for å velge en transformasjon og et skann å anvende på en blokk av residualdata. Generelt er figur 9 hovedsakelig samsvarende med figur 8. I eksempelet i figur 9, etter mottak av residualdataene (180) og angivelse av en intraprediksjonsmodus valgt for TU'en, kan imidlertid transformeringsenheten 2 bestemme en første prediksjonsretning for å predikere TU'en (183). For eksempel kan transformeringsenhet 2 bestemme en vinkel til prediksjonsretningen for den angitte intraprediksjonsmodusen. [0171] Transformeringsenheten 2 kan deretter bestemme en andre retning avbildet til den første prediksjonsretningen (184). For eksempel kan transformeringsenheten 2 spørre avbildningsdataene 66 for å bestemme en andre intraprediksjonsmodus som den første intraprediksjonsmodusen avbildes til. I noen eksempler kan transformeringsenheten 2 bestemme en vinkel som approksimerer vinkelen til den angitte intraprediksjonsmodusen, og velge en andre intraprediksjonsmodus svarende til den bestemte vinkelen. Transformeringsenheten 2 kan så velge en transformasjon avbildet til de andre prediksjonsdataene (18). Etter valg av transformasjonen, som kan svare til valg av flere transformasjoner, utfører videokoderen i alminnelighet resten av trinnene i figur 9 på en måte tilsvarende de motsvarende trinnene beskrevet i forbindelse med figur 8. [0172] På denne måten er fremgangsmåten i figur 9 et eksempel på en fremgangsmåte som inkluderer å motta en angivelse av en første intraprediksjonsmodus i et første sett av intraprediksjonsmodi for en blokk av videodata, bestemme en andre intraprediksjonsmodus fra et mindre sett av intraprediksjonsmodi til hvilken den første intraprediksjonsmodusen er avbildet, bestemme en retningstransformasjon til hvilken den andre intraprediksjonsmodusen er avbildet, og anvende retningstransformasjonen på residualdata for blokken. [0173] Figur er et flytdiagram som illustrerer et eksempel på en fremgangsmåte for å anvende en intraprediksjonsmodus og en transformasjon på under-cu'er av bestemt størrelse. Selv om den beskrives generelt som utført av komponenter i videokoderen

51 (figur 2) for forklaringsformål, må det forstås at andre videokoderenheter, så som prosessorer, prosesseringsenheter, maskinvarebaserte kodingsenheter, så som kodere/dekodere (kodeker) og liknende, også kan innrettes for å utføre fremgangsmåten i figur. Det må også forstås at i andre eksempler, tilsvarende fremgangsmåter kan inkludere ytterligere eller alternative trinn til de illustrert i figur, eller kan utføre de illustrerte trinnene i en annen rekkefølge, uten å fjerne seg fra de beskrevne teknikkene. [0174] Teknikker for å velge og anvende en transformasjon som beskrevet under henvisning til figur kan svare til trinnene 186 og 188 i figur 8. Teknikker for å anvende ulike intraprediksjonsmodi på blokker av forskjellige størrelser som beskrevet under henvisning til figur kan bli utført før trinn 180 i figur 8. [017] Intraprediksjonsenheten 46 kan motta en blokk av pikseler, f.eks. en LCU (0). Intraprediksjonsenheten 46 kan da bestemme en intraprediksjonsmodus som skal anvendes på LCU'en og signalisere den bestemte intraprediksjonsmodusen for LCU'en (1), f.eks. ved en rotnode i en kvadtre-datastruktur svarende til LCU'en. Intraprediksjonsenheten 46 kan så bestemme størrelser til under-cu'er for hvilke bare en delmengde av intraprediksjonsmodiene er tilgjengelige (2), Intraprediksjonsenheten 46 kan videre dele LCU'en opp i én eller flere under-cu'er og avgjøre om noen av under-cu'ene har en størrelse for hvilken bare en delmengde av intraprediksjonsmodiene er tilgjengelig (4). [0176] Dersom LCU'en inkluderer under-cu'er med en størrelse for hvilken bare en delmengde av intraprediksjonsmodi er tilgjengelig ("JA"-grenen i 184), kan intraprediksjonsenheten 46 intrapredikere under-cu'ene ved anvendelse av en intraprediksjonsmodus til hvilken intraprediksjonsmodusen valgt for LCU'en er avbildet (6). Dersom derimot LCU'en ikke har under-cu'er som er av en slik størrelse ("NEI"-grenen i 184), kan intraprediksjonsenheten 46 anvende modusen signalisert for LCU'en på alle delblokkene i LCU'en (8). [0177] Videokoderen kan så beregne residualverdier for under-cu'er i LCU'en. Deretter kan transformasjonsenheten 32 bestemme størrelser av under-cu'er for hvilke flere transformasjoner er mulig basert på den signaliserte intraprediksjonsmodusen for LCU'en (2). Transformeringsenheten 2 kan videre avgjøre om noen av under- CU'ene i LCU'en har en størrelse for hvilken flere transformasjoner er mulig (212). Dersom minst én under-cu har en størrelse for hvilken flere transformasjoner er mulig ("JA"-grenen i 212), kan transformeringsenheten 2 velge ut og signalisere en transformasjon som skal anvendes for under-cu'er av denne størrelsen (214). For eksempel kan transformeringsenheten 2 signalisere transformasjonen som skal anvendes på under-cu'er av denne størrelsen i rotnoden i kvadtreet for LCU'en. Transformeringsenheten 2 kan også anvende den signaliserte transformasjonen på alle delblokker i LCU'en av den størrelsen (216). Dersom derimot LCU'en ikke inneholder

52 under-cu'er for hvilke flere transformasjoner er mulig ("NEI"-grenen i 212), kan transformeringsenheten 2 anvende transformasjoner på under-cu'er i LCU'en utelukkende basert på den signaliserte intraprediksjonsmodusen for LCU'en (218), slik at ingen signalering vedrørende transformasjoner er nødvendig. [0178] På denne måten er fremgangsmåten i figur et eksempel på en fremgangsmåte som inkluderer å velge en intraprediksjonsmodus som skal anvendes for å kode inn en blokk av videodata, avgjøre om blokken inkluderer en delblokk av en størrelse for hvilken flere transformasjoner er mulig basert på delblokkens størrelse og den valgte intraprediksjonsmodusen, når blokken inkluderer en delblokk av en størrelse for hvilken flere transformasjoner er mulig basert på delblokkens størrelse og den valgte intraprediksjonsmodusen, velge én av de flere mulige transformasjonene, transformere delblokken ved anvendelse av den valgte av de flere mulige transformasjonene, og gi en angivelse av den valgte av de flere transformasjonene mulige for blokkstørrelsen. [0179] Figur 11 er et flytdiagram som illustrerer et eksempel på en fremgangsmåte for å utføre et adaptivt skann basert på en valgt transformasjon anvendt på en blokk. Selv om den beskrives generelt som utført av komponenter i videokoderen (figur 2) for forklaringsformål, må det forstås at andre videokoderenheter, så som prosessorer, prosesseringsenheter, maskinvarebaserte kodingsenheter, så som kodere/dekodere (kodeker), og liknende, også kan innrettes for å utføre fremgangsmåten i figur 11. [0180] Det må også forstås at i andre eksempler, tilsvarende fremgangsmåter kan inkludere ytterligere eller alternative trinn i forhold til de illustrert i figur 11, eller kan utføre de illustrerte trinnene i en annen rekkefølge, uten å fjerne seg fra de beskrevne teknikkene. Teknikkene for adaptivt å skanne koeffisienter etter en kaskadet transformasjon som illustrert i figur 11 kan svare til trinnene 192 og 194 i figur 8. Teknikkene for adaptivt å skanne residualkoeffisienter i figur 11 kan bli anvendt på residualdata etter intraprediksjon eller interprediksjon. [0181] Innledningsvis kan transformeringsenheten 2 i videokoderen motta en residualblokk (2). Residualblokken kan svare til residualet etter intraprediksjon eller interprediksjon av en CU. Residualblokken kan ha samme størrelse som eller en annen størrelse enn en samsvarende prediksjonsenhet for CU'en. Transformeringsenheten 2 kan deretter transformere residualblokken (232). I noen eksempler kan transformeringsenheten 2 anvende en retningstransformasjon svarende til en intraprediksjonsmodus fra en delmengde av intraprediksjonsmodi, i samsvar med teknikker ifølge denne oppfinnelsen. I andre eksempler kan transformeringsenheten 2 anvende en diskret cosinustransformasjon. [0182] Transformeringsenheten 2 kan så anvende en rotasjonstransformasjon på den transformerte blokken (234). For transformasjonsenheter (TU'er) av størrelse 8x8 og større på hvilke transformeringsenheten 2 anvender en DCT, kan transformeringsenheten 2 anvende rotasjonstransformasjonen på de mest lavfrekvente 8x8 DCT-

53 koeffisientene. For TU'er mindre enn 8x8, kan transformeringsenheten 2 anvende rotasjonstransformasjonen på hele TU'en. Dersom PU'en svarende til TU'en ble intraprediksjonskodet, kan transformeringsenheten 2 velge en rotasjonstransformasjon basert på intraprediksjonsmodusen anvendt for å predikere PU'en, f.eks. hvor en delmengde av intraprediksjonsmodi kan være avbildet til rotasjonstransformasjoner. Disse rotasjonstransformasjonene kan omtales som modusavhengige rotasjonstransformasjoner (MDROT'er). I noen eksempler kan transformeringsenheten 2 kaskade en rotasjonstransformasjon (eller en annen sekundær, separabel transformasjon) etter en modusavhengig retningstransformasjon (MDDT), som kan være en KLT. [0183] Etter rotasjonstransformasjonen kan kvantiseringsenheten 4 kvantisere de transformerte koeffisientene, i noen eksempler. Deretter kan entropikodingsenheten 6 velge et sett av statistikk å anvende for å utføre et adaptivt skann av transformasjonskoeffisientene. Settet av statistikk kan inkludere en tabell med høydynamisk område (HDR-tabell) og en dynamisk oppdatert tabell (DU-tabell). Den ene eller begge av HDR- og DU-tabellen kan bli valgt for et gitt scenario, f.eks. hvorvidt intraprediksjon eller interprediksjon ble anvendt for å predikere en PU, en gitt intraprediksjonsmodus for PU'en når intraprediksjon blir anvendt, hvorvidt en DCT eller KLT ble anvendt på TU'en svarende til PU'en, indeksen til rotasjonstransformasjonen anvendt, eller en hvilken som helst kombinasjon av dette. På denne måten kan entropikodingsenheten 6 velge HDR- og/eller DU-tabellen for bruk under det adaptive skannet (236). [0184] Som angitt over kan HDR-tabellen inkludere et forhåndsdefinert sett av data som angir sannsynligheter for at koeffisienter i hver posisjon i en matrise er forskjellige fra null. HDR-tabellen kan bli generert ved anvendelse av et sett av treningsdata, og kan forbli lik gjennom en hel bitstrøm. Entropikodingsenheten 6 kan samle inn statistikk separat for en ramme, bildelinje, gruppe av bilder eller annen enhet av videodata for å regne ut verdier for DU-tabellen. DU-tabellen kan derfor også angi sannsynligheter for at koeffisienter i hver posisjon i matrisen er forskjellige fra null. [018] For å utføre det adaptive skannet kan entropikodingsenheten 6 først bestemme posisjonen i matrisen som har høyest sannsynlighet for å inkludere en koeffisient forskjellig fra null ved anvendelse av DU-tabellen (238). I noen tilfeller kan det være to eller flere posisjoner i matrisen med lik sannsynlighet for å ha koeffisienter forskjellige fra null. Entropikodingsenheten 6 kan således avgjøre om det er flere posisjoner i matrisen med samme sannsynlighet for å inneholde koeffisienter forskjellige fra null (240). Dersom det er flere posisjoner i matrisen med samme sannsynlighet for å inneholde koeffisienter forskjellige fra null ("JA"-grenen i 240), kan entropikodingsenheten 6 bestemme posisjonen i matrisen som har høyest sannsynlighet for å inneholde en koeffisient forskjellig fra null ved anvendelse av HDR-tabellen (242).

54 [0186] Entropikodingsenheten 6 kan så skanne og entropikode koeffisienten i den bestemte posisjonen (244). Entropikodingsenheten 6 kan også fastslå om den skannede koeffisienten faktisk var forskjellig fra null og sette verdien for et signifikant koeffisient-flagg til å angi om den skannede koeffisienten var forskjellig fra null, og således signifikant. Entropikodingsenheten 6 kan så avgjøre om alle koeffisienter i matrisen er skannet (246). Hvis ikke ("NEI"-grenen i 246), kan entropikodingsenheten 6 bestemme posisjonen i matrisen som har nest høyest sannsynlighet for å inneholde en koeffisient forskjellig fra null ved anvendelse av DU-tabellen (eller muligens HDRtabellen), og skanne koeffisienten i denne posisjonen. [0187] Etter at alle koeffisienter er skannet ("JA"-grenen i 246), kan entropikodingsenheten stanse skannet. Videre, i noen eksempler, kan entropikodingsenheten 6 sette verdien til til et siste koeffisient-flagg for hver koeffisient for å angi om den aktuelle koeffisienten er den siste koeffisienten i flagget. Etter at det er slått fast at alle koeffisientene er skannet ("JA"-grenen i 246), kan entropikodingsenheten 6 sette verdien for siste koeffisient-flagget svarende til den sist skannede koeffisienten lik én. Med bruk av teknikkene i figur 12 som vil bli beskrevet nedenfor, kan entropikodingsenheten 6 kode syntakselementer, herunder signifikant koeffisient-flaggene og siste koeffisient-flaggene. [0188] I noen eksempler, etter skannet (uansett om det er adaptivt eller fast), kan videokoderen nulle ut koeffisienter i arrayet generert av skannet, f.eks. alle koeffisienter etter posisjon N i arrayet, hvor N er et heltall mellom null og arrayets lengde. I andre eksempler kan videokoderen nulle ut koeffisienter i bestemte posisjoner i matrisen etter transformasjonen(e) eller kvantisering. Disse posisjonene kan for eksempel svare til et øvre venstre hjørne av matrisen. Generelt kan nulling av disse koeffisientene resultere i nulling av mer høyfrekvente koeffisienter, noe som kan forbedre kodingseffektiviteten uten særlig innvirkning på kvaliteten. [0189] På denne måten er fremgangsmåten i figur 11 et eksempel på en fremgangsmåte som inkluderer å transformere residualdata for en blokk av videodata ved anvendelse av en første transformasjon for å generere en todimensjonal mellomblokk av transformasjonskoeffisienter, transformere den todimensjonale mellomblokken av transformasjonskoeffisienter ved anvendelse av en rotasjonstransformasjon for å generere en todimensjonal blokk av transformasjonskoeffisienter, velge et sett av statistikk knyttet til minst én av den første transformasjonenen og rotasjonstransformasjonen, hvor settet av statistikk gir sannsynligheter for at posisjoner i den todimensjonale blokken av transformasjonskoeffisienter vil være forskjellig fra null, og adaptivt skanne den todimensjonale blokken av transformasjonskoeffisienter basert på det valgte settet av statistikk. [0190] Figur 12 er et flytdiagram som illustrerer et eksempel på en fremgangsmåte for å velge en kontekstmodell å anvende ved skanning og entropikoding av syntaks-

55 elementer som beskriver adaptivt skannede koeffisienter. Selv om den beskrives generelt som utført av komponenter i videokoderen (figur 2) for forklaringsformål, må det forstås at andre videokoderenheter, så som prosessorer, prosesseringsenheter, maskinvarebaserte kodingsenheter, så som kodere/dekodere (kodeker), og liknende også kan innrettes for å utføre fremgangsmåten i figur 12. [0191] Det må også forstås at i andre eksempler, tilsvarende fremgangsmåter kan inkludere ytterligere eller alternative trinn til de illustrert i figur 12, eller kan utføre de illustrerte trinnene i en annen rekkefølge, uten å fjerne seg fra de beskrevne teknikkene. Teknikker for å velge en kontekstmodell å anvende ved skanning og entropikoding av syntakselementer som beskriver adaptivt skannede koeffisienter som illustrert i figur 11 kan svare til trinnene i figur 8. Teknikkene i figur 12 kan bli utført før, under eller etter utførelse av det adaptive skannet i figur 11. [0192] Entropikodingsenheten 6 kan motta en matrise av kvantiserte transormasjonskoeffisienter (), f.eks. fra kvantiseringsenheten 4. Generelt, ved bruk av fremgangsmåteeksempelet i figur 12, kan entropikodingsenheten 6 kode inn syntakselementer som beskriver de mottatte koeffisientene. Syntakselementene kan inkludere, for hver koeffisient, et signifikant koeffisient-flagg og et siste koeffisientflagg. Signifikant koeffisient-flagget kan angi om den tilhørende koeffisienten er signifikant, f.eks. om verdien til den aktuelle koeffisienten er større enn null. Siste koeffisient-flagget kan angi om den tilhørende koeffisienten er den siste koeffisienten i et adaptivt skann. [0193] Entropikodingsenheten 6 kan bestemme posisjoner til signifikante koeffisienter i den mottatte matrisen. Entropikodingsenheten 6 kan danne syntakselementer som angir posisjoner til signifikante koeffisienter i den mottatte matrisen (22). For eksempel, for hver koeffisient i matrisen, kan entropikodingsenheten 6 avgjøre om koeffisienten er større enn null, og i så fall sette en verdi i en syntakselementmatrise samlokalisert med koeffisienten lik én, ellers kan entropikodingsenheten sette verdien samlokalisert med koeffisienten lik null. Entropikodingsenheten 6 kan så oppdatere en dynamisk oppdatert skannetabell ved anvendelse av syntakselementmatrisen (24). For eksempel kan entropikodingsenheten 6 addere, til den gjeldende verdien til hvert element i den dynamisk oppdaterte skannetabellen, verdien til det samlokaliserte syntakselementet i syntakselementmatrisen. [0194] Entropikodingsenheten 6 kan så skanne et første av syntakselementene i syntakselementmatrisen (26). Entropikodingsenheten 6 kan anvende et sikksakkskann, så som det vist i figur 6A, eller et skann valgt basert på en blokktype (inter- eller intrapredikert blokk), en romlig prediksjonsretning dersom blokken er en intraprediksjonskodet blokk og/eller en type transformasjon anvendt (f.eks. DCT eller retningstransformasjon). Deretter kan entropikodingsenheten 6 velge en

56 kontekstmodell for å kode det skannede syntakselementet (28). I alminnelighet kan kontekstmodellen velges basert på antallet signifikante (f.eks. ikke-null) koeffisienter i de foregående N skannede koeffisientene, hvor N er en heltallsverdi forskjellig fra null. N kan velges basert på blokkens størrelse. [019] Etter å ha valgt kontekstmodellen å anvende for å innkode det aktuelle syntakselementet, kan entropikodingsenheten 6 entropikode det skannede syntakselementet ved anvendelse av den valgte kontekstmodellen (260). Entropikodingsenheten 6 kan så avgjøre om det innkodede syntakselementet er det siste syntakselementet som skal innkodes (262). Dersom syntakselementet er det siste syntakselementet ("JA"-grenen i 262), kan entropikodingsenheten 6 slutte å skanne koeffisienter. Dersom derimot syntakselementet ikke er det siste syntakselementet ("NEI"-grenen i 262), kan entropikodingsenheten 6 skanne det neste syntakselementet (264), og igjen velge en kontekstmodell for koding av det skannede syntakselementet, f.eks. basert på et antall signifikante koeffisienter i de foregående N skannede koeffisientene. [0196] Eksempelet i figur 12 beskrives primært i forbindelse med syntakselementer som angir om bestemte koeffisienter er signifikante eller ikke. Disse syntakselementene kan for eksempel inkludere signifikant koeffisient-flagg, f.eks. én-bits flagg som angir om tilhørende koeffisienter er signifikante, f.eks. ikke null. Det må forstås at tilsvarende teknikker kan bli anvendt i forbindelse med syntakselementer som angir om en gitt koeffisient er den siste koeffisienten i det adaptive skannet. For eksempel kan tilsvarende teknikker bli anvendt på et siste koeffisient-flagg. Ved koding av siste koeffisient-flagg med bruk av CABAC, kan kontekstmodellen baseres på rekkefølgeindeksen i det adaptive skannet, som er basert på blokktype, romlig prediksjonsretning og/eller en valgt transformasjon. [0197] Teknikkene i figur 12 kan bli utført av en videokoderanordning, så som videokoderen. En videodekoder kan utføre et inverst skann ved anvendelse av syntakselementene kodet i samsvar med figur 12. For eksempel kan videodekoderen motta en angivelse av en intraprediksjonsmodus anvendt for å predikere en kodet blokk, en angivelse av en rotasjonstransformasjon anvendt for å transformere den kodede blokken, eller andre slike data. Videokoderen og videodekoderen kan begge være innrettet med samme HDR-tabell. I eksempler hvor videokoderen inkluderer flere HDR-tabeller, kan videokoderen og videodekoderen begge være utformet med samme sett av HDR-tabeller. I slike eksempler kan videodekoderen anvende mottatt informasjon for å velge samme HDR-tabell som den anvendt av videokoderen for å utføre det adaptive skannet. [0198] Som angitt over kan videokoderen utføre det adaptive skannet basert på statistikk som indikerer sjansen (eller sannsynligheten) for at en koeffisient i en gitt posisjon i en matrise ikke er null. Videokoderen kan opprettholde en dynamisk

57 1 2 3 oppdatert skannetabell som angir denne sannsynligheten, og oppdatere den dynamisk oppdaterte skannetabellen for hver skannet blokk. Ved å kode inn syntakselementer som angir hvilke av koeffisientene i en gitt blokk som er signifikante, og hvilken koeffisient som er den siste i det adaptive skannet, kan videokoderen gi videodekoderen informasjon som kan bli anvendt for å inversskanne mottatte koeffisienter. [0199] For eksempel kan videodekoderen dekode syntakselementene, så oppdatere en lokal versjon av den dynamisk oppdaterte skannetabellen ved anvendelse av syntakselementene. Videodekoderen kan så entropidekode innkodede koeffisienter og plassere de dekodede koeffisientene i en motsvarende posisjon i en matrise som har en nest høyest sannsynlighet for å være signifikante (f.eks. ikke null). På denne måten kan videodekoderen rekonstruere en matrise av kvantiserte transformasjonskoeffisienter fra en mottatt vektor av entropikodede koeffisienter med bruk av et adaptivt inverst skann. [00] På denne måten er fremgangsmåten i figur 12 et eksempel på en fremgangsmåte som inkluderer å skanne en todimensjonal blokk av transformasjonskoeffisienter for å generere en éndimensjonal vektor av transformasjonskoeffisientene, bestemme verdier som angir om transformasjonskoeffisientene i den éndimensjonale vektoren er signifikante, og entropikode minst én av verdiene med bruk av en kontekstmodell valgt basert på i hvert fall en prosentandel av signifikante koeffisienter i et forbestemt antall verdier innkodet før den minst ene av verdiene. [01] Figur 13 er et flytdiagram som illustrerer et eksempel på en fremgangsmåte for dekoding av en TU som er kodet med bruk av én eller flere av teknikkene ifølge denne oppfinnelsen. Selv om den beskrives generelt som utført av komponenter i videodekoderen (figur 3) for forklaringsformål, må det forstås at andre videodekoderenheter, så som prosessorer, prosesseringsenheter, maskinvarebaserte kodingsenheter, så som kodere/dekodere (kodeker), og liknende også kan innrettes for å utføre fremgangsmåten i figur 13. Det må også forstås at i andre eksempler, tilsvarende fremgangsmåter kan inkludere ytterligere eller alternative trinn i forhold til de illustrert i figur 13, eller kan utføre de illustrerte trinnene i en annen rekkefølge, uten å fjerne seg fra de beskrevne teknikkene. [02] Innledningsvis kan videodekoderen motta innkodede residualdata (0). I eksempelet i figur 13 svarer residualdataene til residualet til en CU som inkluderer én eller flere PU'er predikert i en intraprediksjonsmodus, for illustrasjonsformål. I samsvar med teknikkene ifølge denne oppfinnelsen kan videodekoderen bestemme en første prediksjonsretning for prediksjonsdata knyttet til de mottatte residualdataene (2). Prediksjonsretningen kan svare til en intraprediksjonsmodus signalisert ved roten til et kvadtre svarende til CU'en.

58 [03] Videodekoderen kan bestemme en andre prediksjonsretning avbildet til den første prediksjonsretningen (4). For eksempel kan avbildningsdataene 84 gi en mange-til-én-avbildning av et sett av intraprediksjonsmodi til et mindre sett, f.eks. en delmengde, av intraprediksjonsmodi. På den måten kan videodekoderen konsultere avbildningsdataene 84 for å bestemme den andre prediksjonsretningen avbildet til den første prediksjonsretningen. Entropidekoderenheten 70 i videodekoderen kan så begynne å entropidekode de mottatte koeffisientene (6). [04] Entropidekoderenheten 70 kan også inversskanne koeffisientene under eller etter entropidekoding (8). I noen eksempler kan entropidekoderenheten 70 invertere et fast skann til hvilket den andre prediksjonsretningen er avbildet, f.eks. som angitt av avbildningsdataene 84. I andre eksempler, f.eks. når en første transformasjon er kaskadet med en rotasjonstransformasjon, kan entropidekoderenheten 70 invertere et dynamisk skann. Som angitt over kan entropidekoderenheten 70, i slike eksempler, motta og dekode syntakselementer, så som signifikant koeffisient-flagg og siste koeffisient-flagg, slik at entropidekoderenheten 70 kan generere en dynamisk oppdateringstabell identisk med den anvendt av en koder, så som videokoderen, når koderen skannet residualdataene adaptivt. [0] I alle fall, etter det inverse skannet, kan entropidekoderenheten 70 generere en todimensjonal matrise innbefattende kvantiserte transformasjonskoeffisienter. Inverskvantiseringsenheten 76 kan derfor inverskvantisere de kvantiserte transformasjonskoeffisientene i matrisen (3). Inverstransformeringsenheten 78 kan velge en invers transformasjon avbildet til den andre prediksjonsretningen (312) og inverstransformere transformasjonskoeffisientene med bruk av den valgte inverse transformasjonen (314). For eksempel kan inverstransformeringsenheten 76 konsultere avbildningsdataene 84 for å velge den inverse transformasjonen. I noen eksempler kan avbildningsdataene 84 angi både en invers rotasjonstransformasjon og en annen invers transformasjon som skal anvendes, i hvilket tilfelle inverstransformeringsenheten 78 først kan anvende den inverse rotasjonstransformasjonen og så anvende den andre inverse transformasjonen på transformasjonskoeffisientene. [06] I samsvar med teknikkene ifølge denne oppfinnelsen, i noen eksempler, kan det finnes en delblokk av transformasjonskoeffisientene for hvilken flere inverse transformasjoner er mulig. I slike eksempler kan videodekoderen bestemme den inverse transformasjonen som skal anvendes ved hjelp av en angivelse av transformasjonen anvendt av videokoderen. For eksempel kan videodekoderen motta en angivelse av transformasjonen anvendt for delblokken i rotnoden i et kvadtre svarende til blokken som inkluderer residualdataene. [07] Etter bruk av den eller de inverse transformasjonen(e) oppnår videodekoderen residualblokker tilsvarende de beregnet av videokoderen under koding av videodataene. Intraprediksjonsenheten 74 kan gi en prediksjonsenhet for

59 residualdataene til addereren 80, som kan kombinere prediksjonsenheten og residualdataene for å frembringe en dekodet CU (316). Videodekoderen kan sammenstille en dekodet ramme som inkluderer den dekodede CU'en i referanserammelageret 82. Den dekodede rammen kan så bli rendert for fremvisning og/eller anvendt som referanse ved dekoding av andre rammer. [08] På denne måten er fremgangsmåten i figur 13 et eksempel på en fremgangsmåte som inkluderer å motta en angivelse av en første intraprediksjonsmodus i et første sett av intraprediksjonsmodi for en blokk av innkodede videodata, bestemme en andre intraprediksjonsmodus fra et mindre sett av intraprediksjonsmodi til hvilke den første intraprediksjonsmodusen er avbildet, bestemme en invers retningstransformasjon til hvilken den andre intraprediksjonsmodusen er avbildet, og anvende den inverse retningstransformasjonen på transformerte residualdata for blokken. [09] Fremgangsmåten i figur 13 er også et eksempel på en fremgangsmåte som inkluderer å motta en første angivelse av en intraprediksjonsmodus å anvende for å dekode en blokk av videodata, avgjøre om blokken inkluderer en delblokk med en størrelse for hvilken flere transformasjoner er mulig basert på delblokkens størrelse og den angitte intraprediksjonsmodusen, når blokken inkluderer delblokken av størrelsen for hvilken flere inverse transformasjoner er mulig basert på delblokkens størrelse og den angitte intraprediksjonsmodusen, motta en andre angivelse av én av de flere mulige inverse transformasjonene, og inverstransformere delblokken ved anvendelse av den angitte av de flere mulige inverse transformasjonene. [02] Fremgangsmåten i figur 13 er også et eksempel på en fremgangsmåte som inkluderer å motta en angivelse av at residualdata for en blokk av videodata ble transformert ved anvendelse av både en første transformasjon og en rotasjonstransformasjon for å generere en todimensjonal blokk av transformasjonskoeffisienter, velge et sett av statistikk knyttet til minst én av den første transformasjonen og rotasjonstransformasjonen, hvor settet av statistikk gir sannsynligheter for at posisjoner i den todimensjonale blokken av transformasjonskoeffisienter vil være forskjellige fra null, og adaptivt inversskanne en mottatt éndimensjonal vektor innbefattende en innkodet versjon av residualdataene for blokken basert på det valgte settet av statistikk for å generere en todimensjonal matrise av transformasjonskoeffisienter for blokken. [0211] Fremgangsmåten i figur 13 er også et eksempel på en fremgangsmåte som inkluderer å motta verdier som angir om innkodede transformasjonskoeffisienter i en mottatt éndimensjonal vektor av innkodede transformasjonskoeffisienter er signifikante, entropidekode minst én av verdiene med bruk av en kontekstmodell valgt basert på i det minste en prosentandel av signifikante koeffisienter i et forbestemt antall av verdiene dekodet før den minst ene av verdiene, og inversskanne den éndimensjonale vektoren for å generere en todimensjonal blokk av transformasjonskoeffisientene.

60 [0212] Figur 14 er et flytdiagram som illustrerer et eksempel på en fremgangsmåte for å velge en transformasjon å anvende på en intrakodet blokk som inkluderer en kantlinje for hvilken DC-intraprediksjonsmodus er signalisert. Selv om den beskrives med hensyn til videodekoderen i figur 3, må det forstås at tilsvarende (motsatte) teknikker kan bli anvendt av videokoderen i figur 2, eller andre videokoderanordninger. [0213] Videokoderen kan motta en intrakodet blokk, f.eks. en TU (180). Blokken kan omfatte en blokk av transformasjonskoeffisienter svarende til en node i et TUkvadtre. TU-kvadtre-noden kan inkludere en angivelse av intraprediksjonsmodusen som skal anvendes for å regne ut en prediksjonsverdi for blokken. På den måten kan videodekoderen fastslå prediksjonsmodusen og om DC-prediksjonsmodus er signalisert for blokken (32). Dersom DC-prediksjonsmodus er signalisert for blokken ("JA"-grenen i 32), kan videodekoderen videre avgjøre om en kantlinje forefinnes i blokken (34). For eksempel, som angitt over, kan videodekoderen undersøke tidligere kodede naboblokker for å fastslå om en kantlinje er detektert i de tidligere kodede blokkene, og om kantlinjen krysser en grense mellom den tidligere kodede blokken og den aktuelle blokken. [0214] Dersom en kantlinje blir fastslått å forefinnes i blokken ("JA"-grenen i 34), kan videodekoderen regne ut en predikert verdi for blokken ved anvendelse av en kantlinjebasert prediksjonsmodus (36). Videre kan videodekoderen bestemme en vinkel til kantlinjen (38) og bestemme en intramodus med en vinkel som er en nær approksimasjon til vinkelen til kantlinjen (360). For eksempel kan videodekoderen regne ut differanser mellom vinkler for én eller flere av de mulige intraprediksjonsmodiene og vinkelen til kantlinjen, og velge den intraprediksjonsmodusen som har den laveste differansen. [021] Bestemmelse av denne prediksjonsmodusen blir imidlertid i alminnelighet kun utført for å bestemme hvilken transformasjon som er avbildet til denne prediksjonsmodusen, siden videodekoderen normalt predikerer en verdi for blokken ved anvendelse av den kantlinjebaserte prediksjonsmodusen, i dette eksempelet. Nærmere bestemt kan videodekoderen da velge en transformasjon avbildet til den bestemte intraprediksjonsmodusen (362), nærmere bestemt intraprediksjonsmodusen som har en vinkel som er en nær approksimasjon til vinkelen til kantlinjen. Videodekoderen kan så transformere blokken ved anvendelse av den valgte transformasjonen (364). [0216] Dersom derimot DC-prediksjonsmodus ikke var signalisert for blokken ("NEI"- grenen i 32), kan videodekoderen predikere blokken ved anvendelse av den signaliserte modusen (33). Dersom en kantlinje ikke er slått fast å forefinnes i blokken når DC-prediksjonsmodus er signalisert ("NEI"-grenen i 34), kan videodekoderen predikere blokken ved anvendelse av DC-prediksjonsmodus, som signalisert (366). Videodekoderen kan også velge transformasjonen avbildet til prediksjonsmodusen

61 (f.eks. DC eller retningsbestemt, som signalisert) (368) eller i noen eksempler en default-transformasjon, så som en DCT. Videodekoderen kan også transformere blokken ved anvendelse av den valgte transformasjonen i dette tilfellet (364). [0217] Etter transformasjon av blokken, som i dette eksempelet svarer til inverstransformasjon av blokken, reproduserer videodekoderen en blokk av residualverdier i det romlige domenet. For å dekode blokken kan videodekoderen addere blokken av residualverdier til den predikerte blokken (oppnådd fra trinn 33, 36 eller 366). Trinnene med å addere residualverdien til den predikerte verdien er ikke vist i figur 14 for å bedre oversikten, men kan bli utført etter trinn 364. [0218] På denne måten er fremgangsmåten i figur 14 et eksempel på en fremgangsmåte som inkluderer å motta informasjon som angir at en intraprediksjonsmodus for en blokk av videodata er en DC-intraprediksjonsmodus, bestemme en vinkel for en kantlinje i blokken av videodata basert på angivelsen av DC-intraprediksjonsmodus for blokken, inverstransformere blokken ved anvendelse av en invers retningstransformasjon avbildet til en retningsbestemt intraprediksjonsmodus som har en vinkel som approksimerer vinkelen til kantlinjen, og dekode den inverstransformerte blokken. [0219] Som angitt over kan en tilsvarende fremgangsmåte bli utført f.eks. av videokoderen. En slik fremgangsmåte kan inkludere å fastslå at en blokk som skal intraprediksjonskodes inneholder en kantlinje i blokken, beregne en residualblokk for blokken basert på en prediksjonsverdi beregnet ved anvendelse av en kantlinjebasert intraprediksjonsmodus, transformere residualblokken ved anvendelse av en retningstransformasjon avbildet til en retningsbestemt intraprediksjonsmodus som har en vinkel som approksimerer en vinkel til kantlinjen, og mate ut informasjon som representerer den transformerte residualblokken og informasjon som angir at blokken ble predikert ved anvendelse av en DC-intraprediksjonsmodus. [02] I ett eller flere eksempler kan funksjonene beskrevet realiseres i maskinvare, programvare, fastvare eller en hvilken som helst kombinasjon av dette. Dersom de realiseres i programvare, kan funksjonene lagres på eller bli overført over, som én eller flere instruksjoner eller koder, et datamaskinlesbart medium og kjøres av en maskinvarebasert prosesseringsenhet. Datamaskinlesbare medier kan inkludere datamaskinlesbare lagringsmedier, som svarer til et håndgripelig medium, så som datalagringsmedier, eller kommunikasjonsmedier, herunder et hvilken som helst medium som letter overføring av et dataprogram fra ett sted til et annet, f.eks. i henhold til en kommunikasjonsprotokoll. På denne måten kan datamaskinlesbare medier generelt svare til (1) håndgripelige datamaskinlesbare lagringsmedier som er ikkevolatile, eller (2) et kommunikasjonsmedium så som et signal eller en bærerbølge. Datalagringsmedier kan være hvilke som helst tilgjengelige medier som kan aksesseres av én eller flere datamaskiner eller én eller flere prosessorer for å hente ut

62 instruksjoner, kode og/eller datastrukturer for utførelse av teknikkene beskrevet i denne oppfinnelsen. Et dataprogram kan inkludere et datamaskinlesbart medium. [0221] Som et eksempel, og ikke en begrensning, kan slike datamaskinlesbare lagringsmedier omfatte RAM, ROM, EEPROM, CD-ROM eller andre optiske platelagre, magnetdisker eller andre magnetiske lagringsanordninger, flashminne, eller et hvilket som helst annet medium som kan anvendes for å lagre ønsket programkode i form av instruksjoner eller datastrukturer og som kan aksesseres av en datamaskin. I tillegg kan enhver forbindelse korrekt kalles et datamaskinlesbart medium. Dersom for eksempel programvaren blir overført fra et nettsted, en tjener eller en annen fjern kilde ved anvendelse av en koaksialkabel, fiberoptisk kabel, et tvunnet ledningspar, DSL eller trådløse teknologier, så som infrarødt-, radio- og mikrobølgebaserte, er da koaksialkabel, fiberoptisk kabel, tvunnet ledningspar, DSL eller trådløse teknologier, så som infrarødt-, radio- og mikrobølgebaserte, innlemmet i definisjonen av et medium. Det må imidlertid forstås at datamaskinlesbare lagringsmedier og datalagringsmedier ikke inkluderer forbindelser, bærerbølger, signaler eller andre transiente medier, men i stedet er rettet mot ikke-transiente, håndgripelige lagringsmedier. Betegnelsene platelager og disk, som de anvendes her, inkluderer CD, laserplatelager, optisk platelager, DVD, floppydiskett og bluerayplate, idet disker vanligvis reproduserer data magnetisk mens platelagre reproduserer data optisk med laser. Kombinasjoner av det ovennevnte skal også innlemmes innenfor rammen av datamaskinlesbare medier. [0222] Instruksjoner kan bli utført av én eller flere prosessorer, så som én eller flere digitale signalprosessorer (DSP'er), generelle mikroprosessorer, applikasjonsspesifikke integrerte kretser (ASIC'er), feltprogrammerbare logiske portmatriser (FPGA'er) eller andre ekvivalente integrerte eller diskrete logikkretser. Betegnelsen "prosessor" kan således her henvise til en hvilken som helst av de ovennevnte strukturer eller en hvilken som helst annen struktur egnet til å utføre teknikkene beskrevet her. I tillegg kan i noen aspekter ved funksjonaliteten beskrevet her være tilveiebragt i spesialiserte maskinvare- og/eller programvaremoduler innrettet for koding og dekoding, eller innlemmet i en kombinert kodek. Teknikkene kan også i sin helhet realiseres i én eller flere kretser eller logikkenheter. [0223] Teknikkene ifølge denne oppfinnelsen kan realiseres i en rekke forskjellige anordninger eller apparater, herunder et trådløst håndsett, en integrert krets (IC) eller et sett av integrerte kretser (f.eks. et chipsett). Forskjellige komponenter, moduler eller enheter er beskrevet i denne redegjørelsen for å fremheve funksjonelle aspekter ved anordninger innrettet for å utføre de viste teknikkene, men krever ikke nødvendigvis realisering av forskjellige maskinvareenheter. Tvert imot, som beskrevet over, kan forskjellige enheter kombineres i en kodek-maskinvareenhet eller tilveiebringes av en samling av samspillende maskinvareenheter, inkludert én eller flere prosessorer som beskrevet over, sammen med passende programvare og/eller fastvare. 40

63 61 P a t e n t k r a v Fremgangsmåte ved dekoding av videodata, fremgangsmåten omfattende å: motta (1) en første angivelse av en intraprediksjonsmodus som skal anvendes for å dekode en blokk av videodata; avgjøre (212) om blokken inkluderer en delblokk for hvilken flere transformasjoner er mulig, hvor avgjørelsen baseres på delblokkens størrelse og den angitte intraprediksjonsmodusen; når blokken inkluderer delblokken for hvilken flere inverse transformasjoner er mulig : motta (214) en andre angivelse av én av de flere mulige inverse transformasjonene; og inverstransformere (216) delblokken ved anvendelse av den angitte av de flere mulig inverse transformasjonene. 2. Fremgangsmåte ifølge krav 1, videre omfattende, når blokken ikke inkluderer delblokken for hvilken flere inverse transformasjoner er mulig, inverstransformere (218) blokken ved anvendelse av en invers transformasjon knyttet til intraprediksjonsmodusen angitt for blokken. 3. Fremgangsmåte ifølge krav 1, videre omfattende å inverstransformere (216) alle delblokkene av blokken som har størrelsen for hvilken flere inverse transformasjoner er mulige ved anvendelse av den angitte av de flere mulige transformasjonene. 4. Fremgangsmåte ifølge krav 1, hvor intraprediksjonsmodusen omfatter en første intraprediksjonsmodus og hvor delblokken omfatter en første delblokk, fremgangsmåten videre omfattende det å: avgjøre (4) om blokken inkluderer en andre delblokk av en størrelse for hvilken den første intraprediksjonsmodusen ikke er tilgjengelig; når blokken inkluderer den andre delblokken av størrelsen for hvilken den første intraprediksjonsmodusen ikke er tilgjengelig: bestemme (6) en andre intraprediksjonsmodus til hvilken den første intraprediksjonsmodusen er avbildet; og predikere (6) den andre delblokken ved anvendelse av den andre intraprediksjonsmodusen.

64 62. Fremgangsmåte ifølge krav 4, videre omfattende, når den første intraprediksjonsmodusen er tilgjengelig for alle delblokker av blokken, predikere (8) alle delblokkene med bruk av den første intraprediksjonsmodusen Fremgangsmåte ifølge krav 1, hvor det å motta den første angivelsen omfatter å motta den første angivelsen i en rotnode i en kvadtre-datastruktur svarende til blokken av videodata. 7. Apparat for dekoding av videodata, apparatet omfattende: midler for å motta en første angivelse av en intraprediksjonsmodus som skal anvendes for å dekode en blokk av videodata; midler for å avgjøre om blokken inkluderer en delblokk for hvilken flere transformasjoner er mulige, hvor avgjørelsen er basert på delblokkens størrelse og den angitte intraprediksjonsmodusen; midler for å motta en andre angivelse av én av de flere mulig inverse transformasjonene når blokken inkluderer delblokken for hvilken flere inverse transformasjoner er mulig ; og midler for å inverstransformere delblokken ved anvendelse av den angitte av de flere mulige inverse transformasjoner når blokken inkluderer delblokken for hvilken flere inverse transformasjoner er mulig. 8. Apparat ifølge krav 7, hvor midlene for å motta en første angivelse, midlene for å avgjøre, midlene for å motta en andre angivelse og midlene for å inverstransformere er innlemmet i en videodekoder Dataprogramprodukt omfattende et datamaskinlesbart lagringsmedium som har lagret deri instruksjoner som når de blir utført, bevirker en prosessor til å utføre fremgangsmåten ifølge et hvilket som helst av kravene 1 til Fremgangsmåte ved koding av videodata, fremgangsmåten omfattende å: velge (1) en intraprediksjonsmodus som skal anvendes for å kode inn en blokk av videodata; avgjøre (212) om blokken inkluderer en delblokk for hvilken flere transformasjoner er mulige, hvor avgjørelsen baseres på delblokkens størrelse og den valgte intraprediksjonsmodusen; når blokken inkluderer delblokken for hvilken flere transformasjoner er mulige: velge (214) én av de flere mulige transformasjonene; transformere (216) delblokken ved anvendelse av den valgte av de flere mulige transformasjonene; og

65 63 gi (214) en angivelse av den valgte av de flere mulige transformasjonene for størrelsen til delblokken Fremgangsmåte ifølge krav, hvor intraprediksjonsmodusen omfatter en første intraprediksjonsmodus og hvor delblokken omfatter en første delblokk, fremgangsmåten videre omfattende det å: avgjøre (4) om blokken inkluderer en andre delblokk med en størrelse for hvilken den første intraprediksjonsmodusen ikke er tilgjengelig; når blokken inkluderer den andre delblokkn av størrelsen for hvilken den første intraprediksjonsmodusen ikke er tilgjengelig: bestemme (6) en andre intraprediksjonsmodus til hvilken den første intraprediksjonsmodusen er avbildet; og predikere (6) den andre delblokken ved anvendelse av den andre intraprediksjonsmodusen. 12. Fremgangsmåte ifølge krav, hvor det å gi angivelsen omfatter å gi angivelsen i en rotnode i en kvadtre-datastruktur svarende til blokken av videodata Apparat for koding av videodata, apparatet omfattende: midler for å velge en intraprediksjonsmodus som skal anvendes for å kode inn en blokk av videodata; midler for å avgjøre om blokken inkluderer en delblokk for hvilken flere transformasjoner er mulige, hvor avgjørelsen er basert på delblokkens størrelse og den valgte intraprediksjonsmodusen; midler for å velge én av de flere mulige transformasjonene når blokken inkluderer delblokken for hvilken flere transformasjoner er mulig ; midler for å transformere delblokken ved anvendelse av den valgte av de flere mulige transformasjonene når blokken inkluderer delblokken for hvilken flere transformasjoner er mulig ; og midler for å gi en angivelse av den valgte av de flere mulige transformasjonene for delblokkens størrelse når blokken inkluderer delblokken for hvilken flere transformasjoner er mulig. 14. Apparat ifølge krav 13, hvor midlene for å velge en intraprediksjonsmodus, midlene for å avgjøre, midlene for å velge én av de flere mulige transformasjoner, midlene for transformere og midlene for å gi en angivelse er innlemmet i en videokoder.

66 64 1. Dataprogram omfattende et datamaskinlesbart lagringsmedium som har lagret deri instruksjoner som når de blir utført, bevirker en prosessor til å utføre fremgangsmåten ifølge et hvilket som helst av kravene til 12.

67 6 NO/EP291600

68 66 NO/EP291600

69 67 NO/EP291600

70 68

(12) Translation of european patent specification

(12) Translation of european patent specification (12) Translation of european patent specification (11) NO/EP 2777162 B1 (19) NO NORWAY (1) Int Cl. H04N 19/13 (14.01) H04N 19/3 (14.01) H04N 19/174 (14.01) H04N 19/176 (14.01) H04N 19/0 (14.01) H04N 19/91

Detaljer

(12) Translation of european patent specification

(12) Translation of european patent specification (12) Translation of european patent specification (11) NO/EP 2847997 B1 (19) NO NORWAY (1) Int Cl. H04N 19/70 (14.01) H04N 19/3 (14.01) H04N 19/463 (14.01) H04N 19/61 (14.01) H04N 19/91 (14.01) H04N 21/236

Detaljer

(12) Translation of european patent specification

(12) Translation of european patent specification (12) Translation of european patent specification (11) NO/EP 2629528 B1 (19) NO NORWAY (51) Int Cl. H04N 19/50 (2014.01) H04N 19/119 (2014.01) H04N 19/122 (2014.01) H04N 19/137 (2014.01) H04N 19/139 (2014.01)

Detaljer

kontekstadaptiv binær aritmetisk koding (CABAC) som dekoder (806) den første gruppen av syntakselementer;

kontekstadaptiv binær aritmetisk koding (CABAC) som dekoder (806) den første gruppen av syntakselementer; 1 PATENTKRAV 1. Fremgangsmåte for dekoding av videodata, der fremgangsmåten omfatter: å motta (802, 804) en entropi-kodet bitstrøm som inkluderer en første gruppe av syntakselementer som omfatter et flertall

Detaljer

(12) Translation of European patent specification

(12) Translation of European patent specification (12) Translation of European patent specification (11) NO/EP 2941888 B1 (19) NO NORWAY (1) Int Cl. H04N 19/8 (2014.01) H04N 19/149 (2014.01) H04N 19/44 (2014.01) H04N 19/46 (2014.01) H04N 19/70 (2014.01)

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2310382 B1 (19) NO NORGE (51) Int Cl. C07D 401/12 (2006.01) A61K 31/4412 (2006.01) A61P 35/00 (2006.01) C07D 401/14 (2006.01) C07D 403/12 (2006.01)

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2129377 B1 (19) NO NORGE (51) Int Cl. A61K 31/451 (2006.01) A61K 9/08 (2006.01) A61P 25/00 (2006.01) Patentstyret (21) Oversettelse publisert 2012.01.23

Detaljer

europeisk patentskrift

europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2384729 B1 (19) NO NORGE (1) Int Cl. A61G /12 (2006.01) Patentstyret (21) Oversettelse publisert 2013.04.08 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 88493 B1 (19) NO NORGE (1) Int Cl. G06F 1/00 (06.01) H01L 23/34 (06.01) G06F 1/ (06.01) Patentstyret (21) Oversettelse publisert 13.04.22 (80) Dato

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2148670 B1 (19) NO NORGE (51) Int Cl. A61K 31/137 (2006.01) A61P 25/04 (2006.01) Patentstyret (21) Oversettelse publisert 2012.04.02 (80) Dato for

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2178851 B1 (19) NO NORGE (51) Int Cl. C07D 261/08 (2006.01) A61K 31/42 (2006.01) A61P 3/06 (2006.01) C07D 413/12 (2006.01) Patentstyret (21) Oversettelse

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 240726 B1 (19) NO NORGE (1) Int Cl. H0K 3/36 (2006.01) H0K 3/42 (2006.01) H0K 3/46 (2006.01) Patentstyret (21) Oversettelse publisert 2014.03.17 (80)

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2272978 B1 (19) NO NORGE (51) Int Cl. C12Q 1/68 (2006.01) Patentstyret (21) Oversettelse publisert 2012.08.13 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Translation of european patent specification

(12) Translation of european patent specification (12) Translation of european patent specification (11) NO/EP 2804383 B1 (19) NO NORWAY (51) Int Cl. H04N 19/119 (2014.01) H04N 19/103 (2014.01) H04N 19/105 (2014.01) H04N 19/112 (2014.01) H04N 19/122 (2014.01)

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2274977 B1 (19) NO NORGE (1) Int Cl. A01K 83/00 (2006.01) Patentstyret (21) Oversettelse publisert 2014.02.17 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift. Avviker fra Patent B1 etter innsigelse

(12) Oversettelse av europeisk patentskrift. Avviker fra Patent B1 etter innsigelse (12) Oversettelse av europeisk patentskrift (11) NO/EP 217368 B2 (19) NO NORGE (1) Int Cl. B42D / (06.01) Patentstyret Avviker fra Patent B1 etter innsigelse (21) Oversettelse publisert.04. (80) Dato for

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2011486 B1 (19) NO NORGE (51) Int Cl. A61K 9/20 (2006.01) A61K 31/44 (2006.01) Patentstyret (21) Oversettelse publisert 2012.09.17 (80) Dato for Den

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 218466 B1 (19) NO NORGE (1) Int Cl. B67C 3/26 (06.01) B6D 47/ (06.01) B67C 7/00 (06.01) Patentstyret (21) Oversettelse publisert 12.02. (80) Dato

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2311023 B1 (19) NO NORGE (51) Int Cl. G09F 17/00 (2006.01) Patentstyret (21) Oversettelse publisert 2014.02.17 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2114970 B1 (19) NO NORGE (51) Int Cl. C07F 9/58 (2006.01) A61K 31/44 (2006.01) A61P 1/00 (2006.01) A61P 11/06 (2006.01) A61P 19/02 (2006.01) A61P

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2216387 B1 (19) NO NORGE (51) Int Cl. C10L 5/44 (2006.01) C10L 5/14 (2006.01) C10L 5/36 (2006.01) Patentstyret (21) Oversettelse publisert 2013.05.06

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 242166 B1 (19) NO NORGE (1) Int Cl. G06K 19/077 (06.01) G06K 19/06 (06.01) Patentstyret (21) Oversettelse publisert 14.02.24 (80) Dato for Den Europeiske

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2491293 B1 (19) NO NORGE (1) Int Cl. F17C 3/02 (06.01) Patentstyret (21) Oversettelse publisert 13.11.2 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 270722 B1 (19) NO NORGE (1) Int Cl. F21V 23/02 (06.01) F21S 8/02 (06.01) F21V 23/00 (06.01) Patentstyret (21) Oversettelse publisert 14.03. (80) Dato

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2613860 B1 (19) NO NORGE (51) Int Cl. B01D 15/18 (2006.01) C11B 3/10 (2006.01) C11C 1/00 (2006.01) C11C 1/08 (2006.01) Patentstyret (21) Oversettelse

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2246321 B1 (19) NO NORGE (51) Int Cl. A61K 9/20 (2006.01) A61K 31/135 (2006.01) C07C 211/42 (2006.01) Patentstyret (21) Oversettelse publisert 2011.12.12

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 11438 B1 (19) NO NORGE (1) Int Cl. E04B 1/343 (06.01) B63B 29/02 (06.01) Patentstyret (21) Oversettelse publisert.02.23 (80) Dato for Den Europeiske

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2445326 B1 (19) NO NORGE (51) Int Cl. H05K 5/02 (2006.01) B43K 23/12 (2006.01) B43K 24/06 (2006.01) H01R 13/60 (2006.01) Patentstyret (21) Oversettelse

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 237066 B1 (19) NO NORGE (1) Int Cl. E06C 1/12 (06.01) Patentstyret (21) Oversettelse publisert 14.02.24 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2128505 B1 (19) NO NORGE (51) Int Cl. F16L 9/12 (2006.01) F16L 3/14 (2006.01) F16L 11/127 (2006.01) F24F 13/02 (2006.01) H05F 3/02 (2006.01) Patentstyret

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 224294 B1 (19) NO NORGE (1) Int Cl. F16K 31/44 (2006.01) Patentstyret (21) Oversettelse publisert 2012.04.10 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift NO/EP2770 (12) Oversettelse av europeisk patentskrift (11) NO/EP 2770 B1 (19) NO NORGE (1) Int Cl. B23K 3/00 (06.01) C21D 6/00 (06.01) C21D 9/04 (06.01) C22C 38/00 (06.01) C22C 38/44 (06.01) Patentstyret

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 19724 B1 (19) NO NORGE (1) Int Cl. B63H 23/02 (06.01) Patentstyret (21) Oversettelse publisert 12.12. (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 223094 B1 (19) NO NORGE (1) Int Cl. A43B 7/32 (06.01) A43B 7/12 (06.01) A43B 7/34 (06.01) A43B 13/12 (06.01) A43B 13/41 (06.01) B29D 3/14 (.01) Patentstyret

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2252286 B1 (19) NO NORGE (51) Int Cl. A61K 31/357 (2006.01) Patentstyret (21) Oversettelse publisert 2012.01.16 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift NO/EP22342 (12) Oversettelse av europeisk patentskrift (11) NO/EP 22342 B1 (19) NO NORGE (1) Int Cl. F2D 23/04 (06.01) Patentstyret (21) Oversettelse publisert 14.01.27 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2261144 B1 (19) NO NORGE (1) Int Cl. B6G 21/00 (06.01) B6G 21/08 (06.01) Patentstyret (21) Oversettelse publisert 13.07.08 (80) Dato for Den Europeiske

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2317621 B1 (19) NO NORGE (1) Int Cl. H02G 3/12 (06.01) Patentstyret (21) Oversettelse publisert 1.02.02 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 24012 B1 (19) NO NORGE (1) Int Cl. B2C 1/00 (2006.01) B2C 1/06 (2006.01) Patentstyret (21) Oversettelse publisert 2014.12.22 (80) Dato for Den Europeiske

Detaljer

europeisk patentskrift

europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2238877 B1 (19) NO NORGE (1) Int Cl. A47J 31/08 (06.01) Patentstyret (21) Oversettelse publisert 13.03.11 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 261673 B1 (19) NO NORGE (1) Int Cl. B60H 1/32 (06.01) B60H 1/00 (06.01) Patentstyret (21) Oversettelse publisert 1.01.12 (80) Dato for Den Europeiske

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2096736 B1 (19) NO NORGE (1) Int Cl. H02K 1/32 (2006.01) H02K 3/24 (2006.01) H02K 9/00 (2006.01) Patentstyret (21) Oversettelse publisert 2011.09.0

Detaljer

europeisk patentskrift

europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2184425 B1 (19) NO NORGE (51) Int Cl. E05B 17/20 (2006.01) E05B 63/00 (2006.01) Patentstyret (21) Oversettelse publisert 2012.02.06 (80) Dato for

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2672278 B1 (19) NO NORGE (1) Int Cl. G01R 1/067 (2006.01) G01R 1/04 (2006.01) G01R 19/1 (2006.01) Patentstyret (21) Oversettelse publisert 201.04.20

Detaljer

(12) Oversettelse av europeisk patentskrift. Avviker fra Patent B1 etter innsigelse

(12) Oversettelse av europeisk patentskrift. Avviker fra Patent B1 etter innsigelse (12) Oversettelse av europeisk patentskrift (11) NO/EP 2175588 B2 (19) NO NORGE (51) Int Cl. H04L 12/14 (2006.01) H04L 29/08 (2006.01) Patentstyret Avviker fra Patent B1 etter innsigelse (21) Oversettelse

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 213696 B1 (19) NO NORGE (1) Int Cl. B23K 9/32 (2006.01) B23K 9/28 (2006.01) Patentstyret (21) Oversettelse publisert 2014.04.07 (80) Dato for Den

Detaljer

(12) Translation of european patent specification

(12) Translation of european patent specification (12) Translation of european patent specification (11) NO/EP 2805325 B1 (19) NO NORWAY (51) Int Cl. G10L 19/005 (2013.01) G10L 19/09 (2013.01) G10L 19/10 (2013.01) G10L 19/12 (2013.01) G10L 19/22 (2013.01)

Detaljer

(12) Translation of european patent specification

(12) Translation of european patent specification (12) Translation of european patent specification (11) NO/EP 29028 B1 (19) NO NORWAY (1) Int Cl. GL 19/12 (2013.01) GL 19/02 (2013.01) GL 19/09 (2013.01) GL 19/24 (2013.01) Norwegian Industrial Property

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 22442 B1 (19) NO NORGE (1) Int Cl. G07B 1/00 (11.01) Patentstyret (21) Oversettelse publisert 13..28 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2170890 B1 (19) NO NORGE (51) Int Cl. C07D 487/04 (2006.01) Patentstyret (21) Oversettelse publisert 2012.03.12 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2708433 B1 (19) NO NORGE (1) Int Cl. B61B 1/02 (2006.01) B61B 12/02 (2006.01) Patentstyret (21) Oversettelse publisert 201.01.12 (80) Dato for Den

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift 1 3 (12) Oversettelse av europeisk patentskrift (11) NO/EP 2207775 B1 (19) NO NORGE (51) Int Cl. C07D 401/12 (2006.01) A61K 31/5377 (2006.01) A61P 3/06 (2006.01) C07D 401/14 (2006.01) C07D 413/14 (2006.01)

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 22619 B1 (19) NO NORGE (1) Int Cl. B21D 1/4 (2006.01) B21K 21/04 (2006.01) F42B /02 (2006.01) F42B /188 (2006.01) Patentstyret (21) Oversettelse publisert

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2231428 B1 (19) NO NORGE (1) Int Cl. B60H 1/32 (06.01) Patentstyret (21) Oversettelse publisert 12.11.26 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2285808 B1 (19) NO NORGE (51) Int Cl. C07D 471/20 (2006.01) A61K 31/407 (2006.01) A61K 31/424 (2006.01) A61K 31/437 (2006.01) A61K 31/438 (2006.01)

Detaljer

europeisk patentskrift

europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2125711 B1 (19) NO NORGE (51) Int Cl. C07C 321/20 (2006.01) A61K 31/216 (2006.01) A61K 31/421 (2006.01) A61K 31/4402 (2006.01) A61K 31/495 (2006.01)

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2146022 B1 (19) NO NORGE (1) Int Cl. E04F /06 (2006.01) Patentstyret (21) Oversettelse publisert 2014.11.03 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2636033 B1 (19) NO NORGE (51) Int Cl. Patentstyret G09B 23/28 (2006.01) G09B 23/30 (2006.01) (21) Oversettelse publisert 2015.11.09 (80) Dato for

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift NO/EP918 (12) Oversettelse av europeisk patentskrift (11) NO/EP 918 B1 (19) NO NORGE (1) Int Cl. H02J 7/00 (06.01) Patentstyret (21) Oversettelse publisert 14.02.03 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(86) Europeisk innleveringsdag

(86) Europeisk innleveringsdag (12) Oversettelse av europeisk patentskrift (11) NO/EP 297978 B1 (19) NO NORGE (1) Int Cl. A41B 9/02 (06.01) Patentstyret (21) Oversettelse publisert 14.03.17 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 246764 B1 (19) NO NORGE (1) Int Cl. F2C 3/04 (06.01) Patentstyret (21) Oversettelse publisert 14.01.13 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

europeisk patentskrift

europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 17118 B1 (19) NO NORGE (1) Int Cl. B60M 1/06 (06.01) B60M 3/04 (06.01) Patentstyret (21) Oversettelse publisert 14.09.29 (80) Dato for Den Europeiske

Detaljer

europeisk patentskrift

europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 222791 B1 (19) NO NORGE (1) Int Cl. H01M /44 (06.01) B60L 11/18 (06.01) H02J 7/00 (06.01) Patentstyret (21) Oversettelse publisert 14.06. (80) Dato

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2217383 B1 (19) NO NORGE (1) Int Cl. B0B 12/00 (06.01) B0B 11/00 (06.01) G01F 11/02 (06.01) G01F 1/07 (06.01) G07C 3/04 (06.01) Patentstyret (21)

Detaljer

europeisk patentskrift

europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 21847 B1 (19) NO NORGE (1) Int Cl. F24F 7/08 (06.01) F24F 11/04 (06.01) F24F 12/00 (06.01) Patentstyret (21) Oversettelse publisert 13.12.02 (80)

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 7044 B1 (19) NO NORGE (1) Int Cl. A61K 36/18 (06.01) A61K 33/04 (06.01) A61K 33/18 (06.01) A61K 33/ (06.01) A61K 36/22 (06.01) A61K 36/28 (06.01)

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2264391 B1 (19) NO NORGE (1) Int Cl. F27D 3/1 (2006.01) C21B 7/12 (2006.01) Patentstyret (21) Oversettelse publisert 2013.11.18 (80) Dato for Den

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2292031 B1 (19) NO NORGE (51) Int Cl. H04W 8/26 (2009.01) Patentstyret (21) Oversettelse publisert 2013.03.25 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2236434 B1 (19) NO NORGE (1) Int Cl. B6D 77/04 (06.01) B6D 77/06 (06.01) Patentstyret (21) Oversettelse publisert 11.12.19 (80) Dato for Den Europeiske

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2097141 B1 (19) NO NORGE (51) Int Cl. A62B 35/00 (2006.01) Patentstyret (21) Oversettelse publisert 2013.08.19 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 21643 B1 (19) NO NORGE (1) Int Cl. H04N 19/196 (14.01) H04N 19/3 (14.01) H04N 19/11 (14.01) H04N 19/12 (14.01) H04N 19/122 (14.01) H04N 19/129 (14.01)

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2003466 B1 (19) NO NORGE (1) Int Cl. G01S /02 (2010.01) Patentstyret (21) Oversettelse publisert 2014.07.14 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2477830 B1 (19) NO NORGE (1) Int Cl. B60K 1/00 (06.01) Patentstyret (21) Oversettelse publisert 13.12.02 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2231500 B1 (19) NO NORGE (51) Int Cl. B66F 9/00 (2006.01) B60P 1/02 (2006.01) B60P 3/022 (2006.01) B62B 3/065 (2006.01) B66D 1/00 (2006.01) B66F 9/06

Detaljer

(12) Translation of european patent specification

(12) Translation of european patent specification (12) Translation of european patent specification (11) NO/EP 2274941 B1 (19) NO NORWAY (1) Int Cl. H04W 28/08 (2009.01) H04L /00 (2006.01) H04W 84/08 (2009.01) H04W 88/06 (2009.01) Norwegian Industrial

Detaljer

(12) Translation of european patent specification

(12) Translation of european patent specification (12) Translation of european patent specification (11) NO/EP 21631 B1 (19) NO NORWAY (1) Int Cl. H04N 7/04 (2006.01) A63H 3/28 (2006.01) Norwegian Industrial Property Office (21) Translation Published

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 216340 B1 (19) NO NORGE (1) Int Cl. B60C 11/11 (06.01) B60C 11/03 (06.01) B60C 11/12 (06.01) Patentstyret (21) Oversettelse publisert 12.12.03 (80)

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift NO/EP28769 (12) Oversettelse av europeisk patentskrift (11) NO/EP 28769 B1 (19) NO NORGE (1) Int Cl. F17D 1/18 (06.01) F16L 3/00 (06.01) Patentstyret (21) Oversettelse publisert 1.04. (80) Dato for Den

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 238426 B1 (19) NO NORGE (1) Int Cl. G01S 1/68 (06.01) B63C 9/32 (06.01) F41B 13/00 (06.01) F41B 1/00 (06.01) Patentstyret (21) Oversettelse publisert

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2219 B1 (19) NO NORGE (1) Int Cl. H04K 3/00 (06.01) Patentstyret (21) Oversettelse publisert 13.12.23 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2383703 B1 (19) NO NORGE (1) Int Cl. G07B 1/06 (11.01) G08G 1/017 (06.01) Patentstyret (21) Oversettelse publisert 13.01.21 (80) Dato for Den Europeiske

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 21181 B1 (19) NO NORGE (1) Int Cl. F16L 2/00 (2006.01) F16L 33/26 (2006.01) H01P 1/04 (2006.01) Patentstyret (21) Oversettelse publisert 2013.10.28

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2173868 B1 (19) NO NORGE (51) Int Cl. C12N 9/50 (2006.01) C07K 14/415 (2006.01) C12N 15/29 (2006.01) C12N 15/57 (2006.01) C12N 15/81 (2006.01) A23J

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2148223 B1 (19) NO NORGE (1) Int Cl. G01V 3/ (06.01) G01V 3/24 (06.01) Patentstyret (21) Oversettelse publisert 13.03.04 (80) Dato for Den Europeiske

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 21976 B1 (19) NO NORGE (1) Int Cl. F24J 2/1 (06.01) F16L 11/22 (06.01) F16L 9/14 (06.01) F16L 9/13 (06.01) F24J 2/46 (06.01) Patentstyret (21) Oversettelse

Detaljer

(12) Translation of european patent specification

(12) Translation of european patent specification (12) Translation of european patent specification (11) NO/EP 237122 B1 (19) NO NORWAY (1) Int Cl. G06K 7/08 (06.01) G06F 3/044 (06.01) G06F 3/0488 (13.01) G06K 19/067 (06.01) Norwegian Industrial Property

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 23196 B1 (19) NO NORGE (1) Int Cl. A01M 7/00 (06.01) Patentstyret (21) Oversettelse publisert 13.08.19 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift NO/EP2563678 (12) Oversettelse av europeisk patentskrift (11) NO/EP 2563678 B1 (19) NO NORGE (51) Int Cl. B65D 6/00 (2006.01) Patentstyret (21) Oversettelse publisert 2015.01.19 (80) Dato for Den Europeiske

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2082973 B1 (19) NO NORGE (1) Int Cl. B6D 81/34 (2006.01) Patentstyret (21) Oversettelse publisert 2014.06.02 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 22473 B1 (19) NO NORGE (1) Int Cl. H01H 23/02 (06.01) Patentstyret (21) Oversettelse publisert 1.0.04 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 1974881 B1 (19) NO NORGE (1) Int Cl. B27B 19/00 (06.01) A61B 17/14 (06.01) Patentstyret (21) Oversettelse publisert 14.01.27 (80) Dato for Den Europeiske

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2117944 B1 (19) NO NORGE (1) Int Cl. B6D 21/02 (2006.01) Patentstyret (21) Oversettelse publisert 2011.09.0 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 248467 B1 (19) NO NORGE (1) Int Cl. G0B 23/02 (06.01) Patentstyret (21) Oversettelse publisert 14.01.13 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Translation of european patent specification

(12) Translation of european patent specification (12) Translation of european patent specification (11) NO/EP 22127 B1 (19) NO NORWAY (1) Int Cl. H04J 3/02 (06.01) H04L /14 (06.01) H04L 27/26 (06.01) Norwegian Industrial Property Office (21) Translation

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2216871 B1 (19) NO NORGE (51) Int Cl. H02J 7/00 (2006.01) H01R 13/22 (2006.01) H01R 13/62 (2006.01) Patentstyret (21) Oversettelse publisert 2014.09.08

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2243894 B1 (19) NO NORGE (1) Int Cl. E04F /06 (2006.01) Patentstyret (21) Oversettelse publisert 201.01.26 (80) Dato for Den Europeiske Patentmyndighets

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 230294 B1 (19) NO NORGE (1) Int Cl. F02M /00 (06.01) B60K 1/01 (06.01) F02D 19/06 (06.01) F02M 21/02 (06.01) F02M 37/00 (06.01) F02M 43/00 (06.01)

Detaljer

(12) Translation of european patent specification

(12) Translation of european patent specification (12) Translation of european patent specification (11) NO/EP 2559282 B1 (19) NO NORWAY (51) Int Cl. H04W 24/02 (2009.01) Norwegian Industrial Property Office (21) Translation Published 2015.11.02 (80)

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2146836 B1 (19) NO NORGE (1) Int Cl. A47G 9/ (06.01) B26D 3/00 (06.01) B26D 3/28 (06.01) B29C 44/6 (06.01) Patentstyret (21) Oversettelse publisert

Detaljer

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift (12) Oversettelse av europeisk patentskrift (11) NO/EP 2372667 B1 (19) NO NORGE (1) Int Cl. G08G 1/01 (06.01) G07B 1/00 (11.01) Patentstyret (21) Oversettelse publisert 13.01.21 (80) Dato for Den Europeiske

Detaljer