KR20150101277A - 터미널 서버에서의 화면프레임 전송방법 및 이를 이용하는 터미널 서버 - Google Patents

터미널 서버에서의 화면프레임 전송방법 및 이를 이용하는 터미널 서버 Download PDF

Info

Publication number
KR20150101277A
KR20150101277A KR1020140022800A KR20140022800A KR20150101277A KR 20150101277 A KR20150101277 A KR 20150101277A KR 1020140022800 A KR1020140022800 A KR 1020140022800A KR 20140022800 A KR20140022800 A KR 20140022800A KR 20150101277 A KR20150101277 A KR 20150101277A
Authority
KR
South Korea
Prior art keywords
block
moving picture
luminance difference
ratio
difference value
Prior art date
Application number
KR1020140022800A
Other languages
English (en)
Other versions
KR101556381B1 (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 KR1020140022800A priority Critical patent/KR101556381B1/ko
Publication of KR20150101277A publication Critical patent/KR20150101277A/ko
Application granted granted Critical
Publication of KR101556381B1 publication Critical patent/KR101556381B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 출원은 터미널 서버에서의 화면프레임 전송방법 및 이를 이용하는 터미널 서버에 관한 것으로서, 특히 본 발명의 일 실시예에 의한 터미널 서버는, 원격접속하는 사용자단말에게 터미널 서비스를 제공하며, 상기 사용자단말이 요청하는 화면정보를 실시간으로 전송하는 터미널 서버에 관한 것으로서, 상기 사용자단말이 요청하는 화면의 프레임을 복수개의 블록으로 분할하는 화면분할부; 상기 블록의 속성에 따라, 상기 블록을 기 설정된 복수개의 불록종류 중 어느 하나에 해당하는 것으로 구별하는 블록분류부; 상기 블록종류에 대응하는 각각의 압축알고리즘을 적용하여, 상기 블록을 압축하는 블록압축부; 및 상기 압축된 블록을 상기 사용자단말로 전송하는 통신부를 포함할 수 있다.

Description

터미널 서버에서의 화면프레임 전송방법 및 이를 이용하는 터미널 서버 {Method for transferring screen frames of a terminal server and terminal server using the same}
본 출원은 터미널 서버에서의 화면프레임 전송방법 및 이를 이용하는 터미널 서버에 관한 것으로서, 특히 고화질의 영상을 실시간으로 전송할 수 있는 터미널 서버에서의 화면프레임 전송방법 및 이를 이용하는 터미널 서버에 관한 것이다.
터미널 서버 기반 컴퓨팅 시스템이란, 터미널 클라이언트를 이용하여 터미널 서버에 원격 접속하여 터미널 서버의 리소스를 클라이언트에서 사용할 수 있도록 하는 시스템이다. 즉, 클라이언트 응용 프로그램이 터미널 서버에 설치되고, 터미널 서버의 응용 프로그램 실행 결과 화면만이 클라이언트 단말로 전송되어, 사용자 측면에서 모든 응용 프로그램이 클라이언트 단말에서 수행되고 있는 것처럼 보이게 하는 시스템이다.
클라이언트가 원격으로 터미널 서버에 접속하게 되면, 터미널 서버는 접속된 사용자 환경을 세션과 프로필로 구분하여 세션 간에 상호 간섭 없이 독립된 환경을 유지시키고, 클라이언트는 터미널 서버의 리소스를 사용할 수 있게 된다. 이러한 이유로 처음에는 터미널 서비스를 원격 서버 관리용으로 사용하였으나 최근에는 이를 응용하여 응용 프로그램을 서비스하는 형태로 발전해 왔다.
터미널 서버와 클라이언트 간에는 실제 데이터가 송수신 되는 것이 아니고 모든 작업은 터미널 서버에서 이루어지며 클라이언트로는 터미널 서버의 작업 결과값만이 비트맵 형태로 프레임이 나뉘어 전달된다. 모든 작업이 터미널 서버에서 이루어지기 때문에 응용 프로그램이 사용하는 CPU, 메모리 등은 터미널 서버의 자원을 사용하고, 클라이언트의 자원은 클라이언트의 구동에만 필요한 최소한의 자원이 사용된다.
이러한 터미널 서비스 환경에서 응용 프로그램 서비스를 사용하게 되면 100% 터미널 서버에서 작업이 이루어지므로 작업 데이터를 외부에 유출할 수 없기 때문에 보안이 매우 높은 장점이 있다.
공개특허공보 2010-0029380호 (2010.03.17)
본 출원은, 고화질의 영상을 실시간으로 전송할 수 있는 터미널 서버에서의 화면프레임 전송방법 및 이를 이용하는 터미널 서버을 제공하고자 한다.
본 발명의 일 실시예에 의한 터미널 서버는, 원격접속하는 사용자단말에게 터미널 서비스를 제공하며, 상기 사용자단말이 요청하는 화면정보를 실시간으로 전송하는 터미널 서버에 관한 것으로서, 상기 사용자단말이 요청하는 화면의 프레임을 복수개의 블록으로 분할하는 화면분할부; 상기 블록의 속성에 따라, 상기 블록을 기 설정된 복수개의 불록종류 중 어느 하나에 해당하는 것으로 구별하는 블록분류부; 상기 블록종류에 대응하는 각각의 압축알고리즘을 적용하여, 상기 블록을 압축하는 블록압축부; 및 상기 압축된 블록을 상기 사용자단말로 전송하는 통신부를 포함할 수 있다.
여기서 상기 블록분류부는, 상기 블록종류에 동영상블록, 텍스트블록 및 이미지블록을 포함할 수 있다.
여기서 상기 블록분류부는, 상기 블록에 포함되는 복수개의 픽셀 중에서, 상기 프레임의 변화에 따라 픽셀값이 변화하는 변화픽셀을 검출하고, 상기 변화픽셀을 이용하여 상기 동영상블록을 구별할 수 있다.
여기서 상기 블록분류부는, 이전 프레임에서의 픽셀값과 현재 프레임에서의 픽셀값을 비교하여 상기 블록에 포함된 상기 변화픽셀을 검출하고, 상기 블록에서 상기 변화픽셀이 연속적으로 검출되는 누적횟수가 기 설정된 임계횟수 이상이면 상기 블록을 상기 동영상블록으로 판별할 수 있다.
여기서 상기 블록분류부는, 상기 블록에 포함되는 복수개의 픽셀에 대하여, 각각 인접하는 픽셀들 사이의 휘도값 차이인 휘도차이값을 계산하여 상기 블록에 대한 휘도차이값 집합을 생성하고, 상기 휘도차이값 집합 중에서 상기 휘도차이값이 "0"인 비율이 기 설정된 텍스트비율 이상이면 상기 블록을 텍스트블록으로 판별하고, 상기 휘도차이값이 "0"인 비율이 기 설정된 이미지비율 미만이면 상기 블록을 이미지블록으로 판별할 수 있다.
여기서 상기 블록분류부는, 상기 휘도차이값이 "0"인 비율이 상기 이미지비율 이상 상기 텍스트비율 미만인 경우에는, 상기 휘도차이값 집합 중에서 기준값 이상의 크기를 가지는 휘도차이값이 차지하는 비율인 고주파비율을 계산하며, 상기 고주파비율이 임계비율 이상이면 상기 텍스트블록으로 판별하고, 상기 고주파비율이 상기 임계비율 미만이면 상기 이미지블록으로 판별할 수 있다.
여기서 상기 블록압축부는, 상기 텍스트블록에 대하여는 무손실압축을 적용하고, 상기 이미지블록에 대하여는 손실압축을 적용하며, 상기 동영상블록에 대하여는 동영상인코딩을 적용하여 압축할 수 있다.
본 발명의 일 실시예에 의한 프레임 압축방법은, 전송하고자 하는 화면의 프레임을 복수개의 블록으로 분할하는 프레임분할단계; 상기 블록의 속성에 따라, 상기 블록을 기 설정된 블록종류 중 어느 하나에 해당하는 것으로 구별하는 블록분류단계; 및 상기 블록종류에 대응하는 각각의 압축알고리즘을 적용하여, 상기 블록을 압축하는 블록압축단계를 포함할 수 있다.
여기서 상기 블록분류단계는, 상기 블록종류에 동영상블록, 텍스트블록 및 이미지블록을 포함할 수 있다.
여기서 상기 블록분류단계는, 상기 블록에 포함되는 복수개의 픽셀 중에서, 상기 프레임의 변화에 따라 픽셀값이 변화하는 변화픽셀을 검출하고, 상기 변화픽셀을 이용하여 상기 동영상블록을 구별하는 동영상구별단계; 및 상기 블록에 포함되는 픽셀에 대하여, 서로 인접하는 픽셀들 사이의 휘도값 차이인 휘도차이값을 계산하고, 상기 휘도차이값를 이용하여 상기 텍스트블록과 상기 이미지블록을 구별하는 텍스트구별단계를 더 포함할 수 있다.
여기서 상기 동영상구별단계는, 상기 블록에 포함된 복수개의 픽셀에 대하여 이전 프레임에서의 픽셀값과 현재 프레임에서의 픽셀값을 각각 비교하고, 상기 픽셀값의 비교를 통하여 상기 블록에 포함된 상기 변화픽셀을 검출하는 변화픽셀검출단계; 상기 프레임의 변화에 따라, 상기 블록에서 상기 변화픽셀이 연속적으로 검출되는 누적횟수를 계산하고, 상기 누적횟수가 기 설정된 임계횟수 이상이면 상기 블록을 동영상블록으로 판별하는 동영상블록구별단계; 및 상기 동영상블록을 결합하여 동영상영역으로 설정하는 동영상영역설정단계를 포함할 수 있다.
여기서 상기 동영상영역설정단계는, 현재 동영상영역이 이전 동영상영역보다 면적이 작거나 같으면, 현재 프레임과 이전프레임을 비교하여 변화픽셀을 포함하는 블록을 검출하고, 상기 검출된 블록을 결합하여 비교영역을 생성하는 단계; 상기 비교영역과 상기 현재 동영상영역을 비교하여, 상기 비교영역이 상기 현재 동영상영역과 일치하면, 상기 이전 동영상영역을 유지하는 단계; 상기 비교영역과 상기 현재 동영상영역을 비교하여, 상기 비교영역이 상기 현재 동영상영역과 상이하면, 상기 비교영역에 대한 상기 누적횟수를 산출하는 단계; 및 상기 누적횟수가 기 설정된 축소설정횟수보다 작으면, 상기 이전동영상영역을 유지하고, 상기 누적횟수가 기 설정된 축소설정횟수보다 크면 상기 현재 동영상영역으로 상기 이전 동영상영역을 대체하는 단계를 더 포함할 수 있다.
여기서 상기 동영상영역설정단계는, 현재 동영상영역이 이전 동영상영역보다 면적이 더 크면, 상기 이전 동영상영역을 상기 현재 동영상영역으로 대체할 수 있다.
여기서 상기 블록압축단계는, 상기 설정된 동영상영역에 포함되는 동영상블록에 대하여, 동영상인코딩을 적용하여 압축할 수 있다.
여기서 상기 텍스트구별단계는, 상기 블록에 포함된 픽셀에 대하여, 서로 인접하는 픽셀 사이의 휘도값의 차인 휘도차이값을 각각 계산하여, 휘도차이값 집합을 생성하는 휘도차이값계산단계; 및 상기 휘도차이값 집합 중에서, 상기 휘도차이값이 "0"인 비율이 기 설정된 텍스트비율 이상이면 상기 블록을 텍스트블록으로 판별하고, 상기 휘도차이값이 "0"인 비율이 기 설정된 이미지비율 미만이면 상기 블록을 이미지블록으로 판별하는 1차분류단계를 포함할 수 있다.
여기서, 상기 휘도차이값계산단계는, 상기 휘도차이값 집합 중에서 기 설정된 기준값 이상의 휘도차이값이 차지하는 비율인 고주파비율을 더 계산할 수 있으며, 본 발명의 일 실시예에 의한 프레임 압축방법은, 상기 휘도차이값이 "0"인 비율이 상기 이미지비율 이상 상기 텍스트비율 미만인 경우에는, 상기 고주파비율을 이용하여 상기 텍스트블록과 상기 이미지블록을 구별하는 2차분류단계를 더 포함할 수 있다.
여기서 상기 2차분류단계는, 상기 고주파비율이 기 설정된 임계비율 이상이면 상기 텍스트블록으로 판별하고, 상기 고주파비율이 상기 임계비율 미만이면 상기 이미지블록으로 판별할 수 있다.
여기서 상기 텍스트구별단계는, 상기 블록에 포함된 픽셀의 픽셀값을 RGB 데이터에서 YUV 데이터로 변환하는 픽셀값 변환단계를 더 포함할 수 있다.
여기서 상기 블록압축단계는, 상기 텍스트블록에 대하여 무손실압축을 적용하고, 상기 이미지블록에 대하여는 손실압축을 적용하여 압축할 수 있다.
여기서 본 발명의 일 실시예에 의한 프레임 압축방법은, 상기 생성한 압축 블록을 전송하는 전송단계를 더 포함할 수 있다.
본 발명의 일 실시예에 의한 터미널 서버에서의 화면프레임 전송방법은, 원격접속하는 사용자단말에 대하여 터미널 서비스를 제공하는 터미널 서버에서의 화면프레임 전송방법에 관한 것으로서, 상기 사용자단말이 요청하는 화면의 프레임을 복수개의 블록으로 분할하는 프레임분할단계; 상기 블록의 속성에 따라, 상기 블록을 기 설정된 블록종류 중 어느 하나에 해당하는 것으로 구별하는 블록분류단계; 상기 블록종류에 대응하는 각각의 압축알고리즘을 적용하여, 상기 블록을 압축하는 블록압축단계; 및 상기 각각의 압축알고리즘에 따라 압축된 블록을, 상기 사용자단말로 전송하는 블록전송단계를 포함할 수 있다.
본 발명이 일 실시예에 의하면, 상술한 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체가 있을 수 있다.
덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 의한 터미널 서버에서의 화면프레임 전송방법 및 이를 이용하는 터미널 서버에 의하면, 화면프레임에 포함된 각각의 텍스트영역, 이미지영역, 동영상영역을 구별한 후, 각각에 대하여 최적화된 압축알고리즘으로 압축하여 전송하므로, 화면프레임의 화질열화를 방지하면서도 고화질의 화면을 실시간으로 전송할 수 있다. 또한, 화면프레임의 전송효율을 높일 수 있다.
도1은 본 발명의 일 실시예에 의한 터미널 서버를 나타내는 개략도이다.
도2 및 도3은 본 발명의 일 실시예에 의한 프레임 압축방법을 나타내는 순서도이다.
도4는 본 발명의 일 실시예에 의한 터미널 서버에서의 화면프레임 전송방법을 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
도1은 본 발명의 일 실시예에 의한 터미널 서버와 사용자단말 사이의 터미널 서비스를 나타내는 개략도이다.
도1을 참조하면 본 발명의 일 실시예에 의한 터미널 서버(100)는, 화면분할부(110), 블록분류부(120), 블록압축부(130) 및 통신부(140)를 포함할 수 있다.
이하, 도1을 참조하여 본 발명의 일 실시예에 의한 터미널 서버를 설명한다.
본 발명의 일 실시예에 의한 터미널 서버(100)는, 사용자 단말(200)과 네트워크를 통해 연결될 수 있으며, 상기 네트워크는 전용선, 이동통신망 및 유선 공중망 등을 포괄할 수 있다. 사용자는 사용자 단말(200)을 이용하여 터미널 서버(100)에 접속할 수 있으며, 상기 터미널 서버(100)는 사용자단말(200)에 대하여 터미널 서비스를 제공할 수 있다. 예를들어, 터미널 서버(100)는 사용자의 입력에 따라 응용 프로그램을 수행하여 응용 프로그램 실행 결과를 사용자 단말(200)로 전송할 수 있으며, 사용자 단말(200)은 상기 터미널 서버(100)로부터 수신된 응용 프로그램 실행 결과 화면을 출력할 수 있다.
즉, 도 1에 도시한 바와 같이, 사용자 단말(200)의 터미널 클라이언트(210)가 터미널 서버(100)로 접속해오면, 상기 터미널 서버(100)는 상기 사용자 단말(200)에 대하여 독립된 터미널 세션을 생성하고, 가상 화면(150)을 터미널 클라이언트(210)로 전송할 수 있다. 이후, 사용자는 터미널 클라이언트(210)를 통해 표시되는 상기 가상 화면(150)을 통하여 응용 프로그램에 대한 실행명령을 입력할 수 있으며, 상기 입력에 대응하는 입력신호는 네트워크를 통해 터미널 서버(100)로 전달될 수 있다. 따라서, 상기 터미널 서버(100)는 터미널 세션에서 사용자가 선택한 응용 프로그램을 실행하고, 응용프로그램의 실행 결과 화면을 전송할 수 있다. 특히, 상기 터미널 서버(100)는 실시간으로 터미널 서비스를 제공하기 위하여, 상기 가상화면(150)의 프레임을 기 설정된 전송속도로 상기 사용자단말(200)에 전송하므로, 사용자는 실시간으로 터미널 서버(100)를 직접 사용하는 것과 같은 효과를 얻을 수 있다.
종래에는, 상기 터미널 서버(100)의 가상화면(150)을 실시간으로 전송할 때, 상기 가상화면(150)의 개별프레임에 해당하는 전체 이미지를 특정한 압축알고리즘으로 압축하여 전송하거나, 상기 가상화면(150)을 동영상으로 인코딩하여 전송하는 방식을 채택하였다. 다만, 가상화면(150)을 압축하는 압축알고리즘의 선택에 있어서, 손실압축의 경우에는 압축시 전송하고자 하는 가상화면(150)이 열화될 수 있으며, 무손실 압축의 경우에는 압축 효율이 떨어지고 전송시 통신부하가 높아지는 등의 문제가 있다. 또한, 가상화면(150)을 동영상으로 인코딩하여 전송하는 경우에는 높은 압축효율을 얻을 수 있으나, 상기 가상화면(150)이 정지화면에 해당하는 경우에도 주기적으로 일정한 크기의 패킷이 발생하는 등의 문제가 있다.
반면에, 본 발명의 일 실시예에 의한 터미널 서버(100)에 의하면, 가상화면(150)을 전송할 때, 상기 가상화면(150)을 각각의 텍스트영역(a), 이미지영역(b) 및 동영상영역(c)을 구별한 후, 각각에 대하여 최적화된 압축알고리즘으로 압축하여 전송하는 것이 가능하다. 즉, 본 발명의 일 실시예에 의한 터미널 서버(100)에 의하면, 가상화면(150)의 화질열화를 방지하면서도 고화질의 화면을 실시간으로 전송할 수 있으며, 상기 화면의 전송효율을 높일 수 있는 효과를 얻을 수 있다.
구체적으로, 본 발명의 일 실시예에 의한 터미널 서버(100)는, 화면분할부(110)를 이용하여 사용자단말(200)이 요청하는 화면의 프레임을 복수개의 블록으로 분할할 수 있다. 즉, 상기 화면분할부(110)는 상기 가상화면(150)에 대한 화면정보를 제공받을 수 있으며, 상기 제공받은 화면정보를 바탕으로, 상기 가상화면(150)의 개별적인 프레임을 각각 복수개의 블록을 분할할 수 있다. 예를들어, 상기 화면분할부(110)는 상기 가상화면(150)에 대응하는 각각의 픽셀들의 좌표정보를 이용하여 상기 블록을 균등한 크기로 나눌 수 있으며, 실시예에 따라서는, 상기 가상화면(150) 중심부를 더 조밀하게 분할하여 많은 수의 블록을 가지도록 할 수 있다. 즉, 가상화면(150)의 중심부에 더 많은 블록이 위치하도록 하여, 상기 중심부에 주로 위치하는 각각의 텍스트나 이미지, 동영상 등에 대한 경계면을 보다 세밀하게 구분할 수 있다. 여기서, 상기 화면정보에는, 상기 가상화면(150)을 구현하기 위하여 각각의 픽셀이 가져야하는 픽셀값이 설정될 수 있으며, 상기 픽셀값은 RGB 데이터 또는 YUV 데이터에 해당할 수 있다.
블록분류부(120)는, 상기 화면분할부(110)에서 분할한 각각의 블록에 대하여, 블록의 속성에 따라 상기 블록을 기 설정된 복수개의 블록종류 중 어느 하나에 해당하는 것으로 구별할 수 있다. 상기 블록은 각각의 속성 등에 따라 다양한 블록종류로 나눌 수 있으나, 여기서는 동영상블록, 텍스트블록 및 이미지블록으로 구별하는 경우를 예로들어 설명한다.
먼저, 상기 블록분류부(120)는 상기 복수개의 블록 중에서 동영상블록을 구별할 수 있다. 구체적으로, 텍스트블록이나 이미지블록의 경우에는 프레임의 변화에 불구하고 블록 내부의 픽셀값은 변화하지 않지만, 동영상블록의 경우에는 프레임의 변화에 따라 상기 동영상블록 내에 포함된 픽셀의 픽셀값이 변화하는 특징이 있다. 따라서, 상기 블록분류부(120)는, 상기 블록에 포함되는 복수개의 픽셀 중에서, 상기 프레임의 변화에 따라 픽셀값이 변화하는 변화픽셀을 검출한 후, 상기 변화픽셀을 포함하는 블록을 상기 동영상블록으로 판별할 수 있다. 반면에, 상기 변화픽셀을 포함하지 않는 블록에 대하여는, 텍스트블록 또는 이미지블록 중 어느 하나에 해당하는 것으로 판별할 수 있다.
구체적으로, 상기 블록분류부(120)는, 이전 프레임과 현재 프레임에서 픽셀들이 가지는 각각의 픽셀값을 비교하는 방식으로, 상기 변화픽셀을 검출할 수 있다. 즉, 이전 프레임에서의 픽셀값과 현재 프레임에서의 픽셀값을 서로 비교하여, 상기 픽셀값의 변화가 발생한 픽셀을 상기 변화픽셀로 도출할 수 있다. 한편, 상기 블록분류부(120)는, 상기 변화픽셀이 검출되면 상기 블록에서 상기 변화픽셀이 연속적으로 검출되는 누적횟수를 카운팅할 수 있으며, 상기 카운팅한 누적횟수가 기 설정된 임계횟수 이상인 경우에 한하여 상기 블록을 상기 동영상블록으로 판별할 수 있다. 즉, 동영상은 연속되는 프레임에서 지속적으로 픽셀값을 변화시키는 특징이 있으므로, 상기 블록의 연속되는 프레임에서 변화픽셀이 지속적으로 검출되는지 여부를 확인하여, 상기 동영상블록에 해당하는 지 여부를 판별하도록 할 수 있다. 여기서, 상기 블록에 포함된 픽셀 중에서 하나라도 상기 변화픽셀로 검출되면 상기 누적횟수를 증가시킬 수 있으나, 실시예에 따라서는 상기 블록에 포함된 상기 변화픽셀의 비율이 기 설정된 비율 이상인 경우에 상기 누적횟수를 카운팅하는 것도 가능하다.
추가적으로, 상기 블록분류부(120)는 현재 프레임 상에서 동영상블록으로 판별된 블록을 합산하여 현재 동영상영역을 생성할 수 있으며, 상기 현재 동영상영역의 크기를 이전 동영상영역의 크기와 비교하여, 인코딩 등의 압축을 적용할 영역을 설정할 수 있다. 동영상의 경우에는, 한번 설정한 영역에 대한 인코딩을 지속적으로 유지하는 것이 효과적이므로, 상기 동영상영역의 크기변화에 대응하여 인코딩을 최대한 유지할 필요가 있다.
따라서, 현재 동영상영역이 이전 동영상영역보다 면적이 작거나 같은 경우에는, 현재 프레임과 이전 프레임을 비교하여 변화픽셀을 포함하는 블록을 검출할 수 있으며, 상기 검출된 블록을 결합하여 비교영역을 생성할 수 있다. 이후, 상기 블록분류부(120)는 상기 비교영역과 현재 동영상영역을 비교하여, 상기 비교영역이 상기 현재 동영상영역과 일치하면, 상기 이전 동영상영역을 유지할 수 있다. 반면에, 상기 비교영역과 현재 동영상영역이 상이한 경우에는, 상기 비교영역에 대한 누적횟수를 산출할 수 있다. 여기서 산출한 누적횟수가 기 설정된 축소설정횟수보다 작으면 상기 이전동영상영역을 유지할 수 있으며, 상기 누적횟수가 기 설정된 축소설정횟수보다 큰 경우에는 상기 현재 동영상영역으로 이전 동영상영역을 대체할 수 있다.
한편, 현재 동영상영역이 이전 동영상영역보다 면적이 더 큰 경우에는, 현재 동영상영역으로 이전 동영상영역을 대체할 수 있다.
상술한 바와 같이 상기 동영상블록에 대한 판별이 완료되면, 상기 블록분류부(120)는, 상기 동영상블록으로 판별된 블록 이외의 블록에 대하여, 텍스트블록 또는 이미지블록 중 어느 것에 해당하는지 여부를 판별할 수 있다. 먼저, 상기 블록분류부(120)는, 상기 블록에 포함되는 복수개의 픽셀에 대하여, 각각 인접하는 픽셀들 사이의 휘도값 차이인 휘도차이값을 계산할 수 있으며, 상기 휘도차이값를 이용하여 상기 블록에 대한 휘도차이값 집합을 생성할 수 있다. 구체적으로, 상기 블록분류부(120)는 각각의 픽셀에 대하여 인접하는 픽셀과의 휘도차이값을 계산할 수 있으며, 상기 각각의 픽셀에 대하여 계산한 휘도차이값의 집합을 상기 휘도차이값 집합으로 할 수 있다. 여기서 "인접하는 픽셀"은 상기 픽셀과 적어도 하나 이상의 접점을 포함하는 픽셀을 의미할 수 있다. 따라서, 상기 픽셀에 대한 휘도차이값은 실시예에 따라 달리 계산하는 것이 가능하다. 예를들어, 상기 블록에 포함되는 특정픽셀의 휘도값과 상기 특정픽셀의 좌측에 위치하는 픽셀의 휘도값의 차를 계산하여 이를 상기 특정픽셀의 휘도차이값으로 하거나, 특정 픽셀과 상기 특정 픽셀의 상하, 좌우, 양대각선의 8방향에서 각각 접하는 8개의 픽셀과의 휘도값의 차를 구한 후, 이의 평균값을 구하여 상기 특정필셀의 휘도차이값으로 하는 것도 가능하다. 이외에도, 다양한 방식으로 상기 휘도차이값을 구하여 상기 휘도차이값 집합을 생성하는 것이 가능하며, 인접하지 않은 픽셀과의 휘도값의 차이를 포함하여 계산하는 것도 가능하다. 여기서, 상기 픽셀의 휘도값은 각각의 픽셀값에 대응하는 RGB 데이터를 변환한 YUV 데이터로부터 추출할 수 있다.
상기 블록에 대한 휘도차이값 집합을 계산한 이후에는, 상기 휘도차이값 집합 중에서 상기 휘도차이값이 "0"인 비율을 이용하여, 상기 텍스트블록과 이미지블록을 구별할 수 있다. 일반적으로, 텍스트영역에서는 휘도의 변화가 연속적으로 발생하지 않고, 단속적으로 나타난다. 예를들어, 픽셀의 휘도값은 0 ~ 255 사이의 값으로 표현될 수 있으며, 0에서 255로 점차 커질수록 어두운 것을 나타낼 수 있다. 이 경우, 상기 텍스트의 경우에는 문자부분은 255로 표현되고 여백부분은 0으로 표현될 수 있다. 반면에, 이미지의 경우에는 이미지의 종류에 따라 달라질수는 있지만, 일반적으로 휘도값이 연속적인 분포를 가지게 된다. 따라서, 휘도차이값이 "0"인 비율이 높다는 것은 동일한 휘도를 가지는 픽셀의 영역이 많다는 것을 의미하고 이는 텍스트의 특징에 해당한다. 반면에, 이미지의 경우에는 휘도가 연속적으로 분포하므로, 휘도차이값이 "0"인 비율은 높지 않게 나타날 수 있다. 따라서, 상기 휘도차이값이 "0"인 비율이 기 설정된 텍스트비율 이상인 블록에 대하여는, 상기 블록을 텍스트블록으로 판별하고, 상기 휘도차이값이 "0"인 비율이 기 설정된 이미지비율 미만인 경우에는 상기 블록을 이미지 블록으로 판별하는 것이 가능하다. 여기서, 상기 텍스트비율 및 이미지비율은 각각 경험적으로 설정할 수 있다.
다만, 상기 휘도차이값이 "0"인 비율이 상기 이미지비율 이상 상기 텍스트비율 미만인 경우가 있을 수 있으며, 이 경우에는 다른 기준을 이용하여 상기 텍스트블록과 이미지블록을 구별하도록 할 수 있다. 구체적으로, 블록분류부(120)는, 상기 휘도차이값 집합 중에서 기준값 이상의 크기를 가지는 휘도차이값이 차지하는 비율인 고주파비율을 계산할 수 있다. 앞서 살핀 바와 같이, 텍스트의 경우에는 일반적으로 0 또는 255의 휘도값을 가지므로, 상기 휘도차이값는 0 또는 255를 가질 수 있다. 반면에, 이미지의 경우에는 연속적인 휘도값을 가지므로, 상기 휘도차이값은 255보다는 낮은 값을 가지는 경우가 대부분에 해당한다. 따라서, 상기 휘도차이값이 "0"인 비율만으로 상기 텍스트와 이미지를 구별할 수 없는 경우에는, 상기 휘도차이값이 기준값 이상인 휘도차이값이 차지하는 비율인 고주파비율을 이용하여, 상기 이미지블록과 텍스트블록을 구별할 수 있다. 즉, 상기 고주파비율이 임계비율 이상이면 상기 텍스트블록으로 판별하고, 상기 고주파비율이 상기 임계비율 미만이면 상기 이미지블록으로 판별할 수 있다.
여기서, 상기 텍스트블록과 이미지블록의 구별은 상기 동영상블록의 구별과 동시에 또는 먼저 수행할 수 있으며, 상기 고주파비율도 상기 휘도차이값이 "0"인 비율을 계산할 때 미리 계산해 둘 수 있다.
블록압축부(130)는, 상기 블록종류에 대응하는 각각의 압축알고리즘을 적용하여, 상기 블록을 압축할 수 있다. 상술한 바와 같이, 상기 블록분류부(120)에서 각각의 블록을 분류하면, 상기 블록압축부(130)에서는 상기 각각의 블록의 종류에 따라 상기 블록을 압축할 수 있다. 구체적으로, 압축효율이 좋은 텍스트블록에 대하여는 무손실압축을 적용하여 화질의 열화를 방지할 수 있으며, 이미지에 대하여는 손실압축방식을 적용하여 압축효율이 떨어지는 문제점을 해결할 수 있다. 또한, 동영상블록에 대하여는 인코딩을 이용하여 압축함으로써 전송효율을 최대한 높일 수 있다.
통신부(140)에서는, 상기 압축된 블록을 상기 사용자단말(200)로 전송할 수 있다. 앞서 살핀 바와 같이, 터미널서버(100)는 사용자단말(200)과 네트워크 등으로 연결되어 있으므로, 상기 통신부(140)는 상기 네트워크에 대응하는 통신방식으로 상기 사용자단말(200)과 통신을 수행할 수 있다. 특히, 상기 통신부(140)는 각각의 텍스트영역(a), 동영상영역(b), 이미지영역(c)을 구별하여 전송하므로, 각각의 영역에 해당하는 압축방식과, 각각의 영역이 위치하는 좌표정보 등을 포함하여 상기 사용자단말(200)에 전송할 수 있다. 이 경우, 상기 사용자단말(200)은 상기 좌표정보 및 압축타입 등을 이용하여, 용이하게 상기 가상화면(150)을 상기 사용자단말(200)의 디스플레이부에 출력할 수 있다.
도2 및 도3은 본 발명의 일 실시예에 의한 프레임 압축방법을 나타내는 순서도이다.
도2 및 도3을 참조하면, 본 발명의 일 실시예에 의한 프레임 압축방법은, 프레임분할단계(S100), 블록분류단계(S200) 및 블록압축단계(S300)를 포함할 수 있다.
이하, 도2 및 도3을 참조하여, 본 발명의 일 실시예에 의한 프레임 압축방법을 설명한다.
프레임분할단계(S100)는, 전송하고자 하는 화면의 프레임을 복수개의 블록으로 분할할 수 있다. 구체적으로, 상기 화면에 포함되는 각각의 픽셀들의 좌표정보를 이용하여 상기 화면을 분할할 수 있으며, 상기 분할된 화면 각각을 상기 블록으로 할 수 있다. 예를들어, 프레임분할단계(S100)에서는 상기 화면을 격자형태로 분할하여 직사각형 형태의 블록을 생성하는 등 다양한 방법으로 상기 화면을 분할하여 복수개의 블록을 생성할 수 있다. 여기서, 상기 블록의 크기는 동일하게 할 수 있으나, 실시예에 따라서는 상기 블록의 크기를 상이하게 하는 것도 가능하다. 예를들어, 화면의 중심부에 대하여는 블록의 크기를 작게하여 많은 수의 블록이 포함되도록 할 수 있으며, 이 경우 화면의 중심부에 주로 위치하는 각각의 텍스트나, 이미지, 동영상 등에 대한 경계면을 보다 세밀하게 구분하는 것이 가능하다.
불록분류단계(S200)에서는, 상기 블록의 속성에 따라 상기 블록을 기 설정된 블록종류 중 어느 하나에 해당하는 것으로 구별할 수 있으며, 상기 블록종류에는 동영상블록, 텍스트블록 및 이미지블록을 포함할 수 있다. 여기서, 상기 블록분류단계(S200)는, 도3에 도시한 바와 같이, 동영상구별단계(S210) 및 텍스트구별단계(S220)를 포함할 수 있다. 다만, 도3과 달리, 텍스트구별단계(S220)를 먼저 수행한 후 동영상구별단계(S210)를 수행하거나, 동영상구별단계(S210)와 텍스트구별단계(S220)를 동시에 수행하는 실시예도 가능하다.
동영상구별단계(S210)는, 상기 블록에 포함되는 복수개의 픽셀 중에서, 상기 프레임의 변화에 따라 픽셀값이 변화하는 변화픽셀을 검출하고, 상기 변화픽셀을 이용하여 상기 동영상블록을 구별할 수 있다. 즉, 텍스트블록이나 이미지블록의 경우에는 프레임의 변화에 불구하고 블록 내부의 픽셀값은 변화하지 않지만, 동영상블록의 경우에는 프레임의 변화에 따라 상기 동영상 블록 내에 포함된 픽셀의 픽셀값이 변화하는 특징이 있다. 따라서, 상기 동영상구별단계(S210)에서는 상기 변화픽셀을 검출할 수 있으며, 상기 변화픽셀을 이용하여, 상기 동영상블록에 해당하는지 여부를 판별할 수 있다.
구체적으로, 동영상구별단계(S210)는, 도3에 도시한 바와 같이, 변화픽셀검출단계(S211), 동영상블록구별단계(S212) 및 동영상영역설정단계(S213)를 포함할 수 있다.
즉, 변화픽셀검출단계(S211)에서는 먼저 상기 블록에 포함된 복수개의 픽셀에 대하여 이전 프레임에서의 픽셀값과 현재 프레임에서의 픽셀값을 각각 비교할 수 있으며, 상기 픽셀값의 비교를 통하여 상기 블록에 포함된 상기 변화픽셀을 검출할 수 있다. 이후, 동영상블록구별단계(S212)에서는 상기 프레임의 변화에 따라 상기 블록에서 상기 변화픽셀이 연속적으로 검출되는 누적횟수를 계산할 수 있으며, 상기 누적횟수가 기 설정된 임계횟수 이상인 경우에 한하여 상기 블록을 동영상블록으로 판별할 수 있다. 앞서 살핀 바와 같이, 동영상은 연속되는 프레임에서 지속적으로 픽셀값을 변화시키는 특징이 있으므로, 한 두 프레임에서 변화픽셀이 검출된 경우에는 상기 동영상블록으로 설정하지 않고, 임계횟수 이상 변화픽셀이 검출되는 경우에 한하여 상기 동영상블록으로 설정하도록 할 수 있다. 이후, 상기 동영상블록으로 설정되면, 동영상영역설정단계(S213)에서는 상기 동영상블록들을 서로 결합할 수 있으며, 상기 결합된 동영상블록을 동영상영역으로 설정할 수 있다.
추가적으로, 동영상영역설정단계(S213)에서는 상기 동영상영역의 확장이나 축소에 대응하여 실제 인코딩을 수행하는 영역을 결정할 수 있다. 즉, 동영상의 경우에는, 한번 설정한 영역에 대한 인코딩을 지속적으로 유지하는 것이 효과적이므로, 상기 동영상영역의 크기변화에 대응하여 인코딩을 최대한 유지할 필요가 있다. 따라서, 상기 동영상영역설정단계(S213)에서는, 현재 동영상영역이 이전 동영상영역보다 면적이 작거나 같으면, 현재 프레임과 이전프레임을 비교하여 변화픽셀을 포함하는 블록을 검출할 수 있으며, 상기 검출된 블록을 결합하여 비교영역을 생성할 수 있다. 이후, 상기 비교영역과 상기 현재 동영상영역을 비교하여, 상기 비교영역이 상기 현재 동영상영역과 일치하면, 상기 이전 동영상영역을 유지할 수 있다. 반면에, 상기 비교영역이 상기 현재 동영상영역과 상이하면, 상기 비교영역에 대한 상기 누적횟수를 산출할 수 있다. 여기서, 상기 누적횟수가 기 설정된 축소설정횟수보다 작으면, 상기 이전동영상영역을 유지할 수 있으며, 상기 누적횟수가 기 설정된 축소설정횟수보다 크면 상기 현재 동영상영역으로 상기 이전 동영상영역을 대체할 수 있다. 한편, 현재 동영상영역이 이전 동영상영역보다 면적이 더 큰 경우에는, 상기 이전 동영상영역을 상기 현재 동영상영역으로 대체할 수 있다.
상기 동영상블록에 대한 판별이 완료되면, 상기 동영상블록으로 판별된 블록 이외의 블록에 대하여, 텍스트블록 또는 이미지블록 중 어느 것에 해당하는지 여부를 판별할 수 있다. 즉, 텍스트구별단계(S220)를 통하여, 상기 블록에 포함되는 픽셀에 대하여, 서로 인접하는 픽셀들 사이의 휘도값 차이인 휘도차이값을 계산하고, 상기 휘도차이값를 이용하여 상기 텍스트블록과 상기 이미지블록을 구별할 수 있다. 구체적으로, 도3에 도시한 바와 같이, 상기 텍스트구별단계(S220)는 휘도차이값계산단계(S221), 1차분류단계(S222) 및 2차분류단계(S223)을 포함할 수 있다.
먼저, 휘도차이값계산단계(S221)에서는 상기 블록에 포함된 픽셀에 대하여, 서로 인접하는 픽셀 사이의 휘도값의 차인 휘도차이값을 각각 계산하여, 휘도차이값 집합을 생성할 수 있다. 즉, 상기 블록에 포함된 각각의 픽셀에 대하여 인접하는 픽셀과의 휘도차이값을 계산할 수 있으며, 상기 각각의 픽셀에 대하여 계산한 휘도차이값의 집합을 상기 휘도차이값 집합으로 할 수 있다. 여기서 "인접하는 픽셀"은 상기 픽셀과 적어도 하나 이상의 접점을 포함하는 픽셀을 의미할 수 있으며, 상기 픽셀에 대한 휘도차이값은 실시예에 따라 달리 계산할 수 있다. 예를들어, 상기 블록에 포함되는 특정픽셀의 휘도값과 상기 특정픽셀의 좌측에 위치하는 픽셀의 휘도값의 차를 계산하여 이를 상기 특정픽셀의 휘도차이값으로 하거나, 특정 픽셀과 상기 특정 픽셀의 상하, 좌우, 양대각선의 8방향에서 각각 접하는 8개의 픽셀과의 휘도값의 차를 구한 후, 이의 평균값을 구하여 상기 특정픽셀의 휘도차이값으로 하는 것도 가능하다. 이외에도, 다양한 방식으로 상기 휘도차이값을 구하여 상기 휘도차이값 집합을 생성하는 것이 가능하며, 인접하지 않은 픽셀과의 휘도값의 차이를 포함하여 계산하는 것도 가능하다. 여기서, 상기 픽셀의 휘도값은 각각의 픽셀값에 대응하는 RGB 데이터를 변환한 YUV 데이터로부터 추출할 수 있다.
이후, 1차분류단계(S222)에서는, 상기 휘도차이값 집합 중에서, 상기 휘도차이값이 "0"인 비율이 기 설정된 텍스트비율 이상이면 상기 블록을 텍스트블록으로 판별하고, 상기 휘도차이값이 "0"인 비율이 기 설정된 이미지비율 미만이면 상기 블록을 이미지블록으로 판별할 수 있다. 일반적으로, 텍스트영역에서는 휘도의 변화가 연속적으로 발생하지 않고, 단속적으로 나타날 수 있다. 예를들어, 픽셀의 휘도값이 0 ~ 255 사이의 값으로 표현되고, 0에서 255로 점차 커질수록 어두운 것을 나타낸다면, 텍스트의 경우에는 문자부분을 255로 표현하고 여백부분은 0으로 표현할 수 있다. 반면에, 이미지의 경우에는 이미지의 종류에 따라 달라질수는 있지만, 일반적으로 휘도값이 연속적인 분포를 가지게 된다. 여기서, 휘도차이값이 "0"인 비율이 높다는 것은 동일한 휘도를 가지는 픽셀의 영역이 많다는 것을 의미하고 이는 텍스트의 특징에 해당한다. 반면에, 이미지의 경우에는 휘도가 연속적으로 분포하므로, 휘도차이값이 "0"인 비율은 높지 않게 나타날 수 있다. 따라서, 상기 휘도차이값이 "0"인 비율이 기 설정된 텍스트비율 이상인 블록에 대하여는, 상기 블록을 텍스트블록으로 판별할 수 있으며, 상기 휘도차이값이 "0"인 비율이 기 설정된 이미지비율 미만인 경우에는 상기 블록을 이미지 블록으로 판별할 수 있다. 여기서, 상기 텍스트비율 및 이미지비율은 각각 경험적으로 설정할 수 있다.
다만, 상기 휘도차이값이 "0"인 비율이 상기 이미지비율 이상 상기 텍스트비율 미만인 경우도 있을 수 있으며, 이 경우에는 다른 기준을 이용하여 상기 텍스트블록과 이미지블록을 구별할 수 있다. 구체적으로, 2차분류단계(S223)에서는 상기 휘도차이값 집합 중에서 기준값 이상의 크기를 가지는 휘도차이값이 차지하는 비율인 고주파비율을 계산할 수 있다. 앞서 살핀 바와 같이, 텍스트의 경우에는 일반적으로 0 또는 255의 휘도값을 가지므로, 상기 휘도차이값는 0 또는 255를 가질 수 있다. 반면에, 이미지의 경우에는 연속적인 휘도값을 가지므로, 상기 휘도차이값은 255보다는 낮은 값을 가지는 경우가 대부분에 해당한다. 따라서, 상기 휘도차이값이 "0"인 비율만으로 상기 텍스트와 이미지를 구별할 수 없는 경우에는, 상기 휘도차이값이 기준값 이상인 휘도차이값이 차지하는 비율인 고주파비율을 이용하여, 상기 이미지블록과 텍스트블록을 구별할 수 있다. 즉, 상기 고주파비율이 임계비율 이상이면 상기 텍스트블록으로 판별하고, 상기 고주파비율이 상기 임계비율 미만이면 상기 이미지블록으로 판별할 수 있다. 한편, 상기 고주파비율의 계산은 상기 2분류단계(S223) 대신에, 상기 휘도차이값계산단계(S221)에서 상기 휘도차이값 집합 중에서 기 설정된 기준값 이상의 휘도차이값이 차지하는 비율인 고주파비율을 미리 계산할 수 있다. 이후, 2차분류단계(S223)를 통하여, 상기 휘도차이값이 "0"인 비율이 상기 이미지비율 이상 상기 텍스트비율 미만인 경우에는, 상기 고주파비율을 이용하여 상기 텍스트블록과 상기 이미지블록을 구별할 수 있다. 즉, 상기 2차분류단계(S223)에서는, 상기 고주파비율이 기 설정된 임계비율 이상이면 상기 텍스트블록으로 판별하고, 상기 고주파비율이 상기 임계비율 미만이면 상기 이미지블록으로 판별할 수 있다.
블록압축단계(S300)는, 상기 블록종류에 대응하는 각각의 압축알고리즘을 적용하여, 상기 블록을 압축할 수 있다. 상술한 바와 같이, 상기 각각의 블록을 분류한 후, 상기 각각의 블록의 종류에 따라 상기 블록을 압축할 수 있다. 구체적으로, 압축효율이 좋은 텍스트블록에 대하여는 무손실압축을 적용하여 화질의 열화를 방지할 수 있으며, 이미지에 대하여는 손실압축방식을 적용하여 압축효율이 떨어지는 문제점을 해결할 수 있다. 또한, 동영상블록에 대하여는 인코딩을 이용하여 압축함으로써 전송효율을 최대한 높일 수 있다.
추가적으로, 본 발명의 일 실시예에 의한 프레임 압축방법은, 상기 생성한 압축 블록을 전송하는 전송단계를 더 포함할 수 있다. 예를들어, 통신부 등의 구성을 이용하여 상기 압축된 블록을 전송할 수 있으며, 상기 통신부가 지원하는 통신방식에 따라 상기 압축된 블록을 전송할 수 있다. 특히, 각각의 텍스트영역, 동영상영역, 이미지영역을 구별하여 전송하므로, 각각의 영역에 해당하는 압축방식과, 각각의 영역이 위치하는 좌표정보 등을 포함하여 전송할 수 있다.
상술한 프레임 압축방법은, 다양한 분야에서 활용될 수 있으며, 특히 터미널 서비스를 제공하는 터미널 서버가 상기 터미널 서버의 화면을 사용자단말에 전송할 때 활용할 수 있다.
도4는 본 발명의 일 실시예에 의한 터미널 서버에서의 화면프레임 전송방법을 나타내는 순서도이다.
도4를 참조하면, 본 발명의 일 실시예에 의한 터미널 서버에서의 화면프레임전송방법은, 프레임분할단계(S10), 블록분류단계(S20), 블록압축단계(S30) 및 블록전송단계(S40)를 포함할 수 있다.
이하, 도4를 참조하여 본 발명의 일 실시예에 의한 터미널 서버에서의 화면프레임 전송방법을 설명한다.
프레임분할단계(S10)는, 상기 사용자단말이 요청하는 화면의 프레임을 복수개의 블록으로 분할할 수 있다. 구체적으로, 상기 화면에 포함되는 각각의 픽셀들의 좌표정보를 이용하여 상기 화면을 분할할 수 있으며, 상기 분할된 화면 각각을 상기 블록으로 할 수 있다. 예를들어, 프레임분할단계(S10)에서는 상기 화면을 격자형태로 분할하여 직사각형 형태의 블록을 생성하는 등 다양한 방법으로 상기 화면을 분할하여 복수개의 블록을 생성할 수 있다. 여기서, 상기 블록의 크기는 동일하게 할 수 있으나, 실시예에 따라서는 상기 블록의 크기를 상이하게 하는 것도 가능하다. 예를들어, 화면의 중심부에 대하여는 블록의 크기를 작게하여 많은 수의 블록이 포함되도록 할 수 있으며, 이 경우 화면의 중심부에 주로 위치하는 각각의 텍스트나, 이미지, 동영상 등에 대한 경계면을 보다 세밀하게 구분하는 것이 가능하다.
블록분류단계(S20)는, 상기 블록의 속성에 따라 상기 블록을 기 설정된 블록종류 중 어느 하나에 해당하는 것으로 구별할 수 있으며, 상기 블록종류에는 동영상블록, 텍스트블록 및 이미지블록을 포함할 수 있다.
구체적으로, 블록분류단계(S20)에서는, 상기 블록에 포함되는 복수개의 픽셀 중에서, 상기 프레임의 변화에 따라 픽셀값이 변화하는 변화픽셀을 검출하는 방식으로 동영상블록을 구별할 수 있다. 즉, 동영상블록의 경우에는 프레임의 변화에 따라 상기 동영상 블록 내에 포함된 픽셀의 픽셀값이 변화하는 특징이 있으므로, 상기 변화픽셀의 검출여부에 따라 상기 동영상블록에 해당하는지 여부를 판별할 수 있다. 먼저, 상기 블록에 포함된 복수개의 픽셀에 대하여 이전 프레임에서의 픽셀값과 현재 프레임에서의 픽셀값을 각각 비교할 수 있으며, 상기 픽셀값의 비교를 통하여 상기 블록에 포함된 상기 변화픽셀을 검출할 수 있다. 이후, 상기 프레임의 변화에 따라 상기 블록에서 상기 변화픽셀이 연속적으로 검출되는 누적횟수를 계산할 수 있으며, 상기 누적횟수가 기 설정된 임계횟수 이상인 경우에 한하여 상기 블록을 동영상블록으로 판별할 수 있다. 즉, 연속되는 프레임에서 지속적으로 픽셀값을 변화시키는 동영상의 특징을 고려하여, 임계횟수 이상 변화픽셀이 검출되는 경우에 한하여 상기 동영상블록으로 설정할 수 있다. 추가적으로, 상기 동영상영역의 확장이나 축소에 대응하여 실제 인코딩을 수행하는 영역을 결정하는 것도 가능하지만, 앞서 설명하였으므로, 여기서는 구체적인 설명을 생략한다.
상기 동영상블록에 대한 판별이 완료되면, 블록분류단계(S20)에서는 상기 동영상블록으로 판별된 블록 이외의 블록에 대하여, 텍스트블록 또는 이미지블록 중 어느 것에 해당하는지 여부를 판별할 수 있다. 즉, 상기 블록에 포함되는 픽셀에 대하여, 서로 인접하는 픽셀들 사이의 휘도값 차이인 휘도차이값을 계산하고, 상기 휘도차이값를 이용하여 상기 텍스트블록과 상기 이미지블록을 구별할 수 있다. 먼저, 상기 블록에 포함된 픽셀에 대하여, 서로 인접하는 픽셀 사이의 휘도값의 차인 휘도차이값을 각각 계산하여, 휘도차이값 집합을 생성할 수 있다. 즉, 상기 블록에 포함된 각각의 픽셀에 대하여 인접하는 픽셀과의 휘도차이값을 계산할 수 있으며, 상기 각각의 픽셀에 대하여 계산한 휘도차이값의 집합을 상기 휘도차이값 집합으로 할 수 있다. 이후, 상기 휘도차이값 집합 중에서, 상기 휘도차이값이 "0"인 비율이 기 설정된 텍스트비율 이상이면 상기 블록을 텍스트블록으로 판별하고, 상기 휘도차이값이 "0"인 비율이 기 설정된 이미지비율 미만이면 상기 블록을 이미지블록으로 판별할 수 있다. 다만, 상기 휘도차이값이 "0"인 비율이 상기 이미지비율 이상 상기 텍스트비율 미만인 경우에는 다른 기준을 이용하여 상기 텍스트블록과 이미지블록을 구별할 수 있다. 즉, 상기 휘도차이값 집합 중에서 기준값 이상의 크기를 가지는 휘도차이값이 차지하는 비율인 고주파비율을 계산할 수 있으며, 상기 고주파비율이 임계비율 이상이면 상기 텍스트블록으로 판별하고, 상기 고주파비율이 상기 임계비율 미만이면 상기 이미지블록으로 판별할 수 있다.
블록압축단계(S30)는, 상기 블록종류에 대응하는 각각의 압축알고리즘을 적용하여, 상기 블록을 압축할 수 있다. 즉, 상기 각각의 블록을 분류한 후에는, 상기 각각의 블록의 종류에 따라 상기 블록을 압축할 수 있다. 구체적으로, 압축효율이 좋은 텍스트블록에 대하여는 무손실압축을 적용하여 화질의 열화를 방지할 수 있으며, 이미지에 대하여는 손실압축방식을 적용하여 압축효율이 떨어지는 문제점을 해결할 수 있다. 또한, 동영상블록에 대하여는 인코딩을 이용하여 압축함으로써 전송효율을 최대한 높일 수 있다.
블록전송단계(S40)는, 각각의 압축알고리즘에 따라 압축된 블록을, 상기 사용자단말로 전송할 수 있다. 예를들어, 통신부 등의 구성을 이용하여 상기 압축된 블록을 전송할 수 있으며, 상기 통신부가 지원하는 통신방식에 따라 상기 압축된 블록을 전송할 수 있다. 특히, 각각의 텍스트영역, 동영상영역, 이미지영역을 구별하여 전송하므로, 각각의 영역에 해당하는 압축방식과, 각각의 영역이 위치하는 좌표정보 등을 포함하여 전송할 수 있다.
본 발명의 실시예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어, 컴퓨터에서 판독 가능한 기록매체에 기록될 수 있다. 상기 컴퓨터에서 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터에서 판독 가능한 기록매체에는 ROM, RAM, CD-ROM, 자기테이프, 플로피디스크, 광데이터 저장장치 등을 포함할 수 있으며, 캐리어 웨이브(예를들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터에서 판독가능한 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.
100: 터미널 서버 110: 화면분할부
120: 블록분류부 130: 블록압축부
140: 통신부 150: 가상화면
200: 사용자단말 210: 터미널 클라이언트
S10: 프레임분할단계 S20: 블록분류단계
S30: 블록압축단계 S40: 블록전송단계
S100: 프레임분할단계 S200: 블록분류단계
S210: 동영상구별단계 S211: 변화픽셀검출단계
S212: 동영상블록구별단계 S213: 동영상영역설정단계
S220: 텍스트구별단계 S221: 휘도차이계산단계
S222: 1차분류단계 S223: 2차분류단계
S300: 블록압축단계

Claims (22)

  1. 원격접속하는 사용자단말에게 터미널 서비스를 제공하며, 상기 사용자단말이 요청하는 화면정보를 실시간으로 전송하는 터미널 서버에 있어서,
    상기 사용자단말이 요청하는 화면의 프레임을 복수개의 블록으로 분할하는 화면분할부;
    상기 블록의 속성에 따라, 상기 블록을 기 설정된 복수개의 불록종류 중 어느 하나에 해당하는 것으로 구별하는 블록분류부;
    상기 블록종류에 대응하는 각각의 압축알고리즘을 적용하여, 상기 블록을 압축하는 블록압축부; 및
    상기 압축된 블록을 상기 사용자단말로 전송하는 통신부를 포함하는 터미널 서버.
  2. 제1항에 있어서, 상기 블록분류부는
    상기 블록종류에 동영상블록, 텍스트블록 및 이미지블록을 포함하는 터미널 서버.
  3. 제2항에 있어서, 상기 블록분류부는
    상기 블록에 포함되는 복수개의 픽셀 중에서, 상기 프레임의 변화에 따라 픽셀값이 변화하는 변화픽셀을 검출하고, 상기 변화픽셀을 이용하여 상기 동영상블록을 구별하는 터미널 서버.
  4. 제3항에 있어서, 상기 블록분류부는
    이전 프레임에서의 픽셀값과 현재 프레임에서의 픽셀값을 비교하여 상기 블록에 포함된 상기 변화픽셀을 검출하고, 상기 블록에서 상기 변화픽셀이 연속적으로 검출되는 누적횟수가 기 설정된 임계횟수 이상이면 상기 블록을 상기 동영상블록으로 판별하는 터미널 서버.
  5. 제2항에 있어서, 상기 블록분류부는
    상기 블록에 포함되는 복수개의 픽셀에 대하여, 각각 인접하는 픽셀들 사이의 휘도값 차이인 휘도차이값을 계산하여 상기 블록에 대한 휘도차이값 집합을 생성하고,
    상기 휘도차이값 집합 중에서 상기 휘도차이값이 "0"인 비율이 기 설정된 텍스트비율 이상이면 상기 블록을 텍스트블록으로 판별하고, 상기 휘도차이값이 "0"인 비율이 기 설정된 이미지비율 미만이면 상기 블록을 이미지블록으로 판별하는 터미널 서버.
  6. 제5항에 있어서, 상기 블록분류부는
    상기 휘도차이값이 "0"인 비율이 상기 이미지비율 이상 상기 텍스트비율 미만인 경우에는, 상기 휘도차이값 집합 중에서 기준값 이상의 크기를 가지는 휘도차이값이 차지하는 비율인 고주파비율을 계산하며,
    상기 고주파비율이 임계비율 이상이면 상기 텍스트블록으로 판별하고, 상기 고주파비율이 상기 임계비율 미만이면 상기 이미지블록으로 판별하는 터미널 서버.
  7. 제2항에 있어서, 상기 블록압축부는
    상기 텍스트블록에 대하여는 무손실압축을 적용하고, 상기 이미지블록에 대하여는 손실압축을 적용하며, 상기 동영상블록에 대하여는 동영상인코딩을 적용하여 압축하는 터미널 서버.
  8. 전송하고자 하는 화면의 프레임을 복수개의 블록으로 분할하는 프레임분할단계;
    상기 블록의 속성에 따라, 상기 블록을 기 설정된 블록종류 중 어느 하나에 해당하는 것으로 구별하는 블록분류단계; 및
    상기 블록종류에 대응하는 각각의 압축알고리즘을 적용하여, 상기 블록을 압축하는 블록압축단계를 포함하는 프레임 압축방법.
  9. 제8항에 있어서, 상기 블록분류단계는
    상기 블록종류에 동영상블록, 텍스트블록 및 이미지블록을 포함하는 프레임 압축방법.
  10. 제9항에 있어서, 상기 블록분류단계는
    상기 블록에 포함되는 복수개의 픽셀 중에서, 상기 프레임의 변화에 따라 픽셀값이 변화하는 변화픽셀을 검출하고, 상기 변화픽셀을 이용하여 상기 동영상블록을 구별하는 동영상구별단계; 및
    상기 블록에 포함되는 픽셀에 대하여, 서로 인접하는 픽셀들 사이의 휘도값 차이인 휘도차이값을 계산하고, 상기 휘도차이값를 이용하여 상기 텍스트블록과 상기 이미지블록을 구별하는 텍스트구별단계를 더 포함하는 프레임 압축방법.
  11. 제10항에 있어서, 상기 동영상구별단계는
    상기 블록에 포함된 복수개의 픽셀에 대하여 이전 프레임에서의 픽셀값과 현재 프레임에서의 픽셀값을 각각 비교하고, 상기 픽셀값의 비교를 통하여 상기 블록에 포함된 상기 변화픽셀을 검출하는 변화픽셀검출단계;
    상기 프레임의 변화에 따라, 상기 블록에서 상기 변화픽셀이 연속적으로 검출되는 누적횟수를 계산하고, 상기 누적횟수가 기 설정된 임계횟수 이상이면 상기 블록을 동영상블록으로 판별하는 동영상블록구별단계; 및
    상기 동영상블록을 결합하여 동영상영역으로 설정하는 동영상영역설정단계를 포함하는 프레임압축방법.
  12. 제11항에 있어서, 상기 동영상영역설정단계는
    현재 동영상영역이 이전 동영상영역보다 면적이 작거나 같으면, 현재 프레임과 이전프레임을 비교하여 변화픽셀을 포함하는 블록을 검출하고, 상기 검출된 블록을 결합하여 비교영역을 생성하는 단계;
    상기 비교영역과 상기 현재 동영상영역을 비교하여, 상기 비교영역이 상기 현재 동영상영역과 일치하면, 상기 이전 동영상영역을 유지하는 단계;
    상기 비교영역과 상기 현재 동영상영역을 비교하여, 상기 비교영역이 상기 현재 동영상영역과 상이하면, 상기 비교영역에 대한 상기 누적횟수를 산출하는 단계; 및
    상기 누적횟수가 기 설정된 축소설정횟수보다 작으면, 상기 이전동영상영역을 유지하고, 상기 누적횟수가 기 설정된 축소설정횟수보다 크면 상기 현재 동영상영역으로 상기 이전 동영상영역을 대체하는 단계를 더 포함하는 프레임압축방법.
  13. 제11항에 있어서, 상기 동영상영역설정단계는
    현재 동영상영역이 이전 동영상영역보다 면적이 더 크면, 상기 이전 동영상영역을 상기 현재 동영상영역으로 대체하는 프레임압축방법.
  14. 제11항에 있어서, 상기 블록압축단계는
    상기 설정된 동영상영역에 포함되는 동영상블록에 대하여, 동영상인코딩을 적용하여 압축하는 프레임압축방법.
  15. 제10항에 있어서, 상기 텍스트구별단계는
    상기 블록에 포함된 픽셀에 대하여, 서로 인접하는 픽셀 사이의 휘도값의 차인 휘도차이값을 각각 계산하여, 휘도차이값 집합을 생성하는 휘도차이값계산단계; 및
    상기 휘도차이값 집합 중에서, 상기 휘도차이값이 "0"인 비율이 기 설정된 텍스트비율 이상이면 상기 블록을 텍스트블록으로 판별하고, 상기 휘도차이값이 "0"인 비율이 기 설정된 이미지비율 미만이면 상기 블록을 이미지블록으로 판별하는 1차분류단계를 포함하는 프레임 압축방법.
  16. 제15항에 있어서,
    상기 휘도차이값계산단계는, 상기 휘도차이값 집합 중에서 기 설정된 기준값 이상의 휘도차이값이 차지하는 비율인 고주파비율을 더 계산하고,
    상기 휘도차이값이 "0"인 비율이 상기 이미지비율 이상 상기 텍스트비율 미만인 경우에는, 상기 고주파비율을 이용하여 상기 텍스트블록과 상기 이미지블록을 구별하는 2차분류단계를 더 포함하는 프레임 압축방법.
  17. 제16항에 있어서, 상기 2차분류단계는
    상기 고주파비율이 기 설정된 임계비율 이상이면 상기 텍스트블록으로 판별하고, 상기 고주파비율이 상기 임계비율 미만이면 상기 이미지블록으로 판별하는 프레임 압축방법.
  18. 제15항에 있어서, 상기 텍스트구별단계는
    상기 블록에 포함된 픽셀의 픽셀값을 RGB 데이터에서 YUV 데이터로 변환하는 픽셀값 변환단계를 더 포함하는 프레임 압축방법.
  19. 제8항에 있어서, 상기 블록압축단계는
    상기 텍스트블록에 대하여 무손실압축을 적용하고, 상기 이미지블록에 대하여는 손실압축을 적용하여 압축하는 프레임 압축방법.
  20. 제8항에 있어서,
    상기 생성한 압축 블록을 전송하는 전송단계를 더 포함하는 프레임 압축방법.
  21. 원격접속하는 사용자단말에 대하여 터미널 서비스를 제공하는 터미널 서버에서의 화면프레임 전송방법에 관한 것으로서,
    상기 사용자단말이 요청하는 화면의 프레임을 복수개의 블록으로 분할하는 프레임분할단계;
    상기 블록의 속성에 따라, 상기 블록을 기 설정된 블록종류 중 어느 하나에 해당하는 것으로 구별하는 블록분류단계;
    상기 블록종류에 대응하는 각각의 압축알고리즘을 적용하여, 상기 블록을 압축하는 블록압축단계; 및
    상기 각각의 압축알고리즘에 따라 압축된 블록을, 상기 사용자단말로 전송하는 블록전송단계를 포함하는 화면프레임 전송방법.
  22. 제8항 내지 제21항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체.
KR1020140022800A 2014-02-26 2014-02-26 터미널 서버에서의 화면프레임 전송방법 및 이를 이용하는 터미널 서버 KR101556381B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140022800A KR101556381B1 (ko) 2014-02-26 2014-02-26 터미널 서버에서의 화면프레임 전송방법 및 이를 이용하는 터미널 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140022800A KR101556381B1 (ko) 2014-02-26 2014-02-26 터미널 서버에서의 화면프레임 전송방법 및 이를 이용하는 터미널 서버

Publications (2)

Publication Number Publication Date
KR20150101277A true KR20150101277A (ko) 2015-09-03
KR101556381B1 KR101556381B1 (ko) 2015-09-30

Family

ID=54242488

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140022800A KR101556381B1 (ko) 2014-02-26 2014-02-26 터미널 서버에서의 화면프레임 전송방법 및 이를 이용하는 터미널 서버

Country Status (1)

Country Link
KR (1) KR101556381B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024167122A1 (ko) * 2023-02-07 2024-08-15 삼성전자 주식회사 외부 장치에 표시하기 위한 비디오를 처리하는 전자 장치, 그 제어 방법, 및 그 기록 매체

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5455619B2 (ja) * 2009-12-28 2014-03-26 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024167122A1 (ko) * 2023-02-07 2024-08-15 삼성전자 주식회사 외부 장치에 표시하기 위한 비디오를 처리하는 전자 장치, 그 제어 방법, 및 그 기록 매체

Also Published As

Publication number Publication date
KR101556381B1 (ko) 2015-09-30

Similar Documents

Publication Publication Date Title
WO2021068598A1 (zh) 共享屏幕的编码方法、装置、存储介质及电子设备
US8965140B1 (en) Method and apparatus for encoding mixed content image sequences
EP3379817B1 (en) Method for real-time video noise reduction in coding process, terminal, and nonvolatile computer readable storage medium
US11394978B2 (en) Video fidelity measure
EP2608148A2 (en) Method and apparatus for generating multi-view
US11627369B2 (en) Video enhancement control method, device, electronic device, and storage medium
CN110310231B (zh) 一种将第一动态范围视频转换为第二动态范围视频的设备及其方法
JP2022550565A (ja) 画像処理方法、画像処理装置、電子機器、及びコンピュータプログラム
CN104243992B (zh) 图像处理装置及图像处理方法
CN106954004B (zh) 一种屏幕共享的方法及装置
CN110740316A (zh) 数据编码方法及装置
WO2016033725A1 (zh) 视频编码中的块分割方式处理方法和相关装置
CN107113464B (zh) 内容提供装置、显示装置及其控制方法
US10080018B2 (en) Video content classification
KR101556381B1 (ko) 터미널 서버에서의 화면프레임 전송방법 및 이를 이용하는 터미널 서버
TWI586175B (zh) 視訊會議頻寬管理方法及系統
Malekmohamadi et al. Automatic QoE prediction in stereoscopic videos
KR101804702B1 (ko) 전송 영상의 해상도 결정 방법 및 장치
JP5303399B2 (ja) 動画像ビット深度削減装置及びプログラム
CN111145219B (zh) 一种基于Codebook原理的高效视频移动目标检测方法
CN110505480B (zh) 一种面向监控场景的快速感知视频编码方法
CN111953986A (zh) 图像处理方法及装置
KR101630167B1 (ko) Hevc를 위한 고속 화면내 부호화 모드 결정 방법
KR20150048277A (ko) 클라우드 컴퓨팅에서의 효율적 자원관리를 위한 시각 데이터 가공장치 및 그 방법
US10848772B2 (en) Histogram-based edge/text detection

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
N231 Notification of change of applicant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 5