• Ei tuloksia

This thesis introduced a novel RTP library called uvgRTP with a built-in support for mod-ern AVC, HEVC, and VVC video codecs, an API for fragmenting generic media formats and support for end-to-end encryption using SRTP and ZRTP. It is capable of outper-forming FFmpeg and LIVE555 when streaming unencrypted HEVC by attaining a higher peak goodput and a lower average latency. Moreover, uvgRTP's encrypted HEVC streaming performance is also able to outperform FFmpeg’s unencrypted HEVC stream-ing performance. Its easy-to-use API and permissive license make it a great candidate for a real-time streaming solution for industry and research alike. uvgRTP's internal ar-chitecture makes it easy to add support for new media formats. In the future, additional features such as header compression and payload format support for uncompressed video are introduced into uvgRTP. Furthermore, the SRTP subsystem is profiled and optimized, and System Call Clustering is implemented for the packet dispatcher.

REFERENCES

[1] Cisco, Cisco Visual Networking Index: Forecast and Trends, 2017–2022 White Paper, Cisco, Feb. 2019. [Online]. Available: https://www.cisco.com/c/en/us/so-lutions/collateral/ser vice-provider/visual-networking-index-vni/whitepaper-c11-741490.html

[2] Advanced Video Coding for Generic Audiovisual Services, document ITU-T Rec. H.264 and ISO/IEC 14496-10 (AVC), ITU-T and ISO/IEC, Mar. 2009 [3] High Efficiency Video Coding, document ITU-T Rec. H.265 and ISO/IEC

23008-2 (HEVC), ITU-T Rec. and ISO/IEC, Apr. 23008-2013

[4] J. Vanne, M. Viitanen, T. D. Hamalainen, and A. Hallapuro, “Comparative Rate -Distortion-Complexity Analysis of HEVC and AVC Video Codecs,” IEEE Trans.

Circuits Syst. Video Technol., vol. 22, no. 12, Dec. 2012, pp. 1885-1898 [5] T. K. Tan, M. Mrak, V. Baroncini, and N. Ramzan, “Report on HEVC

Compres-sion Performance Verification Testing,” document JCTVC-Q1011, Valencia, Spain, Mar./Apr. 2014

[6] Versatile Video Coding, document ITU-T Rec. H.266 and ISO/IEC 23090-3, ITU-T and ISO/IEC, to be published.

[7] IETF RFC 3550 RTP: A Transport Protocol for Real Time Applications, IETF, Jul. 2003. [Online]. Available: https://tools.ietf.org/html/rfc3550 (referenced 1.3.2021)

[8] ccRTP [Online]. Available: https://www.gnu.org/software/ccrtp [9] JRTPLIB. [Online]. Available: https://github.com/j0r1/JRTPLIB [10] libre. [Online]. Available: http://www.creytiv.com/re.html

[11] PJSIP. [Online]. Available: https://www.pjsip.org

[12] GoRTP. [Online]. Available: https://github.com/wernerd/GoRTP

[13] oRTP. [Online]. Available: https://www.linphone.org/technical-corner/ortp [14] libjitsi. [Online]. Available: https://github.com/jitsi/libjitsi

[15] Restcomm Media-Core [Online]. Available: https://github.com/RestComm/me-dia-core

[16] GStreamer [Online]. Available: https://gstreamer.freedesktop.org

[17] A. Altonen, J. Räsänen, J. Laitinen, M. Viitanen, and J. Vanne, “Open-source RTP library for high-speed 4K HEVC video streaming,” in Proc. IEEE Int. Work-shop on Multimedia Signal Processing, Tampere, Finland, Sept. 2020.

[18] J. Räsänen, M. Viitanen, J. Vanne, and T. D. Hämäläinen, “Kvazzup: open soft-ware for HEVC video calls,” in Proc. IEEE Int. Symp. Multimedia, Taichung, Tai-wan, Dec. 2017.

[19] Representation of images in the Digital world -The RGB Colorspace [Online].

Available: https://bhavaniabtechie.wordpress.com/2015/07/15/representation-of-images-in-the-digital-world-the-rgb-colorspace/

[20] AOE engineering practice image processing in bank card OCR [Online]. Availa-ble: https://developpaper.com/aoe-engineering-practice-image-processing-in-bank-card-ocr/

[21] Intra-frame Coding [Online]. Available: https://users.cs.cf.ac.uk/Dave.Mar-shall/Multimedia/node248.html

[22] Interframe and Intra-frame [Online]. Available: https://joshweeklyatsit.blog-spot.com/2016/03/interframe-and-intra-frame.html

[23] Inter-frame (P-frame) Coding [Online]. Available: https://us-ers.cs.cf.ac.uk/Dave.Marshall/Multimedia/node249.html

[24] Effective Use of Long GOP Video Codecs [Online] Available: http://til-iam.com/Blog/2015/07/06/effective-use-long-gop-video-codecs/

[25] MPEG Video Layers [Online]. Available: https://users.cs.cf.ac.uk/Dave.Mar-shall/Multimedia/node257.html

[26] P. Rivaz, J. Haughton, “AV1 Bitstream & Decoding Process Specification”, The Alliance for Open Media, Jan. 2019

[27] Mukherjee, Debargha & Han, Jingning & Bankoski, Jim & Bultje, Ronald &

Grange, Adrian & Koleszar, John & Wilkins, Paul & Xu, Yaowu. (2015). A Tech-nical Overview of VP9--the Latest Open-Source Video Codec. SMPTE Motion Imaging Journal. 124. 44-54. 10.5594/j18499.

[28] G. Sullivan, J. Ohm, W. Han and T. Weigand, "Overview of the high efficiency video coding (HEVC) standard", IEEE Trans. Circuits Syst. Video Technol., vol.

22, no. 12, pp. 1649-1668, 2012.

[29] Adobe’s Real Time Messaging Protocol, H. Parmar & M. Thornburg, Dec. 2012

[30] MPEG-DASH: Dynamic Adaptive Streaming Over HTTP Explained [Online].

Available: https://www.wowza.com/blog/mpeg-dash-dynamic-adaptive-stream-ing-over-http (referenced 14.3.2021)

[31] T. Stockhammer, “Dynamic Adaptive Streaming over HTTP –Design Principles and Standards”, In ACM Multimedia Systems, Santa Clara, CA, USA, Feb.

2011.

[32] UTF-8 [Online]. Available: http://doc.cat-v.org/plan_9/4th_edition/papers/utf (ref-erenced 25.2.2021)

[33] IETF RFC 7998 RTP Payload Format for High Efficiency Video Coding (HEVC), IETF, Mar. 2016. [Online]. Available: https://tools.ietf.org/html/rfc7798 (1.3.2021)

[34] 802.3-2018 -IEEE Standard for Ethernet, Aug. 2018. [Online]. Available:

https://standards.ieee.org/standard/802_3-2018.html

[35] IETF RFC 6184 RTP Payload Format for H.264 Video, IETF, May. 2011.

[Online]. Available: https://tools.ietf.org/html/rfc6184 (1.3.2021)

[36] Floyd, S. and V. Jacobson, "The Synchronization of Periodic Routing Mes-sages", in SIGCOMM Symposium on Communications Architectures and Protocols (D. P. Sidhu, ed.), (San Francisco, California), pp. 33--44, ACM, Sep-tember 1993

[37] J. Rosenberg and H. Schulzrinne, "Timer reconsideration for enhanced RTP scalability," In Proc. IEEE Computer and Communications Societies. San Fran-cisco, CA, USA, March 1998

[38] What is Public-key Cryptography? [Online]. Available:

https://www.twilio.com/blog/what-is-public-key-cryptography (referenced 10.2.2021)

[39] R. L. Rivest, A. Shamir, and L. Adleman. 1978. A method for obtaining digital signatures and public-key cryptosystems. Commun. ACM 21, 2 (Feb. 1978), 120–126.

[40] Prime number theorem [Online]. Available: https://mathworld.wolf-ram.com/PrimeNumberTheorem.html (referenced 10.3.2021) [41] NIST Key Size Recommendations [Online]. Available:

https://www.keylength.com/en/4/ (referenced 14.2.2021)

[42] W. Diffie and M. Hellman, "New directions in cryptography," in IEEE Transac-tions on Information Theory, vol. 22, no. 6, pp. 644-654, November 1976 [43] Public-key Cryptography [Online]. Available:

http://crypto.mdc.io/2012/10/13/public-key-cryptography/ (referenced 13.2.2021) [44] RSA Key Lengths [Online]. Available:

https://www.javamex.com/tutorials/cryp-tography/rsa_key_length.shtml (referenced 14.2.2021)

[45] A (Relatively Easy To Understand) Primer on Elliptic Curve Cryptography [Online] Available: https://blog.cloudflare.com/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/ (referenced 20.2.2021)

[46] ssh-keygen(1) - Linux man page [Online] Available:

https://linux.die.net/man/1/ssh-keygen (referenced 20.2021)

[47] D. Bernstein, P. Birkner, M. Joye, T. Lange, and C. Peters. ”Twisted Edwards curves”. In Proc. Cryptology in Africa 1st international conference on Progress in cryptology (AFRICACRYPT'08). 2008, Springer-Verlag, Berlin, Heidelberg, 389–

405.

[48] Certicom Research, “SEC 1: Elliptic Curve Cryptography”, May, 2009

[49] S. Lang, “Undergraduate Algebra”, Springer Science & Business Media, 21 Mar 2005

[50] NIST; “Digital Signature Standard (DSS)”, Gaithersburg, MD 20899-8900, July 2013

[51] 10 Difference Between Block Cipher and Stream Cipher [Online]. Available:

https://vivadifferences.com/what-is-the-difference-between-block-cipher-stream-cipher/ (referenced 20.2.2021)

[52] Block cipher modes of operation [Online]. Available https://www.geeksfor-geeks.org/block-cipher-modes-of-operation/ (referenced 11.3.2021)

[53] Daemen J., Rijmen V. (2011) Rijndael. In: van Tilborg H.C.A., Jajodia S. (eds) Encyclopedia of Cryptography and Security. Springer, Boston, MA.

[54] Wadday, Ahmed & Wadi, Salim & Mohammed, Hayder & Abdullah, Ali. (2018).

Study of WiMAX Based Communication Channel Effects on the Ciphered Image Using MAES Algorithm.

[55] Kaisa Nyberg. 1991. Perfect nonlinear S-boxes. In Proceedings of the 10th an-nual international conference on Theory and application of cryptographic tech-niques (EUROCRYPT'91). Springer-Verlag, Berlin, Heidelberg, 378–386.

[56] Understanding AES 256 Encryption [Online]. Available: https://www.solar-windsmsp.com/blog/aes-256-encryption-algorithm (referenced 20.2.2021)

[57] FIPS PUB 1864-4, “Digital Signature Algorithm”, NIST, July 2013

[58] IETF RFC 2104 HMAC: Keyed-Hashing for Message Authentication, IETF, Feb.

1997 [Online]. Available: https://tools.ietf.org/html/rfc2104 (referenced 21.2.2021)

[59] MD5 Length Extension Attack Revised [Online]. Available: https://web.ar- chive.org/web/20141029080820/http://vudang.com/2012/03/md5-length-exten-sion-attack/ (referenced 2.3.2021)

[60] IETF RFC 3711 The Secure Real-time Transport Protocol (SRTP), IETF, Mar.

2004. [Online]. Available: https://tools.ietf.org/html/rfc3711 (referenced 2.3.2021) [61] IETF RFC 6189 ZRTP: Media Path Key Agreement for Unicast Secure RTP,

IETF, Apr. 2011. [Online]. Available: https://tools.ietf.org/html/rfc6189 (refer-enced 2.3.2021)

[62] SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions [Online]. Available: https://csrc.nist.gov/publications/detail/fips/202/final (refer-enced 11.3.2021)

[63] Twofish vs AES [Online]. Available: https://cloudstorageinfo.org/twofish-vs-aes-encryption (referenced 10.3.2021)

[64] N. Ferguson, S. Lucks, B. Schneier, D. Whiting, M. Bellare, T. Kohno, J. Callas, and J. Walker, "The Skein Hash Function Family, Version 1.3 - 1 Oct 2010"

[Online]. Available: http://www.skein-hash.info (referenced 11.3.2021) [65] zeroInWord [Online]. Available:

https://graphics.stanford.edu/~sean-der/bithacks.html#ZeroInWord (referenced 11.3.2021)

[66] avc_find_start_code_internal() function [Online]. Available:

https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/avc.c#L30 (refer-enced 14.3.2021)

[67] L. Soares and M. Stumm, “FlexSC: Flexible System Call Scheduling with Excep-tion-Less System Calls”, In Proceedings of the annual conference on USENIX Annual Technical Conference, ATEC, 2010

[68] M. Rajagopalan, S. K. Debray, M. A. Hiltunen and R. D. Schlichting, “System call clustering: a profile-directed optimization technique”, Technical Report, The University of Arizona, June 2002.

[69] WSASendTo function [Online]. Available: https://docs.microsoft.com/en-us/win-dows/win32/api/winsock2/nf-winsock2-wsasendto (referenced 11.3.2021) [70] sendmmsg(2) [Online]. Available:

https://man7.org/linux/man-pages/man2/sendmmsg.2.html (referenced 11.3.2021)