KR20140020435A - 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템 - Google Patents

멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템 Download PDF

Info

Publication number
KR20140020435A
KR20140020435A KR1020120086768A KR20120086768A KR20140020435A KR 20140020435 A KR20140020435 A KR 20140020435A KR 1020120086768 A KR1020120086768 A KR 1020120086768A KR 20120086768 A KR20120086768 A KR 20120086768A KR 20140020435 A KR20140020435 A KR 20140020435A
Authority
KR
South Korea
Prior art keywords
thread
data
memory
animation
buffer
Prior art date
Application number
KR1020120086768A
Other languages
English (en)
Other versions
KR101404489B1 (ko
Inventor
허영주
이중연
구기범
Original Assignee
한국과학기술정보연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술정보연구원 filed Critical 한국과학기술정보연구원
Priority to KR1020120086768A priority Critical patent/KR101404489B1/ko
Publication of KR20140020435A publication Critical patent/KR20140020435A/ko
Application granted granted Critical
Publication of KR101404489B1 publication Critical patent/KR101404489B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/60Solid state media
    • G11B2220/61Solid state media wherein solid state memory is used for storing A/V content

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Processing Or Creating Images (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

본 발명은, 애니메이션 동영상을 재생하기 위해 메인 쓰레드와 애니메이션 쓰레드를 각각 구동시켜 메인 쓰레드가 버퍼링 된 애니메이션 그래픽을 렌더링하여 화면에 디스플레이하는 동안 애니메이션 쓰레드가 다음으로 렌더링 할 애니메이션 데이터를 페치(fetch)하여 그래픽스 데이터로 가공 처리하여 버퍼에 저장하면, 메인 쓰레드가 다음 순서에 메인 쓰레드 버퍼와 애니메이션 쓰레드 버퍼를 스왑(Swap)한 후 새로 업데이트 된 버퍼의 동영상 데이터를 화면 상에 디스플레이할 수 있도록 하는 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템에 관한 것이다. 본 발명에 따른 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법은, (a) 사용자로부터 동영상 요청에 따라 마이크로프로세서가 메인 쓰레드와 애니메이션 쓰레드를 생성하는 단계; (b) 상기 메인 쓰레드가 제1 메모리에 존재하는 동영상 데이터를 렌더링하여 화면 상에 디스플레이하는 단계; (c) 상기 애니메이션 쓰레드가 다음으로 렌더링 할 동영상 데이터를 페치한 후 그래픽스 데이터로 가공 처리하여 제2 메모리에 저장하는 단계; (d) 상기 메인 쓰레드가 상기 제1 메모리와 상기 제2 메모리를 스왑(Swap)하는 단계; 및 (e) 상기 메인 쓰레드가 상기 제1 메모리에 새로 업데이트 된 동영상 데이터를 렌더링하여 화면 상에 디스플레이하는 단계를 포함하는 것을 특징으로 한다.

Description

멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템{System and method for implementing real-time animation using multi-thread}
본 발명은 애니메이션 동영상을 재생하기 위해 메인 쓰레드와 애니메이션 쓰레드를 각각 구동시켜 메인 쓰레드가 버퍼에 버퍼링 된 애니메이션 그래픽을 렌더링하여 화면에 디스플레이하는 동안 애니메이션 쓰레드가 다음으로 렌더링 할 애니메이션 데이터를 펫치(fetch)하여 화면에 디스플레이 할 수 있는 그래픽스 데이터로 가공 처리하여 버퍼에 저장하면, 메인 쓰레드가 다음 순서에 메인 쓰레드 버퍼와 애니메이션 쓰레드 버퍼를 스왑(Swap)한 후 새로 업데이트 된 버퍼의 데이터를 화면 상에 디스플레이함으로써 동영상을 실시간으로 렌더링하는데 소요되는 시간을 단축할 수 있도록 하는 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템에 관한 것이다.
통상적으로 이동 전화기, PDA(Personal Digital Assistant)와 같은 휴대용 기기에서는 LCD(Liquid Crystal Display)와 같은 디스플레이 장치를 사용하여 화상 을 디스플레이하고 있다. 이러한 휴대용 기기에 있어서 마이크로 프로세서는 LCD 패널을 통해 디스플레이할 화면을 위한 화상 데이터를 데이터 버스를 통하여 LCD 드라이버(driver) 내에 있는 디스플레이 데이터 버퍼에 출력하여 화면을 구성한다.
한편, 화면을 갱신하여야 하는 경우에 마이크로 프로세서는 매 화면마다 새로운 화면을 위한 화상 데이터를 디스플레이 데이터 버퍼로 출력하여 새로운 화면을 구성하여 갱신하였었다.
화면을 갱신하는 경우에 매 화면마다 새로운 화면의 화상 데이터를 디스플레이 데이터 버퍼로 출력하여 화면을 구성하는 것은 마이크로프로세서에 부하로 작용하여 속도가 느려서 화면이 흐르는 것이 보이거나 깜박이게 되므로 사용자의 눈에 거부감을 주게 된다. 예를 들어 메뉴(menu) 화면에서 상위로 또는 하위로 스크롤(scroll)하는 경우에 전체 화면을 다시 갱신해야 하는데 휴대용 기기에 채용되는 마이크로프로세서의 성능에 한계가 있어 갱신되는 과정에서 화면이 흐르는 것이 사용자 눈에 보이게 된다. 또한, 빠르게 스크롤하는 경우에는 화면 갱신 반응 속도가 사용자의 입력 속도를 따라가지 못하는 문제가 있다. 그리고, 전화 수신, 전화 발신 애니메이션(animation) 등을 디스플레이하는 경우에도 화면 갱신 과정이 화면에서 흐르는 것이 보이게 되고 깜박이게 되는 문제가 있다.
한편, 동영상은 스틸 영상에 비해 그래픽 처리 속도가 영상에 많은 영향을 미치게 되므로 그래픽 관련 연산의 처리 속도를 향상시키기 위한 개발이 진행되고 있다. 하지만 아무리 그래픽 처리 속도를 높여도 일정 수준 이상의 속도 향상은 기대하기 어려우며, 매 프레임에서 그래픽 연산 처리가 늦어질 때마다 화면이 멈추기 때문에 사용자 컨트롤이 어려워지는 문제가 있다.
대한민국 등록특허공보 제0440405호(등록일:2004년07월05일)
전술한 문제를 해결하기 위한 본 발명의 목적은, 애니메이션 동영상을 재생하기 위해 메인 쓰레드와 애니메이션 쓰레드를 각각 구동시켜 메인 쓰레드가 버퍼에 버퍼링 된 애니메이션 그래픽을 렌더링하여 화면에 디스플레이하는 동안 애니메이션 쓰레드가 다음으로 렌더링 할 애니메이션 데이터를 페치(fetch)하여 화면에 디스플레이 할 수 있는 그래픽스 데이터로 가공 처리하여 버퍼에 저장하면, 메인 쓰레드가 다음 순서에 메인 쓰레드 버퍼와 애니메이션 쓰레드 버퍼를 스왑(Swap)한 후 새로 업데이트 된 버퍼의 데이터를 화면 상에 디스플레이함으로써 동영상을 실시간으로 렌더링하는데 소요되는 시간을 단축할 수 있도록 하는 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템을 제공함에 있다.
전술한 목적을 달성하기 위한 본 발명의 일 측면에 따르면, (a) 사용자로부터 동영상 요청에 따라 마이크로프로세서가 메인 쓰레드와 애니메이션 쓰레드를 생성하는 단계; (b) 상기 메인 쓰레드가 제1 메모리에 존재하는 동영상 데이터를 렌더링하여 화면 상에 디스플레이하는 단계; (c) 상기 애니메이션 쓰레드가 다음으로 렌더링 할 동영상 데이터를 페치한 후 그래픽스 데이터로 가공 처리하여 제2 메모리에 저장하는 단계; (d) 상기 메인 쓰레드가 상기 제1 메모리와 상기 제2 메모리를 스왑(Swap)하는 단계; 및 (e) 상기 메인 쓰레드가 상기 제1 메모리에 새로 업데이트 된 동영상 데이터를 렌더링하여 화면 상에 디스플레이하는 단계를 포함하는 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법이 제공된다.
또한, 상기 (c) 단계는, 상기 애니메이션 쓰레드가 데이터 처리 과정이 완료되었음을 알리는 신호를 상기 메인 쓰레드에 전송하는 것을 포함할 수 있다.
또한, 상기 (d) 단계는, 상기 메인 쓰레드가 다음 데이터를 처리하라(Process Next)는 명령 신호를 상기 애니메이션 쓰레드에 전송하는 것을 포함할 수 있다.
그리고, 상기 애니메이션 쓰레드는 상기 스왑 된 상기 제2 메모리에서 이전 데이터의 내역을 삭제하고 다음에 렌더링 할 데이터를 페치하여 버퍼링하는 것을 포함할 수 있다.
한편, 전술한 목적을 달성하기 위한 본 발명의 다른 측면에 따르면, 사용자로부터 동영상 데이터의 요청을 입력받기 위한 입력부; 상기 동영상 데이터를 버퍼링(Buffering)하기 위한 제1 메모리 및 제2 메모리; 상기 제1 메모리와 상기 제2 메모리에 대해, 현재 화면의 동영상 데이터를 출력하는 메인 쓰레드 버퍼와, 다음의 새로운 화면의 동영상 데이터를 저장하는 애니메이션 쓰레드 버퍼로 선택하여, 메인 쓰레드를 통해 상기 제1 메모리에 존재하는 동영상 데이터를 렌더링하여 화면 상에 디스플레이하거나, 애니메이션 쓰레드를 통해 다음으로 렌더링 할 동영상 데이터를 페치하고 그래픽스 데이터로 가공 처리하여 상기 제2 메모리에 저장한 후, 상기 메인 쓰레드 버퍼와 상기 애니메이션 쓰레드 버퍼를 스왑(Swap)하고, 상기 메인 쓰레드를 통해 상기 제1 메모리에 새로 업데이트 된 다음 동영상 데이터를 렌더링하여 화면 상에 디스플레이하도록 제어하는 마이크로 프로세서; 및 상기 제1 메모리에 있는 동영상 데이터를 렌더링하여 화면 상에 디스플레이하는 과정을 처리하는 영상 처리부를 포함하는 동영상 실시간 렌더링 시스템이 제공된다.
또한, 상기 애니메이션 쓰레드는, 다음으로 렌더링 할 동영상 데이터를 페치하고 그래픽스 데이터로 가공 처리하여 상기 제2 메모리에 저장한 후, 데이터 처리 과정이 완료되었음을 알리는 신호를 상기 메인 쓰레드에 전송할 수 있다.
또한, 상기 메인 쓰레드는, 다음 데이터를 처리하라(Process Next)는 명령 신호를 상기 애니메이션 쓰레드에 전송할 수 있다.
그리고, 상기 애니메이션 쓰레드는, 상기 스왑 된 상기 제2 메모리의 애니메이션 쓰레드 버퍼에서 이전 데이터의 내역을 삭제하고 다음에 렌더링 할 데이터를 페치하여 버퍼링할 수 있다.
본 발명에 의하면, 용량이 크거나 또는 연산 처리에 시간이 오래 걸리는 동영상 데이터를 실시간으로 렌더링 할 때, 메인 쓰레드와 애니메이션 쓰레드의 멀티 쓰레드를 이용하고, 메인 쓰레드 버퍼와 애니메이션 쓰레드 버퍼의 더블 버퍼링 기법을 통해 렌더링하여 실시간으로 재생할 수 있다.
또한, 멀티 쓰레드를 이용하고 더블 버퍼링 기법을 활용함으로써 사용자 컨트롤이 이뤄지는 메인 쓰레드는 계속 수행되고, 애니메이션 쓰레드에서 그래픽 화면이 업데이트 될 때마다 렌더링 할 데이터를 스왑(swap)함으로써, 렌더링을 수행할 수 있게 되기까지 비교적 오랜 처리 시간을 거쳐야 하는 데이터 혹은 대용량 데이터를 가시화하는 과정에서 발생할 수 있는 화면 멈춤 현상이나 사용자가 프로그램을 제어할 수 없게 만드는 디바이스 멈춤 현상을 해결할 수 있다.
그리고, 사용자가 프로그램에 대한 컨트롤을 잃지 않은 상태에서 그래픽 처리에 오랜 시간이 걸리는 동영상을 실시간으로 렌더링해서 수행할 수 있고, 멀티쓰레드 기법과 더블 버퍼 스왑 기법을 사용함으로써 애이메이션 처리 속도를 향상시킬 수 있다.
도 1은 본 발명의 실시예에 따른 동영상 실시간 렌더링 시스템의 개략적인 구성을 나타낸 구성도이다.
도 2는 본 발명의 실시예에 따른 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법을 설명하기 위한 동작 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 특정한 실시형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명에 따른 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템의 실시예를 첨부도면을 참조하여 상세히 설명하기로 한다. 첨부도면을 참조하여 설명함에 있어 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
싱글버퍼(single buffer)의 경우 채널이 데이터를 버퍼에 저장하면 프로세서가 처리하는 방식으로 진행된다. 이 경우 채널이 데이터를 저장하는 동안에는 데이터에 대한 처리가 이루어질 수 없으며, 프로세서가 데이터를 처리하는 동안에는 다른 데이터가 저장될 수 없게 된다.
그러나, 더블버퍼(double buffer)의 경우에는 데이터에 대한 저장과 처리가 동시에 일어날 수 있다. 입력채널이 첫 번째 버퍼에 데이터를 저장하는 동안 프로세서가 두 번째 버퍼의 데이터를 처리할 수 있는 것이다.
따라서, 본 발명에서는 메인 쓰레드(main thread)와 애니메이션 쓰레드(animation thread)의 멀티 쓰레드를 이용하고, 메인 쓰레드 버퍼와 애니메이션 쓰레드 버퍼의 더블 버퍼링(Double buffering) 기법을 활용함으로써, 사용자 컨트롤이 이뤄지는 메인 쓰레드는 계속 수행되고, 애니메이션 쓰레드에서 그래픽 화면이 업데이트 될 때마다 렌더링 할 데이터를 스왑함으로써, 사용자가 화면 멈춤 현상으로 인해 컨트롤을 잃지 않고 그래픽 연산에 시간이 많이 소요되는 영상을 실시간으로 렌더링 할 수 있게 하는 것이다.
도 1은 본 발명의 실시예에 따른 동영상 실시간 렌더링 시스템의 개략적인 구성을 나타낸 구성도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 동영상 실시간 렌더링 시스템(100)은, 입력부(110), 제1 메모리(120), 제2 메모리(130), 마이크로 프로세서(140), 메인 쓰레드(142), 애니메이션 쓰레드(144), 영상 처리부(150) 등을 포함한다.
입력부(110)는 사용자로부터 동영상 데이터의 요청을 입력받는다.
제1 메모리(120) 및 제2 메모리(130)는 동영상 데이터를 버퍼링(Buffering)할 때 이용된다.
마이크로 프로세서(140)는 제1 메모리(120)와 제2 메모리(130)에 대해, 현재 화면의 동영상 데이터를 출력하는 메인 쓰레드 버퍼와, 다음의 새로운 화면의 동영상 데이터를 저장하는 애니메이션 쓰레드 버퍼로 선택하여, 메인 쓰레드(142)를 통해 제1 메모리(120)에 존재하는 동영상 데이터를 렌더링하여 화면 상에 디스플레이하거나, 애니메이션 쓰레드(144)를 통해 다음으로 렌더링 할 동영상 데이터를 페치하고 그래픽스 데이터로 가공 처리하여 제2 메모리(130)에 저장한 후, 메인 쓰레드 버퍼와 애니메이션 쓰레드 버퍼를 스왑(Swap)하고, 메인 쓰레드(142)를 통해 제1 메모리(120)에 새로 업데이트 된 다음 동영상 데이터를 렌더링하여 화면 상에 디스플레이하도록 제어한다.
영상 처리부(150)는 제1 메모리(120)에 있는 동영상 데이터를 렌더링하여 화면 상에 디스플레이하는 과정을 처리한다.
또한, 애니메이션 쓰레드(144)는, 다음으로 렌더링 할 동영상 데이터를 페치하고 그래픽스 데이터로 가공 처리하여 제2 메모리(130)에 저장한 후, 데이터 처리 과정이 완료되었음을 알리는 신호를 메인 쓰레드(142)에 전송할 수 있다.
또한, 메인 쓰레드(142)는, 다음 데이터를 처리하라(Process Next)는 명령 신호를 애니메이션 쓰레드(144)에 전송할 수 있다.
그리고, 애니메이션 쓰레드(144)는, 스왑 된 제2 메모리(130)의 애니메이션 쓰레드 버퍼에서 이전 데이터의 내역을 삭제하고 다음에 렌더링 할 데이터를 페치하여 버퍼링할 수 있다.
도 2는 본 발명의 실시예에 따른 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법을 설명하기 위한 동작 흐름도이다.
도 2를 참조하면, 본 발명에 따른 동영상 실시간 렌더링 시스템(100)은, 사용자로부터 동영상 요청에 따라 마이크로프로세서가 메인 쓰레드와 애니메이션 쓰레드를 생성한다(S210).
이때, 제1 메모리(120)에는 현재 재생할 동영상 데이터가 저장되어 있다.
이어, 메인 쓰레드(142)는 제1 메모리(120)에 존재하는 동영상 데이터를 렌더링하여 화면 상에 디스플레이한다(S220). 여기서, 동영상 데이터를 렌더링하는 과정은 프레임 버퍼(frame buffer)에 이미지를 채워 넣음으로써 사용자 화면에 디스플레이하는 것으로 이 과정을 메인 쓰레드(142)가 담당한다. 메인 쓰레드(142)는 매 프레임마다 preFrame, draw, postFrame 등의 그래픽스 처리 루틴을 수행하면서 매 프레임에 대한 이미지를 디스플레이 하게 된다. preFrame 단계는 주로 렌더링 할 그래픽스 데이터(예, Geometry data)를 펫치하거나 만드는 과정이고, draw 단계는 preFrame 단계에서 펫치한 데이터가 실제로 렌더링 단계를 거쳐서 프레임 버퍼에 출력시킴으로써 사용자에게 디스플레이 되는 단계이다. postFrame 단계에서는 draw 단계에 대한 뒷마무리나 다음 프레임에 대한 준비작업을 수행하게 된다. 이런 단계를 거칠 때, 경우에 따라서는 preFrame 단계에서 데이터 준비 과정이 오래 걸려서 화면이 멈추거나 사용자 컨트롤을 잃게 되는 경우가 발생할 수가 있다. 멀티 쓰레드 방식은 이런 상황을 방지하는 것으로, 메인 쓰레드(142)는 preFrame, draw, postFrame 과정을 반복해서 수행하게 되며, 현재 자신의 버퍼에 들어있는 데이터를 렌더링하게 된다.
이어, 애니메이션 쓰레드(144)는 다음으로 렌더링 할 동영상 데이터를 페치한 후 그래픽스 데이터로 가공 처리하여 제2 메모리(130)에 저장한다(S230).
이때, 애니메이션 쓰레드(144)는 다음으로 렌더링 할 동영상 데이터를 그래픽스 데이터로 가공 처리한 이후 데이터 처리 과정이 완료되었음을 알리는 신호를 메인 쓰레드(142)에 전송한다. 즉, 애니메이션 쓰레드(144)는 데이터 렌더링과 무관하게 그래픽스 데이터만을 처리하는 쓰레드로, 다음 프레임에 렌더링 할 데이터를 펫치하거나 생성하는 과정을 수행하고, 데이터 생성이 완료되면 그 데이터를 메인 쓰레드(142)에 있는 버퍼에 전달하게 된다. 이 과정이 버퍼 스왑이다.
이어, 메인 쓰레드(142)는 현재 동영상 데이터의 렌더링을 완료하면, 제1 메모리(120)와 제2 메모리(130)를 스왑(Swap)한다(S240). 즉, 메인 쓰레드(142)는 제1 메모리(120)의 메인 쓰레드 버퍼와 제2 메모리(130)의 애니메이션 쓰레드 버퍼를 스왑하여, 제2 메모리(130)에 저장된 다음으로 렌더링 할 그래픽스 데이터를 제1 메모리(120)에 저장하고, 이미 화면 상에 디스플레이하여 제1 메모리(120)에 저장된 동영상 데이터를 제2 메모리(130)에 저장하는 것이다.
이때, 메인 쓰레드(142)는 다음 데이터를 처리하라(Process Next)는 명령 신호를 애니메이션 쓰레드(144)에 전송한다. 따라서, 애니메이션 쓰레드(144)는 전술한 바와 같이 스왑된 제2 메모리(130)에서 이미 디스플레이 된 이전 데이터의 내역을 삭제하고 다음에 렌더링 할 데이터를 페치하여 버퍼링할 수 있다. 즉, 메인 쓰레드(142)는 데이터 업데이트에 대해 처리하지 않고, 현재 자신의 버퍼에 들어 있는 데이터를 계속 렌더링해서 사용자에게 디스플레이한다. 반면, 애니메이션 쓰레드(144)는 데이터 렌더링은 수행하지 않고, 메인 쓰레드(142)에서 사용할 그래픽스 데이터를 생성해서 메인 쓰레드(142)에 공급해 주는 역할을 수행한다. 메인 쓰레드(142)와 애니메이션 쓰레드(144) 간의 버퍼 스왑 과정은 메인 쓰레드(142)가 데이터를 렌더링하기 직전, 즉 preFrame 단계에서 발생하게 되며, 메인 쓰레드(142)는 preFrame 단계에서 애니메이션 쓰레드(144)가 공급해 준 그래픽스 데이터를 draw 단계에서 렌더링해서 사용자에게 디스플레이 하게 되는 것이다.
이어, 메인 쓰레드(142)는 제1 메모리(120)에 새로 업데이트 된 동영상 데이터를 렌더링하여 화면 상에 디스플레이한다(S250).
따라서, 사용자는 마우스나 기타 디바이스에 대한 컨트롤을 잃지 않는 것을 포함해 화면 멈춤 현상 없이 실시간으로 동영상을 시청할 수 있다.
전술한 바와 같이 본 발명에 의하면, 애니메이션 동영상을 재생하기 위해 메인 쓰레드와 애니메이션 쓰레드를 각각 구동시켜 메인 쓰레드가 버퍼에 버퍼링 된 애니메이션 그래픽을 렌더링하여 화면에 디스플레이하는 동안 애니메이션 쓰레드가 다음으로 렌더링 할 애니메이션 데이터를 페치(fetch)하여 화면에 디스플레이 할 수 있는 그래픽스 데이터로 가공 처리하여 버퍼에 저장하면, 메인 쓰레드가 다음 순서에 메인 쓰레드 버퍼와 애니메이션 쓰레드 버퍼를 스왑(Swap)한 후 새로 업데이트 된 버퍼의 데이터를 화면 상에 디스플레이함으로써 동영상을 실시간으로 렌더링하는데 소요되는 시간을 단축할 수 있도록 하는 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템을 실현할 수 있다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명은, 애니메이션 동영상을 재생하기 위해 메인 쓰레드와 애니메이션 쓰레드를 각각 구동시켜 메인 쓰레드가 버퍼에 버퍼링 된 애니메이션 그래픽을 렌더링하여 화면에 디스플레이하는 동안 애니메이션 쓰레드가 다음으로 렌더링 할 애니메이션 데이터를 페치(fetch)하여 화면에 디스플레이 할 수 있는 그래픽스 데이터로 가공 처리하여 버퍼에 저장하면, 메인 쓰레드가 다음 순서에 메인 쓰레드 버퍼와 애니메이션 쓰레드 버퍼를 스왑(Swap)한 후 새로 업데이트 된 버퍼의 데이터를 화면 상에 디스플레이함으로써 동영상을 실시간으로 렌더링하는데 소요되는 시간을 단축할 수 있도록 하는 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템에 적용할 수 있다.
100 : 동영상 실시간 렌더링 시스템 110 : 입력부
120 : 제1 메모리 130 : 제2 메모리
140 : 마이크로 프로세서 142 : 메인 쓰레드
144 : 애니메이션 쓰레드 150 : 영상 처리부

Claims (8)

  1. (a) 사용자로부터 동영상 요청에 따라 마이크로프로세서가 메인 쓰레드와 애니메이션 쓰레드를 생성하는 단계;
    (b) 상기 메인 쓰레드가 제1 메모리에 존재하는 동영상 데이터를 렌더링하여 화면 상에 디스플레이하는 단계;
    (c) 상기 애니메이션 쓰레드가 다음으로 렌더링 할 동영상 데이터를 페치한 후 그래픽스 데이터로 가공 처리하여 제2 메모리에 저장하는 단계;
    (d) 상기 메인 쓰레드가 상기 제1 메모리와 상기 제2 메모리를 스왑(Swap)하는 단계; 및
    (e) 상기 메인 쓰레드가 상기 제1 메모리에 새로 업데이트 된 동영상 데이터를 렌더링하여 화면 상에 디스플레이하는 단계;
    를 포함하는 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법.
  2. 제 1 항에 있어서,
    상기 (c) 단계는, 상기 애니메이션 쓰레드가 데이터 처리 과정이 완료되었음을 알리는 신호를 상기 메인 쓰레드에 전송하는 것을 포함하는 것을 특징으로 하는 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법.
  3. 제 1 항에 있어서,
    상기 (d) 단계는, 상기 메인 쓰레드가 다음 데이터를 처리하라(Process Next)는 명령 신호를 상기 애니메이션 쓰레드에 전송하는 것을 포함하는 것을 특징으로 하는 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법.
  4. 제 3 항에 있어서,
    상기 애니메이션 쓰레드는 상기 스왑 된 상기 제2 메모리에서 이전 데이터의 내역을 삭제하고 다음에 렌더링 할 데이터를 페치하여 버퍼링하는 것을 포함하는 것을 특징으로 하는 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법.
  5. 사용자로부터 동영상 데이터의 요청을 입력받기 위한 입력부;
    상기 동영상 데이터를 버퍼링(Buffering)하기 위한 제1 메모리 및 제2 메모리;
    상기 제1 메모리와 상기 제2 메모리에 대해, 현재 화면의 동영상 데이터를 출력하는 메인 쓰레드 버퍼와, 다음의 새로운 화면의 동영상 데이터를 저장하는 애니메이션 쓰레드 버퍼로 선택하여, 메인 쓰레드를 통해 상기 제1 메모리에 존재하는 동영상 데이터를 렌더링하여 화면 상에 디스플레이하거나, 애니메이션 쓰레드를 통해 다음으로 렌더링 할 동영상 데이터를 페치하고 그래픽스 데이터로 가공 처리하여 상기 제2 메모리에 저장한 후, 상기 메인 쓰레드 버퍼와 상기 애니메이션 쓰레드 버퍼를 스왑(Swap)하고, 상기 메인 쓰레드를 통해 상기 제1 메모리에 새로 업데이트 된 다음 동영상 데이터를 렌더링하여 화면 상에 디스플레이하도록 제어하는 마이크로 프로세서; 및
    상기 제1 메모리에 있는 동영상 데이터를 렌더링하여 화면 상에 디스플레이하는 과정을 처리하는 영상 처리부;
    를 포함하는 동영상 실시간 렌더링 시스템.
  6. 제 5 항에 있어서,
    상기 애니메이션 쓰레드는, 다음으로 렌더링 할 동영상 데이터를 페치하고 그래픽스 데이터로 가공 처리하여 상기 제2 메모리에 저장한 후, 데이터 처리 과정이 완료되었음을 알리는 신호를 상기 메인 쓰레드에 전송하는 것을 특징으로 하는 동영상 실시간 렌더링 시스템.
  7. 제 6 항에 있어서,
    상기 메인 쓰레드는, 다음 데이터를 처리하라(Process Next)는 명령 신호를 상기 애니메이션 쓰레드에 전송하는 것을 특징으로 하는 동영상 실시간 렌더링 시스템.
  8. 제 5 항에 있어서,
    상기 애니메이션 쓰레드는, 상기 스왑 된 상기 제2 메모리의 애니메이션 쓰레드 버퍼에서 이전 데이터의 내역을 삭제하고 다음에 렌더링 할 데이터를 페치하여 버퍼링하는 것을 특징으로 하는 동영상 실시간 렌더링 시스템.
KR1020120086768A 2012-08-08 2012-08-08 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템 KR101404489B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120086768A KR101404489B1 (ko) 2012-08-08 2012-08-08 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120086768A KR101404489B1 (ko) 2012-08-08 2012-08-08 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20140020435A true KR20140020435A (ko) 2014-02-19
KR101404489B1 KR101404489B1 (ko) 2014-06-10

Family

ID=50267413

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120086768A KR101404489B1 (ko) 2012-08-08 2012-08-08 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101404489B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101652483B1 (ko) * 2015-02-26 2016-08-30 주식회사 한글과컴퓨터 개체에 대한 꾸미기 효과 처리가 가능한 전자 문서 편집 장치 및 방법
WO2017113856A1 (zh) * 2015-12-31 2017-07-06 乐视控股(北京)有限公司 弹幕显示方法和装置
KR101880508B1 (ko) * 2017-04-27 2018-07-20 주식회사 한글과컴퓨터 웹 문서에서 목록 생성을 지원하는 웹 문서 편집 지원 장치 및 방법
KR101880507B1 (ko) * 2017-04-21 2018-07-20 주식회사 한글과컴퓨터 웹 문서에 삽입된 도형의 크기 조정을 지원하는 클라이언트 단말 장치 및 그 동작 방법
CN108600852A (zh) * 2018-04-28 2018-09-28 北京酷我科技有限公司 一种弹幕效果的实现方法
CN115361579A (zh) * 2022-07-28 2022-11-18 珠海全志科技股份有限公司 视频送显方法、装置、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007104220A (ja) * 2005-10-03 2007-04-19 Canon Inc 画像処理装置及び画像処理方法
US8207972B2 (en) * 2006-12-22 2012-06-26 Qualcomm Incorporated Quick pixel rendering processing
KR20100098124A (ko) * 2009-02-27 2010-09-06 삼성전자주식회사 디지털 영상 처리장치 및 그 제어방법
KR101079697B1 (ko) * 2009-10-05 2011-11-03 주식회사 글로벌미디어테크 범용 그래픽 처리장치의 병렬 프로세서를 이용한 고속 영상 처리 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101652483B1 (ko) * 2015-02-26 2016-08-30 주식회사 한글과컴퓨터 개체에 대한 꾸미기 효과 처리가 가능한 전자 문서 편집 장치 및 방법
WO2017113856A1 (zh) * 2015-12-31 2017-07-06 乐视控股(北京)有限公司 弹幕显示方法和装置
KR101880507B1 (ko) * 2017-04-21 2018-07-20 주식회사 한글과컴퓨터 웹 문서에 삽입된 도형의 크기 조정을 지원하는 클라이언트 단말 장치 및 그 동작 방법
KR101880508B1 (ko) * 2017-04-27 2018-07-20 주식회사 한글과컴퓨터 웹 문서에서 목록 생성을 지원하는 웹 문서 편집 지원 장치 및 방법
CN108600852A (zh) * 2018-04-28 2018-09-28 北京酷我科技有限公司 一种弹幕效果的实现方法
CN108600852B (zh) * 2018-04-28 2020-12-15 北京酷我科技有限公司 一种弹幕效果的实现方法
CN115361579A (zh) * 2022-07-28 2022-11-18 珠海全志科技股份有限公司 视频送显方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
KR101404489B1 (ko) 2014-06-10

Similar Documents

Publication Publication Date Title
KR101404489B1 (ko) 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템
CA2756537C (en) Backing store memory management for rendering scrollable webpage subregions
KR101401216B1 (ko) 외부 디스플레이에 대한 그래픽 컨텐츠 미러링
US20020135585A1 (en) Video controller system with screen caching
WO2017166210A1 (zh) 应用程序的处理方法及终端设备
US20020145611A1 (en) Video controller system with object display lists
KR19990087565A (ko) 리스트 제어 비디오 동작 방법 및 시스템
CN109275011B (zh) 智能电视运动模式切换的处理方法及装置、用户设备
US20130128120A1 (en) Graphics Pipeline Power Consumption Reduction
US20140015826A1 (en) Method and apparatus for synchronizing an image with a rendered overlay
KR102426012B1 (ko) 데스크탑 환경에서 애플리케이션 렌더링에서 온 스크린까지 시간을 동적으로 감소시키기 위한 방법 장치
CN114648951A (zh) 控制屏幕刷新率动态变化的方法及电子设备
KR20220143667A (ko) 지연된 그래픽 프로세싱 유닛 렌더 시간을 보상하기 위한 감소된 디스플레이 프로세싱 유닛 전달 시간
US20120007872A1 (en) Method And Computer Program For Operation Of A Multi-Buffer Graphics Memory Refresh, Multi-Buffer Graphics Memory Arrangement And Communication Apparatus
US10789913B2 (en) Arbitrary block rendering and display frame reconstruction
US8493392B2 (en) Image display device
US20230137492A1 (en) Landscape interaction method and apparatus, electronic device, and storage medium
CN111654740A (zh) 一种在视频播放过程中渲染的方法、装置及电子设备
WO2018058368A1 (zh) 系统性能提升方法、系统性能提升装置及显示装置
WO2021056364A1 (en) Methods and apparatus to facilitate frame per second rate switching via touch event signals
US20240169953A1 (en) Display processing unit (dpu) pixel rate based on display region of interest (roi) geometry
JP5407590B2 (ja) 画像表示装置
CN117372597A (zh) 动画渲染方法、装置、电子设备及可读存储介质
JP5338520B2 (ja) 画像表示装置
CN112988294A (zh) 一种rh850液晶仪表虚拟指针优化方法和装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170327

Year of fee payment: 4