||Recently, the ISO/IEC standardized a dataflow-programming framework called Reconfigurable Video Coding (RVC) for the specification of video codecs. The RVC framework aims at providing the specification of a data-driven system at a high abstraction level so that the functionality (or behaviour) of the system become independent of the implementation details. The idea is to specify a system so that only the functionality (or behaviour) of the algorithms are explicitly expressed via their input and output interfaces, and the implementation choice (conversion of implementation-independent abstract solution to implementation-dependent solution) can then be made only once specific target platform has been chosen. With this approach, one abstract design can be used to automatically create implementations towards multiple target platforms. Although RVC was developed with the perspective of video codecs, it can serve as a general-purpose framework for domains beyond multimedia codecs. This motivated us to research: 1) if and how RVC can benefit other domains like secure computing? 2) can applications in other domain help evolve RVC to make it an even more general and useful solution?
In this thesis, we report our investigations on applying the methodology, standardized by the MPEG RVC framework, to develop secure computing systems from the domains of cryptography and multimedia security, leading to the conclusion that the attractive features of the RVC approach can successfully be applied to another field than multimedia coding.
In order to study if the RVC is a good choice for the development of secure computing systems, we started our work with the development of a Crypto Tools Library (CTL) based on RVC, which covers a number of widely used ciphers and cryptographic hash functions such as AES, Triple DES, ARC4 and SHA-2. By combining CTL with video tool library (a standard library defined by the RVC standard), a non-standard RVC-based H.264/AVC encoder and a non-standard RVC-based JPEG codec, we further demonstrated the benefits of using RVC to develop different kinds of multimedia security applications, which include joint multimedia encryption-compression schemes, digital watermarking and image steganography in JPEG compressed domain. Moreover, two security protocols were also implemented and deployed to demonstrate how one can do hardware/software co-design easily with RVC. Our performance benchmarking results on the RVC-based AES and SHA-2 implementations in both C and Java and on the above mentioned multimedia security applications revealed that the automatically generated implementations can achieve a comparable performance to some manually-written reference implementations. Since RVC also naturally supports parallelization of applications on multi-core systems, we also conducted a comparative study to evaluate the amount of performance gain cryptographic and multimedia security applications can achieve on multi-core platforms.
In a nutshell, our study has shown that RVC can be used as a general-purpose implementation-independent development framework for diverse data-driven applications with different complexities and highlighted some areas where RVC requires some improvements to become more and more general-purpose. These areas include 1) investigating better ways to support human interactions in dataflow programming paradigm (e.g., supporting event handlers by modelling humans as a special functional units), 2) supporting code generation for many-core systems, 3) enhancement of code generation and simulation tools to support large-scale RVC systems (with thousands to millions of components), and 4) enhancement of design space exploitation tools to support automated parallelization of RVC applications.