PL2934008T3

Low-complexity intra prediction for video coding

Abstract

The present invention provides a unique intra prediction process which improves the efficiency of video coding. H.264/AVC uses reference pixels in a horizontal boundary located immediately above a target block to be predicted and reference pixels in a vertical boundary located immediately left of the target block. In the present invention, at least some of one of an array of horizontal boundary pixels and an array of vertical boundary pixels are retrieved. Then, the retrieved pixels are added to the other boundary pixels to extend the array thereof. Intra prediction is performed, based solely on the extended array of boundary pixels.

Term

4.8 yearsto projected expiry

Projected expiry 14 July 2031, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

1 claim: 1 independent, 0 dependent

  1. 1
    Claims Zastrzeżenia patentowe 1. Sposób kodowania wideo wykonywany przez procesor urządzenia do kodowania wideo, obejmuj ący:A video coding method performed by a video encoder processor, comprising: a step of acquiring at least some pixels from a vertical border pixel array, the vertical border pixels being pixels on the vertical border that lies directly to the left of the target block to be encoded and in the vertically adjacent blocks that have been previously encoded, restored and saved;etap pozyskiwania co najmniej niektórych pikseli z układu pikseli granicy pionowej, przy czym piksele granicy pionowej są pikselami na granicy pionowej, która leży bezpośrednio na lewo od bloku docelowego do zakodowania i w sąsiaduj ących pionowo blokach, które zostały wcześniej zakodowane, odtworzone i zapisane;etap dodawania pozyskanych pikseli do układu pikseli granicy poziomej, przy czym piksele granicy poziomej są pikselami na granicy poziomej, która leży bezpośrednio ponad blokiem docelowym do zakodowania i w sąsiaduj ących poziomo blokach, które zostały wcześniej zakodowane, odtworzone i zapisane, aby rozszerzyć układ pikseli granicy poziomej;i etap przeprowadzania predykcji wewnątrzramkowej na podstawie rozszerzonego układu pikseli granicy poziomej, gdzie etap pozyskiwania co najmniej kilku pikseli z układu pikseli granicy pionowej obejmuje: step of adding the acquired pixels to the horizontal border pixel system, the horizontal border pixels being pixels on the horizontal border that lies directly above the target block to be encoded and in the horizontal horizontally blocks that have been previously coded, restored and saved to extend the horizontal border pixel layout ;and the step of performing intra-frame prediction based on the expanded horizontal pixel layout, where the acquisition of at least a few pixels from the vertical border pixel array includes: getting InvAngle from the search table, which represents the InvAngle values ​​with respect to the angle * value representing the direction of the prediction;and identifying at least a few pixels from the vertical border pixels by using the vertical pixel identifier which is expressed by the function using [col * InvAngle], where col is the counter which is decreased by 1 from -1 to (size * angle * / rangelimit ), where size is the size of the target block, and rangelimit specifies the angle * range, and where the step of adding the acquired pixels to the horizontal border pixel system includes: adding a pixel identified by the vertical pixel identifier to the horizontal border pixels at the position determined by the vertical pixel identifier [col] . uzyskiwanie InvAngle z tablicy wyszukiwania, która przedstawia wartości InvAngle w odniesieniu do wartości angle* przedstawiaj ącej kierunek predykcji;i identyfikowanie co najmniej kilku pikseli spośród pikseli granicy pionowej, przez wykorzystanie identyfikatora piksela pionowego, który jest wyrażony przez funkcję wykorzystująca [col * InvAngle], gdzie col jest licznikiem, który jest zmniejszany o 1 od -1 do (size * angle*/rangelimit), gdzie size jest rozmiarem bloku docelowego, a rangelimit określa zakres angle*, i gdzie etap dodawania pozyskanych pikseli do układu pikseli granicy poziomej obejmuje: dodawanie piksela zidentyfikowanego przez identyfikator piksela pionowego do pikseli granicy poziomej w położeniu wyznaczonym przez identyfikator piksela pionowego [col]. 2. A video coding method according to claim 1, wherein rangelimit is a integer being power 2. 2. Sposób kodowania wideo według zastrzeżenia 1, w którym rangelimit jest liczbą całkowitą będącą potęgą 2. 3. A video coding method according to claim 1, wherein the rangelimit is 32, and (size * angle * / rangelimit) is implemented as size * angle * >> 5. 3. Sposób kodowania wideo według zastrzeżenia 1, w którym rangelimit wynosi 32, a (size * angle*/rangelimit) jest zrealizowane jako size * angle* >> 5. 4. Sposób kodowania wideo według jednego z zastrzeżeń 1 do 3, w którym wielkość InvAngel jest uzyskiwana z następującej tablicy wyszukiwania: A video coding method according to one of claims 1 to 3, in which the InvAngel size is obtained from the following search table: 5. A video decoding method performed by the processor of the video decoding apparatus, comprising: 5. Sposób dekodowania wideo wykonywany przez procesor urządzenia do dekodowania wideo, obejmujący: a step of acquiring at least a few pixels from a vertical border pixel array, the vertical border pixels being pixels on the vertical border that lies directly to the left of the target block to be encoded and in the vertically adjacent blocks that have been previously encoded, restored and saved;etap pozyskiwania co najmniej kilku pikseli z układu pikseli granicy pionowej, przy czym piksele granicy pionowej są pikselami na granicy pionowej która leży bezpośrednio na lewo od bloku docelowego do zakodowania i w sąsiadujących pionowo blokach, które zostały wcześniej zakodowane, odtworzone i zapisane;a step of adding the acquired pixels to the horizontal border pixel array to expand the horizontal border pixel array, the horizontal border pixels being pixels on the horizontal boundary that lies directly above the target block to be encoded and in the horizontally adjacent blocks that have been previously encoded, restored and saved;and the step of performing intra-frame prediction based on the expanded horizontal pixel layout, where the acquisition of at least a few pixels from the vertical border pixel array includes: etap dodawania pozyskanych pikseli do układu pikseli granicy poziomej, aby rozszerzyć układ pikseli granicy poziomej, przy czym piksele granicy poziomej są pikselami na granicy poziomej, która leży bezpośrednio ponad blokiem docelowym do zakodowania i w sąsiadujących poziomo blokach, które zostały wcześniej zakodowane, odtworzone i zapisane;i etap przeprowadzania predykcji wewnątrzramkowej na podstawie rozszerzonego układu pikseli granicy poziomej, gdzie etap pozyskiwania co najmniej kilku pikseli z układu pikseli granicy pionowej obejmuje: getting InvAngle from the search table, which represents InvAngle values ​​with respect to the angle * value representing the direction of the prediction;and identifying at least a few pixels from the vertical border pixels by using the vertical pixel identifier which is expressed by the function using [col * InvAngle], where col is the counter which is decreased by 1 from -1 to (size * angle * / rangelimit ), where size is the size of the target block, and rangelimit specifies the angle * range, and where the step of adding the acquired pixels to the horizontal border pixel circuit comprises adding a pixel identified by the vertical pixel identifier to the horizontal border pixels at the location designated by the vertical pixel identifier [col]. uzyskiwanie InvAngle z tablicy wyszukiwania, która przedstawia wartości InvAngle w odniesieniu do wartości angle* przedstawiającej kierunek predykcji;i identyfikowanie co najmniej kilku pikseli spośród pikseli granicy pionowej, przez wykorzystanie identyfikatora piksela pionowego, który jest wyrażony przez funkcję wykorzystująca [col * InvAngle], gdzie col jest licznikiem, który jest zmniejszany o 1 od -1 do (size * angle*/rangelimit), gdzie size jest rozmiarem bloku docelowego, a rangelimit określa zakres angle*, i gdzie etap dodawania pozyskanych pikseli do układu pikseli granicy poziomej obejmuje dodawanie piksela zidentyfikowanego przez identyfikator piksela pionowego do pikseli granicy poziomej w położeniu wyznaczonym przez identyfikator piksela pionowego [col]. 6. Sposób dekodowania wideo według zastrzeżenia 5, w którym rangelimit jest liczbą całkowitą będącą potęgą 2. The video decoding method according to claim 5, wherein the rangelimit is a integer being a power of 2. 7. Sposób dekodowania wideo według zastrzeżenia 5, w którym rangelimit wynosi 32, a (size * angle*/rangelimit) jest zrealizowane jako size * angle* >> 5. 7. Video decoding method according to claim 5, wherein the rangelimit is 32, and (size * angle * / rangelimit) is implemented as size * angle * >> 5. 8. A video decoding method according to one of claims 5 to 7, wherein the size of InvAngel is obtained from the following search table: 8. Sposób dekodowania wideo według jednego z zastrzeżeń 5 do 7, w którym wielkość InvAngel jest uzyskiwana z następuj ącej tablicy wyszukiwania: 9. A video coding device containing: 9. Urządzenie do kodowania wideo zawieraj ące: means for acquiring at least a few pixels from the vertical border pixel array, the vertical border pixels being pixels on the vertical border that lie directly to the left of the target block to be encoded and in the vertically adjacent blocks that have been previously encoded, restored and saved;środki do pozyskiwania co najmniej kilku pikseli z układu pikseli granicy pionowej, przy czym piksele granicy pionowej są pikselami na granicy pionowej które leżą bezpośrednio na lewo od bloku docelowego do zakodowania i w sąsiaduj ących pionowo blokach, które zostały wcześniej zakodowane, odtworzone i zapisane;means for adding acquired pixels to the horizontal border pixel array to extend the horizontal border pixel array, the horizontal border pixels being pixels on the horizontal boundary that lies directly above the target block to be encoded and in the horizontally adjacent blocks that have been previously encoded, restored and saved;and means for performing intra-frame prediction based on the expanded horizontal pixel array, where these acquisition means obtain InvAngel from the search table, which represents the InvAngle values ​​with respect to the angle * value representing the prediction direction;and identify at least a few pixels from the vertical border pixels by using the vertical pixel identifier that is expressed by the use function [col * InvAngle], środki do dodawania pozyskanych pikseli do układu pikseli granicy poziomej w celu rozszerzenia układu pikseli granicy poziomej, przy czym piksele granicy poziomej są pikselami na granicy poziomej, która leży bezpośrednio ponad blokiem docelowym do zakodowania i w sąsiaduj ących poziomo blokach, które zostały wcześniej zakodowane, odtworzone i zapisane;i środki do przeprowadzania predykcji wewnątrzramkowej na podstawie rozszerzonego układu pikseli granicy poziomej, gdzie te środki do pozyskiwania uzyskuj ą InvAngel z tablicy wyszukiwania, która przedstawia wartości InvAngle w odniesieniu do wartości angle* przedstawiaj ącej kierunek predykcji;i identyfikuj ą co najmniej kilka pikseli spośród pikseli granicy pionowej, przez wykorzystanie identyfikatora piksela pionowego, który jest wyrażony przez funkcj ę wykorzystuj ąca [col * InvAngle], gdzie col jest licznikiem, który jest zmniejszany o 1 od -1 do (size * angle*/rangelimit), gdzie size jest rozmiarem bloku docelowego, a rangelimit określa zakres angle*, i gdzie te środki do dodawania dodaj ą piksel zidentyfikowany przez identyfikator piksela pionowego do pikseli granicy poziomej w położeniu wyznaczonym przez identyfikator [col] piksela pionowego. 10. A video decoding apparatus comprising: 10. Urządzenie do dekodowania wideo zawieraj ące: means for acquiring at least a few pixels from a vertical border pixel array, the vertical border pixels being pixels on the vertical border that lies directly to the left of the target block to be encoded and in the vertically adjacent blocks that have been previously encoded, restored and saved;środki do pozyskiwania co najmniej kilku pikseli z układu pikseli granicy pionowej, przy czym piksele granicy pionowej są pikselami na granicy pionowej która leży bezpośrednio na lewo od bloku docelowego do zakodowania i w sąsiaduj ących pionowo blokach, które zostały wcześniej zakodowane, odtworzone i zapisane;means for adding acquired pixels to the horizontal border pixel array to extend the horizontal border pixel array, the horizontal border pixels being pixels on the horizontal boundary that lies directly above the target block to be encoded and in the horizontally adjacent blocks that have been previously encoded, restored and saved;and means for performing intra-frame prediction based on the expanded horizontal pixel array, where acquisition means obtain InvAngel from a search table that represents InvAngle values ​​with respect to the angle * value representing the prediction direction;and identify at least a few pixels from the vertical border pixels by using the vertical pixel identifier, which is expressed by the function using [col * InvAngle], środki do dodawania pozyskanych pikseli do układu pikseli granicy poziomej w celu rozszerzenia układu pikseli granicy poziomej, przy czym piksele granicy poziomej są pikselami na granicy poziomej, która leży bezpośrednio ponad blokiem docelowym do zakodowania i w sąsiaduj ących poziomo blokach, które zostały wcześniej zakodowane, odtworzone i zapisane;i środki do przeprowadzania predykcji wewnątrzramkowej na podstawie rozszerzonego układu pikseli granicy poziomej, gdzie środki do pozyskiwania uzyskuj ą InvAngel z tablicy wyszukiwania, która przedstawia wartości InvAngle w odniesieniu do wartości angle* przedstawiaj ącej kierunek predykcji;i identyfikuj ą co najmniej kilka pikseli spośród pikseli granicy pionowej, przez wykorzystanie identyfikatora piksela pionowego, który jest wyrażony przez funkcj ę wykorzystuj ącą [col * InvAngle], gdzie col jest licznikiem, który jest zmniejszany o 1 od -1 do (size * angle*/rangelimit), gdzie size jest rozmiarem bloku docelowego, a rangelimit określa zakres angle*, i gdzie te środki do dodawania dodaj ą piksel zidentyfikowany przez identyfikator piksela pionowego do pikseli granicy poziomej w położeniu wyznaczonym przez identyfikator [col] piksela pionowego. Authorized: NTT DOCOMO, INC. Uprawniony: NTT DOCOMO, INC. Pełnomocnik: Proxy: dr inż. Robert Teofilak Patent attorney dr inż. Robert Teofilak Rzecznik patentowy Fig. 1 angle> 0? Fig. 1 angle>0? int col + 1 + <0? int+col+1<0? col <size? col<size? row <size? row<size? 902 pos <-angle χ row + 1 int <-pos »log2_size frac <-pos &. (Size-1) 902 pos<—angle χ row+1 int<—pos»log2_size frac<-pos&.(size-1) 903 903 904 comO 904 comO 913 913 Nie No 910 910 915 v ^ refH [mt + col + 1] 915 v^refH[mt+col+1 ] 918 918 907 p rea [ro w] [co /] afisize-frac) χ refH [int + col + 1] b <-frac χ refH [int + col + 2] pos2 <- (sizrx (col + 1)) l \ angie \ a ^ (size-frac) x refH [int + col + 1 vWa + b) »log2 size mt2 ^ pos2» log2_size b <-frac x refH [int + col + 2] pred [row '] [co / ] <- and / frac2 <-pos2 & (s / ze-1) v <- (a + b) »log2_size pred [row] [col] ^ v 907 p rea [ro w] [co/] afisize-frac) χ refH[int+col+1] b<-frac χ refH[int+col+2] pos2<-(sizrx(col+1 ))l\angie\ a^(size-frac) x refH[int+col+1 vWa+b)»log2 size mt2^pos2»log2_size b<—frac x refH[int+col+2] pred[row'][co/]<-i/ frac2<-pos2&(s/ze-1) v<—(a+b)»log2_size pred[row][col]^v 916 a <- (s / ze-frac2 xreM / nf2 + row + 1 col <- every 1 + 1 J 916 a<-(s/ze-frac2 xreM/nf2+row+1 col<— co 1+1 J 908 frac2 χ refv [/ nf2 + ro in + 2] col <-col + 1 908 frac2 χ refv[/nf2+ro w+2] col<—col+1 912 v <- (a + b) »log2_size every m every 1 + 1 912 v<-(a+b)»log2_size co m co 1+1 917 preciirow] [co / l <-iz 917 preciirow][co/l<-iz 909 909 919 919 920 row ^ row + 1 j Fi9-9 ^ Begin ^ θθθ get reference samples and optionally filter them <ro 0 < 920 row^row+1 j Fi9-9 ^Początek^ θθθ pobierz próbki odniesienia i opcjonalnie je przefiltruj ro tv<—0 Początek int < lastlnt? The beginning of int <lastlnt? row <size? row<size? End Koniec Fig. 14 Fig. 14 1401 ro / m and so on n <1 1401 ro i/imO ast nt<—1 902 pos ^ angle x (row + 1) int <^ pos »log2_size frac ^ pos & isize-)) 902 pos^angle x (row+1) int<^pos»log2_size frac^pos&isize-)) 1402 1402 1403 □ 1403 □ refH [int + i] ^ refv [row] refH[int+i]^refv[row] 900 pobierz próbki odniesienia i opcjonalnie je przefiltruj 900 take reference samples and optionally filter them 1405 row- ^ row + 1 lastlnt <-int 1405 row-^row+1 lastlnt<—int 1404 1404 Generate a lima that has been predicted Wygeneruj limę, która została poddana predykcji