Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

EIE 350 Final Presentation

No description
by

Marco Chan

on 14 May 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of EIE 350 Final Presentation

Acknowledgements Here we deeply thanks to those giving help for our project. Background Information EIE 350
Higher Diploma Project Supervisor: Dr. Chan Yui Lam Relevant Theory Program Flow Our Work Objective
Implementation Testing Final Presentation Presented by
Marco Chan
Edwin Leung 1.Dr. Chan Yui Lam, supervising our project
2.Glory Lee, tutor of our project Group members:
Chan Cheuk Lun (11322245d)
Leung Yuk Lam (11239735d) Planning and Work Division EIE 350 Final Presentation, PolyU Source: http://blog.jarofjuice.com/2009/12/mo vie-review-james-camerons-avatar-in-imax-3d/ Source: http://www.3dtv.com/reviews/ Vizio-E3D470VX-3D-TV-Review-47 3D Video
Great development in multimedia field
Different sense of vision: Stereoscopic view
Increasing Demand
Compression
Streaming Introduction Source: http://www.blackbookmag.com/ movies/studios-may-stop-paying-for-3d- glasses-wont-stop-making-3d-movies-1.24705 Source: http://screenrant.com/movie- ticket-prices-3d-kofi-50750/ EIE 350 Final Presentation, PolyU HTM Encoder using this standard Standards for 3D Video Compression HEVC (High-efficiency video coding)
Support 8K Ultra HD Video resolutions(8192×4320)
Reach Same quality as H.264 but at only half of the bit rate
But increase in computational complexity
Become a International Standard soon Introduction(con’t) H.264/AVC
Support 3D Video encoding
Multiview Video Coding extension (Included after 2009) What is the aim of our project? Why we conduct this project? EIE 350 Interim Presentation, PolyU Software:
HTM Encoder Core
Windows 7 with Microsoft Visual Studio 2010 EIE 350 Final Presentation, PolyU MFC (Microsoft Foundation Classes Library)
application framework for programming in Microsoft Windows
provide a user-friendly GUI (Graphic User Interface)
add the application-specific code Equipment (to build the application) EIE 350 Final Presentation, PolyU Source: http://www.compression.ru/video/ls-codec/index_en.html device or software that enables compression or decompression of digital video
represent a fundamental analog data serepresent and store the image in a YCbCr color space Relevant Theory 3D Video Coding
MVC (Multiview Video Coding)
enable efficient encoding Relevant Theory EIE 350 Final Presentation, PolyU Source: http://en.wikipedia.org/wiki/Multithreading_(software)#Multithreading Thread: smallest sequence of programmed instructions
occurs by time-division multiplexing (as in multitasking)
the processor switches between different threads
widespread programming & execution model
remain responsive to user input (prevent “freeze”) Relevant Theory Video Coder Multi-Threading Q & A EIE 350 Final Presentation, PolyU
Using MFC to build an Encode Application with Graphic User Interface (GUI) and using the HTM encoder. Objective EIE 350 Final Presentation, PolyU Basic operating control
Input control
E.g. Input path of .cfg file(s), No. of views, etc. Main Dialog EIE 350 Final Presentation, PolyU Input Control for advance settings
Specific parameters
Frame Rate
CU size
Max. CU Depth
GOP size
QP
Fast Search Sub-Dialog EIE 350 Final Presentation, PolyU prevent the application appear freeze
Show the degree of process
Allow users to suspend the process Multi-threading EIE 350 Final Presentation, PolyU Allow users to encode the video frame by frame
Take a look on the frame encoded Other Functions EIE 350 Final Presentation, PolyU *YUV file contain the RAW Data of the video Transferring data
Internet video streaming(Youtube)
Data Storing etc. Compression!!!! eg. 30MB -> 30KB Why?? Output bitstream file Encode Application Original YUV file 3 Original YUV file 2 For 3 Views encoding: Original YUV file 1 Outcome of the Application ICON Sub-Dialog Main Dialog EIE 350 Final Presentation, PolyU Implementation Main Dialog
Sub-Dialog Interface For advanced settings Implementation Interface (user interface) Main Dialog
Sub-Dialog Main Dialog 4th Part 3rd Part 2nd Part 1st Part EIE 350 Final Presentation, PolyU Main Dialog Implementation EIE 350 Final Presentation, PolyU 1st part: Input path of configuration file (.cfg)
2nd part: Input path of YUV file
Advantage settings
3rd part: Handle the encoding process
Show the encoded picture
4th part: Show the decorative and
information items Main Dialog Static Text
Read only edit box
Button Main Dialog EIE 350 Final Presentation, PolyU EIE 350 Final Presentation, PolyU Main Dialog * When check box is checked, all other items are disabled. EIE 350 Final Presentation, PolyU Main Dialog EIE 350 Final Presentation, PolyU Main Dialog EIE 350 Final Presentation, PolyU Main Dialog Initialize a bit map in the dialog and draw the RGB buffer in the bit map while maintaining the scale of the picture Transform format YUV420 to RGB24 by a function Get the reconstructed YUV buffer form the encoding function and create a RGB buffer EIE 350 Final Presentation, PolyU Main Dialog EIE 350 Final Presentation, PolyU Main Dialog EIE 350 Final Presentation, PolyU Main Dialog EIE 350 Final Presentation, PolyU Main Dialog EIE 350 Final Presentation, PolyU Main Dialog Implementation Interface (user interface) Main Dialog
Sub-Dialog Sub-Dialog Main Dialog EIE 350 Final Presentation, PolyU Sub-Dialog EIE 350 Final Presentation, PolyU Sub-Dialog Open File In .h file
CSettingDlg m_DSettingDlg; //define the control parameter of the custom dialog
In .cpp file function
m_DSettingDlg.DoModal(); //Call out the Custom Dialog EIE 350 Final Presentation, PolyU Sub-Dialog EIE 350 Final Presentation, PolyU Frame Control Sub-Dialog EIE 350 Final Presentation, PolyU Save the settings as a .cfg file Sub-Dialog EIE 350 Final Presentation, PolyU Other Functions Sub-Dialog Code to detect the files if existing or not and remove the files if it is exist. EIE 350 Final Presentation, PolyU Remove all the temporary file after user close the encoder Sub-Dialog File Control
data validation Other Input Control Multi-Threading EIE 350 Final Presentation, PolyU Multi-Threading Thread function EIE 350 Final Presentation, PolyU Create the worker thread
1. Create a handle “m_pThread” of the object of the class “CWinThread”
2. Using m_pThread = AfxBeginThread(Thread Function, Thread Data) to create a thread
3. Write the Thread function for the task you want to do
4. Using structure to send data to the worker thread from Main thread.
5. User can control the thread by using the handle “m_pThread”. Multi-Threading Structure to send data EIE 350 Final Presentation, PolyU For the thread function
AfxBeginThread() is a light different with _beginthread(). It will return 0 when it reaches the end of execution. So, the type of the thread function should be “UINT”(unsigned integer). Multi-Threading Source: http://fermat.unh.edu/~cjy67/Images/hand.png EIE 350 Final Presentation, PolyU For the structure Multi-Threading In .h file
1. bool Continue;
In .cpp file (before create worker thread)
1. bool* Continue; //in the structure
2. Continue = 1; //in the function that call the worker thread
Thread_Info.Continue =
When "*Continue" is changed in the workers thread, the value of "Continue" in the class of main dialog is also changed as they share the same memory address.
  EIE 350 Final Presentation, PolyU Why we use pointer ? Multi-Threading EIE 350 Final Presentation, PolyU Make interaction between the main thread and the worker thread
Suspend and Resume the process
Send data (by Windows message)
PostMessage( ), SendMessage ()
Use SendMessage function to send data to main thread after encoding process Multi-Threading EIE 350 Final Presentation, PolyU Responsive anytime
Worker Thread: Handle the encoding process
Main Thread: Handle the timer information and receive
windows message Multi-Threading Corresponding event Message map in MFC EIE 350 Final Presentation, PolyU Send data to the main thread by Windows Message Multi-Threading Sample code of sending a set of data by SendMessage function Define a structure to contain a set of data EIE 350 Final Presentation, PolyU Multi-Threading Inform Main Dialog update information shown in dialog after a picture is encoded Defined the message with a name (WNG_STARTENCODE) with the value of (WM_USER + 1) EIE 350 Final Presentation, PolyU Inform Main thread that some task is done Multi-Threading The corresponding function to respond with the message The corresponding statement in message map EIE 350 Final Presentation, PolyU Multi-Threading Code to detect that the encoding process is running or not EIE 350 Final Presentation, PolyU Wait for the thread end to execute a task Multi-Threading EIE 350 Interim Presentation, PolyU *YUV file contain the RAW Data of the video Purpose: To test whether the bitstream file is able to convert back to the YUV file or not. Input bitstream file Decode Application Reconstructed YUV file 3 Reconstructed YUV file 2 For 3 Views decoding: Reconstructed YUV file 1 1. Using a .bat file to execute the Decode Application with different configuration Testing 2. Using YUV player to watch the reconstructed YUV Video files. EIE 350 Final Presentation, PolyU Minimum requirements:
OS: Windows Vista SP 1 or updated
CPU: Duo Core with the clock minimum 1.66GHz each
RAM: 2GB


Testing source:
2 Views Video:
Newspapercc (1024 x768)
3 Views Video:
kendo (1024 x 768)
balloon (1024 x 768)
pozan_hall (1920 x 1088) Testing EIE 350 Final Presentation, PolyU Planning EIE 350 Final Presentation, PolyU Planning EIE 350 Final Presentation, PolyU Work Division EIE 350 Final Presentation, PolyU EIE 350 Final Presentation, PolyU EIE 350 Final Presentation, PolyU EIE 350 Final Presentation, PolyU EIE 350 Final Presentation, PolyU EIE 350 Final Presentation, PolyU try out the different combinations
Compare the result (dialog, CPU, video) Testing QP=27 QP=22 EIE 350 Final Presentation, PolyU QP
It will be the main factor of deciding the bitrate and quality of the video.
The lower value of QP resulted in the higher quality of the resulting video. (Remaining more detail in the picture) Our findings EIE 350 Final Presentation, PolyU
Fast Search
the most time consumed
depend on the value of search range
Diamond Search
quality is almost the same as full search
time consumption is much lesser than using full search
PMVFAST
the advance in Diamond search
Shortest encoding time Our findings EIE 350 Final Presentation, PolyU
higher value -> longer encoding time &lower bitrate of the video Our findings EIE 350 Final Presentation, PolyU
show the relationship between the quality of the encoded video and setting of Max. CU size and Max. CU Depth
higher value of PSNR -> higher quality of the video Our findings Search Mode and Search Range No. of CU Depth and Max CU Size: PSNR (Peak Signal to Noise Ratio)/bitrate graph 3D Video Encoder
Full transcript