• Ei tuloksia

In this work, the first public implementation of the High Efficiency Image File Format was created. The implementation consists of a writer application for creating HEIF files and a reader API which can be used to access the files created. A significant part of this work was setting up and maintaining facilities for continuous integration, and improving code quality. The implementation has already been successfully used to demonstrate the features of HEIF in several contexts including MPEG meetings, and for creating a set of conformance candidate files which are proposed to become official test material.

Evaluation of the work shows that it was possible to improve and maintain sufficient software quality during the project. Several code metrics were extracted from the source code repository version history. The metrics show that eventually the written test cases achieved a high code coverage of over 80%. This did not only mean that most of the code was automatically tested, but it also enabled the extensive dynamic analysis of programs. Several problems were quickly diagnosed and fixed thanks to it. When the violations found by static analysis were related to the amount of code, it can be seen that the frequency of violations decreased and stabilized before the first public release.

The combination of dynamic and static analysis seemed to supplement each other like expected, as static analysis logs were completely free of most serious class find-ings. In order to achieve better code quality it could have been beneficial to inte-grate static analysis into the continuous integration system in an earlier phase of the project, and use more extensive analysis. Static analysis messages about video bitstream parser code should be suppressed so less false alarms would be present. An automatic reporting of quality issues to developers would further enhanced the ef-fectiveness of the analysis. Now the used process did not provide real-time feedback for developers about changes in static analysis results.

Automatic processing of the HEIF and ISOBMFF specifications on the box-structure

6. Conclusion 49 level could be considered, as it seems that manual checking of files by using existing tools and by reading specifications is error-prone. Basic machine-readable repre-sentation of specification structures and parsing it would probably be feasible to implement. This would make it possible to automatically analyze generated HEIF files, and enable a better decoupling of testing and the actual application code.

The HEIF is a very competitive image file format by its features and compression efficiency. However, the extensive feature set might also become a burden if sup-porting it turns out to be impractical, and applications with incomplete feature sets appear and cause compatibility issues which frustrate users. Having said that, the usage of ISOBMFF brands can ease this as they define a minimal player operation and therefore guarantee a minimum set of interoperability.

50

BIBLIOGRAPHY

[1] A. Aggarwal and P. Jalote, “Integrating static and dynamic analysis for de-tecting vulnerabilities,” in 30th Annual International Computer Software and Applications Conference (COMPSAC’06), vol. 1, Sept 2006, pp. 343–350.

[2] S. Allegrezza, “Flexible image transport system: a new standard file format for longterm preservation projects?” July 2012. [Online]. Available:

https://www.vatlib.it/moduli/Allegrezza_EWASS2012.pdf

[3] H. H. Ammar, T. Nikzadeh, and J. B. Dugan, “Risk assessment of software-system specifications,” IEEE Transactions on Reliability, vol. 50, no. 2, pp.

171–183, Jun 2001.

[4] F. Bellard, “BPG specification,” 2014-2015, [Online; accessed 4-February-2016].

[Online]. Available: http://bellard.org/bpg/bpg_spec.txt

[5] F. Dufaux, G. Sullivan, and T. Ebrahimi, “The JPEG XR image coding stan-dard [stanstan-dards in a nutshell],” Signal Processing Magazine, IEEE, vol. 26, no. 6, pp. 195–199, 204–204, November 2009.

[6] M. Gelbmann, “The PNG image file format is now more popu-lar than GIF,” Jan. 2013, [Online; accessed 15-May-2016]. [Online].

Available: http://w3techs.com/blog/entry/the_png_image_file_format_is_

now_more_popular_than_gif

[7] R. C. Gonzalez and R. E. Woods, Digital Image Processing, 2nd ed. Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc., 2001.

[8] P. Hanhart, M. Rerabek, P. Korshunov, and T. Ebrahimi, “Subjective evalua-tion of HEVC intra coding for still image compression,” inSeventh International Workshop on Video Processing and Quality Metrics for Consumer Electronics - VPQM 2013, 2013.

[9] M. M. Hannuksela, E. B. Aksu, J. Lainema, and V. K. Malamal Vadakital,

“Overview of the high efficiency image file format,” 2015, [Online; accessed 4-February-2016]. [Online]. Available: http://phenix.int-evry.fr/jct/doc_end_

user/documents/22_Geneva/wg11/JCTVC-V0072-v1.zip

BIBLIOGRAPHY 51 [10] M. Hannuksela, J. Lainema, and V. Malamal Vadakital, “The high efficiency im-age file format standard [standards in a nutshell],” Signal Processing Magazine, IEEE, vol. 32, no. 4, pp. 150–156, July 2015.

[11] IEEE, “IEEE standard for a software quality metrics methodology,” IEEE Std 1061-1998, Dec 1998.

[12] ISO, “Graphic technology — Extensible metadata platform (XMP) specification – Part 1: Data model, serialization and core properties,” International Organi-zation for StandardiOrgani-zation, Geneva, Switzerland, ISO 16684-1:2012, 2012.

[13] S. Jalali and C. Wohlin, “Agile practices in global software engineering - a sys-tematic map,” in 2010 5th IEEE International Conference on Global Software Engineering, Aug 2010, pp. 45–54.

[14] JEITA, “Exchangeable image file format for digital still cameras — Exif ver-sion 2.3,” Japan Electronics and Information Technology Industries Association, Tokyo, Japan, JEITA CP-3451C, 2012.

[15] JPEG, “Overview of JPEG 2000,” [Online; accessed 15-May-2016]. [Online].

Available: https://jpeg.org/jpeg2000/

[16] R. A. Kirsch, “SEAC and the start of image processing at the national bureau of standards,” IEEE Annals of the History of Computing, vol. 20, no. 2, pp.

7–13, Apr 1998.

[17] R. A. Kirsch, L. Cahn, C. Ray, and G. H. Urban, “Experiments in processing pictorial information with a digital computer,” in Papers and Discussions Presented at the December 9-13, 1957, Eastern Joint Computer Conference: Computers with Deadlines to Meet, ser. IRE-ACM-AIEE ’57 (Eastern). New York, NY, USA: ACM, 1958, pp. 221–229. [Online]. Available:

http://doi.acm.org/10.1145/1457720.1457763

[18] A. Mundra, S. Misra, and C. A. Dhawale, “Practical scrum-scrum team: Way to produce successful and quality software,” in Computational Science and Its Applications (ICCSA), 2013 13th International Conference on, June 2013, pp.

119–123.

[19] F. Nack, Encyclopedia of Database Systems. Boston, MA: Springer US, 2009, ch. Image Metadata, pp. 1362–1368. [Online]. Available:

http://dx.doi.org/10.1007/978-0-387-39940-9_1521

Bibliography 52 [20] J. R. Ohm and G. J. Sullivan, “High efficiency video coding: the next frontier in video compression [standards in a nutshell],” IEEE Signal Processing Magazine, vol. 30, no. 1, pp. 152–158, Jan 2013.

[21] D. Salomon and G. Motta, Handbook of Data Compression. London:

Springer London, 2010. [Online]. Available: http://dx.doi.org/10.1007/

978-1-84882-903-9_11

[22] D. Singer, “ISO Base Media File Format,” 2011, [Online; accessed 1-May-2016]. [Online]. Available: http://mpeg.chiariglione.org/standards/mpeg-4/

iso-base-media-file-format

[23] A. Smith, “Digital paint systems: an anecdotal and historical overview,” Annals of the History of Computing, IEEE, vol. 23, no. 2, pp. 4–30, Apr 2001.

[24] D. Spinellis, “Reading, writing, and code,” Queue, vol. 1, no. 7, pp. 84–89, Oct. 2003. [Online]. Available: http://doi.acm.org/10.1145/957717.957782 [25] Standard C++ Foundation, “C++11 Overview,” [Online; accessed

14-May-2016]. [Online]. Available: https://isocpp.org/wiki/faq/cpp11

[26] D. C. Wells, E. W. Greisen, and R. H. Harten, “FITS - a flexible image transport system,” Astronomy and Astrophysics, Supplement, vol. 44, p. 363, June 1981.

[27] Wikipedia, “Computer Graphics Metafile,” 2014, [Online; accessed 4-February-2016]. [Online]. Available: https://en.wikipedia.org/w/index.php?

title=Computer_Graphics_Metafile&oldid=640192792

[28] ——, “VIDTEX,” 2015, [Online; accessed 4-February-2016]. [Online]. Available:

https://en.wikipedia.org/w/index.php?title=VIDTEX&oldid=694445047 [29] ——, “JPEG,” 2016, [Online; accessed 4-February-2016]. [Online]. Available:

https://en.wikipedia.org/w/index.php?title=JPEG&oldid=700084745

[30] ——, “Portable Network Graphics,” 2016, [Online; accessed 4-February-2016].

[Online]. Available: https://en.wikipedia.org/w/index.php?title=Portable_

Network_Graphics&oldid=698339104

53

APPENDIX A. AN HEIF WRITER EXAMPLE INPUT

Input configuration 1 An example of an HEIF file description for the writer appli-cation in JSON format. Encapsulation type meta makes this a single image item, or an image sequence in case the input bitstream contains several images.