stream media(1)

  1. uMediaPlayer - 小巧的播放软件
    player<===>codec<==>stream protocol stack
  2. stream protocol stack:
    主要是 RTSP
  3. codec
    主要是 iso mpeg4
  4. player
    主要是 qt or others
  5. 关于mpeg4 语法结构
    visual object sequence
        visual object
            video object layer
                video object plane
                    video packet header
                    motion texture picture
    注意,每个层次都有header结构,例如visual object sequece header中有profile-level.从vop开始就是element stream,和vop并行的有vop_with_shortheader,gop,(mesh,fba)
  6. vop即通常的I/P/B/S frame??
  7. 几个名词
    视频宝典,的确不错。[SilkyBible] 视频知识系列
    http://www.dream4ever.org/archive/t-439.html
    http://www.shooter.com.cn/?artid=49&show=1 xvid设置解释,里面有很多名词可以做参考,例如inter4v是mb的一种类型.
    mcbpc - chrominance色度宏快编码模式,参考Table 6,里面含有两个信息:mbtype(参考附录B-1, macroblock type),cbpc还有个是cbpy注意这些可变长编码是如何设计成可进行查表计算的。实际上cpbc 表示macroblock中最后两个block(色度块)是否编码,所以cbpc有两位,对应位为1表示是coded,而cbpy有4位,表示macroblock中前4个block是否是编码块.。是macroblock的参数
    2004年12月21日13:25:36
  8. VLD
    对vld的解码大的流程控制参数为: block 是intra还是inter block,是dc还是ac,reversible_vlc==?,short_video_header==0?这四个参数决定了采用的码表.流程为:
    对于DC解码
    if(short_video_header==0)
    {
    //difference code
    //variable length dc_coeff_size + fixed size code ,table B-13,B-14,B-15
    // for example 
    }

    else
    {
    //not difference code,fixed 8bits
    }

    对于AC
    //for dc in non intra block and ac in all block
    //generate a event(last,run,level)
    //last table code bit s denotes level's sign
    if(short_video_header==1)
    {
    //B-17
    }

    else
    {
    //difference between intra and inter
    if(intra)
    {
    if(reversible_vlc==1)
    {
    //B-23
    }

    else
    {
    //B-16
    }

    }

    }

    2004年12月22日
  9. mb_type中的inter_q,intra_q表示可对量化的台阶进行微调,4v,表示有4个motion_vector.
    2004年12月27日11:00:44
  10. progressive and interlaced
    两个比较好的 术语解释
    http://gb.doom9.org/index.html?/glossary.htm
    http://gb.doom9.org/index.html?/video-basics.htm
  11. interploation的过程受 quarter_pixel精度和round_control的控制
    half sample mode interpolation很简单,需要注意的是计算interpolation时候src的定位(是以half sample为单位的,所以取src的时候需要右移1位,但在interpolation时不需要移位)
    在motion vector取预测的时候,Median是取三个candidate中中间的那个值而不是取平均值
    注意uv 的运动向量预测是取4个lumine block之和做处理的。
      uv_dx = (uv_dx >> 1) + roundtab_79[uv_dx & 0x3];
      uv_dy = (uv_dy >> 1) + roundtab_79[uv_dy & 0x3];
      roundtab_79还有另一个表是根据
    /*****************************************************************************
     * Modified rounding tables
     * Original tables see ISO spec tables 7-6 -> 7-9
     ****************************************************************************/
  12. const uint32_t roundtab[16] =
    {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 };
    变换而来的,roundtab_79是除2后应加的数值,同理roundtab_76是除8后应加的数值

posted on 2004-08-10 15:21  embed  阅读(1034)  评论(0编辑  收藏  举报

导航