이미지 처리를 위한 속도 개선방법?
글쓴이: bloody / 작성시간: 금, 2010/10/22 - 11:19오후
예전에 모 외국계 회사에 면접을 보러 간적이 있었는데요..
이미지 처리를 위한 루프가 있는데...
for( int y = 0; y < height; y++ )
{
for(int x = 0; x < width; x++ )
{
current_pixel = image_byte[ y*width +x];
...
}
}
여기서 매번 루프마다 y*width를 계산하면 CPU가 곱셈을 계산하느라 퍼포먼스에 좋지 않다고 하면서
개선된 알고리즘을 생각해내서 속도를 개선해보라고 하더군요.
정말 고속의 이미지 처리를 위해서 곱셈을 안쓰고 각각의 픽셀들에 어떻게 접근하죠?
Forums:
w=0; for(y++;){ for(x++;){
이렇게 하면 되지 않을까요?
--------------------------
피할 수 있을때 즐겨라!
http://snowall.tistory.com
피할 수 있을때 즐겨라! http://melotopia.net/b
뭐 그냥
for( int x = 0; y < width*height; x++ )
current_pixel = image_byte[ x];
}
로 하면 되겠네요.
CPU에 때라 이런것을 자동으로 해 주는 제공되는 SIMD류 어셈블러를 사용 할 수도 있고요.
이 답은
이 답은 제한적으로만 맞겠네요
해당 이미지가 통으로 할당안 메모리일 경우에만요.
화면의 특정위치 사각형을 지정하는 식이라면 안되잖아요.
문득
문득 궁금해졌는데,
예전 씨퓨는 곱셈 처리에 몇십 싸이클을 잡아먹었는데 요새는 좀 나아 졌나요?
댓글 달기