PL2594076T3

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

8 claims: 4 independent, 4 dependent

  1. 1
    Claims Zastrzeżenia patentowe 1. Sposób kodowania wideo obejmuj ący wykonywalne komputerowo etapy wykonywane przez procesor urządzenia do kodowania wideo, aby zaimplementować:A video coding method comprising computer-executable steps performed by a video encoder processor to implement: acquiring at least some pixels, according to the intra-frame prediction direction of the target block to be predicted, from the first area (refV) of the memory in which the vertical border pixel array is written, with the vertical border pixels lying directly to the left of the target block ;pozyskiwanie co najmniej niektórych pikseli, zgodnie z kierunkiem predykcji wewnątrzramkowej na bloku docelowym, który ma zostać poddany predykcji, z pierwszego obszaru (refV) pamięci w którym jest zapisywany układ pikseli granicy pionowej, przy czym piksele granicy pionowej są położone bezpośrednio na lewo względem bloku docelowego;adding the acquired pixels to the horizontal border pixel array, located directly above the target block, where the acquired pixels are added directly to the left end of the horizontal border pixel array to create the next horizontal pixel sequence;dodawanie pozyskanych pikseli do układu pikseli granicy poziomej, położonych bezpośrednio ponad blokiem docelowym, gdzie pozyskane piksele są dodawane bezpośrednio do lewego końca układu pikseli granicy poziomej w celu utworzenia następnej sekwencji pikseli granicy poziomej;saving the added pixels in the second area (refH) of the memory in which the horizontal border pixel system is written, to expand the system stored in their second memory (refH) area, and to perform intra-frame prediction on the target block using only the horizontal border pixels containing these added pixels, extended layout saved in the second area (refH) of memory as reference pixels. zapisywanie dodanych pikseli w drugim obszarze (refH) pamięci, w którym jest zapisywany układ pikseli granicy poziomej, w celu poszerzenia układu zapisanego w ich drugim obszarze (refH) pamięci, oraz przeprowadzanie predykcji wewnątrzramkowej na bloku docelowym przy użyciu jedynie pikseli granicy poziomej zawieraj ących te dodane piksele, poszerzonego układu zapisanego w drugim obszarze (refH) pamięci jako piksele odniesienia. Sposób według zastrz. 1, w którym pozyskiwanie co najmniej niektórych pikseli z pierwszego obszaru (refV) pamięci obejmuje identyfikowanie tych co najmniej niektórych pikseli spośród pikseli granicy pionowej, przy użyciu identyfikatora piksela pionowego, który wyrażony jest następująco [sze* col 1 , angle J gdzie size oznacza rozmiar bloku docelowego, rozmiar jest liczbą wierszy lub kolumn bloku docelowego, angle ma wartość ujemną i przedstawia kierunek predykcji, który przecina się zarówno z układem pikseli granicy poziomej jak i układem pikseli granicy pionowej, a col jest licznikiem dekrementowanym o 1 od -1 do angle, a dodawanie pozyskanych pikseli do drugiego obszaru (refH) pamięci obejmuje dodawanie pikseli zidentyfikowanych przez identyfikator piksela pionowego do drugiego obszaru (refH) pamięci w położeniu określonym przez identyfikator [col\ piksela poziomego. The method according to claim The method of claim 1, wherein acquiring at least some pixels from the first memory (refV) area comprises identifying at least some pixels from the vertical border pixels using a vertical pixel identifier which is expressed as follows: [* * col1, angle J where size is the size target block, size is the number of rows or columns of the target block, angle has a negative value and represents the prediction direction that intersects both with the horizontal border pixel layout and the vertical border pixel layout, and col is the decremented counter by 1 from -1 to angle, Sposób według zastrz. 1, w którym pozyskiwanie co najmniej niektórych pikseli z pierwszego obszaru pamięci obejmuje: obliczanie InvAngle z The method according to claim The method of claim 1, wherein acquiring at least some pixels from the first memory area includes: calculating InvAngle with N * size angle where size is the size of the target block, size is the number of rows or columns of the target block, angle is negative and shows the direction of the prediction that intersects both the horizontal border pixel and the vertical border pixel layout, while N is the top a fixed total power of 2, and identifying those at least some pixels from the vertical border pixels using a vertical pixel identifier that is expressed as [col * InvAngle >> log2N], where col is a decremented by 1 from -1 to angle, and adding the acquired pixels to the second area (refH) of the memory includes adding a pixel identified by the vertical pixel identifier to the second region (refH) of the memory at the location specified by the identifier [col \ horizontal pixel. N* size angle gdzie size oznacza rozmiar bloku docelowego, rozmiar jest liczbą wierszy lub kolumn bloku docelowego, angle ma wartość ujemną i przedstawia kierunek predykcji, który przecina się zarówno z układem pikseli granicy poziomej jak i układem pikseli granicy pionowej, natomiast N jest z góry ustaloną całkowitą potęgą 2, i identyfikowanie tych co najmniej niektórych pikseli spośród pikseli granicy pionowej, z wykorzystaniem identyfikatora piksela pionowego, który jest wyrażony jako [col*InvAngle >> log2N], gdzie col jest licznikiem dekrementowanym o 1 od -1 do angle, a dodawanie pozyskanych pikseli do drugiego obszaru (refH) pamięci obejmuje dodawanie piksela zidentyfikowanego przez identyfikator piksela pionowego do drugiego obszaru (refH) pamięci w położeniu określonym przez identyfikator [col\ piksela poziomego. Sposób według zastrz. 1, w którym pozyskiwanie co najmniej niektórych pikseli z pierwszego obszaru (refV) pamięci obejmuje: The method according to claim The method of claim 1, wherein the acquisition of at least some of the pixels from the first area (refV) of the memory includes: otrzymywanie InvAngle z tabeli poszukiwań, która jest spisem wartości InvAngle w powiązaniu z wartościami kąta, gdzie InvAngle jest wyrażone przez receiving InvAngle from the search table, which is a list of InvAngle values ​​in conjunction with angle values, where InvAngle is expressed by N * size angle where size is the size of the target block, size is the number of rows or columns of the target block, angle is negative and shows the direction of the prediction that intersects both the horizontal border pixel and the vertical border pixel layout, while N is the top fixed total power 2, and identifying these at least some pixels from the vertical border pixels using the vertical pixel identifier, which is expressed as [col * InvAngle >> log2N], where col is a decremented counter of 1 from 1 to angle, and adding the acquired pixels to the second area (refH) of the memory includes adding a pixel identified by the vertical pixel identifier to the second region (refH) of the memory at the location specified by the pixel [col] horizontal. N* size angle gdzie size oznacza rozmiar bloku docelowego, rozmiar jest liczbą wierszy lub kolumn bloku docelowego, angle ma wartość ujemną i przedstawia kierunek predykcji, który przecina się zarówno z układem pikseli granicy poziomej jak i układem pikseli granicy pionowej, natomiast N jest z góry ustaloną całkowitą potęgą 2, i identyfikowanie tych co najmniej niektórych pikseli spośród pikseli granicy pionowej, z wykorzystaniem identyfikatora piksela pionowego, jest który wyrażony jako [col*InvAngle >> log2N], gdzie col jest licznikiem dekrementowanym o 1 od 1 do angle, a dodawanie pozyskanych pikseli do drugiego obszaru (refH) pamięci obejmuje dodawanie piksela zidentyfikowanego przez identyfikator piksela pionowego do drugiego obszaru (refH) pamięci w położeniu określonym przez identyfikator [col] piksela poziomego. Sposób według zastrz. 1, w którym pozyskiwanie co najmniej niektórych pikseli z pierwszego obszaru pamięci obejmuje identyfikowanie piksela spośród pikseli granicy pionowej, przy użyciu identyfikatora [row] piksela pionowego, gdzie wiersz jest licznikiem, który jest inkrementowany o 1 od 0 do size, natomiast size przedstawia rozmiar bloku docelowego, przy czym rozmiarem jest liczba wierszy lub kolumn bloku docelowego, i dodawanie pozyskanych pikseli do drugiego obszaru (refH) pamięci obejmuje dodawanie piksela zidentyfikowanego przez identyfikator piksela pionowego do drugiego obszaru (refH) pamięci w miejscu identyfikowanym przez identyfikator piksela poziomego, który jest wyrażony jako [int + 1], gdzie int jest liczbą całkowitą przedstawiaj ącą położenie piksela odpowiadaj ącego przecięciu między układem pikseli granicy poziomej a kierunkiem predykcji. The method according to claim The method of claim 1, wherein acquiring at least some pixels from the first memory area comprises identifying a pixel from the vertical border pixels using a vertical pitch identifier [row], where the row is a counter incremented by 1 from 0 to size, and size represents the block size The size of the target block is the number of rows or columns of the target block, and adding the acquired pixels to the second memory area (refH) includes adding the pixel identified by the vertical pixel identifier to the second memory area (refH) at the location identified by the horizontal pixel identifier that is expressed as [int + 1],
  2. 2
    6. A video decoding method comprising computer-executable steps performed by the processor of the video decoding apparatus to implement:6. Sposób dekodowania wideo obejmuj ący wykonywalne komputerowo etapy wykonywane przez procesor urządzenia do dekodowania wideo aby zaimplementować: acquiring at least some pixels, according to the prediction direction for the intra prediction on the target block to be predicted, from the first area (refV) of the memory in which the vertical border pixel array is stored, where the vertical border pixels are located directly to the left relative to the target block;adding these acquired pixels to the pixel array of the horizontal boundary located directly above the target block, where the acquired pixels are added directly to the left end of the horizontal border pixel array to create the next sequence of these horizontal border pixels;saving the added pixels in the second area (refH) of the memory in which the horizontal border pixel array is stored, in order to widen the system stored in its second memory (refH) region;pozyskiwanie co najmniej niektórych pikseli, zgodnie z kierunkiem predykcji dla predykcji wewnątrzramkowej na bloku docelowym, który ma zostać poddany predykcji, z pierwszego obszaru (refV) pamięci, w którym jest przechowywany układ pikseli granicy pionowej, gdzie te piksele granicy pionowej są położone bezpośrednio na lewo względem bloku docelowego;dodawanie tych pozyskanych pikseli do układu pikseli granicy poziomej położonego bezpośrednio powyżej bloku docelowego, gdzie te pozyskane piksele są dodawane bezpośrednio do lewego końca układu pikseli granicy poziomej, w celu utworzenia kolejnej sekwencji tych pikseli granicy poziomej;zapisywanie dodanych pikseli w drugim obszarze (refH) pamięci, w którym jest przechowywany układ pikseli granicy poziomej, w celu poszerzenia układu przechowywanego w jego drugim obszarze (refH) pamięci;oraz przeprowadzanie predykcji wewnątrzramkowej bloku docelowego przy użyciu jedynie pikseli granicy poziomej zawieraj ących te dodane piksele, poszerzonego układu przechowywanego w drugim obszarze (refH) pamięci, jako pikseli odniesienia.
  3. 7
    11. A video encoding apparatus comprising a computer system processor and a memory which stores executable programs by said processor to:11. Urządzenie do kodowania wideo zawieraj ące procesor systemu komputerowego oraz pamięć, która przechowuje programy wykonywalne przez ten procesor w celu: acquiring at least some pixels, according to the prediction direction for the intra prediction on the target block to be predicted, from the first area (refV) of the memory in which the vertical border pixel array is stored, where the vertical border pixels are located directly to the left relative to the target block;adding these acquired pixels to a horizontal border pixel array located immediately above the target block, where the acquired pixels are added directly to the left end of the horizontal border pixel array, to create the next sequence of these horizontal border pixels;saving the added pixels in the second region (refH) of the memory in which the horizontal border pixel array is stored in order to widen the system stored in its second memory (refH) region;pozyskiwania co najmniej niektórych pikseli, zgodnie z kierunkiem predykcji dla predykcji wewnątrzramkowej na bloku docelowym, który ma zostać poddany predykcji, z pierwszego obszaru (refV) pamięci, w którym jest przechowywany układ pikseli granicy pionowej, gdzie te piksele granicy pionowej są położone bezpośrednio na lewo względem bloku docelowego;dodawania tych pozyskanych pikseli do układu pikseli granicy poziomej położonego bezpośrednio powyżej bloku docelowego, gdzie te pozyskane piksele są dodawane bezpośrednio do lewego końca układu pikseli granicy poziomej, w celu utworzenia kolejnej sekwencji tych pikseli granicy poziomej;zapisywania dodanych pikseli w drugim obszarze (refH) pamięci, w którym jest przechowywany układ pikseli granicy poziomej, w celu poszerzenia układu przechowywanego w jego drugim obszarze (refH) pamięci;oraz przeprowadzania predykcji wewnątrzramkowej bloku docelowego przy użyciu jedynie pikseli granicy poziomej zawieraj ących te dodane piksele, poszerzonego układu przechowywanego w drugim obszarze (refH) pamięci, jako pikseli odniesienia.
  4. 8
    12. A video decoding apparatus comprising a computer system processor and a memory that stores executable programs by said processor to:12. Urządzenie do dekodowania wideo zawierające procesor systemu komputerowego oraz pamięć, która przechowuje programy wykonywalne przez ten procesor w celu: acquiring at least some pixels, according to the prediction direction for the intra prediction on the target block to be predicted, from the first area (refV) of the memory in which the vertical border pixel array is stored, where the vertical border pixels are located directly to the left relative to the target block;adding these acquired pixels to a horizontal border pixel array located immediately above the target block, where the acquired pixels are added directly to the left end of the horizontal border pixel array, to create the next sequence of these horizontal border pixels;saving the added pixels in the second region (refH) of the memory in which the horizontal border pixel array is stored in order to widen the system stored in its second memory (refH) region;pozyskiwania co najmniej niektórych pikseli, zgodnie z kierunkiem predykcji dla predykcji wewnątrzramkowej na bloku docelowym, który ma zostać poddany predykcji, z pierwszego obszaru (refV) pamięci, w którym jest przechowywany układ pikseli granicy pionowej, gdzie te piksele granicy pionowej są położone bezpośrednio na lewo względem bloku docelowego;dodawania tych pozyskanych pikseli do układu pikseli granicy poziomej położonego bezpośrednio powyżej bloku docelowego, gdzie te pozyskane piksele są dodawane bezpośrednio do lewego końca układu pikseli granicy poziomej, w celu utworzenia kolejnej sekwencji tych pikseli granicy poziomej;zapisywania dodanych pikseli w drugim obszarze (refH) pamięci, w którym jest przechowywany układ pikseli granicy poziomej, w celu poszerzenia układu przechowywanego w jego drugim obszarze (refH) pamięci;oraz przeprowadzania predykcji wewnątrzramkowej bloku docelowego przy użyciu jedynie pikseli granicy poziomej zawieraj ących te dodane piksele, poszerzonego układu przechowywanego w drugim obszarze (refH) pamięci, jako pikseli odniesienia. 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 + + '\ <Q? int+col+'\<Q? col <size? col<size? row <size? row<size? 902 pos <- angle χ (row + 1 mt <-pos »log2_size frac ^ -pos & tsize-l) 902 pos<— angle χ (row+1 mt<—pos»log2_size frac^-pos&tsize-l) 903 903 904 co / <- 0 904 co/<—0 913 913 Nie No 910 910 915 v ^ refH [mt + col + 1] 915 v^refH[mt+col+1 ] 918 918 907 pred [row [co /] <- v a <- (s / ze-frac) χ refr / [/ nf + co / + 1] bwrac χ refH [mt + col + 2] pos2 <- (sizeÆx (col + '\)) l \ angle \ a ^ (size-frac) x refHiint + col + lv <- (a + b) »log2_size int2 ^ pos2» log2 size b <-frac x refH [int + col + 2] predlrow] [co / l <-y frac2 <-pos2 & (s / 'ze-1) v <- (a + b) »log2_size pred [row] [col] ^ v 907 pred[row [co/]<—v a<-(s/ze-frac) χ refr/[/nf+co/+1] bwrac χ refH[mt+col+2] pos2<-(sizećx(col+'\ ))l\angle\ a^(size-frac) x refHiint+col+l v<-(a+b)»log2_size int2^pos2»log2 size b<—frac x refH[int+col+2] predlrow][co/l<—y frac2<-pos2&(s/'ze-1) v<—(a+b)»log2_size pred[row][col]^v 916 a <- (s / ze-frac2 xrefi // nr2 + row + 1 col <- co / + 1 J 916 a<-(s/ze-frac2 xrefi//nr2+row+1 col<— co/+1 J 908 frac2 χ refV [/ af2 + ro w + 2] col <- every 1 + 1 908 frac2 χ refV[/af2+ro w+2] col<— co 1+1 912 v <- (a + b) »log2_size every 1 ^ every 1 + 1 912 v<-(a+b)»log2_size co 1^ co 1+1 917 prebfrow] [co / l <-iz 917 prebfrow][co/l<-iz 909 909 919 919 920 row ^ row + 1 j Fi9-9 ^ Begin ^ θθθ take reference samples and filter them by default <-0 920 row^row+1 j Fi9-9 ^Początek^ θθθ pobierz próbki odniesienia i opcjonalnie je przefiltruj row<—0 Początek int < lastlnt? The beginning of int <lastlnt? row <size? row<size? End Koniec Fig. 14 Fig. 14 1401 row- ^ 0 ast nt <-1 1401 row-^0 ast nt<—1 902 pos ^ angle x (row + 1) int <-pos »log2_s / with frac <-pos & (s / ze-1) 902 pos^angle x (row+1) int<—pos»log2_s/ze frac<—pos&(s/ze-1) 1402 1402 1403 □ 1403 □ refH I / nt + 1 <- departments] refH I/nt+1 <— rewirów] 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