HEVC inter-frame Prediction mode acquisition

Source: Internet
Author: User
Yesterday tried to edit the blog post with Markdown, the result of the HTML file generated by the Import blog editor failed, is really depressed. Temporarily do not struggle with what to edit the blog, or to quickly look at the HEVC inter-frame prediction mode bar.
Now I want to know what the prediction pattern is for each CU, so the first thing is to see how the code stores the information. Yesterday, I have listed the functions called by all the patterns that the code CU needs to traverse, and these functions calculate the value of the encoding mode, then select the optimal mode, and the final code will inevitably save the information to decode the decoding side. OK, let's see where they are kept.

Enter the Xcompresscu function, you can see the function passed in the parameters have rpcbestcu,rpctempcu,uidepth,eparentpartsize. The last two parameters are not said, the first two parameters one is to store the parameters of the optimal encoding, the latter for the temporary storage of CU information, presumably can know the information we want in RPCBESTCU this object.

Void Tenccu::xcompresscu (tcomdatacu*& rpcbestcu, tcomdatacu*& rpctempcu, UInt uidepth, PartSize Eparentpartsize)

Within the class of this object, the information required for decoding is stored. The encoded unit can obtain this information. There are many coding information that can be obtained in Tcomdatacu, as long as the function is called. For example, to get the inter-frame encoding mode, call Getpartitionsize (UInt uiidx).

    The size of the code prediction block can be obtained
     enum partsize
    {
	size_2nx2n,           ///< symmetric motion partition,  2nx2n symmetric split
	SIZE_2NXN,            ///< symmetric motion partition,  2Nx N
	size_nx2n,            ///< symmetric motion partition,< c11/>nx2n
	size_nxn,             ///< symmetric motion partition,   Nx N
	size_2nxnu,           ///< Asymmetric motion partition, 2Nx (N/2) + 2Nx (3N/2) asymmetric split
	size_2nxnd,           ///< Asymmetric motion partition, 2Nx ( 3N/2) + 2Nx (N/2)
	size_nlx2n,           ///< Asymmetric motion partition, (N/2) x2n + (3N/2) x2n size_nrx2n
	,           ///< Asymmetric Motion partition, (3N/2) x2n + (N/2) x2n
	Size_none =
    n};

For a chestnut: If the code block is inter2nx2n mode, that is, the traversal of Xcheckrdcostinter (RPCBESTCU, RPCTEMPCU, size_2nx2n, BFMD) is stored. Rpctempcu->setpartsizesubparts (partsize emode, uint uiabspartidx, uint uidepth) The function to call when saving the mode.

      The current stats work is over, and the following is a look at some of the algorithms that 3D-HEVC differs from HEVC.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.