【帧内预测】8.4.4.2.3 Filtering process of neighbouring samples (参考样点的滤波过程)

来源:互联网 发布:杭州淘宝模特 编辑:程序博客网 时间:2024/06/10 09:26
8.4.4.2.3  Filtering process of neighbouring samples 
Inputs to this process are: (输入参数,当然就是参考样点及变换块大小)
–  the neighbouring samples p[ x ][ y ], with x =  −1, y =  −1..nTbS * 2  − 1 and x = 0..nTbS * 2 − 1, y =  −1, 
–  a variable nTbS specifying the transform block size. 
Outputs of this process are the filte red samples pF[ x ][ y ], with x =  −1, y =  −1..nTbS * 2  − 1  and x = 0..nTbS * 2 − 1, y =  −1.(输出参数当然就是滤波过后的样点值)


The variable filterFlag is derived as follows: (滤波标志filterFlag值的确定过程)

–  If one or more of the following conditions are true, filterFlag is set equal to 0: 
–  predModeIntra is equal to INTRA_DC. 

–  nTbS is equal 4. 


–  Otherwise, the following applies: 
–  The variable minDistVerHor is set equal to Min( Abs( predModeIntra − 26 ), Abs( predModeIntra  − 10 ) ). 
–  The variable intraHorVerDistThres[ nTbS ] is specified in Table 8-3. 


–  The variable filterFlag is derived as follows:  

–  If minDistVerHor is greater than intraHorVerDistT hres[ nTbS ], filterFlag is set equal to 1. 
–  Otherwise, filterFlag is set equal to 0. 
Table 8-3 – Specification of intraHorVerDistThres[ nTbS ] for various transform block sizes 


When filterFlag is equal to 1, the following applies: 
–  The variable biIntFlag is derived as follows: 
–  If all of the following conditions are true, biIntFlag is set equal to 1: 
–  strong_intra_smoothing_enabled_flag is equal to 1 
–  nTbS is equal to 32 
–  Abs( p[ −1 ][  −1 ] + p[ nTbS * 2 − 1 ][  −1 ] – 2 * p[ nTbS − 1 ][  −1 ] ) < ( 1  <<  ( BitDepthY − 5 ) ) 
–  Abs( p[ −1 ][  −1 ] + p[ −1 ][ nTbS * 2  − 1 ] – 2 * p[  −1 ][ nTbS − 1 ] ) < ( 1  <<  ( BitDepthY − 5 ) ) 


–  Otherwise, biIntFlag is set equal to 0. 

–  The filtering is performed as follows: 
–  If biIntFlag is equal to 1, the filtered sample values pF[ x ][ y ] with x = −1, y =  −1..63 and x = 0..63, y =  −1 are derived as follows: 
 
pF[  −1 ][  −1 ] = p[ −1 ][  −1 ]    (8-30) 
pF[  −1 ][ y ] = ( ( 63 − y ) * p[  −1 ][  −1 ] + ( y + 1 ) * p[ −1 ][ 63 ] + 32 )  >>  6 for y = 0..62  (8-31) 
pF[  −1 ][ 63 ] = p[ −1 ][ 63 ]    (8-32) 
pF[ x ][ −1 ] = ( ( 63  − x ) * p[  −1 ][  −1 ] + ( x + 1 ) * p[ 63 ][  −1 ] + 32 )  >>  6 for x = 0..62  (8-33) 
pF[ 63 ][  −1 ] = p[ 63 ][ −1 ]    (8-34) 
–  Otherwise (biIntFlag is equal to 0), the f iltered sample values pF[ x ][ y ] with x = −1, y =  −1..nTbS * 2  − 1 and x = 0..nTbS * 2 − 1, y =  −1 are derived as follows: 
pF[  −1 ][  −1 ] = ( p[  −1 ][ 0 ] + 2 * p[ −1 ][  −1 ] + p[ 0 ][  −1 ] + 2 )  >>  2  (8-35) 
pF[  −1 ][ y ] = ( p[ −1 ][ y + 1 ] + 2 * p[  −1 ][ y ] + p[  −1 ][ y − 1 ] + 2 )  >>  2 for y = 0..nTbS * 2 − 2  (8-36) 
pF[  −1 ][ nTbS * 2  − 1 ] = p[  −1 ][ nTbS * 2  − 1 ]   (8-37) 
pF[ x ][ −1 ] = ( p[ x  − 1 ][  −1 ] + 2 * p[ x ][ −1 ] + p[ x + 1 ][ −1 ] + 2 )  >>  2 for x = 0..nTbS * 2  − 2  (8-38) 

pF[ nTbS * 2  − 1 ][  −1 ] = p[ nTbS * 2 − 1 ][  −1 ]   (8-39) 



原创粉丝点击