Hassan Shojania


tumb photo



Hassan is with Apple working on FaceTime. From 2006 to mid-2010, he was a Ph.D. student and later a post-doctoral research associate in the Department of Electrical and Computer Engineering at the University of Toronto. He was a member of the iQua Group, led by Prof. Baochun Li.

His main interests usually fall somewhere in areas related to "computer architecture, multimedia systems, distributed systems, computer networks, parallel computing, system software, and design with FPGAs". In particular, he enjoys building working systems.

His Ph.D. study had the general theme of peer-to-peer (P2P) multimedia streaming and content distribution. Towards a real-world P2P streaming system with coding techniques, he worked on high-performance implementations of network coding and fountain codes, and also a scalable emulation framework for P2P systems. More information on his research can be found here.

He received his master's from ECE Department of Queen's University in 2005. His master's research was on "VLSI design and implementation of a high performance H.264 CABAC encoder" carried out under the supervision of Prof. Subramania Sudharsanan.
His B.Sc. degree was in Computer Engineering from Tehran Polytechnic, Tehran, Iran. His thesis topic was on "Design & implementation of a hardware controller for position control of a 6-degree of freedom robot". His thesis adviser was Prof. A. Raie.

Prior to his graduate studies, he was a senior engineer in Multimedia Device Drivers group at ATI Technologies Inc. (now part of Advanced Micro Devices) where he was a lead engineer (multimedia device drivers) for products like All-In-Wonder Radeon 9800, HDTV-Wonder and eHomeWonder. In November 2003, he left ATI to continue his studies fulltime.

Research demo

Sample coding-based peer-assisted video streaming on various peers, including iPhone, with GPU-based network coding at the server:

P2P Setup
The CPU-based network coding of this work has enabled the first production deployment of network coding. Our work has been employed by UUSee Inc., a leading peer-to-peer streaming content provider in China, for its P2P VoD and live streaming systems. More info about their system can be found here.

Contact information



Hassan Shojania, Baochun Li. "Tenor: Making Coding Practical from Servers to Smartphones," in the Proceedings of the ACM Multimedia 2010, Firenze, Italy, October 25-29, 2010. (acceptance rate: 14%)

Hassan Shojania, Baochun Li. "Pushing the Envelope: Extreme Network Coding on the GPU," in the Proceedings of the 29th International Conference on Distributed Computing Systems (ICDCS 2009), Montreal, Canada, June 22-26, 2009. (acceptance rate: 16%)

Hassan Shojania, Baochun Li. "Random Network Coding on the iPhone: Fact or Fiction?" in the Proceedings of the 19th International Workshop on Network and Operating Systems Support for Digital Audio and Video (ACM NOSSDAV 2009), Williamsburg, Virginia, June 3-5, 2009. (acceptance rate: 28%)

Hassan Shojania, Baochun Li, Xin Wang. "Nuclei: GPU-accelerated Many-core Network Coding," in the Proceedings of the 28th Conference on Computer Communications (IEEE INFOCOM 2009), Rio de Janeiro, Brazil, April 19-25, 2009. (acceptance rate: 19%)

Mea Wang, Hassan Shojania, Baochun Li. "Crystal: An Emulation Framework for Real-World Peer-to-Peer Multimedia Streaming Systems," in the Proceedings of the 28th International Conference on Distributed Computing Systems (ICDCS 2008), Beijing, China, June 17 - 20, 2008. (acceptance rate: 16%)

Hassan Shojania, Baochun Li. "Parallelized Network Coding With Hardware Acceleration," in the 15th IEEE International Workshop on Quality of Service (IWQoS 2007), Chicago, IL, June 20-22, 2007. (Slides)

Stephen Warrington, Hassan Shojania, Subramania Sudharsanan, Wai-Yip Chan. "Performance Improvement of the H.264/AVC Deblocking Filter Using SIMD Instructions," in The 2006 IEEE International Symposium on Circuits and Systems (ISCAS 2006), Island of Kos, Greece, May 21-24, 2006.

Hassan Shojania, Subramania Sudharsanan. " A VLSI architecture for High Performance CABAC Encoding," in Proceedings of the SPIE, Visual Communications and Image Processing 2005 (VCIP 2005), pp. 1444-1454, Beijing, China, July 12-15, 2005.

Hassan Shojania, Subramania Sudharsanan. " A High Performance CABAC Encoder," in Proceedings of the 3rd International IEEE Northeast Workshop on Circuits and Systems (NEWCAS 2005), pp. 315-318, Quebec City, Canada, June 19-22, 2005.

Mahdi Shabany, Hassan Shojania, Jing Zhang, Javad Omidi, Glen Gulak. "FPGA Implementation of a Wireless Channel Estimator Using Sequential Monte Carlo Sampling and Resampling," in the sixth IEEE Workshop on Signal Processing Advances in Wireless Communications (SPAWC 2005), June 5-8, 2005.

Hassan Shojania, Baochun Li. " Experiences with MPEG-4 Multimedia Streaming," in Proceedings of the Ninth ACM Multimedia Conference (ACM Multimedia 2001), pp. 492-494, Ottawa, Canada, September 30 - October 5, 2001.


Winter 2007 (UofT):

ECE770S: Trends in Middleware Systems - Selected Topics and Concepts
- Project: FPGA Implementation of a large Publish/Subscribe System.

Fall 2006 (UofT):

ECE1747F: Parallel Programming
- Project: A High-Performance Network Coding Library.
CSC2204F: Operating Systems
- Project: Towards Crystal2: A Next Generation Peer-to-Peer Emulation and Application Framework Report .

Winter 2006 (UofT):

ECE1548S: Advanced Network Architecture
- Survey/project: Network Processors. Presentation, Report.
ECE1502S: Information Theory

Winter 2005 :

ELEC877: Microprocessors for Multimedia

Fall 2004 :

EE573: Object Oriented Analysis and Design
- Project topic: OO analysis/design of CABAC, and UML modeling of H.264 encoder. Report.

Winter 2004 (visiting University of Toronto):

ECE1718H: Special Topics in Computer Hardware Design-Modern and Emerging Architectures
- Paper presentation: Introductory SMT (Simultaneous Multi-Threading). Presentation,
- Project topic: Reducing L2 cache miss rate with helper thread (using SSMT: a SMT simulator based on SimpleScalar). Presentation, Paper.
ECE1769H: Behavioral Synthesis of Digital Integrated Circuits
ECE1373H: VLSI Systems Design
- Project topic: Architecture exploration and FPGA implementation of MonteCarlo-based Channel Estimation (MCCE). Report.

Fall 2003:

ELEC873: Cluster Computing
- Research topic: An overview of Virtual Interface Architecture (VIA). Presentation, Paper.
- Project topic: Hardware-based performance monitoring with VTune Performance Analyzer under Linux. Report.
ELEC824: Computer Vision
- Project topic: Real-time traffic sign detection. Presentation, Paper.
CISC854: Computer Graphics

Last modified: Aug 2010