KR20210088519A - 미디어 콘텐트 처리를 관리하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 - Google Patents

미디어 콘텐트 처리를 관리하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR20210088519A
KR20210088519A KR1020217002351A KR20217002351A KR20210088519A KR 20210088519 A KR20210088519 A KR 20210088519A KR 1020217002351 A KR1020217002351 A KR 1020217002351A KR 20217002351 A KR20217002351 A KR 20217002351A KR 20210088519 A KR20210088519 A KR 20210088519A
Authority
KR
South Korea
Prior art keywords
information
task
workflow
feedback
media
Prior art date
Application number
KR1020217002351A
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 KR20210088519A publication Critical patent/KR20210088519A/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
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • H04L67/2823
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6371Control signals issued by the client directed to the server or network components directed to network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • 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/601
    • 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/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 일 실시예에 따른 미디어 콘텐트 처리를 관리하는 방법은, NBMP 소스로부터 미디어 콘텐트 처리를 위한 워크플로우 정보를 획득하는 단계; 워크플로우 정보에 기초하여, 피드백 태스크 사용 여부를 확인하는 단계; 워크플로우 정보에 기초하여, 기능 저장소로부터 피드백 태스크의 기능 또는 미디어 처리를 위한 적어도 하나의 미디어 태스크의 기능에 대한 기능 정보를 획득하는 단계; 워크플로우 정보 및 기능 정보 중 적어도 하나에 기초하여 태스크 정보를 획득하는 단계; 태스크 정보를 각 태스크로 전달하는 단계; 클라이언트 피드백 정보를 획득하는 단계; 클라이언트 피드백 정보에 기초하여 태스크 정보를 업데이트하는 단계;를 포함하고, 태스크 정보는, 각 태스크들의 입력 정보, 출력 정보, 구성 정보 또는 연결 정보 중 적어도 하나를 포함하고, 연결 정보는, 적어도 하나의 미디어 태스크 중 클라이언트 지원 정보를 이용하는 미디어 처리 태스크와 피드백 태스크의 연결 정보를 포함한다.

Description

미디어 콘텐트 처리를 관리하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
본 발명은 멀티미디어 콘텐트를 전송하는 방법 및 장치에 관한 것이다. 보다 구체적으로는, 네트워크 기반의 미디어 처리(NBMP, Network Based Media Processing) 기법에서 사용자 피드백 정보를 이용하여 미디어를 처리하는 방법 및 장치에 관한 것일 수 있다.
NBMP는 네트워크상에 위치하는 모바일 엣지 컴퓨팅이나 클라우드/콘텐트 전달 네트워크(CDN, Content Delivery Network)에서 미디어 처리를 담당함으로써 사용자 단말에게 저지연의 차세대 미디어 서비스를 제공하기 위한 기술로, 미디어 소스에서 네트워크상에 위치하는 미디어 처리 개체로 미디어 데이터 및 미디어 처리 워크플로우 디스크립션을 전송하면, 미디어 처리 개체는 그에 따라 미디어 처리 워크플로우를 수행한다. 미디어 처리 워크플로우는 하나 이상의 미디어 처리 개체의 연동을 통해서 이루어질 수 있다.
본 발명은 미디어 처리 워크플로우에 워크플로우 디스크립션과 함께 미디어 싱크(사용자 단말)로부터의 피드백 정보를 반영함으로써, 사용자에게 보다 다양하고 사용자 적응적인 미디어 서비스를 제공하는 것을 그 목적으로 한다.
본 발명은 미디어 처리 태스크가 사용자 단말로부터 전달된 피드백 정보를 이용할 수 있도록, 워크플로우 매니저가 미디어 콘텐트를 처리하는 태스크들의 워크플로우를 관리하는 방법 및 장치를 제공한다.
본 발명의 일 실시예에 따르면, 네트워크 시스템에서 미디어 콘텐트를 처리하는 태스크들의 워크플로우를 관리하는 방법을 제공한다.
한편, 본 발명의 일 실시예에 따르면, 전술한 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명에 의하면, 미디어 처리를 위해 사용자 단말로부터 전달된 피드백 정보를 이용함으로써, 네트워크 자원을 효율적으로 사용할 수 있으며, 다양한 서비스로의 확장을 제공할 수 있다.
도 1 은, 일반적인 네트워크 기반의 미디어 프로세싱(Network based media processing, NBMP) 기술의 구조(Architecture)를 도시한다.
도 2 는, 본 개시의 일 실시예에 따른 NBMP 시스템에서 워크플로우 매니저와 기능 저장소 사이의 상호 동작(interworking)을 도시한다.
도 3 은, 본 개시의 일 실시예에 따른 NBMP 시스템에서 워크플로우를 생성하는 동작 흐름도를 도시한다.
도 4 는, 본 개시의 일 실시예에 따른 NBMP 시스템에서 워크플로우를 업데이트하는 동작 흐름도를 도시한다.
도 5 는, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템의 블록도에서 각 개체의 동작을 도시한다.
도 6 는, 일 실시예에 따른 NBMP 시스템에서 피드백 태스크를 이용하는 방법의 동작 흐름도이다.
도 7 은, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템에서 워크플로우 매니저가 미디어 처리를 위한 워크플로우를 관리하는 방법의 순서도이다.
도 8 은, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템의 블록도에서 각 개체의 동작을 도시한다.
도 9 는, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템에서 워크플로우 매니저가 워크플로우를 관리하는 방법의 순서도이다.
도 10 은, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템의 블록도에서 각 개체의 동작을 도시한다.
도 11 는, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템에서 워크플로우 매니저가 워크플로우를 관리하는 방법의 순서도이다.
도 12 는, 6DoF 렌더링 처리를 위한 좌표 처리의 워크플로우를 나타낸다.
도 13 은, 6DoF 콘텐트의 프리-렌더링 및 리모트 렌더링을 위한 워크플로우를 나타낸다.
도 14 는, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템에서 콘텐트 인식(content-aware) 트랜스코딩 서비스를 위한 워크플로우를 나타낸다.
도 15 는, 본 개시의 일 실시예에 따른 워크플로우 매니저의 하드웨어 구성을 도시한 블록도이다.
표 1 은, 워크플로우 디스크립터의 일 실시예를 나타낸다.
표 2 는, 워크플로우 API의 자원의 일 실시예를 나타낸다.
표 3 은, 워크플로우 API의 동작의 일 실시예를 나타낸다.
표 4 는, 클라이언트 지원 디스크립터 의 일 실시예를 나타낸다.
표 5 는 6DoF 콘텐트의 렌더링 처리를 위한 좌표 처리 태스크들에 대한 설명 및 입/출력의 일 실시예를 나타낸다.
표 6 은 트랜스코딩 워크플로우를 생성하기 위한 트랜스코딩 워크플로우 디스크립션의 일 실시예를 나타낸다.
표 7 은, 트랜스코딩 태스크 디스크립션의 일 실시예를 나타낸다.
발명의 실시를 위한 최선의 형태
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 미디어 콘텐트 처리를 관리하는 방법은, NBMP 소스로부터 미디어 콘텐트 처리를 위한 워크플로우 정보를 획득하는 단계; 워크플로우 정보에 기초하여, 피드백 태스크 사용 여부를 확인하는 단계; 워크플로우 정보에 기초하여, 기능 저장소로부터 피드백 태스크의 기능 또는 미디어 처리를 위한 적어도 하나의 미디어 태스크의 기능에 대한 기능 정보를 획득하는 단계; 워크플로우 정보 및 기능 정보 중 적어도 하나에 기초하여 태스크 정보를 획득하는 단계; 태스크 정보를 각 태스크로 전달하는 단계; 클라이언트 피드백 정보를 획득하는 단계; 클라이언트 피드백 정보에 기초하여 태스크 정보를 업데이트하는 단계;를 포함하고, 태스크 정보는, 각 태스크들의 입력 정보, 출력 정보, 구성 정보 또는 연결 정보 중 적어도 하나를 포함하고, 연결 정보는, 적어도 하나의 미디어 태스크 중 클라이언트 지원 정보를 이용하는 미디어 처리 태스크와 피드백 태스크의 연결 정보를 포함한다.
발명의 실시를 위한 형태
이하, 본 개시의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 개시가 속하는 기술 분야에 익히 알려져 있고 본 개시와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 개시의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시는 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다. 또한 실시예에서 ‘~부’는 하나 이상의 프로세서를 포함할 수 있다.
도 1은 일반적인 네트워크 기반의 미디어 프로세싱(Network based media processing, NBMP) 기술의 구조(Architecture)를 도시한다.
NBMP 시스템(100)은, 네트워크 내에서 하나 이상의 처리 개체(Processing Entity)를 통해 미디어를 처리하는 시스템을 의미한다.
NBMP 시스템(100)은, 미디어 소스(110), NBMP 소스(160), NBMP 워크플로우(workflow) 매니저(150), 기능 저장소(140), 미디어 처리 개체(120), 미디어 싱크(130) 및 3rd party entity(170)를 포함할 수 있다.
NBMP 시스템(100)은, 네트워크 상에서 미디어를 처리하는 워크플로우를 생성하고 제어하기 위한 인터페이스를 특정할 수 있다. NBMP 워크플로우는 특정 미디어 처리를 위한 하나 이상의 태스크들의 연결(chain)을 제공하며, 태스크들의 연결은 연속(sequential)되거나 평행(parallel)할 수 있으며, 또는 두 개의 결합일 수 있다.
NBMP 소스(160)는, 네트워크 내에서 미디어 처리 과정을 기술하는 개체일 수 있다. NBMP 워크플로우는, 요청된 미디어 처리를 수행하는 하나 이상의 연결된 태스크(task)들의 그래프를 의미한다.
미디어 소스(110)는, 미디어 처리 개체(Media Processing Entity, 120)에서 처리될 러 미디어 콘텐트(raw media content)를 제공하는 개체일 수 있다. 미디어 소스(110)는, 예를 들어, 디지털 카메라, 마이크, 서버, 인코더 또는 영구 저장소 등일 수 있다.
NBMP 워크플로우 매니저(150)는, 태스크들을 제공하고, 워크플로우 디스크립션(workflow description)에 기초하여 완전한 NBMP 워크플로우(complete NBMP workflow)를 생성하기 위해 태스크들을 연결하는 개체일 수 있다.
기능 저장소(140)는, NBMP 워크플로우 매니저(150) 또는 NBMP 소스(160)에 의해 NBMP 기능들이 획득되는 저장소일 수 있다. 미디어 처리 개체(120)는 하나 이상의 미디어 처리 태스크들을 실행하는 개체일 수 있다.
미디어 싱크(130)는, 기존의 전송 방법들을 통해 NBMP 워크플로우의 출력을 소비할 수 있는 개체일 수 있다. 기존의 전송 방법들은 예를 들어, 다운로드, DASH(Dynamic Adaptive Streaming over HTTP), MMT(MPEG Media Transport) 또는 다른 수단일 수 있다.
미디어 처리 개체(120)는, 미디어 소스(110) 또는 다른 미디어 처리 개체로부터 수신한 미디어 데이터 및 관련 메타 데이터에 적용되는 처리 태스크(processing tasks)(121, 122)를 포함할 수 있다. 미디어 처리 개체(120)는, 미디어 처리 태스크들(121, 122)을 구성하고 관리하는 제어 기능을 제공할 수 있다.
미디어 처리 태스크(121, 122)는, 미디어 처리 개체(120) 내부에서 실행되는(executed) 처리 기능(processing function)의 실행중인 인스턴스(running instance)를 의미하며, 미디어 싱크(130) 또는 다른 미디어 처리 태스크에 의해 소비 될 미디어 데이터 및 관련 메타 데이터를 생성할 수 있다.
도 1에 도시된 NBMP 프레임 워크는 ISO / IEC 13818-1, ISO / IEC 14496-12, ISO / IEC 23008-1 및 ISO / IEC 23009-1과 같은 기존 MPEG 코덱 및 MPEG 형식을 포함하여 모든 형식의 미디어 콘텐트를 지원할 수 있다. NBMP 프레임 워크는, 공통 전송 프로토콜(common transport protocols)(예를 들어, TCP, UDP, RTP 및 HTTP)을 이용한 IP 기반 네트워크를 통한 전송(delivery)을 지원할 수 있다.
NBMP 시스템(100)은, NBMP API(Application Programmable Interface)를 통해 액세스 할 수 있는 미디어 처리 기능 집합(a set of media processing functions)을 구성함으로써, 워크플로우를 기술할 수 있다.
NBMP 시스템(100)은, 네트워크의 미디어 처리 워크플로우를 만들고 제어하는 인터페이스를 특정할 수 있다.
NBMP 시스템(100)은 제어 평면(control plane)과 미디어 평면(media plane)으로 나뉠 수 있다.
제어평면은 워크플로우 API(application programming interface), 기능 발견(function discovery) API, 및 태스크 API를 관할할 수 있다. 워크플로우 API는 NBMP 소스(160)가 미디어 처리 워크플로우를 생성하고 제어하기 위해 이용될 수 있다. 기능 발견 API는 워크플로우 매니저(150) 및/또는 NBMP 소스(160)가 미디어 처리 워크플로우의 일부로서 로딩될 수 있는 미디어 처리 기능을 발견(discovery)하기 위한 수단을 제공할 수 있다. 태스크 API는 워크플로우 매니저(150)가 런타임(runtime)에 태스크를 구성하고 모니터하기 위해 이용될 수 있다.
NBMP 시스템(100)은 미디어 평면에서 NBMP 소스(160)와 태스크(121,122) 사이 및 태스크(121,122)들 사이의 미디어 포맷, 메타데이터 및 부가 정보 포맷(supplementary information format)을 정의할 수 있다. NBMP 포맷은 NBMP 시스템 내의 미디어 소스 개체(110, 160, 170)와 미디어 처리 개체(120)사이, 그리고 개별적인 미디어 처리 개체들(121, 122) 사이에서 교환되는 미디어 포맷을 의미한다. NBMP 발행(publish) 포맷은 미디어 처리 개체(120)로부터 미디어 싱크 개체(130)로 전달되는 콘텐트의 미디어 포맷을 의미한다.
제어 기능(control function)은 태스크들과 워크플로우를 운영(management)하고 제어하기 위한 기능들을 제공하고, 처리 기능(processing function)은 제어 기능의 지시에 따라 미디어 처리 개체에서 미디어를 처리하기 위한 기능을 제공할 수 있다.
도 2 는, 본 개시의 일 실시예에 따른 NBMP 시스템에서 워크플로우 매니저와 기능 저장소 사이의 상호 동작(interworking)을 도시한다.
도 2를 참조하면, NBMP 시스템(200)은, 미디어 소스(110), 워크플로우 매니저(150), 기능 저장소(140), 워크플로우(120), 및 미디어 싱크(130)를 포함할 수 있다. 도 1 에서 상술한 각 구성의 기능 및 동작에 대해 중복되는 설명은 생략한다.
워크플로우 매니저(150)는, 미디어 소스(110)로부터 수신된 정보에 기초하여 미디어 처리 배치 및 미디어 처리 개체들을 구성하기 위해 워크플로우를 이용한다. 연산 집약적인 미디어 처리 서비스에서, 워크플로우 매니저는 복수의 연산 인스턴스를 설정하고, 복수의 인스턴스들에 작업 부하를 분산시킬 수 있다. 이러한 경우, 워크플로우 매니저는 모든 인스턴스들을 원하는대로 구성하는 역할을 수행한다. 인스턴스들은 다음의 두가지 방법으로 구성될 수 있다.
첫번째 방법은, 워크플로우 매니저는 같은 태스크를 복수의 인스턴스로 할당(allocate)하고, 선택된 스케줄링 메커니즘을 이용하여 인스턴스들로 워크로드를 분산시키기 위한 로드밸런서를 제공(provision)한다.
두번째 방법은, 워크플로우 매니저는 같은 태스크의 다른 동작(operation)들을 다른 인스턴스들로 (병렬적으로) 할당한다.
두 방법 모두에서, 워크플로우 매니저는 인스턴스들 사이에 커뮤니케이션 경로(communication path)를 제공하여 워크로드가 성공적으로 완료될 수 있도록 한다. 또한, 워크플로우 매니저는 태스크들이 처리된 미디어 데이터/스트림을 워크플로우상의 다음 태스크로 푸쉬(push)할 수 있도록 구성한다. 이러한 과정은 풀 메커니즘(pull mechanism)을 통해 구현될 수 있다.
워크플로우 매니저는 워크플로우를 형성하기 위해 태스크 리스트를 정의 하고 태스크들을 연결한다. 워크플로우 매니저의 처리 모델은 다음과 같은 단계들을 이용해 설명될 수 있다.
첫번째로, 워크플로우 매니저는 이용 가능한 미디어 처리 태스크를 발견(discovery)한다. 구체적으로, NBMP 태스크는 외부 개체들이 미디어 처리 태스크를 쿼리(query)하여 요청된 처리를 만족할 수 있도록 검색 가능한(searchable) 인터페이스들이 구현되어 있다. 워크플로우 매니저는 미디어 처리 태스크들의 검색 가능한 리스트들을 제공하는 디렉토리 서비스에 접근할 수 있다. 또한, 워크플로우 매니저는 현재의 워크플로우에 적합한 태스크를 찾기 위해 워크플로우 디스크립션 문서(workflow description document)내의 태스크 디스크립션(task description)을 이용할 수 있다.
두번째로, 워크플로우 매니저는 워크플로우를 준비하기 위한 미디어 처리 태스크들을 선택한다. 구체적으로, 미디어 소스로부터 미디어 처리 요청이 수신되면, 워크플로우 매니저는 워크플로우를 만족시킬 수 있는 모든 기능들의 리스트를 찾기 위해 기능저장소를 스캔한다. 워크플로우 매니저는 워크플로우를 마무리(finaliazing)하기 위해 미디어 소스로부터 전달된 워크플로우 디스크립션을 이용하여, 기능 저장소의 모든 기능들이 선택되어야 하는지 확인한다. 이러한 확인은 기능 저장소의 각 태스크에 대한 입력 및 출력 디스크립션(input and output description), 요청된 처리 디스크립션(processing description) 및 기타 디스크립터(descriptor) 등 NBMP 소스로부터 전달된 미디어 처리 정보에 의존한다.
워크플로우에 포함될 적절한 미디어 처리 작업에 소스 요청을 매핑하는 것은 NBMP의 구현의 핵심이다. 워크플로우 매니저는 기능 발견(function discovery) API 를 이용하여 태스크로 실행될 적절한 기능을 찾을 수 있다. 또는, 워크플로우 매니저는 기능 발견 API를 이용하여 기능 저장소의 모든 기능들의 세부사항을 검색(retrieve)할 수 있다. 워크플로우 매니저는 소스로부터 전달된 페치된(fetched) 각 기능의 다른 디스크립터에 대한 정보를 확인할 수 있다.
세번째로, 워크플로우 매니저는 선택된 미디어 처리 태스크들을 구성한다. 워크플로우에 포함될 기능들이 확인되면, 워크플로우 매니저는 다음 단계로 태스크를 실행하고 태스크가 워크플로우에 추가되도록 구성한다. 미디어 소스로부터 수신된 미디어 처리를 위한 정보들을 이용하여, 워크플로우 매니저는 구성 데이터를 추출하고, 선택된 태스크들을 구성할 수 있다. 태스크의 구성은 태스크 API 를 이용해 수행된다.
일 실시예에 따르면, 기능 저장소(140) 대신 미디어 처리 태스크 디렉토리(미도시)가 포함될 수 있으며, 이 때, 미디어 처리 태스크 디렉토리는 기능 저장소(140)와 동일하거나 유사한 역할을 수행할 수 있다.
Figure pct00001
표 1 은, 워크플로우 디스크립터의 일 실시예를 나타낸다.
위와 같은 워크플로우 디스크립션은, NBMP 소스로부터 워크플로우 매니저로 전달되며 워크플로우를 위한 입출력 데이터, 요구 기능들, 요구사항들과 같은 세부사항을 설명할 수 있다. 워크플로우 디스크립션은 JSON(JavaScript Object Notation) 또는 XML(Extensible Markeup Language)을 이용해 인코딩 될 수 있다.
기능 저장소에서 제공된 기능 집합(set)은 NBMP 소스에서 읽을 수 있으므로, 워크플로우 디스크립션 문서는 사용 사례 및 실제 요구에 따라 두 가지 방법으로 구성될 수 있다.
첫번째로, NBMP 소스는 기능 저장소의 기능 집합을 이용하여 워크플로우의 생성할 것을 요청하고 워크플로우에 포함될 기능을 선택한다. 이러한 경우, NBMP 소스는 기능 저장소로부터 읽은 기능 이름 집합 및 태스크의 연결을 특정(specifying)함으로써 워크플로우 생성을 요청할 수 있다.
이 때, 입력 포트(InputPorts) 및 출력 포트(OutputPorts) 파라미터에 정의된 포트 식별자(identifier)를 각 태스크의 입력 및 출력 키로 이용함으로써 태스크의 연결을 지정할 수 있다. 처리 디스크립터(Processing Descriptor)의 매핑 정보(taskConnectionMap)은 어떤 태스크의 입력 포트를 다른 태스크의 출력 포트로 매핑하는데 사용된다. 이러한 경우, 처리 디스크립터의 키워드 및 URL은 비어있거나 지정되지 않을 수 있다.
워크플로우 매니저는, NBMP 소스로부터 이러한 정보들을 수신하면, 기능 이름 및 태스크 연결에 기초하여 입출력 포트열(Input and Output Port Arrays)에 정의된 바에 따라 워크플로우를 생성한다.
두번째로, NBMP 소스는 워크플로우 매니저가 워크플로우를 구성하는데 사용하는 키워드 집합을 이용하여 워크플로우 생성을 요청한다. NBMP 소스는 워크플로우에 삽입될 기능 집합에 대한 완전한 정보를 알지 못할 수도 있다. 이러한 경우, NBMP 소스는 워크플로우 매니저가 적당한 기능을 찾기 위해 필요한 키워드 집합 및 [표 1]에 개시된 워크플로우 디스크립션 문서내의 모든 디스크립터를 특정(specifying)함으로써 워크플로우 생성을 요청할 수 있다.
Figure pct00002
표 2 는, 워크플로우 API 자원의 일 실시예를 나타낸다.
NBMP 소스는, NBMP 워크플로우 API를 이용하여 워크플로우 매니저와 통신(communicate)한다. 워크플로우 API 자원은 워크플로우 API에서 사용될 자원을 의미하며, 워크플로우 API는 해당 자원에 작용하는 동작을 의미한다.
워크플로우 디스크립션 문서에 들어가는 디스크립터 집합을 이용하여, 모든 워크플로우 디스크립션 내의 특정 디스크립터를 구성함으로써“워크플로우 디스크립션”이라고 불리는 자원을 모델링할 수 있다. 이는, NBMP 소스가 워크플로우 디스크립션 자원을 보낼 때, 서버(워크플로우 매니저)는 모든 디스크립터의 세부사항을 추출할 수 있음을 의미한다.
Figure pct00003
표 3 은 워크플로우 API의 동작의 일 실시예를 나타낸다.
워크플로우 API 동작은, 워크플로우 디스크립션 자원을 이용하여 지원될 수 있다.
Figure pct00004
표 4 는, 클라이언트 지원 디스크립터 의 일 실시예를 나타낸다.
워크플로우 디스크립터 중 클라이언트 지원 디스크립터는 기본 자원에 대한 클라이언트 지원 정보를 제공한다. 클라이언트 지원 디스크립터는 디바이스 기능(device capabilities)에 대한 파라미터 및 사용자 선호(user preference)에 대한 파라미터를 포함할 수 있다.
디바이스 기능에 대한 파라미터는 디바이스 기능에 대해 클라이언트로부터 수신된 정보를 제공할 수 있으며, 기능, 태스크, 또는 워크플로우가 고려할 수 있는 디바이스 기능을 특정할 수 있다.
사용자 선호에 대한 파라미터는 사용자 선호에 대해 클라이언트로부터 수신된 정보를 제공할 수 있으며, 기능, 태스크, 또는 워크플로우가 고려할 수 있는 사용자 선호를 특정할 수 있다.
도 3 은, 본 개시의 일 실시예에 따른 NBMP 시스템에서 워크플로우를 생성하는 동작 흐름도를 도시한다.
도 3 을 참조하면, NBMP 시스템은 NBMP 소스(160), 워크플로우 매니저(150), 기능 저장소(140), 클라우드 플랫폼(180), 및 NBMP 태스크(120)를 포함할 수 있다. NBMP 태스크(120)는, 각각의 기능을 수행하는 복수개의 NBMP 태스크를 포괄할 수 있다.
단계 310에서, NBMP 소스(160)는 워크플로우 API를 이용하여 워크플로우를 생성하고, 워크플로우 매니저(150)로 워크플로우 생성 요청과 함께 워크플로우 디스크립션 문서를 전달한다. 워크플로우 생성 요청을 수신한 워크플로우 매니저는 워크플로우 디스크립션 문서를 확인하고, 워크플로우 생성을 시작한다.
단계 320에서, 워크플로우 매니저(150)는 워크플로우에 배포될 기능을 찾기 위한 쿼리를 기능 저장소(140)로 전송한다.
단계 330에서, 기능 저장소(140)는 쿼리에 대한 응답으로, 가능한 기능들과 기능들의 디스크립션 및 구성 정보를 워크플로우 매니저(150)로 전송한다.
단계 340에서, 기능 저장소(140)로부터 응답을 수신한 워크플로우 매니저(150)는 워크플로우에 배포할 기능의 집합을 선택하고, 요구사항(requirements)에 따라 클라우드 플랫폼(180)에 접속하여 필요한 미디어 처리 개체를 생성하고 해당 기능을 로드한다.
단계 350에서, 클라우드 플랫폼(180)은 네트워크 접근 정보를 포함하는 각 미디어 처리 개체의 생성을 확인(confirm)하고 관련 정보를 워크플로우 매니저로 전달한다.
단계 360에서, 워크플로우 매니저(150)는 각 태스크의 구성을 생성하고, 태스크 API를 이용하여 구성을 태스크(120)로 전송한다.
단계 370에서, NBMP 태스크(120)는 구성을 성공했음을 확인하고, 접근 정보를 반환하여 워크플로우 매니저가 다음 태스크와 연결할 수 있도록 한다.
단계 380에서, 워크플로우 매니저(150)는 NBMP 소스(160)로 워크플로우의 생성을 확인하고, 미디어 처리가 시작되었음을 알린다.
도 4 는, 본 개시의 일 실시예에 따른 NBMP 시스템에서 워크플로우를 업데이트하는 동작 흐름도를 도시한다.
NBMP 소스(160)로부터 워크플로우 내부의 세부 사항을 숨기기 위해서 워크플로우에 대한 모든 업데이트들은 워크플로우 관리자를 통해 수행되어야 한다. 특히, NBMP 소스는 다른 태스크 제어 기능에 대한 진입점(entry point)를 알지 못할 수 있다.
워크플로우 업데이트절차는 워크플로우 API를 이용해 수행되며, 태스크 API를 사용하여 워크플로우 매니저에 의해 구현될 수 있다.
단계 410에서, NBMP 소스(160)는 워크플로우를 업데이트할 필요가 있음을 인식하면, 워크플로우 매니저(150)로부터 수신한 파라미터 디스크립션을 사용하여 구성 파라미터를 업데이트하고, 업데이트된 워크플로우 디스크립터를 워크플로우 매니저로 전달한다.
단계 420에서, 워크플로우 매니저(160)는 워크플로우 디스크립터로부터 NBMP 태스크 각각을 위한 관련 구성 파라미터 업데이트들을 추출하고, 태스크 API를 사용하여 업데이트 정보를 해당 태스크(120)에 전달한다.
단계 430에서, 파라미터 업데이트가 승인되면, NBMP 태스크(120)는 파라미터 업데이트 성공(success)을 워크플로우 매니저(150)에게 확인한다. 파라미터 업데이트가 승인되지 않으면, NBMP 태스크(120)는 현재 작업을 변경하거나 미디어 처리를 중단하지 않고 오류메시지를 응답한다.
단계 440에서, 모든 태스크에 대한 업데이트가 완료된 후, 워크플로우 매니저(150)는 NBMP 소스(160)로 워크플로우 업데이트의 완료를 알린다.
경우에 따라, 업데이트는 미디어 처리에 대한 중단(interruption)을 발생시켜 NBMP 싱크에 영향을 줄 수 있다. NBMP 소스는 구성 디스크립션을 통해 이러한 중단을 인식해야 한다. 각 파라미터는 파라미터가 수정되면 미디어 처리 중단이 발생하는지 여부를 나타낼 수 있다.
도 5 는, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템의 블록도에서 각 개체의 동작을 도시한다.
도 5 를 참조하면, NBMP 시스템은 미디어 소스(110), NBMP 소스(160), NBMP 싱크(130), 기능 저장소(140), 워크플로우 매니저(150), 및 태스크들(121, 122, 123, 124)를 포함할 수 있다. 태스크들은 스티칭 태스크(121), OMAF (Omni-directional Media Format) 태스크(122), MMT 태스크(123) 및 피드백 태스크(124)를 포함하며, 피드백 태스크는 NBMP 싱크로부터 획득한 사용자 피드백 정보를 각 태스크로 전달할 수 있다.
도 5 에서는 미디어 처리 워크플로우의 일 실시예로 스티칭 태스크, OMAF 태스크 및 MMT 태스크를 제시하였으나, 미디어 처리 태스크가 이들 태스크에 한정되는 것은 아니다. 미디어 소스(110)는 미디어 제공 사업자 또는 미디어를 제공할 수 있는 서버를 의미할 수 있다. 또한, NBMP 싱크(130)는 NBMP 워크플로우의 출력을 소비할 수 있는 개체로 미디어 싱크, 사용자, 사용자 단말, 또는 클라이언트를 의미할 수 있다.
단계 510에서, NBMP 소스(160)는 서비스를 시작 도는 셋업하기 위해 워크플로우 API를 통해 워크플로우 매니저(150)로 워크플로우 디스크립션을 전달한다. 이 때, 워크플로우 디스크립션은 처리 디스크립터 및 다른 데이터 파라미터들을 포함할 수 있으며, 해당 서비스가 사용자 피드백 정보를 사용하는지 여부를 나타내는 정보를 포함할 수 있다. 일 실시예에 따르면, 해당 서비스가 사용자 피드백 정보를 사용하는지 여부는 플래그(flag)의 형태일 수 있다.
단계 520에서, 워크플로우 매니저(150)는 획득된 워크플로우 디스크립션에 기초하여 기능 발견 API를 통해 기능저장소(140)로부터 워크플로우를 구성하기 위한 태스크들의 기능을 검색하고, 기능 디스크립션을 획득할 수 있다. 일 실시예에 따르면, NBMP 소스(160)가 기능 발견 API를 통해 기능저장소(140)로부터 태스크들의 기능을 검색할 수 있다. 이러한 경우, 워크플로우 매니저(150)는 NBMP 소스로부터 기능 디스크립션을 전달받을 수 있다. 일 실시예에 따르면 기능 디스크립터는 태스크 타입에 대한 정보를 포함할 수 있다. 태스크 타입은 미디어 처리 태스트, 또는 제어/피드백 태스크로 구별될 수 있다.
단계 530에서, 워크플로우 매니저(150)는 워크플로우 디스크립션, 기능 디스크립션 또는 인프라스트럭처 매니저(infrastructure manager)와 같은 제 3 개체에 기초하여 태스크 디스크립션을 생성하고, 생성된 태스크 디스크립션을 태스크 API를 통해 각 태스크(121, 122, 123, 124)로 전달할 수 있다.
NBMP 싱크(130)는, 미디어 소스(110)의 미디어를 워크플로우에 따라 스티칭 태스크(121), OMAF 태스크(122), MMT 태스크(123)에서 순차적으로 처리된 미디어 서비스를 제공받을 수 있다. 해당 서비스가 사용자 피드백 정보를 이용하는 경우, 워크플로우 매니저는 피드백 태스크(124, 또는 제어 기능이라 한다)를 별도로 생성할 수 있다.
단계 540에서, NBMP 싱크(130)는 피드백 태스크(서버)를 인식할 수 있으며, 피드백 정보를 포함하는 피드백 메시지를 MMT 또는 애플리케이션을 통해 피드백 태스크(124)로 전달할 수 있다.
단계 550에서, 피드백 태스크(124)는 NBMP 싱크(130)로부터 획득된 피드백 정보를 피드백 정보를 사용할 태스크(122)로 전달하고, 워크플로우 매니저(150)로 업데이트를 요청한다.
태스크 디스크립션은 다음과 같은 디스크립터들을 포함할 수 있다.
세부 디스크립터(detail descriptor)은, 태스크 타입에 대한 정보를 포함한다. 태스크 타입은 미디어 처리 태스트, 또는 제어/피드백 태스크로 구별될 수 있다.
태스크 입력 디스크립터(task input descriptor)는 기타 데이터 파라미터들 외에 다음과 같은 피드백 파라미터들을 포함할 수 있다. 피드백 파라미터는 스트림 개요(stream schema) 및 스트림 정보를 포함하는 피드백 스트림 설명을 포함할 수 있다. 스트림 정보는 콘텐트 요소(content component)를 확인할 수 있는 식별자인 피드백 스트림 에 대한 식별정보, 스트림에 대한 태그정보, 피드백 스트림에 대한 대역폭 정보, 피드백의 타입에 대한 정보, 피드백 정보에 접근하거나 전달하기 위한 프로토콜에 대한 정보, 또는 피드백 정보가 보내진 위치나 미디어가 페치(fetch)되는 위치에 대한 원점(origination) 정보 중 적어도 하나를 포함할 수 있다. 일 실시예에 따르면, 피드백의 타입은 뷰포트(viewport)에 대한 피드백인지, 뷰 포인트(view point)에 대한 피드백인지, 성능(capabilities)에 대한 피드백인지, 또는 오브젝트의 개수에 대한 피드백인지 여부 중 적어도 하나를 포함할 수 있다.
태스크 출력 디스크립터(task output descriptor)는 기타 데이터 파라미터들 외에 다음과 같은 피드백 파라미터들을 포함할 수 있다. 피드백 파라미터는 스트림 개요(stream schema) 및 스트림 정보를 포함하는 피드백 스트림 설명을 포함할 수 있다. 스트림 정보는 태스크 입력 디스크립터에 포함된 피드백 파라미터들에 추가하여 각 태스크의 출력이 전달될 목적지(destination)에 대한 정보를 더 포함할 수 있다.
보고 디스크립터(reporting descriptor) 는 피드백 보고 타입에 대한 정보, 또는 태스크로부터 워크플로우 매니저로 전달되는 구성 업데이트에 대한 정보 중 적어도 하나를 포함할 수 있다.
구성(configuration) 업데이트에 대한 정보는, 구성 업데이트 요청에 대한 정보, 또는 구성 업데이트 보고에 대한 정보 중 적어도 하나를 포함할 수 있으며, 구성 업데이트 요청은 태스크가 전달받은 피드백 파라미터를 워크플로우 매니저로 전달하고, 태스크 디스크립션 내의 구성 디스크립터 정보를 업데이트할 것을 요청하는 과정을 의미할 수 있다.
도 6 는, 일 실시예에 따른 NBMP 시스템에서 피드백 태스크를 이용하는 방법의 동작 흐름도이다.
도 6 을 참조하면, NBMP 시스템은 미디어 소스(110), NBMP 소스(160), NBMP 싱크(130), 기능 저장소(140), 워크플로우 매니저(150), 및 태스크들(121, 122, 123, 124)을 포함할 수 있다. 미디어 소스(110)는 미디어 제공 사업자 또는 미디어를 제공할 수 있는 서버를 의미할 수 있다. 또한, NBMP 싱크(130)는 NBMP 워크플로우의 출력을 소비할 수 있는 개체로 미디어 싱크, 사용자, 사용자 단말, 또는 클라이언트를 의미할 수 있다.
단계 610에서 NBMP 싱크(130)가 미디어 소스(110)로 서비스 또는 미디어 파일의 제공을 요청하면, 단계 412에서 미디어 소스(110)는 NBMP 소스(160)로 서비스 시작을 요청한다.
단계 614에서 NBMP 소스(160)는 워크플로우 매니저(150)로 워크플로우 디스크립션을 전달하여 워크플로우를 생성할 수 있도록 한다.
단계 616 및 단계 618에서 워크플로우 매니저(150)는 워크플로우 디스크립션에 기초하여 피드백 태스크 사용 여부를 확인하고, 각 태스크로 기능을 할당한다.
보다 구체적으로, 워크플로우 매니저(150)는 워크플로우 디스크립션에 포함된 피드백 정보 사용여부에 대한 정보에 기초하여 해당 서비스가 피드백 서비스를 이용하는지 여부를 확인하고, 피드백 서비스를 이용하는 것으로 확인되면 피드백 태스크에 기능을 할당한다. 워크플로우 매니저(150)는 태스크 디스크립션에 기초하여 피드백 태스크와 피드백 태스크를 이용하는 미디어 처리 태스크를 연결하고, 피드백 태스크의 입출력 및 피드백 타입을 정의한다. 피드백 태스크는 피드백 타입에 따라 획득된 피드백 정보를 미디어 처리 태스크와 워크플로우 매니저 중 적어도 하나로 전달하거나, 특정 미디어 처리 태스크로 필요한 정보를 전달 수 있다.
도 6 에 도시된 실시예에서 미디어 콘텐트는 제 1 NBMP 태스크(121), 제2 NBMP 태스크(122) 및 제 3 NBMP 태스크(123)에서 차례대로 처리되며, 피드백 태스크 사용 여부 확인 결과, 제 2 NBMP 태스크(122)가 피드백 태스크를 사용하는 것으로 판단된 경우이다. 따라서, 워크플로우 매니저는 제 1 NBMP 태스크(121), 제2 NBMP 태스크(122), 제 3 NBMP 태스크(123) 및 피드백 태스크(124)로 기능을 할당한다. 기능이 할당되면 서비스 워크플로우에 따라 제 1 NBMP 태스크와 제 2 NBMP 태스크, 제 2 NBMP 태스크와 제 3 NBMP 태스크가 서로 연결되며, 피드백 태스크를 사용하는 제 2 NBMP 태스크(122)는 추가로 피드백 태스크(124)와 연결된다.
단계 620에서 워크플로우 매니저(150)는 미디어 소스로 워크플로우 정보를 전달할 수 있다.
단계 622에서 미디어 소스(110)는 NBMP 싱크(130)가 미디어 파일을 수신할 태스크(제 3 NBMP 태스크)정보 및 피드백을 전달할 태스크(피드백 태스크)에 대한 정보를 NBMP 싱크(130)로 전달한다.
단계 624에서 미디어 소스(110)는 NBMP 싱크(130)에 미디어 콘텐트를 제공하기 위한 NBMP 서비스를 시작한다. 도 4 에 도시된 실시예에서 미디어 콘텐트는 제 1 NBMP 태스크(121)에서 가장 먼저 처리되므로, 미디어 소스(110)는 제 1 NBMP 태스크(121)로 미디어 파일을 전달한다.
단계 626 내지 단계 632에서 각 태스크는 미디어를 처리하거나, 다음 태스크로 처리된 미디어를 전달할 수 있다. 각 태스크는 태스크 디스크립터에 포함된 각 태스크의 입출력 포트에 대한 정보 및 피드백 포트 정보에 기초하여 정해진 동작을 수행한다.
단계 634에서, 제 3 NBMP 태스크(123)는 제 2 NBMP 태스크(122)로부터 전달된 미디어를 처리하고, 저장한다.
단계 636 및 단계 638에서, 제 3 NBMP 태스크(123)는 NBMP 싱크(130)로부터 미디어 전달 요청이 수신되면, 요청에 대한 응답으로 처리된 미디어를 전달할 수 있다.
이후, 단계 640 내지 단계 644에서 피드백 태스크(124)는 NBMP 싱크(130)로부터 피드백 정보가 전달되면 워크플로우 매니저(150)로 피드백 정보를 보고하고, 제 2 NBMP 태스크(122)로 피드백 정보를 전달한다. 제 2 NBMP 태스크(122)로 전달되는 피드백 정보는 제 2 NBMP 태스크 양식에 따른다.
이 때, 단계 642와 단계 644의 선후는 바뀔 수 있으며, 단계 642는 피드백 정보 업데이트 여부 판단 결과 업데이트가 필요 없는 경우 생략될 수 있다.
단계 646에서, 제 2 NBMP 태스크(122)는 피드백 태스크로부터 전달된 피드백 정보에 기초하여 미디어를 처리할 수 있다.
단계 648 내지 단계 654의 과정은 단계 632 내지 단계 638의 과정과 유사하므로 상세한 설명은 생략한다.
도 7 은, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템에서 워크플로우 매니저가 미디어 처리를 위한 워크플로우를 관리하는 방법의 순서도이다.
단계 710에서, 워크플로우 매니저는 NBMP 소스로부터 미디어 콘텐트 처리를 위한 워크플로우 정보를 획득할 수 있다. 일 실시예에 따르면, 워크플로우 정보는 워크플로우 디스크립션일 수 있다.
단계 720에서, 워크플로우 매니저는 획득된 워크플로우 정보에 기초하여 피드백 태스크 사용 여부를 확인할 수 있다. 일 실시예에 따르면, 피드백 태스크 사용 여부는 워크플로우 디스크립션 내의 클라이언트 지원 디스크립터에 포함될 수 있으며, 사용 여부를 나타내는 1 비트 플래그로 구현될 수 있다.
단계 730에서, 워크플로우 매니저는 기능저장소로부터 피드백 태스크의 기능 및 미디어 처리 태스크의 기능에 대한 정보를 획득할 수 있다. 일 실시예에 따르면, 기능에 대한 정보는 기능 디스크립션일 수 있다.
단계 740에서, 워크플로우 매니저는 워크플로우 정보 및 기능에 대한 정보에 기초하여 태스크 정보를 획득할 수 있다. 일 실시예에 따르면, 태스크 정보는 태스크 디스크립션일 수 있다.
단계 750에서, 워크플로우 매니저는 워크플로우 정보 및 태스크 정보에 기초하여 태스크 정보를 미디어 처리 태스크 및 피드백 태스크로 전달하여 각 태스크가 연결되어 워크플로우를 형성하도록 할 수 있다.
단계 760에서, 피드백 태스크가 클라이어트로부터 클라이언트 피드백 정보를 획득하면, 워크플로우 매니저는 피드백 태스크로부터 클라이언트 피드백 정보를 획득할 수 있다. 일 실시예에 따르면, 미디어 처리 태스크 중 피드백 태스크를 사용하는 태스크는 피드백 태스크로부터 클라이언트 피드백 정보를 획득할 수 있다.
단계 770에서, 워크플로우 매니저는 피드백 태스크로부터 획득된 클라이언트 피드백 정보를 반영하여 태스크 정보를 업데이트 할 수 있다.
도 8 은, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템의 블록도에서 각 개체의 동작을 도시한다.
도 8 을 참조하면, NBMP 시스템은 미디어 소스(110), NBMP 소스(160), NBMP 싱크(130), 기능 저장소(140), 워크플로우 매니저(150), 및 태스크들(121, 122, 123, 124)를 포함할 수 있다. 태스크들은 스티칭 태스크(121), OMAF (Omni-directional Media Format) 태스크(122), MMT 태스크(123) 및 피드백 태스크(124)를 포함하며, 피드백 태스크는 NBMP 싱크로부터 획득한 사용자 피드백 정보를 워크플로우 매니저로 전달할 수 있다.
단계 810 내지 단계 840은 도 5 에 도시된 단계 510 내지 단계 540과 유사하므로, 자세한 설명은 생략한다.
단계 850에서, 피드백 태스크(124)는 NBMP 싱크(130)로부터 획득된 피드백 정보를 워크플로우 매니저(150)로 전달한다. 워크플로우 매니저(150)로 전달되는 피드백 정보는 보고 디스크립터, 태스크 입력 디스크립터, 태스크 출력 디스크립터 또는 세부 디스크립터 중 적어도 하나를 포함할 수 있다.
단계 860에서, 워크플로우 매니저(150)는 업데이트된 태스크 구성 정보를 피드백 정보를 사용하는 OMAF 태스크(122)로 전달한다. 이 때, 업데이트된 태스크 구성 정보는 태스크 디스크립션일 수 있으며, 태스크 디스크립션은 업데이트된 태스크 입력 디스크립터, 태스크 출력 디스크립터 또는 구성 디스크립터 중 적어도 하나를 포함할 수 있다.
도 9 는, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템에서 워크플로우 매니저가 워크플로우를 관리하는 방법의 순서도이다.
도 9 를 참조하면, 단계 910 내지 단계 950은 도 7 에 도시된 단계 710 내지 단계 750과 동일하므로, 상세한 설명은 생략한다.
단계 960에서, 피드백 태스크가 클라이어트로부터 클라이언트 피드백 정보를 획득하면, 워크플로우 매니저는 피드백 태스크로부터 클라이언트 피드백 정보를 획득할 수 있다. 도 7 과 달리, 도 9 의 실시예에서 피드백 태스크는 미디어 처리 태스크로 클라이언트 피드백 정보를 전달하지 않는다.
단계 970에서, 워크플로우 매니저는 워크플로우 매니저는 피드백 태스크로부터 획득된 클라이언트 피드백 정보를 반영하여 태스크 정보를 업데이트 할 수 있다.
단계 980에서, 워크플로우 매니저는 업데이트된 태스크 정보를 미디어 처리 태스크로 전달할 수 있다. 일 실시예에 따르면, 미디어 처리 태스크는 업데이트된 태스크 정보에 포함된 클라이언트 피드백 정보에 기초하여 미디어를 처리할 수 있다.
도 10 은, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템의 블록도에서 각 개체의 동작을 도시한다.
도 10 을 참조하면, NBMP 시스템은 미디어 소스(110), NBMP 소스(160), NBMP 싱크(130), 기능 저장소(140), 워크플로우 매니저(150), 및 태스크들(121, 122, 123, 124)를 포함할 수 있다. 태스크들은 스티칭 태스크(121), OMAF (Omni-directional Media Format) 태스크(122), MMT 태스크(123) 및 피드백 태스크(124)를 포함하며, 피드백 태스크는 NBMP 싱크로부터 획득한 사용자 피드백 정보를 워크플로우 매니저를 통해 NBMP 소스로 전달할 수 있다.
단계 1010 내지 단계 1040은 도 5 에 도시된 단계 510 내지 단계 540과 유사하므로, 자세한 설명은 생략한다.
단계 1050에서, 피드백 태스크(124)는 NBMP 싱크(130)로부터 획득된 피드백 정보를 워크플로우 매니저(150)를 통해 NBMP 소스(160)로 전달한다. NBMP 소스(160)로 전달되는 피드백 정보는 보고 디스크립터, 태스크 입력 디스크립터, 태스크 출력 디스크립터 또는 세부 디스크립터 중 적어도 하나를 포함할 수 있다.
단계 1060에서, NBMP 소스(160)는 피드백 정보에 기초하여 업데이트된 워크플로우 디스크립션을 워크플로우 매니저(150)로 전달한다. 워크플로우 매니저로 전달되는 워크플로우 디스크립션은 구성 디스크립터를 포함할 수 있다.
단계 1070에서, 워크플로우 매니저(150)는 업데이트된 태스크 구성 정보를 피드백 정보를 사용하는 OMAF 태스크(122)로 전달한다. 이 때, 업데이트된 태스크 구성 정보는 태스크 디스크립션일 수 있으며, 태스크 디스크립션은 업데이트된 태스크 입력 디스크립터, 태스크 출력 디스크립터 또는 구성 디스크립터 중 적어도 하나를 포함할 수 있다.
도 11 은, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템에서 워크플로우 매니저가 워크플로우를 관리하는 방법의 순서도이다.
도 11 을 참조하면, 단계 1110 내지 단계 1150은 도 7 에 도시된 단계 710 내지 단계 750과 동일하므로, 상세한 설명은 생략한다.
도 7 및 도 9 와 달리, 도 11 의 실시예에서 피드백 태스크는 클라이어트로부터 클라이언트 피드백 정보를 획득하면, 피드백 태스크는 클라이언트 피드백 정보를 NBMP 소스로 전달한다. 클라이언트 피드백 정보를 획득한 NBMP 소스는 워크플로우 정보를 업데이트하고, 업데이트된 워크플로우 정보를 워크플로우 매니저로 전달한다.
단계 1160에서, 워크플로우 매니저는 업데이트된 워크플로우 정보로부터 클라이언트 피드백 정보를 획득할 수 있다.
단계 1170에서, 워크플로우 매니저는 NBMP 소스로부터 획득된 클라이언트 피드백 정보를 반영하여 태스크 정보를 업데이트 할 수 있다.
단계 1180에서, 워크플로우 매니저는 업데이트된 태스크 정보를 미디어 처리 태스크로 전달할 수 있다. 일 실시예에 따르면, 미디어 처리 태스크는 업데이트된 태스크 정보에 포함된 클라이언트 피드백 정보에 기초하여 미디어를 처리할 수 있다.
도 12 내지 도 13 은, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템에서 6 DoF 콘텐트의 프리-렌더링 워크플로우를 나타낸 도면이다.
6DoF 콘텐트는 3차원 직각 좌표계에서 X축 중심의 좌우 회전(roll), Y축 중심의 앞뒤 회전(pitch), Z축 중심의 위아래 회전(yaw) 동작과 앞뒤(forward/back, surge), 좌우(left/right, sway), 위아래(up/down, heave) 병진 동작(translational motion)을 포함하는 자유도 6을 갖는 콘텐트를 의미한다.
6DoF 콘텐트는 객체를 3D(3-dimensional) 도메인으로 나타내기 위한 좌표(geometry), 질감(texture), 재질(material) 등의 미디어 데이터 및 객체(object) 및 관련 3D 공간을 설명하기 위한 장면 디스크립션(scene description) 등의 메타데이터를 포함할 수 있다.
이와 같은 기술은 기존의 2차원 형태의 이미지 전송에서 3차원 형태의 공간 정보 및 색상 정보 등의 전송이 필요하므로, 매우 큰 용량의 미디어 전송이 필요할 뿐 아니라, 단말에서도 해당 콘텐트를 재생하기 위해 매우 높은 연산량이 요구된다. NBMP을 통한 사전 렌더링을 이용하면 전체 6DoF 콘텐트의 데이터 량을 줄이는 동시에 단말의 상황을 고려하여 계산량이 많은 부분을 네트워크단의 서버에서 수행하여 단말의 부하를 줄여줄 수 있다.
도 12 는 6DoF 렌더링 처리를 위한 좌표 처리의 워크플로우를 나타낸다.
좌표 처리는 정점 변환(vertex transformation), 기본 어셈블리(primitive assembly), 클리핑(clipping) 및 윈도우 뷰포트 변환(window viewport transformation)이 포함될 수 있다.
Figure pct00005
표 5 는 6DoF 콘텐트의 렌더링 처리를 위한 좌표 처리 태스크들에 대한 설명 및 입/출력의 일 실시예를 나타낸다.
표 5 를 참조하면, 클리핑 태스크는 사용자 뷰포트 또는 사용자 위치 등을 포함하는 사용자 피드백 정보에 기초하여 정의된 ROI(region of interest)에서 렌더링 동작을 선택적으로 활성화 하거나 비활성화하는 방법을 포함할 수 있다. NBMP 서비스 제공자는 도 10a와 같은 워크플로우를 이용하여 사용자에게 좌표 처리 서비스를 제공할 수 있다. 상술한 바와 같이, 서비스 제공자의 태스크 디렉토리는 각 태스크의 세부사항을 포함할 수 있으며, 워크플로우 매니저는 워크플로우를 준비하기 위해 이와 같은 태스크들을 선택할 수 있다.
도 13 은 6DoF 콘텐트의 프리-렌더링 및 리모트 렌더링을 위한 워크플로우를 나타낸다.
6DoF 콘텐트의 프리-렌더링은 좌표 처리(geometric processing) 및 렌더링 처리(rendering processing)를 포함한다. 좌표 처리 및 렌더링 처리를 거친 6DoF 콘텐트는 2D(2-dimensional) 비디오 또는 단순화된(simplified) 6DoF 콘텐트가 된다.
사용자 단말의 상태 또는 네트워크 대역폭이 전체 6DoF 콘텐트를 수신할 수 없으면, 사용자 피드백 정보를 참조하여 2D 콘텐트 또는 단순화된 6DoF 콘텐트가 제공될 수 있다.
리모트 렌더링 동안, 렌더링 처리는 2D 디스플레이로 픽셀매핑을 위한 래스터화 처리(rasterization process)를 제공할 수 있다. 프리-렌더링 동안 렌더링 처리는 사용자 뷰포트 정보와 같은 사용자 피드백 정보에 의해 부분적인 6DoF 콘텐트를 제공할 수 있다.
도 14 는, 본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템에서 콘텐트 인식(content-aware) 트랜스코딩 서비스를 위한 워크플로우를 나타낸다.
원본 영상(S)는 초기 스트림(T)을 생성하기 위해 원본 서버(A)에서 명목 해상도(nominal resolution), 프레임 레이트 및 비트레이트로 인코딩된다. 초기 스트림(T)는 미디어 전달 네트워크 내의 노트(B)로 전달된다. 노드(B)는 미디어 전달 네트워크 내의 어느 위치에든 존재할 수 있는 서버이며, 엣지 노드까지 내려갈 수 있다. 노드(B)에서, 초기 스트림(T)를 다양한 해상도, 프레임 레이트 및 비트레이트의 비디오 표현(U1, U2, U3)으로 변환하기 위해 처리가 수행되며, 비디오 표현은 사용자 단말에 전달될 수 있다.
NBMP 프레임워크를 사용한 콘텐트 인식 트랜스코딩은 두가지 타입으로 적용될 수 있다. 첫번째 타입은, 소정의 비트레이트 목록을 이용하는 방법으로, 목록상의 각 비트레이트에 대하여 세그먼트당 추천되는 비디오 포맷을 제공하는 timed-메타데이터에 기초하여 콘텐트 인식 트랜스코딩의 비디오 출력을 요청된 비트전송률로 구성할 수 있다.
두번째 타입은, 가능한 비디오 포맷의 목록을 이용하는 방법으로, 콘텐트 인식 트랜스코딩의 비디오 출력은 목록상의 각 포맷에 대하여 세그먼트당 최소 비트레이트를 제공하는 timed-메타데이터에 기초하여 콘텐트 인식 트랜스 코딩의 비디오 출력을 요청된 비트 전송률로 구성할 수 있다.
첫번째 타입의 트랜스 코딩에서, 인코더는 비디오의 각 세그먼트에 대하여 적절한 압축 표준 및 프로파일을 사용하여 가장 높은 비트레이트로 표현하기 위한 명목 해상도 및 프레임 레이트로 미디어 스트림을 생성하고, 낮은 비트레이트의 다른 표현에 대한 명목 해상도 및 프레임 레이트를 결정한다.
인코더는 각 세그먼트에 대한 비트레이트 목록을 작성하고, 각각에 대한 추천 포맷(해상도 및 프레임 레이트)에 대한 정보를 패키저(packager)로 전달한다. 패키저는 비트 레이트가 가장 높은 표현을 위한 비디오 세그먼트를 생성하고 가능한 다른 표현과 관련된 정보를 timed-메타데이터 세그먼트에 포함시킨다.
인코더는 비디오에 링크를 제공할 플레이리스트/매니페스트(manifest) 파일과 메타데이터 세그먼트를 작성하고, 세그먼트와 플레이리스트/매니페스트 파일을 원래의 시작 서버(origin server)로 전달한다. 시작 서버는 CDN을 통해 서버들로 전송하여 엣지 서버까지 내려 보낸다.
OTT(Over The Top) 플레이어는 CDN에 대한 요청을 통해 OTT서비스의 가능한 비트레이트 목록을 획득하고, 특정 제한이 있는 경우 로컬 네트워크의 대역폭 조건에 따라 지정된 비트레이트와 최대 해상도 및 프레임 레이트로 표현을 요청한다.
OTT 플레이어로부터 최대 비트레이트가 요구되고, 비디오 세그먼트의 해상도 또는 프레임 레이트가 플레이어가 지원하는 해상도 또는 프레임 레이트보다 높지 않다면, 서버는 최초 서버로부터 수신된 비디오 세그먼트를 제공한다.
낮은 비트레이트가 요청되면, 서버는 현재의(existing) 비디오 세그먼트를 낮은 비트레이트의 비디오 세그먼트로 트랜스코딩하는 태스크를 트리거한다. 트랜스코딩된 비디오 세그먼트의 비트레이트는 세그먼트와 관련된 메타데이터가 제공한 권장 해상도 및 프레임 레이트 또는 플레이어가 요구하는 제약 조건을 고려하여 결정된다.
마찬가지로, OTT 플레이어에서 가장 높은 비트레이트가 요청하지만 기존 비디오 세그먼트를 생성하는데 사용되는 것보다 해상도 및 프레임 레이트에서 더 제한적인 조건이 있는 경우, 서버는 트랜스코딩 태스크를 트리거한다. 트랜스코딩 태스크는 기존의 비디오 세그먼트를 낮은 해상도 및 프레임 레이트로, 캐핑된(capped) 동일 비트레이트로 변환한다.
Figure pct00006
Figure pct00007
표 6 은 트랜스코딩 워크플로우를 생성하기 위한 트랜스코딩 워크플로우 디스크립션의 일 실시예를 나타낸다.
본 개시의 일 실시예에 따른 피드백 태스크를 이용하는 NBMP 시스템에서 콘텐트 인식(content-aware) 트랜스코딩 태스크를 실행하기 위한 동작 흐름은 도 3을 따른다. 다만, 트랜스 코딩과 관련된 특유한 동작에 대한 설명은 다음과 같다.
단계 310에서, NBMP 소스(160)는 워크플로우 매니저(150)로 워크플로우 생성 요청을 요청하면서 워크플로우 디스크립션 문서를 전달한다.
워크플로우 매니저(150)는 워크플로우 디스크립션 문서를 확인하고, 워크플로우를 만들기 시작한다. 입력 디스크립터는 트랜스코딩 태스크의 구성을 동적으로 변경할 수 있는 콘텐트 종속 메타데이터(content-dependent metadata)의 URL을 제공할 수 있다. 출력 디스크립터는 클라이언트에서 표현된 최대 비트레이트, 최대 해상도 및 프레임 레이트 등의 조건을 제공할 수 있다. 조건이 변경되면 UpdateWorkflow API 동작을 통한 워크플로우 업데이트가 필요하지만, 조건의 변경은 콘텐트 종속 메타데이터에 의한 권장사항에 따라 수행되어야 한다.
단계 320에서, 워크플로우 매니저(150)는 기능 저장소(140)로 워크플로우에 배치될 AVC/HEVC/VVC 트랜스코딩 기능을 찾기 위한 쿼리를 전송한다.
단계 330에서, 기능 저장소(140)는 쿼리에 대한 응답으로 가능한 기능들과 기능들의 디스크립션 및 구성 정보를 워크플로우 매니저(150)로 전송한다.
단계 340에서, 기능 저장소로부터 응답을 수신한 워크플로우 매니저(150)는 트랜스코딩 기능을 선택하고, 미디어 처리 개체를 생성하고 기능(트랜스코더 도커(docker)의 이미지)을 로드하기 위하여 클라우드 플랫폼(180)에 접속한다.
단계 350에서, 클라우드 플랫폼(180)은 네트워크 접근 정보를 포함하는 각 미디어 처리어 개체의 생성을 확인(confirm)하고 관련 정보를 워크플로우 매니저로 전달한다.
단계 360에서, 워크플로우 매니저(150)는 콘텐트 종속 메타데이터 및 워크플로우의 출력 디스크립터에서 제공된 조건을 이용하여 트랜스코딩 태스크에서 재생될 출력 미디어의 파라미터(비트레이트, 해상도 및 프레임 레이트)를 설정한다. 워크플로우 매니저는 태스크 API를 이용하여 태스크로 구성 정보를 전송한다.
단계 370에서, 태스크(120)는 구성을 성공했음을 확인하고, 접근 정보를 반환한다.
단계 380에서, 워크플로우 매니저(150)는 워크플로우의 생성을 NBMP 소스(160)에 확인(confirm)한다.
이후, 워크플로우 매니저(150)는 계속하여 각 비디오 세그먼트와 관련된 콘텐트 종속 메타데이터를 모니터한다. 트랜스코딩 태스크에서 재생될 출력 미디어의 파라미터들(비트레이트, 해상도 및 프레임 레이트)가 다음 세그먼트를 위해 변경될 필요가 있다면, 워크플로우 매니저는 태스크 API를 사용하여 구성을 태스크로 전달하고 업데이트한다.
낮은 비트레이트의 스트림 요청이 없는 등의 이유로 트랜스 코딩없이 수 초가 흐르면, NBMP 소스는 DeleteWorkflow API를 사용하여 트랜스코딩 태스크를 종료한다.
Figure pct00008
Figure pct00009
표 7 은, 트랜스코딩 태스크 디스크립션의 일 실시예를 나타낸다.
표 7 을 참조하면, 트랜스코딩 태스크 디스크립션은 클라이언트 지원 디스크립터를 포함할 수 있다. 트랜드코딩 태스크가 이용할 수 있는 클라이언트 지원 디스크립터는 단말 성능에 대한 정보, 사용자 선호에 대한 정보, 또는 FoV(Field of View)에 대한 정보 중 적어도 하나를 포함할 수 있다.
워크플로우 매니저는 클라이언트로부터 이와 같은 정보를 수신할 수 있도록 워크플로우의 미디어 처리 개체를 구성할 수 있다.
최대 비트레이트, 최대 해상도 및 프레임 레이트 등과 같은 클라이언트 정보는, 미디어 소스에서 수신되어 워크플로우 매니저로 전송된다. 콘텐트 종속 메타데이터와 함께 이와 같은 정보에 기초하여 트랜스코딩 태스크의 출력이 구성된다.
도 15 는, 본 개시의 일 실시예에 따른 워크플로우 매니저의 하드웨어 구성을 도시한 블록도이다.
도 15 를 참조하면, 워크플로우 매니저(1500)는 프로세서(1510), 통신부(1520), 및 메모리(1530)를 포함할 수 있다.
워크플로우 매니저(1500)는 소정의 서버로 구현될 수 있으며, 도 15에는 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 15 에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
프로세서(1510)는 도 1 내지 도 14에서 상술한, 워크플로우를 생성하고, 관리하기 위한 일련의 프로세스를 제어할 수 있다.
또한 프로세서(1510)는 워크플로우 매니저(1500)를 제어하기 위한 전반적인 기능들을 제어하는 역할을 한다. 예를 들어, 프로세서(1510)는 워크플로우 매니저(1500) 내의 메모리(1530)에 저장된 프로그램들을 실행함으로써, 워크플로우 매니저(1500)를 전반적으로 제어한다. 프로세서(1510)는 워크플로우 매니저(1500) 내에 구비된 CPU(Central Processing Unit), GPU(Graphics Processing Unit), AP(Application Processor) 등으로 구현될 수 있으나, 이에 제한되지 않는다.
통신부(1520)는, 유무선 LAN(Local Area Network)등의 통신모듈을 이용하여 다른 장치와 연결하고, 데이터를 송수신할 수 있다. 일 실시예에 따른 워크플로우 매니저(1500)의 통신부(1520)는 워크플로우 매니저를 NBMP 소스, 기능 저장소, 미디어 처리 태스크 및 피드백 태스트와 연결하고, 각종 데이터를 송수신할 수 있다.
메모리(1530)는 워크플로우 매니저(1500)내에서 처리되는 각종 데이터들을 저장하는 하드웨어로, 예를 들어 메모리(1530)는 통신부(1520)에서 수신한 데이터들, 프로세서에서 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다.
메모리(1530)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다.
본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체 또는 컴퓨터 프로그램 제품이 제공될 수 있다. 컴퓨터 판독 가능 저장 매체 또는 컴퓨터 프로그램 제품에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: Read Only Memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: Electrically Erasable Programmable Read Only Memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM: Compact Disc-ROM), 디지털 다목적 디스크(DVDs: Digital Versatile Discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크 상의 별도의 저장 장치가 본 개시의 실시예를 수행하는 장치에 접속할 수도 있다.
본 개시에서, 용어 "컴퓨터 프로그램 제품(computer program product)" 또는 "컴퓨터로 읽을 수 있는 기록매체(computer readable medium)"는 메모리, 하드 디스크 드라이브에 설치된 하드 디스크, 및 신호 등의 매체를 전체적으로 지칭하기 위해 사용된다. 이들 "컴퓨터 프로그램 제품" 또는 "컴퓨터로 읽을 수 있는 기록매체"는 본 개시에 따른 결정된 이벤트에 대응하는 네트워크 메트릭에 기초하여, 누락된 데이터 패킷을 수신하기 위한 타이머의 길이를 설정하는 명령어로 구성된 소프트웨어 컴퓨터 시스템에 제공하는 수단이다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
상술한 본 개시의 구체적인 실시예들에서, 본 개시에 포함되는 구성 요소는 제시된 구체적인 실시예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (13)

  1. NBMP 소스로부터 미디어 콘텐트 처리를 위한 워크플로우 정보를 획득하는 단계;
    상기 워크플로우 정보에 기초하여, 피드백 태스크 사용 여부를 확인하는 단계;
    상기 워크플로우 정보에 기초하여, 기능 저장소로부터 상기 피드백 태스크의 기능 또는 상기 미디어 처리를 위한 적어도 하나의 미디어 태스크의 기능에 대한 기능 정보를 획득하는 단계;
    상기 워크플로우 정보 및 상기 기능 정보 중 적어도 하나에 기초하여 태스크 정보를 획득하는 단계;
    상기 태스크 정보를 각 태스크로 전달하는 단계;
    클라이언트 피드백 정보를 획득하는 단계;
    상기 클라이언트 피드백 정보에 기초하여 상기 태스크 정보를 업데이트하는 단계;를 포함하고,
    상기 태스크 정보는, 각 태스크들의 입력 정보, 출력 정보, 구성 정보 또는 연결 정보 중 적어도 하나를 포함하고,
    상기 연결 정보는, 상기 적어도 하나의 미디어 태스크 중 클라이언트 지원 정보를 이용하는 미디어 처리 태스크와 피드백 태스크의 연결 정보를 포함하는,
    미디어 콘텐트 처리 관리 방법.
  2. 제 1 항에 있어서,
    상기 클라이언트 피드백 정보를 획득하는 단계는,
    상기 피드백 태스크로부터 상기 클라이언트 피드백 정보를 수신하는 단계;를 포함하는,
    미디어 콘텐트 처리 관리 방법.
  3. 제 2 항에 있어서,
    상기 업데이트된 태스크 정보를 상기 클라이언트 지원 정보를 이용하는 미디어 처리 태스크로 전달하는 단계;를 더 포함하는,
    미디어 콘텐트 처리 관리 방법.
  4. 제 3 항에 있어서,
    상기 클라이언트 피드백 정보를 획득하는 단계는,
    상기 NBMP 소스로부터 수신된, 상기 클라이언트 피드백 정보에 기초하여 업데이트된 워크플로우 정보를 수신하는 단계;를 포함하고,
    상기 태스크 정보를 업데이트하는 단계는,
    상기 업데이트된 워크플로우 정보에 기초하여 태스크 정보를 업데이트하는 단계;를 포함하는,
    미디어 콘텐트 처리 관리 방법.
  5. NBMP 소스;
    NBMP 싱크;
    미디어 콘텐트 처리를 위한 워크플로우를 관리하는 워크플로우 매니저;
    상기 미디어 콘텐트 처리를 위한 태스크들의 기능을 저장하는 기능 저장소; 및
    상기 미디어 콘텐트 처리를 위한 적어도 하나의 태스크가 실행되는 미디어 처리 개체(Media Processing Entity);를 포함하고,
    상기 워크플로우 매니저는,
    상기 NBMP 소스로부터 미디어 콘텐트 처리를 위한 워크플로우 정보를 획득 하고,
    상기 워크플로우 정보에 기초하여 피드백 태스크 사용 여부를 확인하고,
    상기 워크플로우 정보에 기초하여, (기능 저장소로부터) 상기 피드백 태스크의 기능 또는 상기 미디어 처리를 위한 적어도 하나의 미디어 태스크의 기능에 대한 기능 정보를 획득하고,
    상기 워크플로우 정보 및 상기 기능 정보 중 적어도 하나에 기초하여 태스크 정보를 획득하고,
    상기 태스크 정보를 각 태스크로 전달하고,
    클라이언트 피드백 정보를 획득하고,
    상기 클라이언트 피드백 정보에 기초하여 상기 태스크 정보를 업데이트하고,
    상기 태스크 정보는, 각 태스크들의 입력 정보, 출력 정보, 구성 정보 또는 연결 정보 중 적어도 하나를 포함하고,
    상기 연결 정보는, 상기 적어도 하나의 미디어 태스크 중 클라이언트 지원 정보를 이용하는 미디어 처리 태스크와 피드백 태스크의 연결 정보를 포함하는,
    미디어 콘텐트 제공 시스템.
  6. 제 5 항에 있어서,
    상기 피드백 태스크는, 상기 NBMP 싱크로부터 클라이언트 피드백 정보를 획득하고 상기 획득된 클라이언트 피드백 정보를 워크플로우 매니저 및 상기 클라이언트 지원 정보를 이용하는 미디어 처리 태스크로 전달하는,
    미디어 콘텐트 제공 시스템.
  7. 제 5 항에 있어서,
    상기 피드백 태스크는, 상기 NBMP 싱크로부터 클라이언트 피드백 정보를 획득하고 상기 획득된 클라이언트 피드백 정보를 워크플로우 매니저로 전달하고,
    상기 워크플로우 매니저는, 상기 업데이트된 태스크 정보를 상기 클라이언트 지원 정보를 이용하는 미디어 처리 태스크로 전달하는,
    미디어 콘텐트 제공 시스템.
  8. 제 5 항에 있어서,
    상기 피드백 태스크는, 상기 획득된 클라이언트 피드백 정보를 NBMP 소스로 전달하고,
    상기 워크플로우 매니저는,
    상기 NBMP 소스로부터 상기 클라이언트 피드백 정보에 기초하여 업데이트된 워크플로우 정보를 수신하고,
    상기 업데이트된 워크플로우 정보에 기초하여 태스크 정보를 업데이트하고,
    상기 업데이트된 태스크 정보를 상기 클라이언트 지원 정보를 이용하는 미디어 처리 태스크로 전달하는,
    미디어 콘텐트 제공 시스템.
  9. 미디어 콘텐트 처리를 위한 워크플로우를 관리하는 장치는,
    메모리;
    통신부; 및
    프로세서;를 포함하고,
    상기 적어도 하나의 프로세서는,
    NBMP 소스로부터 미디어 콘텐트 처리를 위한 워크플로우 정보를 획득하고,
    상기 워크플로우 정보에 기초하여, 피드백 태스크 사용 여부를 확인하고,
    상기 워크플로우 정보에 기초하여, 기능 저장소로부터 상기 피드백 태스크의 기능 또는 상기 미디어 처리를 위한 적어도 하나의 미디어 태스크의 기능에 대한 기능 정보를 획득하고,
    상기 워크플로우 정보 및 상기 기능 정보 중 적어도 하나에 기초하여 태스크 정보를 획득하고,
    상기 태스크 정보를 각 태스크로 전달하고,
    클라이언트 피드백 정보를 획득하고,
    상기 클라이언트 피드백 정보에 기초하여 상기 태스크 정보를 업데이트하고,
    상기 태스크 정보는, 각 태스크들의 입력 정보, 출력 정보, 구성 정보 또는 연결 정보 중 적어도 하나를 포함하고,
    상기 연결 정보는, 상기 적어도 하나의 미디어 태스크 중 클라이언트 지원 정보를 이용하는 미디어 처리 태스크와 피드백 태스크의 연결 정보를 포함하는,
    미디어 콘텐트 처리 관리 장치.
  10. 제 9 항에 있어서,
    상기 프로세서는,
    상기 피드백 태스크로부터 상기 클라이언트 피드백 정보를 수신하는,
    미디어 콘텐트 처리 관리 장치.
  11. 제 10 항에 있어서,
    상기 프로세서는,
    상기 업데이트된 태스크 정보를 상기 클라이언트 지원 정보를 이용하는 미디어 처리 태스크로 전달하는,
    미디어 콘텐트 처리 관리 장치.
  12. 제 11 항에 있어서,
    상기 프로세서는,
    상기 NBMP 소스로부터, 상기 클라이언트 피드백 정보에 기초하여 업데이트된 워크플로우 정보를 수신하고,
    상기 업데이트된 워크플로우 정보에 기초하여 태스크 정보를 업데이트하는,
    미디어 콘텐트 처리 관리 장치.
  13. 제 1 항에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체.
KR1020217002351A 2018-12-03 2019-12-03 미디어 콘텐트 처리를 관리하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 KR20210088519A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862774547P 2018-12-03 2018-12-03
US62/774,547 2018-12-03
PCT/KR2019/016925 WO2020116896A1 (ko) 2018-12-03 2019-12-03 미디어 콘텐트 처리를 관리하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체

Publications (1)

Publication Number Publication Date
KR20210088519A true KR20210088519A (ko) 2021-07-14

Family

ID=70973875

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217002351A KR20210088519A (ko) 2018-12-03 2019-12-03 미디어 콘텐트 처리를 관리하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체

Country Status (3)

Country Link
US (1) US11381885B2 (ko)
KR (1) KR20210088519A (ko)
WO (1) WO2020116896A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544108B2 (en) * 2019-04-23 2023-01-03 Tencent America LLC Method and apparatus for functional improvements to moving picture experts group network based media processing
US11516152B2 (en) * 2019-09-28 2022-11-29 Tencent America LLC First-in first-out function for segmented data stream processing
US11722540B2 (en) * 2020-09-24 2023-08-08 Apple Inc. Distributed encoding
US11593150B2 (en) * 2020-10-05 2023-02-28 Tencent America LLC Method and apparatus for cloud service
US20220337530A1 (en) * 2021-04-19 2022-10-20 Tencent America LLC Method for switching workflow or updating workflow with continuity and no interruption in dataflow
US11799937B2 (en) * 2021-05-12 2023-10-24 Tencent America LLC CMAF content preparation template using NBMP workflow description document format in 5G networks
US11917269B2 (en) * 2022-01-11 2024-02-27 Tencent America LLC Multidimensional metadata for parallel processing of segmented media data

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9207984B2 (en) * 2009-03-31 2015-12-08 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US9213955B2 (en) * 2010-12-17 2015-12-15 Verizon Patent And Licensing Inc. Work order optimization
WO2015007795A1 (en) * 2013-07-16 2015-01-22 Bitmovin Gmbh Apparatus and method for cloud assisted adaptive streaming
BR112018015859A2 (pt) 2016-02-05 2018-12-26 Huawei Technologies Co., Ltd. método e aparelho para o envio de informações de feedback
US10320922B1 (en) * 2016-03-28 2019-06-11 Amazon Technologies, Inc. Inventory manager for distributed systems
WO2018031070A1 (en) * 2016-08-12 2018-02-15 Intel IP Corporation Systems, methods and devices for mobile edge computing - radio access node control plane interface
KR102065359B1 (ko) 2017-02-28 2020-01-13 한국전자통신연구원 무선 통신 시스템에서 콘텐츠 전달을 위한 네트워크 구성 방법 및 네트워크 시스템
US10540201B2 (en) * 2017-07-31 2020-01-21 Vmware, Inc. Systems and methods for task processing in a distributed environment
US11063992B1 (en) * 2020-03-30 2021-07-13 Tencent America LLC Network-based media processing (NBMP) workflow management through 5G framework for live uplink streaming (FLUS) control

Also Published As

Publication number Publication date
US20220053244A1 (en) 2022-02-17
US11381885B2 (en) 2022-07-05
WO2020116896A1 (ko) 2020-06-11

Similar Documents

Publication Publication Date Title
KR20210088519A (ko) 미디어 콘텐트 처리를 관리하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
RU2711591C1 (ru) Способ, устройство и компьютерная программа для адаптивной потоковой передачи мультимедийного контента виртуальной реальности
KR102246002B1 (ko) 가상 현실 미디어 콘텐트의 스트리밍을 개선하는 방법, 디바이스, 및 컴퓨터 프로그램
US10999340B2 (en) Cloud-based video delivery
US20210136455A1 (en) Communication apparatus, communication control method, and computer program
KR101467430B1 (ko) 클라우드 컴퓨팅 기반 어플리케이션 제공 방법 및 시스템
US20160182593A1 (en) Methods, devices, and computer programs for improving coding of media presentation description data
US20210377579A1 (en) Systems and Methods of Orchestrated Networked Application Services
JP2017515336A (ja) 分割タイムドメディアデータのストリーミングを改善するための方法、デバイス、およびコンピュータプログラム
US20140010289A1 (en) Video stream
US11115697B1 (en) Resolution-based manifest generator for adaptive bitrate video streaming
CN113826367A (zh) 用于计算平台上的功能实现的计算资源估计
US20140188975A1 (en) Transmission apparatus, transmission method, and program
CN111434120A (zh) 高效的沉浸式流传输
CA3144834A1 (en) Orchestrated control for displaying media
KR101944601B1 (ko) 기간들에 걸쳐 오브젝트들을 식별하기 위한 방법 및 이에 대응하는 디바이스
US20210014547A1 (en) System for distributing an audiovisual content
JP6804191B2 (ja) ビデオストリームの後処理のための方法及び装置
CN114128236A (zh) 提供云服务的方法和装置
US10547878B2 (en) Hybrid transmission protocol
CN116636224A (zh) 可替代联网应用程序服务的系统和方法
US11523156B2 (en) Method and system for distributing an audiovisual content

Legal Events

Date Code Title Description
A201 Request for examination