KR20150087982A - 쓰레드를 활용한 이미지 처리 방법 및 장치 - Google Patents

쓰레드를 활용한 이미지 처리 방법 및 장치 Download PDF

Info

Publication number
KR20150087982A
KR20150087982A KR1020140008249A KR20140008249A KR20150087982A KR 20150087982 A KR20150087982 A KR 20150087982A KR 1020140008249 A KR1020140008249 A KR 1020140008249A KR 20140008249 A KR20140008249 A KR 20140008249A KR 20150087982 A KR20150087982 A KR 20150087982A
Authority
KR
South Korea
Prior art keywords
image data
thread
loading
data
image
Prior art date
Application number
KR1020140008249A
Other languages
English (en)
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 KR1020140008249A priority Critical patent/KR20150087982A/ko
Publication of KR20150087982A publication Critical patent/KR20150087982A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Abstract

본 발명은 쓰레드를 활용한 이미지 처리 방법 및 장치에 관한 것으로서, 보다 상세하게는 이미지를 단말의 디스플레이 영역에 출력하기 위해 필요한 데이터 처리량에 따라 쓰레드의 수를 달리 생성하여 이미지를 처리하는 방법 및 장치에 관한 것이다.
본 발명에 따른 쓰레드를 활용한 이미지 처리 방법은, 이미지데이터의 헤더정보를 검출하는 단계, 헤더정보 중 이미지의 크기정보에 기초하여 이미지데이터의 로딩을 위한 메모리영역을 생성하는 단계, 이미지데이터를 로딩하기 위해 요구되는 데이터의 처리량정보 및 이미지의 크기정보에 기초하여 이미지데이터의 로딩을 위한 로딩쓰레드를 생성하는 단계, 로딩쓰레드로 메모리영역에 이미지데이터를 로딩하여 출력 이미지데이터를 생성하는 단계, 출력 이미지데이터를 렌더링하기 위해 요구되는 데이터의 처리량정보 및 출력 이미지데이터에 기초하여 출력 이미지데이터의 렌더링을 위한 렌더링쓰레드를 생성하는 단계 및 렌더링쓰레드로 단말의 디스플레이 영역에 출력 이미지데이터를 렌더링하여 이미지를 표시하는 단계를 포함한다.
본 발명의 쓰레드를 활용한 이미지 처리 방법에 따르면, 멀티 쓰레딩 프로세서에서 사용 가능한 다수의 쓰레드를 활용하여, 이미지를 화면에 출력하기 위한 데이터 처리량에 따라 쓰레드의 수를 달리 생성하여 데이터를 처리함으로써, 이미지 처리를 효율적으로 수행하고, 쓰레드 별로 균등한 처리량을 할당하여 처리함으로써, 이미지 처리 속도를 개선할 수 있는 효과가 있다.

Description

쓰레드를 활용한 이미지 처리 방법 및 장치{METHOD AND APPRATUS FOR PROCESSING IMAGE BY THREAD}
본 발명은 쓰레드를 활용한 이미지 처리 방법 및 장치에 관한 것으로서, 보다 상세하게는 이미지를 단말의 디스플레이 영역에 출력하기 위해 필요한 데이터 처리량에 따라 쓰레드의 수를 달리 생성하여 이미지를 처리하는 방법 및 장치에 관한 것이다.
최근 컴퓨팅 장치에 관한 집적 회로 기술이 발전함에 따라, 멀티 코어 (multi-core) CPU 및 대용량의 메모리 기술을 활용한 멀티 쓰레딩 프로세서 (Multi-Threading Processor) 가 보편화 되고 있다.
한편, 도 1은 이미지 파일과 같은 이미지데이터로부터 이미지를 화면에 출력하는 일반적인 처리과정을 도시한 것으로서, 이미지데이터 (100) 는 메모리영역에 로딩 작업을 통해 화면에 출력할 수 있는 형태의 데이터인 출력 이미지데이터 (110) 로 변환되며, 출력 이미지데이터 (110) 를 렌더링 함으로써, 단말의 디스플레이 영역 상에 이미지 (120) 로 표시된다.
도 1에 도시된 바와 같이, 이미지데이터 (100) 로부터 데이터를 분석한 후 출력할 수 있는 형태인 출력 이미지데이터 (110) 로 변환하는 과정을 거쳐 화면에 이미지 (120) 를 출력하는 경우, 로딩 및 렌더링의 과정은 지정된 쓰레드의 개수로 수행되며, 이미지데이터 (100) 가 상대적으로 크기가 큰 이미지 를 포함하고 있는 경우에도 쓰레드의 개수는 변하지 않고 로딩 및 렌더링의 과정이 수행된다. 즉, 종래의 방법에 의하면, 이미지데이터 (100) 로부터 이미지 (120) 를 화면에 출력하는 경우, 지정된 쓰레드의 개수로 수행되거나, 이미지데이터 (100) 에 포함된 이미지 (120) 의 개수에 따라서만 쓰레드의 개수를 달리 생성하여 로딩 및 렌더링의 과정을 수행한다. 따라서, 이미지데이터가 상대적으로 크기가 큰 이미지를 포함하고 있거나, 이미지데이터에 포함된 다수의 이미지 중 한 개의 이미지가 상대적으로 크기가 클 경우, 해당 이미지를 처리하는 시간으로 인해 문서상의 이미지가 화면에 출력되기 위한 대기시간이 발생하거나 단계적으로 이미지가 화면에 갱신되는 등의 문제점이 있었다.
따라서, 멀티 쓰레딩 프로세서에서 사용 가능한 다수의 쓰레드를 활용하여, 이미지를 화면에 출력하기 위한 데이터 처리량에 따라 쓰레드의 수를 달리 생성하여 데이터를 처리함으로써, 이미지 처리 속도를 개선할 수 있는 방법 및 장치에 관한 개발이 요구되었다.
[관련기술문헌]
1. 이미지 로딩 및 드로잉 처리 장치 및 그 방법 (한국특허출원 번호 제2012-0028183호)
본 발명이 해결하고자 하는 과제는 멀티 쓰레딩 프로세서에서 사용 가능한 다수의 쓰레드를 활용하여, 이미지를 화면에 출력하기 위한 데이터 처리량에 따라 쓰레드의 수를 달리 생성하여 데이터를 처리함으로써, 이미지 처리를 효율적으로 수행함에 있다.
본 발명이 해결하고자 하는 다른 과제는 멀티 쓰레딩 프로세서에서 사용 가능한 다수의 쓰레드를 활용하여, 쓰레드 별로 균등한 처리량을 할당하여 처리함으로써, 이미지 처리 속도를 개선함에 있다.
본 발명의 과제들은 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위한 본 발명에 따른 쓰레드를 활용한 이미지 처리 방법은, 이미지데이터의 헤더정보를 검출하는 단계, 헤더정보 중 이미지의 크기정보에 기초하여 이미지데이터의 로딩을 위한 메모리영역을 생성하는 단계, 이미지데이터를 로딩하기 위해 요구되는 데이터의 처리량정보 및 이미지의 크기정보에 기초하여 이미지데이터의 로딩을 위한 로딩쓰레드를 생성하는 단계, 로딩쓰레드로 메모리영역에 이미지데이터를 로딩하여 출력 이미지데이터를 생성하는 단계, 출력 이미지데이터를 렌더링하기 위해 요구되는 데이터의 처리량정보 및 출력 이미지데이터에 기초하여 출력 이미지데이터의 렌더링을 위한 렌더링쓰레드를 생성하는 단계 및 렌더링쓰레드로 단말의 디스플레이 영역에 출력 이미지데이터를 렌더링하여 이미지를 표시하는 단계를 포함한다.
본 발명의 다른 특징에 따르면, 이미지데이터를 로딩하기 위해 요구되는 데이터의 처리량정보 및 출력 이미지데이터를 렌더링하기 위해 요구되는 데이터의 처리량정보는 이미지데이터의 로딩 및 출력 이미지데이터의 렌더링 수행 시 요구되는 데이터의 처리량에 따라 처리시간을 감소시킬 수 있는 쓰레드의 개수에 관한 정보를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 이미지데이터는 하나 이상의 이미지를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 로딩쓰레드 및 렌더링쓰레드는 각각 하나 이상의 쓰레드인 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위한 본 발명에 따른 쓰레드를 활용하여 이미지를 처리하기 위한 명령어들의 세트를 포함하는 컴퓨터 판독 가능 매체는, 헤더정보 중 이미지의 크기정보에 기초하여 이미지데이터의 로딩을 위한 메모리영역을 생성하고, 이미지데이터를 로딩하기 위해 요구되는 데이터의 처리량정보 및 이미지의 크기정보에 기초하여 이미지데이터의 로딩을 위한 로딩쓰레드를 생성하고, 로딩쓰레드로 메모리영역에 이미지데이터를 로딩하여 출력 이미지데이터를 생성하고, 출력 이미지데이터를 렌더링하기 위해 요구되는 데이터의 처리량정보 및 출력 이미지데이터에 기초하여 출력 이미지데이터의 렌더링을 위한 렌더링쓰레드를 생성하고, 렌더링쓰레드로 단말의 디스플레이 영역에 출력 이미지데이터를 렌더링하여 이미지를 표시하게 하는 명령어들의 세트를 포함한다.
본 발명의 다른 특징에 따르면, 이미지데이터를 로딩하기 위해 요구되는 데이터의 처리량정보 및 출력 이미지데이터를 렌더링하기 위해 요구되는 데이터의 처리량정보는, 이미지데이터의 로딩 및 출력 이미지데이터의 렌더링 수행 시 요구되는 데이터의 처리량에 따라 처리시간을 감소시킬 수 있는 쓰레드의 개수에 관한 정보를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 이미지데이터는 하나 이상의 이미지를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 로딩쓰레드 및 렌더링쓰레드는 각각 하나 이상의 쓰레드인 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위한 본 발명에 따른 쓰레드를 활용한 이미지 처리 장치는, 이미지데이터를 로딩하기 위해 요구되는 데이터의 처리량정보 및 이미지의 크기정보에 기초하여 이미지데이터의 로딩을 위한 로딩쓰레드를 생성하고, 출력 이미지데이터를 렌더링하기 위해 요구되는 데이터의 처리량정보 및 출력 이미지데이터에 기초하여 출력 이미지데이터의 렌더링을 위한 렌더링쓰레드를 생성하는 쓰레드 생성부 및 이미지데이터의 헤더정보를 검출하고, 헤더정보 중 이미지의 크기정보에 기초하여 이미지데이터의 로딩을 위한 메모리영역을 생성하고, 로딩쓰레드로 메모리영역에 이미지데이터를 로딩하여 출력 이미지데이터를 생성하고, 렌더링쓰레드로 단말의 디스플레이 영역에 출력 이미지데이터를 렌더링하여 이미지를 표시하는 제어부를 포함한다.
본 발명의 쓰레드를 활용한 이미지 처리 방법 및 장치에 따르면, 멀티 쓰레딩 프로세서에서 사용 가능한 다수의 쓰레드를 활용하여, 이미지를 화면에 출력하기 위한 데이터 처리량에 따라 쓰레드의 수를 달리 생성하여 데이터를 처리함으로써, 이미지 처리를 효율적으로 수행할 수 있는 효과가 있다.
본 발명의 쓰레드를 활용한 이미지 처리 방법 및 장치에 따르면, 멀티 쓰레딩 프로세서에서 사용 가능한 다수의 쓰레드를 활용하여, 쓰레드 별로 균등한 처리량을 할당하여 처리함으로써, 이미지 처리 속도를 개선할 수 있는 효과가 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 이미지를 화면에 출력하는 일반적인 처리과정의 일 예를 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 쓰레드를 활용한 이미지 처리 알고리즘에 따른 처리 모듈의 개략적인 구성을 도시한 것이다.
도 3은 본 발명의 일 실시예에 따른 쓰레드를 활용한 이미지 처리에 있어 쓰레드의 수를 결정하는 데이터 처리량 테이블의 일 태양을 도시한 것이다.
도 4는 본 발명의 일 실시예에 따른 쓰레드를 활용한 이미지 처리 방법의 절차도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
본 명세서에서 도면부호를 사용함에 있어, 도면이 상이한 경우라도 동일한 구성을 도시하고 있는 경우에는 별도로 명시하지 않는 이상 동일한 도면부호를 사용한다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
본 명세서에서 쓰레드란 컴퓨팅 프로그램 내에서, 특히 프로세스 내에서의 작업을 실행하는 제어흐름 또는 실행단위를 의미하며, 멀티 쓰레딩 프로세서 (multi-threading processor) 란 컴퓨팅 프로그램 내에서 복수 개의 쓰레드가 동시에 동작하여 여러 작업을 동시에 처리하거나 한 작업을 병렬로 분할하여 처리할 수 있는 프로세서를 의미한다.
이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시예들을 상세히 설명한다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 쓰레드를 활용한 이미지 처리 알고리즘을 수행하는 장치 (200) (이하 ‘이미지 처리 장치’라 함) 는 쓰레드 생성부 (210) 및 제어부 (220) 를 포함한다.
본 발명의 일 실시예에 따른 이미지 처리 장치 (200) 는 멀티 쓰레드를 활용하여 컴퓨팅 작업을 수행할 수 있는 기능을 구비하는 장치로서, 컴퓨터, 노트북, 스마트폰 (smart phone), 테플릿 (tablet) 컴퓨터 등의 단말일 수 있으며, 멀티 쓰레드 프로세서가 수행 가능한 중앙처리장치와 이미지데이터를 로딩 및 렌더링하기 위한 메모리를 구비한 장치라면 어느 특정한 단말에 국한되지 않는다.
쓰레드 생성부 (210) 는 이미지데이터를 로딩하기 위한 로딩쓰레드 및 이미지데이터가 메모리영역에 로딩되어 생성된 출력 이미지데이터를 렌더링하기 위한 렌더링쓰레드를 생성한다.
이미지데이터는 ‘JPG’, ‘TIF’ 및 ‘PNG’ 등 다양한 형태를 갖는 이미지 파일일 수 있고, 전자문서 편집 프로그램에 의한 생성된 문서 및 웹문서 등의 전자문서와 같이 하나 이상의 이미지를 포함하는 다양한 컨텐츠의 이미지에 관한 정보를 담은 데이터일 수 있으며, 이미지에 관한 정보를 담고 있는 데이터라면 어느 특정한 형태에 국한되지 않는다.
출력 이미지데이터는 메모리영역에 이미지데이터를 로딩함으로써, 화면에 출력할 수 있는 형태의 데이터로 이미지데이터가 변환되거나 새롭게 생성된 데이터를 의미한다.
쓰레드는 실행 중인 프로그램을 의미하는 프로세스 (process) 에서 실행 제어만 분리한 실행 단위로서, 프로세서를 사용하는 기본 단위인 동시에 명령어를 독릭접으로 실행할 수 있는 하나의 제어흐름을 나타낸다. 쓰레드 생성부 (210) 가 생성하는 로딩쓰레드 및 렌더링쓰레드는, 하나의 프로세스에서 생성된 하나 이상의 쓰레드 및 다수의 프로세스로부터 생성된 각각의 쓰레드를 모두 포함한다.
구체적으로 설명하면, 멀티 쓰레딩 프로세서가 가능한 컴퓨팅 장치의 중앙처리장치에 해당하는 CPU는 하나 이상의 코어 (core) 를 가질 수 있으며, 각각의 코어로부터 실행되는 프로세스에서는 하나의 쓰레드를 생성하여 작업을 수행하거나, 복수 개의 쓰레드를 생성하여 작업을 수행할 수도 있다. 쓰레드 생성부 (210) 는 다수의 코어를 활용하여 각각의 코어의 프로세스 별로 쓰레드를 한 개씩 생성하거나, 하나의 프로세스에서 멀티 쓰레딩을 통해 다수의 쓰레드를 생성할 수도 있다.
쓰레드 생성부 (210) 가 생성하는 로딩쓰레드 및 렌더링쓰레드는 본 발명의 알고리즘을 설명하기 위한 임의적 정의로, 이미지데이터의 로딩 또는 출력 이미지데이터의 렌더링이 수행되는 프로세싱 상의 구분을 나타내기 위함이며, 로딩쓰레드 및 렌더링쓰레드가 반드시 물리적으로 CPU의 다른 코어에서 생성 되어야 한다거나, 서로 다른 프로세스 구조를 갖도록 구성되는 형태 등으로 본 발명이 구현되는 태양이 한정되는 것은 아니다.
제어부 (220) 는 메모리에 저장된 프로그램이나 명령어들의 세트를 실행하는 등의 연산을 수행함으로써 이미지데이터의 헤더정보를 검출하고, 헤더정보 중 이미지의 크기정보에 기초하여 이미지데이터의 로딩을 위한 메모리영역을 생성한다. 또한, 생성된 메모리영역에 이미지데이터를 로딩하여 출력 이미지데이터를 생성하고, 단말의 디스플레이 영역에 출력 이미지데이터를 렌더링하여 이미지를 표시하도록 구성된다. 제어부 (220) 는 적어도 하나 이상의 프로세서와 메모리를 포함할 수 있고, 복수의 프로세서는 서로 메모리를 공유하도록 구현될 수도 있다. 메모리는 프로그램이나 명령어 세트 등을 저장하며, 메모리는 램 (RAM; random access memory), 롬 (ROM; read-only memory), 자기 디스크 (magnetic disk) 장치, 광 디스크 (optical disk) 장치, 플래시 메모리 등을 포함할 수 있다.
도 3은 본 발명의 일 실시예에 따른 쓰레드를 활용한 이미지 처리에 있어 쓰레드의 수를 결정하는 데이터 처리량 테이블의 일 태양을 도시한 것이다.
도 3에서 확인할 수 있듯이, 이미지를 화면에 출력하기 위한 로딩 및 렌더링에 필요한 데이터 처리량 및 컴퓨팅 장치의 중앙처리장치가 4개의 코어를 가지는 쿼드 코어 (quad-core) 프로세서인 것으로 상정한 경우, 로딩 (330) 및 렌더링 (340) 수행 시 처리시간을 감소시킬 수 있는 코어의 수 즉, 쓰레드의 수를 결정하기 위한 데이터 처리량은 로딩 (330) 및 렌더링 (340) 의 구체적인 작업의 종류에 따라 서로 다른 데이터 처리량을 가진다.
이때, 데이터 처리량 테이블에 도시된 데이터 처리량의 수치는 쿼드 코어 프로세서를 가지는 임의의 컴퓨팅 장치에서 처리량 및 코어 수 에 따라 처리시간을 감소시킬 수 있는 쓰레드의 수를 산출하여 본 발명의 일 실시예에 따른 구현 태양을 설명하기 위한 상대적인 수치이며 특정 단위나 도 3에서 도시한 특정 수치로 본 발명이 구현되는 태양이 제한되는 것은 아니다.
본 발명에 따른 쓰레드를 활용한 이미지 처리 방법의 경우 이미지데이터를 로딩하여 출력 이미지데이터를 생성하고 이를 렌더링하여 화면에 표시하는 과정을 통해 구현될 수 있으나, 종래 기술과는 달리, 고정된 수의 쓰레드 또는 이미지의 개수에 따른 쓰레드로 작업을 수행하는 것이 아닌, 로딩 및 렌더링에 필요한 데이터 처리량에 따라, 코어의 수 즉, 쓰레드의 수를 달리 생성하도록 구현됨으로써, 각각의 쓰레드는 동일하거나 근사한 처리량의 데이터를 처리하게 된다. 즉, 다수의 쓰래드를 생성하여 데이터의 수에 따른 분배가 아닌 양에 따른 분배를 함으로써, 이미지를 처리하는데 소요되는 시간을 최소화하여 병렬처리를 수행한다.
본 발명의 일 실시예에 따르면, 이미지 처리 장치가 이미지를 화면에 출력하기 위한 로딩 및 렌더링에 필요한 코어 수를 결정하는 방법은, 도 3에서 도시한 바와 같은 데이터 처리량 뿐 아니라, 컴퓨팅 장치의 사용 가능한 코어의 개수가 2개 이상일 경우 이미지 처리에 멀티 쓰레드 프로세서를 적용시키며, 컴퓨팅 장치의 사용 가능한 코어의 개수가 n개일 경우, n-1개까지의 코어를 이미지 처리 사용하고, 예외적으로 코어의 개수가 2개인 경우에는 2개 모두를 이미지 처리에 사용하는 등의 방법으로 이미지 처리에 사용하는 코어의 수를 결정할 수도 있다.
도 3에 따르면, 로딩 (330) 의 경우에는 사용할 코어의 수를 결정하기 위한 최소 데이터 처리량 결정 요소 (350) 는 원본 이미지의 가로X세로 (335) 에 해당하며, 렌더링 (340) 의 경우에는 출력 이미지데이터의 가로X세로 (345) 가 최소 데이터 처리량 결정 요소 (350) 가 될 수 있다. 이때, 이미지 또는 출력 이미지데이터의 가로X세로 란, 이미지의 크기 또는 해상도를 의미한다. 이와 같은 데이터 처리량 테이블 이용하여 쓰레드의 수를 달리 생성하여 로딩 및 렌더링을 수행하는 과정에 관해서는 도 4에서 상세히 후술한다.
도 4는 본 발명의 일 실시예에 따른 쓰레드를 활용한 이미지 처리 방법의 절차도이다. 설명의 편의를 위해 도 2를 참조하여 설명한다.
먼저, 제어부 (220) 는 이미지데이터의 헤더정보를 검출하고 (S400), 헤더정보 중 이미지의 크기정보에 기초하여 이미지데이터의 로딩을 위한 메모리영역을 생성한다 (S410). 이때, 이미지데이터는 하나 이상의 이미지에 대한 정보를 포함할 수 있으며, 제어부 (220) 는 하나 이상의 이미지 모두에 대한 헤더정보에 포함된 이미지의 크기정보를 검출할 수 있다.
제어부 (220) 가 이미지데이터의 로딩을 위해 메모리영역을 생성하는 단계 (S410) 는, 로딩을 위해 실질적으로 컴퓨팅 장치의 메모리영역 중 프로세스를 수행하기 위해 필요한 메모리영역의 일부를 할당 받거나, 이미지데이터를 로딩하기 위한 메모리 버퍼를 생성하는 등의 임시 메모리영역을 생성하는 방식으로 구현될 수 있다.
제어부 (220) 가 이미지데이터의 로딩을 위한 메모리영역을 생성하면 (S410), 쓰레드 생성부 (210) 는 이미지데이터를 로딩하기 위해 요구되는 데이터의 처리량정보 및 제어부 (220) 가 검출한 이미지의 크기정보에 기초하여 이미지데이터를 로딩하기 위한 로딩쓰레드를 생성한다 (S420).
이미지데이터를 로딩하기 위해 요구되는 데이터의 처리량정보 및 이미지의 크기정보에 기초하여 로딩쓰레드를 생성한다 함은, 도 3을 참조하여 예를 들어 설명하면, 이미지를 화면에 출력하기 위한 컴퓨팅 장치가 쿼드 코어 프로세스를 가지며, 제어부 (220) 가 검출한 이미지데이터의 이미지의 크기정보에 따라 이미지데이터를 로딩하기 위해 필요한 데이터 처리량이 15000인 JPG 형태의 이미지를 로딩하는 경우, 코어 개수 2개를 사용하기 위한 최소 데이터 처리량인 11500보다는 크며, 코어 개수 3개를 사용하기 위한 최소 데이터 처리량인 17825보다는 작기 때문에, 쓰레드 생성부 (210) 는 2개의 코어에서 각각 1개씩 2개의 쓰레드를 로딩쓰레드로 생성하는 것을 말한다.
본 발명의 일 실시예에 따르면, 쓰레드 생성부 (210) 가 생성하는 로딩쓰레드 및 후술할 렌더링쓰레드는 각각 하나 이상의 쓰레드일 수 있으며, 여기서 쓰레드 생성부 (210) 는 전술한 바와 같이 다수의 코어를 활용하여 각각의 코어의 프로세스 별로 쓰레드를 한 개씩 생성하거나, 하나의 프로세스에서 멀티 쓰레딩 작업을 통해 다수의 쓰레드를 생성할 수도 있으나, 각각의 경우에 적용되는 쓰레드 개수를 결정하기 위한 데이터 처리량은 상이할 수 있다.
로딩쓰레드가 생성되면, 제어부 (220) 는 생성된 로딩쓰레드로 로딩을 위한 메모리영역에 이미지데이터를 로딩하여 출력 이미지데이터를 생성한다 (S430).
여기서, 메모리영역에 출력 이미지데이터가 생성된다는 것은, 해당 메모리 영역에 새롭게 출력 이미지데이터가 생성되거나, 이미지데이터가 로딩을 통해 출력 이미지데이터로 변환되는 것을 모두 포함한다.
본 발명의 일 실시예에 따르면, 로딩쓰레드를 구성하는 하나 이상의 각각의 쓰레드는 이미지 크기에 따라 일정 크기로 영역을 분리하여 제어부 (220) 로부터 지정 받은 영역에 대해 로딩을 수행하며, 마찬가지로 후술할 렌더링쓰레드 또한 렌더링쓰레드를 구성하는 하나 이상의 각각의 쓰레드는 제어부 (220) 로부터 지정 받은 영역에 대해 렌더링을 수행함으로써 화면에 이미지를 출력한다. 구체적으로 설명하면, 로딩쓰레드 및 렌더링쓰레드는 제어부 (220) 로부터 동일하거나 근사한 데이터 처리량을 갖는 로딩 및 렌더링을 수행할 영역을 지정 받음으로써, 각각의 쓰레드는 지정된 영역에 대해서만 로딩 및 렌더링을 수행하고, 로딩의 경우에는 지정된 메모리영역에 로딩의 결과인 출력 이미지데이터의 일부 영역을, 렌더링의 경우에는 지정된 디스플레이 영역에 렌더링의 결과인 이미지의 일부 영역을 생성하는 병렬처리 과정을 수행한다.
로딩쓰레드를 통해 이미지데이터가 화면에 출력 가능한 형태인 출력 이미지데이터로 메모리영역에 로딩되면, 쓰레드 생성부 (210) 는 출력 이미지데이터를 렌더링하기 위해 요구되는 데이터의 처리량정보 및 출력 이미지데이터에 기초하여 출력 이미지데이터를 렌더링 하기 위한 렌더링쓰레드를 생성한다 (S440).
쓰레드 생성부 (210) 가 렌더링쓰레드를 생성하는 단계 또한, 단계 S420 에서 전술한 바와 마찬가지로 데이터의 처리량정보를 기초로 현재 출력 이미지데이터의 데이터 처리량에 따라 쓰레드의 수를 달리하여 생성한다.
즉, 출력 이미지데이터를 렌더링하기 위해 요구되는 데이터의 처리량정보 및 출력 이미지데이터에 기초하여 렌더링쓰레드를 생성한다 함은, 도 3을 참조하여 예를 들어 설명하면, 이미지를 화면에 출력하기 위한 컴퓨팅 장치가 쿼드 코어 프로세스를 가지며, 로딩쓰레드에 의해 생성된 출력 이미지데이터를 회전시켜 표시하는, 데이터 처리량이 130000인 렌더링을 수행하는 경우, 코어 개수 3개를 사용하기 위한 최소 데이터 처리량인 134000보다 크기 때문에, 쓰레드 생성부 (210) 는 3개의 코어에서 각각 1개씩 3개의 쓰레드를 렌더링쓰레드로 생성하는 것을 말한다
렌더링쓰레드가 생성되면, 제어부 (220) 는 생성된 렌더링쓰레드로 단말의 디스플레이 영역에 출력 이미지데이터를 렌더링하여 이미지를 표시한다 (S450).
도 2 내지 도 4에서 전술한 바와 같이, 본 발명의 일 실시예에 따른 이미지 처리 과정은, 이미지를 화면에 출력하기 위한 형태로 변화하는 로딩과정 및 변환된 데이터를 렌더링하여 화면에 표시하는 과정에서, 로딩 및 렌더링에 필요한 데이터 처리량에 따라 쓰레드의 수를 달리 생성하고, 생성된 다수의 쓰레드를 활용하여 데이터의 수에 따른 분배가 아닌 양에 따른 분배를 통해 로딩 및 렌더링을 병렬 처리하여 수행함으로써, 이미지를 화면에 출력하기 위한 과정에 소용되는 시간을 최소화한다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
본 명세서에서, 각 블록은 특정된 논리적 기능 (들) 을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈 또는 그 2 개의 결합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링 되며, 그 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로 (ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상으로 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형 실시될 수 있다. 따라서 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 이미지데이터
110: 출력 이미지데이터
120: 이미지
200: 이미지 처리 장치
210: 쓰레드 생성부
220: 제어부
330: 이미지 로딩
335: 데이터 처리량 결정 요소 중 이미지의 가로X세로
340: 이미지 렌더링
345: 데이터 처리량 결정 요소 중 출력 이미지데이터의 가로X세로
350: 최소 데이터처리량 결정 요소

Claims (9)

  1. 이미지데이터의 헤더정보를 검출하는 단계;
    상기 헤더정보 중 이미지의 크기정보에 기초하여 상기 이미지데이터의 로딩을 위한 메모리영역을 생성하는 단계;
    상기 이미지데이터를 로딩하기 위해 요구되는 데이터의 처리량정보 및 상기 이미지의 상기 크기정보에 기초하여 상기 이미지데이터의 로딩을 위한 로딩쓰레드를 생성하는 단계;
    상기 로딩쓰레드로 상기 메모리영역에 상기 이미지데이터를 로딩하여 출력 이미지데이터를 생성하는 단계;
    상기 출력 이미지데이터를 렌더링하기 위해 요구되는 데이터의 처리량정보 및 상기 출력 이미지데이터에 기초하여 상기 출력 이미지데이터의 렌더링을 위한 렌더링쓰레드를 생성하는 단계; 및
    상기 렌더링쓰레드로 단말의 디스플레이 영역에 상기 출력 이미지데이터를 렌더링하여 상기 이미지를 표시하는 단계를 포함하는, 쓰레드를 활용한 이미지 처리 방법.
  2. 제1항에 있어서,
    상기 이미지데이터를 로딩하기 위해 요구되는 데이터의 처리량정보 및 상기 출력 이미지데이터를 렌더링하기 위해 요구되는 데이터의 처리량정보는 이미지데이터의 로딩 및 출력 이미지데이터의 렌더링 수행 시 요구되는 데이터의 처리량에 따라 처리시간을 감소시킬 수 있는 쓰레드의 개수에 관한 정보를 포함하는 것을 특징으로 하는, 쓰레드를 활용한 이미지 처리 방법.
  3. 제1항에 있어서,
    상기 이미지데이터는 하나 이상의 이미지를 포함하는 것을 특징으로 하는, 쓰레드를 활용한 이미지 처리 방법.
  4. 제1항에 있어서,
    상기 로딩쓰레드 및 상기 렌더링쓰레드는 각각 하나 이상의 쓰레드인 것을 특징으로 하는, 쓰레드를 활용한 이미지 처리 방법.
  5. 이미지데이터의 헤더정보를 검출하고,
    상기 헤더정보 중 이미지의 크기정보에 기초하여 상기 이미지데이터의 로딩을 위한 메모리영역을 생성하고,
    상기 이미지데이터를 로딩하기 위해 요구되는 데이터의 처리량정보 및 상기 이미지의 상기 크기정보에 기초하여 상기 이미지데이터의 로딩을 위한 로딩쓰레드를 생성하고,
    상기 로딩쓰레드로 상기 메모리영역에 상기 이미지데이터를 로딩하여 출력 이미지데이터를 생성하고,
    상기 출력 이미지데이터를 렌더링하기 위해 요구되는 데이터의 처리량정보 및 상기 출력 이미지데이터에 기초하여 상기 출력 이미지데이터의 렌더링을 위한 렌더링쓰레드를 생성하고,
    상기 렌더링쓰레드로 단말의 디스플레이 영역에 상기 출력 이미지데이터를 렌더링하여 상기 이미지를 표시하게 하는 명령어들의 세트를 포함하는, 컴퓨터 판독 가능 매체.
  6. 제5항에 있어서,
    상기 이미지데이터를 로딩하기 위해 요구되는 데이터의 처리량정보 및 상기 출력 이미지데이터를 렌더링하기 위해 요구되는 데이터의 처리량정보는, 이미지데이터의 로딩 및 출력 이미지데이터의 렌더링 수행 시 요구되는 데이터의 처리량에 따라 처리시간을 감소시킬 수 있는 쓰레드의 개수에 관한 정보를 포함하는 것을 특징으로 하는, 컴퓨터 판독 가능 매체.
  7. 제5항에 있어서,
    상기 이미지데이터는 하나 이상의 이미지를 포함하는 것을 특징으로 하는, 컴퓨터 판독 가능 매체.
  8. 제5항에 있어서,
    상기 로딩쓰레드 및 상기 렌더링쓰레드는 각각 하나 이상의 쓰레드인 것을 특징으로 하는, 컴퓨터 판독 가능 매체.
  9. 이미지데이터를 로딩하기 위해 요구되는 데이터의 처리량정보 및 이미지의 크기정보에 기초하여 상기 이미지데이터의 로딩을 위한 로딩쓰레드를 생성하고, 출력 이미지데이터를 렌더링하기 위해 요구되는 데이터의 처리량정보 및 상기 출력 이미지데이터에 기초하여 상기 출력 이미지데이터의 렌더링을 위한 렌더링쓰레드를 생성하는 쓰레드 생성부 및
    상기 이미지데이터의 헤더정보를 검출하고, 상기 헤더정보 중 상기 이미지의 상기 크기정보에 기초하여 상기 이미지데이터의 로딩을 위한 메모리영역을 생성하고, 상기 로딩쓰레드로 상기 메모리영역에 상기 이미지데이터를 로딩하여 상기 출력 이미지데이터를 생성하고, 상기 렌더링쓰레드로 단말의 디스플레이 영역에 상기 출력 이미지데이터를 렌더링하여 상기 이미지를 표시하는 제어부를 포함하는, 쓰레드를 활용한 이미지 처리 장치.
KR1020140008249A 2014-01-23 2014-01-23 쓰레드를 활용한 이미지 처리 방법 및 장치 KR20150087982A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140008249A KR20150087982A (ko) 2014-01-23 2014-01-23 쓰레드를 활용한 이미지 처리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140008249A KR20150087982A (ko) 2014-01-23 2014-01-23 쓰레드를 활용한 이미지 처리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20150087982A true KR20150087982A (ko) 2015-07-31

Family

ID=53877138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140008249A KR20150087982A (ko) 2014-01-23 2014-01-23 쓰레드를 활용한 이미지 처리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20150087982A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107895389A (zh) * 2017-11-30 2018-04-10 广东欧珀移动通信有限公司 一种图片显示方法、装置、移动终端及存储介质
GB2564075A (en) * 2017-03-23 2019-01-09 Pridefield Ltd Multi-Threaded rendering system
KR102408497B1 (ko) * 2021-07-21 2022-06-14 주식회사 이유랩 간트차트를 이용한 일정 관리 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2564075A (en) * 2017-03-23 2019-01-09 Pridefield Ltd Multi-Threaded rendering system
GB2564075B (en) * 2017-03-23 2020-04-01 Pridefield Ltd Multi-Threaded rendering system
CN107895389A (zh) * 2017-11-30 2018-04-10 广东欧珀移动通信有限公司 一种图片显示方法、装置、移动终端及存储介质
KR102408497B1 (ko) * 2021-07-21 2022-06-14 주식회사 이유랩 간트차트를 이용한 일정 관리 방법

Similar Documents

Publication Publication Date Title
EP3137985B1 (en) Method and system to create a rendering pipeline
US9535833B2 (en) Reconfigurable processor and method for optimizing configuration memory
US20110138236A1 (en) Apparatus and method for providing visual interface for information of error generated in multithread testing
TW200836125A (en) Multi-threads vertex shader, graphics processing unit, and flow control method thereof
US9830731B2 (en) Methods of a graphics-processing unit for tile-based rendering of a display area and graphics-processing apparatus
JP4637640B2 (ja) 図形描画装置
KR20150087982A (ko) 쓰레드를 활용한 이미지 처리 방법 및 장치
US10990073B2 (en) Program editing device, program editing method, and computer readable medium
JP6820160B2 (ja) イメージをレンダリングするプログラムおよびシステム
KR102248787B1 (ko) Gpu의 리소스에 대한 전력 소비 제어방법 및 장치
US20190026925A1 (en) Texture mapping apparatus and computer readable medium
JP2010287110A (ja) 情報処理装置、情報処理方法、プログラム及び記録媒体
US8237720B2 (en) Shader-based finite state machine frame detection
JP4870956B2 (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
KR20150019104A (ko) 그래픽스 처리 장치 및 방법
JP2017102745A (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法及びソフトウェア開発支援プログラム
US20130342549A1 (en) Apparatus and method for processing rendering data
US9830721B2 (en) Rendering method and apparatus
JP2008071314A (ja) 組み込み用プログラム開発装置、及びプログラム自動生成方法
US8700887B2 (en) Register, processor, and method of controlling a processor using data type information
CN106462600A (zh) 一种显示照片的方法及设备
JP4901891B2 (ja) 画像処理プロセッサ
JP2015222517A (ja) 情報処理装置およびプログラム生成方法
CN107015792B (zh) 一种图表统一动画的实现方法以及设备
JP5848553B2 (ja) ソフトウェア解析装置及びプログラム

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination