VIC Development National Center of High-performance Computing Barz Hsu 15 January 2007.

Slides:



Advertisements
Similar presentations
Programming with OpenGL - Getting started - Hanyang University Han Jae-Hyek.
Advertisements

Introduction to H.264 / AVC Video Coding Standard Multimedia Systems Sharif University of Technology November 2008.
GStreamer as multimedia framework in Android: a new alternative.
Tae-wan You, Seoul National University, Korea
A Performance Analysis of the ITU-T Draft H.26L Video Coding Standard Anthony Joch, Faouzi Kossentini, Panos Nasiopoulos Packetvideo Workshop 2002 Department.
Advanced microprocessor optimization Kampala August, 2007 Agner Fog
-1/20- MPEG 4, H.264 Compression Standards Presented by Dukhyun Chang
3dtv.at Stereoscopic Player and Stereoscopic Multiplexer S3D-Today November 2006 Munich, Germany.
64bit Development Overview March 28 Microsoft. Objectives Learn about the current 64-bit platforms from a hardware, software and tools perspective Review.
AV Converter - CS491B Project Mads Moeller CS 491B December 8, 2006 California State University, Los Angeles.
IERG4180 Tutorial 4 Jim.
MPEG2 FGS Implementation ECE 738 Advanced Digital Image Processing Author: Deshan Yang 05/01/2003.
How to install CGAL Yuanzhen Wang. What is CGAL Computational Geometry Algorithms Library “Provide easy access to efficient and reliable geometric algorithms.
INDEX ∞ Image Processing ∞ OpenCV ∞ Download & Setup ∞ Make Project ∞ Show Result ∞ Q & A Setup OpenCV & Tutorial.
Samsung Poland R&D Center © Samsung Electronics Co., LTD S/W Platform Team | Ver.DateDescriptionAuthorReviewer /09/18Initial VersionMarek.
COM 205 Multimedia Applications
Video Streaming © Nanda Ganesan, Ph.D..
This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit
September 2008 IT Software Development Guide.
OpenTS for Windows Compute Cluster Server. Overview  Introduction  OpenTS (academic) for Windows CCS  T-converter  T-microkernel  OpenTS installer.
A Portable Virtual Machine for Program Debugging and Directing Camil Demetrescu University of Rome “La Sapienza” Irene Finocchi University of Rome “Tor.
SUMOVER Project: Status meeting with Frederique VanTill 9 th January 2007 Peter Kirstein Piers O’Hanlon Socrates Varakliotis.
1/23/2005 page1 11/11/2004 MPEG4 Codec for Access Grids National Center for High Performance Computing Speaker: Barz Hsu
GStreamer: What is Gstreamer, What is new and simple video editing
Module 2 Part I Introduction To Windows Operating Systems Intro & History Introduction To Windows Operating Systems Intro & History.
MPEG: (Moving Pictures Expert Group) A Video Compression Standard for Multimedia Applications Seo Yeong Geon Dept. of Computer Science in GNU.
Enabling the ARM Learning in INDIA ARM DEVELOPMENT TOOL SETUP.
Developing Cross-Platform Applications with Visual Studio 2015
Windows Media Video 9 Tarun Bhatia Multimedia Processing Lab University Of Texas at Arlington 11/05/04.
CHAPTER FOUR COMPUTER SOFTWARE.
CSC 461: Lecture 41 CSC461: Lecture 4 Introduction to OpenGL Objectives: Development of the OpenGL API OpenGL Architecture -- OpenGL as a state machine.
Old Chapter 10: Programming Tools A Developer’s Candy Store.
CHAPTER TEN AUTHORING.
Python From the book “Think Python”
DISTRI Meeting / Copyright: MAYAH Communications, 2006 IO [io] 8000 / 8001 Copyright: MAYAH Communications, 2006 Table of contents  Management.
NA-MIC National Alliance for Medical Image Computing Slicer Building and Deployment Steve Pieper, PhD.
MPEG MPEG : Motion Pictures Experts Group MPEG : ISO Committee Widely Used Video Compression Standard.
Performance of mathematical software Agner Fog Technical University of Denmark
Visual Linker Prototype presentation.
CINT C++ Interpreter update ROOT2001 at Fermi-Lab Masaharu Goto.
- By Naveen Siddaraju - Under the guidance of Dr K R Rao Study and comparison between H.264.
Aug 25, 2005 page1 Aug 25, 2005 Integration of Advanced Video/Speech Codecs into AccessGrid National Center for High Performance Computing Speaker: Barz.
Programming with Visual Studio 2005.NET A short review of the process.
Programming with Visual Studio.NET A short review of the process.
National Center for Supercomputing ApplicationsNational Computational Science Grid Packaging Technology Technical Talk University of Wisconsin Condor/GPT.
HELP COMPONEN SYSTEM WinCC CERN SUBJECTS - GENERATE HTML COMPONENT FILES - FULL COMPONENTS FRAMEWORK HELP - CENTRAL HELP REPOSITORY - ACCESIBLE.
Mbone tool variants: current status Support for mbone videoconferencing for the research community - SUMOVER Socrates Varakliotis Piers O’Hanlon{kirstein,
Introduction to Interactive Media Interactive Media Tools: Authoring Applications.
Introduction to the C6713 Laurier Boulianne
2 nd SUMOVER Workshop: VIC. 2nd SUMOVER Workshop - VIC Overview VIC status Socrates – H.264 RTP Barz’s talk on his work.
Full and Para Virtualization
Igor Jánoš. Goal of This Project Decode and process a full-HD video clip using only software resources Dimension – 1920 x 1080 pixels.
VP Rhys Hawkins ANU Internet Futures/Grangenet A Video Consumer Service for the AccessGrid.
ISecurity Mid-Semester Presentation October 9, 2012.
Open project in Microsoft Visual Studio → build program in “Release” mode.
1 Hierarchical Parallelization of an H.264/AVC Video Encoder A. Rodriguez, A. Gonzalez, and M.P. Malumbres IEEE PARELEC 2006.
242/102/49 0/51/59 181/172/166 Primary colors 248/152/29 PMS 172 PMS 137 PMS 546 PMS /206/ /227/ /129/123 Secondary colors 114/181/204.
DaVinci Overview (features and programming) Kim dong hyouk.
From VIC (VRVS) to ViEVO (EVO) 3 years of experiences with developing of video application VIC for VRVS allowed us to develop a new video application.
Introduction to H.264 / AVC Video Coding Standard Multimedia Systems Sharif University of Technology November 2008.
Application and Desktop Sharing
Topics Introduction Hardware and Software How Computers Store Data
CE-105 Spring 2007 Engr. Faisal ur Rehman
Video Editing on Linux Part 1: Background Video Resolutions
CMPE 152: Compiler Design ANTLR 4 and C++
Vector Processing => Multimedia
COMPUTER SOFT WARE Software is a set of electronic instructions that tells the computer how to do certain tasks. A set of instructions is often called.
VLIW DSP vs. SuperScalar Implementation of a Baseline H.263 Encoder
Visual Studio 2005 Options for Release Mode: C++, Fortran, Linker
Presentation transcript:

VIC Development National Center of High-performance Computing Barz Hsu 15 January 2007

Start Point Intend to develop high visual quality video tool Based on AccessGrid vic-2.8ucl Initial release of NCHC-VIC with  MPEG4 codec  Up to NTSC/PAL resolution  High-efficient render  Fullscreen mode  Linux version only

Timeline Develop NCHC-VIC from January 2004 to August 2005 Develop GStreamer-based media tools from June to August 2006 Merge NCHC-VIC to UCL code base from September to December 2006

Outlines Review NCHC-VIC Porting Issues Demos GStreamer based new media tools

NCHC-VIC Features Codec  MPEG4  H.264 Render  Xvideo  Swscale  Fullscreen Postprocess  Deinterlace  Deblocking  Colorspace conversion

MPEG4 FFmpeg encoder/decoder ME (motion estimation)  EPZS algorithm  QPEL CBR (constant bit rate) GOP (group of picture): 15 Low latency  No B-frame  rtp_callback  Old_latency = encoding_latency + tramsmission_latency  New_latency =~ encoding_latency/5 + tramsmission_latency Low CPU usage

MPEG4 (cont ’ d) IETF RFC 3640 RTP payload type 45 Rearrangement RTP packet buffer for only one frame Error resilience/concealment Compatible with VP Handy to use other codec such as  MPEG2, H.261, H.263, H.263+, DV, MJPEG, Theora

H.264 X264 encoder  Turn off CABAC save computation up to 30%, increasing coding bit rate around 15%  Inter-ME X264_ANALYSE_PSUB16x16  RC_METHOD X264_RC_ABR  i_direct_mv_pred X264_DIRECT_PRED_NONE  Deblocking filter  No B-frame  GOP is 20~50 frames

H.264 (cont ’ d) FFmpeg encoder FFmpeg decoder Each RTP packet is a collection of NAL units IETF RFC 3894? Compatibility?  Quicktime 、 VLC 、 inSORS Contributed by Champ Yeh and Barz Hsu from NCHC

Advanced UI Contributed by Morris Lin from NCHC

Accelerated Render XVideo+Shared memory Software scaling CPU capability runtime detection Win32/Win64, Linux, MacOSX Colorspace Conversion

SWSCALE: Software Scaling Libswscale  Shipping with FFmpeg and MPlayer Arbitrary resizing Bilinear interpolation Colorspace conversion  YUV420 to RGB32/RGB24/RGB16 for render  YUYV to YUV420 for grabber CPU multimedia instructions  Intel: MMX/MMX2/SSE/SSE2  AMD: 3D Now/3D Now2  PowerPC: Altivec Runtime CPU capability detection Speed up to 10X than pure C code

Xvideo Extension: Graphic Accelerated Render XFree86 X11 Extension Supported by Nvidia and ATI graphic card Direct YUV420 render  No colorspace conversion needed Perform image scaling and colorspace conversion by graphics Most efficient way Up to 40~100 videos at same time Automatically use swscale if xvideo no longer available

Fullscreen Boardless Light weight If graphics accelerated Dual head is fine Only for Windows and Linux

Fullscreen

Postprocess Provide better visual quality Remove coding artifact by specific encoders Deinterlace Deblocking Dering Automatic level  Use higher level of postprocessing if CPU usage is not full

Linux Port Nothing special! File size of statically linking binary is around 10MB Most robust and efficient version V4l grabber bugfix

Windows Port Visual Studio 2003 Inline assembly syntax different from GCC  AT&T v.s. INTEL Create DLLs and LIBs (import library) under Mingw/Cygwin  ffmpeg, x264, libswscale, libpostproc  Is it possbile to use sttatical linking? S-video, Composite input support correct framerate for win32 DS grabber

MacOSX Port Merge AG Aqua branch  Aqua and Quicktime framework Without X11 Use Aqua Tcl/Tk 8.4 shipped with MacOSX Native look Grabber-macosx  iSight, QuickCam support More robust than AG Aqua branch

MacOSX Port (cont ’ d)

Compilation Steps (Linux) Check out source code  svn co Configuration ./configure Check out FFmpeg with revision 7110 (Dec, 2007)  svn co -r 7110 svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg ./configure --enable-gpl --enable-swscaler --enable-pp Check out X264 with revision 600 (Dec, 2007)  svn co -r 600 svn://svn.videolan.org/x264/trunk x264  Options --with-ffmpeginc --with-ffmpeglib --with-x264inc --with-x264lib Build  make

Compilation Steps (MacOSX) Install TclTkAquaBI for Tcl/Tk  Configuration and Building Steps are same as Linux platform

Compilation Steps (Windows) Configuration ./configure Check out FFmpeg with revision 7110 (Dec, 2007)  svn co -r 7110 svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg ./configure --enable-mingw32 --enable-memalign-hack --enable-swscaler - -enable-gpl --enable-shared --disable-static Check out X264 with revision 600 (Dec, 2007)  svn co -r 600 svn://svn.videolan.org/x264/trunk x264 ./configure --enable-shared  Patch Makefile for generating DLL  add the 3-6 lines in SONAME targe  $(SONAME):.depend $(OBJS) $(OBJASM)  $(CC) -shared -o $(OBJS) $(OBJASM) -Wl,-soname,$(SONAME) $(LDFLAGS)  ifeq ($(SYS),MINGW)  $(CC) -shared -Wl,--output-def,libx264.def -o libx264.dll $(OBJS) $(OBJASM) lib /machine:i386 /def:libx264.def  endif

Compilation Steps (Windows) (cont ’ d)  Copy LIBs for VS2003 avcodec-51.lib avutil-49.lib libx264.lib postproc-51.lib swscale-0.lib  Copy DLLs to the path of excuteable avcodec-51.dll avutil-49.dll libx264.dll postproc-51.dll swscale-0.dll

Tcl/Tk 8.4 Multi-threading Tcl_init.tcl and tk_init.tcl files required Further work needed to embed the init scripts to binary It’s critical to call Tk_FindExecuteable() to locate init scripts for Windows platform

Open Issues?