【问题标题】:Video sequences with Flickering闪烁的视频序列
【发布时间】:2011-03-22 07:54:35
【问题描述】:

我正在实现一个从视频中去除闪烁的工具。要测试该工具, 我正在寻找一些视频序列(任何视频格式 - MPEG4、H263、MPEG2、H264、Raw YUV),它们中存在明显的闪烁量。我搜索了,但找不到任何此类视频。

顺便说一句,是否有已知的视频后期处理工具可以消除闪烁?

任何指针都会有所帮助。

谢谢。 -AD

【问题讨论】:

    标签: video flicker


    【解决方案1】:

    如果您有一个 YUV 序列,那么在某个周期(50 Hz、60 Hz 或其他)添加人工闪烁将非常简单,方法是在相关周期插入一个白框,或者您可以摆弄色度平面使有问题的框架更轻。

    可以在此处找到测试序列。 yuv test-sequences

    顺便说一句。通常,移动电话内置了闪烁消除功能,该功能非常有效,可以在多个净频率下运行。以不是 25 或 30 Hz 的倍数的帧速率录制慢动作视频是某些相机模块在录制时无法补偿 @ 说 VGA 100 fps。

    这是一个帮助您入门的 python 函数,它将 YUV 4:2:0 拆分为帧并将每个帧存储为单独的文件。

    def split(fname):
        src_yuv = open(fname, 'rb')
    
        cif = 352*288*1.5   # YUV 4:2:0 change to reflect your input!
    
        # Get file size in bytes
        src_yuv_size = os.stat(fname)[6]
    
        nr_files = src_yuv_size / cif
    
        filecnt = 0
        while True:
            buf = src_yuv.read(cif)          # read qcif number of bytes
            if buf:
                s = "frame" + "%s" % filecnt + ".yuv"
                dst_yuv = open(s, 'wb')
                dst_yuv.write(buf)           # write read data into new file
                print "writing frame", filecnt
                dst_yuv.close()
                filecnt = filecnt + 1
            else:
                break
        src_yuv.close()
    

    【讨论】:

    • 谢谢。因此,如果我必须在 Frq 添加闪烁。说 100 Hz(我的电源频率的两倍,即 50Hz),然后闪烁周期变为 1/100 = 10 毫秒(毫秒)。如果我有一个原始 YUV 序列,我以每秒 30 帧 (fps) 或每 1000 毫秒 30 帧的速度播放。所以从技术上讲,我应该在每 0.3 帧之后添加一个白框。但是那个分数框架变得毫无意义。那么我可以在每一帧之后添加一个白框吗?或者应该怎么做?
    猜你喜欢
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 2023-04-07
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多