亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? extractresults.py

?? JMVM MPEG MVC/3DAV 測試平臺 國際通用標準
?? PY
字號:

import re, os, os.path, glob, sys, string, md5
import naming

def ExtractResultsFromFile(fileName):
    myRegExp = re.compile(r"""
    \s*                           # Skip leading whitespace
    (?P<numFrames>[0-9]+)\s*      # capture num frames
    frames[ ]encoded:             # expected text
    \s*Y\s*(?P<snrY>[0-9.]+)\s*dB  # Y PSNR
    \s*U\s*(?P<snrU>[0-9.]+)\s*dB  # U PSNR
    \s*V\s*(?P<snrV>[0-9.]+)\s*dB  # V PSNR
    \s*$                           # skip leading whitespace to end of line
                                  # Next, capture the bit rate
    ^\s*                          # Skip leading whitespace
    average[ ]bit[ ]rate:\s*
    (?P<bitRate>[0-9.]+)\skbit/s  # capture bit rate
    
    """, re.VERBOSE | re.MULTILINE)
    match = myRegExp.search( open(fileName,'r').read() )
    if (match):
        return map(float, (match.group('bitRate'),match.group('snrY')))
    else:
        print '\n\nWARNING:  Failed to find results from file %s.\n' % fileName
        return None

def ExtractResultsFromDir(directoryName):
    taskPattern = re.compile('task_.*as_view_(?P<viewNum>[0-9]+).txt')
    results = {}
    for file in glob.glob(os.path.join(directoryName,'*task_*.txt')):
        match = taskPattern.search(file)
        if (match):
            viewNum = match.group('viewNum')
            while (results.has_key(viewNum)):
                print 'WARNING: Duplicate results for view number %i.'%viewNum
                viewNum = viewNum + 100                    
                print 'WARNING: Putting results for this view at view %i.' % (
                    viewNum)
            results[viewNum] = ExtractResultsFromFile(file)                
        else:
            print '\nWARNING: Could not extract view number from file %s.\n' %(
                file)
    return results

def ComputeMean( dataList ):
    return reduce( lambda a,b: a+b, dataList ) / float(len(dataList))

def AverageResults( resultDict ):
    averageRate = ComputeMean( map( lambda x: x[0], resultDict.values() ) )
    averageSNR =  ComputeMean( map( lambda x: x[1], resultDict.values() ) )
    return (averageRate, averageSNR)
        
def ExtractResultsIntoCSVFile(directoryName):
    results = ExtractResultsFromDir(directoryName)
    keys = results.keys()
    keys.sort()
    fd = open(os.path.join(directoryName,'results.csv'),'w')
    for i in keys:
        if (None != results[i]):
            fd.write('%s, %f, %f\n' % (`i`, results[i][0], results[i][1]))
    fd.close()

def CollectAllCSVResultsIntoFile(pathPattern, outputFile):
    fd = open(outputFile,'w')
    for file in glob.glob(os.path.join(pathPattern,'results.csv')):
        fd.write(file+'\n')
        fd.write( open(file,'r').read() + '\n\n' )
    fd.close()

def CollectFullResults(directory, outputDir):
    if (not os.path.exists(outputDir)):
        os.mkdir(outputDir)
    else:
        for item in glob.glob(os.path.join(outputDir,'*')):
            os.remove(item)

    dirDict = { directory : 1 }
        
    GetRelatedDirectories(dirDict, directory)

    reconFiles = {}
    outputFiles = {}
    taskFiles = {}
    configFiles = {}

    for dir in dirDict.keys():
        AddMatches(reconFiles, os.path.join(dir,'recon_*.yuv'))
        AddMatches(outputFiles, os.path.join(dir,'output_*.264'))
        AddMatches(configFiles, os.path.join(dir, '*.cfg'))
        AddMatches(taskFiles, os.path.join(dir, 'task_*.txt'))

    dups = []
    fd = open(os.path.join(outputDir,'make_results.py'),'w')
    fd.write('#!/usr/bin/python\n')
    fd.write('import os, os.path, sys\n')
    fd.write('reconFiles=%s\n' % ProcessMatchDict(reconFiles,dups,outputDir))
    fd.write('outputFiles=%s\n' % ProcessMatchDict(outputFiles,dups,outputDir))
    fd.write('taskFiles=%s\n' % ProcessMatchDict(taskFiles,dups,outputDir))
    fd.write('configFiles=%s\n' % ProcessMatchDict(configFiles,dups,outputDir))
    fd.write('\nduplicates=%s\n' % `dups`)
    fd.write("""
def MakeLinks(dictList):
    for dictItem in dictList:
        for item in dictItem.keys():
            if (len(dictItem[item]) > 1):
                print 'WARNING:  Element [%s] has duplicates.'%(item)
            for i in range(len(dictItem[item])):
                itemName = ('='*i) + item
                path =  dictItem[item][i]
                if (os.path.exists(itemName)):
                    assert os.path.islink(itemName)
                    os.remove(itemName)
                os.symlink(path, itemName)

MakeLinks([reconFiles,outputFiles,configFiles,taskFiles])

    """)
    fd.close()

def MakeLinks(dictList):
    for dictItem in dictList:
        for item in dictItem.keys():
            assert 1==len(dictItem[item]), 'Element [%s] has duplicates\n'%(
                item)
            path = dictItem[item][0]
            if (os.path.exists(path)):
                os.remove(path)
            os.symlink(path,item)

def ProcessMatchDict(matchDict, duplicates, outputDir):
    result = ['{\n']
    for k in matchDict.keys():
        result.append('\t%s : %s,\n' % (`k`, `matchDict[k]`))
        if (len(matchDict[k]) > 1):
            duplicates.append(k)
                
    result.append('\n}\n')
    return string.join(result,'')
    
def ComputeMD5(fileName,bufSize=16384):
    fd = open(fileName,'rb')
    hasher = md5.new()
    data = fd.read(bufSize)
    while ('' != data):
        hasher.update(data)
        data = fd.read(bufSize)
    return hasher.digest()
            

def AddMatches(matchDict,pattern):

    for file in glob.glob(os.path.join(pattern)):
        basename = os.path.basename(file)
        if (not matchDict.has_key(basename)):
            matchDict[basename] = []
        matchDict[basename].append(file)


def GetRelatedDirectories(dirDict, directory):

    sys.path.insert(0,directory)
    if (os.path.exists(os.path.join(directory,'configFile.py'))):
        config = __import__('configFile')
        if (config.paramsForMVC.has_key('alreadyEncodedViews')):
            for i in config.paramsForMVC['alreadyEncodedViews'].keys():
                directoryToTry=os.path.dirname(
                    config.paramsForMVC['alreadyEncodedViews'][i])
                if (not dirDict.has_key(directoryToTry)):
                    dirDict[directoryToTry] = 1
                    sys.path.remove(directory)
                    GetRelatedDirectories(dirDict, directoryToTry)
        else:
            sys.path.remove(directory)

if (__name__ == "__main__"):
    if (len(sys.argv) == 2):
        print 'Doing --> ExtractResultsIntoCSVFile(%s)\n' %(sys.argv[1])
        ExtractResultsIntoCSVFile(sys.argv[1])
    elif (len(sys.argv) == 3):
        print 'Doing --> CollectFullResults(%s,%s)\n'%(sys.argv[1],sys.argv[2])
        CollectFullResults(sys.argv[1],sys.argv[2])
    else:
        raise 'Wrong number of args; got %i args; expected either %i or %i.'%(
            len(sys.argv), 2,3)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产精品亚洲红杏| 国产欧美日韩视频一区二区| 欧美日韩国产系列| 欧美一级在线观看| 久久久久99精品国产片| 中文字幕不卡的av| 亚洲综合精品自拍| 另类小说综合欧美亚洲| 国产一区二区三区在线观看免费 | 欧美欧美午夜aⅴ在线观看| 欧美丝袜丝交足nylons| 色久综合一二码| 欧美中文字幕一区| 538在线一区二区精品国产| 欧美成人艳星乳罩| 国产精品午夜免费| 亚洲国产wwwccc36天堂| 国产乱码精品一区二区三区五月婷| 91在线观看成人| 精品国产乱码91久久久久久网站| 亚洲视频资源在线| 国产精品亚洲а∨天堂免在线| 欧美在线你懂得| 日韩欧美国产三级电影视频| 亚洲欧美日韩电影| 久久成人av少妇免费| 91成人国产精品| 国产校园另类小说区| 午夜欧美在线一二页| a级高清视频欧美日韩| 日韩美一区二区三区| 一区二区三区在线观看欧美| 国产伦精品一区二区三区视频青涩 | 不卡区在线中文字幕| 日韩亚洲欧美在线| 日韩国产在线观看一区| 色综合夜色一区| 欧美国产乱子伦| av中文字幕在线不卡| 中文字幕乱码日本亚洲一区二区| 精品在线视频一区| 91精品国产aⅴ一区二区| 中文字幕在线观看一区| 成人av免费观看| 成人欧美一区二区三区在线播放| 国产盗摄一区二区三区| 国产精品久久久久一区| 亚洲国产视频a| 欧美日韩一区在线观看| 一个色综合av| 欧美精品在线观看一区二区| 三级一区在线视频先锋| 日韩一区二区三区在线视频| 久久精品国产色蜜蜜麻豆| 久久奇米777| 99久久国产综合精品色伊| 亚洲激情av在线| 欧美电影精品一区二区| 成人网在线播放| 性做久久久久久免费观看欧美| 日韩欧美一级片| thepron国产精品| 亚洲高清免费视频| 国产欧美日韩久久| 欧美日韩小视频| 国产一区中文字幕| 亚洲一区二区中文在线| 日韩精品一区二区三区在线| 成人教育av在线| 人人狠狠综合久久亚洲| 国产精品伦理一区二区| 欧美久久久久免费| 成人丝袜高跟foot| 精品一区二区三区免费播放| 亚洲精品精品亚洲| 国产亚洲精品资源在线26u| 欧美在线一区二区| 成人av在线看| 国模娜娜一区二区三区| 亚洲综合在线第一页| 日本一区二区三区高清不卡| 欧美一区二区三区四区视频| 日本精品裸体写真集在线观看| 国内精品不卡在线| 国产自产视频一区二区三区| 亚洲h动漫在线| 热久久免费视频| 高清久久久久久| 欧美影院午夜播放| 欧美大胆一级视频| 91精品国产欧美一区二区18| 精品成人私密视频| 中文字幕一区二区三| 亚洲成av人片在线观看无码| 免费久久99精品国产| 粉嫩欧美一区二区三区高清影视| 色婷婷精品大视频在线蜜桃视频 | 91精品国产入口在线| 国产亚洲精品精华液| 亚洲一区二区三区在线看| 激情文学综合网| 在线国产电影不卡| 欧美午夜一区二区| 欧美猛男超大videosgay| 国产成人精品亚洲777人妖| 久久99精品久久久久| 国产不卡免费视频| 91麻豆精品视频| 欧美人体做爰大胆视频| 91精品国产综合久久精品app| 91精选在线观看| 国产清纯在线一区二区www| 国产精品电影一区二区三区| 亚洲一区二区三区激情| 青青国产91久久久久久| 成人黄色a**站在线观看| 精品1区2区3区| 国产婷婷色一区二区三区| 国产精品日产欧美久久久久| 亚洲成人在线免费| 国产剧情在线观看一区二区| 一本一道久久a久久精品综合蜜臀| 欧美性色欧美a在线播放| 久久综合狠狠综合久久激情| 亚洲激情欧美激情| 国产**成人网毛片九色| 欧美精品黑人性xxxx| 中文字幕巨乱亚洲| 九一九一国产精品| 欧美中文字幕一区二区三区亚洲| 久久久亚洲精品一区二区三区 | 国产精品视频观看| 日本aⅴ精品一区二区三区| 99久久精品免费看国产免费软件| 日韩精品一区二区三区swag| 天堂va蜜桃一区二区三区漫画版| 国产成人av福利| 91视频在线观看| 欧美一级夜夜爽| 国产亚洲一区字幕| 亚洲国产视频网站| 五月开心婷婷久久| 色婷婷av一区二区三区软件| 日韩美女在线视频| 一区二区三区四区不卡在线| 国产福利精品导航| www一区二区| 国产精品一区二区男女羞羞无遮挡 | 精品久久五月天| 久久精品999| 26uuu精品一区二区在线观看| 免费成人在线观看| 欧美一二三区在线| 另类中文字幕网| 精品国精品国产| 国产一区欧美二区| 久久久久久久久久久久久女国产乱 | 成人动漫精品一区二区| 国产精品福利一区| 欧美影院一区二区三区| 亚洲午夜激情网站| 日韩一区二区三区在线| 加勒比av一区二区| 2023国产一二三区日本精品2022| 国产精品一区专区| 综合久久综合久久| 欧美日韩亚洲国产综合| 青青青爽久久午夜综合久久午夜| 日韩欧美aaaaaa| 97精品视频在线观看自产线路二| 一区二区免费在线播放| 日韩一级成人av| 成人福利视频网站| 爽好久久久欧美精品| 26uuu色噜噜精品一区二区| 成人免费看视频| 日韩1区2区日韩1区2区| 久久精品一二三| 欧美日韩高清一区| 成人综合在线观看| 偷拍一区二区三区| 国产精品大尺度| 日韩精品一区二区三区老鸭窝| 99riav久久精品riav| 老司机午夜精品| 一卡二卡三卡日韩欧美| 久久久久久久久久看片| 欧美日韩小视频| 色视频一区二区| 成人丝袜高跟foot| 国产综合成人久久大片91| 亚洲国产精品一区二区久久| 国产精品欧美极品| 久久精品免视看| 精品日韩在线一区| 91精品国产综合久久久久久久久久| 粉嫩绯色av一区二区在线观看 | 精品久久久网站| 日韩免费高清av| 91精品国产综合久久久久|