Difference between revisions of "Private:pCDN:Extensions"

From NMSL
 
(3 intermediate revisions by the same user not shown)
Line 18: Line 18:
  
 
* For spatial scalability, the number of required layers is determined before any download sessions start based on the screen resolution of the receiver (we can't change the resolution during playback). This can be determined in a way similar to the quality adaptation techniques mentioned in \cite{APK09}.
 
* For spatial scalability, the number of required layers is determined before any download sessions start based on the screen resolution of the receiver (we can't change the resolution during playback). This can be determined in a way similar to the quality adaptation techniques mentioned in \cite{APK09}.
 +
  
 
== Libraries and Tools ==
 
== Libraries and Tools ==
  
[http://www.videolan.org VLC] and [http://www.mplayerhq.hu/ MPlayer]
+
* [http://www.videolan.org VLC] and [http://www.mplayerhq.hu/ MPlayer]
 +
** [http://wiki.videolan.org/Documentation:Hacker%27s_Guide VLC Hacker's Guide]
 +
** [http://forum.videolan.org/viewtopic.php?f=32&t=56939 JVLC Status]
 +
 
 +
* [http://imedia.disi.unitn.it/RoSE/index_main.html RoSE Project]
 +
 
 +
* Java NAL Parser
  
[http://imedia.disi.unitn.it/RoSE/index_main.html RoSE Project]
+
* Network Emulation
 +
** [http://www.oneunified.net/blog/OpenSource/Debian/MasterShaper/index.blog NistNet and Netem: WAN Empairment Emulators]
 +
** [http://tcn.hypert.net/ TCN Trace Control for Netem]
 +
** [http://www.linuxfoundation.org/collaborate/workgroups/networking/netem netem]
 +
** [http://opensource.sys-con.com/node/295323 An Inexpensive Network Emulator for Testing Applications]
 +
** [http://www-x.antd.nist.gov/nistnet/ NistNet]
 +
** [http://info.iet.unipi.it/~luigi/dummynet/ DummyNet port to Linux]
  
Java NAL Parser
 
  
 
== References ==
 
== References ==

Latest revision as of 15:06, 22 January 2010

Enabling SVC-based Video Streaming

  • pCDN currently divides any shared file into equally sized chunks (pieces) without regard to content or internal file structure. This will not work for video streaming (e.g. we need to take the boundaries of video frames or GOPs into consideration). In addition, a container file is composed of both video and audio tracks. To efficiently stream the video content, we have to demux the file to separate and extract the tracks and transmit each one separately.
  • Current implementation uses TCP for transmitting the content between peers. We should consider whether UDP will be more suitable for the streaming case. We should also see whether using RTP or MPEG2-TS streams will be suitable.
  • Error resilience and handling packet loss are critical issues in streaming applications. There is a tradeoff between using Multiple Description Coding (MDC) and using Layered Coding (LC), such as SVC. LC is more sensitive to transmission losses. We should also consider whether a combination of both coding schemes would result in better quality and error resilience.
  • For SVC, we must ensure the protection of the base layer (BL), otherwise the content will not be decodable. It is more likely that we will need unequal error protection (UEP) to ensure the delivery of at least the base layer (this can be achieved by using FEC with the base layer for example).
  • Since the video and audio streams may be sent separately (separate video layers will also be sent separately), the receiver needs a buffer to synchronize the received streams and to allow rendering of all layers of a frame. Otherwise, if data from the enhancement layers arrive late, only the BL would be rendered. An efficient implementation is most probably going to be a sliding window buffer similar to the ones described in \cite{ARI09} and \cite{XSG08}.
  • Receiver might need to perform transcoding \cite{AHR08} or stream re-writing \cite{SZ08} of the received content into an H.264/AVC stream in the case of using a media player that does not support SVC.
  • A new piece scheduling mechanism that gives priority to pieces from the more important layers (and takes into consideration the availability of the pieces at each peer) is required.
  • Do we currently have an incentive mechanism in pCDN? Do we have one that is suitable for video streaming? \cite{LSP07}
  • For spatial scalability, the number of required layers is determined before any download sessions start based on the screen resolution of the receiver (we can't change the resolution during playback). This can be determined in a way similar to the quality adaptation techniques mentioned in \cite{APK09}.


Libraries and Tools

  • Java NAL Parser


References

[1] S. Asioli, N. Ramzan, and E. Izquierdo, “Efficient scalable video streaming over P2P network,” in Proceedings of the 1st International ICST Conference on User Centric Media (UCMedia 2009), Dec. 2009.

[2] X. Xiao, Y. Shi, and Y. Gao, “On optimal scheduling for layered video streaming in heterogeneous peer-to-peer networks,” in Proceedings of the 16th ACM International Conference on Multimedia, 2008, pp. 785–788.

[3] P. Amon, H. Li, A. Hutter, D. Renzi, and S. Battista, “Scalable video coding and transcoding,” in Proceedings of the IEEE International Conference on Automation, Quality and Testing, Robotics (AQTR’08), vol. 1, May 2008, pp. 336–341.

[4] A. Segall and J. Zhao, “Bit stream rewriting for svc-to-avc conversion,” in Proceedings of the 15th IEEE International Conference on Image Processing (ICIP’08), Oct. 2008, pp. 2776–2779.

[5] Z. Liu, Y. Shen, S. S. Panwar, K. W. Ross, and Y. Wang, “Using layered video to provide incentives in P2P live streaming,” in Proceedings of the 2007 workshop on Peer-to-peer streaming and IP-TV, 2007, pp. 311–316.

[6] O. Abboud, K. Pussep, A. Kovacevic, and R. Steinmetz, “Quality adaptive Peer-to-Peer streaming using scalable video coding,” in Wired-Wireless Multimedia Networks and Services Management, 2009, pp. 41–54.