Page content last modified on 2023-09-13.

Kvazzup Video Communication

The Kvazzup usage

Kvazzup is a High Efficiency Video Coding (HEVC) video communication application written in C++ and built on Qt application framework. Kvazzup aims to provide a testbed for novel video conferencing solutions, while also advancing the field of Real-Time Communication (RTC). Kvazzup is licensed under permissive ISC-license.

Please cite the following paper or any other paper below if you use Kvazzup in your research:

J. Räsänen, M. Viitanen, J. Vanne, and T. D. Hämäläinen, “ Kvazzup: open software for HEVC video calls,” in Proc. IEEE Int. Symp. Multimedia, Taichung, Taiwan, Dec. 2017. [Tuni.fi] [PDF]
Quick info
What? Video communication using state-of-the-art technologies
Why? To test improvements to the quality of video communication
How? Implementing protocols using the Qt framework and C++

Protocols
SIP Session Initiation Protocol (SIP) is a signaling protocol that enables Kvazzup to start, answer or end calls. Kvazzup has its own SIP implementation and does not use any existing library. Kvazzup has been tested with Kamailio SIP proxy.
SDP Session Description Protocol (SDP) is used for describing the media parameters wanted for the call and is used to negotiatiate various aspects of the call. SIP messages carry SDP messages as a payload during call initiation.
ICE Interactive Connectivity Establishement (ICE) protocol is used to find the optimal route for media traversal when call is starting. ICE candidates are transferred inside the SDP messages.
RTP Real-time Transport Protocol (RTP) is responsible for the media delivery. Kvazzup sets up the delivery using our uvgRTP library. uvgRTP handles the fragmentation of video frames so they go smoothly through the network.

Kvazzup is under development and new features will become available. Currently, the goal is to make Kvazzup work in all network situations.

Flexible Settings

Structures tab of Kvazzup video settings for adjusting video encoder parameters.

Since Kvazzup uses the codecs directly, Kvazzup can also offer full control for the codecs directly to user. User can adjust almost any codec parameter to their liking from settings User Interface.

Useful Statistics

Structures tab of Kvazzup video settings for adjusting video encoder parameters.

The statistics of Kvazzup show 1) the SIP log, 2) the call parameters, 3) statistics for delivery, 4) Filter Graph buffer statuses, and 5) the call performance. The statistics window can be used to verify correct operations and monitor the performance characteristics of Kvazzup.

Clear Architecture

Structures tab of Kvazzup video settings for adjusting video encoder parameters.

Kvazzup is divided into subsystems than handle a particular task. There is a controller or manager class which handles the interactions between subcomponents. This division enables easier understanding of the program as a whole and also makes modifications easier because a smaller segment of the program is affected when making changes. Easy modifications should make implementing new technologies and techniques fast and convenient.

Publications

J. Räsänen, A. Altonen, A. Mercat, and J. Vanne, “Live demonstration: interactive quality of experience evaluation in Kvazzup video call,” in Proc. IEEE Int. Symp. Multimedia, Naples, Italy, Dec. 2020. [Tuni.fi] [PDF]

J. Räsänen, M. Viitanen, J. Vanne, and T. D. Hämäläinen, “Live demonstration: Kvazzup 4K HEVC video call,” in Proc. IEEE Int. Symp. Multimedia, Taichung, Taiwan, Dec. 2018. [Tuni.fi] [PDF]

J. Räsänen, M. Viitanen, J. Vanne, and T. D. Hämäläinen, “Kvazzup: open software for HEVC video calls,” in Proc. IEEE Int. Symp. Multimedia, Taichung, Taiwan, Dec. 2017. [Tuni.fi] [PDF]