KR101936839B1 - 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법, 장치, 저장 매체 및 기기 - Google Patents

단말기 장치에서 스크린 캡처 서비스를 제공하는 방법, 장치, 저장 매체 및 기기 Download PDF

Info

Publication number
KR101936839B1
KR101936839B1 KR1020177007780A KR20177007780A KR101936839B1 KR 101936839 B1 KR101936839 B1 KR 101936839B1 KR 1020177007780 A KR1020177007780 A KR 1020177007780A KR 20177007780 A KR20177007780 A KR 20177007780A KR 101936839 B1 KR101936839 B1 KR 101936839B1
Authority
KR
South Korea
Prior art keywords
screen capture
thread
screen
buffer
producer
Prior art date
Application number
KR1020177007780A
Other languages
English (en)
Other versions
KR20170046714A (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 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드
Publication of KR20170046714A publication Critical patent/KR20170046714A/ko
Application granted granted Critical
Publication of KR101936839B1 publication Critical patent/KR101936839B1/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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/44Arrangements for executing specific programs
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation

Abstract

단말기 장치에서 스크린 캡처 서비스를 제공하는 방법, 장치, 저장 매체 및 기기를 제공한다. 상기 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법은, 생산자 스레드가 수신된 스크린 캡처 명령어의 지시에 응답하여(S110), 스크린 캡처 작업을 수행하고(S120), 캡처한 스크린 데이터를 버퍼에 기록하는(S130) 단계와, 소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고(S210), 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하며(S220), 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하는(S230) 단계를 포함한다. 생산자/소비자의 멀티스레드 모드를 이용하여 각각 스크린 캡처를 수행하는 생산자 스레드 및 캡처한 스크린 데이터에 대해 이미지 처리를 진행하는 소비자 스레드에 의해 스크린 캡처 서비스를 완성하고, 특히 처리 능력에 한계가 존재하는 휴대식 단말기 장치에서 캡처 시간을 줄이며, 수십 밀리 세컨드 내에 스크린 캡처 서비스를 완성하는 것을 실현할 수 있다.

Description

단말기 장치에서 스크린 캡처 서비스를 제공하는 방법, 장치, 저장 매체 및 기기{METHOD AND APPARATUS FOR PROVIDING SCREENSHOT SERVICE ON TERMINAL DEVICE AND STORAGE MEDIUM AND DEVICE}
본 개시는 컴퓨터 응용 기술에 관한 것이며, 특히 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법, 장치, 저장 매체 및 기기에 관한 것이다.
본 특허 출원은 2015년 06월 12일에 제출한 출원번호가 201510325704.0이고 출원인이 바이두 온라인 네트워크 테크놀러지(베이징) 유한회사이며 발명의 명칭이 “단말기 장치에서 스크린 캡처 서비스를 제공하는 방법 및 장치”인 중국 특허 출원의 우선권을 주장하는바, 상기 특허 출원의 모든 내용은 참조로서 본원 출원에 원용된다.
통상적으로 예컨대 개인용 컴퓨터, 노트북 컴퓨터, 스마트폰, 태블릿 피시 및 개인용 휴대 단말기 등과 같은 단말기 장치에는 모두 스크린 캡처 기능이 설치되어 있다. 사용자는 단축키, 메뉴 아이템 및 기능 버튼을 통하여 전체 화면 및 화면의 부분 영역(예를 들어, 어느 한 윈도우 또는 부분적인 문자를 표시하는 영역)의 이미지를 캡처할 수 있다.
스크린 캡처 처리에 있어서, 먼저 대상 영역의 스크린 데이터를 캡처해야 하고, 그 다음, 캡처한 스크린 데이터에 대해 이미지 처리를 진행하고, 기정된 파라미터에 근거하여 상기 스크린 데이터를 이미지 데이터로 전환하며(예를 들어, 주밍, 반전 및 매트릭스 변환 등), 상기 이미지 데이터를 저장하거나 표시한다.
예를 들어, 스마트폰 등 휴대식 단말기의 연산 처리 능력에 한계가 있으므로, 현재 휴대식 단말기의 캡처 방안에서 스크린의 캡처와 이미지 처리는 따로따로 진행된다. 따라서, 통상적으로 상기 2가지 처리를 완료하는데 적어도 수백밀리 세컨드가 필요하며, 아직까지 안드로이드폰의 스크린 캡처 및 처리에서 50밀리 세컨드 이하의 지연에 도달할 수 있는 방안이 없는 상황이다.
상기와 같은 비교적 긴 지연으로 인해 제때에 실시간으로 스크린 녹화를 진행할 수 없으므로, 기존의 방안은 실시간의 멀티스크린 인터랙션 제품에 적용될 수 없다. 또한, 스크린의 캡처와 이미지 처리는 각기 진행되어 절차가 번거로우므로 시스템 자원의 낭비와 데이터 관리의 혼란을 초래하게 된다.
한편, 기존의 스크린 캡처 방안은 제3자 시스템에 통합될 경우 제3자 시스템의 제품 구조에 결합되어야 하는데, 이는 호스트 제품의 통합 원가의 상승 및 유지 관리가 어려운 문제를 쉽게 초래하게 된다.
본 개시의 실시예들은 스크린 캡처를 수행하는 처리 시간을 줄이고 사용자의 체험을 향상시키기 위해 안출한 것으로, 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법, 장치, 저장 매체 및 기기를 제공하고자 한다.
본 개시의 제1 양태에 따르면, 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법을 제공한다. 상기 방법은, 생산자 스레드가 수신된 스크린 캡처 명령어의 지시에 응답하여 스크린 캡처 작업을 수행하고 캡처한 스크린 데이터를 버퍼에 기록하는 단계와, 소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하며 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하는 단계를 포함한다.
바람직하게, 상기 방법은, 상기 생산자 스레드 및 소비자 스레드가 동시에 상기 버퍼에 액세스하는 것을 방지하도록, 스레드 동기화 메커니즘을 통하여, 상기 생산자 스레드가 스크린 캡처 작업을 수행하는 처리와, 상기 생산자 스레드가 캡처한 스크린 데이터를 버퍼에 기록하는 처리와, 상기 소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하는 처리에 대해 제어하는 단계를 더 포함한다.
바람직하게, 상기 방법은, 상기 소비자 스레드가 상기 스크린 캡처 명령어의 처리 파라미터를 획득하는 단계를 더 포함한다. 상기 소비자 스레드가 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하는 처리는, 상기 소비자 스레드가 획득한 상기 스크린 캡처 명령어의 처리 파라미터를 기반으로 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하는 것을 포함한다.
바람직하게, 상기 방법은, 상기 스크린 캡처 서비스의 메인 스레드가 상기 생산자 스레드 및 소비자 스레드를 시작하고, 지정된 포트에서 상기 스크린 캡처 서비스를 호출한 애플리케이션과의 세션 연결을 형성하는 단계와, 상기 생산자 스레드가 상기 세션 연결 상의 데이터 판독 지시를 모니터링함으로써 스크린 캡처 명령어의 지시를 수신한 것을 확정하는 단계를 더 포함한다.
바람직하게, 상기 소비자 스레드가 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하는 단계는, 상기 소비자 스레드가 상기 세션 연결을 통하여 상기 스크린 캡처 이미지를 상기 스크린 캡처 서비스를 호출한 애플리케이션에 발송하는 단계를 포함한다.
바람직하게, 상기 스크린 캡처 서비스의 메인 스레드는 적어도 하나의 상기 버퍼를 설정한다.
바람직하게, 상기 생산자 스레드가 캡처한 스크린 데이터를 버퍼에 기록하는 처리는, 상기 생산자 스레드가 기록 위치에 근거하여, 캡처한 스크린 데이터를 버퍼에 기록하고 상기 버퍼 중의 데이터 길이 및 기록 위치를 업데이트하는 단계를 포함한다.
바람직하게, 상기 소비자 스레드는 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하는 처리는, 상기 소비자 스레드가 판독 위치에 근거하여, 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 버퍼 중의 데이터 길이 및 판독 위치를 업데이트하는 것을 포함한다.
바람직하게, 상기 버퍼는 링 버퍼이다.
선택적으로, 상기 스레드 동기화 메커니즘은 뮤텍스 락, 임계 영역, 이벤트 및 세마포어 중의 하나이다.
본 개시의 제2 양태에 따르면, 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치를 더 제공한다. 상기 장치는, 생산자 스레드에 의해, 수신된 스크린 캡처 명령어의 지시에 응답하여 스크린 캡처 작업을 수행하고 캡처한 스크린 데이터를 버퍼에 기록하도록 구성된 스크린 캡처 작업 모듈; 및 소비자 스레드에 의해 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하며 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하도록 구성된 데이터 처리 모듈;을 포함한다.
바람직하게, 상기 장치는, 상기 생산자 스레드 및 소비자 스레드가 동시에 상기 버퍼에 액세스하는 것을 방지하도록, 스레드 동기화 메커니즘을 통하여, 상기 생산자 스레드가 스크린 캡처 작업을 수행하는 처리와, 상기 생산자 스레드가 캡처한 스크린 데이터를 버퍼에 기록하는 처리와, 상기 소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하는 처리에 대해 제어하도록 구성된 스레드 동기화 모듈을 더 포함한다.
바람직하게, 상기 데이터 처리 모듈은, 상기 소비자 스레드에 의해 상기 스크린 캡처 명령어의 처리 파라미터를 획득하고, 획득한 처리 파라미터를 기반으로 스크린 데이터에 대하여 이미지 처리를 진행하여 캡처 이미지를 생성하도록 더 구성된다.
바람직하게, 상기 장치는, 상기 스크린 캡처 서비스의 메인 스레드에 의해 상기 생산자 스레드 및 소비자 스레드를 시작하고 지정된 포트에서 상기 스크린 캡처 서비스를 호출한 애플리케이션과의 세션 연결을 형성하도록 구성된 마스터 제어 모듈을 더 포함하고, 상기 스크린 캡처 작업 모듈은, 상기 생산자 스레드에 의해 상기 세션 연결 상의 데이터 판독 지시를 모니터링함으로써 스크린 캡처 명령어의 지시를 수신한 것을 확정한다.
바람직하게, 상기 데이터 처리 모듈은, 상기 소비자 스레드에 의해 상기 세션 연결을 통하여 상기 스크린 캡처 이미지를 상기 스크린 캡처 서비스를 호출한 애플리케이션에 반환하도록 구성된다.
바람직하게, 상기 스크린 캡처 서비스의 메인 스레드는 적어도 하나의 상기 버퍼를 설정한다.
바람직하게, 상기 스크린 캡처 작업 모듈은, 상기 생산자 스레드에 의해, 기록 위치에 근거하여, 캡처한 스크린 데이터를 버퍼에 기록하고 상기 버퍼 중의 데이터 길이 및 기록 위치를 업데이트하도록 구성된다.
바람직하게, 상기 데이터 처리 모듈은, 상기 소비자 스레드에 의해, 판독 위치에 근거하여, 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 버퍼 중의 데이터 길이 및 판독 위치를 업데이트하도록 구성된다.
바람직하게, 상기 버퍼는 링 버퍼이다.
선택적으로, 상기 스레드 동기화 메커니즘은 뮤텍스 락, 임계 영역, 이벤트 및 세마포어 중의 하나를 포함한다.
본 개시의 제3 양태에 따르면, 컴퓨터 실행 가능한 명령어를 포함하는 저장 매체를 더 제공하고, 상기 컴퓨터 실행 가능한 명령어는 컴퓨터 프로세서에 의해 실행될 경우, 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법을 실행하고, 해당 방법은,
생산자 스레드가 수신된 스크린 캡처 명령어의 지시에 응답하여 스크린 캡처 작업을 수행하고 캡처한 스크린 데이터를 버퍼에 기록하는 단계; 및
소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하며 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하는 단계를 포함한다.
본 개시의 제4 양태에 따르면, 기기를 더 제공하고, 상기 기기는,
하나 또는 다수의 프로세서;
메모리; 및
하나 또는 다수의 프로그램을 포함하며, 상기 하나 또는 다수의 프로그램은 상기 메모리에 저장되어, 상기 하나 또는 다수의 프로세서에 의해 실행될 경우,
생산자 스레드가 수신된 스크린 캡처 명령어의 지시에 응답하여 스크린 캡처 작업을 수행하고 캡처한 스크린 데이터를 버퍼에 기록하는 작업; 및
소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고, 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하며, 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하는 작업을 진행한다.
본 개시의 실시예의 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법, 장치, 저장 매체 및 기기에 따르면, 생산자/소비자의 멀티스레드 모드를 이용하여 각각 스크린 캡처를 수행하는 생산자 스레드 및 캡처한 스크린 데이터에 대해 이미지 처리를 진행하는 소비자 스레드를 통하여 스크린 캡처 서비스를 완성하고, 특히 처리 능력에 한계가 존재하는 휴대식 단말기 장치에서 스크린 캡처 시간을 줄이며, 수십 밀리 세컨드 내에 스크린 캡처 서비스 완성을 실현할 수 있다.
또한, 동일한 장치에서, 스크린 캡처 서비스를 사용하는 애플리케이션을 클라이언트로 하고 상기 스크린 캡처 서비스의 전체적인 처리를 서버측으로 하는 클라이언트-서버 아키텍처(C/S 아키텍처)를 사용함으로써, 상세한 스크린 캡처 처리 작업의 세부 사항 및 상기 스크린 캡처 서비스를 사용하는 애플리케이션을 격리시키고, 이로써 상기 스크린 캡처 서비스가 상대적으로 쉽게 기타 제품 아키텍처에 통합되도록 한다.
본 개시의 실시예 중의 기술적 해결수단을 더욱 명확히 설명하기 위하여, 아래에 실시예들의 설명에 사용하게 될 도면에 대해 간단한 소개를 진행하기로 하며, 아래에 설명되는 도면들은 단지 본 개시의 일부 실시예들일 뿐, 본 기술분야의 통상의 지식을 가진 자는 창조적인 능력을 발휘하지 않고서 이러한 도면에 대해 수정 및 교체를 진행할 수도 있음은 물론이다.
도 1은 본 개시의 제1 실시예에 따른 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법의 흐름도이다.
도 2는 본 개시의 제2 실시예에 따른 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법의 흐름도이다.
도 3은 본 개시의 제2 실시예에 따른 스크린 캡처 서비스의 동작 프레임워크의 개략도이다.
도 4는 본 개시의 제3 실시예에 따른 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치의 논리 블록도이다.
도 5는 본 개시의 제5 실시예에 따른 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법을 실행하는 기기의 하드웨어 구조 개략도이다.
본 개시의 기본 구상은, 단말기 장치에서 스크린 캡처 서비스를 제공하는 기술 방안을 제공하는 것으로서, 생산자/소비자의 멀티스레드 모드에 따라, 각각 스크린 캡처를 수행하는 생산자 스레드 및 캡처한 스크린 데이터에 대해 이미지 처리를 진행하는 소비자 스레드를 통하여 스크린 캡처 서비스를 실현한다.
또한, 동일한 장치에서, 스크린 캡처 서비스를 사용하는 애플리케이션을 클라이언트로 하고 상기 스크린 캡처 서비스의 전체적인 처리를 서버측의 클라이언트-서버 아키텍처(C/S 아키텍처)로 하여, 상세한 스크린 캡처 처리 작업의 세부 사항 및 상기 스크린 캡처 서비스를 사용하는 애플리케이션을 격리시킴으로써, 상기 스크린 캡처 서비스가 상대적으로 쉽게 기타 제품 아키텍처에 통합되도록 한다.
이하, 첨부된 도면을 참조하여 본 개시의 예시적 실시예에 대해 상세한 설명을 진행하기로 한다.
제1 실시예
도 1은 본 개시의 제1 실시예에 따른 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법의 흐름도이다. 예를 들어, 도 4에 도시된 장치를 통하여 본 개시의 제1 실시예의 스크린 캡처 서비스를 제공하는 방법을 실행할 수 있다.
도 1을 참조하면, 스크린 캡처 서비스는 먼저 생산자 스레드 및 소비자 스레드를 시작한다.
단말기 장치의 사용자가 스크린 캡처에 대한 명령어를 발송한 후, 단계(S110)에서 상기 생산자 스레드는 사용자의 스크린 캡처 명령어 지시를 수신하거나 검출하고, 단계(S120)에서 상기 생산자 스레드는 스크린 캡처 작업을 수행하여 스크린 데이터를 획득하며, 단계(S130)에서 상기 생산자 스레드는 캡처한 스크린 데이터를 버퍼에 기록한다. 단계(S120)에서, 상기 생산자 스레드는 예를 들어 안드로이드 시스템의 기본 스크린 캡처 방법을 호출하여 고속 캡처를 수행할 수 있다.
여기서, 상기 버퍼는 상기 생산자 스레드 및 소비자 스레드가 모두 방문할 수 있는 전역 버퍼이다.
다음으로, 상기 생산자 스레드는 생산자 스레드와 소비자 스레드 사이에 설정된 스레드 동기화 메커니즘을 통하여 단계(S210) 내지 단계(S230)의 수행을 시작한다.
구체적으로, 단계(S210)에서 상기 소비자 스레드는 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고, 단계(S220)에서 상기 소비자 스레드는 상기 스크린 데이터에 대해 필요한 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하고, 단계(S230)에서 상기 소비자 스레드는 상기 스크린 캡처 이미지를 상기 스크린 캡처 서비스를 호출한 애플리케이션에 반환한다.
전술한 단계들의 처리를 거쳐, 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법에 따르면, 생산자 스레드 및 소비자 스레드에 의해 각각 스크린 캡처 및 이미지 처리를 진행하고 공유 데이터 버퍼를 통하여 캡처한 스크린 데이터를 전송함으로써, 스크린 캡처를 완성하는 처리 시간을 줄이고 사용자의 체험을 향상시킬 수 있다.
제2 실시예
도 2는 본 개시의 제2 실시예에 따른 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법의 흐름도이다. 도 2에서, 도 1과 동일한 첨부기호를 구비한 단계의 작업은 각각 도 1 중의 상응한 단계에 수행되는 작업과 유사하므로, 여기서 상세한 설명은 생략하도록 한다.
생산자 스레드 및 소비자 스레드를 통하여 각각 스크린 캡처 서비스의 스크린 캡처 및 이미지 처리를 진행하므로, 상기 버퍼 중의 판독 및 기록에 대해 동기 제어를 수행하기 위하여, 본 개시의 예시적인 실시예에 따라, 상기 방법은 상기 생산자 스레드 및 소비자 스레드가 동시에 상기 버퍼에 액세스하는 것을 방지하도록 스레드 동기화 메커니즘을 통하여, 상기 생산자 스레드가 스크린 캡처 작업을 수행하는 처리와, 상기 생산자 스레드가 캡처한 스크린 데이터를 버퍼에 기록하는 처리와, 상기 소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하는 처리에 대해 제어하는 단계를 더 포함한다.
상기 스레드 동기화 메커니즘은 뮤텍스 락(mutex lock), 임계 영역, 이벤트 및 세마포어(semaphore) 등일 수 있으나 이에 한정되지 않는다. 이하, 상기 생산자 스레드 및 소비자 스레드가 뮤텍스 락을 사용하는 것을 예로 계속하여 본 개시의 제2 실시예를 설명하기로 한다.
도 2를 참조하면, 구체적으로, 상기 생산자 스레드는 단계(S120)를 수행하기 전에, 먼저 상기 뮤텍스 락을 획득하고, 단계(S130)의 작업을 완료한 후, 상기 생산자 스레드는 상기 뮤텍스 락을 해제한다.
한편, 상기 소비자 스레드도 단계(S210)를 수행하기 전에 먼저 상기 뮤텍스 락을 획득해야 하고, 단계(S210)를 완료한 후, 상기 소비자 스레드는 상기 뮤텍스 락을 해제할 수 있다.
나아가, 상기 소비자 스레드는 상기 캡처 명령어의 처리 파라미터를 더 획득하고, 상기 소비자 스레드는 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하는 단계는 구체적으로, 상기 소비자 스레드가 획득한 상기 스크린 캡처 명령어의 처리 파라미터에 따라 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하는 단계를 포함할 수 있다. 상기 처리 파라미터는 해상도, 사이즈, 회전 각도 및 줌 배수 중의 적어도 하나를 포함할 수 있다.
나아가, 상기 버퍼에 대한 판독 및 기록 작업에 있어서, 상기 생산자 스레드 및 소비자 스레드는 상기 버퍼 중의 데이터 길이를 유지 관리할 수 있고 각자의 판독 또는 기록 위치를 각각 유지 관리할 수 있다.
예를 들어, 단계(S130)는 상기 생산자 스레드가 기록 위치에 따라 캡처한 스크린 데이터를 버퍼에 기록하고, 상기 버퍼 중의 데이터 길이 및 기록 위치를 업데이트하는 단계를 포함할 수 있다. 단계(S210)는, 상기 소비자 스레드가 판독 위치에 따라 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 버퍼 중의 데이터 길이 및 판독 위치를 업데이트하는 단계를 포함할 수 있다.
바람직하게, 상기 스크린 캡처 서비스의 메인 스레드는 적어도 하나의 상기 버퍼를 설정한다. 상기 버퍼는 링 버퍼이므로 상기 생산자 스레드 및 소비자 스레드가 상기 버퍼에 대해 순환적으로 판독 및 기록할 수 있도록 한다.
이하 도 3에 도시된 예시에 따라 상기 스크린 캡처 서비스의 전체 프레임에 대하여 자세한 설명을 진행한다. 본 개시의 구현 방식은 도 3에 도시된 방식에 한정되지 않으며 기타 적합한 구현 방식으로 실현할 수도 있다.
도 3을 참조하면, 스크린 캡처 서비스를 사용하는 애플리케이션 APP는 본 개시를 실현하는 스크린 캡처 서비스를 제공하는 스크린 캡처 서비스 애플리케이션 또는 스크린 캡처 서비스 메인 스레드를 시작할 수 있거나, 상기 APP는 이미 실행하는 스크린 캡처 서비스 애플리케이션 또는 스크린 캡처 서비스 메인 스레드일 수 있다.
스크린 캡처 서비스 애플리케이션의 메인 스레드 A 또는 상기 스크린 캡처 서비스의 메인 스레드 A(이하 메인 스레드 A로 약칭함)는 상기 생산자 스레드 B 및 소비자 스레드 C를 시작하는 것을 담당하고, 지정된 포트 P에서 상기 스크린 캡처 서비스를 호출한 애플리케이션과의 세션 연결 T를 형성한다. 메인 스레드 A는 적어도 하나의 상기 버퍼 F를 설정한다.
생산자 스레드 B는 세션 연결 T 상의 데이터 판독 지시를 모니터링함으로써 스크린 캡처 명령어 지시가 수신됨을 확정하고, 그 다음, 전술한 바와 같이 상기 뮤텍스 락을 획득한 후, 단계(S120)의 스크린 캡처 및 (S130)의 기록 (write) 작업을 수행하며, 단계(S130)를 완료한 후, 상기 생산자 스레드 B는 상기 뮤텍스 락을 해제한다.
소비자 스레드 C는 단계(S210)를 수행하기 전에, 뮤텍스 락을 획득하고, 그 다음, 버퍼 F가 비어 있지 않을 경우, 단계(S210), 단계(S215), 단계(S220) 및 단계(S230)를 수행한다. 여기서, 단계(S210) 또는 단계(S215)를 완료한 후, 상기 뮤텍스 락을 해제한다. 단계(S230)에서, 소비자 스레드 B는 세션 연결 T를 통하여 상기 스크린 캡처 이미지를 상기 스크린 캡처 서비스를 호출한 애플리케이션 APP에 발송한다.
전술한 바와 같이, 스크린 캡처 서비스를 사용하는 애플리케이션을 클라이언트로 하고 상기 스크린 캡처 서비스를 서버측으로 하는 C/S 아키텍처를 통하여, 단계가 간단하고 고속으로 캡처를 실현하여 상기 애플리케이션에 스크린 캡처 이미지를 제공할 수 있을 뿐만 아니라, 상대적으로 간단한 서비스 아키텍처를 제공하며 제3자 제품에 쉽게 통합될 수 있다.
제3 실시예
도 4는 본 개시의 제3 실시예에 따른 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치의 블록도이다.
도 4를 참조하면, 상기 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치는 스크린 캡처 작업 모듈(410) 및 데이터 처리 모듈(420)을 포함한다.
스크린 캡처 작업 모듈(410)은, 생산자 스레드를 통해 수신된 스크린 캡처 명령어의 지시에 응답하여 스크린 캡처 작업을 수행하고 캡처한 스크린 데이터를 버퍼에 기록하도록 구성된다.
데이터 처리 모듈(420)은 소비자 스레드를 통해 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고, 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하며, 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하도록 구성된다.
본 개시의 바람직한 실시예에 따르면, 상기 장치는 상기 생산자 스레드 및 소비자 스레드가 동시에 상기 버퍼에 액세스하는 것을 방지하도록, 스레드 동기화 메커니즘을 통하여 아래와 같은 처리들을 제어하도록 구성된 스레드 동기화 모듈(430)을 더 포함한다. 즉:
상기 생산자 스레드가 스크린 캡처 작업을 하는 처리; 상기 생산자 스레드가 캡처한 스크린 데이터를 버퍼에 기록하는 처리; 및 상기 소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하는 처리를 제어한다. 상기 스레드 동기화 메커니즘은 뮤텍스 락, 임계 영역, 이벤트 또는 세마포어일 수 있으나 이에 한정되지 않는다.
본 개시의 바람직한 실시예에 따르면, 상기 스레드 동기화 메커니즘은 뮤텍스 락, 임계 영역, 이벤트 및 세마포어 중의 하나를 포함할 수 있다.
데이터 처리 모듈(420)은 상기 소비자 스레드에 의해 상기 스크린 캡처 명령어의 처리 파라미터를 획득하고 획득한 처리 파라미터를 기반으로 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하도록 더 구성된다.
본 개시의 바람직한 실시예에 따르면, 상기 장치는, 상기 스크린 캡처 서비스의 메인 스레드에 의해 상기 생산자 스레드 및 소비자 스레드를 시작하고, 지정된 포트에서 상기 스크린 캡처 서비스를 호출한 애플리케이션과의 세션 연결을 형성하도록 구성된 마스터 제어 모듈(440); 및 상기 생산자 스레드에 의해 상기 세션 연결 상의 데이터 판독 지시를 모니터링함으로써 스크린 캡처 명령어의 지시를 수신한 것을 확정한도록 구성된 스크린 캡처 작업 모듈(410)을 더 포함한다.
선택적으로, 데이터 처리 모듈(420)은 상기 소비자 스레드에 의해 상기 세션 연결을 통하여 상기 스크린 캡처 이미지를 상기 스크린 캡처 서비스를 호출한 애플리케이션에 발송하도록 구성된다.
바람직하게, 마스터 제어 모듈(440)은 상기 스크린 캡처 서비스의 메인 스레드에 의해 적어도 하나의 상기 버퍼를 설정하도록 더 구성된다.
바람직하게, 스크린 캡처 작업 모듈(410)은 상기 생산자 스레드에 의해 캡처한 스크린 데이터를 버퍼에 기록한 후, 상기 생산자 스레드에 의해 기록 위치에 따라 캡처한 스크린 데이터를 버퍼에 기록하고, 상기 버퍼 중의 데이터 길이 및 기록 위치를 업데이트하도록 더 구성된다.
바람직하게, 데이터 처리 모듈(420)은 상기 소비자 스레드에 의해 판독 위치에 따라 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 버퍼 중의 데이터 길이 및 판독 위치를 업데이트하도록 구성된다.
바람직하게, 상기 버퍼는 링 버퍼이다.
본 개시의 실시예에 제공된 기술적 해결수단에 따르면, 생산자/소비자의 멀티스레드 모드를 이용하고, 각각 스크린 캡처를 수행하는 생산자 스레드 및 캡처한 스크린 데이터에 대해 이미지 처리를 진행하는 소비자 스레드를 통하여 스크린 캡처 서비스를 완성하며, 특히 처리 능력에 한계가 존재하는 휴대식 단말기 장치에서 캡처 시간을 줄일 수 있고, 수십 밀리 세컨드 내에 스크린 캡처 서비스 완성을 실현할 수 있다.
또한, 동일한 장치에서는, 스크린 캡처 서비스를 사용하는 애플리케이션을 클라이언트로 하고 상기 스크린 캡처 서비스의 전체적인 처리를 서버측으로 하는 클라이언트-서버 아키텍처(C/S 아키텍처)를 이용하여, 상세한 스크린 캡처 처리 작업의 세부 사항 및 상기 스크린 캡처 서비스를 사용하는 애플리케이션을 격리시킴으로써, 상기 스크린 캡처 서비스가 상대적으로 쉽게 기타 제품 아키텍처에 통합되도록 한다.
실시의 수요에 따라, 본 개시의 목적을 달성하기 위해, 본 출원에서 설명된 각 부재/단계를 더 많은 부재/단계로 분해할 수도 있고, 2개 또는 2개 이상의 부재/단계 또는 부재/단계의 부분적 작업을 새로운 부재/단계로 조합할 수도 있음을 유의하여야 한다.
상기와 같은 본 개시에 따른 방법은 하드웨어 및 펌웨어에서 구현될 수도 있고, 또는 기록 매체(예를 들어, CD ROM, RAM, 플로피 디스크, 하드 디스크 또는 광자기 디스크)에 저장될 수 있는 소프트웨어 또는 컴퓨터 코드로 구현될 수도 있고, 또는 인터넷을 통해 다운로드된 원격 기록 매체 또는 비일시적인 기계 판독 가능한 매체에 원래 저장되어 있다가 로컬 기록 매체에 저장될 컴퓨터 코드로 구현될 수 있으므로, 여기서 설명된 방법은 범용 컴퓨터, 전용 프로세서 또는 프로그램 가능한 하드웨어 또는 전용 하드웨어(예를 들어, ASIC 또는 FPGA)를 사용하는 기록 매체에 저장된 소프트웨어로 처리될 수 있다. 컴퓨터, 프로세서, 마이크로 프로세서 컨트롤러 또는 프로그래머블 하드웨어는 소프트웨어 또는 컴퓨터 코드를 저장하거나 수신할 수 있는 저장 부재(예를 들어, RAM, ROM 및 플래시 메모리 등)를 포함하고, 상기 소프트웨어 또는 컴퓨터 코드가 컴퓨터, 프로세서 또는 하드웨어에 의해 액세스되어 실행될 경우, 본 명세서에서 설명한 처리 방법을 실현한다는 것을 이해할 것이다. 또한, 범용 컴퓨터가 본 명세서에서 설명된 처리를 실행하는 코드를 액세스할 경우, 코드의 실행은 범용 컴퓨터를 본 명세서에서 설명된 처리를 진행하는 전용 컴퓨터로 전환한다.
제4 실시예
본 개시의 실시예는 컴퓨터 실행 가능한 명령어를 포함하는 저장 매체를 제공한다. 상기 컴퓨터 실행 가능한 명령어는 컴퓨터 프로세서에 의해 실행될 경우 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법을 실행하고, 해당 방법은 아래와 같은 단계를 포함한다:
생산자 스레드가 수신된 스크린 캡처 명령어의 지시에 응답하여 스크린 캡처 작업을 수행하고 캡처한 스크린 데이터를 버퍼에 기록하는 단계; 및
소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하고, 상기 스크린 캡처 이미지를 상기 스크린 캡처 서비스를 호출한 애플리케이션에 반환하는 단계.
상기 저장 매체가 상기 방법을 실행할 경우, 상기 방법은, 구체적으로,
상기 생산자 스레드 및 소비자 스레드가 동시에 상기 버퍼에 액세스하는 것을 방지하도록, 스레드 동기화 메커니즘을 통하여 이하 처리에 대해 제어하는 단계를 더 포함할 수 있다. 즉:
상기 생산자 스레드가 스크린 캡처 작업을 수행하는 처리;
상기 생산자 스레드가 캡처한 스크린 데이터를 버퍼에 기록하는 처리;
및, 상기 소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하는 처리.
상기 저장 매체가 상기 방법을 실행할 경우, 상기 스레드 동기화 메커니즘은 뮤텍스 락, 임계 영역, 이벤트 및 세마포어 중의 하나를 포함한다.
상기 저장 매체가 상기 방법을 실행할 경우, 상기 방법은 구체적으로,
상기 소비자 스레드가 상기 스크린 캡처 명령어의 처리 파라미터를 획득하는 단계를 더 포함할 수 있고,
상기 소비자 스레드가 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하는 처리는,
상기 소비자 스레드가 획득한 상기 스크린 캡처 명령어의 처리 파라미터를 기반으로 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하는 것을 포함한다.
상기 저장 매체가 상기 방법을 실행할 경우, 상기 방법은 구체적으로,
상기 스크린 캡처 서비스의 메인 스레드가 상기 생산자 스레드 및 소비자 스레드를 시작하고, 지정된 포트에서 상기 스크린 캡처 서비스를 호출한 애플리케이션과의 세션 연결을 형성하는 단계;
상기 생산자 스레드가 상기 세션 연결 상의 데이터 판독 지시를 모니터링함으로써 스크린 캡처 명령어의 지시를 수신한 것을 확정하는 단계;를 더 포함할 수 있다.
상기 저장 매체가 상기 방법을 실행할 경우, 상기 소비자 스레드는 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하는 처리는,
상기 소비자 스레드가 상기 세션 연결을 통하여 상기 스크린 캡처 이미지를 상기 스크린 캡처 서비스를 호출한 애플리케이션에 발송하는 것을 포함한다.
상기 저장 매체가 상기 방법을 실행할 경우, 상기 스크린 캡처 서비스의 메인 스레드는 적어도 하나의 상기 버퍼를 설정한다.
상기 저장 매체가 상기 방법을 실행할 경우, 상기 생산자 스레드가 캡처한 스크린 데이터를 버퍼에 기록하는 처리는 구체적으로,
상기 생산자 스레드가 기록 위치에 근거하여, 캡처한 스크린 데이터를 버퍼에 기록하고 상기 버퍼 중의 데이터 길이 및 기록 위치를 업데이트하는 것을 더 포함할 수 있다.
상기 저장 매체가 상기 방법을 실행할 경우, 상기 소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하는 처리는 구체적으로,
상기 소비자 스레드가 판독 위치에 근거하여, 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 버퍼 중의 데이터 길이 및 판독 위치를 업데이트하는 것을 더 포함할 수 있다.
상기 저장 매체가 상기 방법을 실행할 경우, 상기 버퍼는 구체적으로 링 버퍼일 수 있다.
제5 실시예
도 5는 본 개시의 제5 실시예에 따른 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법을 실행하는 기기의 하드웨어 구조 개략도이다. 도 5를 참조하면, 해당 기기는,
하나 또는 다수의 프로세서(510) (도 5에서, 하나의 프로세서(510)를 예로 듬);
메모리(520); 및 하나 또는 다수의 모듈을 포함한다.
상기 기기는 입력 장치(530)와 출력 장치(540)를 더 포함할 수 있다. 상기 기기 중의 프로세서(510), 메모리(520), 입력 장치(530) 및 출력 장치(540)는 버스 또는 기타 방식을 통해 연결되는 바, 도 5에서는 버스를 통해 연결된는 것을 예로 든다.
메모리(520)는 컴퓨터 판독 가능한 저장 매체로서, 소프트웨어 프로그램, 컴퓨터 실행 가능한 프로그램 및 모듈을 저장할 수 있도록 구성되고, 예컨대 본 개시의 실시예 중의 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법에 해당하는 프로그램 명령어/모듈(예를 들어, 도 4에 도시된 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치의 스크린 캡처 작업 모듈(410), 데이터 처리 모듈(420), 스레드 동기화 모듈(430) 및 마스터 제어 모듈(440))을 저장할 수 있다. 프로세서(510)는 메모리(520)에 저장된 소프트웨어 프로그램, 명령어 및 모듈을 실행함으로써 기기의 다양한 기능성 응용과 데이터 처리를 진행하는 바, 즉 상기 방법 실시예 중의 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법을 실행한다.
메모리(520)는 프로그램 저장 영역과 데이터 저장 영역을 포함할 수 있고, 여기서, 프로그램 저장 영역은 운영 시스템 및 적어도 하나의 기능에 필요한 응용 프로그램을 저장할 수 있고, 데이터 저장 영역은 단말기 장치의 사용에 따라 생성된 데이터 등을 저장할 수 있다. 또한, 메모리(520)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 비휘발성 메모리(예를 들어, 적어도 하나의 디스크 메모리 장치, 플래시 메모리 장치 또는 기타 비휘발성 고체 메모리 장치)를 더 포함할 수 있다. 일부 실시예에 있어서, 메모리(520)는 프로세서(510)에 대해 원격으로 설치된 메모리를 더 포함할 수 있고, 이러한 원격 메모리는 네트워크를 통해 단말기 장치에 연결될 수 있다. 상기 네트워크의 예시는 인터넷, 인트라넷, 근거리 통신망, 이동 통신망 및 이들의 조합을 포함하나 이에 한정되지 않는다.
입력 장치(530)는 입력된 숫자 또는 문자 정보를 수신하고 단말기의 사용자 설정 및 기능 제어에 관한 키 시그널의 입력을 생성하도록 구성될 수 있다. 출력 장치(540)는 표시 스크린 등 같은 표시 장치를 포함할 수 있다.
상기 하나 또는 다수의 모듈은 상기 메모리(520)에 저장되어, 하나 또는 다수의 프로세서(510)에 의해 실행될 경우,
생산자 스레드가 수신된 스크린 캡처 명령어의 지시에 응답하여 스크린 캡처 작업을 수행하고, 캡처한 스크린 데이터를 버퍼에 기록하는 작업;
소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하며 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하는 작업을 수행한다.
나아가, 상기 방법은,
상기 생산자 스레드 및 소비자 스레드가 동시에 상기 버퍼에 액세스하는 것을 방지하도록, 스레드 동기화 메커니즘을 통하여 이하 처리에 대해 제어하는 단계를 더 포함할 수 있다. 즉:
상기 생산자 스레드가 스크린 캡처 작업을 수행하는 처리;
상기 생산자 스레드가 캡처한 스크린 데이터를 버퍼에 기록하는 처리;
및, 상기 소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하는 처리.
나아가, 상기 스레드 동기화 메커니즘은 뮤텍스 락, 임계 영역, 이벤트 및 세마포어 중의 하나를 포함할 수 있다.
나아가, 상기 방법은,
상기 소비자 스레드가 상기 스크린 캡처 명령어의 처리 파라미터를 획득하는 단계를 더 포함할 수 있고,
상기 소비자 스레드가 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하는 처리는,
상기 소비자 스레드가 획득한 상기 스크린 캡처 명령어의 처리 파라미터를 기반으로 상기 스크린 데이터에 대해 이미지 처리를 진행하여 캡처 이미지를 생성하는 것을 포함한다.
나아가, 상기 방법은,
상기 스크린 캡처 서비스의 메인 스레드가 상기 생산자 스레드 및 소비자 스레드를 시작하고, 지정된 포트에서 상기 스크린 캡처 서비스를 호출한 애플리케이션과의 세션 연결을 형성하는 단계;
상기 생산자 스레드가 상기 세션 연결 상의 데이터 판독 지시를 모니터링함으로써 스크린 캡처 명령어의 지시를 수신한 것을 확정하는 단계;를 더 포함할 수 있다.
나아가, 상기 소비자 스레드가 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하는 처리는,
상기 소비자 스레드가 상기 세션 연결을 통하여 상기 스크린 캡처 이미지를 상기 스크린 캡처 서비스를 호출한 애플리케이션에 발송하는 것을 포함할 수 있다.
나아가, 상기 스크린 캡처 서비스의 메인 스레드는 적어도 하나의 상기 버퍼를 설정한다.
나아가, 상기 생산자 스레드가 캡처한 스크린 데이터를 버퍼에 기록하는 처리는,
상기 생산자 스레드가 기록 위치에 근거하여, 캡처한 스크린 데이터를 버퍼에 기록하고 상기 버퍼 중의 데이터 길이 및 기록 위치를 업데이트하는 것을 포함할 수 있다.
나아가, 상기 소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하는 처리는,
상기 소비자 스레드가 판독 위치에 근거하여, 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 버퍼 중의 데이터 길이 및 판독 위치를 업데이트하는 것을 포함할 수 있다.
나아가, 상기 버퍼는 링 버퍼일 수 있다.
상기와 같은 실시형태에 대한 설명을 통하여, 해당 분야에서 통상의 지식을 가진 자는, 본 개시가 소프트웨어 및 필수적인 범용 하드웨어에 의해 실현될 수도 있고, 물론 하드웨어에 의해 실현될 수도 있으나 대다수 경우에 전자가 더욱 바람직한 실시형태임을 명확하게 이해할 수 있다. 이러한 이해를 기반으로, 본 개시의 기술적 해결수단은 본질적으로 또는 기존의 기술에 기여되는 부분은 소프트웨어 제품의 형식으로 구현될 수 있으며, 상기 컴퓨터 소프트웨어 제품은 예를 들어 컴퓨터의 플로피 디스켓, 읽기 전용 메모리(Read-Only Memory, ROM), 랜덤 액세스 메모리(Random Access Memory, RAM), 플래시 메모리(FLASH), 하드 드라이버 또는 콤팩트디스크 등과 같은 컴퓨터 판독 가능한 저장 매체에 저장될 수 있으며, 컴퓨터 장치(개인용 컴퓨터, 서버 또는 네트워크 기기 등일 수 있음)로 하여금 본 개시의 각 실시예에 기재된 방법을 실행하도록 다수의 명령을 포함한다..
상기 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치의 실시예에서, 포함된 각 유닛과 모듈은 단지 기능 로직에 기반하여 구분될 뿐, 상응한 기능을 실현할 수만 있다면 상술한 분류에 한정되지 않으며, 또한, 각 기능 유닛의 구체적인 명칭도 상호 구분의 편의를 위한 것일 뿐, 본 개시의 보호범위를 한정하기 위한 것이 아님을 유의하여야 한다.
이상의 내용은 본 개시의 구체적인 실시예일 뿐, 본 개시의 보호범위는 이에 한정되는 것이 아니며, 해당 기술분야에서의 임의의 당업자는 본 개시에 개시된 기술적 범위 내에서 용이하게 생각해 낼 수 있는 변경 또는 대체는 모두 본 발명의 보호 범위에 포함되어야 한다. 따라서, 본 개시의 보호범위는 첨부된 청구항의 보호범위를 기준으로 하여야 한다.
* 도면의 주요 부분에 대한 부호의 설명 *
410 : 스크린 캡처 작업 모듈 420 : 데이터 처리 모듈
430 : 스레드 동기화 모듈

Claims (22)

  1. 생산자 스레드가 수신된 스크린 캡처 명령어의 지시에 응답하여 스크린 캡처 작업을 수행하고 캡처한 스크린 데이터를 버퍼에 기록하는 단계; 및
    소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하며 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하는 단계; 및
    상기 소비자 스레드가 상기 스크린 캡처 명령어의 처리 파라미터를 획득하는 단계를 포함하되,
    상기 소비자 스레드가 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하는 처리는,
    상기 소비자 스레드가 획득한 상기 스크린 캡처 명령어의 처리 파라미터를 기반으로 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하는 것을 포함하는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법.
  2. 제1항에 있어서,
    상기 생산자 스레드 및 소비자 스레드가 동시에 상기 버퍼에 액세스하는 것을 방지하도록, 스레드 동기화 메커니즘을 통하여,
    상기 생산자 스레드가 스크린 캡처 작업을 수행하는 처리;
    상기 생산자 스레드가 캡처한 스크린 데이터를 버퍼에 기록하는 처리; 및
    상기 소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하는 처리;에 대해 제어하는 단계를 더 포함하는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법.
  3. 제2항에 있어서,
    상기 스레드 동기화 메커니즘은 뮤텍스 락, 임계 영역, 이벤트 및 세마포어 중의 하나를 포함하는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법.
  4. 삭제
  5. 제1항 내지 제3항 중 임의의 한 항에 있어서,
    상기 스크린 캡처 서비스의 메인 스레드가 상기 생산자 스레드 및 소비자 스레드를 시작하고 지정된 포트에서 상기 스크린 캡처 서비스를 호출한 애플리케이션과의 세션 연결을 형성하는 단계; 및
    상기 생산자 스레드가 상기 세션 연결 상의 데이터 판독 지시를 모니터링함으로써 스크린 캡처 명령어의 지시를 수신한 것을 확정하는 단계;를 더 포함하는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법.
  6. 제5항에 있어서,
    상기 소비자 스레드가 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하는 처리는,
    상기 소비자 스레드가 상기 세션 연결을 통하여 상기 스크린 캡처 이미지를 상기 스크린 캡처 서비스를 호출한 애플리케이션에 발송하는 것을 포함하는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법.
  7. 제5항에 있어서,
    상기 스크린 캡처 서비스의 메인 스레드는 적어도 하나의 상기 버퍼를 설정하는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법.
  8. 제7항에 있어서,
    상기 생산자 스레드가 캡처한 스크린 데이터를 버퍼에 기록하는 처리는,
    상기 생산자 스레드가 기록 위치에 근거하여, 캡처한 스크린 데이터를 버퍼에 기록하고 상기 버퍼 중의 데이터 길이 및 기록 위치를 업데이트하는 것을 포함하는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법.
  9. 제7항에 있어서,
    상기 소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하는 처리는,
    상기 소비자 스레드가 판독 위치에 근거하여, 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 버퍼 중의 데이터 길이 및 판독 위치를 업데이트하는 것을 포함하는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법.
  10. 제7항에 있어서,
    상기 버퍼는 링 버퍼인 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법.
  11. 생산자 스레드에 의해, 수신된 스크린 캡처 명령어의 지시에 응답하여 스크린 캡처 작업을 수행하고 캡처한 스크린 데이터를 버퍼에 기록하도록 구성된 스크린 캡처 작업 모듈; 및
    소비자 스레드에 의해, 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하며 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하도록 구성된 데이터 처리 모듈;을 포함하되,
    상기 데이터 처리 모듈은,
    상기 소비자 스레드에 의해, 상기 스크린 캡처 명령어의 처리 파라미터를 획득하고, 획득한 처리 파라미터를 기반으로 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하도록 더 구성되는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치.
  12. 제11항에 있어서,
    상기 생산자 스레드 및 소비자 스레드가 동시에 상기 버퍼에 액세스하는 것을 방지하도록, 스레드 동기화 메커니즘을 통하여,
    상기 생산자 스레드가 스크린 캡처 작업을 수행하는 처리;
    상기 생산자 스레드가 캡처한 스크린 데이터를 버퍼에 기록하는 처리; 및
    상기 소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하는 처리;에 대해 제어하도록 구성된 스레드 동기화 모듈을 더 포함하는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치.
  13. 제12항에 있어서,
    상기 스레드 동기화 메커니즘은 뮤텍스 락, 임계 영역, 이벤트 및 세마포어 중의 하나를 포함하는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치.
  14. 삭제
  15. 제11항 내지 제13항 중 임의의 한 항에 있어서,
    상기 스크린 캡처 서비스의 메인 스레드에 의해 상기 생산자 스레드 및 소비자 스레드를 시작하고, 지정된 포트에서 상기 스크린 캡처 서비스를 호출한 애플리케이션과의 세션 연결을 형성하도록 구성된 마스터 제어 모듈을 더 포함하되,
    상기 스크린 캡처 작업 모듈은,
    상기 생산자 스레드에 의해 상기 세션 연결 상의 데이터 판독 지시를 모니터링함으로써 스크린 캡처 명령어의 지시를 수신한 것을 확정하도록 구성되는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치.
  16. 제15항에 있어서,
    상기 데이터 처리 모듈은,
    상기 소비자 스레드에 의해 상기 세션 연결을 통하여 상기 스크린 캡처 이미지를 상기 스크린 캡처 서비스를 호출한 애플리케이션에 반환하도록 구성되는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치.
  17. 제15항에 있어서,
    상기 스크린 캡처 서비스의 메인 스레드는 적어도 하나의 상기 버퍼를 설정하는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치.
  18. 제17항에 있어서,
    상기 스크린 캡처 작업 모듈은,
    상기 생산자 스레드에 의해 기록 위치에 근거하여, 캡처한 스크린 데이터를 버퍼에 기록하고 상기 버퍼 중의 데이터 길이 및 기록 위치를 업데이트하도록 구성되는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치.
  19. 제17항에 있어서,
    상기 데이터 처리 모듈은,
    상기 소비자 스레드에 의해 판독 위치에 근거하여, 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 버퍼 중의 데이터 길이 및 판독 위치를 업데이트하도록 구성되는 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치.
  20. 제17항에 있어서,
    상기 버퍼는 링 버퍼인 것을 특징으로 하는 단말기 장치에서 스크린 캡처 서비스를 제공하는 장치.
  21. 컴퓨터 실행 가능한 명령어를 포함하는 저장 매체에 있어서,
    상기 컴퓨터 실행 가능한 명령어는 컴퓨터 프로세서에 의해 실행될 경우 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법을 실행하며, 상기 방법은,
    생산자 스레드가 수신된 스크린 캡처 명령어의 지시에 응답하여 스크린 캡처 작업을 수행하고 캡처한 스크린 데이터를 버퍼에 기록하는 단계;
    소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하며 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하는 단계; 및
    상기 소비자 스레드가 상기 스크린 캡처 명령어의 처리 파라미터를 획득하고, 획득한 처리 파라미터를 기반으로 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하는 단계;를 포함하는 것을 특징으로 하는 저장 매체.
  22. 하나 또는 다수의 프로세서;
    메모리; 및
    하나 또는 다수의 프로그램을 포함하되,
    상기 하나 또는 다수의 프로그램은 상기 메모리에 저장되고, 상기 하나 또는 다수의 프로세서에 의해 실행될 경우,
    생산자 스레드가 수신된 스크린 캡처 명령어의 지시에 응답하여 스크린 캡처 작업을 수행하고 캡처한 스크린 데이터를 버퍼에 기록하는 작업; 및
    소비자 스레드가 상기 버퍼로부터 생산자 스레드가 저장한 스크린 데이터를 판독하고, 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하며, 상기 스크린 캡처 이미지를 스크린 캡처 서비스를 호출한 애플리케이션에 반환하는 작업을 진행하고, 상기 소비자 스레드는 상기 스크린 캡처 명령어의 처리 파라미터를 획득하고, 획득한 처리 파라미터를 기반으로 상기 스크린 데이터에 대해 이미지 처리를 진행하여 스크린 캡처 이미지를 생성하는 것을 특징으로 하는 기기.
KR1020177007780A 2015-06-12 2015-12-31 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법, 장치, 저장 매체 및 기기 KR101936839B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510325704.0A CN104899039B (zh) 2015-06-12 2015-06-12 用于在终端设备上提供截屏服务的方法和装置
CN201510325704.0 2015-06-12
PCT/CN2015/100174 WO2016197590A1 (zh) 2015-06-12 2015-12-31 用于在终端设备上提供截屏服务的方法、装置、存储介质及设备

Publications (2)

Publication Number Publication Date
KR20170046714A KR20170046714A (ko) 2017-05-02
KR101936839B1 true KR101936839B1 (ko) 2019-01-10

Family

ID=54031717

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177007780A KR101936839B1 (ko) 2015-06-12 2015-12-31 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법, 장치, 저장 매체 및 기기

Country Status (6)

Country Link
US (1) US10338976B2 (ko)
EP (1) EP3309676B1 (ko)
JP (1) JP6377263B2 (ko)
KR (1) KR101936839B1 (ko)
CN (1) CN104899039B (ko)
WO (1) WO2016197590A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899039B (zh) 2015-06-12 2018-12-25 百度在线网络技术(北京)有限公司 用于在终端设备上提供截屏服务的方法和装置
CN105653267B (zh) * 2015-12-28 2019-05-07 心动网络股份有限公司 电子设备及数据处理方法
CN107656678B (zh) * 2017-08-29 2020-12-22 努比亚技术有限公司 长截图实现方法、终端及计算机可读存储介质
JP6858885B2 (ja) * 2018-03-20 2021-04-14 深▲セン▼前▲海▼▲達▼▲闥▼▲雲▼端智能科技有限公司Cloudminds (Shenzhen) Robotics Systems Co., Ltd. コンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法及び装置
US11456981B2 (en) * 2019-05-15 2022-09-27 Nextiva, Inc. System and method for capturing, storing, and transmitting presentations
CN111541847B (zh) * 2020-05-14 2022-03-25 南京博视医疗科技有限公司 一种高速相机图像序列的处理方法及其处理系统
CN114040136A (zh) * 2021-11-05 2022-02-11 北京京东乾石科技有限公司 轨道巡检装置、图像处理方法、装置、设备和介质
CN115562893B (zh) * 2022-12-07 2023-04-07 北京志翔科技股份有限公司 图像传输方法、装置、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130155086A1 (en) 2011-12-15 2013-06-20 Advance Micro Devices Method and apparatus for providing local screen data to a sink device
US20140022269A1 (en) 2012-07-18 2014-01-23 Tencent Technology (Shenzhen) Company Limited Method and device for obtaining screenshots from mobile terminals

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002014827A (ja) * 2000-05-19 2002-01-18 Micro-Epsilon Messtechnik Gmbh & Co Kg プロセスの制御及び可視化方法
DE10031088C2 (de) * 2000-06-30 2002-12-19 Raymond A & Cie Beheizbare Scheibenwaschdüse
US20030225816A1 (en) * 2002-06-03 2003-12-04 Morrow Michael W. Architecture to support multiple concurrent threads of execution on an arm-compatible processor
US7343037B1 (en) * 2004-02-04 2008-03-11 Microsoft Corporation Dynamic, locally-adaptive, lossless palettization of color and grayscale images
DE102006036056B4 (de) * 2006-08-02 2008-03-13 Audi Ag Vorrichtung zur Abgasreinigung
JP5005513B2 (ja) * 2007-11-08 2012-08-22 株式会社タイトー 携帯電話機、画像保存プログラム
US8797335B2 (en) * 2009-06-05 2014-08-05 International Business Machines Corporation Platform agnostic screen capture tool
JP5589502B2 (ja) * 2010-03-30 2014-09-17 カシオ計算機株式会社 電子計算機及びプログラム
CN102253843A (zh) * 2010-05-21 2011-11-23 腾讯科技(深圳)有限公司 一种设置相框皮肤的方法和装置
US8701001B2 (en) * 2011-01-28 2014-04-15 International Business Machines Corporation Screen capture
US9558013B2 (en) * 2011-04-12 2017-01-31 Citrix Systems, Inc. Responsive scroller controls in server-hosted applications
CN102521020B (zh) * 2011-10-26 2014-05-21 华为终端有限公司 用于移动终端的应用屏幕截图方法和装置
US9256915B2 (en) 2012-01-27 2016-02-09 Qualcomm Incorporated Graphics processing unit buffer management
KR20140002355A (ko) * 2012-06-29 2014-01-08 삼성전기주식회사 인덕터 및 인덕터의 제조방법
CN103414751B (zh) * 2013-07-16 2016-08-17 广东工业大学 一种pc屏幕内容分享互动控制方法
CN103442071A (zh) * 2013-08-30 2013-12-11 华南理工大学 一种手机屏幕内容的实时分享方法
JP6011603B2 (ja) * 2014-12-10 2016-10-19 キヤノンマーケティングジャパン株式会社 情報処理装置、その制御方法、及びプログラム
CN104899039B (zh) * 2015-06-12 2018-12-25 百度在线网络技术(北京)有限公司 用于在终端设备上提供截屏服务的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130155086A1 (en) 2011-12-15 2013-06-20 Advance Micro Devices Method and apparatus for providing local screen data to a sink device
US20140022269A1 (en) 2012-07-18 2014-01-23 Tencent Technology (Shenzhen) Company Limited Method and device for obtaining screenshots from mobile terminals

Also Published As

Publication number Publication date
KR20170046714A (ko) 2017-05-02
JP6377263B2 (ja) 2018-08-22
US10338976B2 (en) 2019-07-02
WO2016197590A1 (zh) 2016-12-15
US20180081744A1 (en) 2018-03-22
EP3309676A4 (en) 2019-01-02
EP3309676B1 (en) 2022-05-04
JP2017534959A (ja) 2017-11-24
CN104899039B (zh) 2018-12-25
EP3309676A1 (en) 2018-04-18
CN104899039A (zh) 2015-09-09

Similar Documents

Publication Publication Date Title
KR101936839B1 (ko) 단말기 장치에서 스크린 캡처 서비스를 제공하는 방법, 장치, 저장 매체 및 기기
KR102445699B1 (ko) 전자 장치 및 그의 동작 방법
CN108496198B (zh) 一种图像处理方法及设备
US20190051147A1 (en) Remote control method, apparatus, terminal device, and computer readable storage medium
CN111694660B (zh) 云手机数据发送方法、计算机装置和存储介质
WO2019071618A1 (zh) 一种图像处理方法及设备
CN110955739B (zh) 标绘处理方法、共享图像标绘方法及标绘再现方法
KR20140132568A (ko) 움직이는 물체를 하나의 이미지에 합성하기 위한 장치 및 방법
CN106445479B (zh) 信息推送方法及装置
CN107315970B (zh) 一种敏感数据的交互方法及装置
JP2011205254A (ja) 情報端末及び画面表示方法
JP2023536365A (ja) ビデオ処理方法及び装置
US20160170945A1 (en) Information processing device, information processing method, and computer program product
CN104423950B (zh) 一种信息处理的方法及电子设备
US9721370B2 (en) Kinetic sequencer for IoT devices
CN110413616A (zh) 一种数据库undo表空间的备份方法与装置
JP7163453B2 (ja) コンピュータシステムおよびプログラム
US20180077218A1 (en) Remote operation method and remote operation device
CN111435545B (zh) 标绘处理方法、共享图像标绘方法及标绘再现方法
CN111427546B (zh) 页面事件的处理装置和方法以及电子设备
CN117891377A (zh) 显示方法和电子设备
JP2017157047A (ja) サーバシステム、クライアント装置及びプログラム
CN112416697A (zh) 一种信息处理、装置、终端及存储介质
CN113398581A (zh) 游戏画面显示方法、装置、电子设备及可读存储介质
JP2022103241A (ja) サーバシステム、クライアント装置及びプログラム

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