KR20220160050A - 데이터흐름에서 연속성을 갖고 중단 없이 작업흐름을 스위칭하기 위한 또는 작업흐름을 업데이트하기 위한 방법 - Google Patents
데이터흐름에서 연속성을 갖고 중단 없이 작업흐름을 스위칭하기 위한 또는 작업흐름을 업데이트하기 위한 방법 Download PDFInfo
- Publication number
- KR20220160050A KR20220160050A KR1020227037230A KR20227037230A KR20220160050A KR 20220160050 A KR20220160050 A KR 20220160050A KR 1020227037230 A KR1020227037230 A KR 1020227037230A KR 20227037230 A KR20227037230 A KR 20227037230A KR 20220160050 A KR20220160050 A KR 20220160050A
- Authority
- KR
- South Korea
- Prior art keywords
- workflow
- wdd
- connection
- task
- nbmp
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/801—Real time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
NBMP(Network Based Media Processing) 작업흐름을 관리하기 위한 시스템들 및 방법들이 제공된다. 이러한 방법은 제1 NBMP(network based media processing) WDD(workflow description document)를 획득하는 단계; 제1 WDD에 대응하는 제1 작업흐름을 생성하는 단계; 제1 작업흐름에 따라 적어도 하나의 MPE(media processing entity)를 관리하는 단계; 제2 WDD를 포함하는 업데이트를 획득하는 단계- 제2 WDD는 제2 WDD에 대응하는 제2 작업흐름이 제1 작업흐름의 연속인지를 표시하는 연속성 플래그를 포함함 -; 제2 작업흐름을 생성하는 단계; 및 제2 작업흐름에 따라 적어도 하나의 MPE를 관리하는 단계를 포함한다.
Description
<관련 출원들에 대한 상호-참조>
본 출원은 2021년 4월 19일자로 출원된 미국 임시 출원 제63/176,761호로부터의 우선권을 주장하며, 그 개시내용은 그 전체가 본 명세서에 참조로 원용된다.
<분야>
본 개시내용의 실시예들은 MPEG(Moving Picture Experts Group) NBMP(Network Based Media Processing)에, 보다 구체적으로는, NBMP 작업흐름을 관리하는 것에 관련된다.
MPEG NBMP(Network Based Media Processing) 프로젝트는 클라우드 상에서 미디어를 처리하는 개념을 개발하였다. NBMP Draft International Specification은 미디어 처리 효율, 미디어 서비스들의 더 빠르고 더 낮은 비용의 배치, 및 공용, 사설 또는 하이브리드 클라우드 서비스들을 활용하는 것에 의해 대규모 배치를 제공하는 능력을 증가시키는 큰 잠재력을 보여준다.
그러나, NBMP 현재 사양은 작업흐름을 업데이트하는 것을 허용하지만, 데이터의 흐름이 계속될 필요가 있는지, 또는 업데이트 동안 어떠한 데이터도 누락되지 않아야 하는지를 정의하지 않는다.
실시예들에서, 미디어 시스템의 작업흐름 관리기의 적어도 하나의 프로세서에 의해 수행되는 방법은 제1 NBMP(network based media processing) WDD(workflow description document)를 획득하는 단계; 제1 WDD에 대응하는 제1 작업흐름을 생성하는 단계; 제1 작업흐름에 따라 적어도 하나의 MPE(media processing entity)를 관리하는 단계; 제2 WDD를 포함하는 업데이트를 획득하는 단계- 제2 WDD는 제2 WDD에 대응하는 제2 작업흐름이 제1 작업흐름의 연속인지를 표시하는 연속성 플래그를 포함함 -; 제2 작업흐름을 생성하는 단계; 및 제2 작업흐름에 따라 적어도 하나의 MPE를 관리하는 단계를 포함한다.
실시예들에서, 미디어 시스템의 작업흐름 관리기는 프로그램 코드를 저장하는 적어도 하나의 메모리; 및 프로그램 코드를 판독하도록 그리고 프로그램 코드에 의해 명령되는 바와 같이 동작하도록 구성되는 적어도 하나의 프로세서를 포함하고, 프로그램 코드는, 적어도 하나의 프로세서로 하여금 제1 NBMP(network based media processing) WDD(workflow description document)를 획득하게 하도록 구성되는 제1 획득 코드; 적어도 하나의 프로세서로 하여금 제1 WDD에 대응하는 제1 작업흐름을 생성하게 하도록 구성되는 제1 생성 코드; 적어도 하나의 프로세서로 하여금 제1 작업흐름에 따라 적어도 하나의 MPE(media processing entity)를 관리하게 하도록 구성되는 제1 관리 코드; 적어도 하나의 프로세서로 하여금 제2 WDD를 포함하는 업데이트를 획득하게 하도록 구성되는 제2 획득 코드- 제2 WDD는 제2 WDD에 대응하는 제2 작업흐름이 제1 작업흐름의 연속인지를 표시하는 연속성 플래그를 포함함 -; 적어도 하나의 프로세서로 하여금 제2 작업흐름을 생성하게 하도록 구성되는 제2 생성 코드; 및 적어도 하나의 프로세서로 하여금 제2 작업흐름에 따라 적어도 하나의 MPE를 관리하게 하도록 구성되는 제2 관리 코드를 포함한다.
실시예들에서, 비-일시적 컴퓨터-판독가능 매체는 컴퓨터 코드를 저장하고, 이는, 미디어 시스템의 작업흐름 관리기를 구현하는 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금, 제1 NBMP(network based media processing) WDD(workflow description document)를 획득하고; 제1 WDD에 대응하는 제1 작업흐름을 생성하고; 제1 작업흐름에 따라 적어도 하나의 MPE(media processing entity)를 관리하고; 제2 WDD를 포함하는 업데이트를 획득하고- 제2 WDD는 제2 WDD에 대응하는 제2 작업흐름이 제1 작업흐름의 연속인지를 표시하는 연속성 플래그를 포함함 -; 제2 작업흐름을 생성하고; 제2 작업흐름에 따라 적어도 하나의 MPE를 관리하게 하도록 구성된다.
개시된 주제의 추가의 특징들, 본질, 및 다양한 이점들이 다음의 상세한 설명 및 첨부 도면들로부터 더 명백할 것이다.
도 1은, 실시예들에 따른, 본 명세서에 설명되는 방법들, 장치들, 및 시스템들이 구현될 수 있는 환경의 도면이다.
도 2는 도 1의 하나 이상의 디바이스의 예시적인 컴포넌트들의 블록도이다.
도 3은 실시예들에 따른 NBMP 시스템의 블록도이다.
도 4는 실시예들에 따른 작업흐름 관리 프로세스의 예의 블록도이다.
도 5는 실시예들에 따른 컴퓨터 코드의 예의 블록도이다.
도 1은, 실시예들에 따른, 본 명세서에 설명되는 방법들, 장치들, 및 시스템들이 구현될 수 있는 환경의 도면이다.
도 2는 도 1의 하나 이상의 디바이스의 예시적인 컴포넌트들의 블록도이다.
도 3은 실시예들에 따른 NBMP 시스템의 블록도이다.
도 4는 실시예들에 따른 작업흐름 관리 프로세스의 예의 블록도이다.
도 5는 실시예들에 따른 컴퓨터 코드의 예의 블록도이다.
도 1은, 실시예들에 따른, 본 명세서에 설명되는 방법들, 장치들, 및 시스템들이 구현될 수 있는 환경(100)의 도면이다. 도 1에 도시되는 바와 같이, 환경(100)은 사용자 디바이스(110), 플랫폼(120) 및 네트워크(130)를 포함할 수 있다. 환경(100)의 디바이스들은 유선 접속들, 무선 접속들, 또는 유선 및 무선 접속들의 조합을 통해 상호접속할 수 있다.
사용자 디바이스(110)는 플랫폼(120)과 연관된 정보를 수신, 생성, 저장, 처리 및/또는 제공할 수 있는 하나 이상의 디바이스를 포함한다. 예를 들어, 사용자 디바이스(110)는 컴퓨팅 디바이스(예를 들어, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 핸드헬드 컴퓨터, 스마트 스피커, 서버 등), 모바일 폰(예를 들어, 스마트 폰, 무선 전화 등), 웨어러블 디바이스(예를 들어, 한 쌍의 스마트 안경 또는 스마트 시계), 또는 유사한 디바이스를 포함할 수 있다. 일부 구현들에서, 사용자 디바이스(110)는 플랫폼(120)으로부터 정보를 수신하고 및/또는 이에 정보를 송신할 수 있다.
플랫폼(120)은 본 명세서의 다른 곳에서 설명되는 바와 같은 하나 이상의 디바이스를 포함한다. 일부 구현들에서, 플랫폼(120)은 클라우드 서버 또는 클라우드 서버들의 그룹을 포함할 수 있다. 일부 구현들에서, 플랫폼(120)은 모듈형이도록 설계될 수 있어, 소프트웨어 컴포넌트들이 특정 필요에 의존하여 스왑 인 또는 아웃될 수 있다. 이와 같이, 플랫폼(120)은 상이한 사용들을 위해 용이하게 및/또는 신속하게 재구성될 수 있다.
일부 구현들에서, 도시되는 바와 같이, 플랫폼(120)은 클라우드 컴퓨팅 환경(122)에서 호스팅될 수 있다. 특히, 본 명세서에 설명되는 구현들은 플랫폼(120)을 클라우드 컴퓨팅 환경(122)에서 호스팅되는 것으로서 설명하지만, 일부 구현들에서, 플랫폼(120)은 클라우드-기반이 아닐 수 있거나(즉, 클라우드 컴퓨팅 환경의 외부에서 구현될 수 있거나) 또는 부분적으로 클라우드-기반일 수 있다.
클라우드 컴퓨팅 환경(122)은 플랫폼(120)을 호스팅하는 환경을 포함한다. 클라우드 컴퓨팅 환경(122)은 플랫폼(120)을 호스팅하는 시스템(들) 및/또는 디바이스(들)의 물리적 위치 및 구성에 대한 최종-사용자(예를 들어, 사용자 디바이스(110)) 지식을 요구하지 않는 계산, 소프트웨어, 데이터 액세스, 스토리지 등의 서비스들을 제공할 수 있다. 도시되는 바와 같이, 클라우드 컴퓨팅 환경(122)은 컴퓨팅 리소스들(124)의 그룹("컴퓨팅 리소스들(124)(computing resources 124)"이라고 집합적으로 지칭되고 "컴퓨팅 리소스(124)(computing resource 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)의 스토리지 시스템들 또는 디바이스들 내에서 가상화 기술들을 사용하는 하나 이상의 스토리지 시스템 및/또는 하나 이상의 디바이스를 포함한다. 일부 구현들에서, 스토리지 시스템의 정황 내에서, 가상화들의 타입들은 블록 가상화 및 파일 가상화를 포함할 수 있다. 블록 가상화는 물리적 스토리지 또는 이종 구조에 상관없이 스토리지 시스템이 액세스될 수 있도록 물리적 스토리지로부터의 논리적 스토리지의 추상화(또는 분리)를 지칭할 수 있다. 분리는 관리자들이 최종 사용자들을 위한 스토리지를 관리하는 방법에 있어서의 유연성을 스토리지 시스템의 관리자들에게 허가할 수 있다. 파일 가상화는 파일 레벨에서 액세스되는 데이터와 파일들이 물리적으로 저장되는 위치 사이의 의존성들을 제거할 수 있다. 이러한 것은 스토리지 사용, 서버 통합, 및/또는 비-파괴 파일 마이그레이션들의 성능의 최적화를 가능하게 할 수 있다.
하이퍼바이저(124-4)는 다수의 운영 체제들(예를 들어, "게스트 운영 체제들(guest operating systems)")이, 컴퓨팅 리소스(124)와 같은, 호스트 컴퓨터 상에서 동시에 실행되는 것을 허용하는 하드웨어 가상화 기술들을 제공할 수 있다. 하이퍼바이저(124-4)는 게스트 운영 체제들에 가상 운영 플랫폼을 제시할 수 있고, 게스트 운영 체제들의 실행을 관리할 수 있다. 다양한 운영 체제들의 다수의 인스턴스들이 가상화된 하드웨어 리소스들을 공유할 수 있다.
네트워크(130)는 하나 이상의 유선 및/또는 무선 네트워크를 포함한다. 예를 들어, 네트워크(130)는 셀룰러 네트워크(예를 들어, 5G(fifth generation) 네트워크, LTE(long-term evolution) 네트워크, 3G(third generation) 네트워크, CDMA(code division multiple access) 네트워크 등), PLMN(public land mobile network), LAN(local area network), WAN(wide area network), MAN(metropolitan area network), 전화 네트워크(예를 들어, PSTN(Public Switched Telephone Network)), 사설 네트워크, 애드혹 네트워크, 인트라넷, 인터넷, 광섬유-기반 네트워크 등, 및/또는 이러한 또는 다른 타입들의 네트워크들의 조합을 포함할 수 있다.
도 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(central processing unit), GPU(graphics processing unit), APU(accelerated processing unit), 마이크로프로세서, 마이크로제어기, DSP(digital signal processor), FPGA(field-programmable gate array), ASIC(application-specific integrated circuit), 또는 다른 타입의 처리 컴포넌트이다. 일부 구현들에서, 프로세서(220)는 기능을 수행하도록 프로그래밍될 수 있는 하나 이상의 프로세서를 포함한다. 메모리(230)는 RAM(random access memory), ROM(read only memory), 및/또는 프로세서(220)에 의한 사용을 위한 정보 및/또는 명령어들을 저장하는 다른 타입의 동적 또는 정적 스토리지 디바이스(예를 들어, 플래시 메모리, 자기 메모리, 및/또는 광 메모리)를 포함한다.
스토리지 컴포넌트(240)는 디바이스(200)의 동작 및 사용에 관련된 정보 및/또는 소프트웨어를 저장한다. 예를 들어, 스토리지 컴포넌트(240)는, 대응하는 드라이브와 함께, 하드 디스크(예를 들어, 자기 디스크, 광 디스크, 광자기 디스크, 및/또는 솔리드 스테이트 디스크), CD(compact disc), DVD(digital versatile disc), 플로피 디스크, 카트리지, 자기 테이프, 및/또는 다른 타입의 비-일시적 컴퓨터-판독가능 매체를 포함할 수 있다.
입력 컴포넌트(250)는 디바이스(200)가, 사용자 입력(예를 들어, 터치 스크린 디스플레이, 키보드, 키패드, 마우스, 버튼, 스위치, 및/또는 마이크로폰)을 통해서와 같이, 정보를 수신하는 것을 허가하는 컴포넌트를 포함한다. 추가적으로, 또는 다른 대안적으로, 입력 컴포넌트(250)는 정보를 감지하는 센서(예를 들어, GPS(global positioning system) 컴포넌트, 가속도계, 자이로스코프, 및/또는 액추에이터)를 포함할 수 있다. 출력 컴포넌트(260)는 디바이스(200)로부터의 출력 정보를 제공하는 컴포넌트(예를 들어, 디스플레이, 스피커, 및/또는 하나 이상의 LED(light-emitting diodes))를 포함한다.
통신 인터페이스(270)는 디바이스(200)가, 유선 접속, 무선 접속, 또는 유선 및 무선 접속들의 조합을 통해서와 같이, 다른 디바이스들과 통신하는 것을 가능하게 하는 송수신기형 컴포넌트(예를 들어, 송수신기 및/또는 개별 수신기 및 송신기)를 포함한다. 통신 인터페이스(270)는 디바이스(200)가 다른 디바이스로부터 정보를 수신하는 것 및/또는 다른 디바이스에 정보를 제공하는 것을 허가할 수 있다. 예를 들어, 통신 인터페이스(270)는 이더넷 인터페이스, 광 인터페이스, 동축 인터페이스, 적외선 인터페이스, RF(radio frequency) 인터페이스, USB(universal serial bus) 인터페이스, Wi-Fi 인터페이스, 셀룰러 네트워크 인터페이스 등을 포함할 수 있다.
디바이스(200)는 본 명세서에 설명되는 하나 이상의 프로세스를 수행할 수 있다. 디바이스(200)는 프로세서(220)가, 메모리(230) 및/또는 스토리지 컴포넌트(240)와 같은, 비-일시적 컴퓨터-판독가능 매체에 의해 저장되는 소프트웨어 명령어들을 실행하는 것에 응답하여 이러한 프로세스들을 수행할 수 있다. 컴퓨터-판독가능 매체는 본 명세서에서 비-일시적 메모리 디바이스로서 정의된다. 메모리 디바이스는 단일 물리적 스토리지 디바이스 내의 메모리 공간 또는 다수의 물리적 스토리지 디바이스들에 걸쳐 확산되는 메모리 공간을 포함한다.
소프트웨어 명령어들은 다른 컴퓨터-판독가능 매체로부터 또는 통신 인터페이스(270)를 통해 다른 디바이스로부터 메모리(230) 및/또는 스토리지 컴포넌트(240) 내로 판독될 수 있다. 실행될 때, 메모리(230) 및/또는 스토리지 컴포넌트(240)에 저장되는 소프트웨어 명령어들은 프로세서(220)로 하여금 본 명세서에 설명되는 하나 이상의 프로세스를 수행하게 할 수 있다. 추가적으로, 또는 대안적으로, 본 명세서에 설명되는 하나 이상의 프로세스를 수행하기 위해 소프트웨어 명령어들 대신에 또는 이들과 조합하여 하드와이어드 회로가 사용될 수 있다. 따라서, 본 명세서에 설명되는 구현들이 하드웨어 회로와 소프트웨어의 임의의 구체적 조합에 제한되는 것은 아니다.
도 2에 도시되는 컴포넌트들의 수 및 배열은 예로서 제공된다. 실제로, 디바이스(200)는 도 2에 도시되는 것들에 비해 추가적인 컴포넌트들, 더 적은 컴포넌트들, 상이한 컴포넌트들, 또는 상이하게 배열된 컴포넌트들을 포함할 수 있다. 추가적으로, 또는 대안적으로, 디바이스(200)의 컴포넌트들의 세트(예를 들어, 하나 이상의 컴포넌트)는 디바이스(200)의 컴포넌트들의 다른 세트에 의해 수행되는 것으로서 설명되는 하나 이상의 기능을 수행할 수 있다.
본 개시내용의 실시예에서, NBMP 시스템(300)이 제공된다. 도 3을 참조하면, NBMP 시스템(300)은 NBMP 소스(310), NBMP 작업흐름 관리기(320), 기능 저장소(330), 하나 이상의 미디어 처리 엔티티(350), 미디어 소스(360) 및 미디어 싱크(370)를 포함한다.
NBMP 소스(310)는 제3자 엔티티로부터 명령어들을 수신할 수 있고, NBMP 작업흐름 API(application programming interface)(392)를 통해 NBMP 작업흐름 관리기(320)와 통신할 수 있고, 기능 발견 API(391)를 통해 기능 저장소(330)와 통신할 수 있다. 예를 들어, NBMP 소스(310)는 WDD(workflow description document(s))를 NBMP 작업흐름 관리기(320)에 전송할 수 있고, 기능 저장소(330)에 저장되는 기능들의 기능 설명을 판독할 수 있으며, 이러한 기능들은 예를 들어, 미디어 디코딩, 특징 포인트 추출, 카메라 파라미터 추출, 투영 방법, 심 정보 추출, 블렌딩, 후처리 및 인코딩의 기능들과 같은 기능 저장소(330)의 메모리에 저장되는 미디어 처리 기능들이다. NBMP 소스(310)는 적어도 하나의 프로세서 및 이러한 적어도 프로세서로 하여금 NBMP 소스(310)의 기능들을 수행하게 하도록 구성되는 코드를 저장하는 메모리를 포함하거나 또는 이들에 의해 구현될 수 있다.
NBMP 소스(310)는 몇몇 디스크립터들 포함할 수 있는 작업흐름 설명 문서를 송신하는 것에 의해 하나 이상의 미디어 처리 엔티티(350)에 의해 수행될 태스크들(352)을 포함하는 작업흐름을 생성하도록 NBMP 작업흐름 관리기(320)에 요청할 수 있고, 각각의 디스크립터는 몇몇 파라미터들을 가질 수 있다.
예를 들어, NBMP 소스(310)는 기능 저장소(330)에 저장되는 기능들을 선택하고, 입력 및 출력 데이터, 요구된 기능들, 및 작업흐름에 대한 요건들과 같은 설명 상세사항들에 대한 다양한 디스크립터들을 포함하는 작업흐름 설명 문서를 NBMP 작업흐름 관리기(320)에 전송할 수 있다. 작업흐름 설명 문서는 미디어 처리 엔티티들(350) 중 하나 이상에 의해 수행될 태스크들(352)의 입력들 및 출력들의 접속 맵 및 태스크 설명들의 세트를 포함할 수 있다. NBMP 작업흐름 관리기(320)가 NBMP 소스(310)로부터 이러한 정보를 수신할 때, NBMP 작업흐름 관리기(320)는 기능 명칭들에 기초하여 태스크들을 인스턴스화하고 접속 맵에 따라 태스크들에 접속하는 것에 의해 작업흐름을 생성할 수 있다.
대안적으로 또는 추가적으로, NBMP 소스(310)는 키워드들의 세트를 사용하여 작업흐름을 생성하라고 NBMP 작업흐름 관리기(320)에 요청할 수 있다. 예를 들어, NBMP 소스(310)는 NBMP 작업흐름 관리기(320)가 기능 저장소(330)에 저장되는 적절한 기능들을 찾기 위해 사용할 수 있는 키워드들의 세트를 포함할 수 있는 작업흐름 설명 문서를 NBMP 작업흐름 관리기(320)에 전송할 수 있다. NBMP 작업흐름 관리기(320)가 NBMP 소스(310)로부터 이러한 정보를 수신할 때, NBMP 작업흐름 관리기(320)는 작업흐름 설명 문서의 Processing Descriptor에 명시될 수 있는 키워드들을 사용하여 적절한 기능들을 검색하는 것에 의해 작업흐름을 생성하고, 작업흐름 설명 문서에서의 다른 디스크립터들을 사용하여 태스크들을 공급하고 이들을 접속하여 작업흐름을 생성할 수 있다.
NBMP 작업흐름 관리기(320)는, 기능 발견 API(391)와 동일한 또는 상이한 API일 수 있는 기능 발견 API(393)를 통해 기능 저장소(330)와 통신할 수 있고, API(394)(예를 들어, NBMP 태스크 API)를 통해 미디어 처리 엔티티들(350) 중 하나 이상과 통신할 수 있다. NBMP 작업흐름 관리기(320)는 적어도 하나의 프로세서 및 이러한 적어도 프로세서로 하여금 NBMP 작업흐름 관리기(320)의 기능들을 수행하게 하도록 구성되는 코드를 저장하는 메모리를 포함하거나 또는 이들에 의해 구현될 수 있다.
NBMP 작업흐름 관리기(320)는 하나 이상의 미디어 처리 엔티티(350)에 의해 수행가능한 작업흐름의 하나 이상의 태스크(352)를 셋업, 구성, 관리, 및 모니터링하기 위해 API(394)를 사용할 수 있다. 실시예에서, NBMP 작업흐름 관리기(320)는 태스크들(352)을 업데이트하고 파괴하기 위해 API(394)를 사용할 수 있다. 작업흐름의 태스크들(352)을 구성, 관리, 및 모니터링하기 위해, NBMP 작업흐름 관리기(320)는, 요청들과 같은, 메시지들을 미디어 처리 엔티티들(350) 중 하나 이상에 전송할 수 있으며, 각각의 메시지는 몇몇 디스크립터들을 가질 수 있고, 이들 각각은 몇몇 파라미터들을 갖는다. 태스크들(352)은 미디어 처리 기능들(354) 및 이러한 미디어 처리 기능들(354)에 대한 구성들(353)을 각각 포함할 수 있다.
실시예에서, 태스크들의 리스트를 포함하지 않는(예를 들어, 태스크들의 리스트 대신에 키워드들의 리스트를 포함하는) NBMP 소스(310)로부터 작업흐름 설명 문서를 수신한 후에, NBMP 작업흐름 관리기(320)는, 현재 작업흐름에 대한 태스크들(352)로서 실행하기에 적절한 기능들을 찾기 위해, 기능 발견 API(393)를 통해, 기능 저장소(330)를 검색하도록 작업흐름 설명 문서에서의 태스크들의 설명들에 기초하여 태스크들을 선택할 수 있다. 예를 들어, NBMP 작업흐름 관리기(320)는 작업흐름 설명 문서에서 제공되는 키워드들에 기초하여 태스크들을 선택할 수 있다. NBMP 소스(310)에 의해 제공되는 키워드들 또는 태스크 설명들의 세트를 사용하여 적절한 기능들이 식별된 후에, NBMP 작업흐름 관리기(320)는 API(394)를 사용하여 작업흐름에서 선택된 태스크들을 구성할 수 있다. 예를 들어, NBMP 작업흐름 관리기(320)는 NBMP 소스로부터 수신되는 정보로부터 구성 데이터를 추출하고, 이러한 구성 데이터에 기초하여 태스크들(352)을 구성할 수 있다.
하나 이상의 미디어 처리 엔티티(350)는 미디어 소스(360)로부터 미디어 콘텐츠를 수신하도록, NBMP 작업흐름 관리기(320)에 의해 생성되는, 태스크들(352)을 포함하는, 작업흐름에 따라 미디어 콘텐츠를 처리하도록, 그리고 처리된 미디어 콘텐츠를 미디어 싱크(370)에 출력하도록 구성될 수 있다. 하나 이상의 미디어 처리 엔티티(350)는 적어도 하나의 프로세서 및 이러한 적어도 프로세서로 하여금 미디어 처리 엔티티들(350)의 기능들을 수행하게 하도록 구성되는 코드를 저장하는 메모리를 각각 포함하거나 또는 이들에 의해 구현될 수 있다.
미디어 소스(360)는 미디어를 저장하는 메모리를 포함할 수 있고, NBMP 소스(310)와 통합되거나 또는 그로부터 분리될 수 있다. 실시예에서, NBMP 작업흐름 관리기(320)는 작업흐름이 준비될 때를 NBMP 소스(310)에 통지할 수 있고, 미디어 소스(360)는 작업흐름이 준비된다는 통지에 기초하여 미디어 콘텐츠를 미디어 처리 엔티티들(350) 중 하나 이상에 송신할 수 있다.
미디어 싱크(370)는 적어도 하나의 프로세서, 및 하나 이상의 미디어 처리 엔티티들(350)에 의해 처리되는 미디어를 디스플레이하도록 구성되는 적어도 하나의 디스플레이를 포함하거나 또는 이들에 의해 구현될 수 있다.
위에 논의된 바와 같이, NBMP 소스(310)(예를 들어, 작업흐름의 생성을 요청하기 위한 작업흐름 설명 문서)로부터 NBMP 작업흐름 관리기(320)로의 메시지들, 및 NBMP 작업흐름 관리기(320)로부터 하나 이상의 미디어 처리 엔티티(350)로의 (예를 들어, 작업흐름으로 하여금 수행되게 하기 위한) 메시지들은 몇몇 디스크립터들을 포함할 수 있고, 이들 각각은 몇몇 파라미터들을 가질 수 있다. 실시예들에서, API를 사용하는 NBMP 시스템(300)의 컴포넌트들 중 임의의 것 사이의 통신은 몇몇 디스크립터들을 포함할 수 있고, 이들 각각은 몇몇 파라미터들을 가질 수 있다.
실시예들은 데이터 흐름에서의 임의의 중단 또는 임의의 데이터를 누락하는 것 없이 실행 동안 클라우드 작업흐름들의 끊김 없는 스위칭 또는 업데이트를 위한 방법을 제공할 수 있다. 따라서, 실시예들은 NBMP 사양에 끊김 없는 연속성 특징들을 추가할 수 있다.
NBMP-관련 프로세스 동안, 작업흐름은 연장된 주기의 시간 동안 작업하고 있을 수 있다. 데이터의 볼륨에서의 증가로 인해, 작업흐름의 하나 이상의 태스크는 부하 증가에 대처하기 위해 분할될 필요가 있을 수 있다. 이러한 경우, 새로운 작업흐름으로의 스위칭으로 인해 어떠한 데이터도 손실되지 않는 것이 바람직할 수 있다.
일부 배치들에서, 현재 태스크들은 재사용될 수 있다. 따라서, 현재 태스크들은 업데이트된 작업흐름에서 사용될 수 있다. 일부 응용들에서, 새로운 작업흐름으로의 스위칭은, 예를 들어, 데이터 수집 또는 빌링 목적들을 위해, 정확한 시간에 발생할 필요가 있을 수 있다.
현재 NBMP 사양에서 작업흐름을 업데이트하기 위한 NBMP 작업흐름 API는 연속성의 어떠한 개념도 갖지 않으며, 이는 NBMP 작업흐름 관리기가 현재 작업흐름을 정지하고, 새로운 것으로 작업흐름을 업데이트하고 다시 시작할 수 있고, 이러한 업데이트 동안 데이터가 손실될 수 있다는 점을 의미한다.
실시예들은, 예를 들어, 아래의 표 1 및 표 2에 도시되는 바와 같이, 일반 디스크립터에 연속성 플래그를 추가할 수 있다. 연속성 = 참인 경우, NBMP 작업흐름 관리기는 어떠한 데이터도 손실하지 않고 2개의 작업흐름 사이에서 스위칭할 수 있다. 또한, 스위칭 시간은 특정 시간이도록 요청될 수 있다. 예를 들어, 보고들을 위해 스위칭의 정확한 시간을 아는 것이 유용할 수 있다.
파라미터 명칭 | 타입 | 카디널리티 |
id | P | 1 |
name | P | 1 |
description | P | 1 |
rank | P | 0-1 |
mpeg-compatibility | P | 0-1 |
published-time | P | 0-1 |
priority | P | 0-1 |
execution-time | P | 0-1 |
input-ports | 객체의 어레이 | 1 |
output-ports | 객체의 어레이 | 1 |
is-group | P | 0-1 |
continuity | P | 0-1 |
switching_time | P | 0-1 |
state | P | 1 |
명칭 | 정의 | 단위 | 타입 | 유효 범위 |
id | 리소스의 저장소/작업흐름의 범위에서의 고유 문자열 | N/A | 문자열 | N/A |
name | 리소스를 식별하기 위한 명칭 | N/A | 문자열 | N/A |
description | 리소스에 대한 인간-판독가능 설명 | N/A | 문자열 | N/A |
rank | 동일한 기능성을 갖는 기능들 사이의 기능/기능 그룹의 순위. 더 높은 수는 더 높은 순위를 의미한다. |
N/A | 수 | 부호없는 정수 |
mpeg-compatibility | 부록 A 및 B에 정의되는 참조 기능/기능 그룹과의 호환성을 표시하는 URN. | URI | 문자열 | N/A |
published-time | 이러한 리소스의 발행의 날짜 및 시간 | RFC3339, 섹션 5.6에 의해 정의되는 바와 같음 | 문자열 | N/A |
priority | 리소스에 대한 우선순위 정보 | N/A | 수 | 부호없는 정수 |
port-name | 입력 또는 출력을 위한 논리 명칭을 정의하는 이러한 리소스의 모든 포트-명칭들 사이의 고유 문자열 | N/A | 문자열 | N/A |
is-group | 값 'true'는 디스크립터가 기능 그룹 또는 태스크 작업흐름을 설명하는 것을 표시한다. 값이 'true'이면, connection-map 객체가 이러한 설명에 존재할 수 있다. 디폴트 값은 'false'이다. |
N/A | 부울리언 | N/A |
continuity |
값 'true'는 이러한 작업흐름 업데이트가 이전 작업흐름의 연속이고 스위칭 동안 어떠한 데이터도 손실되지 않을 수 있다는 점을 표시한다.
디폴트 값은 'false'이다. |
N/A | 부울리언 | N/A |
switching_time |
자신의 업데이트로의 작업흐름의 스위칭 시간. 이러한 값이 과거에 있다면, 다음으로 스위칭은 즉시 발생해야 하고 정확한 스위칭 시간으로 업데이트된다.
이러한 때 무손실 천이가 발생할 수 없다면, 다음으로 스위칭은 제1 가능한 시간에 발생해야 하고 정확한 스위칭 시간으로 업데이트된다. 'continuity'이 'false'이면 값이 무시된다. |
RFC3339, 섹션 5.6에 의해 정의되는 바와 같음 | 문자열 | N/A |
state | 자신의 수명에서의 리소스의 현재 상태 이러한 파라미터의 값은 NBMP 동작의 응답에서 다음 중 하나일 수 있다: . null . instantiated . idle . running . in-error . destroyed 이러한 파라미터가 작업흐름 관리기 또는 NBMP 소스로부터의 요청에 포함되면, 이러한 파라미터의 값은 다음 중 하나일 수 있다: . instantiated . idle |
N/A | 문자열 | N/A |
본 명세서에서의 표들에서, 실시예들에 따른 NBMP 사양에 대한 추가들은 이탤릭체로 표시될 수 있다.
실시예들에서, 2개의 새로운 파라미터들이 작업흐름 업데이트 또는 태스크 업데이트와 함께 사용될 수 있다.
일부 경우들에서, 완전 병렬 작업흐름을 실행하는 것은 많은 양의 리소스들을 요구하고, 클라우드 플랫폼은 업데이트 동안 실행중인 작업흐름에서 태스크들 중 일부를 유지하는 것을 선호할 수 있다.
NBMP 클라이언트가 새로운 WDD를 제공하기 때문에, 작업흐름 관리기는 실행중인 작업흐름과 새로운 WDD 사이의 차이를 식별할 수 있다.
NBMP 클라이언트는 다음의 정보를 제공하는 것에 의해 이러한 태스크를 도울 수 있다:
1. 변경되는 태스크들의 리스트.
2. 변경되는 접속들의 리스트.
각각의 태스크가 WDD에서 id(identifier)를 갖기 때문에, 예를 들어, 태스크를 제거하고 새로운 태스크로 대체하는 것에 의해, 태스크를 변경하는 것, 또는 새로운 태스크를 도입하는 것이 용이하게 달성될 수 있다:
1. 모든 기존의 태스크는 실행중인 작업흐름에서 id를 갖는다.
2. 실행중인 작업흐름에서의 태스크의 위치는 접속 맵에서의 'instance'의 값으로 식별된다.
3. 작업흐름 업데이트에서의 어떠한 새로운 태스크도 'instance' 세트를 갖지 않는다.
위 내용을 고려하면, NBMP 작업흐름 관리기가 업데이트된 작업흐름에서의 어느 태스크들/기능 인스턴스들이 새로운지 그리고 어느 것들이 오래된 것들인지를 식별하는 것이 용이할 수 있다.
접속들의 리스트를 제공하는 것에 대해, 각각의 작업흐름은 connection-map 객체들의 어레이에 의해 정의될 수 있다. 작업흐름 관리기는 이러한 어레이에서의 각각의 객체를 작업흐름 업데이트로부터 실행중인 작업흐름까지 비교하고 새로운 또는 업데이트된 connection-map 객체들을 식별할 수 있다. 그러나, 프로세스를 단순화하기 위해, 실시예들에서 id가 각각의 connection-map 객체에 추가될 수 있다:
명칭 | 설명 | 타입 | 카디널리티 |
connection-id |
이러한 접속 맵의 고유 식별자.
WDD 업데이트 동안, 기존의 WDD와 동일한 connection-id 갖는 임의의 connection-map 엘리먼트는 동일한 것으로 고려되고 어떠한 업데이트도 요구하지 않는다. WDD 업데이트가 ('continuity' 플래그를 사용하여) 연속적이면, 이러한 접속은 자신의 데이터 흐름에서 중단 없이 작업을 계속할 수 있다. |
P | 1 |
from | 접속이 시작되는 태스크/기능의 id 및 포트 명칭들을 명시함 | O | 1 |
to | 접속이 완료되는 태스크/기능의 id 및 포트 명칭들을 명시함 | O | 1 |
flowcontrol-parameters | 접속에 대한 흐름 제어 파라미터들을 포함한다. 이러한 객체들의 엘리먼트들은 flowcontrol-requirements를 사용하여 설명될 수 있다. |
O | 0-1 |
co-located | 2개의 접속된 태스크들의 배치를 명시함. 값이 True일 때, 2개의 태스크들은 동일한 MPE에 배치될 수 있고, 그렇지 않으면, 배치는 이용가능한 리소스들에 기초하여 작업흐름 관리기에 의해 결정된다. 디폴트는 'false'이다. |
P | 0-1 |
other-parameters | DAG 에지에 대해 정의되는 임의의 다른 속성들 또는 파라미터들, 예를 들어, 요건 디스크립터에 대한 참조들을 포함한다. 이러한 객체들의 엘리먼트들은 하위 조항 9.20.1.1의 일반적인 파라미터 표현을 사용하여 설명될 수 있다. |
O | 0-1 |
명칭 | 정의 | 단위 | 타입 | 유효 범위 |
keywords | 기능 저장소에서 검색을 실행하기 위해 사용될 수 있는 키워드들의 리스트 | N/A | 문자열의 어레이 | N/A |
start-time | 리소스의 시작 시간 | RFC3339, 섹션 5.6에 의해 정의되는 바와 같음 | 문자열 | N/A |
is-dynamic | 이미지가 정적인지 또는 동적인지를 표시하는 플래그. 'true'의 값은 이미지가 동적으로 구축됨을 표시한다. 디폴트 값은 'false'(정적 이미지)이다. |
N/A | 부울리언 | N/A |
url | IETF RFC3986에 따른, 리소스 구현에 대한 포인터 | N/A | 문자열 | N/A |
os | 운영 체제 | N/A | 문자열 | N/A |
version | 운영 체제의 버전 번호 | N/A | 문자열 | N/A |
architecture | 하드웨어 아키텍처 | N/A | 문자열 | N/A |
environment | 환경 | N/A | 문자열 | N/A |
patch-url | 이러한 이미지에 대한 패칭 스킴을 정의하는 URL(IETF RFC3986에 따름) | N/A | 문자열 | N/A |
scheme | 동적 구축에 필요한 정보 객체 스킴 또는 정보를 정의하는 URL(IETF RFC3986에 따름) | N/A | 문자열 | N/A |
connection-id | 작업흐름에서의 모든 connection-map의 id들 및 자신의 업데이트들 사이의 고유 문자열. | N/A | 문자열 | N/A |
co-located | 2개의 접속된 태스크들의 배치를 명시함. 값이 True일 때, 2개의 태스크들은 동일한 MPE에 배치될 수 있고, 그렇지 않으면, 배치는 이용가능한 리소스들에 기초하여 작업흐름 관리기에 의해 결정된다. 디폴트는 'false'이다. |
N/A | 부울리언 | N/A |
id | 기능의 id를 명시함 | N/A | 문자열 | N/A |
instance | 기능의 하나의 인스턴스에 대한 식별자를 명시함. 기능의 인스턴스는 기능 그룹에서 고유한 제한들을 가질 수 있다. 이러한 식별자는 동일한 기능 그룹에서의 각각의 인스턴스에 대해 고유할 수 있다. 주목: 기능이 동일한 제한들을 갖는 하나의 기능 그룹에서 2회 이상 사용되면, 이러한 제한들이 해당 기능의 하나의 인스턴스에 의해 정의될 수 있음. |
N/A | 문자열 | N/A |
port-name | 기능의 로직 포트 명칭을 명시함 | N/A | 문자열 | N/A |
위에 논의된 바와 같이, 본 명세서에서의 표들에서, 실시예들에 따른 NBMP 사양에 대한 추가들은 이탤릭체로 표시될 수 있다.
따라서, 실시예들은 작업흐름 업데이트 동안 작업흐름 동작의 끊김 없는 연속성을 시그널링하기 위한 방법을 제공할 수 있고, 업데이트 동안 어떠한 데이터도 손실되지 않고, 스위칭 시간이 정의되고, 요청된 스위칭 시간이 가능하지 않은 경우에, 응답에서 실제 스위칭 시간이 제공된다.
실시예들은 작업흐름 업데이트에서 오래된 그리 새로운 접속을 시그널링하기 위한 방법에 관련될 있고, 여기서 각각의 접속은 고유 식별자를 가져서, 오래된 접속이 업데이트에 대해 사라지면, 이는 이것이 더 이상 유효하지 않다는 점을 의미하고, 작업흐름 업데이트에 나타나는 새로운 접속의 id는 이것이 새로운 접속이라는 점을 표시하고, 동일한 id를 갖는 접속들은 동일한 것으로 고려되고 어떠한 변경도 요구되지 않는다.
실시예들은, 모든 태스크들 또는 접속들을 대체하지 않고, 작업흐름의 일부분을 업데이트하기 위해 본 명세서에 설명되는 방법들 중 임의의 것을 함께 사용하는, 그리고, 어떠한 데이터의 손실도 없이 작업흐름의 입력 및 출력에서 데이터 흐름에서의 연속성을 유지하는 방법에 관련될 수 있다.
도 3 및 도 4를 참조하여, NBMP 작업흐름 관리기(320)에 의해 수행되는 프로세스(400)가 아래에 설명된다.
도 4는 예시적인 프로세스(400)의 흐름도이다.
도 4에 도시되는 바와 같이, 프로세스(400)는 제1 NBMP(network based media processing) WDD(workflow description document)를 획득하는 단계(블록 410)를 포함할 수 있다.
도 4에 추가로 도시되는 바와 같이, 프로세스(400)는 제1 WDD에 대응하는 제1 작업흐름을 생성하는 단계(블록 420)를 포함할 수 있다.
도 4에 추가로 도시되는 바와 같이, 프로세스(400)는 제1 작업흐름에 따라 적어도 하나의 MPE(media processing entity)를 관리하는 단계(블록 430)를 포함할 수 있다.
도 4에 추가로 도시되는 바와 같이, 프로세스(400)는 제2 WDD를 포함하는 업데이트를 획득하는 단계- 제2 WDD는 제2 WDD에 대응하는 제2 작업흐름이 제1 작업흐름의 연속인지를 표시하는 연속성 플래그를 포함함 -(블록 440)를 포함할 수 있다.
도 4에 추가로 도시되는 바와 같이, 프로세스(400)는 제2 작업흐름을 생성하는 단계(블록 450)를 포함할 수 있다.
도 4에 추가로 도시되는 바와 같이, 프로세스(400)는 제2 작업흐름에 따라 적어도 하나의 MPE를 관리하는 단계(블록 460)를 포함할 수 있다.
실시예들에서, 제2 작업흐름이 제1 작업흐름의 연속이라는 점을 표시하는 연속성 플래그에 기초하여, 제1 작업흐름에 따른 적어도 하나의 MPE의 관리에 대응하는 모든 데이터가 제2 작업흐름에 따른 적어도 하나의 MPE의 관리 동안 유지될 수 있다.
실시예들에서, 제2 WDD는 제1 작업흐름에 따른 적어도 하나의 MPE의 관리로부터 제2 작업흐름에 따른 적어도 하나의 MPE의 관리로 스위칭하기 위한 시간을 표시하는 신택스 엘리먼트를 추가로 포함할 수 있다.
실시예들에서, 업데이트는 작업흐름 업데이트 및 태스크 업데이트 중 하나일 수 있다.
실시예들에서, 제1 작업흐름의 태스크는 제1 WDD에서의 제1 connection-map 객체에 의해 표현될 수 있고, 제1 connection-map 객체는 제1 작업흐름에 대응하는 접속 맵에서의 태스크의 위치, 및 제1 작업흐름에서의 다른 엘리먼트에 대한 적어도 하나의 접속을 명시하고, 제1 connection-map 객체는 태스크를 식별하는 접속 식별자를 포함한다.
실시예들에서, 접속 식별자가 제2 WDD에서의 제2 connection-map 객체에 포함되는 것에 기초하여, 태스크는 제2 작업흐름에서 유지될 수 있다.
실시예들에서, 제2 작업흐름이 제1 작업흐름의 연속이라는 점을 표시하는 연속성 플래그에 기초하여, 제1 작업흐름에서의 태스크의 실행에 대응하는 모든 데이터가 제2 작업흐름에서 유지될 수 있다.
도 4는 프로세스(400)의 예시적인 블록들을 도시하더라도, 일부 구현들에서, 프로세스(800)는 도 4에 묘사되는 것들에 비해 추가적인 블록들, 더 적은 블록들, 상이한 블록들, 또는 상이하게 배열된 블록들을 포함할 수 있다. 추가적으로, 또는 대안적으로, 프로세스(800)의 블록들 중 2개 이상이 병렬로 수행될 수 있다.
추가로, 제안된 방법들은 처리 회로(예를 들어, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 하나의 예에서, 이러한 하나 이상의 프로세서는 제안된 방법들 중 하나 이상을 수행하기 위해 비-일시적 컴퓨터-판독가능 매체에 저장되는 프로그램을 실행한다.
본 개시내용의 실시예들에 따르면, 컴퓨터 코드 또는 프로그램 코드를 저장하는 메모리를 갖는 적어도 하나의 프로세서가 제공될 수 있다. 이러한 컴퓨터 코드는, 적어도 하나의 프로세서에 의해 실행될 때, 본 개시내용의 임의의 수의 양태들을 수행하도록 구성될 수 있다.
예를 들어, 도 5를 참조하면, NBMP 시스템(300)에서 컴퓨터 코드(500)가 구현될 수 있다. 예를 들어, 이러한 컴퓨터 코드는 NBMP 작업흐름 관리기(320)의 메모리에 저장될 수 있고, NBMP 작업흐름 관리기(320)의 적어도 하나의 프로세서에 의해 실행될 수 있다. 컴퓨터 코드는, 예를 들어, 제1 획득 코드(510), 제1 도출 코드(520), 제1 관리 코드(530), 제2 획득 코드(540), 제2 도출 코드(550), 및 제2 관리 코드(560)를 포함할 수 있다.
실시예들에서, 제1 획득 코드(510), 제1 도출 코드(520), 제1 관리 코드(530), 제2 획득 코드(540), 제2 도출 코드(550), 및 제2 관리 코드(560)는 NBMP 작업흐름 관리기(320)로 하여금 각각 도 4를 참조하여 위에 설명된 프로세스의 양태들을 수행하게 하도록 구성될 수 있다.
본 개시내용의 실시예들은 개별적으로 사용되거나 또는 임의의 순서로 조합될 수 있다. 추가로, 실시예들(및 이들의 방법들) 각각은 처리 회로(예를 들어, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 하나의 예에서, 이러한 하나 이상의 프로세서는 비-일시적 컴퓨터-판독가능 매체에 저장되는 프로그램을 실행한다.
전술한 개시내용은 예시 및 설명을 제공하지만, 구현들을 개시되는 정밀한 형태로 제한하도록 또는 철저하도록 의도되는 것은 아니다. 수정들 및 변형들이 위 개시내용의 관점에서 가능하거나 또는 구현들의 실시로부터 취득될 수 있다.
본 명세서에 사용되는 바와 같이, 컴포넌트라는 용어는 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로서 넓게 해석되도록 의도된다.
심지어 특징들의 조합들이 청구항들에서 나열되고 및/또는 명세서에 개시되더라도, 이러한 조합들이 가능한 구현들의 개시내용을 제한하는 것으로 의도되는 것은 아니다. 실제로, 이러한 특징들 중 다수는 구체적으로 청구항들에서 나열되지 않은 및/또는 명세서에서 개시되지 않은 방식들로 조합될 수 있다. 아래에 열거되는 각각의 종속 청구항이 단지 하나의 청구항에만 직접 종속할 수 있더라도, 가능한 구현들의 개시내용은 청구항 세트에서 모든 다른 청구항과 조합하여 각각의 종속 청구항을 포함한다.
본 명세서에 사용되는 엘리먼트, 액트, 또는 명령어는 이와 같이 명시적으로 설명되지 않는 한 불가결한 또는 필수적인 것으로서 해석되어서는 안된다. 또한, 본 명세서에서 사용되는 바와 같이, 관사들("a" 및 "an")은 하나 이상의 항목을 포함하는 것으로 의도되며, "하나 이상(one or more)"과 교체가능하게 사용될 수 있다. 또한, 본 명세서에서 사용되는 바와 같이, "세트(set)"이라는 용어는 하나 이상의 항목(예를 들어, 관련된 항목들, 관련되지 않은 항목들, 관련된 및 관련되지 않은 항목들의 조합 등)을 포함하는 것으로 의도되고, "하나 이상(one or more)"과 교체가능하게 사용될 수 있다. 단지 하나의 항목만이 의도되면, "하나(one)"이라는 용어 또는 유사한 언어가 사용된다. 또한, 본 명세서에서 사용되는 바와 같이, "갖는다("has", "have", "having" 등)"이라는 용어들은 개방형 용어들인 것으로 의도된다. 추가로, "기초하여(based on)"이라는 구절은 명시적으로 달리 표명되지 않는 한 "적어도 부분적으로, 기초하여(based, at least in part, on)"를 의미하는 것으로 의도된다.
Claims (20)
- 미디어 시스템의 작업흐름 관리기의 적어도 하나의 프로세서에 의해 수행되는 방법으로서, 상기 방법은,
제1 NBMP(network based media processing) WDD(workflow description document)를 획득하는 단계;
상기 제1 NBMP WDD에 대응하는 제1 작업흐름을 생성하는 단계;
상기 제1 작업흐름에 따라 적어도 하나의 MPE(media processing entity)를 관리하는 단계;
제2 NBMP WDD를 포함하는 업데이트를 획득하는 단계- 상기 제2 NBMP WDD는 상기 제2 NBMP WDD에 대응하는 제2 작업흐름이 상기 제1 작업흐름의 연속인지를 표시하는 연속성 플래그를 포함함 -;
상기 업데이트(또는 상기 제2 NBMP WDD)에 기초하여 상기 제2 작업흐름을 생성하는 단계; 및
상기 제2 작업흐름을 생성하는 단계에 응답하여, 상기 제2 작업흐름에 따라 상기 적어도 하나의 MPE를 관리하는 단계를 포함하는 방법. - 제1항에 있어서, 상기 제2 작업흐름이 상기 제1 작업흐름의 연속이라는 점을 표시하는 상기 연속성 플래그에 기초하여, 상기 제1 작업흐름에 따른 상기 적어도 하나의 MPE의 관리에 대응하는 모든 데이터가 상기 제2 작업흐름에 따른 상기 적어도 하나의 MPE의 관리 동안 유지되는 방법.
- 제1항에 있어서, 상기 제2 WDD는 상기 제1 작업흐름에 따른 상기 적어도 하나의 MPE의 관리로부터 상기 제2 작업흐름에 따른 상기 적어도 하나의 MPE의 관리로 스위칭하기 위한 시간을 표시하는 신택스 엘리먼트를 추가로 포함하는 방법.
- 제1항에 있어서, 상기 업데이트는 작업흐름 업데이트 및 태스크 업데이트 중 하나인 방법.
- 제1항에 있어서, 상기 제1 작업흐름의 태스크는 상기 제1 WDD에서의 제1 connection-map 객체에 의해 표현되고,
상기 제1 connection-map 객체는 상기 제1 작업흐름에 대응하는 접속 맵에서의 상기 태스크의 위치, 및 상기 제1 작업흐름에서의 다른 엘리먼트에 대한 적어도 하나의 접속을 명시하고,
상기 제1 connection-map 객체는 상기 태스크를 식별하는 접속 식별자를 포함하는 방법. - 제5항에 있어서, 상기 접속 식별자가 상기 제2 WDD에서의 제2 connection-map 객체에 포함되는 것에 기초하여, 상기 태스크는 상기 제2 작업흐름에서 유지되는 방법.
- 제6항에 있어서, 상기 제2 작업흐름이 상기 제1 작업흐름의 연속이라는 점을 표시하는 상기 연속성 플래그에 기초하여, 상기 제1 작업흐름에서의 상기 태스크의 실행에 대응하는 모든 데이터가 상기 제2 작업흐름에서 유지되는 방법.
- 미디어 시스템의 작업흐름 관리기로서, 상기 작업흐름 관리기는,
프로그램 코드를 저장하는 적어도 하나의 메모리; 및
상기 프로그램 코드를 판독하도록 그리고 상기 프로그램 코드에 의해 명령되는 바와 같이 동작하도록 구성되는 적어도 하나의 프로세서를 포함하고, 상기 프로그램 코드는,
상기 적어도 하나의 프로세서로 하여금 제1 NBMP(network based media processing) WDD(workflow description document)를 획득하게 하도록 구성되는 제1 획득 코드;
상기 적어도 하나의 프로세서로 하여금 상기 제1 WDD에 대응하는 제1 작업흐름을 생성하게 하도록 구성되는 제1 생성 코드;
상기 적어도 하나의 프로세서로 하여금 상기 제1 작업흐름에 따라 적어도 하나의 MPE(media processing entity)를 관리하게 하도록 구성되는 제1 관리 코드;
상기 적어도 하나의 프로세서로 하여금 제2 WDD를 포함하는 업데이트를 획득하게 하도록 구성되는 제2 획득 코드- 상기 제2 WDD는 상기 제2 WDD에 대응하는 제2 작업흐름이 상기 제1 작업흐름의 연속인지를 표시하는 연속성 플래그를 포함함 -;
상기 적어도 하나의 프로세서로 하여금 상기 제2 작업흐름을 생성하게 하도록 구성되는 제2 생성 코드; 및
상기 적어도 하나의 프로세서로 하여금 상기 제2 작업흐름에 따라 상기 적어도 하나의 MPE를 관리하게 하도록 구성되는 제2 관리 코드를 포함하는 작업흐름 관리기. - 제8항에 있어서, 상기 제2 작업흐름이 상기 제1 작업흐름의 연속이라는 점을 표시하는 상기 연속성 플래그에 기초하여, 상기 제1 작업흐름에 따른 상기 적어도 하나의 MPE의 관리에 대응하는 모든 데이터가 상기 제2 작업흐름에 따른 상기 적어도 하나의 MPE의 관리 동안 유지되는 작업흐름 관리기.
- 제8항에 있어서, 상기 제2 WDD는 상기 제1 작업흐름에 따른 상기 적어도 하나의 MPE의 관리로부터 상기 제2 작업흐름에 따른 상기 적어도 하나의 MPE의 관리로 스위칭하기 위한 시간을 표시하는 신택스 엘리먼트를 추가로 포함하는 작업흐름 관리기.
- 제8항에 있어서, 상기 업데이트는 작업흐름 업데이트 및 태스크 업데이트 중 하나인 작업흐름 관리기.
- 제8항에 있어서, 상기 제1 작업흐름의 태스크는 상기 제1 WDD에서의 제1 connection-map 객체에 의해 표현되고,
상기 제1 connection-map 객체는 상기 제1 작업흐름에 대응하는 접속 맵에서의 상기 태스크의 위치, 및 상기 제1 작업흐름에서의 다른 엘리먼트에 대한 적어도 하나의 접속을 명시하고,
상기 제1 connection-map 객체는 상기 태스크를 식별하는 접속 식별자를 포함하는 작업흐름 관리기. - 제12항에 있어서, 상기 접속 식별자가 상기 제2 WDD에서의 제2 connection-map 객체에 포함되는 것에 기초하여, 상기 태스크는 상기 제2 작업흐름에서 유지되는 작업흐름 관리기.
- 제13항에 있어서, 상기 제2 작업흐름이 상기 제1 작업흐름의 연속이라는 점을 표시하는 상기 연속성 플래그에 기초하여, 상기 제1 작업흐름에서의 상기 태스크의 실행에 대응하는 모든 데이터가 상기 제2 작업흐름에서 유지되는 작업흐름 관리기.
- 비-일시적 컴퓨터-판독가능 매체로서, 컴퓨터 코드를 저장하고, 상기 컴퓨터 코드는, 미디어 시스템의 작업흐름 관리기를 구현하는 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
제1 NBMP(network based media processing) WDD(workflow description document)를 획득하고;
상기 제1 WDD에 대응하는 제1 작업흐름을 생성하고;
상기 제1 작업흐름에 따라 적어도 하나의 MPE(media processing entity)를 관리하고;
제2 WDD를 포함하는 업데이트를 획득하고- 상기 제2 WDD는 상기 제2 WDD에 대응하는 제2 작업흐름이 상기 제1 작업흐름의 연속인지를 표시하는 연속성 플래그를 포함함 -;
상기 제2 작업흐름을 생성하고;
상기 제2 작업흐름에 따라 상기 적어도 하나의 MPE를 관리하게 하는 비-일시적 컴퓨터-판독가능 매체. - 제15항에 있어서, 상기 제2 작업흐름이 상기 제1 작업흐름의 연속이라는 점을 표시하는 상기 연속성 플래그에 기초하여, 상기 제1 작업흐름에 따른 상기 적어도 하나의 MPE의 관리에 대응하는 모든 데이터가 상기 제2 작업흐름에 따른 상기 적어도 하나의 MPE의 관리 동안 유지되는 비-일시적 컴퓨터-판독가능 매체.
- 제15항에 있어서, 상기 제2 WDD는 상기 제1 작업흐름에 따른 상기 적어도 하나의 MPE의 관리로부터 상기 제2 작업흐름에 따른 상기 적어도 하나의 MPE의 관리로 스위칭하기 위한 시간을 표시하는 신택스 엘리먼트를 추가로 포함하는 비-일시적 컴퓨터-판독가능 매체.
- 제15항에 있어서, 상기 업데이트는 작업흐름 업데이트 및 태스크 업데이트 중 하나인 비-일시적 컴퓨터-판독가능 매체.
- 제15항에 있어서, 상기 제1 작업흐름의 태스크는 상기 제1 WDD에서의 제1 connection-map 객체에 의해 표현되고,
상기 제1 connection-map 객체는 상기 제1 작업흐름에 대응하는 접속 맵에서의 상기 태스크의 위치, 및 상기 제1 작업흐름에서의 다른 엘리먼트에 대한 적어도 하나의 접속을 명시하고,
상기 제1 connection-map 객체는 상기 태스크를 식별하는 접속 식별자를 포함하는 비-일시적 컴퓨터-판독가능 매체. - 제19항에 있어서, 상기 접속 식별자가 상기 제2 WDD에서의 제2 connection-map 객체에 포함되는 것에 기초하여, 상기 태스크는 상기 제2 작업흐름에서 유지되고,
상기 제2 작업흐름이 상기 제1 작업흐름의 연속이라는 점을 표시하는 상기 연속성 플래그에 기초하여, 상기 제1 작업흐름에서의 상기 태스크의 실행에 대응하는 모든 데이터가 상기 제2 작업흐름에서 유지되는 비-일시적 컴퓨터-판독가능 매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163176761P | 2021-04-19 | 2021-04-19 | |
US63/176,761 | 2021-04-19 | ||
US17/704,760 | 2022-03-25 | ||
US17/704,760 US20220337530A1 (en) | 2021-04-19 | 2022-03-25 | Method for switching workflow or updating workflow with continuity and no interruption in dataflow |
PCT/US2022/022106 WO2022225650A2 (en) | 2021-04-19 | 2022-03-28 | Method for switching workflow or updating workflow with continuity and no interruption in dataflow |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220160050A true KR20220160050A (ko) | 2022-12-05 |
Family
ID=83602949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227037230A KR20220160050A (ko) | 2021-04-19 | 2022-03-28 | 데이터흐름에서 연속성을 갖고 중단 없이 작업흐름을 스위칭하기 위한 또는 작업흐름을 업데이트하기 위한 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220337530A1 (ko) |
EP (1) | EP4118649B1 (ko) |
JP (1) | JP7515614B2 (ko) |
KR (1) | KR20220160050A (ko) |
CN (1) | CN115668373A (ko) |
WO (1) | WO2022225650A2 (ko) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8682939B2 (en) * | 2002-05-22 | 2014-03-25 | Teac Aerospace Technologies, Inc. | Video and audio recording using file segmentation to preserve the integrity of critical data |
FR2972320B1 (fr) * | 2011-03-03 | 2013-10-18 | Ass Pour La Rech Et Le Dev De Methodes Et Processus Ind Armines | Codage de donnees sans perte pour communication bidirectionnelle dans une session collaborative d'echange de contenu multimedia |
US10740093B2 (en) * | 2016-09-01 | 2020-08-11 | Dropbox, Inc. | Advanced packaging techniques for improving work flows |
US20180075409A1 (en) * | 2016-09-09 | 2018-03-15 | Dematic Corp. | Communication system for operation and management of workflows and integration of multiple devices utilizing different operating platforms |
WO2018213481A1 (en) * | 2017-05-16 | 2018-11-22 | Sportscastr.Live Llc | Systems, apparatus, and methods for scalable low-latency viewing of integrated broadcast commentary and event video streams of live events, and synchronization of event information with viewed streams via multiple internet channels |
US11363087B2 (en) * | 2018-05-24 | 2022-06-14 | Disney Enterprises, Inc. | Leveraging microservices to orchestrate media workflows in the cloud |
US11381885B2 (en) * | 2018-12-03 | 2022-07-05 | Samsung Electronics Co., Ltd. | Method and device for managing processing of media content, and computer-readable recording medium |
JP2022051975A (ja) | 2019-02-12 | 2022-04-04 | ソニーグループ株式会社 | 情報処理装置および情報処理方法 |
CN111835549B (zh) * | 2019-04-23 | 2023-09-05 | 腾讯美国有限责任公司 | 处理媒体内容的方法、装置、计算机设备以及介质 |
US11256546B2 (en) * | 2019-07-02 | 2022-02-22 | Nokia Technologies Oy | Methods, apparatuses and computer readable mediums for network based media processing |
US20210096904A1 (en) | 2019-09-28 | 2021-04-01 | Tencent America LLC | Method and apparatus for a step-enabled workflow |
-
2022
- 2022-03-25 US US17/704,760 patent/US20220337530A1/en active Pending
- 2022-03-28 KR KR1020227037230A patent/KR20220160050A/ko active Search and Examination
- 2022-03-28 EP EP22782814.2A patent/EP4118649B1/en active Active
- 2022-03-28 WO PCT/US2022/022106 patent/WO2022225650A2/en active Application Filing
- 2022-03-28 CN CN202280003940.9A patent/CN115668373A/zh active Pending
- 2022-03-28 JP JP2022563074A patent/JP7515614B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
EP4118649A4 (en) | 2023-02-15 |
EP4118649B1 (en) | 2024-05-29 |
JP7515614B2 (ja) | 2024-07-12 |
JP2023525661A (ja) | 2023-06-19 |
WO2022225650A3 (en) | 2022-12-01 |
CN115668373A (zh) | 2023-01-31 |
WO2022225650A2 (en) | 2022-10-27 |
EP4118649A2 (en) | 2023-01-18 |
US20220337530A1 (en) | 2022-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11012721B2 (en) | Method and apparatus for envelope descriptor in moving picture experts group network based media processing | |
EP4018309A1 (en) | Split rendering using network based media processing workflow | |
US11356534B2 (en) | Function repository selection mode and signaling for cloud based processing | |
US20200341806A1 (en) | Method and apparatus for functional improvements to moving picture experts group network based media processing | |
US20230035558A1 (en) | Extensible schemes and scheme signaling for cloud based processing | |
US11743307B2 (en) | Nonessential input, output and task signaling in workflows on cloud platforms | |
US11675796B2 (en) | Method and apparatus for metadata of function and function group search in moving picture experts group network based media processing | |
US20220337530A1 (en) | Method for switching workflow or updating workflow with continuity and no interruption in dataflow | |
CN111831834A (zh) | 基于网络的媒体处理(nbmp)中处理媒体内容的方法和装置 | |
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 | |
US20230109209A1 (en) | Method and apparatus for signaling net-zero workflow modifications on cloud platforms | |
US20230020527A1 (en) | Method and apparatus for switching or updating partial or entire workflow on cloud with continuity in dataflow | |
US20230008616A1 (en) | Method and system for monitoring, reporting and notification of cloud platform system variables and events | |
US20230019558A1 (en) | Method and apparatus for signaling independent processing of media segments on cloud using metadata and startcode | |
WO2021207027A1 (en) | Task proximity for cloud services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |