1. H.264 new feature learning stage
First, we learned the classic document about H.264 overview in Weigand, which covers most of the new features of H.264. Afterwards, we held three meetings to further learn the new features of H.264 in groups.
The content of the inter-frame encoding team is as follows::High-precision motion estimation,The semi-pixel point interpolation prediction and 264 pixel point interpolation prediction of H.264 are analyzed.And also analyzedInterpolation prediction of H.263 semi-pixel pointsFor comparison.Multi-reference frame and 7 macro block modesAnalyzes their basic principles and lists some quick algorithms. Frame B,Describes the new features of frame B.And detailed descriptionsTwo unique macro block modes of B frame: direct mode and multihypothesis Mode.
The content provided by the in-frame encoding team is as follows:Principles of intra-Frame Prediction for 16x16 blocks and 4x4 blocksAnd describes some related optimization problems, including:Prediction mode Encoding,Parallel Optimization Problems,Quick Selection of prediction modes.
The contents of the Quantitative Change Group are as follows:: Used in H.264Block-Based FilteringIn-depth introduction.Principle of integer transformation and quantization in H.264.
Entropy Coding teamThe lecture content includes:UVLC & cavlc,Columbus code encoding method. Cabac: describes the entire process, including binary, context modeling, and arithmetic coding.
Since most of the members first came into contact with H.264, we have left a lot of problems in the learning process at this stage,Fortunately, during each meeting, we discussed and resolved the issues left over from these new features..
In addition, we finally added a lecture. First, we made a summary of the work at this stage to correct some bad learning methods. In addition, it is to make a plan for the next stage of work.
2. H.264 verification model learning stage
Verification Model learning scoreEncoder learning and decoder LearningAmong them, the encoder is our focus and we have carried out four meetings, while the decoder is only one meeting.
The encoder section is explained first.The program framework of the entire encoder focuses on some important functions on the main program line.Then, each of our groups will conduct in-depth learning on their respective parts.
The content of the inter-frame encoding team is as follows::Rate Distortion Optimization,Mainly explainedRate Distortion Optimization Strategy Based on the Laplace Multiplier MethodAnd analyzed the program segments related to the design to the rate distortion optimization.Multi-Reference Frame, AnalyzedImportant data structures and global variables involved in multiple reference framesAnd explainsSave multiple reference frames, refer to frame list initialization, refer to frame selection and other related Code.7 macro block modes, AnalyzedImplementation of Macro Block-level and sub-Macro Block-level motion estimation in the validation Model. The whole process of motion estimation is analyzed first, and then the code segment of the sub-prime point interpolation prediction is analyzed.
In-frame encoding team lectures include::Intra-Frame Prediction,The implementation of intra-frame prediction is deeply analyzed based on the system framework of intra-frame prediction..FMo and PAFF & mbaffThe basic principles and program implementation of FMO and PAFF & mbaff are analyzed respectively.
The contents of the Quantitative Change Group are as follows::Program Implementation of block filtering.Transform Quantization, Explains some of the core functions used, and analyzes the corresponding interfaces and global variables used.
The main topics of the entropy coding team are:: UVLC program implementation. Implement code snippet analysis in three parts of cabac.
Decoder SectionFirst, we explained the code stream structure of H.264, analyzed the main program line of the decoder, and compared it with the main program line of the encoder.
In the learning phase of the validation model, we have learned the H. 264 has a deeper understanding of the new features, and also found and learned some new features that have not been learned in the previous stage, such as rdopt, FMO, and mbaff.
Basic video coding knowledge
- Traditional encoding structure
Sequence encoding structure:
Why is discrete cosine transform (DCT) used in H.264)
Bit Rate Control Technology in Video Communication
Speaking of the Pattern Selection in 264 yesterday, it is designed to serve the bit rate control.
That is, the optimal macro block mode is selected, and the lagerlang-day is used as the optimization model. To control the bit rate.
The goal of encoding control is to achieve the best possible image quality with the minimum computational complexity under the limit of actual transmission bits. Encoding bit rate and computing complexity, and reconstruction of image quality are inseparable.
Evaluation criteria:
Subjective and objective. Subjective refers to the naked eye. Objective refers to MSE and SNR. Generally, the higher the average and minimum SNR values, the better,
The smaller the changes in the SNR value between frames, the better.
The main links of Bit Rate Control include DCT transformation, quantification, buffer adjustment, hierarchical encoding (hierarchical encoding and fine encoding), and Network Status feedback to adjust the encoding.
Video compression standards basically all use DCT transformation, motion compensation encoding and variable-length entropy encoding, because different types of frames (I B P) adopt different encoding methods, this makes the bit numbers produced after each frame image encoding different,
According to the transmission rate, the channel can be divided into two categories: Variable Rate channel (VBR) and fixed rate channel (CBR, the stream streams generated by video encoding cannot be transmitted directly to the channel. Otherwise, tens of millions of channels may be congested or idle, which will reduce the channel utilization.
To match the encoded flow rate and channel rate to improve the channel utilizationIt is necessary to add a buffer between the encoder and the channel.The larger the buffer capacity, the bitstream will be able to better adapt to the channel rate, and the quality of the reconstructed image will also be higher, but at the same time, it also brings greater latency to the decoding end, in real-time video communication, the latency of the end-to-end is often very small, which requires the buffer to be as small as possible. The buffer capacity and latency requirements constitute a conflict, the purpose of Bit Rate Control is to solve this conflict. That is, when the system side has as little distortion as possible, the buffer zone does not overflow when the latency requirement is met.
During video encoding,
The direct factor determining the bit rate of the output code stream is the quantization parameter q after DCT transformation (when rdo is not enabled in the cfg file, the quantization parameter remains unchanged, that is, optimization of non-utilization distortion ). Therefore, the bitrate control method is to adjust the quantization parameter q Based on the channel rate and buffer status. Generally,
According to the bit rate control level, the current bitrate Control Algorithm of encoder is divided into two parts,Frame-based and macro-block-based Bit Rate Control. The lower the control level, the higher the control accuracy, and the higher the algorithm complexity.