KR20140044840A - 변경된 영역들을 이용한 매체 인코딩 - Google Patents

변경된 영역들을 이용한 매체 인코딩 Download PDF

Info

Publication number
KR20140044840A
KR20140044840A KR1020137035046A KR20137035046A KR20140044840A KR 20140044840 A KR20140044840 A KR 20140044840A KR 1020137035046 A KR1020137035046 A KR 1020137035046A KR 20137035046 A KR20137035046 A KR 20137035046A KR 20140044840 A KR20140044840 A KR 20140044840A
Authority
KR
South Korea
Prior art keywords
changed
computing device
regions
desktop
modified
Prior art date
Application number
KR1020137035046A
Other languages
English (en)
Other versions
KR101646958B1 (ko
Inventor
창리앙 찰리 왕
Original Assignee
인텔 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코포레이션 filed Critical 인텔 코포레이션
Publication of KR20140044840A publication Critical patent/KR20140044840A/ko
Application granted granted Critical
Publication of KR101646958B1 publication Critical patent/KR101646958B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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, manipulating MPEG-4 scene graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/507Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction using conditional replenishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/87Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving scene cut or scene change detection in combination with video compression

Abstract

변경된 영역들을 이용한 매체 인코딩을 위한 방법 및 시스템이 제공된다. 방법은 컴퓨팅 디바이스의 데스크탑의 변경된 영역들 및 정적인 부분을 검출하는 것을 포함한다. 변경된 영역들의 양이 결정될 수 있다. 변경된 영역들은 변경된 영역들의 양에 응답하여 인코딩될 수 있다.

Description

변경된 영역들을 이용한 매체 인코딩{MEDIA ENCODING USING CHANGED REGIONS}
일반적으로, 본 발명은 매체 인코딩에 관한 것이다. 보다 구체적으로, 본 발명은 변경된 영역들을 이용한 매체 인코딩에 관한 것이다.
컴퓨팅 디바이스의 다양한 이용들은 디스플레이의 일부분은 정적이고, 디스플레이의 다른 부분들은 활성인 시나리오들을 포함한다. 예를 들어, 무선 디스플레이(wireless display; WiDi)는, 전자 디바이스의 데스크탑이 원격 디스플레이 상에 무선으로 렌더링되도록 하는 기술이다. 예를 들어, 태블릿 디바이스는 그의 데스크탑 상의 모든 이미지들을 렌더링될 텔레비젼으로 송신할 수 있다. WiDi에 대한 전형적인 용도는 웹 브라우저 및 비디오 챗(video chat)을 통한 온라인 비디오 플레이백을 포함할 수 있다. 이러한 용도들 각각은 정적인 디스플레이의 일부분을 포함하는 반면, 디스플레이의 다른 부분은 웹 브라우저 또는 비디오 챗을 통한 비디오 인코딩에 전용될 수 있다. 다른 예들에 있어서, 화상 회의(video conference)에 참여하는 것은 정적인 디스플레이의 일부분, 및 다른 화상 회의 참여자들의 이미지들을 렌더링하는데 전용되는 디스플레이의 다른 부분을 포함한다. 아무튼, WiDi 및 화상 회의를 이용하는 것은, 렌더링될 디스플레이로부터의 이미지들이 전형적으로는 인코딩, 디코딩 및 처리되기 때문에, 비교적 많은 양의 전력을 소모할 수 있다.
도 1a는 실시예들에 따른, 웹 브라우저 내의 매체 인코딩의 도면이다.
도 1b는 실시예들에 따른, 화상 회의의 매체 인코딩의 도면이다.
도 2는 실시예들에 따른, 변경된 영역들을 이용한 매체 인코딩을 제공하는데 이용될 수 있는 컴퓨팅 디바이스의 블록도이다.
도 3은 실시예들에 따른, 변경된 영역들을 이용한 매체 인코딩을 제공하는데 이용될 수 있는 WiDi 아키텍쳐의 개략도이다.
도 4는 실시예들에 따른, 변경된 영역들을 이용한 매체 인코딩의 프로세스 흐름을 도시하는 블록도이다.
도 5는 실시예들에 따른, 변경된 영역들을 이용한 매체 인코딩을 위한 방법을 도시하는 프로세스 흐름도이다.
도 6a는 실시예들에 따른, 변경된 영역들을 이용한 매체 인코딩을 위한 방법을 도시하는 프로세스 흐름도이다.
도 6b는 실시예들에 따른, 변경된 영역들을 이용한 매체 인코딩을 위한 방법을 도시하는 프로세스 흐름도이다.
도 7은 실시예들에 따른, 변경된 영역들을 이용한 매체 인코딩을 위한 코드를 저장하는 유형의, 비일시적인 컴퓨터 판독가능 매체를 도시하는 블록도이다.
도 8은 공유된 물리적 메모리를 구현하기 위한 예시적인 시스템의 블록도이다.
도 9는 도 8의 시스템이 구현될 수 있는 소형 인수 디바이스(small form factor device)의 개략도이다.
본 개시 내용 및 도면들 전체를 통해, 유사한 구성요소들 및 특징들을 참조하기 위해, 동일한 번호들이 이용된다. 100 시리즈의 번호들은 도 1에서 원래 발견되는 특징들을 지칭하고, 200 시리즈의 번호들은 도 2에서 원래 발견되는 특징들을 지칭하는 등으로 번호가 이용된다.
전술한 바와 같이, WiDi는 컴퓨팅 디바이스의 디스플레이 상의 이미지들이 원격 디스플레이 상에 무선으로 렌더링되도록 하는 기술이다. 컴퓨팅 디바이스의 디스플레이는 데스크탑으로서 지칭될 수 있으며, 데스크탑 상의 다양한 위치들에서 수 개의 아이콘들 및 애플리케이션들을 포함할 수 있다. WiDi의 전통적인 구현들은 데스크탑의 전체 콘텐츠를 인코딩하고, 인코딩된 데스크탑을 다른 디바이스에게 무선으로 송신한 후, 텔레비젼 또는 컴퓨터 모니터와 같은 다른 디스플레이 상에 데스크탑을 렌더링하기 위해 전체 데스크탑을 디코딩 및 처리한다. WiDi 기술들을 이용하여 전체 데스크탑을 처리하는 것은 많은 양의 전력을 소모할 수 있다. 또한, 전통적인 WiDi 기술들을 이용하여 전체 데스크탑을 처리하는 것은 많은 양의 GPU(graphics processing unit) 시간 및 네트워크 대역의 많은 부분을 소모할 수 있다. 유사하게, 화상 회의는 전체 데스크탑으로 구성된 데이터 스트림을 디코딩, 인코딩 및 처리함으로써 컴퓨팅 디바이스 상에 렌더링될 수 있다. 화상 회의의 전체 데스크탑을 처리하는 것은 많은 양의 GPU 시간 및 네트워크 대역폭의 많은 부분을 소모할 수 있다. GPU 병목 현상 및 네트워크 대역폭 부족 둘다 화상 회의 또는 WiDi 세션 동안의 데스크탑 렌더링시에 레이턴시(latency)의 원인이 될 수 있다. 따라서, 본 명세서에서 기술된 실시예들은 변경된 영역들을 이용한 매체 인코딩과 관련된다. 매체의 동적인 콘텐츠는 변경된 영역 위치 값들과 함께, 렌더링을 위해 디스플레이로 송신될 수 있다.
변경된 영역들을 이용하는 것은, 데스크탑이 수 개의 영역들로 분할되는 이미지 렌더링 기술이다. 본 명세서에서 이용된 바와 같이, 영역은 임의의 크기 또는 형상을 갖는, 데스크탑의 영역을 지칭한다. 예를 들어, 영역은 직사각형의 형상일 수 있다. 영역들은 데스크탑으로부터 다양한 간격들로 얻어질 수 있다. 영역은 그 영역 내의 하나 이상의 픽셀들이, 그 영역과 동일한 크기 및 형상이고, 그 영역과 동일한 데스크탑 상의 위치에 있는 이전의 영역과 비교하였을 때 변경된 경우, 변경된 영역일 수 있다. 영역이 직사각형이고, 그 직사각형이 임의의 변경된 픽셀들을 포함할 때, 그것은 더티(dirty) 직사각형이라고 지칭될 수 있다. 실시예들에서, 각각의 변경된 영역은 데스크탑의 정적인 부분으로 구성되고 렌더링되도록, 버퍼에 기록될 수 있다.
실시예들에서, 미리 결정된 수의 픽셀들의 변경은, 변경된 영역을 나타낼 수 있다. 변경된 픽셀은, 제한적인 것은 아니지만, 어드레스, 세기, 컬러 또는 그들의 임의의 조합을 포함하는 픽셀의 임의의 값의 변경이다. 미리 결정된 수의 픽셀들이, 변경된 영역을 결정하기 위한 임계값일 수 있다. 임계값은 픽셀들의 임의의 수일 수 있다. 예를 들어, 임계값은 영역이 변경된 영역으로 되기 위해, 영역 내의 픽셀들의 10% 이상이 변경되어야 함을 나타낼 수 있다. 따라서, 영역의 픽셀들의 10% 미만이 변경된 경우, 그 영역은 변경된 영역으로 고려되지 않을 수 있다. 이러한 방식으로, 변경된 영역은 변경된 영역 내의 변경된 픽셀들의 수가 미리 결정된 임계값보다 큰 경우에 검출될 수 있다. 예를 들어, 임계값은 고선명도 플레이백(high definition playback)과 같은 프리미엄 그래픽이 디스플레이되는 애플리케이션들에서 보다 낮을 수 있다. 고선명도 플레이백이 수행될 때, 임계값은 변경된 영역들을 이용하여 플레이백을 인코딩하는 동안 고선명도 플레이백이 달성될 수 있도록 하는 방식으로 선택될 수 있다. 또한, 전력 절약이 관심사인 실시예들에서, 임계값은 변경된 영역들을 이용하여 플레이백을 인코딩하는 동안 디바이스가 전력을 절약할 수 있도록 하는 방식으로 설정될 수 있다.
도 1a는 실시예들에 따른, 웹 브라우저(100) 내의 매체 인코딩의 도면이다. 웹 브라우저(100)는 사용자에 의해 선택된 비디오를 렌더링하는 영역(102)을 포함한다. 영역(102)은 단일의 영역일 수 있으며, 또는, 영역(102)은 전술한 바와 같이 수 개의 영역들을 포함할 수 있다. 웹 브라우저(100)의 나머지 구성요소들은, 영역(102)이 사용자에 의해 선택된 비디오를 플레이백하는 동안, 전형적으로 고정된다. 따라서, 영역(104) 내의 다른 비디오들에 대한 링크들은 전형적으로 변경되지 않은 채로 남아 있게 되며, 영역(102)은 매체 플레이백으로 인해 변경된다. 더욱이, 영역(102) 아래의 영역(106)에서의 글(article)은, 매체가 영역(102) 내에서 플레이백되는 동안, 변경되지 않은 채로 유지된다. 본 명세서에서 이용된 바와 같이, 매체 플레이백은 온라인 비디오 브로드캐스트 또는 화상 회의 이미지들과 같은 임의의 동적인 콘텐츠를 지칭한다. 또한, 영역(102)과 유사하게, 웹 브라우저(100)의 나머지 구성요소들은 웹 브라우저(100)의 단일의 영역 또는 수 갱의 영역들을 형성할 수 있다. 실시예들에서, 영역은 인접하거나 또는 인접하지 않은 픽셀들을 포함할 수 있다.
일반적으로, 컴퓨팅 디바이스 상에서의 매체 플레이백은, 매체 플레이백에 전용되고, 그러므로 시간에 따라 변경되고, 동적인 영역(102)과 같은 영역을 포함한다. 예를 들어, 비디오 챗 애플리케이션은 로컬 사용자가 컴퓨팅 디바이스의 카메라 및 마이크로폰을 이용하여 원격 사용자와 대화할 수 있도록 한다. 원격 사용자의 이미지들 또는 비디오를 로컬 사용자에게 렌더링하는 영역은, 원격 사용자의 다양한 위치들에 응답하여 끊임없이 변경된다. 컴퓨팅 디바이스의 배경 뿐만 아니라 비디오 챗 애플리케이션의 다른 부분들을 포함할 수 있는 디스플레이의 나머지는 전형적으로 정적이다. 다른 예에서, 프리젠테이션 애플리케이션은, 하나 이상의 사용자가 전자 프리젠테이션에 접속하도록 할 수 있다. 전자 프리젠테이션 동안, 하나 이상의 사용자는, 프리젠테이션 동안 렌더링되는 슬라이드(slide)들과 상호작용할 수 있다. 디스플레이의 나머지가 정적인 반면에, 슬라이드들의 이미지들을 렌더링하는 영역은 끊임없이 변경된다.
도 1b는 실시예들에 따른, 화상 회의를 갖는 데스크탑(110)의 매체 인코딩의 도면이다. 데스크탑(110)은 화상 회의 동안 제시된 문서들, 슬라이드들, 이미지들 및 비디오들을 렌더링하는 영역(112)을 포함한다. 영역(112)은 단일의 영역일 수 있으며, 또는, 영역(112)은 수 개의 영역들을 포함할 수 있다. 데스크탑(110)의 나머지 구성요소들은 전형적으로 고정되는 반면, 영역(112)은 화상 회의 동안 제시된 정보에 응답하여 변경된다. 예를 들어, 참조 번호(114)에서의 아이콘은, 영역(112) 내에 제시된 화상 회의 동안 일반적으로 정적이다. 데스크탑(110)의 나머지 구성요소들은 데스크탑(110)의 단일의 영역 또는 수 개의 영역들을 형성할 수 있다.
이하의 설명 및 청구항들에 있어서, "연결된(coupled)" 및 "접속된(connected)" 라는 용어들 및 그 파생어들이 이용될 수 있다. 이러한 용어들은 서로 동의어인 것으로 의도되지 않음을 이해해야 한다. 그보다는, 특정한 실시예들에서, "접속된" 이라는 용어는 둘 이상의 요소들이 서로간에 물리적으로 또는 전기적으로 직접 접촉됨을 나타내는데 이용될 수 있다. "연결된" 이라는 용어는 둘 이상의 요소들이 물리적으로 또는 전기적으로 직접 접촉됨을 의미할 수 있다. 그러나, "연결된" 이라는 용어는 둘 이상의 요소들이 서로간에 직접 접촉하지는 않지만, 서로 함께 동작하거나 또는 상호작용함을 의미할 수도 있다.
몇몇 실시예들은 하드웨어, 펌웨어 및 소프트웨어 중 하나 또는 그들의 조합으로 구현될 수 있다. 몇몇 실시예들은 본 명세서에서 기술된 동작들을 수행하도록 컴퓨팅 플랫폼에 의해 판독 및 실행될 수 있는, 기계 판독가능 매체 상에 저장된 인스트럭션들로서 구현될 수도 있다. 기계 판독가능 매체는, 기계, 예를 들면, 컴퓨터에 의해 판독가능한 형태로 정보를 저장하거나 또는 송신하기 위한 임의의 메카니즘을 포함할 수 있다. 예를 들어, 기계 판독가능 매체는 ROM(read only memory); RAM(random access memory); 자기 디스크 저장 매체; 광학 저장 매체; 플래시 메모리 디바이스들; 또는 전기, 광학적, 음향 혹은 다른 형태의 전파 신호들, 예를 들면, 다른 것들 중에서, 반송파들, 적외선 신호들, 디지털 신호들, 또는 신호들을 송신 및/또는 수신하는 인터페이스들을 포함할 수 있다.
소정의 실시예는 하나의 구현 또는 예이다. 명세서에서 "소정의 실시예", "일 실시예", "몇몇 실시예들", "다양한 실시예들" 또는 "다른 실시예들"에 대한 참조는, 실시예들과 함께 기술된 특정한 특징, 구조 또는 특성이 본 발명의 적어도 몇몇 실시예들에 포함되지만, 모든 실시예들에 포함될 필요는 없음을 의미한다. "소정의 실시예", "일 실시예" 또는 "몇몇 실시예들"의 다양한 출현 전부가 동일한 실시예들을 지칭할 필요는 없다. 실시예로부터의 요소들 또는 양상들은 다른 실시예의 요소들 또는 양상들과 결합될 수 있다.
본 명세서에서 기술된 모든 구성요소들, 특징들, 구조들, 특성들 등이 특정 실시예 또는 실시예들에 포함될 필요는 없다. 명세서에서 구성요소, 특징, 구조 또는 특성이, 예를 들어, 포함될 수 있다("may", "might", "can" 또는 "could")고 언급되는 경우, 특정한 구성요소, 특징, 구조 또는 특성이 포함되도록 요구되는 것은 아니다. 명세서 또는 청구항이 "하나의(a 또는 an)" 요소를 언급한다면, 그것이 단지 하나의 요소가 존재함을 의미하는 것은 아니다. 명세서 또는 청구항들이 "하나의 추가적인" 요소를 언급한다면, 그것이 하나보다 많은 추가적인 요소가 존재함을 배제하는 것은 아니다.
몇몇 실시예들은 특정 구현들을 참조하여 기술되었지만, 몇몇 실시예들에 따른 다른 구현들이 가능함을 주지해야 한다. 또한, 도면들에서 예시 및/또는 본 명세서에서 기술된 회로 요소들 또는 다른 특징들의 배열 및/또는 순서는, 예시 및 기술된 특정한 방식으로 배열될 필요는 없다. 몇몇 실시예들에 따른 여러 가지의 다른 배열들이 가능하다.
도면에 도시된 각각의 시스템에서, 몇몇 경우들에서의 요소들은, 표현된 요소들이 상이하고/하거나 유사한 것임을 제안하기 위해 동일한 참조 번호 또는 상이한 참조 번호를 각각 가질 수 있다. 그러나, 요소는 상이한 구현들을 갖고, 본 명세서에서 도시되거나 또는 기술된 시스템들 중 일부 또는 전부와 작용하기에 충분히 융튱성이 있을 수 있다. 도면들에 도시된 다양한 요소들은 동일하거나 또는 상이할 수 있다. 어느 것이 제1 요소로서 지칭되고, 어는 것이 제2 요소로서 지칭되는지는 임의적인 것이다.
도 2는 실시예들에 따른, 변경된 영역들을 이용한 매체 인코딩을 제공하는데 이용될 수 있는 컴퓨팅 디바이스(200)의 블록도이다. 컴퓨팅 디바이스(200)는, 예를 들면, 다른 것들 중에서, 랩탑 컴퓨터, 데스크탑 컴퓨터, 태블릿 컴퓨터, 모바일 디바이스, 서버 또는 셀룰러 전화일 수 있다. 컴퓨팅 디바이스(200)는 저장된 인스트럭션들을 실행하도록 구성된 CPU(central processing unit)(202) 뿐만 아니라, CPU(202)에 의해 실행가능한 인스트럭션들을 저장하는 메모리 디바이스(204)를 포함할 수 있다. CPU(202)는 싱글 코어 프로세서, 멀티 코어 프로세서, 컴퓨팅 클러스터, 또는 임의의 수의 다른 구성들일 수 있다. 더욱이, 컴퓨팅 디바이스(200)는 하나보다 많은 CPU(202)를 포함할 수 있다. CPU(202)에 의해 실행되는 인스트럭션들은, 변경된 영역들을 이용한 매체 인코딩을 구현하는데 이용될 수 있다. 메모리 디바이스(204)는 RAM, ROM, 플래시 메모리, 또는 임의의 다른 적절한 메모리 시스템들을 포함할 수 있다. 예를 들어, 메모리 디바이스(204)는 DRAM(dynamic random access memory)을 포함할 수 있다.
또한, 컴퓨팅 디바이스(200)는 GPU(206)를 포함할 수 있다. 도시된 바와 같이, CPU(202)는 버스(208)를 통해 GPU(206)와 접속될 수 있다. GPU(206)는 컴퓨팅 디바이스(200) 내에서 임의의 수의 그래픽 동작들을 수행하도록 구성될 수 있다. 예를 들어, GPU(206)는 컴퓨팅 디바이스(200)의 사용자에게 디스플레이될 그래픽 이미지들, 그래픽 프레임들, 비디오들 등을 렌더링 또는 조작하도록 구성될 수 있다. 또한, GPU(206)는 엔진(210) 및 엔진(212)과 같은 하나 이상의 엔진들을 포함할 수 있다. 엔진은 GPU로 송신된 데이터의 병렬 처리를 위해 이용될 수 있는 GPU의 구성요소이다. 2개의 GPU 엔진들이 도시되지만, GPU는 임의의 수의 엔진들을 포함할 수 있다. 실시예들에서, 엔진(210) 또는 엔진(212)은, 화상 회의 또는 WiDi 동안 데스크탑의 동적 영역들로 데스크탑의 정적인 부분을 구성하는데 이용될 수 있는 구성 엔진(composition engine)이다.
또한, 컴퓨팅 디바이스(200)는 하나 이상의 카메라들(214)을 포함할 수 있다. 카메라들(214)은 화상 회의 및 비디오 챗 애플리케이션들과 같은 다양한 이용들을 위한 비디오 및 이미지들을 캡쳐하는데 이용될 수 있다. 또한, 컴퓨팅 디바이스(200)는 화상 회의 및 비디오 챗 애플리케이션들과 같은 다양한 이용들을 위한 사운드를 캡쳐하는데 이용될 수 있는 마이크로폰(216)을 포함한다. CPU(202)는 버스(208)를 통해, 컴퓨팅 디바이스(200)를 하나 이상의 I/O 디바이스들(220)에 접속하도록 구성된 I/O 디바이스 인터페이스(218)를 이용하여, 다른 입/출력(I/O) 구성요소들과 접속될 수 있다. I/O 디바이스들(220)은, 예를 들면, 키보드 및 포인팅 디바이스를 포함할 수 있으며, 포인팅 디바이스는 다른 것들 중에서 터치패드 또는 터치스크린을 포함할 수 있다. 카메라들(214), 마이크로폰(216) 및 I/O 디바이스들(220)은 컴퓨팅 디바이스(200)의 내장형 구성요소들이거나, 또는 컴퓨팅 디바이스(200)에 외부적으로 접속되는 디바이스들일 수 있다.
또한, CPU(202)는 버스(208)를 통해, 컴퓨팅 디바이스(200)를 디스플레이 디바이스(224)에 접속하도록 구성된 디스플레이 인터페이스(222)에 연결될 수 있다. 디스플레이 디바이스(224)는 컴퓨팅 디바이스(200)의 내장형 구성요소인 디스플레이 스크린을 포함할 수 있다. 또한, 디스플레이 디바이스(224)는, 다른 것들 중에서, 컴퓨팅 디바이스(200)에 외부적으로 접속되는 컴퓨터 모니터, 텔레비젼 또는 프로젝터를 포함할 수 있다.
메모리 디바이스(204)는 하나 이상의 드라이버들을 포함할 수 있다. 드라이버들은 하나의 하드웨어 또는 애플리케이션이, 운영 체제, 애플리케이션들, 또는 컴퓨팅 디바이스(200)의 다른 하드웨어와 통신할 수 있도록 한다. 본 명세서에서 이용된 바와 같이, 통신하는 능력은 하나의 포맷으로부터 다른 포맷으로의 데이터의 변환, 또는 하드웨어 또는 소프트웨어 구성요소들 사이의 데이터의 처리 또는 전송을 가능하게 하는 임의의 기술을 포함한다. 예를 들어, 컴퓨팅 디바이스(200)는 그래픽 드라이버(226), 매체 드라이버(228) 및 WiFi 드라이버(230)를 포함할 수 있다. 그래픽 드라이버(226)는 GPU가 운영 체제 및 다양한 애플리케이션들과 통신할 수 있도록 하며, 매체 드라이버(228)는 매체 애플리케이션이 운영 체제 및 다양한 애플리케이션들과 통신할 수 있도록 한다. WiFi 드라이버(230)는 운영 체제가 컴퓨팅 디바이스(200)로의 및 컴퓨팅 디바이스(200)로부터의 무선 송신들에 대한 책임이 있는 하드웨어 및 애플리케이션들과 통신할 수 있도록 한다.
또한, 컴퓨팅 디바이스(200)는 저장 장치(storage)(232)를 포함할 수 있다. 저장 장치(232)는 하드 드라이브, 광학 드라이브, 썸 드라이브(thumbdrive), 드라이브들의 어레이, 또는 그들의 임의의 조합들과 같은 물리적 메모리이다. 또한, 저장 장치(232)는 원격 저장 장치 드라이브들을 포함할 수 있다. 또한, 저장 장치는 하나 이상의 매체 애플리케이션들(234)을 포함할 수 있다. 매체 애플리케이션들(234)은, 제한적인 것은 아니지만, 비디오 플레이백 애플리케이션들, 비디오 챗 애플리케이션들, 화상 회의 애플리케이션들 및 프리젠테이션 애플리케이션들을 포함한다. 예에 있어서, 매체 드라이버(228)는 매체 애플리케이션(234)으로부터 임의의 변경된 영역들을 검출하기 위한 간격들을 스케쥴링하는데 이용되는 타이머를 포함할 수 있다. 또한, 예에 있어서, 매체 애플리케이션(234)은 다양한 간격들에서 매체 애플리케이션(234)으로부터 임의의 변경된 영역들을 검출하기 위해, 매체 드라이버(228)에 의해 폴링(polling)될 수 있다. 더욱이, 예에 있어서, 변경된 영역들은 그것이 다양한 간격들에서 검출될 때 매체 애플리케이션(234)에 의해 매체 드라이버(228)로 푸싱(pushing)된다. 또한, 변경된 영역들은 그것이 다양한 간격들에서 검출될 때 매체 드라이버(228)에 의해 매체 애플리케이션(234)으로부터 풀링(pull)될 수 있다.
매체 애플리케이션들(234)로부터의 매체 플레이백은, 데스크탑의 다른 콘텐츠와 함께 스트림 관리자(236)에게 송신될 수 있다. 스트림 관라지(236)는 데스크탑의 인코딩, 디코딩 및 구성을 관리할 수 있다. 실시예들에서, 스트림 관리자(226)는 각각의 변경된 영역에 대한 위치 값들을 얻을 수 있다.
또한, 저장 장치(232)는 미들웨어(middleware)(238) 및 WiDi 애플리케이션(240)을 포함할 수 있다. 미들웨어(238)는 변경된 영역들을 인코딩하고, 변경된 영역들의 위치 값들을 계산하는데 이용될 수 있다. WiDi 애플리케이션은 원격 어댑터(242)로 무선 송신될 인코딩된 변경된 영역들 및 그들의 위치 값들을 준비할 수 있다. 원격 어댑터는 컴퓨팅 디바이스(200)로부터 물리적으로 분리될 수 있다. 실시예들에서, 원격 어댑터(242)는 다른 컴퓨팅 디바이스이다. NIC(network interface controller)(244)는 컴퓨팅 디바이스(200)를 네트워크(246)에 접속하도록 구성될 수 있다. 네트워크(246)는 유선 네트워크, 무선 네트워크 또는 셀룰러 네트워크일 수 있다. 네트워크(246)는 다른 것들 중에서, 임의의 WAN(wide area network), 임의의 LAN(local area network), 또는 인터넷일 수 있다. 예를 들어, 네트워크(246)는 3GPP LTE 네트워크 또는 WiFi 네트워크일 수 있다. 실시예들에서, 원격 어댑터(242)는 NIC(244) 및 네트워크(246)를 이용하여 컴퓨팅 디바이스(200)로부터 인코딩된 변경된 영역들을 얻을 수 있다.
원격 어댑터(242)는 GPU(248)를 포함할 수 있다. GPU(248)는 구성 엔진(250)을 포함할 수 있다. 실시예들에서, 구성 엔진(250)은 변경된 영역들을 변경된 영역 위치 값들을 이용하여 정적인 부분으로 구성할 수 있다. 정적인 부분은 변경된 영역들을 포함하지 않는 데스크탑의 영역들을 포함한다. 구성된 변경된 영역들 및 정적인 부분은 원격 디바이스(252) 상에 렌더링될 수 있다. 실시예들에서, 원격 어댑터(242) 및 원격 디바이스(252)는 동일한 구성요소이다.
도 2의 블록도는, 컴퓨팅 디바이스(200)가 도 2에 도시된 구성요소들 전부를 포함하는 것을 나타내도록 의도되지 않는다. 더욱이, 컴퓨팅 디바이스(200)는 특정 구현의 세부사항들에 따라, 도 2에 도시되지 않은 임의의 수의 추가적인 구성요소들을 포함할 수 있다.
도 3은 실시예들에 따른, 변경된 영역들을 이용한 매체 인코딩을 위해 이용될 수 있는 WiDi 아키텍쳐(300)의 개략도이다. 유사한 번호의 항목들은 도 2에 대하여 기술된 바와 같다. WiDi 아키텍쳐(300)는 변경된 영역들을 이용한 매체 인코딩을 지원하는 하드웨어(302)를 포함한다. 하드웨어는, 제한적인 것은 아니지만, CPU(202) 및 GPU(206)(도 2)를 포함할 수 있다. 그래픽 드라이버(226)는 하드웨어가 다른 하드웨어 및 다양한 애플리케이션들과 통신할 수 있도록 한다. 하드웨어 구성기(304) 또는 데스크탑 구성 엔진(306), 또는 그들의 임의의 조합은 데스크탑의 어느 영역들이 변경되었는지를 결정할 수 있다. 실시예들에서, 하드웨어 구성기(304)는 개방 핸드셋 얼라이언스(Open Handset Alliance)에 의한 안드로이드 운영 체제 내의 HAL(Hardware Abstraction Layer)인 하드웨어 구성기일 수 있다. 더욱이, 실시예들에서, 데스크탑 구성 엔진(306)은 마이크로소프트에 의한 윈도우 운영 체제의 데스크탑 구성 관리자 또는 데스크탑 윈도우 관리자일 수 있다. 더욱이, 실시예들에서, 고정 기능 유닛, 비디오 인코더, 또는 장면 변경 검출 하드웨어 유닛과 같은 다양한 하드웨어를 이용하여 변경된 영역들을 결정할 수 있다.
따라서, 하드웨어 구성기(304), 데스크탑 구성 엔진(306), 고정 기능 유닛, 비디오 인코더, 또는 장면 변경 검출 하드웨어 유닛을 이용하여 변경된 영역들을 얻을 수 있다. 실시예들에서, 데스크탑의 현재 영역들은 데스크탑으로부터 얻어진 이전 영역들과 비교될 수 있다. 영역들은 푸싱(pushing), 풀링(pulling), 폴링(polling)을 통해 얻어지거나, 또는 전술한 바와 같이 스케쥴링된 간격들로 WiDi 스트림 관리자(236)로부터 하드웨어 구성기(304), 데스크탑 구성 엔진(306), 고정 기능 유닛, 비디오 인코더, 또는 장면 변경 검출 하드웨어 유닛으로 송신될 수 있다. 데스크탑의 현재 영역과 WiDi 스트림 관리자(236)로부터 이전에 송신된 동일 영역 사이에 변경이 존재한다면, 영역은 변경된 것이다. 실시예들에서, 영역은 변경된 픽셀들의 미리 결정된 임계값과 비교될 수도 있다. 변경된 픽셀들의 수가 미리 결정된 임계값보다 크다면, 영역은 변경된 것으로 고려될 수 있다. 변경된 영역을 검출하는 것에 응답하여, 하드웨어 구성기(304), 데스크탑 구성 엔진(306), 고정 기능 유닛, 비디오 인코더, 또는 장면 변경 검출 하드웨어 유닛은 변경된 영역 위치 값들을 스트림 관리자(236)에게 송신할 수 있다.
WiDi 스트림 관리자(236)는 미들웨어(238)에 의해 수행된 구성 및 인코딩을 관리한다. 실시예들에서, WiDi 스트림 관리자는 미들웨어(238)와 통신하여, 인코딩할 픽셀들을 포함할 수 있는, 변경된 영역들의 이미지 정보를 얻는다. 이미지 정보는 하드웨어 구성기(304), 데스크탑 구성 엔진(306), 고정 기능 유닛, 비디오 인코더, 장면 변경 검출 하드웨어 유닛, 또는 그들의 임의의 조합 중 하나 이상을 통해 얻어진 변경된 영역들에 대한 변경된 영역 위치 값들에 대응한다. 실시예들에서, 변경된 영역들의 이미지 정보는 비디오 표면(video surface)을 형성한다. 본 명세서에서 이용된 바와 같이, 비디오 표면은 데스크탑 상에 비디오 또는 다른 매체를 렌더링하는데 이용되는 디스플레이의 동적인 부분이다.
미들웨어(238)는 WiDi 스트림 관리자(236)를 통해 매체 애플리케이션(234)으로부터 데스크탑 상의 이미지 정보를 얻을 수 있다. 예를 들어, 매체 애플리케이션(234)은 MPEG(Moving Picture Experts Group) 또는 H.264에 의한 표준과 같은 비디오 표준들에 따라 비디오 플레이백을 압축할 수 있다. MPEG 및 H.264 비디오 표준들은 비디오를 프레임 단위(frame-by-frame)로 처리하고, 다양한 인코딩 알고리즘들을 이용함으로써 비디오를 압축할 수 있다. 미들웨어(238)는 디코더(308)를 이용하여 비디오를 디코딩할 수 있다.
또한, 미들웨어(238)는 WiDi 스트림 관리자(236)에 의해 지시된 것으로서 비디오를 처리하는 비디오 프로세서(310)를 포함할 수 있다. 비디오 처리는 비디오를 스케일링하거나 또는 비디오의 컬러 공간을 변경함으로써, 디코딩된 비디오를 향상시키는 것을 포함할 수 있다. 예를 들어, 비디오는 플레이백을 위한 보다 높은 선명도로부터 플레이백을 위한 보다 낮은 선명도로 스케일링될 수 있다. 실시예들에서, 매체 애플리케이션(234)은 화상 회의 애플리케이션이고, 미들웨어(238)는 데스크탑의 정적인 부분으로 화상 회의 애플리케이션으로부터 수신된 동적인 부분을 구성하는 구성기(312)를 포함한다. 구성된 동적인 부분 및 정적인 부분은, 컴퓨팅 디바이스(200)(도 2)와 같은 컴퓨팅 디바이스 상에 렌더링될 수 있다.
미들웨어(238)는 인코더(314)를 이용하여, 변경된 영역들을 인코딩할 수 있다. 실시예들에서, 미들웨어(238)는 이미지 데이터를 오디오 데이터와 결합하는 멀티플렉서(316)를 포함한다. 또한, 미들웨어(238)는 블록(318)에서 송신기(318)를 이용하여 원격 어댑터로 송신하기 위한 변경된 영역들을 준비할 수 있다. WiFi 드라이버(230)는 미들웨어(238) 및 WiDi 애플리케이션(240)을 이용하여, NIC(244)(도 2)와 같은 하드웨어가 인코딩된 변경된 영역들을 그들의 변경된 영역 위치 값들과 함께 송신하도록 할 수 있다.
도 4는 실시예들에 따른, 변경된 영역들을 이용한 매체 인코딩의 데이터 흐름을 도시하는 블록도(400)이다. 클라이언트 디바이스(402)는 컴퓨팅 디바이스(200)(도 2)와 같은 컴퓨팅 디바이스를 이용하여 발생할 수 있는 데이터 흐름을 포함하는 반면, 원격 디바이스(404)는 원격 어댑터(242) 또는 원격 디바이스(252)(도 2)를 이용하여 발생할 수 있는 데이터 흐름을 포함한다. 실시예들에서, 변경된 영역들을 이용한 매체 인코딩은 WiDi의 이용없이 컴퓨팅 디바이스를 이용하여 발생된다.
압축된 비디오(406)는 매체 애플리케이션(234)(도 2)과 같은 매체 인코딩 애플리케이션으로부터 얻어질 수 있다. 압축된 비디오는 블록(408)에서 디코딩될 수 있다. 전술한 바와 같이, 압축된 비디오는 미들웨어(228)(도 2)를 이용하여 디코딩될 수 있다. 디코딩된 비디오는 매체 인코딩으로부터의 비디오 표면 및 배경 표면 둘다를 포함할 수 있다. 전술한 바와 같이, 비디오 표면은 시간에 걸쳐 변경되는 데스크탑의 동적인 부분이다. 반대로, 데스크탑 표면은 시간에 걸쳐 고정된 채로 유지되는 데스크탑의 정적인 부분이다. 비디오 표면(410)은, 도 3에 대하여 전술한 바와 같이, 미들웨어(238)로부터 변경된 영역들을 검색함으로써 얻어질 수 있다.
비디오 표면(410)은 블록(412)에서 인코딩될 수 있다. 실시예들에서, 인코딩된 비디오 표면은 버퍼(414)로 송신되고, 그 다음, 블록(416)에서 원격 디바이스(404)로 송신된다. 원격 디바이스는 블록(418)에서 비디오 표면을 디코딩할 수 있다. 비디오 표면(410)은 (420)에서 정적인 데스크탑 표면(422)과 함께 처리될 수 있다. 비디오 처리는, 제한적인 것은 아니지만, 비디오의 스케일링, 회전 및 디노이즈(de-noise)를 포함할 수 있다. 정적인 데스크탑 표면(422)은 더티(dirty)하지 않고, 원격 디바이스(404)로 이전에 송신된 영역들을 포함한다. 비디오 표면(410) 및 정적인 데스크탑 표면(422)은 블록(424)에서 하나의 이미지 내로 구성될 수 있다. 매체 인코딩은 디스플레이 상에서의 렌더링을 위해 디스플레이(252)로 송신될 수 있다.
도 5는 실시예들에 따른, 변경된 영역들을 이용한 매체 인코딩을 위한 방법(500)을 도시하는 프로세스 흐름도이다. 다양한 실시예들에서, 방법(500)은 컴퓨팅 디바이스(200)와 같은 컴퓨팅 디바이스 상에서 실행될 수 있다. 다른 실시예들에서, 방법(500)은 도 4에 대하여 전술한 WiDi 아키텍쳐(400)와 같은 WiDi 아키텍쳐를 이용하여 실행될 수 있다.
블록(502)에서, 데스크탑의 정적인 부분 및 변경된 영역들이 검출된다. 본 명세서에서 기술된 바와 같이, 변경된 영역들은 하드웨어 구성기(304) 또는 데스크탑 구성 엔진(306)(도 3)에 의해 검출될 수 있다. 실시예들에서, 변경된 영역들은 매체 드라이버를 이용하여 검출될 수 있다. 더욱이, 전술한 바와 같이, 변경된 영역들은 더티 직사각형들일 수 있다. 블록(504)에서, 변경된 영역들의 양이 결정될 수 있다. 변경된 영역들의 양은 임계값을 나타낼 수 있다. 실시예들에서, 변경된 영역들의 수가 임계값을 초과한다면, 전체 디스플레이가 구성 및 렌더링되어야 한다. 블록(506)에서, 각각의 프레임의 변경된 영역들이 인코딩된다. 실시예들에서, 각각의 변경된 영역 및 대응하는 변경된 영역 위치 값들이 구성 엔진으로 송신되고, 인코딩된 변경된 영역들은 디코딩될 수 있다. 변경된 영역들은 그들의 변경된 영역 위치 값들을 이용하여 정적인 부분으로 구성될 수 있다. 구성 엔진은 원격 어댑터 상에 위치할 수 있으며, 또는, 구성 엔진은 변경된 영역들을 검출하는 컴퓨팅 디바이스의 구성요소일 수 있다. 더욱이, 실시예들에서, 하나 이상의 변경된 영역들 및 그들의 변경된 영역 위치 값들이, 인터넷과 같은 네트워크를 이용하여 다른 컴퓨팅 디바이스로 송신될 수 있다.
도 6a 및 6b는 실시예들에 따른, 변경된 영역들을 이용한 매체 인코딩을 위한 방법(600)을 도시하는 프로세스 흐름도이다. 다양한 실시예들에서, 방법(600)은 컴퓨팅 디바이스(200)와 같은 컴퓨팅 디바이스 상에서 실행될 수 있다. 다른 실시예들에서, 방법(600)은 도 4에 대하여 전술한 WiDi 아키텍쳐(400)와 같은 WiDi 아키텍쳐를 이용하여 실행될 수 있다.
방법(600)은 임의의 변경된 영역들이 있는지를 결정함으로써 블록(602)에서 시작된다. 실시예들에서, 변경된 영역들은 매체 인코딩의 비디오 표면 또는 매체 인코딩의 데스크탑 표면에서 검출될 수 있다. 변경된 영역이 없다면, 변경된 영역이 검출될 때까지 프로세스 흐름은 블록(602)에서 유지된다. 비디오 표면 또는 데스크탑 표면 내에서 변경된 영역이 발생될 때, 프로세스 흐름은 블록(604)으로 계속된다.
블록(604)에서, n개보다 많은 영역들이 더티인지가 결정된다. n의 값은 미리 결정될 수 있으며, 변경된 영역들의 임계 양(threshold amount)을 나타낸다. n개보다 많은 영역들이 더티라면, 그것은 사용자가 윈도우 크기를 조절하거나 또는 매체 애플리케이션을 닫았음을 나타낼 수 있다. n개보다 많은 영역들이 더티인 경우, 전체 디스플레이가 구성 및 렌더링되어야 한다. 따라서, n개보다 많은 영역들이 더티라면, 프로세스 흐름은 블록(606)으로 계속된다. n개보다 적은 영역들이 더티라면, 프로세스 흐름은 블록(610)으로 계속된다.
블록(606)에서, 전체 데스크탑이 구성된다. 실시예들에서, 데스크탑의 변경된 영역들은 백 버퍼(back buffer)를 체크함으로써 검출된다. 백 버퍼는 정적인 부분과 관련된 이미지 정보를 포함할 수 있다. 변경된 영역 위치들과 함께 데스크탑의 변경된 영역들이 원격 어댑터로 송신될 수 있다. 전체 데스크탑은 변경이 이루어진 변경된 영역들의 양이 임계 양 n보다 클 때에 구성될 수 있다. 블록(608)에서, 전체 데스크탑은 인트라 코딩된 프레임들(I-프레임들) 또는 예측 픽쳐 프레임들(P-프레임들)을 이용하여 인코딩된다. 데스크탑이 I-프레임들을 이용하여 인코딩될 때, 각각의 개별적인 프레임은 인코딩 내에서 전체가 지정된다. 따라서, I-프레임은 이전 프레임들로부터의 데이터를 이용하지 않고서 전체 이미지 정보를 운반한다. 각각의 I-프레임은 매체 인코딩의 완전한 정적 이미지로서 간주될 수 있다. 데스크탑이 P-프레임들을 이용하여 인코딩될 때, 현재 프레임과 이전 프레임 사이의 변경들이 인코딩된다. 이미지의 변경되지 않은 픽셀들은 인코딩되지 않으며, 프레임은, 프레임이 인코딩될 때, 이전 프레임들로부터의 일부 이미지 정보에 의존한다.
블록(610)에서, 변경된 영역 위치 값들이 각각의 변경된 영역에 대해 계산된다. 블록(612)에서, 현재 프레임의 각각의 변경된 영역에 대한 위치 값들이 이전 프레임으로부터의 영역 위치 값들과 동일한지의 여부가 결정된다. 현재 프레임의 변경된 영역들의 위치 값들이 이전 프레임에서의 영역들의 위치 값들과 매칭된다면, 현재 프레임의 변경된 영역들은 I-프레임 또는 P-프레임을 이용하여 인코딩될 수 있다. 이러한 시나리오에서, 각각의 변경된 영역은 동일한 위치에 위치되는 이전 프레임에서의 이전 영역을 갖기 때문에, I-프레임 또는 P-프레임을 이용하여 현재 프레임의 변경된 영역들을 인코딩할 수 있다. 그 결과, 이전 프레임은 각각의 위치에서의 각각의 영역에 대한 이미지 정보를 포함한다. 따라서, I-프레임으로부터 인코딩할 때 현재 프레임의 변경된 영역들은 전부 지정될 수 있으며, 또는, 현재 프레임의 변경된 영역들은 이전 프레임으로부터의 이미지 정보에 의존하며, P-프레임을 이용하여 인코딩될 수 있다.
따라서, 현재 프레임의 변경된 영역들의 위치 값들이 이전 프레임에서의 영역들의 위치 값들과 매칭될 때, 인코딩은 하나 이상의 I-프레임들을 이용하여 전부 지정되거나, 또는 인코딩은 하나 이상의 P-프레임들을 이용하여 이전의 프레임으로부터의 정보에 의존할 수 있다. 그러나, 임의의 변경된 영역에 대한 위치 값이 이전 프레임의 영역들로부터의 위치 값들 중 어느 것과도 매칭되지 않을 때, 이전 프레임은 현재 프레임의 각각의 영역에 대응하는 이미지 정보를 포함하지 않기 때문에, 현재 프레임의 변경된 영역들은 하나 이상의 I-프레임들을 이용하여 인코딩될 것이다. 따라서, 현재 프레임의 변경된 영역에 대해 계산된 위치 값들이 이전 프레임의 영역들에 대한 위치 값들과 동일하다면, 프로세스 흐름은 블록(608)으로 계속되어, 전술한 바와 같이, 프레임의 변경된 영역들이 I-프레임들 또는 P-프레임들을 이용하여 인코딩된다. 변경된 영역에 대해 계산된 위치 값들이 이전의 변경된 영역과 동일하지 않다면, 프로세스 흐름은 블록(614)으로 계속된다.
블록(614)에서, 프레임의 변경된 영역들은 I-프레임들을 이용하여 인코딩된다. 블록(616)에서, 변경된 영역들을 갖는 각각의 프레임이 인코딩되었는지의 여부가 결정된다. 변경된 영역들을 갖는 각각의 프레임이 인코딩되지 않았다면, 프로세스 흐름은 블록(612)으로 리턴된다. 변경된 영역들을 갖는 각각의 프레임이 인코딩되었다면, 프로세스 흐름은 블록(618)으로 계속된다.
블록(618)에서, 인코딩된 프레임들은 관련된 오디오와 결합된다. 블록(620)에서, 인코딩된 프레임들, 관련된 오디오 및 변경된 영역 위치 값들이 원격 어댑터로 송신된다. 실시예들에서, 인코딩된 프레임들이 암호화될 수 있다. 예를 들어, 특정의 DVD들은 송신 이전에 매체 인코딩을 암호화하는 안전 장치 인테일(security features entail)을 포함할 수 있다. DVD로부터의 비디오 인코딩은 송신 이전에 암호화되며, 그렇지 않은 경우, 송신은 실패할 수 있다. 블록(622)에서, 전술한 바와 같이, 인코딩된 프레임들 및 오디오가 디코딩된다. 실시예들에서, 인코딩된 프레임들은 복호화된다. 블록(624)에서, 디코딩된 프레임들에서 변경된 영역이 있는지가 결정된다. 변경된 영역은 변경된 영역 위치 값들의 존재에 의해 검출될 수 있다. 변경된 영역이 있다면, 프로세스 흐름은 블록(626)으로 계속된다. 변경된 영역이 없다면, 프로세스 흐름은 블록(628)으로 계속된다.
블록(626)에서, 인코딩된 프레임들은, 전술한 바와 같은 변경된 영역 위치 값들을 이용하여, 정적인 데스크탑으로 구성된다. 블록(628)에서, 인코딩된 프레임들 및 정적인 데스크탑은 원격 디바이스 상에 렌더링될 수 있다.
도 5 및 6의 프로세스 흐름도들은, 방법들(500, 600)의 블록들이 임의의 특정한 순서로 실행되거나, 또는 블록들 전부가 모든 경우에 포함됨을 나타내도록 의도하지 않는다. 더욱이, 특정 구현들의 세부사항에 따라, 임의의 수의 추가적인 블록들이 방법들(500, 600) 내에 포함될 수 있다.
도 7은 실시예들에 따른, 변경된 영역들을 이용한 매체 인코딩을 위한 코드를 저장하는 유형의, 비일시적인 컴퓨터 판독가능 매체(700)를 도시하는 블록도이다. 유형의, 비일시적인 컴퓨터 판독가능 매체(700)는 컴퓨터 버스(704)를 통해 프로세서(702)에 의해 액세스될 수 있다. 더욱이, 유형의, 비일시적인 컴퓨터 판독가능 매체(700)는 프로세서(702)가 본 명세서에서 기술된 방법들을 수행하도록 지시하게 구성된 코드를 포함할 수 있다.
본 명세서에서 기술된 다양한 소프트웨어 구성요소들은, 도 7에 나타낸 바와 같이, 하나 이상의 유형의, 비일시적인 컴퓨터 판독가능 매체(700) 상에 저장될 수 있다. 예를 들어, 관리 모듈(706)은 매체 인코딩에서의 변경된 영역들을 검출하도록 구성될 수 있다. 인코딩 모듈(708)은 변경된 영역들을 인코딩하도록 구성될 수 있다. 더욱이, 송신 모듈(710)은 변경된 영역 위치들을 갖는 변경된 영역들을 원격 어댑터에게 송신하도록 구성될 수 있다. 디코딩 모듈(712)은 변경된 영역들을 디코딩하도록 구성될 수 있다. 구성 모듈(714)은 변경된 영역 위치 값들을 이용하여 정적인 부분으로 변경된 영역들을 구성하도록 구성될 수 있다.
도 7의 블록도는 유형의, 비일시적인 컴퓨터 판독가능 매체(700)가 도 7에 도시된 구성요소들 전부 포함함을 나타내도록 의도하지 않는다. 더욱이, 유형의, 비일시적인 컴퓨터 판독가능 매체(700)는, 특정 구현의 세부사항들에 따라, 도 7에 도시되지 않은 임의의 수의 추가적인 구성요소들을 포함할 수 있다.
도 8은 공유된 물리적 메모리를 구현하기 위한 예시적인 시스템(800)의 블록도이다. 유사한 번호의 항목들은 도 2, 3, 4에 대하여 기술된 바와 같다. 일부 실시예들에서, 시스템(800)은 매체 시스템이다. 또한, 시스템(800)은 PC(personal computer), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, PDA(personal digital assistant), 셀룰러 전화, 결합 셀룰러 전화/PDA, 텔레비젼, 스마트 디바이스(예를 들면, 스마트폰, 스마트 태블릿 또는 스마트 텔레비젼), MID(mobile internet device), 메시징 디바이스, 데이터 통신 디바이스 등에 통합될 수 있다.
다양한 실시예들에서, 시스템(800)은 디스플레이(804)에 연결된 플랫폼(802)을 포함한다. 플랫폼(802)은 콘텐츠 서비스 디바이스(들)(806) 또는 콘텐츠 전달 디바이스(들)(808), 또는 다른 유사한 콘텐츠 소스들과 같은 콘텐츠 디바이스로부터 콘텐츠를 수신할 수 있다. 하나 이상의 네비게이션 특징부들을 포함하는 네비게이션 제어기(810)를 이용하여, 예를 들면, 플랫폼(802) 및/또는 디스플레이(804)와 상호작용할 수 있다. 이러한 구성요소들 각각은 이하에 보다 상세히 기술된다.
플랫폼(802)은 칩셋(812), CPU(central processing unit)(202), 메모리 디바이스(204), 저장 장치(232), 그래픽 서브시스템(814), 애플리케이션들(816) 및 라디오(818)의 임의의 조합을 포함할 수 있다. 칩셋(812)은 CPU(102), 메모리 디바이스(204), 저장 장치(120), 그래픽 서브시스템(814), 애플리케이션들(816) 및 라디오(818) 사이의 상호 통신을 제공할 수 있다. 예를 들어, 칩셋(812)은 저장 장치(232)와의 상호 통신을 제공할 수 있는 저장 어댑터(도시되지 않음)를 포함할 수 있다.
CPU(102)는 CISC(Complex Instruction Set Computer) 또는 RISC(Reduced Instruction Set Computer) 프로세서들, x86 인스트럭션 세트 호환 프로세서들, 멀티 코어 또는 임의의 다른 마이크로프로세서 또는 CPU로서 구현될 수 있다. 몇몇 실시예들에서, CPU(102)는 듀얼 코어 프로세서(들), 듀얼 코어 모바일 프로세서(들) 등을 포함한다.
메모리 디바이스(204)는, 제한적인 것은 아니지만, RAM, DRAM 또는 SRAM(Static RAM)과 같은 휘발성 메모리 디바이스로서 구현될 수 있다. 저장 장치(232)는, 제한적인 것은 아니지만, 자기 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브, 내부 저장 장치, 부착형 저장 장치, 플래시 메모리, 배터리 백업 SDRAM(synchronous DRAM), 및/또는 네트워크 액세스가능 저장 장치와 같은 비휘발성 저장 장치로서 구현될 수 있다. 몇몇 실시예들에서, 저장 장치(232)는, 예를 들면, 다수의 하드 드라이브들이 포함될 때에, 가치있는 디지털 매체에 대한 저장 성능 강화된 보호를 증가시키기 위한 기술을 포함한다.
그래픽 서브시스템(814)은 디스플레이를 위한 비디오 또는 스틸(still)과 같은 이미지들의 처리를 수행할 수 있다. 그래픽 서브시스템(814)은, 예를 들면, GPU(206)(도 2)와 같은 GPU, 또는 VPU(visual processing unit)를 포함할 수 있다. 아날로그 또는 디지털 인터페이스를 이용하여 그래픽 서브시스템(814)과 디스플레이(804)를 통신가능하게 연결할 수 있다. 예를 들어, 인터페이스는 고선명도 멀티미디어 인트페이스(High-Definition Multimedia Interface), 디스플레이 포트(DisplayPort), 무선 HDMI, 및/또는 무선 HD 호환 기술들 중 임의의 것일 수 있다. 그래픽 서브시스템(814)은 CPU(102) 또는 칩셋(812) 내에 통합될 수 있다. 대안적으로, 그래픽 서브시스템(814)은 칩셋(812)에 통신가능하게 연결된 독립형 카드일 수 있다.
본 명세서에서 기술된 그래픽 및/또는 비디오 처리 기술들은 다양한 하드웨어 아키텍쳐로 구현될 수 있다. 예를 들어, 그래픽 및/또는 비디오 기능은 칩셋(812) 내에 통합될 수 있다. 대안적으로, 별도의 그래픽 및/또는 비디오 프로세서가 이용될 수 있다. 또다른 실시예로서, 그래픽 및/또는 비디오 기능들은, 멀티 코어 프로세서를 포함하는 범용 프로세서에 의해 구현될 수 있다. 다른 실시예에서, 기능들은 가전 제품 디바이스(consumer electronics device)에서 구현될 수 있다.
라디오(818)는 다양한 적절한 무선 통신 기술들을 이용하여 신호들을 송신 및 수신할 수 있는 하나 이상의 라디오들을 포함할 수 있다. 그러한 기술들은 하나 이상의 무선 네트워크들을 통한 통신들을 포함할 수 있다. 예시적인 무선 네트워크들은 WLAN(wireless local area network), WPAN(wireless personal area network), WMAN(wireless metropolitan area network), 셀룰러 네트워크, 위성 네트워크 등을 포함한다. 그러한 네트워크들을 통한 통신에서, 라디오(818)는 임의의 버전의 하나 이상의 적용가능한 표준들에 따라 동작할 수 있다.
디스플레이(804)는 임의의 텔레비젼 타입 모니터 또는 디스플레이를 포함할 수 있다. 예를 들어, 디스플레이(804)는 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 비디오 모니터, 텔레비젼 등을 포함할 수 있다. 디스플레이(804)는 디지털 및/또는 아날로그일 수 있다. 몇몇 실시예들에서, 디스플레이(804)는 홀로그래픽 디스플레이이다. 또한, 디스플레이(804)는 시각적 프로젝션(visual projection)을 수신할 수 있는 투명 표면(transparent surface)일 수 있다. 그러한 프로젝션들은 다양한 형태의 정보, 이미지들, 대상(object)들 등을 전달할 수 있다. 예를 들어, 그러한 프로젝션들은 MAR(mobile augmented reality) 애플리케이션을 위한 시각적 오버레이일 수 있다. 하나 이상의 애플리케이션들(816)의 제어하에, 플랫폼(802)은 디스플레이(804) 상에 사용자 인터페이스(820)를 디스플레이할 수 있다.
콘텐츠 서비스 디바이스(들)(806)은 임의의 국가의, 국제적인, 또는 독립적인 서비스에 의해 호스팅될 수 있으므로, 예를 들면, 인터넷을 통해 플랫폼(802)에 액세스가능할 수 있다. 콘텐츠 서비스 디바이스(들)(806)은 플랫폼(802) 및/또는 디스플레이(804)에 연결될 수 있다. 플랫폼(802) 및/또는 콘텐츠 서비스 디바이스(들)(806)은 네트워크(246)에 연결되어, 네트워크(246)로의 및 네트워크(246)로부터의 매체 정보를 통신(예를 들면, 송신 및/또는 수신)할 수 있다. 콘텐츠 전달 디바이스(들)(808)은 또한 플랫폼(802) 및/또는 디스플레이(804)에 연결될 수 있다.
콘텐츠 서비스 디바이스(들)(806)은 케이블 텔레비젼 박스, 개인 컴퓨터, 네트워크, 전화, 또는 디지털 정보를 전달할 수 있는 인터넷 가능 디바이스를 포함할 수 있다. 또한, 콘텐츠 서비스 디바이스(들)(806)은, 네트워크(246)를 통해서 또는 직접적으로, 콘텐츠 제공자들과 플랫폼(802) 또는 디스플레이(804) 사이에 콘텐츠를 일방향으로 또는 양방향으로 통신할 수 있는 임의의 다른 유사한 디바이스들을 포함할 수 있다. 콘텐츠는 네트워크(246)를 통해 콘텐츠 제공자 및 시스템(800)에서의 구성요소들 중 임의의 하나로/로부터 일방향으로 및/또는 양방향으로 통신될 수 있다. 콘텐츠의 예들은, 예를 들면, 비디오, 음악, 의료 및 게이밍 정보 등을 포함하는 임의의 매체 정보를 포함할 수 있다.
콘텐츠 서비스 디바이스(들)(806)은 매체 정보, 디지털 정보, 또는 다른 콘텐츠를 포함하는 케이블 텔레비젼 프로그래밍과 같은 콘텐츠를 수신할 수 있다. 콘텐츠 제공자들의 예들은, 다른 것들 중에서, 임의의 케이블 또는 위성 텔레비젼 또는 라디오 또는 인터넷 콘텐츠 제공자들을 포함할 수 있다.
몇몇 실시예들에서, 플랫폼(802)은 하나 이상의 네비게이션 특징부들을 포함하는 네비게이션 제어기(810)로부터 제어 신호들을 수신한다. 네비게이션 제어기(810)의 네비게이션 특징부들을 이용하여, 예를 들면, 사용자 인터페이스(820)와 상호작용할 수 있다. 네비게이션 제어기(810)는 사용자가 공간적인 (예를 들면, 연속적인 및 다차원적인) 데이터를 컴퓨터에 입력할 수 있도록 하는 컴퓨터 하드웨어 구성요소(구체적으로 휴먼 인터페이스 디바이스)일 수 있는 포인팅 디바이스일 수 있다. GUI, 텔레비젼 및 모니터와 같은 많은 시스템들은 물리적인 제스쳐들을 이용하여 사용자가 데이터를 제어하고, 데이터를 컴퓨터 또는 텔레비젼에 제공할 수 있도록 한다. 물리적인 제스쳐들은, 제한적인 것은 아니지만, 얼굴 표현(facial expression), 얼굴 움직임, 다양한 팔의 움직임, 신체 움직임, 바디 랭귀지 또는 그들의 임의의 조합을 포함한다. 그러한 물리적인 제스쳐들은 코맨드들 또는 인스트럭션들로 인식 및 변환될 수 있다.
네비게이션 제어기(810)의 네비게이션 특징부들의 움직임들은, 디스플레이(804) 상에 디스플레이된 포인터, 커서, 포커스 링, 또는 다른 시각적 표시자들의 움직임들에 의해 디스플레이(804) 상에 에코될 수 있다. 예를 들어, 애플리케이션들(816)의 제어하에, 네비게이션 제어기(810) 상에 위치된 네비게이션 특징부들은, 사용자 인터페이스(820) 상에 디스플레이된 가상 네비게이션 특징부들로 맵핑될 수 있다. 몇몇 실시예들에서, 네비게이션 제어기(810)는 별도의 구성요소가 아닐 수 있으며, 그보다는 플랫폼(802) 및/또는 디스플레이(804) 내에 통합될 수 있다.
시스템(800)은 사용자들이, 예를 들면, 인에이블링될 때, 초기 부트업(boot-up) 이후에 버튼의 터치에 의해 플랫폼(802)을 즉각적으로 턴 온 및 오프할 수 있도록 하는 기술을 포함하는 드라이버들(도시되지 않음)을 포함할 수 있다. 프로그램 로직은, 플랫폼이 턴 "오프"될 때, 플랫폼(802)이 콘텐츠를 매체 어댑터들 또는 다른 콘텐츠 서비스 디바이스(들)(806) 또는 콘텐츠 전달 디바이스(들)(808)로 스트리밍하도록 할 수 있다. 또한, 칩셋(812)은 예를 들면, 5.1 서라운드 사운드 오디오 및/또는 고선명도 9.1 서라운드 사운드 오디오에 대한 하드웨어 및/또는 소프트웨어 지원을 포함할 수 있다. 드라이버들은 통합된 그래픽 플랫폼들에 대한 그래픽 드라이버를 포함할 수 있다. 몇몇 실시예들에서, 그래픽 드라이버는 PCIe(peripheral component interconnect express) 그래픽 카드를 포함한다.
다양한 실시예들에서, 시스템(800)에서 도시된 임의의 하나 이상의 구성요소들은 통합될 수 있다. 예를 들어, 플랫폼(802) 및 콘텐츠 서비스 디바이스(들)(806)이 통합될 수 있고, 플랫폼(802) 및 콘텐츠 전달 디바이스(들)(808)이 통합될 수 있으며, 또는 플랫폼(802), 콘텐츠 서비스 디바이스(들)(806) 및 콘텐츠 전달 디바이스(들)이 통합될 수 있다. 몇몇 실시예들에서, 플랫폼(802) 및 디스플레이(804)는 통합된 유닛이다. 예를 들어, 디스플레이(804) 및 콘텐츠 서비스 디바이스(들)(806)이 통합될 수 있으며, 또는 디스플레이(804) 및 콘텐츠 전달 디바이스(들)(808)이 통합될 수 있다.
시스템(800)은 무선 시스템 또는 유선 시스템으로서 구현될 수 있다. 무선 시스템으로서 구현될 때, 시스템(800)은 하나 이상의 안테나, 송신기, 수신기, 송수신기, 증폭기, 필터, 제어 로직 등과 같은 무선 공유된 매체를 통해 통신하기에 적절한 구성요소들 및 인터페이스들을 포함할 수 있다. 무선 공유된 매체의 예는 RF 스펙트럼과 같은 무선 스텍트럼의 부분들을 포함할 수 있다. 유선 시스템으로서 구현될 때, 시스템(800)은 입/출력(I/O) 어댑터들, I/O 어댑터를 대응하는 유선 통신 매체, 네트워크 인터페이스 카드(NIC), 디스크 제어기, 비디오 제어기, 오디오 제어기 등과 접속하기 위한 물리적 접속기들과 같은 유선 통신 매체를 통해 통신하기에 적절한 구성요소들 및 인터페이스들을 포함할 수 있다. 유선 통신 매체의 예들은 배선, 케이블, 금속 리드들, PCB(printed circuit board), 백플레인, 스위치 패브릭(switch fabric), 반도체 재료, 트위스티드쌍 배선, 동축 케이블, 광섬유 등을 포함할 수 있다.
플랫폼(802)은 정보를 통신하기 위한 하나 이상의 논리적 또는 물리적 채널들을 형성할 수 있다. 정보는 매체 정보 및 제어 정보를 포함할 수 있다. 매체 정보는 사용자에 대한 콘텐츠를 나타내는 임의의 데이터를 지칭할 수 있다. 콘텐츠의 예들은, 예를 들면, 음성 대화, 화상 회의, 스트리밍 비디오, 전자 메일(email) 메시지, 음성 메일 메시지, 영숫자 심볼들, 그래픽들, 이미지, 비디오, 텍스트 등으로부터의 데이터를 포함할 수 있다. 음성 대화로부터의 데이터는, 예를 들면, 스피치 정보, 침묵 기간들, 배경 잡음, 편안한 잡음(comfort noise), 톤(tone) 등일 수 있다. 제어 정보는 자동화된 시스템에 대한 코맨드들, 인스트럭션들 또는 제어 워드(control word)들을 지칭할 수 있다. 예를 들어, 제어 정보는 시스템을 통해 매체 정보를 라우팅하거나, 또는 노드에게 매체 정보를 미리 결정된 방식으로 처리하도록 지시하는데 이용될 수 있다. 그러나, 실시예들은 도 8에 도시되거나 또는 기술된 요소들 또는 문맥으로 제한되지 않는다.
도 9는 도 8의 시스템(800)이 구현될 수 있는 소형 인수 디바이스(small form factor device)(900)의 개략도이다. 유사한 번호의 항목들은 도 8에 대하여 기술된 바와 같다. 몇몇 실시예들에서, 예를 들어, 디바이스(900)는 무선 능력들을 갖는 모바일 컴퓨팅 디바이스로서 구현된다. 모바일 컴퓨팅 디바이스는, 예를 들면, 하나 이상의 배터리와 같은 모바일 전력 소스 또는 공급기 및 처리 시스템을 갖는 임의의 디바이스를 지칭할 수 있다.
전술한 바와 같이, 모바일 컴퓨팅 디바이스의 예들은 PC, 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, PDA, 셀룰러 전화, 결합 셀룰러 전화/PDA, 텔레비젼, 스마트 디바이스(예를 들면, 스마트폰, 스마트 태블릿 또는 스마트 텔레비젼), MID, 메시징 디바이스, 데이터 통신 디바이스 등을 포함할 수 있다.
모바일 컴퓨팅 디바이스의 예는, 손목(wrist) 컴퓨터, 손가락(finger) 컴퓨터, 링 컴퓨터, 안경(eyeglass) 컴퓨터, 벨트-클립(belt-clip) 컴퓨터, 암-밴드(arm-band) 컴퓨터, 신발(shoe) 컴퓨터, 의류(clothing) 컴퓨터, 또는 임의의 다른 적절한 타입의 착용가능 컴퓨터와 같은 개인에 의해 착용되도록 구성되는 컴퓨터를 포함할 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스는 컴퓨터 애플리케이션들 뿐만 아니라 음성 통신 및/또는 데이터 통신을 실행할 수 있는 스마트폰으로서 구현될 수 있다. 몇몇 실시예들이, 예로써 스마트폰으로서 구현된 모바일 컴퓨팅 디바이스로 기술될 수 있지만, 다른 무선 모바일 컴퓨팅 디바이스들을 또한 이용한 다른 실시예들이 구현될 수 있음을 이해할 것이다.
도 9에 도시된 바와 같이, 디바이스(900)는 하우징(902), 디스플레이(904), 입/출력(I/O) 디바이스(906) 및 안테나(908)를 포함할 수 있다. 또한, 디바이스(900)는 네비게이션 특징부들(910)을 포함할 수 있다. 디스플레이(904)는 모바일 컴퓨팅 디바이스에 대해 적합한 정보를 디스플레이하기 위한 임의의 적절한 디스플레이 유닛을 포함할 수 있다. I/O 디바이스(906)는 모바일 컴퓨팅 디바이스에 정보를 입력하기 위한 임의의 적절한 I/O 디바이스를 포함할 수 있다. 예를 들어, I/O 디바이스는 영숫자 키보드, 숫자 키패드, 터치 패드, 입력 키들, 버튼들, 스위치들, 락커 스위치들, 마이크로폰들, 스피커들, 음성 인식 디바이스 및 소프트웨어 등을 포함할 수 있다. 또한, 정보는 마이크로폰을 통해 디바이스(900)에 입력될 수 있다. 그러한 정보는 음성 인식 디바이스에 의해 디지털화될 수 있다.
예 1
변경된 영역들을 이용한 매체 인코딩을 위한 방법이 본 명세서에서 기술된다. 방법은 데스크탑의 임의의 변경된 영역들 및 정적인 부분을 검출하는 것을 포함한다. 변경된 영역들은 인코딩되어, 그들의 변경된 영역 위치 값들과 함께 구성 엔진으로 송신될 수 있다. 변경된 영역들은 디코딩되고, 변경된 영역 위치 값들을 이용하여 정적인 부분으로 구성될 수 있다.
변경된 영역들은 변경된 영역 위치 값들과 함께, 원격 어댑터 상에 위치된 구성 엔진으로 송신될 수 있다. 또한, 변경된 영역들은 암호화 및 복호화될 수 있다. 더욱이, 구성 엔진은 컴퓨팅 디바이스 상에 위치될 수 있으며, 그곳에서 데스크탑의 변경된 영역들 및 정적인 부분이 검출된다. 실시예들에서, 변경된 영역들은 백 버퍼를 체크함으로써 검출될 수 있으며, 변경된 영역들은 변경된 영역 위치와 함께 원격 어댑터로 송신될 수 있다.
인코딩은, 변경된 영역 위치 값들이 이전의 변경된 영역 위치 값들과 매칭되지 않는 경우, I-프레임으로부터의 인코딩을 포함할 수 있다. 더욱이, 인코딩은, 변경된 영역 위치 값들이 이전의 변경된 영역 위치 값들과 매칭되는 경우, I-프레임 또는 P-프레임으로부터의 인코딩을 포함할 수 있다. 또한, 방법은 다수의 변경된 영역들을 반복적으로 인코딩, 디코딩 및 구성하는 것을 포함할 수 있다. 또한, 매체 애플리케이션은 이미지 정보를 구성하기 위해 폴링, 푸싱, 풀링 또는 타이머를 이용할 수 있다.
예 2
컴퓨팅 디바이스가 본 명세서에서 기술된다. 컴퓨팅 디바이스는 저장된 인스트럭션들을 실행하도록 구성되는 CPU 및 인스트럭션들을 저장하는 저장 장치를 포함한다. 저장 장치는, CPU에 의해 실행될 때, 컴퓨팅 디바이스의 데스크탑의 임의의 영역들 및 정적인 부분을 검출하도록 구성되는 프로세서 실행가능 코드를 포함한다. 변경된 영역들은 인코딩될 수 있다. 또한, 변경된 영역들 및 그들의 위치 값들은 구성 엔진으로 송신될 수 있다. 변경된 영역들은 디코딩되고, 변경된 영역 위치 값들을 이용하여 정적인 부분으로 구성될 수 있다.
프로세서 실행가능 코드는 변경된 영역들을 암호화 및 복호화하도록 구성될 수 있다. 구성 엔진은 원격 어댑터 상에 위치될 수 있으며, 변경된 영역들은 원격 어댑터에서 디코딩될 수 있다. 컴퓨팅 디바이스는 백 버퍼를 체크함으로써 변경된 영역들을 검출하도록 구성될 수 있으며, 변경된 영역들은 변경된 영역 위치 값들과 함께 원격 어댑터로 송신될 수 있다. 또한, 컴퓨팅 디바이스는, 변경된 영역 위치 값들이 이전의 변경된 영역 위치 값들과 매칭되지 않는 경우, I-프레임으로부터 인코딩하도록 구성될 수 있다. 더욱이, 컴퓨팅 디바이스는, 변경된 영역 위치 값들이 이전의 변경된 영역 위치 값들과 매칭되는 경우, I-프레임 또는 P-프레임으로부터 인코딩하도록 구성될 수 있다. 컴퓨팅 디바이스는 다수의 변경된 영역들을 반복적으로 인코딩, 디코딩 및 구성하도록 구성될 수 있다. 또한, 컴퓨팅 디바이스는 매체 애플리케이션으로부터 이미지 정보를 구성하기 위해 폴링, 푸싱, 풀링하거나 또는 타이머를 이용하도록 구성될 수 있다. 또한, 컴퓨팅 디바이스는 라디오 및 디스플레이를 포함할 수 있으며, 라디오 및 디스플레이는 CPU에 적어도 통신가능하게 연결될 수 있다.
예 3
인스트럭션들이 저장된 적어도 하나의 비일시적인 기계 판독가능 매체가 본 명세서에서 기술된다. 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여, 인스트럭션들은 컴퓨팅 디바이스가 컴퓨팅 디바이스의 데스크탑의 임의의 변경된 영역들 및 정적인 부분을 검출하도록 한다. 변경된 영역들은 인코딩될 수 있다. 또한, 인스트럭션들은 컴퓨팅 디바이스가 변경된 영역들을 그들의 변경된 영역 위치 값들과 함께 구성 엔진으로 송신하도록 할 수 있다. 변경된 영역들은 디코딩되고, 변경된 영역 위치 값들을 이용하여 데스크탑의 정적인 부분으로 구성될 수 있다.
변경된 영역들 및 그들의 변경된 영역 위치 값들은 구성 엔진으로 송신될 수 있으며, 구성 엔진은 원격 어댑터 상에 위치될 수 있다. 변경된 영역들은 원격 어댑터에서 디코딩될 수 있다. 더욱이, 변경된 영역들은 암호화 및 복호화될 수 있다.
전술한 예들에서의 세부사항들은 하나 이상의 실시예들에서 어느 곳에서라도 이용될 수 있음을 이해할 것이다. 예컨대, 전술한 컴퓨팅 디바이스의 모든 선택적인 특징들은, 본 명세서에서 기술된 방법들 또는 컴퓨터 판독가능 매체 중 어느 하나에 대하여 구현될 수도 있다. 더욱이, 흐름도들 및/또는 상태도들이 실시예들을 기술하기 위해 본 명세서에서 이용될 수 있지만, 본 발명은 본 명세서에서의 그러한 도면들 또는 대응하는 설명으로 제한되지 않는다. 예를 들어, 흐름이 각각의 예시된 박스 또는 상태를 통해 이동할 필요는 없으며, 본 명세서에서 예시 및 기술된 것과 정확하게 동일한 순서일 필요는 없다.
본 발명은 본 명세서에서 열거된 특정한 세부사항들로 제한되지 않는다. 실제로, 본 개시 내용의 이점을 갖는 기술 분야의 당업자라면, 전술한 설명 및 도면들로부터의 여러 가지의 다른 변경들이 본 발명의 영역내에서 행해질 수 있음을 이해할 것이다. 따라서, 임의의 보정을 포함하는 이하의 청구항들이 본 발명의 영역을 정의한다.

Claims (23)

  1. 변경된 영역들을 이용한 매체 인코딩 방법으로서,
    컴퓨팅 디바이스의 데스크탑의 임의의 변경된 영역들 및 정적인 부분을 검출하는 단계와,
    상기 변경된 영역들의 양을 결정하는 단계와,
    상기 변경된 영역들의 양에 응답하여 상기 변경된 영역들을 인코딩하는 단계를 포함하는
    매체 인코딩 방법.
  2. 제1항에 있어서,
    상기 변경된 영역들 및 변경된 영역 위치 값들을 구성 엔진으로 송신하는 단계와,
    상기 변경된 영역들을 디코딩하는 단계와,
    상기 변경된 영역들을 상기 변경된 영역 위치 값들을 이용하여 상기 데스크탑의 상기 정적인 부분과 함께 구성하는 단계를 포함하는
    매체 인코딩 방법.

  3. 제1항에 있어서,
    각각의 변경된 영역은, 영역 내의 변경된 픽셀들의 수가 미리 결정된 임계값보다 큰 경우에 검출되는
    매체 인코딩 방법.
  4. 제1항에 있어서,
    상기 변경된 영역들 및 임의의 변경된 영역 위치 값들을 원격 어댑터 상에 위치하는 구성 엔진으로 송신하는 단계와,
    상기 원격 어댑터에서 상기 변경된 영역들을 디코딩하는 단계를 포함하는
    매체 인코딩 방법.
  5. 제1항에 있어서,
    상기 구성 엔진은, 상기 데스크탑의 상기 변경된 영역들 및 상기 정적인 부분이 검출되는 상기 컴퓨팅 디바이스 상에 위치하는
    매체 인코딩 방법.

  6. 제1항에 있어서,
    백 버퍼를 체크함으로써 상기 변경된 영역들을 검출하는 단계와,
    상기 변경된 영역들을 임의의 변경된 영역 위치들과 함께 원격 어댑터로 송신하는 단계를 더 포함하는
    매체 인코딩 방법.
  7. 제1항에 있어서,
    변경된 영역 위치 값들이 이전의 변경된 영역 위치 값들과 매칭되지 않는 것에 응답하여 I-프레임으로부터 인코딩하는 단계를 포함하는
    매체 인코딩 방법.
  8. 제1항에 있어서,
    변경된 영역 위치 값들이 이전의 변경된 영역 위치 값들과 매칭되는 것에 응답하여 I-프레임 또는 P-프레임으로부터 인코딩하는 단계를 포함하는
    매체 인코딩 방법.

  9. 제1항에 있어서,
    변경된 영역들을 반복적으로 검출, 결정 및 인코딩하는 단계를 포함하는
    매체 인코딩 방법.
  10. 데스크탑의 임의의 변경된 영역들 및 정적인 부분을 검출하도록 구성된 검출기와,
    저장된 인스트럭션들을 실행하도록 구성되는 CPU 및 인스트럭션들을 저장하는 저장 장치 - 상기 저장 장치는, 상기 CPU에 의해 실행될 때, 변경된 영역들의 양을 결정하도록 구성되는 프로세서 실행가능 코드를 포함함 - 와,
    상기 변경된 영역들의 양에 응답하여 상기 변경된 영역들을 인코딩하도록 구성된 인코더를 포함하는
    컴퓨팅 디바이스.
  11. 제10항에 있어서,
    상기 프로세서 실행가능 코드는, 상기 CPU에 의해 실행될 때,
    상기 변경된 영역들 및 변경된 영역 위치 값들을 구성 엔진으로 송신하고,
    상기 변경된 영역들을 디코딩하고,
    상기 변경된 영역들을 상기 변경된 영역 위치 값들을 이용하여 상기 데스크탑의 상기 정적인 부분과 함께 구성하도록 구성되는
    컴퓨팅 디바이스.
  12. 제10항에 있어서,
    각각의 변경된 영역은, 영역 내의 변경된 픽셀들의 수가 미리 결정된 임계값보다 큰 경우에 검출되는
    컴퓨팅 디바이스.
  13. 제10항에 있어서,
    상기 프로세서 실행가능 코드는, 상기 CPU에 의해 실행될 때,
    상기 변경된 영역들 및 임의의 변경된 영역 위치 값들을 원격 어댑터 상에 위치하는 구성 엔진으로 송신하고,
    상기 원격 어댑터에서 상기 변경된 영역들을 디코딩하도록 구성되는
    컴퓨팅 디바이스.
  14. 제10항에 있어서,
    구성 엔진을 더 포함하는
    컴퓨팅 디바이스.
  15. 제10항에 있어서,
    상기 컴퓨팅 디바이스는,
    백 버퍼를 체크함으로써 상기 변경된 영역들을 검출하고,
    상기 변경된 영역들을 임의의 변경된 영역 위치 값들과 함께 원격 어댑터로 송신하도록 구성되는
    컴퓨팅 디바이스.
  16. 제10항에 있어서,
    상기 컴퓨팅 디바이스는, 변경된 영역 위치 값들이 이전의 변경된 영역 위치 값들과 매칭되지 않는 것에 응답하여 I-프레임으로부터 인코딩하도록 구성되는
    컴퓨팅 디바이스.
  17. 제10항에 있어서,
    상기 컴퓨팅 디바이스는 변경된 영역 위치 값들이 이전의 변경된 영역 위치 값들과 매칭되는 것에 응답하여 I-프레임 또는 P-프레임으로부터 인코딩하도록 구성되는
    컴퓨팅 디바이스.
  18. 제10항에 있어서,
    상기 컴퓨팅 디바이스는 변경된 영역들을 반복적으로 검출, 결정 및 인코딩하도록 구성되는
    컴퓨팅 디바이스.
  19. 제10항에 있어서,
    상기 컴퓨팅 디바이스는 매체 애플리케이션으로부터 이미지 정보를 구성하기 위해 폴링(poll), 푸싱(push), 풀링(pull)하거나 또는 타이머를 이용하도록 구성되는
    컴퓨팅 디바이스.
  20. 제10항에 있어서,
    라디오 및 디스플레이를 더 포함하되,
    상기 라디오 및 상기 디스플레이는 상기 CPU에 적어도 통신가능하도록 연결되는
    컴퓨팅 디바이스.
  21. 인스트럭들이 저장되는 적어도 하나의 기계 판독가능 매체로서,
    상기 인스트럭션들은, 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여, 상기 컴퓨팅 디바이스로 하여금,
    상기 컴퓨팅 디바이스의 데스크탑의 임의의 변경된 영역들 및 정적인 부분을 검출하고,
    변경된 영역들의 양을 결정하고,
    상기 변경된 영역들의 양에 응답하여 상기 변경된 영역들을 인코딩하도록 하는
    기계 판독가능 매체.
  22. 제21항에 있어서,
    상기 인스트럭션들은, 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여, 상기 컴퓨팅 디바이스로 하여금,
    상기 변경된 영역들 및 변경된 영역 위치 값들을 구성 엔진으로 송신하고,
    상기 변경된 영역들을 디코딩하고,
    상기 변경된 영역들을 상기 변경된 영역 위치 값들을 이용하여 상기 데스크탑의 상기 정적인 부분과 함께 구성하도록 하는
    기계 판독가능 매체.
  23. 제21항에 있어서,
    각각의 변경된 영역은, 영역 내의 변경된 픽셀들의 수가 미리 결정된 임계값보다 큰 경우에 검출되는
    기계 판독가능 매체.
KR1020137035046A 2012-08-07 2013-06-13 변경된 영역들을 이용한 매체 인코딩 KR101646958B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/568,703 US9424660B2 (en) 2012-08-07 2012-08-07 Media encoding using changed regions
US13/568,703 2012-08-07
PCT/US2013/045662 WO2014025452A1 (en) 2012-08-07 2013-06-13 Media encoding using changed regions

Publications (2)

Publication Number Publication Date
KR20140044840A true KR20140044840A (ko) 2014-04-15
KR101646958B1 KR101646958B1 (ko) 2016-08-09

Family

ID=50065874

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137035046A KR101646958B1 (ko) 2012-08-07 2013-06-13 변경된 영역들을 이용한 매체 인코딩

Country Status (6)

Country Link
US (2) US9424660B2 (ko)
EP (1) EP2883360A4 (ko)
JP (1) JP2014528209A (ko)
KR (1) KR101646958B1 (ko)
CN (1) CN103797805B (ko)
WO (1) WO2014025452A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424660B2 (en) 2012-08-07 2016-08-23 Intel Corporation Media encoding using changed regions
US9024995B2 (en) * 2012-08-09 2015-05-05 Samsung Electronics Co., Ltd. Video calling using a remote camera device to stream video to a local endpoint host acting as a proxy
US9232177B2 (en) * 2013-07-12 2016-01-05 Intel Corporation Video chat data processing
KR102143618B1 (ko) * 2014-01-17 2020-08-11 삼성전자주식회사 프레임률 제어 방법 및 그 전자 장치
EP3177024B1 (en) * 2014-07-30 2020-02-26 Sk Planet Co., Ltd. Apparatus for cloud streaming service
US9872028B2 (en) * 2015-06-26 2018-01-16 Intel Corporation Wireless display adaptations and optimizations based on unfiltered and regional feedback
US20170105023A1 (en) * 2015-10-08 2017-04-13 Qualcomm Incorporated Signaling of updated video regions
CN105681791B (zh) * 2016-01-18 2019-03-26 武汉理工大学 自适应远程桌面传输方法与系统
JP6907888B2 (ja) * 2017-10-30 2021-07-21 富士通株式会社 情報処理システム、情報処理装置および情報処理プログラム
CN111369561B (zh) * 2020-05-26 2020-09-08 北京小米移动软件有限公司 图像处理方法及装置、电子设备、存储介质
KR20220005274A (ko) * 2020-07-06 2022-01-13 삼성전자주식회사 전자 장치에서 무선 통신 효율을 개선하기 위한 방법 및 그 장치
CN117280378A (zh) 2021-07-13 2023-12-22 三星电子株式会社 用于在图形显示器上渲染差分视频的系统和方法
CN114897918B (zh) * 2022-07-13 2022-09-27 南通同欧智能装备科技有限公司 基于人工智能的光伏清洁机器人毛刷功率调整方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070122039A (ko) * 2006-06-23 2007-12-28 주식회사 케이티프리텔 무선 서비스 페이지 제공 방법 및 시스템
WO2009102011A1 (ja) * 2008-02-14 2009-08-20 Nec Corporation 更新領域検出装置
US20120154426A1 (en) * 2008-04-17 2012-06-21 Microsoft Corporation Displaying User Interface Elements Having Transparent Effects
JP2012120066A (ja) * 2010-12-03 2012-06-21 Fujitsu Ltd 情報処理装置、情報処理方法および情報処理プログラム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06153180A (ja) * 1992-09-16 1994-05-31 Fujitsu Ltd 画像データ符号化方法及び装置
US6438575B1 (en) 2000-06-07 2002-08-20 Clickmarks, Inc. System, method, and article of manufacture for wireless enablement of the world wide web using a wireless gateway
US7852342B2 (en) 2004-10-14 2010-12-14 Microsoft Corporation Remote client graphics rendering
TWI295438B (en) 2005-05-11 2008-04-01 Newsoft Technology Corp Method, system and receiving apparatus for transmitting screen frame from one to many terminals
CN2824474Y (zh) 2005-10-19 2006-10-04 吉乐宝科技股份有限公司 无线汽车显示装置
WO2007063922A1 (ja) * 2005-11-29 2007-06-07 Kyocera Corporation 通信端末および通信システム、並びに通信端末の表示方法
US8115708B2 (en) 2005-12-02 2012-02-14 Intel Corporation System and method for the prevention of display burn-in
US8428125B2 (en) * 2006-12-22 2013-04-23 Qualcomm Incorporated Techniques for content adaptive video frame slicing and non-uniform access unit coding
US7865572B2 (en) 2007-01-08 2011-01-04 Mspot, Inc. Method and apparatus for transferring digital content from a personal computer to a mobile handset
GB0703695D0 (en) 2007-02-26 2007-04-04 The Technology Partnership Plc A Device for Receiving Digital Broadcasts
US20090097546A1 (en) * 2007-10-10 2009-04-16 Chang-Hyun Lee System and method for enhanced video communication using real-time scene-change detection for control of moving-picture encoding data rate
CN201226563Y (zh) * 2008-05-26 2009-04-22 北京银河伟业数字技术有限公司 画面分割的视频输入装置
US8533313B2 (en) 2008-10-01 2013-09-10 Binu Pty Ltd Systems, methods, and computer readable media for providing applications style functionality to a user
CN101404752A (zh) 2008-10-13 2009-04-08 深圳创维-Rgb电子有限公司 一种用于局域网内的视频点播系统
US8687702B2 (en) 2008-10-27 2014-04-01 Advanced Micro Devices, Inc. Remote transmission and display of video data using standard H.264-based video codecs
US8254704B2 (en) 2008-10-30 2012-08-28 Microsoft Corporation Remote computing platforms providing high-fidelity display and interactivity for clients
US8411754B2 (en) * 2008-11-10 2013-04-02 Activevideo Networks, Inc. System, method, and computer program product for translating an element of a static encoded image in the encoded domain
JP2010171876A (ja) 2009-01-26 2010-08-05 Yamaha Corp 通信装置及び通信システム
CN101964860A (zh) 2009-07-23 2011-02-02 孙博雅 家庭影院服务器
US20110099591A1 (en) 2009-10-28 2011-04-28 Men Long Secure wireless pairing of digital tv short-range transmitter and receiver
US8781122B2 (en) 2009-12-04 2014-07-15 Sonic Ip, Inc. Elementary bitstream cryptographic material transport systems and methods
US9075560B2 (en) 2009-12-10 2015-07-07 Microsoft Technology Licensing, Llc Real-time compression with GPU/CPU
US8891939B2 (en) * 2009-12-22 2014-11-18 Citrix Systems, Inc. Systems and methods for video-aware screen capture and compression
CN102148843A (zh) 2010-02-05 2011-08-10 腾讯科技(深圳)有限公司 异步下载系统及方法
JP5471903B2 (ja) 2010-07-01 2014-04-16 富士通株式会社 情報処理装置、画像送信プログラム及び画像表示方法
US20120042275A1 (en) 2010-08-10 2012-02-16 Microsoft Corporation Cloning specific windows on a wireless display surface
KR101017866B1 (ko) * 2010-09-08 2011-03-04 주식회사 텔레칩스 네비게이션을 이용한 휴대단말기 제어 방법
CN102377823B (zh) 2011-10-18 2013-12-25 北京优朋普乐科技有限公司 一种通过滑屏实现多屏多用户之间互动分享的方法及系统
US20140010367A1 (en) 2012-07-05 2014-01-09 Changliang Wang Systems and methods for providing content to a wireless display screen
US9424660B2 (en) 2012-08-07 2016-08-23 Intel Corporation Media encoding using changed regions
WO2014029076A1 (en) 2012-08-21 2014-02-27 Intel Corporation Widi cloud mode

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070122039A (ko) * 2006-06-23 2007-12-28 주식회사 케이티프리텔 무선 서비스 페이지 제공 방법 및 시스템
WO2009102011A1 (ja) * 2008-02-14 2009-08-20 Nec Corporation 更新領域検出装置
US20120154426A1 (en) * 2008-04-17 2012-06-21 Microsoft Corporation Displaying User Interface Elements Having Transparent Effects
JP2012120066A (ja) * 2010-12-03 2012-06-21 Fujitsu Ltd 情報処理装置、情報処理方法および情報処理プログラム

Also Published As

Publication number Publication date
CN103797805B (zh) 2018-02-23
KR101646958B1 (ko) 2016-08-09
US20160353101A1 (en) 2016-12-01
JP2014528209A (ja) 2014-10-23
WO2014025452A1 (en) 2014-02-13
US9424660B2 (en) 2016-08-23
EP2883360A1 (en) 2015-06-17
US10257510B2 (en) 2019-04-09
EP2883360A4 (en) 2016-04-13
US20140043358A1 (en) 2014-02-13
CN103797805A (zh) 2014-05-14

Similar Documents

Publication Publication Date Title
KR101646958B1 (ko) 변경된 영역들을 이용한 매체 인코딩
US8928678B2 (en) Media workload scheduler
JP6242029B2 (ja) 低電力画像圧縮及び表示のための技術
TWI513316B (zh) 轉碼視頻資料之技術
US10045079B2 (en) Exposing media processing features
JP6322834B2 (ja) ビデオチャットデータプロセッシング
US9955197B2 (en) Encrypted screencasting
CN107077313B (zh) 用于非媒体内容的远程显示的改进延迟和效率
US20140330957A1 (en) Widi cloud mode
US10785512B2 (en) Generalized low latency user interaction with video on a diversity of transports
US20150043653A1 (en) Techniques for low power video compression and transmission
US9351011B2 (en) Video pipeline with direct linkage between decoding and post processing
TWI539795B (zh) 使用變化區域的媒體編碼

Legal Events

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