A method of mode dependent interpolation filtering of a current transform block carried out by a video encoder or video decoder, wherein the method comprises: obtaining a threshold value based on a width of the current transform block and a height of the current transform block; obtaining a variable of corner mode based on the width of the current transform block and the height of the current transform block; obtaining a variable of mode difference based on the variable of corner mode; comparing the variable of mode difference with the threshold value to obtain a comparison result; obtaining a filter flag based on the comparison result, wherein the filter flag indicates a type of an interpolation filter to be used for the interpolation filtering; and performing interpolation filtering of the current transform block by means of the interpolation filter indicated by the obtained filter flag; and characterized in that the variable of corner mode is obtained based on Log2(nTbW/nTbH) and an offset value, wherein nTbW and nTbH represent the width and height of the current transform block, respectively; the variable of mode difference is set equal to: predModeIntra>cornerMode?Abs( predModeIntra - value of vertical mode): Abs( predModeIntra - value of horizontal mode), wherein cornerMode represents the variable of corner mode, and predModelntra represents an intra prediction mode of the current transform block; the threshold value, intraHorVerDistThres, is obtained by: nTbS = 2 nTbS = 3 nTbS = 4 nTbS = 5 nTbS = 6 nTbS = 7 intraHorVerDistThres[ nTbS] 24 14 2 0 0 0 wherein the variable nTbS is set equal to ( Log2 (nTbW) + Log2 (nTbH)) >> 1, and nTbW and nTbH represent the width and height of the current transform block, respectively; the filter flag is obtained as follows: if minDistVerHor is greater than intraHorVerDistThres[nTbS], filterFlag is set equal to 1; otherwise, filterFlag is set equal to 0; wherein minDistVerHor represents the variable of mode difference, and filterFlag represents the filter flag; and the obtained filter flag indicates a Gaussian interpolation filter to be used for the interpolation filtering when the variable of mode difference is greater than the threshold value and indicates a cubic interpolation filter to be used for the interpolation filtering when the variable of mode difference is smaller than or equal to the threshold value. obtaining a threshold value based on a width of the current transform block and a height of the current transform block; obtaining a variable of corner mode based on the width of the current transform block and the height of the current transform block; obtaining a variable of mode difference based on the variable of corner mode; comparing the variable of mode difference with the threshold value to obtain a comparison result; obtaining a filter flag based on the comparison result, wherein the filter flag indicates a type of an interpolation filter to be used for the interpolation filtering; and performing interpolation filtering of the current transform block by means of the interpolation filter indicated by the obtained filter flag; and characterized in that the variable of corner mode is obtained based on Log2(nTbW/nTbH) and an offset value, wherein nTbW and nTbH represent the width and height of the current transform block, respectively; the variable of mode difference is set equal to: predModeIntra>cornerMode?Abs( predModeIntra - value of vertical mode): Abs( predModeIntra - value of horizontal mode), wherein cornerMode represents the variable of corner mode, and predModelntra represents an intra prediction mode of the current transform block; the threshold value, intraHorVerDistThres, is obtained by: nTbS = 2 nTbS = 3 nTbS = 4 nTbS = 5 nTbS = 6 nTbS = 7 intraHorVerDistThres[ nTbS] 24 14 2 0 0 0 predModeIntra>cornerMode?Abs( predModeIntra - value of vertical mode): Abs( predModeIntra - value of horizontal mode), wherein cornerMode represents the variable of corner mode, and predModelntra represents an intra prediction mode of the current transform block; the threshold value, intraHorVerDistThres, is obtained by: nTbS = 2 nTbS = 3 nTbS = 4 nTbS = 5 nTbS = 6 nTbS = 7 intraHorVerDistThres[ nTbS] 24 14 2 0 0 0 wherein the variable nTbS is set equal to ( Log2 (nTbW) + Log2 (nTbH)) >> 1, and nTbW and nTbH represent the width and height of the current transform block, respectively; the filter flag is obtained as follows: if minDistVerHor is greater than intraHorVerDistThres[nTbS], filterFlag is set equal to 1; otherwise, filterFlag is set equal to 0; wherein minDistVerHor represents the variable of mode difference, and filterFlag represents the filter flag; and the obtained filter flag indicates a Gaussian interpolation filter to be used for the interpolation filtering when the variable of mode difference is greater than the threshold value and indicates a cubic interpolation filter to be used for the interpolation filtering when the variable of mode difference is smaller than or equal to the threshold value. if minDistVerHor is greater than intraHorVerDistThres[nTbS], filterFlag is set equal to 1; otherwise, filterFlag is set equal to 0; wherein minDistVerHor represents the variable of mode difference, and filterFlag represents the filter flag; and the obtained filter flag indicates a Gaussian interpolation filter to be used for the interpolation filtering when the variable of mode difference is greater than the threshold value and indicates a cubic interpolation filter to be used for the interpolation filtering when the variable of mode difference is smaller than or equal to the threshold value.