KR100744900B1 - 스트리밍 미디어 서비스 관리 방법 - Google Patents

스트리밍 미디어 서비스 관리 방법 Download PDF

Info

Publication number
KR100744900B1
KR100744900B1 KR1020067000034A KR20067000034A KR100744900B1 KR 100744900 B1 KR100744900 B1 KR 100744900B1 KR 1020067000034 A KR1020067000034 A KR 1020067000034A KR 20067000034 A KR20067000034 A KR 20067000034A KR 100744900 B1 KR100744900 B1 KR 100744900B1
Authority
KR
South Korea
Prior art keywords
service
media
network
slm
video
Prior art date
Application number
KR1020067000034A
Other languages
English (en)
Other versions
KR20060027855A (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 KR20060027855A publication Critical patent/KR20060027855A/ko
Application granted granted Critical
Publication of KR100744900B1 publication Critical patent/KR100744900B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor

Abstract

본 발명의 일 실시예는 스트리밍 미디어 서비스를 관리하기 위한 방법(1300)을 포함한다. 상기 방법은 스트리밍 미디어 서비스에 대한 요구(1004)를 클라이언트(1002)로부터 수신하는 단계(1302)를 포함한다. 스트리밍 미디어 서비스는 다수의 미디어 서비스 컴포넌트(1020)를 포함한다. 또한, 상기 방법은 다수의 미디어 서비스 컴포넌트 중에서, 네트워크(1212)의 다수의 서비스 노드 중의 서비스 노드(1022)에 할당할 미디어 서비스 컴포넌트를 결정하는 단계(1304)를 포함한다. 상기 방법은 또한 미디어 서비스 컴포넌트를 수행하도록 할당된 각각의 서비스 노드에, 스트리밍 미디어 서비스가 스트리밍 미디어(1032)에 대해 수행될 수 있다는 것을 통지하는 단계(1306)를 포함한다.

Description

스트리밍 미디어 서비스 관리 방법{METHOD FOR MANAGING A STREAMING MEDIA SERVICE}
클라이언트 장치가, 요구된 미디어 파일에 대하여 노이즈 감소와 같은 임의의 프로세싱을 수행함과 함께 미디어 파일의 전달을 요구할 수 있는 시스템들이 존재한다. 일단 요구된 미디어 전달이 서버에 의해 수신되면, 미디어 파일은 검색되고, 그 다음에, 요구된 프로세싱이 서버에 의해 그 미디어 파일에 대해 수행된다. 일단 프로세싱이 완전히 완료되면, 서버는 클라이언트 장치에 프로세싱된 미디어 파일을 전송한다. 이러한 유형의 시스템에는 문제점이 존재한다. 예를 들어, 서버가 서로 다른 요구 클라이언트 장치들로의 미디어 파일들을 프로세싱하고 전송하는 많은 별개의 요구들의 처리를 시도하는 경우에 클라이언트 장치의 사용자는 잠시 동안 대기해야 할 수 있다. 또한, 스트리밍 미디어 파일은 매우 큰 용량일 수 있어, 스트리밍 전달의 개시에 앞서 콘텐츠에 대한 요구된 프로세싱을 완료하기 위해서 긴 시간이 걸릴 수 있다. 이것은, 특히 기한 전에 어떤 것을 완료하고자 하는 경우에 클라이언트 장치 사용자에게 불편함을 느끼게 할 수 있다.
이러한 이유 및 다른 이유로, 본 발명에 대한 요구가 존재한다.
본 발명의 일 실시예는 스트리밍 미디어 서비스 관리 방법을 포함한다. 이 방법은 스트리밍 미디어 서비스에 대한 요구를 클라이언트로부터 수신하는 단계를 포함한다. 스트리밍 미디어 서비스는 다수의 미디어 서비스 컴포넌트를 포함한다. 또한, 이 방법은 다수의 미디어 서비스 컴포넌트 중의 어느 미디어 서비스 컴포넌트를, 네트워크의 다수의 서비스 노드 중의 서비스 노드에 할당할지를 결정하는 단계를 포함한다. 이 방법은 또한 할당된 각각의 서비스 노드에, 스트리밍 미디어 서비스가 스트리밍 미디어에서 수행되게 하는 다수의 미디어 서비스 컴포넌트 중의 미디어 서비스 컴포넌트를 수행할 것을 통지하는 단계를 포함한다.
도 1은 다수의 모바일 클라이언트 장치들에 미디어를 전달하는 종래의 방법을 예시하는 도면.
도 2는 모바일 클라이언트 장치에 미디어를 전달하고 프로세싱하는 종래의 방법을 예시하는 도면.
도 3은 본 발명에 따른 실시예의 도면.
도 4는 본 발명에 따른 실시예의 도면.
도 5a는 본 발명에 따른 실시예의 도면.
도 5b는 본 발명에 따른 실시예의 도면.
도 6은 본 발명의 실시예들이 실행될 수 있는 단일 콘텐츠 서버를 갖는 데이 터 세션 핸드오프(handoff)를 위한 예시적인 시스템의 블록도.
도 7은 본 발명의 실시예들이 실행될 수 있는 콘텐츠 분배 네트워크를 갖는 데이터 세션 핸드오프를 위한 다른 예시적인 시스템의 블록도.
도 8a 및 도 8b는 본 발명의 일 실시예에 따른 데이터 세션 핸드오프의 프로세스를 예시하는 흐름도.
도 9는 본 발명에 따른 실시예의 도면.
도 10은 본 발명의 실시예에 따라 MSA(Media Service Architecture)가 서비스들을 분해하고 분배하는 예시적인 동작들을 도시하는 블록도.
도 11은 본 발명의 실시예에 따른 서비스 위치 관리 방법(service location management methodology)의 블록도.
도 12(a)는 본 발명의 실시예들에 따른 서비스의 컴포넌트들의 예시적인 추상 그래프(abstract graph).
도 12(b) 내지 도 12(d)는 본 발명의 실시예들에 따른 네트워크 상의 컴포넌트들의 3가지 예시적인 분배들을 도시하는 도면.
도 13은 스트리밍 미디어 서비스를 관리하기 위한 본 발명의 실시예에 따라 수행되는 동작들의 흐름도.
도 14는 본 발명의 실시예에 따라 MSA 내에서 처리되고 있는 다수의 미디어 스트림의 블록도.
도 15는 본 발명의 다른 실시예에 따라 MSA 내에서 처리되고 있는 다수의 미디어 스트림들의 블록도.
도 16은 본 발명의 실시예에 따라 수행되는 동작들의 흐름도.
도 17은 본 발명의 다른 실시예에 따라 수행되는 동작들의 흐름도.
이제, 본 발명의 실시예들에 대하여 상세하게 설명할 것이며, 그 예들은 첨부 도면들에 예시되어 있다. 본 발명은 실시예들과 결합하여 설명되지만, 이 실시예들은 본 발명을 한정하고자 하는 것이 아님을 이해해야 할 것이다. 반대로, 본 발명은 첨부된 특허청구범위에 의해 정의된 바와 같이 본 발명의 기술 사상 및 범위 내에 포함될 수 있는 대안들, 수정들 및 등가들을 포함하는 것으로 의도된다. 또한, 본 발명의 다음의 상세한 설명에서는, 본 발명의 완전한 이해를 제공하기 위해서 다수의 특정 세부 사항이 설명된다. 그러나, 본 발명은 이들 특정 세부 사항 없이 실행될 수 있다는 것이 이 기술분야의 당업자에게 명백할 것이다. 다른 경우들에서, 공지된 방법들, 절차들, 컴포넌트들 및 회로들은 본 발명의 양태들을 불필요하게 불명확하게 하지 않도록 하기 위해서 상세하게 설명하지 않았다.
표기법 및 명명법
다음의 상세한 설명의 일부 부분들은 컴퓨팅 시스템 또는 디지털 시스템 메모리 내의 데이터 비트들에 대한 동작들의 절차들, 로직 블록들, 프로세싱, 및 다른 기호 표시에 의하여 표시된다. 이들 설명들 및 표시들은 이 기술 분야의 다른 당업자들에게 그들의 연구 내용을 가장 효과적으로 전달하기 위해서 데이터 프로세 싱 기술 분야의 당업자에 의해 이용되는 수단이다. 절차, 로직 블록, 프로세스 등이 본원에서 이용되며, 일반적으로, 원하는 결과에 이르게 하는 동작들 또는 명령들의 일관성 있는 시퀀스인 것으로 생각된다. 동작들은 물리량들의 물리적 처리들을 포함할 수 있다. 보통, 반드시 그러하지는 않더라도, 이들 물리적 처리들은 컴퓨팅 시스템 또는 유사한 전자 컴퓨팅 장치에서 저장, 전송, 결합, 비교, 및 그렇지 않으면 처리될 수 있는 전기적 또는 자기적 신호들의 형태를 취한다. 편리함을 위하여, 그리고 공통 사용과 관련하여, 이들 신호들은 본 발명과 관련하여 비트들, 값들, 요소들, 기호들, 문자들, 용어들, 수들 등으로서 지칭된다.
그러나, 이들 용어들 모두는 물리적 처리들 및 물리량들을 참조하는 것으로서 해석되고, 단지 편리한 라벨들이며, 이 기술 분야에서 공통으로 이용되는 용어를 더 고려하여 해석된다는 것을 주목해야 한다. 다음의 논의들(discussions)로부터 명백한 바와 같이 별도로 언급되지 않는 한, 본 발명의 논의들 중에서, "판정", "적용", "프로세싱", "수행", "결정", "확인", "전송", "수신", "검색", "제공", "인식", "생성", "이용", "제거", "통지", "배제", "폐기", "구현", "채용", "저장" 등의 용어들을 이용하는 논의들은, 데이터를 처리하고 변환하는, 컴퓨팅 시스템 또는 유사한 전자 컴퓨팅 장치의 작용 및 프로세스들을 가리킨다. 데이터는 컴퓨팅 시스템의 레지스터들 및 메모리들 내에서 물리(전자)량들로서 표시되고, 컴퓨팅 시스템의 메모리들 또는 레지스터들 또는 다른 이러한 정보 저장, 전송, 또는 표시 장치들 내에서 물리량들로서 유사하게 표시되는 다른 데이터로 변환된다.
도입부
통상적으로, 사람들은 데스크톱 또는 랩톱(예를 들어, 도 1의 122) 기계들로부터의 웹-브라우징 경험들에 기초하여 다양한 콘텐츠 사이트(예를 들어, 비디오-기반 영화 페이지)에 대해 알게 되는데, 그 이유는, 이들 장치들이 통신망에서의 랜덤 브라우징의 입력(다양한 URL 또는 검색 조회의 타이핑) 및 출력(신뢰성 있는 고-대역폭 접속들) 요건들을 더 양호하게 지원할 수 있기 때문이다. 고-대역폭 무선 액세스의 보증을 신뢰하여, 이들 웹 사용자들은 PDA(personal digital assistant)(예를 들어, 110, 116 및 120) 또는 비디오-가능(video-enabled) 셀룰러 전화기(예를 들어, 112, 114 및 118)를 이용하여 동일한 사이트들에 접속하는 것을 시도할 수 있다. 이러한 광범위한 액세스는, 콘텐츠 제공자가, 서로 다른 비트 레이트(접속 대역폭에 따름), 비디오-프레임 레이트(전력 관리 전략에 따라 동적으로 자체 변화하는, 클라이언트에서 이용가능한 CPU 전력에 따름) 및 비디오-프레임 사이즈(클라이언트에서 이용가능한 디스플레이 사이즈에 따름)의 광범위한 범위를 지원하기 위한 필요성을 야기한다. 또한, 일본에서 3GPP[1] 제공자들에 의해 알 수 있는 바와 같이, 경량(light-weight) 클라이언트들로부터의 모바일 액세스를 지원하는 것은, 서버들이 다수의 세션을 위한 상태 변수들을 유지 및 갱신하는 것을 필요로 한다. 간단함 및 명확함을 위하여, 참고문헌들 [1]-[20]에 대한 인용들의 완전한 상세 목록이 명세서의 뒷부분에 제공된다. 나열된 참고문헌들 [1]-[20]의 전부는 본 명세서에서 배경 기술로서 참고문헌에 의해 포함되어 있다는 것을 주목한다. 예를 들어, 도쿄에서 중심가 사무소 지역으로부터 식당가로의 이브닝 트랜지 션(evening transition) 동안에 수 천명의 모바일 사용자들의 "플래시 크라우드(flash crowds)"를 흔히 볼 수 있다.
따라서, 문제는 두 부분이 된다. 즉, 하나는 클라이언트의 성능에 동적으로 적응되는 포맷으로 비디오 및 오디오 콘텐츠를 제공하고 있고, 다른 것은 불필요한 정체 및 그에 따른 품질 저하를 피하기 위해 그 스트리밍 프로세스를 위한 지원을 동적으로 분배하고 있다. 그 해결책의 양쪽 부분은 동적으로 행해져야 하는데, 그 이유는, 이 둘이 의존하는 인자들이 그 자체적으로 종종 급속하게 변하고 있기 때문이다.
미디어 서비스들이 스트리밍 CDN(content-delivery network) 하부 구조 내에서 분배 방식으로 통합되고 관리되지 않는다면, MSM(mobile streaming media)을 위한 무선 장치들의 가능성은 완전하게 인식되지 않을 것이다. 무선 및 모바일 스트리밍 클라이언트들의 지원에서 기존의 네트워크 하부 구조를 거쳐서 신뢰성 있는, 스케일 가능한(scalable) 미디어 스트리밍을 제공하는 것에 대한 종래의 연구를 논의한다. CDN 내에서 이용가능한 분배된 리소스들의 동적 감시에 의해 미디어 서비스들의 관리된 배치에 대한 접근법을 약술한다. 리소스 감시 접근법들 사이의 트레이드-오프(trade-off)가 또한 논의된다. 이것은 MSM-CDN 테스트베드(testbed) 내의 서비스 위치 관리자(service location manager: SLM)의 예시적인 구현 및 결과들에 대한 논의이다. 다른 논의는 분배된 미디어 프로세싱에서의 일부 관련된 연구를 나열한다.
모바일 클라이언트들로의 적응형 스트리밍 콘텐츠 전달
도 1에서, 모바일 스트리밍 미디어 시스템의 기본적인 컴포넌트들은 저장된 미디어 콘텐츠를 위한 스트리밍 서버들(예를 들어, 102), 라이브 스트리밍 서버들, 및 스트리밍 미디어 클라이언트들(예를 들어, 110-120)을 포함한다. 스케일 가능한 방식으로 다수의 사용자에게 비디오 클립들을 전달하기 위해서, 기존의 네트워크 상에 예를 들어, 도 3에서 도시된 바와 같이 본 발명의 MSM-CDN 오버레이(overlay)를 이용할 수 있다. 그것은 스트리밍 에지(edge)(또는 대리(surrogate)) 서버들 및 관리 서버들을 포함한다. 스트리밍 에지 서버들은 콘텐츠 분배 및 캐싱 [16], 스트리밍, 리소스 감시, 리소스 관리, 및 시그널링의 기능을 갖는다. 이 서버들은 또한 라이브 미디어 적응과 같은 미디어 서비스 기능들을 수행할 수 있다. 관리 서버들은 콘텐츠를 분배하고, 클라이언트 위치 및 현재의 시스템 및 네트워크 부하에 기초하여 미디어 세션들을 할당하며, 다시 말해, 이 서버들은 최상의 이용가능한 에지 서버들에 클라이언트 요구된 세션들을 할당한다.
MSM-CDN 시스템은 디스플레이 및 디코드 성능과 관련하여 매우 다양한 클라이언트의 지원을 도와야 한다. 도 1에서, 이것을 행하기 위한 "통상적인" 방법은, 콘텐츠 서버(102) 상에 다수의 연구 자료 사본을 저장하고 나서, 클라이언트(예를 들어, 112, 114, 116 및 120)와의 어떠한 초기 협상에 따라 전송할 사본을 선택하는 것(예를 들어, 화살표 124, 126, 128 및 130에 의해 도시된 바와 같이)이다. 그러나, 네트워크(100)의 다양한 부분들로부터 클라이언트로의 접속의 신뢰성 및 대역폭은, 클라이언트가 물리적 위치를 이동함에 따라, 그리고 다른 클라이언트로 부터의 스트리밍 세션들이 공유된 무선 환경 내에서 시작하고 끝남에 따라, 스트리밍 세션 동안 변할 것이다. 이러한 협상은 다수의 저장된 인코딩에 의해 쉽게 제공되는 것보다 광범위한 옵션들을 포함할 필요가 있으며, 그 협상 프로세스는 네트워크 조건들이 변함에 따라 동적으로 갱신되어야 한다. 실시간 미디어 서비스들은 오늘날의 네트워크-서버 기계들 상에서 실제적이고 감당할 수 있기 때문에, 미디어 레이트, 사이즈 및 대역폭에 있어서의 이러한 광범위한 필요들은 도 2의 네트워크(200) 내에 미디어 서비스들을 삽입함으로써 충족될 수 있다. 도 2에서, 화살표(208)는 콘텐츠 서버(102)로부터 미디어 서비스 노드(202)로의 스트리밍 미디어 출력을 나타내고, 화살표(210)는 서비스 노드(202)로부터 클라이언트(102)로의 프로세스된 미디어 스트리밍을 나타낸다. 도 1의 네트워크(100) 및 도 2의 네트워크(200)는 모바일 클라이언트 장치들(110, 112, 114, 116, 118, 120 및 122)과의 무선 통신의 부분으로서 이용될 수 있는 무선 기지국(104, 106 및 108)을 포함한다는 것을 주목한다.
이러한 실시간이 제공되면, 저-지연시간(low-latency) 미디어 서비스 제공은, 미디어 서비스 노드들로도 지칭되는 에지 서버들 [2, 7]의 핵심 기능들 중 하나이다. 미디어 서비스 프로세스는 예를 들어, 압축된 비디오 스트림을 클라이언트 디스플레이에 적응시킬 수 있다. 이 프로세스는 또한 RTCP-기반 피드백을 이용하여, 스트림 내의 비트 레이트를, 클라이언트 장치에 의해 경험하게 되는, 변경하는 대역폭 조건들로 동적으로 조정할 수 있다. 이들 실시간 미디어 서비스 제공은 압축된-영역 프로세싱 [14, 15, 10]의 이용으로 인해, 이제 표준 데스크톱 또는 서 버 기계들에 대해 제공될 수 있다.
이들 새로운 압축된-영역 서비스 제공 기술들은, 각각의 별개의 서비스 제공 세션의 계산상의 비용을 현저하게 감소시킬 수 있으므로, 모바일 스트리밍을 실용적이고 적당하게 해준다. 그러나, 콘텐츠 관리와 관련하여, 미디어 서비스 스트림들의 사이즈 및 지속기간, 그리고 그 스트림들을 수정하는 것과 관련된 계산상의 수요들은 주의 깊은 관리를 수반할 수 있다. 수천 또는 수백만의 모바일 클라이언트(예를 들어, 110, 112, 114, 116, 118 및 120)의 존재하에서, 계산적으로 강력한 서버들은 미디어 서비스들이 분배된 에지 서비스로서 제공될 수 있도록 하부 구조 전체에 분산 배치될 수 있다.
예를 들어, 이전의 논의에 의해 요구되는 미디어 서비스들을 제공하기 위한 하나의 방법은, 각각의 콘텐츠 서버가, 고정된 미디어 서비스 노드(예를 들어, 도 2의 202, 204 또는 206)로의 클라이언트 브라우저들((예를 들어, 110, 112, 114, 116, 118 및 120)의 정적 리디렉션(static redirection)을 제공하는 것일 수 있다. 이러한 유형의 정적 리디렉션은 콘텐츠 전달에 관하여 잘 탐구되고, 로컬 "미러(mirror)" 사이트들로의 리디렉션들은 오늘날의 웹 환경에서 일상적으로 행해진다. 이러한 정적 리디렉션의 단점은, 정적 리디렉션은 네트워크(100) 및 서버 부하의 임의의 역학 관계를 고려하지 않는다는 점이다. 다양한 노드들(또는 서버들)에서 이용가능한 대역폭 및 계산상의 부하는 클라이언트 및 새롭게 추가 또는 드롭된 클라이언트들의 요건들을 변경하는 것에 따라 변할 것이다. 따라서, 서로 다른 서버들에의 미디어 서비스 프로세스들의 배치는 그 자체로 동적이어야 하고, 바람직하 게는, 클라이언트 프로세서가 물리적 위치를 변경함에 따라 조정되어야 한다. 마지막으로, 공중 모바일 웹-브라우징에 의한 이용의 편리함을 위해, 이들 동적 결정들 전부는 숨겨질 수 있고 자동일 수 있다.
서비스 위치 관리( SLM )
도 3에서, 동적 서비스 위치 관리 배후의 사상은, 모바일 사용자(예를 들어, 110, 112, 114, 116, 118 및 120)가 초기 접촉 사이트를 변경하는 것을 필요로 하지 않고 모바일 스트리밍 환경에서 요구되는 유연성을 제공하는 것이다. 대신 일반적인 시스템은 몇 개의 공개된 포털 사이트들(예를 들어, 304 및 306)을 제공한다. 이들 포털들은 (화살표(308)로 표시된 바와 같이) 모바일 사용자를 위한 제1 접촉 지점이고, (콘텐츠 서버(102)로의 화살표(310)로 표시된 바와 같이) 원래의 콘텐츠 사이트로의 리디렉션을 허용한다. 모든 후속의 리디렉션은 동적 SMIL 재기입 [16]을 이용하여, 클라이언트-투명(transparent) 방식으로 행해진다.
일반적으로, 도 3은 서비스 포털(306)로 들어오는 클라이언트 장치(120)로부터의 요구를 화살표(308)로 도시하고 있다. 이와 같이, 도 4의 서비스 포털(306)은 그 다음에 (화살표(404)로 표시된 바와 같이) 서비스 위치 관리자(302)와 통신하여, 최상의 서비스 노드를 찾아서, 요구된 스트리밍 미디어 세션을 배치한다. 도 4는 또한 서비스 위치 관리자(302)가 양방향 화살표(406, 408 및 410)로 표시된 미디어 서비스 노드들(202, 204 및 206)의 집합을 감시하거나 모니터하고 있다는 것을 도시한다. 서비스 위치 관리자(302)는 스트리밍 세션을 배치하기 위해 최상 의 서비스 노드를 서비스 포털(306)에 리턴한다. 이와 같이, 도 3, 도 4 및 도 5는 시작된 세션을 어떻게 얻을 것인가에 대한 동작들을 예시한다. 도 9는, 후속의 요구들이 네트워크(300) 내에 배치된 경우, 이 요구들은 각각 동일한 동작들을 거칠 것임을 나타낸다. 도 5a 및 도 5b는, 서비스 위치 관리자(302)가 한 서비스 노드(예를 들어, 202)로부터 다른 서비스 노드(예를 들어, 204)로의 타원형 점선(506)에 의해 표시된 바와 같이 현재의 세션의 할당을 변경할 수 있다는 것을 예시한다. 미디어 서비스 노드들(예를 들어, 202, 204 및 206)은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 임의의 조합으로서 각각 구현될 수 있다는 것을 주목한다. 또한, 서비스 노드(예를 들어, 202, 204 또는 206)가 하나 이상의 물리적 컴퓨팅 장치들로서 구현될 수도 있다.
도 4에서, 화살표(308)로 표시된 바와 같이 클라이언트(120)에 의해 접촉되면, 포털 사이트(306)는 화살표(404)로 표시된 바와 같이 서비스 위치 관리자(SLM)(302)를 접촉한다. 단일 SLM(302)은 이용가능한 서비스 포트폴리오에 다수의 서비스 유형을 가질 수 있다는 것을 주목한다. 이와 같이, SLM(302)은 각 미디어 서비스 노드(예를 들어, 202, 204 또는 206)가 미디어 스트림에 대해 수행할 수 있는 서비스들을 (예를 들어, 표와 함께) 기억하고 있다. 미디어 서비스들은 트랜스코딩(transcoding), 지터 제거(jitter removal), 얼굴 인식에 기반한 동적 클리핑(clipping), 비디오 분석, 비디오의 리사이징(resizing), 비디오로부터의 OCR, 오디오 강화, 배경 제거, 비디오 미디어의 스트림에 대해 동작할 수 있는 임의의 것 등과 같은 비디오 프로세싱을 포함할 수 있으며, 이것으로 한정되지 않는다. 또 한, 미디어 서비스들은 배경 제거, 오디오 가속 또는 감속, 오디오 강화, 잡음 저하, 속도 인식, 오디오 분석, 오디오 미디어의 스트림에 대해 동작할 수 있는 임의의 것 등과 같은 오디오 프로세싱을 포함할 수 있으며, 이것으로 한정되지 않는다. 그러고 나서, SLM(302)이 결정을 하면, 특정 요구된 미디어 서비스를 수행할 수 있는 서비스 노드 또는 노드들을 찾기 위해 그 표를 조사한다.
일단 포털 사이트(306)가 SLM(302)을 접촉하면, SLM(302)은 주어진 클라이언트(예를 들어, 120)에 요구된 자료를 제공하기 위해 어떠한 유형의 미디어 서비스가 필요한지를 결정하고, (부분적으로 또는 완전히) 그의 제어하에 있는 미디어 서비스 노드들(예를 들어, 202, 204 및 206)의 상태를 검사한다. 그 상태는 미디어 서비스 노드들의 각각에서의 이용가능한 사이클들 및 이용가능한 메모리에 의하여 요약될 수 있다. 추가적인 상태 표시자는 예상되는 대역폭 및 각 미디어 서비스 노드로부터 콘텐츠 제공자(또는 가장 근접한 미러 사이트) 및 스트리밍 클라이언트로의 접속들의 신뢰성을 포함할 수 있다. 수집된 상태 정보에 기초하여, SLM(302)은 SMIL 파일을 동적으로 생성함으로써, 그 새롭게 생성된 SMIL 응답에, 임의의 협상된 파라미터들과 함께, URL을 삽입함으로써 적절한 서비스 노드에 클라이언트를 리디렉션한다(도 5). 3GPP 또는 ISMA[5]에 따르는 스트리밍 클라이언트는 그 다음에 콘텐츠 서버(102) 및 미디어 서비스 노드(202)와의 적절한 스트리밍 세션을 설정하기 위해 재기입된 SMIL 파일을 구문분석한다. 그러므로 전체 프로세싱은 최종 사용자에게 투명하다. 화살표(502)는 콘텐츠 서버(102)로부터 미디어 서비스 노드(202)로의 미디어의 스트리밍을 나타내고, 화살표(504)는 처리된 미디어 스트림의 서비스 노드(202)로부터 클라이언트(120)로의 스트리밍을 나타낸다는 것을 주목한다. 미디어 서비스 제공을 포함하는 다른 클라이언트들로부터의 후속 콘텐츠 요구들은 또한 새로운 현재의 네트워크 및 계산상의 리소스들에 따라 분배된다(도 9).
동적 서비스 위치를 위한 리소스 감시
전술한 설명에서, SLM(302)은 현재의 클라이언트 요구에 의해 필요로 되는 미디어 서비스 태스크를 디스패치(dispatch)하는 최상의 방법을 결정하기 위해 그의 제어하에 있는 미디어 서비스 노드들(예를 들어, 202, 204 및 206)의 각각의 상태를 검사한다. 이러한 검사를 완료할 수 있는 다양한 방법들이 존재한다. 이하, 본 발명에 따라 구현될 수 있는 일부 상이한 실시예를 상세하게 설명한다.
기본적인 "폴-기반( poll - based )" 감시
일 실시예에서, SLM(302)의 제어하에서 미디어 서비스 노드들(예를 들어, 202, 204 및 206)의 상태를 감시하는 하나의 접근법은, 프로세스가 "폴-기반"인 것이다. 이 접근법에서, SLM(302)이 미디어 서비스들을 위한 새로운 클라이언트 요구를 얻을 때마다, SLM(302)은 (예를 들어, 최상의 경우의 네트워크 대역폭, 설치된 메모리, CPU의 개수와 클록 속도에 의하여) 충분한 리소스들을 가질 수 있는 서비스 노드들의 각각을 활발하게 접촉한다. 이러한 "리소스 폴(resource poll)"에 응답하여, 각 서비스 노드(예를 들어, 202, 204 또는 206)는 현재 이용가능한 리소스들에 대한 기술(description)을 제공한다. 이것은 소정의 시점에서 자유 계산 사이클의 개수 및 자유 메모리의 양을 포함할 수 있다. 이상적으로, 이것은 또한 콘텐츠 서버(102) 및 클라이언트(예를 들어, 110-120)로의 자유 네트워크 대역폭의 어떤 추정치(estimate)를 포함할 것이다. SLM(302)은 이 정보를 수집하고, 그 다음에 자유 네트워크-대역폭, 계산, 및 메모리 리소스들의 최상의 조합을 제공하는 어느 서비스 노드로든지 요구된 미디어 서비스 태스크를 디스패치할 수 있다.
이러한 "폴-기반" 접근법은 자유 서비스 노드 리소스들의 최신의 스냅샷을 제공한다는 장점을 갖는다. 이 접근법은 또한 네트워크나 기계 실패로 인해, 서비스 노드가 작동되지 않을 때에 대한 명확한 표시를 제공한다. 한편, 폴-기반 리소스 감시는 확장가능성과 관련하여 심각한 한계를 갖는다. 클라이언트 요구의 수 및 감시되는 미디어 서비스 노드의 수가 증가함에 따라, 폴링 요구의 수는 그 배로 증가한다. 감시되는 미디어 서비스 노드의 수가 서비스들을 위한 클라이언트 요구의 수에 직접 비례하여 증가하는 경향이 있기 때문에, 폴링 요구의 수는 클라이언트의 수의 제곱으로 현저하게 증가한다.
기본적인 "표-기반( table - based )" 감시
폴링 실시예에 대한 대안은, 리소스 정보가, 미디어 서비스 노드들(예를 들어, 202, 204 및 206)으로부터 감시하는 SLM(302)로 "푸시(push)"되게 하는 것이다. 이러한 접근법에서, 시스템 및 네트워크 관리 소프트웨어에 의해 제공되는 것과 같은, 각 미디어 서비스 노드에서 구동하는 경량의 배경 데몬(daemon)일 수 있는 서비스-위치 감독자(service-location supervisor: SLS)에 의해 주기적으로 갱 신들이 제공된다. 각 클라이언트 요구에서, SLM(302)은 SLS-제공 정보의 수집(및 날짜기입(dating))으로부터 생성된 자유-리소스 데이터베이스를 액세스한다. 이것은 미디어 서비스 노드들의 수에 대한 2차 의존도(quadratic dependence)로부터 선형 의존도(linear dependence)로 감시하는 리소스에 의해 발생되는 접속 요건들을 감소시킨다.
또한, 감시 및 "재-론칭(re-launch)" 성능들은 SLM(302) 자체에 포함될 수 있는데, 간단한 SLM 데몬은 최신의 SLS 데이터베이스 리프레시(refresh)의 타임스탬프(timestamp)를 감시하고, 일부 사전설정된 시간 간격 이상에 대해 접촉하지 못하는 SLS 기계들을 접촉하는 것을 시도할 것이다. 아마도, 이들 접촉의 상당 부분은 진행중의 네트워크 또는 미디어 서비스 노드 실패로 인해서 실패할 것이다. 그러나, SLS 접촉을 재-론칭하기 위한 이들 시도들은 비동기적으로 행해질 것이기 때문에, 이 시도들은 클라이언트 요구들에 대한 SLM(302)의 응답 시간에 영향을 주지 않을 것이다.
표-기반 감시는 직접 폴-기반 결과들보다 훨씬 오래된 리소스 정보에 의존한다는 단점을 갖는다. 이러한 약점은 리소스 감시에 대한 다음의 실시예에 의해 검토된다.
SLM 의 노드들 및 작용들로부터 수신된 최근의 데이터에 기반한 SLM 의 적응성 강화된 "표-기반" 감시
이 실시예에서, 표-기반 감시 접근법은 오래된 정보의 결점을 줄이도록 수정 된다. 이것은 최근의 클라이언트 태스크들을 디스패치하였던 미디어 서비스 노드들의 단기간 기록을 유지하는 SLM(302)을 가짐으로써 행해진다. SLM(302)은 그 다음에 어떠한 리소스들이 그에 따라 새로운 잡(job)을 위해 이용가능하게 될 것인지에 대한 예측을 조정한다. 예를 들어, 미디어 서비스 태스크가 그 서비스 노드로부터 마지막으로 전송된 리소스 통계량 이전 1분 이하에 미디어 서비스 노드로 디스패치되었을 때, 그 노드의 리소스 기록은 그 이전에 디스패치된 미디어 서비스 잡에 의해 요구되는 리소스 예산(budget)만큼 낮아질 것이다.
공유된 서비스들을 갖는 다수의 SLM
미디어 서비스 노드들의 일부가 하나 이상의 SLM의 범위하에 있다면(즉, SLM 기계들의 분배된 집합 중 하나 이상이 그 서비스 노드에 미디어 서비스 요구들을 리디렉션하도록 허용된다면), 각 SLM은 또한 디스패치가 발생하자 마자 그 미디어 서비스 노드에서 SLS 데몬으로, 디스패치된 잡에 관한 정보를 전달해야 한다. 그렇게, SLS 데몬은 다른 SLM 프로세서들로 모든 디스패치 통지들을 재전송할 수 있으므로, 그 미디어 서비스 노드 계산 또는 네트워크 리소들이 서로 다른 SLM들로부터의 교차(crossing) 디스패치들로 인해 정원 이상으로 되는 횟수를 최소화한다.
공유된 서비스들을 갖는 하나 이상의 SLM을 가짐으로써, 2 이상의 서로 다른 조직들 및 그룹들 내에서 동작할 수 있는 서비스 노드들이 존재하는 지역적 구분을 허용한다는 것을 주목한다. 이와 같이, 그 서비스 노드에 서비스 요구들을 할당하는 능력을 SLM들에 제공하는 것은 바람직하다. 또한, 이러한 방식으로, 각 SLM의 범위로부터 서비스 노드를 제거하지 않음으로써 SLM들의 과부하를 피할 수 있다. 다수의 SLM들이 서비스들을 공유하게 하는 것은, 조직, 그룹 또는 기업 내에서 연결하는 서비스들이 서비스 공유에 적합할 때 실용적일 수 있다. 또한, SLM들 사이의 서비스들의 공유는 SLM들 중 하나가 동작 불가능하게 된 경우에 장애 허용을 제공할 수 있다. 또한, SLM들 사이의 서비스들의 공유는 SLM들에 대하여 부하 균형을 제공할 수 있다.
오래된 정보의 결점을 줄이기 위해서, SLM(302)은 최근의 태스크를 디스패치하였던 서비스 노드들의 단기간 기록을 유지할 수 있다는 것을 주목한다. 그래서, 이러한 유형의 "푸시" 기반 감시 내에서는, 서비스 노드들이 소정의 주기성으로 일어날 수 있는 SLM(302)으로 데이터를 푸시하고 있다. 서비스 노드들(예를 들어, 202, 204 및 206)에 의해 전송되고 있는 통계 각각은 평균화를 함으로써 마찬가지로 그 안에 소정의 지연시간을 가진다. SLM(302)에서 무엇이 발생하든지, 뭔가를 디스패치할 때, 이전에 디스패치된 잡이 취하거나 취할 것이 기대되는 리소스들의 정보를 갖는 그 자신의 서비스 노드 디스패치들의 단축 표(running table)를 유지한다. 이러한 방식으로, SLM(302)이 후속 디스패치를 할 때, SLM(302)은 서비스 노드들로부터 그 표들 안의 통계를 이용하고, 그들의 통계들이 얼마나 오래된 것인지를 알 수 있다. 이와 같이, SLM(302)은 그들의 통계들이 수신된 이래로 발생되었던 임의의 디스패치들이 그들의 통계들 안의 모두에 반영되지 않은 것을 알 수 있다. SLM(302)은 실제 이용가능한 리소스들이 각 서비스 노드에 있다는 것을 어떻게 예측할 것인지에 대한 정확한 근사(approximation)를 얻기 위해 일부 지점에 서 선형 보간법(interpolation)을 행할 수 있다는 것을 주목한다.
SLM(302)은 이용가능한 이러한 표를 가지며, 소정의 서비스 노드(예를 들어, 202)로부터의 최종 갱신을 나타내는 날짜 기입된 시간이다. SLM(302)이 그 서비스 노드로부터 갖는 최종 통계가 10분 전의 것임을 나타내고, SLM(302)이 5분마다 갱신을 예측하고 있다면, SLM(302)은 뭔가가 그 서비스 노드에 대하여 잘못되었음을 결정하고 결론내릴 수 있다. 문제는 여러 가지가 될 수 있는데, 예를 들어, 네트워크(300)의 실패, 서비스 노드(202)의 실패, 또는 그 서비스 노드(202)에서의 SLS 데몬의 고장이 있을 수 있다. 따라서, 노드들에 의한 SLM(302)에의 보고는, 이러한 정보를 제공할 수 있거나, 또는 SLM(302)은 낮은 오버헤드(overhead)인 배경 프로세스로서 그 표 안의 서비스 노드들의 모두에 대해 전형적인 라운드-로빈(round-robin) 검사를 행할 수 있다. 이러한 방식으로, SLM(302)은 하나 이상의 서비스 노들과 연관지을 수 있는 문제들을 알고 있을 수 있다. 문제가 검출되면, SLM(302)은 그 서비스 노드에서 SLS 데몬을 재시작하는 것을 시도할 수 있거나, 또는 SLM(302)이 노드에 접촉할 수 없다면, SLM(302)은 그 특정 노드와의 문제를 나타내는 플래그(flag)를 오픈 뷰(Open View) 감시 시스템에 올릴 수 있다. 이러한 기능을 수행함으로써, SLM(302)은 동작불능일 수 있는 미디어 서비스 노드에 스트리밍 세션을 디스패치 또는 할당하지 않을 것임을 주목한다.
테스트베드 결과들
서비스 위치 관리 아키텍처의 일 실시예는 모바일 스트리밍 미디어 전달 시 스템과 미디어 서비스들을 통합하도록 설계되었다. 이들 성능들을 증명하기 위해서 모바일 스트리밍 미디어(MSM) 테스트베드가 설계, 개발 및 구현되었다. MSM 테스트베드는 다수의 저장된-콘텐츠 및 라이브-콘텐츠 스트리밍 서버들 및 스트리밍 클라이언트들로 이루어진다. 스트리밍 에지 서버들 및 관리 서버들은 함께 적응형 MSM-CDN을 형성한다. 스트리밍 에지 서버들은 콘텐츠 분배 및 캐싱, 스트리밍, 리소스 감시, 리소스 관리, 및 시그널링을 위한 지원을 제공한다. 또한, 이 서버들은 라이브-스트림 스플리팅(live-stream splitting)(또는 미디어 스트리밍 세션들의 응용-계층 멀티캐스트) 및 MPEG-4 비디오 스트림들의 실시간 미디어 트랜스코딩(transcoding)과 같은 미디어 서비스 기능들을 수행한다.
스트리밍 서버들, 클라이언트들, 및 에지 서버들은 3GPP 표준에 따를 수 있고, 따라서 SDP(Session Description Protocol)[4], RTSP(Real Time Streaming Protocol)[13], 및 RTP(Realtime Transport Protocol)[12]을 이용할 수 있으며 MPEG-4[8] 비디오 및 AMR(Audio-Modem Riser) 오디오 미디어 표준을 지원할 수 있다. 스트리밍 에지 서버들 및 관리 서버들은 시그널링을 위해 SOAP(Simple Object Access Protocol)[13]을 이용할 수 있다. 다른 표준들이 본 실시예에 따라 이용될 수 있다는 것을 주목한다.
서비스 위치 관리자(SLM)(302)는 네트워크 및 시스템 리소스 이용에 기초하여 "최상의 이용가능한" 스트리밍 에지 노드들에 클라이언트-요구된 스트리밍/미디어 서비스 세션들을 할당한다. SLM(302)은 스트리밍 에지 노드들의 집합에서 통계를 수집하고, 그 통계를 분석하여 최상의 이용가능한 에지 서비스 노드를 선택하 고, 클라이언트 요구들에 응답하여 선택된 에지 노드를 전달한다. SLM(302)은 SOAP/XML 시그널링을 이용하여, 에지 노드들로부터 리소스 이용 통계를 모으고, 요구하는 클라이언트에 선택된 에지 노드를 동적으로 전달한다.
SLM(302) 리소스 감시에 대한 이들 3가지 제안된 접근법들 각각은 MSM-CDN 테스트베드에서 구현되고 테스트되었다. 폴-기반 감시는 때때로 완전한 스트리밍 실패를 야기하였다. 이것은, 모바일 클라이언트에서의 응답 타임-아웃 기간이 너무 느리게 설정되어 있어서, SLM(302)이 폴 응답들 모두를 수집하고, 그것들을 처리하고, 클라이언트가 포기하기 전에 동적으로 생성된SMIL 응답들을 제공하기에 충분한 시간을 갖지 않는 때에 일어난다. 이들 너무 느린 응답들은 통상적으로 하나 이상의 미디어 서비스 노드가 네트워크에서 벗어났을 때에 일어나는데, 이러한 경우, SLM(302)은 클라이언트에 대한 잠재적인 미디어 서비스 플랫폼으로서 그 서비스 노드를 무시하기 전에 표준 SOAP 타임아웃 기간을 대기하였다. 폴-기반 감시와 연관된 지연들은 또한 네트워크의 스케일링(scaling)을 적절하게 지원하지 않는데, 감시되는 서비스 노드의 수가 증가함에 따라, 폴링과 연관된 지연은 비례적으로 증가한다.
기본적인 표-기반 감시는 이러한 타임-아웃 실패 모드를 거치지 않았다. 그러나, 이 감시는 종종 차선의 부하 균형을 야기하였다. 이것은 클라이언트 요구들이 빠르게 연속하여 들어올 때에 발생하였다. 미디어 서비스 노드에서의 SLS가 새로운 로컬 미디어 서비스 태스크를 확인할 때마다 SLM(302) 데이터베이스에 포함된 자유-리소스 정보를 갱신하도록 수정되었다. 때때로, 이러한 차선의 태스크 할당 은 새롭게 실증되는 태스크에 대한 자유-리소스 통계 응답에서의 지연시간으로 인한 것이었다. 흔히, 차선의 태스크 할당은, (클라이언트로 동적 SMIL 파일을 전송함으로써) 특정 서비스 노드에 미디어 서비스 태스크를 디스패치한 후에, 그러나 앞선 클라이언트가 (RTSP SETUP 요구를 전송함으로써) 선택된 서비스 노드에 그 미디어 서비스 스택을 실제로 확립하기 전에 도착하는 새로운 클라이언트 요구들로 인한 것이었다.
강화된 표-기반 감시는 폴-기반 감시에서 볼 수 있는 타임아웃 실패들과 기본적인 표-기반 감시에서 볼 수 있는 인터리브된-요구 미스테이크들(interleaved-request mistakes)을 둘다 회피하였다.
미디어 서비스들의 핸드오프들의 관리를 위한 SLM
도 5a 및 도 5b는 본 발명에 따른 일 실시예를 예시한다. 구체적으로, 서비스 위치 관리자(302)는 (타원형 점선(506)으로 표시된) 미디어 스트리밍 세션을, 핸드오프(handoff)라고 지칭될 수 있는, 한 미디어 서비스 노드(예를 들어, 도 5a에 도시된 202)로부터 개별 미디어 서비스 노드(예를 들어, 도 5b에 도시된 204)로 이동하는데 이용될 수 있다. 예를 들어, 서비스 노드(202)가 스트리밍 미디어 세션을 핸드오프할 필요가 있다고 판정한 경우(또는 네트워크(300)의 일부 다른 컴포넌트가 이렇게 판정한 경우), 이 정보는 SLM(302)에 전달될 수 있다. 다음으로, SLM(302)은 그때에 서비스 노드 부하, 네트워크(300) 부하 등을 계산하여, 그 특정 스트리밍 세션을 핸드오프할 서비스 노드를 어림잡을 수 있다. 이러한 방식으로, 사전-정의된 핸드오프 노드가 결정될 필요가 없다. 대신, 핸드오프 노드가 SLM(302)에 의해 이동중에 결정된다. 이와 같이, 원하는 서비스를 수행할 수 있는 최상의 미디어 서비스 노드는 SLM(302)에 의해 선택된다. 그 다음에, 핸드오프는 도 6, 도 7, 도 8a 및 도 8b에 기술된 것과 유사한 방식으로 일어날 수 있다. 핸드오프가 수행되는 방법은 초기 서비스 노드(예를 들어, 202)에 의해 수행되고 있는 서비스의 유형에 대해 특정적일 수 있다는 것을 주목한다.
도 6은 본 발명의 실시예들이 실행될 수 있는 단일 콘텐츠 서버(102)를 갖는 데이터 세션 핸드오프에 대한 예시적인 시스템(600)의 블록도이다. 시스템(600)은 데이터 세션 핸드오프에 수반될 수 있는 예시적인 미디어 서비스로서 트랜스코딩을 수반한다는 것을 주목한다. 시스템(600)은 임의의 미디어 서비스를 포함할 수 있으며, 트랜스코딩으로 한정되지 않는다는 것을 이해해야 한다. 일 실시예에 있어서, 시스템(600)에서, 데이터(예를 들어, 비디오 미디어)는 무선 링크를 통해 모바일 클라이언트(예를 들어, 전자 장치)로 스트리밍된다. 일 실시예에 있어서, 데이터는 스트리밍 오디오 및 스트리밍 비디오와 같은, 연속적인 흐름으로 조직화되고 처리되는 스트리밍 데이터이다. 스트리밍 데이터는 다수의 데이터 패킷(예를 들어, 부분들)을 포함하며, 각 패킷은 그 흐름으로 정렬된다.
일 실시예에서, 시스템(600)은 콘텐츠 서버(102)(예를 들어, 데이터 소스), 트랜스코더 장치들(602 및 604), 및 전자 장치(120)를 포함한다. 일 실시예에서, 트랜스코더(602)는 셀(608)에 위치한 전자 장치들에 미디어 스트림들을 제공하는 동작을 하고, 트랜스코더(604)는 셀(610)에 위치한 전자 장치들에 미디어 스트림들 을 제공하는 동작을 한다. 본 실시예에서, 콘텐츠 서버(102)는 트랜스코더(602)에 전송되는 고-비트 레이트, 고-해상도 비디오 스트림을 생성한다. 트랜스코더(602)는 비디오 스트림들을, 전자 장치(120)로 전송되는, 저-비트 레이트, 중간 해상도 비디오 스트림으로 트랜스코딩한다.
본 응용의 목적으로, 일 실시예에서, 트랜스코더(602)는 제1 트랜스코더로서 지칭되고, 트랜스코더(604)는 제2 트랜스코더로서 지칭된다. 다른 실시예에서, 트랜스코더(602)는 제2 트랜스코더로서 지칭되고, 트랜스코더(604)는 제1 트랜스코더로서 지칭된다. 간단함 및 명확함의 목적으로, 본 발명의 실시예들은 본 명세서에서 트랜스코더(602)와 트랜스코더(604)를 참조하여 설명된다.
일 실시예에서, 전자 장치(120)는 모바일 장치이다. 본 실시예에서, 전자 장치(120)는 랩톱 컴퓨터, 팜톱(palmtop) 컴퓨터 시스템, 셀룰러 전화기 등을 포함하는, 무선 접속을 통해 데이터를 수신하도록 구성된 임의의 장치이며, 이것으로 한정되지 않는다.
도 7은 본 발명의 실시예들이 실행될 수 있는 콘텐츠 분배 네트워크(614)를 갖는 데이터 세션 핸드오프에 대한 예시적인 시스템(700)의 블록도이다. 시스템(700)은 데이터 세션 핸드오프에 수반될 수 있는 예시적인 미디어 서비스로서 트랜스코딩을 수반한다는 것을 주목한다. 시스템(700)은 임의의 미디어 서비스를 포함할 수 있으며, 트랜스코딩으로 한정되지 않는다는 것을 이해해야 한다. 일 실시예에 있어서, 시스템(700)에서, 데이터(예를 들어, 비디오 미디어)는 무선 링크를 통해 모바일 클라이언트들(예를 들어, 모바일 전자 장치들)로 스트리밍된다. 일 실 시예에 있어서, 데이터는 스트리밍 오디오 및 스트리밍 비디오와 같은, 연속적인 흐름으로 조직화되고 처리되는 스트리밍 데이터이다.
일 실시예에서, 시스템(700)은 콘텐츠 분배 네트워크(614)(예를 들어, 데이터 소스), 트랜스코더 장치들(602 및 604), 및 전자 장치(120)를 포함한다. 일 실시예에서, 트랜스코더(602)는 셀(608)에 위치한 전자 장치들에 미디어 스트림들을 제공하는 동작을 하고, 트랜스코더(604)는 셀(610)에 위치한 전자 장치들에 미디어 스트림들을 제공하는 동작을 한다. 콘텐츠 분배 네트워크(614)는 다수의 에지 서버들(예를 들어, 에지 서버들(616 및 618))을 포함한다. 에지 서버들(616 및 618)은 각각 그들에게 지리적으로 근접한 모바일 클라이언트들에 미디어를 제공하고자 의도되도록 지리적으로 분배됨으로써, 네트워크에서의 오버헤드를 줄인다. 본 실시예에서, 에지 서버(616)는 트랜스코더(602)에 전송되는 풀(full)-비트 레이트, 고-해상도 비디오 스트림을 생성한다. 트랜스코더(602)는 비디오 스트림들을, 전자 장치(120)로 전송되는, 저-비트 레이트, 중간 해상도 비디오 스트림으로 트랜스코딩한다.
일 실시예에서, 전자 장치(120)는 모바일 장치이다. 본 실시예에서, 전자 장치(120)는 랩톱 컴퓨터, 팜톱 컴퓨터 시스템, 셀룰러 전화기 등을 포함하는, 무선 접속을 통해 데이터를 수신하도록 구성된 임의의 장치이며, 이것으로 한정되지 않는다.
도 6 및 도 7을 참조하면, 시스템(600)과 시스템(700)은 둘다 트랜스코더(602 및 604)를 이용하여, 비디오 스트림들을, 목표 전자 장치(예를 들어, 전자 장 치(120))의 디스플레이 성능들을 매칭(match)하는 저 비트 레이트 스트림들로 트랜스코딩한다.
일 구현예에서, 콘텐츠 서버(102) 또는 에지 서버(616)는 트랜스코더(602)에 풀-비트 레이트 미디어 스트림을 전송하고, 트랜스코더(602)는 셀(608)에 위치한 전자 장치들로의 미디어를 트랜스코딩한다. 일 실시예에서, 콘텐츠 서버(102)는 에지 서버임을 알아야 한다. 트랜스코더(602)는 그 다음에 미디어 스트림을 저 비트 레이트 스트림으로 트랜스코딩하고, 그 스트림을 전자 장치(120)에 전송한다. 트랜스코더(602)는, 전자 장치(120)가 다른 셀을 향하여 이동하고 있다는 통지를 수신하면, 새로운 셀을 제공하는 다른 트랜스코더와 핸드오프 동작을 개시한다. 핸드오프 프로세스는 이하 도 8a 및 도 8b의 프로세스(800)에서 상세하게 논의된다.
일 실시예에서, 핸드오프는 서비스 위치 관리자(302)와 같은 중앙집중(centralized) 노드의 제어 및 방향하에서 달성된다. 다른 엔티티(예를 들어, 전용 핸드오프 관리자)가 대신 이 기능을 수행할 수 있다는 것을 이해한다. 일 실시예에서, 서비스 노드(202)는 다른 서비스 노드로 미디어 세션을 전송하는데 이용되는 핸드오프 정보를 특정한다. 하나의 이러한 실시예에서, 핸드오프 정보는 서비스 위치 관리자(302)로 전달된다. 서비스 위치 관리자(302)는 그 다음에 미디어 세션 핸드오프를 수신할 서비스 노드(예를 들어, 서비스 노드(204))를 선택하고, 그 서비스 노드에 핸드오프 정보를 전달할 수 있다. 다른 실시예에서, 서비스 위치 관리자(302)는 미디어 세션 핸드오프를 수신할 서비스 노드를 식별하고, 서비스 노드(202)에게 그 서비스 노드로 직접 핸드오프 정보를 전달하도록 지시할 수 있다.
도 8a 및 도 8b는 본 발명의 일 실시예에 따라 데이터 세션 핸드오프의 프로세스(800)를 예시하는 흐름도이다. 일 실시예에서, 프로세스(800)는 메모리에 저장되고 제어기에 의해 실행되는 컴퓨터 판독가능한 프로그램 명령들로서 트랜스코더 장치(예를 들어, 트랜스코더 장치(602 또는 604))에 구현된다. 특정 동작들이 도 8a 및 도 8b에 개시되어 있지만, 이러한 동작들은 예시적인 것이다. 즉, 본 발명은 다양한 다른 동작들 또는 도 8a 및 도 8b에 예시된 동작들의 변형들을 수행하는 것으로 잘 적응된다.
프로세스(800)의 동작(805)에서, 모바일 장치(예를 들어, 도 6의 전자 장치(120))는 미디어 파일(예를 들어, 데이터)을 요구하는 트랜스코더(예를 들어, 도 6의 트랜스코더(602))를 접촉한다. 일 실시예에서, 트랜스코더(602)는 셀(608) 내에 위치하는 전자 장치들에 미디어를 제공하는 동작을 한다. 일 실시예에서, 모바일 장치는 미디어 파일을 요구하는 가장 근접한 트랜스코더를 접촉한다. 일 실시예에서, 모바일 장치는 메시지를 전송함으로써 트랜스코더를 접촉한다. 일 실시예에서, 메시지는 TCP(transmission control protocol) 메시지이다. 동작(805)은 도 6 및 도 7에서 화살표(630)로서 그래픽적으로 표시되어 있다.
동작(810)에서, 트랜스코더(602)는 데이터 소스(예를 들어, 콘텐츠 서버(102) 또는 콘텐츠 분배 네트워크(614))를 접촉하여, 미디어 세션을 설정한다. 일 실시예에서, 트랜스코더(602)는 메시지를 전송함으로써 데이터 소스(도 6의 콘텐츠 서버(102) 또는 도 7의 콘텐츠 분배 네트워크(614))를 접촉한다. 일 실시예에서, 메시지는 TCP 메시지이다. 동작(810)은 도 6 및 도 7에서 화살표(632)로서 그래픽적으로 표시되어 있다.
동작(815)에서, 데이터 소스는 요구된 미디어를 트랜스코더(602)에 스트리밍하는 것을 시작한다. 일 실시예에서, 요구된 미디어는 UDP(user datagram protocol)를 이용하여 전송된다. 동작(815)은 도 6 및 도 7에서 화살표(634)로서 그래픽적으로 표시되어 있다.
동작(820)에서, 트랜스코더(602)는 전자 장치(120)로의 스트리밍 미디어를 트랜스코딩한다. 동작(815)은 도 6 및 도 7에서 화살표(636)로서 그래픽적으로 표시되어 있다.
동작(825)에서, 트랜스코더(602)는 전자 장치(120)가 새로운 위치(예를 들어, 셀(610))로 이동하고 있음을 통지받는다. 일 실시예에서, 전자 장치(120)는 새로운 위치로의 이동을 트랜스코더(602)에 직접 전달한다. 다른 실시예에서, 이동의 통지는, 전자 장치(120)와 근접하게 위치하고 있어 이동에 대해 전자 장치(120)를 감시하는 카메라에 의해 트랜스코더(602)로 전달된다. 다른 실시예에서, 새로운 위치로 이동하는 전자 장치(120)는 전자 장치(120)의 감시된 행동에 기초하여 컴퓨터 시스템에 의해 예측된다. 다른 실시예에서, 새로운 위치로 이동하는 전자 장치(120)는 트랜스코더(602)에 의해 감시되는 전자 장치(120) 내에 존재하는 GPS(global positioning system)에 기초하여 결정된다. 트랜스코더(602)는 임의의 방법에 의해 새로운 위치로의 전자 장치(120)의 이동을 인식할 수 있다는 것을 알 아야 한다. 셀(608)로부터 셀(610)로의 전자 장치(120)의 이동은 도 6 및 도 7에서 화살표(636)로서 그래픽적으로 표시되어 있다.
동작(830)에서, 트랜스코더(602)는 셀(610)에 근접한 트랜스코더(예를 들어, 트랜스코더(604))에 핸드오프 메시지를 전송함으로써, 트랜스코더(604)에게 미디어를 전자 장치(120)에 스트리밍할 준비를 하도록 통지한다. 일 실시예에서, 핸드오프 메시지는 트랜스코딩 정보(예를 들어, 전자 장치(120)의 디스플레이 사이즈 및 대역폭 사이즈) 및 시퀀스 헤더(예를 들어, 데이터 스트림의 현재의 바이트 위치)를 포함한다. 시퀀스 헤더는 전자 장치(120)에 현재 전송되고 있는 미디어 스트림의 부분을 나타낸다. 일 실시예에서, 트랜스코더(602)는 메시지를 전송함으로써 트랜스코더(604)에게 통지한다. 일 실시예에서, 메시지는 TCP 메시지이다. 동작(830)은 도 6 및 도 7에서 화살표(638)로서 그래픽적으로 표시되어 있다.
동작(835)에서, 트랜스코더(604)는 데이터 소스를 접촉하여, 미디어 세션을 설정한다. 일 실시예에서, 미디어 세션은 동작(830)에서 수신된 시퀀스 헤더에 기초하여 요구된다. 시퀀스 헤더에 표시된 비트 위치에서 미디어 세션을 개시함으로써, 전자 장치(120)는 트랜스코더들을 전환하더라도 일관성 있는 미디어 세션을 수신한다. 일 실시예에서, 트랜스코더(604)는 메시지를 전송함으로써 데이터 소스에게 통지한다. 일 실시예에서, 메시지는 TCP 메시지이다. 동작(835)은 도 6 및 도 7에서 화살표(640)로서 그래픽적으로 표시되어 있다.
동작(840)에서, 데이터 소스는 요구된 미디어를 트랜스코더(604)에 스트리밍하는 것을 시작한다. 일 실시예에서, 전술한 바와 같이, 미디어 세션은 시퀀스 헤 더에 표시된 비트 위치에서 개시하는 전자 장치(120)에 트랜스코딩되므로, 전자 장치(120)에 일관성 있는 미디어 세션을 제공한다. 일 실시예에서, 요구된 미디어는 UDP를 이용하여 전송된다. 동작(840)은 도 6 및 도 7에서 화살표(642)로서 그래픽적으로 표시되어 있다.
동작(845)에서, 트랜스코더(604)는 전자 장치(120)와 통신할 준비가 되어 있다는 것과, 트랜스코더(602)가 전자 장치(120)와의 통신을 차단할 수 있다는 것을 트랜스코더(602)에게 통지한다. 일 실시예에서, 트랜스코더(604)는 메시지를 전송함으로써 트랜스코더(602)에게 통지한다. 일 실시예에서, 메시지는 TCP 메시지이다. 동작(845)은 도 6 및 도 7에서 화살표(644)로서 그래픽적으로 표시되어 있다.
동작(850)에서, 트랜스코더(604)는 전자 장치(120)로의 스트리밍 미디어를 트랜스코딩한다. 전술한 바와 같이, 스트리밍 미디어는 일관성 있는 방식으로 전자 장치(120)에 제공되므로, 동작(830)에서 수신된 시퀀스 헤더에 표시된 위치에서 트랜스코딩을 개시한다. 동작(850)은 도 6 및 도 7에서 화살표(648)로서 그래픽적으로 표시되어 있다.
동작(855)에서, 트랜스코더(602)는 전자 장치(120)로의 미디어의 트랜스코딩을 중지한다.
관련 연구
Degas 시스템은, 사용자 정의 미디어가, 프로그램가능 미디어 게이트웨이들[9]을 이용하여 처리하는 것을 허용한다. deglets라고 불리는 프로그램들은, 선언 적 프로그래밍 모델을 이용하여 게이트웨이들로 업로드될 수 있다. Degas 시스템은, 미디어 게이트웨이들과 상호작용하기 위해 특수 클라이언트를 포함한다. 한편, 본 명세서에 기재된 SLM 시스템은 3GPP에 따르는 클라이언트에 대해 완전하게 투명할 수 있다. Degas 시스템은 네트워크 대역폭 활용에 대하여 최적으로 게이트웨이들을 위치시키는 것을 시도하고, 필요한 경우 프로세싱 태스크를 동적으로 이주할 수 있다. 그러나, 리소스 관리는 구현되지 않았다. 시스템은 미디어 게이트웨이에서 코드를 최적화하기 위해서 멀티미디어 소프트웨어 라이브러리를 이용한다.
콘텐츠 서비스 네트워크(content services network: CSN)가 [7]에 제안되었다. 키프레임 추출(keyframe extraction)을 갖는 비디오 분할이 샘플 하부 구조 서비스로서 이용되었다. 본 발명의 아키텍처와 유사하게, CSN은 하부 구조 서비스로서 계산(예를 들어, 프로세싱)을 추가하기 위해 기존의 CDN을 이용한다. 네트워크에서의 서비스들에 관한 정보 및 서버 부하와 클라이언트 데모그래픽(demographics)의 이력(history)을 유지하기 위해서 서비스 분배 및 관리(Services Distribution and Management: SDM) 서버들이 이용된다. 응용 프록시 서버에 프로세싱 요구를 전송하기 위해서 네트워크 에지에 리디렉션 서버들이 배치된다. 제안된 CSN은 가장 근접한 응용 프록시에 요구를 전송하기 위해서 DNS 리디렉션을 이용한다. 본 발명의 아키텍처에서, 이 기능은 동적 SMIL 재기입에 의해 응용 레벨에서 완전히 수행된다. 이것은 하부 구조로부터 DNS-리디렉션 성능들을 위한 필요성을 제거한다.
CSN SLM / MSA 사이의 차이
* CSN은 독립적인 오버레이 하부 구조를 필요로 하고, 서비스 할당 프로세스를 위한 추가적인 DNS 리디렉션을 필요로 한다. SLM은 기존의 콘텐츠 전달 구조에 삽입하고, 서비스 요구 발송은 동적 SMIL 재기입에 의해 응용 레벨에서 완전히 수행된다.
* CSN은 가입(subscription) 모델을 이용하고, 최종 사용자 또는 콘텐츠 제공자는 특정 서비스들에 가입한다. SLM은 임의의 상대방으로부터의 가입을 필요로 하지 않는다.
* CSN에서, 일단 서비스 세션이 서비스 노드에 할당되면, 그 노드는 노드가 실패하지 않는 한 그 세션을 완료한다. SLM은 서비스 세션의 중간에 서로 다른 노드들로 동적으로 전환할 수 있다.
* CSN은 결과가 제공될 수 있기 전에 서비스가 완료되는 것을 요구하는 OPES를 이용한다. SLM은 스트리밍된 미디어 서비스를 가능하게 하고, 즉, 미디어 서비스의 결과는 서비스 세션이 계속될 때 병렬로 제공될 수 있다.
*CSN은 동적 서비스 배치/세션 할당을 갖는 서비스 관리를 구현하는 방법을 개시하지 않는다. 그러나, 이것은 SLM과 관련하여 본원에 기재되어 있다.
* CSN은 (서비스 노드들로도 알려진) AP들의 "감시"가 어떻게 행해지는지를 나타내지 않으므로, 감시가 스케일 가능할 것인지의 여부 또는 감시가 자동으로 노드 실패들을 검출할 것인지의 여부에 대한 표시가 존재하지 않는다. SLM은 본원에 설명된 바와 같이 푸시(push) 또는 풀(pull) 기반의 감시를 이용할 수 있다.
* 수신된 감시 통계(그러나 이것들은 수신됨)는 SLM에 의해 최근의 디스패치들을 반영하도록 수정된다. CSN은 이것을 교시하지 않는다.
요약하면, 이들 미디어 서비스들은, 여기저기 이동함에 따라, 배경 태스크를 개시 및 중지함에 따라, 다양한 전력 관리 전략들을 허용하도록 프로세서 및 디스플레이 파라미터들을 조정함에 따라, 디스플레이, 프로세서, 및 모바일 장치들에 의해 제공되는 대역폭 제한의 매우 동적인 집합 및 신속한 확장을 지원하는 것이 바람직하다. 약술된 SLM 해결책은 네트워크에서 다수의 서비스 노드를 통해 CPU 집약적 미디어 프로세싱 태스크의 균형을 맞추는 부하의 문제를 효과적으로 처리할 수 있다. 클라이언트가 공지된 포털 사이트를 액세스할 때, 서비스 위치 관리자(302)는 최저 부하 서비스 노드(least loaded service node)에 요구를 동적으로 라우팅한다. 또한, 트랜스코딩된 스트림들은 네트워크에서 적절한 서비스 노드들로부터 3GPP에 따르는 클라이언트-투명 방식으로 제공된다.
이 아키텍처는 [6, 11]에 약술된 바와 같이 모바일 클라이언트들을 위한 미디어 서비스 세션들의 응용 레벨 핸드오프를 트리거하도록 확장될 수 있다. SLM 아키텍처는 새로운 클라이언트 위치에 근접한 미디어 서비스 노드를 결정하도록 잘 적합하게 된다. 중간-세션(mid-session) 핸드오프를 수행하는 능력은, 전술된 것보다 훨씬 미세한 세분성으로 부하 균형화를 허용한다.
컴포넌트화된 네트워크-기반 미디어 서비스들을 위한 예시적인 아키텍처
본 발명의 실시예에 따른 미디어 서비스 아키텍처(Media Services Architecture: MSA)는, 네트워크를 통해 흐를 때 스트리밍 오디오 및 비디오에 대해 동작하는 서비스들을 요구, 구성 및 실행하기 위한 유연성 있는, 일반적인 아키텍처를 제공할 수 있다. MSA는 요구된 미디어 서비스들을, 네트워크의 전체에 걸쳐서 서버들로 분배될 수 있고, (예를 들어, 표준 스트리밍 프로토콜들을 통해) 서로 통신할 수 있는 모듈러 프로세싱 컴포넌트들로 분해한다. 표준 프로토콜들의 이용은 또한 MSA와 미디어 콘텐츠 전달 네트워크들 사이에 일관성 있는 상호운용성을 제공한다. MSA는 이용가능한 계산 및 네트워크 리소스들을 효율적으로 이용하는 방식으로 네트워크 서버들을 감시하고 이 서버들에 서비스 컴포넌트들을 할당함으로써 미디어 서비스들을 관리한다. 서비스들의 컴포넌트화(Componentization) 및 네트워크-전달은, 최종 사용자들에 대해 부담이 되는 시스템 유지를 현저하게 감소시킴과 함께, 폭넓은 서비스 이용가능성 및 장치 호환성을 촉진하고, 신규의 개선된 서비스들의 급속한 개발을 허용한다.
일 실시예에서, MSA는 복잡한 미디어 서비스들을 유연성 있게 구성된 네트워크-기반 부분들로 분해함으로써 리치(rich) 미디어를 스트리밍하는 영역으로, 컴포넌트화된 웹-기반 서비스들을 확장한다. 이러한 접근법은 강력한 새로운 응용들의 급속한 개발 및 간단한 유지를 허용하고, 다수의 사용자에 대하여 스케일성(scalability)을 촉진한다. 이 모두는 미디어 서비스 클라이언트들의 시점으로부터 사용 편의성을 희생하지 않고 달성된다.
네트워크-기반 미디어 서비스들
독립형 시스템들에서 오디오, 비디오 및 다른 미디어에 대해 수행되는 많은 분석 유형은 네트워크-프로세싱 아키텍처 내로 통합될 수 있다. 예를 들어, 음성 인식, 얼굴 검출 및 인식, 및 오디오 노이즈-제거(de-noising)는 이용가능한 대역폭 및 프로세싱 전력을 갖는 네트워크 서버 기계들에 대하여 로컬 데스크톱으로부터 간단하게 제거될 수 있다. 또한, MSA는 아래의 것을 포함하는 이용가능한 새로운 고가의 서비스들을 실용적으로 되게 한다.
비디오 합성(video compositing): 2 이상의 비디오 스트림들은 다수의 소스로부터 콘텐츠를 갖는 단일 비디오 스트림을 생성하기 위해 마스크들에 따라, 이미지별로, 혼합될 수 있다. "PIP(Picture-in-Picture)" 및 "블루 스크리닝(Blue screening)" 특수 효과들은 많은 응용 사이에 있다. 비디오 트랜스코딩은 입력 스트림들의 매칭되지 않는 포맷들, 해상도들 및 프레임 레이트들을 해결하기 위해 바람직할 수 있다.
회의 요약 및 옮겨쓰기(meeting summarization and transcription): 카메라들 및 마이크로폰들이 회의에 존재할 때, 유입하는 오디오 및 비디오 스트림들은 네트워크에서 수집되고, 비디오 및 오디오 분할과 음성 및 얼굴 인식을 이용하여 처리되어, 회의의 색인된 기록을 생성할 수 있다. 또한, 자동 음성 인식(automatic speech recognition: ASR), 키워드 스폿팅(keyword spotting) 및 문서 요점(document gisting)을 이용하여, 회의의 색인되고, 주석첨가되고(annotated), 부분적으로 옮겨쓰기된 기록을 생성할 수 있다. 이 기록 유형들을 이용하여, 차후 에 회의 콘텐츠를 신속하게 리콜(recall)할 수 있다.
멀티-소스 오디오 강화(multi-source audio enhancement):여러 개의 마이크로폰-가능 PDA(Personal Digital Assistant) 또는 다른 전자 기록 장치를 갖는 회의에서와 같이, 싱글룸(single room)에서 서로 다른 마이크로폰으로부터 다수의 오디오 스트림이 캡쳐(capture)되고 있을 때, 서로 다른 참가자들로부터 음성을 분리 및 노이즈-제거하기 위해서 이 애드혹(ad-hoc) 마이크로폰 어레이에 블라인드(blind) 소스 분리가 적용될 수 있다.
동적 뷰 선택(dynamic view selection): 라이브 원격회의 및 웹 방송 강의 응용들에서, 충분한 커버리지를 위해 다수의 카메라가 종종 바람직하다. 최상의 카메라 뷰는 전형적으로 이벤트 동안 여러 번 변한다. 이벤트로부터의 비디오 및 오디오 스트림들의 분석은 최상의 비디오 공급을 자동으로 선택하기 위해서 네트워크-기반 서비스에 의해 이용될 수 있다.
이 미디어 분석 유형은 로컬 데스크톱 프로세싱을 통해 오늘날 이용가능하다. 그러나, 네트워크의 중간에서 미디어 스트림들에 대해 동작하는 컴포넌트화된 서비스들은, 아래의 것을 포함하는, 통상의 데스크톱 모델을 통해서 많은 장점을 제공한다.
개선된 응용 제공: 개발자들은 MSA를 간단하게 갱신함으로써 개선된 서비스들을 신속하게 분배할 수 있다. 새로운 서비스들은 컴포넌트들을 혼합하고 매칭함으로써 신속하게 생성된다. 응용들은, 그 응용들이 설치될 수 있는 그 자신의 기계들을 액세스할 수 있을 때만이 아니라, 사용자들이 네트워크에 도달할 수 있을 때마다 이용가능하다.
감소된 시스템 관리(administration): 프로세싱이 네트워크에서 수행되기 때문에, 최종 사용자들은 그 자신의 기계들에서의 연속적인 설치 및 갱신 곤란에 관해 걱정할 필요가 없다.
멀티-스트림 프로세싱의 촉진: 회의 요약(meeting summarization)과 같은 많은 미디어-기반 응용들은, 다수의 스트림들이 공동 프로세싱(joint processing)을 위해 수집되어야 한다. 이 스트림들이 동일한 기계로부터 생기h지 않은 경우, 보통, 중간-네트워크에서 이 스트림들을 처리하는 것이 훨씬 더 효율적이다.
제어 계산 환경: 개별 사용자들의 기계들은 그 계산 능력, 메모리 성능 및 운영 체계에 있어서 폭넓게 변할 수 있지만, MSA 기계들은 좁은 범위의 사양으로 표준화될 수 있다. 서비스 컴포넌트들은 이들 사양을 위해 개발되고 최적화될 수 있으므로, 더욱 신뢰성 있는 전체 응용 성능을 야기한다.
결과들의 효율적인 공유: 회의 요약 문맥과 같은 많은 상황에서, 다수의 사용자가 희망하는 처리된 미디어 및 분석 결과들은 거의 동일하거나 일치한다. 각 사용자의 기계에서 이 프로세싱을 중복하기보다는, 중간-네트워크 프로세싱은 중복 계산들을 한번 수행하고 나서, 각 사용자에게 그 결과들을 분배할 수 있다. 간단하게 말하면, 네트워크-기반 미디어 프로세싱 서비스들은, 사용자들에게, 유지 및 신뢰성 문제가 감소된, 현행, 로컬, 미디어-중심 응용들보다 훨씬 더 큰 유연성 및 기능성의 가능성을 제공한다.
미디어 서비스 아키텍처( MSA )
MSA의 실시예들은, 미디어 전달 아키텍처와 통합하고, 매우 유연성 있는 방식으로 미디어 서비스들을 가능하게 하는 것에 초점이 맞춰진다. MSA의 일부 특징들은 아래의 것을 포함할 수 있다.
상호운용성: 개방 인터페이스 및 표준을 이용한 컴포넌트들 사이의 일관성 있는 스트리밍 상호접속들
모듈화: 네트워크의 중간에서 동적 미디어 서비스 구성을 허용하는 모듈러 서비스 컴포넌트들
관리성(manageability): 스케일 가능한 방식으로 계산 및 저장 리소스들에의 미디어 서비스들의 효율적인 할당
아키텍처가 이 특징들 각각을 제공할 수 있는 수단이 하기에서 논의된다.
스트리밍 상호운용성을 위한 일관성 있는 상호접속들
MSA내 뿐만 아니라, MSA의 요소들과 미디어 콘텐츠 전달 네트워크들(CDNs)의 컴포넌트들 사이의 미디어 스트림들의 모든 상호-기계 전송(inter-machine transport)은, "귀들(Ears)"로서 지칭될 수 있는 균일한 입력 및 출력 모듈들을 통해 수행될 수 있다. 일 실시예에서, 귀는 표준-기반 미디어 스트리밍 프로토콜들에 의존하므로, CDN들 및 다른 스트리밍 미디어 응용들과의 MSA의 통합을 용이하게 한다. 입력 귀와 출력 귀는 둘다 멀티미디어를 기술하기 위한 SDP 프로토콜, 세션 관리 및 미디어 플레이백 제어를 위한 RTSP(Real-Time Streaming Protocol), 및 실 시간 제약하의 데이터의 전송을 위한 RTP/RTCP(Real-Time Protocol/Real-Time Control Protocol)를 통해 다른 네트워크 기계들과 통신할 수 있으며, 이것들로 한정되지 않는다. 주어진 귀는 단일 미디어 스트림을 위한 흐름의 하나의 단(전송 또는 수신)을 관리할 수 있지만, 다수의 귀는 동일한, 동기화된 스트리밍 세션 내로 링크될 수 있다.
귀들은 또한 데이터 압축 및 비-압축(decompression) 기능을 제공할 수 있으므로, 네트워크 전송에 종종 이용되는 압축된 포맷들과 미디어 프로세싱 및 분석 기술들에 의해 종종 요구되는 압축되지 않은 포맷 사이에서 상호-변환될 수 있다. 입력 귀들은 유입하는 미디어 스트림들의 포맷을 자동으로 검출하고, 적절한 비-압축 모듈을 보충하여, 그 데이터를 미디어 분석에 적절한 형태로 변환할 수 있다. 출력 귀들은 미가공 데이터 스트림들을 네트워크 전송에 적절한 압축된 포맷들로 변환할 수 있다. 지원되는 표준 압축 방식은 MPEG(Moving Picture Experts Group), MPEG-1, MPEG-2, 및 MPEG-4 비디오 및 오디오/모뎀 라이서(Audio/Modem Riser: AMR) 및 WAV 오디오를 포함할 수 있으며, 이것들로 한정되지 않는다. 적절한 압축 및 비-압축 모듈들을 등록함으로써 새로운 포맷들이 추가될 수 있다는 것을 주목한다.
마지막으로, 미디어 프로세싱 기술들은 스트리밍 미디어와 동일한 레이트로 동작하지 않을 수 있기 때문에, 귀들은 데이터 레이트 불일치를 평탄하게 하기 위해서 데이터 버퍼링 및 흐름 제어 방법들을 구현할 수 있다. 순환 버퍼링(circular buffering)은 고가의 데이터 복사를 최소화하고, 멀티-스레딩(multi- threading)은 네트워크, 응용, 및 비-압축 및 압축 루틴들로부터의 데이터 요구들을 효율적으로 제공한다. 버퍼 오버플로우(overflow)는 프레임들을 드롭하기 위한 선택가능한 정책들에 의해 처리될 수 있다.
유연성 있는 모듈러 서비스 분해
MSA 서비스는 간단한, 고레벨 미디어 서비스 요구를 갖는 서비스 포털을 접촉함으로써 개시될 수 있다. 이 요구들은 인터넷과 같은 네트워크를 통해 사용자 장치에 의해 직접 이루어질 수 있거나, 이 요구들은 MSA 내에서 또는 국부적으로 사용자 장치에 의해 구동되는 응용들에 의해 생성될 수 있다. 각 요구는 소스 및 목적지(destination) URL(Uniform Resource Locator)과 같은, 임의의 서비스 파라미터들과 함께, "비디오 합성"과 같은, 서비스의 이름을 포함할 수 있다.
이들 간단한 미디어 서비스 요구들은 요구하는 클라이언트들로부터 대부분의 미디어 서비스들의 복잡성을 가린다. 예를 들어, 회의 요약은 음성 인식, 얼굴 검출, 비디오 모션 분석 및 음성 식별을 채용할 수 있고, 이 컴포넌트 기술들 각각은 또한 여러 개의 서브-컴포넌트들로 분할될 수 있다. 한편, 주어진 프로세싱 기술은 많은 서로 다른 서비스들에서 유용한 컴포넌트일 수 있다. 이러한 이유로, 유연성 있고 동적으로 결합되는 모듈러, 재-사용가능 컴포넌트들로 미디어 프로세싱 기술들을 캡슐화하는 것이 바람직하다.
따라서, 각 미디어 서비스는 데이터 스트림들을 통해 통신하는 독립적인 "컴포넌트들"의 그래프로서 구조화된다. 각 컴포넌트는 함께 친밀하게 작용하는 하나 이상의 "서브-컴포넌트" 프로세싱 기술들을 캡슐화할 수 있다. 하나의 미디어 서비스를 위한 컴포넌트들은 동적으로 단일 기계 상에 배치되거나 또는 네트워크를 거쳐서 분배될 수 있다. 컴포넌트들이 잘 캡슐화된 이래로, 각각은 이러한 분배에 대한 관심없이 동작할 수 있다.
도 10은, MSA가 본 발명의 일 실시예에 따라 서비스들을 분해 및 분배하는 예시적인 동작들을 도시하는 블록도이다. 사용자 장치(1002)에 의해 발행된 미디어 서비스 요구(1004)를 수신한 후에, 서비스 포털(1006)은 서비스 빌더(Service Builder)(1008)를 개시하고 구동하여 그 요구의 이행을 관리한다. 각각의 이름이 붙여진 미디어 서비스는 상이한 서비스 빌더(예를 들어, 1008)와 연결될 수 있고, 각각의 서비스 빌더는 그 서비스를 구현할 컴포넌트들의 추상 그래프(abstract graph)(예를 들어, 1001)의 구조를 알고 있다. 이 그래프에서의 각 컴포넌트에 대하여, 서비스 빌더(1008)는 "서비스 위치 관리자(SLM)"(1012)에 컴포넌트 배치 요구(1010)를 전송하여, 본원에 논의된 바와 같이, 하나 이상의 컴포넌트를 구동할 네트워크 서비스-가능 기계(service-enabled machine)(예를 들어, 1022, 1024 또는 1026)를 결정한다. SLM(1012)은 각 컴포넌트의 각각의 입력 및 출력 스트림을 위한 (포트 번호를 갖는) 특정 URL을 포함할 수 있는 서비스 빌더(1008)에 컴포넌트 배치 결정(1014)을 리턴한다. 서비스 빌더(1008)는 선택된 서비스-가능 기계(예를 들어, 1022)에 의해 이들 결정을 그룹화하고, 그 다음에, 원하는 컴포넌트들(120) 및 그들의 입력 및 출력 URL들을 열거하는 네트워크(예를 들어, 인터넷(1028))를 통해 하나의 구성 요구(1016)를 각각의 선택된 기계에 전송한다.
로컬 빌더
"로컬 빌더"(예를 들어, 1018)는 각각의 MSA 기계(예를 들어, 1022, 1024 및 1026)에서 구동하여 구성 요구들(1016)을 제공한다. 주어진 요구(1016)에 대하여, 로컬 빌더(1018)는 이름이 붙여진 컴포넌트들의 각각을 생성하고, 입력 및 출력 URL들을 이용하여, 귀들(1030 및 1032)을 인스턴스화해서, 이들 컴포넌트들과 다른 기계들(예를 들어, 1022 및 1026)에서의 컴포넌트들 사이에서 데이터를 전송하고 수신할 수 있다. 이러한 방식으로, 로컬 빌더(1018)는 서비스 컴포넌트들을 연결한다. 로컬 빌더(1018)는 또한 하나 이상의 컴포넌트에 의해 행해지는 동일한 서브-컴포넌트 프로세싱을 제거함으로써, 단일 기계(예를 들어, 1024)에서 구동하는 상호-통신하는 컴포넌트들의 각각의 모음을 최적화하고자 시도한다. 이러한 중복(duplication)은 때때로 서비스들이 정당하게-사이즈가 정해진(reasonably-sized), 재사용가능한 컴포넌트들로 분할되는 경우에 발생한다. 이러한 서비스 모듈화의 비용은 이에 따라 로컬 빌더의 최적화에 의해 완화된다. 여분의 서브-컴포넌트 프로세싱을 제거한 후에, 로컬 빌더는 서비스 프로세싱을 이행하기 위해서 필요로 되는 바와 같이 병합된 컴포넌트들의 입력 및 출력 스트림들을 리디렉션한다.
도 10에서, 모든 구성 요구들(1016)이 이행된 후에, 서비스는 구동할 준비가 된다. 데이터 목적지에 가장 근접한 서비스 그래프에서의 컴포넌트들은, 이것으로 한정되는 것은 아니지만, RTSP PLAY 커맨드를 통해서, 미디어를 요구함으로써, 접속된 컴포넌트들의 전체 그래프를 통해 데이터를 풀링(pulling)한다. 이와 같이, 원하는 미디어는 하나 이상의 소스들(예를 들어, 콘텐츠 서버(1033) 및 라이브 카 메라들(1035 및 1037))로부터 흐르고, 선택된 서비스 컴포넌트들은 처리된 미디어를 목적지(예를 들어, 출력 디스플레이(1003))로 최종적으로 전달하기 위해서 스트리밍 미디어에 대해 동작한다. 화살표(1032)와 유사한 도 10에서의 화살표들은 스트리밍 미디어/데이터를 나타낸다는 것을 주목한다.
동적 서비스 위치 관리-컴포넌트(들) 배치
MSA 네트워크에서의 많은 별개의 기계들은 미디어 서비스들을 위한 하부 처리를 수행할 수 있다. 따라서, 각각의 미디어 서비스 요구(예를 들어, 1004)에 대하여, 요구를 최상으로 이행하기 위해서 MSA 리소스들을 어떻게 할당할지에 대하여 결정이 이루어질 수 있다. 네트워크 부하를 과도하게 증가시키는 것을 피하기 위해서, 이러한 결정들은 미디어 스트림들의 소스들과 목적지들 사이의 양호한 경로들에 대하여 다양한 서비스-가능 기계들(예를 들어, 1022, 1024 및/또는 1026)의 (네트워크) 근방에 부분적으로 기초할 수 있다. 최소 지연 및 최고 품질을 갖는 서비스들을 제공하기 위해서, 이러한 결정들은 또한 각각의 MSA 미디어 프로세서에 의해 전달되는 현재의 프로세싱 부하를 고려할 수 있다. 마지막으로, 서비스의 일부 컴포넌트들이 서브-컴포넌트 프로세싱을 공유할 때, 컴포넌트들은 동일한 서비스-가능 기계(예를 들어, 1022, 1024 또는 1026)에서 그것들을 그룹화하는 것이 바람직할 수 있다.
이러한 결정들을 지능적으로 행하는 하나의 방법은, [17]에 기재된 바와 같이 "서비스 위치 관리"를 이용하는 것이다. MSA는 서비스를 포함하는 별개의 컴포 넌트들을 어디에 배치할지를 결정하는 서비스 위치 관리자들(SLMs)(예를 들어, 1012)을 포함한다. 주어진 미디어 서비스 요구(예를 들어, 1004)에 대하여, SLM(예를 들어, 1012)은 연관된 서비스 빌더(예를 들어, 1008)에 의해 정의된 순서로, 하기에 설명된 다수의 인자를 고려하여, 서비스의 컴포넌트들을 한 번에 한 개 배치한다. 컴포넌트들을 위한 배치 결정들은 대안적으로, 이것이 심지어 적당하게 정교한 서비스들에 대하여 복잡하고 시간 소모적인 절차일 것 같더라도, 모든 인자 및 모든 컴포넌트에 대한 공동 최적화(joint optimization)를 통해서, 동시에 이루어질 수 있다. 서로 다른 컴포넌트들을 위한 배치 결정들은 또한 대안적으로, 이것이 비효율적인 데이터 경로들을 초래하고 서브-컴포넌트 프로세싱을 중복할 수 있더라도, 완전히 독립적으로 이루어질 수 있다. 대신, SLM들(예를 들어, 1012)은 최근의 컴포넌트 배치 결정들의 표들을 유지하고, 각각의 새로운 결정을 이 이력에 부분적으로 기초할 수 있다.
예를 들어, 각각의 컴포넌트 배치 결정은 동일한 서비스 요구의 다른 컴포넌트들을 위한 이전의 결정들에 부분적으로 기초할 수 있으므로, 서비스를 위한 추상 그래프에서 서로 연결되어 있는 컴포넌트들은 동일한 서비스-가능 기계(예를 들어, 1022) 또는 고-대역폭 및/또는 저 지연시간 상호접속을 갖는 기계들에 우선적으로 배치될 수 있다. 이전의 결정 이력에의 컴포넌트 배치 결정들의 이러한 기초는, 고가의 프로세스일 것 같은 컴포넌트들의 전체 그래프를 통한 공동 배치 최적화와, 복잡한 데이터 경로의 오버레이 및 중복 계산 제거의 실패를 초래할 수 있는 완전히 독립적인 배치 결정들 사이의 타협(compromise)임을 주목한다. 이와 같이, SLM(예를 들어, 1012)은 이전의 배치 결정들에 기초하여 배치를 최적화할 수 있게 허용되지만, 컴포넌트들의 전체 그래프에 걸쳐서 할당을 최적화하는 것을 시도하지 않을 수 있다. 대안적으로, SLM(예를 들어, 1012)은 이전의 배치 결정들에 기초하여 배치를 최적화할 수 있게 허용될 수 있고, 컴포넌트들의 전체 그래프에 걸쳐서 할당을 최적화하는 것을 시도할 수도 있다는 것을 주목한다.
도 11은 본 발명의 일 실시예에 따른 서비스 위치 관리 방법의 블록도이다. 서비스 빌더(1008)에 의해 SLM(1012)에 전송되는 각각의 컴포넌트 배치 요구(1010)에 대하여, SLM(1012)은 먼저 네트워크 소재지(locality) 및 이전의 컴포넌트 배치 결정들에 기초하여 잠재적인 호스트 기계들(예를 들어, 1022, 1024 및/또는 1026)의 풀(pool)을 선택할 수 있다. 네트워크 소재지를 액세스하기 위해서, SLM(1012)은 서버 기계들(예를 들어, 1022, 1024 및 1026) 사이의 네트워크 "거리들"의 표(1102)를 참고하여, 서비스 데이터 소스들 및 목적지들 근처에 어느 기계들이 있는지 또는 그들 사이의 경로(들)를 결정할 수 있다. 표 거리들은 측정된 네트워크 지연들 및 대역폭들에 의해 결정될 수 있다는 것을 주목한다. 서비스의 다른 컴포넌트들이 이전에 배치되었던 기계들은, 특히 그들의 이전에 배치된 컴포넌트들이 직접 연결되는 경우, 또는 서브-컴포넌트 프로세싱을 현재의 것과 잠재적으로 공유하도록 표시되는 경우, 현재의 컴포넌트의 배치를 위해 SLM(1012)에 의해 더 큰 선택을 받을 수 있다. 이 정보 모두는 각각의 잠재적인 호스트(예를 들어, 1022, 1024 또는 1026)에 대한 "기계 배치 비용들(Machine Placement Costs)"을 계산함에 있어서 결합될 수 있다.
SLM(1012)은 또한 공동 컴포넌트 배치를 통해 잠재적인 계산 보존(computational savings)을 찾기 위해서 이전의 컴포넌트 배치 결정들을 검토할 수 있다. 일 실시예에서, 각각의 컴포넌트 유형은, 그것이 포함하는 이름이 붙여진 "서브-컴포넌트" 기술들의 목록과 연관된다. 예를 들어, 음성 인식 컴포넌트가 (오디오) 셉스트럴(cepstral) 특징들을 계산하고, HMM을 이용하여 그것들을 분석한다. 이전에 배치된 컴포넌트 내에 동일한 셉스트럴 서브-컴포넌트를 갖는 기계가 존재하는 경우, 그 기계는 현재의 결정 프로세스에서 선택받을 수 있다. 이 정보는 "기계 배치 비용(Machine Placement Cost)"(1106)을 생성하기 위해서 네트워크 소재지 평가(assessment)와 결합될 수 있고, 최저 비용을 갖는 기계들은 현재의 컴포넌트에 대한 잠재적인 호스트 기계들의 풀을 형성한다. 이 비용들은 다음에 각각의 기계에서의 리소스 이용가능성에 따라 조정될 수 있다.
도 11에서, 컴포넌트의 필요한 계산 및 메모리 리소스들은 그 컴포넌트 유형과 연관된 리소스 요건 루틴(Resource Requirement Routine)(1108)에, 미디어 해상도 및 프레임 레이트와 같은 서비스 파라미터들을 공급함으로써 SLM(1012)에 의해 결정된다. 잠재적인 호스트들에서의 리소스 이용가능성은, 그들에게 리소스 조회들(queries)(1116)을 전송함으로써 그 기계들(1022, 1024 및 1026)에 존재하는 로컬 리소스 관리자들(Local Resource Managers: LRMs)(예를 들어, 1110, 1112 및 1114)의 협의를 통해 SLM(1012)에 의해 결정될 수 있다. 각각의 LRM(예를 들어, 1110, 1112 또는 1114)은 그의 운영 체계에 대한 직접 조회에 의해 그 기계의 상태를 감시할 수 있다는 것을 주목한다. 또한, LRM은 서비스-위치 감독자(SLS)로서 지칭될 수 있다는 것을 주목한다. 또한, LRM들은, 이것들이 현재의 프로세서 부하 통계에 아직 반영되어 있지 않을 때에 기계의 로컬 빌더(예를 들어, 1018)로부터의 (도시되지 않은) 계류중 및 최근에 이행된 요구들을 추적할 수 있다. 다음으로, 각각의 LRM(예를 들어, 1110, 1112 또는 1114)은 거기에 배치되어 있지 않은 경우에 컴포넌트에 의한 사용을 위해 예비된 네트워크 포트 번호들과 함께, SLM(1012)으로 기계 리소스 상태를 리턴할 수 있다. SLM(1012)은 기계의 리소스 이용가능성에 반비례하여 모든 기계 배치 비용들(1106)을 증분할 수 있다. 이와 같이, SLM(1012)은 각각의 잠재적인 호스트(예를 들어, 1022, 1024 또는 1026)에 대한 최종적인 기계 배치 비용들(1106)을 계산할 수 있다.
최저 기계 배치 비용을 갖는 기계는 컴포넌트 호스트로서 선택될 수 있다. 이 호스트를 특정하고 컴포넌트 입력 및 출력 URL들을 포함하는 컴포넌트 배치 결정(1014)이 SLM(1012)에 의해 서비스 빌더(1008)에 리턴될 수 있다. SLM(1012)의 최근의 배치 결정들(1104)의 표는 또한 이 정보를 반영하기 위해 갱신될 수 있다.
도 10 및 도 11에서, SLM(1012)은 서비스-가능 기계 부하, 네트워크 부하 및/또는 대역폭, 클라이언트 위치, 기존의 미디어/데이터 서비스 스트림 세션들, 클라이언트 요구들의 총합화(aggregation) 등에 기초하여 컴포넌트들을 어디에 배치할지를 결정할 수 있다는 것을 주목한다. 이러한 방식으로, SLM(1012)은 다수의 미디어/데이터 서비스 스트리밍 세션들을 관리할 수 있다.
예시적인 서비스 구현
다양한 서비스들이 확립될 수 있는 컴포넌트들과 함께, MSA의 프로토타입(prototype)이 구현되어 왔다는 것을 주목한다. MSA의 실시예들의 동작 및 이득을 더 나은 예시하기 위해서, 비디오 미디어에 대해 동작하는 3가지 컴포넌트들에 의해 지원되는 서비스들이 논의된다.
리사이징(Resizing): 비디오의 폭 및/또는 높이를 변경한다. 예를 들어, 고해상도 비디오가 PDA에서의 더 나은 전송 및 표시를 위해 다운-샘플링(down-sampled)될 수 있다.
배경 제거(Background Removal): 사람들과 같은, 화면에서의 동적 또는 "흥미있는(interesting)" 객체들을 추출하고, 벽들 및 가구와 같은, 화면의 다른 변하지 않는 양태들을 삭제한다. 배경 제거 컴포넌트의 일 실시예는 [18]의 기술에 기초할 수 있다. 이 실시예는 전경(foreground)을 변하지 않은 상태로 두면서, 화면의 배경을 (흰색과 같은) 일정한 색상으로 대체하는 것을 시도한다.
합성(Compositing): 로컬 텔레비전(TV) 일기 예보관들에 의해 이용되는 "블루 스크리닝" 기술에서와 같이, 비디오 스트림의 픽셀들을 다른 이미지 또는 비디오 스트림으로부터의 픽셀들로 대체한다. 합성 컴포넌트는 다른 픽셀들을 변하지 않은 상태로 두면서, (흰색과 같은) 특수한 색상을 갖는 비디오 스트림 픽셀들을 다른 이미지 또는 스트림으로부터의 픽셀들로 대체할 수 있다.
다수의 유용한 서비스들이 이 3가지 컴포넌트들로부터 구성될 수 있다.
PDA들 및 모바일 전화기들과 같은, 모바일 클라이언트들에 적절한 보다 낮은 해상도로의 비디오의 트랜스코딩은 현대의 CDN 설계 [19, 20]를 위해 바람직하며, 리사이징 컴포넌트를 통해 달성될 수 있다.
장기간에 걸친 화면 출현(appearance)의 명확한 모델링을 행함으로써, 배경 제거 컴포넌트가 화면의 흥미있는 객체들을 분할할 수 있으므로, 그것들을 인코딩하기 위해서 더 많은 비트가 이용될 수 있다. 정적 카메라의 경우, 배경은 단지 비디오의 시작 근처에서 한번 전송되고, 배경이 실질적으로 변할 때마다 다시 전송될 필요가 있다. 이것은, 움직이는 전경 객체들에 의해 노출될 때마다 "새로운" 뭔가로서 배경을 재전송하는, 표준 압축을 통해 실질적인 이득을 달성할 수 있다. 따라서, 이 배경 제거 컴포넌트는, 선택적으로 리사이징과 결합하여, 사용자들에 의해 요구되는 매우 낮은 타겟 레벨로의 비트 레이트 감소를 제공하는데 이용될 수 있다.
논의는 본 명세서에서 상기 3가지 컴포넌트들을 모두 이용하는 "MPVP(Mobile Private Video Phone)"에 중점을 둔다. MPVP는 합성을 이용하여 그들의 배경을 그들의 선택의 이미지 또는 비디오로 대체함으로써, 다른 사람들이 그들의 주위의 상세를 보지 못하게 하기 위해서 비디오 원격회의를 허용한다는 것을 주목한다. 예를 들어, 해변으로부터 호출하는 사람은 사무실의 배경 이미지를 사용하는 것을 선호할 수 있다. 모바일 장치들에서 비디오를 수신하는 사용자들의 경우, (리사이징을 통한) 다운-샘플링이 또한 비트 레이트 감소를 위해 이용될 수 있다.
MPVP 서비스는 원격 참가자에게 오디오 채널을 이미 개방한 인터넷 프로토콜(Internet Protocol: IP) 전화 응용 내에서 개시될 수 있고, 이제 비디오를 추가하 기를 희망한다. 이 응용은 목적지 IP 어드레스 및 원하는 비디오 해상도와 같은 파라미터들과 함께, "MPVP" 서비스를 위한 요구를, MSA 서비스 포털(예를 들어, 1006)에 전송할 수 있다. 다음으로, 포털(1006)은 도 12a에 도시된 것과 같은, 서비스에 대한 추상 그래프를 알고 있는, MPVP 서비스 빌더(예를 들어, 1008)를 개시할 수 있다. 도 12(a)는 본 발명의 실시예들에 따른 서비스의 컴포넌트들의 예시적인 추상 그래프(1200)임을 주목한다. 구체적으로, 추상 그래프(1200)는 리사이징 컴포넌트(1204)로 전송되는 비디오 소스(1202)로부터의 비디오로 이루어지며, 리사이징 컴포넌트(1204)는 그 출력을 배경 제거(1206)로 전송하고, 배경 제거(1206)는 그 출력을 합성(1208)으로 공급하며, 최종적으로 비디오를 비디오 목적지(1210)로 전달한다.
서비스 빌더(예를 들어, 1008)는, 추상 그래프(1200)에서 나타나는 순서로, 3가지 컴포넌트들의 각각에 대해 컴포넌트 배치 요구들(예를 들어, 1010)을 SLM(예를 들어, 1012)에 전송할 수 있다. 예시를 위해, 도 12(b) 내지 도 12(d)에서는, 네트워크(1212)가 도 10 및 도 11의 SLM(1012)이 컴포넌트들을 배치할 수 있는 서비스-가능 기계들(1022, 1024 및 1026)을 포함하는 것이 주어진다. 또한, SLM(1012)은 2 이상의 컴포넌트들이 동일한 기계(예를 들어, 1026)에 배치되어 있는 경우에 계산이 얼마나 감소될 수 있는지를 알 수 있다. SLM(1012)은 컴포넌트들을 어떻게 분배할지에 관한 결정에 도달하기 위해서, 잠재적인 계산 보존, 각각의 기계에서의 현재의 계산 부하 레벨, 각각의 컴포넌트의 프로세싱 요건들, 및 네트워크 토폴로지 및 부하 레벨들을 고려할 수 있다. 네트워크(1212)에서의 컴포넌 트들의 3가지 예시적인 분배들이 도 12(b) 내지 도 12(d)에 도시되어 있다.
도 12(b) 내지 도 12(d)에서, 비디오 소스(1214) 및 목적지(1216)와 함께 서버들(1022, 1024 및 1026)이 그들의 상대적인 네트워크 거리를 반영하도록 정렬된다. 이미지들은 각각의 링크에서 흐르는 (가능하게는 처리된) 비디오를 나타낸다는 것을 주목한다. 컴포넌트들의 프로세싱을 갖지 않는 기계들은 미디어를 간단하게 발송한다.
도 12(b)의 제1 분배는 SLM에 의해 촉진되지 않는데, 그 이유는 긴 데이터 경로가 서비스에 대해 높은 지연시간을 야기하기 때문이다. 이러한 분배는 네트워크 토폴로지 및 배치 이력을 고려하지 않는, 임의 선택과 같은, 더욱 간단한 배치 기술들에 의해 선택된다. 구체적으로, 비디오 소스(1214)는 비디오를 서비스-가능 기계(1026)에 전송하고, 서비스-가능 기계(1026)는 그 출력을 리사이징(1204) 및 배경 제거(1206)를 위해 서비스-가능 기계(1022)에 전송하고, 그 다음에 서비스-가능 기계(1022)는 그 출력을 합성(1208)을 위해 서비스-가능 기계(1024)로 제공하고, 최종적으로 서비스-가능 기계(1024)는 비디오를 그의 목적지인 PDA(1216)에 전달한다.
도 12(c)의 제2 구성은 서비스-가능 기계(1026)에 모든 컴포넌트들(1204-1208)을 배치한다. 구체적으로, 비디오 소스(1214)는 비디오를 서비스-가능 기계(1024)에 전송하고, 서비스-가능 기계(1024)는 그 출력을 리사이징(1204), 배경 제거(1206) 및 합성(1208)을 위해 서비스-가능 기계(1026)에 전송하고, 그 다음에 서비스-가능 기계(1026)는 그 출력을 서비스-가능 기계(1022)로 제공하고, 최종적으 로 서비스-가능 기계(1022)는 비디오를 그의 목적지인 PDA(1216)에 전달한다. 서비스-가능 기계(1026)에 모든 컴포넌트들(1204-1208)을 배치하는 것에 의해서, 여분의 서브-컴포넌트 프로세싱의 제거를 통해서 뿐만이 아니라, 컴포넌트들(1204-1208)이 별개의 기계들에 존재하였다면 수행되었을 귀들(1030, 1032, 1218 및 1220)에 의해 수행되는, 여분의 비디오 비-압축 및 압축 단계들을 제거함으로써 계산 보존이 되게 된다. 도 12(c)의 구성은 이에 따라 서비스 네트워크(1212)에 도입되는 전체 계산 부하를 현저하게 감소시키고, 많은 서비스가 진행중일 때와 같이, 시스템 부하 레벨이 높을 때에 선호될 수 있다.
그러나, 하나의 기계에 모든 컴포넌트들을 배치하는 것의 단점은, 그들의 결합된 프로세싱은 비디오 소스(1214)로 시작하는 스트리밍 비디오의 프레임 레이트로 덜 유지할 것 같다는 점이다. 예를 들어, 동일한 기계(예를 들어, 1026)에서 30 frames/sec로 리사이징(1204), 배경 제거(1206) 및 합성(1208)을 모두 행하는 것이 어려울 수 있으므로, 일부 프레임들은 드롭되어야 할 수 있고, 결과적인 비디오 품질은 감소한다.
한편, 도 12(d)에 도시된 바와 같이, 컴포넌트들(1204-1208)을 3개의 서로 다른 기계들에 걸쳐서 퍼지게 함으로써, 모든 3개의 컴포넌트들(1204-1208)은, 특히, 비교적 이 기계들(1022-1026)이 부하가 적었기 때문에 이 기계들(1022-1026)이 선택되었다면, 프레임들을 드롭하지 않고, 30 frames/sec로 평탄하게 실행하는 것이 더 쉽다. 구체적으로, 비디오 소스(1214)는 비디오를 리사이징(1204)을 위해 서비스-가능 기계(1024)에 전송하고, 서비스-가능 기계(1024)는 그 출력을 배경 제 거(1206)를 위해 서비스-가능 기계(1026)에 전송하고, 서비스-가능 기계(1026)는 그 출력을 합성(1208)을 위해 서비스-가능 기계(1022)로 전송하고, 최종적으로 서비스-가능 기계(1022)는 비디오를 그의 목적지인 PDA(1216)에 전달한다.
SLM(예를 들어, 1012)에 의해 이루어진 배치 결정들은, 기계에 의해 그것들을 그룹화하고 구성 요구들(예를 들어, 1016)을 그들의 기계들에 존재하는 로컬 빌더들(예를 들어, 1018)에 전송하는, 서비스 빌더(예를 들어, 1008)에 리턴된다. 로컬 빌더들은 요구된 컴포넌트들(예를 들어, 1204, 1206 및/또는 1208)을 개시하고, 그들에게 구성 요구들에 특정된 URL들에 따라 데이터를 전송하고 수신하도록 지시한다. 모든 로컬 빌더들이 서비스 빌더에 그들의 컴포넌트들이 준비가 되어 있음을 통지하였을 때, 서비스를 통한 미디어 흐름은 RTSP "PLAY" 커맨드를 통해 개시될 수 있다. 도 12b 내지 도 12d에서 기계들 사이의 링크들에 도시된 이미지들은, 다양한 서비스 토폴로지를 통해서 흐를 때와 같이 실제 비디오 스트림에 대하여 행해지는 프로세싱의 예들을 나타낸다는 것을 주목한다.
도 12(a) 내지 도 12(d)의 이들 서비스 예들은 MSA의 일부 양태들을 예시한다. 이러한 접근법은 컴포넌트 프로세싱의 추가적인 유형들뿐만 아니라, 각각 그 자신의 브랜치(branch)를 따라서 상이한, 추가 프로세싱을 요구할 수 있는 다수의 사용자 장치들로의 처리된 스트림들의 균형화를 통합하도록 확장될 수 있다는 것을 이해한다. 또한, 이 예는 비디오 입력으로부터 비디오 출력을 생성하지만, 많은 다른 서비스 컴포넌트들은 (예를 들어, 음성 인식으로부터의) 텍스트 또는 (예를 들어, 비전-기반 사람 추적 및 활동 분석(vision-based person tracking and activity analysis)으로부터의) 이벤트 요약 및 시간 지수들과 같은 비-미디어 데이터 스트림들을 생성하기 위해서 비디오 및 오디오 분석을 이용할 수 있다. 또한, SLM(예를 들어, 1012)은 서버들의 계산 부하, 네트워크 토폴로지 및 부하 레벨, 및 동일한 서비스-가능 기계에서의 컴포넌트들의 조인트 배치를 통해서 얻어질 수 있는 프로세싱 감소의 양에 따라, 다수의 방식 중 임의의 것으로 컴포넌트들을 분배하는 것을 결정할 수 있다.
비디오 및 오디오 분석 및 프로세싱에 있어 많은 앞선 기술들은 이제 폭넓게 이용되는 응용들로 나아가야 한다는 것을 주목한다. 이것은, 부분적으로, 그것들이 종종 필요로 하는 상당한 프로세싱 리소스들을 획득함에 있어서, 그리고 이들 응용들을 흥미있는 미디어 소스들 및 바람직한 출력 위치들에 접속함에 있어서, 복잡한 미디어 프로세싱 응용들을 구성하는 것에 대한 어려움으로 인한 것일 수 있다. 네트워크 자체에 존속하는 유연성 있는 미디어 프로세싱을 가능하게 함으로써, 미디어 서비스 아키텍처의 실시예는 앞선, 미디어-리치(media-rich) 응용들을 주류의, 광범위한 이용으로 가져갈 가능성을 갖는다. 이 아키텍처의 실시예들은 최종 사용자들에 대한 유지, 호환성 및 이용가능성 문제들을 감소시키면서, 부족한 네트워크 리소스들의 효율적인 할당을 촉진하고, 용이한 재구성 및 재이용을 위해 서비스들의 모듈화를 허용하고, 미디어 CDN들과 용이하게 통합한다.
MSA 내에서의 상호-기계 및/또는 상호-노드 통신은 본 발명의 실시예들에 따라 매우 다양한 방식으로 구현될 수 있다는 것을 주목한다. 이러한 통신은 SLM과 통신하는 서비스 빌더, 하나 이상의 로컬 빌더들과 통신하는 서비스 빌더, SLM과 통신하는 LRM, 및 로컬 빌더와 통신하는 LRM을 포함할 수 있으며, 이것으로 한정되지 않는다. LRM과 로컬 빌더 사이의 통신은 상호-기계가 아닐 수 있지만, 대신, 운영 체계, 로컬 파일 등(이것으로 한정되지 않음)을 이용하는 기계 또는 노드 내에서의 통신일 수도 있다는 것을 주목한다.
도 13은 미디어 스트림 서비스라고도 지칭될 수 있는 스트리밍 미디어 서비스를 관리하기 위한 본 발명의 실시예에 따라 수행되는 동작들의 흐름도(1300)이다. 흐름도(1300)는, 일부 실시예들에서, 컴퓨터 판독가능 및 컴퓨터 실행가능 명령들의 제어하에서 프로세서(들) 및 전기적 컴포넌트들에 의해 수행되는 본 발명의 프로세스들을 포함한다. 컴퓨터 판독가능 및 컴퓨터 실행가능 명령들은 예를 들어, 컴퓨터 이용가능한 휘발성 메모리, 컴퓨터 이용가능한 비휘발성 메모리 및/또는 컴퓨터 이용가능한 대용량 데이터 저장장치와 같은 데이터 저장 특징들에 존재할 수 있다. 그러나, 컴퓨터 판독가능 및 컴퓨터 실행가능 명령들은 임의의 유형의 컴퓨터 판독가능한 매체에 존재할 수 있다. 특정 동작들이 흐름도(1300)에 개시되어 있지만, 이러한 동작들은 예시적인 것이다. 즉, 본 실시예는 다양한 다른 동작들 또는 도 13에 개시된 동작들의 변형들을 수행하는 것으로 잘 적응된다. 본 실시예에서, 흐름도(1300)의 동작들은 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어의 임의의 조합에 의해 수행될 수 있다는 것을 주목한다.
동작(1302)에서, 클라이언트로부터 스트리밍 미디어 서비스를 위한 요구가 수신된다. 스트리밍 미디어 서비스는 다수의 컴포넌트 미디어 서비스를 포함한다.
동작(1304)에서, 다수의 컴포넌트 미디어 서비스 중에서 네트워크의 다수의 서비스 노드 중의 서비스 노드에 할당할 컴포넌트 미디어 서비스에 대하여 결정이 이루어진다.
동작(1306)에서, 다수의 컴포넌트 미디어 서비스 중의 컴포넌트 미디어 서비스를 수행하도록 할당된 각각의 서비스 노드는, 스트리밍 미디어 서비스가 스트리밍 미디어에 대해 수행될 수 있다는 것을 통지받는다.
동작(1308)에서, 각각의 할당된 서비스 노드에 대하여 입력 통신 소켓 및 출력 통신 소켓을 생성하여, 할당된 서비스 노드들 사이의 통신을 가능하게 한다.
MSA 내에서의 다수의 스트림 핸들링
비디오 합성과 같은 응용들은 미디어 서비스 아키텍처(media services architecture: MSA)에 의해 가능하게 되는, 네트워크 기반의 미디어 서비스들일 수 있다. 비디오 합성의 경우, 다수의 비디오 스트림들은 새로운 비디오 스트림들을 생성하기 위해서 함께 처리되어야 한다. 이 응용은 PIP(picture-in-picture) 효과들을 제공하는데 이용될 수 있다.
도 14는 본 발명의 실시예에 따라 MSA 내에서 처리되는 다수의 미디어 스트림의 블록도이다. MSA는 서로 다른 입력 스트림들(예를 들어, 1408 및 1410)으로부터 콘텐츠를 획득할 수 있는 청취하는 귀들(예를 들어, 1412 및 1414)을 설정함으로써 이러한 서비스 종류를 지원할 수 있다. 미디어 스트리밍 소스들(예를 들어, 1402 및 1404)은, (예를 들어) 2개의 비디오 서비스들 사이의 중간의 네트워크 지점(예를 들어, 서비스 노드(1406))에 합성 서비스를 배치할 수 있는, 서비스 위 치 관리자(도시되지 않음)에 의해 특정된다. 그 다음, 합성 서비스(1416)는 2개의 스트림(예를 들어, 1408a 및 1410)을 서로 동기화시키고, 스트림(1408)으로부터의 트랜스코딩된 비디오(1408a)를 다른 스트림에 오버레이함으로써 "PIP" 동작을 수행할 수 있고, 그 다음에 출력 귀(1418)를 통해 결과적인 비디오(1420)를 스트리밍 아웃한다. 본 실시예는 다수의 스트림이 이 경우 비디오 합성(예를 들어, 1416)에서 미디어 서비스의 입력 측에서 어떻게 관리될 수 있는지를 보여준다.
도 15는 본 발명의 다른 실시예에 따라 MSA 내에서 처리되는 다수의 미디어 스트림의 블록도이다. 구체적으로, 둘다 도시되어 있지 않지만, 로컬 빌더(또는 SLM)는 새로이 생성된 서비스 세션으로의 입력으로서 기존의 서비스 세션의 출력을 "탭핑(tapping)"함으로써 네트워크를 통해 흐를 때 스트리밍 미디어를 최적화할 수 있다.
도 15의 컴포넌트들은 전술한 도 14의 컴포넌트들과 유사한 방식으로 동작한다는 것을 주목한다. 그러나, 도 15에서, 서비스가 진행중이고, 다른 클라이언트(도시되지 않음)가 비디오(1408)의 트랜스코딩된 버전을 요구하는 경우, SLM은 새로운 클라이언트에 이용가능한 비디오(1408)의 트랜스코딩된 버전을 형성하기 위해서 (SOAP/XML을 통해) 합성 서비스(1416)에 메시지를 전송할 수 있다.
다수의 미디어 스트림들은 본 발명의 실시예들에 따라 매우 다양한 방식으로 처리될 수 있다는 것을 주목한다. 예를 들어, 비디오 스트림은 서비스 가능 기계에 의해 수신될 수 있고, 서비스 가능 기계는 수신한 비디오 스트림을 트랜스코딩하고 나서, 트랜스코딩된 비디오를 다수의 클라이언트들로 출력한다. 또한, 비디 오 스트림이 제1 노드로 들어오고, 배경 제거가 수행된다. 제1 노드는 합성 서비스를 구동하고 있는 제2 노드에 전경을 전송한다. 그 제2 노드는 또한 일부 다른 소스로부터 들어오는 제2 비디오 스트림을 갖는다. 제2 노드는 제2 비디오 스트림과 수신된 전경 비디오의 합성 비디오 스트림을 제5 노드에 출력한다. 또한, 제1 비디오 스트림의 일부 다른 부분은, 그 노드에서 구동하는 한 쌍의 컴포넌트가 존재하는, 어떤 행동하는 사람 식별자(identification)일 수 있는 제3 노드로 설정되어 있다. 제3 노드는 그 사람의 아래에 이름과 함께 해변가에서의 사람의 출력을 생성하기 위해 입력들을 조합하는 서비스를 구동하는 제5 노드에 출력되는 일부 텍스트 생성을 구동하는 제4 노드에 의해 수신되는 일부 인덱스를 생성한다. 또한, 오디오 스트림이 제4 노드에 유입될 수 있고, 유입된 스트림은 제5 노드로 출력된다.
도 16은 본 발명의 실시예에 따라 수행되는 동작들의 흐름도(1600)이다. 흐름도(1600)는, 일부 실시예들에서, 컴퓨터 판독가능 및 컴퓨터 실행가능 명령들의 제어하에서 프로세서(들) 및 전기적 컴포넌트들에 의해 수행되는 본 발명의 프로세스들을 포함한다. 컴퓨터 판독가능 및 컴퓨터 실행가능 명령들은 예를 들어, 컴퓨터 이용가능한 휘발성 메모리, 컴퓨터 이용가능한 비휘발성 메모리 및/또는 컴퓨터 이용가능한 대용량 데이터 저장장치와 같은 데이터 저장 특징들에 존재할 수 있다. 그러나, 컴퓨터 판독가능 및 컴퓨터 실행가능 명령들은 임의의 유형의 컴퓨터 판독가능한 매체에 존재할 수 있다. 특정 동작들이 흐름도(1600)에 개시되어 있지만, 이러한 동작들은 예시적인 것이다. 즉, 본 실시예는 다양한 다른 동작들 또는 도 16에 개시된 동작들의 변형들을 수행하는 것으로 잘 적응된다. 본 실시예에서, 흐름도(1600)의 동작들은 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어의 임의의 조합에 의해 수행될 수 있다는 것을 주목한다.
동작(1602)에서, 클라이언트로부터 서비스 요구들 및 파라미터들을 청취하고 수신한다.
동작(1604)에서, 요구된 서비스를 어떻게 구현할지에 대한 설명을 수신한다.
동작(1606)에서, 서비스의 구현을 실행할 네트워크 컴퓨터들을 선택하고, 원하는 네트워크 접속들을 어떻게 행할지를 결정한다.
동작(1608)에서, 선택된 네트워크 컴퓨터들에 대한 프로세싱을 행할 준비를 한다.
동작(1610)에서, 네트워크를 통하여, 그리고 선택된 컴퓨터들에 대한 프로세싱을 통하여 미디어의 흐름을 시작한다. 데이터 결과들은 서비스 요구에 특정된 목적지들로 라우팅된다는 것을 주목한다.
도 17은 본 발명의 실시예에 따라 수행되는 동작들의 흐름도(1700)이다. 흐름도(1700)는, 일부 실시예들에서, 컴퓨터 판독가능 및 컴퓨터 실행가능 명령들의 제어하에서 프로세서(들) 및 전기적 컴포넌트들에 의해 수행되는 본 발명의 프로세스들을 포함한다. 컴퓨터 판독가능 및 컴퓨터 실행가능 명령들은 예를 들어, 컴퓨터 이용가능한 휘발성 메모리, 컴퓨터 이용가능한 비휘발성 메모리 및/또는 컴퓨터 이용가능한 대용량 데이터 저장장치와 같은 데이터 저장 특징들에 존재할 수 있다. 그러나, 컴퓨터 판독가능 및 컴퓨터 실행가능 명령들은 임의의 유형의 컴퓨터 판독 가능한 매체에 존재할 수 있다. 특정 동작들이 흐름도(1700)에 개시되어 있지만, 이러한 동작들은 예시적인 것이다. 즉, 본 실시예는 다양한 다른 동작들 또는 도 17에 개시된 동작들의 변형들을 수행하는 것으로 잘 적응된다. 본 실시예에서, 흐름도(1700)의 동작들은 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어의 임의의 조합에 의해 수행될 수 있다는 것을 주목한다.
동작(1602)에서, 클라이언트로부터 서비스 요구들 및 파라미터들을 청취하고 수신한다.
동작(1702)에서, 서비스를 구현하는 컴포넌트들의 추상 그래프와, 각각의 컴포넌트의 리소스 요건들을 수신한다.
동작(1704)에서, 각각의 서비스 컴포넌트를 실행할 네트워크 컴퓨터를 선택한다.
동작(1706)에서, 선택된 기계들에서의 컴포넌트들의 구성을 요구하고, 그들의 상호접속들을 준비한다.
동작(1708)에서, 네트워크의 전체에 걸쳐서 분배된 프로세싱 컴포넌트들을 통하여 미디어의 흐름을 시작한다. 데이터 결과들은 서비스 요구에 특정된 목적지들로 라우팅된다는 것을 주목한다.
귀(Ear)는 매우 다양한 방식으로 구현될 수 있다는 것을 주목한다. 예를 들어, 입력 귀는 RTP/RTSP를 이용하여 수신할 수 있고, 또한 에러-복구형 디코더 플러그-인(Error-resilient decoder plug-ins), 스마트 버퍼링(Smart buffering), 흐름 관리, 및 최소 데이터 복사(Minimal data copying)를 포함한다. 또한, 출력 귀 는 RTP/RTSP를 이용하여 전송할 수 있고, 가변 프레임-레이트 인코더 플러그-인(Variable frame-rate encoder plug-ins), 스마트 버퍼링, 및 흐름 관리를 포함한다. 또한, 입력 귀 또는 출력 귀는 압축 또는 비-압축의 기능을 포함할 수 있다. 각각의 귀는 단일 미디어 스트림에 대한 흐름의 한쪽 단(전송 또는 수신)을 관리한다. 표준-기반 미디어 스트리밍(RTP/RTCP/RTSP)이 이용될 수 있다. 또한, 귀들은 인코더 및 디코더 플러그-인(예를 들어, MPEG-1, MPEG-2, MPEG-4, AMR, WAV)을 이용하여, 미디어 전달에 적절한 압축된 포맷과 미디어 프로세싱에 종종 이용되는 압축되지 않은 포맷 사이를 변환한다. 또한, 버퍼링, 흐름 제어, 및 프레임-드롭핑 정책들은 전달과 프로세싱 사이에서 데이터 레이트 불일치를 평탄하게 하기 위해서 귀들에 의해 구현될 수 있다.
본 명세서에 설명된 다른 실시예들과 함께, 도 10, 도 11, 도 12(a) 내지 도 12(d)는, 일부 실시예들에서, 컴퓨터 판독가능 및 컴퓨터 실행가능 명령들의 제어하에서 프로세서(들) 및 전기적 컴포넌트들에 의해 수행되는 본 발명의 프로세스들을 포함한다. 컴퓨터 판독가능 및 컴퓨터 실행가능 명령들은 예를 들어, 컴퓨터 이용가능한 휘발성 메모리, 컴퓨터 이용가능한 비휘발성 메모리 및/또는 컴퓨터 이용가능한 대용량 데이터 저장장치와 같은 데이터 저장 특징들에 존재할 수 있다. 그러나, 컴퓨터 판독가능 및 컴퓨터 실행가능 명령들은 임의의 유형의 컴퓨터 판독가능한 매체에 존재할 수 있다. 특정 동작들이 본 명세서에 개시되어 있지만, 이러한 동작들은 예시적인 것이다. 즉, 이 실시예들은 다양한 다른 동작들 또는 본 명세서에 개시된 동작들의 변형들을 수행하는 것으로 잘 적응된다. 본 명세서에 개시된 동작들은 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어의 임의의 조합에 의해 수행될 수 있다는 것을 주목한다.
본 발명의 특정 실시예들의 전술한 설명은 예시 및 설명의 목적으로 제시되었다. 이들 특정 실시예들은 속속들이 규명해 내고자 하거나, 또는 본 발명을 개시된 정확한 형태들로 한정하고자 하는 것이 아니며, 전술한 교시에 비추어 볼 때 많은 수정들 및 변형들이 가능하다는 것이 명백하다. 이 실시예들은, 본 발명의 원리들 및 그의 실용적인 응용을 최상으로 설명하고, 이 기술분야의 당업자들이, 고려되는 특정 사용으로 적응되는 바와 같이 다양한 수정들을 갖는 본 발명 및 다양한 실시예들을 최상으로 이용할 수 있게 하기 위해서, 선택되어 설명되었다. 본 발명의 범위는 본 명세서에 첨부된 특허청구범위 및 그 등가물에 의해 정의되는 것으로 의도된다.

Claims (10)

  1. 스트리밍 미디어 서비스 관리 방법(1300)으로서,
    다수의 미디어 서비스 컴포넌트(1020)를 포함하는 스트리밍 미디어 서비스에 대한 요구(1004)를 클라이언트(1002)로부터 수신하는 단계(1302)와,
    상기 다수의 미디어 서비스 컴포넌트 중에서, 네트워크(1212)의 다수의 서비스 노드 중의 한 서비스 노드(1022)에 할당할 미디어 서비스 컴포넌트를 결정하는 단계(1304)와,
    상기 다수의 미디어 서비스 컴포넌트 중 한 미디어 서비스 컴포넌트를 수행하도록 할당된 각각의 서비스 노드를 통지하여, 상기 스트리밍 미디어 서비스가 스트리밍 미디어(1032) 상에서 실행될 수 있게 하는 단계(1306)와,
    각각의 할당된 서비스 노드마다 입력 통신 소켓(1218) 및 출력 통신 소켓(1220)을 생성하여, 상기 할당된 서비스 노드들 사이의 통신을 가능하게 하는 단계(1308)를 포함하는
    스트리밍 미디어 서비스 관리 방법.
  2. 제 1 항에 있어서,
    상기 스트리밍 미디어는 비디오, 오디오, 멀티미디어 및 텍스트로부터 선택되는
    스트리밍 미디어 서비스 관리 방법.
  3. 제 1 항에 있어서,
    상기 결정 단계는 상기 클라이언트의 위치에 기초하는
    스트리밍 미디어 서비스 관리 방법.
  4. 제 1 항에 있어서,
    상기 결정 단계는 상기 네트워크의 대역폭에 기초하는
    스트리밍 미디어 서비스 관리 방법.
  5. 제 1 항에 있어서,
    상기 결정 단계는 상기 네트워크 상의 부하에 기초하는
    스트리밍 미디어 서비스 관리 방법.
  6. 제 1 항에 있어서,
    상기 결정 단계는 상기 다수의 서비스 노드의 각 서비스 노드에서의 부하에 기초하는
    스트리밍 미디어 서비스 관리 방법.
  7. 제 1 항에 있어서,
    상기 결정 단계는 상기 네트워크 상의 기존 스트리밍 미디어 서비스에 기초하는
    스트리밍 미디어 서비스 관리 방법.
  8. 제 1 항에 있어서,
    상기 결정 단계는 이전에 할당된 미디어 서비스 컴포넌트에 기초하는
    스트리밍 미디어 서비스 관리 방법.
  9. 제 1 항에 있어서,
    상기 요구 수신 단계는 서비스 포털(service portal)을 통하는
    스트리밍 미디어 서비스 관리 방법.
  10. 삭제
KR1020067000034A 2003-07-04 2004-07-01 스트리밍 미디어 서비스 관리 방법 KR100744900B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/613,905 2003-07-04
US10/613,905 US20050005025A1 (en) 2003-07-04 2003-07-04 Method for managing a streaming media service

Publications (2)

Publication Number Publication Date
KR20060027855A KR20060027855A (ko) 2006-03-28
KR100744900B1 true KR100744900B1 (ko) 2007-08-01

Family

ID=33552795

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067000034A KR100744900B1 (ko) 2003-07-04 2004-07-01 스트리밍 미디어 서비스 관리 방법

Country Status (6)

Country Link
US (1) US20050005025A1 (ko)
EP (1) EP1642443B1 (ko)
JP (1) JP4848275B2 (ko)
KR (1) KR100744900B1 (ko)
CN (1) CN1843013B (ko)
WO (1) WO2005006709A1 (ko)

Families Citing this family (156)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716358B2 (en) 2000-09-12 2010-05-11 Wag Acquisition, Llc Streaming media buffering system
US8595372B2 (en) 2000-09-12 2013-11-26 Wag Acquisition, Llc Streaming media buffering system
US6766376B2 (en) 2000-09-12 2004-07-20 Sn Acquisition, L.L.C Streaming media buffering system
US20060259607A1 (en) * 2001-09-13 2006-11-16 Network Foundation Technologies, Llc System and method for distributing data over a computer network
US7613767B2 (en) * 2003-07-11 2009-11-03 Microsoft Corporation Resolving a distributed topology to stream data
WO2005006606A1 (ja) * 2003-07-14 2005-01-20 Sony Corporation 通信方法
KR100651566B1 (ko) * 2003-08-26 2006-11-28 삼성전자주식회사 이동통신 단말기에서 출력 버퍼링을 이용한 멀티미디어재생 장치 및 그 제어 방법
US7660512B2 (en) * 2003-10-16 2010-02-09 Microsoft Corporation Systems and methods for managing frame rates during multimedia playback
JP4066932B2 (ja) * 2003-11-10 2008-03-26 株式会社日立製作所 予測に基づいた計算機リソース配分方法
GB0328383D0 (en) * 2003-12-06 2004-01-14 Ibm Improved quality of service for network connected clients
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US7900140B2 (en) * 2003-12-08 2011-03-01 Microsoft Corporation Media processing methods, systems and application program interfaces
US7712108B2 (en) * 2003-12-08 2010-05-04 Microsoft Corporation Media processing methods, systems and application program interfaces
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7733962B2 (en) * 2003-12-08 2010-06-08 Microsoft Corporation Reconstructed frame caching
US7735096B2 (en) 2003-12-11 2010-06-08 Microsoft Corporation Destination application program interfaces
TWI238008B (en) * 2003-12-15 2005-08-11 Inst Information Industry Method and system for processing interactive multimedia data
US20050185718A1 (en) * 2004-02-09 2005-08-25 Microsoft Corporation Pipeline quality control
US7934159B1 (en) 2004-02-19 2011-04-26 Microsoft Corporation Media timeline
US7941739B1 (en) 2004-02-19 2011-05-10 Microsoft Corporation Timeline source
US7664882B2 (en) * 2004-02-21 2010-02-16 Microsoft Corporation System and method for accessing multimedia content
US7577940B2 (en) * 2004-03-08 2009-08-18 Microsoft Corporation Managing topology changes in media applications
US7609653B2 (en) * 2004-03-08 2009-10-27 Microsoft Corporation Resolving partial media topologies
US7808900B2 (en) * 2004-04-12 2010-10-05 Samsung Electronics Co., Ltd. Method, apparatus, and medium for providing multimedia service considering terminal capability
US7669206B2 (en) * 2004-04-20 2010-02-23 Microsoft Corporation Dynamic redirection of streaming media between computing devices
US8738693B2 (en) * 2004-07-09 2014-05-27 Qualcomm Incorporated System and method for managing distribution of media files
US20060277318A1 (en) * 2004-07-09 2006-12-07 Luc Julia System and method for extending communications with a device network
US8819140B2 (en) 2004-07-09 2014-08-26 Qualcomm Incorporated System and method for enabling the establishment and use of a personal network
US9077766B2 (en) 2004-07-09 2015-07-07 Qualcomm Incorporated System and method for combining memory resources for use on a personal network
US7937484B2 (en) 2004-07-09 2011-05-03 Orb Networks, Inc. System and method for remotely controlling network resources
US8787164B2 (en) * 2004-07-09 2014-07-22 Qualcomm Incorporated Media delivery system and method for transporting media to desired target devices
US8195744B2 (en) * 2004-07-09 2012-06-05 Orb Networks, Inc. File sharing system for use with a network
US9178948B2 (en) * 2004-07-30 2015-11-03 Qualcomm Incorporated Methods and apparatus for subscribing to multimedia delivery services in a data network
JP2006072715A (ja) * 2004-09-02 2006-03-16 Hitachi Ltd コンテンツ配信システムおよびコンテンツ配信方法
US7590750B2 (en) * 2004-09-10 2009-09-15 Microsoft Corporation Systems and methods for multimedia remoting over terminal server connections
US7587454B2 (en) * 2004-12-08 2009-09-08 Nice Systems Ltd. Video streaming parameter optimization and QoS
US8458125B1 (en) 2005-01-31 2013-06-04 Oracle America, Inc. Dynamic creation of replicas of streaming data from a storage device without added load
JP4706318B2 (ja) * 2005-04-20 2011-06-22 日本電気株式会社 コンテンツ閲覧システム及びそれに用いるコンテンツアップロード方法並びにコンテンツ配信方法
CN1855910B (zh) * 2005-04-27 2010-12-15 国际商业机器公司 基于Web的统一通信系统和方法以及Web通信管理器
US7344084B2 (en) * 2005-09-19 2008-03-18 Sony Corporation Portable video programs
US8191098B2 (en) * 2005-12-22 2012-05-29 Verimatrix, Inc. Multi-source bridge content distribution system and method
CN101026615B (zh) 2006-02-18 2011-09-14 华为技术有限公司 一种基于ims的流媒体网络系统
JP5200204B2 (ja) 2006-03-14 2013-06-05 ディブエックス リミテッド ライアビリティー カンパニー 高信頼性システムを含む連合型デジタル権限管理機構
US8612619B2 (en) * 2006-03-31 2013-12-17 Alcatel Lucent Method and apparatus for improved multicast streaming in wireless networks
US20080016156A1 (en) * 2006-07-13 2008-01-17 Sean Miceli Large Scale Real-Time Presentation of a Network Conference Having a Plurality of Conference Participants
US20080091838A1 (en) * 2006-10-12 2008-04-17 Sean Miceli Multi-level congestion control for large scale video conferences
US8973072B2 (en) * 2006-10-19 2015-03-03 Qualcomm Connected Experiences, Inc. System and method for programmatic link generation with media delivery
KR100917608B1 (ko) * 2006-12-01 2009-09-17 한국전자통신연구원 이동 사용자의 패턴 분석을 통한 네트워크의 데이터 분산시스템 및 방법
US8929360B2 (en) * 2006-12-07 2015-01-06 Cisco Technology, Inc. Systems, methods, media, and means for hiding network topology
US20080244082A1 (en) * 2006-12-15 2008-10-02 Haoming Shen Contents communication method for transmitting contents by using a predetermined communication protocol, and contents transmitting apparatus and contents receiving apparatus using the method
WO2008143493A2 (en) * 2007-05-24 2008-11-27 Jeya Rajendram Alan Rajendram Media stream system and method thereof
US20090094652A1 (en) * 2007-10-03 2009-04-09 Eatlime, Inc. Methods and Apparatus for Simultaneous Uploading and Streaming of Media
EP2053821B1 (en) * 2007-10-22 2013-05-15 Nokia Siemens Networks Oy Method, apparatus and computer program product for service decomposition in IP-broadcast networks
WO2009053899A2 (en) * 2007-10-25 2009-04-30 Nokia Corporation System and method for re-synchronization of a pss session to an mbms session
WO2009065137A1 (en) 2007-11-16 2009-05-22 Divx, Inc. Hierarchical and reduced index structures for multimedia files
US8489731B2 (en) 2007-12-13 2013-07-16 Highwinds Holdings, Inc. Content delivery network with customized tracking of delivery data
CA2709309C (en) 2007-12-13 2018-04-03 Highwinds Holdings, Inc. Content delivery network
US8850498B1 (en) 2008-05-16 2014-09-30 Collideo LLC Media adaptive distribution system and method
US20090313300A1 (en) * 2008-06-17 2009-12-17 International Business Machines Corporation Method, computer program product and system for dynamically determining actions associated to operations on rich media objects
US20100017516A1 (en) * 2008-07-16 2010-01-21 General Instrument Corporation Demand-driven optimization and balancing of transcoding resources
US20100031152A1 (en) * 2008-07-31 2010-02-04 Microsoft Corporation Creation and Navigation of Infinite Canvas Presentation
US8233648B2 (en) * 2008-08-06 2012-07-31 Samsung Electronics Co., Ltd. Ad-hoc adaptive wireless mobile sound system
US8108777B2 (en) 2008-08-11 2012-01-31 Microsoft Corporation Sections of a presentation having user-definable properties
US8458290B2 (en) 2011-02-01 2013-06-04 Limelight Networks, Inc. Multicast mapped look-up on content delivery networks
US7930421B1 (en) * 2008-09-22 2011-04-19 Sprint Communications Company L.P. Automated network source changes for real-time streaming media
US20100121977A1 (en) * 2008-11-10 2010-05-13 Nokia Corporation Predictive Bit-Rate Modification of Content Delivery in a Wireless Network
US8831090B2 (en) 2008-11-18 2014-09-09 Avigilon Corporation Method, system and apparatus for image capture, analysis and transmission
US8578272B2 (en) 2008-12-31 2013-11-05 Apple Inc. Real-time or near real-time streaming
US8156089B2 (en) 2008-12-31 2012-04-10 Apple, Inc. Real-time or near real-time streaming with compressed playlists
WO2010078281A2 (en) * 2008-12-31 2010-07-08 Apple Inc. Real-time or near real-time streaming
US20100169458A1 (en) 2008-12-31 2010-07-01 David Biderman Real-Time or Near Real-Time Streaming
US8260877B2 (en) 2008-12-31 2012-09-04 Apple Inc. Variant streams for real-time or near real-time streaming to provide failover protection
CA2749170C (en) 2009-01-07 2016-06-21 Divx, Inc. Singular, collective and automated creation of a media guide for online content
US20110066703A1 (en) * 2009-05-20 2011-03-17 Creative Ad Technology Proprietary Limited Methods and systems for delivering media to client device
US10127524B2 (en) 2009-05-26 2018-11-13 Microsoft Technology Licensing, Llc Shared collaboration canvas
US20100306018A1 (en) * 2009-05-27 2010-12-02 Microsoft Corporation Meeting State Recall
US20120072604A1 (en) * 2009-05-29 2012-03-22 France Telecom technique for delivering content to a user
CN101938505B (zh) * 2009-07-01 2013-01-30 华为技术有限公司 一种P2P流媒体数据分发的方法、系统和proxy节点
JP5001983B2 (ja) 2009-07-21 2012-08-15 株式会社エヌ・ティ・ティ・ドコモ 通信制御システム、及び通信制御方法
CN101695129B (zh) * 2009-10-09 2012-05-16 中兴通讯股份有限公司 一种支持多种制式的移动终端实现视频监控的方法和系统
EP2507995A4 (en) 2009-12-04 2014-07-09 Sonic Ip Inc SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL
KR101278351B1 (ko) * 2009-12-15 2013-07-05 한국전자통신연구원 Dpi 기능을 이용한 끊김 없는 맞춤형 서비스 제공 시스템 및 방법
US8805963B2 (en) 2010-04-01 2014-08-12 Apple Inc. Real-time or near real-time streaming
GB201105502D0 (en) 2010-04-01 2011-05-18 Apple Inc Real time or near real time streaming
US8560642B2 (en) 2010-04-01 2013-10-15 Apple Inc. Real-time or near real-time streaming
CN102238179B (zh) 2010-04-07 2014-12-10 苹果公司 实时或准实时流传输
TW201138372A (en) * 2010-04-29 2011-11-01 Hon Hai Prec Ind Co Ltd Master server and method for decoding multimedia files using the master server
CN102238143B (zh) * 2010-04-30 2014-01-22 鸿富锦精密工业(深圳)有限公司 主服务器及利用其进行多媒体资料解码的方法
US8510763B2 (en) 2010-06-14 2013-08-13 Microsoft Corporation Changing streaming media quality level based on current device resource usage
FR2963523B1 (fr) * 2010-07-29 2012-09-07 Myriad France Telephone mobile comprenant un serveur de diffusion en flux avec des moyens d'activation du telechargement d'un fichier en vue de sa diffusion
US9241190B2 (en) 2010-08-24 2016-01-19 Cisco Technology, Inc. Generating a response to video content request including dynamically processed video content
KR101371900B1 (ko) * 2010-08-26 2014-03-10 한국전자통신연구원 Qos 보장형 서비스 전달 다중화 방법 및 장치
US8525866B2 (en) * 2010-12-10 2013-09-03 Mitel Networks Corporation Method and system for audio-video communications
US9383888B2 (en) 2010-12-15 2016-07-05 Microsoft Technology Licensing, Llc Optimized joint document review
US9118612B2 (en) 2010-12-15 2015-08-25 Microsoft Technology Licensing, Llc Meeting-specific state indicators
US9864612B2 (en) 2010-12-23 2018-01-09 Microsoft Technology Licensing, Llc Techniques to customize a user interface for different displays
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
US8291083B2 (en) 2011-02-01 2012-10-16 Limelight Networks, Inc. Distributed landing pad and brick topology for content storage in content delivery networks
AU2011203269B2 (en) * 2011-02-01 2012-08-23 Limelight Networks, Inc. Policy management for content storage in content delivery networks
US8478858B2 (en) 2011-02-01 2013-07-02 Limelight Networks, Inc. Policy management for content storage in content delivery networks
US8615577B2 (en) 2011-02-01 2013-12-24 Limelight Networks, Inc. Policy based processing of content objects in a content delivery network using mutators
US8396970B2 (en) 2011-02-01 2013-03-12 Limelight Networks, Inc. Content processing between locations workflow in content delivery networks
US8521813B2 (en) 2011-02-01 2013-08-27 Limelight Networks, Inc. Content replication workflow in content delivery networks
WO2012145709A2 (en) * 2011-04-20 2012-10-26 Aurenta Inc. A method for encoding multiple microphone signals into a source-separable audio signal for network transmission and an apparatus for directed source separation
US8856283B2 (en) 2011-06-03 2014-10-07 Apple Inc. Playlists for real-time or near real-time streaming
US8843586B2 (en) 2011-06-03 2014-09-23 Apple Inc. Playlists for real-time or near real-time streaming
WO2012170904A2 (en) * 2011-06-10 2012-12-13 Bytemobile, Inc. Adaptive bitrate management on progressive download with indexed media files
CN102868664B (zh) * 2011-07-04 2017-07-14 南京中兴新软件有限责任公司 基于服务分发网络的服务系统和服务分发方法
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8806188B2 (en) 2011-08-31 2014-08-12 Sonic Ip, Inc. Systems and methods for performing adaptive bitrate streaming using automatically generated top level index files
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US9076259B2 (en) * 2011-09-14 2015-07-07 Imagine Communications Corp Geospatial multiviewer
US9521439B1 (en) 2011-10-04 2016-12-13 Cisco Technology, Inc. Systems and methods for correlating multiple TCP sessions for a video transfer
US8755342B2 (en) 2011-10-05 2014-06-17 Cisco Technology, Inc. System and method for dynamic bearer selection for immersive video collaboration in mobile wireless networks
US8682973B2 (en) 2011-10-05 2014-03-25 Microsoft Corporation Multi-user and multi-device collaboration
US9544158B2 (en) 2011-10-05 2017-01-10 Microsoft Technology Licensing, Llc Workspace collaboration via a wall-type computing device
US9996241B2 (en) 2011-10-11 2018-06-12 Microsoft Technology Licensing, Llc Interactive visualization of multiple software functionality content items
US10198485B2 (en) 2011-10-13 2019-02-05 Microsoft Technology Licensing, Llc Authoring of data visualizations and maps
US9143722B2 (en) * 2011-11-22 2015-09-22 Cisco Technology, Inc. Method and apparatus for providing session description for a media session
WO2013078598A1 (zh) * 2011-11-28 2013-06-06 华为技术有限公司 一种移动流媒体的实现方法与系统
US8903955B2 (en) 2011-12-02 2014-12-02 Cisco Technology, Inc. Systems and methods for intelligent video delivery and cache management
JP5301688B2 (ja) * 2012-01-06 2013-09-25 ケィティ、コーポレーション マルチメディアコンテンツ提供方法及びシステム
KR102004311B1 (ko) * 2012-04-20 2019-07-26 에스케이텔레콤 주식회사 핸드오버 검출 방법, 이를 위한 캐시 장치 및 캐시 제어 장치
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US20150261930A1 (en) * 2013-04-02 2015-09-17 Fernando Pablo Jose Espinosa Escalona Telemedicine system for remote consultation, diagnosis and medical treatment services
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
JP2014236465A (ja) * 2013-06-05 2014-12-15 日本電信電話株式会社 データストリーミング方法、データストリーミングシステム及び構成情報最適配置装置
US10225319B2 (en) 2013-09-30 2019-03-05 Telefonaktiebolaget Lm Ericsson (Publ) System and method of a link surfed http live streaming broadcasting system
US9515901B2 (en) 2013-10-18 2016-12-06 AppDynamics, Inc. Automatic asynchronous handoff identification
JP6426901B2 (ja) * 2014-03-14 2018-11-21 富士通クライアントコンピューティング株式会社 配信方法、再生装置、配信装置、転送制御プログラムおよび配信制御プログラム
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US9560143B2 (en) * 2014-06-27 2017-01-31 Intel Corporation System and method for automatic session data transfer between computing devices based on zone transition detection
CN113259731B (zh) 2015-01-06 2023-07-04 帝威视有限公司 用于编码内容和在设备之间共享内容的系统和方法
CN106161284B (zh) * 2015-04-10 2018-03-02 深圳市云帆加速科技有限公司 一种资源调度方法及系统
US10812612B2 (en) * 2015-09-09 2020-10-20 Fastly, Inc. Execution of per-user functions at cache nodes
US10027733B2 (en) 2015-09-11 2018-07-17 YipTV, Inc. Method and apparatus for viewing and filtering media content
US10742754B2 (en) 2015-09-29 2020-08-11 Fastly, Inc. Persistent edge state of end user devices at cache nodes
EP3188015A1 (en) * 2015-10-05 2017-07-05 Axis AB Requesting and receiving a media stream within a networked system
US10370118B1 (en) 2015-10-31 2019-08-06 Simon Saito Nielsen Lighting apparatus for remote controlled device
US10387367B2 (en) 2016-05-26 2019-08-20 Red Hat, Inc. Distributed file system with integrated file object conversion
US11064453B2 (en) * 2016-11-18 2021-07-13 Nokia Technologies Oy Position stream session negotiation for spatial audio applications
WO2018109916A1 (ja) * 2016-12-15 2018-06-21 富士通株式会社 無線通信システム、無線接続管理装置、サーバ管理装置、及びエッジサーバ切替方法
CN106991162B (zh) * 2017-03-22 2020-07-28 未来电视有限公司 一种网页上的节省网络资源的动画效果的实现方法
US11343322B2 (en) * 2017-12-18 2022-05-24 Telefonaktiebolaget Lm Ericsson (Publ) Virtual edge node as a service
CA3091833C (en) * 2018-02-26 2023-12-19 Colin York Smith Systems and methods for broadcasting digital data to a plurality of receivers
US10991379B2 (en) * 2018-06-22 2021-04-27 Babblelabs Llc Data driven audio enhancement
US11049509B2 (en) 2019-03-06 2021-06-29 Plantronics, Inc. Voice signal enhancement for head-worn audio devices
CN109859756B (zh) * 2019-03-15 2021-10-01 北京金山云网络技术有限公司 设备控制方法、系统、装置、边缘计算设备和存储介质
US11012721B2 (en) * 2019-03-15 2021-05-18 Tencent America LLC Method and apparatus for envelope descriptor in moving picture experts group network based media processing
US11356534B2 (en) * 2019-04-23 2022-06-07 Tencent America LLC Function repository selection mode and signaling for cloud based processing
CN111831842A (zh) 2019-04-23 2020-10-27 腾讯美国有限责任公司 Nbmp中处理媒体内容的方法、装置和存储介质
US11297121B2 (en) * 2020-04-07 2022-04-05 Tencent America LLC Split rendering using network based media processing workflow
US11910044B1 (en) 2022-06-30 2024-02-20 Amazon Technologies, Inc. Systems and methods for switching the processing of a live content stream to another datacenter

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030056701A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 P2p 방식을 이용한 멀티미디어 스트리밍 장치 및 방법
KR20040110403A (ko) * 2003-06-19 2004-12-31 주식회사 케이티 멀티미디어 데이터 스트리밍 전송 모드의 계층적 변환방법 및 이 방법을 사용한 멀티미디어 데이터 스트리밍전송 서비스 장치
KR20050047920A (ko) * 2003-11-18 2005-05-23 삼성전자주식회사 적응적 스트리밍 장치 및 방법
KR20050053084A (ko) * 2003-12-02 2005-06-08 한국전자통신연구원 Ims 망에서의 이동 스트리밍 서비스 제공 시스템 및 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5756280A (en) * 1995-10-03 1998-05-26 International Business Machines Corporation Multimedia distribution network including video switch
US6345303B1 (en) * 1997-03-25 2002-02-05 Intel Corporation Network proxy capable of dynamically selecting a destination device for servicing a client request
US6473406B1 (en) * 1997-07-31 2002-10-29 Cisco Technology, Inc. Method and apparatus for transparently proxying a connection
US7010492B1 (en) * 1999-09-30 2006-03-07 International Business Machines Corporation Method and apparatus for dynamic distribution of controlled and additional selective overlays in a streaming media
TW532040B (en) * 2000-10-20 2003-05-11 Koninkl Philips Electronics Nv Method and system for transferring a communication session
US6407680B1 (en) * 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
US7908378B2 (en) * 2002-04-26 2011-03-15 Nokia, Inc. Provisioning seamless applications in mobile terminals through registering and transferring of application context

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030056701A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 P2p 방식을 이용한 멀티미디어 스트리밍 장치 및 방법
KR20040110403A (ko) * 2003-06-19 2004-12-31 주식회사 케이티 멀티미디어 데이터 스트리밍 전송 모드의 계층적 변환방법 및 이 방법을 사용한 멀티미디어 데이터 스트리밍전송 서비스 장치
KR20050047920A (ko) * 2003-11-18 2005-05-23 삼성전자주식회사 적응적 스트리밍 장치 및 방법
KR20050053084A (ko) * 2003-12-02 2005-06-08 한국전자통신연구원 Ims 망에서의 이동 스트리밍 서비스 제공 시스템 및 방법

Also Published As

Publication number Publication date
EP1642443B1 (en) 2015-05-20
JP4848275B2 (ja) 2011-12-28
US20050005025A1 (en) 2005-01-06
CN1843013A (zh) 2006-10-04
KR20060027855A (ko) 2006-03-28
JP2007531332A (ja) 2007-11-01
WO2005006709A1 (en) 2005-01-20
EP1642443A1 (en) 2006-04-05
CN1843013B (zh) 2011-07-06

Similar Documents

Publication Publication Date Title
KR100744900B1 (ko) 스트리밍 미디어 서비스 관리 방법
US8560729B2 (en) Method and apparatus for the adaptation of multimedia content in telecommunications networks
Kesavan et al. An investigation on adaptive HTTP media streaming Quality-of-Experience (QoE) and agility using cloud media services
US8990305B2 (en) Techniques for virtual conferencing servers
JP6928038B2 (ja) ライブビデオエンコーディングおよびストリーミングにおけるフレーム複写およびフレーム拡張のためのシステムおよび方法
US7548987B2 (en) Method and system for improved transcoding of information through a telecommunication network
KR100735274B1 (ko) 트랜스코더를 구비한 분산형 멀티미디어 전송 네트워크의트랜스코딩 방법 및 장치
EP2658232A1 (en) Method and system for an optimized multimedia communications system
Rodriguez-Gil et al. Interactive live-streaming technologies and approaches for web-based applications
Thomas et al. Enhancing MPEG DASH performance via server and network assistance
Roy et al. A system architecture for managing mobile streaming media services
Cheng et al. A cloud-based transcoding framework for real-time mobile video conferencing system
US11843792B2 (en) Dynamic decoder configuration for live transcoding
Roy et al. Application level hand-off support for mobile media transcoding sessions
Hutter et al. Automatic adaptation of streaming multimedia content in a dynamic and distributed environment
KR100502186B1 (ko) 고화질 인터넷 방송 서비스 시스템
Tusch et al. Offensive and defensive adaptation in distributed multimedia systems
KR20060019546A (ko) 서비스 제공자 간의 미디어 서비스 세션의 핸드오프 관리방법과 장치 및 네트워크 시스템
KR101136713B1 (ko) 웹서비스를 이용한 멀티 트랜스코딩 서비스 방법
Harville et al. An architecture for componentized, network-based media services
Pragna et al. Technological Developments in Video-Streaming Applications
Sterca et al. Evaluating Dynamic Client-Driven Adaptation Decision Support in Multimedia Proxy-Caches
Wu et al. Grid Service architecture for videoconferencing
Fitz tgw: a webcast transcoding gateway
Kahmann et al. Flexible media reflection for collaborative streaming scenarios

Legal Events

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

Payment date: 20130701

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140701

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170710

Year of fee payment: 11