KR20110002005A - 아바타별 렌더링 환경을 이용하는 가상 현실 시스템에서 실시간 아바타별 스트리밍 데이터를 제공하기 위한 확장가능한 기술들 - Google Patents

아바타별 렌더링 환경을 이용하는 가상 현실 시스템에서 실시간 아바타별 스트리밍 데이터를 제공하기 위한 확장가능한 기술들 Download PDF

Info

Publication number
KR20110002005A
KR20110002005A KR1020107018261A KR20107018261A KR20110002005A KR 20110002005 A KR20110002005 A KR 20110002005A KR 1020107018261 A KR1020107018261 A KR 1020107018261A KR 20107018261 A KR20107018261 A KR 20107018261A KR 20110002005 A KR20110002005 A KR 20110002005A
Authority
KR
South Korea
Prior art keywords
avatar
emission
filter
segment
segments
Prior art date
Application number
KR1020107018261A
Other languages
English (en)
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 KR20110002005A publication Critical patent/KR20110002005A/ko

Links

Images

Classifications

    • A63F13/10
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/12
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5526Game data structure
    • A63F2300/5533Game data structure using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/5553Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history user representation in the game field, e.g. avatar
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6009Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8082Virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Processing Or Creating Images (AREA)

Abstract

스트리밍 데이터의 세그먼트들을 이용하여 표현된 에미션을 렌더링하기 위한 확장가능한 기술이 개시되는데, 에미션은 많은 인식 지점으로부터 잠재적으로 인식가능하고, 에미션들과 인식 지점들은 실시간으로 변하는 관계들을 갖는다. 본 기술은 주어진 에미션이 주어진 인식 지점에서 인식가능한지를 타임슬라이스에 대하여 판정함으로써 세그먼트들을 필터링한다. 인식가능하지 않은 경우, 에미션을 표현하는 스트리밍 데이터의 세그먼트들은 주어진 인식 지점으로부터 인식되는 대로 에미션을 렌더링하는 데에 이용되지 않는다. 본 기술들은 네트워크화된 가상 현실 시스템 내의 클라이언트들에서 오디오 에미션을 렌더링하기 위하여 네트워크화된 가상 환경들에서 사용된다. 오디오 에미션의 경우, 주어진 에미션이 주어진 인식 지점에서 인식가능한지에 관한 한 결정요인은, 다른 에미션들의 음향심리학적 특성들이 그 주어진 에미션을 가리는지의 여부이다.

Description

아바타별 렌더링 환경을 이용하는 가상 현실 시스템에서 실시간 아바타별 스트리밍 데이터를 제공하기 위한 확장가능한 기술들{SCALABLE TECHNIQUES FOR PROVIDING REAL-TIME PER-AVATAR STREAMING DATA IN VIRTUAL REALITY SYSTEMS THAT EMPLOY PER-AVATAR RENDERED ENVIRONMENTS}
<관련 출원에 대한 상호 참조>
본 특허 출원의 주제는 본 명세서에 전체가 참조로서 포함되는 이하의 미국 특허 가출원에 관련되며, 그 우선권을 주장한다.
Rafal Boni 등의 미국 특허 가출원 61/021729, "Relevance routing system" (2008년 1월 17일 출원)
<연방정부 기금을 지원받은 연구 또는 개발에 대한 진술>
해당 사항 없음
<서열 목록에 대한 참조>
해당 사항 없음
<기술분야>
본 명세서에 개시된 기술들은 가상 현실 시스템에 관한 것으로, 더 구체적으로는 멀티아바타 가상 환경에서의 스트리밍 데이터의 렌더링에 관한 것이다.
가상 환경{ virtual environments }
가상 환경(VE로 약칭됨)이라는 용어는, 본 맥락에서 컴퓨터 시스템의 사용자의 실세계 환경에 대한 기대를 따르는 방식으로 거동하는, 컴퓨터 시스템에 의해 생성된 환경을 지칭한다. 가상 환경을 만들어내는 컴퓨터 시스템은 이하에서 가상 현실 시스템이라고 지칭되고, 가상 현실 시스템에 의한 가상 환경의 생성은 가상 환경의 렌더링이라고 지칭된다. 가상 환경은 아바타를 포함할 수 있는데, 이것은 본 맥락에서 가상 환경 내에 인식 지점(a point of perception)을 갖는, 그 가상 환경에 소속된 엔터티이다. 가상 현실 시스템은 아바타를 위하여, 그 아바타의 인식 지점으로부터 인식된 대로 가상 환경을 렌더링할 수 있다. 가상 환경 시스템의 사용자는 가상 환경 내의 특정 아바타와 관련지어질 수 있다. 가상 환경의 역사와 발전에 대한 개관은 IEEE Computer(2007년 10월)의 "Generation 3D: Living in Virtual Worlds"에서 찾을 수 있다.
많은 가상 환경에서, 아바타에 관련지어진 사용자는 그 아바타를 통해 가상 환경과 상호작용할 수 있다. 사용자는 아바타의 인식 지점으로부터 가상 환경을 인식할 뿐만 아니라, 가상 환경에서 아바타의 인식 지점을 변경하거나 아바타와 가상 환경 간의 관계를 다르게 변경하거나 가상 환경 자체를 변경할 수도 있다. 이하에서, 이러한 가상 환경은 대화형( interactive ) 가상 환경이라고 지칭된다. 고성능 개인용 컴퓨터 및 고속 네트워킹의 출현과 함께, 가상 환경 -특히, 다수의 사용자를 위한 아바타들이 동시에 가상 환경과 상호작용하고 있는 멀티아바타 대화형 가상 환경- 은 공학 연구소 및 특수화된 애플리케이션 영역으로부터 널리 사용되도록 바뀌어왔다. 이러한 멀티아바타 가상 환경의 예는, World of Warcraft®와 같은 다중 접속 온라인 게임(massively-multiplayer on-line games, MMOGs) 및 Second Life®와 같은 사용자-정의된 가상 환경의 것과 같이 상당한 그래픽 및 비주얼 콘텐츠를 갖는 환경을 포함한다. 그러한 시스템들에서, 가상 환경의 각 사용자는 가상 환경의 아바타에 의해 표현되며, 각 아바타는 가상 환경에서의 아바타의 가상 위치 및 기타 양태들(aspects)에 기초하여 가상 환경에서의 인식 지점을 갖는다. 가상 환경의 사용자들은 자신의 아바타를 제어하고, PC 또는 워크스테이션 컴퓨터와 같은 클라이언트 컴퓨터를 통해 가상 환경 내에서 상호작용한다. 또한, 가상 환경은 서버 컴퓨터들을 이용하여서도 구현된다. 사용자의 아바타를 위한 렌더링은 서버 컴퓨터로부터 보내진 데이터에 따라 사용자의 클라이언트 컴퓨터 상에서 생성된다. 데이터는 가상 현실 시스템의 서버 컴퓨터들과 클라이언트 컴퓨터들 간에서 네트워크를 통해 데이터 패킷으로 전송된다.
이러한 시스템들 대부분은 사용자의 아바타에게 가상 환경의 비주얼 이미지를 표시(present)한다. 일부 가상 환경들은 가상 환경에서 사용자의 아바타가 듣는 음향, 또는 아바타의 가상의 촉각으로부터의 출력과 같은 추가의 정보를 표시한다. "Neuentwicklungen auf dem Gebiet der Audio Virtual Reality"(Fraunhofer-Institut fuer Medienkommunikation, Germany, 2003년 7월)에 기술된 대로의, Fraunhofer Institute에서 개발된 LISTEN 시스템에 의해 생성된 것과 같이, 사용자들로의 가청 출력을 주로 하거나 가청 출력 단독으로 이루어진 가상 환경 및 시스템들도 고안되어 있다.
가상 환경이 대화형인 경우, 사용자를 위한 아바타의 외양 및 행동은 가상 환경 내의 다른 아바타들이 사용자의 외양 및 행동을 표현하는 것으로서 인식 -보거나 듣는 것 등- 하는 것이다. 물론, 아바타가 임의의 특정 엔터티를 닮은 것으로서 보여지거나 인식되어야 할 필요는 없고, 사용자를 위한 아바타는 사용자의 실제 외양과 고의적으로 상당히 다르게 보일 수 있으며, 이는 많은 사용자들에게 가상 환경에서의 상호작용을 "실세계"에서의 상호작용에 비교하여 더 매력있게 하는 점 중 하나이다.
가상 환경 내의 각 아바타는 개별적인 인식 지점을 갖기 때문에, 가상 현실 시스템은 가상 환경을 멀티아바타 가상 환경 내의 다른 아바타들과 반드시 다르게 렌더링해야 한다. 제1 아바타가 인식하는 것 -예를 들어, 보는 것 등- 은 한 인식 지점으로부터의 것일 것이고, 제2 아바타가 인식하는 것은 다를 것이다. 예를 들어, 아바타 "Ivan"은 특정 위치 및 가상 방향으로부터 아바타 "Sue" 및 "David"과 가상 테이블을 "볼" 수 있지만, 아바타 "Lisa"는 보지 못할 수 있는데, 왜냐하면 그 아바타는 가상 환경에서 Ivan의 "뒤"에 있어서 "시야 밖에 있기" 때문이다. 다른 아바타 "Sue"는 완전히 다른 각도로부터 아바타 Ivan, Sue, Lisa 및 David과 두개의 의자를 볼 수 있을 것이다. 다른 아바타 "Maurice"는 그 순간에 가상 환경 내의 완전히 다른 가상 위치에 있을 수 있고, 아바타 Ivan, Sue, Lisa 또는 David 중 누구도 보지 못할 수 있지만(또한 그들도 Maurice를 보지 못함), 대신에 Maurice는 Maurice와 동일한 가상 위치 근처에 있는 다른 아바타들을 본다. 본 논의에서, 다른 아바타들과 다른 렌더링은 아바타별(per-avatar) 렌더링이라고 지칭된다.
도 2는 예시적인 가상 환경에서의 특정 아바타를 위한 아바타별 렌더링의 일례를 도시한 것이다. 도 2는 렌더링으로부터의 고정 이미지이다 -실제에서, 가상 환경은 장면을 동적으로 그리고 컬러로 렌더링할 것이다. 본 렌더링의 예에서의 인식 지점은 가상 현실 시스템이 도 2에 도시된 렌더링을 해주고 있는 아바타의 것이다. 본 예에서, 여덟명의 사용자를 위한 아바타들의 그룹은 가상 환경 내의 특정 장소(locale)로 "갔고", 이 장소는 221 및 223에서 2층으로 된 단상을 포함한다. 본 예에서, - 매우 멀리 떨어진 실세계 위치들에 있을 수 있는 - 사용자들은 무엇인가를 논의하기 위한 회의를 위해 가상 환경에서 (그들의 아바타를 통하여) "만나기로" 계획했었고, 따라서 그들의 아바타들은 가상 환경에서 그들의 참석(presence)을 표현한다.
여덟명의 아바타들 중 일곱명 - 본 예에서는 나타난 모든 아바타가 사람의 형상임 - 을 볼 수 있고, 가상 현실 시스템이 렌더링을 해주고 있는 아바타는 보이지 않는데, 왜냐하면 렌더링이 그 아바타의 인식 지점으로부터 만들어지기 때문이다. 편의상, 렌더링이 그를 위해 만들어지고 있는 아바타는 도 2에서 299로 지칭된다. 도면은 렌더링이 "299"로 표시되는 아바타의 지점으로부터 만들어진 것임을 나타내기 위하여 전체 이미지를 중괄호로 묶는 무소속의 레이블 299를 포함한다.
201, 209 및 213으로 레이블된 아바타들을 포함하는 4명의 아바타는 단상(221)에 서 있는 것이 보인다. 205로 레이블된 아바타를 포함하는 나머지 3명의 아바타는 두개의 단상 사이에 서 있는 것이 보인다.
도 2에서 볼 수 있는 바와 같이, 아바타(209)는 아바타(213)의 뒤에 서 있다. 이 장면을 아바타(213)의 인식 지점에 대하여 렌더링할 때에, 아바타(209) 또는 아바타(299)는 아바타(213)의 시야로부터 벗어나 있으므로, 그들 중 누구도 보이지 않을 것이다.
도 2의 예는 사용자들의 자신의 아바타를 통해 상호작용할 수 있지만, 아바타들이 말을 하지는 못하는 가상 현실 시스템을 위한 것이다. 그 대신, 이러한 가상 현실 시스템에서는 사용자들이 키보드로 텍스트를 타이핑함으로써 자신의 아바타가 "말하게" 할 수 있다. 가상 환경은 사용자를 위한 아바타 위의 "말풍선" 내에 그 텍스트를 렌더링하고, 선택적으로는 사용자의 아바타의 이름을 갖는 버블이 마찬가지의 방식으로 렌더링된다. 아바타(201)에 대한 일례가 203에 도시되어 있다.
이러한 특정한 예시적인 가상 현실 시스템에서, 사용자들은 키보드의 화살표 키들을 이용하여, 자신의 아바타가 한 가상 위치로부터 다른 가상 위치로 움직이거나 걷게 하고, 또는 다른 방향을 향하도록 돌게 할 수 있다. 또한, 아바타가 손과 팔을 움직임으로써 몸짓을 하게 하는 키보드 입력들도 있다. 이러한 몸짓의 두가지 예를 볼 수 있는데, 아바타(205)는 손과 팔을 올린 것(207에서 원 안에 표시됨)으로부터 볼 수 있는 바와 같이 몸짓을 하고 있고, 아바타(209)는 211에서 원 안에 표시된 손과 팔의 위치에 의해 보여진 바와 같이 몸짓을 하고 있다.
따라서, 사용자들은 자신의 아바타를 통하여 이동하고, 몸짓을 하고, 서로 대화할 수 있다. 사용자들은 자신의 아바타를 통하여 다른 가상 위치 및 장소로 이동하고, 다른 사용자들과 만나고, 모임을 개최하고, 친구를 사귀고, 가상 환경 내에서의 "가상 생활"의 많은 양태들에 참여할 수 있다.
많은 멀티아바타가 렌더링되는 환경을 구현하는 데에 있어서의 문제점
많은 멀티아바타가 렌더링되는 환경을 구현하는 데에 있어서 몇가지 문제점이 존재한다. 그들 중 몇몇을 들자면 다음과 같다.
● 가상 환경이 많은 아바타들을 위하여 생성해야만 하는 순전히 많은 수의 상이한 개별 렌더링들
● 지연 및 이용가능한 데이터 대역폭에 제한을 갖는 다수의 접속을 갖는 네트워크화된 구현을 제공할 필요성
도 2의 가상 현실 시스템이 음성을 다루기 위하여 말풍선을 이용한다는 사실이 보여주는 바와 같이, 라이브 사운드(live sound)는 현재의 가상 현실 시스템에 어려움을 제기한다. 라이브 사운드가 어려움을 제기하는 한가지 이유는 그것이 이하에서 에미션(emission)이라고 지칭되는 것, 즉 가상 환경 내에서 엔터티에 의해 생성되고 가상 환경 내의 아바타들이 인식할 수 있는 출력의 일례이기 때문이다. 그러한 에미션의 일례는 가상 환경 내의 한 아바타에 의해 생성된 것으로서 가상 환경 내의 다른 아바타들이 들을 수 있는 음성(speech)이다. 에미션의 특징은 가상 현실 시스템에서 스트리밍 데이터에 의해 표현된다는 것이다. 현재의 맥락에서의 스트리밍 데이터는 높은 데이터레이트를 가지며 실시간으로 예측불가능하게 변화하는 임의의 데이터이다. 스트리밍 데이터는 끊임없이 변화하기 때문에, 항상 끊임없는 스트림으로 송신되어야만 한다. 가상 환경의 맥락에서, 스트리밍 데이터를 한번에 에미션하는 다수의 소스들이 있을 수 있다. 또한, 에미션을 위한 가상 위치 및 인식할 수 있는 아바타들을 위한 인식 지점은 실시간으로 변화할 수 있다.
가상 환경에서의 에미션의 유형들의 예는, 들을 수 있는 가청 에미션, 볼 수 있는 가시 에미션, 촉각으로 느낄 수 있는 햅틱 에미션, 냄새를 맡을 수 있는 후각 에미션, 맛을 볼 수 있는 미각 에미션, 및 가상 텔레파시 또는 힘의 장(force field) 에미션과 같은 가상 환경 특유의 에미션을 포함한다. 대부분의 에미션의 특성은 세기(intensity)이다. 세기의 유형은 당연히 에미션의 유형에 의존할 것이다. 예를 들어, 음성의 에미션에서, 세기는 크기(loudness)로서 표현된다. 스트리밍 데이터의 예는 음성을 표현하는 데이터(오디오 데이터), 움직이는 이미지를 표현하는 데이터(비디오 데이터), 그리고 또한 계속되는 힘 또는 터치를 표현하는 데이터이다. 새로운 유형의 스트리밍 데이터가 계속하여 개발되고 있다. 가상 환경에서의 에미션은 아바타에 관련된 사용자로부터의 음성과 같이 실세계의 소스로부터 온 것일 수도 있고, 생성 또는 기록된 소스로부터 온 것일 수도 있다.
가상 환경에서의 에미션의 소스는 가상 환경의 임의의 엔터티일 수 있다. 음향을 예로 들어보면, 가상 환경에서의 가청 에미션들의 예는 가상 환경 내의 엔터티들에 의해 만들어진 음향 -예를 들어, 아바타가 그 아바타의 사용자가 마이크로폰에 대고 말한 것을 에미션함, 가상 폭포에 의해 에미션되는 생성된 콸콸거리는 소리, 가상 폭탄에 의해 에미션되는 폭발 소리, 가상 바닥 위의 가상 하이힐에 의해 에미션되는 위태위태한 딸깍딸깍 소리-, 및 배경 음향 -예를 들어, 가상 환경의 한 영역에 의해 에미션되는 가상 미풍 또는 바람의 배경 음향, 또는 가상의 반추동물 떼에 의해 에미션되는 배경 음향- 을 포함한다.
음향 시퀀스 내의 음향들, 에미션 소스 및 아바타들의 상대적인 위치, 소스들에 의해 에미션되는 음향들의 품질, 아바타들에 대한 음향의 가청성(audibility) 및 겉보기 크기(apparent loudness), 및 각각의 잠재적으로 인식하는 아바타(potentially-perceiving avatar)의 방향은 사실상 실세계에서 모두 변화할 수 있다. 다른 유형의 에미션 및 다른 유형의 스트리밍 데이터에 대해서도 마찬가지이다.
가상 환경에서 각각의 아바타에 의해 개별적으로 인식되는 대로 에미션들을 렌더링하는 문제는 복잡하다. 이러한 문제점들은 소스들이 에미션하고 있는 동안 소스들과 목적 아바타들이 가상 환경에서 이동하는 경우에, 예를 들어, 사용자가 자신의 아바타를 통해 말하면서 그 에미션하는 아바타를 이동시키는 경우, 또는 다른 사용자들이 그 에미션을 인식하면서 자신의 아바타를 이동시키는 경우에 훨씬 악화된다. 후자의 양태 -인식하는 아바타가 가상 환경에서 이동함- 는, 가상 환경 내의 정지 소스로부터의 에미션들에게까지 영향을 미친다. 에미션을 표현하는 스트리밍 데이터만 끊임없이 변화하는 게 아니라, 에미션이 어떻게 렌더링될지, 그리고 그 에미션이 렌더링되는 대상인 인식하는 아바타들도 끊임없이 변화한다. 렌더링 및 인식하는 아바타는 잠재적으로 인식하는 아바타들이 가상 환경에서 이동할 때뿐만 아니라, 에미션의 소스들이 가상 환경에서 이동할 때에도 변화한다.
이러한 복잡함의 제1 레벨에서, 잠재적으로 인식하는 아바타가 주어진 순간에 소스에 의해 에미션되는 음향 시퀀스를 실제로 인식할 수 있을지의 여부는, 적어도 각 순간에 소스에 의해 에미션되는 음향의 음량에 의존한다. 또한, 그것은 각각의 순간에서 소스와 잠재적으로 인식하는 아바타 간의 가상 현실에서의 거리에 의존한다. "실세계"에서와 같이, 가상 환경에서의 인식 지점에 대하여 지나치게 여린 음향은 그 인식 지점에서 아바타에게 들리지 않을 것이다. "멀리서" 오는 음향은 더 가까운 거리에서 올 때보다 더 여리게 들리거나 인식된다. 본 맥락에서, 음향이 거리에 따라 여리게 들리는 정도는 거리 가중치 인자(a distance-weight factor)라고 지칭된다. 소스에서의 음향의 세기는 음향의 고유 크기(intrinsic loudness)라고 지칭된다. 인식 지점에서의 음향의 세기는 겉보기 크기라고 지칭된다.
제2 레벨에서, 에미션되는 음향이 특정 아바타에게 들릴 수 있을지의 여부는 또한 소스에 대한 특정 아바타의 위치의 다른 양태들, 인식하는 아바타가 다른 소스들로부터 동시에 듣고 있는 음향들에 의해, 또는 음향의 품질에 의해 결정될 수 있다. 예를 들어, 음향심리학의 원리는 실세계에서의 더 큰 음향이 (개별 청취자에 대한 겉보기 크기에 기초하여) 덜 시끄러운 음향을 가리거나(mask) 안 들리게 할 수 있다는 사실을 포함한다. 이는 음향의 상대적 크기 또는 음량으로 지칭되는데, 한 음향의 겉보기 크기는 다른 음향의 겉보기 크기에 관련하여 더 클 수 있다. 또한, 음향심리학적 효과들은 어떤 품질의 음향들이 다른 음향들에 비해 더 잘 들리는 경향이 있다는 것을 포함한다: 예를 들어, 사람들은 아기가 우는 소리를 특히 잘 알아차리거나 잘 듣는데, 그 소리가 여리고, 다른 더 큰 음향들이 동시에 존재하는 경우에서조차도 그러하다.
또 다른 복잡함으로서, 음향들이 그 음향들을 들을 수 있는 모든 아바타에 대해 지향성을 갖고서(directionally) 렌더링되어, 모든 아바타에 대한 모든 음향이 해당 아바타에 대하여 적합한 상대적인 방향에서 오는 것으로서 인식되도록 음향을 렌더링하는 것이 바람직할 수 있다. 따라서, 지향성(directionality)은 음향을 들을 수 있는 아바타의 가상 위치뿐만 아니라, 가상 환경 내의 잠재적인 가청 음향의 모든 소스의 위치에도 의존하며, 또한 가상 환경에서 아바타가 "향하고" 있는 방향에도 의존한다.
몇 안되는 적은 수의 소스들 및 아바타들로의 및 그들로부터의 에미션의 렌더링을 그런대로 괜찮게 수행할 수 있는 종래 기술의 가상 현실 시스템은 대량의 멀티아바타가 렌더링되는 환경에서의 수만개의 소스 및 아바타에는 단순히 대처하지 못할 것이다. 통상적으로 말하자면, 그러한 시스템은 매우 많은 수의 소스 및 아바타를 다루도록 확장가능하지는 않다.
요약하면, 가상 환경 내의 복수의 소스로부터의 가청 에미션과 같은 복수의 소스로부터의 에미션의 아바타별 렌더링은 각 소스로부터의 에미션을 표현하는 스트리밍 데이터가
● 거의 끊임없이 에미션되고 변화하고,
● 그에 따라 높은 데이터레이트를 가지고,
● 한번에 다수의 별개의 소스로부터 렌더링되어야 하고,
● 청취하고 있는 각각의 아바타에 대하여 개별적으로 한번에 렌더링되어야 하고,
● 렌더링하기에 복잡하거나 비용이 높고,
● 다수의 소스 및 아바타가 존재할 때 다루기 어렵다
는 점에서 특수한 문제점들을 나타낸다.
멀티아바타가 렌더링되는 환경에서 스트리밍 데이터를 다루기 위한 현재의 기술들
가상 환경에서 스트리밍 데이터를 렌더링하기 위한 현재의 기술들은 언급된 문제들을 다루는 데에 있어서 제한적인 성공을 제공한다. 그 결과, 멀티아바타 가상 환경의 구현자들은 어쩔 수 없이 하나 이상의 불만족스러운 절충안을 만들게 된다.
● 가청 또는 가시 에미션과 같이 스트리밍 데이터를 이용하여 표현되어야 하는 에미션들에 대해 지원을 하지 않음.
오디오 상호작용을 제공하는 것은 지나치게 어렵거나 비용이 많이 들기 때문에, 가상 환경은 방송 또는 점대점 방식으로 "텍스트 채팅"이나 "인스턴트 메시지"만을 지원할 수 있고, 아바타를 통한 사용자들 간의 오디오 상호작용은 갖지 않는다.
● 렌더링되는 환경의 크기 및 복잡성을 제한:
가상 환경 구현은 가상 환경에 대하여 작은 최대수의 아바타까지만 허용할 수 있거나, 아바타들을 분할하여 가상 환경 내의 주어진 "장면"에서 임의의 시간에 작은 최대수만이 존재할 수 있게 하거나, 한번에 제한된 수의 사용자들만이 스트리밍 데이터의 에미션을 이용하여 상호작용할 수 있게 허가할 수 있다.
● 스트리밍 데이터의 아바타별 렌더링이 없음:
아바타들은 열린 "공동 가입선(party line)" 상에서만 말하고 듣도록 제한되며, 모든 음향 또는 가상 환경 내의 "장면"으로부터의 모든 음향이 항상 존재하고, 모든 아바타들에게는 모든 음향의 동일한 렌더링이 제공된다.
● 비현실적인 렌더링:
아바타들은 아바타들의 사용자가 예를 들어 가상 인터콤과 같은 선택적인 "채팅 세션"에 참가할 때에만 가청적으로 상호작용할 수 있을 수 있고, 아바타들의 사용자의 음성은 환경 내에서의 아바타들의 가상 위치에 무관하게 본래의 음량으로 방향없이 렌더링된다.
● 환경적 미디어(environmental media)에 대한 제한된 구현:
스트리밍 데이터를 지원하는 것에 있어서의 어려움으로 인해, 폭포에 대한 배경 음향과 같은 환경적 미디어는 가상 환경에서의 에미션으로서가 아니라, 반복 루프의 디지털 레코딩을 재생하는 것과 같이 각 사용자를 위한 클라이언트 컴포넌트에서 국지적으로 생성되는 음향으로서만 지원될 수 있다.
● 스트리밍 미디어의 제어로부터의 바람직하지 않은 부작용:
스트리밍 데이터에 대한 지원을 제공하는 다수의 기존 시스템들에서, 스트리밍 데이터의 흐름을 관리하기 위하여 네트워크에서 사용되는 별개의 제어 프로토콜이 이용된다. 하나의 부작용은, 부분적으로는 네트워크에서의 전송 지연의 알려진 문제점으로 인하여, 스트리밍 데이터의 흐름을 변경하기 위한 제어 이벤트 -예를 들어, 특정 소스로부터의 스트리밍 데이터를 "묵음"으로 하거나, 스트리밍 데이터의 전달을 제1 아바타에 전달되는 것으로부터 제2 아바타에 전달되는 것으로 변경함- 는 알아차릴 수 있는 지연 이후까지 변경이 이루어지지 않게 할 수 있다. 제어 및 전달 동작들은 충분히 동기화되지 않는다.
본 발명의 목적은 아바타별 렌더링을 생성하는 가상 현실 시스템들에서 에미션을 다루기 위한 확장가능한 기술을 제공하는 것이다. 본 발명의 다른 목적은 음향심리학적 원리들을 이용하여 에미션들을 필터링하는 것이다. 본 발명의 또 다른 목적은 네트워크화된 시스템들의 가장자리에 있는 장치들에서 에미션을 렌더링하기 위한 기술을 제공하는 것이다.
일 양태에서, 본 발명의 목적은 스트리밍 데이터의 세그먼트에 의해 표현되는 에미션을 렌더링하는 시스템 내의 필터에 의해 달성된다. 에미션은 그 에미션이 잠재적으로 인식될 수 있는 인식 지점으로부터 한 시점에서 인식된 대로 시스템에 의해 렌더링된다. 필터의 특징은 다음을 포함한다.
● 필터는 인식 지점에 관련지어진다.
● 필터는
○ 해당 시점에서 스트리밍 데이터의 세그먼트에 의해 표현되는 에미션을 위한 현재의 에미션 정보; 및
○ 스트리밍 데이터의 세그먼트에 의해 표현되는 그 시점에서의 필터의 인식 지점에 대한 현재의 인식 지점 정보
로의 액세스를 갖는다.
필터는 현재의 인식 지점 정보 및 현재의 에미션 정보로부터, 세그먼트의 스트리밍 데이터에 의해 표현되는 에미션이 필터의 인식 지점에서 인식 가능한지 여부를 판정한다. 판정 결과, 세그먼트의 스트리밍 데이터에 의해 표현되는 에미션이 그 시점에서 필터의 인식 지점에서 인식가능하지 않은 것으로 나타나면, 시스템은 필터의 인식 지점에서 에미션을 렌더링하는 데에 있어서 그 세그먼트를 사용하지 않는다.
다른 양태에서, 필터는 가상 환경을 제공하는 가상 현실 시스템의 컴포넌트인데, 그러한 가상 환경에서, 가상 환경 내의 소스들은 가상 환경 내의 아바타들에 의해 잠재적으로 인식되는 에미션들을 에미션한다. 필터는 아바타와 관련지어지며, 세그먼트에 의해 표현되는 에미션이 그 아바타의 현재의 인식 지점에서 그 아바타에 의해 가상 환경에서 인식가능한 것인식을 판정한다. 인식가능하지 않으면, 에미션을 표현하는 세그먼트는 그 아바타의 인식 지점에 대하여 가상 환경을 렌더링하는 데에 사용되지 않는다.
본 발명이 속하는 기술 분야의 지식을 가진 자들이라면, 이하의 도면과 상세한 설명을 숙독하고서 다른 목적들 및 이점들을 알 수 있을 것이다.
도 1은 필터링 기술에 대한 개념적인 개관이다.
도 2는 예시적인 가상 환경에서의 한 장면을 도시한 것이다. 이 장면에서, 아바타들에 의해 표현되는 가상 환경의 사용자들은 그들의 아바타들이 가상 환경 내의 특정 위치에서 만나게 함으로써 회의를 하고 있다.
도 3은 바람직한 실시예에서의 스트리밍 데이터의 세그먼트의 내용의 개념도이다.
도 4는 SIREN14-3D V2 RTP 페이로드 포맷의 일부의 명세를 도시한 것이다.
도 5는 스테이지 1 및 스테이지 2 필터링의 동작을 도시한 것이다.
도 6은 스테이지 2 필터링을 더 상세하게 도시한 것이다.
도 7은 인접성 행렬을 도시한 것이다.
도면들에서의 참조 번호들은 세개 이상의 숫자를 갖는데, 오른쪽의 두개의 숫자는 나머지 숫자가 나타내는 도면에서의 참조 번호이다. 따라서, 참조 번호 203을 갖는 항목은 도 2에서 항목 203으로서 처음 나타난다.
아래의 발명의 상세한 설명은 가상 환경이 가청 에미션의 소스들을 포함하고, 가청 에미션들이 스트리밍 오디오 데이터에 의해 표현되는 실시예를 개시한다.
여기에 설명되는 기술들의 원리는 어떠한 유형의 에미션과도 함께 사용될 수 있다.
본 발명의 기술의 개관
본 바람직한 실시예에서, Second Life를 예로 들 수 있는 유형과 같은 가상 현실 시스템은 네트워크화된 컴퓨터 시스템에서 구현된다. 본 발명의 기술들은 가상 현실 시스템에 통합된다. 가상 환경의 소스들로부터의 음향 에미션을 표현하는 스트리밍 데이터는 스트리밍 오디오 데이터의 세그먼트들로서 데이터 패킷들로 통신된다. 아바타에 대한 에미션의 세그먼트의 인식가능성을 결정하는 것에 관련된 세그먼트의 소스에 관한 정보가 각 세그먼트와 관련지어진다. 가상 현실 시스템은 클라이언트 컴퓨터와 같은 렌더링 컴포넌트 상에서 아바타별 렌더링을 수행한다. 아바타를 위한 렌더링은 클라이언트 컴퓨터 상에서 행해지며, 아바타가 들을 수 있을 세그먼트들만이 네트워크를 통해 클라이언트 컴퓨터에 송신된다. 거기에서, 세그먼트들은 아바타의 사용자를 위하여 헤드폰이나 스피커를 통한 가청 출력으로 변환된다.
아바타가 반드시 사용자와 관련지어질 필요는 없고, 가상 현실 시스템이 렌더링을 해 줄 수 있는 어떠한 엔터티라도 될 수 있다. 예를 들어, 아바타는 가상 환경에서의 가상 마이크로폰일 수 있다. 가상 마이크로폰을 이용하여 이루어진 레코딩은 그 가상 마이크로폰에서 들을 수 있었던 가상 환경 내의 오디오 에미션들로 이루어진 가상 환경의 렌더링일 것이다.
도 1은 필터링 기술의 개념적인 개관이다.
101에 도시된 바와 같이, 가상 환경 내의 상이한 소스들로부터의 에미션들을 표현하는 스트리밍 데이터의 세그먼트들이 수신되어 필터링된다. 각 세그먼트는 가상 환경 내의 에미션의 소스의 위치 및 소스에서 에미션이 얼마나 강한지와 같은, 에미션의 소스에 관한 정보에 관련지어진다. 바람직한 실시예에서, 에미션은 가청 에미션이며, 세기는 소스에서의 에미션의 크기이다.
이러한 세그먼트들은 105에서 도시된 세그먼트 라우팅 컴포넌트에 의해 모든 세그먼트들의 결합된 스트림으로 종합된다. 세그먼트 라우팅 컴포넌트(105)는 107에서 도시된 바와 같이 세그먼트들을 종합 스트림(aggregated stream)으로 결합하는 세그먼트 스트림 결합기 컴포넌트(103)를 갖는다.
107에 도시된 바와 같이, (모든 음성 스트림의 세그먼트들로 이루어진) 종합 스트림은 다수의 필터 컴포넌트들에 송신된다. 필터 컴포넌트들 중 두개의 예가 111과 121에 도시되어 있고, 나머지는 생략 부호로 표시되어 있다. 가상 현실 시스템이 렌더링을 생성해주고 있는 각 아바타에 대응하는 필터 컴포넌트가 존재한다. 필터 컴포넌트(111)는 아바타(i)에 대한 렌더링을 위한 필터 컴포넌트이다. 필터(111)에 대한 상세는 113, 114, 115 및 117에 도시되어 있고, 다른 필터들은 마찬가지의 방식으로 동작한다.
필터 컴포넌트(111)는 주어진 유형의 에미션에 대한 스트리밍 데이터 중에서 가상 환경을 아바타(i)에 적합하게 렌더링하는 데에 필요한 세그먼트들을 위해, 종합 스트림(107)을 필터링한다. 필터링은 아바타(i)의 현재 아바타 정보(113) 및 현재 스트리밍 데이터 소스 정보(114)에 기초한다. 현재 아바타 정보(113)는 에미션을 인식하는 아바타(i)의 능력에 영향을 미치는, 아바타에 관한 임의의 정보이다. 현재 아바타 정보가 무엇인식은 가상 환경의 성질에 의존한다. 예를 들어, 위치의 개념을 갖는 가상 환경에서, 현재 아바타 정보는 에미션을 검출하기 위한 아바타의 기관(organ)의 가상 환경에서의 위치를 포함할 수 있다. 이하에서, 가상 환경에서의 위치는 종종 가상 위치라고 지칭될 것이다. 당연히, 가상 위치들이 존재하는 경우에는, 그러한 위치들 간의 가상 거리도 존재한다.
현재 스트리밍 데이터 소스 정보는 특정 소스로부터의 에미션을 인식하는 아바타(i)의 능력에 영향을 미치는 스트리밍 데이터의 소스들에 관한 현재 정보이다. 현재 스트리밍 데이터 소스 정보(114)의 일례는 소스의 에미션 생성 컴포넌트의 가상 위치이다. 다른 예는 소스에서의 에미션의 세기이다.
115에 도시된 바와 같이, 아바타(i)가 인식할 수 있어서 119에서 아바타(i)를 위해 가상 환경을 렌더링하는 데에 필요한 스트리밍 데이터를 갖는 세그먼트들만이 필터(111)로부터 출력된다. 바람직한 실시예에서, 인식가능성은 소스와 인식하는 아바타 간의 가상 거리, 및/또는 인식가능한 세그먼트들의 상대적 크기(relative loudness)에 기초할 수 있다. 필터(111)에 의한 필터링 이후에 남아있는 세그먼트들은, 가상 환경에서의 아바타(i)의 현재의 인식 지점에 대하여 가상 환경을 렌더링하는 렌더링 컴포넌트(117)로의 입력으로서 제공된다.
바람직한 실시예의 상세
본 바람직한 실시예에서, 소스들의 에미션들은 가청 음향이고, 가상 현실 시스템은 아바타를 위한 음향의 렌더링이 아바타에 의해 표현되는 사용자에 의해 사용되는 클라이언트 컴퓨터에서 행해지는 네트워크화된 시스템이다.
바람직한 실시예에서의 세그먼트들의 개관
앞에서 언급한 바와 같이, 사용자의 클라이언트 컴퓨터는 스트리밍 음향 입력을 디지타이즈하고, 스트리밍 데이터의 세그먼트들을 네트워크를 통해 패킷들로 송신한다. 네트워크를 통해 데이터를 전송하기 위한 패킷들은 본 기술 분야에 공지되어 있다. 이하에서는, 바람직한 실시예에서의 스트리밍 오디오 패킷의 콘텐츠(페이로드라고도 함)에 대해 논의한다. 이러한 논의는 본 발명의 기술들의 양태들을 설명한다.
도 3은 스트리밍 오디오 세그먼트의 페이로드를 개념적인 형태로 도시한 것이다.
바람직한 실시예에서, 아바타는 가청 에미션들을 인식할 수 있을 뿐만 아니라, 그들의 소스일 수도 있다. 또한, 아바타의 음성 발생기의 가상 위치는 아바타의 음성 검출기의 가상 위치와 다를 수 있다. 결과적으로, 아바타는 음성의 인식자로서 갖는 가상 위치와는 다른, 음성의 소스로서의 가상 위치를 가질 수 있다.
구성요소(300)는 바람직한 실시예에서 이용되는 스트리밍 데이터 세그먼트의 페이로드를 개념적인 형태로 도시한 것이다. 330 및 340의 중괄호는 각각 세그먼트 페이로드의 두개의 주요 부분, 즉 세그먼트에 의해 표현되는 스트리밍 오디오 데이터에 관한 메타데이터 정보를 갖는 헤더, 및 스트리밍 오디오 데이터 자체를 나타낸다. 메타데이터는 화자(speaker) 위치 및 세기와 같은 정보를 포함한다. 바람직한 실시예에서, 세그먼트의 메타데이터는 스트리밍 데이터에 의해 표현되는 에미션의 소스를 위한 현재 스트리밍 데이터 소스 정보(114)의 일부이다.
바람직한 실시예에서, 메타데이터(330)는 이하의 것들을 포함한다.
● 세그먼트 내의 스트리밍 데이터에 의해 표현되는 음성을 에미션한 소스인 엔터티를 식별하는 userID 값(301). 아바타인 소스에 대하여, 이것은 아바타를 식별함.
세션을 식별하는 세션 ID 값(302). 본 맥락에서, 세션은 소스들 및 아바타들의 집합이다. 플래그들(303)의 집합은, 에미션이 스트리밍 데이터의 이러한 세그먼트를 표현할 때의 소스의 상태에 관한 정보와 같은 추가의 정보를 나타낸다. 한 플래그는 위치값(305)의 성질, 즉 "화자" 또는 "청취자" 위치를 나타낸다.
● 가상 환경에서 세그먼트에 의해 표현되는 에미션의 소스의 현재 가상 위치, 또는 아바타에 대하여 그 아바타의 "청취" 부분의 현재 가상 위치를 제공하는 위치(305).
● 음향 에너지의 세기, 또는 에미션된 음향의 고유 크기에 대한 값(307).
● 추가의 메타데이터가 있다면 309에서 표현된다.
바람직한 실시예에서, 가청 에미션에 대한 세기값(307)은 관련 기술분야에 알려진 원리들에 따라 음향의 고유 크기로부터 계산된다. 다른 유형의 에미션들은 에미션의 세기를 표현하기 위하여 다른 값들을 이용할 수 있다. 예를 들어, 가상 환경에서 텍스트로서 나타나는 에미션에 대하여, 세기값은 사용자에 의해 별도로 입력될 수도 있고, 다르게는 모두 대문자인 텍스트에 대소문자 혼용이거나 모두 소문자인 텍스트보다 큰 세기값이 제공될 수 있다. 본 발명의 기술들에 따른 실시예에서, 세기값들은 상이한 유형들의 에미션들의 세기가 필터링 등에서 서로 비교될 수 있도록 하는 설계의 문제로서 선택될 수 있다.
스트리밍 데이터 세그먼트는 340 및 관련 중괄호에 도시되어 있다. 세그먼트 내에서, 세그먼트의 데이터 부분은 321에서 시작하여, 세그먼트 내의 모든 데이터들로 계속되고, 323에서 종료하는 것으로 도시되어 있다. 바람직한 실시예에서, 스트리밍 데이터 부분(340) 내의 데이터는 에미션된 음향을 압축된 포맷으로 표현하는데, 세그먼트를 생성하는 클라이언트 소프트웨어는 또한 오디오 데이터를 압축된 표현으로 변환하여, 더 적은 데이터(및 따라서 더 적거나 작은 세그먼트)가 네트워크를 통해 송신되면 되게 한다.
바람직한 실시예에서, 신호 데이터를 시간 영역으로부터 주파수 영역으로 변환하고, 음향심리학적 원리들에 따라 다수의 서브대역을 양자화하기 위하여 DCT(Discrete Cosine Transform)에 기초하여 압축된 포맷이 이용된다. 이러한 기술들은 본 기술분야에 공지되어 있으며, "Polycom ® Siren14 ™, Information for Prospective Licensees",
Figure pct00001
에서 SIREN14 코덱 표준에 대해 기술되어 있다.
에미션의 어떠한 표현이라도 이용될 수 있다. 표현은 다른 표현 영역 내에 있을 수 있으며, 또한 에미션은 다른 영역에서 렌더링될 수 있는데, 음성 에미션이 음성-대-텍스트 알고리즘을 이용하여 텍스트로서 표현 또는 렌더링되거나 그 반대로 될 수 있고, 음향 에미션이 시각적으로 표현 또는 렌더링되거나 그 반대로 될 수 있고, 가상 텔레파시 에미션이 상이한 유형의 스트리밍 데이터로서 표현 또는 렌더링될 수 있는 등등이다.
바람직한 실시예의 아키텍처 개관
도 5는 스테이지 1 및 스테이지 2 필터링의 동작을 도시한, 바람직한 실시예의 시스템도이다. 이하에서는 도 5가 개략적으로 설명될 것이다.
도 3의 논의에서 언급한 바와 같이, 바람직한 실시예에서, 세그먼트는 세션 ID(302)를 위한 필드를 갖는다. 스트리밍 데이터(320)를 포함하는 각 세그먼트는 세션에 소속되고, 그 세그먼트가 소속되는 세션에 대한 식별자를 필드(320)에 갖는다. 세션은 세션의 구성원(member)으로서 지칭되는 소스들 및 아바타들의 그룹을 식별한다. 소스가 구성원인 세션들의 집합은 그 소스를 위한 현재 소스 정보(114)에 포함된다. 마찬가지로, 아바타가 구성원인 세션들의 집합은 그 아바타를 위한 현재 아바타 정보(113)에 포함된다. 그룹의 구성원들을 표현 및 관리하고, 또한 그렇게 하기 위한 시스템을 구현하기 위한 기술들은 관련 기술분야에서 익숙한 것이다. 바람직한 실시예에서, 세션 구성원자격(membership)의 표현은 세션 테이블이라고 지칭된다.
바람직한 실시예에서, 두가지 유형의 세션, 즉 위치관련 세션(positional session) 및 고정 세션(static session)이 존재한다. 위치관련 세션은 그 구성원들이 에미션의 소스들, 및 그 소스들로부터의 에미션을 가상 환경 내에서 적어도 잠재적으로 검출가능한 아바타들인 세션이다. 바람직한 실시예에서, 가청 에미션의 주어진 소스, 및 그 주어진 소스로부터의 가청 에미션을 잠재적으로 들을 수 있는 임의의 아바타는 반드시 동일한 위치관련 세션의 구성원이어야 한다. 바람직한 실시예는 단일 위치관련 세션만을 갖는다. 다른 실시예들은 하나보다 많은 위치관련 세션을 가질 수 있다. 고정 세션은, 그 구성원자격이 가상 현실 시스템의 사용자들에 의해 결정되는 세션이다. 고정 세션에 소속된 아바타에 의해 만들어진 임의의 가청 에미션은 가상 환경에서의 아바타들의 위치에 무관하게, 그 고정 세션에 소속된 모든 다른 아바타에게 들린다. 따라서, 고정 세션은 전화 회의 통화와 같이 기능한다. 바람직한 실시예의 가상 현실 시스템은 사용자가 자신의 아바타가 소속되는 고정 세션을 지정할 수 있게 해 주는 사용자 인터페이스를 제공한다. 필터(111)의 다른 실시예들은 다른 유형들의 세션을 포함하거나, 세션을 전혀 포함하지 않을 수 있다. 본 바람직한 실시예에서의 세션들의 구현에 대한 한가지 확장은 단일 세션이 아니라 세션들의 그룹을 나타내는 세션 ID 특수값들의 집합일 것이다.
바람직한 실시예에서, 세그먼트의 세션 ID에 의해 지정되는 세션의 유형은 세그먼트가 필터(111)에 의해 어떻게 필터링될지를 결정한다. 세션 ID가 위치관련 세션을 지정하는 경우, 세그먼트들은 필터에 대한 아바타가 가상 환경에서 소스를 인식할 수 있는지 여부를 결정하기 위해 필터링된다. 그리고, 필터에 대한 아바타가 인식할 수 있는 세그먼트들은 소스들의 상대적 크기에 의해 필터링된다. 후자의 필터에서, 필터의 아바타에 의해 인식될 수 있는 위치관련 세션으로부터의 세그먼트들은 그 아바타가 구성원인 고정 세션으로부터의 세그먼트들과 함께 필터링된다.
바람직한 실시예에서, 가상 환경 내의 가청 에미션의 모든 소스는 위치관련 세션에 대한 세션 ID를 갖는 가청 에미션에 대한 세그먼트들을 만드는데, 소스가 또한 고정 세션의 구성원이고 에미션이 그 고정 세션에서도 들을 수 있는 것이면, 소스는 그 고정 세션에 대한 세션 ID를 갖는 가청 에미션에 대한 세그먼트들 각각의 사본을 더 만든다. 따라서, 가상 환경에서 가청 에미션을 인식할 수 있고 그 에미션을 들을 수 있는 고정 세션의 구성원이기도 한 아바타는 자신의 필터 내에 세그먼트의 하나보다 많은 사본을 수신할 수 있다. 바람직한 실시예에서, 필터는 중복들을 검출하고, 세그먼트들 중 하나만을 아바타에게 전달한다.
도 5로 되돌아가면, 구성요소 501 및 509는 다수의 클라이언트 컴퓨터 중 두개 이다. 클라이언트 컴퓨터는 일반적으로 가상 환경을 갖는 통합된 시스템 구현을 위한 하드웨어 및 소프트웨어를 갖는 '개인용' 컴퓨터이다. 예를 들어, 클라이언트 컴퓨터는 부착된 마이크로폰, 키보드, 디스플레이, 및 헤드폰 또는 스피커를 가지고, 통합된 시스템의 클라이언트 동작들을 수행하기 위한 소프트웨어를 갖는다. 클라이언트 컴퓨터들은 각각 502 및 506에 도시된 바와 같이 네트워크에 접속된다. 각각의 클라이언트는 그 클라이언트의 사용자에 의해 지시된 대로 아바타를 제어할 수 있다. 아바타는 가상 실시에서 음향을 에미션할 수 있고/거나 소스들에 의해 에미션되는 음향을 들을 수 있다. 가상 현실 시스템에서 에미션을 표현하는 스트리밍 데이터는, 클라이언트의 아바타가 에미션의 소스일 때는 클라이언트에서 생성되고, 클라이언트의 아바타가 에미션을 인식할 수 있을 때는 클라이언트에서 렌더링된다. 이것은 클라이언트(501)와 네트워크(502) 사이, 및 클라이언트(509)와 네트워크(506) 사이와 같이, 클라이언트 컴퓨터들과 네트워크들 사이에서 양방향의 화살표들에 의해 도시된다.
바람직한 실시예에서, 클라이언트(501) 및 필터링 시스템(517)과 같은 컴포넌트들 간의 세그먼트들 및 스트리밍 데이터를 위한 네트워크 접속은 오디오 데이터를 위한 RTP 및 SIP 네트워크 프로토콜과 같은 표준 네트워크 프로토콜을 이용하는데, RTP 및 SIP 프로토콜과, 네트워크 접속 및 접속 관리를 위한 많은 다른 기술들은 본 기술분야에 공지되어 있다. 본 맥락에서 중요한 RTP의 특징은 RTP가 데이터를 그것의 도착 시간에 의해 관리하는 것을 지원하고, 시간값을 포함하는 데이터에 대한 요청 시에, 그 시간값과 동일하거나 덜 최근인 도착 시간을 갖는 데이터를 반환할 수 있다는 것이다. 바람직한 실시예의 가상 현실 시스템이 위에서 설명된 대로의 RTP로부터 요청하는 세그먼트들은 이하에서 현재 세그먼트라고 지칭된다.
502 및 506에서의 네트워크들은 도 5에서 별개의 네트워크들로 도시되지만, 당연히 동일한 네트워크 또는 상호접속된 네트워크일 수도 있다.
구성요소(501)을 참조하면, 가상 환경 내의 아바타에 관련된 사용자가 501과 같은 클라이언트 컴퓨터에서 마이크로폰에 대고 말을 할 때, 컴퓨터의 소프트웨어는 그 음향을 메타데이터를 갖는 압축된 포맷의 스트리밍 데이터의 세그먼트들로 변환하고, 세그먼트들(510) 내의 세그먼트 데이터를 네트워크를 통해 필터링 시스템(517)에 송신한다.
바람직한 실시예에서, 필터링 시스템(517)은 통합되지 않은 가상 현실 시스템의 서버 스택들과는 별도로, 통합된 시스템의 서버 스택 내에 있다.
이하에서는, 압축된 포맷 및 메타데이터가 기술된다. 필터링 시스템은 클라이언트들의 아바타들을 위한 아바타별 필터(512 및 516)를 갖는다. 각각의 아바타별 필터는 가상 환경 내의 다수의 소스로부터의 가청 에미션을 표현하는 스트리밍 데이터를 필터링한다. 필터링은 특정한 클라이언트의 아바타가 들을 수 있는 가청 에미션들을 표현하는 스트리밍 데이터의 세그먼트들을 결정하고, 가청 세그먼트들에 대한 스트리밍 오디오를 네트워크를 통해 아바타의 클라이언트에게 송신한다. 503에서 도시된 바와 같이, 클라이언트(501)의 사용자를 표현하는 아바타가 들을 수 있는 세그먼트들은 네트워크(502)를 통해 클라이언트(501)에게 송신된다.
에미션들의 각각의 소스는 현재 에미션 소스 정보, 즉 정보가 실시간으로 변할 수 있는 경우에서의 에미션 및 그것의 소스에 관한 현재 정보 및/또는 그것의 소스에 관한 정보와 관련지어진다. 예로는, 소스에서의 에미션의 품질, 소스에서의 에미션의 세기, 및 에미션 소스의 위치가 있다.
본 바람직한 실시예에서, 현재 에미션 소스 정보(114)는 소스로부터의 에미션을 표현하는 세그먼트들 내의 메타데이터로부터 획득된다.
바람직한 실시예에서, 필터링은 2개의 스테이지에서 수행된다. 필터링 시스템(517)에서 이용되는 필터링 프로세스는, 개괄적으로 다음과 같다.
위치관련 세션에 소속되는 세그먼트들에 대하여:
● 스테이지 1 필터링: 세그먼트 및 아바타에 대하여, 필터링 프로세스는 세그먼트의 소스를 아바타로부터 분리시키는 가상 거리, 및 세그먼트의 소스가 아바타의 임계 가상 거리 내에 있는지를 결정한다. 임계 거리는 아바타에 대한 가청 근접권역(audible vicinity)을 정의하고, 이 근접권역 밖에 있는 소스로부터의 에미션들은 아바타가 들을 수 없다.
임계치를 벗어난 세그먼트들은 필터링 2에 전달되지 않는다. 이 결정은 앞에서 설명된 세션 ID와 같은 세그먼트에 대한 메타데이터 정보, 소스(114)에 대한 현재 소스 정보, 및 아바타(113)에 대한 현재 아바타 정보를 고려함으로써 효율적으로 행해진다. 일반적으로, 이러한 필터링은 아래에서 필터링 2에 대하여 설명되는 것과 같이 필터링되어야 하는 세그먼트들의 수를 감소시킨다.
고정 세션의 세션 ID를 갖는 세그먼트들에 대하여:
● 스테이지 1 필터링: 세그먼트 및 아바타에 대하여, 필터링 프로세스는 필터의 아바타가 세그먼트의 세션 ID에 의해 식별되는 세션의 구성원인식을 판정한다. 필터의 아바타가 세션의 구성원이면, 세그먼트는 필터링 2에 전달된다. 일반적으로, 이 필터링은 이하에서 필터링 2에 대하여 기술되는 것과 같이 필터링될 세그먼트들의 수를 감소시킨다.
필터의 아바타에 대한 임계치 내에 있거나 아바타가 구성원인 세션에 소속되는 모든 세그먼트들에 대하여:
● 스테이지 2 필터링: 필터링 프로세스는 스테이지 1 필터링에 의해 전달된 해당 아바타에 대한 모든 세그먼트들의 겉보기 크기를 결정한다. 그러고나서, 세그먼트들은 그들의 겉보기 크기에 따라 정렬되고, 상이한 세션들로부터의 중복 세그먼트들은 제거되며, 가장 큰 겉보기 크기를 갖는 세개의 세그먼트로 구성되는 서브세트가 렌더링을 위하여 아바타에게 송신된다. 서브세트의 크기는 설계적 선택의 문제이다. 판정은 메타데이터를 고려함으로써 효율적으로 이루어진다. 중복 세그먼트들은 동일한 userID 및 상이한 세션 ID들을 갖는 세그먼트들이다.
위치관련 세션에 소속되는 세그먼트들만을 필터링하는 필터 시스템(517)의 컴포넌트들은 541에서 위쪽에 우측으로 중괄호 표시된 상측 중괄호(541)에 의해 표시되고, 고정 세션에 소속되는 세그먼트들만을 필터링하는 컴포넌트들은 하측 중괄호(542)에 의해 표시된다.
스테이지 1 필터링에 관련된 컴포넌트들은 551에서 왼쪽 아래에 있는 중괄호에 의해 표시되고, 스테이지 2 필터링을 수행하는 컴포넌트들은 552에서 오른쪽 아래에 있는 중괄호에 의해 표시된다.
바람직한 실시예에서, 필터 시스템 컴포넌트(517)는 바람직한 실시예의 가상 현실 시스템 내의 서버에 위치된다. 그러나, 아바타를 위한 필터는 일반적으로 에미션의 소스와 그 필터가 관련지어져 있는 아바타에 대한 렌더링 컴포넌트 사이의 경로 내에서 어느 지점에라도 위치될 수 있다.
세션 관리자(504)는 모든 입력 패킷들을 수신하여 세그먼트 라우팅(540)에 제공하며, 그리고 이것은 위치관련 세션을 통해서든 고정 세션을 통해서든 주어진 아바타가 인식할 수 있는 세그먼트들을 스테이지 2 필터링을 위하여 적합한 아바타별 필터로 향하게 함으로써 스테이지 1 필터링을 수행한다.
505에 도시된 바와 같이, 세그먼트 라우팅 컴포넌트(540)로부터 출력된 세그먼트들의 집합들은 각각의 아바타를 위한 대표적인 아바타별 필터들(512 및 516)에 입력된다. 스트리밍 데이터에 의해 표현되는 에미션의 유형을 인식할 수 있는 각 아바타는 대응하는 아바타별 필터를 가지고 있다. 각각의 아바타별 필터는 각각의 소스에 소속되는 세그먼트들로부터, 목적 아바타가 들을 수 있는 세그먼트들을 선택하여 그들의 겉보기 크기에 관하여 정렬하고, 임의의 중복 세그먼트들을 제거하며, 나머지 세그먼트들 중에서 가장 큰 세개의 세그먼트를 네트워크를 통해 아바타의 클라이언트에게 송신한다.
스트리밍 오디오 세그먼트들의 콘텐츠의 상세
도 4는 이러한 기술들을 위한 페이로드 포맷의 관련 양태들에 대한 보다 더 상세한 설명을 도시한 것이다. 바람직한 실시예에서, 페이로드 포맷은 가상 현실 시스템에 의해 사용되는 비-스트리밍 데이터도 포함할 수 있다. 바람직한 실시예의 통합된 시스템은 본 기술들이 가상 현실 시스템 또는 기타 애플리케이션과 함께 통합될 수 있는 많은 방법들 중 일부의 예시이다. 이러한 통합에 이용되는 포맷은 SIREN14-3D 포맷이라고 지칭된다. 포맷은 하나의 네트워크 패킷에 복수의 페이로드를 운반하기 위해 캡슐화(encapsulation)를 이용한다. 캡슐화의 기술, 헤더, 플래그, 및 패킷 및 데이터 포맷의 다른 일반적인 양태들은 본 기술분야에 공지되어 있으며, 따라서 여기에서는 상세하게 설명되지 않는다. 명확함을 위하여, 가상 환경과의 통합 또는 가상 환경의 동작의 상세가 본 발명의 기술들을 설명하는 데에 있어서 밀접한 관련을 갖지 않는 경우에, 그러한 상세들은 본 논의에서 생략된다.
구성요소(401)는 이 명세의 부분이 이 포맷의 바람직한 SIREN14-3D 버전인 V2 RTP 버전에 관한 것이고, 하나 이상의 캡슐화된 페이로드들이 RTP 네트워크 프로토콜을 이용하여 네트워크를 통해 전송되는 네트워크 패킷에 의해 운반됨을 서술한다.
본 바람직한 실시예에서, SIREN14-3D 버전의 V2 RTP 페이로드는 오디오 데이터를 갖는 캡슐화된 미디어 페이로드와, 그에 후속하는 0 이상의 다른 캡슐화된 페이로드로 구성된다. 각각의 캡슐화된 페이로드의 콘텐츠는 이하에 설명되는 headerFlags 플래그 비트(414)에 의해 주어진다.
구성요소(410)는 V2 포맷에서의 캡슐화된 페이로드의 헤더 부분을 기술한다. 구성요소(410)의 상세는 헤더(410) 내에서 메타데이터의 개별 구성요소들을 기술한다.
411에 도시된 바와 같이, 헤더 내의 제1 값은 32비트 크기인 userID 값이고, 이 값은 그 세그먼트에 대한 에미션의 소스를 식별한다.
그에 이어, 세션 ID(412)라고 명명된 32비트 항목이 뒤따른다. 이 값은 그 세그먼트가 소속되는 세션을 식별한다.
그에 이어, smoothedEnergyEstimate(413)라고 명명된, 이 세그먼트에 대한 세기값을 위한 항목이 나온다. 구성요소(413)는 헤더에 뒤따르는 오디오 데이터의 세그먼트의 고유 크기에 대한 세기값을 위한 메타데이터 값이고, 그 값은 특정 시스템 구현의 단위로 된 정수값이다.
바람직한 실시예에서, smoothedEnergyEstimate 값(413)은 스트리밍 음향 데이터로부터의 다수의 오리지널 또는 "미가공(raw)" 값들을 함께 스무딩(smoothing)함으로써 결정된 롱텀(long-term)으로 "스무딩된" 값이다. 이는 그 외에는 오디오 데이터에 존재할 수 있는 클라이언트 컴퓨터에 대한 음향 데이터의 디지털화 프로세스에 의해 야기되는 노이즈의 갑작스러운 순간들("클릭들" 등) 또는 데이터 아티팩트들(artifacts)로부터 초래될 수 있는 바람직하지 못한 필터 결과들을 방지한다. 이 바람직한 실시예에서의 값은 세그먼트의 음향 데이터에 의해 반영되는 오디오 에너지를 계산하기 위한 공지의 기술들을 이용해서 세그먼트에 대하여 계산된다. 바람직한 실시예에서, '알파(alpha)' 값이 0.125인 1차 IIR(Infinite Impulse response) 필터를 이용하여 순간 샘플 에너지
Figure pct00002
를 스무딩 처리하고 세그먼트의 에너지에 대한 세기 값을 생성한다. 세그먼트에 대한 세기 값을 계산 또는 할당하는 다른 방법들이 설계 선택에 따라 이용될 수 있다.
32 플래그 비트들로 구성되는 headerFlags(414)가 엘리먼트(413)에 후속한다. 페이로드 내의 헤더에 후속하는 데이터 및 포맷의 종류를 나타내기 위하여 다수의 이들 플래그 비트들이 이용된다.
420은 headerFlags(414) 내에서 설정될 수 있는 플래그 비트 정의들의 세트의 일부를 보여준다.
엘리먼트(428)는 숫자 플래그 값이 0×1인 AUDIO_ONLY 페이로드에 대한 플래그(이 플래그는 페이로드 데이터가 스트리밍 오디오의 세그먼트에 대한 압축된 포맷으로 80 바이트의 오디오 데이터로 구성되는 것을 나타냄)를 설명한다.
엘리먼트(421)는 수치 플래그 값이 0×2인 SPEAKER_POSITION 페이로드에 대한 플래그(이 플래그는 페이로드 데이터가 소스 아바타(source avatar)의 "마우스(mouth)" 또는 스피킹부의 현재 가상 위치를 구성하는 메타데이터를 포함하는 것을 나타냄)를 기술한다. 이것에는 스트리밍 오디오의 세그먼트에 대한 압축된 포맷으로 80 바이트의 오디오 데이터가 후속될 수 있다. 위치 업데이트 데이터는 가상 환경의 좌표 내의 X, Y 및 Z 위치에 대한 3개의 값들로 구성된다.
바람직한 실시예에서, 아바타인 각각의 소스는 SPEAKER_POSITION 정보를 갖는 페이로드를 초당 2.5회 송신한다.
엘리먼트(422)는 수치 플래그 값이 0×4인 LISTENER_POSITION 페이로드에 대한 플래그(이 플래그는 페이로드 데이터가 아바타의 "귀(ears)" 또는 리스닝부의 현재 가상 위치로 구성되는 메타데이터를 포함하는 것을 나타냄)를 설명한다. 이것에는 80 바이트의 오디오 데이터가 후속될 수 있다. 위치 정보는 필터 구현예에서 어느 소스들이 특정 아바타의 "가청 근접권역"에 있는지를 결정하는 것을 허용한다. 바람직한 실시예에서, 아바타인 각각의 소스는 LISTENER_POSITION 정보를 갖는 페이로드를 초당 2.5회 송신한다.
엘리먼트(423)는 수치 플래그 값이 0×10인 LISTENER_ORIENTATION 페이로드에 대한 플래그(이 플래그는 페이로드 데이터가 현재의 가상 방위(orientation)로 구성되거나 사용자의 아바타의 리스닝부의 방향을 향하는 메타데이터를 포함함)를 설명한다. 이 정보는 필터 구현예 및 가상 환경에서, 아바타가 "지향성 청력(directional hearing)", 또는 토끼나 고양의 귀들과 같이 청력을 위한 특별한 가상의 해부학적 구조를 가질 수 있도록 가상 현실을 확장하는 것을 허용한다. 엘리먼트(424)는 수치 플래그 값이 0×20인 SILENCE_FRAME 페이로드에 대한 플래그(이 플래그는 세그먼트가 침묵을 나타내는 것을 나타냄)를 설명한다.
바람직한 실시예에서, 송신할 오디오 에미션 세그먼트들을 소스가 갖지 않으면, 소스는 전술한 바와 같이 필요에 따라 SILENCE_FRAME 페이로드들의 페이로드들을 송신하여 SPEAKER_POSITION 및 LISTENER_POSITION 페이로드들을 위치 메타데이터와 함께 송신한다.
필터링 동작에 대한 세그먼트 포맷의 부가적인 양태들
바람직한 실시예에서, 아바타로부터의 오디오 에미션은 그 동일한 아바타에 대하여는 렌더링되지 않으며, 그 아바타에 대한 스트리밍 오디오 데이터의 임의의 필터링으로 들어가지 않는다(이것은 설계 선택의 문제이다). 이 선택은 디지털 전화 통신 및 비디오 통신에서의 "측음(side-tone)" 오디오 또는 비디오 신호들을 렌더링하지 않거나 억제하는 공지의 관습에 부합한다. 대안의 실시예는 아바타이기도 한 소스로부터의 에미션들을, 그 동일한 아바타에 대하여 무엇이 인식될 수 있는지를 판정할 시에 처리 및 필터링할 수 있다.
용이하게 이해되는 바와 같이, 여기에 설명된 필터링 기술들은 가상의 환경의 관리 기능들이 통합되어 스트리밍 데이터의 필터링 및 가상 환경의 관리 양자에서 더 큰 효율을 얻을 수 있다.
필터 동작의 세부사항들
이제 필터링 시스템(517)의 동작이 세부적으로 설명될 것이다.
20 밀리초의 기간에서, 세션 관리자(504)는 지휘 마스터 클럭(authoritative master clock)으로부터 시간 값을 읽는다. 이 세션 관리자는 그 후 인커밍 세그먼트들에 대한 커넥션들로부터 그 시간 값과 동일하거나 더 빠른 도달 시간을 갖는 모든 세그먼트들을 획득한다. 주어진 소스로부터의 둘 이상의 세그먼트가 반환되면, 그 소스로부터의 덜 최신의 세그먼트들이 포기된다. 남은 세그먼트들은 현재 세그먼트들의 세트로 지칭된다. 세션 관리자(504)는 그 후 현재 세그먼트들의 세트를 세그먼트 라우팅 컴포넌트(540)에 제공하며, 이 컴포넌트는 현재 세그먼트들을 특정한 아바타별 필터들(per-avatar filters)에 라우팅한다. 세그먼트 라우팅 컴포넌트의 동작이 이하에 설명될 것이다. 세그먼트 라우팅 컴포넌트(540)에 제공되지 않는 세그먼트들은 필터링되지 않으므로 아바타에 렌더링을 위해 전달되지 않는다.
세그먼트 라우팅 컴포넌트(540)는 어느 소스들이 어느 아바타들의 가청 근접권역(아바타의 가청 근접권역는 아바타의 청력부의 특정한 가상의 거리 내에 있는 가상 환경의 부분임)내에 있는지를 기록하는 데이터 테이블인 인접 행렬(adjacency matrix)(535)을 이용하여 위치 세션에 속하는 세그먼트들에 대하여 스테이지 1(stage 1) 필터링을 수행한다. 바람직한 실시예에서, 이 가상 거리는 가상 현실 시스템의 가상 좌표 단위들(virtual coordinate units) 내의 80 단위들이다. 이 가상 거리보다 아바타의 청력부로부터 더 멀리에 있는 음향 에미션들은 아바타에게 들리지 않는다.
인접 행렬(535)은 도 7에 상세히 예시되며, 인접 행렬(535)은 2차원 데이터 테이블이다. 각각의 셀은 소스/아바타 조합을 나타내며 소스-아바타 조합에 대한 거리-가중치(distance-weight value)를 포함한다. 거리 가중치는 소스와 아바타 간의 가상 거리에 따른 세그먼트에 대한 고유한 소리의 세기 또는 세기 값을 조정하기 위한 인자(factor)이다(거리 가중 인자는 가상 거리가 클수록 작아짐). 이 바람직한 실시예에서, 거리 가중치는 거리의 선형 함수로서 롤-오프(roll-off)에 대한 클램프된 공식에 의해 계산된다. 다른 공식들이 대신 이용될 수 있는데, 예를 들어, 더욱 효율적인 동작을 위해 근사적이거나 클램핑, 또는 최소 및 최대 세기, 더욱 극적이거나 덜 극적인 롤-오프 효과들, 또는 다른 효과들 등의 효과들을 포함하는 공식이 선택될 수 있다. 예를 들어 다음의 예시적인 참조문헌들 중 어느 하나인 설계 선택에 따라 특정의 애플리케이션에 적합한 임의의 공식이 이용될 수 있다:
Figure pct00003
인접 행렬은 A, B, C 등으로 710에서 좌측을 따라 도 7에 도시된, 각각의 소스에 대한 하나의 행(row)을 갖는다. A, B, C 및 D로서 720에서 상부에 걸쳐 도시된 바와 같이 각각의 목적지(destination) 또는 아바타에 대하여 하나의 열(column)이 있다. 바람직한 실시예에서, 아바타는 또한 소스이므로, 아바타 B에 대하여 732에 열 B와 마찬가지로 730에 행 B가 존재하지만, 아바타들보다 더 많거나 더 적은 소스들, 및 아바타들이 아닌 소스들 및 그와 반대인 경우가 있을 수 있다.
인접 행렬 내의 각각의 셀은 행 및 열(소스, 아바타)의 교점에 있다. 예를 들어, 행(731)은 소스 D에 대한 행이며, 열(732)은 아바타 B에 대한 열이다.
인접 행렬 내의 각각의 셀은 소스가 가청 근접권역 내에 있지 않거나 아바타에게 들리지 않는 것을 나타내는 0의 거리 가중치, 또는 0과 1 사이의 거리 가중치(이 값은 위에서 설명한 공식에 따라 계산된 거리 가중치이며, 그 목적지에서 그 소스로부터의 에미션에 대한 겉보기 세기(apparent loudness)를 결정하기 위하여 세기 값에 승산되어야 하는 인자임)를 포함한다. 행과 열의 교점에서의 셀(733)은 본 예에서는 0.5로서 도시된 (D, B)에 대한 가중치의 값을 유지한다.
가중 인자는 셀의 행에 의해 표현된 소스의 현재 가상 위치 및 열에 의해 표현된 아바타의 "귀"의 현재 가상 위치를 이용하여 계산된다. 바람직한 실시예에서, 디지털 통신 분야에서 공지된 측음 오디오에 대한 처리에 부합하여, 각각의 아바타와 그 자신에 대한 셀은 0으로 설정되고 변경되지 않으며, 소스인 엔터티(entity)로부터의 음향은 목적지로서의 엔터티에 송신되지 않는다. 이것은 값들의 대각선 세트(735)에 도시되는데, 이들은 모두 0이다(이 대각선의 모든 다른 셀들과 같이, 셀(소스=A, 아바타=A) 내의 거리 가중 인자는 0이다. 대각선을 따르는 셀들 내의 값들(735)은 더 나은 판독성을 위해 굵은 텍스트로 도시된다.
바람직한 실시예에서, 소스들 및 다른 아바타들은 가상 위치들에 대한 위치 데이터를 갖는 스트리밍 데이터의 세그먼트들을 초당 2.5회 송신한다. 세그먼트가 위치를 포함하는 경우, 세션 관리자(504)는 532에 나타낸 바와 같이, 인접 행렬(535) 내의 세그먼트의 소스 또는 다른 아바타와 연관된 위치 정보를 업데이트하기 위해 세그먼트(114)의 userID 및 위치 값들을 인접 행렬 업데이터(530)에 보낸다.
인접 행렬 업데이터(530)는 인접 행렬(521)의 모든 셀들 내의 거리 가중 인자들을 주기적으로 업데이트한다. 바람직한 실시예에서, 이것은 다음과 같이 초당 2.5회의 주기로 수행된다.
인접 행렬 업데이터(530)는 인접 행렬(535)로부터 인접 행렬(535)의 각각의 행에 대한 관련된 위치 정보를 획득한다. 행에 대한 이 위치 정보를 획득한 후, 인접 행렬 업데이터(530)는 인접 행렬(535)의 각각의 열에 대한 아바타의 청력부에 대한 위치 정보를 획득한다. 위치 정보를 획득하는 것은 533에 나타낸다.
아바타의 청력부에 대한 위치 정보를 획득한 후, 인접 행렬 업데이터(530)는 소스 위치와 아바타의 청력부의 위치 간의 가상 거리를 결정한다. 거리가 가청 근접권역에 대한 임계 거리보다 더 크면, 도시된 바와 같이, 인접 행렬(535) 내의 소스의 행 및 아바타의 열에 대응하는 셀에 대한 거리 가중치는 0으로 설정된다. 소스 및 아바타가 동일하다면, 값은 전술된 바와 같이 0으로서 변경 없이 유지된다. 그렇지 않다면, 소스 X와 목적지 Y 간의 가상 거리가 계산되고, 전술된 공식에 따라 거리 가중치(셀에 대한 거리 가중치는 이 값으로 설정)가 계산된다. 거리 가중치를 업데이트하는 것은 534에 예시된다.
세그먼트 라우팅 컴포넌트(540)가 소스가 아바타의 가청 근접권역 밖에 있다고 결정하는 경우, 세그먼트 라우팅 컴포넌트(540)는 소스로부터 아바타에 대한 스테이지 2 필터로 세그먼트들을 라우팅하지 않으므로, 이 세그먼트들은 아바타에 대하여 렌더링되지 않을 것이다.
세션 관리자(504)로 돌아가서, 세션 관리자(504)는 또한 512 및 516에 예시된 것들과 같이 스테이지 2 필터 컴포넌트들로의 잠재적인 전달을 위하여, 고정 세션들(static sessions)에 속하는 현재 세그먼트들을 세그먼트 라우팅 컴포넌트(540)에 제공한다.
세그먼트 라우팅 컴포넌트(540)는 에미션에 대한 특정의 세그먼트가 송신되어야 하는 아바타들의 세트를 결정하고 상기 세그먼트를 그 아바타들에 대한 1 스테이지 2 필터들에 송신한다. 특정의 시간 슬라이스(time slice)동안 특정의 스테이지 2 에 송신되는 특정 소스로부터의 세그먼트들은 상이한 세션들로부터의 세그먼트들을 포함할 수 있고 복제 세그먼트들(duplicate segments)을 포함할 수 있다. 세션 ID 값이 고정 세션을 나타내면, 세그먼트 라우팅 컴포넌트는 아래에 설명된 세션 테이블에 액세스하여 그 세션의 멤버들인 모든 아바타들의 세트를 결정한다. 이것은 525에 도시된다. 세그먼트 라우팅 컴포넌트는 그 후 세그먼트를 그 아바타들과 연관된 스테이지 2 필터들의 각각에 송신한다.
세션 ID 값이 위치 세션의 값이라면, 세그먼트 라우팅 컴포넌트는 인접 행렬(535)에 액세스한다. 패킷의 소스에 대응하는 인접 행렬의 행으로부터, 세그먼트 라우팅 컴포넌트는 0이 아닌 거리 가중 인자를 갖는 인접 행렬의 모든 열들 및 각각의 그러한 열의 아바타들을 결정한다. 이것은 "인접 행렬"로 라벨링된 536에 도시된다. 세그먼트 라우팅 컴포넌트는 그 후 세그먼트를 그 아바타들과 연관된 스테이지 2 필터들의 각각에 송신한다.
고정 세션들에 대한 스테이지 1 필터링은 세그먼트 라우팅 컴포넌트(540) 및 세션 테이블(521)을 이용하여 수행된다. 세션 테이블(521)은 세션들 내의 멤버쉽을 정의한다. 세션 테이블은 2-열 테이블이며, 제1 열은 세션 ID 값을 포함하고, 제2 열은 소스 또는 아바타에 대한 식별자와 같은 엔터티 식별자를 포함한다. 엔터티는 엔터티의 식별자가 제2 열 내에 있는 모든 행들 내의 세션 ID 값에 의해 식별된 모든 세션들의 멤버이다. 세션의 멤버들은 제1 열 내의 세션의 세션 ID를 갖는 모든 행들의 제2 열에 나타나는 모든 엔터티들이다. 세션 테이블은 세션 업데이트 테이블에 행들을 추가하거나 그로부터 행들을 제거함으로써 고정 세션 멤버쉽에 응답하는 세션 테이블 업데이터 컴포넌트(520)에 의해 업데이트된다. 세션 테이블(521) 및 세션 테이블 업데이터(520) 둘 다의 구현을 위한 다수의 기술들이 당업자에게 공지되어 있다. 테이블(521)이 세그먼트에 대한 소스 및 아바타가 동일한 고정 세션에 속하는 것을 나타내는 경우, 세션 라우터(540)는 세그먼트를 아바타에 대한 스테이지 2 필터에 라우팅한다.
도 6은 바람직한 실시예의 512와 같은 스테이지 2 필터링 컴포넌트의 동작을 도시한다. 각각의 스테이지 2 필터링 컴포넌트는 단일의 아바타와 연관된다. 600은 스테이지 2 필터링 컴포넌트네 전달되는 현재의 세그먼트들(505)의 세트를 도시한다. 대표적 세그먼트들(611, 612, 613, 614 및 615)의 세트가 도시된다. 생략부호는 임의의 수의 세그먼트들이 있을 수 있는 것을 나타낸다.
필터링 2 프로세싱의 시작은 620에 도시된다. 현재의 세그먼트들(505)의 다음 세트가 입력으로서 획득된다. 엘리먼트들의 단계들(624, 626, 628 및 630)은 단계(620)에서 획득된 현재의 세그먼트들의 세트 내의 각각의 세그먼트에 대하여 수행된다. 624는 각각의 세그먼트로부터 세그먼트의 에너지 값 및 세그먼트의 소스 id를 얻는 단계를 도시한다. 626에서, 각각의 세그먼트에 대하여, 세션 ID 값이 획득된다. 세션 ID 값이 위치 세션의 값이라면, 다음 단계는, 도시된 바와 같이 628이다. 세션 ID 값이 고정 세션의 값이라면, 다음 단계는 632이다.
628은 인접 행렬(535)로부터 이 세그먼트의 소스인 소스, 및 이 필터 컴포넌트가 스테이지 2 필터 컴포넌트인 아바타인 아바타에 대한 인접 행렬(535)의 셀로부터의 거리 가중을 얻는 단계를 도시한다. 이것은 511에서 점선 화살표로 표시된다.
630은 세그먼트의 에너지 값과 셀로부터의 거리 가중을 승산하여, 세그먼트에 대한 에너지 값을 조정하는 단계를 도시한다. 모든 세그먼트들이 단계들(624, 626, 628 및 630)에 의해 프로세스된 후, 프로세싱은 단계(632)로 계속된다.
632는 각각의 세그먼트의 에너지 값에 의해 단계(622)에서 획득된 모든 세그먼트들을 소팅(sorting)하는 단계를 도시한다. 세그먼트들이 소팅된 후, 복제들의 임의의 세트 중 하나를 제외한 모두가 제거된다. 634는 필터링 2의 필터링의 출력으로서 622에서 획득된 세그먼트들의 서브세트를 출력하는 단계를 도시한다. 바람직한 실시예에서, 서브세트는 소팅 단계(632)에 의해 결정되는 가장 큰 에너지 값들을 갖는 세 개의 세그먼트들이다. 출력은 대표적인 세그먼트들(611, 614 및 615)을 도시하는 690에서 나타낸다.
물론, 본 발명의 기술들을 따라, 아바타에 출력될 세그먼트들의 선택은 바람직한 실시예에서 이용된 것들과는 상이한 소팅 및 선택 기준을 포함할 수 있다. 프로세싱은 루프 내에서 636으로부터 620에서의 시작 단계로 계속되기 전에, 634로부터 단계 636으로 계속된다. 636은 바람직한 실시예에서는 20 밀리초의 간격으로 주기적으로 루프가 실행되는 것을 보여준다.
렌더링을 위한 클라이언트 동작
이 바람직한 실시예에서, 주어진 아바타에 대하여 인식 가능한 오디오 에미션을 나타내는 세그먼트들은 아바타의 인식의 포인트에 따라 그 아바타에 대하여 렌더링된다. 특정의 사용자에 대한 아바타의 경우, 렌더링은 사용자의 클라이언트 컴퓨터 상에서 수행되고, 오디오 데이터의 스트림들은 소스와 사용자의 아바타에 대한 가상 거리 및 관련 방향에 따른 적절한 겉보기 볼륨(apparent volume) 및 스테레오 음향(stereophonic) 또는 입체적인(binaural) 방향으로 렌더링된다. 렌더러에 송신된 세그먼트들은 세그먼트 대한 메타데이터를 포함하므로, 필터링을 위해 이용된 메타데이터는 또한 렌더러에서 이용될 수 있다. 또한, 필터링 2 동안 조정될 수 있는 세그먼트의 에너지 값이 렌더링 프로세스에서 이용될 수 있다. 따라서, 소스에 의해 최초 송신된 인코딩된 오디오 데이터를 트랜스코드(transcode)하거나 수정할 필요가 없으므로, 렌더링은 충실도(fidelity) 또는 명료도(intelligibility)의 손실이 없다. 렌더링은 물론, 필터링으로부터 유발된 렌더링될 세그먼트들의 수의 감소에 의해 크게 간단해지기도 한다.
렌더링된 음향은 클라이언트 컴퓨터의 헤드폰들이나 스피커들을 통해 음향을 재생함으로써 사용자에 대하여 출력된다.
바람직한 실시예의 다른 양태들
쉽게 이해될 것이지만, 본 발명의 기술들을 구현하거나 또는 적용하는 데에는 다수의 방법이 존재하며, 여기에 제공되는 예들은 제한적인 것이 아니다. 예를 들어, 필터링은 개별 실시예에서, 병행 방식으로, 또는 컴퓨터 자원의 가상화를 이용하여 구현될 수 있다. 또한, 본 기술들에 따른 필터링은 가상 현실 시스템의 네트워크 대역폭 및/또는 처리 전력을 최상으로 이용하도록 요구될 시에 시스템 내의 다양한 지점에서 또한 다양한 조합으로 선택되어 수행될 수 있다.
추가 종류의 필터링 , 및 다수 종류의 필터링의 조합
특정 아바타가 인식할 수 있는 에미션을 나타내는 세그먼트들을 특정 아바타가 인식할 수 없는 에미션을 나타내는 세그먼트들로부터 분리하는 어떠한 종류의 필터링 기술이라도 이용될 수 있다. 전술한 바람직한 실시예에 나타낸 바와 같이, 본 발명의 기술을 이용하여 다수 종류의 필터링이 개별적으로, 연속적으로, 또는 조합하여 이용될 수 있다. 또한, 임의의 종류의 에미션을 이용하여 에미션원과 에미션에 대한 감지자 간의 관계가 실시간으로 변할 수 있는 임의의 종류의 가상 환경에서 본 발명의 기술들에 따른 필터링을 이용할 수 있다. 사실상, 고정 세그먼트에 속하는 세그먼트들을 갖는 상대적 크기의 필터링의 이용에 대한 바람직한 실시예는 필터링이 위치에 의존하지 않는 상황에서의 기술들을 이용하는 예에 해당한다. 고정 세그먼트와 함께 이용되는 기술은, 예컨대 전화 회의 호출 어플리케이션에 이용될 수 있다.
명백한 사항으로서, 본 명세서에서의 기술들이 다수 종류의 통신 및 스트리밍 데이터에 애플리케이션될 수 있음과 함께 용이성 및 저비용성은 종래 기술에 대한 본 기술들이 갖는 장점 중 일부에 속한다.
애플리케이션의 종류
물론, 본 발명의 기술들은 광범위한 애플리케이션을 포함한다.
쉽게 알 수 있는 예로는,
● 예를 들어, 가상 콘서트 홀 등의 가상 오디오 공간 환경에서 인식 지점에 대한 집합적인 오디오를 렌더링 행하기 위해, 레코딩을 위한 수많은 오디오 입력의 오디오 믹싱 및 렌더링에 대한 개선.
● 예를 들어, 수많은 아바타로부터의 텍스트 메시징 데이터의 스트림들이 가상 환경에서 동시에 디스플레이되거나 렌더링되어야 하는 경우의 텍스트 메시징 통신. 이는 본 기술들이 적용될 수 있는 스트리밍 가상 데이터의 가능한 다수의 예들 중 하나이다.
● 전화/오디오 가상 회의 환경 등을 위해, 실시간 회의 시스템에 대한 스트리밍 데이터의 필터링 및 렌더링.
● 가상 감각 환경에서 감각 입력을 위한 스트리밍 데이터의 필터링 및 렌더링.
● 현실의 엔터티에 대한 실시간의 지리적 근접성에 기초한 스트리밍 데이터의 배포 - 이 엔터티는 가상 환경에서의 아바타와 관련되어 있음 -
이 소스들의 에미션을 필터링하는 데 필요한 정보의 종류는 가상 환경의 특성에 의존할 것이며, 가상 환경의 특성은 의도된 애플리케이션에 의존할 수 있다. 예를 들어, 회의 시스템을 위한 가상 환경에서, 회의 참석자 서로 간의 상대적인 위치는 중요하지 않을 수 있으며, 그러한 환경에서, 필터링은 회의 참석자의 오디오 에미션의 상대적 고유 크기 및 회의 참석자의 특정 세션과의 연관성 등의 정보에만 기초하여 행해질 수 있다.
필터링과 다른 프로세싱의 조합 및 통합
또한, 필터링은 다른 프로세싱과 결합하여 우수한 효과를 낼 수 있다. 예를 들어, 가상 환경에서 소정 스트림의 미디어 데이터는, 가상 환경 내의 가상 분수의 흐르는 물 소리 등 "배경 음향"로서 식별될 수 있다. 가상 환경의 설계자는, 이들 기술의 통합체의 일부로서, 배경 음향이 다른 스트리밍 오디오 데이터와 동일하게 필터링되지 않고, 또한 다른 데이터가 필터링되지 않게 하되, 그 대신, 다른 방식으로 마스킹되고 필터링되었을 수도 있는 다른 스트리밍 데이터가 존재하는 경우에, 배경 음향에 대한 데이터가 필터링되고 프로세싱되어, 보다 약한 크기로 렌더링되는 것을 선호할 수 있다. 필터링 기술에 대한 그러한 애플리케이션은 배경 음향이, 클라이언트 컴포넌트 내의 컴포넌트를 렌더링함으로써 국지적으로 생성되게 하는 대신에, 가상 환경 시스템에서 서버 컴포넌트에 의해 생성되게 하는 것을 허용한다.
또한, 이들 기술들에 따른 동일한 필터링은 서로 다른 종류의 에미션 및 스트리밍에 적용될 수 있다는 것을 쉽게 알 수 있다. 예를 들어, 서로 다른 사용자는 가상 환경을 통해 서로 다른 종류의 에미션에 의해 의사 전달을 할 수 있으며 - 청각 장애를 가진 사용자는 가상 환경에서 시각적인 텍스트 메시징에 의해 의사 전달을 하고, 또 다른 사용자는 음성 음향에 의해 의사 전달을 할 수 있음 - , 이에 따라 설계자는 통합된 방식으로 두 종류의 스트리밍 데이터에 동일한 필터링이 적용되도록 선탤할 수 있다. 그러한 구현예에서, 예를 들어, 서로 다른 종류의 2개의 에미션과 무관하게, 소스 위치, 세기, 및 아바타 위치 등 현재의 아바타 정보와 메타데이터에 따라 서로 다른 2개의 종류의 에미션에 대한 필터링이 행해질 수 있다. 요구되는 것은 비교가능한 세기 데이터가 전부이다.
전술한 바와 같이, 본 발명의 기술들은 렌더링되어야 할 데이터량을 감소시키는 데 이용될 수 있으며, 이에 따라 실시간 스트리밍 데이터의 렌더링을 네트워크 가상 현실 시스템의 "엣지(edge)"로 이동시킬 가능성을 증대시킨다 - 서버 컴포넌트 상에 부담을 가하는 렌더링이 아닌 목적지 클라이언트 상의 렌더링. 또한, 설계자는 이들 기술들을 이용하여, 클라이언트 상에서 이전에 구현된 레코딩 등의 기능이 서버 컴포넌트 상에서 수행될 수 있을 정도로 데이터량을 감소시켜, 특정 애플리케이션에 대한 설계자로 하여금 클라이언트 비용을 감소시키거나, 또는 클라이언트 컴퓨터나 그 소프트웨어에 지원되지 않는 가상 기능을 제공하도록 선택하는 것을 가능하게 한다.
필터링을 라우팅 및 그 외 프로세싱과 결합시키는 유연성 및 파워, 그리고 그렇게 함으로써 구현 비용이 매우 개선된다는 것은 본 명세서에 개시된 새로운 기술이 갖는 수많은 장점 중에 속한다.
본 기술의 적용의 일부 추가적인 양태들의 요약
전술한 바에 부가하여, 그 외 유용한 양태의 기술들이 물론 존재한다. 몇 가지 추가적인 예들을 여기서 언급한다.
바람직한 실시예에서, 예컨대, 위치 및 방위에 관련된 메다테이터에 의해 제공되는 현재의 에미션 소스 정보는, 렌더링의 최종 지점에서 스트리밍 미디어 데이터를 스테레오 또는 입체 음향적으로 렌더링하는 데 보다 유용할 수 있기 때문에, 렌더링된 음향은 좌측으로부터, 우측, 위로부터 등 적절한 상대적인 방향으로부터 들어오는 것으로 감지된다. 따라서, 필터링에 대해 이러한 관련 정보가 내포하는 것은 전술한 바에 부가하여, 렌더링에서의 시너지적인 장점을 추가로 가질 수 있다.
부분적으로 종래 기술에 대한 이들 장점 및 새로운 간량성으로 인해, 본 발명의 기술들을 이용하는 시스템은 매우 신속하게 동작할 수 있으며, 또한 설계자는 자신의 기술들을 신속하게 이해하고 인식할 수 있다. 이들 기술들의 일부는 특별한 하드웨어 또는 펌웨어의 구현에 특히 도움을 준다. 설계 선택의 문제로서, 이 기술들은 네트워크 패킷 라우팅 시스템과 마찬가지의 인프라구조와 통합될 수 있다: 따라서 이들 새로운 기술들은 용이하고 광범위하게 이용가능한 매우 효율적인 새로운 종류의 컴포넌트들, 및 장래에 이용가능하게 될 수 있는 새로운 종류의 컴포넌트에 의해 구현될 수 있다. 또한, 이들 기술들은 아직 알려지지 않은 종류의 에미션 및 아직 구현되지 않은 종류의 가상 환경에 적용될 수도 있다.
결론
전술한 상세한 설명은 아바타별로 렌더링된 환경을 이용하는 가상 현실 시스템에서 실시간의 아바타별 스트리밍 데이터를 제공하기 위해 발명자의 조정가능한 기술들을 이용하는 방법에 대해 당업자에게 개시하고 있으며, 또한 이들 기술들을 구현하는 발명자들에게 현재 알려진 최상의 모드를 개시하고 있다.
당업자라면, 스트리밍 데이터가 렌더링되며 스트리밍 데이터를 전달하거나 또는 렌더링하는 데 필요한 프로세싱 자원 및/또는 네트워크 대역폭을 감소시킬 필요가 있는 어떠한 영역에서라도, 이들 기술들에 대해 가능한 다수의 애플리케이션들이 존재한다는 것을 쉽게 알 수 있을 것이다. 본 필터링 기술은, 스트리밍 데이터가 가상 환경의 소스들로부터의 에미션을 나타내고, 가상 환경에서 서로 다른 감지 지점에 대해 요구될 시에 렌더링되는 경우에 특히 유용하다. 물론, 필터링이 행해지는 기반(basis)은 가상 환경의 본질 및 에미션의 본질에 의존할 것이다. 본 명세서에 개시되는 심리음향(psychoacoustic) 필터링 기술들은 단지 가상 환경에서 뿐만 아니라, 다수의 소스로부터의 오디오가 렌더링되는 어떠한 상황에서도 보다 유용하다. 마지막으로, 렌더러에서 스트리밍 데이터를 필터링하고 렌더링하는 양자 경우에서 스트리밍 데이터를 포함하는 세그먼트들 내의 메타데이터를 이용하는 기술은 네트워크 대역폭 요건 및 프로세싱 자원 양자 모두에서 실질적인 감소의 효과를 가져온다.
또한, 당업자라면, 구현기가 존재하는 만큼 본 발명자의 기술들을 구현하는 다수의 방법들이 존재한다는 것을 즉시 이해할 것이다. 본 기술에 주어진 구현예의 세부 사항은 스트리밍 데이터가 무엇을 나타내는지, 환경의 종류, 가상인식 아니면 그 외의 것인식, 본 기술들이 무엇에 의해 이용되는지, 및 시스템의 프로세싱 자원과 이용가능한 네트워크 대역폭의 양 및 위치와 관련하여 본 기술들이 이용되는 시스템 컴포넌트의 성능에 의존할 것이다.
전술한 이유 전부에 대하여, 본 상세한 설명은 모든 관점에서 예시적인 것이며 제한적이지 않은 것으로 간주되어야 하며, 본 명세서에 개시된 본 발명의 범위는 상세한 설명이 아닌 특허법이 허용하는 최광의로 해석되는 청구범위로부터 결정되어야 한다.

Claims (18)

  1. 가상 현실 시스템 내의 필터로서 - 상기 가상 현실 시스템은 가상 환경 내의 아바타에 의해 인식(perceived)되는 가상 환경을 렌더링하며, 상기 가상 환경은 상기 아바타에 의한 상기 가상 환경에서의 인식가능성이 실시간으로 변하는 상기 가상 환경에서의 에미션(emission)의 소스를 포함하며, 상기 에미션은 스트리밍 데이터를 포함하는 세그먼트들에 의해 상기 가상 현실 시스템에서 표현됨 - ,
    상기 필터는 상기 아바타와 연관되며,
    상기 필터는,
    상기 세그먼트의 스트리밍 데이터에 의해 표현되는 상기 에미션에 대한 현재 에미션 소스 정보; 및
    상기 필터의 아바타에 대한 현재 아바타 정보에 액세스하고,
    상기 필터는, 상기 세그먼트의 스트리밍 데이터에 의해 표현되는 상기 에미션이 상기 아바타에 인식되는지의 여부를 상기 세그먼트의 스트리밍 데이터에 대한 상기 현재 아바타 정보 및 상기 현재 에미션 소스 정보로부터 판정하고, 상기 판정에서 상기 세그먼트의 스트리밍 데이터에 의해 표현되는 상기 에미션이 상기 아바타에 인식 가능하지 않은 것으로 나타나는 경우, 상기 가상 현실 시스템은 상기 가상 환경을 렌더링할 시에 상기 세그먼트를 이용하지 않는 것을 특징으로 하는 필터.
  2. 제1항에 있어서,
    상기 에미션이 인식되는지의 여부에 대한 판정은 상기 가상 환경에서의 상기 에미션의 물리적 특성에 기초하는 것을 특징으로 하는 필터.
  3. 제1항에 있어서,
    상기 아바타는, 상기 아바타가 최소한의 아바타 그룹의 구성원에 기초하여 상기 가상 환경에서 인식할 수 없는 에미션을 추가적으로 인식하는 것을 특징으로 하는 필터.
  4. 제2항에 있어서,
    상기 물리적 특성은 상기 에미션과, 아바타가 인식하지 못하는 에미션을 렌더링하는 상기 가상 환경 내의 상기 아바타 간의 거리인 것을 특징으로 하는 필터.
  5. 제1항에 있어서,
    상기 아바타가 인식 가능한 상기 가상 현실 내에 복수의 에미션이 존재하며;
    상기 에미션이 인식 가능한지의 여부에 대한 판정은, 상기 에미션이 다른 인식 가능한 에미션에 비해 상기 아바타에 의해 심리적으로(psychologically) 인식 가능한지의 여부를 판정하는 것을 특징으로 하는 필터.
  6. 제5항에 있어서,
    상기 아바타에 의해 인식되는 경우, 상기 복수의 에미션은 서로 다른 세기(intensity)를 가지며;
    상기 에미션이 상기 아바타에 의해 심리적으로 인식 가능한지의 여부는, 상기 아바타가 인식 가능한 다른 에미션의 세기들에 대한 상기 에미션의 상대적인 세기에 의해 판정되는 것을 특징으로 하는 필터.
  7. 제1항에 있어서,
    상기 아바타가 인식 가능한 상기 가상 현실 내에 복수의 에미션이 존재하며;
    상기 필터는,
    상기 에미션이 상기 가상 환경에서 상기 에미션의 물리적 특성에 기초하여 인식되는지의 여부를 판정하는 제1 판정; 및
    상기 에미션이 다른 인식 가능한 에미션에 비해 상기 아바타에 의해 심리적으로 인식 가능한지의 여부를 판정하는 제2 판정을 포함하는 것을 특징으로 하는 필터.
  8. 제7항에 있어서,
    상기 필터는 상기 제1 판정에서 상기 에미션이 인식 가능한 것으로 판정되는 경우에만 상기 제2 판정을 행하는 것을 특징으로 하는 필터.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 에미션은 상기 가상 환경에서 들을 수 있는 가청 에미션(audible emission)인 것을 특징으로 하는 필터.
  10. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 에미션은 상기 가상 환경에서 볼 수 있는 가시 에미션(visible emission)인 것을 특징으로 하는 필터.
  11. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 에미션은 상기 가상 환경에서 터치에 의해 인식되는 햅틱 에미션(haptic emission)인 것을 특징으로 하는 필터.
  12. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 가상 현실 시스템은 복수의 컴포넌트의 분산 시스템이며, 상기 컴포넌트는 네트워크에 의해 상호 액세스 가능하며, 상기 에미션은 복수의 제1 컴포넌트에서 생성되고 또 다른 컴포넌트에서 가상 환경을 렌더링하는 데 이용되며, 상기 세그먼트들은 상기 네트워크를 통해 상기 컴포넌트와 그 외 컴포넌트 간에 이송(transport)되고, 상기 필터는 분산 시스템의 상기 제1 컴포넌트와 제2 컴포넌트 간의 어느 곳에도 위치할 수 있는 것을 특징으로 하는 필터.
  13. 제12항에 있어서,
    상기 분산 시스템의 컴포넌트들은 적어도 하나의 클라이언트 및 서버를 포함하며, 상기 에미션은 상기 필터를 포함하는 상기 서버 및 상기 클라이언트의 상기 아바타에 대해 생성되고 또한/또는 렌더링되며, 상기 서버는 상기 클라이언트로부터의 에미션을 표현하는 상기 세그먼트들을 수신하고, 상기 필터를 이용하여 상기 아바타에 대해 렌더링되도록 상기 클라이언트에 제공되는 세그먼트들을 선택하는 것을 특징으로 하는 필터.
  14. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 세그먼트의 스트리밍 데이터에 의해 표현되는 상기 에미션에 대한 상기 현재 에미션 소스 정보 또한 상기 세그먼트에도 포함되어 있는 것을 특징으로 하는 필터.
  15. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 세그먼트들은, 상기 필터가 그 필터의 아바타에 대한 현재 아바타 정보를 획득하는 현재 아바타 정보의 세그먼트들을 더 포함하는 것을 특징으로 하는 필터.
  16. 스트리밍 데이터의 세그먼트에 의해 표현되는 에미션을 렌더링하는 시스템 내의 필터로서 - 상기 에미션은 그 에미션이 잠재적으로 인식될 수 있는 인식 지점으로부터 해당 시점에서 인식되는 경우에 상기 시스템에 의해 렌더링됨 - ,
    상기 필터는 상기 인식 지점과 연관되며,
    상기 필터는,
    상기 시점에서 상기 세그먼트의 스트리밍 데이터에 의해 표현되는 상기 에미션에 대한 현재 에미션 정보; 및
    상기 시점에서 상기 필터의 인식 지점에 대한 현재의 인식 지점 정보에 액세스하고,
    상기 필터는, 상기 세그먼트의 스트리밍 데이터에 의해 표현되는 상기 에미션이 상기 필터의 인식 지점에서 인식될 수 있는지의 여부를 상기 현재의 인식 지점 정보 및 상기 현재 에미션 정보로부터 판정하고, 상기 판정이 상기 세그먼트의 스트리밍 데이터에 의해 표현되는 상기 에미션이 상기 필터의 인식 지점에서 인식가능하지 않은 것으로 나타나는 경우, 상기 시스템은 상기 필터의 인식 지점에서 상기 에미션을 렌더링할 시에 상기 세그먼트를 이용하지 않는 것을 특징으로 하는 필터.
  17. 복수의 소스로부터의 음향 - 상기 음향은 실시간으로 변하는 특성을 갖는 소스들로부터의 음향 및 소스에 의해 생성되는 세그먼트 스트림 내의 세그먼트들로서 표현되는 복수의 소스 중 각각의 소스로부터의 음향임 - 을 렌더링하기 위한 시스템 내의 필터로서,
    상기 필터는 상기 소스들로부터 타임 슬라이스(time-sliced)된 세그먼트 스트림을 수신하고;
    상기 필터는, 상기 타임 슬라이스에 속하는 세그먼트들에 의해 표현되는 음향에 대한 특성의 상호작용에 기인하는 심리음향적(psychoacoustic) 효과에 따라, 렌더링을 위해 타임 슬라이스에 속하는 세그먼트들을 상기 스트림으로부터 선택하는 것을 특징으로 하는 필터.
  18. 복수의 소스로부터의 에미션들을 렌더링하는 렌더러(renderer)로서 - 상기 에미션들은 실시간으로 변하고, 상기 소스들 각각으로부터의 에미션들은 스트리밍 데이터를 포함하는 세그먼트들에 의해 표현됨 - ,
    소스로부터의 세그먼트는 상기 스트리밍 데이터 외에 상기 소스의 에미션에 관한 정보를 포함하며, 상기 세그먼트 내의 상기 소스의 에미션에 관한 정보는 또한 상기 복수의 소스로부터의 에미션을 표현하는 세그먼트들의 서브세트가 상기 렌더러에 이용가능하도록 상기 세그먼트를 필터링하는 데 이용되며;
    상기 렌더러는 상기 서브세트에 속하는 상기 세그먼트들의 상기 소스의 에미션에 관한 정보를 이용하여, 상기 서브세트에 속하는 상기 세그먼트들을 렌더링하는 것을 특징으로 하는 렌더러.




KR1020107018261A 2008-01-17 2009-01-17 아바타별 렌더링 환경을 이용하는 가상 현실 시스템에서 실시간 아바타별 스트리밍 데이터를 제공하기 위한 확장가능한 기술들 KR20110002005A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US2172908P 2008-01-17 2008-01-17
US61/021,729 2008-01-17

Publications (1)

Publication Number Publication Date
KR20110002005A true KR20110002005A (ko) 2011-01-06

Family

ID=40885910

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107018261A KR20110002005A (ko) 2008-01-17 2009-01-17 아바타별 렌더링 환경을 이용하는 가상 현실 시스템에서 실시간 아바타별 스트리밍 데이터를 제공하기 위한 확장가능한 기술들

Country Status (7)

Country Link
EP (1) EP2244797A4 (ko)
JP (3) JP2011510409A (ko)
KR (1) KR20110002005A (ko)
CN (1) CN102186544B (ko)
CA (1) CA2712483A1 (ko)
TW (1) TW200941271A (ko)
WO (1) WO2009092060A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190048857A (ko) 2017-10-31 2019-05-09 에스케이텔레콤 주식회사 증강현실용 컨텐츠 저작 장치 및 방법
KR20190048370A (ko) 2017-10-31 2019-05-09 에스케이텔레콤 주식회사 헤드 마운티드 디스플레이 및 이를 이용하여 가상 공간에서 동작이 수행되도록 하는 방법
KR102523507B1 (ko) * 2021-12-20 2023-04-19 전광표 사운드 맵 서비스 제공 장치 및 방법

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8994782B2 (en) 2011-01-04 2015-03-31 Telefonaktiebolaget L M Ericsson (Publ) Local media rendering
US8860720B1 (en) * 2014-01-02 2014-10-14 Ubitus Inc. System and method for delivering graphics over network
WO2015164969A1 (en) * 2014-04-29 2015-11-05 Socialplay Inc. System and method for cross-application virtual goods management
JP6217682B2 (ja) * 2015-03-27 2017-10-25 ブラザー工業株式会社 情報処理装置及びプログラム
CN105487657A (zh) * 2015-11-24 2016-04-13 小米科技有限责任公司 声音响度的确定方法及装置
CN106899860B (zh) * 2015-12-21 2019-10-11 优必达公司 通过网络传送媒体的***及方法
US9980078B2 (en) 2016-10-14 2018-05-22 Nokia Technologies Oy Audio object modification in free-viewpoint rendering
JP7124715B2 (ja) * 2017-01-18 2022-08-24 ソニーグループ株式会社 情報処理装置、および情報処理方法、並びにプログラム
US11096004B2 (en) * 2017-01-23 2021-08-17 Nokia Technologies Oy Spatial audio rendering point extension
US10531219B2 (en) 2017-03-20 2020-01-07 Nokia Technologies Oy Smooth rendering of overlapping audio-object interactions
US11074036B2 (en) 2017-05-05 2021-07-27 Nokia Technologies Oy Metadata-free audio-object interactions
US11395087B2 (en) 2017-09-29 2022-07-19 Nokia Technologies Oy Level-based audio-object interactions
EP3499917A1 (en) * 2017-12-18 2019-06-19 Nokia Technologies Oy Enabling rendering, for consumption by a user, of spatial audio content
US10542368B2 (en) 2018-03-27 2020-01-21 Nokia Technologies Oy Audio content modification for playback audio
WO2021033258A1 (ja) * 2019-08-20 2021-02-25 日本たばこ産業株式会社 コミュニケーション支援方法、プログラムおよびコミュニケーションサーバ
JP7189360B2 (ja) * 2019-08-20 2022-12-13 日本たばこ産業株式会社 コミュニケーション支援方法、プログラムおよびコミュニケーションサーバ
JP7192136B2 (ja) * 2019-08-20 2022-12-19 日本たばこ産業株式会社 コミュニケーション支援方法、プログラムおよびコミュニケーションサーバ
US11188902B1 (en) * 2020-05-20 2021-11-30 Louise Dorothy Saulog Sano Live time connection application method and devices

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347306A (en) * 1993-12-17 1994-09-13 Mitsubishi Electric Research Laboratories, Inc. Animated electronic meeting place
JPH10207684A (ja) * 1996-11-19 1998-08-07 Sony Corp 3次元仮想現実空間共有システムにおける情報処理装置、情報処理方法および媒体
US6106399A (en) * 1997-06-16 2000-08-22 Vr-1, Inc. Internet audio multi-user roleplaying game
US6241612B1 (en) * 1998-11-09 2001-06-05 Cirrus Logic, Inc. Voice communication during a multi-player game
US20040225716A1 (en) * 2000-05-31 2004-11-11 Ilan Shamir Methods and systems for allowing a group of users to interactively tour a computer network
US6935959B2 (en) * 2002-05-16 2005-08-30 Microsoft Corporation Use of multiple player real-time voice communications on a gaming device
JP2004267433A (ja) * 2003-03-07 2004-09-30 Namco Ltd 音声チャット機能を提供する情報処理装置、サーバおよびプログラム並びに記録媒体
JP3740518B2 (ja) * 2003-07-31 2006-02-01 コナミ株式会社 ゲーム装置、コンピュータの制御方法及びプログラム
JP2005322125A (ja) * 2004-05-11 2005-11-17 Sony Corp 情報処理システム、情報処理方法、プログラム
GB2415392B (en) * 2004-06-25 2008-11-05 Sony Comp Entertainment Europe Game processing
JP2006201912A (ja) * 2005-01-19 2006-08-03 Nippon Telegr & Teleph Corp <Ntt> 3次元仮想オブジェクト情報提供サービス処理方法と3次元仮想オブジェクト提供システムおよびプログラム
JP3863165B2 (ja) * 2005-03-04 2006-12-27 株式会社コナミデジタルエンタテインメント 音声出力装置、音声出力方法、ならびに、プログラム
US20060277466A1 (en) * 2005-05-13 2006-12-07 Anderson Thomas G Bimodal user interaction with a simulated object
EP2016562A4 (en) * 2006-05-07 2010-01-06 Sony Computer Entertainment Inc METHOD FOR IMPLEMENTING AFFECTIVE PROPERTIES IN A COMPUTER GENERATED AVATAR DURING A COMPUTER GAME

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190048857A (ko) 2017-10-31 2019-05-09 에스케이텔레콤 주식회사 증강현실용 컨텐츠 저작 장치 및 방법
KR20190048370A (ko) 2017-10-31 2019-05-09 에스케이텔레콤 주식회사 헤드 마운티드 디스플레이 및 이를 이용하여 가상 공간에서 동작이 수행되도록 하는 방법
KR102523507B1 (ko) * 2021-12-20 2023-04-19 전광표 사운드 맵 서비스 제공 장치 및 방법

Also Published As

Publication number Publication date
EP2244797A2 (en) 2010-11-03
JP2013254501A (ja) 2013-12-19
JP2015053061A (ja) 2015-03-19
EP2244797A4 (en) 2011-06-15
TW200941271A (en) 2009-10-01
WO2009092060A3 (en) 2010-01-14
WO2009092060A2 (en) 2009-07-23
JP2011510409A (ja) 2011-03-31
CN102186544A (zh) 2011-09-14
CN102186544B (zh) 2014-05-14
CA2712483A1 (en) 2009-07-23

Similar Documents

Publication Publication Date Title
KR20110002005A (ko) 아바타별 렌더링 환경을 이용하는 가상 현실 시스템에서 실시간 아바타별 스트리밍 데이터를 제공하기 위한 확장가능한 기술들
US20120016926A1 (en) Scalable techniques for providing real-time per-avatar streaming data in virtual reality systems that employ per-avatar rendered environments
CN1253807C (zh) 根据用户指定的特征传输内容数据的改进网络
US9197755B2 (en) Multidimensional virtual learning audio programming system and method
CN100556055C (zh) 人际通信***
US9693170B2 (en) Multidimensional virtual learning system and method
US20060008117A1 (en) Information source selection system and method
CN1703065A (zh) 语音通信***
KR102626555B1 (ko) 원격 회의를 위한 방법 및 장치
US8577060B2 (en) Method and apparatus for dynamically determining mix sets in an audio processor
JP4997022B2 (ja) 仮想空間提供サーバ及びシステム
CN116057928A (zh) 信息处理装置、信息处理终端、信息处理方法和程序
Ranaweera et al. Narrowcasting and multipresence for music auditioning and conferencing in social cyberworlds
Yasumoto et al. Ravitas: Realistic voice chat framework for cooperative virtual spaces
JP5602688B2 (ja) 音像定位制御システム、コミュニケーション用サーバ、多地点接続装置、及び音像定位制御方法
JP7191146B2 (ja) 配信サーバ、配信方法、及びプログラム
Wuolio et al. On the potential of spatial audio in enhancing virtual user experiences
Divjak et al. Visual and audio communication between visitors of virtual worlds
Staff Intelligent Audio Environments
Seo et al. An embedded P2P-based positional audio system in virtual environments
Albrecht Viestintä lisätyssä äänitodellisuudessa

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application