Introduction to Multimedia Coding

Slides:



Advertisements
Similar presentations
五脏六腑话养生 董飞侠 医学博士 副教授 硕士研究生生导师 副主任中医师 美国贝勒医学院高级访问学者.
Advertisements

年節保腸健胃 - 遠離腸癌飲食注意事項 台大醫院營養室 鄭金寶. 大腸癌朋友春節飲食原則 1. 遵守治療醫矚, 不放假 2. 過年期間,不舒服即時就醫 3. 配合支持醫療的飲食原則, (1) 心理建設有個準備 : 過年要 像平日一樣沒有什麼大不同 (2) 該限制的還是要限制 (3)
國立成功大學工程科學系 Department of Engineering Science -National Cheng Kung University 控制與訊號處理實驗室 Control & Signal Processing Lab MATLAB/Simulink 教學.
慢性病防治與運動 你今天運動了嗎?.
主題─ 悌 授課教師:謝宛琳.
遊程規劃實務 中華民國遊程規劃設計協會.
日月光·伯爵居项目介绍.
广东省社会信用体系建设系列讲座 强化企业信用管理 提高核心竞争力 广东省信用管理师协会执行会长 陈 文
香港扶貧計劃 關愛基金 Group 5 組員 馬曉真 余葆 董賽騫 蕭雪兒.
第六章健康教育 神木职教中心医学系.
香港故事之 三年零八個月的艱苦歲月 組員: 梁珮瑩 吳遠莉 李琪 李青儀 方松皓.
自 我 介 紹 班級:運促一乙 姓名:林以權 學號:D
諮商技巧與實務研討 主講人:蔡佩潔臨床心理師 .
谷雨节气模板.
按開憂鬱症的結 ---穴位玄機妙用 溫嬪容 醫師.
面試甄試準備要領 魯真 中興大學管理學院副院長.
Openfind Information Technology, Inc. Phantom Weng 2008/10/17
第四章 蛇 重点: 1. 蛇人工养殖的场地设计。 2. 蛇人工孵化。. 第四章 蛇 重点: 1. 蛇人工养殖的场地设计。 2. 蛇人工孵化。
我的故事 ————往事回首.
城区西北片区集中供热扩容工程 供热管理科 宋健敏.
中信信诚-淮安项目.
郭子光教授从肺肾虚损辨治早中期慢性肾功能不全的经验
女生成功靠什么? 09英本四班 傅柏双.
国际投资环境罗氏评级法 美国.
社会保障学 第5章 失业保险.
综合实践活动课 多米诺骨牌 授课老师: 万江二中 黄小林 2015年1月5日.
主 题 班 会 团 结   协 作    力 量.
理想.
傷 仲 永 王安石 S 孫子潔.
垃圾食品與肥胖的關係 敏盛綜合醫院 陳美月 營養師.
固定与搬运技术 义乌市中心医院 陈红卫.
中鸣虚拟搜救比赛项目 (一人) 现场主题创作(40%)(一人) 3D虚拟搜救(60%)(一人).
POP字体设计 陈志鹏 广告1231.
案例分析 胎记美容记 第6小组
康师傅市场分析.
商業實務報告 第三組 指導老師:林淑惠 柯宜廷 許家喬 顏妙玲
住宅部門能源消費及節能意識之性別差異分析
臺北市國中健康與體育領域104學年度上學期共同備課分享
人生五色臉 年輕十歲必學的小動作,九個保持身體健康的的小訣竅 人們常在不經意間做些小動作,並認為這是身體的本能反應,
班級:車輛三乙 學號: 學生:王章嘉 指導老師:吳宗霖老師
甲、乙類大客車 車輛型式安全審驗或底盤車型式登錄 審驗補充作業規定說明 103年2月13日
Leftmost Longest Regular Expression Matching in Reconfigurable Logic
2018/9/19.
台灣促進和平基金會執行長 簡錫堦 於台北大學公共行政暨政策學系 2007/10/02
「簡易水土保持申報書」 內容及送審流程之探討
Basis基本操作、使用者 管理與權限設定
日常操作及技术培训 深圳市学生信息管理综合平台 南方教育软件基地有限公司 地址:深圳市南山区科技园北区华瀚科技A-9A
第三章 项目设定.
聲寶股份有限公司 陳盛泉 應外4A 簡志瑋 指導老師:吳雨濃.
報告人:潘繼良老師.
第六章 安全衛生工作守則 6-1 前 言  6-2 訂定依據相關法令規定  6-3 工作守則製作程序及製作前應注意事項  6-4 如何訂定適合需要之安全衛生工作守則  6-5 結 論.
製造程序規劃注意事項 Yung-Chung Chen
第7章 其他系統軟體.
VIDEO COMPRESSION & MPEG
第三組 指導老師:林淑惠老師 組員: 柯宜廷 許家喬 顏妙玲 蔡佳君
大巨人的小發明─CD 組員 楊昌憲 ppt整合 蔡依霖 上台報告 王冠文 ppt製作
Unit 05 雲端分散式Hadoop實驗 -I M. S. Jian
概論 Yung-Chung Chen * Assistant Professor, Department of Logistics Management, SHU-TE University, Kaohsiung, Taiwan.
廠商付款查詢系統講解 製作人:王云娜.
簡報檔案可由服務學習網-課務資訊-TA下載 課外活動組
Geographic Information System ─ Practice Class
2018年安徽工程大学大学生高分子材料创新创业大赛
大 綱 科技管理學院介紹 經濟系V.S. 其它商管學系 系所發展三部曲與特色 現況與教學師資分配 學生課程與學習資源 系友畢業後概況
台 語 臆 謎 猜 動 物 篇.
Arguments to the main Function and Final Project
基础信贷法律知识 讲解人:岳杨.
code::blocks 與GLUT 程式開發
國立清華大學 National Tsing Hua University
105年教育部熱血老師翻轉學生「教育愛」座談會
Simulink National Tsing Hua University
Presentation transcript:

Introduction to Multimedia Coding Project 2 – JMVC Code Tracing Speaker: Chung-Lun Lu (逯仲倫) (Group 1, Block1) Date: May 18, 2011 Location: NTHU Chung-Lun Lu E-mail : jonqluen@hotmail.com Graduate Student Artificial Intelligence Lab Dept. of Computer Science National Tsing Hua University, Taiwan, R.O.C.

Group 1 2

Group 1 9962577 逯仲倫 資工系碩士班 1 9962634 邱檉文 資工系碩士班 2 9962572 張雅婷 資工系碩士班 3 9962547 林柏辰 資工系碩士班 4 9962591 吳佩穎 資工系碩士班 5 9562318 紀新鴻 資工系四年級梅班 6 3

Group 1 1 2 main H264AVC EncoderTest::go CreaterH264AVC 9962577 逯仲倫 資工系碩士班 9962634 邱檉文 main H264AVC EncoderTest::go CreaterH264AVC Encoder::process MbEncoder ::encodeMacroblock EbCoder ::encode PicEncoder ::process PicEncoder ::xEncodePicture SliceEncoder ::encodeSlice 4

Block 1 5

Functions Functions 1 2 3 4 5 6 7 8 main (H264AVCEncoderLibTest.cpp) H264AVCEncoderTest::init 3 EncoderCodingParameter::init (重點放在-vf) 4 EncoderCodingParameter::xReadFromFile (重點放在MVC相關參數) 5 H264AVCEncoderTest::xWrite (ExtBinDataAccessorList&, UInt&) 6 H264AVCEncoderTest::xWrite (PicBufferList&, UInt) 7 WriteYuvToFile::writeFrame 8 WriteYuvToFile::xwriteFrame 6

(H264AVCEncoderLibTest.cpp) Functions main (H264AVCEncoderLibTest.cpp) H264AVCEncoderTest ::init EncoderCodingParameter ::init EncoderCodingParameter ::xReadFromFile H264AVCEncoderTest ::go H264AVCEncoder::xWrite (ExtBinDataAccessorList&, UInt&) H264AVCEncoder::xWrite (PicBufferList&, UInt) WriteYuvToFile ::writeFrame WriteYuvToFile ::xWriteFrame 7

main (H264AVCEncoderLibTest.cpp) Function 1 main (H264AVCEncoderLibTest.cpp) 主導 Encoder 內其他函式的流程 create  初始化  執行 encoder  destroy 8

main (H264AVCEncoderLibTest.cpp) Function 1 main (H264AVCEncoderLibTest.cpp) 主導 Encoder 內其他函式的流程 create  初始化  執行 encoder  destroy Start timer Print JMVC encoder version 宣告一個 H264AVCEncoderTest的變數 Start Create H264AVCEncoderTest Initial H264AVCEncoderTest Function 2 H264AVCEncoderTest::init Execute encoder Destroy H264AVCEncoderTest Stop timer Compute the time difference Print the time difference End 9

H264AVCEncoderTest::init Function 2 H264AVCEncoderTest::init Function 3 EncoderCodingParameter::init 配置空間與初始化相關參數 呼叫其他函式來讀取 command line 與 parameter file 的參數 呼叫EncoderCodingParameter::init來讀入encoder參數 配置空間給encoder參數 Start 輸入的參數 格式是否正確? 呼叫printHelpMVC( )印出訊息提醒user正確的輸入格式 No 配置空間給之後要 寫入輸出檔的yuv data Yes 配置空間給要讀入 程式編碼的yuv data 初始化 read yuv data 的相關參數 初始化bitstream writer 配置空間給encoder 設定NAL unit的start code 設定entended NAL unit的priority End (Err::m_nOK) 函式正確結束 10

H264AVCEncoderTest::init Function 2 H264AVCEncoderTest::init 配置空間與初始化相關參數 呼叫其他函式來讀取 command line 與 parameter file 的參數 11

EncoderCodingParameter::init (重點放在-vf) Function 3 EncoderCodingParameter::init (重點放在-vf) 讀入 user 在 command line 給定的參數資料 根據 user 輸入的 command 去執行相對應的函式或設定相對應的參數 設定一個指標指到輸入 的參數字串第一個字元 Start 比對讀入的參數 是否有match到相關的 參數設定? 比對讀入的 參數是否有-h這個 參數設定? No update指標 End (Err::m_nErr) 函式不正常結束 No Yes executes/sets their corresponding functions/parameters Yes 印出訊息提示user 相關的參數如何設定 Yes End (Err::m_nOK) 函式正確結束 是否還有尚未比對 的參數設定? No 是否在MVC mode 下並採用PDS? 配置空間給 PDS相關變數 並給定初始值 Yes 呼叫check()檢查 user輸入的參數 是否符合該參數的值域 No 12

EncoderCodingParameter::init (重點放在-vf) Function 3 EncoderCodingParameter::init (重點放在-vf) 讀入 user 在 command line 給定的參數資料 根據 user 輸入的 command 去執行相對應的函式或設定相對應的參數 13

EncoderCodingParameter::init (重點放在-vf) Function 3 EncoderCodingParameter::init (重點放在-vf) 比對到參數有 -vf 這個參數設定 將 parameter file 名稱和 view id 讀入 command 輸入格式如下:%s -vf <encoder.cfg> <view_id> 比對讀入的參數是否 有-vf這個參數設定? -vf後面讀到的第一個參數寫入 儲存parameter filename的變數 Yes update指標 update指標後面讀到的第一個 參數寫入儲存view id的變數 從parameter file 讀入參數設定 Function 4 EncoderCodingParameter::xReadFromFile 14

EncoderCodingParameter::xReadFromFile (重點放在MVC相關參數) Function 4 EncoderCodingParameter::xReadFromFile (重點放在MVC相關參數) 讀入 user 在參數設定檔給定的參數資料 根據參數設定檔的設定去執行相對應的函式或設定相對應的參數 是否讀到參數 設定檔案結尾? Yes Start 開啟參數設定檔案 讀取參數設定檔案一行 給定大部分參數default值 給定default值的參數 中是否有在參數設定檔案中給定設定值? No 將設定值取代default值 Yes 比對讀入的參數 是否有match到其他相關的參數設定? No No Yes 根據參數設定檔的 設定值設定相關參數 15

EncoderCodingParameter::xReadFromFile (重點放在MVC相關參數) Function 4 EncoderCodingParameter::xReadFromFile (重點放在MVC相關參數) 讀入 user 在參數設定檔給定的參數資料 根據參數設定檔的設定去執行相對應的函式或設定相對應的參數 如果有使用multiview acquisition information SEI message,讀入multiview acquisition information的設定檔 檢查每個要編碼的view是否都有在參數設定檔中設定相關的參數 如果在參數設定檔中沒有設定level參數,給定相關的level參數default值 如果使用MVC mode,使用函式xAppendStringWithNO()將程式input和output的yuv檔案名稱及264檔案名稱組合出來,並設定input和output的yuv檔案名稱及frame的長寬 釋放在函式一開始給定大部分參數default值時所用的陣列的空間 印出list 0與list 1的references 相關設定值 關閉參數 設定檔案 End (Err::m_nOK) 函式正確結束 16

H264AVCEncoderTest::xWrite (ExtBinDataAccessorList&, UInt&) Function 5 H264AVCEncoderTest::xWrite (ExtBinDataAccessorList&, UInt&) 將 NAL unit 加上 start code 區隔後寫入輸出檔中 Start code of the NAL unit is 0x0001 Start 存放 NAL unit 的 list 還有資訊在內? End (Err::m_nOK) 函式正確結束 No ruiBytesInFrame += list中第一個NAL unit 的size加上4 Yes 將start code 寫到輸出檔中 將NAL unit寫 到輸出檔中 把list中第一筆的 NAL unit資料清掉 17

H264AVCEncoderTest::xWrite (PicBufferList&, UInt) Function 6 H264AVCEncoderTest::xWrite (PicBufferList&, UInt) 將 reconstructed 的 picture 寫入輸出檔中 呼叫 WriteYuvToFile::writeFrame 和 xwriteFrame Start 存放picture資訊的 list還有資訊在內? End (Err::m_nOK) 函式正確結束 No 把list中第一筆資料 pop出來並存放在buffer中 Yes 將buffer的起始位置存放在指標Pel 藉由加上luminance、Cb、Cr的offset 把指標指向相對應的資料存放位置 將luminance、Cb、Cr的資料存放位置 和影像長寬等資訊寫到輸出檔中 Function 7 WriteYuvToFile::writeFrame 18

WriteYuvToFile::writeFrame Function 7 Image Padding image width stride WriteYuvToFile::writeFrame 考慮 Padding 問題 stride = image width + padding bytes Function 8 WriteYuvToFile::xWriteFrame 考慮padding問題後,把pLum、pCb、pCr指標移到padding後的位置 考慮padding問題後, 更新luminance的長寬 Start 呼叫xWriteFrame將luminance、 Cb、Cr資訊寫入輸出檔案 End (Err::m_nOK) 函式正確結束 19

WriteYuvToFile::xwriteFrame Function 8 WriteYuvToFile::xwriteFrame 把 luminance 和 Cb、Cr 資訊寫到輸出檔案中 Start 設定一個指標pucSrc 將luminance的stride、長寬除以2 將pucSrc指到 Cr資訊的位置 No No 將pucSrc指到luminance資訊的位置 將pucSrc指到 Cb資訊的位置 寫入Cr資訊 到輸出檔案 寫入luminance 資訊到輸出檔案 寫入Cb資訊 到輸出檔案 還有Cr資訊 尚未寫入? No 還有luminance資訊尚未寫入? 還有Cb資訊 尚未寫入? Yes 移動pucSrc到下一個Cr資訊的位置 Yes 移動pucSrc到下一個luminance資訊的位置 移動pucSrc到下一個Cb資訊的位置 Yes End (Err::m_nOK) 函式正確結束 20

Thank you for your attention! 21

Block 6 22

Functions Functions 1 CreaterH264AVCEncoder::writeParameterSets 2 CreaterH264AVCEncoder::writePDSSEIMessage 3 CreaterH264AVCEncoder::writeMultiviewSceneInfoSEIMessage 4 CreaterH264AVCEncoder::writeMultiviewAcquisitionInfoSEIMessage 5 CreaterH264AVCEncoder::writeNestingSEIMessage 23