A Database Management System for Virtual Reality Video
LightDB is a database management system (DBMS) designed to efficiently ingest, store, and deliver virtual reality (VR) content at scale. LightDB currently targets both live and prerecorded spherical panoramic (a.k.a. 360°) VR videos. It persists content as a multidimensional array that utilizes both dense (e.g., space and time) and sparse (e.g., bit-rate) dimensions. LightDB uses orientation prediction to reduce data transfer by degrading out-of-view portions of the video. Content delivered through LightDB requires up to 60% less bandwidth than existing methods and scales to many concurrent connections.
LightDB builds on recent work in multidimensional array processing and develops new techniques for VR data storage and retrieval and near real-time in memory processing of VR videos. Our system combines the state of the art in array-oriented systems (e.g., efficient multidimensional array representation, tiling, prefetching) with the ability to apply recently-introduced optimizations by the multimedia (e.g., motion-constrained tile sets) and machine learning communities (e.g., path prediction). LightDB reduces bandwidth (and thus also power) consumption on client devices, scales to many concurrent connections, and offers an enhanced viewer experience over congested network connections.
LightDB support declarative queries over temporal light fields (TLF). To obtain a reference to a TLF, scan
it from the internal LightDB catalog or load
it from disk:
tlf = Scan("internal-tlf")
tlf2 = Load("~/video.mp4")
Each of the algebraic operators described in section 3.2 of the LightDB paper may be applied to a TLF. For example, to apply the predictive 360° query described in section 3.5, a user would write the following query:
query = Scan("internal-tlf")
.Partition(Dimension::Theta, degrees{90})
.Partition(Dimension::Phi, degrees{90})
.Subquery(lambda tlf: tlf.Encode(Codec.hevc, bitrate=b))
.Store("result")
Coordinator().execute(query)
Note that this query performs the workload presented in our SIGMOD’16 VideoCloud demonstration and discussed in the video shown below. Note that LightDB’s architecture and functionality now extend far beyond this use case; see the paper for more details.
LightDB exposes both a C++ and Python API. Please see the repository for more details.
Open an issue in our source repository with any questions or issues you might have.
Brandon Haynes, Amrita Mazumdar, Magdalena Balazinska, Luis Ceze, Alvin Cheung. Visual Road: A Video Data Management Benchmark, SIGMOD 2019
Brandon Haynes, Amrita Mazumdar, Armin Alaghi, Magdalena Balazinska, Luis Ceze, Alvin Cheung. LightDB: A DBMS for Virtual Reality Video. PVLDB, 11 (10): 1192-1205, 2018
Brandon Haynes, Artem Minyaylov, Magdalena Balazinska, Luis Ceze, Alvin Cheung. VisualCloud Demonstration: A DBMS for Virtual Reality. SIGMOD, 1615-1618, 2017. [Best Demonstration Honorable Mention]
This work is supported by the National Science Foundation through NSF grants CCF-1703051, IIS-1247469, IIS-1546083, CCF-1518703, and CNS-1563788; DARPA award FA8750-16-2-0032; DOE award DE-SC0016260; a Google Faculty Research Award; an award from the University of Washington Reality Lab; and gifts from the Intel Science and Technology Center for Big Data, Intel Corporation, Adobe, Amazon, Facebook, Huawei and Google.