KR101997583B1 - 컨텐츠 공유를 위한 서버 장치, 클라이언트 장치 및 그 컨텐츠 공유 방법 - Google Patents

컨텐츠 공유를 위한 서버 장치, 클라이언트 장치 및 그 컨텐츠 공유 방법 Download PDF

Info

Publication number
KR101997583B1
KR101997583B1 KR1020120083227A KR20120083227A KR101997583B1 KR 101997583 B1 KR101997583 B1 KR 101997583B1 KR 1020120083227 A KR1020120083227 A KR 1020120083227A KR 20120083227 A KR20120083227 A KR 20120083227A KR 101997583 B1 KR101997583 B1 KR 101997583B1
Authority
KR
South Korea
Prior art keywords
content
client device
codec
parser
client
Prior art date
Application number
KR1020120083227A
Other languages
English (en)
Other versions
KR20140016072A (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 KR1020120083227A priority Critical patent/KR101997583B1/ko
Publication of KR20140016072A publication Critical patent/KR20140016072A/ko
Application granted granted Critical
Publication of KR101997583B1 publication Critical patent/KR101997583B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Marketing (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

서버 장치의 컨텐츠 공유 방법이 개시된다. 본 방법은, 클라이언트 장치로부터 재생 능력 정보를 수신하는 단계, 수신된 재생 능력 정보를 기초하여 클라이언트 장치로 제공할 컨텐츠에 대한 국부적 처리(partly processing)를 수행할 지 여부를 판단하는 판단 단계 및 국부적 처리가 필요하다고 판단되면 컨텐츠 내에서 일부 프레임을 클라이언트 장치에서 재생 가능하도록 처리하여 클라이언트 장치로 전송하는 전송 단계를 포함한다. 이에 따라, 컨텐츠를 효율적으로 제공할 수 있다.

Description

컨텐츠 공유를 위한 서버 장치, 클라이언트 장치 및 그 컨텐츠 공유 방법 { SERVER DEVICE AND CLIENT DEVICE FOR SHARING CONTENTS, AND METHOD THEREOF }
본 발명은 컨텐츠 공유를 위한 서버 장치, 클라이언트 장치 및 그 컨텐츠 공유 방법에 대한 것으로, 보다 상세하게는, 클라이언트 장치의 특성을 고려하여 컨텐츠를 공유하는 서버 장치 및 그 서버 장치로부터 컨텐츠를 제공받아 재생하는 클라이언트 장치와 그 컨텐츠 공유 방법에 관한 것이다.
전자 기술의 발달에 힘입어 다양한 종류의 전자 기기가 개발되어 보급되고 있다. 특히 최근에는 스마트폰, 스마트 TV 등과 같이 종래의 기기보다 진화된 성능의 사용자 단말 장치들의 사용이 급속도로 증가하고 있다.
사용자들은 자신이 구비한 사용자 단말 장치와 주변 장치들을 네트워크로 연결하여 사용할 수 있다. 일 예로 자신의 장치와 타 장치 사이에서 컨텐츠를 공유할 수 있다.
컨텐츠 공유가 가능하려면, 컨텐츠를 제공받는 장치, 즉, 클라이언트 장치에서는 제공된 컨텐츠를 처리하기 위한 하드웨어 및 소프트웨어를 갖추고 있어야 한다.
하지만, 다양한 유형의 컨텐츠가 제작됨에 따라 컨텐츠 처리에 필요한 파서나 코덱 등도 다양하게 이용되고 있다. 따라서, 클라이언트 장치에서 서버 장치로부터 컨텐츠를 제공받더라도, 그 컨텐츠를 처리할 수 있는 파서나 코덱을 구비하고 있지 않는 경우가 발생할 수 있다.
이 경우, 컨텐츠 자체는 정상적으로 공유하였지만, 그 컨텐츠를 재생시킬 수가 없어서, 컨텐츠 이용이 불가능하다는 문제점이 있었다.
따라서, 컨텐츠 공유 기능을 좀 더 효과적으로 사용할 수 있는 기술에 대한 필요성이 대두되었다.
본 발명은 상술한 필요성에 따른 것으로, 본 발명의 목적은, 클라이언트 장치의 성능을 고려하여 컨텐츠를 적절하게 처리한 후 제공하는 서버 장치와, 그 컨텐츠를 수신하여 재생하는 클라이언트 장치 및 그들의 컨텐츠 공유 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따르면, 서버 장치의 컨텐츠 공유 방법은, 클라이언트 장치로부터 재생 능력 정보를 수신하는 단계, 상기 클라이언트 장치로 제공할 컨텐츠의 속성 및 상기 재생 능력 정보에 기초하여 상기 클라이언트 장치가 상기 컨텐츠를 재생 불가능하다고 판단되면, 상기 컨텐츠를 재생 가능한 형태로 처리하여 상기 클라이언트 장치로 전송하는 전송 단계를 포함한다.
여기서, 상기 클라이언트 장치가 상기 컨텐츠를 재생 가능하면 상기 컨텐츠를 상기 클라이언트 장치로 전송하는 단계를 더 포함할 수도 있다.
그리고, 상기 처리는 상기 컨텐츠를 파싱 처리하는 것일 수 있다.
또는, 상기 처리는 상기 컨텐츠에 포함된 오디오 데이터 및 비디오 데이터 중 적어도 하나를 디코딩 처리하는 것일 수 있다.
또는, 본 방법은, 상기 컨텐츠의 속성 및 상기 재생 능력 정보에 기초하여, 상기 클라이언트 장치가 상기 컨텐츠를 처리할 수 있는 파서 및 코덱을 구비하였다면 상기 컨텐츠의 재생이 가능하다고 판단하고, 상기 파서 및 상기 코덱 중 적어도 하나를 미구비하였다면 상기 컨텐츠의 재생이 불가능하다고 판단하는 단계를 더 포함할 수 있다.
또는, 상기 클라이언트 장치가 상기 컨텐츠의 컨텐츠를 처리할 수 있는 파서 및 코덱 중 적어도 하나를 미구비하였다면, 상기 서버 장치가 상기 파서 및 코덱을 구비하였는지 판단하는 단계, 상기 서버 장치가 상기 파서 및 코덱 중 적어도 하나를 미구비하였다면, 구비 가능한지 판단하는 단계, 상기 구비가 가능하다면 상기 파서 및 코덱 중 적어도 하나를 구비하여 상기 컨텐츠를 처리하고, 구비가 불가능하다면 재생 불가 응답을 상기 클라이언트 장치로 전송하는 단계를 더 포함할 수도 있다.
또한, 본 방법은, 상기 클라이언트 장치로부터 컨텐츠 공유 요청을 수신하는 단계를 더 포함할 수도 있다.
또한, 상기 재생 능력 정보는 상기 클라이언트 장치로부터 주기적으로 또는 요청에 따라 전송될 수 있다.
한편, 본 발명의 일 실시 예에 따르면, 서버 장치는, 클라이언트 장치로 제공할 컨텐츠가 저장된 저장부, 상기 클라이언트 장치로부터 재생 능력 정보를 수신하는 통신부 및 상기 컨텐츠의 속성 및 상기 재생 능력 정보에 기초하여 상기 클라이언트 장치에서 상기 컨텐츠 재생이 불가능하면, 상기 컨텐츠를 재생 가능한 형태로 처리하여 상기 클라이언트 장치로 전송하는 제어부를 포함한다.
여기서, 상기 제어부는, 상기 클라이언트 장치에서 상기 컨텐츠 재생이 가능하면, 상기 컨텐츠를 바로 상기 클라이언트 장치로 전송할 수 있다.
그리고, 상기 제어부는, 상기 재생 능력 정보에 기초하여, 상기 클라이언트 장치가 상기 컨텐츠에 대응되는 파서 및 코덱을 구비하였는지 확인하고, 상기 파서 및 상기 코덱을 구비하였다면 상기 컨텐츠의 재생이 가능하다고 판단하고 상기 파서 및 상기 코덱 중 적어도 하나룰 미구비하였다면 상기 컨텐츠의 재생이 불가능하다고 판단할 수 있다.
또한, 상기 제어부는, 상기 클라이언트 장치에서 상기 컨텐츠의 파싱이 불가능하면 상기 컨텐츠를 파싱 처리하여 상기 클라이언트 장치로 전송할 수 있다.
그리고, 상기 제어부는, 상기 클라이언트 장치에서 상기 컨텐츠에 대한 디코딩이 불가능하면 상기 컨텐츠에 포함된 오디오 데이터 및 비디오 데이터 중 적어도 하나를 디코딩하여 상기 클라이언트 장치로 전송할 수 있다.
또는, 상기 제어부는, 상기 클라이언트 장치에서 상기 컨텐츠의 재생이 불가능하면 상기 서버 장치가 상기 파서 및 코덱을 구비하였는지 판단하고, 상기 서버 장치가 상기 파서 및 코덱 중 적어도 하나를 미구비하였다면 구비 가능한지 판단하며, 구비가 가능하다면 상기 파서 및 코덱 중 적어도 하나를 신규 설치하여 상기 컨텐츠를 처리하고, 구비가 불가능하다면 재생 불가 응답을 상기 클라이언트 장치로 전송할 수 있다.
그리고, 상기 통신부는, 상기 재생 능력 정보를 상기 클라이언트 장치로부터 주기적으로 수신할 수 있다.
또한, 상기 통신부는, 상기 클라이언트 장치로부터 상기 컨텐츠에 대한 재생 명령이 수신되면, 상기 클라이언트 장치에 대하여 상기 재생 능력 정보를 요청하여 수신할 수 있다.
한편, 본 발명의 일 실시 예에 따르면, 클라이언트 장치의 컨텐츠 공유 방법은, 서버 장치로부터 파서 및 코덱 목록을 수신하여 저장하는 단계, 상기 서버 장치에 저장된 컨텐츠에 대한 재생 요청을 입력받는 단계, 상기 클라이언트 장치에 구비된 파서 및 코덱에 대한 정보와 상기 수신된 파서 및 코덱 목록을 이용하여, 상기 컨텐츠에 대한 재생 가능 여부를 판단하는 단계, 상기 컨텐츠에 대한 재생이 가능하면 상기 서버 장치로 컨텐츠 공유 요청을 전송하고, 상기 컨텐츠에 대한 재생이 불가능하면 재생 불가 메시지를 디스플레이하는 단계를 포함한다.
또한, 본 발명의 일 실시 예에 따르면, 클라이언트 장치는, 서버 장치로부터 파서 및 코덱 목록을 수신하는 통신부, 상기 파서 및 코덱 목록을 저장하는 저장부, 상기 서버 장치에 저장된 컨텐츠에 대한 재생 요청을 입력받는 입력부, 상기 재생 요청이 입력되면, 상기 클라이언트 장치에 구비된 파서 및 코덱에 대한 정보와 상기 수신된 파서 및 코덱 목록을 이용하여, 상기 컨텐츠에 대한 재생 가능 여부를 판단하고, 상기 컨텐츠에 대한 재생이 가능하면 상기 서버 장치로 컨텐츠 공유 요청을 전송하는 제어부, 상기 컨텐츠에 대한 재생이 불가능하면 재생 불가 메시지를 디스플레이하는 디스플레이부를 포함한다.
이상과 같은 다양한 실시 예들에 따르면, 본 발명에서는 서버 장치 및 클라이언트 장치 사이에서 통신 자원을 과도하게 낭비하지 않으면서, 컨텐츠 공유가 효과적으로 이루어질 수 있게 된다.
도 1은 본 발명의 일 실시 예에 따른 컨텐츠 공유 시스템의 구성을 나타내는 블럭도,
도 2는 액세스 포인트를 더 포함하는 컨텐츠 공유 시스템의 구성을 나타내는 도면,
도 3은 본 발명의 일 실시 예에 따른 서버 장치의 구성을 나타내는 블럭도,
도 4는 본 발명의 일 실시 예에 따른 클라이언트 장치의 구성을 나타내는 블럭도,
도 5는 컨텐츠를 공유하기 위하여 사용되는 메시지 포맷의 일 예를 나타내는 도면,
도 6은 본 발명의 일 실시 예에 따른 컨텐츠 공유 방법을 설명하기 위한 타이밍도,
도 7 및 도 8은 본 발명의 다양한 실시 예에 따른 컨텐츠 공유 방법을 설명하기 위한 타이밍도,
도 9 및 도 10은 본 발명의 다양한 실시 예에 따른 서버 장치의 컨텐츠 공유방법을 설명하기 위한 흐름도,
도 11은 본 발명의 또 다른 실시 예에 따른 컨텐츠 공유 방법을 설명하기 위한 흐름도,
도 12는 클라이언트 장치에서 서버 장치를 선택하기 위한 화면 구성의 일 예를 나타내는 도면,
도 13 및 도 14는 서버 장치로부터 제공받고자 하는 컨텐츠를 선택하기 위한 화면 구성의 다양한 예를 나타내는 도면,
도 15는 서버 장치에서 클라이언트 장치를 선택하여 컨텐츠를 공유하도록 하는 화면 구성의 일 예를 나타내는 도면,
도 16은 본 발명의 다양한 실시 예에 따른 서버 장치의 구성을 종합적으로 설명하기 위한 블럭도,
도 17은 도 16의 서버 장치에서 사용되는 프로그램의 구성의 일 예를 설명하기 위한 도면,
도 18은 본 발명의 일 실시 예에 따른 화면 공유 시스템의 구성을 나타내는 도면,
도 19는 화면 공유 시스템에 사용된 클라이언트 장치의 화면의 일 예를 나타내는 도면,
도 20은 본 발명의 또 다른 실시 예에 따른 컨텐츠 제공 시스템의 구성을 나타내는 도면,
도 21은 본 발명의 또 다른 실시 예에 따른 홈 게이트웨이 시스템의 구성을 나타내는 도면,
도 22는 본 발명의 다양한 실시 예에 적용 가능한 코덱 및 파서 구성의 일 예를 나타내는 도면,
도 23 및 도 24는 본 발명의 또 다른 실시 예에 따른 서버 장치 및 클라이언트 장치의 동작을 설명하기 위한 도면이다.
이하에서, 첨부된 도면을 이용하여 본 발명에 대하여 구체적으로 설명한다.
도 1은 본 발명의 일 실시 예에 따른 컨텐츠 공유 시스템의 구성을 나타내는 도면이다. 도 1은 서버 장치(100) 및 클라이언트 장치(200)가 직접 통신을 연결하는 경우를 나타낸다.
도 1에 따르면, 서버 장치(100)는 클라이언트 장치(200)로 전송 가능한 적어도 하나의 컨텐츠를 저장한다. 컨텐츠란 동영상, 음악, 사진, 이미지, 문서, 텍스트, 프로그램 등과 같은 다양한 종류의 데이터가 될 수 있다. 서버 장치(100)는 일반적인 서버로 구현될 수도 있으나 이에 한정되지 않고 휴대폰이나 TV, PDA, 태블릿 PC, PC, 노트북 PC, 전자 액자, 키오스크, 전자 광고판 및 기타 사용자 단말 장치 등으로 구현될 수 있다. 또한, 클라이언트 장치(200)는 비디오 컨텐츠 및 오디오 컨텐츠 등을 출력할 수 있는 다양한 형태의 장치로 구현될 수 있다. 예를 들어, 클라이언트 장치(200) 역시 휴대폰이나 TV, PDA, 태블릿 PC, PC, 노트북 PC, 전자 액자, 키오스크, 전자 광고판 등과 같이 다양한 단말 장치로 구현될 수 있다.
클라이언트 장치(200)는 컨텐츠 공유 기능을 실행하여, 서버 장치(100)에 저장된 컨텐츠를 이용할 수 있다. 컨텐츠 공유 기능이란 복수의 서로 다른 장치들 사이에서 컨텐츠를 다운로딩하거나 스트리밍하여 공유하도록 하는 기능을 의미한다. 컨텐츠 공유 기능의 일 예로는, DLNA(Digital Living Network Alliance) 기능이 있을 수 있다. DLNA 기능이란 다양한 장치들 사이에서 각종 컨텐츠를 공유하는 기능이다. DLNA 기능을 수행함에 있어서 컨텐츠를 제공하는 장치는 디지털 미디어 서버(Digital Media Server : DMS)라 하고, 제공된 컨텐츠를 재생하는 장치는 디지털 미디어 렌더링 장치(Digital Media Renderer : DMR) 또는 디지털 미디어 플레이어(Digital Media Player : DMP)라 한다. 도 1에서는 클라이언트 장치(200)가 DMR 또는 DMP가 될 수 있고, 서버 장치(100)가 DMS가 될 수 있다.
서버 장치(100)는 클라이언트 장치(200)의 재생 능력 정보를 확인하여 클라이언트 장치(200)가 컨텐츠 재생이 가능한지 여부를 판단할 수 있다. 재생 능력 정보는 클라이언트 장치(200)가 구비한 파서(parser), 코덱(codec)에 대한 정보가 될 수 있다.
파서란 컨텐츠를 분석하여 컨텐츠 재생에 필요한 각종 정보를 검출하기 위한 구성이다. 파서의 예로는 동영상 파서, 이미지 파서, 오디오 파서, XML 파서 등이 있을 수 있다. 코덱이란 데이터 스트림이나 신호에 대해서 인코딩 또는 디코딩을 수행할 수 있는 구성을 의미한다. 코덱의 예로는 MPEG(Moving Picture Expert Group) 코덱, Divx 코덱, AC3 코덱, OGG 코덱, Xvid 코덱, H.264 코덱, wmv7, 8, 9 코덱, 비디오 코덱(Video Codec) 등이 있을 수 있다. 파서 및 코덱의 세부 구성 예에 대해서는 명세서 후반부에서 구체적으로 설명한다.
컨텐츠 재생 시에는 컨텐츠의 포맷에 따라 적절한 파서 및 코덱이 요구된다. 클라이언트 장치(200)가 파서 및 코덱 중 적어도 하나를 구비하고 있지 않은 경우에는 서버 장치(100)로부터 컨텐츠가 송신된다고 하더라도 제대로 재생을 할 수 없게 된다.
서버 장치(100)는 클라이언트 장치(200)의 재생 능력 정보를 확인하여, 클라이언트 장치(200)로 제공할 컨텐츠의 속성과 비교한다. 서버 장치(100)는 컨텐츠의 속성에 대응되는 파서 및 코덱을 클라이언트 장치(200)가 모두 구비하고 있다고 판단되면, 컨텐츠를 클라이언트 장치(200)로 그대로 전송한다. 이에 따라, 컨텐츠가 압축된 상태로 전송되므로 주파수나 시간 슬롯과 같은 통신 자원을 절약할 수 있다.
반면, 서버 장치(100)는 파서 및 코덱 중 적어도 하나라도 클라이언트 장치(200)가 구비하고 있지 않다고 판단되면, 서버 장치(100)가 컨텐츠를 출력 가능한 형태로 처리하여 클라이언트 장치(200)로 전송한다. 가령, 파서를 구비하고 있지 않다면 파싱을 수행하여 파싱 결과를 컨텐츠와 함께 클라이언트 장치(200)로 전송한다. 반면, 코덱을 구비하고 있지 않거나, 파서 및 코덱을 모두 구비하고 있지 않다면 파싱 및 디코딩을 수행하여 디코딩된 컨텐츠를 클라이언트 장치(200)로 전송한다. 이에 따라, 클라이언트 장치(200)는 재생 가능한 컨텐츠 화면의 데이터를 바로 수신하여 재생할 수 있다.
한편, 상술한 부분에서는 재생 능력 정보가 파서 및 코덱에 대한 정보를 포함하는 것으로 설명하였으나, 본 발명의 또 다른 실시 예에 따르면 재생 능력 정보에는 파서 및 코덱에 대한 정보 이외에 해상도, 디스플레이 사이즈, 출력 프레임 레이트, 출력 색 대역(color gamut) 등과 같은 다양한 부가 정보가 더 포함될 수도 있다.
서버 장치(100)는 클라이언트 장치(200)의 부가 정보에 따라 다양한 부가 처리를 수행할 수 있다. 가령, 클라이언트 장치의 디스플레이 해상도가 컨텐츠의 원 해상도보다 높은 경우에는 컨텐츠의 해상도를 보간하여 클라이언트 장치의 해상도에 맞추는 처리를 수행할 수 있다. 또는, 클라이언트 장치(200)에 구비된 디스플레이부의 가로 세로 비가 컨텐츠의 가로 세로 비와 다른 경우, 클라이언트 장치(200)에 구비된 디스플레이부의 비율에 맞추어 크랍핑(cropping)을 수행할 수 있다. 그 밖에, 클라이언트 장치(200)의 파싱 능력, 디코딩 능력에 맞추어 해상도를 줄이거나 비트 레이트(bit rate)를 조정하여 클라이언트 장치(200)로 전송할 수 있다.
또한, 상술한 바와 같이 도 1은 서버 장치(100) 및 클라이언트 장치(200)가 직접 통신을 수행하는 경우를 설명하였으나, 액세스 포인트를 통해서 통신을 연결할 수도 있다.
도 2는 액세스 포인트를 더 포함하는 컨텐츠 공유 시스템의 구성을 나타내는 도면이다. 도 2에 따르면, 컨텐츠 공유 시스템은 복수의 단말 장치(100, 200-1, 200-2, 200-3, 200-4) 및 중계기(AP)를 포함한다. 각 단말 장치(100, 200-1, 200-2, 200-3, 200-4)는 개별적으로 서버 장치(100) 또는 클라이언트 장치(200)의 역할을 할 수 있다. 도 2에서는 하나의 단말 장치가 서버 장치(100)의 역할을 하고, 나머지가 클라이언트 장치(200-1, 200-2, 200-3, 200-4)의 역할을 하는 경우를 나타낸다.
도 2에 따르면 서버 장치(100) 및 각 클라이언트 장치(200-1, 200-2, 200-3, 200-4)는 중계기(AP)를 통해 네트워크를 형성한다.
클라이언트 장치(200-1, 200-2, 200-3, 200-4)중 적어도 하나에서 컨텐츠 공유 기능이 선택되면, 해당 클라이언트 장치는 중계기(AP)를 통해서 서버 장치(100)를 검색한다. 각 클라이언트 장치(200-1, 200-2, 200-3, 200-4)가 서버 기능도 갖추고 있다면, 서버 장치(100) 뿐만 아니라 서버 기능을 갖춘 나머지 클라이언트 장치들도 함께 검색될 수 있다.
예를 들어, 제1 클라이언트 장치(200-1)에서 컨텐츠 공유 기능이 선택되었다면, 제1 클라이언트 장치(200-1)는 서버 장치(100)를 검색한 후, 서버 장치(100)에 대해 컨텐츠 정보를 요청할 수 있다. 서버 장치(100)가 저장된 컨텐츠에 대한 정보를 전송하면 제1 클라이언트 장치(200-1)는 컨텐츠 정보를 디스플레이한다. 사용자가 하나의 컨텐츠를 선택하면, 제1 클라이언트 장치(200-1)는 선택된 컨텐츠에 대한 요청 신호 및 제1 클라이언트 장치(200-1)의 재생 능력 정보를 서버 장치(100)로 전송한다.
재생 능력 정보는 요청 신호와 함께 전송될 수 있지만, 반드시 이에 한정되는 것은 아니다. 즉, 재생 능력 정보는 서버 장치(100)의 전송 요청이 있는 경우, 기 설정된 주기가 도래한 경우, 제1 클라이언트 장치(200-1)가 서버 장치(100)에 최초 접속한 경우, 제1 클라이언트 장치(200-1)의 파서나 코덱에 변경 사항이 있는 경우 등에 서버 장치(100)로 전송될 수도 있다. 이러한 다양한 실시 예들에 대해서는 후술하는 부분에서 구체적으로 설명한다.
서버 장치(100)는 상술한 바와 같이 제1 클라이언트 장치(200-1)의 재생 능력 정보와 컨텐츠의 속성을 비교하여 컨텐츠의 재생이 가능한지 여부를 판단한다. 서버 장치(100)는 판단 결과에 따라 컨텐츠를 그대로 또는 적절하게 처리하여 전송한다.
이상에서는 제1 클라이언트 장치(200-1)에서 컨텐츠 공유 기능이 선택된 경우를 설명하였으나, 본 발명의 또 다른 실시 예에 따르면, 컨텐츠를 공유하기 위한 시도는 서버 장치(100)에서 이루어질 수도 있다.
가령, 서버 장치(100)에서 컨텐츠 공유 기능이 선택된 경우, 서버 장치(100)는 저장된 컨텐츠에 대한 목록을 디스플레이할 수 있다. 서버 장치(100)의 사용자는 목록 상에서 공유할 컨텐츠를 선택할 수 있다.
컨텐츠 선택이 이루어지면, 서버 장치(100)는 중계기(AP)를 통해서 검색 신호를 브로드캐스팅할 수 있다. 검색 신호를 수신한 각 클라이언트 장치(200-1, 200-2, 200-3, 200-4)는 응답 신호를 전송한다. 응답 신호에는 각 클라이언트 장치(200-1, 200-2, 200-3, 200-4)의 IP(Internet Protocol) 어드레스와 같은 식별 정보가 포함될 수 있다. 그 밖에, 응답 신호에는 각 클라이언트 장치(200-1, 200-2, 200-3, 200-4)의 재생 능력 정보가 더 포함될 수도 있다.
서버 장치(100)는 응답 신호를 전송한 각 클라이언트 장치에 대한 목록을 디스플레이한다. 서버 장치(100)의 사용자는 디스플레이된 목록 상에서 컨텐츠를 공유할 클라이언트 장치를 선택할 수 있다.
클라이언트 장치가 선택되면 서버 장치(100)는 선택된 클라이언트 장치의 재생 능력 정보 및 컨텐츠의 속성에 기초하여, 클라이언트 장치의 재생 가능 여부를 판단한다. 서버 장치(100)는 판단 결과에 따라 컨텐츠를 그대로 또는 적절한 처리를 수행한 후 클라이언트 장치로 전송한다.
이상과 같이, 서버 장치(100) 및 클라이언트 장치(200) 사이에서는 다양한 방식으로 컨텐츠 공유가 이루어질 수 있으며, 클라이언트 장치(200)의 특성에 맞게 컨텐츠를 처리하여 줄 수 있으므로 효율성을 증대시킬 수 있다.
한편, 도 2에서는 액세스 포인트를 이용하여 컨텐츠 공유가 이루어지는 다양한 실시 예들에 대해서 설명하였으나, 도 2에서 설명한 내용은 도 1의 실시 예에서도 동일하게 구현될 수 있음은 물론이다.
도 3은 본 발명의 일 실시 예에 따른 서버 장치(100)의 구성을 나타내는 블럭도이다. 도 3에 따르면, 서버 장치(100)는 통신부(110), 제어부(120), 저장부(130)를 포함한다.
통신부(110)는 클라이언트 장치(200)로부터 재생 능력 정보를 수신한다. 통신부(110)는 다양한 통신 방식을 이용하여 클라이언트 장치(200)와 통신을 수행할 수 있다. 예를 들어, 3G, 4G, WiFi, Ethernet(유선), 블루투스, NFC(Near Field Communication), 지그비(Zigbee) 등과 같은 다양한 통신 방식이 사용될 수 있다. 각종 정보를 송수신하기 위한 프로토콜은 SOAP(Simple Object Access Protocol), HTTP(Hypertext Transfer Protocol), RTP(Real Time Protocol), DASH (Dynamic Adaptive Streaming over HTTP) 등과 같이 다양하게 사용될 수 있다.
저장부(130)는 각종 컨텐츠 및 프로그램을 저장한다. 저장부(130)는 컨텐츠의 속성에 대한 각종 정보도 함께 저장할 수 있다. 가령, 컨텐츠의 타입, 컨텐츠 포맷, 컨텐츠 사이즈, 컨텐츠 처리를 위한 코덱 정보 등과 같은 속성 정보가 저장될 수 있다. 이러한 속성 정보는 프로토콜의 종류에 따라 MPD(Media Presentation Description) 파일이나 매니페스트 파일과 같은 메타데이터 파일의 형태로 저장될 수 있다.
제어부(120)는 클라이언트 장치(200)와 공유하고자 하는 컨텐츠의 속성과, 클라이언트 장치(200)의 재생 능력 정보에 기초하여 클라이언트 장치에서 컨텐츠 재생이 가능한지 여부를 판단한다. 판단 결과 클라이언트 장치에서 컨텐츠 재생이 가능하면, 컨텐츠를 클라이언트 장치로 그대로 전송한다.
반면, 클라이언트 장치에서 컨텐츠의 재생이 불가능하면, 컨텐츠를 재생 가능한 형태로 처리하여 클라이언트 장치(200)로 전송한다.
구체적으로는, 제어부(120)는 재생 능력 정보에 기초하여, 클라이언트 장치가 컨텐츠에 대응되는 파서 및 코덱을 구비하였는지 확인한다. 예를 들어, 컨텐츠에 포함된 비디오 데이터가 MS MPEG-4 Video Codec V3으로 압축되었고 컨텐츠에 포함된 오디오 데이터는 Windows Media Audio V2로 압축이 되었다면, 클라이언트 장치가 해당 코덱을 갖추고 있는지 판단한다. 판단 결과 파서 및 코덱 중 적어도 하나를 갖추고 있지 않다면, 제어부(120)는 파싱 및 디코딩 중 적어도 하나의 처리를 수행하여 처리 결과를 클라이언트 장치(200)로 전송한다.
가령, 클라이언트 장치(200)가 컨텐츠의 파싱이 불가능한 경우에는, 컨텐츠를 파싱 처리하여 클라이언트 장치(200)로 전송한다.
또는, 클라이언트 장치(200)가 컨텐츠에 포함된 비디오 데이터 및 오디오 데이터 중 적어도 하나에 대한 코덱을 구비하고 있지 않은 경우, 즉, 디코딩이 불가능한 경우에는, 제어부(120)는 컨텐츠에 포함된 오디오 데이터 및 비디오 데이터 중 적어도 하나를 디코딩하여 클라이언트 장치(200)로 전송한다.
한편, 서버 장치(100)도 컨텐츠에 대한 파서나 코덱을 구비하고 있지 않은 경우가 있을 수 있다. 이 경우, 제어부(120)는 컨텐츠 재생에 필요한 파서나 코덱을 구비할 수 있는지 여부를 판단한다.
구체적으로는, 제어부(120)는 통신부(110)를 이용하여 서버 장치(100)가 연결된 네트워크 또는 웹(Web) 상에서 컨텐츠 재생에 필요한 파서나 코덱을 검색한다. 파서나 코덱을 갖춘 소스 장치(미도시)가 검색되면 제어부(120)는 검색된 파서나 코덱에 대한 전송 요청을 소스 장치로 전송한다. 이에 따라, 소스 장치로부터 파서 또는 코덱을 다운로드하여 저장부(130)에 설치한다. 그리고 나서, 제어부(120)는 설치된 파서 및 코덱을 이용하여 컨텐츠를 재생 가능한 형태로 처리한 후, 클라이언트 장치(200)로 전송한다.
반면, 제어부(120)가 파서나 코덱에 대한 소스 장치를 검색하지 못한 경우에는 재생 불가 상태로 판단한다. 제어부(120)는 재생 불가 상태로 판단된 경우에는 컨텐츠를 클라이언트 장치(200)로 전송하지 않을 수 있다.
한편, 클라이언트 장치(200)로부터 컨텐츠 공유가 요청된 경우에는 제어부(120)는 재생 불가 상태임을 알리기 위한 재생 불가 응답을 클라이언트 장치(200)로 전송할 수 있다. 반면, 서버 장치(100) 자체에서 컨텐츠 공유가 요청된 경우에는 제어부(120)는 재생 불가 상태임을 알리기 위한 에러 메시지를 출력할 수 있다.
이상에서는, 서버 장치(100)에서 검색하여 신규 설치한 파서 및 코덱을 이용하여 컨텐츠를 처리한 후 클라이언트 장치(200)로 전송하는 것으로 설명하였으나, 이와 상이한 실시 예에 따라서는, 제어부(120)는 소스 장치로부터 제공된 파서 또는 코덱 자체를 컨텐츠와 함께 클라이언트 장치(200)로 전송하여 줄 수도 있다. 이 경우, 클라이언트 장치(200)는 전달된 파서 또는 코덱을 자체적으로 설치한 후, 설치된 파서 및 코덱을 이용하여 컨텐츠를 재생할 수 있다. 이에 따라 통신 자원을 효율적으로 사용할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 클라이언트 장치의 구성을 나타내는 블럭도이다. 도 4에 따르면, 클라이언트 장치(200)는 통신부(210), 입력부(220), 제어부(230), 디스플레이부(240), 저장부(250)를 포함한다.
통신부(210)는 서버 장치(100)와 통신을 수행한다. 상술한 바와 같이, 통신부(210)는 3G, 4G, WiFi, Ethernet(유선), 블루투스, NFC(Near Field Communication), 지그비(Zigbee) 등과 같은 다양한 통신 방식을 이용하여 서버 장치(100)와 통신을 수행할 수 있다. 또한, 통신부(210)는 SOAP(Simple Object Access Protocol), HTTP(Hypertext Transfer Protocol), RTP(Real Time Protocol), DASH (Dynamic Adaptive Streaming over HTTP) 등과 같은 다양한 통신 프로토콜을 이용하여 통신을 수행할 수 있다.
통신부(210)는 클라이언트 장치의 재생 능력 정보를 서버 장치(100)로 전송한다. 재생 능력 정보는 통신부(210)에 적용된 통신 프로토콜에 따라 다양한 포맷으로 생성되어 전송될 수 있다. 일 예로, HTTP 프로토콜을 사용하는 경우를 설명한다. HTTP 프로토콜은 Get/Post 방식으로 데이터를 전송하는 프로토콜이다. 두 방식 모두 변수(Variable), 변수 값(Value) 쌍을 전송하는 형태이다. 통신부(210)는 클라이언트 장치(200)에 설치된 파서 및 코덱을 나타내는 변수를 정의하고, 해당 변수의 변수 값에 파서/코덱 정보를 넣어서, 서버 장치(100)로 전송한다. 이러한 방식은 3G, 4G, WiFi, Ethernet 등에도 적용될 수 있다.
한편, NFC나 블루투스 방식이 적용된 경우에는, 통신부(210)는 전송되는 데이터 포맷에 일부 영역을 할당하여, 파서/코덱 정보를 일정한 길이로 포맷한 후 실어서 전송하면 된다.
도 5는 블루투스 방식의 패킷의 구성을 나타내는 도면이다. 도 5에 따르면, 패킷은 액세스 코드(Access Code), 헤더(Header), 페이로드(Payload)로 구성된다. 액세스 코드와 헤더는 고정된 길이를 가지고, 페이로드는 패킷의 종류에 따라 달라진다. 액세스 코드는 프리엠블(Preamble), 싱크 워드(Sync word), 트레일러(Trailer)로 구성된다. 액세스 코드는 패킷 식별에 사용된다. 헤더는 기기의 어드레스(AM_ADDR)와 PAYLOAD의 종류를 표시하는 타입(TYPE), 재송제어, Flow 제어 등을 위한 비트(FLOW, ARQN, SEQN)등을 포함한다.
통신부(110)는 패킷의 페이로드 부분에 재생 능력 정보를 삽입하여 전송한다. 재생 능력 정보는 상술한 바와 같이 파서 및 코덱에 대한 정보와 그 밖의 다양한 부가 정보를 포함할 수 있다. 파서 및 코덱은 각각 하드웨어 또는 소프트웨어로 구현될 수 있다. 소프트웨어로 구현된 경우, 파서 및 코덱은 저장부(250)에 저장된다. 재생 능력 정보를 전송하는 시점은 실시 예에 따라 다양하게 달라질 수 있다.
일 예로, 통신부(210)는 기 설정된 시간 주기가 도래할 때마다 재생 능력 정보를 서버 장치(100)로 전송할 수 있다.
다른 예로, 통신부(210)는 입력부(220)에서 컨텐츠 공유 기능이 선택되었을 때 재생 능력 정보를 전송할 수 있다. 재생 능력 정보는 컨텐츠에 대한 공유 요청과 함께 전송될 수도 있고, 공유 요청 이전 또는 이후에 전송될 수도 있다.
또 다른 예로는, 통신부(210)는 서버 장치(100)로부터 정보 요청이 전송되었을 때, 재생 능력 정보를 전송할 수 있다.
또 다른 예로는, 클라이언트 장치(200)가 서버 장치(100)에 최초 접속된 경우에 재생 능력 정보를 전송하거나, 재생 능력에 변경이 있을 경우마다 재생 능력 정보를 전송할 수 있다.
이상과 같이, 통신부(210)는 다양한 방식으로 재생 능력 정보를 서버 장치(100)로 제공할 수 있다.
다시 도 4에 대한 설명으로 돌아가면, 입력부(220)는 각종 사용자 선택 명령을 입력받기 위한 구성요소이다. 입력부(220)는 클라이언트 장치(200)의 본체에 구비된 버튼이나 휠, 터치 스크린, 터치 패드, 마우스, 키보드, 조이스틱 등으로 구현될 수 있다. 사용자는 입력부(220)를 이용하여 컨텐츠 공유 기능을 선택할 수 있다.
제어부(230)는 입력부(220)를 통해 입력된 사용자 선택 명령에 따라 클라이언트 장치(200)의 동작을 제어한다. 구체적으로는, 제어부(230)는 입력부(220)에 의해 컨텐츠 공유 기능이 선택되고 공유하고자 하는 컨텐츠가 선택되면, 컨텐츠에 대한 공유 요청을 서버 장치(100)로 전송하도록 통신부(210)를 제어한다. 공유 요청에는 입력부(220)에 의해 선택된 컨텐츠에 대한 식별 정보가 포함된다.
통신부(210)는 공유 요청에 따라 서버 장치(100)로부터 컨텐츠가 전송되면, 이를 수신한다. 컨텐츠는 서버 장치(100)로 전송한 재생 능력 정보에 따라 그대로 전송되거나, 파싱 또는 디코딩된 상태로 전송될 수 있다.
제어부(230)는 서버 장치(100)로부터 전송된 컨텐츠를 저장부(250)에 저장한다. 제어부(230)는 저장부(250)에 저장된 컨텐츠를 디스플레이부(240)를 통해 출력한다. 도 4에서는 디스플레이부(240)만을 도시하였으나, 스피커도 더 포함될 수 있으며, 스피커가 포함된 경우에는 동영상 컨텐츠나 음악 컨텐츠 등도 출력 가능하다.
제어부(230)는 서버 장치(100)로부터 컨텐츠가 원 상태 그대로 전송된 경우에는 컨텐츠를 파싱하여 비디오 데이터 및 오디오 데이터를 분리하고, 각 데이터에 대한 코덱 정보를 확인한다. 제어부(230)는 확인된 코덱 정보에 대응되는 코덱을 이용하여 비디오 데이터 및 오디오 데이터를 각각 디코딩하여 출력한다.
반면, 제어부(230)는 저장부(250)에 파서가 저장되지 않은 경우에는, 서버 장치(100)로부터 파싱된 컨텐츠를 수신한다. 제어부(230)는 파싱 결과에 따라, 컨텐츠 내의 비디오 데이터 및 오디오 데이터를 디코딩하여 출력한다.
파서 및 코덱 모두가 마련되어 있지 않거나, 파서가 없는 경우에는, 제어부(230)는 서버 장치(100)로부터 디코딩된 컨텐츠를 수신한다. 이에 따라, 제어부(230)는 수신된 컨텐츠에 대해 별다른 추가 처리 없이 바로 디스플레이부(240) 등을 통해 출력한다.
이상의 실시 예에서는 클라이언트 장치(200)는 자신의 재생 능력 정보를 서버 장치(100)로 전송하고, 서버 장치(100)가 이를 바탕으로 클라이언트 장치(200)의 재생 능력을 판단하는 것으로 설명하였다.
하지만, 본 발명의 다른 실시 예에 따르면, 클라이언트 장치(200)가 컨텐츠의 재생 가능 여부를 직접 판단할 수도 있다.
즉, 통신부(210)는 서버 장치(100)로부터 파서 및 코덱 목록을 수신한다. 파서 및 코덱 목록은 서버 장치(100)와의 최초 접속시에 또는 주기적으로 수신할 수 있다.
저장부(250)는 수신된 파서 및 코덱 목록을 저장한다. 그 밖에, 저장부(250)에는 클라이언트 장치(200)에 이미 설치되어 있는 파서 및 코덱에 대한 정보도 함께 저장되어 있을 수 있다.
또한, 통신부(210)는 서버 장치(100)로부터 제공 가능한 컨텐츠의 목록에 대한 정보를 수신할 수 있다.
제어부(230)는 수신된 컨텐츠 목록을 디스플레이부(240)를 통해 디스플레이한다. 사용자는 입력부(220)를 이용하여, 컨텐츠 목록 상에서 하나를 선택하여 재생 요청을 입력할 수 있다.
제어부(230)는 재생 요청이 입력되면, 클라이언트 장치에 기 설치된 파서 및 코덱에 대한 정보와, 서버 장치(100)로부터 수신된 파서 및 코덱 목록을 종합적으로 고려하여, 선택된 컨텐츠에 대한 파싱 및 디코딩이 가능한지 판단한다.
판단 결과, 선택된 컨텐츠를 파싱하기 위한 파서 및 디코딩하기 위한 코덱이 클라이언트 장치(200)에 이미 설치된 상태라면, 제어부(230)는 컨텐츠에 대한 재생이 가능하다고 판단하고, 통신부(210)를 이용하여 서버 장치(100)로 컨텐츠 공유 요청을 전송한다.
또는, 파서나 코덱 중 적어도 하나가 클라이언트 장치(200)에 설치되어 있지 않고, 서버 장치(100)에 설치되어 있다면, 제어부(230)는 서버 장치(100)로 컨텐츠 공유 요청을 전송할 때 자신의 재생 능력 정보 또는 파싱 및 디코딩 요청을 함께 전송하여 서버 장치(100)가 필요한 처리를 수행한 후 컨텐츠를 전송하도록 할 수 있다.
반면, 파서 및 코덱 중 적어도 하나가 클라이언트 장치(200) 및 서버 장치(100) 중 어디에도 설치되어 있지 않다면, 제어부(230)는 컨텐츠에 대한 재생이 불가능하다고 판단한다. 이 경우, 디스플레이부(240)는 재생 불가 메시지를 디스플레이한다.
이러한 실시 예에 따르면, 사용자가 재생 불가능한 컨텐츠를 선택하였을 경우, 서버 장치(100)로 컨텐츠를 요청하여 수신한 후 클라이언트 장치(200)에서 재생을 시도하는 과정이 생략될 수 있다. 이에 따라 통신 과정을 위한 자원을 절역할 수 있다. 또한, 클라이언트 장치(200) 자체에서 재생이 불가능하더라도 서버 장치(100)에서 재생이 가능한 컨텐츠의 경우, 바로 서버 장치(100)로 요청하여 신속하게 재생이 이루어질 수도 있게 된다.
한편, 본 발명의 또 다른 실시 예에 따르면, 클라이언트 장치(200)의 디스플레이부(240)에서 디스플레이되는 컨텐츠 목록 자체에 재생 가능 여부가 표시될 수 있다. 가령, 클라이언트 장치(200) 및 서버 장치(100)에 현재 설치된 파서 및 코덱으로는 재생이 불가능한 컨텐츠에 대해서는, 현재 재생 불능 상태임을 알리기 위한 기호나 텍스트, 이미지 등을 컨텐츠 목록 상에 함께 표시하여 줄 수 있다.
또는, 이러한 재생 불능 상태의 컨텐츠에 대해서는 사용자가 선택 불가능한 비활성 상태로 희미하게 표시하여, 사용자가 해당 컨텐츠는 재생할 수 없다는 점을 직관적으로 알도록 할 수도 있다.
또는, 재생 불능 상태의 컨텐츠에 대해서는 아예 컨텐츠 목록에 표시하지 않도록 구현할 수도 있다.
이상과 같이 서버 장치(100) 및 클라이언트 장치(200)는 각 장치의 능력(capacity)에 따라 컨텐츠의 처리가 가능한지 여부를 판단하여, 그에 따른 조치를 취할 수 있다.
이하에서는, 본 발명의 다양한 실시 예에 따른 컨텐츠 공유 방법을 수행하기 위한, 서버 장치(100) 및 클라이언트 장치(200) 사이의 상호 작용들을 구체적으로 설명한다.
< 컨텐츠 공유 과정에 대한 다양한 예 >
도 6은 본 발명의 일 실시 예에 따른 컨텐츠 공유 방법을 설명하기 위한 타이밍도이다. 도 6은 서버 장치(100)의 사용자가 서버 장치(100)에 저장되어 있거나 서버 장치(100)에서 재생 중이던 컨텐츠를 타 장치, 즉, 클라이언트 장치(200)로 전송하여 클라이언트 장치(200)에서 재생하도록 하는 과정을 나타낸다. 서버 장치(100)의 사용자는 타인의 요청에 의해 또는, 자신이 다른 장치를 이용하여 컨텐츠를 재생시키고자 하는 경우에 도 6과 같이 컨텐츠를 공유할 수 있다.
도 6에 따르면, 사용자는 서버 장치(100)에서 타 장치와 공유하고자 하는 컨텐츠를 선택할 수 있다(S610). 컨텐츠는 서버 장치(100) 내부의 저장부(130)에 저장된 컨텐츠 또는 서버 장치(100)와 연결된 네트워크에서 검색된 컨텐츠 등 다양하게 있을 수 있다.
컨텐츠 선택 이후에 사용자는 컨텐츠를 공유할 클라이언트 장치를 선택할 수 있다(S620). 이 경우, 서버 장치(100)는 통신 연결된 외부 기기에 대한 정보를 화면 상에 디스플레이하여 사용자가 선택할 수 있도록 한다.
도 6에서는 컨텐츠 선택 이후에 클라이언트 장치를 선택할 수 있는 것으로 도시되었으나, 구현에 있어서 그 순서는 반대가 될 수도 있음은 물론이다.
사용자가 클라이언트 장치(200)를 선택하면 서버 장치(100)는 클라이언트 장치(200)와 통신을 연결하고, 클라이언트 장치(200)로 재생 능력 정보를 요청한다(S630).
클라이언트 장치(200)는 요청에 응답하여 재생 능력 정보를 전송한다(S640). 상술한 바와 같이 재생 능력 정보에는 파서, 코덱에 대한 정보 뿐만 아니라 해상도, 디스플레이 사이즈, 출력 프레임 레이트, 출력 색 대역(color gamut) 등과 같은 다양한 부가 정보가 더 포함되어 있을 수 있다.
서버 장치(100)는 재생 능력 정보 및 사용자가 선택한 컨텐츠의 속성을 비교하여 재생 가능한지 여부를 판단하고(S650), 그 판단 결과에 따라 컨텐츠를 처리하거나(S660), 그대로 클라이언트 장치(200)로 전송한다(S670). 클라이언트 장치(200)는 전송된 컨텐츠를 재생한다(S680). 재생 가능 여부를 판단하는 방법과, 그에 따른 컨텐츠 처리 방법에 대해서는 상술한 부분에서 구체적으로 설명하였으므로 중복 설명은 생략한다.
도 7은 본 발명의 다른 실시 예에 따른 컨텐츠 공유 방법을 설명하기 위한 타이밍도이다. 도 7에 따르면, 클라이언트 장치(200)는 재생 능력 정보 전송 이벤트가 발생하면(S710), 재생 능력 정보를 전송한다(S720). 재생 능력 정보 전송 이벤트란 기 설정된 시간 주기가 도래하는 이벤트, 컨텐츠 공유 기능이 선택되는 이벤트, 서버 장치(100)로부터 정보 요청이 전송되는 이벤트, 서버 장치(100)에 최초 접속되는 이벤트, 클라이언트 장치(200)의 재생 능력에 변경이 생기는 이벤트 등이 될 수 있다.
서버 장치(100)는 재생 능력 정보가 수신되면 컨텐츠 전송 이벤트가 발생하였는지 판단한다(S730). 컨텐츠 전송 이벤트란 서버 장치(100)가 컨텐츠를 클라이언트 장치(200)로 푸쉬(push)하여야 하는 이벤트를 의미한다. 예를 들어, 클라이언트 장치(200) 또는 서버 장치(100)의 사용자가 컨텐츠 전송 예약을 설정한 경우라면 그 예약 시간이 도래하는 이벤트, VOD(Video on Demand) 예약 사항이 발생한 이벤트, 클라이언트 장치(200)로 제공해야 할 광고, 공지 사항, DID(Digital Information Display) 컨텐츠가 발생하는 이벤트 등이 있을 수 있다. 이러한 이벤트가 발생하면, 서버 장치(100)는 기 전송되어 저장된 재생 능력 정보와 컨텐츠의 속성을 비교하여, 클라이언트 장치(200)가 재생 가능한 상태인지 여부를 판단하고(S740), 그 판단 결과에 따라 컨텐츠를 그대로 또는 처리하여(S750), 전송한다(S760). 클라이언트 장치(200)는 서버 장치(100)로부터 전송된 컨텐츠를 재생한다(S770).
이상과 같이 도 6 및 도 7에서는 클라이언트 장치(200)에서 컨텐츠 공유 요청이 없는 상태에서도 컨텐츠 공유가 이루어질 수 있는 실시 예들에 대하여 설명하였다. 하지만, 클라이언트 장치(200)에서 직접 컨텐츠를 요청하는 실시 예도 있을 수 있다.
도 8은 본 발명의 또 다른 실시 예에 따른 컨텐츠 공유 방법을 설명하기 위한 타이밍도이다.
도 8에 따르면, 클라이언트 장치(200)는 재생 능력 정보를 서버 장치(100)로 전송한다(S810). 서버 장치(100)는 재생 능력 정보를 전송한 클라이언트 장치(200)에 대해서 컨텐츠 목록을 전송한다(S820).
클라이언트 장치(200)에서는 전송된 컨텐츠 목록을 디스플레이하여, 사용자가 선택하도록 한다. 사용자는 컨텐츠 목록 상에서 적어도 하나를 선택할 수 있다. 클라이언트 장치(200)는 선택된 적어도 하나의 컨텐츠에 대한 공유 요청을 전송할 수 있다(S830).
서버 장치(100)는 공유 요청이 수신되면, 요청된 컨텐츠의 속성과 클라이언트 장치(200)의 재생 능력 정보에 기초하여 클라이언트 장치(200)가 컨텐츠 재생이 가능한지 여부를 판단한다(S840).
판단 결과에 따라 컨텐츠를 그대로 또는 적절하게 처리하여(S850), 클라이언트 장치로 전송한다(S200). 전송은 컨텐츠에 대한 처리가 완료된 이후에 한꺼번에 이루어질 수도 있고, 처리가 이루어지는 중에 먼저 처리된 컨텐츠 부분부터 실시간으로 스트리밍하는 방식으로 이루어질 수도 있다. 클라이언트 장치(200)는 수신된 컨텐츠를 재생한다(S870).
상술한 다양한 실시 예들에서 설명한 바와 같이, 서버 장치(100)는 재생 능력 정보와 컨텐츠의 속성을 이용하여 재생 가능 여부를 판단하고, 그 판단 결과에 따른 처리를 수행한다. 이하에서는 서버 장치(100)의 판단 방법 및 그 처리 방법에 대하여 구체적으로 설명한다.
도 9는 본 발명의 일 실시 예에 따른 서버 장치의 컨텐츠 공유방법을 설명하기 위한 흐름도이다. 도 9에 따르면, 서버 장치(100)는 클라이언트 장치의 재생 능력 정보를 수신하고(S910), 제공할 컨텐츠의 속성을 확인한다(S920). 컨텐츠의 속성에는 컨텐츠 타입, 코덱 정보, 컨텐츠의 사이즈, 해상도, 재생 시간 등과 같이 다양한 정보가 있을 수 있다.
서버 장치는 클라이언트 장치가 컨텐츠를 처리할 수 있는 파서 및 코덱을 모두 구비하였는지 여부를 판단한다(S930).
구체적으로는, 서버 장치(100)는 컨텐츠가 동영상 컨텐츠인 경우 클라이언트 장치가 동영상 파서를 구비하였는지 판단한다. 서버 장치(100)는 컨텐츠 파일의 확장자를 이용하여 그 컨텐츠의 종류를 판단하고, 그에 대응하는 파서를 결정할 수 있다. 가령, 동영상 컨텐츠의 경우에는 AVI, MPG, TP, TS, ASF 등과 같은 확장자를 가지고, 이미지 컨텐츠인 경우에는 JPEG, PNG, BMP, GIF 등과 같은 확장자를 가진다. 또한, 오디오 컨텐츠의 경우에는 MP3, OGG, WMA 등과 같은 확장자를 가지며, 문서 컨텐츠의 경우에는 DOC, HWP, XLS, PPT 등과 같은 확장자를 가진다. 서버 장치(100)는 각 컨텐츠 파일의 확장자를 확인한 후, 어떤 파서가 필요한지 판단할 수 있다.
또한, 컨텐츠의 확장자에 대응되는 코덱을 클라이언트 장치가 구비하였는지 판단한다. 일 예로, 컨텐츠가 윈도우 확장자인 wmv 로 압축된 파일이라면, 클라이언트 장치에 wmv 코덱이 설치되어 있는지 판단한다. 그 밖에, AVI(Audio Video Interleave) 파일인 경우에는 MPEG 코덱이 설치되어 있는지 판단하고, DIVX, XVID 등의 확장자가 붙은 경우에는 DIVX 코덱 및 XVID 코덱이 설치되어 있는지 판단한다. 같은 코덱이 설치되어 있다면 버전까지 확인한다. 확인 결과 버전이 다르다면 코덱을 구비하지 않은 상태로 판단한다.
클라이언트 장치가 파서 및 코덱을 모두 구비하였다고 판단되면(S930), 컨텐츠를 그대로 스트리밍(streaming)한다(S940). 반면, 파서만을 구비하였거나(S950 : Y), 파서 및 코덱 모드를 구비하지 않은 경우에는(S970 : N), 서버 장치에서 해당 컨텐츠를 파싱 및 디코딩하여 스트리밍한다(S960).
한편, 파서를 구비하지 않고 코덱만 구비한 경우에는(S970 : Y), 컨텐츠를 파싱한 후 파싱 결과와 함께 컨텐츠를 스트리밍한다(S980).
이에 따라, 클라이언트 장치(200)는 파서나 코덱을 구비하지 못하였음에도 불구하고 컨텐츠를 재생할 수 있게 된다.
도 10은 본 발명의 다른 실시 예에 따른 서버 장치의 컨텐츠 공유 방법을 설명하기 위한 흐름도이다.
도 10에 따르면, 재생 능력 정보를 수신하고(S1010), 컨텐츠의 속성을 확인한 후(S1020), 두 정보를 비교한 결과, 클라이언트 장치가 파서 및 코덱을 모두 구비한 경우에는(S1030), 컨텐츠를 그대로 스트리밍한다(S1040).
반면, 파서만을 구비하고 있거나(S1050 : Y), 파서 및 코덱 모두를 구비하지 못한 경우에는(S1110 : N), 서버 장치(100)가 파서 및 코덱을 모두 구비하고 있는지 판단한다(S1060).
판단 결과, 서버 장치(100)가 모두 구비하고 있다면 컨텐츠를 파싱 및 디코딩하여 스트리밍한다(S1070). 반면, 서버 장치(100)가 파서 및 코덱을 모두 다 구비하고 있지는 않다면, 미구비된 것을 설치 가능한지 판단한다(S1080). 가령, 파서가 미설치상태라면 서버 장치(100)에 유선 또는 무선으로 연결된 각종 외부 기기나, 인터넷을 통해서 필요한 파서를 제공할 수 있는 소스를 검색한다. 코덱도 마찬가지 방식으로 검색할 수 있다.
서버 장치(100)는 서버가 검색되어 설치가 가능하다면, 해당 파서 또는 코덱을 설치하여(S1090), 파싱 및 디코딩을 수행하고, 최종 처리된 컨텐츠를 클라이언트 장치(200)로 스트리밍한다(S1070). 반면, 설치가 불가능하다면 재생 불가 응답을 클라이언트 장치(200)로 전송한다(S1100). 서버 장치(100)에 디스플레이부나 스피커와 같은 출력 수단이 구비되어 있다면, 재생 불가 응답은 서버 장치(100)에서 출력될 수도 있다.
한편, 파서를 구비하지 않고 코덱만을 구비한 경우에는(S1110 : Y), 서버 장치(100)가 파서를 구비하였는지 판단한다(S1120). 판단 결과 파서를 구비하였다면, 서버 장치(100)가 해당 컨텐츠를 파싱한 후 파싱 결과와 컨텐츠를 함께 스트리밍한다(S1130). 반면, 파서를 구비하지 않았다면 서버 장치(100)가 파서를 설치할 수 있는지 여부를 판단한다(S1140). 파서 설치가 가능하다면 설치 후(S1150), 컨텐츠를 파싱하여 파싱 결과 및 컨텐츠를 클라이언트 장치(200)로 스트리밍한다(S1130). 서버 장치(100)가 파서를 설치할 수 없다면(S1140), 재생 불가 응답을 클라이언트 장치(200)로 전송하거나, 자체적으로 출력한다(S1160).
이상과 같이, 클라이언트 장치(200)에 파서 및 코덱 중 적어도 하나가 설치되어 있지 않더라도, 다양한 방식으로 재생 가능성을 높일 수 있게 된다.
클라이언트 장치(200)는 컨텐츠 공유 및 재생을 위해서 다양한 레이아웃의 화면을 디스플레이할 수 있다. 도 12 내지 도 14는 클라이언트 장치(200)에서 표시되는 화면의 예를 나타낸다.
먼저, 도 12에 따르면, 클라이언트 장치(200)는 통신 연결된 각종 장치들에 대한 제1 표시 영역(10) 및 네트워크를 통해 검색된 컨텐츠의 종류 및 개수에 대한 제2 표시 영역(20)을 포함하는 화면을 디스플레이한다.
제1 표시 영역(10)에는 클라이언트 장치(200)를 중심으로 연결된 각 장치들에 대한 아이콘 이미지가 표시된다. 제1 표시 영역(10)에 표시되는 이미지는 검색된 장치의 개수만큼 상이한 개수의 아이콘 이미지를 포함할 수도 있고, 단순히 컨텐츠 공유 기능이 실행되었을 때 디폴트로 보여지는 고정 이미지일 수도 있다.
제2 표시 영역(20)에는 동영상 카테고리, 사진 카테고리, 음악 카테고리와 같이 복수의 서로 다른 컨텐츠 타입 별로 분류된 카테고리가 표시되고, 그 카테고리에 속하는 컨텐츠의 개수가 함께 표시된다.
사용자는 제2 표시 영역(20)에서 하나의 카테고리를 선택하여, 그 카테고리에 속한 컨텐츠의 목록을 확인할 수 있다.
도 13에서는 제2 표시 영역(20)의 카테고리 중 동영상 카테고리가 선택되었을 때 표시되는 화면을 나타낸다. 도 13에 따르면, 화면 상단에는 각 카테고리에 대한 탭(31, 32, 33)이 표시된다.
그리고, 탭(31, 32, 33)하단에는 현재 선택된 탭(31)에 속하는 유형의 컨텐츠들에 대한 정보가 리스트 형태로 표시된다. 이러한 리스트는 검색된 각 서버 장치들로부터 제공되는 컨텐츠 정보에 기초하여 생성될 수 있다. 컨텐츠 정보란 대표 이미지나 텍스트, 풀 재생 시간(full running time), 썸네일 뷰, 제조자, 제공 장치 명 등과 같이 다양한 정보가 될 수 있다. 도 13에서는 각 컨텐츠에 대한 썸네일 뷰와, 설명, 풀 재생 시간 등이 리스트에 표시된 상태를 나타낸다.
한편, 컨텐츠에 대한 정보는 도 13과 같은 리스트 형태 이외에도 다양한 형태로 구현될 수 있다. 가령, 대표 이미지가 표시되지 않고 텍스트로만 구성된 리스트가 표시될 수도 있다.
또한, 도 14에 도시된 바와 같이 각 컨텐츠에 대한 썸네일 뷰가 표시될 수도 있다. 도 14에서는 탭(31, 32, 33) 중에서 사진 카테고리에 해당하는 탭(32)이 선택된 경우를 나타낸다. 도 14에 따르면, 사진 카테고리에 속하는 각종 사진 컨텐츠들의 썸네일 뷰가 매트릭스 형태로 배열된다.
사용자는 도 13이나 도 14와 같이 표시되는 각종 컨텐츠 중 하나를 선택할 수 있다. 클라이언트 장치(200)는 컨텐츠가 선택되면, 선택된 컨텐츠를 제공할 수 있는 서버 장치(100)로 컨텐츠 공유 요청을 전송한다. 이 경우, 컨텐츠 재생 능력도 함께 전송할 수 있다. 컨텐츠 재생 능력 이외에도 다양한 시점에서 전송될 수 있음은 물론이다.
도 15는 서버 장치(100)에서 컨텐츠 공유를 수행하기 위하여 표시하는 화면을 나타내는 도면이다.
도 15에 따르면, 서버 장치(100)는 복수의 아이콘들을 포함하는 배경 화면(a)을 디스플레이한다. 이러한 상태에서 컨텐츠 공유 기능에 대응되는 아이콘(41)이 선택되면, 서버 장치(100)는 기 저장된 컨텐츠를 그 유형에 따라 분류한 복수의 카테고리가 표시된 화면(b)을 디스플레이한다.
도 15에서는 비디오 카테고리(51), 오디오 카테고리(52), 사진 카테고리(53)를 포함하는 화면(b)이 디스플레이된 상태를 도시하였으나, 카테고리의 종류는 다양하게 마련될 수 있다.
이러한 상태에서 도 15에 도시된 바와 같이 비디오 카테고리(51)가 선택되면, 비디오 카테고리(51)에 속하는 비디오 컨텐츠들이 리스트 형태로 나열되는 화면(c)이 디스플레이된다. 사용자는 이 중 하나의 컨텐츠를 터치하여 선택할 수 있다.
화면(c) 상에서 하나의 컨텐츠가 선택되면 선택된 컨텐츠를 재생할 대상을 선택하기 위한 팝업 창(d)이 디스플레이된다. 팝업 창(d)에는 서버 장치(100) 자신을 포함하여 연결된 각종 장치들에 대한 정보가 표시되는 정보 표시 영역(61), 재검색을 수행하기 위한 메뉴(62), 장치 선택을 취소하기 위한 메뉴(63) 등이 포함될 수 있다.
사용자가 팝업 창(d) 내의 정보 표시 영역(61)에서 하나의 장치를 선택하면, 선택된 장치가 클라이언트 장치가 된다. 즉, 서버 장치(100)는 선택된 클라이언트 장치의 재생 능력 정보와 선택된 컨텐츠의 속성을 확인하여 재생 가능한지 여부를 판단한다. 그에 따라, 컨텐츠를 그대로 전송하거나 또는 파싱이나 디코딩을 수행한 후 전송한다.
도 15에서는 컨텐츠가 리스트 형태로 정리되어 표시되었으나, 도 14에 도시된 바와 같이 동영상 컨텐츠 역시 대표 이미지를 이용하여 썸네일 뷰 형태로 표시될 수 있다.
이상과 같이, 서버 장치(100) 및 클라이언트 장치(200)는 다양한 방식으로 컨텐츠를 공유할 수 있다. 한편, 상술한 바와 같이 서버 장치(100)는 다양한 형태의 장치로 구현될 수 있다. 따라서, 구현 형태에 따라 서버 장치(100)에 포함되는 구성 요소들도 추가 또는 변형될 수 있으며, 일부가 삭제될 수도 있다.
도 16은 본 발명의 다양한 실시 예에 따른 서버 장치(100)의 구성을 종합적으로 설명하기 위한 블럭도이다.
도 16에 따르면, 서버 장치(100)는 통신부(110), 제어부(120), 저장부(130), GPS 수신부(140), DMB 수신부(145), 오디오 처리부(150), 비디오 처리부(160), 디스플레이부(170), 스피커(175), 센서부(180), 버튼(191), USB 포트(192), 카메라(193), 마이크(194)를 포함한다.
통신부(110)는 와이파이 칩(111), 블루투스 칩(112), NFC 칩(113), 무선 통신 칩(114) 등과 같은 다양한 통신 방식에 따른 하드웨어를 포함한다. 이들 칩은 구현상 원 칩으로 집적화되어 사용될 수도 있고, 도 16과 같이 각각 별개의 칩으로 사용될 수도 있다.
와이파이 칩(111), 블루투스 칩(112), NFC 칩(113)은 각각 WiFi 방식, 블루투스 방식, NFC 방식으로 통신을 수행한다. 이 중 NFC 칩(113)은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다. NFC 칩(113)을 사용하는 경우 클라이언트 장치(200)에는 NFC 태그가 마련되어 있어야 한다. 이에 따라, 사용자가 서버 장치(100)나 클라이언트 장치(200)를 이동시켜, 서로 통신 가능한 범위(약 10cm)내에 위치시키면 NFC 태그에 기록된 재생 능력 정보가 NFC 칩(113)에 의해 서버 장치(100)에 읽히게 된다. 이러한 방식으로 재생 능력 정보뿐만 아니라, 다양한 정보들을 서로 송수신할 수 있다. 한편, 와이파이 칩(111)이나 블루투스 칩(112)을 이용하는 경우에는 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다.
그 밖에, 무선 통신 칩(114)은 3G, 4G 등과 같이 이동 통신 망을 이용하거나, 인터넷 망을 이용하여 다양한 방식의 무선 통신을 수행할 수 있다.
통신부(110)는 이러한 다양한 구성의 칩들을 이용하여 클라이언트 장치(200)를 비롯한 각종 외부 장치와 통신을 수행할 수 있다. 특히, 클라이언트 장치(200)로부터 재생 능력 정보, 컨텐츠 공유 요청 등을 수신할 수 있다.
GPS 수신부(140)는 GPS(Grobal Positioning System) 위성으로부터 GPS 신호를 수신하여, 서버 장치(100)의 현재 위치를 산출하기 위한 구성요소이다. DMB 수신부(145)는 DMB(Digital Multimedia Broadcasting) 신호를 수신하여 처리하는 구성요소이다.
오디오 처리부(150)는 오디오 데이터에 대한 처리를 수행하는 구성요소이다. 오디오 처리부(150)에서는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다.
비디오 처리부(160)는 비디오 데이터에 대한 처리를 수행하는 구성요소이다. 비디오 처리부(160)에서는 비디오 데이터에 대한 디코딩, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 해상도 변환 등과 같은 다양한 이미지 처리를 수행할 수 있다. 특히, 상술한 코덱은 소프트웨어로도 구현될 수 있지만, 하드웨어로도 구현될 수 있다. 비디오 처리부(160)는 하드웨어로 구현된 코덱을 포함하며, 이를 이용하여 비디오 데이터에 대한 인코딩 또는 디코딩을 수행할 수 있다.
디스플레이부(170)는 제어부(120)의 제어에 따라 다양한 화면 또는 객체를 디스플레이할 수 있다. 구체적으로는, 서버 장치(100)가 컨텐츠 공유 기능을 개시하는 경우에는 공유할 컨텐츠를 선택하기 위한 화면이나, 클라이언트 장치를 선택하기 위한 화면이 디스플레이부(170) 상에 디스플레이될 수 있다.
스피커(175)는 오디오 처리부(150)에서 처리된 각종 오디오 데이터 뿐만 아니라 각종 알림 음이나 음성 메시지 등을 출력할 수 있다.
센서부(180)는 서버 장치(100)에 대한 사용자의 조작 내용이나 서버 장치(100)의 상태 등을 센싱하기 위한 구성요소이다. 센서부(180)는 지자기 센서(181), 자이로 센서(182), 가속도 센서(183), 터치 센서(184) 등과 같은 다양한 센서를 포함할 수 있다.
지자기 센서(181)는 2축 또는 3축 플럭스게이트를 이용하여 주변 지자기 변화를 감지하는 센서이다. 제어부(120)는 지자기 센서(181)에서 감지된 지자기 값을 이용하여, 방위각을 산출할 수 있다. 이에 따라, 서버 장치(100)가 어느 방향으로 회전하였는지 여부를 판단할 수 있다. 가속도 센서(182)는 움직임 발생시 가속도 및 가속도의 방향을 측정할 수 있는 센서이다. 구체적으로는, 가속도 센서(182)는 그 센서가 부착된 서버 장치(100)의 기울기에 따라 변화되는 중력 가속도에 대응되는 센싱 값을 출력한다. 제어부(120)는 가속도 센서(182)의 출력값을 이용하여 이동체의 기울어진 정도를 판단할 수 있다. 자이로 센서(183)는 회전 운동이 일어나면, 그 속도 방향으로 작용하는 코리올리의 힘을 측정하여, 각속도를 검출하는 센서이다. 제어부(120)는 자이로 센서(183)의 측정 값을 이용하여서도 서버 장치(100)의 회전을 검출할 수 있다. 터치 센서(184)는 디스플레이부(170)에 연결되어, 사용자의 터치 조작을 감지할 수 있다. 터치 센서(184)는 정전식 또는 감압식으로 구현될 수 있다. 정전식 터치 센서는, 디스플레이부(170) 표면에 코팅된 유전체를 이용하여, 사용자의 신체 일부가 디스플레이부(170) 표면에 터치되었을 때 사용자의 인체로 여기되는 미세 전기를 감지하여 터치 좌표를 산출하는 방식의 센서를 의미한다. 감압식 터치 센서는 디스플레이부(170)에 내장된 두 개의 전극 판을 포함하여, 사용자가 화면을 터치하였을 경우, 터치된 지점의 상하 판이 접촉되어 전류가 흐르게 되는 것을 감지하여 터치 좌표를 산출하는 방식의 터치 센서를 의미한다. 센서부(180)는 터치 센서를 통해 사용자가 터치한 지점의 좌표를 검출하여 제어부(120)로 제공한다.
제어부(120)는 센서부(180)로부터 제공되는 각종 센싱 신호에 따라 다양한 제어 동작을 수행할 수 있다. 즉, 터치 센서(184)에 의해 터치된 지점의 좌표값이 컨텐츠 공유 아이콘이 표시된 좌표에 해당하면, 컨텐츠 공유 기능이 선택된 것으로 인식하여, 그에 대응되는 프로그램을 실행시킨다. 또한, 지자기 센서(181), 자이로 센서(182), 가속도 센서(183) 등에 의해 서버 장치(100)가 가로 방향 또는 세로 방향으로 회전한 것이 감지되면, 회전 방향에 따라 화면을 전환하는 동작도 수행할 수 있다. 또한, 지자기 센서(181), 자이로 센서(182), 가속도 센서(183)에 의해 감지되는 서버 장치(100)의 움직임에 따라, 사용자의 의도를 파악하여 컨텐츠 공유 기능을 실행시킬 수도 있다.
그 밖에, 서버 장치(100)는 버튼(191), USB 포트(192), 카메라(193), 마이크(194) 등과 같은 다양한 구성 요소를 더 포함할 수 있다. 버튼(191)은 서버 장치(100)의 본체 외관의 전면부나 측면부, 배면부 등의 임의의 영역에 형성된 기계적 버튼, 터치 패드, 휠 등과 같은 다양한 유형의 버튼이 될 수 있다. USB 포트(192)는 USB 메모리나 USB 커넥터가 연결될 수 있는 포트를 의미한다. 서버 장치(100)는 USB 포트(192) 뿐만 아니라 각종 연결 포트에 의해 연결된 외부 장치에 저장된 컨텐츠도 함께 검색하여 공유 가능한지 확인할 수 있다.
카메라(193) 및 마이크(194)가 마련된 경우, 제어부(120)는 마이크(194)를 통해 입력되는 사용자 음성이나 카메라(193)에 의해 인식되는 사용자 모션에 따라 제어 동작을 수행할 수도 있다. 즉, 서버 장치(100)는 모션 제어 모드나 음성 제어 모드로 동작할 수 있다. 모션 제어 모드로 동작하는 경우, 제어부(120)는 카메라(193)를 활성화시켜 사용자를 촬상하고, 사용자의 모션 변화를 추적하여 그에 대응되는 제어 동작을 수행한다. 가령, 사용자가 컨텐츠 공유 기능에 대응되는 모션을 수행하였다고 판단되면, 제어부(120)는 저장된 컨텐츠를 검색하여 디스플레이부(170) 상에 도 15와 같은 화면(a)을 디스플레이할 수 있다. 또는, 마이크(194)에 의해 입력된 사용자 음성을 분석하여, 사용자가 컨텐츠 공유 기능에 대응되는 음성을 발음한 것으로 판단되면, 도 15와 같은 화면(a)을 디스플레이할 수도 있다.
상술한 제어부(120)의 동작은 저장부(130)에 저장된 프로그램에 의해 이루어질 수 있다.
즉, 저장부(130)에는 서버 장치(100)를 구동시키기 위한 O/S(Operating System) 소프트웨어, 컨텐츠 공유 기능을 수행하기 위한 어플리케이션, 어플리케이션 실행 중에 입력되거나 설정되는 각종 데이터, 컨텐츠 등과 같이 다양한 데이터가 저장될 수 있다. 제어부(120)는 저장부(130)에 저장된 각종 프로그램을 이용하여 서버 장치(100)의 동작을 전반적으로 제어한다.
구체적으로는, 제어부(120)는 RAM(121), ROM(122), 메인 CPU(123), 그래픽 처리부(124), 제1 내지 n 인터페이스(125-1 ~ 125-n), 버스(126)를 포함한다.
RAM(121), ROM(122), 메인 CPU(123), 그래픽 처리부(124), 제1 내지 n 인터페이스(125-1 ~ 125-n) 등은 버스(138)를 통해 서로 연결되어, 각종 데이터나 신호 등을 송수신할 수 있다.
제1 내지 n 인터페이스(125-1 ~ 125-n)는 도 16에 도시된 각종 구성 요소들 뿐만 아니라, 그 밖의 구성 요소들과도 연결되어 메인 CPU(123)가 액세스할 수 있도록 한다.
메인 CPU(123)는 저장부(130)에 액세스하여, 저장부(130)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고, 저장부(130)에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 다양한 동작을 수행한다.
구체적으로는, ROM(122)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴온 명령이 입력되어 전원이 공급되면, 메인 CPU(123)는 ROM(122)에 저장된 명령어에 따라 저장부(130)에 저장된 O/S를 RAM(121)에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, 메인 CPU(123)는 저장부(130)에 저장된 각종 어플리케이션 프로그램을 RAM(121)에 복사하고, RAM(121)에 복사된 어플리케이션 프로그램을 실행시켜 각종 동작을 수행한다.
그래픽 처리부(124)는 메인 CPU(123)의 제어에 따라 각종 화면을 구성한다. 구체적으로는, 그래픽 처리부(124)는 도 15의 a, b, c와 같은 화면을 표시할 수 있다. 그래픽 처리부(124)는 화면에 대한 표시 상태 값을 계산한다. 표시 상태 값이란 화면상에서 객체가 표시될 위치의 좌표값, 객체의 형태, 크기, 컬러 등을 나타내는 속성값 등이 될 수 있다. 그래픽 처리부(124)는 표시 상태 값이 계산되면, 그 값에 기초하여 렌더링을 수행하여, 화면을 생성한다.
메인 CPU(123)는 센서부(180) 또는 버튼(191)에 의해 사용자가 컨텐츠 공유 명령을 입력한 것으로 판단되면, 저장부(140)에 저장된 컨텐츠를 검색하고, 그 검색 결과에 대응되는 화면을 생성하도록 그래픽 처리부(124)를 제어한다.
상술한 바와 같이 제어부(120)는 저장부(130)에 저장된 프로그램을 RAM(121)에 복사하고 실행시켜, 다양한 동작을 수행할 수 있다.
도 17은 저장부(130)에 저장된 소프트웨어의 계층을 설명하기 위한 도면이다. 도 17에 따르면, 저장부(130)에는 베이스 모듈(131), 센싱 모듈(132), 통신 모듈(133), 프리젠테이션 모듈(134), 웹 브라우저 모듈(135), 컨텐츠 처리 모듈(136)을 포함한다.
베이스 모듈(131)이란 서버 장치(100)에 구비된 각 하드웨어들로부터 전달되는 신호를 처리하여 상위 레이어 모듈로 전달하는 기초 모듈을 의미한다.
베이스 모듈(131)은 스토리지 모듈(131-1), 위치 기반 모듈(131-2), 보안 모듈(131-3), 네트워크 모듈(131-4) 등을 포함한다.
스토리지 모듈(131-1)이란 데이터베이스(DB)나 레지스트리를 관리하는 프로그램 모듈이다. 메인 CPU(123)는 스토리지 모듈(131-1)을 이용하여 저장부(130) 내의 데이터베이스에 액세스하여, 각종 데이터를 리딩(reading)할 수 있다. 위치 기반 모듈(131-2)이란 GPS 칩 등과 같은 각종 하드웨어와 연동하여 위치 기반 서비스를 지원하는 프로그램 모듈이다. 보안 모듈(131-3)이란 하드웨어에 대한 인증(Certification), 요청 허용(Permission), 보안 저장(Secure Storage) 등을 지원하는 프로그램 모듈이고, 네트워크 모듈(131-4)이란 네트워크 연결을 지원하기 위한 모듈로 DNET 모듈, UPnP 모듈 등을 포함한다.
센싱 모듈(132)은 외부 입력 및 외부 디바이스에 대한 정보를 관리하고, 이를 이용하기 위한 모듈이다. 센싱 모듈(132)은 회전 인식 모듈(Rotation Recognition), 음성 인식 모듈(Voice Recognition), 터치 감지 모듈(Touch Recognition), 제스쳐 인식 모듈(Gesture Recognition)을 포함한다. 회전 인식 모듈이란 지자기 센서(181), 자이로 센서(182) 등과 같은 센서에서 감지된 센싱 값을이용하여 회전 각도 및 회전 방향을 산출하는 프로그램이다. 음성 인식 모듈은 마이크(194)에서 수집된 음성 신호를 분석하여, 사용자의 음성을 추출하는 프로그램이며, 터치 감지 모듈은 터치 센서(184)에서 감지된 센싱 값을 이용하여 터치 좌표를 검출하는 프로그램이며, 제스쳐 인식 모듈은 카메라(193)에서 촬상된 이미지를 분석하여 사용자의 제스쳐를 인식하는 프로그램이다.
통신 모듈(133)은 외부와 통신을 수행하기 위한 모듈이다. 통신 모듈(133)은 메신저 프로그램, SMS(Short Message Service) & MMS(Multimedia Message Service) 프로그램, 이메일 프로그램 등과 같은 메시징 모듈(133-1), 전화 정보 수집기(Call Info Aggregator) 프로그램 모듈, VoIP 모듈 등을 포함하는 전화 모듈(133-2)을 포함할 수 있다.
프리젠테이션 모듈(134)은 디스플레이 화면을 구성하기 위한 모듈이다. 프리젠테이션 모듈(134)은 멀티미디어 컨텐츠를 재생하여 출력하기 위한 멀티미디어 모듈(134-1), UI 및 그래픽 처리를 수행하는 UI & 그래픽 모듈(134-2)을 포함한다. 멀티미디어 모듈(134-1)은 플레이어 모듈, 캠코더 모듈, 사운드 처리 모듈 등을 포함할 수 있다. 이에 따라, 각종 멀티미디어 컨텐츠를 재생하여 화면 및 음향을 생성하여 재생하는 동작을 수행한다. UI & 그래픽 모듈(134-2)은 이미지를 조합하는 이미지 합성기(Image Compositor module), 이미지를 디스플레이할 화면 상의 좌표를 조합하여 생성하는 좌표 조합 모듈, 하드웨어로부터 각종 이벤트를 수신하는 X11 모듈, 2D 또는 3D 형태의 UI를 구성하기 위한 툴(tool)을 제공하는 2D/3D UI 툴킷 등을 포함할 수 있다.
웹 브라우저 모듈(135)은 웹 브라우징을 수행하여 웹 서버에 액세스하는 모듈을 의미한다. 웹 브라우저 모듈(135)은 웹 페이지를 구성하는 웹 뷰(web view) 모듈, 다운로드를 수행하는 다운로드 에이전트 모듈, 북마크 모듈, 웹킷(Webkit) 모듈 등과 같은 다양한 모듈을 포함할 수 있다.
컨텐츠 처리 모듈(136)은 저장부(130)에 저장된 컨텐츠를 처리하기 위한 소프트웨어를 의미한다. 재생 능력 판단 모듈(136-1)은 재생 능력 정보와 컨텐츠 속성을 비교하는 알고리즘으로 동작하는 프로그램이다. 파서(136-2) 및 코덱(136-3)은 컨텐츠 처리를 위해서 비디오 처리부(160)로 제공되는 소프트웨어이다. 파서(136-2)는 통상적으로 소프트웨어로만 구현되고, 코덱(136-3)은 소프트웨어로 구현되는 경우도 있고 하드웨어로 구현되는 경우도 있다.
그 밖에, 네비게이션 서비스 모듈, 게임 모듈 등과 같은 다양한 어플리케이션 모듈이 더 포함될 수 있다.
도 17에 도시된 각종 프로그램 모듈들은 서버 장치(100)의 종류 및 특성에 따라 일부 생략되거나 변형 또는 추가될 수도 있다. 가령, 서버 장치(100)가 TV인 경우라면, 방송 수신 모듈이 더 포함될 수 있다. 또는, 전자책 어플리케이션, 게임 어플리케이션 및 기타 유틸리티 프로그램이 더 포함될 수도 있다. 또한, 도 17의 프로그램 모듈들 중에서 일부는 생략될 수도 있다.
그 밖에, 도 16과 같은 구성은 상술한 다양한 실시 예들에서 개시된 서버 장치에도 그대로 적용될 수 있다. 또한, 도 16에 도시된 구성요소들도 서버 장치(100)의 종류 및 특성에 따라 일부 생략되거나 변형 또는 추가될 수 있다. 가령, 서버 장치(100)가 TV인 경우, 안테나나 튜너와 같은 하드웨어도 더 포함될 수 있다.
또한, 도 16에서는 서버 장치(100)의 구성으로 설명하였으나, 상술한 바와 같이 서버 장치(100)와 클라이언트 장치(200)는 동종이거나 또는 유사한 종류의 사용자 단말 장치로 구현될 수도 있다. 이 경우, 도 16의 구성은 클라이언트 장치(200)에도 적용될 수 있다.
한편, 상술한 다양한 실시 예들은 가상 데스크탑 인터페이스(Virtual Desktop Interface(VDI)) 환경에서 구현될 수도 있다. 가상 데스크탑 인터페이스란 여러 대의 클라이언트 장치와 연결된 서버 장치에서 디스플레이할 화면을 구성한 후, 각 클라이언트 장치로 제공하여 각 클라이언트 장치의 사용자가 확인할 수 있도록 하는 환경이다. VDI 환경은 다수의 사용자들과 화면을 공유하기 위한 회의실이나, 공공 장소 등에 적용될 수 있다.
도 18은 본 발명의 일 실시 예에 따른 화면 공유 시스템의 구성을 나타내는 도면이다. 도 18에 따르면, 화면 공유 시스템은 서버 장치(100) 및 복수의 클라이언트 장치(200-1 ~ 200-n)을 포함한다.
서버 장치(100)는 사용자 조작에 따라 화면을 구성한 후, 구성된 화면을 각 클라이언트 장치(200-1 ~ 200-n)에 제공한다. 각 클라이언트 장치(200-1 ~ 200-n)는 제공된 화면을 디스플레이한다. 화면에는 동영상 컨텐츠나, 정지 영상 컨텐츠, 문서, 오디오 컨텐츠 등과 같은 다양한 컨텐츠들에 대한 리스트가 표시될 수 있다. 각 클라이언트 장치(200-1 ~ 200-n)의 사용자들은 자신의 클라이언트 장치의 화면을 터치하거나, 그 클라이언트 장치에 연결된 마우스, 키보드, 조이스틱 등과 같은 입력 수단을 통해 화면 상의 일 지점을 클릭하는 방식으로, 컨텐츠를 선택할 수 있다.
각 클라이언트 장치(200-1 ~ 200-n)는 터치 지점 또는 클릭 지점에 대한 좌표값을 서버 장치(100)로 전송한다. 서버 장치(100)는 각 클라이언트 장치(200-1 ~ 200-n)의 디스플레이 사이즈 및 가로 세로 비율에 기초하여 각 클라이언트 장치(200-1 ~ 200-n)에서 화면의 어떤 지점을 선택하였는지 판단한다. 이에 따라, 선택된 지점에 표시되어 있는 컨텐츠 정보에 대응되는 컨텐츠를 각 클라이언트 장치(200-1 ~ 200-n)로 전송한다. 가령, 제1 클라이언트 장치(200-1)가 제1 컨텐츠를 선택하였다면 서버 장치(100)는 제1 컨텐츠를 제1 클라이언트 장치(200-1)로 전송하고, 제2 클라이언트 장치(200-2)가 제2 컨텐츠를 선택하였다면 서버 장치(100)는 제2 컨텐츠를 제2 클라이언트 장치(200-2)로 전송한다.
각 클라이언트 장치(200-1 ~ 200-n)는 전송된 컨텐츠를 직접 재생한다. 이에 따라, 서버 장치(100)에서의 처리 부담 및 네트워크 자원 부담을 줄일 수 있다. 또한, 각 클라이언트 장치(200-1 ~ 200-n)에서 컨텐츠를 직접 재생하기 때문에 원본 컨텐츠의 품질을 유지할 수 있다.
하지만, 클라이언트 장치들 중에서는 선택된 컨텐츠에 대한 재생 능력이 없는 경우가 있을 수 있다. 서버 장치(100)는 이러한 클라이언트 장치들의 재생 능력 정보를 확인하여, 재생 능력이 있는지 여부를 판단한다. 재생 능력 정보는 상술한 바와 같이 다양한 시점에 제공될 수 있다.
구체적으로는, 서버 장치(100)는 클라이언트 장치들(200-1 ~ 200-n)로부터 주기적으로 또는 컨텐츠 선택 시에 재생 능력 정보를 수신한다. 서버 장치(100)는 수신된 재생 능력 정보에 기초하여 각 클라이언트 장치들(200-1 ~ 200-n)이 해당 컨텐츠를 재생할 수 있는 지 여부를 판단한다. 재생 가능하다면 컨텐츠를 그대로 각 클라이언트 장치들(200-1 ~ 200-n)로 전송한다. 반면, 재생이 불가능하다면 재생 가능한 형태로 변환하여 전송한다. 가령, 파싱이나 디코딩과 같은 작업을 수행한 후 전송한다. 컨텐츠 처리 방법에 대해서는 상술한 다양한 부분에서 구체적으로 설명하였으므로, 중복 설명은 생략한다.
도 19는 도 18의 화면 공유 시스템에서 사용되는 클라이언트 장치들 중 하나에서 표시되는 화면 구성을 나타내는 도면이다. 설명의 편의를 위해서 도 19에서는 복수의 클라이언트 장치들(200-1 ~ 200-n) 중 첫번째 클라이언트 장치(200-1)를 기준으로 설명한다.
도 19에 따르면, 클라이언트 장치(200-1)는 서버 장치(100)에서 제공되는 화면(1900)을 그대로 디스플레이한다. 화면(1900)에는 멀티미디어 컨텐츠의 재생 결과를 표시하기 위한 재생 영역(1910)이 포함될 수 있다.
일반적인 경우, 재생 영역(1910)은 비활성화 상태를 유지한다. 비활성화 상태란 재생 영역(1910)에 아무런 컨텐츠도 표시되지 않는 상태를 의미한다. 비활성화 상태에서는 재생 영역(1910)에는 비활성화 상태임을 알리기 위한 문구나 이미지가 표시될 수 있다.
사용자가 재생 영역(1910) 하부의 재생 버튼(1911)을 선택한 것으로 판단되면, 서버 장치(100)는 요청된 컨텐츠를 클라이언트 장치(200-1)로 전송한다. 이 때, 서버 장치(100)는 컨텐츠 재생 화면이 디스플레이될 좌표 정보를 함께 클라이언트 장치(200-1)로 전송한다. 도 19에서는 재생 영역(1910)의 모서리 영역에 해당하는 좌표값이 클라이언트 장치(200-1)로 전송될 수 있다.
클라이언트 장치(200-1)는 파서 및 코덱 등을 이용하여 컨텐츠를 재생한 후, 재생된 화면을 원 화면(1900)에 오버레이한다. 오버레이 위치는 서버 장치(100)로부터 제공되는 좌표 정보에 기초하여 결정될 수 있다. 결과적으로, 클라이언트 장치(200-1)는 재생된 화면(1920)을 원 화면(1900) 내에서 재생 영역(1910)에 오버레이시킨다. 그리고, 그 화면(1920) 하단에는 컨텐츠 재생 상태를 제어하기 위한 각종 버튼 메뉴(1912)를 표시한다. 컨텐츠 재생이 이루어지고 있는 동안에는 재생 버튼 메뉴(1911)이 일시 정지 버튼 메뉴(1912)로 변경될 수 있다.
클라이언트 장치(200-1)에서 직접 컨텐츠 재생을 하게 되면, 서버의 자원 소비를 감소시킬 수 있으며, 원본 컨텐츠의 화질을 그대로 구현할 수 있다. 하지만, 상술한 다양한 실시 예들에서 설명한 바와 같이 클라이언트 장치(200-1)는 컨텐츠 재생을 위한 파서 및 코덱을 갖치지 못하는 경우도 있다. 이러한 경우, 서버 장치(100)는 해당 컨텐츠에 대한 파싱 및 디코딩 중 적어도 하나의 처리를 수행할 수 있다. 파싱 처리만 이루어진 경우에는, 서버 장치(100)는 파싱 결과를 클라이언트 장치(200-1)로 전송하고, 클라이언트 장치(200-1)는 파싱된 컨텐츠를 디코딩하여 화면(1920)을 생성한다. 그리고, 생성된 화면(1920)을 재생 영역(1910)에 오버레이 시킨다. 디코딩 처리까지 이루어진 경우에는 서버 장치(100)는 디코딩에 의해 생성된 화면 자체를 생성하여 클라이언트 장치(200-1)로 전송한다. 클라이언트 장치(200-1)는 생성된 화면을 재생 영역(1910)에 오버레이 시킨다. 또는, 서버 장치(100)는 컨텐츠 재생 화면을 원 화면(1900)에 추가하여 하나의 화면으로 구성한 후, 전체 화면을 전송하여 줄 수도 있다.
한편, 상술한 실시 예들에서는 하나의 컨텐츠에 대한 처리 방법을 기준으로 설명하였으나, 그 밖에 부가적인 컨텐츠 처리를 위한 방법으로 구현될 수도 있다.
도 20은 본 발명의 또 다른 실시 예에 따른 컨텐츠 제공 시스템의 구성의 일 예를 나타낸다. 도 20에 따르면, 컨텐츠 제공 시스템은 제1 디스플레이 장치(2010), 제2 디스플레이 장치(2020)를 포함한다.
제1 디스플레이 장치(2010)는 복수의 외부 소스(2010-1 ~ 2010-x) 중 하나 또는 별도의 소스로부터 제공되는 컨텐츠를 재생하여 그 재생 화면(2040)을 디스플레이한다. 또한, 제1 디스플레이 장치(2010)는 각 외부 소스(2010-1 ~ 2010-x)로부터 제공되는 부가 영상(2021, 2022, 2023)을 디스플레이할 수 있다. 부가 영상은 메인 영상 화면(2040)보다 작은 크기로 화면 일측에 표시될 수 있다.
이와 같이, 부가 영상을 제공하는 다수의 외부 소스(2010-1 ~ 2010-x)가 존재하는 경우, 각 부가 영상을 처리하기 위해 필요한 코덱 및 파서도 다양할 수 있다. 따라서, 제1 디스플레이 장치(2010)가 재생할 수 없는 부가 영상이 존재할 수 있다. 이 경우, 그 부가 영상을 제공하는 외부 소스는 부가 영상에 대한 파싱, 디코딩 등의 처리를 수행하여 제공할 수 있다.
제1 디스플레이 장치(2010)는 부가 영상 중 하나가 선택되면, 선택된 부가 영상을 제2 디스플레이 장치(2020)로 포워딩해 줄 수도 있다. 도 20에서는 첫 번째 부가 영상(2041)이 선택된 경우, 그 부가 영상에 대한 확대 영상을 제2 디스플레이 장치(2020)에서 디스플레이하는 것을 나타낸다. 제1 및 제2 디스플레이 장치(2010, 2020)는 와이파이, 블루투스, IEEE, 지그비, HDMI, USB 등과 같은 다양한 인터페이스로 연결될 수 있다.
제1 디스플레이 장치(2010)는 부가 영상이 선택되면, 부가 영상 컨텐츠 자체를 제2 디스플레이 장치(2020)로 전송하여 제2 디스플레이 장치(2020)가 직접 재생하도록 할 수 있다. 하지만, 제1 디스플레이 장치(2010)는 부가 영상 처리가 가능하나 제2 디스플레이 장치(2020)는 부가 영상 처리가 불가능한 경우가 있을 수도 있다. 이 경우에는 외부 소스가 아닌 제1 디스플레이 장치(2010)가 해당 부가 영상 컨텐츠를 파싱 및 디코딩하여 제2 디스플레이 장치(2020)로 제공하여 줄 수도 있다.
상술한 부가 영상들은 메인 영상과 관련된 것일 수 있다. 가령, 메인 영상 내에 포함된 특정 장면을 캡쳐한 영상, 메인 영상에 나오는 등장 인물, 장소, 상품 등에 대한 영상, 광고 영상 등이 있을 수 있다. 또한, 외부 소스(2030-1 ~ 2030-x)는 인터넷을 통해 연결된 웹 서버로 구현될 수도 있다. 이 경우, 메인 영상에는 부가 영상을 제공하는 외부 소스(2030-1 ~ 2030-x)들의 URL(Uniform Resource Locators)이 포함될 수 있다. 제1 디스플레이 장치(2010)는 URL을 이용하여 각 외부 소스(2030-1 ~ 2030-x)들에 액세스하여, 부가 영상을 제공받을 수 있다. 그 밖에도 외부 소스(2030-1 ~ 2030-x)들은 다양한 통신 인터페이스로 연결된 단말 장치 또는 서버로 구현될 수도 있다. 이 경우, 외부 소스(2030-1 ~ 2030-x)의 IP 어드레스가 메인 영상에 포함되어 있을 수도 있다.
또는, 메인 영상을 제공하는 소스에서 제1 디스플레이 장치(2010)에 대한 정보를 각 외부 소스(2030-1 ~ 2030-x)들에게 제공하여, 각 외부 소스(2030-1 ~ 2030-x)들이 부가 영상을 제1 디스플레이 장치(2010)로 푸쉬할 수도 있다.
도 20에서는 복수의 외부 소스들로부터 각각 부가 영상이 제공되는 것으로 설명하였으나, 하나의 서버 장치(100)가 클라이언트 장치(200)로 컨텐츠를 제공하는 경우에도 해당 컨텐츠 이외에 부가 컨텐츠를 더 제공하여 줄 수 있다. 이 경우에는, 클라이언트 장치(200)가 컨텐츠 재생 능력을 갖추고 있을 때에도, 간단한 썸네일 이미지 정도는 서버 장치(100)가 파싱 및 디코딩하여 직접 클라이언트 장치(200)로 제공하여 줄 수도 있다. 즉, 메인 컨텐츠는 클라이언트 장치(200)가 재생하고 있는 동안, 각종 부가 영상에 대해서는 서버 장치(100)가 파싱 및 디코딩하여 그 부가 영상 화면을 구성한 후, 클라이언트 장치(200)로 제공하여 줄 수도 있다.
한편, 상술한 컨텐츠 제공 시스템은 홈 게이트웨이 시스템으로 구현될 수도 있다.
도 21은 본 발명의 일 실시 예에 따른 홈 게이트웨이 시스템의 일 예를 나타낸다. 도 21에 따르면, 홈 게이트웨이 시스템은 홈 게이트웨이(2120) 및 복수의 디스플레이 장치(2130-1 ~ 2130-m)를 포함한다.
각 디스플레이 장치(2130-1 ~ 2130-m)는 시스템 성능이 좋지 않은 더비(dummy)형 디스플레이 장치로 구현될 수 있다. 홈 게이트웨이(2120)는 외부 소스(2110)로부터 제공되는 컨텐츠를 각 디스플레이 장치(2130-1 ~ 2130-m)로 전송하여 줄 수 있다.
이 경우, 홈 게이트웨이(2120)는 각 디스플레이 장치(2130-1 ~ 2130-m)들의 컨텐츠 재생 능력에 따라 컨텐츠 처리를 다르게 할 수 있다. 가령, 컨텐츠 재생이 가능한 디스플레이 장치인 경우에는 외부 소스(2110)로부터 전송된 인코딩 상태의 컨텐츠를 그대로 전송한다. 반면, 컨텐츠 재생이 불가능한 디스플레이 장치인 경우에는 홈 게이트웨이(2120)는 그 컨텐츠에 대한 파싱 및 디코딩 처리를 수행한 후, 전송하여 줄 수 있다. 홈 게이트웨이(2120)는 각 디스플레이 장치(2130-1 ~ 2130-m)들의 컨텐츠 재생 능력을 저장하여 두고 활용할 수 있다. 또한, 홈 게이트웨이(2120)는 저장된 컨텐츠 재생 능력을 수시로 업데이트할 수도 있다.
상술한 다양한 실시 예들에 따르면, 컨텐츠 재생을 위해서는 그 컨텐츠의 인코딩 방식에 대응되는 파서 및 코덱이 요구된다.
도 22에서는 파서 및 코덱 구성의 일 예를 나타낸다. 코덱(2210)은 데이터 사이즈를 줄이기 위한 부호화 처리 및 그 역과정인 복호화 처리를 수행한다. 파서는 부호화된 데이터를 AVI나 MP4 등과 같은 포맷의 동영상 컨텐츠로 만드는 과정 및 그 역과정을 수행한다.
상술한 바와 같이 코덱은 MPEG(Moving Picture Expert Group) 코덱, Divx 코덱, AC3 코덱, OGG 코덱, Xvid 코덱, H.264 코덱, wmv7, 8, 9 코덱, 비디오 코덱(Video Codec)과 같이 다양한 종류로 구현될 수 있다.
도 22에 따르면, 코덱(2210)은 비디오 인코더(2211), 오디오 인코더(2212), 비디오 디코더(2213), 오디오 디코더(2214)를 포함한다. 또한, 파서(2220)는 비디오 패킷화부(2221), 오디오 패킷화부(2222), 먹스(2223), 비디오 디패킷화부(depacketizer)(2224), 오디오 디패킷화부(2225), 디먹스(2226)를 포함한다.
코덱(2210) 내의 비디오 인코더(2211)는 컨텐츠를 이루는 비디오 데이터를 인코딩하기 위한 구성이고, 오디오 인코더(2212)는 오디오 데이터를 인코딩하기 위한 구성이다. 인코딩 방식은 코덱의 종류에 따라 MPEG(Moving Picture Expert Group), H.264 등과 같이 다양한 방식으로 구현될 수 있다.
비디오 인코더(2213) 및 오디오 인코더(2212)에 의해 인코딩된 비디오 데이터 및 오디오 데이터는 각각 파서(2220) 내의 비디오 패킷화부(2221) 및 오디오 패킷화부(2222)로 제공된다. 비디오 패킷화부(2221)는 비디오 데이터를 기 설정된 크기의 비디오 패킷으로 구성하고, 오디오 패킷화부(2222)는 오디오 데이터를 기 설정된 크기의 오디오 패킷으로 구성한다. 각 패킷은 정해진 크기의 헤더 및 페이로드 영역으로 구분될 수 있다. 비디오 데이터 및 오디오 데이터는 페이로드 영역에 배치될 수 있다. 먹스(2223)는 비디오 패킷 및 오디오 패킷을 멀티플렉싱하여, 하나의 A/V 컨텐츠 스트림을 구성한다.
한편, 컨텐츠 재생을 하는 경우에는, 파서(2220) 내의 디먹스(2226)가 컨텐츠를 디멀티플렉싱하여 비디오 패킷 및 오디오 패킷을 검출한다. 검출된 비디오 패킷 및 오디오 패킷은 각각 비디오 디패킷화부(2224) 및 오디오 디패킷화부(2225)로 입력된다. 비디오 디패킷화부(2224)는 비디오 패킷의 헤더를 제거하고, 페이로드 영역에 기록된 비디오 데이터를 검출한다. 오디오 디패킷화부(2225)는 오디오 패킷의 헤더를 제거하고, 오디오 데이터를 검출한다. 비디오 데이터 및 오디오 데이터는 코덱(2210) 내의 비디오 디코더(2213) 및 오디오 디코더(2214)로 제공된다. 비디오 디코더(2213) 및 오디오 디코더(2214)는 각각 비디오 데이터 및 오디오 데이터에 대한 디코딩을 수행한다.
이상과 같은 코덱 및 파서의 구성은 상술한 다양한 실시 예에서 서버장치나 클라이언트 장치에 적용될 수 있다.한편, 본 발명의 또 다른 실시 예에 따르면 컨텐츠의 일부 프레임에 대해서만 클라이언트 장치의 재생 능력에 맞추어 먼저 처리한 후, 전송하여 줄 수도 있다.
도 23 및 도 24는 이러한 실시 예를 설명하기 위한 도면이다.
도 23에 따르면, 서버 장치(100)는 클라이언트 장치(200)에 대해 제공 가능한 컨텐츠들에 대한 정보를 전송한다. 클라이언트 장치(200)는 전송된 정보를 이용하여 화면(2300)을 디스플레이한다.
디스플레이된 화면(2300)에는 서버 장치(100)에서 제공 가능한 컨텐츠들에 대한 정보(2310, 2320, 2330)가 표시된다. 각 정보는 이미지(2310-1, 2320-1, 2330-1) 및 텍스트(2310-2, 2320-2, 2330-2)로 구성될 수 있다.
클라이언트 장치(200)는 서버 장치(100)로부터 제공되는 데이터에 대해 파싱 및 디코딩을 수행하여 이미지(2310-1, 2320-1, 2330-1)를 화면(2300)에 표시할 수 있다. 여기서, 이미지(2310-1, 2320-1, 2330-1)는 하나의 썸네일 정지 영상이 될 수도 있고, 일정 개수의 프레임으로 이루어진 동영상이 될 수도 있다.
하지만, 상술한 바와 같이, 클라이언트 장치(200)가 파서나 코덱을 구비하지 못한 경우에는 이미지가 정상적으로 표시될 수 없게 된다. 이 경우, 도 23의 두 번째 정보(2320) 내에 포함된 이미지(2320-1)와 같이 X 같은 기호가 표시되거나, 이미지(2320-1) 영역 자체가 블랙 처리될 수 있다. 따라서, 클라이언트 장치(200)의 사용자는 해당 컨텐츠의 이미지를 확인할 수 없다는 문제점이 발생한다.
서버 장치(100)는 이러한 경우 해당 이미지(2320-1)에 대해 파싱 및 디코딩과 같은 처리를 수행하여 클라이언트 장치(200)로 전송하여 줄 수 있다.
도 24는 서버 장치(100)에 의해 이미지(2320-1)가 처리되어 클라이언트 장치(200)에 표시된 상태를 나타낸다. 도 24에서 서버 장치(100)는 상술한 다양한 실시 예들에서 설명한 바와 같은 구성으로 구현될 수 있다.
일 예로, 서버 장치(100)가 도 3과 같은 구성으로 구현된 경우, 저장부(130)에는 클라이언트 장치로 제공할 컨텐츠가 저장되고, 통신부(110)는 클라이언트 장치(200)로부터 재생 능력 정보를 수신한다. 상술한 바와 같이, 재생 능력 정보는 주기적으로 전송받을 수도 있고, 클라이언트 장치(200)가 턴온되거나 리셋되는 경우, 서버 장치(100)가 요청한 경우 등과 같은 특정한 이벤트가 발생하였을 때마다 전송받을 수도 있다.
제어부(120)는 저장부(130)에 저장된 컨텐츠들과 관련된 안내 정보를 클라이언트 장치(200)로 전송하여 줄 수 있다. 안내 정보에는 도 23 및 도 24에 도시된 바와 같은 이미지 및 텍스트가 포함될 수 있다. 이 경우, 제어부(120)는 클라이언트 장치(200)의 재생 능력 정보를 기초하여 클라이언트 장치(200)로 제공할 컨텐츠에 대한 국부적 처리(partly processing)를 수행할 지 여부를 판단한다. 국부적 처리란 하나의 컨텐츠 전체가 아니라 그 컨텐츠의 일부분에 대해서만 처리하는 것을 의미한다. 컨텐츠는 기 설정된 데이터 단위로 구분될 수 있다. 가령, 프레임 단위로 구분되는 경우에는 제어부(120)는 국부적 처리가 필요하다고 판단되면 컨텐츠 내에서 일부 프레임을 선택한다. 그리고, 선택된 프레임을 클라이언트 장치(200)에서 재생가능 하도록 처리하여 통신부(110)를 통해 클라이언트 장치(200)로 전송한다.
제어부(120)는, 국부적 처리가 필요한지 여부에 대해서는 컨텐츠의 속성 및 상기 재생 능력 정보에 기초하여 판단할 수 있다. 가령, 클라이언트 장치(200)가 컨텐츠를 처리할 수 있는 파서 및 코덱을 구비하였다면 국부적 처리가 불필요하다고 판단하고, 파서 및 코덱 중 적어도 하나를 미구비하였다면 국부적 처리가 필요하다고 판단할 수 있다.
국부적으로 처리할 컨텐츠의 단위는 상술한 바와 같이 다양한 기준에 따라 구분될 수 있다. 구체적으로는, 제어부(120)는, 컨텐츠 내에서 하이라이트 부분으로 지정된 하이라이트 이미지 프레임, 기 설정된 주기에 따라 샘플링된 이미지 프레임, 기 설정된 순서의 이미지 프레임 등과 같은 다양한 이미지 프레임들 중에서 적어도 하나를 선택하여 선택된 프레임에 대해 파싱 및 디코딩 중 적어도 하나의 처리를 수행할 수 있다.
여기서, 하이라이트 이미지 프레임은 메타 데이터와 같은 부가 정보에 의해 지정될 수 있다. 또한, 기 설정된 주기란 임의로 정해진 프레임 개수 단위의 주기를 의미한다. 가령, 600 프레임 마다 하나의 프레임을 샘플링하여, 그 샘플링된 프레임에 대해 파싱 및 디코딩과 같은 처리를 수행할 수 있다. 기 설정된 순서의 이미지 프레임이란 컨텐츠 재생 초반 부, 중반 부, 후반 분 등과 같이 정해진 시점에 배치된 이미지 프레임이 될 수 있다. 선택되는 이미지 프레임의 개수, 또는, 데이터 길이는 임의로 정해질 수 있다.
이상과 같이, 일부 프레임에 대해 재생 가능한 형태로 처리하여 클라이언트 장치(200)로 전송하게 되면, 클라이언트 장치(200)는 도 24와 같이 각 컨텐츠의 이미지까지 정상적으로 포함하는 정보(2310, 2320, 2330)를 디스플레이할 수 있게 된다.
한편, 도 24와 같은 화면에서 사용자가 하나의 정보를 선택하게 되면, 서버 장치(100)는 선택된 정보에 대응되는 컨텐츠를 클라이언트 장치(200)로 전송한다. 도 23에 도시한 예에서는, 첫 번째 및 세 번째 정보(2310, 2330)에 대응되는 컨텐츠는 클라이언트 장치(200)에서 재생 가능하다. 따라서, 첫 번째 및 세 번째 정보(2310, 2330) 중 하나가 선택되면, 서버 장치(100)는 해당 컨텐츠를 그대로 클라이언트 장치(200)로 전송한다.
반면, 두 번째 정보(2320)에 대응되는 컨텐츠는 재생 불가능하므로, 서버 장치(100)는 두 번째 정보(2320)에 대응되는 컨텐츠에 대해서 파싱 및 디코딩 중 적어도 하나의 처리를 수행하여 클라이언트 장치(200)로 전송한다. 이에 따라, 클라이언트 장치(200)는 모든 파서 및 코덱을 구비하지 않더라도 각 컨텐츠에 대한 사전 정보를 사용자에게 보여줄 수 있고, 컨텐츠가 선택되면 재생 화면까지 제공하여 줄 수 있게 된다.
도 24에서는 통신부(110), 제어부(120), 저장부(130)를 포함하는 서버 장치(100)의 동작을 위주로 설명하였으나, 이러한 동작은 서버 장치에서 수행되는 컨텐츠 공유 방법으로 구현될 수도 있다. 이러한 컨텐츠 공유 방법 역시 도 24에서 설명한 내용과 같이 구현될 수 있으므로, 이에 대한 흐름도는 그 도시를 생략한다.
또한, 상술한 다양한 실시 예들에 따른 방법들은 소프트웨어로 생성되어 서버 장치나 클라이언트 장치에 탑재될 수 있다.
구체적으로는, 본 발명의 일 실시 예에 따르면, 서버 장치에는, 클라이언트 장치로부터 재생 능력 정보를 수신하는 단계, 상기 클라이언트 장치로 제공할 컨텐츠의 속성 및 상기 재생 능력 정보에 기초하여 상기 클라이언트 장치가 상기 컨텐츠를 재생 불가능하다고 판단되면, 상기 컨텐츠를 재생 가능한 형태로 처리하여 상기 클라이언트 장치로 전송하는 전송 단계를 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 설치될 수 있다.
또한, 클라이언트 장치에는, 자신의 파서 및 코덱 정보를 포함하는 재생 능력 정보를 생성하는 단계, 생성된 재생 능력 정보를 서버 장치로 전송하는 단계, 서버 장치로부터 컨텐츠를 수신하여 재생하는 단계를 수행하는 프로그램이 저장된 비일시적 판독 가능 매체가 설치될 수 있다.
또는, 클라이언트 장치에는, 서버 장치로부터 파서 및 코덱 목록을 수신하여 저장하는 단계, 상기 서버 장치에 저장된 컨텐츠에 대한 재생 요청을 입력받는 단계, 상기 클라이언트 장치에 구비된 파서 및 코덱에 대한 정보와 상기 수신된 파서 및 코덱 목록을 이용하여, 상기 컨텐츠에 대한 재생 가능 여부를 판단하는 단계, 상기 컨텐츠에 대한 재생이 가능하면 상기 서버 장치로 컨텐츠 공유 요청을 전송하고, 상기 컨텐츠에 대한 재생이 불가능하면 재생 불가 메시지를 디스플레이하는 단계를 수행하는 프로그램이 저장된 비일시적 판독 가능 매체가 설치될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 서버 장치 200 : 클라이언트 장치
110 : 통신부 120 : 제어부
130 : 저장부

Claims (28)

  1. 서버 장치의 컨텐츠 공유 방법에 있어서,
    클라이언트 장치로부터 재생 능력 정보를 수신하는 단계;
    상기 수신된 재생 능력 정보를 기초하여 상기 클라이언트 장치로 제공할 컨텐츠에 대한 국부적 처리(partly processing)를 수행할 지 여부를 판단하는 판단 단계;및
    상기 국부적 처리가 필요하다고 판단되면 상기 컨텐츠 내에서 일부 프레임을 상기 클라이언트 장치에서 재생 가능 하도록 처리하여 상기 클라이언트 장치로 전송하는 전송 단계;를 포함하는 컨텐츠 공유 방법.
  2. 제1항에 있어서,
    상기 판단 단계는,
    상기 컨텐츠의 속성 및 상기 재생 능력 정보에 기초하여, 상기 클라이언트 장치가 상기 컨텐츠를 처리할 수 있는 파서 및 코덱을 구비하였다면 상기 국부적 처리가 불필요하다고 판단하고, 상기 파서 및 상기 코덱 중 적어도 하나를 미구비하였다면 상기 국부적 처리가 필요하다고 판단하는 것을 특징으로 하는 컨텐츠 공유 방법.
  3. 제2항에 있어서,
    상기 전송 단계는,
    상기 컨텐츠 내에서 하이라이트 이미지 프레임, 기 설정된 주기에 따라 샘플링된 이미지 프레임, 기 설정된 순서의 이미지 프레임 중 적어도 하나를 선택하는 단계;
    상기 선택된 프레임에 대해 파싱 및 디코딩 중 적어도 하나의 처리를 수행하는 단계;를 포함하는 컨텐츠 공유 방법.
  4. 제2항에 있어서,
    상기 클라이언트 장치에서 상기 일부 프레임이 선택되면, 상기 컨텐츠 전체에 대해 파싱 및 디코딩 중 적어도 하나의 처리를 수행하여 상기 클라이언트 장치로 전송하는 단계;를 더 포함하는 컨텐츠 공유 방법.
  5. 클라이언트 장치로 제공할 컨텐츠가 저장된 저장부;
    상기 클라이언트 장치로부터 재생 능력 정보를 수신하는 통신부; 및
    상기 수신된 재생 능력 정보를 기초하여 상기 클라이언트 장치로 제공할 컨텐츠에 대한 국부적 처리(partly processing)를 수행할 지 여부를 판단하고, 상기 국부적 처리가 필요하다고 판단되면 상기 컨텐츠 내에서 일부 프레임을 상기 클라이언트 장치에서 재생가능 하도록 처리하여 상기 클라이언트 장치로 전송하는 제어부;를 포함하는 서버 장치.
  6. 제5항에 있어서,
    상기 제어부는,
    상기 컨텐츠의 속성 및 상기 재생 능력 정보에 기초하여, 상기 클라이언트 장치가 상기 컨텐츠를 처리할 수 있는 파서 및 코덱을 구비하였다면 상기 국부적 처리가 불필요하다고 판단하고, 상기 파서 및 상기 코덱 중 적어도 하나를 미구비하였다면 상기 국부적 처리가 필요하다고 판단하는 것을 특징으로 하는 서버 장치.
  7. 제6항에 있어서,
    상기 제어부는,
    상기 컨텐츠 내에서 하이라이트 이미지 프레임, 기 설정된 주기에 따라 샘플링된 이미지 프레임, 기 설정된 순서의 이미지 프레임 중 적어도 하나를 선택하여, 상기 선택된 프레임에 대해 파싱 및 디코딩 중 적어도 하나의 처리를 수행하는 것을 특징으로 하는 서버 장치.
  8. 제6항에 있어서,
    상기 제어부는,
    상기 클라이언트 장치에서 상기 일부 프레임이 선택되면, 상기 컨텐츠 전체에 대해 파싱 및 디코딩 중 적어도 하나의 처리를 수행하여 상기 클라이언트 장치로 전송하는 것을 특징으로 하는 서버 장치.
  9. 서버 장치의 컨텐츠 공유 방법에 있어서,
    클라이언트 장치로부터 재생 능력 정보를 수신하는 단계;
    상기 클라이언트 장치로 제공할 컨텐츠의 속성 및 상기 재생 능력 정보에 기초하여 상기 클라이언트 장치가 상기 컨텐츠를 재생 불가능하다고 판단되면, 상기 컨텐츠를 재생 가능한 형태로 처리하여 상기 클라이언트 장치로 전송하는 전송 단계;를 포함하고,
    상기 재생 능력 정보는 상기 클라이언트 장치가 구비한 파서 및 코덱에 대한 정보인, 컨텐츠 공유 방법.
  10. 제9항에 있어서,
    상기 클라이언트 장치가 상기 컨텐츠를 재생 가능하면 상기 컨텐츠를 상기 클라이언트 장치로 전송하는 단계;를 더 포함하는 컨텐츠 공유 방법.
  11. 제9항에 있어서,
    상기 처리는 상기 컨텐츠를 파싱 처리하는 것임을 특징으로 하는 컨텐츠 공유 방법.
  12. 제9항에 있어서,
    상기 처리는 상기 컨텐츠에 포함된 오디오 데이터 및 비디오 데이터 중 적어도 하나를 디코딩 처리하는 것임을 특징으로 하는 컨텐츠 공유 방법.
  13. 제9항에 있어서,
    상기 컨텐츠의 속성 및 상기 재생 능력 정보에 기초하여, 상기 클라이언트 장치가 상기 컨텐츠를 처리할 수 있는 파서 및 코덱을 구비하였다면 상기 컨텐츠의 재생이 가능하다고 판단하고, 상기 파서 및 상기 코덱 중 적어도 하나를 미구비하였다면 상기 컨텐츠의 재생이 불가능하다고 판단하는 단계;를 더 포함하는 것을 특징으로 하는 컨텐츠 공유 방법.
  14. 제9항에 있어서,
    상기 클라이언트 장치가 상기 컨텐츠의 컨텐츠를 처리할 수 있는 파서 및 코덱 중 적어도 하나를 미구비하였다면, 상기 서버 장치가 상기 파서 및 코덱을 구비하였는지 판단하는 단계;
    상기 서버 장치가 상기 파서 및 코덱 중 적어도 하나를 미구비하였다면, 구비 가능한지 판단하는 단계;
    상기 구비가 가능하다면 상기 파서 및 코덱 중 적어도 하나를 구비하여 상기 컨텐츠를 처리하고, 구비가 불가능하다면 재생 불가 응답을 상기 클라이언트 장치로 전송하는 단계;를 더 포함하는 것을 특징으로 하는 컨텐츠 공유 방법.
  15. 제9항 내지 제14항 중 어느 한 항에 있어서,
    상기 클라이언트 장치로부터 컨텐츠 공유 요청을 수신하는 단계;를 더 포함하는 것을 특징으로 하는 컨텐츠 공유 방법.
  16. 제9항 내지 제14항 중 어느 한 항에 있어서,
    상기 재생 능력 정보는 상기 클라이언트 장치로부터 주기적으로 또는 요청에 따라 전송되는 것임을 특징으로 하는 컨텐츠 공유 방법.
  17. 클라이언트 장치로 제공할 컨텐츠가 저장된 저장부;
    상기 클라이언트 장치로부터 재생 능력 정보를 수신하는 통신부; 및
    상기 컨텐츠의 속성 및 상기 재생 능력 정보에 기초하여 상기 클라이언트 장치에서 상기 컨텐츠 재생이 불가능하면, 상기 컨텐츠를 재생 가능한 형태로 처리하여 상기 클라이언트 장치로 전송하는 제어부;를 포함하고,
    상기 재생 능력 정보는 상기 클라이언트 장치가 구비한 파서 및 코덱에 대한 정보인 서버 장치.
  18. 제17항에 있어서,
    상기 제어부는,
    상기 클라이언트 장치에서 상기 컨텐츠 재생이 가능하면, 상기 컨텐츠를 바로 상기 클라이언트 장치로 전송하는 것을 특징으로 하는 서버 장치.
  19. 제18항에 있어서,
    상기 제어부는,
    상기 재생 능력 정보에 기초하여, 상기 클라이언트 장치가 상기 컨텐츠에 대응되는 파서 및 코덱을 구비하였는지 확인하고, 상기 파서 및 상기 코덱을 구비하였다면 상기 컨텐츠의 재생이 가능하다고 판단하고 상기 파서 및 상기 코덱 중 적어도 하나룰 미구비하였다면 상기 컨텐츠의 재생이 불가능하다고 판단하는 것을 특징으로 하는 서버 장치.
  20. 제19항에 있어서,
    상기 제어부는,
    상기 클라이언트 장치에서 상기 컨텐츠의 파싱이 불가능하면 상기 컨텐츠를 파싱 처리하여 상기 클라이언트 장치로 전송하는 것을 특징으로 하는 서버 장치.
  21. 제19항에 있어서,
    상기 제어부는,
    상기 클라이언트 장치에서 상기 컨텐츠에 대한 디코딩이 불가능하면 상기 컨텐츠에 포함된 오디오 데이터 및 비디오 데이터 중 적어도 하나를 디코딩하여 상기 클라이언트 장치로 전송하는 것을 특징으로 하는 서버 장치.
  22. 제17항에 있어서,
    상기 제어부는,
    상기 클라이언트 장치에서 상기 컨텐츠의 재생이 불가능하면 상기 서버 장치가 상기 파서 및 코덱을 구비하였는지 판단하고, 상기 서버 장치가 상기 파서 및 코덱 중 적어도 하나를 미구비하였다면 구비 가능한지 판단하며, 구비가 가능하다면 상기 파서 및 코덱 중 적어도 하나를 신규 설치하여 상기 컨텐츠를 처리하고, 구비가 불가능하다면 재생 불가 응답을 상기 클라이언트 장치로 전송하는 것을 특징으로 하는 서버 장치.
  23. 제17항 내지 제22항 중 어느 한 항에 있어서,
    상기 통신부는,
    상기 재생 능력 정보를 상기 클라이언트 장치로부터 주기적으로 수신하는 것을 특징으로 하는 서버 장치.
  24. 제17항 내지 제22항 중 어느 한 항에 있어서,
    상기 통신부는,
    상기 클라이언트 장치로부터 상기 컨텐츠에 대한 재생 명령이 수신되면, 상기 클라이언트 장치에 대하여 상기 재생 능력 정보를 요청하여 수신하는 것을 특징으로 하는 서버 장치.
  25. 클라이언트 장치의 컨텐츠 공유 방법에 있어서,
    서버 장치로부터 파서 및 코덱 목록을 수신하여 저장하는 단계;
    상기 서버 장치에 저장된 컨텐츠에 대한 재생 요청을 입력받는 단계;
    상기 클라이언트 장치에 구비된 파서 및 코덱에 대한 정보인 재생 능력 정보와 상기 수신된 파서 및 코덱 목록을 이용하여, 상기 컨텐츠에 대한 재생 가능 여부를 판단하는 단계;
    상기 컨텐츠에 대한 재생이 가능하면 상기 서버 장치로 컨텐츠 공유 요청을 전송하고, 상기 컨텐츠에 대한 재생이 불가능하면 재생 불가 메시지를 디스플레이하는 단계;를 포함하는 컨텐츠 공유 방법.
  26. 클라이언트 장치에 있어서,
    서버 장치로부터 파서 및 코덱 목록을 수신하는 통신부;
    상기 파서 및 코덱 목록을 저장하는 저장부;
    상기 서버 장치에 저장된 컨텐츠에 대한 재생 요청을 입력받는 입력부;
    상기 재생 요청이 입력되면, 상기 클라이언트 장치에 구비된 파서 및 코덱에 대한 정보인 재생 능력 정보와 상기 수신된 파서 및 코덱 목록을 이용하여, 상기 컨텐츠에 대한 재생 가능 여부를 판단하고, 상기 컨텐츠에 대한 재생이 가능하면 상기 서버 장치로 컨텐츠 공유 요청을 전송하는 제어부;
    상기 컨텐츠에 대한 재생이 불가능하면 재생 불가 메시지를 디스플레이하는 디스플레이부;를 포함하는 클라이언트 장치.
  27. 화면 공유 시스템에 있어서,
    서버 장치;
    상기 서버 장치에 연결되어 상기 서버 장치로부터 제공되는 메인 화면을 디스플레이하는 적어도 하나의 클라이언트 장치;를 포함하며,
    상기 서버 장치는, 상기 클라이언트 장치로 제공할 컨텐츠의 속성 및 재생 능력 정보에 기초하여 상기 클라이언트 장치가 상기 컨텐츠를 재생 불가능하다고 판단되면, 상기 컨텐츠를 재생 가능한 형태로 처리하여 상기 클라이언트 장치로 전송하고,
    상기 클라이언트 장치는 상기 서버 장치로부터 전송된 컨텐츠의 재생 화면을 상기 메인 화면에 오버레이시켜 디스플레이하고,
    상기 재생 능력 정보는 상기 클라이언트 장치가 구비한 파서 및 코덱에 대한 정보인, 화면 공유 시스템.
  28. 제27항에 있어서,
    상기 서버 장치는 상기 클라이언트 장치가 상기 컨텐츠를 재생 가능하다고 판단되면, 상기 컨텐츠를 상기 클라이언트 장치로 전송하고,
    상기 클라이언트 장치는 상기 서버로부터 전송된 컨텐츠를 파싱 및 디코딩하여 재생 화면을 구성하고, 상기 구성된 재생 화면을 상기 메인 화면에 오버레이시켜 디스플레이하는 화면 공유 시스템.
KR1020120083227A 2012-07-30 2012-07-30 컨텐츠 공유를 위한 서버 장치, 클라이언트 장치 및 그 컨텐츠 공유 방법 KR101997583B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120083227A KR101997583B1 (ko) 2012-07-30 2012-07-30 컨텐츠 공유를 위한 서버 장치, 클라이언트 장치 및 그 컨텐츠 공유 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120083227A KR101997583B1 (ko) 2012-07-30 2012-07-30 컨텐츠 공유를 위한 서버 장치, 클라이언트 장치 및 그 컨텐츠 공유 방법

Publications (2)

Publication Number Publication Date
KR20140016072A KR20140016072A (ko) 2014-02-07
KR101997583B1 true KR101997583B1 (ko) 2019-07-08

Family

ID=50265318

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120083227A KR101997583B1 (ko) 2012-07-30 2012-07-30 컨텐츠 공유를 위한 서버 장치, 클라이언트 장치 및 그 컨텐츠 공유 방법

Country Status (1)

Country Link
KR (1) KR101997583B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015156507A1 (ko) * 2014-04-10 2015-10-15 엘지전자 주식회사 서버, 영상제공장치, 및 이를 포함하는 영상 제공 시스템
KR102287510B1 (ko) 2014-04-10 2021-08-06 엘지전자 주식회사 서버, 영상제공장치, 및 이를 포함하는 영상 제공 시스템
EP3016362A1 (en) * 2014-11-03 2016-05-04 OpenTV Europe SAS Method and system to share advertisement content from a main device to a secondary device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004159212A (ja) * 2002-11-08 2004-06-03 Nippon Telegr & Teleph Corp <Ntt> 映像コンテンツ配信装置及び方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297496A (ja) * 2001-04-02 2002-10-11 Hitachi Ltd メディア配信システム及びマルチメディア変換サーバ
KR100605528B1 (ko) * 2003-04-07 2006-07-28 에스케이 텔레콤주식회사 멀티미디어 컨텐츠 제작 전송 방법 및 시스템
KR20110032800A (ko) * 2009-09-24 2011-03-30 삼성전자주식회사 저장장치 및 그 구동방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004159212A (ja) * 2002-11-08 2004-06-03 Nippon Telegr & Teleph Corp <Ntt> 映像コンテンツ配信装置及び方法

Also Published As

Publication number Publication date
KR20140016072A (ko) 2014-02-07

Similar Documents

Publication Publication Date Title
EP2996344A1 (en) Server apparatus and client apparatus for sharing contents and method for sharing contents
US12010373B2 (en) Display apparatus, server apparatus, display system including them, and method for providing content thereof
KR101841669B1 (ko) 원격 장치 상에서의 적응성 미디어 콘텐츠 스크러빙
KR101982243B1 (ko) 사용자 단말 장치, 전자 장치 및 그 제어 방법
CN109756406B (zh) 用于提供ui的设备和方法以及用于进行控制的设备和方法
KR101977317B1 (ko) 사용자 단말 장치, sns 제공 서버 및 그들의 컨텐츠 제공 방법
US10203927B2 (en) Display apparatus and display method
KR20140111859A (ko) 콘텐트 공유 방법 및 이를 위한 디바이스
US20200162871A1 (en) Electronic apparatus and method of outputting content by the electronic apparatus
KR20180057473A (ko) 디스플레이 장치 및 컨텐츠를 디스플레이하는 방법
US9661375B2 (en) Display apparatus and method of controlling content output of display apparatus
KR20170009087A (ko) 영상 표시 장치 및 그 동작 방법
KR101997583B1 (ko) 컨텐츠 공유를 위한 서버 장치, 클라이언트 장치 및 그 컨텐츠 공유 방법
AU2015221545B2 (en) Adaptive media content scrubbing on a remote device
KR20150010872A (ko) 디스플레이 장치 및 이의 ui 제공 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant