A video encoding method executed by a processor of a video encoder, comprising: a step of retrieving at least some pixels from an array of vertical boundary pixels, the vertical boundary pixels being pixels in a vertical boundary which lies immediately to the left of a target block for encoding and in vertically neighboring blocks which have been previously encoded, reconstructed and stored; a step of adding the retrieved pixels to an array of horizontal boundary pixels, the horizontal boundary pixels being pixels in a horizontal boundary which lies immediately above the target block for encoding and in horizontally neighboring blocks which have been previously encoded, reconstructed and stored, to extend the array of horizontal boundary pixels; and a step of performing intra prediction based on the extended array of horizontal boundary pixels, wherein the step of retrieving at least some pixels from the array of vertical boundary pixels includes: obtaining InvAngle from a look-up table which lists values of InvAngle in relation to values of angle * representing a prediction direction; and identifying the at least some pixels among the vertical boundary pixels, by using a vertical pixel identifier which is expressed by a function using [col × InvAngle], where col is a counter which is decremented by 1 from -1 to (size × angle */ rangelimit), where the size is a size of a target block and the rangelimit defines the range of angle *, and wherein the step of adding the retrieved pixels to the array of horizontal boundary pixels includes: adding a pixel identified by the vertical pixel identifier to the horizontal boundary pixels at a location identified by a horizontal pixel identifier [col]. a step of retrieving at least some pixels from an array of vertical boundary pixels, the vertical boundary pixels being pixels in a vertical boundary which lies immediately to the left of a target block for encoding and in vertically neighboring blocks which have been previously encoded, reconstructed and stored; a step of adding the retrieved pixels to an array of horizontal boundary pixels, the horizontal boundary pixels being pixels in a horizontal boundary which lies immediately above the target block for encoding and in horizontally neighboring blocks which have been previously encoded, reconstructed and stored, to extend the array of horizontal boundary pixels; and a step of performing intra prediction based on the extended array of horizontal boundary pixels, wherein the step of retrieving at least some pixels from the array of vertical boundary pixels includes: obtaining InvAngle from a look-up table which lists values of InvAngle in relation to values of angle * representing a prediction direction; and identifying the at least some pixels among the vertical boundary pixels, by using a vertical pixel identifier which is expressed by a function using [col × InvAngle], where col is a counter which is decremented by 1 from -1 to (size × angle */ rangelimit), where the size is a size of a target block and the rangelimit defines the range of angle *, and obtaining InvAngle from a look-up table which lists values of InvAngle in relation to values of angle * representing a prediction direction; and identifying the at least some pixels among the vertical boundary pixels, by using a vertical pixel identifier which is expressed by a function using [col × InvAngle], where col is a counter which is decremented by 1 from -1 to (size × angle */ rangelimit), where the size is a size of a target block and the rangelimit defines the range of angle *, and wherein the step of adding the retrieved pixels to the array of horizontal boundary pixels includes: adding a pixel identified by the vertical pixel identifier to the horizontal boundary pixels at a location identified by a horizontal pixel identifier [col].