<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-CA">
	<id>https://nmsl.cs.sfu.ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ssa121</id>
	<title>NMSL - User contributions [en-ca]</title>
	<link rel="self" type="application/atom+xml" href="https://nmsl.cs.sfu.ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ssa121"/>
	<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php/Special:Contributions/Ssa121"/>
	<updated>2026-05-24T02:10:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5291</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5291"/>
		<updated>2013-02-08T03:29:51Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* [Feb 7] 3D FVV over DASH */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Spring 2013 (RA) =&lt;br /&gt;
=== [Feb 7] 3D FVV over DASH ===&lt;br /&gt;
* Worked with Ahmed on surveying open source DASH tools and 3D video player tools for implementing the feature. Details are updated in the wiki page [http://nsl.cs.sfu.ca/wiki/index.php/Private:FTV here].&lt;br /&gt;
&lt;br /&gt;
= Fall 2012 (RA) =&lt;br /&gt;
=== [Nov20] Cloud rewrite project ===&lt;br /&gt;
* Worked on addressing the MMSys review comments for the project and submitted the updated report to ICDCS'13. Report also available in svn [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/Cloud/avcRewriter/documents/techReps/icdcs13/ here].&lt;br /&gt;
&lt;br /&gt;
=== [Oct29] Adaptable Video Caching ===&lt;br /&gt;
* I obtained medisyn source code from one of the authors and investigated it. However, it does not have some of the features like scalable video description that we need for creating a DASH benchmark. I also came across some papers which describe important features like partial download of popular vod applications like Youtube. Consequently I am preparing a workload incorporating there features and currently investigating the byte-range queries in HTTP steaming.&lt;br /&gt;
&lt;br /&gt;
=== [Oct12] Adaptable Video Caching ===&lt;br /&gt;
* I investigated caching policies for the general problem of adaptable and segmented media content caching at edge-proxies. The term adaptable refers to content that are adapted to user’s requirement at the edge location. Adaptation can be in terms of codec specific operations like H.264 rewriting, more generic transcoding or even video scaling/retargeting. Caching a segment of video makes more sense as entire video files are huge and more often only a part of it is viewed. There have been many work on the segmented video caching but it is more relevant now as DASH becomes the de-facto streaming protocol. Our particular caching scenario is different than previous caching problems because it needs to consider four characteristics of the system: miss-penalty, segment- size, segment-class(SVC or AVC) and temporal correlation between segments. The metrics of performance are byte-hit-rate, cost and user-perceived latency. As LRU and LFU are the most popular caching policies we should start by investigating how these two policies perform in our caching scenario, particularly how the aforementioned four parameters affect the performance of the two policies. Then we can further investigate to design our own algorithm that improves performance by giving consideration to all  the four requirements.&lt;br /&gt;
* There are very few works on size, class and temporal correlation aware caching. The cost for our caching scenario is also different that the normal caching problem where higher latency is usually used as the metric of penalty. In our case it will be cost of bandwidth and processing in addition to latency. I tried mathematically analyzing the problem but due to the large number of variables reaching a closed form expression for the caching goal proved to be difficult. One experimental approach is to divide the cache into two regions for SVC and AVC and operate LRU/LFU in each region separately. I am currently looking for a good synthetic media access trace generator to get some idea about this scheme’s performance.&lt;br /&gt;
&lt;br /&gt;
* I came across several papers referring to MediSyn from HP Labs but I don’t seem to find a download link for the same. I am avoiding use of general web access generators like ProWGen. The best will be if we can get some traces of our own by tracking Youtube usage on campus but I don’t know whether this is feasible. I am also trying to improve my simulator to accommodate this but validation through an external system/trace will be better.&lt;br /&gt;
&lt;br /&gt;
=== [Sep27] Proposed extensions to cloud-rewrite project: ===&lt;br /&gt;
* Model the relationship between the GoP video parameters and VM capability information to accurately estimate the processing times. Currently this is being done in an ad-hoc manner. Maybe we can apply machine learning/ neural networks framework for this. The training phase can be done off-line. We note that this is different that computing the GoP-to-VM assignment. However, we can apply machine learning framework for finding the assignment of VMs too.&lt;br /&gt;
&lt;br /&gt;
* Derive the full mathematical model for the caching cost. This model currently uses simulation to find the cache replacement probability values. We should try to derive them analytically. One challenge is that the file sizes of media chunks are going to be different which is much harder to model than if we assume them to be same. Need to look into cache-algorithm literature.&lt;br /&gt;
&lt;br /&gt;
* We did not conduct any experiments to measure the latency performance of our solution. This is one area that we can look at. But it will require a more elaborate experimental setup. Better if we perform our experiments with VoD access traces than simulation.&lt;br /&gt;
&lt;br /&gt;
= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5290</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5290"/>
		<updated>2013-02-08T03:29:34Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* [Feb 7] 3D FVV over DASH */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Spring 2013 (RA) =&lt;br /&gt;
=== [Feb 7] 3D FVV over DASH ===&lt;br /&gt;
* Worked with Ahmed on surveying open source DASH tools and 3D video player tools for implementing the feature. Details are updated int he wiki page [http://nsl.cs.sfu.ca/wiki/index.php/Private:FTV here].&lt;br /&gt;
&lt;br /&gt;
= Fall 2012 (RA) =&lt;br /&gt;
=== [Nov20] Cloud rewrite project ===&lt;br /&gt;
* Worked on addressing the MMSys review comments for the project and submitted the updated report to ICDCS'13. Report also available in svn [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/Cloud/avcRewriter/documents/techReps/icdcs13/ here].&lt;br /&gt;
&lt;br /&gt;
=== [Oct29] Adaptable Video Caching ===&lt;br /&gt;
* I obtained medisyn source code from one of the authors and investigated it. However, it does not have some of the features like scalable video description that we need for creating a DASH benchmark. I also came across some papers which describe important features like partial download of popular vod applications like Youtube. Consequently I am preparing a workload incorporating there features and currently investigating the byte-range queries in HTTP steaming.&lt;br /&gt;
&lt;br /&gt;
=== [Oct12] Adaptable Video Caching ===&lt;br /&gt;
* I investigated caching policies for the general problem of adaptable and segmented media content caching at edge-proxies. The term adaptable refers to content that are adapted to user’s requirement at the edge location. Adaptation can be in terms of codec specific operations like H.264 rewriting, more generic transcoding or even video scaling/retargeting. Caching a segment of video makes more sense as entire video files are huge and more often only a part of it is viewed. There have been many work on the segmented video caching but it is more relevant now as DASH becomes the de-facto streaming protocol. Our particular caching scenario is different than previous caching problems because it needs to consider four characteristics of the system: miss-penalty, segment- size, segment-class(SVC or AVC) and temporal correlation between segments. The metrics of performance are byte-hit-rate, cost and user-perceived latency. As LRU and LFU are the most popular caching policies we should start by investigating how these two policies perform in our caching scenario, particularly how the aforementioned four parameters affect the performance of the two policies. Then we can further investigate to design our own algorithm that improves performance by giving consideration to all  the four requirements.&lt;br /&gt;
* There are very few works on size, class and temporal correlation aware caching. The cost for our caching scenario is also different that the normal caching problem where higher latency is usually used as the metric of penalty. In our case it will be cost of bandwidth and processing in addition to latency. I tried mathematically analyzing the problem but due to the large number of variables reaching a closed form expression for the caching goal proved to be difficult. One experimental approach is to divide the cache into two regions for SVC and AVC and operate LRU/LFU in each region separately. I am currently looking for a good synthetic media access trace generator to get some idea about this scheme’s performance.&lt;br /&gt;
&lt;br /&gt;
* I came across several papers referring to MediSyn from HP Labs but I don’t seem to find a download link for the same. I am avoiding use of general web access generators like ProWGen. The best will be if we can get some traces of our own by tracking Youtube usage on campus but I don’t know whether this is feasible. I am also trying to improve my simulator to accommodate this but validation through an external system/trace will be better.&lt;br /&gt;
&lt;br /&gt;
=== [Sep27] Proposed extensions to cloud-rewrite project: ===&lt;br /&gt;
* Model the relationship between the GoP video parameters and VM capability information to accurately estimate the processing times. Currently this is being done in an ad-hoc manner. Maybe we can apply machine learning/ neural networks framework for this. The training phase can be done off-line. We note that this is different that computing the GoP-to-VM assignment. However, we can apply machine learning framework for finding the assignment of VMs too.&lt;br /&gt;
&lt;br /&gt;
* Derive the full mathematical model for the caching cost. This model currently uses simulation to find the cache replacement probability values. We should try to derive them analytically. One challenge is that the file sizes of media chunks are going to be different which is much harder to model than if we assume them to be same. Need to look into cache-algorithm literature.&lt;br /&gt;
&lt;br /&gt;
* We did not conduct any experiments to measure the latency performance of our solution. This is one area that we can look at. But it will require a more elaborate experimental setup. Better if we perform our experiments with VoD access traces than simulation.&lt;br /&gt;
&lt;br /&gt;
= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5289</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5289"/>
		<updated>2013-02-08T03:28:47Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Fall 2012 (RA) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Spring 2013 (RA) =&lt;br /&gt;
=== [Feb 7] 3D FVV over DASH ===&lt;br /&gt;
* Worked with Ahmed on surveying open source DASH tools and 3D video player tools for implementing the feature. Details are updated int he wiki page here.&lt;br /&gt;
= Fall 2012 (RA) =&lt;br /&gt;
=== [Nov20] Cloud rewrite project ===&lt;br /&gt;
* Worked on addressing the MMSys review comments for the project and submitted the updated report to ICDCS'13. Report also available in svn [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/Cloud/avcRewriter/documents/techReps/icdcs13/ here].&lt;br /&gt;
&lt;br /&gt;
=== [Oct29] Adaptable Video Caching ===&lt;br /&gt;
* I obtained medisyn source code from one of the authors and investigated it. However, it does not have some of the features like scalable video description that we need for creating a DASH benchmark. I also came across some papers which describe important features like partial download of popular vod applications like Youtube. Consequently I am preparing a workload incorporating there features and currently investigating the byte-range queries in HTTP steaming.&lt;br /&gt;
&lt;br /&gt;
=== [Oct12] Adaptable Video Caching ===&lt;br /&gt;
* I investigated caching policies for the general problem of adaptable and segmented media content caching at edge-proxies. The term adaptable refers to content that are adapted to user’s requirement at the edge location. Adaptation can be in terms of codec specific operations like H.264 rewriting, more generic transcoding or even video scaling/retargeting. Caching a segment of video makes more sense as entire video files are huge and more often only a part of it is viewed. There have been many work on the segmented video caching but it is more relevant now as DASH becomes the de-facto streaming protocol. Our particular caching scenario is different than previous caching problems because it needs to consider four characteristics of the system: miss-penalty, segment- size, segment-class(SVC or AVC) and temporal correlation between segments. The metrics of performance are byte-hit-rate, cost and user-perceived latency. As LRU and LFU are the most popular caching policies we should start by investigating how these two policies perform in our caching scenario, particularly how the aforementioned four parameters affect the performance of the two policies. Then we can further investigate to design our own algorithm that improves performance by giving consideration to all  the four requirements.&lt;br /&gt;
* There are very few works on size, class and temporal correlation aware caching. The cost for our caching scenario is also different that the normal caching problem where higher latency is usually used as the metric of penalty. In our case it will be cost of bandwidth and processing in addition to latency. I tried mathematically analyzing the problem but due to the large number of variables reaching a closed form expression for the caching goal proved to be difficult. One experimental approach is to divide the cache into two regions for SVC and AVC and operate LRU/LFU in each region separately. I am currently looking for a good synthetic media access trace generator to get some idea about this scheme’s performance.&lt;br /&gt;
&lt;br /&gt;
* I came across several papers referring to MediSyn from HP Labs but I don’t seem to find a download link for the same. I am avoiding use of general web access generators like ProWGen. The best will be if we can get some traces of our own by tracking Youtube usage on campus but I don’t know whether this is feasible. I am also trying to improve my simulator to accommodate this but validation through an external system/trace will be better.&lt;br /&gt;
&lt;br /&gt;
=== [Sep27] Proposed extensions to cloud-rewrite project: ===&lt;br /&gt;
* Model the relationship between the GoP video parameters and VM capability information to accurately estimate the processing times. Currently this is being done in an ad-hoc manner. Maybe we can apply machine learning/ neural networks framework for this. The training phase can be done off-line. We note that this is different that computing the GoP-to-VM assignment. However, we can apply machine learning framework for finding the assignment of VMs too.&lt;br /&gt;
&lt;br /&gt;
* Derive the full mathematical model for the caching cost. This model currently uses simulation to find the cache replacement probability values. We should try to derive them analytically. One challenge is that the file sizes of media chunks are going to be different which is much harder to model than if we assume them to be same. Need to look into cache-algorithm literature.&lt;br /&gt;
&lt;br /&gt;
* We did not conduct any experiments to measure the latency performance of our solution. This is one area that we can look at. But it will require a more elaborate experimental setup. Better if we perform our experiments with VoD access traces than simulation.&lt;br /&gt;
&lt;br /&gt;
= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5246</id>
		<title>Private:FTV</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5246"/>
		<updated>2013-02-02T01:39:17Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the envisioned free-viewpoint TV system, including: design decisions, useful resources, tools, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
*'''[Meeting on:2/1]'''&lt;br /&gt;
** Decided to use Bino player for the end deocding/demo of 3D FTV. There is a plugin for 3D video for VLC but at this time it looks less stable than Bino.&lt;br /&gt;
** For our initial version, decided to use multiple independent AVC encoded streams for streaming the different views. This is going to result in less compression than MVC encoded streams but right now we don't have real time MVC decoding support in any media player.&lt;br /&gt;
** Decided on using the libDASH API for implementing the client side DASH components and adaptation logic. Since, at any given point in time there are going to be two views being downloaded we need tow instances of libDASH on the client side&lt;br /&gt;
** Decided to use DASHEncoder for DASH content and MPD generation at server side.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''[Som:1/28]''' MySQL is not required for DASHEncoder but it only implements 'isoff-basic-on-demand' profile while we need the 'stereoid' profile. We can start with the MPD described for 3 view video in MPEG-DASH standard[Section G.4, pp 120]. If we leave out audio for the time being, from the code base of DASHEncoder it seems the major work will be in replacing x264 relevant parts with JMVC and updating the MP4Box related parts. Does MP4Box support the files generated by JMVC? if not we need further code to implement the ISOBFF parts for JMVC generated bitstream. This is the first thing we need working : Add H.264/MVC bitsream into mp4 container and check if the mp4 file can be played back by any player. For generating the mvc bistream we should select a test sequence with at least three views (c1,c2,c3) such that (c1+c2) and (c2+c3) produce stereo views.&lt;br /&gt;
* '''[Ahmed:1/28]''' Added detailed description of creating proper content for the 3D display.&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/ Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
* [http://www.sfu.ca/~aah10/ Ahmed Hamza]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~ssa121/personal/ Somsubhra Sharangi]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Target 3D Display ==&lt;br /&gt;
&lt;br /&gt;
The Dimenco auto-stereoscopic display accepts a 2D+Z image (also known as V+D for videos). The video frame containing the texture component is combined with a depth map. The two components (texture and depth) are concatenated together to after reducing the width of each by half. The video frames are then compressed and the resulting file is renamed with the extension '''.s3d''' so that the player can detect that it is in the 2D+Z format. This extension makes sure that the Dimenco 3D Player sets the display in 3D mode with the correct settings. The Dimenco 3D Player can also display 3D images in the 2D+Z format. These images should be RGB (24-bit uncompressed) BMP files that are renamed to have the extension '''.b3d'''.&lt;br /&gt;
&lt;br /&gt;
The total resolution for the input video should be 1920x540. The left half (with a resolution of 960x540) contains a 2D RGB image and the the right half (also with a 960x540 resolution) contains a grey scale image representing the depth map. It should be noted that the grey scale image is still a 24-bit  (i.e., three channel) picture. Therefore, the R, G, and B bytes of the depth map have the same value.&lt;br /&gt;
&lt;br /&gt;
The first step in preparing the content is resizing each of the two components to a resolution of 960x540. This can be achieved using ImageMagick tools (namely, using the convert utility). An example is given below (note that adding the character '''!''' to the size forces '''-resize''' to ignore the aspect ratio and distort the image so it always generates an image exactly the size specified).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
convert Dancer_color_1920x1088.bmp -resize 960x540\! Dancer_color_960x540.bmp&lt;br /&gt;
convert Dancer_depth_1920x1088.bmp -resize 960x540\! Dancer_depth_960x540.bmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once we have the two components in the correct size, we then need to combine them together (side-by-side) into a single image of size 1920x540. This can be done using another ImageMagick utility called ''montage''. Then -mode concatenate option tells montage to just glue the together and the '''-tile''' option can be used to specify the layout it should use. If the layout is not specified, the default is to concatenate the images horizontally (side-by-side).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
montage -mode concatenate Dancer_color_960x540.bmp Dancer_depth_960x540.bmp Dancer_2dz_1920x540.bmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, the resulting image should be renamed with the extension '''.b3d'''. If the images are frames from a YUV sequence, they can be extracted using '''ffmpeg''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ffmpeg -s 1920x1088 -i Dancer_c_5_1920x1088.yuv -r 1 -t 00:00:30 -f image2 ~/Dancer_color_1920x1088.bmp&lt;br /&gt;
ffmpeg -s 1920x1088 -i Dancer_d_5_1920x1088.yuv -r 1 -t 00:00:30 -f image2 ~/Dancer_depth_1920x1088.bmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is mentioned that the frames should be prepared as a sequence of bitmap images. However, I don't believe that this is mandatory. It should be possible to prepare them as YUV sequences as well. But to follow the guidelines, I describe here the process using bitmap images.&lt;br /&gt;
&lt;br /&gt;
The following script performs the resizing on all the frames of one component. It is assumed that the filename of the frame contains its number and the user specifies the range of frames to be resized as well as the target directory to save the resized frames. We can place the resized frames of both components in the same target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
FILENAME=$1&lt;br /&gt;
FRAME_START=$2&lt;br /&gt;
FRAME_END=$3&lt;br /&gt;
WIDTH=$4&lt;br /&gt;
HEIGHT=$5&lt;br /&gt;
TARGET_DIRECTORY=$6&lt;br /&gt;
&lt;br /&gt;
for i in `seq -w $FRAME_START $FRAME_END`;&lt;br /&gt;
do&lt;br /&gt;
        F=$(echo &amp;quot;${FILENAME}$i.bmp&amp;quot;)&lt;br /&gt;
        convert $F -resize ${WIDTH}x${HEIGHT}\! ${TARGET_DIRECTORY}/$F&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, to combine the texture frame with the corresponding depth frame, the following script can be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
SEQ_NAME=$1&lt;br /&gt;
FILENAME=$2&lt;br /&gt;
FRAME_START=$3&lt;br /&gt;
FRAME_END=$4&lt;br /&gt;
TARGET_DIRECTORY=$5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for i in `seq -w $FRAME_START $FRAME_END`;&lt;br /&gt;
do&lt;br /&gt;
        COLOR=$(echo &amp;quot;color-${FILENAME}$i.bmp&amp;quot;)&lt;br /&gt;
        DEPTH=$(echo &amp;quot;depth-${FILENAME}$i.bmp&amp;quot;)&lt;br /&gt;
        montage -mode concatenate $COLOR $DEPTH ${TARGET_DIRECTORY}/${SEQ_NAME}_2dz_1920x540_f${i}.bmp&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we can use WMEncoder or ffmpeg to encode the frames. I personally prefer ffmpeg. We need to generate an uncompressed AVI file from the combined frames. This can be achieved using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ffmpeg -i BALLET_2dz_1920x540_f%02d.bmp -vcodec rawvideo -y ballet_2dz_1920x540.avi &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then perform video compression and place the result in a VOB container.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ffmpeg -i ballet_2dz_1920x540.avi -vcodec mpeg2video -b 24000 -bt 16000 -aspect 32:9 -s 1920x540 -y ballet_2dz_1920x540.s3d.vob&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The option '''-hq''' was mentioned in the documentation. However, this option seems to be no longer supported by '''ffmpeg'''. You can try using '''-mbd 1''' instead of '''-hq'''.&lt;br /&gt;
&lt;br /&gt;
Finally, we convert the VOB file to a WMV file. A fairly simple way of doing this is using '''ffmpeg''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ffmpeg -i filename.vob -vcodec wmv2 -acodec wmav2 -sameq -s 720x576 filename.wmv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DASH Options ==&lt;br /&gt;
&lt;br /&gt;
* Apple's HTTP Live Streaming (HLS)&lt;br /&gt;
&lt;br /&gt;
* MPEG-DASH specification ([http://standards.iso.org/ittf/PubliclyAvailableStandards/ ISO/IEC 23009-1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software and  Data ==&lt;br /&gt;
&lt;br /&gt;
* Joint Multiview Video Coder (JMVC) &lt;br /&gt;
&lt;br /&gt;
* GPAC &lt;br /&gt;
** [http://gpac.wp.mines-telecom.fr/ Homepage]&lt;br /&gt;
** [http://records.sigmm.ndlab.net/2012/12/open-source-column-gpac/ Overiew in ACM SIGMM Records]&lt;br /&gt;
** [https://github.com/slederer/DASHEncoder DASHEncoder]&lt;br /&gt;
&lt;br /&gt;
* [http://bino3d.org/index.html Bino] 3D video player&lt;br /&gt;
&lt;br /&gt;
* [http://ffmpeg.org/trac/ffmpeg/wiki/x264EncodingGuide FFmpeg and x264 Encoding Guide]&lt;br /&gt;
** Example: Encoding MSR video sequences views (can use '''-qp 0''' or '''-crf 0''' to encode a lossless output):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ffmpeg -i color-cam2-f%03d.bmp -c:v libx264 -preset slow -crf 22 -r 10 -c:a copy cam2.mp4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* A. Vetro and I. Sodagar, ''The MPEG-DASH Standard for Multimedia Streaming over the Internet'', IEEE Multimedia, 2011&lt;br /&gt;
* T. Stockhammer, ''Dynamic Adaptive Streaming over HTTP - Standards and Design Principles'', Proc. of ACM Multimedia Systems, 2011&lt;br /&gt;
* [http://www.coast-fp7.eu/public/COAST_D5.2_HHI_FF2_20120521.pdf ''Deliverable 5.2: Media Signalling Specification for 3D Video Content Types''], COAST Project&lt;br /&gt;
* G. Park, J. Lee, G. Lee, and K. Kim, ''Efficient 3D Adaptive HTTP Streaming Scheme over Internet TV'', Proc. of IEEE International Symposium on Broadband Multimedia Systems and Broadcasting (BMSB), 2012&lt;br /&gt;
* C. Müller and C. Timmerer, ''A VLC Media Player Plugin enabling Dynamic Adaptive Streaming over HTTP'', Proc. of ACM Multimedia, 2011&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5243</id>
		<title>Private:FTV</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5243"/>
		<updated>2013-02-02T01:29:14Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the envisioned free-viewpoint TV system, including: design decisions, useful resources, tools, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
*'''[Meeting on:2/1]'''&lt;br /&gt;
* '''[Som:1/28]''' MySQL is not required for DASHEncoder but it only implements 'isoff-basic-on-demand' profile while we need the 'stereoid' profile. We can start with the MPD described for 3 view video in MPEG-DASH standard[Section G.4, pp 120]. If we leave out audio for the time being, from the code base of DASHEncoder it seems the major work will be in replacing x264 relevant parts with JMVC and updating the MP4Box related parts. Does MP4Box support the files generated by JMVC? if not we need further code to implement the ISOBFF parts for JMVC generated bitstream. This is the first thing we need working : Add H.264/MVC bitsream into mp4 container and check if the mp4 file can be played back by any player. For generating the mvc bistream we should select a test sequence with at least three views (c1,c2,c3) such that (c1+c2) and (c2+c3) produce stereo views.&lt;br /&gt;
* '''[Ahmed:1/28]''' Added detailed description of creating proper content for the 3D display.&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/ Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
* [http://www.sfu.ca/~aah10/ Ahmed Hamza]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~ssa121/personal/ Somsubhra Sharangi]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Target 3D Display ==&lt;br /&gt;
&lt;br /&gt;
The Dimenco auto-stereoscopic display accepts a 2D+Z image (also known as V+D for videos). The video frame containing the texture component is combined with a depth map. The two components (texture and depth) are concatenated together to after reducing the width of each by half. The video frames are then compressed and the resulting file is renamed with the extension '''.s3d''' so that the player can detect that it is in the 2D+Z format. This extension makes sure that the Dimenco 3D Player sets the display in 3D mode with the correct settings. The Dimenco 3D Player can also display 3D images in the 2D+Z format. These images should be RGB (24-bit uncompressed) BMP files that are renamed to have the extension '''.b3d'''.&lt;br /&gt;
&lt;br /&gt;
The total resolution for the input video should be 1920x540. The left half (with a resolution of 960x540) contains a 2D RGB image and the the right half (also with a 960x540 resolution) contains a grey scale image representing the depth map. It should be noted that the grey scale image is still a 24-bit  (i.e., three channel) picture. Therefore, the R, G, and B bytes of the depth map have the same value.&lt;br /&gt;
&lt;br /&gt;
The first step in preparing the content is resizing each of the two components to a resolution of 960x540. This can be achieved using ImageMagick tools (namely, using the convert utility). An example is given below (note that adding the character '''!''' to the size forces '''-resize''' to ignore the aspect ratio and distort the image so it always generates an image exactly the size specified).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
convert Dancer_color_1920x1088.bmp -resize 960x540\! Dancer_color_960x540.bmp&lt;br /&gt;
convert Dancer_depth_1920x1088.bmp -resize 960x540\! Dancer_depth_960x540.bmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once we have the two components in the correct size, we then need to combine them together (side-by-side) into a single image of size 1920x540. This can be done using another ImageMagick utility called ''montage''. Then -mode concatenate option tells montage to just glue the together and the '''-tile''' option can be used to specify the layout it should use. If the layout is not specified, the default is to concatenate the images horizontally (side-by-side).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
montage -mode concatenate Dancer_color_960x540.bmp Dancer_depth_960x540.bmp Dancer_2dz_1920x540.bmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, the resulting image should be renamed with the extension '''.b3d'''. If the images are frames from a YUV sequence, they can be extracted using '''ffmpeg''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ffmpeg -s 1920x1088 -i Dancer_c_5_1920x1088.yuv -r 1 -t 00:00:30 -f image2 ~/Dancer_color_1920x1088.bmp&lt;br /&gt;
ffmpeg -s 1920x1088 -i Dancer_d_5_1920x1088.yuv -r 1 -t 00:00:30 -f image2 ~/Dancer_depth_1920x1088.bmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is mentioned that the frames should be prepared as a sequence of bitmap images. However, I don't believe that this is mandatory. It should be possible to prepare them as YUV sequences as well. But to follow the guidelines, I describe here the process using bitmap images.&lt;br /&gt;
&lt;br /&gt;
The following script performs the resizing on all the frames of one component. It is assumed that the filename of the frame contains its number and the user specifies the range of frames to be resized as well as the target directory to save the resized frames. We can place the resized frames of both components in the same target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
FILENAME=$1&lt;br /&gt;
FRAME_START=$2&lt;br /&gt;
FRAME_END=$3&lt;br /&gt;
WIDTH=$4&lt;br /&gt;
HEIGHT=$5&lt;br /&gt;
TARGET_DIRECTORY=$6&lt;br /&gt;
&lt;br /&gt;
for i in `seq -w $FRAME_START $FRAME_END`;&lt;br /&gt;
do&lt;br /&gt;
        F=$(echo &amp;quot;${FILENAME}$i.bmp&amp;quot;)&lt;br /&gt;
        convert $F -resize ${WIDTH}x${HEIGHT}\! ${TARGET_DIRECTORY}/$F&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, to combine the texture frame with the corresponding depth frame, the following script can be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
SEQ_NAME=$1&lt;br /&gt;
FILENAME=$2&lt;br /&gt;
FRAME_START=$3&lt;br /&gt;
FRAME_END=$4&lt;br /&gt;
TARGET_DIRECTORY=$5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for i in `seq -w $FRAME_START $FRAME_END`;&lt;br /&gt;
do&lt;br /&gt;
        COLOR=$(echo &amp;quot;color-${FILENAME}$i.bmp&amp;quot;)&lt;br /&gt;
        DEPTH=$(echo &amp;quot;depth-${FILENAME}$i.bmp&amp;quot;)&lt;br /&gt;
        montage -mode concatenate $COLOR $DEPTH ${TARGET_DIRECTORY}/${SEQ_NAME}_2dz_1920x540_f${i}.bmp&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we can use WMEncoder or ffmpeg to encode the frames. I personally prefer ffmpeg. We need to generate an uncompressed AVI file from the combined frames. This can be achieved using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ffmpeg -i BALLET_2dz_1920x540_f%02d.bmp -vcodec rawvideo -y ballet_2dz_1920x540.avi &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then perform video compression and place the result in a VOB container.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ffmpeg -i ballet_2dz_1920x540.avi -vcodec mpeg2video -b 24000 -bt 16000 -aspect 32:9 -s 1920x540 -y ballet_2dz_1920x540.s3d.vob&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The option '''-hq''' was mentioned in the documentation. However, this option seems to be no longer supported by '''ffmpeg'''. You can try using '''-mbd 1''' instead of '''-hq'''.&lt;br /&gt;
&lt;br /&gt;
Finally, we convert the VOB file to a WMV file. A fairly simple way of doing this is using '''ffmpeg''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ffmpeg -i filename.vob -vcodec wmv2 -acodec wmav2 -sameq -s 720x576 filename.wmv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DASH Options ==&lt;br /&gt;
&lt;br /&gt;
* Apple's HTTP Live Streaming (HLS)&lt;br /&gt;
&lt;br /&gt;
* MPEG-DASH specification ([http://standards.iso.org/ittf/PubliclyAvailableStandards/ ISO/IEC 23009-1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software and  Data ==&lt;br /&gt;
&lt;br /&gt;
* Joint Multiview Video Coder (JMVC) &lt;br /&gt;
&lt;br /&gt;
* GPAC &lt;br /&gt;
** [http://gpac.wp.mines-telecom.fr/ Homepage]&lt;br /&gt;
** [http://records.sigmm.ndlab.net/2012/12/open-source-column-gpac/ Overiew in ACM SIGMM Records]&lt;br /&gt;
** [https://github.com/slederer/DASHEncoder DASHEncoder]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* A. Vetro and I. Sodagar, ''The MPEG-DASH Standard for Multimedia Streaming over the Internet'', IEEE Multimedia, 2011&lt;br /&gt;
* T. Stockhammer, ''Dynamic Adaptive Streaming over HTTP - Standards and Design Principles'', Proc. of ACM Multimedia Systems, 2011&lt;br /&gt;
* [http://www.coast-fp7.eu/public/COAST_D5.2_HHI_FF2_20120521.pdf ''Deliverable 5.2: Media Signalling Specification for 3D Video Content Types''], COAST Project&lt;br /&gt;
* G. Park, J. Lee, G. Lee, and K. Kim, ''Efficient 3D Adaptive HTTP Streaming Scheme over Internet TV'', Proc. of IEEE International Symposium on Broadband Multimedia Systems and Broadcasting (BMSB), 2012&lt;br /&gt;
* C. Müller and C. Timmerer, ''A VLC Media Player Plugin enabling Dynamic Adaptive Streaming over HTTP'', Proc. of ACM Multimedia, 2011&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5239</id>
		<title>Private:FTV</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5239"/>
		<updated>2013-01-29T17:50:39Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the envisioned free-viewpoint TV system, including: design decisions, useful resources, tools, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
*[Som:1/28] MySQL is not required for DASHEncoder but it only implements 'isoff-basic-on-demand' profile while we need the 'stereoid' profile. We can start with the MPD described for 3 view video in MPEG-DASH standard[Section G.4, pp 120]. If we leave out audio for the time being, from the code base of DASHEncoder it seems the major work will be in replacing x264 relevant parts with JMVC and updating the MP4Box related parts. Does MP4Box support the files generated by JMVC? if not we need further code to implement the ISOBFF parts for JMVC generated bitstream. This is the first thing we need working : Add H.264/MVC bitsream into mp4 container and check if the mp4 file can be played back by any player. For generating the mvc bistream we should select a test sequence with at least three views (c1,c2,c3) such that (c1+c2) and (c2+c3) produce stereo views.&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/ Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
* [http://www.sfu.ca/~aah10/ Ahmed Hamza]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~ssa121/personal/ Somsubhra Sharangi]&lt;br /&gt;
&lt;br /&gt;
== Target 3D Display ==&lt;br /&gt;
&lt;br /&gt;
* Formats and decoding..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DASH Options ==&lt;br /&gt;
&lt;br /&gt;
* HLS&lt;br /&gt;
&lt;br /&gt;
* MPEG-DASH specification ([http://standards.iso.org/ittf/PubliclyAvailableStandards/ ISO/IEC 23009-1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software and  Data ==&lt;br /&gt;
&lt;br /&gt;
* Joint Multiview Video Coder (JMVC) &lt;br /&gt;
&lt;br /&gt;
* GPAC &lt;br /&gt;
** [http://gpac.wp.mines-telecom.fr/ Homepage]&lt;br /&gt;
** [http://records.sigmm.ndlab.net/2012/12/open-source-column-gpac/ Overiew in ACM SIGMM Records]&lt;br /&gt;
** [https://github.com/slederer/DASHEncoder DASHEncoder]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* A. Vetro and I. Sodagar, ''The MPEG-DASH Standard for Multimedia Streaming over the Internet'', IEEE Multimedia, 2011&lt;br /&gt;
* T. Stockhammer, ''Dynamic Adaptive Streaming over HTTP - Standards and Design Principles'', Proc. of ACM Multimedia Systems, 2011&lt;br /&gt;
* [http://www.coast-fp7.eu/public/COAST_D5.2_HHI_FF2_20120521.pdf ''Deliverable 5.2: Media Signalling Specification for 3D Video Content Types''], COAST Project&lt;br /&gt;
* G. Park, J. Lee, G. Lee, and K. Kim, ''Efficient 3D Adaptive HTTP Streaming Scheme over Internet TV'', Proc. of IEEE International Symposium on Broadband Multimedia Systems and Broadcasting (BMSB), 2012&lt;br /&gt;
* C. Müller and C. Timmerer, ''A VLC Media Player Plugin enabling Dynamic Adaptive Streaming over HTTP'', Proc. of ACM Multimedia, 2011&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5238</id>
		<title>Private:FTV</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5238"/>
		<updated>2013-01-29T17:50:10Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the envisioned free-viewpoint TV system, including: design decisions, useful resources, tools, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
*[Som:1/28] MySQL is not required for DASHEncoder but it only implements 'isoff-basic-on-demand' profile while we need the 'stereoid' profile. We can start with the MPD described for 3 view video in MPEG-DASH standard[Section G.4, pp 120]. If we leave out audio for the time being, from the code base of DASHEncoder it seems the major work will be in replacing x264 relevant parts with JMVC and updating the MP4Box related parts. Does MP4Box support the files generated by JMVC? if not we need further code to implement the ISOBFF parts for JMVC generated bitstream. This is the first thing we need working : Add H.264/MVC bitsream into mp4 container and check if the mp4 file can be played back by any player. For generating the mvc bistream we should select a test sequence with three views (c1,c2,c3) such that (c1+c2) and (c2+c3) produce stereo views.&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/ Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
* [http://www.sfu.ca/~aah10/ Ahmed Hamza]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~ssa121/personal/ Somsubhra Sharangi]&lt;br /&gt;
&lt;br /&gt;
== Target 3D Display ==&lt;br /&gt;
&lt;br /&gt;
* Formats and decoding..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DASH Options ==&lt;br /&gt;
&lt;br /&gt;
* HLS&lt;br /&gt;
&lt;br /&gt;
* MPEG-DASH specification ([http://standards.iso.org/ittf/PubliclyAvailableStandards/ ISO/IEC 23009-1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software and  Data ==&lt;br /&gt;
&lt;br /&gt;
* Joint Multiview Video Coder (JMVC) &lt;br /&gt;
&lt;br /&gt;
* GPAC &lt;br /&gt;
** [http://gpac.wp.mines-telecom.fr/ Homepage]&lt;br /&gt;
** [http://records.sigmm.ndlab.net/2012/12/open-source-column-gpac/ Overiew in ACM SIGMM Records]&lt;br /&gt;
** [https://github.com/slederer/DASHEncoder DASHEncoder]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* A. Vetro and I. Sodagar, ''The MPEG-DASH Standard for Multimedia Streaming over the Internet'', IEEE Multimedia, 2011&lt;br /&gt;
* T. Stockhammer, ''Dynamic Adaptive Streaming over HTTP - Standards and Design Principles'', Proc. of ACM Multimedia Systems, 2011&lt;br /&gt;
* [http://www.coast-fp7.eu/public/COAST_D5.2_HHI_FF2_20120521.pdf ''Deliverable 5.2: Media Signalling Specification for 3D Video Content Types''], COAST Project&lt;br /&gt;
* G. Park, J. Lee, G. Lee, and K. Kim, ''Efficient 3D Adaptive HTTP Streaming Scheme over Internet TV'', Proc. of IEEE International Symposium on Broadband Multimedia Systems and Broadcasting (BMSB), 2012&lt;br /&gt;
* C. Müller and C. Timmerer, ''A VLC Media Player Plugin enabling Dynamic Adaptive Streaming over HTTP'', Proc. of ACM Multimedia, 2011&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5237</id>
		<title>Private:FTV</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5237"/>
		<updated>2013-01-29T11:28:19Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the envisioned free-viewpoint TV system, including: design decisions, useful resources, tools, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
*[Som:1/28] MySQL is not required for DASHEncoder but it only implements 'isoff-basic-on-demand' profile while we need the 'stereoid' profile. We can start with the MPD described for 3 view video in MPEG-DASH standard[Section G.4, pp 120]. If we leave out audio for the time being, from the code base of DASHEncoder it seems the major work will be in replacing x264 relevant parts with JMVC and updating the MP4Box related parts. Does MP4Box support the files generated by JMVC? if not we need further code to implement the ISOBFF parts for JMVC generated bitstream. This is the first thing we need working : Add H.264/MVC bitsream into mp4 container and check if the mp4 file can be played back by any player.&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/ Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
* [http://www.sfu.ca/~aah10/ Ahmed Hamza]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~ssa121/personal/ Somsubhra Sharangi]&lt;br /&gt;
&lt;br /&gt;
== Target 3D Display ==&lt;br /&gt;
&lt;br /&gt;
* Formats and decoding..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DASH Options ==&lt;br /&gt;
&lt;br /&gt;
* HLS&lt;br /&gt;
&lt;br /&gt;
* MPEG-DASH specification ([http://standards.iso.org/ittf/PubliclyAvailableStandards/ ISO/IEC 23009-1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software and  Data ==&lt;br /&gt;
&lt;br /&gt;
* Joint Multiview Video Coder (JMVC) &lt;br /&gt;
&lt;br /&gt;
* GPAC &lt;br /&gt;
** [http://gpac.wp.mines-telecom.fr/ Homepage]&lt;br /&gt;
** [http://records.sigmm.ndlab.net/2012/12/open-source-column-gpac/ Overiew in ACM SIGMM Records]&lt;br /&gt;
** [https://github.com/slederer/DASHEncoder DASHEncoder]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* A. Vetro and I. Sodagar, ''The MPEG-DASH Standard for Multimedia Streaming over the Internet'', IEEE Multimedia, 2011&lt;br /&gt;
* T. Stockhammer, ''Dynamic Adaptive Streaming over HTTP - Standards and Design Principles'', Proc. of ACM Multimedia Systems, 2011&lt;br /&gt;
* [http://www.coast-fp7.eu/public/COAST_D5.2_HHI_FF2_20120521.pdf ''Deliverable 5.2: Media Signalling Specification for 3D Video Content Types''], COAST Project&lt;br /&gt;
* G. Park, J. Lee, G. Lee, and K. Kim, ''Efficient 3D Adaptive HTTP Streaming Scheme over Internet TV'', Proc. of IEEE International Symposium on Broadband Multimedia Systems and Broadcasting (BMSB), 2012&lt;br /&gt;
* C. Müller and C. Timmerer, ''A VLC Media Player Plugin enabling Dynamic Adaptive Streaming over HTTP'', Proc. of ACM Multimedia, 2011&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5236</id>
		<title>Private:FTV</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5236"/>
		<updated>2013-01-29T11:25:06Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the envisioned free-viewpoint TV system, including: design decisions, useful resources, tools, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
*[Som:1/28] MySQL is not required for DASHEncoder but it only implements 'isoff-basic-on-demand' profile while we need the 'stereoid' profile. We can start with the MPD described for 3 view video in MPEG-DASH standard[Section G.4, pp 120]. If we leave out audio for the time being, from the code base of DASHEncoder it seems the major work will be in replacing x264 relevant parts with JMVC and updating the MP4Box related parts. Does MP4Box support the files generated by JMVC? if not we need further code to implement the ISOBFF parts for JMVC generated bitstream.&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/ Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
* [http://www.sfu.ca/~aah10/ Ahmed Hamza]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~ssa121/personal/ Somsubhra Sharangi]&lt;br /&gt;
&lt;br /&gt;
== Target 3D Display ==&lt;br /&gt;
&lt;br /&gt;
* Formats and decoding..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DASH Options ==&lt;br /&gt;
&lt;br /&gt;
* HLS&lt;br /&gt;
&lt;br /&gt;
* MPEG-DASH specification ([http://standards.iso.org/ittf/PubliclyAvailableStandards/ ISO/IEC 23009-1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software and  Data ==&lt;br /&gt;
&lt;br /&gt;
* Joint Multiview Video Coder (JMVC) &lt;br /&gt;
&lt;br /&gt;
* GPAC &lt;br /&gt;
** [http://gpac.wp.mines-telecom.fr/ Homepage]&lt;br /&gt;
** [http://records.sigmm.ndlab.net/2012/12/open-source-column-gpac/ Overiew in ACM SIGMM Records]&lt;br /&gt;
** [https://github.com/slederer/DASHEncoder DASHEncoder]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* A. Vetro and I. Sodagar, ''The MPEG-DASH Standard for Multimedia Streaming over the Internet'', IEEE Multimedia, 2011&lt;br /&gt;
* T. Stockhammer, ''Dynamic Adaptive Streaming over HTTP - Standards and Design Principles'', Proc. of ACM Multimedia Systems, 2011&lt;br /&gt;
* [http://www.coast-fp7.eu/public/COAST_D5.2_HHI_FF2_20120521.pdf ''Deliverable 5.2: Media Signalling Specification for 3D Video Content Types''], COAST Project&lt;br /&gt;
* G. Park, J. Lee, G. Lee, and K. Kim, ''Efficient 3D Adaptive HTTP Streaming Scheme over Internet TV'', Proc. of IEEE International Symposium on Broadband Multimedia Systems and Broadcasting (BMSB), 2012&lt;br /&gt;
* C. Müller and C. Timmerer, ''A VLC Media Player Plugin enabling Dynamic Adaptive Streaming over HTTP'', Proc. of ACM Multimedia, 2011&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5235</id>
		<title>Private:FTV</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5235"/>
		<updated>2013-01-29T11:03:05Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* People */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the envisioned free-viewpoint TV system, including: design decisions, useful resources, tools, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
MySQL not required for DASHEncoder&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/ Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
* [http://www.sfu.ca/~aah10/ Ahmed Hamza]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~ssa121/personal/ Somsubhra Sharangi]&lt;br /&gt;
&lt;br /&gt;
== Target 3D Display ==&lt;br /&gt;
&lt;br /&gt;
* Formats and decoding..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DASH Options ==&lt;br /&gt;
&lt;br /&gt;
* HLS&lt;br /&gt;
&lt;br /&gt;
* MPEG-DASH specification ([http://standards.iso.org/ittf/PubliclyAvailableStandards/ ISO/IEC 23009-1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software and  Data ==&lt;br /&gt;
&lt;br /&gt;
* Joint Multiview Video Coder (JMVC) &lt;br /&gt;
&lt;br /&gt;
* GPAC &lt;br /&gt;
** [http://gpac.wp.mines-telecom.fr/ Homepage]&lt;br /&gt;
** [http://records.sigmm.ndlab.net/2012/12/open-source-column-gpac/ Overiew in ACM SIGMM Records]&lt;br /&gt;
** [https://github.com/slederer/DASHEncoder DASHEncoder]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* A. Vetro and I. Sodagar, ''The MPEG-DASH Standard for Multimedia Streaming over the Internet'', IEEE Multimedia, 2011&lt;br /&gt;
* T. Stockhammer, ''Dynamic Adaptive Streaming over HTTP - Standards and Design Principles'', Proc. of ACM Multimedia Systems, 2011&lt;br /&gt;
* [http://www.coast-fp7.eu/public/COAST_D5.2_HHI_FF2_20120521.pdf ''Deliverable 5.2: Media Signalling Specification for 3D Video Content Types''], COAST Project&lt;br /&gt;
* G. Park, J. Lee, G. Lee, and K. Kim, ''Efficient 3D Adaptive HTTP Streaming Scheme over Internet TV'', Proc. of IEEE International Symposium on Broadband Multimedia Systems and Broadcasting (BMSB), 2012&lt;br /&gt;
* C. Müller and C. Timmerer, ''A VLC Media Player Plugin enabling Dynamic Adaptive Streaming over HTTP'', Proc. of ACM Multimedia, 2011&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5234</id>
		<title>Private:FTV</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:FTV&amp;diff=5234"/>
		<updated>2013-01-29T11:00:44Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Software and  Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the envisioned free-viewpoint TV system, including: design decisions, useful resources, tools, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/ Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
* [http://www.sfu.ca/~aah10/ Ahmed Hamza]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~ssa121/personal/ Somsubhra Sharangi]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Target 3D Display ==&lt;br /&gt;
&lt;br /&gt;
* Formats and decoding..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DASH Options ==&lt;br /&gt;
&lt;br /&gt;
* HLS&lt;br /&gt;
&lt;br /&gt;
* MPEG-DASH specification ([http://standards.iso.org/ittf/PubliclyAvailableStandards/ ISO/IEC 23009-1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software and  Data ==&lt;br /&gt;
&lt;br /&gt;
* Joint Multiview Video Coder (JMVC) &lt;br /&gt;
&lt;br /&gt;
* GPAC &lt;br /&gt;
** [http://gpac.wp.mines-telecom.fr/ Homepage]&lt;br /&gt;
** [http://records.sigmm.ndlab.net/2012/12/open-source-column-gpac/ Overiew in ACM SIGMM Records]&lt;br /&gt;
** [https://github.com/slederer/DASHEncoder DASHEncoder]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* A. Vetro and I. Sodagar, ''The MPEG-DASH Standard for Multimedia Streaming over the Internet'', IEEE Multimedia, 2011&lt;br /&gt;
* T. Stockhammer, ''Dynamic Adaptive Streaming over HTTP - Standards and Design Principles'', Proc. of ACM Multimedia Systems, 2011&lt;br /&gt;
* [http://www.coast-fp7.eu/public/COAST_D5.2_HHI_FF2_20120521.pdf ''Deliverable 5.2: Media Signalling Specification for 3D Video Content Types''], COAST Project&lt;br /&gt;
* G. Park, J. Lee, G. Lee, and K. Kim, ''Efficient 3D Adaptive HTTP Streaming Scheme over Internet TV'', Proc. of IEEE International Symposium on Broadband Multimedia Systems and Broadcasting (BMSB), 2012&lt;br /&gt;
* C. Müller and C. Timmerer, ''A VLC Media Player Plugin enabling Dynamic Adaptive Streaming over HTTP'', Proc. of ACM Multimedia, 2011&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Conferences&amp;diff=5201</id>
		<title>Conferences</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Conferences&amp;diff=5201"/>
		<updated>2012-12-28T00:45:43Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: New page: === Networking and Multimedia Systems Conferences ===  {| style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 2px&amp;quot; |- ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Networking and Multimedia Systems Conferences ===&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 2px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Conference Details&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Deadline (Abstract/Manuscript)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ICME&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ICDCS&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| IPDPS&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| MMSYS&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| INFOCOMM&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| CoNEXT&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ICNP&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| April 29/ May 3&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| HotCloud&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| March 7&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Multimedia&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| March 1 / March 8&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| SIGCOMM&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Jan 25&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Networking&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Jan 7&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5200</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5200"/>
		<updated>2012-12-28T00:44:28Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Conferences */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Software Systems Developed by NSL Members ==&lt;br /&gt;
&lt;br /&gt;
* [[software | List of software developed at NSL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== New Student's Guide to NSL ==&lt;br /&gt;
* [[NSL Guide]], A new student's guide to NSL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Reading and Writing ==&lt;br /&gt;
&lt;br /&gt;
* [[Writing Guidelines]], a list of paper writing guidelines used in NSL. &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/keshav07.pdf How to Read a Paper], By S. Keshav, ACM SIGCOMM Computer Communications Review, 37(3):83--84, July 2007.&lt;br /&gt;
&lt;br /&gt;
* [http://irl.eecs.umich.edu/jamin/courses/eecs589/papers/checklist.html Paper reading and writing checklists]&lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/writing-a-paper.pdf How to write a great research paper]&lt;br /&gt;
&lt;br /&gt;
* [http://www.acm.org/publications/policies/plagiarism_policy ACM Policy and Procedures on Plagiarism] (New grad students: Read Section 1 of this document.)&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mleone/web/how-to.html Useful links on research and writing]&lt;br /&gt;
&lt;br /&gt;
* William Strunk, Jr., The Elements of Style (available online at: [http://www.bartleby.com/141/ http://www.bartleby.com/141/])&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.purdue.edu/homes/dec/essay.dissertation.html How To Write A Dissertation], by  Douglas Comer&lt;br /&gt;
&lt;br /&gt;
* J. Zobel, [http://justin.sobell.net/index.htm Writing for Computer Science], 2nd edition, Springer, 2004.&lt;br /&gt;
&lt;br /&gt;
* [http://windowsil.org/2006/09/11/reviewing-a-paper-guidelines/ Reviewing a Journal Paper - Guidelines], by Robert Heath&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Latex Tutorials and Templates ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latex-introduction.pdf One page overview of Latex] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexManual.pdf Not-so-short Latex tutorial]&lt;br /&gt;
&lt;br /&gt;
*[http://www.texniccenter.org/ TeXnicCenter: Latex integrated environment (graphical), for MS Windows users] You need to install [http://miktex.org/ MikTex] before installing this environment. &lt;br /&gt;
&lt;br /&gt;
*[http://kile.sourceforge.net/ Kile: Latex integrated environment, For Linux (KDE) users]&lt;br /&gt;
&lt;br /&gt;
*[http://guides.macrumors.com/Installing_LaTeX_on_a_Mac Guide on how to install LaTeX (MacTex) on a Mac.] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexReportTemplate.zip Simple template for writing reports]: use it to write progress reports and initial versions of papers. &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/IEEEtran_HOWTO.pdf HOWTO Manual for IEEE Transactions Latex  Document]&lt;br /&gt;
&lt;br /&gt;
*[http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf The Comprehensive LaTeX Symbol List]  ([http://nsl.cs.surrey.sfu.ca/resources/symbols.pdf Local Copy], downloaded in Dec 2007)]&lt;br /&gt;
&lt;br /&gt;
*[http://people.csail.mit.edu/u/j/jrennie/public_html/latex/ Latex tips and tricks by Jason Rennie]&lt;br /&gt;
&lt;br /&gt;
*Some bibliography files (mostly on P2P):  [http://nsl.cs.surrey.sfu.ca/resources/literature.bib literature.bib]   [http://nsl.cs.surrey.sfu.ca/resources/literature2.bib literature2.bib]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Matlab Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [http://www.cyclismo.org/tutorial/matlab/ Matlab tutorial: sorted by topic]&lt;br /&gt;
&lt;br /&gt;
* [http://www.math.mtu.edu/~msgocken/intro/intro.html A practical introduction to Matlab]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml Matlab documentations]&lt;br /&gt;
&lt;br /&gt;
* [http://www.ee.columbia.edu/~marios/matlab/matlab_tricks.html Matlab tips and tricks]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PlanetLab Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[Generate Certificates]] &lt;br /&gt;
* [[Getting the latest active nodes]]&lt;br /&gt;
* [[Deploying to PlanetLab]]&lt;br /&gt;
* [[Get results from PlanetLab]]&lt;br /&gt;
* [http://lists.planet-lab.org/pipermail/users/2005-September/001646.html Using '''screen''' on PlanetLab nodes]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OPNET Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [[Importing video traffic into OPNET]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Networking and Multimedia Courses Taught by NSL Professors == &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.sfu.ca/teaching/10/820/  Fall 2010: CMPT 820 -- Multimedia Systems]  [[08_cmpt820|Wiki Old Wiki Discussion]]&lt;br /&gt;
 &lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/teaching.html Courses Taught by Dr. Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Video Library and Tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Video Library and Tools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Tips (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Technical|Technical Tips]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:SIGMM|SIGMM History Preservation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Tools ==&lt;br /&gt;
&lt;br /&gt;
* [http://bouml.free.fr/ BOUML] A free UML toolbox running under Unix/Linux/Solaris and Windows to specify and generate code in C++, Java, Php, Python and Idl.&lt;br /&gt;
* [http://www.fabforce.net/dbdesigner4/ fabFORCE.net DBDesigner] Open source visual database designer for MySQL for Windows and Linux KDE/Gnome.&lt;br /&gt;
* [http://zoneit.free.fr/esvn/ eSVN] A cross-platform GUI frontend to the Subversion revision system which runs under Unix-like operating systems (GNU/Linux distributions, FreeBSD, Sun Solaris and others), Mac OS X as well as Windows.&lt;br /&gt;
* [http://code.google.com/p/svnx/ SvnX] A Mac SVN Client.&lt;br /&gt;
* [http://www.schmidt-web-berlin.de/winfig/ WinFig] An xFig clone for Windows users.&lt;br /&gt;
* [http://nodebox.net/code/index.php/Home NodeBox] A Mac OS X application that lets you create 2D visuals (static, animated or interactive) using Python programming code and export them as a PDF or a QuickTime movie. NodeBox is free and well-documented. Older versions (found [http://nodebox.net/code/index.php/Boost_Graph here]) had a graphs component that is based on Boost Graph.&lt;br /&gt;
* [http://ziyang.eecs.umich.edu/projects/powertutor/ PowerTutor] A useful tool that measures power consumption of computer processes, screen, GPS, 3G and WiFi of an HTC G1, HTC G2 and Nexus One Android operated phones.  The measurements are saved to a plain text file that is easy to parse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Random Thoughts (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random|Thoughts by Cheng]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random_Hefeeda|Thoughts by Mohamed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware/Computing Resources in NSL ==&lt;br /&gt;
&lt;br /&gt;
* [[Hardware/Computing Resources in NSL]]&lt;br /&gt;
* [[Private:Lab Resource Assignment|Allocation of lab computers, devices to persons/projects etc. (Login Required)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Access Control Lists on NSL Servers ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Create Accounts and Modify Permissions on NSL Servers| Howto Create Accounts and Modify Permissions on NSL Servers (Login Required)]]&lt;br /&gt;
&lt;br /&gt;
== Conferences ==&lt;br /&gt;
&lt;br /&gt;
* [[Conferences| List of Conferences]]&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:Conferences&amp;diff=5199</id>
		<title>Private:Conferences</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:Conferences&amp;diff=5199"/>
		<updated>2012-12-28T00:42:44Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Networking and Multimedia Systems Conferences ===&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 2px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Conference Details&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Deadline (Abstract/Manuscript)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ICME&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ICDCS&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| IPDPS&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| MMSYS&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| INFOCOMM&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| CoNEXT&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ICNP&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| April 29/ May 3&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| HotCloud&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| March 7&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Multimedia&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| March 1 / March 8&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| SIGCOMM&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Jan 25&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Networking&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Jan 7&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:Conferences&amp;diff=5198</id>
		<title>Private:Conferences</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:Conferences&amp;diff=5198"/>
		<updated>2012-12-28T00:40:53Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Networking and Multimedia Systems Conferences ===&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 2px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Conference Details&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Deadline (Abstract/Manuscript)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ICME&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ICDCS&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| IPDPS&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| MMSYS&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| INFOCOMM&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| CoNEXT&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ICNP&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| April 29/ May 3&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| HotCloud&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| March 7&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Multimedia&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| March 1 / March 8&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| SIGCOMM&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Jan 25&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:Conferences&amp;diff=5197</id>
		<title>Private:Conferences</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:Conferences&amp;diff=5197"/>
		<updated>2012-12-28T00:39:40Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Networking and Multimedia Systems Conferences ===&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 2px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Conference Details&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Deadline (Abstract/Manuscript)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ICME&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ICDCS&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| IPDPS&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| MMSYS&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| IEEE INFOCOMM&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| CoNEXT 2013&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| IEEE ICNP 2013&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| April 29/ May 3&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| HotCloud 2013&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| March 7&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ACM MM 2013&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| March 1 / March 8&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ACM SIGCOMM 2013&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Jan 25&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:Conferences&amp;diff=5196</id>
		<title>Private:Conferences</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:Conferences&amp;diff=5196"/>
		<updated>2012-12-28T00:34:32Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Networking and Multimedia Systems Conferences ===&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 2px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Conference Details&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Deadline (Abstract/Manuscript)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| IEEE ICNP 2013&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| April 29/ May 3&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| HotCloud 2013&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| March 7&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ACM MM 2013&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| March 1 / March 8&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ACM SIGCOMM 2013&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Jan 25&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:Conferences&amp;diff=5195</id>
		<title>Private:Conferences</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:Conferences&amp;diff=5195"/>
		<updated>2012-12-28T00:27:31Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Networking and Multimedia Systems Conferences ===&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 2px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Conference Details&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Deadline&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ACM MM 2013&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| March 1 (Abstract)&lt;br /&gt;
March 8(Manuscript)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| testing&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| testing&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:Conferences&amp;diff=5194</id>
		<title>Private:Conferences</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:Conferences&amp;diff=5194"/>
		<updated>2012-12-28T00:27:13Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: New page: === Networking and Multimedia Systems Conferences ===  {| style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 2px&amp;quot; |- ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Networking and Multimedia Systems Conferences ===&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 2px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Conference Details&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Deadline&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| ACM MM 2013&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| March 1 (Abstract)&lt;br /&gt;
March 8(Full)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| testing&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| testing&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5193</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5193"/>
		<updated>2012-12-28T00:17:57Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Conferences */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Software Systems Developed by NSL Members ==&lt;br /&gt;
&lt;br /&gt;
* [[software | List of software developed at NSL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== New Student's Guide to NSL ==&lt;br /&gt;
* [[NSL Guide]], A new student's guide to NSL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Reading and Writing ==&lt;br /&gt;
&lt;br /&gt;
* [[Writing Guidelines]], a list of paper writing guidelines used in NSL. &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/keshav07.pdf How to Read a Paper], By S. Keshav, ACM SIGCOMM Computer Communications Review, 37(3):83--84, July 2007.&lt;br /&gt;
&lt;br /&gt;
* [http://irl.eecs.umich.edu/jamin/courses/eecs589/papers/checklist.html Paper reading and writing checklists]&lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/writing-a-paper.pdf How to write a great research paper]&lt;br /&gt;
&lt;br /&gt;
* [http://www.acm.org/publications/policies/plagiarism_policy ACM Policy and Procedures on Plagiarism] (New grad students: Read Section 1 of this document.)&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mleone/web/how-to.html Useful links on research and writing]&lt;br /&gt;
&lt;br /&gt;
* William Strunk, Jr., The Elements of Style (available online at: [http://www.bartleby.com/141/ http://www.bartleby.com/141/])&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.purdue.edu/homes/dec/essay.dissertation.html How To Write A Dissertation], by  Douglas Comer&lt;br /&gt;
&lt;br /&gt;
* J. Zobel, [http://justin.sobell.net/index.htm Writing for Computer Science], 2nd edition, Springer, 2004.&lt;br /&gt;
&lt;br /&gt;
* [http://windowsil.org/2006/09/11/reviewing-a-paper-guidelines/ Reviewing a Journal Paper - Guidelines], by Robert Heath&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Latex Tutorials and Templates ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latex-introduction.pdf One page overview of Latex] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexManual.pdf Not-so-short Latex tutorial]&lt;br /&gt;
&lt;br /&gt;
*[http://www.texniccenter.org/ TeXnicCenter: Latex integrated environment (graphical), for MS Windows users] You need to install [http://miktex.org/ MikTex] before installing this environment. &lt;br /&gt;
&lt;br /&gt;
*[http://kile.sourceforge.net/ Kile: Latex integrated environment, For Linux (KDE) users]&lt;br /&gt;
&lt;br /&gt;
*[http://guides.macrumors.com/Installing_LaTeX_on_a_Mac Guide on how to install LaTeX (MacTex) on a Mac.] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexReportTemplate.zip Simple template for writing reports]: use it to write progress reports and initial versions of papers. &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/IEEEtran_HOWTO.pdf HOWTO Manual for IEEE Transactions Latex  Document]&lt;br /&gt;
&lt;br /&gt;
*[http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf The Comprehensive LaTeX Symbol List]  ([http://nsl.cs.surrey.sfu.ca/resources/symbols.pdf Local Copy], downloaded in Dec 2007)]&lt;br /&gt;
&lt;br /&gt;
*[http://people.csail.mit.edu/u/j/jrennie/public_html/latex/ Latex tips and tricks by Jason Rennie]&lt;br /&gt;
&lt;br /&gt;
*Some bibliography files (mostly on P2P):  [http://nsl.cs.surrey.sfu.ca/resources/literature.bib literature.bib]   [http://nsl.cs.surrey.sfu.ca/resources/literature2.bib literature2.bib]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Matlab Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [http://www.cyclismo.org/tutorial/matlab/ Matlab tutorial: sorted by topic]&lt;br /&gt;
&lt;br /&gt;
* [http://www.math.mtu.edu/~msgocken/intro/intro.html A practical introduction to Matlab]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml Matlab documentations]&lt;br /&gt;
&lt;br /&gt;
* [http://www.ee.columbia.edu/~marios/matlab/matlab_tricks.html Matlab tips and tricks]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PlanetLab Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[Generate Certificates]] &lt;br /&gt;
* [[Getting the latest active nodes]]&lt;br /&gt;
* [[Deploying to PlanetLab]]&lt;br /&gt;
* [[Get results from PlanetLab]]&lt;br /&gt;
* [http://lists.planet-lab.org/pipermail/users/2005-September/001646.html Using '''screen''' on PlanetLab nodes]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OPNET Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [[Importing video traffic into OPNET]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Networking and Multimedia Courses Taught by NSL Professors == &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.sfu.ca/teaching/10/820/  Fall 2010: CMPT 820 -- Multimedia Systems]  [[08_cmpt820|Wiki Old Wiki Discussion]]&lt;br /&gt;
 &lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/teaching.html Courses Taught by Dr. Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Video Library and Tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Video Library and Tools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Tips (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Technical|Technical Tips]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:SIGMM|SIGMM History Preservation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Tools ==&lt;br /&gt;
&lt;br /&gt;
* [http://bouml.free.fr/ BOUML] A free UML toolbox running under Unix/Linux/Solaris and Windows to specify and generate code in C++, Java, Php, Python and Idl.&lt;br /&gt;
* [http://www.fabforce.net/dbdesigner4/ fabFORCE.net DBDesigner] Open source visual database designer for MySQL for Windows and Linux KDE/Gnome.&lt;br /&gt;
* [http://zoneit.free.fr/esvn/ eSVN] A cross-platform GUI frontend to the Subversion revision system which runs under Unix-like operating systems (GNU/Linux distributions, FreeBSD, Sun Solaris and others), Mac OS X as well as Windows.&lt;br /&gt;
* [http://code.google.com/p/svnx/ SvnX] A Mac SVN Client.&lt;br /&gt;
* [http://www.schmidt-web-berlin.de/winfig/ WinFig] An xFig clone for Windows users.&lt;br /&gt;
* [http://nodebox.net/code/index.php/Home NodeBox] A Mac OS X application that lets you create 2D visuals (static, animated or interactive) using Python programming code and export them as a PDF or a QuickTime movie. NodeBox is free and well-documented. Older versions (found [http://nodebox.net/code/index.php/Boost_Graph here]) had a graphs component that is based on Boost Graph.&lt;br /&gt;
* [http://ziyang.eecs.umich.edu/projects/powertutor/ PowerTutor] A useful tool that measures power consumption of computer processes, screen, GPS, 3G and WiFi of an HTC G1, HTC G2 and Nexus One Android operated phones.  The measurements are saved to a plain text file that is easy to parse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Random Thoughts (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random|Thoughts by Cheng]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random_Hefeeda|Thoughts by Mohamed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware/Computing Resources in NSL ==&lt;br /&gt;
&lt;br /&gt;
* [[Hardware/Computing Resources in NSL]]&lt;br /&gt;
* [[Private:Lab Resource Assignment|Allocation of lab computers, devices to persons/projects etc. (Login Required)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Access Control Lists on NSL Servers ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Create Accounts and Modify Permissions on NSL Servers| Howto Create Accounts and Modify Permissions on NSL Servers (Login Required)]]&lt;br /&gt;
&lt;br /&gt;
== Conferences ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Conferences| List of Conferences]]&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5192</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5192"/>
		<updated>2012-12-28T00:17:12Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Access Control Lists on NSL Servers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Software Systems Developed by NSL Members ==&lt;br /&gt;
&lt;br /&gt;
* [[software | List of software developed at NSL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== New Student's Guide to NSL ==&lt;br /&gt;
* [[NSL Guide]], A new student's guide to NSL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Reading and Writing ==&lt;br /&gt;
&lt;br /&gt;
* [[Writing Guidelines]], a list of paper writing guidelines used in NSL. &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/keshav07.pdf How to Read a Paper], By S. Keshav, ACM SIGCOMM Computer Communications Review, 37(3):83--84, July 2007.&lt;br /&gt;
&lt;br /&gt;
* [http://irl.eecs.umich.edu/jamin/courses/eecs589/papers/checklist.html Paper reading and writing checklists]&lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/writing-a-paper.pdf How to write a great research paper]&lt;br /&gt;
&lt;br /&gt;
* [http://www.acm.org/publications/policies/plagiarism_policy ACM Policy and Procedures on Plagiarism] (New grad students: Read Section 1 of this document.)&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mleone/web/how-to.html Useful links on research and writing]&lt;br /&gt;
&lt;br /&gt;
* William Strunk, Jr., The Elements of Style (available online at: [http://www.bartleby.com/141/ http://www.bartleby.com/141/])&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.purdue.edu/homes/dec/essay.dissertation.html How To Write A Dissertation], by  Douglas Comer&lt;br /&gt;
&lt;br /&gt;
* J. Zobel, [http://justin.sobell.net/index.htm Writing for Computer Science], 2nd edition, Springer, 2004.&lt;br /&gt;
&lt;br /&gt;
* [http://windowsil.org/2006/09/11/reviewing-a-paper-guidelines/ Reviewing a Journal Paper - Guidelines], by Robert Heath&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Latex Tutorials and Templates ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latex-introduction.pdf One page overview of Latex] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexManual.pdf Not-so-short Latex tutorial]&lt;br /&gt;
&lt;br /&gt;
*[http://www.texniccenter.org/ TeXnicCenter: Latex integrated environment (graphical), for MS Windows users] You need to install [http://miktex.org/ MikTex] before installing this environment. &lt;br /&gt;
&lt;br /&gt;
*[http://kile.sourceforge.net/ Kile: Latex integrated environment, For Linux (KDE) users]&lt;br /&gt;
&lt;br /&gt;
*[http://guides.macrumors.com/Installing_LaTeX_on_a_Mac Guide on how to install LaTeX (MacTex) on a Mac.] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexReportTemplate.zip Simple template for writing reports]: use it to write progress reports and initial versions of papers. &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/IEEEtran_HOWTO.pdf HOWTO Manual for IEEE Transactions Latex  Document]&lt;br /&gt;
&lt;br /&gt;
*[http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf The Comprehensive LaTeX Symbol List]  ([http://nsl.cs.surrey.sfu.ca/resources/symbols.pdf Local Copy], downloaded in Dec 2007)]&lt;br /&gt;
&lt;br /&gt;
*[http://people.csail.mit.edu/u/j/jrennie/public_html/latex/ Latex tips and tricks by Jason Rennie]&lt;br /&gt;
&lt;br /&gt;
*Some bibliography files (mostly on P2P):  [http://nsl.cs.surrey.sfu.ca/resources/literature.bib literature.bib]   [http://nsl.cs.surrey.sfu.ca/resources/literature2.bib literature2.bib]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Matlab Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [http://www.cyclismo.org/tutorial/matlab/ Matlab tutorial: sorted by topic]&lt;br /&gt;
&lt;br /&gt;
* [http://www.math.mtu.edu/~msgocken/intro/intro.html A practical introduction to Matlab]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml Matlab documentations]&lt;br /&gt;
&lt;br /&gt;
* [http://www.ee.columbia.edu/~marios/matlab/matlab_tricks.html Matlab tips and tricks]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PlanetLab Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[Generate Certificates]] &lt;br /&gt;
* [[Getting the latest active nodes]]&lt;br /&gt;
* [[Deploying to PlanetLab]]&lt;br /&gt;
* [[Get results from PlanetLab]]&lt;br /&gt;
* [http://lists.planet-lab.org/pipermail/users/2005-September/001646.html Using '''screen''' on PlanetLab nodes]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OPNET Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [[Importing video traffic into OPNET]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Networking and Multimedia Courses Taught by NSL Professors == &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.sfu.ca/teaching/10/820/  Fall 2010: CMPT 820 -- Multimedia Systems]  [[08_cmpt820|Wiki Old Wiki Discussion]]&lt;br /&gt;
 &lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/teaching.html Courses Taught by Dr. Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Video Library and Tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Video Library and Tools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Tips (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Technical|Technical Tips]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:SIGMM|SIGMM History Preservation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Tools ==&lt;br /&gt;
&lt;br /&gt;
* [http://bouml.free.fr/ BOUML] A free UML toolbox running under Unix/Linux/Solaris and Windows to specify and generate code in C++, Java, Php, Python and Idl.&lt;br /&gt;
* [http://www.fabforce.net/dbdesigner4/ fabFORCE.net DBDesigner] Open source visual database designer for MySQL for Windows and Linux KDE/Gnome.&lt;br /&gt;
* [http://zoneit.free.fr/esvn/ eSVN] A cross-platform GUI frontend to the Subversion revision system which runs under Unix-like operating systems (GNU/Linux distributions, FreeBSD, Sun Solaris and others), Mac OS X as well as Windows.&lt;br /&gt;
* [http://code.google.com/p/svnx/ SvnX] A Mac SVN Client.&lt;br /&gt;
* [http://www.schmidt-web-berlin.de/winfig/ WinFig] An xFig clone for Windows users.&lt;br /&gt;
* [http://nodebox.net/code/index.php/Home NodeBox] A Mac OS X application that lets you create 2D visuals (static, animated or interactive) using Python programming code and export them as a PDF or a QuickTime movie. NodeBox is free and well-documented. Older versions (found [http://nodebox.net/code/index.php/Boost_Graph here]) had a graphs component that is based on Boost Graph.&lt;br /&gt;
* [http://ziyang.eecs.umich.edu/projects/powertutor/ PowerTutor] A useful tool that measures power consumption of computer processes, screen, GPS, 3G and WiFi of an HTC G1, HTC G2 and Nexus One Android operated phones.  The measurements are saved to a plain text file that is easy to parse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Random Thoughts (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random|Thoughts by Cheng]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random_Hefeeda|Thoughts by Mohamed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware/Computing Resources in NSL ==&lt;br /&gt;
&lt;br /&gt;
* [[Hardware/Computing Resources in NSL]]&lt;br /&gt;
* [[Private:Lab Resource Assignment|Allocation of lab computers, devices to persons/projects etc. (Login Required)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Access Control Lists on NSL Servers ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Create Accounts and Modify Permissions on NSL Servers| Howto Create Accounts and Modify Permissions on NSL Servers (Login Required)]]&lt;br /&gt;
&lt;br /&gt;
== Conferences ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Create Accounts and Modify Permissions on NSL Servers| Howto Create Accounts and Modify Permissions on NSL Servers (Login Required)]]&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=group_meeting&amp;diff=5170</id>
		<title>group meeting</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=group_meeting&amp;diff=5170"/>
		<updated>2012-11-27T20:01:41Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Fall 2012 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We hold regular meetings for discussion and for every student to update the group on his/her progress. In some of the meetings, graduate students present talks summarizing their research progress so far. &lt;br /&gt;
&lt;br /&gt;
The meetings are good opportunities for students to practice their presentation skills and to get constructive feedback from the group on their research.  The meetings keep the group members informed about different research problems being addressed in the group. They are also very helpful in finding research topics specially for new students. &lt;br /&gt;
&lt;br /&gt;
Everybody is welcome to attend. Meeting time: Every other Tuesday, 2:00 - 3:00 PM, room SUR 4010.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fall 2012==&lt;br /&gt;
&lt;br /&gt;
* 11 Dec: Abdul&lt;br /&gt;
&lt;br /&gt;
* 27 Nov: Tamir, &lt;br /&gt;
&lt;br /&gt;
* 13 Nov: Saleh, [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/gm-talks/20121113-Scalable_VoD_Streaming_Algorithm.pdf A Scalable Video-on-demand Streaming Algorithm over LTE Networks]&lt;br /&gt;
&lt;br /&gt;
* 30 Oct: Masum, &lt;br /&gt;
&lt;br /&gt;
* 16 Oct: Ahmed Bu-Khamsin, [[media:Pcie_SDP.ppt | PCIe Interconnect for HPC Applications]]&lt;br /&gt;
&lt;br /&gt;
* 2 Oct: Som, [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/Cloud/avcRewriter/documents/talks/group_meeting_fall12/cloud_rewriter.pdf Cloud-based Multimedia Streaming]&lt;br /&gt;
&lt;br /&gt;
* 18 Sep: Azin,  [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/gm-talks/20120918-VideoStreamingOverCRN.pptx Video Streaming over Cognitive Radio Networks]&lt;br /&gt;
&lt;br /&gt;
== Spring 2011==&lt;br /&gt;
&lt;br /&gt;
* 1 Feb: Ahmed Bu-khamsin, Top Ten Computationally-Complex Problems in Oil and Gas Exploration Filed&lt;br /&gt;
&lt;br /&gt;
* 25 Jan: Naghmeh, [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/gm-talks/20110125-3DVideoCopyDetection.pptx 3D Video Copy Detection]&lt;br /&gt;
&lt;br /&gt;
* 18 Jan: Cameron, [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/gm-talks/20110118-CopyDetectionUsingOpticalFlow.pptx Video Copy Detection using Optical Flow]&lt;br /&gt;
&lt;br /&gt;
* 11 Jan: Mathieu,  [[media:3D_VideosOverview.pptx | 3D Media - An Overview]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Group meetings were held biweekly up to Dec 2010. &lt;br /&gt;
&lt;br /&gt;
== Fall 2010==&lt;br /&gt;
&lt;br /&gt;
* 21 Dec 10: Group discussion.&lt;br /&gt;
&lt;br /&gt;
* 9 Dec 10: Mohammad, [[media:Botnet-Detection-2.0.pptx | Detection of SIP Botnets Based on C&amp;amp;C Communication]]&lt;br /&gt;
&lt;br /&gt;
* 23 Nov 10: Taher, [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/gm-talks/20101123-AppAlgo2.ppt Approximation algorithms for Large-Scale Kernel Methods]&lt;br /&gt;
&lt;br /&gt;
* 19 Oct 10: Jeff, [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/gm-talks/20101019-LSH_Cluster.pdf Gram Matrix Approximation Using Locality Sensitive Hashing on Cluster]&lt;br /&gt;
&lt;br /&gt;
* 7 Oct 10: Dr. Rocky Chang (Hong Kong Polytechnic University),&amp;lt;br/&amp;gt; [[media:Rocky-SFU-7-Oct-2010.pdf | Active Measurement of Data-Path Quality in a Non-cooperative Internet]]&lt;br /&gt;
&lt;br /&gt;
* 28 Sep 10: Ahmed, [[media:DRS.pdf | Energy-Efficient Gaming on Mobile Devices using Dead Reckoning-based Power Management]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spring/Summer 2010==&lt;br /&gt;
&lt;br /&gt;
* 31 Aug 10: Hamed, [[media:Predicting_Click_Through_Rate_for_new_ads.pdf | Predicting Click Through Rate for New Ads with Semantically Similarity Measurement]]&lt;br /&gt;
&lt;br /&gt;
* 9 Aug 10: Yuanbin, [[media:mutisendP2Pstream.pdf | Efficient Algorithms for Multi-Sender Data Transmission in Swarm-based P2P Streaming Systems]]&lt;br /&gt;
&lt;br /&gt;
* 3 Aug 10: Azin, [[media:CognitiveRadio.ppt | Cognitive Radio Networks]]&lt;br /&gt;
&lt;br /&gt;
* 20 July 10: Farid, [[media:movid10.pdf | Optimal Scalable Video Multiplexing in Mobile Broadcast Networks]]&lt;br /&gt;
&lt;br /&gt;
* 17 May 10: Cameron, Reducing Energy Consumption in Online Network Games on Mobile Devices&lt;br /&gt;
&lt;br /&gt;
* 10 May 10: Cong, Latency Reduction in Online Network Games&lt;br /&gt;
&lt;br /&gt;
* 19 April 10: Shabnam, [[media:Svc-nc.ppt | Live P2P Streaming with Scalable Video Coding and Network Coding]]&lt;br /&gt;
&lt;br /&gt;
* 29 March 10: Jeff and Taher, [[media:AppAlgo.ppt | Approximation algorithms for Kernel Methods on Multi-core CPUs and GPUs]]&lt;br /&gt;
&lt;br /&gt;
* 15 March 10: Som, [http://www.cs.sfu.ca/~ssa121/personal/wimaxSVC.pdf Video Streaming over WiMAX]&lt;br /&gt;
&lt;br /&gt;
* 1 March 10: Farid, [[media:scalable_video_streaming_for_mobiletv.pptx | Scalable Video Streaming for MobileTV]]&lt;br /&gt;
&lt;br /&gt;
* 1 Feb 10: Ahmed, [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/gm-talks/20100201-pCDN_SVC.pdf Design of pCDN with Scalable Video Coding]&lt;br /&gt;
&lt;br /&gt;
* 18 Jan 10: Shabnam, P2P Streaming with Newtork Coding and Scalable Video Coding&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fall 2009==&lt;br /&gt;
&lt;br /&gt;
* 8 December 09: Yi, Video Streaming over Cooperative Wireless Networks&lt;br /&gt;
&lt;br /&gt;
* 10 Nov 09: Cheng, [[media:testbed.ppt | Design of a Mobile TV Testbed]]&lt;br /&gt;
&lt;br /&gt;
* 27 October 09: Yuanbin, Segment Scheduling in P2P Streaming Systems&lt;br /&gt;
&lt;br /&gt;
* 13 October 09: Ahmed, [[media:LTE.pdf | Long Term Evolution (LTE) - A Tutorial]]&lt;br /&gt;
&lt;br /&gt;
* 6 October 09: Cheng, [[media:Mm09.ppt | Statistical Multiplexing of VBR Video Streams]] (ACM MM 09 talk)&lt;br /&gt;
&lt;br /&gt;
* 22 September 09: Som, Video Streaming over WiMAX Networks&lt;br /&gt;
&lt;br /&gt;
* 8 September 09: Cong, Minimizing Round-Trip Time in Online Games&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summer 2009==&lt;br /&gt;
&lt;br /&gt;
* 18 August 09: Mohammad and Cong: 30 min each. Present their Directed Reading projects. &lt;br /&gt;
&lt;br /&gt;
* 14 July 09: Cheng, [[media:wimaxTV.pptx | Broadcasting Variable-Bit-Rate Videos in 802.16e-Like Mobile Networks]] &lt;br /&gt;
&lt;br /&gt;
*  7 July 09:  Yi&lt;br /&gt;
&lt;br /&gt;
* 26 June 09: Ahmed &lt;br /&gt;
&lt;br /&gt;
* 5 June 09: '''Canceled''' (Mohamed attending NOSSDAV'09)&lt;br /&gt;
&lt;br /&gt;
* 29 May 09: Kianoosh, End-to-End Secure Delivery of Scalable Video Streams &lt;br /&gt;
&lt;br /&gt;
* 22 May 09: Cong, [[media:wimax.pptx| Multimedia Streaming over WiMAX Networks]]&lt;br /&gt;
&lt;br /&gt;
* 8 May 09:  Kianoosh,   Analysis of Authentication Schemes for Nonscalable Video Streams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spring 2009 ==&lt;br /&gt;
&lt;br /&gt;
* 17 Apr 09: [[media:infocom09.pptx|Cheng (practice your infocom presentation)]]&lt;br /&gt;
&lt;br /&gt;
* 27 March 09: Andreas Berger, [[media:Nsl_vancouver.odp | Network-based Detection of SIP Bots]]&lt;br /&gt;
&lt;br /&gt;
* 27 Feb 09: Shabnam and Yuanbin&lt;br /&gt;
&lt;br /&gt;
* 23 Jan 09: Cheng (rehearse your PhD proposal) and Kianoosh&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5159</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5159"/>
		<updated>2012-11-20T23:47:25Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* [Nov20] Cloud rewrite project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Fall 2012 (RA) =&lt;br /&gt;
=== [Nov20] Cloud rewrite project ===&lt;br /&gt;
* Worked on addressing the MMSys review comments for the project and submitted the updated report to ICDCS'13. Report also available in svn [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/Cloud/avcRewriter/documents/techReps/icdcs13/ here].&lt;br /&gt;
&lt;br /&gt;
=== [Oct29] Adaptable Video Caching ===&lt;br /&gt;
* I obtained medisyn source code from one of the authors and investigated it. However, it does not have some of the features like scalable video description that we need for creating a DASH benchmark. I also came across some papers which describe important features like partial download of popular vod applications like Youtube. Consequently I am preparing a workload incorporating there features and currently investigating the byte-range queries in HTTP steaming.&lt;br /&gt;
&lt;br /&gt;
=== [Oct12] Adaptable Video Caching ===&lt;br /&gt;
* I investigated caching policies for the general problem of adaptable and segmented media content caching at edge-proxies. The term adaptable refers to content that are adapted to user’s requirement at the edge location. Adaptation can be in terms of codec specific operations like H.264 rewriting, more generic transcoding or even video scaling/retargeting. Caching a segment of video makes more sense as entire video files are huge and more often only a part of it is viewed. There have been many work on the segmented video caching but it is more relevant now as DASH becomes the de-facto streaming protocol. Our particular caching scenario is different than previous caching problems because it needs to consider four characteristics of the system: miss-penalty, segment- size, segment-class(SVC or AVC) and temporal correlation between segments. The metrics of performance are byte-hit-rate, cost and user-perceived latency. As LRU and LFU are the most popular caching policies we should start by investigating how these two policies perform in our caching scenario, particularly how the aforementioned four parameters affect the performance of the two policies. Then we can further investigate to design our own algorithm that improves performance by giving consideration to all  the four requirements.&lt;br /&gt;
* There are very few works on size, class and temporal correlation aware caching. The cost for our caching scenario is also different that the normal caching problem where higher latency is usually used as the metric of penalty. In our case it will be cost of bandwidth and processing in addition to latency. I tried mathematically analyzing the problem but due to the large number of variables reaching a closed form expression for the caching goal proved to be difficult. One experimental approach is to divide the cache into two regions for SVC and AVC and operate LRU/LFU in each region separately. I am currently looking for a good synthetic media access trace generator to get some idea about this scheme’s performance.&lt;br /&gt;
&lt;br /&gt;
* I came across several papers referring to MediSyn from HP Labs but I don’t seem to find a download link for the same. I am avoiding use of general web access generators like ProWGen. The best will be if we can get some traces of our own by tracking Youtube usage on campus but I don’t know whether this is feasible. I am also trying to improve my simulator to accommodate this but validation through an external system/trace will be better.&lt;br /&gt;
&lt;br /&gt;
=== [Sep27] Proposed extensions to cloud-rewrite project: ===&lt;br /&gt;
* Model the relationship between the GoP video parameters and VM capability information to accurately estimate the processing times. Currently this is being done in an ad-hoc manner. Maybe we can apply machine learning/ neural networks framework for this. The training phase can be done off-line. We note that this is different that computing the GoP-to-VM assignment. However, we can apply machine learning framework for finding the assignment of VMs too.&lt;br /&gt;
&lt;br /&gt;
* Derive the full mathematical model for the caching cost. This model currently uses simulation to find the cache replacement probability values. We should try to derive them analytically. One challenge is that the file sizes of media chunks are going to be different which is much harder to model than if we assume them to be same. Need to look into cache-algorithm literature.&lt;br /&gt;
&lt;br /&gt;
* We did not conduct any experiments to measure the latency performance of our solution. This is one area that we can look at. But it will require a more elaborate experimental setup. Better if we perform our experiments with VoD access traces than simulation.&lt;br /&gt;
&lt;br /&gt;
= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5158</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5158"/>
		<updated>2012-11-20T23:47:08Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* [Nov20] Cloud rewrite project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Fall 2012 (RA) =&lt;br /&gt;
=== [Nov20] Cloud rewrite project ===&lt;br /&gt;
* Worked on addressing the MMSys review comments for the project and submitted the updated report to ICDCS'13. Report also available in [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/Cloud/avcRewriter/documents/techReps/icdcs13/ svn].&lt;br /&gt;
&lt;br /&gt;
=== [Oct29] Adaptable Video Caching ===&lt;br /&gt;
* I obtained medisyn source code from one of the authors and investigated it. However, it does not have some of the features like scalable video description that we need for creating a DASH benchmark. I also came across some papers which describe important features like partial download of popular vod applications like Youtube. Consequently I am preparing a workload incorporating there features and currently investigating the byte-range queries in HTTP steaming.&lt;br /&gt;
&lt;br /&gt;
=== [Oct12] Adaptable Video Caching ===&lt;br /&gt;
* I investigated caching policies for the general problem of adaptable and segmented media content caching at edge-proxies. The term adaptable refers to content that are adapted to user’s requirement at the edge location. Adaptation can be in terms of codec specific operations like H.264 rewriting, more generic transcoding or even video scaling/retargeting. Caching a segment of video makes more sense as entire video files are huge and more often only a part of it is viewed. There have been many work on the segmented video caching but it is more relevant now as DASH becomes the de-facto streaming protocol. Our particular caching scenario is different than previous caching problems because it needs to consider four characteristics of the system: miss-penalty, segment- size, segment-class(SVC or AVC) and temporal correlation between segments. The metrics of performance are byte-hit-rate, cost and user-perceived latency. As LRU and LFU are the most popular caching policies we should start by investigating how these two policies perform in our caching scenario, particularly how the aforementioned four parameters affect the performance of the two policies. Then we can further investigate to design our own algorithm that improves performance by giving consideration to all  the four requirements.&lt;br /&gt;
* There are very few works on size, class and temporal correlation aware caching. The cost for our caching scenario is also different that the normal caching problem where higher latency is usually used as the metric of penalty. In our case it will be cost of bandwidth and processing in addition to latency. I tried mathematically analyzing the problem but due to the large number of variables reaching a closed form expression for the caching goal proved to be difficult. One experimental approach is to divide the cache into two regions for SVC and AVC and operate LRU/LFU in each region separately. I am currently looking for a good synthetic media access trace generator to get some idea about this scheme’s performance.&lt;br /&gt;
&lt;br /&gt;
* I came across several papers referring to MediSyn from HP Labs but I don’t seem to find a download link for the same. I am avoiding use of general web access generators like ProWGen. The best will be if we can get some traces of our own by tracking Youtube usage on campus but I don’t know whether this is feasible. I am also trying to improve my simulator to accommodate this but validation through an external system/trace will be better.&lt;br /&gt;
&lt;br /&gt;
=== [Sep27] Proposed extensions to cloud-rewrite project: ===&lt;br /&gt;
* Model the relationship between the GoP video parameters and VM capability information to accurately estimate the processing times. Currently this is being done in an ad-hoc manner. Maybe we can apply machine learning/ neural networks framework for this. The training phase can be done off-line. We note that this is different that computing the GoP-to-VM assignment. However, we can apply machine learning framework for finding the assignment of VMs too.&lt;br /&gt;
&lt;br /&gt;
* Derive the full mathematical model for the caching cost. This model currently uses simulation to find the cache replacement probability values. We should try to derive them analytically. One challenge is that the file sizes of media chunks are going to be different which is much harder to model than if we assume them to be same. Need to look into cache-algorithm literature.&lt;br /&gt;
&lt;br /&gt;
* We did not conduct any experiments to measure the latency performance of our solution. This is one area that we can look at. But it will require a more elaborate experimental setup. Better if we perform our experiments with VoD access traces than simulation.&lt;br /&gt;
&lt;br /&gt;
= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5157</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5157"/>
		<updated>2012-11-20T23:45:20Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* [Oct29] Adaptable Video Caching */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Fall 2012 (RA) =&lt;br /&gt;
=== [Nov20] Cloud rewrite project ===&lt;br /&gt;
* Worked on addressing the MMSys review comments for the project and submitted the updated report to ICDCS'13. Report avilable.&lt;br /&gt;
&lt;br /&gt;
=== [Oct29] Adaptable Video Caching ===&lt;br /&gt;
* I obtained medisyn source code from one of the authors and investigated it. However, it does not have some of the features like scalable video description that we need for creating a DASH benchmark. I also came across some papers which describe important features like partial download of popular vod applications like Youtube. Consequently I am preparing a workload incorporating there features and currently investigating the byte-range queries in HTTP steaming.&lt;br /&gt;
&lt;br /&gt;
=== [Oct12] Adaptable Video Caching ===&lt;br /&gt;
* I investigated caching policies for the general problem of adaptable and segmented media content caching at edge-proxies. The term adaptable refers to content that are adapted to user’s requirement at the edge location. Adaptation can be in terms of codec specific operations like H.264 rewriting, more generic transcoding or even video scaling/retargeting. Caching a segment of video makes more sense as entire video files are huge and more often only a part of it is viewed. There have been many work on the segmented video caching but it is more relevant now as DASH becomes the de-facto streaming protocol. Our particular caching scenario is different than previous caching problems because it needs to consider four characteristics of the system: miss-penalty, segment- size, segment-class(SVC or AVC) and temporal correlation between segments. The metrics of performance are byte-hit-rate, cost and user-perceived latency. As LRU and LFU are the most popular caching policies we should start by investigating how these two policies perform in our caching scenario, particularly how the aforementioned four parameters affect the performance of the two policies. Then we can further investigate to design our own algorithm that improves performance by giving consideration to all  the four requirements.&lt;br /&gt;
* There are very few works on size, class and temporal correlation aware caching. The cost for our caching scenario is also different that the normal caching problem where higher latency is usually used as the metric of penalty. In our case it will be cost of bandwidth and processing in addition to latency. I tried mathematically analyzing the problem but due to the large number of variables reaching a closed form expression for the caching goal proved to be difficult. One experimental approach is to divide the cache into two regions for SVC and AVC and operate LRU/LFU in each region separately. I am currently looking for a good synthetic media access trace generator to get some idea about this scheme’s performance.&lt;br /&gt;
&lt;br /&gt;
* I came across several papers referring to MediSyn from HP Labs but I don’t seem to find a download link for the same. I am avoiding use of general web access generators like ProWGen. The best will be if we can get some traces of our own by tracking Youtube usage on campus but I don’t know whether this is feasible. I am also trying to improve my simulator to accommodate this but validation through an external system/trace will be better.&lt;br /&gt;
&lt;br /&gt;
=== [Sep27] Proposed extensions to cloud-rewrite project: ===&lt;br /&gt;
* Model the relationship between the GoP video parameters and VM capability information to accurately estimate the processing times. Currently this is being done in an ad-hoc manner. Maybe we can apply machine learning/ neural networks framework for this. The training phase can be done off-line. We note that this is different that computing the GoP-to-VM assignment. However, we can apply machine learning framework for finding the assignment of VMs too.&lt;br /&gt;
&lt;br /&gt;
* Derive the full mathematical model for the caching cost. This model currently uses simulation to find the cache replacement probability values. We should try to derive them analytically. One challenge is that the file sizes of media chunks are going to be different which is much harder to model than if we assume them to be same. Need to look into cache-algorithm literature.&lt;br /&gt;
&lt;br /&gt;
* We did not conduct any experiments to measure the latency performance of our solution. This is one area that we can look at. But it will require a more elaborate experimental setup. Better if we perform our experiments with VoD access traces than simulation.&lt;br /&gt;
&lt;br /&gt;
= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=People&amp;diff=5152</id>
		<title>People</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=People&amp;diff=5152"/>
		<updated>2012-11-07T07:30:46Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Visitors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Faculty ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/ Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.sfu.ca/~peters/ Joseph G. Peters]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|[[Image:Mhefeeda.jpg|center|Mohamed Hefeeda|100px]]&lt;br /&gt;
|[[Image:Peters.jpg|center|Joseph Peters|100px]]&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;200pt&amp;quot;|Mohamed Hefeeda&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;200pt&amp;quot;|Joseph G. Peters&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Post-Doc Fellows ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
* Abdul Hasib, Ph.D.&lt;br /&gt;
|[ [[Private:progress-hasib|Progress]] ]&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
* Tamir Hegazy, Ph.D.&lt;br /&gt;
|[ [[Private:progress-hegazy|Progress]] ]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Students ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
* [http://www.sfu.ca/~aah10/ Ahmed Hamza, Ph.D.]&lt;br /&gt;
|[ [[Private:progress-hamza|Progress]] ]&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
* Saleh Almowuena, Ph.D.&lt;br /&gt;
|[  [[Private:progress-almowuena|Progress]] ]&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
* [http://www.cs.sfu.ca/~ssa121/personal/ Somsubhra Sharangi, Ph.D.]&lt;br /&gt;
|[ [[Private:progress-sharangi|Progress]] ]&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
* [http://www.cs.sfu.ca/~skristja/ Scott Kristjanson, Ph.D.]&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
* Kiana Calagari, Ph.D.&lt;br /&gt;
|[ [[Private:progress-calagari|Progress]] ]&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
* Pariya Raoufi, M.Sc.&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
* Azin Dastpak, M.Sc. (co-supervised with Prof. Jiangchuan Liu)&lt;br /&gt;
|[ [[Private:progress-dastpak|Progress]] ]&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
* Ahmed Bu-khamsin, M.Sc.&lt;br /&gt;
|[ [[Private:progress-bu-khamsin|Progress]] ]&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
* Abdullah Aldhamin, M.Sc.&lt;br /&gt;
|[ [[Private:progress-aldhamin|Progress]] ]&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
*  [http://www.sfu.ca/~masumr/ Md. Mahfuzur Rahman (Masum), M.Sc.]&lt;br /&gt;
|[ [[Private:progress-rahman|Progress]] ]&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
* Mohammad Hosseini, M.Sc.&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
* Mohsen Jamali, M.Sc.&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;500pt&amp;quot;|&lt;br /&gt;
* Ahmed Abdelsadek, M.Sc.&lt;br /&gt;
|[ [[Private:progress-abdelsadek|Progress]] ]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|[[Image:Ahamza.JPG|center|Ahmed Hamza|80x100px]]&lt;br /&gt;
|[[Image:saleh_small.jpg|center|Saleh Almowuena|80x100px]]&lt;br /&gt;
|[[Image:Som.JPG|center|Somsubhra Sharangi|80x100px]]&lt;br /&gt;
|[[Image:Scott_Kristjanson_scaled.jpg|center|Scott Kristjanson|80x100px]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Ahmed Hamza&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Saleh Almowuena&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Somsubhra Sharangi&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Scott&amp;lt;br/&amp;gt;Kristjanson&lt;br /&gt;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|[[Image:Pariya_scaled.jpg|center|Pariya Raoufi|80x100px]]&lt;br /&gt;
|[[Image:Azin.jpg|center|Azin Dastpak|80x100px]]&lt;br /&gt;
|[[Image:AhmedBuKhamsin.jpg|center|Ahmed Bu-khamsin|80x100px]]&lt;br /&gt;
|[[Image:Abdullah_small.jpg|center|Abdullah Aldhamin|80x100px]]&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Pariya Raoufi&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Azin Dastpak&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Ahmed Bu-khamsin&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Abdullah Aldhamin&lt;br /&gt;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|[[Image:Masum.jpg|center|Md. Mahfuzur Rahman|80x100px]]&lt;br /&gt;
|[[Image:Mohammad_Hosseini_scaled.jpg|center|Mohammad Hosseini|80x100px]]&lt;br /&gt;
|[[Image:Mohsen_Jamali_scaled.jpg|center|Mohsen Jamali|80x100px]]&lt;br /&gt;
|[[Image:sadek_scaled.jpg|center|Ahmed Abdelsadek|80x100px]]&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Md. Mahfuzur Rahman&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Mohammad Hosseini&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Mohsen Jamali&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Ahmed Abdelsadek&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Visitors ==&lt;br /&gt;
* Yu-Sian Li,  Graduate  (Research Visitor from National Tsing Hua University  Taiwan, July -- Sep 2012)&lt;br /&gt;
&lt;br /&gt;
* Gordon Leung,  Undergraduate  (NSERC USRA, Summer 2010)&lt;br /&gt;
&lt;br /&gt;
* Andreas Berger, Graduate (Research Visitor from The Telecommunications Research Center Vienna, Feb -- May 2009)&lt;br /&gt;
 &lt;br /&gt;
* Vikas Kumar, Undergraduate (Research Internship, May -- July 2008) &lt;br /&gt;
&lt;br /&gt;
* Nitin Chiluka, Undergraduate (Research Internship, December 2007 -- May 2008)&lt;br /&gt;
&lt;br /&gt;
* Nicolas Gomez, Undergraduate  (NSERC USRA, Summer 2007)&lt;br /&gt;
&lt;br /&gt;
* Pouya Alagheband, Undergraduate (NSERC USRA, Summer 2007)&lt;br /&gt;
&lt;br /&gt;
== Graduated Students ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ph.D. Students'''&lt;br /&gt;
&lt;br /&gt;
* ChengHsin Hsu, Ph.D., Fall 2009, [http://nsl.cs.surrey.sfu.ca/theses/hsu09.pdf Efficient Mobile Multimedia Streaming]. First Job: Senior Researcher, Deutsche Telekom R&amp;amp;D Lab, California, USA. Since 2011, he has been an Assistant Professor, Department of Computer Science, National Tsing Hua University, Taiwan.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''M.Sc. Students -- Thesis Option (thesis = 15 credits)'''&lt;br /&gt;
&lt;br /&gt;
* Naghmeh Khodabakhshi, M.Sc., Summer 2012, [http://nsl.cs.surrey.sfu.ca/theses/khodabakhshi12.pdf Copy Detection of 3D Videos]&lt;br /&gt;
&lt;br /&gt;
* Taher Dameh, M.Sc., Summer 2012, [http://nsl.cs.surrey.sfu.ca/theses/dameh12.pdf Distributed Kernel Matrix Approximation and Implementation using MPI]&lt;br /&gt;
&lt;br /&gt;
* Fei Gao, M.Sc., Fall 2011, [http://nsl.cs.surrey.sfu.ca/theses/gao11.pdf Distributed Approximate Spectral Clustering for Large-Scale Datasets]&lt;br /&gt;
&lt;br /&gt;
* R. Cameron Harvey, M.Sc., Fall 2011, [http://nsl.cs.surrey.sfu.ca/theses/harvey11.pdf Spatio-Temporal Video Copy Detection]&lt;br /&gt;
&lt;br /&gt;
* Hamed Sadeghi Neshat, M.Sc., Summer 2011, [http://nsl.cs.surrey.sfu.ca/theses/neshat11.pdf Effective Online Advertising]&lt;br /&gt;
&lt;br /&gt;
* Farid Molazem Tabrizi, M.Sc., Spring 2011, [http://nsl.cs.surrey.sfu.ca/theses/tabrizi11.pdf Adaptive Transmission of Variable-Bit-Rate Video Streams to Mobile Devices] (co-supervised with Prof. Joseph Peters) &lt;br /&gt;
&lt;br /&gt;
* Shabnam Mirshokraie, M.Sc., Fall 2010, [http://nsl.cs.surrey.sfu.ca/theses/mirshokraie10.pdf Live Peer-to-Peer Streaming with Scalable Video Coding and Network Coding]&lt;br /&gt;
&lt;br /&gt;
*  Somsubhra Sharangi, M.Sc., Fall 2010, [http://nsl.cs.surrey.sfu.ca/theses/sharangi10.pdf Scalable Video Streaming over WiMAX Networks] (co-supervised with Prof. Ramesh Krishnamurti)&lt;br /&gt;
&lt;br /&gt;
*   Yuanbin Shen, M.Sc., Summer 2010, [http://nsl.cs.surrey.sfu.ca/theses/shen10.pdf Efficient Algorithms for Multi-sender Data Transmission in Swarm-based Peer-to-peer Streaming Systems]&lt;br /&gt;
&lt;br /&gt;
*  Cong Ly, M.Sc., Summer 2010, [http://nsl.cs.surrey.sfu.ca/theses/ly10.pdf Latency Reduction in Online Multiplayer Games Using Detour Routing]&lt;br /&gt;
&lt;br /&gt;
*  Yi Liu, M.Sc., Fall 2009, [http://nsl.cs.surrey.sfu.ca/theses/liu09.pdf Video Streaming over Cooperative Wireless Networks]&lt;br /&gt;
&lt;br /&gt;
*  Greg Kowalski, M.Sc., Fall 2009, [http://nsl.cs.surrey.sfu.ca/theses/kowalski09.pdf Empirical Analysis of Multi-Sender Segment Transmission Algorithms in Peer-to-Peer Streaming]&lt;br /&gt;
&lt;br /&gt;
*  Kianoosh Mokhtarian, M.Sc., Fall 2009, [http://nsl.cs.surrey.sfu.ca/theses/mokhtarian09.pdf Efficient and Secure Delivery of Scalable Video Streams]&lt;br /&gt;
&lt;br /&gt;
* Behrooz Noorizadeh, M.Sc., Fall 2007, [http://nsl.cs.surrey.sfu.ca/theses/noorizadeh07.pdf Cooperative Proxy Caching for Peer-to-Peer Traffic]&lt;br /&gt;
&lt;br /&gt;
* Hossein Ahmadi, M.Sc., Summer 2007, [http://nsl.cs.surrey.sfu.ca/theses/ahmadi07.pdf Probabilistic Coverage and Connectivity in Wireless Sensor Networks]&lt;br /&gt;
&lt;br /&gt;
* Majid Bagheri, M.Sc., Summer 2007, [http://nsl.cs.surrey.sfu.ca/theses/bagheri07.pdf Efficient K-Coverage Algorithms for Wireless Sensor Networks and their Applications to Early Detection of Forest Fires]&lt;br /&gt;
&lt;br /&gt;
* Osama Saleh, M.Sc., Fall 2006 [http://nsl.cs.surrey.sfu.ca/theses/saleh06.pdf Modeling and Caching of Peer-to-Peer Traffic]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''M.Sc. Students -- Project Option (project = 6 credits)'''&lt;br /&gt;
&lt;br /&gt;
* Kaushik Choudhary, M.Sc., Summer 2012, [http://nsl.cs.surrey.sfu.ca/theses/choudhary12.pdf Design and Implementation of an Electronic Service Guide for Mobile Video Systems]&lt;br /&gt;
&lt;br /&gt;
* Mohammad Alkurbi, M.Sc., Spring 2011, [http://nsl.cs.surrey.sfu.ca/theses/alkurbi11.pdf Detection of Botnets Mounted on the Session Initiation Protocol]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|[[Image:Naghmeh.jpg|center|Naghmeh Khodabakhshi|80x100px]]&lt;br /&gt;
|[[Image:Kaushik.jpg|center|Kaushik Choudhary|80x100px]]&lt;br /&gt;
|[[Image:Taher.jpg|center|Taher Dameh|80x100px]]&lt;br /&gt;
|[[Image:Fei.jpg|center|Fei Gao|80x100px]]&lt;br /&gt;
|[[Image:Cameron.jpg|center|R. Cameron Harvey|80x100px]]&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Naghmeh Khodabakhshi&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Kaushik Choudhary&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Taher Dameh&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Fei Gao&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|R. Cameron Harvey&lt;br /&gt;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|[[Image:Hamed.jpg|center|Hamed SadeghiNeshat|80x100px]]&lt;br /&gt;
|[[Image:Mohammad.jpg|center|Mohammad Alkurbi|80x100px]]&lt;br /&gt;
|[[Image:Farid.jpg|center|Farid Molazem Tabrizi|80x100px]]&lt;br /&gt;
|[[Image:Shabnam.jpg|center|Shabnam Mirshokraie|80x100px]]&lt;br /&gt;
|[[Image:Som.JPG|center|Somsubhra Sharangi|80x100px]]&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Hamed SadeghiNeshat&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Mohammad Alkurbi&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Farid Molazem Tabrizi&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Shabnam&amp;lt;br/&amp;gt;Mirshokraie&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Somsubhra Sharangi&lt;br /&gt;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|[[Image:Yuanbin.jpg|center|Yuanbin Shen|80x100px]]&lt;br /&gt;
|[[Image:Cong.jpg|center|Cong Ly|80x100px]]&lt;br /&gt;
|[[Image:Cheng.JPG|center|ChengHsin Hsu|80x100px]]&lt;br /&gt;
|[[Image:Liuyi.jpg|center|Yi Liu|80x100px]]&lt;br /&gt;
|[[Image:Greg.jpg|center|Greg Kowalski|80x100px]]&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Yuanbin Shen&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Cong Ly&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|ChengHsin Hsu&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Yi Liu&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Greg Kowalski&lt;br /&gt;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|[[Image:Kianoosh.jpg|center|Kianoosh Mokhtarian|80x100px]]&lt;br /&gt;
|[[Image:Behrooz.jpg|center|Behrooz Noorizadeh|80x100px]]&lt;br /&gt;
|[[Image:Ahmadi.jpg|center|Hossein Ahmadi|80x100px]]&lt;br /&gt;
|[[Image:Mbagheri.jpg|center|Majid Bagheri|80x100px]]&lt;br /&gt;
|[[Image:Saleh.jpg|center|Osama Saleh|80x100px]]&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Kianoosh Mokhtarian&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Behrooz&amp;lt;br/&amp;gt;Noorizadeh&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Hossein Ahmadi&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Majid Bagheri&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;100pt&amp;quot;|Osama Saleh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contacts == &lt;br /&gt;
&lt;br /&gt;
* [[Private:contacts|List of contact persons in academia and industry (Login Required). ]]&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5139</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5139"/>
		<updated>2012-10-29T20:19:33Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* [Oct12] Adaptable Video Caching */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Fall 2012 (RA) =&lt;br /&gt;
=== [Oct29] Adaptable Video Caching ===&lt;br /&gt;
* I obtained medisyn source code from one of the authors and investigated it. However, it does not have some of the features like scalable video description that we need for creating a DASH benchmark. I also came across some papers which describe important features like partial download of popular vod applications like Youtube. Consequently I am preparing a workload incorporating there features and currently investigating the byte-range queries in HTTP steaming. &lt;br /&gt;
=== [Oct12] Adaptable Video Caching ===&lt;br /&gt;
* I investigated caching policies for the general problem of adaptable and segmented media content caching at edge-proxies. The term adaptable refers to content that are adapted to user’s requirement at the edge location. Adaptation can be in terms of codec specific operations like H.264 rewriting, more generic transcoding or even video scaling/retargeting. Caching a segment of video makes more sense as entire video files are huge and more often only a part of it is viewed. There have been many work on the segmented video caching but it is more relevant now as DASH becomes the de-facto streaming protocol. Our particular caching scenario is different than previous caching problems because it needs to consider four characteristics of the system: miss-penalty, segment- size, segment-class(SVC or AVC) and temporal correlation between segments. The metrics of performance are byte-hit-rate, cost and user-perceived latency. As LRU and LFU are the most popular caching policies we should start by investigating how these two policies perform in our caching scenario, particularly how the aforementioned four parameters affect the performance of the two policies. Then we can further investigate to design our own algorithm that improves performance by giving consideration to all  the four requirements.&lt;br /&gt;
* There are very few works on size, class and temporal correlation aware caching. The cost for our caching scenario is also different that the normal caching problem where higher latency is usually used as the metric of penalty. In our case it will be cost of bandwidth and processing in addition to latency. I tried mathematically analyzing the problem but due to the large number of variables reaching a closed form expression for the caching goal proved to be difficult. One experimental approach is to divide the cache into two regions for SVC and AVC and operate LRU/LFU in each region separately. I am currently looking for a good synthetic media access trace generator to get some idea about this scheme’s performance.&lt;br /&gt;
&lt;br /&gt;
* I came across several papers referring to MediSyn from HP Labs but I don’t seem to find a download link for the same. I am avoiding use of general web access generators like ProWGen. The best will be if we can get some traces of our own by tracking Youtube usage on campus but I don’t know whether this is feasible. I am also trying to improve my simulator to accommodate this but validation through an external system/trace will be better.&lt;br /&gt;
&lt;br /&gt;
=== [Sep27] Proposed extensions to cloud-rewrite project: ===&lt;br /&gt;
* Model the relationship between the GoP video parameters and VM capability information to accurately estimate the processing times. Currently this is being done in an ad-hoc manner. Maybe we can apply machine learning/ neural networks framework for this. The training phase can be done off-line. We note that this is different that computing the GoP-to-VM assignment. However, we can apply machine learning framework for finding the assignment of VMs too.&lt;br /&gt;
&lt;br /&gt;
* Derive the full mathematical model for the caching cost. This model currently uses simulation to find the cache replacement probability values. We should try to derive them analytically. One challenge is that the file sizes of media chunks are going to be different which is much harder to model than if we assume them to be same. Need to look into cache-algorithm literature.&lt;br /&gt;
&lt;br /&gt;
* We did not conduct any experiments to measure the latency performance of our solution. This is one area that we can look at. But it will require a more elaborate experimental setup. Better if we perform our experiments with VoD access traces than simulation.&lt;br /&gt;
&lt;br /&gt;
= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5115</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5115"/>
		<updated>2012-10-11T23:15:40Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Fall 2012 (RA) =&lt;br /&gt;
=== [Oct12] Adaptable Video Caching ===&lt;br /&gt;
* I investigated caching policies for the general problem of adaptable and segmented media content caching at edge-proxies. The term adaptable refers to content that are adapted to user’s requirement at the edge location. Adaptation can be in terms of codec specific operations like H.264 rewriting, more generic transcoding or even video scaling/retargeting. Caching a segment of video makes more sense as entire video files are huge and more often only a part of it is viewed. There have been many work on the segmented video caching but it is more relevant now as DASH becomes the de-facto streaming protocol. Our particular caching scenario is different than previous caching problems because it needs to consider four characteristics of the system: miss-penalty, segment- size, segment-class(SVC or AVC) and temporal correlation between segments. The metrics of performance are byte-hit-rate, cost and user-perceived latency. As LRU and LFU are the most popular caching policies we should start by investigating how these two policies perform in our caching scenario, particularly how the aforementioned four parameters affect the performance of the two policies. Then we can further investigate to design our own algorithm that improves performance by giving consideration to all  the four requirements.&lt;br /&gt;
* There are very few works on size, class and temporal correlation aware caching. The cost for our caching scenario is also different that the normal caching problem where higher latency is usually used as the metric of penalty. In our case it will be cost of bandwidth and processing in addition to latency. I tried mathematically analyzing the problem but due to the large number of variables reaching a closed form expression for the caching goal proved to be difficult. One experimental approach is to divide the cache into two regions for SVC and AVC and operate LRU/LFU in each region separately. I am currently looking for a good synthetic media access trace generator to get some idea about this scheme’s performance.&lt;br /&gt;
&lt;br /&gt;
* I came across several papers referring to MediSyn from HP Labs but I don’t seem to find a download link for the same. I am avoiding use of general web access generators like ProWGen. The best will be if we can get some traces of our own by tracking Youtube usage on campus but I don’t know whether this is feasible. I am also trying to improve my simulator to accommodate this but validation through an external system/trace will be better.&lt;br /&gt;
=== [Sep27] Proposed extensions to cloud-rewrite project: ===&lt;br /&gt;
* Model the relationship between the GoP video parameters and VM capability information to accurately estimate the processing times. Currently this is being done in an ad-hoc manner. Maybe we can apply machine learning/ neural networks framework for this. The training phase can be done off-line. We note that this is different that computing the GoP-to-VM assignment. However, we can apply machine learning framework for finding the assignment of VMs too.&lt;br /&gt;
&lt;br /&gt;
* Derive the full mathematical model for the caching cost. This model currently uses simulation to find the cache replacement probability values. We should try to derive them analytically. One challenge is that the file sizes of media chunks are going to be different which is much harder to model than if we assume them to be same. Need to look into cache-algorithm literature.&lt;br /&gt;
&lt;br /&gt;
* We did not conduct any experiments to measure the latency performance of our solution. This is one area that we can look at. But it will require a more elaborate experimental setup. Better if we perform our experiments with VoD access traces than simulation.&lt;br /&gt;
&lt;br /&gt;
= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5079</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5079"/>
		<updated>2012-09-27T18:34:51Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Fall 2012 (RA) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Fall 2012 (RA) =&lt;br /&gt;
=== [Sep27] Proposed extensions to cloud-rewrite project: ===&lt;br /&gt;
* Model the relationship between the GoP video parameters and VM capability information to accurately estimate the processing times. Currently this is being done in an ad-hoc manner. Maybe we can apply machine learning/ neural networks framework for this. The training phase can be done off-line. We note that this is different that computing the GoP-to-VM assignment. However, we can apply machine learning framework for finding the assignment of VMs too.&lt;br /&gt;
&lt;br /&gt;
* Derive the full mathematical model for the caching cost. This model currently uses simulation to find the cache replacement probability values. We should try to derive them analytically. One challenge is that the file sizes of media chunks are going to be different which is much harder to model than if we assume them to be same. Need to look into cache-algorithm literature.&lt;br /&gt;
&lt;br /&gt;
* We did not conduct any experiments to measure the latency performance of our solution. This is one area that we can look at. But it will require a more elaborate experimental setup. Better if we perform our experiments with VoD access traces than simulation.&lt;br /&gt;
&lt;br /&gt;
= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5078</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5078"/>
		<updated>2012-09-27T18:34:26Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Fall 2012 (RA) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Fall 2012 (RA) =&lt;br /&gt;
=== [Sep27] Proposed extensions to cloud-rewrite project:&lt;br /&gt;
* Model the relationship between the GoP video parameters and VM capability information to accurately estimate the processing times. Currently this is being done in an ad-hoc manner. Maybe we can apply machine learning/ neural networks framework for this. The training phase can be done off-line. We note that this is different that computing the GoP-to-VM assignment. However, we can apply machine learning framework for finding the assignment of VMs too.&lt;br /&gt;
&lt;br /&gt;
* Derive the full mathematical model for the caching cost. This model currently uses simulation to find the cache replacement probability values. We should try to derive them analytically. One challenge is that the file sizes of media chunks are going to be different which is much harder to model than if we assume them to be same. Need to look into cache-algorithm literature.&lt;br /&gt;
&lt;br /&gt;
* We did not conduct any experiments to measure the latency performance of our solution. This is one area that we can look at. But it will require a more elaborate experimental setup. Better if we perform our experiments with VoD access traces than simulation.&lt;br /&gt;
&lt;br /&gt;
= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5077</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5077"/>
		<updated>2012-09-27T18:33:18Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Fall 2012 (RA) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Fall 2012 (RA) =&lt;br /&gt;
=== Research ===&lt;br /&gt;
*Sep27 : Cloud-rewrite project, proposed extensions:&lt;br /&gt;
** Model the relationship between the GoP video parameters and VM capability information to accurately estimate the processing times. Currently this is being done in an ad-hoc manner. Maybe we can apply machine learning/ neural networks framework for this. The training phase can be done off-line. We note that this is different that computing the GoP-to-VM assignment. However, we can apply machine learning framework for finding the assignment of VMs too.&lt;br /&gt;
&lt;br /&gt;
** Derive the full mathematical model for the caching cost. This model currently uses simulation to find the cache replacement probability values. We should try to derive them analytically. One challenge is that the file sizes of media chunks are going to be different which is much harder to model than if we assume them to be same. Need to look into cache-algorithm literature.&lt;br /&gt;
&lt;br /&gt;
** We did not conduct any experiments to measure the latency performance of our solution. This is one area that we can look at. But it will require a more elaborate experimental setup. Better if we perform our experiments with VoD access traces than simulation.&lt;br /&gt;
&lt;br /&gt;
= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5076</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5076"/>
		<updated>2012-09-27T18:29:07Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: /* Fall 2012 (RA) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Fall 2012 (RA) =&lt;br /&gt;
=== Research: Cloud-rewrite project, proposed extensions:&lt;br /&gt;
* Model the relationship between the GoP video parameters and VM capability information to accurately estimate the processing times. Currently this is being done in an ad-hoc manner. Maybe we can apply machine learning/ neural networks framework for this. The training phase can be done off-line. We note that this is different that computing the GoP-to-VM assignment. However, we can apply machine learning framework for finding the assignment of VMs too.&lt;br /&gt;
&lt;br /&gt;
*Derive the full mathematical model for the caching cost. This model currently uses simulation to find the cache replacement probability values. We should try to derive them analytically. One challenge is that the file sizes of media chunks are going to be different which is much harder to model than if we assume them to be same. Need to look into cache-algorithm literature.&lt;br /&gt;
&lt;br /&gt;
* We did not conduct any experiments to measure the latency performance of our solution. This is one area that we can look at. But it will require a more elaborate experimental setup. Better if we perform our experiments with VoD access traces than simulation.&lt;br /&gt;
&lt;br /&gt;
= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5075</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5075"/>
		<updated>2012-09-27T00:06:00Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Fall 2012 (RA) =&lt;br /&gt;
=== Research: MMSys submission : proposed extensions&lt;br /&gt;
* Model the relationship between the video parameters and VM capability information to accurately estimate the processing times. Currently this is being done in an ad-hoc manner. Maybe we can apply machine learning framework for this. The machine training can be done off-line. We note that this is different that computing the GoP-to-VM assignment. However, we can apply machine learning framework for finding the assignment of VMs too.&lt;br /&gt;
&lt;br /&gt;
*Derive the full mathematical model for the caching cost. This model currently uses simulation to find the cache replacement probability values. We should try to derive them analytically. One challenge is that the file sizes of media chunks are going to be different which is much harder to model than if we assume them to be same. Need to look into cache-algorithm literature.&lt;br /&gt;
&lt;br /&gt;
* We did not conduct any experiments to measure the latency performance of our solution. This is one area that we can look at. But it will require a more elaborate experimental setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5074</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5074"/>
		<updated>2012-09-27T00:05:18Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Fall 2012 (RA) =&lt;br /&gt;
=== Research: MMSys submission : proposed extensions&lt;br /&gt;
* Model the relationship between the video parameters and VM capability information to accurately estimate the processing times. Currently this is being done in an ad-hoc manner. Maybe we can apply machine learning framework for this. The machine training can be done off-line. We note that this is different that computing the GoP-to-VM assignment. However, we can apply machine learning framework for finding the assignment of VMs too.&lt;br /&gt;
&lt;br /&gt;
*Derive the full mathemetical model for the caching cost. This model currently uses simulation to find the cache replacement probability values. We should try to derive them analytically. One challenge is that the file sizes of media chunks are going to be different which is much harder to model than if we assume them to be same. Need to look into cache-algorithm literature.&lt;br /&gt;
&lt;br /&gt;
* We did not conduct any experiments to measure the latency performance of our solution. This is one are that we can look at. But it will require a more elaborate experimental setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:Lab_Resource_Assignment&amp;diff=5049</id>
		<title>Private:Lab Resource Assignment</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:Lab_Resource_Assignment&amp;diff=5049"/>
		<updated>2012-09-17T23:57:56Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Cluster Machines ===&lt;br /&gt;
{| style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 2px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Hostname/IP&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Asignee Name/ID&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 0 1px 0&amp;quot;| Brief Description of usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| cs-nsl-c01&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Som, Yu-Sian&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 0 1px 0&amp;quot;| Cloud assisted SVC streaming: installing VirtualBox and creating multiple VMs&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| testing&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| testing&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 0 1px 0&amp;quot;| testing&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:Lab_Resource_Assignment&amp;diff=5048</id>
		<title>Private:Lab Resource Assignment</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:Lab_Resource_Assignment&amp;diff=5048"/>
		<updated>2012-09-17T23:47:35Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Cluster Machines ===&lt;br /&gt;
{| style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Hostname/IP&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Asignee Name/ID&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Brief Description of usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 0 0&amp;quot;| cs-nsl-c01&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 0 0&amp;quot;| Som/Yu-Sian&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0&amp;quot;| Cloud assisted SVC streaming: installing VirtualBox and creating multiple VMs&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:Lab_Resource_Assignment&amp;diff=5047</id>
		<title>Private:Lab Resource Assignment</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:Lab_Resource_Assignment&amp;diff=5047"/>
		<updated>2012-09-17T23:46:09Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Cluster Machines ===&lt;br /&gt;
{| style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Hostname/IP&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Asignee Name/ID&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Brief Description of usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 0 0&amp;quot;| cs-nsl-c01&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 0 0&amp;quot;| Som/Yu-Sian&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0&amp;quot;| Cloud assisted SVC streaming&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:Lab_Resource_Assignment&amp;diff=5046</id>
		<title>Private:Lab Resource Assignment</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:Lab_Resource_Assignment&amp;diff=5046"/>
		<updated>2012-09-17T23:40:30Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: New page: === Cluster Machines === {| style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0&amp;quot; |- ! style=&amp;quot;border-style: solid; bo...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Cluster Machines ===&lt;br /&gt;
{| style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 1px 1px 0&amp;quot;| Hostname/IP&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 0 1px 0&amp;quot;| Asignee Name/ID&lt;br /&gt;
! style=&amp;quot;border-style: solid; border-width: 0 0 1px 0&amp;quot;| Brief Description of usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0 1px 0 0&amp;quot;| Bread&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0&amp;quot;| Pie&lt;br /&gt;
| style=&amp;quot;border-style: solid; border-width: 0&amp;quot;| Pie&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5045</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5045"/>
		<updated>2012-09-17T23:30:44Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Software Systems Developed by NSL Members ==&lt;br /&gt;
&lt;br /&gt;
* [[software | List of software developed at NSL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== New Student's Guide to NSL ==&lt;br /&gt;
* [[NSL Guide]], A new student's guide to NSL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Reading and Writing ==&lt;br /&gt;
&lt;br /&gt;
* [[Writing Guidelines]], a list of paper writing guidelines used in NSL. &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/keshav07.pdf How to Read a Paper], By S. Keshav, ACM SIGCOMM Computer Communications Review, 37(3):83--84, July 2007.&lt;br /&gt;
&lt;br /&gt;
* [http://irl.eecs.umich.edu/jamin/courses/eecs589/papers/checklist.html Paper reading and writing checklists]&lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/writing-a-paper.pdf How to write a great research paper]&lt;br /&gt;
&lt;br /&gt;
* [http://www.acm.org/publications/policies/plagiarism_policy ACM Policy and Procedures on Plagiarism] (New grad students: Read Section 1 of this document.)&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mleone/web/how-to.html Useful links on research and writing]&lt;br /&gt;
&lt;br /&gt;
* William Strunk, Jr., The Elements of Style (available online at: [http://www.bartleby.com/141/ http://www.bartleby.com/141/])&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.purdue.edu/homes/dec/essay.dissertation.html How To Write A Dissertation], by  Douglas Comer&lt;br /&gt;
&lt;br /&gt;
* J. Zobel, [http://justin.sobell.net/index.htm Writing for Computer Science], 2nd edition, Springer, 2004.&lt;br /&gt;
&lt;br /&gt;
* [http://windowsil.org/2006/09/11/reviewing-a-paper-guidelines/ Reviewing a Journal Paper - Guidelines], by Robert Heath&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Latex Tutorials and Templates ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latex-introduction.pdf One page overview of Latex] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexManual.pdf Not-so-short Latex tutorial]&lt;br /&gt;
&lt;br /&gt;
*[http://www.texniccenter.org/ TeXnicCenter: Latex integrated environment (graphical), for MS Windows users] You need to install [http://miktex.org/ MikTex] before installing this environment. &lt;br /&gt;
&lt;br /&gt;
*[http://kile.sourceforge.net/ Kile: Latex integrated environment, For Linux (KDE) users]&lt;br /&gt;
&lt;br /&gt;
*[http://guides.macrumors.com/Installing_LaTeX_on_a_Mac Guide on how to install LaTeX (MacTex) on a Mac.] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexReportTemplate.zip Simple template for writing reports]: use it to write progress reports and initial versions of papers. &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/IEEEtran_HOWTO.pdf HOWTO Manual for IEEE Transactions Latex  Document]&lt;br /&gt;
&lt;br /&gt;
*[http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf The Comprehensive LaTeX Symbol List]  ([http://nsl.cs.surrey.sfu.ca/resources/symbols.pdf Local Copy], downloaded in Dec 2007)]&lt;br /&gt;
&lt;br /&gt;
*[http://people.csail.mit.edu/u/j/jrennie/public_html/latex/ Latex tips and tricks by Jason Rennie]&lt;br /&gt;
&lt;br /&gt;
*Some bibliography files (mostly on P2P):  [http://nsl.cs.surrey.sfu.ca/resources/literature.bib literature.bib]   [http://nsl.cs.surrey.sfu.ca/resources/literature2.bib literature2.bib]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Matlab Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [http://www.cyclismo.org/tutorial/matlab/ Matlab tutorial: sorted by topic]&lt;br /&gt;
&lt;br /&gt;
* [http://www.math.mtu.edu/~msgocken/intro/intro.html A practical introduction to Matlab]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml Matlab documentations]&lt;br /&gt;
&lt;br /&gt;
* [http://www.ee.columbia.edu/~marios/matlab/matlab_tricks.html Matlab tips and tricks]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PlanetLab Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[Generate Certificates]] &lt;br /&gt;
* [[Getting the latest active nodes]]&lt;br /&gt;
* [[Deploying to PlanetLab]]&lt;br /&gt;
* [[Get results from PlanetLab]]&lt;br /&gt;
* [http://lists.planet-lab.org/pipermail/users/2005-September/001646.html Using '''screen''' on PlanetLab nodes]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OPNET Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [[Importing video traffic into OPNET]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Networking and Multimedia Courses Taught by NSL Professors == &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.sfu.ca/teaching/10/820/  Fall 2010: CMPT 820 -- Multimedia Systems]  [[08_cmpt820|Wiki Old Wiki Discussion]]&lt;br /&gt;
 &lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/teaching.html Courses Taught by Dr. Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Video Library and Tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Video Library and Tools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Tips (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Technical|Technical Tips]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:SIGMM|SIGMM History Preservation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Tools ==&lt;br /&gt;
&lt;br /&gt;
* [http://bouml.free.fr/ BOUML] A free UML toolbox running under Unix/Linux/Solaris and Windows to specify and generate code in C++, Java, Php, Python and Idl.&lt;br /&gt;
* [http://www.fabforce.net/dbdesigner4/ fabFORCE.net DBDesigner] Open source visual database designer for MySQL for Windows and Linux KDE/Gnome.&lt;br /&gt;
* [http://zoneit.free.fr/esvn/ eSVN] A cross-platform GUI frontend to the Subversion revision system which runs under Unix-like operating systems (GNU/Linux distributions, FreeBSD, Sun Solaris and others), Mac OS X as well as Windows.&lt;br /&gt;
* [http://code.google.com/p/svnx/ SvnX] A Mac SVN Client.&lt;br /&gt;
* [http://www.schmidt-web-berlin.de/winfig/ WinFig] An xFig clone for Windows users.&lt;br /&gt;
* [http://nodebox.net/code/index.php/Home NodeBox] A Mac OS X application that lets you create 2D visuals (static, animated or interactive) using Python programming code and export them as a PDF or a QuickTime movie. NodeBox is free and well-documented. Older versions (found [http://nodebox.net/code/index.php/Boost_Graph here]) had a graphs component that is based on Boost Graph.&lt;br /&gt;
* [http://ziyang.eecs.umich.edu/projects/powertutor/ PowerTutor] A useful tool that measures power consumption of computer processes, screen, GPS, 3G and WiFi of an HTC G1, HTC G2 and Nexus One Android operated phones.  The measurements are saved to a plain text file that is easy to parse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Random Thoughts (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random|Thoughts by Cheng]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random_Hefeeda|Thoughts by Mohamed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware/Computing Resources in NSL ==&lt;br /&gt;
&lt;br /&gt;
* [[Hardware/Computing Resources in NSL]]&lt;br /&gt;
* [[Private:Lab Resource Assignment ]] : Allocation of lab computers,devices to persons/projects etc.&lt;br /&gt;
&lt;br /&gt;
== Access Control Lists on NSL Servers ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Create Accounts and Modify Permissions on NSL Servers| Howto Create Accounts and Modify Permissions on NSL Servers (Login Required)]]&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5044</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5044"/>
		<updated>2012-09-17T23:29:35Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Software Systems Developed by NSL Members ==&lt;br /&gt;
&lt;br /&gt;
* [[software | List of software developed at NSL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== New Student's Guide to NSL ==&lt;br /&gt;
* [[NSL Guide]], A new student's guide to NSL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Reading and Writing ==&lt;br /&gt;
&lt;br /&gt;
* [[Writing Guidelines]], a list of paper writing guidelines used in NSL. &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/keshav07.pdf How to Read a Paper], By S. Keshav, ACM SIGCOMM Computer Communications Review, 37(3):83--84, July 2007.&lt;br /&gt;
&lt;br /&gt;
* [http://irl.eecs.umich.edu/jamin/courses/eecs589/papers/checklist.html Paper reading and writing checklists]&lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/writing-a-paper.pdf How to write a great research paper]&lt;br /&gt;
&lt;br /&gt;
* [http://www.acm.org/publications/policies/plagiarism_policy ACM Policy and Procedures on Plagiarism] (New grad students: Read Section 1 of this document.)&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mleone/web/how-to.html Useful links on research and writing]&lt;br /&gt;
&lt;br /&gt;
* William Strunk, Jr., The Elements of Style (available online at: [http://www.bartleby.com/141/ http://www.bartleby.com/141/])&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.purdue.edu/homes/dec/essay.dissertation.html How To Write A Dissertation], by  Douglas Comer&lt;br /&gt;
&lt;br /&gt;
* J. Zobel, [http://justin.sobell.net/index.htm Writing for Computer Science], 2nd edition, Springer, 2004.&lt;br /&gt;
&lt;br /&gt;
* [http://windowsil.org/2006/09/11/reviewing-a-paper-guidelines/ Reviewing a Journal Paper - Guidelines], by Robert Heath&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Latex Tutorials and Templates ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latex-introduction.pdf One page overview of Latex] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexManual.pdf Not-so-short Latex tutorial]&lt;br /&gt;
&lt;br /&gt;
*[http://www.texniccenter.org/ TeXnicCenter: Latex integrated environment (graphical), for MS Windows users] You need to install [http://miktex.org/ MikTex] before installing this environment. &lt;br /&gt;
&lt;br /&gt;
*[http://kile.sourceforge.net/ Kile: Latex integrated environment, For Linux (KDE) users]&lt;br /&gt;
&lt;br /&gt;
*[http://guides.macrumors.com/Installing_LaTeX_on_a_Mac Guide on how to install LaTeX (MacTex) on a Mac.] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexReportTemplate.zip Simple template for writing reports]: use it to write progress reports and initial versions of papers. &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/IEEEtran_HOWTO.pdf HOWTO Manual for IEEE Transactions Latex  Document]&lt;br /&gt;
&lt;br /&gt;
*[http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf The Comprehensive LaTeX Symbol List]  ([http://nsl.cs.surrey.sfu.ca/resources/symbols.pdf Local Copy], downloaded in Dec 2007)]&lt;br /&gt;
&lt;br /&gt;
*[http://people.csail.mit.edu/u/j/jrennie/public_html/latex/ Latex tips and tricks by Jason Rennie]&lt;br /&gt;
&lt;br /&gt;
*Some bibliography files (mostly on P2P):  [http://nsl.cs.surrey.sfu.ca/resources/literature.bib literature.bib]   [http://nsl.cs.surrey.sfu.ca/resources/literature2.bib literature2.bib]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Matlab Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [http://www.cyclismo.org/tutorial/matlab/ Matlab tutorial: sorted by topic]&lt;br /&gt;
&lt;br /&gt;
* [http://www.math.mtu.edu/~msgocken/intro/intro.html A practical introduction to Matlab]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml Matlab documentations]&lt;br /&gt;
&lt;br /&gt;
* [http://www.ee.columbia.edu/~marios/matlab/matlab_tricks.html Matlab tips and tricks]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PlanetLab Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[Generate Certificates]] &lt;br /&gt;
* [[Getting the latest active nodes]]&lt;br /&gt;
* [[Deploying to PlanetLab]]&lt;br /&gt;
* [[Get results from PlanetLab]]&lt;br /&gt;
* [http://lists.planet-lab.org/pipermail/users/2005-September/001646.html Using '''screen''' on PlanetLab nodes]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OPNET Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [[Importing video traffic into OPNET]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Networking and Multimedia Courses Taught by NSL Professors == &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.sfu.ca/teaching/10/820/  Fall 2010: CMPT 820 -- Multimedia Systems]  [[08_cmpt820|Wiki Old Wiki Discussion]]&lt;br /&gt;
 &lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/teaching.html Courses Taught by Dr. Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Video Library and Tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Video Library and Tools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Tips (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Technical|Technical Tips]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:SIGMM|SIGMM History Preservation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Tools ==&lt;br /&gt;
&lt;br /&gt;
* [http://bouml.free.fr/ BOUML] A free UML toolbox running under Unix/Linux/Solaris and Windows to specify and generate code in C++, Java, Php, Python and Idl.&lt;br /&gt;
* [http://www.fabforce.net/dbdesigner4/ fabFORCE.net DBDesigner] Open source visual database designer for MySQL for Windows and Linux KDE/Gnome.&lt;br /&gt;
* [http://zoneit.free.fr/esvn/ eSVN] A cross-platform GUI frontend to the Subversion revision system which runs under Unix-like operating systems (GNU/Linux distributions, FreeBSD, Sun Solaris and others), Mac OS X as well as Windows.&lt;br /&gt;
* [http://code.google.com/p/svnx/ SvnX] A Mac SVN Client.&lt;br /&gt;
* [http://www.schmidt-web-berlin.de/winfig/ WinFig] An xFig clone for Windows users.&lt;br /&gt;
* [http://nodebox.net/code/index.php/Home NodeBox] A Mac OS X application that lets you create 2D visuals (static, animated or interactive) using Python programming code and export them as a PDF or a QuickTime movie. NodeBox is free and well-documented. Older versions (found [http://nodebox.net/code/index.php/Boost_Graph here]) had a graphs component that is based on Boost Graph.&lt;br /&gt;
* [http://ziyang.eecs.umich.edu/projects/powertutor/ PowerTutor] A useful tool that measures power consumption of computer processes, screen, GPS, 3G and WiFi of an HTC G1, HTC G2 and Nexus One Android operated phones.  The measurements are saved to a plain text file that is easy to parse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Random Thoughts (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random|Thoughts by Cheng]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random_Hefeeda|Thoughts by Mohamed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware/Computing Resources in NSL ==&lt;br /&gt;
&lt;br /&gt;
* [[Hardware/Computing Resources in NSL]]&lt;br /&gt;
* [[Private:Resource Assignment ]] : Allocation of lab computers,devices to persons/projects etc.&lt;br /&gt;
&lt;br /&gt;
== Access Control Lists on NSL Servers ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Create Accounts and Modify Permissions on NSL Servers| Howto Create Accounts and Modify Permissions on NSL Servers (Login Required)]]&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5043</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5043"/>
		<updated>2012-09-17T23:29:14Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Software Systems Developed by NSL Members ==&lt;br /&gt;
&lt;br /&gt;
* [[software | List of software developed at NSL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== New Student's Guide to NSL ==&lt;br /&gt;
* [[NSL Guide]], A new student's guide to NSL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Reading and Writing ==&lt;br /&gt;
&lt;br /&gt;
* [[Writing Guidelines]], a list of paper writing guidelines used in NSL. &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/keshav07.pdf How to Read a Paper], By S. Keshav, ACM SIGCOMM Computer Communications Review, 37(3):83--84, July 2007.&lt;br /&gt;
&lt;br /&gt;
* [http://irl.eecs.umich.edu/jamin/courses/eecs589/papers/checklist.html Paper reading and writing checklists]&lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/writing-a-paper.pdf How to write a great research paper]&lt;br /&gt;
&lt;br /&gt;
* [http://www.acm.org/publications/policies/plagiarism_policy ACM Policy and Procedures on Plagiarism] (New grad students: Read Section 1 of this document.)&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mleone/web/how-to.html Useful links on research and writing]&lt;br /&gt;
&lt;br /&gt;
* William Strunk, Jr., The Elements of Style (available online at: [http://www.bartleby.com/141/ http://www.bartleby.com/141/])&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.purdue.edu/homes/dec/essay.dissertation.html How To Write A Dissertation], by  Douglas Comer&lt;br /&gt;
&lt;br /&gt;
* J. Zobel, [http://justin.sobell.net/index.htm Writing for Computer Science], 2nd edition, Springer, 2004.&lt;br /&gt;
&lt;br /&gt;
* [http://windowsil.org/2006/09/11/reviewing-a-paper-guidelines/ Reviewing a Journal Paper - Guidelines], by Robert Heath&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Latex Tutorials and Templates ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latex-introduction.pdf One page overview of Latex] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexManual.pdf Not-so-short Latex tutorial]&lt;br /&gt;
&lt;br /&gt;
*[http://www.texniccenter.org/ TeXnicCenter: Latex integrated environment (graphical), for MS Windows users] You need to install [http://miktex.org/ MikTex] before installing this environment. &lt;br /&gt;
&lt;br /&gt;
*[http://kile.sourceforge.net/ Kile: Latex integrated environment, For Linux (KDE) users]&lt;br /&gt;
&lt;br /&gt;
*[http://guides.macrumors.com/Installing_LaTeX_on_a_Mac Guide on how to install LaTeX (MacTex) on a Mac.] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexReportTemplate.zip Simple template for writing reports]: use it to write progress reports and initial versions of papers. &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/IEEEtran_HOWTO.pdf HOWTO Manual for IEEE Transactions Latex  Document]&lt;br /&gt;
&lt;br /&gt;
*[http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf The Comprehensive LaTeX Symbol List]  ([http://nsl.cs.surrey.sfu.ca/resources/symbols.pdf Local Copy], downloaded in Dec 2007)]&lt;br /&gt;
&lt;br /&gt;
*[http://people.csail.mit.edu/u/j/jrennie/public_html/latex/ Latex tips and tricks by Jason Rennie]&lt;br /&gt;
&lt;br /&gt;
*Some bibliography files (mostly on P2P):  [http://nsl.cs.surrey.sfu.ca/resources/literature.bib literature.bib]   [http://nsl.cs.surrey.sfu.ca/resources/literature2.bib literature2.bib]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Matlab Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [http://www.cyclismo.org/tutorial/matlab/ Matlab tutorial: sorted by topic]&lt;br /&gt;
&lt;br /&gt;
* [http://www.math.mtu.edu/~msgocken/intro/intro.html A practical introduction to Matlab]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml Matlab documentations]&lt;br /&gt;
&lt;br /&gt;
* [http://www.ee.columbia.edu/~marios/matlab/matlab_tricks.html Matlab tips and tricks]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PlanetLab Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[Generate Certificates]] &lt;br /&gt;
* [[Getting the latest active nodes]]&lt;br /&gt;
* [[Deploying to PlanetLab]]&lt;br /&gt;
* [[Get results from PlanetLab]]&lt;br /&gt;
* [http://lists.planet-lab.org/pipermail/users/2005-September/001646.html Using '''screen''' on PlanetLab nodes]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OPNET Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [[Importing video traffic into OPNET]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Networking and Multimedia Courses Taught by NSL Professors == &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.sfu.ca/teaching/10/820/  Fall 2010: CMPT 820 -- Multimedia Systems]  [[08_cmpt820|Wiki Old Wiki Discussion]]&lt;br /&gt;
 &lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/teaching.html Courses Taught by Dr. Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Video Library and Tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Video Library and Tools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Tips (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Technical|Technical Tips]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:SIGMM|SIGMM History Preservation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Tools ==&lt;br /&gt;
&lt;br /&gt;
* [http://bouml.free.fr/ BOUML] A free UML toolbox running under Unix/Linux/Solaris and Windows to specify and generate code in C++, Java, Php, Python and Idl.&lt;br /&gt;
* [http://www.fabforce.net/dbdesigner4/ fabFORCE.net DBDesigner] Open source visual database designer for MySQL for Windows and Linux KDE/Gnome.&lt;br /&gt;
* [http://zoneit.free.fr/esvn/ eSVN] A cross-platform GUI frontend to the Subversion revision system which runs under Unix-like operating systems (GNU/Linux distributions, FreeBSD, Sun Solaris and others), Mac OS X as well as Windows.&lt;br /&gt;
* [http://code.google.com/p/svnx/ SvnX] A Mac SVN Client.&lt;br /&gt;
* [http://www.schmidt-web-berlin.de/winfig/ WinFig] An xFig clone for Windows users.&lt;br /&gt;
* [http://nodebox.net/code/index.php/Home NodeBox] A Mac OS X application that lets you create 2D visuals (static, animated or interactive) using Python programming code and export them as a PDF or a QuickTime movie. NodeBox is free and well-documented. Older versions (found [http://nodebox.net/code/index.php/Boost_Graph here]) had a graphs component that is based on Boost Graph.&lt;br /&gt;
* [http://ziyang.eecs.umich.edu/projects/powertutor/ PowerTutor] A useful tool that measures power consumption of computer processes, screen, GPS, 3G and WiFi of an HTC G1, HTC G2 and Nexus One Android operated phones.  The measurements are saved to a plain text file that is easy to parse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Random Thoughts (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random|Thoughts by Cheng]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random_Hefeeda|Thoughts by Mohamed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware/Computing Resources in NSL ==&lt;br /&gt;
&lt;br /&gt;
* [[Hardware/Computing Resources in NSL]]&lt;br /&gt;
* [[Private:Resource Assignment ]]  Allocation of lab computers,devices to persons/projects etc.&lt;br /&gt;
&lt;br /&gt;
== Access Control Lists on NSL Servers ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Create Accounts and Modify Permissions on NSL Servers| Howto Create Accounts and Modify Permissions on NSL Servers (Login Required)]]&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5042</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5042"/>
		<updated>2012-09-17T23:28:25Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Software Systems Developed by NSL Members ==&lt;br /&gt;
&lt;br /&gt;
* [[software | List of software developed at NSL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== New Student's Guide to NSL ==&lt;br /&gt;
* [[NSL Guide]], A new student's guide to NSL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Reading and Writing ==&lt;br /&gt;
&lt;br /&gt;
* [[Writing Guidelines]], a list of paper writing guidelines used in NSL. &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/keshav07.pdf How to Read a Paper], By S. Keshav, ACM SIGCOMM Computer Communications Review, 37(3):83--84, July 2007.&lt;br /&gt;
&lt;br /&gt;
* [http://irl.eecs.umich.edu/jamin/courses/eecs589/papers/checklist.html Paper reading and writing checklists]&lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/writing-a-paper.pdf How to write a great research paper]&lt;br /&gt;
&lt;br /&gt;
* [http://www.acm.org/publications/policies/plagiarism_policy ACM Policy and Procedures on Plagiarism] (New grad students: Read Section 1 of this document.)&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mleone/web/how-to.html Useful links on research and writing]&lt;br /&gt;
&lt;br /&gt;
* William Strunk, Jr., The Elements of Style (available online at: [http://www.bartleby.com/141/ http://www.bartleby.com/141/])&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.purdue.edu/homes/dec/essay.dissertation.html How To Write A Dissertation], by  Douglas Comer&lt;br /&gt;
&lt;br /&gt;
* J. Zobel, [http://justin.sobell.net/index.htm Writing for Computer Science], 2nd edition, Springer, 2004.&lt;br /&gt;
&lt;br /&gt;
* [http://windowsil.org/2006/09/11/reviewing-a-paper-guidelines/ Reviewing a Journal Paper - Guidelines], by Robert Heath&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Latex Tutorials and Templates ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latex-introduction.pdf One page overview of Latex] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexManual.pdf Not-so-short Latex tutorial]&lt;br /&gt;
&lt;br /&gt;
*[http://www.texniccenter.org/ TeXnicCenter: Latex integrated environment (graphical), for MS Windows users] You need to install [http://miktex.org/ MikTex] before installing this environment. &lt;br /&gt;
&lt;br /&gt;
*[http://kile.sourceforge.net/ Kile: Latex integrated environment, For Linux (KDE) users]&lt;br /&gt;
&lt;br /&gt;
*[http://guides.macrumors.com/Installing_LaTeX_on_a_Mac Guide on how to install LaTeX (MacTex) on a Mac.] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexReportTemplate.zip Simple template for writing reports]: use it to write progress reports and initial versions of papers. &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/IEEEtran_HOWTO.pdf HOWTO Manual for IEEE Transactions Latex  Document]&lt;br /&gt;
&lt;br /&gt;
*[http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf The Comprehensive LaTeX Symbol List]  ([http://nsl.cs.surrey.sfu.ca/resources/symbols.pdf Local Copy], downloaded in Dec 2007)]&lt;br /&gt;
&lt;br /&gt;
*[http://people.csail.mit.edu/u/j/jrennie/public_html/latex/ Latex tips and tricks by Jason Rennie]&lt;br /&gt;
&lt;br /&gt;
*Some bibliography files (mostly on P2P):  [http://nsl.cs.surrey.sfu.ca/resources/literature.bib literature.bib]   [http://nsl.cs.surrey.sfu.ca/resources/literature2.bib literature2.bib]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Matlab Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [http://www.cyclismo.org/tutorial/matlab/ Matlab tutorial: sorted by topic]&lt;br /&gt;
&lt;br /&gt;
* [http://www.math.mtu.edu/~msgocken/intro/intro.html A practical introduction to Matlab]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml Matlab documentations]&lt;br /&gt;
&lt;br /&gt;
* [http://www.ee.columbia.edu/~marios/matlab/matlab_tricks.html Matlab tips and tricks]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PlanetLab Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[Generate Certificates]] &lt;br /&gt;
* [[Getting the latest active nodes]]&lt;br /&gt;
* [[Deploying to PlanetLab]]&lt;br /&gt;
* [[Get results from PlanetLab]]&lt;br /&gt;
* [http://lists.planet-lab.org/pipermail/users/2005-September/001646.html Using '''screen''' on PlanetLab nodes]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OPNET Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [[Importing video traffic into OPNET]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Networking and Multimedia Courses Taught by NSL Professors == &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.sfu.ca/teaching/10/820/  Fall 2010: CMPT 820 -- Multimedia Systems]  [[08_cmpt820|Wiki Old Wiki Discussion]]&lt;br /&gt;
 &lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/teaching.html Courses Taught by Dr. Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Video Library and Tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Video Library and Tools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Tips (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Technical|Technical Tips]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:SIGMM|SIGMM History Preservation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Tools ==&lt;br /&gt;
&lt;br /&gt;
* [http://bouml.free.fr/ BOUML] A free UML toolbox running under Unix/Linux/Solaris and Windows to specify and generate code in C++, Java, Php, Python and Idl.&lt;br /&gt;
* [http://www.fabforce.net/dbdesigner4/ fabFORCE.net DBDesigner] Open source visual database designer for MySQL for Windows and Linux KDE/Gnome.&lt;br /&gt;
* [http://zoneit.free.fr/esvn/ eSVN] A cross-platform GUI frontend to the Subversion revision system which runs under Unix-like operating systems (GNU/Linux distributions, FreeBSD, Sun Solaris and others), Mac OS X as well as Windows.&lt;br /&gt;
* [http://code.google.com/p/svnx/ SvnX] A Mac SVN Client.&lt;br /&gt;
* [http://www.schmidt-web-berlin.de/winfig/ WinFig] An xFig clone for Windows users.&lt;br /&gt;
* [http://nodebox.net/code/index.php/Home NodeBox] A Mac OS X application that lets you create 2D visuals (static, animated or interactive) using Python programming code and export them as a PDF or a QuickTime movie. NodeBox is free and well-documented. Older versions (found [http://nodebox.net/code/index.php/Boost_Graph here]) had a graphs component that is based on Boost Graph.&lt;br /&gt;
* [http://ziyang.eecs.umich.edu/projects/powertutor/ PowerTutor] A useful tool that measures power consumption of computer processes, screen, GPS, 3G and WiFi of an HTC G1, HTC G2 and Nexus One Android operated phones.  The measurements are saved to a plain text file that is easy to parse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Random Thoughts (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random|Thoughts by Cheng]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random_Hefeeda|Thoughts by Mohamed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware/Computing Resources in NSL ==&lt;br /&gt;
&lt;br /&gt;
* [[Hardware/Computing Resources in NSL]]&lt;br /&gt;
* [[Private:Hardware/Resource Assignment ]] Allocation of lab computers,devices to persons/projects etc.&lt;br /&gt;
&lt;br /&gt;
== Access Control Lists on NSL Servers ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Create Accounts and Modify Permissions on NSL Servers| Howto Create Accounts and Modify Permissions on NSL Servers (Login Required)]]&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5041</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Resources&amp;diff=5041"/>
		<updated>2012-09-17T23:27:05Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Software Systems Developed by NSL Members ==&lt;br /&gt;
&lt;br /&gt;
* [[software | List of software developed at NSL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== New Student's Guide to NSL ==&lt;br /&gt;
* [[NSL Guide]], A new student's guide to NSL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Reading and Writing ==&lt;br /&gt;
&lt;br /&gt;
* [[Writing Guidelines]], a list of paper writing guidelines used in NSL. &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/keshav07.pdf How to Read a Paper], By S. Keshav, ACM SIGCOMM Computer Communications Review, 37(3):83--84, July 2007.&lt;br /&gt;
&lt;br /&gt;
* [http://irl.eecs.umich.edu/jamin/courses/eecs589/papers/checklist.html Paper reading and writing checklists]&lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.surrey.sfu.ca/resources/writing-a-paper.pdf How to write a great research paper]&lt;br /&gt;
&lt;br /&gt;
* [http://www.acm.org/publications/policies/plagiarism_policy ACM Policy and Procedures on Plagiarism] (New grad students: Read Section 1 of this document.)&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mleone/web/how-to.html Useful links on research and writing]&lt;br /&gt;
&lt;br /&gt;
* William Strunk, Jr., The Elements of Style (available online at: [http://www.bartleby.com/141/ http://www.bartleby.com/141/])&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.purdue.edu/homes/dec/essay.dissertation.html How To Write A Dissertation], by  Douglas Comer&lt;br /&gt;
&lt;br /&gt;
* J. Zobel, [http://justin.sobell.net/index.htm Writing for Computer Science], 2nd edition, Springer, 2004.&lt;br /&gt;
&lt;br /&gt;
* [http://windowsil.org/2006/09/11/reviewing-a-paper-guidelines/ Reviewing a Journal Paper - Guidelines], by Robert Heath&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Latex Tutorials and Templates ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latex-introduction.pdf One page overview of Latex] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexManual.pdf Not-so-short Latex tutorial]&lt;br /&gt;
&lt;br /&gt;
*[http://www.texniccenter.org/ TeXnicCenter: Latex integrated environment (graphical), for MS Windows users] You need to install [http://miktex.org/ MikTex] before installing this environment. &lt;br /&gt;
&lt;br /&gt;
*[http://kile.sourceforge.net/ Kile: Latex integrated environment, For Linux (KDE) users]&lt;br /&gt;
&lt;br /&gt;
*[http://guides.macrumors.com/Installing_LaTeX_on_a_Mac Guide on how to install LaTeX (MacTex) on a Mac.] &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/latexReportTemplate.zip Simple template for writing reports]: use it to write progress reports and initial versions of papers. &lt;br /&gt;
&lt;br /&gt;
*[http://nsl.cs.surrey.sfu.ca/resources/IEEEtran_HOWTO.pdf HOWTO Manual for IEEE Transactions Latex  Document]&lt;br /&gt;
&lt;br /&gt;
*[http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf The Comprehensive LaTeX Symbol List]  ([http://nsl.cs.surrey.sfu.ca/resources/symbols.pdf Local Copy], downloaded in Dec 2007)]&lt;br /&gt;
&lt;br /&gt;
*[http://people.csail.mit.edu/u/j/jrennie/public_html/latex/ Latex tips and tricks by Jason Rennie]&lt;br /&gt;
&lt;br /&gt;
*Some bibliography files (mostly on P2P):  [http://nsl.cs.surrey.sfu.ca/resources/literature.bib literature.bib]   [http://nsl.cs.surrey.sfu.ca/resources/literature2.bib literature2.bib]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Matlab Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [http://www.cyclismo.org/tutorial/matlab/ Matlab tutorial: sorted by topic]&lt;br /&gt;
&lt;br /&gt;
* [http://www.math.mtu.edu/~msgocken/intro/intro.html A practical introduction to Matlab]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml Matlab documentations]&lt;br /&gt;
&lt;br /&gt;
* [http://www.ee.columbia.edu/~marios/matlab/matlab_tricks.html Matlab tips and tricks]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PlanetLab Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[Generate Certificates]] &lt;br /&gt;
* [[Getting the latest active nodes]]&lt;br /&gt;
* [[Deploying to PlanetLab]]&lt;br /&gt;
* [[Get results from PlanetLab]]&lt;br /&gt;
* [http://lists.planet-lab.org/pipermail/users/2005-September/001646.html Using '''screen''' on PlanetLab nodes]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OPNET Tutorials == &lt;br /&gt;
&lt;br /&gt;
* [[Importing video traffic into OPNET]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Networking and Multimedia Courses Taught by NSL Professors == &lt;br /&gt;
&lt;br /&gt;
* [http://nsl.cs.sfu.ca/teaching/10/820/  Fall 2010: CMPT 820 -- Multimedia Systems]  [[08_cmpt820|Wiki Old Wiki Discussion]]&lt;br /&gt;
 &lt;br /&gt;
* [http://www.cs.sfu.ca/~mhefeeda/teaching.html Courses Taught by Dr. Mohamed Hefeeda]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Video Library and Tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Video Library and Tools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Tips (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Technical|Technical Tips]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:SIGMM|SIGMM History Preservation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Tools ==&lt;br /&gt;
&lt;br /&gt;
* [http://bouml.free.fr/ BOUML] A free UML toolbox running under Unix/Linux/Solaris and Windows to specify and generate code in C++, Java, Php, Python and Idl.&lt;br /&gt;
* [http://www.fabforce.net/dbdesigner4/ fabFORCE.net DBDesigner] Open source visual database designer for MySQL for Windows and Linux KDE/Gnome.&lt;br /&gt;
* [http://zoneit.free.fr/esvn/ eSVN] A cross-platform GUI frontend to the Subversion revision system which runs under Unix-like operating systems (GNU/Linux distributions, FreeBSD, Sun Solaris and others), Mac OS X as well as Windows.&lt;br /&gt;
* [http://code.google.com/p/svnx/ SvnX] A Mac SVN Client.&lt;br /&gt;
* [http://www.schmidt-web-berlin.de/winfig/ WinFig] An xFig clone for Windows users.&lt;br /&gt;
* [http://nodebox.net/code/index.php/Home NodeBox] A Mac OS X application that lets you create 2D visuals (static, animated or interactive) using Python programming code and export them as a PDF or a QuickTime movie. NodeBox is free and well-documented. Older versions (found [http://nodebox.net/code/index.php/Boost_Graph here]) had a graphs component that is based on Boost Graph.&lt;br /&gt;
* [http://ziyang.eecs.umich.edu/projects/powertutor/ PowerTutor] A useful tool that measures power consumption of computer processes, screen, GPS, 3G and WiFi of an HTC G1, HTC G2 and Nexus One Android operated phones.  The measurements are saved to a plain text file that is easy to parse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Random Thoughts (Login Required) ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random|Thoughts by Cheng]]&lt;br /&gt;
&lt;br /&gt;
* [[Private:Random_Hefeeda|Thoughts by Mohamed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware/Computing Resources in NSL ==&lt;br /&gt;
&lt;br /&gt;
* [[Hardware/Computing Resources in NSL]]&lt;br /&gt;
* [[Private:Hardware/Host Map| Assignment of lab computers to persons/projects etc.]]&lt;br /&gt;
&lt;br /&gt;
== Access Control Lists on NSL Servers ==&lt;br /&gt;
&lt;br /&gt;
* [[Private:Create Accounts and Modify Permissions on NSL Servers| Howto Create Accounts and Modify Permissions on NSL Servers (Login Required)]]&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5019</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5019"/>
		<updated>2012-07-30T00:43:32Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf pdf] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf pdf] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5018</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5018"/>
		<updated>2012-07-30T00:09:11Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf report] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf updated:10/06] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5011</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5011"/>
		<updated>2012-06-26T03:58:21Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf report] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) bi-weekly report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf updated:10/06] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  http/142.58.185.226:8080/bbb.m3u8 in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5010</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5010"/>
		<updated>2012-06-26T03:57:32Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf report] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) bi-weekly report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf updated:10/06] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  [http://142.58.185.226:8080/bbb.m3u8] in VLC &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5009</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5009"/>
		<updated>2012-06-26T03:57:02Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf report] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) bi-weekly report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf updated:10/06] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
This can be played by selecting Media-&amp;gt;Open Network Stream-&amp;gt;  'http://142.58.185.226:8080/bbb.m3u8' &lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5003</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=5003"/>
		<updated>2012-06-22T18:42:39Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Summer 2012 (RA) =&lt;br /&gt;
=== Research: Cloud Rewriter [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cloudrewriter/cloud_rewriter.pdf report] ===&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) bi-weekly report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf updated:10/06] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
&lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
	<entry>
		<id>https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=4997</id>
		<title>Private:progress-sharangi</title>
		<link rel="alternate" type="text/html" href="https://nmsl.cs.sfu.ca/index.php?title=Private:progress-sharangi&amp;diff=4997"/>
		<updated>2012-06-14T20:02:33Z</updated>

		<summary type="html">&lt;p&gt;Ssa121: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Summer 2012 (RA) =&lt;br /&gt;
=== Course: CMPT894 (Directed Reading) bi-weekly report [https://cs-nsl-svn.cs.surrey.sfu.ca/cssvn/nsl-members/sharangi/reports/cmpt894/report/som_directed_reading_report.pdf updated:10/06] ===&lt;br /&gt;
=== Jun 15 ===&lt;br /&gt;
* Implemented a m3u8 based dynamic http streaming scheme utilising the rewriting functionality. Conceptually it works and I can play the video which is processed through the rewriting work flow. Following is an example playlist file with two version of a stream:&lt;br /&gt;
 ---bbb.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=149300&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l11.m3u8' &lt;br /&gt;
 #EXT-X-STREAM_INF:PROGRAM-ID=1,BANDWIDTH=137700&lt;br /&gt;
 'http://142.58.185.226:8080/m3u8/bbb_l10.m3u8'&lt;br /&gt;
 ---bbb_l11.m3u8---&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXT-X-TARGETDURATION:5&lt;br /&gt;
 #EXT-X-MEDIA-SEQUENCE:1&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_01.ts'&lt;br /&gt;
 #EXTINF:5&lt;br /&gt;
 'http://142.58.185.226:8080/AvcRewriter.php?file=bbb_l11_part_02.ts'&lt;br /&gt;
&lt;br /&gt;
* Configuring C++ applications did not work with either of the three servers(apache, nginx, lighttpd) I tried. Therefore I implemented a basic PHP application with Apache to call the rewriter binaries on server. This solution works but the calls to each video chunk file take some time to process so the playout is not smooth.&lt;br /&gt;
&lt;br /&gt;
* There are some components of the delay that we did not consider before:&lt;br /&gt;
**  The SVC substream extraction process has to be added to the rewriter module to make the streaming adaptive. This adds some delay as the extraction process needs to go through the entire file and this cannot be done in conjunction with the rewriting on the fly.&lt;br /&gt;
** The second component is the MUX-ing software(ffmpeg) which is currently taking lot of time, probably because it is initializing many resources which are not required for our particular case. One solution to this is to integrate the muxing component into rewriter module as well and have a combined substreamExtractor-Rewriter-Muxer biinary.&lt;br /&gt;
** The delay due to PHP is probably not significant but I cannot isolate it with the current setup. &lt;br /&gt;
&lt;br /&gt;
* Another challenge I am facing is with the client software. Only some versions of VLC play the stream and I am not able to observe if they are employing any bandwidth adaptation strategy or not. Another approach would be to add the extraction logic on an application server and write our own video player with adaptation logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jun 10 ===&lt;br /&gt;
* I am trying to implement the connection between web server and C++ application which is turning out to be more difficult than expected. I tried with two low footprint servers nginx and lighttpd but the mechanism is not working due to their asynchronous request processing. Currently trying with Apache.&lt;br /&gt;
&lt;br /&gt;
* As per the MPEG-DASH standard the content has to be created before creating the MPD file which rules out the possibility of using MPEG-DASH with on demand avcRewrite.  One option is to use the .m3u8 playlists that have simpler format with explicit urls for file chunks. In that case we have to mux the video into TS.&lt;br /&gt;
&lt;br /&gt;
* I did some modifications and obtained the following table for large number of layers. As expected, the storage requirement for AVC becomes much higher than SVC. One interesting observation is that for the top two layers SVC files are actually smaller in size than their AVC versions. &lt;br /&gt;
&lt;br /&gt;
     LayerID   Resolution   Framerate   Bitrate 	SVC(KB)	AVC(KB)&lt;br /&gt;
  ============================================&lt;br /&gt;
          2     352x288      12.0000       28.20       446	  483&lt;br /&gt;
          3     352x288      24.0000       31.10       487	  559&lt;br /&gt;
          4     352x288        3.0000       60.50       938	  726&lt;br /&gt;
          5     352x288        6.0000       65.10     1027	  811 &lt;br /&gt;
          6     352x288      12.0000       69.50     1116	  903 &lt;br /&gt;
          7     352x288      24.0000       76.00     1204	1004&lt;br /&gt;
          8     352x288        3.0000     115.80     1954	1269&lt;br /&gt;
          9     352x288        6.0000     126.00     2149	1428&lt;br /&gt;
        10     352x288       12.0000     134.40     2330	1580&lt;br /&gt;
        11     352x288       24.0000     145.80     2499	1728&lt;br /&gt;
  ============================================&lt;br /&gt;
                                                                               10491(4.2x)&lt;br /&gt;
&lt;br /&gt;
=== May 28 ===&lt;br /&gt;
* Created 1min of AVC video chunks and encoded into mp4 files.&lt;br /&gt;
* Storage calculations (bytes) for a 1 min CIF sized BigBuckBunny Video split into 5sec chunks:&lt;br /&gt;
** Size of the raw SVC files: 2565058 &lt;br /&gt;
** Size of raw AVC files: 1776821(L3) + 902641(L2) + 438308(L1) =  3117770 (~21% extra compared to SVC)&lt;br /&gt;
** Audio and container overhead SVC : 4366459 - 1776821 = 2589638&lt;br /&gt;
** Est. size of playable SVC content: 2565058 + 2589638 = 5154696&lt;br /&gt;
** Size of playable Simulcast content: 4366459 + 3580554 + 2535836 = 10482849 (~ 100% extra compared to SVC, but this will probably decrease with larger picture size or video length when the video data dominates the size).&lt;br /&gt;
** Audio encoded in AAC stereo using NeroAAC for Linux and is same for both the SVC and simulcast versions.&lt;br /&gt;
** Video encoded in 3 layer rewritable SVC with layer QPs: 36, 32, 28&lt;br /&gt;
** AVC files for simulcast are created from the SVC file by first extracting a substream and then rewriting it.&lt;br /&gt;
** ffmpeg and MP4Box is used for muxing the AVC and AAC files into an MP4 file with the following commands(Note: currently this is the only command that is working. Muxing the AVC file with MP4Box tools do not work):&lt;br /&gt;
    $&amp;gt;ffmpeg -i ../avc/BBB_CIF_24fps_1min_GOP01.h264 -s 352x288 -r 24000/1001 -t 00:00:05 bbb_muxed_01.mp4&lt;br /&gt;
    $&amp;gt;MP4Box -add ../aac/bbb_01.mp4 bbb_muxed_01.mp4&lt;br /&gt;
&lt;br /&gt;
* Currently Investigating: &lt;br /&gt;
** JSVM layer extracter does not work with rewriter. E.g. I have a 3 layer rewritable SVC file. When I rewrite all 3 layers, the our put is playable in VLC. When I extract 2 layers and then rewrite, the output is no longer usable. It does not show any difference in output compare to the 3 layer files in VLC player or ffmpeg. It has  severe problems with  audio synchronization and drifting.&lt;br /&gt;
** Interface between web server and media files. Is may be better idea to integrate a HTTP server into the C++ media adaption/rewriting application than to implement link code between standard http server and the media application through  php/CGI. The later is slower. &lt;br /&gt;
* Waiting for: Kaushik's update on the DASH setup. Earlier sent him a set of mp4 files for creating DASH content and verifying the setup with it.&lt;br /&gt;
* Challenges: The JSVM encoder is very slow. took me 3 days to encode 1 min of CIF video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== May 15 ===&lt;br /&gt;
* Currently working on creating chunked content from YUV files and composing the DASH MPD file.&lt;br /&gt;
* Tested that video chunks created by splitting YUV files and AVC rewritten can be played back in VLC media player. Also investigated that the rewrite works with layer dropping.&lt;br /&gt;
* Storage implications of splitting YUV file instead of splitting compressed file for parallel processing :&lt;br /&gt;
Video: bridge_far.yuv, CIF(352x288), 30fps, 900 frames(30s)&lt;br /&gt;
Encoding: 3layer SVC then rewritten to AVC, GOP size 16, YUV split into 2s chunks&lt;br /&gt;
Size of single compressed video of 30s = 723191b = 706kb (Note that this contains only one IDR frame)&lt;br /&gt;
Size of 15 videos of length 2s each = 829674b = 810kb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2012 (TA + RA) =&lt;br /&gt;
Course: CMPT886 (Multicore Systems)&lt;br /&gt;
=== January ===&lt;br /&gt;
Jan 27:&lt;br /&gt;
* Conducted a survey of exiting results on SVC to AVC rewriting. While it has been reported that the re-writing process performs about 80% faster than the cascaded trans-coding process on a CPU, there are not many results on the feasibility of streaming implementation of the technique. Sablatschan et.al. have reported that the real time rewriting is not feasible for resolutions more than 480x320 videos using a quad core 3GHz processor. This leads to two directions for exploration: (1)explore the JSVM code to find better ways of doing the rewriting in parallel hardware and (2) using GOP distribution based approach on cloud to explore possibility of improving parallel performance. (1) has been extensively studied in the context of parallel encoders and decoders. (2) has scalability issues because it needs to buffer the GOPs before distributing them. &lt;br /&gt;
** One idea here is to distribute the pictures instead of GOPs which will increase the achievable degree of parallelism at the cost of increased picture management overhead. &lt;br /&gt;
** Another idea is to use the GOP based parallel rewriting at the server where the entire video is available. Then there will e no need to buffer the GoPs. Need to check whether this has been already done.&lt;br /&gt;
&lt;br /&gt;
*  Looked at some possibilities to implement scalable video streaming. Not many streaming server applications support SVC. Will look info DASH related implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 10:&lt;br /&gt;
* Started exploring the problem of video trans-coding in cloud&lt;br /&gt;
* Started exploring the feasibility of implementing a cloud test-bed using Openstack.&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Courses: CMPT 886 (Multicore Systems)&lt;br /&gt;
* TA : CMPT 371 , CMPT 379&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spring 2011 (RA) =&lt;br /&gt;
=== April ===&lt;br /&gt;
* April 8&lt;br /&gt;
** Working on the simulator for hybrid uni/multicast experiments. Taking longer than expected, may miss the MM'11 deadline&lt;br /&gt;
=== March ===&lt;br /&gt;
* Mar 28:&lt;br /&gt;
** Updated tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf link]&lt;br /&gt;
* Mar 7:&lt;br /&gt;
** Tech-report on hybrid multicast-unicast [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/hybrid/hybrid.pdf here]&lt;br /&gt;
** Working on the formulation for mobile patching scheme. Derived an expression for the bandwidth requirement and energy consumption of all-unicast and adaptive-patching schemes. Need to verify correctness analytically.&lt;br /&gt;
** Working on numerical examples of the mobile patching scheme.&lt;br /&gt;
** Documentation GENI-WiMAX project details.&lt;br /&gt;
&lt;br /&gt;
=== Feb ===&lt;br /&gt;
* Feb 28:&lt;br /&gt;
** Reviewed the existing literature and identified the main challenges in adapting video streaming schemes to wireless networks. Identified four major schemes which seem promising : Skyscraper Broadcasting, Hierarchical Stream Merging, Harmonic Patching and Piggybacking.&lt;br /&gt;
** Explored Skyscraper Broadcasting scheme and found it to be unsuitable.&lt;br /&gt;
** Documentation of the survey.&lt;br /&gt;
&lt;br /&gt;
* Feb 11: Meeting with Saleh&lt;br /&gt;
** Saleh to survey energy efficiency techniques in ad-hoc/sensor network domain and possible adaptation&lt;br /&gt;
** Som to survey Internet VoD results and look for possible adaptation in the wireless domain&lt;br /&gt;
** Meet on Feb 15 to discuss progress and decide on the first draft of one or two problems&lt;br /&gt;
** (If time) Saleh to look at WiMAX model in OPNET to see if it can be used for experiments&lt;br /&gt;
* Investigating  wireless multimedia streaming in muticast/unicast mixed mode networks&lt;br /&gt;
=== Jan ===&lt;br /&gt;
* Investigating cloud computing for video trans-coding, video mining and mobile video applications &lt;br /&gt;
* Survey report on WiMAX/LTE testbed design options [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/WiMAX/documents/techReps/testbed/wimax_testbed_report.pdf here]&lt;br /&gt;
* Report on current status of DVB-H testbed and design of EPG feature [https://cs-nsl-svn.cs.surrey.sfu.ca/nsl-projects/browser/MobileVideo/DVB-H/documents/techReps/design/mobileTV.pdf here]&lt;br /&gt;
&lt;br /&gt;
= Fall 2010 (RA) =&lt;br /&gt;
* '''Poster/Demo:''' Efficient Multiplexing for Mobile Video Streaming (CONNECT'10)&lt;/div&gt;</summary>
		<author><name>Ssa121</name></author>
	</entry>
</feed>