DOI QR코드

DOI QR Code

Android 플랫폼에서 구현 기술에 따른 화질 개선 연산 성능 비교

Performance Comparison of Implementation Technologies for Image Quality Enhancement Operations on Android Platforms

  • 이주호 (강원대학교 컴퓨터정보통신공학과) ;
  • 이구연 (강원대학교 컴퓨터정보통신공학과) ;
  • 정충교 (강원대학교 컴퓨터정보통신공학과)
  • 투고 : 2012.12.10
  • 심사 : 2013.02.26
  • 발행 : 2013.03.31

초록

고사양 디지털 카메라를 내장한 스마트 기기의 보급이 급격하게 증가하면서 고해상도 영상의 품질을 개선하는 기능이 중요해지고 있다. 모바일 기기의 제한된 자원과 영상의 정보량을 감안하면 지나치게 복잡하지 않은 알고리즘을 선택해야 하고 가능한 효율적인 구현 기술을 사용해야 한다. 영상의 질을 향상시키는 기법 중 간단하면서도 널리 사용되는 기술은 명암 값 분포를 조절하는 명암비신장 (contrast stretching) 기법이다. 안드로이드 스마트폰의 경우, 구현 기술로는 가상 머신 위에서 동작하는 자바 라이브러리, JNI (Java Native Interface) 기반 원시 (native) C/C++ 구현 기술, 그리고 SIMD (Single Instruction Multiple Data) 기법이 적용된 NEON 구현 기술 등이 있다. 이 연구에서는 이 세 가지 기술을 선형 명암비신장 연산, 그리고 평활화 명암비신장 연산에 적용하여 그 성능을 실증적으로 비교 분석하였다. 그 결과 원시 C/C++과 NEON 라이브러리의 실행 속도는 자바 라이브러리 실행 속도에 비해 각각 56-78배, 50-76배 빠르다는 점을 확인하였다.

As mobiles devices with high-spec camera built in are used widely, the visual quality enhancement of the high-resolution images turns out to be one of the key capabilities of the mobile devices. Due to the limited computational resources of the mobile devices and the size of the high-resolution images, we should choose an image processing algorithm not too complex and use an efficient implementation technology. One of the simple and widely used image quality enhancement algorithms is contrast stretching. Java libraries running on a virtual machine, JNI (Java Native Interface) based native C/C++, and NEONTM SIMD (Single Instruction Multiple Data) are common implementation technologies in the case of Android smartphones. Using these three implementation technologies, we have implemented two image contrast stretching algorithms - linear and equalized, and compared the computation times. The native C/C++ and the NEONTM SIMD outperformed the native C/C++ implementation by 56-78 and 50-76 time faster respectively.

키워드

참고문헌

  1. http://docs.oracle.com/javase/6/docs/technotes/guides/jni/spec/jniTOC.html
  2. http://developer.android.com/tools/sdk/ndk/index.html
  3. http://www.arm.com/products/processors/technologies/neon.php
  4. http://www.android.com/about/ice-cream-sandwich/
  5. Y.-H. Lee, P. Chandrian and B. Li, "Efficient JavaNative Interface for Android Based Mobile Devices, " in Trust, Security and Privacy in Computing and Communications (TrustCom), 2011 IEEE 10th International Conference on, Changsha, Hunan Province, P. R. China, 2011.
  6. C.-M. Lin, J.-H. Lin, C.-R. Dow, and C.-M. Wen, "Benchmark Dalvik and Native Code for Android System," in 2011 Second International Conference onInnovations in Bio-inspired Computing and Applications (IBICA), 2011, pp. 320-323.
  7. Sangchul Lee and Jae Wook Jeon "Evaluating Performance of Android Platform Using Native C for Embedded Systems" 2010 International Conference on Control Automation and Systems (ICCAS), pp. 1160-1163.
  8. Daeyoun Kim, Hongchul Mo, Jongho Nang, "Memory Management Method for Improving Response Time of Android Applications, " Journal of KISS:Software and Applications, VOL.40, No.1, 2013.1, 1-7.
  9. Yeongkyu Lim, Cheong Ghil Kim, Shin Dug Kim, "Stack Allocation-based Memory Performance Improvement Technique on Android 2.3 Dalvik Virtual Machine", Journal of Digital Contents Society Vol.12 No.4 Dec. 2011(pp.551-557) https://doi.org/10.9728/dcs.2011.12.4.551
  10. Przemyslaw Bruski, "The Java (not really) Fasterthan C++ Benchmark," Available:http://bruscy.republika.pl/pages/przemek/java_not_really_faster_than_cpp.html.
  11. Christian Felde, "C++ vs Java performance; It's atie!," Available:http://blog.cfelde.com/2010/06/c-vs-java-performance.
  12. Lasse Karkkainen, "Yet Another Java vs. C++ Shootout,," Available:http://zi.fi/shootout.

피인용 문헌

  1. A Road Luminance Measurement Application based on Android vol.16, pp.2, 2015, https://doi.org/10.7472/jksii.2015.16.2.49