TY - GEN
T1 - Encoding, fast and slow
T2 - 14th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2017
AU - Fouladi, Sadjad
AU - Wahby, Riad S.
AU - Shacklett, Brennan
AU - Balasubramaniam, Karthikeyan Vasuki
AU - Zeng, William
AU - Bhalerao, Rahul
AU - Sivaraman, Anirudh
AU - Porter, George
AU - Winstein, Keith
N1 - Funding Information:
We thank the NSDI reviewers and our shepherd, Dave Maltz, for their helpful comments and suggestions. We are grateful to Timothy Terriberry for feedback throughout this project, and to Philip Levis and Fraser Brown for comments on versions of this paper. We benefited from helpful conversations with Marc Brooker, Tim Wagner, and Peter Vosshall of Amazon, and with James Bankoski, Josh Bailey, Danner Stodolsky, Roberto Peon, and the video-encoding team at Google. This work was supported in part by NSF grants CNS-1528197 and CNS-1564185, a Google Research Award, and an Amazon Cloud Credits award, with additional funding from Dropbox, VMware, and Facebook.
PY - 2017/1/1
Y1 - 2017/1/1
N2 - We describe ExCamera, a system that can edit, transform, and encode a video, including 4K and VR material, with low latency. The system makes two major contributions. First, we designed a framework to run general-purpose parallel computations on a commercial “cloud function” service. The system starts up thousands of threads in seconds and manages inter-thread communication. Second, we implemented a video encoder intended for fine-grained parallelism, using a functional-programming style that allows computation to be split into thousands of tiny tasks without harming compression efficiency. Our design reflects a key insight: the work of video encoding can be divided into fast and slow parts, with the “slow” work done in parallel, and only “fast” work done serially.
AB - We describe ExCamera, a system that can edit, transform, and encode a video, including 4K and VR material, with low latency. The system makes two major contributions. First, we designed a framework to run general-purpose parallel computations on a commercial “cloud function” service. The system starts up thousands of threads in seconds and manages inter-thread communication. Second, we implemented a video encoder intended for fine-grained parallelism, using a functional-programming style that allows computation to be split into thousands of tiny tasks without harming compression efficiency. Our design reflects a key insight: the work of video encoding can be divided into fast and slow parts, with the “slow” work done in parallel, and only “fast” work done serially.
UR - http://www.scopus.com/inward/record.url?scp=85076889929&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85076889929&partnerID=8YFLogxK
M3 - Conference contribution
T3 - Proceedings of the 14th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2017
SP - 363
EP - 376
BT - Proceedings of the 14th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2017
PB - USENIX Association
Y2 - 27 March 2017 through 29 March 2017
ER -