Double Buffering

yeezze·2022년 6월 10일
0

개념

더블 버퍼링은 그래픽 객체에 이미지를 그릴 때 사용되는 기법이다.

버퍼란 어떤 장치에서 다른 장치로 데이터를 송신할 때 일어나는 시간의 차이나 데이터 흐름의 속도 차이를 조정하기 위해 일시적으로 데이터를 기억시키는 장치이다.

싱글버퍼(single buffer)의 경우 채널이 데이터를 버퍼에 저장하면 프로세서가 처리하는 방식으로 진행된다. 이경우 채널이 데이터를 저장하는 동안에는 데이터에 대한 처리가 이루어질 수 없으며, 프로세서가 데이터를 처리하는 동안에는 다른 데이터가 저장될 수 없게된다.

더블버퍼(double buffer)의 경우에는 데이터에 대한 저장과 처리가 동시에 일어날 수 있다. 입력채널이 첫 번째 버퍼에 데이터를 저장하는 동안 프로세서가 두 번째 버퍼의 데이터를 처리할 수 있는 것이다.

활용 방법

컴퓨터 화면 상에서 이미지가 움직이는 것을 어떻게 구현해야할까?

기존에는 그리고 지우고 다시 그리고를 반복하는 방식으로 구현했다. 실시간으로 그리고 지우기 때문에 화면이 깜빡거리는 현상이 발생한다. 이에 대한 해결방안으로 버퍼 역할을 해줄 메모리 장치 컨텍스트(보이지 않는 화면)를 하나 더 사용하여 그곳에 이미지를 그리고, 기존 화면을 유지하다가 이미지가 완성되면 실제 화면 장치 컨텍스트로 한꺼번에 베껴 그리는 것이다.

[참고 : https://ko.wikipedia.org/wiki/다중_버퍼링, https://movefast.tistory.com/6]

profile
백엔드 개발자 😊

0개의 댓글