NO326065B1 - Atte pixlers heltallstransform - Google Patents
Atte pixlers heltallstransform Download PDFInfo
- Publication number
- NO326065B1 NO326065B1 NO20070193A NO20070193A NO326065B1 NO 326065 B1 NO326065 B1 NO 326065B1 NO 20070193 A NO20070193 A NO 20070193A NO 20070193 A NO20070193 A NO 20070193A NO 326065 B1 NO326065 B1 NO 326065B1
- Authority
- NO
- Norway
- Prior art keywords
- block
- transform
- pixels
- integer
- image
- Prior art date
Links
- 239000013598 vector Substances 0.000 claims abstract description 40
- 238000000034 method Methods 0.000 claims abstract description 24
- 230000001131 transforming effect Effects 0.000 claims abstract description 4
- 238000004364 calculation method Methods 0.000 abstract description 3
- 238000013139 quantization Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000013144 data compression Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Discrete Mathematics (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Foreliggende oppfinnelse vedrører videokoding/dekoding og beskriver en fremgangsmåte for å transformere til/fra transform koeffisienter og restpixel data i bevegelige bilder ved ett sett vektorer. To alternative vektorsett er beskrevet som begge tilveiebringer en optimal balanse mellom god ytelse og forenkelt beregning.
Description
Oppfinnelsens område
Oppfinnelsen vedrører systemer for videokompresjon, og nærmere bestemt en fremgangsmåte som utnytter en heltallstransform funksjon.
Bakgrunn for oppfinnelsen
Overføring av bevegelige bilder i sanntid benyttes i flere bruksområder slik som for eksempel videokonferanse, nettmøter, TV-kringkasting og videotelefoni.
Imidlertid krever representasjon av bevegelige bilder nye informasjon ettersom digital video typisk beskrives ved å representere hvert pixel i et bilde ved 8 bits (1 byte). Slike ukomprimert videodata resulterer i store bitvolumer, og kan ikke overføres over konvensjonelle kommunikasjonsnettverk og transmisjonslinjer i sanntid på grunn av begrenset båndbredde.
Overføring av video i sanntid krever derfor datakompresjon i stor utstrekning. Datakompresjon kan imidlertid gå på akkord med bildekvaliteten. Derfor har det blitt gjort store innsatser for å utvikle kompresjonsteknikker som tillater sanntidsoverføring av høykvalitets video over dataforbindelser med begrenset båndbredde.
I systemer for videokompresjon er hovedhensikten å representere videoinformasjon med så liten kapasitet som mulig. Kapasitet defineres med bits, enten som en konstant verdi, eller som bits/tid enhet. I begge tilfeller er hovedhensikten å redusere antall bits.
Den vanligste metoden for videokoding beskrives i MPEG<*> og H.26<*> standarder. Videodataene undergår fire hovedprosesser før overføring, nemlig prediksjon, transformasjon, kvantisering og entropikoding.
Prediksjonsprosessen reduserer betydelig mengden bits som kreves for hvert bilde i en
videosekvens som skal overføres. Den tar fordel av likheten mellom deler av sekvensen med andre deler av sekvensen. Siden prediktordelen er kjent for både koder og dekoder, må bare forskjellen overføres. Denne forskjellen krever typisk mer mindre kapasitet for dens representasjon. Prediksjonen er hovedsakelig basert på bildeinnhold fra tidligere rekonstruerte bilder hvor lokasjonen av innholdet defineres med bevegelsesvektorer. Prediksjonsprosessen utfører typiske på kvadratblokkstørrelser (for eksempel 16x16 pixler). Legg merke til at i noen tilfeller brukes prediksjoner pixler basert på tilliggende
pixler i det samme bilde istedenfor pixler av foregående bilder. Dette kalles som intraprediksjon, i motsetning til interprediksjon.
Residualet representert som en blokk av data (for eksempel 4x4 eller 8x8 pixler) inneholder fremdeles intern korrelasjon. En velkjent fremgangsmåte for å ta fordel av dette er å utføre en to dimensjonal blokktransformasjon. ITU-rekommendasjonen H.264 bruker en 4 x 4 heltallstype transform. Denne transformerer 4x4 pixler til 4 x 4 transform koeffisienter og de kan vanligvis representeres med færre bits enn pixelrepresentasjon. Transformasjon av en 4 x 4 rekke av pixler med intern korrelasjon vil sannsynligvis resultere i en 4 x 4 blokk av transform koeffisienter med mange færre ikke-null verdier enn den originale 4x4 pixelbokken.
Direkte representasjon av transform koeffisientene er fremdeles for kostbar for mange applikasjoner. En kvantiseringsprosess utføres for ytterligere reduksjon av datarepresentasjon. Derfor undergår transform koeffisientene kvantisering. Det mulige verdiområdet av transform koffisientene deles inn i verdi intervaler som hvert er begrenset av en øverste og nederste desisjons verdi og tildelt en fast kvantiseringsverdi. Transform koeffisientene blir deretter kvantifisert til kvantiseringsverdien assosiert med intervalene som de respektive koeffisienter befinner seg i. Koeffisientene som er lavere enn den laveste desisjons verdien blir kvantifisert til null. Det bør nevnes at denne kvantifiseringsprosessen resulterer i at den rekonstruerte videosekvensen er noe forskjellig sammenlignet med den ukomprimerte sekvensen.
Sammenfatning av oppfinnelsen
Egenskapene ved foreliggende oppfinnelsen definert i de vedføyde selvstendige patentkrav karakteriserer denne fremgangsmåte.
Detaljert beskrivelse av foreliggende oppfinnelse
Foreliggende oppfinnelse tilveiebringer en ny 8-pixel digital transform som balanserer mellom ytelse og enkelthet i koding og dekodingsprosessen.
Som nevnt ovenfor, bruker det de fleste av dagens videokodingsmetoder blokkbasert koding. En blokk er typisk en samling pixler bestående av for eksempel 4 x 4, 8 x 8 eller 16x16 pixler. Antar at blokken som skal kodes er O (i, j), som også kan refereres til som de originale pixeldata. Videre er det vanlig å danne en prediksjon P (i, j), basert på allerede dekodede bildedata. Disse pixler kan tilhøre det samme bilde som O (i, j)
(intrakoding), eller ett eller flere andre bilder (interkoding). Det er fordelaktig hvis P (i, j) er som nær til O (i, j) som mulig. Imidlertid er det i de fleste tilfeller et betydelig residual, det vil si en betydelig forskjell mellom prediksjonen og de reelle data:
R(iJ) = 0(iJ)-P(i,j)
Prediksjonen beregnes samme måte, og derfor med det samme resultat, både ved koding på den sendende side, og dekoding på den mottakende side. Derfor er R (i, j) vanligvis hoveddelen av videosignalet som skal kodes og sendes.
Det er derfor også viktig at R (i, j) kodes på en effektiv måte. Som indikert tidligere er det derfor vanlig å utføre en 2 dimensjonalt transform av råpixel differansedata R (i, j) før koding. Den 2 dimensjonale transformen oppnås ofte ved å bruke en dimensjonal transform separat i den horisontale og vertikale retning. Det er derfor bare nødvendig å definere en en dimensjonal transform. En kandidat transform som konvensjonelt har blitt benyttet er den diskre cosinus transformen (DCT). Denne transformen virker godt hvis det er en noenlunde stor korrelasjon mellom pixler i R av (i, j). Imidlertid er DCT en transform basert på flyttall. Dette betyr vanligvis en ytterligere kompleksitet sammenlignet med bruk av heltall. Derfor brukes heltallstransform i nyere standarder slik som H.264.
H.264 kan bruke både 4 x 4 og 8 x 8 transform. De spesifiserte en dimensjonale transform grunnfunksjonen er:
4-pixel transform
8-pixel transform
For 4-pixel transformen er linjene markert 0 til 3. Dette indikerer 4 transform koeffisenter som representerer de 4 pixlene på en annen måte enn spesifisering av de 4 pixlene individuelt. De fire linjene betegnes vanligvis som basisvektorer av transformen. Basisvektorene er ortogonale hvilket betyr at produktet mellom 2 forskjellige vektorer er lik 0. For eksempel blir produktet mellom vektorene 0 og 1 beregnet som: (Ix2 + lxl-lxl-lx2) = 0. Det er typisk et krav til en transform å ha ortogonale basisvektorer.
Normalen til en basisvektor er kvadratsummen av hvert tall. Derfor er normalen til basisvektor 0 lik (l<2>+l<2>+l<2> + l<2>) = 4 og av basisvektor 1 lik (2<2> + l<2> + l<2> + 22) = 10. Det er derfor ses at denne 4-pixel transform har basisvektorer med 2 forskjellige normaler.
For passende rekonstruksjon av data etter transformasjon og invers transformasjon, må størrelsen av normal(ene) tas hensyn til. Dette gjøres typisk i
kvantiserings/dekvantiseringsprosessen. Denne forårsaker lite eller ingen ytterligere beregningsbelastning så lenge normalen er den samme for alle basisvektorer. Mer innsats er nødvendig hvis normalene er veldig forskjellige for de forskjellige basisvektorene.
Likeledes har 8-pixel transformen ortogonale basisvektorer. For dette sett av basisvektorer er det 3 forskjellige normaler.
DCT betraktes å være nær optimal for bruk i videokompresjon. Transformene ovenfor er noenlunde nær DCT og resulterer derfor i god kodingsytelse.
Som tidligere nevnt er ett av kravene for en god digital transform at basisvektorene er ortogonale. Det er også viktig at basisvektorene er nær til DCT, for å gi en så god ytelse av transformasjonsprosessen som mulig, det vil si begrenser mengdens støy introdusert av transform funksjon. Videre vil kvantisering og dekvantiseringsprosessen forenkles hvis normalene til alle basisvektorene er like, hvilket ikke er tilfellet for de eksempelvise basisvektorene beskrevet ovenfor. Endelig bør absoluttverdiene til basisvektorene holdes relativt små for den hensikt av en forenklet beregning.
Det er ganske trivielt å tilfredsstille hver av disse kriterier, men utfordringen er å finne basisvektorer som oppfyller alle kriterier i det samme sett av vektorer. Som det kan ses, vil de eksempelvise basisvektorer beskrevet ovenfor, som brukes i H.264 standarden, ikke oppfyller alle kriterier.
Den foreliggende oppfinnelse legger frem to vektorsett som oppfyller alle kriteriene ovenfor. I tillegg av å være ortogonale og ha like normale verdier, har simuleringer og tester vist at de respektive sett av basisvektorer ifølge foreliggende oppfinnelse tilveiebringer en optimal balanse mellom forenklet beregning og god ytelse. De to vektorsettene for en 8 x 8 transform ifølge foreliggende oppfinnelse er som følger:
Vektorsett 1:
Vektorsett 2:
Foreliggende oppfinnelse dekker også alle sett av basisvektorer som oppnås ved å multiplisere alle poster i en av vektorsettene ovenfor med det samme heltall.
For å oppnå en transform koeffisient blir et sett av 8 dataverdier multiplisert med en rad av basisvektorer og addert. Som et eksempel kan datastrengen (a, b, c, d, e, f, g, h) transformeres til transform koeffisienter (A, B, C, D, E, F, G, H) slik som dette:
osv.
Invers transform
For å utføre en invers transform av et sett med 8 dataverdier, utføres mulitplikasjoner med en kolonne i basisvektorrekken og adderes. Som et eksempel kan datastrengen (A, B, C, D, E, F, G, H) invers transformeres til (a, b, c, d, e, f, g, h) slik som dette:
osv.
Det samme settet av basisvektorer vil derfor spesifisere om handlingen er transform eller invers transform. Det er bruken av settet med spesifiserte tall som er forskjellige for transform og invers transform. Dette klargjøres med eksemplene ovenfor.
Claims (8)
1. Fremgangsmåte for videokoding for å transformere en første blokk av restpixel verdier av bilder med en heltallstransform funksjon som genererer en korresponderende andre blokk av transform koeffisienter,
karakterisert ved at heltalls transform funksjonen inkluderer et vektorsett av åtte vektorer, idet nevnte vektorsett er definert som:
eller
hvor m og n er heltall.
2. Fremgangsmåte ifølge krav 1,
karakterisert ved at heltallstransform funksjonen brukes separate de horisontal og vertikal retning av den første blokk av restpixel verdier for å generere den korresponderende andre blokk av heltalls transform koeffisienter.
3. Fremgangsmåte ifølge ett av de foregående krav,
karakterisert ved at blokkene representerer et samme første kvadrert område av 8 x 8 pixler i et bilde.
4. Fremgangsmåte ifølge ett av de foregående krav,
karakterisert ved at nevnte første kvadrerte område dekker en fjerde del av en makro blokk som representerer et andre kvadrert område av 16 x 16 pixler i nevnte bilde.
5. Fremgangsmåte for dekoding for transformering av en første blokk av heltalls transform koeffisienter av bevegelige bilder av en heltalls invers transform funksjon som genererer en korresponderende andre blokk av restpixel verdier, karakterisert ved at heltalls invers transform funksjonen inkluderer et vektorsett av åtte vektorer, idet nevnte vektorsett er definert som:
eller
hvor m og n er heltall.
6. Fremgangsmåte ifølge krav 5,
karakterisert ved at heltalls invers transform funksjon brukes separate i horisontal og vertikal retning av den første blokk av heltalls transform koeffisienter for å generere den korresponderende andre blokk av restpixel verdier.
7. Fremgangsmåte ifølge krav 5 eller 6,
karakterisert ved at blokken representerer et samme første kvadrert område av 8x8 pixler i et bilde.
8. Fremgangsmåte ifølge krav ett av kravene 5-7,
karakterisert ved at nevnte første kvadrerte område dekker en fjerde del av en makroblokk som representerer et andre kvadrert område av 16 x 16 pixler i nevnte bilde.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NO20070193A NO326065B1 (no) | 2007-01-11 | 2007-01-11 | Atte pixlers heltallstransform |
PCT/NO2008/000014 WO2008085066A2 (en) | 2007-01-11 | 2008-01-11 | Eight pixels interger transform |
US11/972,942 US8175156B2 (en) | 2007-01-11 | 2008-01-11 | Eight pixels integer transform |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NO20070193A NO326065B1 (no) | 2007-01-11 | 2007-01-11 | Atte pixlers heltallstransform |
Publications (2)
Publication Number | Publication Date |
---|---|
NO20070193L NO20070193L (no) | 2008-07-14 |
NO326065B1 true NO326065B1 (no) | 2008-09-08 |
Family
ID=39609156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
NO20070193A NO326065B1 (no) | 2007-01-11 | 2007-01-11 | Atte pixlers heltallstransform |
Country Status (3)
Country | Link |
---|---|
US (1) | US8175156B2 (no) |
NO (1) | NO326065B1 (no) |
WO (1) | WO2008085066A2 (no) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NO326065B1 (no) * | 2007-01-11 | 2008-09-08 | Tandberg Telecom As | Atte pixlers heltallstransform |
US8331454B2 (en) | 2007-11-12 | 2012-12-11 | Cisco Technology, Inc. | Integer transform function for video compression systems |
CN102318203B (zh) * | 2008-11-12 | 2014-10-08 | 汤姆逊许可证公司 | 用于编码包含光变的视频帧的方法及设备 |
JP5579731B2 (ja) * | 2008-11-12 | 2014-08-27 | トムソン ライセンシング | 映像符号化方法、映像符号化装置及びコンピュータプログラム |
US9143788B2 (en) * | 2008-11-13 | 2015-09-22 | Thomson Licensing | Multiple thread video encoding using HRD information sharing and bit allocation waiting |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NO319007B1 (no) * | 2003-05-22 | 2005-06-06 | Tandberg Telecom As | Fremgangsmate og apparat for videokomprimering |
NO318318B1 (no) * | 2003-06-27 | 2005-02-28 | Tandberg Telecom As | Fremgangsmate for forbedret koding av video |
US8069201B2 (en) * | 2003-11-25 | 2011-11-29 | Texas Instruments Incorporated | 8×8 transform and quantization |
NO326065B1 (no) * | 2007-01-11 | 2008-09-08 | Tandberg Telecom As | Atte pixlers heltallstransform |
US8428133B2 (en) * | 2007-06-15 | 2013-04-23 | Qualcomm Incorporated | Adaptive coding of video block prediction mode |
US8848787B2 (en) * | 2007-10-15 | 2014-09-30 | Qualcomm Incorporated | Enhancement layer coding for scalable video coding |
US8483285B2 (en) * | 2008-10-03 | 2013-07-09 | Qualcomm Incorporated | Video coding using transforms bigger than 4×4 and 8×8 |
US8860781B2 (en) * | 2009-06-30 | 2014-10-14 | Qualcomm Incorporated | Texture compression in a video decoder for efficient 2D-3D rendering |
-
2007
- 2007-01-11 NO NO20070193A patent/NO326065B1/no not_active IP Right Cessation
-
2008
- 2008-01-11 US US11/972,942 patent/US8175156B2/en active Active
- 2008-01-11 WO PCT/NO2008/000014 patent/WO2008085066A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
NO20070193L (no) | 2008-07-14 |
US20080175323A1 (en) | 2008-07-24 |
WO2008085066A3 (en) | 2009-04-30 |
WO2008085066A2 (en) | 2008-07-17 |
US8175156B2 (en) | 2012-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020191647A (ja) | ビデオ符号化およびビデオ復号における変換の選択のための方法および装置 | |
CN104838650B (zh) | 帧内预测编码方法、帧内预测解码方法、帧内预测编码装置、帧内预测解码装置以及记录程序的记录介质 | |
CN101889405B (zh) | 用于执行运动估计的方法和装置 | |
CN100553321C (zh) | 编码动态滤波器 | |
KR100773761B1 (ko) | 동영상 부호화 장치 및 방법 | |
KR100472476B1 (ko) | 움직임 보상을 위한 보간 방법 및 그 장치 | |
EP1983759A1 (en) | Estimation of separable adaptive interpolation filters for hybrid video coding | |
CN109804630A (zh) | 对视频数据编码执行运动补偿的***以及方法 | |
US20150049818A1 (en) | Image encoding/decoding apparatus and method | |
US7840096B2 (en) | Directional interpolation method and video encoding/decoding apparatus and method using the directional interpolation method | |
NO319007B1 (no) | Fremgangsmate og apparat for videokomprimering | |
NO20110939A1 (no) | Metode for videokomprimering | |
KR20120043661A (ko) | 적응적 화면내 예측 부호화 및 복호화 방법 | |
NO318318B1 (no) | Fremgangsmate for forbedret koding av video | |
TWI468018B (zh) | 使用向量量化解區塊過濾器之視訊編碼 | |
NO330107B1 (no) | Datamaskinimplementert tidlig dropping | |
NO326065B1 (no) | Atte pixlers heltallstransform | |
NO320048B1 (no) | Fremgangsmate for chroma de-blokking | |
NO326724B1 (no) | Metode for entropikoding av transformasjonskoeffisienter i videokomprimeringssystemer | |
NO325859B1 (no) | Kodek-preprosessering | |
CN104581173A (zh) | 软解码验证模型平台 | |
KR101529903B1 (ko) | 블록기반 깊이정보 맵의 코딩 방법과 장치, 및 이를 이용한 3차원 비디오 코딩 방법 | |
JP2022514505A (ja) | ビットレート削減のためのビデオストリーム適応フィルタリング | |
ES2964763T3 (es) | Decisión de intra-codificación temprana | |
Yang et al. | Fast coding-unit mode decision for HEVC transrating |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
CREP | Change of representative |
Representative=s name: TANDBERGS PATENTKONTOR AS, POSTBOKS 7085 MAJORSTUA |
|
MM1K | Lapsed by not paying the annual fees |