KR20230038247A - 클라우드 플랫폼 상에서 네트워크 기반 미디어 프로세싱 작업 흐름을 스케일링하기 위한 방법 및 장치, 및 저장 매체 - Google Patents

클라우드 플랫폼 상에서 네트워크 기반 미디어 프로세싱 작업 흐름을 스케일링하기 위한 방법 및 장치, 및 저장 매체 Download PDF

Info

Publication number
KR20230038247A
KR20230038247A KR1020237004780A KR20237004780A KR20230038247A KR 20230038247 A KR20230038247 A KR 20230038247A KR 1020237004780 A KR1020237004780 A KR 1020237004780A KR 20237004780 A KR20237004780 A KR 20237004780A KR 20230038247 A KR20230038247 A KR 20230038247A
Authority
KR
South Korea
Prior art keywords
workflow
information
type information
scaling
functionality
Prior art date
Application number
KR1020237004780A
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 KR20230038247A publication Critical patent/KR20230038247A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • 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
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Multimedia (AREA)

Abstract

클라우드 플랫폼 상에서 네트워크 기반 미디어 프로세싱(NBMP) 작업 흐름을 스케일링하기 위한 방법 및 장치. 방법은, 입력 미디어 스트림을 포함하는 입력 작업 흐름을 획득하는 단계, 입력 작업 흐름에 대해 스케일링 타입 정보 또는 전환 타입 정보 중 적어도 하나를 결정하는 단계, 스케일링 타입 정보 또는 전환 타입 정보 중 결정된 적어도 하나에 기초하여, 업데이트된 작업 흐름을 생성하는 단계, 및 업데이트된 작업 흐름을 프로세싱하는 단계를 포함한다.

Description

데이터 흐름에서의 연속성으로 클라우드 상의 부분 또는 전체 작업 흐름을 스위칭 또는 업데이트하기 위한 방법 및 장치
관련 출원에 대한 상호 참조
본 출원은 2021년 7월 6일자로 출원된 미국 가특허 출원 제63/218,811호에 기초하고 그에 대한 우선권을 주장하고, 그의 개시내용은 그 전체가 참조로 본원에 포함된다.
기술분야
본 개시내용의 실시예들은 데이터 흐름에서의 임의의 중단 또는 임의의 데이터의 누락 없이 클라우드 작업 흐름(workflow)들 또는 클라우드 작업 흐름들의 부분들을 심리스(seamless) 방식으로 스위칭 또는 업데이트하기 위한 장치들 및 방법들에 관한 것이다.
네트워크 및 클라우드 플랫폼은 다양한 애플리케이션들을 실행하기 위해 사용될 수 있다. 네트워크 기반 미디어 프로세싱(Network Based Media Processing)(NBMP) 표준은 클라우드 플랫폼들 상에서 작업 흐름들을 정의, 인스턴스화, 및 실행하기 위한 사양을 제공한다. NBMP 표준은 또한 작업 흐름을 업데이트하기 위한 피처를 포함한다. 그러나, NBMP 표준의 작업 흐름 업데이트 기능성은 데이터의 흐름이 계속될 필요가 있는지 여부를 정의하기 위한 기능성, 또는 업데이트 동안 데이터가 누락되지 않아야 하는 것을 정의하기 위한 기능성을 갖지 않는다. 예컨대, 관련 기술 방법에서 작업 흐름이 업데이트될 수 있지만, 업데이트는 이전 작업 흐름에 의해 프로세싱되는 데이터를 반드시 고려하지는 않고, 그에 따라, 작업 흐름의 업데이트 동안 데이터 손실이 있을 수 있다. 더욱이, 작업 흐름을 업데이트하기 위한 관련 기술 방법이 작업 흐름을 생성, 검색, 및 삭제하기 위한 기능성들을 갖지만, 관련 기술 방법들은 데이터 손실 없이 기존(old) 작업 흐름으로부터 새로운 및/또는 업데이트된 작업 흐름으로의 원활한 전환을 제공하기 위해 데이터의 흐름이 계속될 필요가 있는지 여부를 정의하기 위한 기능성을 갖지 않는다.
본 개시내용의 하나 이상의 예시적인 실시예는 이 문제를 해결하고 작업 흐름들에서의 심리스 연속성을 제공할 수 있다.
본 개시내용의 하나 이상의 예시적인 실시예는 작업 흐름에서의 업데이트 동안 작업 흐름에서의 심리스 연속성을 제공하기 위한 방법 및 장치를 제공한다.
청구항들이 추가된 후에 업데이트된다.
추가적인 양태들은 이하의 설명에서 부분적으로 제시될 것이고, 일부는 설명으로부터 명백하게 될 것이거나 또는 본 개시내용의 제공되는 실시예들의 실시에 의해 실현될 수 있다.
위의 및 다른 양태들, 피처들, 및 본 개시내용의 실시예들의 양태들은 이하의 첨부 도면들과 함께 취해지는 이하의 설명으로부터 더 명백하게 될 것이다.
도 1은 하나 이상의 실시예에 따른 통신 시스템의 개략도이다.
도 2는 하나 이상의 실시예에 따른 스트리밍 환경의 단순화된 예시적인 도면이다.
도 3은 하나 이상의 실시예에 따른 NBMP 시스템의 블록도이다.
도 4는 하나 이상의 실시예에 따른 NBMP 분할기 및 병합기 프로세스의 예시적인 도면이다.
도 5는 하나 이상의 실시예에 따른, 작업 흐름에서의 업데이트 동안 작업 흐름에서의 심리스 연속성을 제공하기 위한 예시적인 프로세스의 블록도이다.
도 6은 하나 이상의 실시예에 따른, 작업 흐름에서의 업데이트 동안 작업 흐름에서의 심리스 연속성을 제공하기 위한 컴퓨터 코드의 예의 블록도이다.
본 개시내용은 작업 흐름의 출력에 영향을 미치지 않으면서 네트워크 기반 미디어 프로세싱(NBMP) 작업 흐름에서의 수정들을 시그널링하기 위한 방법 및 장치에 관한 것이다.
본 개시내용의 실시예들은 첨부 도면들을 참조하여 포괄적으로 설명된다. 그러나, 구현들의 예들은 다양한 다수의 형태들로 구현될 수 있고, 본 개시내용은 본원에서 설명되는 예들로 제한되는 것으로 해석되지 않아야 한다. 반대로, 구현들의 예들은 본 개시내용의 기술적 솔루션을 더 포괄적이고 완전하게 만들고, 관련 기술분야의 통상의 기술자에게 구현들의 예들의 아이디어를 포괄적으로 전달하기 위해 제공된다. 첨부 도면들은 단지 본 개시내용의 예시적인 예시들일 뿐이고, 반드시 실척대로 도시된 것은 아니다. 첨부 도면들에서의 동일한 참조 번호는 동일한 또는 유사한 구성요소들을 표현하고, 그에 따라, 구성요소들의 반복된 설명들은 생략된다.
아래에서 논의되는 제안된 피처들은 개별적으로 사용되거나 또는 임의의 순서로 조합될 수 있다. 첨부 도면들에 도시된 일부 블록도들은 기능적 엔티티들이고, 반드시 물리적으로 또는 논리적으로 독립적인 엔티티들에 대응하는 것은 아니다. 추가로, 실시예들은 프로세싱 회로부(예컨대, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현되거나, 또는 소프트웨어의 형태로 구현되거나, 또는 상이한 네트워크들 및/또는 프로세서 장치들 및/또는 마이크로제어기 장치들에서 구현될 수 있다. 일 예에서, 하나 이상의 프로세서는 하나 이상의 비일시적 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램 코드를 실행한다.
도 1은 실시예들에 따른, 본원에서 설명되는 방법들, 장치들, 및 시스템들이 구현될 수 있는 환경(100)의 도면이다. 도 1에 도시된 바와 같이, 환경(100)은 사용자 디바이스(110), 플랫폼(120), 및 네트워크(130)를 포함할 수 있다. 환경(100)의 디바이스들은 유선 연결들, 무선 연결들, 또는 유선 및 무선 연결들의 조합을 통해 상호연결할 수 있다.
사용자 디바이스(110)는 플랫폼(120)과 연관된 정보를 수신, 생성, 저장, 프로세싱, 및/또는 제공할 수 있는 하나 이상의 디바이스를 포함할 수 있다. 예컨대, 사용자 디바이스(110)는 컴퓨팅 디바이스(예컨대, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 핸드헬드 컴퓨터, 스마트 스피커, 서버 등), 모바일 전화(예컨대, 스마트폰, 무선전화 등), 웨어러블 디바이스(예컨대, 한 쌍의 스마트 안경 또는 스마트 워치), 또는 유사한 디바이스를 포함할 수 있다. 일부 구현들에서, 사용자 디바이스(110)는 플랫폼(120)으로부터 정보를 수신하고/하거나 플랫폼(120)으로 정보를 송신할 수 있다.
플랫폼(120)은 본원의 다른 곳에서 설명되는 바와 같은 하나 이상의 디바이스를 포함할 수 있다. 일부 구현들에서, 플랫폼(120)은 클라우드 서버 또는 클라우드 서버들의 그룹을 포함할 수 있다. 일부 구현들에서, 플랫폼(120)은 특정 필요에 따라 소프트웨어 구성요소들이 스왑 인(swap in) 또는 스왑 아웃(swap out)될 수 있도록 모듈식으로 설계될 수 있다. 따라서, 플랫폼(120)은 상이한 사용들을 위해 쉽게 그리고/또는 신속하게 재구성될 수 있다.
일부 구현들에서, 도시된 바와 같이, 플랫폼(120)은 클라우드 컴퓨팅 환경(122)에서 호스팅될 수 있다. 특히, 본원에서 설명되는 구현들이 플랫폼(120)을 클라우드 컴퓨팅 환경(122)에서 호스팅되는 것으로 설명하지만, 일부 구현들에서, 플랫폼(120)은 클라우드 기반이 아닐 수 있거나(즉, 클라우드 컴퓨팅 환경 외부에서 구현될 수 있음) 또는 부분적으로 클라우드 기반일 수 있다.
클라우드 컴퓨팅 환경(122)은 플랫폼(120)을 호스팅하는 환경을 포함할 수 있다. 클라우드 컴퓨팅 환경(122)은 플랫폼(120)을 호스팅하는 시스템(들) 및/또는 디바이스(들)의 물리적 위치 및 구성에 대한 최종 사용자(예컨대, 사용자 디바이스(110))의 지식을 요구하지 않는 컴퓨테이션, 소프트웨어, 데이터 액세스, 저장 등의 서비스들을 제공할 수 있다. 도시된 바와 같이, 클라우드 컴퓨팅 환경(122)은 컴퓨팅 리소스들(124)(일괄적으로는 "컴퓨팅 리소스들(124)"로 지칭되고 개별적으로는 "컴퓨팅 리소스(124)"로 지칭됨)의 그룹을 포함할 수 있다.
컴퓨팅 리소스(124)는 하나 이상의 개인용 컴퓨터, 워크스테이션 컴퓨터, 서버 디바이스, 또는 다른 타입의 컴퓨테이션 및/또는 통신 디바이스를 포함할 수 있다. 일부 구현들에서, 컴퓨팅 리소스(124)는 플랫폼(120)을 호스팅할 수 있다. 클라우드 리소스들은 컴퓨팅 리소스(124)에서 실행되는 컴퓨팅 인스턴스들, 컴퓨팅 리소스(124)에서 제공되는 저장 디바이스들, 컴퓨팅 리소스(124)에 의해 제공되는 데이터 전송 디바이스들 등을 포함할 수 있다. 일부 구현들에서, 컴퓨팅 리소스(124)는 유선 연결들, 무선 연결들, 또는 유선 및 무선 연결들의 조합을 통해 다른 컴퓨팅 리소스들(124)과 통신할 수 있다.
도 1에 추가로 도시된 바와 같이, 컴퓨팅 리소스(124)는 하나 이상의 애플리케이션("APP")(124-1), 하나 이상의 가상 머신("VM")(124-2), 가상화된 저장소("VS")(124-3), 하나 이상의 하이퍼바이저("HYP")(124-4) 등과 같은 클라우드 리소스들의 그룹을 포함할 수 있다.
애플리케이션(124-1)은 사용자 디바이스(110) 및/또는 플랫폼(120)에 제공되거나 또는 그들에 의해 액세스될 수 있는 하나 이상의 소프트웨어 애플리케이션을 포함할 수 있다. 애플리케이션(124-1)은 사용자 디바이스(110) 상에서 소프트웨어 애플리케이션들을 설치 및 실행할 필요성을 제거할 수 있다. 예컨대, 애플리케이션(124-1)은 플랫폼(120)과 연관된 소프트웨어 및/또는 클라우드 컴퓨팅 환경(122)을 통해 제공될 수 있는 임의의 다른 소프트웨어를 포함할 수 있다. 일부 구현들에서, 하나의 애플리케이션(124-1)은 가상 머신(124-2)을 통해 하나 이상의 다른 애플리케이션(124-1)으로/으로부터 정보를 전송/수신할 수 있다.
가상 머신(124-2)은 물리적 머신과 같은 프로그램들을 실행하는 머신(예컨대, 컴퓨터)의 소프트웨어 구현을 포함할 수 있다. 가상 머신(124-2)은 가상 머신(124-2)에 의한 임의의 실제 머신에 대한 대응 정도 및 사용에 따라 시스템 가상 머신 또는 프로세스 가상 머신일 수 있다. 시스템 가상 머신은 완전한 운영 체제("OS")의 실행을 지원하는 완전한 시스템 플랫폼을 제공할 수 있다. 프로세스 가상 머신은 단일 프로그램을 실행할 수 있고 단일 프로세스를 지원할 수 있다. 일부 구현들에서, 가상 머신(124-2)은 사용자(예컨대, 사용자 디바이스(110))를 대신하여 실행될 수 있고, 데이터 관리, 동기화, 또는 장기간 데이터 전송들과 같은 클라우드 컴퓨팅 환경(122)의 인프라스트럭처를 관리할 수 있다.
가상화된 저장소(124-3)는 컴퓨팅 리소스(124)의 저장 시스템들 또는 디바이스들 내에서 가상화 기법들을 사용하는 하나 이상의 저장 시스템 및/또는 하나 이상의 디바이스를 포함할 수 있다. 일부 구현들에서, 저장 시스템의 맥락 내에서, 가상화들의 타입들은 블록 가상화 및 파일 가상화를 포함할 수 있다. 블록 가상화는 물리적 저장소 또는 이종 구조와 상관없이 저장 시스템이 액세스될 수 있도록 물리적 저장소로부터 논리적 저장소를 추상화(또는 분리)하는 것을 나타낸다. 분리는 저장 시스템의 관리자들이 최종 사용자들을 위해 저장소를 관리하는 방법에서 관리자들에게 유연성을 허용할 수 있다. 파일 가상화는 파일 레벨에서 액세스되는 데이터와 파일들이 물리적으로 저장되는 위치 사이의 종속성들을 제거할 수 있다. 이는 저장소 사용, 서버 통합, 및/또는 무중단 파일 마이그레이션(non-disruptive file migration)들의 수행의 최적화를 가능하게 할 수 있다.
하이퍼바이저(124-4)는 다수의 운영 체제들(예컨대, "게스트 운영 체제들")이 컴퓨팅 리소스(124)와 같은 호스트 컴퓨터 상에서 동시에 실행되는 것을 허용하는 하드웨어 가상화 기법들을 제공할 수 있다. 하이퍼바이저(124-4)는 가상 운영 플랫폼을 게스트 운영 체제들에 제공할 수 있고, 게스트 운영 체제들의 실행을 관리할 수 있다. 다양한 운영 체제들의 다수의 인스턴스들이 가상화된 하드웨어 리소스들을 공유할 수 있다.
네트워크(130)는 하나 이상의 유선 및/또는 무선 네트워크를 포함할 수 있다. 예컨대, 네트워크(130)는 셀룰러 네트워크(예컨대, 5세대(5G) 네트워크, LTE(long-term evolution) 네트워크, 3세대(3G) 네트워크, 코드 분할 다중 액세스(CDMA) 네트워크 등), 공중 육상 모바일 네트워크(PLMN), 로컬 영역 네트워크(LAN), 광역 네트워크(WAN), 도시 영역 네트워크(MAN), 전화 네트워크(예컨대, 공중 교환 전화 네트워크(PSTN)), 사설 네트워크, 애드혹 네트워크, 인트라넷, 인터넷, 광섬유 기반 네트워크 등, 및/또는 이러한 또는 다른 타입들의 네트워크들의 조합을 포함할 수 있다.
도 1에 도시된 디바이스 및 네트워크의 수 및 배열은 예로서 제공된다. 실제로, 도 1에 도시된 것들에 비해 추가적인 디바이스들 및/또는 네트워크들, 더 적은 디바이스들 및/또는 네트워크들, 상이한 디바이스들 및/또는 네트워크들, 또는 상이하게 배열된 디바이스들 및/또는 네트워크들이 있을 수 있다. 게다가, 도 1에 도시된 2개 이상의 디바이스가 단일 디바이스 내에 구현될 수 있거나, 또는 도 1에 도시된 단일 디바이스가 다수의 분산된 디바이스들로서 구현될 수 있다. 추가적으로 또는 대안적으로, 환경(100)의 디바이스들(예컨대, 하나 이상의 디바이스)의 세트는 환경(100)의 디바이스들의 다른 세트에 의해 수행되는 것으로 설명되는 하나 이상의 기능을 수행할 수 있다.
도 2는 도 1의 하나 이상의 디바이스의 예시적인 구성요소들의 블록도이다. 디바이스(200)는 사용자 디바이스(110) 및/또는 플랫폼(120)에 대응할 수 있다. 도 2에 도시된 바와 같이, 디바이스(200)는 버스(210), 프로세서(220), 메모리(230), 저장 구성요소(240), 입력 구성요소(250), 출력 구성요소(260), 및 통신 인터페이스(270)를 포함할 수 있다.
버스(210)는 디바이스(200)의 구성요소들 사이의 통신을 허용하는 구성요소를 포함한다. 프로세서(220)는 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 프로세서(220)는 중앙 프로세싱 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 가속 프로세싱 유닛(APU), 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서(DSP), 필드 프로그램가능 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), 또는 다른 타입의 프로세싱 구성요소일 수 있다. 일부 구현들에서, 프로세서(220)는 기능을 수행하도록 프로그래밍되는 것이 가능한 하나 이상의 프로세서를 포함할 수 있다. 메모리(230)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 및/또는 프로세서(220)에 의한 사용을 위한 정보 및/또는 명령어들을 저장하는 다른 타입의 동적 또는 정적 저장 디바이스(예컨대, 플래시 메모리, 자기 메모리, 및/또는 광학 메모리)를 포함할 수 있다.
저장 구성요소(240)는 디바이스(200)의 동작 및 사용과 관련된 정보 및/또는 소프트웨어를 저장한다. 예컨대, 저장 구성요소(240)는 하드 디스크(예컨대, 자기 디스크, 광학 디스크, 광자기 디스크, 및/또는 솔리드 스테이트 디스크), 콤팩트 디스크(CD), 디지털 다기능 디스크(DVD), 플로피 디스크, 카트리지, 자기 테이프, 및/또는 다른 타입의 비일시적 컴퓨터 판독가능 매체를 대응하는 드라이브와 함께 포함할 수 있다.
입력 구성요소(250)는 디바이스(200)가, 이를테면, 사용자 입력을 통해 정보를 수신하는 것을 허용하는 구성요소(예컨대, 터치 스크린 디스플레이, 키보드, 키패드, 마우스, 버튼, 스위치, 및/또는 마이크로폰)를 포함할 수 있다. 추가적으로 또는 대안적으로, 입력 구성요소(250)는 정보를 감지하기 위한 센서(예컨대, 글로벌 포지셔닝 시스템(GPS) 구성요소, 가속도계, 자이로스코프, 및/또는 액추에이터)를 포함할 수 있다. 출력 구성요소(260)는 디바이스(200)로부터의 출력 정보를 제공하는 구성요소(예컨대, 디스플레이, 스피커, 및/또는 하나 이상의 발광 다이오드(LED))를 포함한다.
통신 인터페이스(270)는 디바이스(200)가, 이를테면, 유선 연결, 무선 연결, 또는 유선 및 무선 연결들의 조합을 통해 다른 디바이스들과 통신하는 것을 가능하게 하는 송수신기형 구성요소(예컨대, 송수신기 및/또는 별개의 수신기 및 송신기)를 포함할 수 있다. 통신 인터페이스(270)는 디바이스(200)가 다른 디바이스로부터 정보를 수신하고/하거나 다른 디바이스에 정보를 제공하는 것을 허용할 수 있다. 예컨대, 통신 인터페이스(270)는 이더넷 인터페이스, 광학 인터페이스, 동축 인터페이스, 적외선 인터페이스, 라디오 주파수(RF) 인터페이스, 범용 직렬 버스(USB) 인터페이스, Wi-Fi 인터페이스, 셀룰러 네트워크 인터페이스 등을 포함할 수 있다.
디바이스(200)는 본원에서 설명되는 하나 이상의 프로세스를 수행할 수 있다. 디바이스(200)는 프로세서(220)가 메모리(230) 및/또는 저장 구성요소(240)와 같은 비일시적 컴퓨터 판독가능 매체에 의해 저장된 소프트웨어 명령어들을 실행하는 것에 응답하여 이러한 프로세스들을 수행할 수 있다. 컴퓨터 판독가능 매체는 본원에서 비일시적 메모리 디바이스로서 정의된다. 메모리 디바이스는 단일 물리적 저장 디바이스 내의 메모리 공간 또는 다수의 물리적 저장 디바이스들에 걸쳐 분산된 메모리 공간을 포함한다.
소프트웨어 명령어들은 통신 인터페이스(270)를 통해 다른 디바이스로부터 또는 다른 컴퓨터 판독가능 매체로부터 메모리(230) 및/또는 저장 구성요소(240)로 판독될 수 있다. 실행될 때, 메모리(230) 및/또는 저장 구성요소(240)에 저장된 소프트웨어 명령어들은 프로세서(220)로 하여금 본원에서 설명되는 하나 이상의 프로세스를 수행하게 할 수 있다. 추가적으로 또는 대안적으로, 하드와이어드(hardwired) 회로부가 본원에서 설명되는 하나 이상의 프로세스를 수행하기 위해 소프트웨어 명령어들 대신에 또는 그들과 조합하여 사용될 수 있다. 따라서, 본원에서 설명되는 구현들은 하드웨어 회로부와 소프트웨어의 임의의 특정 조합으로 제한되지 않는다.
도 2에 도시된 구성요소의 수 및 배열은 예로서 제공된다. 실제로, 디바이스(200)는 도 2에 도시된 것들에 비해 추가적인 구성요소들, 더 적은 구성요소들, 상이한 구성요소들, 또는 상이하게 배열된 구성요소들을 포함할 수 있다. 추가적으로 또는 대안적으로, 디바이스(200)의 구성요소들(예컨대, 하나 이상의 구성요소)의 세트는 디바이스(200)의 구성요소들의 다른 세트에 의해 수행되는 것으로 설명되는 하나 이상의 기능을 수행할 수 있다.
본 개시내용의 실시예에서, 네트워크 기반 미디어 프로세싱(NBMP) 시스템이 제공된다. 도 3은 본원의 실시예들에 따른 NBMP 아키텍처(300)를 예시하고, 이는 클라우드 프로세싱과 관련하여 구현될 수 있다. NBMP 시스템(300)은 NBMP 소스(310), NBMP 작업 흐름 관리자(320), 기능 리포지토리(330), 하나 이상의 미디어 프로세싱 엔티티(MPE)(340), 미디어 소스(350), 및 미디어 싱크(360)를 포함한다. NBMP 소스(310), NBMP 작업 흐름 관리자(320), 기능 리포지토리(330), MPE(340), 미디어 소스(350), 및 미디어 싱크(360)는 적어도 하나 이상의 프로세서 및 메모리를 포함하거나 또는 그들에 의해 구현될 수 있고, 그 메모리는 적어도 하나 이상의 프로세서로 하여금 NBMP 소스(310), NBMP 작업 흐름 관리자(320), 기능 리포지토리(330), MPE(340), 미디어 소스(360), 및 미디어 싱크(360)의 기능들을 각각 수행하게 하도록 구성된 코드를 저장한다.
NBMP 소스(310)는 NBMP 작업 흐름 API(311)를 통해 NBMP 작업 흐름 관리자(320)와 작업 흐름 설명들을 통신할 수 있다. NBMP 소스(310)는 또한, 기능 발견 API(313)를 통해 기능 리포지토리(330)와 기능 설명들을 통신할 수 있다. 예컨대, NBMP 소스(310)는 작업 흐름 설명 문서(들)(WDD)를 NBMP 작업 흐름 관리자(320)로 전송할 수 있고, 기능 리포지토리(330)에 저장된 기능들의 기능 설명을 판독할 수 있고, 기능들은, 예컨대, 미디어 디코딩, 피처 포인트 추출, 카메라 파라미터 추출, 프로젝션 방법, 심 정보 추출, 블렌딩, 사후 프로세싱, 및 인코딩의 기능들과 같은, 기능 리포지토리(330)의 메모리에 저장된 미디어 프로세싱 기능들이다. NBMP 작업 흐름 관리자(320)는 기능 발견 API(313)와 동일한 또는 상이한 API일 수 있는 기능 발견 API(312)를 통해 기능 리포지토리(330)와 통신할 수 있고, API(314)(예컨대, MPE API)를 통해 MPE(340) 중 하나 이상과 통신할 수 있다.
미디어 프로세싱 엔티티들(340)은 하나 이상의 태스크(341)를 포함할 수 있다. NBMP 작업 흐름 관리자(320)는 또한, API(315)(예컨대, NBMP 태스크 API)를 통해 태스크들(341)과 통신할 수 있다. NBMP 작업 흐름 관리자(320)는 하나 이상의 MPE(340)에 의해 수행가능한 작업 흐름의 하나 이상의 태스크(341)를 셋업, 구성, 관리, 및 모니터링하기 위해 API(315)를 사용할 수 있다. 작업 흐름의 태스크들(341)을 구성, 관리, 및 모니터링하기 위해, NBMP 작업 흐름 관리자(320)는 요청들과 같은 메시지들을 태스크들(341) 및/또는 MPE(340) 중 하나 이상으로 전송할 수 있고, 여기서, 각각의 메시지는 여러 설명어들을 가질 수 있고, 그들 각각은 여러 파라미터들을 갖는다. 추가적으로, NBMP 소스(310), NBMP 작업 흐름 관리자(320), 기능 리포지토리(330), 및 MPE(340) 사이의 통신들은 제어 흐름으로 고려될 수 있다.
태스크들(341)은 각각, 미디어 프로세싱 기능들(343) 및 미디어 프로세싱 기능들(343)에 대한 구성들(342)을 포함할 수 있다. 각각의 미디어 프로세싱 엔티티(340) 내의 태스크들(341) 각각은 또한 서로 통신하여 태스크들 사이의 데이터 흐름을 용이하게 할 수 있다. 실시예에서, NBMP 작업 흐름 관리자(320)는 WDD 내의 태스크들의 설명들에 기초하여 태스크들을 선택하여, 기능 발견 API(312)를 통해 기능 리포지토리(330)를 탐색함으로써, 현재 작업 흐름에 대한 태스크들(341)로서 실행하기 위한 적절한 기능들을 발견할 수 있다. 하나 이상의 MPE(340)는 미디어 소스(350)로부터 미디어 콘텐츠를 수신하고, NBMP 작업 흐름 관리자(320)에 의해 생성된 태스크들(341)을 포함하는 작업 흐름에 따라 미디어 콘텐츠를 프로세싱하고, 프로세싱된 미디어 콘텐츠를 미디어 싱크(360)로 출력하도록 구성될 수 있다. 실시예에서, 하나 이상의 MPE(340)는 미디어 소스(350)와 미디어 싱크(360) 사이의 다수의 미디어 흐름들(316 및 317)에 대해 각각 병렬로 제공될 수 있다.
미디어 소스(350)는 미디어를 저장하는 메모리를 포함할 수 있고, NBMP 소스(310)와 통합되거나 또는 분리될 수 있다. 실시예에서, NBMP 작업 흐름 관리자(320)는 작업 흐름이 준비되었을 때 NBMP 소스(310)에 통지할 수 있고, 미디어 소스(350)는 작업 흐름이 준비되었다는 통지에 기초하여 미디어 콘텐츠를 하나 이상의 MPE(340)로 송신할 수 있고, 하나 이상의 MPE(340)는 미디어 콘텐츠를 미디어 싱크(360)로 송신할 수 있다. 미디어 소스(350), MPE(340), 및 미디어 싱크(360) 사이의 통신들은 데이터 흐름으로 고려될 수 있다.
예시적인 실시예들에 따르면, 프로세스 중인 작업 흐름은 일부 이유들, 즉, 데이터의 양의 증가로 인해 업데이트되어야 할 수 있다. 이러한 경우, 부하 증가에 대처하기 위해 작업 흐름의 하나 이상의 태스크가 분할될 필요가 있을 수 있고, 이는 새로운 작업 흐름으로의 스위칭으로 인해 데이터가 손실되지 않는 것을 확실히 한다. 실시예에 따르면, 기존 작업 흐름의 현재 태스크들은 업데이트된 작업 흐름에서 사용될 수 있다. 실시예에 따르면, 기존 작업 흐름으로부터 새로운 작업 흐름으로의 스위칭은 작업 흐름 내의 프로세스들이 적절하게 수행되는 것을 보장하기 위해 동시에(또는 정확한 시간에) 발생할 필요가 있다. 이러한 프로세스들은 데이터 수집 또는 빌링(billing)을 위한 프로세스들을 포함할 수 있지만 본 개시내용은 이에 제한되지 않는다.
실시예에 따르면, 작업 흐름에 대한 업데이트는 스케일링 접근법, 전환 접근법, 또는 스케일링 접근법과 전환 접근법 둘 모두의 조합을 사용하여 구현될 수 있다.
스케일링 접근법
실시예에 따르면, 스케일링 접근법은 스위칭 기능성, 분할 병합 기능성, 및 대체 기능성 중 하나를 포함할 수 있다. 그러나, 본 개시내용은 이에 제한되지 않고, 그에 따라, 다른 실시예에 따르면, 이러한 기능성들의 조합이 다른 기능성들과 함께 스케일링 접근법을 구현하기 위해 사용될 수 있다.
스위칭 기능성
실시예에 따르면, 스위칭 기능성은 하나 이상의 태스크를 제1 미디어 프로세싱 엔티티(MPE)로부터 제2 MPE로 스위칭하는 것을 포함할 수 있다. 예컨대, 제2 MPE는 제1 MPE보다 더 강력할 수 있다. 즉, 제2 MPE는 제1 MPE보다 더 많은 프로세싱 리소스들(즉, 메모리 요소들 및 프로세서 요소들)을 가질 수 있다. 따라서, 스위칭 기능성은 하나 이상의 태스크를 제1 MPE로부터 더 강력한 제2 MPE로 스위칭할 수 있다. 이러한 경우, 데이터는 데이터의 손실 없이 현재(제1) MPE 상에서 실행되는 하나 이상의 현재 태스크로부터 태스크의 새로운 인스턴스를 실행하는 새로운(제2) MPE로 전송될 필요가 있다.
실시예에 따르면, 스위칭 기능성은 NBMP 클라이언트 또는 작업 흐름 관리자에 의해 정의될 수 있다. 예컨대, NBMP 클라이언트 또는 작업 흐름 관리자는 작업 흐름의 스케일링 또는 업데이트 동안 사용하기 위한 파라미터들을 정의하는 스케일 설명어에 기초하여 스위칭 기능성을 구현할 수 있다.
분할 병합 기능성
실시예에 따르면, 분할 병합 기능성은 작업 흐름에 태스크의 하나 이상의 병렬 인스턴스를 추가하는 것을 포함할 수 있다. 예컨대, 태스크(및 데이터)의 병렬 프로세싱을 위해, 분할기 및 병합기 기능들의 쌍이 병렬 태스크들 전 및 후에 추가될 수 있다. 여기서, 단일 태스크는 다수의 서브태스크들로 분할되고 독립적으로 프로세싱될 수 있다. 단일 태스크로부터 다수의 태스크들로의 전환 동안, 데이터가 손실되지 않아야 한다.
도 4는 본 개시내용의 실시예에 따른, 병렬 프로세싱을 위해 태스크 T의 미디어 스트림(440)의 세그먼트들을 분할 및 병합하는 NBMP의 예를 도시한다. 도 4에 도시된 바와 같이, NBMP 분할기 및 병합기 프로세스(400)는 분할기(420) 및 병합기(430)를 포함한다. 도 4에서, 입력 미디어 스트림의 태스크 T는 태스크 T의 n개의 인스턴스(즉, T0, ..., TN-1)로 변환되고, n개의 인스턴스는 병렬로 실행된다. 입력 미디어 스트림(410)은 연속적일 수 있다. 분할기(420)는 미디어 스트림을 N개의 미디어 서브스트림으로 변환한다. 각각의 서브스트림은 T의 인스턴스에 의해 프로세싱된다. 이어서, 병합기(430)는 서브스트림들을 함께 인터리빙하여 출력(450)을 생성한다. 출력(450)은 태스크 T의 출력 스트림(즉, 미디어 스트림(440))과 동등하다.
도 4에 도시된 바와 같이, 1:N 분할기(420) 및 N:1 병합기(430) 기능들은 세그먼트 경계들에 대해 작동한다. 각각의 세그먼트는 그와 연관된 시작, 지속기간, 및 길이 메타데이터를 갖는다. 세그먼트들이 독립적이기 때문에, 결과적으로, 서브스트림들은 태스크 T에 의해 프로세싱되는 측면에서 서로 독립적이다. 실시예들에서, 태스크 T0, ..., TN-1은 태스크 T의 인스턴스들이고, 세그먼트들을 동시에 또는 개별적으로 프로세싱할 수 있다. 세그먼트들 및 서브스트림들이 독립적이기 때문에, 태스크 T의 각각의 인스턴스(즉, T0, ..., TN-1)는 자신 고유의 속도로 실행될 수 있다.
실시예에 따르면, 분할 병합 기능성은 NBMP 클라이언트 또는 작업 흐름 관리자에 의해 정의될 수 있다. 예컨대, NBMP 클라이언트 또는 작업 흐름 관리자는 작업 흐름의 스케일링 또는 업데이트 동안 사용하기 위한 파라미터들을 정의하는 스케일 설명어에 기초하여 분할 병합 기능성을 구현할 수 있다.
대체 기능성
실시예에 따르면, 대체 기능성은 병렬 작업 흐름을 확립하는 것, 및 현재 작업 흐름으로부터 병렬 작업 흐름으로 데이터를 전송하는 것을 포함할 수 있다. 이 경우, 현재 작업 흐름으로부터 병렬 작업 흐름으로의 전송 동안, 데이터가 손실되지 않아야 한다.
실시예에 따르면, 스위칭 기능성은 NBMP 클라이언트 또는 작업 흐름 관리자에 의해 정의될 수 있다. 예컨대, NBMP 클라이언트 또는 작업 흐름 관리자는 작업 흐름의 스케일링 또는 업데이트 동안 사용하기 위한 파라미터들을 정의하는 스케일 설명어에 기초하여 스위칭 기능성을 구현할 수 있다.
전환 접근법
실시예에 따르면, 전환 접근법은 동시 전환 기능성 또는 순차 전환 기능성 중 하나를 포함할 수 있다. 그러나, 본 개시내용은 이에 제한되지 않고, 그에 따라, 다른 실시예에 따르면, 이러한 기능성들의 조합이 다른 기능성들과 함께 전환 접근법을 구현하기 위해 사용될 수 있다.
동시 전환 기능성
실시예에 따르면, 동시 전환 기능성에서, 새로운 작업 흐름 또는 하나 이상의 새로운 대체 태스크(즉, 새로운 엔티티로 지칭됨), 및 기존 작업 흐름 또는 하나 이상의 기존 태스크(즉, 기존 엔티티로 지칭됨)는 동시에 수신할 수 있다. 이 경우, 기존 엔티티와 새로운 엔티티 둘 모두는, 적어도 기존 엔티티와 새로운 엔티티 둘 모두의 출력 데이터가 동일하게 될 때까지, 한동안 데이터를 수신할 수 있다. 그 후, 기존 엔티티가 중지될 수 있고, 새로운 엔티티로부터의 출력이 사용된다. 즉, 기존 엔티티와 새로운 엔티티 둘 모두의 출력 데이터가 동일하게 될 때, 기존 태스크, 태스크 그룹, 또는 작업 흐름이 중지된다.
실시예에 따르면, 작업 흐름 관리자 또는 클라우드 관리자가 전환 기능성을 구현하는 것을 담당할 수 있다. 예컨대, 작업 흐름 관리자 또는 클라우드 관리자는 전환 동안 사용하기 위한 파라미터들을 정의하는 스케일 설명어에 기초하여 동시 기능성을 구현할 수 있다.
순차 전환 기능성
실시예에 따르면, 순차 전환 기능성에서, 기존 태스크, 태스크들의 그룹, 또는 작업 흐름(즉, 기존 엔티티로 지칭됨)은 일부 포인트에서 데이터를 프로세싱하는 것이 중지된다. 그 후, 새로운 엔티티(즉, 새로운 태스크, 새로운 태스크들의 그룹, 또는 새로운 작업 흐름)는 기존 엔티티가 데이터의 프로세싱을 중지한 포인트로부터 데이터의 프로세싱을 인계받는다. 여기서, 기존 엔티티 및 새로운 엔티티는 데이터를 병렬로 프로세싱하지 않는다. 실시예에 따르면, 순차 전환이 동시 전환보다 더 효율적일 수 있는데, 그 이유는 다수의 프로세스들이 병렬로 동작할 필요가 없을 수 있고, 이는 추가적인 프로세싱 리소스들을 요구할 수 있기 때문이다. 이와 관련하여, 순차 전환은 또한, 전환 동안 데이터가 손실되지 않는 것을 보장하기 위해 동시 전환보다 더 복잡할 수 있다.
실시예에 따르면, 작업 흐름 관리자 또는 클라우드 관리자가 전환 기능성을 구현하는 것을 담당할 수 있다. 예컨대, 작업 흐름 관리자 또는 클라우드 관리자는 전환 동안 사용하기 위한 파라미터들을 정의하는 스케일 설명어에 기초하여 순차 전환 기능성을 구현할 수 있다.
실시예에 따르면, 스케일링 접근법들(즉, 스위칭 기능성, 분할 병합 기능성, 및 대체 기능성) 및 전환 접근법들(동시 전환 기능성 및 순차 전환 기능성)의 기능성들은 NBMP 표준의 NBMP 기능들의 속성들을 적용 및/또는 레버리징(leveraging)함으로써 구현될 수 있다.
실시예에 따르면, 엔티티에서의 각각의 데이터의 프로세싱은 이전 데이터의 프로세싱으로부터 획득한 이전 데이터 또는 엔티티의 내부 상태에 대한 종속성들을 가질 수 있다. 따라서, 새로운 엔티티로의 기존 엔티티의 즉시 스위칭은 가능하지 않을 수 있다.
실시예에 따르면, NBMP 기능에서, 단계 설명어는 데이터가 독립적으로 프로세싱될 수 있는 데이터의 세그먼트 크기를 정의한다. 작업 흐름 또는 태스크들의 그룹에서 사용되는 모든 기능들이 단계적으로 인에이블되는 경우, 즉, 세그먼트들을 독립적으로 프로세싱할 수 있는 경우, 세그먼트별로 독립적으로 데이터가 프로세싱되는 작업 흐름 또는 태스크들의 그룹에 대한 세그먼트 크기를 정의할 수 있다.
실시예에 따르면, 단계 설명어에 기초한 독립적인 세그먼트 프로세싱에서, 각각의 세그먼트는 세그먼트 경계들을 정의하는 다음의 메타데이터를 갖는다. 예컨대, 실시예에 따르면, 메타데이터를 사용하여 세그먼트 경계들을 시그널링하기 위한 방법에서, 메타데이터는 세그먼트 시작, 세그먼트 지속기간, 및 세그먼트 크기를 정의하기 위해 제공될 수 있다. 이러한 정의는 태스크 T의 세그먼트들 중 임의의 것에 대해 제공될 수 있다. 예컨대, 메타데이터 정의는 다음과 같을 수 있다:
● S: T 스케일에서의 세그먼트의 시작.
● D: T 스케일에서의 세그먼트의 지속기간.
● L: 바이트 단위의 세그먼트의 길이.
● T: 타임스케일(초 단위의 틱의 수).
메타데이터 기반 신호 방법에 따르면, 임의의 기능의 미디어 스트림 입력 또는 출력은 세그먼트 경계 메타데이터를 운반하는 대응하는 메타데이터 입력 또는 출력을 가질 것이다. 따라서, 병렬 프로세싱을 위해 태스크 T의 미디어 스트림(440)의 세그먼트들을 분할 및 병합하는 것은 클라우드 플랫폼 상의 미디어 프로세싱에서 단계 기반 동작이 수행될 때 적절하게 수행될 수 있다.
실시예에 따르면, 세그먼트 메타데이터 정보를 사용하기 위해, 세그먼트별로 데이터를 프로세싱하는 기능/태스크는 그의 입력들에 대한 위의 메타데이터를 수신해야 할 뿐만 아니라 그의 출력들에서 메타데이터를 포함해야 한다.
실시예에 따르면, 위에서 논의된 스케일링 접근법들 및 전환 접근법들은 함께 적용될 수 있다. 예컨대, 다음의 표 1은 상이한 스케일링 방법들에 대한 2개의 전환 방법의 가능한 적용을 나타낸다.
표 1
Figure pct00001
실시예에 따르면, 위의 전환 방법들 중 임의의 것에서, 작업 흐름 관리자 및 클라우드 관리자가 전환을 구현하는 것을 담당한다. 더욱이, 전환의 방법 및 스케일의 방법은 NBMP 클라이언트 또는 작업 흐름 관리자에 의해 정의될 수 있다.
실시예에 따르면, 작업 흐름 관리자 및 클라우드 관리자가 전환의 방법 및 스케일의 방법을 결정하는 것을 담당하는 경우, 작업 흐름 관리자는 작업 흐름을 스케일링하는 방법 및 작업 흐름에 대해 사용하기 위한 전환의 타입을 결정할 수 있다. 특히, 작업 흐름 관리자는 NBMP 시스템의 능력들을 분석할 수 있고, 그의 능력들에 따라 그리고 스케일링의 레벨에 따라, 작업 흐름 관리자는 스케일링의 방법 및 전환의 방법을 결정할 수 있고, 전환의 결과만을 NBMP 클라이언트에 제공한다.
실시예에 따르면, NBMP 클라이언트가 전환의 방법 및 스케일의 방법을 결정하는 것을 담당하고 작업 흐름 관리자가 작업 흐름을 관리하는 것을 담당하는 경우, NBMP 클라이언트는 스케일링의 방법을 정의할 수 있고, 또한, 전환의 타입을 정의할 수 있다. 작업 흐름 관리자는 요청을 수신하고, 시스템 능력들을 분석함으로써 요청을 수용할 수 있는 경우 응답할 수 있다. 이 경우, 임의로, NBMP 클라이언트는 그의 요청을 하기 전에, 작업 흐름 관리자의 스케일링 및 전환 능력들에 관하여 통지받을 수 있다.
실시예에 따르면, NBMP 클라이언트가 전환의 방법 및 스케일의 방법을 결정하는 것을 담당하고 작업 흐름 관리자가 작업 흐름을 관리하는 것을 담당하는 경우, 작업 흐름에 대한 업데이트 동안 적절한 및 심리스 전환을 수행하기 위해 다음의 정보가 획득될 수 있다.
실시예에 따르면, 업데이트된 작업 흐름으로의 전환 전에, 작업 흐름 관리자가 전환을 지원하고 있는 경우, 전환의 타입, 스케일링의 타입, 또는 리소스 이용가능성과 같은 정보가 획득될 수 있다. 그러나, 이는 임의적일 수 있다.
실시예에 따르면, 전환 요청이 수신될 때, 작업 흐름 관리자는 제공된 정보가 전환에 대해 적절한지 여부, 및 리소스들이 요청된 전환에 대해 이용가능한지 여부, 요청이 수용될 수 있는지 여부와 같은 정보를 획득할 수 있다. 실시예에 따르면, 작업 흐름 관리자는 전환이 수용될 수 있는 시점에 대한 정보를 추가로 획득할 수 있다. 그러나, 이는 임의적일 수 있다.
실시예에 따르면, 업데이트된 작업 흐름으로의 전환 후에, 작업 흐름 관리자는 전환이 성공적이었는지 여부, 전환의 타이밍, 및 WDD 내의 업데이트 정보와 같은 정보를 획득할 수 있다.
예시적인 실시예에 따르면, 스케일 설명어가 다음의 방식으로 NBMP 표준 사양에 추가될 수 있다:
표 2―스케일 설명어
Figure pct00002
더욱이, 예시적인 실시예에 따르면, NBMP 표준 사양에 대한 스케일 설명어 파라미터들의 상세한 정의들이 다음의 방식으로 제공될 수 있다:
표 3―스케일 파라미터들
Figure pct00003
Figure pct00004
실시예에 따르면, NBMP 클라이언트는 다음의 것에 대해 WDD 업데이트 호출에 스케일 설명어를 포함시킬 수 있다: WDD에 스케일 설명어 및 '상태'='능력들'을 포함시킴으로써 작업 흐름 관리자의 능력들을 획득하는 것, WDD에 스케일 설명어를 포함시킴으로써 작업 흐름을 스케일링하는 것, TDD에 스케일 설명어를 포함시킴으로써 태스크를 스케일링하는 것, 태스크 그룹 객체에 스케일 설명어를 포함시킴으로써 태스크들의 그룹을 스케일링하는 것, 및 스케일링이 요청되는 경우 작업 흐름이 스케일링되는 것이 관리될 수 있는지 확인하기 위해 '상태'='고려'로 요청함으로써 위의 것들 중 임의의 것의 스케일링을 고려하는 것.
도 5는 하나 이상의 실시예에 따른, 클라우드 플랫폼 상에서 네트워크 기반 미디어 프로세싱(NBMP) 작업 흐름을 스케일링하기 위한 예시적인 방법(500)의 흐름도이다.
일부 구현들에서, 도 5의 하나 이상의 프로세스 블록은 플랫폼(120)에 의해 수행될 수 있다. 일부 구현들에서, 도 5의 하나 이상의 프로세스 블록은 사용자 디바이스(110)와 같은 플랫폼(120)과 별개이거나 또는 플랫폼(120)을 포함하는 다른 디바이스 또는 디바이스들의 그룹에 의해 수행될 수 있다.
도 5에 도시된 바와 같이, 동작(510)에서, 방법(500)은 입력 미디어 스트림을 포함하는 입력 작업 흐름을 획득하는 단계를 포함한다.
동작(520)에서, 방법(500)은 입력 작업 흐름에 대해 스케일링 타입 정보 또는 전환 타입 정보 중 적어도 하나를 결정하는 단계를 포함한다. 스케일링 타입 정보는 스위치 기능성 정보, 분할 병합 기능성 또는 대체 기능성 정보 중 하나를 포함하고, 전환 타입 정보는 동시 전환 기능성 정보 또는 동시 전환 기능성 정보 중 하나를 포함한다.
동작(530)에서, 방법(500)은 스케일링 타입 정보 또는 전환 타입 정보 중 결정된 적어도 하나에 기초하여, 업데이트된 작업 흐름을 생성하는 단계를 포함한다.
동작(540)에서, 방법(500)은 업데이트된 작업 흐름을 프로세싱하는 단계를 포함한다.
도 5는 방법의 예시적인 블록들을 도시하지만, 일부 구현들에서, 방법은 도 5에 도시된 것들에 비해 추가적인 블록들, 더 적은 블록들, 상이한 블록들, 또는 상이하게 배열된 블록들을 포함할 수 있다. 추가적으로 또는 대안적으로, 방법의 블록들 중 2개 이상이 병렬로 수행될 수 있다.
도 6은 하나 이상의 실시예에 따른, 클라우드 플랫폼 상에서 네트워크 기반 미디어 프로세싱(NBMP) 작업 흐름을 스케일링하기 위한 컴퓨터 코드의 예의 블록도이다.
본 개시내용의 실시예들에 따르면, 컴퓨터 코드를 저장하는 메모리를 갖는 적어도 하나의 프로세서가 제공될 수 있다. 컴퓨터 코드는, 적어도 하나의 프로세서에 의해 실행될 때, 본 개시내용의 임의의 수의 양태를 수행하도록 구성될 수 있다.
예컨대, 도 6을 참조하면, 컴퓨터 코드(600)는 NBMP 시스템(300)에서 구현될 수 있다.
도 6에 도시된 바와 같이, 컴퓨터 코드(600)는 획득 코드(610), 결정 코드(620), 생성 코드(630), 및 프로세싱 코드(640)를 포함할 수 있다.
획득 코드(610)는 적어도 하나의 프로세서로 하여금 입력 미디어 스트림을 포함하는 입력 작업 흐름을 획득하게 하도록 구성된 코드를 포함할 수 있다.
결정 코드(620)는 적어도 하나의 프로세서로 하여금 입력 작업 흐름에 대해 스케일링 타입 정보 또는 전환 타입 정보 중 적어도 하나를 결정하게 하도록 구성된 코드를 포함할 수 있다.
생성 코드(630)는 적어도 하나의 프로세서로 하여금 스케일링 타입 정보 또는 전환 타입 정보 중 결정된 적어도 하나에 기초하여, 업데이트된 작업 흐름을 생성하게 하도록 구성된 코드를 포함할 수 있다.
프로세싱 코드(640)는 적어도 하나의 프로세서로 하여금 하나 이상의 태스크의 스케줄링에 기초하여, 업데이트된 작업 흐름을 프로세싱하게 하도록 구성된 코드를 포함할 수 있다.
도 6은 실시예들에 따른 장치 또는 디바이스의 컴퓨터 코드(600)의 예시적인 블록들을 도시하지만, 일부 구현들에서, 장치는 도 6에 도시된 것들에 비해 추가적인 블록들, 더 적은 블록들, 상이한 블록들, 또는 상이하게 배열된 블록들을 포함할 수 있다. 추가적으로 또는 대안적으로, 장치의 블록들 중 2개 이상이 조합될 수 있다.
위에서 설명된 클라우드 플랫폼 상에서 네트워크 기반 미디어 프로세싱(NBMP) 작업 흐름을 스케일링하기 위한 기법들은 개별적으로 사용되거나 또는 임의의 순서로 조합될 수 있다. 추가로, 방법들(또는 실시예들) 각각은 프로세싱 회로부(예컨대, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일 예에서, 하나 이상의 프로세서는 비일시적 컴퓨터 판독가능 매체에 저장된 프로그램을 실행할 수 있다.
본 개시내용은 포괄적이거나 또는 구현들을 개시되는 정확한 형태로 제한하려고 의도되는 것이 아니라 예시 및 설명을 제공한다. 수정들 및 변형들은 본 개시내용을 고려하여 가능하거나 또는 구현들의 실시로부터 획득될 수 있다.
본원에서 사용될 때, 구성요소라는 용어는 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로서 넓게 해석되는 것으로 의도된다.
본원에서 설명되는 시스템들 및/또는 방법들은 상이한 형태들의 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다는 것이 명백할 것이다. 이러한 시스템들 및/또는 방법들을 구현하는 데 사용되는 실제 특수 제어 하드웨어 또는 소프트웨어 코드는 구현들을 제한하지 않는다. 그에 따라, 시스템들 및/또는 방법들의 동작 및 거동은 본원에서 특정 소프트웨어 코드를 참조함이 없이 설명되었는데, 소프트웨어 및 하드웨어는 본원에서의 설명에 기초하여 시스템들 및/또는 방법들을 구현하도록 설계될 수 있다는 것을 이해한다.
피처들의 조합들이 청구항들에서 언급되고/되거나 본 명세서에서 개시된다 하더라도, 이러한 조합들은 가능한 구현들의 개시내용을 제한하는 것으로 의도되지 않는다. 사실, 이러한 피처들 중 다수는 청구항들에서 구체적으로 언급되지 않은 그리고/또는 본 명세서에서 구체적으로 개시되지 않은 방식들로 조합될 수 있다. 아래에서 열거되는 각각의 종속항은 하나의 청구항에만 직접 의존할 수 있지만, 가능한 구현들의 개시내용은 청구항 세트 내의 모든 각각의 다른 청구항과 조합된 각각의 종속항을 포함한다.
본원에서 사용되는 어떠한 요소, 동작, 또는 명령어도 명시적으로 그러한 것으로 설명되지 않는 한 핵심적이거나 또는 필수적인 것으로 해석되지 않아야 한다. 또한, 본원에서 사용되는 바와 같이, 단수형들은 하나 이상의 아이템을 포함하는 것으로 의도되고, "하나 이상"과 상호교환가능하게 사용될 수 있다. 게다가, 본원에서 사용되는 바와 같이, "세트"라는 용어는 하나 이상의 아이템(예컨대, 관련 아이템들, 비관련 아이템들, 관련 및 비관련 아이템들의 조합 등)을 포함하는 것으로 의도되고, "하나 이상"과 상호교환가능하게 사용될 수 있다. 단 하나의 아이템이 의도되는 경우, "하나"라는 용어 또는 유사한 언어가 사용된다. 또한, 본원에서 사용되는 바와 같이, "갖다", "갖는다", "갖는" 등은 제한을 두지 않는 용어들인 것으로 의도된다. 추가로, "~에 기초하여"라는 문구는 명시적으로 달리 언급되지 않는 한 "~에 적어도 부분적으로 기초하여"를 의미하는 것으로 의도된다.

Claims (20)

  1. 클라우드 플랫폼 상에서 네트워크 기반 미디어 프로세싱(Network Based Media Processing)(NBMP) 작업 흐름을 스케일링하기 위한 방법으로서,
    입력 미디어 스트림을 포함하는 입력 작업 흐름을 획득하는 단계;
    상기 입력 작업 흐름에 대해 스케일링 타입 정보 또는 전환 타입 정보 중 적어도 하나를 결정하는 단계;
    상기 스케일링 타입 정보 또는 상기 전환 타입 정보 중 결정된 적어도 하나에 기초하여, 업데이트된 작업 흐름을 생성하는 단계; 및
    상기 업데이트된 작업 흐름을 프로세싱하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 스케일링 타입 정보는 스위치 기능성 정보, 분할 병합 기능성 또는 대체 기능성 정보 중 하나를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 스위치 기능성 정보는 상기 입력 작업 흐름을 제1 미디어 프로세싱 엔티티(MPE)로부터 더 강력한 제2 MPE로 스위칭하기 위한 기능성을 정의하는, 방법.
  4. 제1항에 있어서,
    상기 전환 타입 정보는 동시 전환 기능성 정보 또는 순차 전환 기능성 정보 중 하나를 포함하는, 방법.
  5. 제4항에 있어서,
    상기 동시 전환 기능성 정보는 상기 입력 작업 흐름의 하나 이상의 태스크와 상기 업데이트된 작업 흐름의 하나 이상의 태스크가 시간 기간 동안 병렬로 실행되는 것을 표시하는, 방법.
  6. 제4항에 있어서,
    상기 동시 전환 기능성 정보는 상기 입력 작업 흐름과 상기 업데이트된 작업 흐름 둘 모두의 출력 데이터가 동일할 때까지, 상기 입력 작업 흐름의 하나 이상의 태스크와 상기 업데이트된 작업 흐름의 하나 이상의 태스크가 병렬로 실행되는 것을 표시하는, 방법.
  7. 제4항에 있어서,
    상기 순차 전환 기능성 정보는, 하나의 시점에서, 상기 입력 작업 흐름의 하나 이상의 태스크가 상기 업데이트된 작업 흐름의 하나 이상의 태스크로 스위칭되는 것을 표시하는, 방법.
  8. 제1항에 있어서,
    상기 스케일링 타입 정보 및 상기 전환 타입 정보는 상기 NBMP의 스케일 설명어에 포함되는, 방법.
  9. 제8항에 있어서,
    상기 스케일 설명어는 상기 스케일링 타입 정보 또는 상기 전환 타입 정보에 대응하는 커맨드 정보를 포함하고,
    상기 커맨드 정보는,
    상기 클라우드 플랫폼의 능력들을 획득하기 위한 정보;
    스케일링 요청에서의 상기 스케일링 타입 정보 또는 상기 전환 타입 정보가 구현가능한지 여부를 결정하기 위한 정보; 또는
    상기 스케일링 요청에서의 상기 스케일링 타입 정보 또는 상기 전환 타입 정보가 구현가능한지 여부를 결정하는 것의 결과를 포함하는 응답을 제공하기 위한 정보
    를 포함하는, 방법.
  10. 클라우드 플랫폼 상에서 네트워크 기반 미디어 프로세싱(NBMP) 작업 흐름을 스케일링하기 위한 장치로서,
    프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및
    상기 프로그램 코드를 판독하고, 상기 프로그램 코드에 의해 명령되는 바와 같이 동작하도록 구성된 적어도 하나의 프로세서
    를 포함하고, 상기 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금 입력 미디어 스트림을 포함하는 입력 작업 흐름을 획득하게 하도록 구성된 획득 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 입력 작업 흐름에 대해 스케일링 타입 정보 또는 전환 타입 정보 중 적어도 하나를 결정하게 하도록 구성된 결정 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 스케일링 타입 정보 또는 상기 전환 타입 정보 중 결정된 적어도 하나에 기초하여, 업데이트된 작업 흐름을 생성하게 하도록 구성된 생성 코드; 및
    상기 적어도 하나의 프로세서로 하여금 상기 업데이트된 작업 흐름을 프로세싱하게 하도록 구성된 프로세싱 코드
    를 포함하는, 장치.
  11. 제10항에 있어서,
    상기 스케일링 타입 정보는 스위치 기능성 정보, 분할 병합 기능성 또는 대체 기능성 정보 중 하나를 포함하는, 장치.
  12. 제11항에 있어서,
    상기 스위치 기능성 정보는 상기 입력 작업 흐름을 제1 미디어 프로세싱 엔티티(MPE)로부터 더 강력한 제2 MPE로 스위칭하기 위한 기능성을 정의하는, 장치.
  13. 제10항에 있어서,
    상기 전환 타입 정보는 동시 전환 기능성 정보 또는 순차 전환 기능성 정보 중 하나를 포함하는, 장치.
  14. 제13항에 있어서,
    상기 동시 전환 기능성 정보는 상기 입력 작업 흐름의 하나 이상의 태스크와 상기 업데이트된 작업 흐름의 하나 이상의 태스크가 시간 기간 동안 병렬로 실행되는 것을 표시하는, 장치.
  15. 제13항에 있어서,
    상기 동시 전환 기능성 정보는 상기 입력 작업 흐름과 상기 업데이트된 작업 흐름 둘 모두의 출력 데이터가 동일할 때까지, 상기 입력 작업 흐름의 하나 이상의 태스크와 상기 업데이트된 작업 흐름의 하나 이상의 태스크가 병렬로 실행되는 것을 표시하는, 장치.
  16. 제13항에 있어서,
    상기 순차 전환 기능성 정보는, 하나의 시점에서, 상기 입력 작업 흐름의 하나 이상의 태스크가 상기 업데이트된 작업 흐름의 하나 이상의 태스크로 스위칭되는 것을 표시하는, 장치.
  17. 제10항에 있어서,
    상기 스케일링 타입 정보 및 상기 전환 타입 정보는 상기 NBMP의 스케일 설명어에 포함되는, 장치.
  18. 제17항에 있어서,
    상기 스케일 설명어는 상기 스케일링 타입 정보 또는 상기 전환 타입 정보에 대응하는 커맨드 정보를 포함하고,
    상기 커맨드 정보는,
    상기 클라우드 플랫폼의 능력들을 획득하기 위한 정보;
    스케일링 요청에서의 상기 스케일링 타입 정보 또는 상기 전환 타입 정보가 구현가능한지 여부를 결정하기 위한 정보; 또는
    상기 스케일링 요청에서의 상기 스케일링 타입 정보 또는 상기 전환 타입 정보가 구현가능한지 여부를 결정하는 것의 결과를 포함하는 응답을 제공하기 위한 정보
    를 포함하는, 장치.
  19. 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체로서,
    상기 명령어들은 하나 이상의 명령어를 포함하고,
    상기 하나 이상의 명령어는, 클라우드 플랫폼 상에서 네트워크 기반 미디어 프로세싱(NBMP) 작업 흐름을 스케일링하기 위한 장치의 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
    입력 미디어 스트림을 포함하는 입력 작업 흐름을 획득하게 하고,
    상기 입력 작업 흐름에 대해 스케일링 타입 정보 또는 전환 타입 정보 중 적어도 하나를 결정하게 하고,
    상기 스케일링 타입 정보 또는 상기 전환 타입 정보 중 결정된 적어도 하나에 기초하여, 업데이트된 작업 흐름을 생성하게 하고,
    상기 업데이트된 작업 흐름을 프로세싱하게 하는, 비일시적 컴퓨터 판독가능 매체.
  20. 제19항에 있어서,
    상기 스케일링 타입 정보는 스위치 기능성 정보, 분할 병합 기능성 또는 대체 기능성 정보 중 하나를 포함하고,
    상기 전환 타입 정보는 동시 전환 기능성 정보 또는 동시 전환 기능성 정보 중 하나를 포함하는, 비일시적 컴퓨터 판독가능 매체.
KR1020237004780A 2021-07-06 2022-04-07 클라우드 플랫폼 상에서 네트워크 기반 미디어 프로세싱 작업 흐름을 스케일링하기 위한 방법 및 장치, 및 저장 매체 KR20230038247A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163218811P 2021-07-06 2021-07-06
US63/218,811 2021-07-06
US17/702,977 2022-03-24
US17/702,977 US20230020527A1 (en) 2021-07-06 2022-03-24 Method and apparatus for switching or updating partial or entire workflow on cloud with continuity in dataflow
PCT/US2022/023842 WO2023282947A1 (en) 2021-07-06 2022-04-07 Method and apparatus for switching or updating partial or entire workflow on cloud with continuity in dataflow

Publications (1)

Publication Number Publication Date
KR20230038247A true KR20230038247A (ko) 2023-03-17

Family

ID=84801950

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237004780A KR20230038247A (ko) 2021-07-06 2022-04-07 클라우드 플랫폼 상에서 네트워크 기반 미디어 프로세싱 작업 흐름을 스케일링하기 위한 방법 및 장치, 및 저장 매체

Country Status (5)

Country Link
US (1) US20230020527A1 (ko)
EP (1) EP4179729A4 (ko)
JP (1) JP2023545448A (ko)
KR (1) KR20230038247A (ko)
WO (1) WO2023282947A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11277598B2 (en) * 2009-07-14 2022-03-15 Cable Television Laboratories, Inc. Systems and methods for network-based media processing
US11509878B2 (en) * 2018-09-14 2022-11-22 Mediatek Singapore Pte. Ltd. Methods and apparatus for using track derivations for network based media processing
US20200304508A1 (en) * 2019-03-18 2020-09-24 Samsung Electronics Co., Ltd. Method and device for providing authentication in network-based media processing (nbmp) system
EP3942835A4 (en) 2019-03-21 2022-09-28 Nokia Technologies Oy NETWORK-BASED MEDIA PROCESSING CONTROL
US11403106B2 (en) * 2019-09-28 2022-08-02 Tencent America LLC Method and apparatus for stateless parallel processing of tasks and workflows

Also Published As

Publication number Publication date
JP2023545448A (ja) 2023-10-30
US20230020527A1 (en) 2023-01-19
EP4179729A4 (en) 2023-11-29
WO2023282947A1 (en) 2023-01-12
EP4179729A1 (en) 2023-05-17

Similar Documents

Publication Publication Date Title
KR102499219B1 (ko) 동적 네트워크 인터페이스를 사용하는 상호운용가능 클라우드 기반 미디어 처리
US11356534B2 (en) Function repository selection mode and signaling for cloud based processing
US11544108B2 (en) Method and apparatus for functional improvements to moving picture experts group network based media processing
CN111865649A (zh) 处理媒体内容的方法和装置、计算机设备和存储介质
KR20230038247A (ko) 클라우드 플랫폼 상에서 네트워크 기반 미디어 프로세싱 작업 흐름을 스케일링하기 위한 방법 및 장치, 및 저장 매체
KR20220044995A (ko) 클라우드 플랫폼들 상의 작업흐름들에서의 비필수적 입력, 출력 및 태스크 시그널링
CN111831834A (zh) 基于网络的媒体处理(nbmp)中处理媒体内容的方法和装置
CN117015761A (zh) 用于在具有数据流连续性的云上切换或更新部分或全部工作流的方法和装置
US20230108435A1 (en) Method and apparatus for parallel transcoding of media content on cloud
JP2023525661A (ja) データフローにおいて連続性を持たせかつ途切れることなしにワークフローをスイッチングする又はワークフローを更新するための方法、ワークフローマネージャ、およびコンピュータプログラム
US11539776B2 (en) Method for signaling protocol characteristics for cloud workflow inputs and outputs
US11838390B2 (en) Function repository selection mode and signaling for cloud based processing
JP2023545825A (ja) クラウドプラットフォーム上のメディア処理においてステップベースの処理を実行する方法、装置、及びコンピュータプログラム
WO2023059371A1 (en) Method and apparatus for signaling net-zero workflow modifications on cloud platforms
WO2023282952A1 (en) Method and apparatus for scheduling workflow on cloud platforms

Legal Events

Date Code Title Description
A201 Request for examination