燕青专栏

读书笔记及技术探讨

用户操作
[即时聊天] [发私信] [加为好友]
燕青ID:hello_wyq
117486次访问,排名739好友1人,关注者9
hello_wyq的文章
原创 83 篇
翻译 0 篇
转载 107 篇
评论 161 篇
最近评论
燕青:为了更加全面了解网友的信息,我想知道你的scaling参考的是什么标准?DVB的话是不是 EN 200294? 因为我感觉你好像对ATSC不是很了解:-).

燕青:不知道网友所说的AFD=4是不是指0100?如果是0100的话,它表示“Greater than 16:9 letterbox image“,因为无法确定是他否是2.21x1还是2.35x1等,只能通过BAR数据来做适当的scaling操作,如果没有BAR数据,那么就根据就参考标准(CEA-CEB16)中的Table2和Table 13来处理。
燕青:补充一点:
可能你要问,那么如果没有BAR数据,那么如何处理呢?
标准也明确的说明了,可以参考Table 11.12,21和22。它提供了在不同的SRC,DST的AR情况下的推荐处理方式。

一般而言,电视机厂家应该遵循这套标准,但是也不是强迫遵循。
燕青:首先,我想知道,你是否知道BAR?
其实,是否知道AFD和BAR之间的关系?
下面的讨论,我是建立在你对它理解的基础上的,ok?
在讨论之前,先看一下原文 “当AFD直为“0000”时,表示AR<16x9但是也不等于14x9或者4x3。这个时候AFD无法准确表示,所以也要使用Bar数据来决定如何处理(如果有的话)“。按照标准而言,如果它能够用14x9或者4……
alexleetutu:引用[当AFD直为“0000”时,表示AR<16x9但是也不等于14x9或者4x3。这个时候AFD无法准确表示,所以也要使用Bar数据来决定如何处理]。
我在做DVB的AFD的时候,碰到AFD=(1)000的时候,都是直接按照full frame image display处理的,认为当前frame完全吻合Display Appereance,不做任何修改。
为什么……
文章分类
收藏
    相册
    个人相册
    c/c++优秀网站
    boost
    c/c++ Reference
    C99标准
    Effective STL 中文版
    stlport
    stlsgi
    编程爱好者
    Excel/VBA
    VBA参考手册
    VBA自由代码库
    Linux GNU
    GNU Libs HOWTO
    Linux GUI
    QT中文论坛
    MICOM
    AVR MICRO
    WinAVR Tutorial
    MSND
    MSDN在线帮助
    web聊天网
    查看MSN联系人状态
    ebuddy
    iloveim
    imhaha
    meebo
    meebo11
    Web MSN
    米博
    澳洲移民
    前程专业留学移民公司
    百科全书
    QWika
    vesa标准
    wikipedia
    电子元器件网站
    eeworld
    好友链接
    Anders New Blog
    Anders的博客
    Anders的网站
    全胜花的生命痕迹
    小葛的博客
    尧的快乐一家
    捷仔的博客
    老郭的博客
    老钱的博客
    金种子母婴生活馆
    阿耀的博客
    需需网
    金融网站
    纳斯达克
    开源网站
    apache
    opensource
    SVN
    垮平台GUI
    microwindows
    wxWidgets
    敏捷编程
    agilejournal
    extremeprogramming
    jayasoft
    maven
    上海四金网
    上海住房公积金网
    上海养老保险网
    上海医保网
    万年历
    21page万年历
    百渡万年历
    网页脚本教程
    DynamicDrive
    PageSource
    网站交换
    刘韧交换链接网站
    英语听力
    VOA慢速英语
    海词字典
    英语中级听力
    语高级听力
    优秀UNIX/LINUX网站
    IBM Linux论坛
    opengroup
    perl
    pthread
    socket
    UNIX Specification
    unix标准大全
    永远的UNIX
    存档
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 几个在unix/linux平台比较有用的宏收藏

    新一篇: IDE - Hardware Reference & Information Document | 旧一篇: 如何使read和write操作不受平台干扰

       在unix/linux平台,对函数的返回值,一般有这样一个规则。如果成功,返回>=0的值,否则返回-1。我们在每次获取返回值后,都会不厌其烦的检测是否为-1,并且打印出对应的错误信息。对于少量的函数调用,我们是比较容易接受的,但是对于一个较大的项目,这种经历也是一种痛。
       那么我们是否可以通过宏来完成这些工作呢?因为宏看上去很简单明了,在使用的时候也可以通过开关选项来控制,对于调试和性能方面的处理是比较有利的。我这里介绍一个简单的宏,希望给网友一些有益的提示!
    #ifndef NDEBUG

    #define checkFun( fn )  ({                                                                                                \
        int __result = (fn);                                                                                                         \
        if ( __result == -1 )                                                                                                       \
        {                                                                                                                                       \
            char __err[ 512 ];                                                                                                      \
            snprintf( __err, sizeof( __err ), "[%s:%d:%s]", __FILE__, __LINE__, #fn );  \
            perror( __err );                                                                                                          \
        }                                                                                                                                       \
        assert( __result != -1 );                                                                                              \
        __result;                                                                                                                       \
        })

    #else

    #define checkFun( fn )  (fn)

    #endif

    上面的宏有几个地方值得注意:
    • 使用了非ANSI C函数snprintf,如果库中没有提供相应函数,可以使用sprintf来替换,代价是可能会出现完全隐患。
    • 对于POSIX函数,当成功时,0返回,否则相关错误代码会返回。我们不能使用perror函数来打印出错误信息,因为errno没有被使用。那么在这种情况下,如何使用这个宏呢?请看下面的pwrap宏。
    #define pwrap( fn )     ({  \
        int __result = (fn);    \
        if ( __result != 0 )    \
        {                       \
            errno    = __result;\
            __result = -1;      \
        }                       \
        __result;               \
        })
    我们把posix标准的返回转化成unix/linux下常用的返回方式,便于checkFun的使用。我是一个比较怕麻烦的人,对于嵌套使用两个宏是很有意见的,我希望是仅仅使用一个宏,如何解决呢?很简单,我门在定义一个类似checkFn的宏,做对于posix标准函数的返回检查。

    #define pcheckFun( fn )   checkFn( pwrap( fn ) )

    在多线程或者多进程环境中,一定要保证errno是多线程或进程安全的,所以我们在Makefile中要加入_REENTRANT宏。详细信息请参考:如何让errno多线程/进程安全

    发表于 @ 2006年09月12日 10:29:00|评论(loading...)|编辑

    新一篇: IDE - Hardware Reference & Information Document | 旧一篇: 如何使read和write操作不受平台干扰

    评论

    #伙计 发表于2006-09-12 11:58:00  IP: 218.249.156.*
    这些宏对于unix/linux的函数返回值检查是比较有用的,但是还是要看函数使用手册,比较麻烦阿!不知道有没有更好的解决方法阿?
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 燕青