KR20220079669A - 미디어 스트리밍에서 콤보-인덱스 세그먼트 트랙을 이용한 대역폭 캡 시그널링 - Google Patents
미디어 스트리밍에서 콤보-인덱스 세그먼트 트랙을 이용한 대역폭 캡 시그널링 Download PDFInfo
- Publication number
- KR20220079669A KR20220079669A KR1020227016078A KR20227016078A KR20220079669A KR 20220079669 A KR20220079669 A KR 20220079669A KR 1020227016078 A KR1020227016078 A KR 1020227016078A KR 20227016078 A KR20227016078 A KR 20227016078A KR 20220079669 A KR20220079669 A KR 20220079669A
- Authority
- KR
- South Korea
- Prior art keywords
- segments
- index
- combo
- representations
- segment
- Prior art date
Links
- 230000011664 signaling Effects 0.000 title claims description 15
- 238000000034 method Methods 0.000 claims abstract description 45
- 230000006978 adaptation Effects 0.000 claims abstract description 39
- 238000004590 computer program Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 9
- 230000033001 locomotion Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 14
- 230000006835 compression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 239000013598 vector Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000000153 supplemental effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013442 quality metrics Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 241000238876 Acari Species 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
- H04L47/365—Dynamic adaptation of the packet size
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/38—Flow control; Congestion control by adapting coding or compression rate
-
- 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/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- 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/70—Media network packetisation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
프로세서 또는 프로세서들로 하여금, 비디오 데이터를 획득하는 것, 비디오 데이터에 기초하여, 세그먼트 대역폭을 표시하고 미디어 적응 세트의 복수의 정렬된 세그먼트들의 정보를 포함하는 타이밍된 메타데이터 트랙을 생성하는 것 - 이에 따라 상기 정렬된 세그먼트들 각각의 지속기간 정보 및 사이즈 정보는 적어도 하나의 메타데이터 샘플에 포함됨 -, 타이밍된 메타데이터 트랙이 적어도 복수의 표현들 각각 마다 입력 버퍼에 대한 오버플로를 표시하는지에 기초하여 비디오 데이터의 복수의 표현들 중 하나로 스위칭하는 것, 및 복수의 표현들 중 하나를 클라이언트로 전달하는 것을 수행하게 하도록 구성된 컴퓨터 코드를 포함하는, 방법 및 장치가 포함된다.
Description
관련 출원에 대한 상호 참조
본 출원은 2021년 4월 28일자에 출원된 미국 특허출원 번호 제17/242,875호에 대해 우선권의 이익을 주장하며, 2020년 6월 23일자에 출원된 가출원들 US 63/042,959호, 및 2020년 10월 7일자에 출원된 US 63/088,712호에 대해 우선권을 주장하며, 이의 내용들이 참조로, 그들 전체로, 본 출원에 명시적으로 원용된다.
1. 분야
본 개시내용은 HTTP를 통한 동적 적응 스트리밍(DASH) 시그널링에 관한 것이다.
2. 관련 기술의 설명
MPEG DASH는 IP 네트워크들을 통해 멀티미디어 콘텐츠를 스트리밍하기 위한 표준을 제공한다. ISO/IEC 23009-1 DASH 표준은 멀티-레이트 콘텐츠의 스트리밍을 허용한다. 그러나, DASH 클라이언트가 가용 네트워크 대역폭 및 그의 버퍼 충만도의 양에 기초하여 동일한 콘텐츠의 다수의 표현들 중에서 세그먼트들을 선택할 수 있지만, DASH 표준은 각각의 표현의 평균 대역폭을 설명하는 방법을 제공하며, 단일 표현에서 세그먼트들의 순시 대역폭 변동의 제공이 없으며, 따라서, 표현의 평균 비트레이트가 주어졌더라도, 바이트 단위의 세그먼트들의 사이즈가 예상된 대역폭보다 휠씬 더 커서, 해당 세그먼트를 다운로드하면 클라이언트 입력 버퍼를 오버플로시킬 수 있음이 발생할 수 있다.
하나 이상의 상이한 기술적인 문제들을 해결하기 위해, 본 개시내용은 네트워크 오버헤드 및 서버 컴퓨터 오버헤드들을 감소시키는 기술적인 해결책들을 제공하는 동시에, 다양한 동작들을 해결된 엘리먼트에 적용하는 옵션을 전달하여, 이들 동작들을 이용할 때에 실용성 및 이의 기술적인 시그널링 특징들 중 일부가 향상될 수 있다.
컴퓨터 프로그램 코드를 저장하도록 구성된 메모리 및 컴퓨터 프로그램 코드에 액세스하고 컴퓨터 프로그램 코드에 의해 명령되는 바에 따라 동작하도록 구성된 프로세서 또는 프로세서들을 포함하는 방법 및 장치가 포함된다. 컴퓨터 프로그램 코드는 적어도 하나의 프로세서로 하여금, 비디오 데이터를 획득하게 하도록 구성된 획득 코드; 적어도 하나의 프로세서로 하여금, 비디오 데이터에 기초하여, 세그먼트 대역폭을 표시하고 미디어 적응 세트의 복수의 정렬된 세그먼트들의 정보를 포함하는 타이밍된(timed) 메타데이터 트랙을 생성하게 하도록 구성된 생성 코드 - 이에 따라 상기 정렬된 세그먼트들 각각의 지속기간 정보 및 사이즈 정보는 적어도 하나의 메타데이터 샘플에 포함됨 -; 적어도 하나의 프로세서로 하여금, 타이밍된 메타데이터 트랙이 적어도 복수의 표현들 각각 마다 입력 버퍼에 대한 오버플로를 표시하는지에 기초하여 비디오 데이터의 복수의 표현들 중 하나를 스위칭하게 하도록 구성된 스위칭 코드: 및 적어도 하나의 프로세서로 하여금, 복수의 표현들 중 하나를 클라이언트로 전달하게 하도록 구성된 전달 코드를 포함한다.
예시적인 실시형태들에 따르면, 컴퓨터 프로그램 코드는 적어도 하나의 프로세서로 하여금, 적어도 하나의 메타데이터 샘플에서의 정렬된 세그먼트들 중 적어도 하나의 세그먼트의 미디어 청크들의 특성들, 및 미디어 청크들의 사이즈를 시그널링하는 재동기화 청크 인덱스들을 생성하게 하도록 구성된 추가 생성 코드; 적어도 하나의 프로세서로 하여금, 미디어 청크들과 함께 메타데이터 샘플을 점진적으로 발생시키게 하도록 구성된 발생 코드; 및 적어도 하나의 프로세서로 하여금, 메타데이터 샘플을 클라이언트로 점진적으로 전달하게 하도록 구성된 추가 전달 코드를 더 포함한다.
예시적인 실시형태들에 따르면, 타이밍된 메타데이터 트랙은 정렬된 세그먼트들 및 미디어 청크들 중 적어도 임의의 것들의 상대적인 품질들을 추가로 표시하며, 복수의 표현들 중 하나로의 스위칭은 상대적인 품질들을 비교하는 것에 추가로 기초한다.
예시적인 실시형태들에 따르면, 컴퓨터 프로그램 코드는 적어도 하나의 프로세서로 하여금, 정렬된 세그먼트들 및 미디어 청크들 중 적어도 임의의 것들의 지속기간들이 알려져 있는지를 시그널링하게 하도록 구성된 시그널링 코드를 더 포함하며, 지속기간들은 지속기간들이 알려져 있을 때 정렬된 세그먼트들 및 미디어 청크들 중 적어도 임의의 것들마다 정확한 지속기간들로서 시그널링되고, 지속기간들은 지속기간들이 알려져 있지 않을 때 정렬된 세그먼트들 및 미디어 청크들 중 적어도 임의의 것들마다 변동들의 양들로 시그널링된다.
예시적인 실시형태들에 따르면, 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서로 하여금, 정렬된 세그먼트들의 인덱스 정보를 조합함으로써 조합 인덱스 세그먼트를 생성하게 하도록 구성된 추가 생성 코드; 및 적어도 하나의 프로세서로 하여금, 조합 인덱스 세그먼트를 클라이언트로 전달하게 하도록 구성된 추가 전달 코드를 더 포함한다.
예시적인 실시형태들에 따르면, 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서로 하여금, 미디어 적응 세트의 정렬된 세그먼트들의 청크 재동기화 정보를 조합함으로써 콤보-재동기화 인덱스 세그먼트들을 생성하게 하도록 구성된 제2 추가 생성 코드; 및 적어도 하나의 프로세서로 하여금, 콤보-재동기화 인덱스 세그먼트들을 클라이언트로 전달하게 하도록 구성된 제2 추가 전달 코드를 더 포함한다.
예시적인 실시형태들에 따르면, 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서로 하여금, 인코딩 중인 정렬된 세그먼트들 중 하나 이외의, 정렬된 세그먼트들의 모두에 대한 조합 인덱스 세그먼트의 포맷을 포함하는 혼합된 콤보 인덱스 트랙들을 생성하게 하도록 구성된 제3 추가 생성 코드를 더 포함하며, 혼합된 콤보 인덱스 트랙들은 정렬된 세그먼트들 중 하나에 대한 콤보-재동기화 인덱스 세그먼트들의 포맷을 더 포함한다.
예시적인 실시형태들에 따르면, 혼합된 콤보 인덱스 트랙들은 병렬 메타데이터 트랙들이다.
예시적인 실시형태들에 따르면, 비디오 데이터의 복수의 표현들 중 하나로의 스위칭은 표현들의 대역폭들을 결정하는 것에 추가로 기초한다.
예시적인 실시형태들에 따르면, 타이밍된 메타데이터 트랙은 적어도 입력 버퍼에 대한 오버플로가 입력 버퍼의 현재의 충만도를 결정하는 것을 포함한다는 것을 표시한다.
개시된 발명의 요지의 추가적인 특징들, 성질, 및 다양한 이점들은 다음 상세한 설명 및 첨부 도면들로부터 더욱 명확히 알 수 있을 것이다.
도 1은 실시형태들에 따른 단순화된 개략도이다.
도 2는 실시형태들에 따른 단순화된 개략도이다.
도 3은 실시형태들에 따른 디코더들에 관한 단순화된 블록도이다.
도 4는 실시형태들에 따른 인코더들에 관한 단순화된 블록도이다.
도 5는 실시형태들에 따른 단순화된 블록도이다.
도 6은 실시형태들에 따른 단순화된 다이어그램이다.
도 7은 실시형태들에 따른 단순화된 다이어그램이다.
도 8은 실시형태들에 따른 단순화된 다이어그램이다.
도 9는 실시형태들에 따른 단순화된 다이어그램이다.
도 10은 실시형태들에 따른 단순화된 플로우차트이다.
도 11은 실시형태들에 따른 단순화된 플로우차트이다.
도 12는 실시형태들에 따른 단순화된 다이어그램이다.
도 13은 실시형태들에 따른 단순화된 다이어그램이다.
도 14는 실시형태들에 따른 개략도이다.
도 1은 실시형태들에 따른 단순화된 개략도이다.
도 2는 실시형태들에 따른 단순화된 개략도이다.
도 3은 실시형태들에 따른 디코더들에 관한 단순화된 블록도이다.
도 4는 실시형태들에 따른 인코더들에 관한 단순화된 블록도이다.
도 5는 실시형태들에 따른 단순화된 블록도이다.
도 6은 실시형태들에 따른 단순화된 다이어그램이다.
도 7은 실시형태들에 따른 단순화된 다이어그램이다.
도 8은 실시형태들에 따른 단순화된 다이어그램이다.
도 9는 실시형태들에 따른 단순화된 다이어그램이다.
도 10은 실시형태들에 따른 단순화된 플로우차트이다.
도 11은 실시형태들에 따른 단순화된 플로우차트이다.
도 12는 실시형태들에 따른 단순화된 다이어그램이다.
도 13은 실시형태들에 따른 단순화된 다이어그램이다.
도 14는 실시형태들에 따른 개략도이다.
아래에서 설명되는 제안된 특징들은 별도로 이용되거나 또는 임의의 순서로 결합될 수 있다. 또한, 실시형태들은 프로세싱 회로부(예컨대, 하나 이상의 프로세서들 또는 하나 이상의 집적 회로들)에 의해 구현될 수 있다. 일 예에서, 하나 이상의 프로세서들은 비-일시적 컴퓨터-판독가능 매체에 저장된 프로그램을 실행한다.
도 1은 본 개시내용의 일 실시형태에 따른 통신 시스템(100)의 단순화된 블록도를 예시한다. 통신 시스템(100)은 네트워크(105)를 통해서 상호접속된 적어도 2개의 단말들(102 및 103)을 포함할 수 있다. 데이터의 단방향 송신을 위해, 제1 단말(103)은 네트워크(105)를 통한 다른 단말(102)로의 송신을 위해 로컬 위치에서 비디오 데이터를 코딩할 수 있다. 제2 단말(102)은 네트워크(105)로부터 다른 단말의 코딩된 비디오 데이터를 수신하고, 코딩된 데이터를 디코딩하고 복원된 비디오 데이터를 디스플레이할 수 있다. 단방향의 데이터 송신은 미디어 서빙 애플리케이션들 등에서 일반적일 수 있다.
도 1은 예를 들어, 화상회의 동안 발생할 수 있는 코딩된 비디오의 양방향 송신을 지원하기 위해 제공되는 단말들(101 및 104)의 제2 쌍을 예시한다. 데이터의 양방향 송신을 위해, 각각의 단말(101 및 104)은 네트워크(105)를 통한 다른 단말로의 송신을 위해 로컬 위치에서 캡처된 비디오 데이터를 코딩할 수 있다. 각각의 단말(101 및 104)은 또한 다른 단말에 의해 송신된 코딩된 비디오 데이터를 수신할 수 있으며, 코딩된 데이터를 디코딩할 수 있으며, 복원된 비디오 데이터를 로컬 디스플레이 디바이스에서 디스플레이할 수 있다.
도 1에서, 단말들(101, 102, 103 및 104)은 서버들, 개인용 컴퓨터들 및 스마트폰들로서 예시될 수 있지만, 본 개시내용의 원리들은 이에 제한되지 않는다. 본 개시내용의 실시형태들은 랩탑 컴퓨터들, 태블릿 컴퓨터들, 미디어 플레이어들 및/또는 전용 화상 회의 장비를 사용하는 애플리케이션을 찾는다. 네트워크(105)는 예를 들어, 유선 및/또는 무선 통신 네트워크들을 포함한, 코딩된 비디오 데이터를 단말들(101, 102, 103 및 104) 간에 전달하는 임의의 개수의 네트워크들을 표현한다. 통신 네트워크(105)는 회선-교환 및/또는 패킷-교환 채널들에서 데이터를 교환할 수 있다. 대표적인 네트워크들은 원격 통신 네트워크들, 근거리 네트워크들, 광역 네트워크들 및/또는 인터넷을 포함한다. 본 설명의 목적들을 위해, 네트워크(105)의 아키텍처 및 토폴로지는 이하에서 설명되지 않는 한, 본 개시내용의 동작에 중요하지 않을 수 있다.
도 2는 개시된 발명의 요지의 애플리케이션에 대한 예로서, 스트리밍 환경에서 비디오 인코더 및 디코더의 배치를 예시한다. 개시된 발명의 요지는 예를 들어, CD, DVD, 메모리 스틱 등을 포함한 디지털 미디어 상의 압축된 비디오의 저장, 화상 회의, 디지털 TV 등을 포함하는 다른 비디오 지원(enabled) 애플리케이션들에도 동일하게 적용할 수 있다.
스트리밍 시스템은 비디오 소스(201)를 포함할 수 있는 캡처 서브시스템(203), 예를 들어, 비압축된 비디오 샘플 스트림(213)을 생성하는, 예를 들어, 디지털 카메라를 포함할 수 있다. 그 샘플 스트림(213)은 인코딩된 비디오 비트스트림들과 비교할 때 높은 데이터 볼륨으로서 강조될 수 있으며, 카메라(201)에 커플링된 인코더(202)에 의해 프로세싱될 수 있다. 인코더(202)는 아래에 더 자세히 설명된 바와 같이 개시된 발명의 요지의 양태들을 가능하게 하거나 또는 구현하기 위해 하드웨어, 소프트웨어, 또는 이들의 조합을 포함할 수 있다. 샘플 스트림과 비교할 때 더 낮은 데이터 볼륨으로서 강조될 수 있는 인코딩된 비디오 비트스트림(204)은 미래 사용을 위해 스트리밍 서버(205) 상에 저장될 수 있다. 하나 이상의 스트리밍 클라이언트들(212 및 207)은 스트리밍 서버(205)에 액세스하여 인코딩된 비디오 비트스트림(204)의 복사본들(208 및 206)을 취출할 수 있다. 클라이언트(212)는 인코딩된 비디오 비트스트림(208)의 유입 복사본을 디코딩하고 디스플레이(209) 또는 다른 렌더링 디바이스(미도시됨) 상에 렌더링될 수 있는 유출 비디오 샘플 스트림(210)을 생성하는 비디오 디코더(211)를 포함할 수 있다. 일부 스트리밍 시스템들에서, 비디오 비트스트림들(204, 206 및 208)은 특정의 비디오 코딩/압축 표준들에 따라서 인코딩될 수 있다. 이들 표준들의 예들은 위에서 언급되고 본원에서 추가로 설명된다.
도 3은 본 발명의 일 실시형태에 따른 비디오 디코더(300)의 기능 블록도일 수 있다.
수신기(302)는 디코더(300)에 의해 디코딩될 하나 이상의 코덱 비디오 시퀀스들; 동일한 또는 다른 실시형태에서, 한번에 하나의 코딩된 비디오 시퀀스를 수신할 수 있으며, 각각의 코딩된 비디오 시퀀스의 디코딩은 다른 코딩된 비디오 시퀀스들과는 독립적이다. 코딩된 비디오 시퀀스는 인코딩된 비디오 데이터를 저장하는 저장 디바이스로의 하드웨어/소프트웨어 링크일 수 있는 채널(301)로부터 수신될 수 있다. 수신기(302)는 엔티티들(미도시됨)을 이용하여 이들 각각으로 포워딩될 수 있는, 다른 데이터, 예를 들어, 코딩된 오디오 데이터 및/또는 보조 데이터 스트림들과 함께 인코딩된 비디오 데이터를 수신할 수 있다. 수신기(302)는 코딩된 비디오 시퀀스를 다른 데이터로부터 분리할 수 있다. 네트워크 지터를 방지하기 위해, 버퍼 메모리(303)는 수신기(302)와 엔트로피 디코더/파서(304)(이후, "파서") 사이에 커플링될 수 있다. 수신기(302)가 충분한 대역폭 및 제어가능성의 저장/포워드 디바이스로부터, 또는 등시성 네트워크로부터 데이터를 수신하고 있을 때, 버퍼(303)는 필요하지 않을 수 있거나, 또는 작을 수 있다. 인터넷과 같은 최선형 패킷 네트워크들 상에서 사용하기 위해, 버퍼(303)가 필요할 수 있으며, 비교적 클 수 있으며 유리하게는 적응적 사이즈일 수 있다.
비디오 디코더(300)는 엔트로피 코딩된 비디오 시퀀스로부터 심볼들(313)을 복원하기 위해 파서(304)를 포함할 수 있다. 이 심볼들의 카테고리들은 디코더(300)의 동작을 관리하는데 사용되는 정보, 및 잠재적으로 렌더링 디바이스, 예컨대 디코더의 일체형 부품이 아니라 이에 커플링될 수 있는 디스플레이(312)를 제어하기 위한 정보를 포함한다. 렌더링 디바이스(들)에 대한 제어 정보는 보충 향상 정보(SEI 메시지들) 또는 비디오 사용성 정보 파라미터 세트 단편들(미도시됨)의 형태일 수 있다. 파서(304)는 수신된 코딩된 비디오 시퀀스를 파싱/엔트로피-디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준을 따를 수 있으며, 가변 길이 코딩, Huffman 코딩, 컨텍스트 감도를 포함하거나 또는 포함하지 않는 산술 코딩 등을 포함한, 통상의 기술자에게 널리 공지된 원리들을 따를 수 있다. 파서(304)는 그룹에 대응하는 적어도 하나의 파라미터들에 기초하여, 코딩된 비디오 시퀀스로부터, 비디오 디코더에서 픽셀들의 하위 그룹들 중 적어도 하나에 대한 하위 그룹 파라미터들의 세트를 추출할 수 있다. 하위 그룹들은 픽처들의 그룹들(GOPs), 픽처들, 타일들, 슬라이스들, 매크로블록들, 코딩 유닛들(CUs), 블록들, 변환 유닛들(TUs), 예측 유닛들(PUs) 등을 포함할 수 있다. 엔트로피 디코더/파서는 또한 변환 계수들, 양자화기 파라미터 값들, 모션 벡터들 등과 같은 코딩된 비디오 시퀀스 정보로부터 추출할 수 있다.
파서(304)는 버퍼(303)로부터 수신된 비디오 시퀀스에 대해 엔트로피 디코딩/파싱 동작을 수행하여, 심볼들(313)을 생성할 수 있다. 파서(304)는 인코딩된 데이터를 수신하고, 선택적으로, 특정의 심볼들(313)을 디코딩할 수 있다. 또한, 파서(304)는 특정의 심볼들(313)이 모션 보상 예측 유닛(306), 스케일러/역변환 유닛(305), 인트라 예측 유닛(307), 또는 루프 필터(311)에 제공되어야 하는지를 결정할 수 있다.
심볼들(313)의 복원은 코딩된 비디오 픽처 또는 이의 부분들(예컨대: 인터 및 인트라 픽처, 인터 및 인트라 블록)의 유형, 및 다른 인자들에 따라서, 다수의 상이한 유닛들을 포함할 수 있다. 어느 유닛들이 포함되는지, 및 유닛들이 포함되는 방법은, 파서(304)에 의해 코딩된 비디오 시퀀스로부터 파싱된 하위 그룹 제어 정보에 의해 제어될 수 있다. 파서(304)와 아래의 다수의 유닛들 사이의 이러한 하위 그룹 제어 정보의 흐름은 명료성을 위해 도시되지 않는다.
이미 언급된 기능 블록들을 넘어서, 디코더(300)는 아래에서 설명되는 바와 같이 다수의 기능 유닛들로 개념적으로 세분될 수 있다. 상업적 제약들 하에서 동작하는 실제 구현에서, 이들 유닛들 중 다수의 유닛들이 서로 밀접하게 상호작용하며 적어도 부분적으로 서로에 통합될 수 있다. 그러나, 개시된 발명의 요지를 설명하는 목적을 위해, 하기 기능 유닛들로의 개념적인 세분화가 적합하다.
제1 유닛은 스케일러/역변환 유닛(305)이다. 스케일러/역변환 유닛(305)은 파서(304)로부터, 양자화된 변환 계수 뿐만 아니라, 사용할 변환, 블록 사이즈, 양자화 인자, 양자화 스케일링 매트릭스들 등을 포함한 제어 정보를 심볼(들)(313)로서 수신한다. 이는 집성기(310)에 입력될 수 있는, 샘플 값들을 포함하는 블록들을 출력할 수 있다.
일부의 경우, 스케일러/역변환(305)의 출력 샘플들은 인트라 코딩된 블록; 즉: 이전에 복원된 픽처들로부터의 예측 정보를 이용하지 않지만 현재의 픽처의 이전에 복원된 부분들로부터의 예측 정보를 이용할 수 있는 블록에 속할 수 있다. 이러한 예측 정보는 인트라 픽처 예측 유닛(307)에 의해 제공될 수 있다. 일부의 경우, 인트라 픽처 예측 유닛(307)은 현재의 (부분적으로 복원된) 픽처(309)로부터 페치된 주변의 이미 복원된 정보를 이용하여, 동일한 사이즈의 블록 및 복원 중인 그 블록의 형상을 발생시킨다. 집성기(310)는, 일부의 경우, 인트라 예측 유닛(307)이 발생시킨 예측 정보를, 스케일러/역변환 유닛(305)에 의해 제공된 바와 같은 출력 샘플 정보에 샘플 기준 단위로 추가한다.
다른 경우, 스케일러/역변환 유닛(305)의 출력 샘플들은 인터 코딩되고 잠재적으로 모션 보상된 블록에 속할 수 있다. 이러한 경우, 모션 보상 예측 유닛(306)은 참조 픽처 메모리(308)에 액세스하여 예측에 사용되는 샘플들을 페치할 수 있다. 블록에 속하는 심볼들(313)에 따라서 페치된 샘플들을 모션 보상한 후, 이들 샘플들은 출력 샘플 정보를 발생시키기 위해 집성기(310)에 의해 스케일러/역변환 유닛의 출력(이 경우, 잔차 샘플들 또는 잔차 신호로 지칭됨)에 추가될 수 있다. 모션 보상 유닛이 예측 샘플들을 페치하는 참조 픽처 메모리 형태 내 어드레스들은 예를 들어, X, Y, 및 참조 픽처 컴포넌트들을 가질 수 있는 심볼들(313)의 형태로 모션 보상 유닛에 이용가능한 모션 벡터들에 의해 제어될 수 있다. 모션 보상은 또한 서브-샘플 정확한 모션 벡터들이 사용 중일 때 참조 픽처 메모리로부터 페치된 샘플 값들의 내삽, 모션 벡터 예측 메커니즘들 등을 포함할 수 있다.
집성기(310)의 출력 샘플들은 루프 필터 유닛(311)에서 다양한 루프 필터링 기법들을 거칠 수 있다. 비디오 압축 기술들은 코딩된 비디오 비트스트림에 포함된 파라미터들에 의해 제어되고 파서(304)로부터의 심볼들(313)로서 루프 필터 유닛(311)에 이용가능하게 되지만, 또한 코딩된 픽처 또는 코딩된 비디오 시퀀스의 이전(디코딩 순서에서) 부분들의 디코딩 동안 획득된 메타-정보에 응답할 뿐만 아니라, 이전에 복원된 및 루프-필터링된 샘플 값들에 응답할 수 있는 인-루프 필터 기술들을 포함할 수 있다.
루프 필터 유닛(311)의 출력은 렌더 디바이스(312)로 출력될 뿐만 아니라, 미래 인터-픽처 예측에 사용하기 위해 참조 픽처 메모리(557)에 저장될 수 있는 샘플 스트림일 수 있다.
특정의 코딩된 픽처들은, 일단 완전히 복원되면, 미래 예측을 위한 참조 픽처들로서 이용될 수 있다. 일단 코딩된 픽처가 완전히 복원되고 코딩된 픽처가 (예를 들어, 파서(304)에 의해) 참조 픽처로서 식별되면, 현재의 참조 픽처(309)는 참조 픽처 버퍼(308)의 부분이 될 수 있으며, 새로운 현재의 픽처 메모리가 다음 코딩된 픽처의 복원을 시작하기 전에 재할당될 수 있다.
비디오 디코더(300)는 ITU-T 권고안 H.265와 같은, 표준으로 문서화될 수 있는 미리 결정된 비디오 압축 기술에 따라서 디코딩 동작들을 수행할 수 있다. 코딩된 비디오 시퀀스는 비디오 압축 기술 문서 또는 표준, 구체적으로는 그 안의 프로파일 문서에 규정된 바와 같은, 비디오 압축 기술 또는 표준의 신택스를 준수한다는 의미에서, 사용 중인 비디오 압축 기술 또는 표준에 의해 규정된 신택스를 따를 수 있다. 또한 규정 준수를 위해 필요한 것은 코딩된 비디오 시퀀스의 복잡성이 비디오 압축 기술 또는 표준의 레벨에 의해 정의된 범위들 내에 있어야 한다는 것일 수 있다. 일부의 경우, 레벨들은 최대 픽처 사이즈, 최대 프레임 레이트, 최대 복원 샘플 레이트(예를 들어, 초당 메가샘플로 측정됨), 최대 참조 픽처 사이즈 등을 제한한다. 레벨들에 의해 설정된 한계들은 일부의 경우, 코딩된 비디오 시퀀스에서 시그널링되는 가상 참조 디코더(HRD) 사양들 및 HRD 버퍼 관리를 위한 메타데이터를 통해서 추가로 제한될 수 있다.
일 실시형태에서, 수신기(302)는 인코딩된 비디오와 함께 추가적인(여분의) 데이터를 수신할 수 있다. 추가적인 데이터는 코딩된 비디오 시퀀스(들)의 부분으로서 포함될 수 있다. 추가적인 데이터는 비디오 디코더(300)에 의해 데이터를 적절히 디코딩하고/하거나 원래 비디오 데이터를 더 정확하게 복원하는데 이용될 수 있다. 추가적인 데이터는 예를 들어, 시간, 공간, 또는 신호-대-잡음비(SNR) 향상 계층들, 여분의(redundant) 슬라이스들, 여분의 픽처들, 정방향 에러 정정 코드들 등의 형태일 수 있다.
도 4는 본 개시내용의 일 실시형태에 따른 비디오 인코더(400)의 기능 블록도일 수 있다.
인코더(400)는 인코더(400)에 의해 코딩될 비디오 이미지(들)를 캡처할 수 있는 (인코더의 부분이 아닌) 비디오 소스(401)로부터 비디오 샘플들을 수신할 수 있다.
비디오 소스(401)는 임의의 적합한 비트 심도(예를 들어: 8 비트, 10 비트, 12 비트, ...), 임의의 컬러 공간(예를 들어, BT.601 Y CrCB, RGB, ...) 및 임의의 적합한 샘플링 구조(예를 들어, Y CrCb 4:2:0, Y CrCb 4:4:4)일 수 있는 디지털 비디오 샘플 스트림의 형태로 인코더(303)에 의해 코딩될 소스 비디오 시퀀스를 제공할 수 있다. 미디어 서빙 시스템에서, 비디오 소스(401)는 이전에 준비된 비디오를 저장하는 저장 디바이스일 수 있다. 화상회의 시스템에서, 비디오 소스(401)는 로컬 이미지 정보를 비디오 시퀀스로서 캡처하는 카메라일 수 있다. 비디오 데이터는 시퀀스로 볼 때 모션을 부여하는 복수의 개개의 픽처들로서 제공될 수 있다. 픽처들 자체는 픽셀들의 공간 어레이로서 구성될 수 있으며, 각각의 픽셀은 사용시 샘플링 구조, 컬러 공간, 등에 따라 하나 이상의 샘플들을 포함할 수 있다. 통상의 기술자는 픽셀들과 샘플들 사이의 관계를 용이하게 이해할 수 있다. 하기 설명은 샘플들에 집중한다.
일 실시형태에 따르면, 인코더(400)는 실시간으로 또는 애플리케이션에 의해 요구되는 임의의 다른 시간 제약들 하에서, 소스 비디오 시퀀스의 픽처들을 코딩된 비디오 시퀀스(410)로 코딩 및 압축할 수 있다. 적합한 코딩 속도를 적용하는 것은 제어기(402)의 하나의 기능이다. 제어기는 아래에서 설명되는 바와 같이 다른 기능 유닛들을 제어하며 이들 유닛들에 기능적으로 커플링된다. 커플링은 명료성을 위해 도시되지 않는다. 제어기에 의해 설정된 파라미터들은 레이트 제어 관련 파라미터들(픽처 스킵, 양자화기, 레이트-왜곡 최적화 기법들의 람다 값, ...), 픽처 사이즈, 픽처들의 그룹(GOP) 레이아웃, 최대 모션 벡터 탐색 범위 등을 포함할 수 있다. 통상의 기술자는 이들이 특정의 시스템 설계에 최적화된 비디오 인코더(400)에 속할 수 있기 때문에, 제어기(402)의 다른 기능들을 용이하게 식별할 수 있다.
일부 비디오 인코더들은 통상의 기술자가 "코딩 루프"로서 용이하게 인식하는 방식으로 동작한다. 지나치게 단순화된 설명으로서, 코딩 루프는 (코딩될 입력 픽처, 및 참조 픽처(들)에 기초하여 심볼들을 생성하는 것을 담당하는) 인코더(402)(이후 "소스 코더")의 인코딩 부분, 및 (심볼들과 코딩된 비디오 비트스트림 사이의 임의의 압축이 개시된 발명의 요지에서 고려되는 비디오 압축 기술들에서 무손실이기 때문에) (원격) 디코더가 또한 생성할 샘플 데이터를 생성하기 위해 심볼들을 복원하는 인코더(400)에 내장된 (로컬) 디코더(406)로 구성될 수 있다. 그 복원된 샘플 스트림은 참조 픽처 메모리(405)에 입력된다. 심볼 스트림의 디코딩이 디코더 위치(로컬 또는 원격)에 관계없이 정확한 비트 결과들을 초래하므로, 참조 픽처 버퍼 콘텐츠는 또한 로컬 인코더와 원격 인코더 사이의 정확한 비트이다. 다시 말해서, 인코더의 예측 부분은 디코더가 디코딩 동안 예측을 이용할 때 "보는" 것과 정확히 동일한 샘플 값들을 참조 픽처 샘플들로서 "본다". 참조 픽처 동기화(예를 들어, 채널 에러들 때문에 동기화가 유지될 수 없는 경우 결과적인 드리프트)의 이 기본 원리는 통상의 기술자에게 널리 공지되어 있다.
"로컬" 디코더(406)의 동작은 도 3과 관련하여 위에서 자세하게 이미 설명된 "원격" 디코더(300)의 동작과 동일할 수 있다. 또한 도 4를 간단히 참조하면, 그러나, 심볼들이 이용 가능하고 엔트로피 코더(408) 및 파서(304)에 의한 코딩된 비디오 시퀀스로의 심볼들의 인/디코딩이 무손실일 수 있으므로, 채널(301), 수신기(302), 버퍼(303), 및 파서(304)를 포함한, 디코더(300)의 엔트로피 디코딩 부분들은 로컬 디코더(406)에서 완전히 구현되지 않을 수 있다.
이 지점에서 이루어질 수 있는 관측은 디코더에 존재하는 파싱/엔트로피 디코딩을 제외한, 임의의 디코더 기술이 또한 반드시 대응하는 인코더에 실질적으로 동일한 기능적 형태로 존재할 필요가 있다는 것이다. 인코더 기술들의 설명은 이들이 포괄적으로 설명된 디코더 기술들의 역이므로, 축약될 수 있다. 단지 특정의 영역들에서만, 더 자세한 설명이 필요하며 아래에서 제공된다.
그의 동작의 부분으로서, 소스 코더(403)는 "참조 프레임들"로서 지정된 비디오 시퀀스로부터의 하나 이상의 이전에-코딩된 프레임들을 참조하여 입력 프레임을 예측 코딩하는 모션 보상된 예측 코딩을 수행할 수 있다. 이와 같이, 코딩 엔진(407)은 입력 프레임의 픽셀 블록들과 입력 프레임에 대한 예측 참조(들)로서 선택될 수 있는 참조 프레임(들)의 픽셀 블록들 사이의 차이들을 코딩한다.
로컬 비디오 디코더(406)는 소스 코더(403)에 의해 생성된 심볼들에 기초하여, 참조 프레임들로서 지정될 수 있는 프레임들의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(407)의 동작들은 유리하게는 손실 프로세스들일 수 있다. 코딩된 비디오 데이터가 비디오 디코더(도 4에 미도시)에서 디코딩될 수 있을 때, 복원된 비디오 시퀀스는 전형적으로 일부 에러들을 가진 소스 비디오 시퀀스의 복제본일 수 있다. 로컬 비디오 디코더(406)는 참조 프레임들에 대해 비디오 디코더에 의해 수행될 수 있고 복원된 참조 프레임들이 참조 픽처 캐시(405)에 저장되게 할 수 있는 디코딩 프로세스들을 복제한다. 이와 같이, 인코더(400)는 원단 비디오 디코더(송신 에러들 없음)에 의해 획득될 복원된 참조 프레임들로서 공통 콘텐츠를 갖는 복원된 참조 프레임들의 복사본들을 로컬로 저장할 수 있다.
예측기(404)는 코딩 엔진(407)에 대한 예측 탐색들을 수행할 수 있다. 즉, 코딩될 새로운 프레임에 대해, 예측기(404)는 참조 픽처 메모리(405)에서 (후보 참조 픽셀 블록들로서) 샘플 데이터 또는 참조 픽처 모션 벡터들, 블록 형상들 등과 같은 특정의 메타데이터를 탐색할 수 있으며, 이는 새로운 픽처들에 대한 적합한 예측 참조로서 기능할 수 있다. 예측기(404)는 적합한 예측 참조들을 찾기 위해 샘플 블록-픽셀 블록 단위로 동작할 수 있다. 일부의 경우, 예측기(404)에 의해 획득된 탐색 결과들에 의해 결정되는 바와 같이, 입력 픽처는 참조 픽처 메모리(405)에 저장된 다수의 참조 픽처들로부터 도출된 예측 참조들을 가질 수 있다.
제어기(402)는 예를 들어, 비디오 데이터를 인코딩하는데 사용되는 파라미터들 및 하위 그룹 파라미터들의 설정을 포함한, 비디오 코더(403)의 코딩 동작들을 관리할 수 있다.
모든 전술한 기능 유닛들의 출력은 엔트로피 코더(408)에서 엔트로피 코딩을 거칠 수 있다. 엔트로피 코더는 예를 들어, Huffman 코딩, 가변 길이 코딩, 산술 코딩 등으로서 통상의 기술자에게 알려진 기술들에 따라서 심볼들을 무손실 압축함으로써, 다양한 기능 유닛들에 의해 발생된 심볼들을 코딩된 비디오 시퀀스로 변환한다.
송신기(409)는 인코딩된 비디오 데이터를 저장하는 저장 디바이스로의 하드웨어/소프트웨어 링크일 수 있는 통신 채널(411)을 통한 송신을 준비하기 위해 엔트로피 코더(408)에 의해 생성된 코딩된 비디오 시퀀스(들)를 버퍼링할 수 있다. 송신기(409)는 비디오 코더(403)로부터의 코딩된 비디오 데이터를 송신될 다른 데이터, 예를 들어, 코딩된 오디오 데이터 및/또는 보조 데이터 스트림들(소스들은 미도시)과 병합할 수 있다.
제어기(402)는 인코더(400)의 동작을 관리할 수 있다. 코딩 동안, 제어기(405)는 각각의 코딩된 픽처에, 개별 픽처에 적용될 수 있는 코딩 기법들에 영향을 미칠 수 있는 특정의 코딩된 픽처 유형을 할당할 수 있다. 예를 들어, 픽처들은 종종 다음 프레임 유형들 중 하나로서 할당될 수 있다:
인트라 픽처(I 픽처)는 예측의 소스로서 시퀀스의 임의의 다른 프레임을 이용함이 없이 코딩 및 디코딩될 수 있는 것일 수 있다. 일부 비디오 코덱들은 예를 들어, 독립적인 디코더 리프레시 픽처들을 포함하는, 상이한 유형들의 인트라 픽처들을 허용한다. 통상의 기술자는 I 픽처들의 이들 변형들 및 이들의 개별 애플리케이션들 및 특징들을 알고 있다.
예측 픽처(P 픽처)는 각각의 블록의 샘플 값들을 예측하기 위해 최대 하나의 모션 벡터 및 참조 인덱스를 이용한 인트라 예측 또는 인터 예측을 이용하여 코딩 및 디코딩될 수 있는 것일 수 있다.
양방향 예측 픽처(B 픽처)는 각각의 블록의 샘플 값들을 예측하기 위해 최대 2개의 모션 벡터들 및 참조 인덱스들을 이용한 인트라 예측 또는 인터 예측을 이용하여 코딩 및 디코딩될 수 있는 것일 수 있다. 이와 유사하게, 다중-예측 픽처들은 단일 블록의 복원을 위해 2개보다 많은 참조 픽처들 및 연관된 메타데이터를 이용할 수 있다.
소스 픽처들은 일반적으로 복수의 샘플 블록들(예를 들어, 4 x 4, 8 x 8, 4 x 8, 또는 16 x 16 샘플들의 블록들 각각)로 공간적으로 세분되어 블록 단위로 코딩될 수 있다. 블록들은 블록들의 개별 픽처들에 적용된 코딩 할당에 의해 결정된 바와 같은 다른 (이미 코딩된) 블록들을 참조하여 예측 코딩될 수 있다. 예를 들어, I 픽처들의 블록들은 코딩된 비-예측 코딩될 수 있거나 또는 이들은 동일한 픽처(공간 예측 또는 인트라 예측)의 이미 코딩된 블록들을 참조하여 예측 코딩될 수 있다. P 픽처들의 픽셀 블록들은 공간 예측을 통해서 또는 시간 예측을 통해서, 하나의 이전에 코딩된 참조 픽처들을 참조하여, 비-예측 코딩될 수 있다. B 픽처들의 블록들은 하나 또는 2개의 이전에 코딩된 참조 픽처들을 참조하여, 공간 예측을 통해서 또는 시간 예측을 통해서, 비-예측 코딩될 수 있다.
비디오 코더(400)는 ITU-T 권고안 H.265와 같은, 미리 결정된 비디오 코딩 기술 또는 표준에 따라서 코딩 동작들을 수행할 수 있다. 그의 동작에서, 비디오 코더(400)는 입력 비디오 시퀀스에서 시간 및 공간 리던던시들을 이용하는 예측 코딩 동작들을 포함한, 다양한 압축 동작들을 수행할 수 있다. 따라서, 코딩된 비디오 데이터는 사용중인 비디오 코딩 기술 또는 표준에 의해 규정된 신택스를 따를 수 있다.
일 실시형태에서, 송신기(409)는 인코딩된 비디오와 함께 추가적인 데이터를 송신할 수 있다. 소스 코더(403)는 이러한 데이터를 코딩된 비디오 시퀀스의 부분으로서 포함할 수 있다. 추가적인 데이터는 시간/공간/SNR 향상 계층들, 여분의 픽처들 및 슬라이스들과 같은 다른 형태들의 여분의 데이터, 보충 향상 정보(SEI) 메시지들, 시각적 유용성 정보(VUI) 파라미터 세트 단편들 등을 포함할 수 있다.
도 5는 DASH 및 공통 미디어 애플리케이션 포맷(CMAF) 이벤트들을 프로세싱하기 위한 클라이언트 샘플 아키텍처와 같은 샘플 DASH 클라이언트 프로세싱 모델(500)을 나타내며, 여기서, 미디어 세그먼트들의 클라이언트 요청은 클라이언트가 메타데이터 트랙들의 세그먼트들에 액세스하고, 이들을 파싱하고, 이들을 애플리케이션으로 전송할 수 있는 메타데이터 트랙들을 또한 기술한 매니페스트에서의 기술된 어드레스들에 기초할 수 있다. 또한, 아래에서 설명되는 바와 같은 미디어 세그먼트들에 대한 어드레스들의 예시적인 실시형태들에 따르면, DASH 매니페스트는 인덱스 세그먼트들에 대한 어드레스들을 제공할 수 있다. 각각의 인덱스 세그먼트는 하나의 세그먼트 지속기간 및 사이즈에 관한 정보를 제공할 수 있으며, 표현 인덱스는 주어진 표현의 모든 세그먼트들에 대한 인덱스 정보를 제공할 수 있다.
도 6은 임의의 주어진 적응 세트와 같은, 적응 세트 세그먼트 인덱싱을 위한 메타데이터 트랙의 샘플에 대한 예(600)를 나타낸다. 예를 들어, 순시 세그먼트 대역폭이 시그널링될 것으로 예상되는 각각의 적응 세트(AS)에 대해, 별개의 적응 세트가 또한 도 6에 나타낸 바와 같이, 매니페스트에 포함될 수 있다.
도 6에 나타낸 바와 같이, 이들의 세그먼트들이 타이밍 정렬된 k 미디어 표현을 가진 AS i의 경우, 새로운 적응 세트 AS 인덱스가 단일 표현을 포함하는 매니페스트에 추가된다. 이 단일 표현은 자신의 세그먼트들이 또한 AS i 표현들의 세그먼트들과 타이밍 정렬된 타이밍된 메타데이터 트랙이다.
도 7은 예시적인 실시형태들에 따른 콤보 인덱스 세그먼트 예(700)를 나타내며, 그 안의 각각의 세그먼트는 다음 특성들을 가질 수 있다: (1) (ISO/IEC 14496-12에 정의된 바와 같은) ISO 기본 미디어 파일 포맷(ISOBMFF) "styp" 박스로 시작하는 브랜드 'cisx'를 식별해야 하며, 이는 모든 트랙들에 대한 조합 인덱스 세그먼트 박스이며, (2) 순서 0, 1, 2, ..., K-1로, k 'sidx' 박스들을 포함해야 하며 각각은 참조된 적응 세트의 하나의 표현 0, 1, 2, ..., K-1에 그 순서대로 각각 대응하며, 그리고 (3) 각각의 sidx 박스는 대응하는 표현의 전체 세그먼트의 지속기간 및 사이즈를 포함해야 한다. 예시적인 실시형태들에 따르면, 코덱들을 시그널링하는데 사용되는 MIME-유형 파라미터들을 정의하는 구현예들에 대한 ISOBMFF 세그먼트 포맷들은, 미디어 소스 확장부들의 바이트 스트림 포맷 섹션에 의해 요구되는 바와 같은 초기화 세그먼트들, 미디어 세그먼트들, 및 무작위 액세스 지점들에 대한 필요한 포맷 특정의 정의들을 제공한다.
도 8은 예컨대, 이하의 구조를 가진 재동기화 인덱스 세그먼트를 도입하는 낮은 지연 모드에 대한 재동기화 인덱스 세그먼트 예(800)를 나타낸다: R0는 (1) 브랜드 'rpis'를 가진 ISOBMFF 'styp' 박스로 시작해야 하며, (2) 데이지-체인화되어 그레쥬에이트되고(graduated), 각각의 청크 인코딩이 완료될 때 세그먼트에 추가되는 일련의 sidx 박스들을 포함해야 하며, 그리고 (3) 각각의 sidx 박스는 미디어 세그먼트에서 출현의 순서로, 지속기간, 사이즈, 및 대응하는 미디어 세그먼트의 하나의 청크의 시작 SAP 유형을 포함해야 하는 것이다.
도 9는 예컨대, 이하의 구조를 가진 콤보-재동기화 인덱스 세그먼트가 도입되는 낮은 지연 모드에 대한 콤보 재동기화 인덱스 세그먼트 예(900)를 나타낸다: (1) 브랜드 'rpis'를 가진 ISOBMFF 'styp' 박스로 시작해야 하며, (2) 순서 0,1, 2, ..., K-1로 일련의 sidx 박스들을 포함해야 하며, 각각이 참조된 적응 세트의 하나의 표현 0, 1, 2, ..., K-1에 각각 그리고 그 순서로 대응하며 (그리고 예시적인 실시형태들에 따르면, 각각의 sidx 박스는 하나의 참조 카운트를 가진 버전 0 하나의 레벨 sidx 박스들로서 고정된 길이를 가지며, 각각의 박스는 동일한 순서로 순서화된 동일한 표현의 다음 청크들의 다음 sidx 박스를 가리킴), 및 (3) 각각의 sidx 박스는 지속기간, 사이즈, 및 대응하는 미디어 세그먼트의 하나의 청크의 시작 SAP 유형을, 미디어 세그먼트에서 출현의 순서로, 포함해야 한다.
예시적인 실시형태들에 따르면, 메타데이터 트랙은 매니페스트에서의 별개의 적응에 포함될 수 있으며 이 적응 세트는 이하의 제약들을 가져야 한다: (1) 참조된 미디어 적응 세트의 동일한 어드레싱 방식이 이 표현에 사용되어야 하며 (그리고 참조된 적응 세트의 표현들이 다양한 어드레싱 방식들을 가지면, 표현들 어드레싱 방식 중 하나가 메타데이터 트랙 표현에 사용되어야 하며), (2) 메타데이터 트랙의 세그먼트들의 수가 참조된 적응 세트에서의 임의의 표현의 세그먼트들의 최고 수와 동일하여야 하며, (3) 메타데이터 트랙의 적응 세트가 MIME 유형의 메타데이터로서 시그널링되어야 하며 특정의 식별자가 이 콤보-인덱스 세그먼트 트랙을 시그널링하는데 @codec에 사용되어야 하며, (4) 표현 트랙이 메타데이터 뿐만 아니라, 콤보 인덱스 세그먼트, 콤보 reync 인덱스 세그먼트, 최종 재동기화 인덱스 세그먼트를 가진 콤보 인덱스 세그먼트 중 하나인 인덱스 세그먼트 유형으로서 시그널링되어야 하며, (5) 참조된 적응 세트 id가 uri:mpeg:dash:sidxtrack:2020와 같은 특정의 schemeIdUri와 함께, 메타데이터 트랙 적응 세트의 보충 디스크립터의 값 필드에 포함되어야 하며, 그리고 (6) 메타데이터 표현 id가 이들의 어드레싱 방식들이 동일한 참조된 적응 세트의 표현과 동일하여야 한다.
도 10은 표현마다 별개의 세그먼트 인덱스를 갖는 DASH 클라이언트 프로세싱 모델에 대한 예시적인 플로우차트(1000)를 예시하며, 여기서, 예시적인 실시형태들에 따르면, 콤보 인덱스 세그먼트 트랙들 없이 세그먼트 지속기간 및 사이즈들을 취출하는 것이 가능하며, 그리고 각각의 표현이 또한 매니페스트에 정의된 인덱스 세그먼트를 가지면, DASH 클라이언트 프로세싱 모델은 다음과 같을 수 있다: S1001에서, 다음 고려사항들에 의한 라이브 스트림의 참여 시간의 선택이 있으며: (J: 평균 지속기간 및 가능한 대역폭 변동들을 가진 세그먼트들의 수에 기초한 입력 버퍼의 사이즈; 및 L: 메타데이터 트랙에서 미리보기를 허용하는 세그먼트들의 수. L은 0 내지 임의의 양의 수일 수 있다. (L*average_duration)가 플레이백에 추가된다는 점에 유의한다.), S1002에서, J 및 L에 기초한 라이브 스트림의 참여 시간의 발견이 있으며, 그리고 S1003에서, 표현마다 L 인덱스 세그먼트들의 다운로딩, 따라서, L*K 다운로드들이 있으며, S1004에서, L*K 인덱스 세그먼트들의 sidx 박스들의 파싱이 있으며 (하기) 표 1의 사이즈/지속기간 세그먼트를 생성하며, 그리고 S1005에서, 표 1의 관점에서, 다음 M 세그먼트들(M<L)에 대해, 입력 버퍼가 오버플로되지 않으면서 최상의 품질이 달성되는 표현(들)로의 스위칭의 계산이 있으며, S1006에서, 다음 미디어 세그먼트 및 L+1 메타데이터 세그먼트의 다운로딩이 있으며 (이후 S1007에서, 프로세싱 및 플레이가 있을 수 있으며), S1008에서, 표 1에 따른 업데이트가 있으며, 그리고 S1009에서, 네트워크 대역폭 변화(들)를 고려한 결정의 조정이 있으며, 그리고 이후 도 10에 나타낸 바와 같이 S1005로 다시 진행한다.
나타낸 바와 같이, 표현의 인덱스 세그먼트 대신 콤보-인덱스 세그먼트 트랙을 이용하는 차이는 각각의 세그먼트 요청 전에, DASH 클라이언트가 K 인덱스 세그먼트들을 요청한다는 것이다. K가 큰 수이면, 추가적인 요청들의 수는 비효율적일 수 있다.
표 1 - 교차 표현 세그먼트 지속기간-사이즈 표
도 11은 콤보 세그먼트 인덱스 트랙을 갖는 DASH 클라이언트 프로세싱 모델에 대한 예시적인 플로우차트(1100)를 예시하며, 여기서, 예시적인 실시형태들에 따르면: S1001에서, 라이브 스트림의 참여 시간의 선택이 있으며 (다음 고려사항들에 따라: J: 평균 지속기간 및 가능한 대역폭 변동들을 가진 세그먼트들의 수에 기초한 입력 버퍼의 사이즈, 및 L: 메타데이터 트랙에서 미리보기를 허용하는 세그먼트들의 수. L은 0 내지 임의의 양의 수일 수 있다. (L*average_duration)가 플레이백에 추가된다는 점에 유의한다.), S1102에서, J 및 L에 기초한 라이브 스트림의 참여 시간의 발견이 있으며, S1103에서, 라이브 에지로부터 콤보-인덱스 세그먼트 트랙에서 L 세그먼트들의 다운로드가 있으며, S1104에서, L 세그먼트들의 sidx 박스들의 파싱이 있으며 표 1의 사이즈/지속기간 세그먼트를 생성하고, S1105에서, 표 1의 관점에서, 다음 M 세그먼트들(M<L)에 대해, 입력 버퍼가 오버플로되지 않으면서 최상의 품질이 달성되는 표현(들)으로의 스위칭의 계산이 있으며, S1106에서, 다음 미디어 세그먼트 및 L+1 메타데이터 세그먼트의 다운로딩이 있으며 (이후 S1107에서, 프로세싱 및 플레이가 있을 수 있으며), S1108에서, 표 1에 따른 업데이트가 있으며, 그리고 S1109에서 네트워크 대역폭 변화(들)를 고려한 결정의 조정이 있으며, 그리고 그후 도 11에 나타낸 바와 같이 S1105로 다시 진행한다.
나타낸 바와 같이, DASH 클라이언트는 도 6의 데이터로부터의 K 인덱스 세그먼트 요청과 비교하여, 미디어 세그먼트 요청마다 하나의 콤보 인덱스 세그먼트 요청을 행할 수 있다. 따라서, 특히 큰 K의 경우, 이러한 예시적인 실시형태들은 매우 효율적이다.
또한, 예를 들어 낮은 지연의 DASH 클라이언트 프로세싱 모델에 대한 예시적인 실시형태들에 따르면, 낮은 지연 경우에 순시 청크 대역폭 적응과 함께 또한 사용될 수 있는 메타데이터 트랙이 있을 수 있으며, 이러한 경우에서와 같이, 메타데이터 샘플은 모든 표현들의 인덱스 세그먼트들 및 재동기화 인덱스 세그먼트들을 포함할 수 있다. 이러한 실시형태들을 고려할 때, 2개의 가능한 변형들이 고려될 수 있다: (a) 혼합된 콤보 인덱스 트랙: 각각의 세그먼트가 최종 세그먼트가 점진적으로 첨부되는 콤보 재동기화 인덱스 세그먼트일 수 있도록 최종 세그먼트(라이브 에지에서의 세그먼트) 이외의 대응하는 세그먼트의 sidx 박스들을 포함하고 그리고 대응하는 미디어 세그먼트가 완료될 때, 콤보-재동기화 세그먼트가 콤보-인덱스 세그먼트로 대체되는 단일 메타데이터 트랙, 및 (b) 규칙적이고 낮은 지연 콤보 트랙들: 콤보 인덱스 세그먼트들을 가진 트랙, 및 콤보 재동기화 인덱스 세그먼트들을 가진 트랙, 2개의 메타데이터 트랙들의 적응 세트들.
낮은 지연 모드에서 동작하는 클라이언트의 경우, 실시형태들은 다른 클라이언트가 규칙적인 콤보 트랙으로부터 세그먼트들을 스트리밍하는 동안 낮은 지연 콤보 트랙으로부터 세그먼트들을 스트리밍할 수 있다. 대안적으로, 단지 혼합된 콤보 인덱스 트랙이 제공되면, 규칙적인 그리고 낮은 지연 클라이언트들 둘 모두는 동일한 트랙으로부터 스트리밍할 수 있다.
예시적인 실시형태들에 따르면, 콤보-인덱스 트랙은 이하의 구조들을 가진 ISOBMFF 타이밍된 메타데이터 트랙이다. 헤더는 이하의 정보를 포함한다: (1) 트랙 4CC 식별자, (2) 스위칭 세트에서의 트랙들의 수, (3) 스위칭 세트의 트랙들의 트랙 식별자들, (4) 임의로, 트랙들, 세그먼트들, 및 청크들의 품질을 측정하는 품질 메트릭 식별자, 및 (5) 각각의 트랙의 품질이 상기 품질 메트릭을 이용하여 다른 트랙들과 비교됨. 메타데이터 세그먼트들은 이하의 특성들을 갖는다: (1) 모든 세그먼트들이 대응하는 스위칭 세트의 세그먼트들과 타이밍 정렬되고, (2) 모든 청크들이 대응하는 스위칭 세트의 청크들과 타이밍 정렬되고, 그리고 (3) 모든 세그먼트들이 이들의 브랜드에서 4CC 식별자를 갖는다. 각각의 메타데이터 샘플은 이하의 특성들을 갖는다: (1) 시간 메타데이터 트랙에서의 각각의 샘플이 무작위 액세스 샘플이고, 그리고 (2) 각각의 샘플이 다음 정보를 갖는다: (a) 대응하는 미디어 세그먼트들/청크들의 SAP 유형, (b) 미디어 세그먼트들/청크가 이벤트 및 prft 박스들과 같은 최고-레벨 박스들을 갖는다는 표시, (c) 세그먼트들 및 청크들의 지속기간을 측정하는 시간 척도, (d) 지속기간이 알려져 있는 경우 플래그, (e) 지속기간이 정확한 경우 플래그, (f) 지속기간의 퍼센티지에서의 최대 지속기간 변동, (g) 메타데이터 트랙 헤더에 정의된 시간척도에서의 대응하는 미디어 세그먼트들/청크들의 지속기간, (h) 이 트랙에서 정의된 특정의 순서로 각각의 트랙의 각각의 대응하는 세그먼트/청크의 사이즈, 및 (e) 선택적으로, 다른 세그먼트들/청크와 비교한 트랙의 대응하는 세그먼트/청크의 품질.
예시적인 실시형태들에 따르면, 콤보-인덱스 트랙은 매니페스트에서의 별개의 적응에 포함되며, 이 콤보-인덱스 적응 세트는 이하의 제약들을 가져야 한다: (1) 참조된 미디어 적응 세트의 동일한 어드레싱 방식이 이 표현에 사용되어야 하며 (참조된 적응 세트의 표현들이 다양한 어드레싱 방식들을 가지면, 표현들 어드레싱 방식 중 하나가 메타데이터 트랙 표현에 사용되어야 하며), (2) 콤보-인덱스 트랙의 청크들/세그먼트들의 수가 참조된 적응 세트에서의 임의의 표현의 청크들/세그먼트들의 수와 같아야 하며, (3) 메타데이터 트랙의 적응 세트가 MIME 유형의 콤보-인덱스 트랙으로서 시그널링되어야 하며 특정의 식별자가 이 콤보-인덱스 세그먼트 트랙을 시그널링하기 위해 @codec에 사용되어야 하며, (4) 표현 트랙이 메타데이터 뿐만 아니라, 콤보-인덱스 트랙으로서 시그널링되어야 하며, (5) 참조된 적응 세트 id가 uri:mpeg:dash:comboindex:2020와 같은, 특정의 schemeIdUri와 함께, 콤보-인덱스 적응 세트에서의 보충 디스크립터의 값 필드에 포함되어야 하며, 그리고 (6) 메타데이터 표현 id가 이들의 어드레싱 방식들이 동일한 참조된 적응 세트의 표현과 동일해야 한다.
도 12는 도 12에 나타낸 바와 같이 정의될 수 있는, 매니페스트 제약들의 가능한 구현예를 나타내는, 샘플 엔트리(1200)를 예시하며, 이러한 샘플들은 도 13에 나타낸 신택스(1300)와 같은 신택스를 가질 수 있으며 그리고 다음 시맨틱들을 가질 수 있다: "num_tracks" 스위칭 세트에서의 트랙들의 수; "track_id"는 샘플들에서의 track_ids의 순서정렬을 제공하며; "quality_indicator_flag"는 특정의 품질 표시자가 청크의 품질을 식별하는데 사용되는지를 식별하며; "quality_identifier" 트랙들 및 샘플의 품질이 해석될 것으로 예상되는 품질 메트릭을 표시하는 URI; "segment_start_flag"는 이 청크가 세그먼트의 시작과 동일한지, 즉 청크가 세그먼트의 시작인지를 식별하며; "SAP_type"는 SAP 유형을 식별한다. 0이면, 청크는 SAP에서 시작하지 않으며; 마커는 이 청크가 styp를 포함하는 마커를 포함하는지를 식별하며; "emsg_flag"는 이 청크가 임의의 emsg 박스들을 포함하는지를 식별하며; "prft_flag" 이 청크가 prft 박스들을 포함하는지를 식별하며; "known_duration_flag"는 이 청크의 지속기간이 알려져 있는지를 식별한다. 이 플래그가 '거짓'이면, 플래그들 exact_duration_flag와, duration_variation, 지속기간, 및 시간척도 필드들의 값들이 무시되어야 하며; "exact_duration_flag"는 지속기간의 값이 정확한지, 즉, 지속기간이 이 청크의 공칭 지속기간이 아닌지를 식별하며 (이 플래그가 '참'이면, duration_variation의 값 필드는 무시되어야 하며); "duration_variation"는 지속기간의 최대 변동(더 짧거나 또는 더 긴 변동)을 퍼센티지로 식별한다(이 값은 100보다 커서는 안된다). 100보다 큰 값은 100의 값으로 프로세싱된다); 시간척도 스케일에서 청크의 "지속기간(duration)" 지속기간, 즉 지속기간을 시간척도로의 분할은 청크의 지속기간을 초로 제공하며; "시간척도(timescale)"는 이 박스 내 지속기간 필드에 대해, 시간척도를, 초당 틱으로 제공하며; 이는 참조된 스위칭 세트에서의 하나의 트랙의 시간척도와 매칭하는 것이 권장되며, first_offset는 시퀀스의 시작으로부터의 청크의 오프셋을 식별하며; "오프셋(offset)"은 세그먼트 시작으로부터의 청크의 바이트 오프셋을 식별하고; 사이즈는 청크의 옥텟들에서의 사이즈를 제공하며; "품질(quality)"은 품질 방식에 따라서 청크의 품질을 제공하며(품질 방식이 부재이면, 품질은 값이 증가함에 따라 품질이 증가하는 것으로 선형적으로 해석되며); "손실(missing)"은 청크가 손실 중이고 요청되지 않아야 함을 식별한다.
예시적인 실시형태들에 따르면, 콤보-인덱스 세그먼트들은 미디어의 인코딩과 함께, 위에서 설명한 바와 같은 인코더(들)에 의해 생성될 수 있으며, 이러한 경우, 인코더(들)가 각각의 세그먼트/청크의 정확한 지속기간을 가질 수 있으므로, 이 값은 메타데이터 샘플들에 포함될 수 있다. 그러나, 패키저는 또한 이 콤보-인덱스 트랙을 인코더로부터의 수신된 세그먼트들에 기초하여 생성할 수 있다. 이러한 경우, 패키저의 능력에 따라서, 이하의 시나리오들 중 임의의 시나리오가 다음과 같이 이용될 수 있다: (a) 각각의 세그먼트/청크의 정확한 지속기간이 알려져 있으며, 따라서 패키저는 콤보-인덱스 메타데이터 샘플에 정확한 지속기간을 삽입하며, (b) 정확한 지속기간이 알려져 있지 않으며, 따라서 패키저는 단지 세그먼트들/청크들의 사이즈만을 계산하고 이들을 메타데이터 샘플에 포함시키고 그리고 지속기간이 알려져 있지 않다는 플래그를 설정하며, (c) 정확한 지속기간이 알려져 있지 않으며 공칭 지속기간, 아마도 지속기간 변동의 최대 범위는 패키저에 알려져 있으며, 따라서 패키저들은 이 값들을 메타데이터 샘플에 포함시킨다.
이와 같이, 예시적인 실시형태들에 따르면, 인덱스 세그먼트들을 이용하여, 저 레이턴시 경우, 재동기화 인덱스 세그먼트들로, DASH 클라이언트로의 대역폭 캡 시그널링을 위한 방법이 있다. 성능을 향상시키기 위해, 또한 라이브 스트리밍에 결합된 인덱스 트랙이 도입되었으며, DASH 클라이언트는 상기 수단 중 임의의 수단을 이용하여, 순시 세그먼트 대역폭을 찾고 그의 입력 버퍼를 오버플로하지 않으면서 최상의 품질을 제공하는 최상의 표현으로 스위칭할 수 있다. 또한, 클라이언트가 모든 트랙들에 대한 대역폭 요구사항들의 갑작스러운 변화들을 동시에 관찰하고 위에서 설명된 다양한 기준들에 따라 필요한 경우 다른 트랙으로 스위칭하는 조치를 취할 수 있도록, 스트리밍 클라이언트로의 다양한 트랙 순시 대역폭 변화들의 시그널링이 제공된다. 따라서, 본원에서 실시형태들은 결합된 세그먼트 및 동일한 적응 세트/스위칭 세트에서의 모든 트랙들의 청크 지속기간 및 사이즈들을 포함하는 메타데이터 트랙을 이용한, DASH 클라이언트로의 순시 대역폭 변화 시그널링을 위한 MPEG DASH의 메타데이터 트랙을 향상시키며, DASH 클라이언트는 상기 수단 중 임의의 수단을 이용하여 순시 세그먼트 대역폭을 찾고 그의 입력 버퍼로의 오버플로 없이 최상의 품질을 제공하는 최상의 표현으로 스위칭할 수 있다.
예를 들어, 순시 세그먼트 대역폭 정보를 제공하는 메타데이터 트랙을 생성하는 것 - 여기서, 하나의 미디어 적응 세트의 모든 정렬된 세그먼트들의 정보는 메타데이터 트랙의 단일 세그먼트에 제공됨 -; 조합 인덱스 세그먼트를 생성하는 것 - 여기서, 모든 표현들 정렬된 세그먼트들의 모든 인덱스 정보는 하나의 인덱스 세그먼트에 결합됨 -; 하나의 세그먼트의 청크들의 특성들을 세그먼트 인덱스로서 시그널링하는 재동기화 인덱스 세그먼트를 생성하는 것 - 여기서, 재동기화 세그먼트는 미디어 청크들과 함께 점진적으로 발생될 수 있고 클라이언트로 점진적으로 전달 수 있으며, 따라서 클라이언트는 낮은 지연 스트리밍에서 청크 경계들에서의 스위칭을 위해 이를 이용할 수 있음 -; 콤보-재동기화 인덱스 세그먼트들을 생성하는 것 - 하나의 적응 세트의 모든 표현들의 모든 정렬된 세그먼트들의 청크 재동기화 정보는 인덱스 세그먼트에 포함되고 클라이언트로 점진적으로 송신되어, 클라이언트가 낮은 지연 스트리밍에서 청크들 사이에 스위칭할 수 있음 -; 인코딩 중인 최종 세그먼트 이외의 모든 세그먼트에 대해 콤보 인덱스 세그먼트 포맷 및 현재 인코딩 중인 세그먼트에 대한 콤보 재동기화 세그먼트 포맷을 이용하는 혼합된 콤보 인덱스 트랙들을 생성하는 것; 콤보 인덱스 세그먼트들로 구성되는 규칙적인 스트리밍 동작을 위한 2개의 병렬 메타데이터 트랙들 및 콤보 재동기화 인덱스 세그먼트들로 구성되는 다른 트랙을 생성하는 것; DASH 클라이언트가 각각의 표현의 순시 대역폭을 모니터링하기 위해 모든 표현의 세그먼트 인덱스에서의 정보를 이용하고, 그리고 비트레이트 피크들 및 밸리들을 고려한 표현 사이를 스위칭하기 위해, 그리고 현재의 대역폭, 버퍼 충만도 뿐만 아니라 다수의 표현들에 걸친 세그먼트 사이즈에 기초하여 표현 적응적 선택을 최적화하기 위해, 이를 이용할 수 있는 방법들; 클라이언트가 모든 표현들의 순시 대역폭을 좀더 효율적으로 측정하기 위해 상기를 추가로 이용하는 것; 이의 낮은 지연 동작을 위해 상기를 추가로 이용하여, DASH 클라이언트들로 하여금 낮은 지연 모드에서 동작 가능하게 하는 것; 및 규칙적인 및 낮은 지연 클라이언트들 둘 모두로 하여금 하나의 트랙 또는 2개의 트랙들과 함께 동작 가능하게 하기 위해, 상기를 추가로 이용하는 것 중 임의의 것이 있을 수 있다.
또한, 순시 세그먼트 대역폭 및 품질 정보를 제공하기 위한 타이밍된 메타데이터 트랙을 생성하는 것 - 여기서, 하나의 미디어 적응 세트의 모든 정렬된 세그먼트들의 정보는 메타데이터 트랙의 단일 세그먼트에서 제공되며, 모든 대응하는 세그먼트 및/또는 청크들의 지속기간 및 사이즈 정보는 샘플에 포함됨 -; 청크의 사이즈와 함께 메타데이터 샘플에서 하나의 세그먼트의 청크들의 특성들을 시그널링하기 위한 재동기화 청크 인덱스들을 생성하는 것 - 여기서, 메타데이터 샘플은 미디어 청크들과 함께 점진적으로 발생될 수 있고 클라이언트로 점진적으로 전달될 수 있으며, 따라서 클라이언트는 낮은 지연 스트리밍에서 청크 경계들에서의 스위칭을 위해 이를 이용할 수 있음 -; 클라이언트가 모든 미디어 트랙들에 걸쳐 순시 품질을 비교할 수 있도록, 상기 방법들에서 세그먼트들 및/또는 청크들의 상대적인 품질을 이용하는 것; 정렬된 세그먼트 또는 정렬된 청크들의 지속기간이 정렬된 세그먼트들 또는 청크들 각각의 세트마다 알려져 있는지를 시그널링하고, 알려져 있으면 공칭 또는 정확한 지속기간을 시그널링하고, 시그널링된 지속기간이 정확한지 또는 공칭인지를 시그널링하고, 그리고 공칭이면, 지속기간의 최대 변동을 시그널링하는 것; 클라이언트가 낮은 지연 스트리밍에서 청크들 사이에 스위칭할 수 있도록, 생성될 인덱스 세그먼트들을 점진적으로 생성하고 클라이언트로 점진적으로 송신하는 것; 메타데이터 트랙을 생성하는 것 - 여기서, 최종 세그먼트를 제외한 모든 세그먼트들은 상기 중 하나인 반면, 최종 세그먼트는 라이브 에지에서 인코딩되고 상기 다른 특징들을 이용하여 생성되고 있는 세그먼트에 대응함 -; 하나는 상기 특징들을 이용하고 하나는 상기 다른 특징들을 이용하는 2개의 병렬 메타데이터 트랙들을 생성하고, 매니페스트에서 이들 트랙들을 시그널링하는 것; DASH 클라이언트가 각각의 표현의 순시 대역폭을 모니터링하기 위해 상기 메타데이터 트랙 세그먼트들에서의 정보를 이용하고, 비트레이트 피크들 및 밸리들을 고려한 표현 사이의 스위칭을 위해, 그리고 현재의 대역폭, 버퍼 충만도 뿐만 아니라 다수의 표현들에 걸친 세그먼트 사이즈에 기초하여 표현 적응적 선택을 최적화하기 위해, 이를 이용하는 것; 모든 표현들의 순시 대역폭을 좀더 효율적으로 측정하는 것; 낮은 지연 동작을 위해 클라이언트가 모든 표현들의 순시 대역폭을 좀더 효율적으로 측정하는 것; 및 규칙적인 및 낮은 지연 클라이언트들 둘 모두가 하나의 트랙 또는 2개의 트랙들과 함께 동작 가능하게 하는 것이 또한 있을 수 있다.
위에서 설명된 기법들은 컴퓨터-판독가능 명령어들을 이용하여 컴퓨터 소프트웨어로서 구현될 수 있으며, 하나 이상의 컴퓨터-판독가능 매체들에 또는 구체적으로 구성된 하나 이상의 하드웨어 프로세서들에 의해 물리적으로 저장될 수 있다. 예를 들어, 도 14는 개시된 발명의 요지의 특정의 실시형태들을 구현하는데 적합한 컴퓨터 시스템(1400)을 나타낸다.
컴퓨터 소프트웨어는 컴퓨터 중앙 처리 유닛들(CPUs), 그래픽 프로세싱 유닛들(GPUs) 등에 의해, 직접, 또는 해석, 마이크로-코드 실행 등을 통해서, 실행될 수 있는 명령어들을 포함하는 코드를 생성하기 위해 어셈블리, 편집, 링킹(linking), 또는 유사한 메커니즘들을 거칠 수 있는, 임의의 적합한 기계 코드 또는 컴퓨터 언어를 이용하여 코딩될 수 있다.
명령어들은 예를 들어, 개인용 컴퓨터들, 태블릿 컴퓨터들, 서버들, 스마트폰들, 게이밍 디바이스들, 사물 인터넷 디바이스들 등을 포함한, 다양한 유형들의 컴퓨터들 또는 이들의 컴포넌트들 상에서 실행될 수 있다.
컴퓨터 시스템(1400)에 대한 도 14에 나타낸 컴포넌트들은 본질적으로 예시적이며, 본 개시내용의 실시형태들을 구현하는 컴퓨터 소프트웨어의 용도 또는 기능성의 범위에 대한 어떠한 제한도 제안하도록 의도되지 않는다. 컴포넌트들의 구성은 컴퓨터 시스템(1400)의 예시적인 실시형태에 예시된 컴포넌트들의 임의의 하나 또는 조합에 관한 임의의 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
컴퓨터 시스템(1400)은 특정의 인간 인터페이스 입력 디바이스들을 포함할 수 있다. 이러한 인간 인터페이스 입력 디바이스는 예를 들어, 촉각 입력(예컨대: 키스트로크들, 스와이프들, 데이터 글러브 이동들), 오디오 입력(예컨대: 보이스, 박수), 시각적 입력(예컨대: 제스처들), 후각 입력(미도시됨)을 통해, 하나 이상의 인간 사용자들에 의한 입력에 응답할 수 있다. 인간 인터페이스 디바이스들은 또한 오디오(예컨대: 음성, 음악, 주변 사운드), 이미지들(예컨대: 스캔된 이미지들, 정지 화상 카메라로부터 획득된 사진 이미지들), 비디오(예컨대, 2차원 비디오, 입체 비디오를 포함하는 3차원 비디오)와 같은, 인간에 의한 의식적인 입력에 반드시 직접 관련되지는 않은 특정의 미디어를 캡처하는데 사용될 수 있다.
입력 인간 인터페이스 디바이스들은 키보드(1401), 마우스(1402), 트랙패드(1403), 터치 스크린(1410), 조이스틱(1405), 마이크로폰(1406), 스캐너(1408), 카메라(1407)(각각 하나만 도시됨) 중 하나 이상을 포함할 수 있다.
컴퓨터 시스템(1400)은 또한 특정의 인간 인터페이스 출력 디바이스들을 포함할 수 있다. 이러한 인간 인터페이스 출력 디바이스들은 예를 들어, 촉각 출력, 사운드, 광, 및 냄새/미각을 통해, 하나 이상의 인간 사용자들의 감각들을 자극할 수 있다. 이러한 인간 인터페이스 출력 디바이스들은 촉각 출력 디바이스들(예를 들어, 터치-스크린(1410), 또는 조이스틱(1405)에 의한 촉각 피드백이지만, 또한 입력 디바이스들로서 기능하지 않는 촉각 피드백 디바이스들도 있을 수 있음), 오디오 출력 디바이스들(예컨대: 스피커들(1409), 헤드폰들(미도시됨)), 시각적 출력 디바이스들(예컨대, CRT 스크린들, LCD 스크린들, 플라즈마 스크린들, OLED 스크린들을 포함하되, 각각이 터치-스크린 입력 능력이 있거나 없고, 각각이 촉각 피드백 능력이 있거나 또는 없으며-이중 일부는 입체 출력과 같은 수단을 통해 2차원 시각적 출력 또는 3차원 초과의 출력을 출력할 수 있는, 스크린들(1410)); 가상-현실 안경(미도시됨), 홀로그램 디스플레이들 및 연기 탱크들(미도시됨)), 및 프린터들(미도시됨)을 포함할 수 있다.
컴퓨터 시스템(1400)은 또한 CD/DVD(1411) 또는 유사 매체들과 함께 CD/DVD ROM/RW(1420)를 포함하는 광학 매체들, 썸(thumb)-드라이브(1422), 이동식 하드 드라이브 또는 솔리드 스테이트 드라이브(1423), 테이프 및 플로피 디스크(미도시됨)와 같은 레거시 자기 매체들, 보안 동글들(미도시됨)과 같은 특수 ROM/ASIC/PLD 기반의 디바이스들 등과 같은, 인간 액세스가능한 저장 디바이스들 및 이들의 연관된 매체들을 포함할 수 있다.
통상의 기술자들은 또한 용어 "컴퓨터 판독가능 매체들"이 현재 개시된 발명의 요지와 관련하여 사용될 때 송신 매체들, 반송파들, 또는 다른 일시적 신호들을 포함하지 않는 것으로 이해해야 한다.
컴퓨터 시스템(1400)은 또한 하나 이상의 통신 네트워크들(1498)에 대한 인터페이스(1499)를 포함할 수 있다. 네트워크들(1498)은 예를 들어, 무선, 유선, 광학일 수 있다. 네트워크들(1498)은 추가적으로 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용 등일 수 있다. 네트워크들(1498)의 예들은 이더넷, 무선 LAN들과 같은 근거리 네트워크들, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크들, 케이블 TV, 위성 TV, 및 지상 브로드캐스트 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크들, CANBus을 포함하는 차량 및 산업 등을 포함한다. 특정의 네트워크들(1498)은 일반적으로 특정의 범용 데이터 포트들 또는 주변장치 버스들(1450 및 1451)(예컨대, 예를 들어, 컴퓨터 시스템(1400)의 USB 포트들에 부착된 외부 네트워크 인터페이스 어댑터들을 필요로 하며; 다른 것들은 일반적으로 아래에서 설명되는 바와 같이 시스템 버스에의 부착에 의한 컴퓨터 시스템(1400)의 코어에 통합된다(예를 들어, PC 컴퓨터 시스템으로의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템으로의 셀룰러 네트워크 인터페이스). 이들 네트워크들(1498) 중 임의의 것을 이용하여, 컴퓨터 시스템(1400)은 다른 엔티티들과 통신할 수 있다. 이러한 통신은 예를 들어, 로컬 또는 광역 디지털 네트워크들을 이용한 다른 컴퓨터 시스템들로의, 단방향 수신 전용(예를 들어, 브로드캐스트 TV), 단방향 전송 전용(예를 들어, CANbusto 특정의 CANbus 디바이스들), 또는 양방향일 수 있다. 특정의 프로토콜들 및 프로토콜 스택들이 위에서 설명한 바와 같이 이들 네트워크들 및 네트워크 인터페이스들의 각각 상에서 사용될 수 있다.
전술한 인간 인터페이스 디바이스들, 인간-액세스가능한 저장 디바이스들, 및 네트워크 인터페이스들은 컴퓨터 시스템(1400)의 코어(1440)에 부착될 수 있다.
코어(1440)는 하나 이상 중앙 처리 유닛들(CPU)(1441), 그래픽 프로세싱 유닛들(GPU)(1442), 그래픽스 어댑터(1417), 필드 프로그래밍가능 게이트 영역들(FPGA)(1443)의 형태의 특수 프로그래밍가능 프로세싱 유닛들, 특정의 태스크들을 위한 하드웨어 액셀러레이터들(1444) 등을 포함할 수 있다. 이들 디바이스들은, 판독-전용 메모리(ROM)(1445), 랜덤-액세스 메모리(1446), 내부 비-사용자 액세스가능한 하드 드라이브들, SSD들 등과 같은 내부 대용량 스토리지(1447)과 함께, 시스템 버스(1448)를 통해서 접속될 수 있다. 일부 컴퓨터 시스템들에서, 시스템 버스(1448)는 추가적인 CPU들, GPU 등에 의한 확장들을 가능하게 하기 위해 하나 이상의 물리적인 플러그들의 형태로 액세스가능할 수 있다. 주변장치 디바이스들은 코어의 시스템 버스(1448)에 직접, 또는 주변장치 버스(1451)를 통해서 부착될 수 있다. 주변장치 버스에 대한 아키텍처들은 PCI, USB 등을 포함한다.
CPU들(1441), GPU들(1442), FPGA들(1443), 및 액셀러레이터들(1444)은 조합하여, 전술한 컴퓨터 코드를 구성할 수 있는 특정의 명령어들을 실행할 수 있다. 그 컴퓨터 코드는 ROM(1445) 또는 RAM(1446)에 저장될 수 있다. 전이 데이터는 또한 RAM(1446)에 저장될 수 있지만, 영구적인 데이터는 예를 들어, 내부 대용량 스토리지(1447)에 저장될 수 있다. 메모리 디바이스들 중 임의의 디바이스로의 빠른 저장 및 취출은 하나 이상의 CPU(1441), GPU(1442), 대용량 스토리지(1447), ROM(1445), RAM(1446) 등과 밀접하게 연관될 수 있는 캐시 메모리의 사용을 통해서 가능해질 수 있다.
컴퓨터 판독가능 매체들은 다양한 컴퓨터-구현되는 동작들을 수행하는 컴퓨터 코드를 가질 수 있다. 매체들 및 컴퓨터 코드는 본 개시내용의 목적들을 위해 구체적으로 설계되고 구성된 것일 수 있거나, 또는 이들은 컴퓨터 소프트웨어 분야의 통상의 기술자에게 널리 알려져 있고 이용 가능한 종류일 수 있다.
일 예로서 그리고 비제한적으로, 아키텍처(1400), 및 구체적으로 코어(1440)를 갖는 컴퓨터 시스템은 하나 이상의 유형의, 컴퓨터-판독가능 매체들에 구현된 소프트웨어를 실행하는(CPU들, GPU들, FPGA, 액셀러레이터들 등을 포함한) 프로세서(들)의 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터-판독가능 매체들은 위에서 소개된 바와 같은 사용자-액세스가능한 대용량 스토리지 뿐만 아니라, 코어-내부 대용량 스토리지(1447) 또는 ROM(1445)과 같은, 비-일시적 성질인 코어(1440)의 특정의 스토리지와 연관된 매체들일 수 있다. 본 개시내용의 다양한 실시형태들을 구현하는 소프트웨어는 이러한 디바이스들에 저장되고 코어(1440)에 의해 실행될 수 있다. 컴퓨터-판독가능 매체는 특정의 요구들에 따라, 하나 이상의 메모리 디바이스들 또는 칩들을 포함할 수 있다. 소프트웨어는 코어(1440), 구체적으로는 (CPU, GPU, FPGA 등을 포함하는) 그 안의 프로세서들로 하여금, RAM(1446)에 저장된 데이터 구조들을 정의하고 소프트웨어에 의해 정의된 프로세스들에 따라서 이러한 데이터 구조들을 수정하는 것을 포함하여, 본원에서 설명되는 특정의 프로세스들 또는 특정의 프로세스들의 특정의 부분들을 실행하게 할 수 있다. 추가적으로 또는 대안적으로, 컴퓨터 시스템은 본원에서 설명되는 특정의 프로세스들 또는 특정의 프로세스들의 특정의 부분들을 실행하기 위해 소프트웨어 대신 또는 함께 동작할 수 있는 회로(예를 들어: 액셀러레이터(1444))에 하드와이어드되거나 아니면 내장되는 로직의 결과로서 기능을 제공할 수 있다. 소프트웨어에 대한 참조는 로직을 포함할 수 있으며, 적절한 경우 반대의 경우도 마찬가지이다. 컴퓨터-판독가능 매체들에 대한 참조는 적절한 경우, 실행을 위한 소프트웨어를 저장하는 회로(예컨대, 집적 회로(IC)), 실행을 위한 로직을 구현하는 회로, 또는 둘 모두를 포함할 수 있다. 본 개시내용은 임의의 적합한 하드웨어와 소프트웨어의 조합을 포함할 수 있다.
본 개시내용은 여러 예시적인 실시형태들을 설명하였지만, 본 개시내용의 범위에 속하는 변형들, 치환들, 및 다양한 대체 균등물들이 있다. 따라서, 본원에서 명시적으로 도시되거나 또는 설명되지는 않았지만, 본 개시내용의 원리들을 구현하고 따라서 이의 사상 및 범위 내인 매우 많은 시스템들 및 방법들을 고안할 수 있음을 통상의 기술자들은 알 수 있을 것이다.
Claims (20)
- 비디오 코딩의 방법으로서,
비디오 데이터를 획득하는 단계;
상기 비디오 데이터에 기초하여, 세그먼트 대역폭을 표시하고 미디어 적응 세트의 복수의 정렬된 세그먼트들의 정보를 포함하는 타이밍된 메타데이터 트랙을 생성하는 단계 - 이에 따라 상기 정렬된 세그먼트들 각각의 지속기간 정보 및 사이즈 정보는 적어도 하나의 메타데이터 샘플에 포함됨 -;
상기 타이밍된 메타데이터 트랙이 적어도 상기 복수의 표현들 각각 마다 입력 버퍼에 대한 오버플로를 표시하는지에 기초하여 상기 비디오 데이터의 복수의 표현들 중 하나로 스위칭하는 단계; 및
상기 복수의 표현들 중 하나를 클라이언트로 전달하는 단계
를 포함하는, 방법. - 제1항에 있어서,
상기 적어도 하나의 메타데이터 샘플에서의 상기 정렬된 세그먼트들 중 적어도 하나의 세그먼트의 미디어 청크들의 특성들, 및 상기 미디어 청크들의 사이즈를 시그널링하는 재동기화 청크 인덱스들을 생성하는 단계;
상기 미디어 청크들과 함께 상기 메타데이터 샘플을 점진적으로 발생시키는 단계; 및
상기 메타데이터 샘플을 상기 클라이언트로 점진적으로 전달하는 단계
를 더 포함하는, 방법. - 제2항에 있어서,
상기 타이밍된 메타데이터 트랙은 상기 정렬된 세그먼트들 및 미디어 청크들 중 적어도 임의의 것들의 상대적인 품질들을 추가로 표시하며,
상기 복수의 표현들 중 하나로 스위칭하는 단계는 상기 상대적인 품질들을 비교하는 것에 추가로 기초하는, 방법. - 제2항에 있어서,
상기 정렬된 세그먼트들 및 미디어 청크들 중 적어도 임의의 것들의 지속기간들이 알려져 있는지를 시그널링하는 단계를 더 포함하며,
상기 지속기간들은 상기 지속기간들이 알려져 있을 때 상기 정렬된 세그먼트들 및 미디어 청크들 중 상기 적어도 임의의 것들마다 정확한 지속기간들로서 시그널링되며,
상기 지속기간들은 상기 지속기간들이 알려져 있지 않을 때 상기 정렬된 세그먼트들 및 미디어 청크들 중 상기 적어도 임의의 것들마다 변동들의 양들로 시그널링되는, 방법. - 제1항에 있어서,
상기 정렬된 세그먼트들의 인덱스 정보를 조합함으로써 조합 인덱스 세그먼트를 생성하는 단계; 및
상기 조합 인덱스 세그먼트를 상기 클라이언트로 전달하는 단계
를 더 포함하는, 방법. - 제5항에 있어서,
상기 미디어 적응 세트의 정렬된 세그먼트들의 청크 재동기화 정보를 조합함으로써 콤보-재동기화 인덱스 세그먼트들을 생성하는 단계; 및
상기 콤보-재동기화 인덱스 세그먼트들을 상기 클라이언트로 전달하는 단계
를 더 포함하는, 방법. - 제6항에 있어서,
인코딩 중인 상기 정렬된 세그먼트들 중 하나를 제외한, 상기 정렬된 세그먼트들의 모두에 대한 상기 조합 인덱스 세그먼트의 포맷을 포함하는 혼합된 콤보 인덱스 트랙들을 생성하는 단계를 더 포함하며,
상기 혼합된 콤보 인덱스 트랙들은 상기 정렬된 세그먼트들 중 하나에 대한 상기 콤보-재동기화 인덱스 세그먼트들의 포맷을 더 포함하는, 방법. - 제7항에 있어서,
상기 혼합된 콤보 인덱스 트랙들은 병렬 메타데이터 트랙들인, 방법. - 제1항에 있어서,
상기 비디오 데이터의 복수의 표현들 중 하나로 스위칭하는 단계는 상기 표현들의 대역폭들을 결정하는 것에 추가로 기초하는, 방법. - 제1항에 있어서,
상기 타이밍된 메타데이터 트랙이 적어도 상기 입력 버퍼에 대한 오버플로를 표시하는지는 상기 입력 버퍼의 현재의 충만도를 결정하는 것을 포함하는, 방법. - 비디오 스트리밍을 위한 장치로서,
컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리;
상기 컴퓨터 프로그램 코드에 액세스하고 상기 컴퓨터 프로그램 코드에 의해 명령되는 대로 동작하도록 구성된 적어도 하나의 프로세서
를 포함하며, 상기 컴퓨터 프로그램 코드는,
상기 적어도 하나의 프로세서로 하여금, 비디오 데이터를 획득하게 하도록 구성된 획득 코드;
상기 적어도 하나의 프로세서로 하여금, 상기 비디오 데이터에 기초하여, 세그먼트 대역폭을 표시하고 미디어 적응 세트의 복수의 정렬된 세그먼트들의 정보를 포함하는 타이밍된 메타데이터 트랙을 생성하게 하도록 구성된 생성 코드 - 이에 따라 상기 정렬된 세그먼트들 각각의 지속기간 정보 및 사이즈 정보는 적어도 하나의 메타데이터 샘플에 포함됨 -;
상기 적어도 하나의 프로세서로 하여금, 상기 타이밍된 메타데이터 트랙이 적어도 상기 복수의 표현들의 각각 마다 입력 버퍼에 대한 오버플로를 표시하는지에 기초하여, 상기 비디오 데이터의 복수의 표현들 중 하나로 스위칭하게 하도록 구성된 스위칭 코드; 및
상기 적어도 하나의 프로세서로 하여금, 상기 복수의 표현들 중 하나를 클라이언트로 전달하게 하도록 구성된 전달 코드
를 포함하는, 장치. - 제11항에 있어서,
상기 적어도 하나의 프로세서로 하여금, 상기 적어도 하나의 메타데이터 샘플에서의 상기 정렬된 세그먼트들 중 적어도 하나의 세그먼트의 미디어 청크들의 특성들, 및 상기 미디어 청크들의 사이즈를 시그널링하는 재동기화 청크 인덱스들을 생성하게 하도록 구성된 추가 생성 코드;
상기 적어도 하나의 프로세서로 하여금, 상기 미디어 청크들과 함께 상기 메타데이터 샘플을 점진적으로 발생시키게 하도록 구성된 발생 코드; 및
상기 적어도 하나의 프로세서로 하여금, 상기 메타데이터 샘플을 상기 클라이언트로 점진적으로 전달하게 하도록 구성된 추가 전달 코드
를 더 포함하는, 장치. - 제12항에 있어서,
상기 타이밍된 메타데이터 트랙은 상기 정렬된 세그먼트들 및 미디어 청크들 중 적어도 임의의 것들의 상대적인 품질들을 추가로 표시하며,
상기 복수의 표현들 중 하나로의 스위칭은 상기 상대적인 품질들을 비교하는 것에 추가적으로 기초하는, 장치. - 제12항에 있어서,
상기 적어도 하나의 프로세서로 하여금, 상기 정렬된 세그먼트들 및 미디어 청크들 중 적어도 임의의 것들의 지속기간들이 알려져 있는지를 시그널링하게 하도록 구성된 시그널링 코드를 더 포함하며,
상기 지속기간들은 상기 지속기간들이 알려져 있을 때 상기 정렬된 세그먼트들 및 미디어 청크들 중 상기 적어도 임의의 것들마다 정확한 지속기간들로서 시그널링되며,
상기 지속기간들은 상기 지속기간들이 알려져 있지 않을 때 상기 정렬된 세그먼트들 및 미디어 청크들 중 상기 적어도 임의의 것들마다 변동들의 양들로 시그널링되는, 장치. - 제11항에 있어서,
상기 적어도 하나의 프로세서로 하여금, 상기 정렬된 세그먼트들의 인덱스 정보를 조합함으로써 조합 인덱스 세그먼트를 생성하게 하도록 구성된 추가 생성 코드; 및
상기 적어도 하나의 프로세서로 하여금, 상기 조합 인덱스 세그먼트를 상기 클라이언트로 전달하게 하도록 구성된 추가 전달 코드
를 더 포함하는, 장치. - 제15항에 있어서,
상기 적어도 하나의 프로세서로 하여금, 상기 미디어 적응 세트의 정렬된 세그먼트들의 청크 재동기화 정보를 조합함으로써 콤보-재동기화 인덱스 세그먼트들을 생성하게 하도록 구성된 제2 추가 생성 코드; 및
상기 적어도 하나의 프로세서로 하여금, 상기 콤보-재동기화 인덱스 세그먼트들을 상기 클라이언트로 전달하게 하도록 구성된 제2 추가 전달 코드
를 더 포함하는, 장치. - 제16항에 있어서,
상기 적어도 하나의 프로세서로 하여금, 인코딩 중인 상기 정렬된 세그먼트들 중 하나를 제외한, 상기 정렬된 세그먼트들의 모두에 대한 상기 조합 인덱스 세그먼트의 포맷을 포함하는 혼합된 콤보 인덱스 트랙들을 생성하게 하도록 구성된 제3 추가 생성 코드를 더 포함하며,
상기 혼합된 콤보 인덱스 트랙들은 상기 정렬된 세그먼트들 중 하나에 대한 상기 콤보-재동기화 인덱스 세그먼트들의 포맷을 더 포함하는, 장치. - 제17항에 있어서,
상기 혼합된 콤보 인덱스 트랙들은 병렬 메타데이터 트랙들인, 장치. - 제11항에 있어서,
상기 비디오 데이터의 복수의 표현들 중 하나로의 스위칭은 상기 표현들의 대역폭들을 결정하는 것에 추가로 기초하는, 장치. - 컴퓨터로 하여금 프로세스를 실행하게 하는 프로그램을 저장하는 비-일시적 컴퓨터 판독가능 매체로서, 상기 프로세스는,
비디오 데이터를 획득하는 단계;
상기 비디오 데이터에 기초하여, 세그먼트 대역폭을 표시하고 미디어 적응 세트의 복수의 정렬된 세그먼트들의 정보를 포함하는 타이밍된 메타데이터 트랙을 생성하는 단계 - 이에 따라 상기 정렬된 세그먼트들 각각의 지속기간 정보 및 사이즈 정보는 적어도 하나의 메타데이터 샘플에 포함됨 -;
상기 타이밍된 메타데이터 트랙이 적어도 상기 복수의 표현들의 각각 마다 입력 버퍼에 대한 오버플로를 표시하는지에 기초하여 상기 비디오 데이터의 복수의 표현들 중 하나로 스위칭하는 단계; 및
상기 복수의 표현들 중 하나를 클라이언트로 전달하는 단계
를 포함하는, 비-일시적 컴퓨터 판독가능 매체.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063042959P | 2020-06-23 | 2020-06-23 | |
US63/042,959 | 2020-06-23 | ||
US202063088712P | 2020-10-07 | 2020-10-07 | |
US63/088,712 | 2020-10-07 | ||
US17/242,875 US11973817B2 (en) | 2020-06-23 | 2021-04-28 | Bandwidth cap signaling using combo-index segment track in media streaming |
US17/242,875 | 2021-04-28 | ||
PCT/US2021/034529 WO2021262385A1 (en) | 2020-06-23 | 2021-05-27 | Bandwidth cap signaling using combo-index segment track in media streaming |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220079669A true KR20220079669A (ko) | 2022-06-13 |
Family
ID=79022109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227016078A KR20220079669A (ko) | 2020-06-23 | 2021-05-27 | 미디어 스트리밍에서 콤보-인덱스 세그먼트 트랙을 이용한 대역폭 캡 시그널링 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11973817B2 (ko) |
EP (1) | EP4026274B1 (ko) |
JP (1) | JP7371984B2 (ko) |
KR (1) | KR20220079669A (ko) |
CN (1) | CN114616801B (ko) |
WO (1) | WO2021262385A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240022792A1 (en) * | 2022-07-12 | 2024-01-18 | Tencent America LLC | Method for bandwidth switching by cmaf and dash clients using addressable resource index tracks and events |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
WO2009024926A1 (en) * | 2007-08-20 | 2009-02-26 | Nokia Corporation | Segmented metadata and indexes for streamed multimedia data |
CN109618185A (zh) | 2012-07-10 | 2019-04-12 | Vid拓展公司 | 由wtru执行的方法、wtru及编码设备 |
WO2014057896A1 (ja) | 2012-10-09 | 2014-04-17 | シャープ株式会社 | コンテンツ送信装置、コンテンツ再生装置、コンテンツ配信システム、コンテンツ送信装置の制御方法、コンテンツ再生装置の制御方法、制御プログラムおよび記録媒体 |
ES2728732T3 (es) | 2013-03-29 | 2019-10-28 | Intel Ip Corp | Técnicas de adaptación de tasa sensibles a la calidad para la difusión en flujo de tipo DASH |
EP2962467A1 (en) | 2013-07-19 | 2016-01-06 | Huawei Technologies Co., Ltd. | Metadata information signaling and carriage in dynamic adaptive streaming over hypertext transfer protocol |
US20150074129A1 (en) | 2013-09-12 | 2015-03-12 | Cisco Technology, Inc. | Augmenting media presentation description and index for metadata in a network environment |
JP6239102B2 (ja) | 2013-10-25 | 2017-11-29 | 華為技術有限公司Huawei Technologies Co.,Ltd. | アダプティブ・ストリーミングにおいてリプレゼンテーション(Representation)を関連付けるシステムおよび方法 |
US9706509B2 (en) | 2013-12-05 | 2017-07-11 | Cisco Technology, Inc. | Synchronization of streaming data |
WO2017145756A1 (ja) | 2016-02-22 | 2017-08-31 | ソニー株式会社 | ファイル生成装置およびファイル生成方法、並びに、再生装置および再生方法 |
FI20166017A (fi) * | 2016-12-22 | 2018-06-23 | Nokia Technologies Oy | Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten |
WO2020068935A1 (en) | 2018-09-27 | 2020-04-02 | Futurewei Technologies, Inc. | Virtual reality viewpoint viewport center point correspondence signaling |
EP3906701A4 (en) * | 2019-01-04 | 2022-09-07 | Nokia Technologies Oy | METHOD AND APPARATUS FOR STORING AND SIGNALING MEDIA SEGMENT SIZES AND PRIORITY ORDERS |
US11025982B2 (en) * | 2019-03-29 | 2021-06-01 | Twizted Design, Inc. | System and method for synchronizing content and data for customized display |
-
2021
- 2021-04-28 US US17/242,875 patent/US11973817B2/en active Active
- 2021-05-27 KR KR1020227016078A patent/KR20220079669A/ko not_active Application Discontinuation
- 2021-05-27 JP JP2022523681A patent/JP7371984B2/ja active Active
- 2021-05-27 WO PCT/US2021/034529 patent/WO2021262385A1/en unknown
- 2021-05-27 CN CN202180005996.3A patent/CN114616801B/zh active Active
- 2021-05-27 EP EP21828204.4A patent/EP4026274B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP4026274B1 (en) | 2024-02-28 |
WO2021262385A1 (en) | 2021-12-30 |
US20210400100A1 (en) | 2021-12-23 |
JP2022553964A (ja) | 2022-12-27 |
JP7371984B2 (ja) | 2023-10-31 |
CN114616801A (zh) | 2022-06-10 |
CN114616801B (zh) | 2023-12-26 |
EP4026274A4 (en) | 2022-11-23 |
EP4026274A1 (en) | 2022-07-13 |
US11973817B2 (en) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11930254B2 (en) | Patchable remote element for data manipulation | |
US11522940B2 (en) | Techniques for multiple conformance points in media coding | |
JP7254188B2 (ja) | 点群符号化のためのパラメータセット設計の方法並びにその装置及びプログラム | |
EP4026274B1 (en) | Bandwidth cap signaling using combo-index segment track in media streaming | |
US11711562B2 (en) | In-manifest update event | |
US20220295114A1 (en) | Method for signaling dependent and independent picture header | |
WO2022225644A1 (en) | Session-based description url customization using the session-based dash operations | |
EP4018623A1 (en) | Application intended interactive selection information for interactive playback of dash content | |
US11687386B2 (en) | MPD validity expiration processing model | |
JP7345669B2 (ja) | セッションベースのdash動作を使用したurlカスタマイズ | |
US12131561B2 (en) | Method for annotating VVC subpictures in DASH | |
US20230222823A1 (en) | Method for annotating vvc subpictures in dash |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal |