CN1233171C - A simplified loop filtering method for video coding - Google Patents

A simplified loop filtering method for video coding Download PDF

Info

Publication number
CN1233171C
CN1233171C CN 200410000671 CN200410000671A CN1233171C CN 1233171 C CN1233171 C CN 1233171C CN 200410000671 CN200410000671 CN 200410000671 CN 200410000671 A CN200410000671 A CN 200410000671A CN 1233171 C CN1233171 C CN 1233171C
Authority
CN
China
Prior art keywords
filtering
video
frame
filter
coding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 200410000671
Other languages
Chinese (zh)
Other versions
CN1558680A (en
Inventor
孔德慧
王雁来
尹宝才
孙艳丰
张楠
孙磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN 200410000671 priority Critical patent/CN1233171C/en
Publication of CN1558680A publication Critical patent/CN1558680A/en
Application granted granted Critical
Publication of CN1233171C publication Critical patent/CN1233171C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The present invention relates to a simple loop filtering method for a video coding technique, which relates to the field of digital video coding techniques. In the method, video data flow which is obtained from a camera and a video collecting card is inputted into a computer; the video data flow which is orderly transformed and quantified in the computer is fed back to an input section after passing through a video processing subprogram; the video data flow continues to be transformed and quantified; then, entropy coding is made; at last, the video data flow which is coded is outputted. The video processing subprogram mainly carries out motion compensation and prediction to video on the basis of a JVT video coding technique. The present invention is characterized in that a filtering intensity judging method and a filter in the original loop filter are changed by a loop filtering subprogram; the current filtering strength is determined by distinguishing the types of different coded frames; simultaneously, one simple filter is used for filtering the boundary of a coding block. The method can eliminate block effect which is brought by block change coding. The present invention has the characteristics of high coding efficiency, favorable effect, simple hardware realization, etc.

Description

A kind of simplification loop circuit filtering method that is used for video coding
Technical field
Patent of the present invention relates to the computer digit technical field of video coding, at be video coding system.Concrete research summary of the invention is the loop filtering technology.
Background technology
Existing video image before through transmission, needs earlier video to be held compressed encoding, just can transmit then.The quality of video coding technique will directly influence decoded video effect.At present, domestic and international most of technical schemes of relevant video coding all are based on MPEG4 or standard H.26L.Wherein the video encoding standard provided of JVT (this tissue is to unite an audio and video standard tissue that forms by ITU-and these two International Standards Organization of ISO/IEC JTC1) then is a kind of coding standard technology all the fashion both at home and abroad at present.
In the video coding technique that JVT provided, relevant loop filtering technology is as described below: adopt the circle filtering interpolating function that obtains through statistics, and, formulate different filtering strengths and corresponding with it filter respectively at different frame types and different type of prediction.The disadvantage of this technology is exactly the filter more complicated, and hardware implementation cost is higher.
Summary of the invention
Main purpose of the present invention is to provide a kind of loop filtering scheme that is used for the simplification of video coding, this scheme not only can be eliminated well because piecemeal changes the blocking effect that coding is brought, to reach very high code efficiency and the effect of better encoding, and the hardware realization is fairly simple, and cost is lower.
The present invention has mainly changed the filter of loop filtering and the decision method of filtering strength.Its concrete innovative point is directly to judge filtering strength by the judgment frame type, has reduced the hardware implementation complexity of filter simultaneously significantly.Comprised following technology contents in the scheme:
1, simple filter: the filter interpolation calculation coefficient that the present invention adopts is 1,2,1.Utilize the input system value, according to 1,2,1 specified ratio, with the interpolation result that calculates be substituted into the relevant position in video image.
2, the judgement of filtering strength: since the filtering strength that the scheme of current JVT is judged current block by the interpolation of motion vector not only hardware realize cumbersomely, and adopted two kinds of diverse filters.The present invention is only by judging that the present frame type decides corresponding filtering strength.Under the different situation of filtering strength, use same filter to realize by different filter ranges.If the I frame, then formulating filtering strength is 2; If the P frame, then formulating filtering strength is 1; All the other filtering strengths are 0.
3, the association between filtering strength and the filter: if filtering strength is 2, then filter length is two pairs of pixels; If filtering strength is 1, then filter length is a pair of pixel; If filtering strength is 0, then not filtering.
Technical scheme of the present invention such as Fig. 2-shown in Figure 5.Be in method for video coding, to have adopted a kind of simple loop filtering to finish based on video content; This be used for video coding loop circuit filtering method, its video coding is to obtain original video stream as input by video camera, enter computer by becoming video data stream behind the video frequency collection card, and adopt the video coding technique of 6.0 versions that JVT provides, handle and computing by computer, its method step is: computer system is accepted the original video stream that capture card is handled well, through behind the transform and quantization, and feed back to the importation again by resulting data flow after the Video processing subprogram, mainly doing coding proofreaies and correct, continue to participate in transform and quantization, do entropy coding then, the last good video data stream of output encoder; Described Video processing subprogram mainly is that video is carried out motion compensation and prediction, its method step is: after video is taken turns doing new inverse quantization, inverse transformation processing, enter the circle filtering subprogram, frame of video after the stores processor then, to frame of video take exercises compensation and estimation, the resulting result of motion compensation is used for auxiliaring coding, feeds back in the circle filtering subprogram, make estimation at last, the data that obtain are as the output of subsystem;
This method is characterised in that the method that is adopted is on the basis of JVT video coding technique in aforesaid circle filtering subprogram, directly determine corresponding filtering strength video coding by judging the present frame type; Under the different situation of filtering strength, use same filter to realize by different filter ranges, if the I frame, then specifying filtering strength is 2, if the P frame, then specifying filtering strength is 1, all the other filtering strengths are 0; The filter interpolation calculation coefficient that is adopted is 1,2,1, utilizes the input system value, and the specified ratio according to 1,2,1 is substituted into the interpolation result that calculates in the relevant position of video image; And proposed to come the boundary pixel of encoding block is carried out filtering with a filter, if filtering strength is 2, then filter length is two pairs of pixels, if filtering strength is 1, then filter length is a pair of pixel, if filtering strength is 0, and then not filtering.
In the aforesaid circle filtering subprogram of the present invention is on the basis of JVT video coding technique, defined the filtering strength of oneself, directly determine filtering strength by the judgment frame type, and proposed a foolproof filter and be used for the boundary pixel of encoding block is carried out filtering; Method step according to the performed circle filtering program of circle filtering method is as follows:
1) type of judgement current encoded frame, if be the B frame, promptly bi-directional predicted frames is not then done circle filtering, withdraws from the circle filtering subprogram; If be not the B frame, then carry out next step;
2) judge the type of current encoded frame, if for the I frame, be the infra-frame prediction frame, then filtering strength is 2; If be the P frame, be predictive frame, then filtering strength is 1;
3) if filtering strength is 2, then filter range is two pairs of pixels on border; If filtering strength is 1, then filter range is a pair of pixel on border; Using filter factor is 1,2,1 filter, weight be 1 be respectively the left and right sides adjoint point of current pixel point, weight be 2 then be current pixel point.
Wherein, the computing formula of described circle filtering subprogram median filter is:
When boundary intensity is 2, and the pixel value difference of p0 and q0 is greater than certain threshold value, then: (P0, P1, q0, q1 are respectively two pairs of pixels on encoding block border)
P0=(p1+2×p0+q0+2)/4;
P1=(p2+2×p1+p0+2)/4;
If the pixel value difference of p0 and q0 is less than this threshold value, then:
P0=(2×p1+p0+q0+2)/4;
P1=(p2+2×p1+p0+2)/4;
As for q0, q1 then handles according to above rule equally.
When boundary intensity is 1:
P0=(p1+2×p0+q0+2)/4;
As for q0, then handle according to above rule equally.
Wherein, q1 and p1 do not make Filtering Processing.
In the formula, p0, p1, p2, q0, q1, q2 are respectively two pairs of pixels on encoding block border.Wherein, p0 is a current pixel point, and p1 is the neighbor on the p0 left side, and p2 is the neighbor on the p1 left side; Q0 is the adjacent pixels point on p0 point the right, and q1 is the neighbor on q0 the right, and q2 is the neighbor on q1 the right.P0 and P1 have represented p0 and p1 pixel through filtered end value respectively, and its position is identical with p1 with p0.
Experiment effect of the present invention is remarkable, can effectively improve the code efficiency of digital video.
Description of drawings:
Fig. 1: system block diagram;
Fig. 2: computer code flow chart;
Fig. 3: Video processing subroutine flow chart;
Fig. 4: circle filtering theory diagram;
Fig. 5: circle filtering subroutine flow chart;
Embodiment:
Dispose one embodiment of the present of invention according to Fig. 1-Fig. 5 and be used for explanation.Computer is Pentium 3 above CPU in this example, the above hard disk of 10G, the common Desktop Computer with general pattern disposal ability.Coding standard 6.0 versions that adopt existing JVT to provide, conversion described in the flow chart and quantification are respectively:
The form of video flowing is generally yuv format, and (be brightness, colourity and saturation component, its ratio generally is 4: 2: 2 or 4: 2: 0), the variation of employing is generally DCT and changes.At present, H.264 in the integer transform and the quantization method of 4 * 4 residual blocks be specially:
1, integer transform and quantification
For 4 * 4 residual error data behind motion compensated prediction or the infra-frame prediction, carry out following conversion:
Y = C f X C f T ⊗ E f = ( 1 1 1 1 2 1 - 1 - 2 1 - 1 - 1 1 1 - 2 2 - 1 X 1 2 1 1 1 1 - 1 - 2 1 - 1 - 1 2 1 - 2 1 - 1 ) ⊗ a 2 ab / 2 a 2 ab / 2 ab / 2 b 2 / 4 ab / 2 b 2 / 4 a 2 ab / 2 a 2 ab / 2 ab / 2 b 2 / 4 ab / 2 b 2 / 4
a = 1 2 , b = 2 5 . C fXC f TBe the core of two-dimensional transform, E fIt is the zoom factor matrix.Operator  represent after each conversion coefficient respectively with matrix E fIn the zoom factor of same position multiply each other (scalar multiplication rather than matrix multiplication).
More than the just theoretical explanation of the direct transform of integer transform in application H.264, is being carried out two-dimensional core conversion C fXC f TAfter, the convergent-divergent process combines with quantizing, and has so just reduced operand.
H.264 the quantization method in is as follows:
Y q(i,j)=sign{Y(i,j)}(|Y(i,j)|A(Q M,i,j)+f)>>(15+Q E)
Q M≡QPmod6,Q E≡QP/6,A(Q M,i,j)=M(Q M,r)。When r=0, (i, j)={ (0,0), (0,2), (2,0), (2,2) }, when r=1, (i, j)={ (1,1), (1,3), (3,1), (3,3) }, when r=2, (i j) is other value.M (Q M, value r) is as follows:
M = 13107 5243 8066 11916 4660 7490 10082 4194 6554 9362 3647 5825 8192 3355 5243 7282 2893 4559
In decoding end, the method for inverse quantization is:
Y r′(i,j)=Y q(i,j)B(Q M,i,j)<<Q E
Y r(i,j)=Y r′(i,j)>>6
B(Q M,i,j)=S(Q M,r)。When r=0, (i, j)={ (0,0), (0,2), (2,0), (2,2) }, when r=1, (i, j)={ (1,1), (1,3), (3,1), (3,3) }, when r=2, (i j) is other value.S (Q M, value r) is as follows:
S = 10 16 13 11 18 14 13 20 16 14 23 18 16 25 20 18 29 23
The inverse transformation process is:
X ′ = C i T ( Y ⊗ E i ) C i = 1 1 1 1 / 2 1 1 / 2 - 1 - 1 1 - 1 / 2 - 1 1 1 - 1 1 - 1 / 2 ( Y r ⊗ a 2 ab a 2 ab ab b 2 ab b 2 a 2 ab a 2 ab ab b 2 ab b 2 ) 1 1 1 1 1 1 / 2 - 1 / 2 - 1 1 - 1 - 1 1 1 / 2 - 1 1 - 1 / 2
a = 1 2 , b 2 5 ;
C i TYC iBe the core of two-dimensional transform, E iIt is the zoom factor matrix.
More than the just theoretical explanation of the inverse transformation of integer transform in application H.264, is being carried out two-dimensional core inverse transformation C i TYC iBefore, the convergent-divergent process combines with quantification, has so just reduced operand.
In like manner, in inverse quantization that relates to the back and anti-change, then be the inverse transformation of the above process just.
Program to this link of circle filtering is replaced fully.Here revised the interpolating function of filter, and revised filtering strength later and judge way.Specific embodiments is:
The neighbor filtering signal of 1 bounds:
Each macro block of video image is made interpolation to adjacent 3 pairs of pixels when doing circle filtering.Particular location concerns as shown in the figure:
p2 p1 p0 q0 q1 q2
。P0 among the figure, p1, p2, q0, q1,6 location of pixels of q2 presentation code block boundary.
The formulation of 2 filtering strengths:
Directly judge the type of current encoded frame, if alternating binary coding frame (B frame), then filtering strength is 0, does not do filtering.If current encoded frame is predictive frame (a P frame), then filtering strength is 1, and a pair of pixel on border is carried out filtering.If current encoded frame is intracoded frame (an I frame), then filtering strength is 2, and two pairs of pixels on border are carried out filtering.
3 summaries
The consideration of comprehensive above several factors, specific implementation is:
At first, at different current video coded frame, by different filtering strengths, concrete filtering is as follows:
● when boundary intensity is 2, and p0 and (pixel value difference of q0 is greater than certain threshold value M, then:
P0=(p1+2×p0+q0+2)/4;
P1=(p2+2×p1+p0+2)/4;
If the pixel value difference of p0 and q0 is less than this threshold value M, then:
P0=(2×p1+p0+q0+2)/4;
P1=(p2+2×p1+p0+2)/4;
As for q0, q1 then handles according to above rule equally.
● when boundary intensity is 1:
P0=(p1+2×p0+q0+2)/4;
As for q0, then handle according to above rule equally.
Wherein, q1 and p1 do not make Filtering Processing.
The present invention is remarkable through repeatedly testing its effect, and concrete experiment effect data are as follows:
The test result of HD video sequence Flamingo.yuv: (frame per second: 30Hz, 20 frames, 1920*1088)
QP=27 QP=30 QP=35 QP=40
PSNR Bitrate PSNR Bitrate PSNR Bitrate PSNR Bitrate
Existing scheme 39.93 52462.49 38.31 40684.97 35.62 25676.37 33.04 15419.32
Improvement project 39.94 52526.29 38.32 40743.17 35.63 25687.28 33.05 15409.22
The test result of HD video sequence Harbour.yuv: (frame per second: 30Hz, 300 frames, 1280*720)
QP=27 QP=30 QP=35 QP=40
PSNR Bitrate PSNR Bitrate PSNR Bitrate PSNR Bitrate
Existing scheme 39.99 16819.39 38.16 11336.97 35.71 5668.35 33.74 3226.02
Improvement project 39.98 16780.33 38.15 11313.00 35.70 5646.21 33.73 3210.45

Claims (3)

1, a kind of be used for video coding loop circuit filtering method, its video coding is to obtain original video stream as input by video camera, enter computer by becoming video data stream behind the video frequency collection card, and adopt the video coding technique of 6.0 versions that joint video team provides, handle and computing by computer, its method step is: computer system is accepted the original video stream that capture card is handled well, through behind the transform and quantization, and feed back to the importation again by resulting data flow after the Video processing subprogram, mainly doing coding proofreaies and correct, continue to participate in transform and quantization, do entropy coding then, the last good video data stream of output encoder; Described Video processing subprogram mainly is that video is carried out motion compensation and prediction, its method step is: after video is taken turns doing new inverse quantization, inverse transformation processing, enter the circle filtering subprogram, frame of video after the stores processor then, to frame of video take exercises compensation and estimation, the resulting result of motion compensation is used for auxiliaring coding, feeds back in the circle filtering subprogram, make estimation at last, the data that obtain are as the output of subsystem;
The invention is characterized in that the method that is adopted is on the basis of JVT video coding technique in aforesaid circle filtering subprogram, directly determine corresponding filtering strength video coding by judging the present frame type; Under the different situation of filtering strength, use same filter to realize by different filter ranges, if the I frame, i.e. infra-frame prediction frame, then specifying filtering strength is 2, if the P frame, i.e. predictive frame, then specifying filtering strength is 1, all the other filtering strengths are 0; The filter interpolation calculation coefficient that is adopted is 1,2,1, utilizes the input system value, the specified ratio according to 1,2,1, with the interpolation result that calculates be substituted into the relevant position in video image; And proposed to come the boundary pixel of encoding block is carried out filtering with a filter, if filtering strength is 2, then filter length is two pairs of pixels, if filtering strength is 1, then filter length is a pair of pixel, if filtering strength is 0, and then not filtering.
2, according to claim 1 a kind of be used for video coding loop circuit filtering method, it is characterized in that, as follows according to the method step of the performed circle filtering program of circle filtering method:
1) type of judgement current encoded frame, if be the B frame, promptly bi-directional predicted frames is not then done circle filtering, withdraws from the circle filtering subprogram; If be not the B frame, then carry out next step;
2) judge the type of current encoded frame, if for the I frame, be the infra-frame prediction frame, then filtering strength is 2; If be the P frame, be predictive frame, then filtering strength is 1;
3) if filtering strength is 2, then filter range is two pairs of pixels on border; If filtering strength is 1, then filter range is a pair of pixel on border; Using filter factor is 1,2,1 filter, weight be 1 be respectively the left and right sides adjoint point of current pixel point, weight be 2 then be current pixel point.
3, according to claim 1 a kind of be used for video coding loop circuit filtering method, it is characterized in that the technical parameter of described circle filtering subprogram median filter is:
The computing formula of filter is:
1) when boundary intensity is 2, and the pixel value difference of p0 and q0 is greater than certain threshold value M, then:
P0=(p1+2×p0+q0+2)/4;
P1=(p2+2×p1+p0+2)/4;
If the pixel value difference of p0 and q0 is less than this threshold value M, then:
P0=(2×p1+p0+q0+2)/4;
P1=(p2+2×p1+p0+2)/4;
As for q0, q1 then handles according to above rule equally;
2) when boundary intensity is 1:
P0=(p1+2×p0+q0+2)/4;
As for q0, then handle according to above rule equally;
Wherein, q1 and p1 do not make Filtering Processing;
In the formula, p0, p1, p2, q0, q1, q2 are respectively two pairs of pixels on encoding block border, and wherein, p0 is a current pixel point, and p1 is the neighbor on the p0 left side, and p2 is the neighbor on the p1 left side; Q0 is the adjacent pixels point on p0 point the right, and q1 is the neighbor on q0 the right, and q2 is the neighbor on q1 the right; P0 and P1 have represented p0 and p1 pixel through filtered end value respectively, and its position is identical with pl with p0.
CN 200410000671 2004-01-16 2004-01-16 A simplified loop filtering method for video coding Expired - Fee Related CN1233171C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200410000671 CN1233171C (en) 2004-01-16 2004-01-16 A simplified loop filtering method for video coding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200410000671 CN1233171C (en) 2004-01-16 2004-01-16 A simplified loop filtering method for video coding

Publications (2)

Publication Number Publication Date
CN1558680A CN1558680A (en) 2004-12-29
CN1233171C true CN1233171C (en) 2005-12-21

Family

ID=34350451

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200410000671 Expired - Fee Related CN1233171C (en) 2004-01-16 2004-01-16 A simplified loop filtering method for video coding

Country Status (1)

Country Link
CN (1) CN1233171C (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI308841B (en) * 2005-01-24 2009-04-11 Via Tech Inc Method and system for reducing the bandwidth access in video encoding
US7792385B2 (en) * 2005-01-25 2010-09-07 Globalfoundries Inc. Scratch pad for storing intermediate loop filter data
CN100438629C (en) * 2005-09-19 2008-11-26 华为技术有限公司 Loop filtering method in image coding processing
WO2007081838A1 (en) * 2006-01-09 2007-07-19 Thomson Licensing Method and apparatus for providing reduced resolution update mode for multi-view video coding
TWI444047B (en) * 2006-06-16 2014-07-01 Via Tech Inc Deblockings filter for video decoding , video decoders and graphic processing units
CN101207812B (en) * 2007-12-10 2010-04-07 海信集团有限公司 Method for filtering video loop
CN101472172B (en) * 2007-12-29 2012-04-04 安凯(广州)微电子技术有限公司 Method for processing filtering previous data of video decode as well as decoder
JP5597968B2 (en) 2009-07-01 2014-10-01 ソニー株式会社 Image processing apparatus and method, program, and recording medium
CN102098515B (en) * 2011-02-18 2012-12-12 杭州海康威视数字技术股份有限公司 Realizing method of loop filtering parallel
CN102857746B (en) * 2011-06-28 2017-03-29 中兴通讯股份有限公司 Loop filtering decoding method and device
CN104780383B (en) * 2015-02-02 2017-09-19 杭州电子科技大学 A kind of 3D HEVC multi-resolution video coding methods
EP3379820B1 (en) 2017-03-24 2020-01-15 Axis AB Controller, video camera, and method for controlling a video camera
EP3379830B1 (en) 2017-03-24 2020-05-13 Axis AB A method, a video encoder, and a video camera for encoding a video stream
CN111064958B (en) * 2019-12-28 2021-03-30 复旦大学 Low-complexity neural network filtering algorithm for B frame and P frame

Also Published As

Publication number Publication date
CN1558680A (en) 2004-12-29

Similar Documents

Publication Publication Date Title
CN1233171C (en) A simplified loop filtering method for video coding
CN100348051C (en) An enhanced in-frame predictive mode coding method
CN1225127C (en) A coding/decoding end bothway prediction method for video coding
CN1933601A (en) Method of and apparatus for lossless video encoding and decoding
CN1809168A (en) Prediction intra-mode selection in an encoder
CN1607836A (en) De-blocking filter processing apparatus and de-blocking filter processing method
CN1431828A (en) Optimum scanning method for change coefficient in coding/decoding image and video
CN1383684A (en) Color video encoding and decoding method
CN1287598C (en) Filtering method and apparatus for removing blocking artifacts and/or ringing noise
CN1805546A (en) Apparatus and method for compensating images in display device
CN106303521B (en) A kind of HEVC Rate-distortion optimization method based on sensitivity of awareness
CN1183491C (en) Method and system for compressing image data with wavelet transform and quadtree coding for telecommunication
CN101047859A (en) Image encoding apparatus and decoding apparatus
CN1275469C (en) Method for pridicting sortable complex in frame
CN1777285A (en) Video/image processing devices and methods
CN102572435A (en) Compressive sampling-based (CS-based) video coding/decoding system and method thereof
TW200307463A (en) Animation encoding method, animation encoding device, and animation encoding processing program
CN1794816A (en) Moving picture compression encoding method, apparatus and program
CN1213613C (en) Prediction method and apparatus for motion vector in video encoding/decoding
CN1675929A (en) Method and apparatus for reducing computational complexity in video encoders
CN1193621C (en) Approximate IDCT for scalable video and image decoding of computational complexity
CN1878308A (en) Orthogonal transformation method for image and video compression
CN1310190C (en) Discrete wavelet transform unit and method for adaptively encoding still image based on energy of each block
CN1757238A (en) Method for coding a video image taking into account the part relating to a component of a movement vector
CN1240025C (en) Video coding method based on video content

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20051221

Termination date: 20130116

CF01 Termination of patent right due to non-payment of annual fee