FMUSER Wirless Transmit Video And Audio More Easier !

[email protected] WhatsApp +8618078869184
Language

    [H.264 / AVC video encoding technology] Twelve, analyze the macroblock structure of H.264 code stream (below): H.264 intra-frame encoding macroblock prediction structure

     

    "H.264 / AVC Video Code Technology Detailed" video tutorial has been on "CSDN", which details the background, standard protocol and implementation of H.264, and through a practical engineering form to H.264 Standard analysis and implementation, welcome to watch! "The paper is very shallow, perceived this matter", only the standard document is operated in the form of code, in order to have a sufficient understanding and understanding of the video compression coding standards! Link address: H.264 / AVC video codec technology detailed GitHub code address: Click here In the video stream encoded in the H.264 format, the macroblock structure inevitably contains the prediction structure (except I_PCM mode), which contains information such as pixel block prediction mode. For macroblocks of different prediction modes, their prediction structures are different. From the upper macroblock structure, it can be seen that for partial mode, the prediction information is saved in the MB_PRED () structure, and the SUB_MB_PRED () structure is used for another part mode. In our version of the H.264 Analyzer SimpleH264Analyzer project, the first macroblock of the first IDR frame we analyzed, and its MB_TYPE is i_nxn. In fact, for all INTRA macroblocks other than I_PCM modes, the prediction structure uses the MB_PRED () structure. In the standard document, the definition of MB_PRED () is as shown in the following table (just in Intra mode): As can be seen from the table, the structure of the Intra prediction mode mainly has two groups, indicating 4 × 4 and 8 × 8 mode, respectively, each group contains two elements, respectively represents the prediction mode identification bit and prediction mode value, and the last Chromaticity component prediction mode. prev_intra4x4_pred_mode_flag and prev_intra8x8_pred_mode_flag: Indicates the intra prediction mode predictive identifier. If the identification bit is 1, the predicted value indicating the intra prediction mode is the actual mode, otherwise it is necessary to transfer the actual intra prediction mode. Prev_intra4x4_pred_mode_flag and prev_intra8x8_pred_mode_flag: Indicates an additional actual intra prediction mode. INTRA_CHROMA_PRED_MODE: indicates the prediction mode of the chroma component, the value ranges [0, 3], represents DC, horizontal, vertical and planar mode, respectively. EtOAc EtOAc EtOAc Code Different: IF (M_MB_TYPE == 25) { // to do: i-pcm mode ... } ELSE IF (m_MB_type == 0) { // intra_nxn mode ... IF (M_PPS_ACTIVE->GET_TRANSFORM_8X8_MODE_FLAG ()) { M_Transform_Size_8x8_flag = get_bit_at_position (m_psoDB, m_bypeoffset, m_bitoffset); } // Get Prediction-block Num ... IF (m_transform_size_8x8_flag) { // using intra_8x8 m_pred_struct = new intrapredstruct [4]; For (int lauma8x8blkidx = 0; luma8x8blkidx < 4; luma8x8blkidx ++) { m_pred_struct [luma8x8blkidx] .block_mode = 1; M_PRED_STRUCT [LUMA8X8BLKIDX] .prev_intra_pred_mode_flag = get_bit_at_position (m_psoDB, m_bypeoffset, m_bitoffset); IF (! m_pred_struct [luma8x8blkidx] .prev_intra_pred_mode_flag) { M_PRED_STRUCT [LUMA8X8BLKIDX] .REM_INTRA_PRED_MODE = GET_UINT_CODE_NUM (m_psoDB, m_bypeoffset, m_bitoffset, 3); } } } Else { // using intra_4x4 m_pred_struct = new intrapredstruct [16]; For (int LUMA4X4BLKIDX = 0; luma4x4blkidx < 16; luma4x4blkidx ++) { m_pred_struct [luma4x4blkidx] .block_mode = 0; M_PRED_STRUCT [LUMA4X4BLKIDX] .prev_intra_pred_mode_flag = get_bit_at_position (m_psoDB, m_bypeoffset, m_bitoffset); IF (! m_pred_struct [luma4x4blkidx] .prev_intra_pred_mode_flag) { M_PRED_STRUCT [LUMA4X4BLKIDX] .REM_INTRA_PRED_MODE = GET_UINT_CODE_NUM (m_psoDB, m_bypeoffset, m_bitoffset, 3); } } } // intra_chroma_pred_mode M_Intra_chroma_pred_mode = get_uev_code_num (m_psoDB, m_bypeoffset, m_bitoffset); } Else { // to do: intra_16x16 mode } 1234567891011121314151617181920212223242526272829303344454644443444546474849 More detailed information can be downloaded to Github Download the full project: https://github.com/yinwenjie/simpleh264analyzer

     

     

     

     

    List all Question

    Nickname

    Email

    Questions

    Our other product:

    Professional FM Radio Station Equipment Package

     



     

    Hotel IPTV Solution

     


      Enter email  to get a surprise

      fmuser.org

      es.fmuser.org
      it.fmuser.org
      fr.fmuser.org
      de.fmuser.org
      af.fmuser.org ->Afrikaans
      sq.fmuser.org ->Albanian
      ar.fmuser.org ->Arabic
      hy.fmuser.org ->Armenian
      az.fmuser.org ->Azerbaijani
      eu.fmuser.org ->Basque
      be.fmuser.org ->Belarusian
      bg.fmuser.org ->Bulgarian
      ca.fmuser.org ->Catalan
      zh-CN.fmuser.org ->Chinese (Simplified)
      zh-TW.fmuser.org ->Chinese (Traditional)
      hr.fmuser.org ->Croatian
      cs.fmuser.org ->Czech
      da.fmuser.org ->Danish
      nl.fmuser.org ->Dutch
      et.fmuser.org ->Estonian
      tl.fmuser.org ->Filipino
      fi.fmuser.org ->Finnish
      fr.fmuser.org ->French
      gl.fmuser.org ->Galician
      ka.fmuser.org ->Georgian
      de.fmuser.org ->German
      el.fmuser.org ->Greek
      ht.fmuser.org ->Haitian Creole
      iw.fmuser.org ->Hebrew
      hi.fmuser.org ->Hindi
      hu.fmuser.org ->Hungarian
      is.fmuser.org ->Icelandic
      id.fmuser.org ->Indonesian
      ga.fmuser.org ->Irish
      it.fmuser.org ->Italian
      ja.fmuser.org ->Japanese
      ko.fmuser.org ->Korean
      lv.fmuser.org ->Latvian
      lt.fmuser.org ->Lithuanian
      mk.fmuser.org ->Macedonian
      ms.fmuser.org ->Malay
      mt.fmuser.org ->Maltese
      no.fmuser.org ->Norwegian
      fa.fmuser.org ->Persian
      pl.fmuser.org ->Polish
      pt.fmuser.org ->Portuguese
      ro.fmuser.org ->Romanian
      ru.fmuser.org ->Russian
      sr.fmuser.org ->Serbian
      sk.fmuser.org ->Slovak
      sl.fmuser.org ->Slovenian
      es.fmuser.org ->Spanish
      sw.fmuser.org ->Swahili
      sv.fmuser.org ->Swedish
      th.fmuser.org ->Thai
      tr.fmuser.org ->Turkish
      uk.fmuser.org ->Ukrainian
      ur.fmuser.org ->Urdu
      vi.fmuser.org ->Vietnamese
      cy.fmuser.org ->Welsh
      yi.fmuser.org ->Yiddish

       
  •  

    FMUSER Wirless Transmit Video And Audio More Easier !

  • Contact

    Address:
    No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou China 510620

    E-mail:
    [email protected]

    Tel / WhatApps:
    +8618078869184

  • Categories

  • Newsletter

    FIRST OR FULL NAME

    E-mail

  • paypal solution  Western UnionBank OF China
    E-mail:[email protected]   WhatsApp:+8618078869184   Skype:sky198710021 Chat with me
    Copyright 2006-2020 Powered By www.fmuser.org

    Contact Us