안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
surfaceview 에 비디오를 출력하는데 작은 크기의 비디오를 확대를 하다보니 각이 지는 현상이 보여서 anti aliasing 을 구현하는데요.
디코딩 하는 단계에서 확대 알고리즘을 사용하니 성능에 문제가 있어 혹시 surfaceview 에 anti aliasing 기능을 사용할 수 있는지 알고 싶어 질문드립니다.
2011.03.26 08:44:25
Canvas 클래스의 drawBitmap 함수를 호출할 때 paint 객체에 anti aliasing 을 설정하여 전달하는 방법은 제 경우에는 제대로 적용되지 않았습니다. 구글 검색을 해보면 모두 포도맛카라 님과 같은 답을 주고 있는데 잘 된다고 하는 경우는 찾지 못하겠습니다. 물론 제가 찾지 못하는 경우일 수도 있습니다.
오히려 Bitmap 클래스의 createScaledBitmap 함수에 filter 값을 true 로 전달하는 경우 scaling 알고리즘(bilinear 로 알고 있습니다)이 적용되었습니다. 하지만 비디오 재생을 하기에는 작업시간이 너무 오래 걸리는 면이 있어서 이 방법은 사용할 수 없게 되었네요.
그래서 opengl 에 texture 를 사용하여 출력해 보았는데 의외로 렌더링하는데 작업시간이 꽤 걸리더군요. 폰 마다 렌더링 작업시간 차이도 크고요. 그래서 opengl 도 사용할 수 없었습니다.
결과적으로 이런 저런 방법도 되지 않아 bresenham 스케일링 알고리즘을 적용하는 함수를 jni로 작성해서 임시 방편으로 사용하고 있습니다.
답변 감사드립니다.



