Pre-encoding for high efficiency video coding
An HEVC encoder is described that utilizes pre-compression, or pre-encoding, to improve the rate control at a relatively small increase in computational complexity.
1. An encoder for HEVC encoding comprising:
a. a processing unit for executing instructions; and
b. a memory unit for storing instructions, which when executed by the processing unit configure the encoder to:
i. estimate an initial encoding parameter value for at least a portion of a frame being encoded, the initial encoding parameter value being one of λ and quantization parameter (QP);
ii. adjust the initial encoding parameter value by fast-encoding the portion of the frame using a reduced subset of possible encoding modes; and
iii. encode the portion of the frame using the adjusted encoding parameter value and a larger set of possible encoding modes then in the reduced subset;
wherein the HEVC encoding is a constant bit rate (CBR) HEVC encoding, and wherein the initial encoding parameter is λ and is estimated using an R-λ model and is adjusted based on repeated fast-encodings according to:
λ=√{square root over (λ tow ×λ high )},
where:
λ low is a λ value determined from the fast-encodings that causes a bitrate under-shoot; and
λ high is a λ value determined from the fast-encodings that causes a bitrate over-shoot.
2. The encoder of claim 1 , wherein the reduced subset of possible encoding modes use a coding unit (CU) size of 32×32 or 16×16.
3. The encoder of claim 2 , wherein the reduced subset of possible encoding modes use the CU size of 32×32.
4. The encoder of claim 1 , wherein the fast-encoding is associated with a rate value (R pre ) and a distortion value (D pre ), where the encoding is associated with a rate value (R full ) and a distortion value of (D full ) with:
a. R full =k R R pre ; and
b. D full =k D D pre ,
c. k R and k D are respective constants.
5. The encoder of claim 4 , wherein
a. k R =0.93; and
b. k D =0.93.
6. The encoder of claim 1 , wherein the fast-encodings determine the λ value according to:
a. λ=k 1 αR β +k 2 ae bR ,
b. where:
c. k 1 =10×bits per pixel (bpp); and
d. k 2 =1−(k 1 clipped to [0.0, 1.0]).
7. The encoder of claim 1 , wherein the HEVC encoding is a delta-QP (DQP) HEVC encoding.
8. The encoder of claim 7 , wherein the initial encoding parameter is QP, and the fast-encoding uses only 32×32 modes or only 16×16 modes.
9. The encoder of claim 1 , wherein the HEVC encoding is a constant quality (QP) HEVC encoding.
10. The encoder of claim 9 , wherein the initial encoding parameter is QP, wherein the initial QP value is adjusted by repeated fast-encodings based on a peak signal to noise ratio (PSNR) error.
11. The encoder of claim 1 , wherein the fast-encoding is used to determine a rate value (R pre ), and the instructions, when executed by the processing unit further configure the encoder to:
a detect a scene cut when:
b. R pre >C×R target ,
c. where:
d. C is a constant; and
e. R target is a target bit rate for the fast encoding.
12. The encoder of claim 11 , wherein C is selected to be between 5 and 8.
13. The encoder of claim 1 , wherein the results of the fast encoding are used in the encoding when the coding unit (CU) sizes of the fast encoding and the encoding match.
14. The encoder of claim 1 , wherein the portion of the frame being encoded is a largest coding unit (LCU) of the frame.
15. A method for HEVC encoding comprising:
a. estimating an initial encoding parameter value for at least a portion of a frame being encoded, the initial encoding parameter value being one of λ and quantization parameter (QP);
b. adjusting the initial encoding parameter value by fast-encoding the portion of the frame using a reduced subset of possible encoding modes; and
c. encoding the portion of the frame using the adjusted encoding parameter value and a larger set of possible encoding modes then in the reduced subset;
wherein the HEVC encoding is a constant bit rate (CBR) HEVC encoding, and wherein the initial encoding parameter is λ and is estimated using an R-λ model and is adjusted based on repeated fast-encodings according to:
λ=√{square root over (λ low ×λ high )},
where:
λ low is a λ value determined from the fast-encodings that causes a bitrate under-shoot, and
λ high is a λ value determined from the fast-encodings that causes a bitrate over-shoot.
16. The method of claim 15 , wherein the reduced subset of possible encoding modes use the CU size of 32×32.
17. The method of claim 15 , wherein the portion of the frame being encoded is a largest coding unit (LCU) of the frame.