Video bitstream coding
A method of decoding JVET video includes receiving a bitstream indicating how a coding tree unit was partitioned into coding units, and parsing said bitstream to generate at least one predictor based on an intra prediction mode signaled in the bitstream. The predictor may be generated by interpolating neighboring pixels for each pixel within a coding block. The computation may be more accurate by deriving a value for a bottom right neighboring pixel.
1. A method for predicting pixel values each of which having a respective position x, y for a current coding block which is based upon pixels on an upper side of the current coding block and left side of the current coding block the method configured to:
receive a bitstream indicating how a coding tree unit was partitioned into coding blocks including said current coding block;
calculate a first predictor for a pixel in the current coding block based upon a first value which is determined by a summation of (i) a height of said coding block, (ii) minus 1, (iii) minus y; a second value determined by said first value multiplied by a value of a pixel location of said pixel locations on said upper side of the current coding block at horizontal position x; a third value which is determined by a summation of (i) y, (ii) plus 1; a fourth value determined by said third value multiplied by a value of a pixel location of said pixel locations on said left side of the current coding block at a vertical position of said height of said coding block; said first predictor based upon a summation of said second value and said fourth value;
calculate a second predictor, different from the first predictor, for the pixel in the current coding block based upon a fifth value which is determined by a summation of (i) a width of said coding block, where said height of said coding block is different than said width of said coding block, (ii) minus 1, (iii) minus x; a sixth value determined by said fifth value multiplied by a value of a pixel location of said pixel locations on said left side of the current coding block at a vertical position y; a seventh value which is determined by a summation of (i) x, (ii) pus 1; an eighth value determined by said seventh value multiplied by a value of a pixel location of said pixel locations on said upper side of the current coding block at a horizonal position of said width of said coding block; said second predictor based upon a summation of said sixth value and said eighth value;
calculate an adjustment factor that is based upon said width of said coding block multiplied by said height of said coding block, and
wherein said height of said coding block is different value than said width of said coding block such that said coding block is rectangular;
derive a prediction pixel value from the first and second predictors together with said adjustment factor, wherein a plurality of prediction pixel values make up a prediction block.
2. The method of claim 1 wherein deriving the prediction pixel value comprises averaging the first and second predictors.
3. The method of claim 1 wherein said value of said pixel location of said pixel locations on said upper side of the current coding block at horizontal position x is a luminance value.
4. The method of claim 1 wherein said value of said pixel location of said pixel locations on said left side of the current coding block at said vertical position of said height of said coding block is a luminance value.
5. The method of claim 1 wherein said value of said pixel location of said pixel locations on said left side of the current coding block at said vertical position y is a luminance value.
6. The method of claim 1 wherein said value of said pixel location of said pixel locations on said upper side of the current coding block at said horizonal position of said width of said coding block is a luminance value; said value of said pixel location of said pixel locations on said upper side of the current coding block at horizontal position x is a luminance value; said value of said pixel location of said pixel locations on said left side of the current coding block at said vertical position of said height of said coding block is a luminance value; said value of said pixel location of said pixel locations on said left side of the current coding block at said vertical position y is a luminance value, and said value of said pixel location of said pixel locations on said upper side of the current coding block at said horizonal position of said width of said coding block is a luminance value.
7. A method for predicting pixel values in an encoder for an encoded bitstream each of which having a respective position x, y for a current coding block which is based upon pixels on an upper side of the current coding block and left side of the current coding block the method configured to:
wherein said bitstream indicates how a coding tree unit was partitioned into coding blocks including said current coding block;
calculate a first predictor for a pixel in the current coding block based upon a first value which is determined by a summation of (i) a height of said coding block, (ii) minus 1, (iii) minus y; a second value determined by said first value multiplied by a value of a pixel location of said pixel locations on said upper side of the current coding block at horizontal position x; a third value which is determined by a summation of (i) y, (ii) plus 1; a fourth value determined by said third value multiplied by a value of a pixel location of said pixel locations on said left side of the current coding block at a vertical position of said height of said coding block; said first predictor based upon a summation of said second value and said fourth value;
calculate a second predictor, different from the first predictor, for the pixel in the current coding block based upon a fifth value which is determined by a summation of (i) a width of said coding block, where said height of said coding block is different than said width of said coding block, (ii) minus 1, (iii) minus x; a sixth value determined by said fifth value multiplied by a value of a pixel location of said pixel locations on said left side of the current coding block at a vertical position y; a seventh value which is determined by a summation of (i) x, (ii) pus 1; an eighth value determined by said seventh value multiplied by a value of a pixel location of said pixel locations on said upper side of the current coding block at a horizonal position of said width of said coding block; said second predictor based upon a summation of said sixth value and said eighth value;
calculate an adjustment factor that is based upon said width of said coding block multiplied by said height of said coding block, and
wherein said height of said coding block is different value than said width of said coding block such that said coding block is rectangular;
derive a prediction pixel value from the first and second predictors together with said adjustment factor, wherein a plurality of prediction pixel values make up a prediction block.
8. A method for predicting pixel values in a decoder for an encoded bitstream each of which having a respective position x, y for a current coding block which is based upon pixels on an upper side of the current coding block and left side of the current coding block the method configured to:
receive said bitstream indicates how a coding tree unit was partitioned into coding blocks including said current coding block;
calculate a first predictor for a pixel in the current coding block based upon a first value which is determined by a summation of (i) a height of said coding block, (ii) minus 1, (iii) minus y; a second value determined by said first value multiplied by a value of a pixel location of said pixel locations on said upper side of the current coding block at horizontal position x; a third value which is determined by a summation of (i) y, (ii) plus 1; a fourth value determined by said third value multiplied by a value of a pixel location of said pixel locations on said left side of the current coding block at a vertical position of said height of said coding block; said first predictor based upon a summation of said second value and said fourth value;
calculate a second predictor, different from the first predictor, for the pixel in the current coding block based upon a fifth value which is determined by a summation of (i) a width of said coding block, where said height of said coding block is different than said width of said coding block, (ii) minus 1, (iii) minus x; a sixth value determined by said fifth value multiplied by a value of a pixel location of said pixel locations on said left side of the current coding block at a vertical position y; a seventh value which is determined by a summation of (i) x, (ii) pus 1; an eighth value determined by said seventh value multiplied by a value of a pixel location of said pixel locations on said upper side of the current coding block at a horizonal position of said width of said coding block; said second predictor based upon a summation of said sixth value and said eighth value;
calculate an adjustment factor that is based upon said width of said coding block multiplied by said height of said coding block, and
wherein said height of said coding block is different value than said width of said coding block such that said coding block is rectangular;
derive a prediction pixel value from the first and second predictors together with said adjustment factor, wherein a plurality of prediction pixel values make up a prediction block.
9. A method for predicting pixel values by an encoder each of which having a respective position x, y for a current coding block which is based upon pixels on an upper side of the current coding block and left side of the current coding block the method configured to:
providing a bitstream indicating how a coding tree unit was partitioned into coding blocks including said current coding block;
providing a bitstream indicating how a first predictor for a pixel in the current coding block based upon a first value which is determined by a summation of (i) a height of said coding block, (ii) minus 1, (iii) minus y; a second value determined by said first value multiplied by a value of a pixel location of said pixel locations on said upper side of the current coding block at horizontal position x; a third value which is determined by a summation of (i) y, (ii) plus 1; a fourth value determined by said third value multiplied by a value of a pixel location of said pixel locations on said left side of the current coding block at a vertical position of said height of said coding block; said first predictor based upon a summation of said second value and said fourth value;
providing said bitstream indicating how a second predictor, different from the first predictor, for the pixel in the current coding block based upon a fifth value which is determined by a summation of (i) a width of said coding block, where said height of said coding block is different than said width of said coding block, (ii) minus 1, (iii) minus x; a sixth value determined by said fifth value multiplied by a value of a pixel location of said pixel locations on said left side of the current coding block at a vertical position y; a seventh value which is determined by a summation of (i) x, (ii) pus 1; an eighth value determined by said seventh value multiplied by a value of a pixel location of said pixel locations on said upper side of the current coding block at a horizonal position of said width of said coding block; said second predictor based upon a summation of said sixth value and said eighth value;
providing said bitstream wherein an adjustment factor is based upon said width of said coding block multiplied by said height of said coding block, and
wherein said height of said coding block is different value than said width of said coding block such that said coding block is rectangular;
providing said bitstream wherein a prediction pixel value configured to be derived from the first and second predictors together with said adjustment factor, wherein a plurality of prediction pixel values make up a prediction block.