KR101701182B1 - 청크로 스트리밍된 컨텐츠를 복구하기 위한 방법 - Google Patents
청크로 스트리밍된 컨텐츠를 복구하기 위한 방법 Download PDFInfo
- Publication number
- KR101701182B1 KR101701182B1 KR1020127025294A KR20127025294A KR101701182B1 KR 101701182 B1 KR101701182 B1 KR 101701182B1 KR 1020127025294 A KR1020127025294 A KR 1020127025294A KR 20127025294 A KR20127025294 A KR 20127025294A KR 101701182 B1 KR101701182 B1 KR 101701182B1
- Authority
- KR
- South Korea
- Prior art keywords
- chunk
- chunks
- server
- encoded
- client
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000009877 rendering Methods 0.000 claims abstract description 8
- 238000005516 engineering process Methods 0.000 claims description 12
- 239000012634 fragment Substances 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 9
- 230000003044 adaptive effect Effects 0.000 abstract description 10
- 230000004044 response Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000001788 irregular Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 102100037812 Medium-wave-sensitive opsin 1 Human genes 0.000 description 2
- 238000010420 art technique Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- LEGNTRAAJFCGFF-UHFFFAOYSA-N 2-(diazomethyl)-9h-fluorene Chemical compound C1=CC=C2C3=CC=C(C=[N+]=[N-])C=C3CC2=C1 LEGNTRAAJFCGFF-UHFFFAOYSA-N 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000002716 delivery method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000153 supplemental effect 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/10—Architectures or entities
- H04L65/1046—Call controllers; Call servers
-
- 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/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- 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/752—Media network packet handling adapting media to network capabilities
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/156—Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/164—Feedback from the receiver or from the transmission channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 컨텐츠 지속 시간에 해당하는 청크들로 분해된 컨텐츠를 수신하기 위한, 클라이언트 디바이스에서의 적응 스트리밍 방법에 관한 것으로서, 청크들은 적어도 제1 및 제2 포맷들로 서버에서 인코딩되고, 제1의 포맷은 제2의 포맷보다 더 양호한 컨텐츠 렌더링 품질 레벨에 해당하며, 청크는 청크 수신 주기 동안 수신된다. 본 발명에 따라, 본 방법은 다음의 청크 수신 주기 동안 클라이언트와 서버 사이의 이용 가능한 대역폭을 측정하는 단계, 청크가 다음의 청크 수신 주기 동안 수신될 수 있도록 한 포맷으로 인코딩된 청크를 전송할 것을 서버에 요청하는 단계; 및 다음의 청크 수신 주기 동안 일부 대역폭이 이용 가능한 경우, 제2의 포맷으로 인코딩된 청크의 일부를 전송할 것을 서버에 요청하는 단계로서, 상기 청크는 제1의 포맷으로 인코딩되어 수신된, 요청하는 단계를 포함한다.
Description
본 발명은 일반적으로 적응 비디오 스트리밍에 관한 것이며, 특히 적응 비디오 스트리밍 컨텐츠를 복구하기 위한 방법에 관한 것이다.
이 절은 이하에 설명 및/또는 청구된 본 발명의 다양한 양상들에 관한 것일 수 있는 기술의 다양한 양상들을 독자에게 소개하도록 의도된다. 이러한 논의는 본 발명의 다양한 양상들에 대한 더 나은 이해를 장려하기 위해 독자에게 배경 정보를 제공하는 것에 있어서 도움이 될 것이라고 믿어진다. 따라서, 이러한 진술들은 종래의 기술의 용인으로서가 아닌, 이러한 견지에서 읽혀져야 한다는 것이 이해되어야 한다.
매체 전달 스트리밍 솔루션들은 IETF RFC 2326에서 정의된 실시간 스트리밍 프로토콜(RTSP), 마이크로소프트사로부터의 마이크로소프트 매체 서버(MMS) 전용 프로토콜, 또는 아도브(Adobe) 시스템즈사로부터의 실시간 메시징 프로토콜(RTMP) 전용 프로토콜과 같은 프로토콜들을 주로 기반으로 한다. 보다 최근에, HTTP 프로토콜을 기반으로 한 새로운 스트리밍 기술들이 등장하였다. 적응 스트리밍 기술은, 대역폭 제한(bandwidth constraint)에 적합하기 위해 지속적이고 적절하게 비디오 품질을 업그레이딩 또는 다운그레이딩 함으로써 이용 가능한 대역폭에 관하여 불규칙한 네트워크 행위(behavior)를 보상하기 위한 방법을 제공한다. 보다 정확하게, 비디오 스트림은 몇몇의 인코딩된 비트 스트림들로 인코딩되는데, 이들의 각각은, 예를 들어 300kbps, 600kbps, 1200kbps, 2000kbps, 또는 3000kbps와 같은 비트 전송률 제한에 해당한다. 이에 따라, 이들 스트림들 각각은, 예를 들어 2초의 지속 시간을 의미하는 청크들(chunks)로 나누어져서, 각 청크가 기준 프레임으로 시작하는 방법으로 모두 잘 정렬되고; 임의의 주어진 청크의 어떤 프레임도 다른 청크 내의 프레임을 참조하지 않는다. 다시 말해, 비디오 스트림은 청크라고 불리우는 작은 세그먼트들로 분해되어 희망하는 전달 포맷으로 인코딩된다. 청크들은 일반적으로 2초 내지 4초 길이이다. 비디오 코덱 레벨에서, 이것은 일반적으로, 각 청크가 비디오 화상들의 그룹(GOP) 경계선들을 따라 분해되고 과거 또는 미래의 청크들 및 GOP들에 대한 어떤 의존성(dependencies)도 갖지 않음을 의미한다. 이것은 각 청크가 나중에 다른 청크들로부터 독립적으로 디코딩되는 것을 허용한다.
클라이언트 디바이스는 HTTP 서버에 요청하여, 추정된 대역폭에 관하여 특정 비트 전송률에 첨부된 청크를 전송하는데, 여기서 이용 가능한 대역폭은, 예를 들어 HTTP 요청/응답으로 사용된 왕복 시간을 측정함으로써 측정될 수 있다. 이에 따라, 비디오 스트림은 클라이언트 요청들을 기반으로 청크 단위(chunk after chunk)로 전달된다. 이것은 도 1에 도시되며, 이는 보다 낮은 비트 전송률로부터 보다 높은 비트 전송률에 이르기까지, 청크 비트 전송률의 4가지 레벨을 도시한다. 고정된 시간에 모두 대응하는 비디오 청크들은 대체로 크다. 큰 청크는 보다 높은 대역폭을 요구하며 보다 좋은 비디오 품질을 제공한다. 청크 선택은 곡선에 대응하는 추정된 이용 가능한 대역폭에 의존한다. 물론, 구현, 환경, 네트워크 기술, 및 클라이언트 어플리케이션에 따라, 본 전략은 다소 보수적일 수 있다. 보수적일 경우, 클라이언트는 원활한 업그레이드 변이(transition)를 보장하는 특정 시간 후에만 더 높은 비트 전송률 청크를 요청한다. 보다 덜 보수적인 전략은, 클라이언트가 보다 많은 대역폭이 이용 가능하다는 것을 검출하자마자, 보다 높은 비트 전송률 청크를 요청할 것이다. 그리고, 일반적으로, 클라이언트는 이것이 신속한 다운그레이드 변이를 의미하는 대역폭 감소를 검출하자마자, 보다 낮은 비트 전송률 청크를 요청한다.
이러한 스트리밍 기술들의 예시들은 무브 네트워크스사의 "움직임 적응 스트림", 애플사의 "HTTP 라이브 스트리밍", 및 마이크로소프트사의 "IIS(인터넷 정보 서비스) 원활한 스트리밍"이다. 이러한 스트리밍 솔루션에 있어서 HTTP 프로토콜을 사용함의 혜택은 NAT와 방화벽을 균일하게 넘나들 수 있는 능력이다. 이러한 HTTP 스트리밍 기술들은 대역폭 제한에 적합하기 위해 지속적이고 적절하게 비디오 품질을 업그레이딩 또는 다운그레이딩 함으로써 이용 가능한 대역폭에 관하여 불규칙한 네트워크 행위를 보상하기 위한 방법을 제공한다.
보다 상세하게, 무브 네트워크스사로부터의 WO 2005/109224 A2는, 클라이언트 측에서 호스팅된(hosted) 에이전트 컨트롤러 모듈(Agent Controller Module)에서의 메커니즘을 설명하며, 스트리밍할 매체가, 또한 청크들이라고 불리우며, 이들의 각각이 낮은 비트 전송률로부터 높은 비트 전송률에 이르기까지 인코딩된 복수의 스트림릿(streamlets)으로 이전에 구성된다는 사실로 인하여, 변동하는 네트워크 대역폭에 적응할 수 있다. 이용 가능한 네트워크 대역폭 및 일부 다른 추가적인 정보에 따라, 에이전트 컨트롤러 모듈에 병합된 모니터링 툴(tool)은 HTTP 프로토콜을 사용하여, TCP/IP 연결을 통하여 스트리밍될 가장 적합한 청크를 전송할 것을 서버에 요청한다. 최소 단위의 청크를 기반으로 품질은, 에이전트 컨트롤러 모듈에 따라, 올라가거나 또는 내려간다.
2009년 3월, 마이크로소프트사의 Alex Zambelli로부터의 IIS 원활한 스트리밍 기술의 개관은 TCP/IP 연결을 통한 HTTP 프로토콜을 기반으로 한 IIS 원할한 스트리밍 기술을 설명한다. 서버에 의해 스트리밍될 매체는, 예를 들어 1초 내지 10초의 지속 시간을 의미하는 청크들로 이전에 분해된다(chopped). 그 후, 이들 청크들은 상이한 비트 전송률로 H.264/MPEG-4 AVC 표준에 따라 인코딩되며, MP4 파일 포맷 컨테이너 내에 저장된다. 네트워크 대역폭 변동에 따라 비트 전송률을 선택하며 대응하는 청크들을 서버에 균일하게 요청하는 메커니즘은 실버라이트 어플리케이션(Sliverlight Application)이라는 어플리케이션 코드를 통하여 클라이언트 측에서 전체적으로 구현된다. HTTP 라이브 스트리밍은 연결 스피드를 변경시키는 것에 응답하여 상이한 데이터 전송률의 스트림들 사이에서의 동적인 전환을 지원한다.
애플사는 "HTTP 라이브 스트리밍 draft-pantos-http-live-streaming-02"라는 제목이 달린 HTTP 스트리밍 방법 설명서(specification)에서 2009년 10월에 IETF에 대한 인터넷 드래프트(Internet Draft to IETF)를 제출했다. HTTP 스트리밍 구성은 3개의 기본적인 부분(pillars)인 서버, 웹 서버나 웹 캐싱(web caching) 시스템을 통한 분산(distribution), 및 클라이언트로 구성된다. 스트리밍될 매체는 H.264로 인코딩된 비디오, 및 AAC로 인코딩된 오디오이다. 서버에서, 이것은 MPEG-TS 컨네이너들에서 캡슐화되며, 애플 스트림 세그멘터라고 명명된 특정 툴로 동일한 지속 시간의 청크들로 분해된다(fragmented). 이 툴은 *.ts 파일, 및 청크들의 플레이리스트를 구성하는 색인(index) 파일 *.m3u8로 저장되는 청크들을 생성한다. 그 후, 클라이언트는 URL 지시자 덕분에 우선적으로 색인 파일을 가져온다(fetch). 색인 파일은 이용 가능한 매체 파일들의 위치, 해독 키(decryption key), 및 이용 가능한 임의의 교대의 스트림들을 차례대로 명시한다. 선택된 스트림에 대하여, 클라이언트는 각각의 이용 가능한 매체 파일을 순차적으로 다운로딩한다.
이러한 적응 스트리밍 기술들을 통하여, 비디오 품질은 불규칙적이다. 청크 단위로 클라이언트에 의해 획득된 스트림은, 이것이 상이한 비트 전송률 청크들의 혼합이기 때문에, 일정한 품질을 갖지 않는다. 이 비디오는 수신기에 저장되어 추후에 재생될 수 있다. 보통 이러한 스트리밍 어플리케이션을 통하여, 청크들이 로컬 저장 설비에 기록될 수 있었기 때문에, 네트워크를 통해 스트림을 재전송할 필요가 없다. 하지만, 일련의 기록된 청크들은 일정하지 않은 비디오 품질을 초래하는 스트리밍 세션 과정에서 경험된 네트워크 환경(condition)에 대응한다.
이러한 문제에 대한 솔루션은 낮은 품질의 청크들에 해당하는 청크들을 서버로부터 재획득하는 것일 것이다. 이것은 기록된 스트림이 재생되기 전에 그룹화된 다운로드로서 수행될 수 있다. 하지만, 이것은 시간 소모가 클 수 있다. 또 다른 솔루션은 기록된 스트림 재생 과정에서 낮은 품질 청크들을 온-더-플라이(on-the-fly) 방식으로 바꾸는 것이다. 하지만, 클라이언트가 보다 좋은 품질의 청크들이 필요되는 시간에 이것들을 획득할 것이라는 어떤 보증도 없다. 그리고, 이 두 솔루션들은 클라이언트를 강제로 서버에 연결되도록 한다.
현존하는 적응 스트리밍 기술들을 통하여, 비디오 품질은 불규칙적이다. 청크 단위로 클라이언트에 의해 획득된 스트림은, 이것이 상이한 비트 전송률 청크들의 혼합이기 때문에, 일정한 품질을 갖지 않는다. 따라서, 이들을 개선할 수 있는 방법을 찾고자 한다.
본 발명은 청크들의 품질을 기회적으로 향상시키는 방법들을 제공함으로써, 종래의 기술들에 있어서 낮은 품질의 청크들과 관련된 적어도 일부의 관심들을 개선하도록 시도한다.
이를 위해, 본 발명은 컨텐츠 지속 시간에 해당하는 청크들로 분해되는 컨텐츠를 수신하기 위한, 클라이언트 디바이스에서의 적응 스트리밍 방법에 관한 것인데, 청크들은 서버에서 적어도 제1 및 제2의 포맷들로 인코딩되고, 제1의 포맷은 제2의 포맷보다 더 양호한 컨텐츠 렌더링 품질 레벨에 해당하며, 청크는 청크 수신 지속 시간 동안 수신된다.
본 발명에 따라, 본 방법은 다음의 청크 수신 주기 동안 클라이언트와 서버 사이의 이용 가능한 대역폭을 측정하는 단계, 청크가 다음의 청크 수신 주기 동안 수신될 수 있도록 하나의 포맷으로 인코딩된 청크를 전송하는 것을 서버에 요청하는 단계, 그리고 일부 대역폭이 다음의 청크 수신 주기 동안 이용 가능한 경우, 제2의 포맷으로 인코딩된 청크의 일부를 전송하는 것을 서버에 요청하는 단계로서, 상기 청크는 제1의 포맷으로 인코딩되어 수신되는, 청크의 일부를 전송하는 것을 요청하는 단계를 포함한다.
한 실시예에 따라, 본 방법은 청크들을 수신하는 단계, 및 상기 청크들을 렌더링 디바이스에 전송하는 단계를 포함한다.
한 실시예에 따라, 본 방법은 상기 청크들을 메모리에 저장하는 단계를 포함한다.
본 발명의 한 실시예에 따라, 본 방법은 제2의 포맷으로 인코딩된 청크의 전체 부분들을 요청하기 위해 연속적인 청크 수신 주기들에 있어서 이용 가능한 대역폭을 사용하는 단계를 포함한다.
본 발명의 한 실시예에 따라, 본 방법은, 제2의 포맷으로 인코딩된 청크의 전체 부분들의 수신 시에 메모리 내에서 제1의 포맷으로 인코딩된 청크를 제2의 포맷으로 인코딩된 청크와 교환하는 단계를 포함한다.
본 발명은 또한 컨텐츠 지속 시간에 해당하는 청크들로 분해되는 컨텐츠를 수신하기 위한, 클라이언트 디바이스에서의 적응 스트리밍 방법에 관한 것이며, 상기 청크들은 스케일링 가능한(scalable) 비디오 코딩(SVC) 기술에 따라, 서버에서 기본 레이어 및 적어도 하나의 개선 레이어(enhancement layer)로 인코딩되며, 청크는 청크 수신 주기 동안 수신된다. 이를 위해, 본 방법은 다음의 청크 수신 주기 동안 클라이언트와 서버 사이의 이용 가능한 대역폭을 측정하는 단계, 청크가 다음의 청크 수신 주기 동안 수신될 수 있도록 적어도 하나의 SVC 레이어로 인코딩된 청크를 전송하는 것을 서버에 요청하는 단계, 그리고 일부 대역폭이 다음의 청크 수신 주기 동안 이용 가능할 경우, 적어도 하나의 개선 레이어 없이 이전에 수신된 청크의 적어도 하나의 개선 레이어를 전송하는 것을 서버에 요청하는 단계를 포함한다.
본 발명의 한 실시예에 따라, 본 방법은 청크를 수신하는 단계, 및 상기 청크를 렌더링 디바이스에 전송하는 단계를 포함한다.
본 발명의 한 실시예에 따라, 본 방법은 청크들을 메모리에 저장하는 단계를 포함한다.
본 발명의 또 다른 목적은, 컴퓨터 프로그램이 컴퓨터에서 실행될 때, 본 발명에 따른 방법의 단계들을 실행하기 위한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램 제품이다. "컴퓨터 프로그램 제품"으로써, 컴퓨터 메모리와 같은, 프로그램을 포함하는 저장 공간 뿐만 아니라 전기적 또는 광학 신호와 같은 신호로 구성될 수 있는 컴퓨터 프로그램 지원이라고 의미되어진다.
개시된 실시예들의 범주와 상통하는 특정 양상들은 아래에 상술된다. 이러한 양상들은 독자에게 본 발명이 취할 수 있는 특정 형태들의 간략한 개요를 단지 제공하기 위해 제시되며, 이러한 양상들은 본 발명의 범주를 제한하도록 의도되지 않는다는 것이 이해되어야 한다. 실제로, 본 발명은 아래에 기재되지 않은 다양한 양상들을 포함할 수 있다.
본 발명은 첨부된 도면들을 참조하여 제한적이지 않은 방법으로, 다음의 실시예 및 실행 예시들을 통해 보다 더 잘 이해될 것이다.
본 발명은 청크들의 품질을 기회적으로 향상시키는 방법들을 제공함으로써, 종래의 기술들에 있어서 낮은 품질의 청크들과 관련된 적어도 일부의 관심들을 개선하도록 시도한다.
이를 위해, 본 발명은 컨텐츠 지속 시간에 해당하는 청크들로 분해되는 컨텐츠를 수신하기 위한, 클라이언트 디바이스에서의 적응 스트리밍 방법으로서, 청크들은 서버에서 적어도 제1 및 제2의 포맷들로 인코딩되고, 제1의 포맷은 제2의 포맷보다 더 양호한 컨텐츠 렌더링 품질 레벨에 해당하며, 청크는 청크 수신 지속 시간 동안 수신된다.
도 1은 시간에 따른 청크들의 전달을 도시하는 도면.
도 2는 실시예들에 따른 시스템의 블록도.
도 3은 실시예들에 따른 클라이언트 디바이스의 블록도.
도 4는 제1의 실시예에 따른 청크 전달을 도시하는 도면.
도 5는 제2의 실시예에 따른 청크 전달을 도시하는 도면.
도 2는 실시예들에 따른 시스템의 블록도.
도 3은 실시예들에 따른 클라이언트 디바이스의 블록도.
도 4는 제1의 실시예에 따른 청크 전달을 도시하는 도면.
도 5는 제2의 실시예에 따른 청크 전달을 도시하는 도면.
도 3에서 표현된 블록들은 순전히 기능적인 실재물들인데, 이들은 물리적으로 분리된 실재물들에 반드시 해당하는 것은 아니다. 즉, 이들은 하드웨어나 소프트웨어의 형태로 개발될 수 있거나, 또는 하나 이상의 통합된 회로들로 구현될 수 있다.
본 발명의 도면들 및 설명들이 명확함을 목적으로 전형적인 디지털 다중 매체 컨텐츠 전달 방법들 및 시스템들에서 발견되는 많은 다른 요소들을 제거하는 동시에, 본 발명의 명확한 이해를 위해 연관된 요소들을 도시하기 위해 단순화되었다는 것은 이해될 것이다. 하지만, 이러한 요소들은 종래의 기술에서 잘 알려지기 때문에, 이러한 요소들에 대한 상세화된 논의는 본 명세서에서 제공되지 않는다. 본 명세서에서의 개시 사항은 당업자들에 알려진 모든 이러한 변형들 및 수정들에 관한 것이다.
두 실시예들은 이하에서 설명된다. 제1의 실시예에서, 컨텐츠는 몇몇의 비트 전송률로 인코딩되지만, 제2의 실시예에서, 컨텐츠는 스케일링 가능한 비디오 코딩을 사용하여 인코딩된다. 본 실시예들에 따른 본 시스템은 도 2에서 도시된다. 이것은 인터넷을 통하여 연결된 클라이언트(1) 및 서버(3)를 포함한다. 비디오 파일 분해기(Video File Splitter, 5)는 압축된 비디오 및 오디오를 청크들로 생성한다. 클라이언트는 또한 플레이어(4)에 연결된다. 서버 측에서, 청크들은 TCP/IP 연결을 통한 HTTP 프로토콜을 사용하여, 클라이언트 요청 시에 스트리밍된다. 클라이언트는 네트워크 대역폭 추정 및 주목할 만한 여분의 대역폭을 기반으로 하여 이하에서 설명된 방법에 따라 청크들을 요청한다.
본 실시예들에 따른 클라이언트는 도 3에서 도시된다. 클라이언트는 네트워크에 대한 제1의 인터페이스(14) 및 통신 수단(13)을 포함하는데, 여기서 통신 수단(13)은 네트워크 상에 위치된 서버에 통신하기 위한 프로토콜 스택(protocol stacks)을 포함한다. 특히, 네트워크는 인터넷이고, 통신 수단은 종래의 기술에서 잘 알려진 TCP/IP이다. 물론, 이것은 클라이언트가 서버에 통신하는 것을 가능하게 하는 임의의 다른 유형의 네트워크 및/또는 통신 수단일 수도 있다.
클라이언트는 또한 컨텐츠를 디코딩하고 렌더링하도록 적응되는 비디오 플레이어에 연결하기 위한 제2의 인터페이스(16)를 포함한다. 물론, 제2의 인터페이스는 한 개보다 많은 플레이어를 연결하는 것을 가능하게 할 수 있다. 제2의 인터페이스는 한 개 이상의 플레이어들을 연결하는 것을 가능하게 하는 네트워크에 대한 인터페이스일 수 있다. 클라이언트는 또한 클라이언트에 저장된 어플리케이션들을 프로세싱하기 위한 프로세서(11)를 포함한다. 이것은 서버로부터 수신된 청크들이 SVC 플레이어에 전송되기 전에, 이들을 버퍼링하기 위한 버퍼(12)를 포함한다. 클라이언트는 또한 서버로부터 수신된 청크들이 전송되는 메모리(17)를 포함한다. 이것은 바람직하게 비휘발성 메모리이다.
또한, 클라이언트는 클라이언트에서 실행하는 어플리케이션들을 저장하기 위한 나타내지 않은 비휘발성 메모리를 포함한다. 청크 선택기(15)는 이하에서 설명되는 청크 선택을 수행하도록 적응된 어플리케이션이다. 클라이언트는 게이트웨이 디바이스에서 구현될 수 있다. 대안적으로, 클라이언트는 탑재된 SVC 플레이어를 포함한다. 이 때, 이것은 셋톱 박스와 같은 디바이스일 수 있다.
대안적으로, 메모리는 클라이언트 디바이스에 연결된 저장 디바이스에 대안으로 위치될 수 있다. 따라서, 이하에 설명된 방법은, 저장 디바이스가 클라이언트에 연결된 경우에만, 트리거된다. 이것은 연결된 저장 디바이스의 검출 시에 자동으로 트리거될 수 있다. 이것은 또한 최종 사용자로부터의 요청 시에 트리거될 수 있다.
청크를 수신하기 위한 클라이언트에서의 방법은 다음과 같이 요약된다:
- 청크 선택기는 본 명세서의 이하에 설명된 방법에 따라 청크를 선택한다.
- 통신 수단은 선택된 청크를 수신하기 위해 서버에 요청을 전송한다.
- 통신 수단은 청크를 수신한다.
- 청크는 버퍼링된다.
- 청크는 비디오 플레이어에 전송된다.
본 실시예들에 따라, 청크들은 또한 메모리(17)에 전송된다. 이러한 저장된 청크들의 품질을 개선하기 위해, 클라이언트는 본 명세서의 이하에 나타낸 바와 같이 보다 높은 품질의 청크들을 요청하기 위해 나머지의 이용 가능한 대역폭을 사용한다. 이 때, 보다 높은 품질의 청크들은 메모리(17)에 저장된다.
제1의 실시예에 따른 방법은 도 4에 도시된다. 청크 지속 시간은 청크에 첨부된 비디오 지속 시간에 해당한다. 클라이언트는 매 청크 지속 시간 주기에서의 특정의 비트 전송률에 해당하는 청크를 요청한다. 클라이언트는 청크들(ch1 내지 ch14)을 수신한다. 이하에서, 청크 지속 시간은 2초로 설정된다. 보수적인 접근법에서, 클라이언트는 원활한 업그레이드 변이를 보장하는 특정 시간 후에만 더 높은 비트 전송률의 청크를 요청한다. 클라이언트가 보수적인 접근법에 따라 다음의 청크를 위해 이용 가능한 대역폭을 추정할 때, 이것은 업그레이딩될 청크의 시간 부분의 동일한 주기 내에서 요청할 충분한 대역폭을 남기는 비트 전송률에 해당하는 청크를 요청한다.
도 4는 도 1에서 도시되는 바와 같은, 보다 낮은 비트 전송률로부터 보다 높은 비트 전송률에 이르는 청크 비트 전송률의 4가지 레벨을 도시한다. 간단하게, 동일 비트 전송률에 해당하는 청크들은 동일 사이즈를 갖는데, 즉 주어진 비트 전송률의 모든 청크들은 동일한 에이커 수(acreage)로 표현된다. 도 4에 도시되는 바와 같이, 클라이언트는 보다 많은 정보를 동시에 다운로딩할 기회를 제공하는 비트 전송률에 관련된 청크 번호(3)를 요청했다. 클라이언트는 이용 가능한 대역폭을 사용하여, 색인을 1로 설정한 블록으로 도시되는 낮은 비트 전송률의 청크로서 초기에 수신된 청크(1)의 제1 중간 비트 전송률 버전의 단편(fragment)을 요청한다. 청크(4)를 요청할 때, 이와 동일한 것이 발생한다. 이 때, 클라이언트는 청크(1)의 제1 중간 비트 전송률 버전의 마지막 단편을 획득한다. 게다가, 청크들(6 내지 9)은 또한 이들 각각의 제1의 완전한 중간 비트 전송률 버전들에 의해 점진적으로 대체된다. 물론, 청크는, 해당하는 업그레이딩된 청크가 완전히 수신되었을 때만, 대체된다.
대안적으로, 클라이언트의 호스트에서 국부적으로 캐싱된 비디오의 전체적인 품질을 업그레이딩하기 위한 다른 방법들이 사용된다. 도 4에서 도시되는 예시는 평균 품질 개선을 제공하는 방법에 해당하는데, 여기서 가장 낮은 비트 전송률의 청크들을 먼저 업그레이드하기 위해 우선권이 주어진다. 또 다른 방법은, 예를 들어 높은 움직임 시퀀스를 포함하는 청크들과 같은 특정 청크들의 업그레이드에 먼저 우선 순위를 매길 수 있는데, 여기서 낮은 움직임 시퀀스는 품질 및 사용자 경험에 있어서의 너무 많은 악영향없이 낮은 비트 전송률로 전달될 수 있으며, 이에 반해 높은 움직임 시퀀스는 일정한 품질을 위해 보다 높은 비트 전송률을 요구한다.
제1의 실시예의 시스템에서, 비디오 파일 분해기는 상이한 포맷으로 H.264/MPEG-4 AVC 표준에 따라 인코딩되고, MP4 파일 포맷 컨테이너 내부에 저장된 청크들을 준비한다; 각 포맷은 300, 600, 1000, 또는 2000 kbps 사이에 있는 비트 전송률에 해당한다. 비디오 파일 분해기는 지원된 비트 전송률 당 하나의 MPEG 운송 스트림 청크 시리즈를 생성하기 위해 청크들을 멀티플레싱(multiplex)한다. 이러한 모든 청크들은 HTTP 서버에 저장된다. 지원된 비트 전송률, 청크들의 번호, 및 각각에 대한 이것의 사이즈의 목록을 포함하는 메니페스트 파일(manifest file)이 클라이언트에 전송된다.
이에 따라, 클라이언트는 청크 전달을 요청하는 것을 시작할 수 있다. 클라이언트는 매 2초마다 하나의 요청을 전송하는데, 이것은 비디오 청크의 지속 시간에 해당한다. 실제적으로, 클라이언트는 대역폭을 추정하고, 보존적인 항목(conservative provision)을 제외한 추정된 대역폭에 해당하는 청크를 요청한다. 따라서, HTTP 서버로부터 수신된 응답은 청크 비트 전송률과 직접 연관된 특정 시간 후에 도착한다. 응답이 일단 수신되면, 클라이언트는 다음의 청크를 요청하기 전에 남겨진 나머지의 시간, Timeleft를 계산한다. 그 후, 이것은 업그레이딩하기를 원하는 이전 청크들에 관련된, 요청할 수 있는 바이트의 수, BytesMaxNum를 획득한다.
Timeleft = 2s - 청크 왕복 시간
BytesMaxNum = 추정된 대역폭(바이트/초 단위) * Timeleft(초 단위)
그 후, 클라이언트는 업그레이딩될 청크(들)로부터의 특정 바이트 범위를 다운로딩하기 위해 다른 HTTP 요청(들)을 전송한다. HTTP 요청 포맷은 파일의 특정 바이트 범위에 대한 요구(demand)를 지원한다. 하지만, 이것은 모든 HTTP 요청/응답 처리 과정(transaction)이 차례로 나열될 것을 요구한다. HTTP 처리 과정이 추정보다 더 길 경우, 이것은 플레이어에 대한 공급을 차단하는 위험으로 다음 청크 요청을 지연시킬 수 있다.
대안적으로, 클라이언트는 제2의 TCP 연결을 설정한다. 청크들을 업그레이딩하는 프로세스와 관련된 HTTP 요청은 제2의 TCP 연결을 통해 전송된다. 클라이언트는 본 명세서의 상기에 설명된 바와 같이 동일한 프로세스를 따른다. 클라이언트는 대역폭을 추정하고 주요 TCP 연결을 통하여 보존적인 항목을 제외한 추정된 대역폭에 해당하는 청크를 요청한다. 공급된 추정(provisioned estimate)에 따라, 클라이언트는 업그레이딩하기를 원하는 이전 청크(들)에 관련된, 이것이 요청할 수 있는 바이트의 수를 계산한다:
BytesMaxNum = (추정된 대역폭 - 청크 비트 전송률) * 2s
클라이언트는 제2의 TCP 연결을 통해, 주요 연결에 병렬로 결합될 수 있는데, 아마도 몇몇의 요청들은 업그레이딩될 청크들의 단편에 해당하는 바이트들을 요구할 수 있다.
클라이언트는 주요 연결과 독립적으로 제2의 TCP 연결을 폐쇄(shutdown)할 수 있다. 이것은, 대역폭 감소를 경험하고 원활한 재생 경험을 유지하기 위해 주요 연결에 우선권을 제공하기를 원하는 경우에, 일어날 수 있다.
본 발명의 제2의 실시예에서, 청크들은 H.264/MPEG-4 AVC Annex G로 표준화된 스케일링 가능한 비디오 코딩(SVC) 압축 기술에 따라 인코딩된다. SVC는 3개의 입상도(granularity) 파라미터들을 정의하는데, 시간의 확장성, 공간의 확장성, 및 신호 대비 잡음 비율(SNR) 확장성을 정의한다. 타깃의 차이 또는 대역폭 오버헤드와 같은 기준에 따라, 스트림의 인코딩은 모든 기존 유형의 확장 가능성에서의 인코딩을 반드시 요구하지는 않는다. 이것은 확장 가능성의 각 유형들을 위한 레이어의 수를 조건으로 한다. HTTP 스트리밍에 대하여, SVC 컨텐츠는 파일들에 저장된다. SVC 파일들은 MPEG-2 운송 스트림들 또는 MP4 파일들로 포맷된다. 이러한 포맷들은 그중에서도 특히, 렌더링을 위한 시간 정보를 관리하는 것을 허용한다.
MPEG2 운송 스트림은 임의의 추가적인 데이터 없이 TV 채널을 브로드캐스팅하기 위해 보통 생성된다. SVC 비디오를 통한 TV 채널의 브로드캐스트는 표준 "정보 기술 - 동화상 및 오디오의 일반적인 코딩: 시스템들 : ITU-T Rec. H.222.0 ISO/IEC 13818-1를 통해 스케일링 가능한 비디오의 운송; 개정안 3; 03/2009"에 명시된다. 이것은 각각의 개선 레이어 "I"를 위한 ES(Elementary Stream)로 정기적인 TV 채널 C(하나의 ES AVC 및 하나의 ES 오디오)에 대한 프로그램 맵 테이블(PMT)을 정의한다.
MP4 파일 포맷 컨테이너는 "정보 기술 - 오디오, 화상, 다중 매체, 및 하이퍼매체 정보의 코딩 - 파트 14 : MP4 파일 포맷" 상의 ISO/IEC FDIS 14496-14:2003(E)에 명시된다. 이것은 "정보 기술 - 오디오-비주얼 객체들의 코딩 - 파트 15 : 고급의 비디오 코딩(AVC) 파일 포맷, 개정안 2 : 스케일링 가능한 비디오 코딩을 위한 파일 포맷 지원" 상의 ISO/IEC 14496-15:2004/FDAM 2:2008(E)에 명시된 바와 같이 SVC 컨텐츠에 적응된다. 예시들에 의해 도시되는 SVC 파일 포맷 설명은 문서, "스케일링 가능한 비디오 코딩을 위한 파일 포맷 : P.AMon; T.Rathgen; D.Singer; 2007년 9월, 비디오 기술을 위한 회로 및 시스템들에 대한 IEEE 처리 과정, vol.17"에서 발견될 수 있다.
제2의 실시예에서, SVC 인코딩된 비디오는 청크들로 분해된다. 청크는 하나의 SVC 샘플만을 포함하지 않으며, 이것은 단일의 연속적인 스트림의 한 부분, 즉 연속적인 화상들의 집합(collection)이다. 따라서, 청크는 이하에서 "청크 오프셋"으로 언급되는 시작 시간과, 이하에서 "청크 지속 시간"으로 언급되는 지속 시간을 갖는다. 또한, 청크는 화상들의 그룹(GOP) 또는 GOP들의 정수(integer number)로 정렬된다. 전형적으로, 청크 사이즈는 1초에서 10초까지의 지속 시간의 범위에 이른다. 이것은 각 청크가 키 프레임(key frame)으로 시작하는 것을 의미한다. 청크의 컨텐츠는 또한 일종의 확장 가능성의 한 레이어에만 해당한다. 모든 청크 파일들은 동일 포맷을 갖는다. 각 청크는 유일한 균일 자원 식별자(URI)를 갖는다.
어떠한 저장 포맷(MPEG2-TS 또는 MP4 파일)이든지, SVC 컨텐츠는 청크 당 하나의 파일 단위로 분해되거나 또는 그대로 저장될 수 있다. 제1의 경우에, 클라이언트는 URI를 요청하지만, 제2의 경우는 타임 코드와 지속 시간 또는 바이트 오프셋(파일의 시작으로부터의 오프셋)과 바이트 범위를 요청한다. 이용 가능한 청크들은 생성된 플레이리스트에 열거되며, 스트리밍 서버에 의해 제공된다. 이 플레이리스트는 포맷의 유형당 하나와 같이 다른 플레이리스트들을 지시할 수 있다. 플레이리스트들은 코덱 또는 요구되는 대역폭과 같은 청크 컨텐츠, 및 이들을 요청하는 방법을 설명한다. 플레이리스트 포맷은 다양한 SVC 레이어들을 설명하기 위한 코덱 정보로 확장된 "HTTP 라이브 스트리밍 draft-pantos-http-live-streaming-02"에 설명된 것일 수 있다.
제2의 실시예의 시스템은 제1의 실시예의 시스템과 유사하지만, 컨텐츠는 상이한 품질 레벨로 인코딩되는 것 대신에, 여기에서 SVC 레이어들로 인코딩된다. 특히, 비디오 파일 분해기는 4개의 보충 레이어들을 사용하여 청크들을 준비하는데, 하나는 기본 레이어이고, 3개는 개선 레이어들이다. 제1의 실시예에서, 보다 높은 품질의 청크들은 메모리에 전송된다. 제2의 실시예에서, 모든 청크들은 메모리에 전송된다.
제2의 실시예에 따른 방법은 도 5에서 도시된다. 클라이언트는 색인에 의해 식별되지 않고, 기본 레이어 및 개선 레이어들로 표현되는 청크들(ch1 내지 ch14)을 수신한다. 복구된 청크들은 색인으로 표현된다. 여기에서, 클라이언트는 보다 많은 정보를 동시에 다운로딩할 기회를 제공하는 비트 전송률과 관련된 청크(3)를 요청했다. 클라이언트는 기본 레이어 청크로서 초기에 수신된 청크(1)의 제1의 개선 레이어 단편을 요청하기 위해 이용 가능한 대역폭을 사용한다. 청크(4)를 요청할 때, 동일한 것이 발생한다; 청크(1)와 청크(2)의 제2의 개선 레이어들이 요청된다. 청크(5)를 통하여, 클라이언트는 청크(1)의 제3의 개선 레이어를 요청한다. 동일한 것은 청크(6)를 통하여 발생하는데, 청크(6)에서 청크(2)의 제3의 개선이 요청된다. 청크(6)의 시간에, 클라이언트는 개선 레이어(1과 2)로 "업그레이딩된" 전체의 시퀀스, 및 개선 레이어(3)를 통해 더 개선된 일부 청크들을 획득했다. 나중에, 청크들(3, 5, 6, 7, 및 8)은 역시 업그레이딩된다. 간단하게, 기본 레이어, 개선 레이어들, 및 청크들은 동일한 각자의 사이즈로 표현된다.
제2의 실시예는 SVC 레이어들의 특정 배열을 도시하는데, 여기서 개선 레이어(1)는 기본 레이어에 의존하고, 개선 레이어(2)는 개선 레이어(1)에 의존하는 등의 SVC 레이어들의 특정 배열을 도시한다. 대안적으로 또 다른 SVC 설계는 모든 개선 레이어들이 기본 레이어에 의존하는 경우에 사용될 수 있다. 이것은 물론 보다 덜 유연하지만, 보다 적은 오버헤드를 생성한다.
본 개시 사항에 개시되는 참조 사항들, 청구항, 및 도면들은 독립적으로 제공되거나 또는 임의의 적절한 결합으로 제공될 수 있다. 특징들은, 적절한 곳에서, 하드웨어, 소프트웨어, 또는 이 둘의 결합으로 구현될 수 있다.
본 명세서에서 "하나의 실시예" 또는 "한 실시예"들에 대한 언급은, 본 실시예와 연관되어 설명된 특정한 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 구현에 포함될 수 있다는 것을 의미한다. 본 명세서 내의 다양한 위치들에 있는 "한 실시예에서"라는 관용구의 등장은 반드시 동일한 실시예를 모두 언급하는 것은 아니며, 이것들은 다른 실시예들을 반드시 상호 배제하는 별도의 또는 대안의 실시예들도 아니다.
청구항들에서 등장하는 참조 번호들은 오로지 예시의 목적이며, 청구항들의 범주에 대하여 어떤 제한적인 영향도 끼치지 않을 것이다.
1 : 클라이언트 2 : 인터넷
3 : 서버 4 : 플레이어
5 : 비디오 파일 분해기 11 : 프로세서
12 : 버퍼 13 : 통신 수단
14 : 제1의 인터페이스 15 : 청크 선택기
16 : 제2의 인터페이스 17 : 메모리
18 : 버스
3 : 서버 4 : 플레이어
5 : 비디오 파일 분해기 11 : 프로세서
12 : 버퍼 13 : 통신 수단
14 : 제1의 인터페이스 15 : 청크 선택기
16 : 제2의 인터페이스 17 : 메모리
18 : 버스
Claims (10)
- 비디오 컨텐츠 지속 시간에 해당하는 청크들로 분해된 비디오 컨텐츠를 수신하기 위한, 클라이언트 디바이스에서의 스트리밍 방법으로서,
상기 청크들은 스케일링 가능한 비디오 코딩(scalable video coding), SVC 기술에 따라 기본 레이어 및 적어도 하나의 개선 레이어로 인코딩되며, 청크는 청크 수신 주기라고 불리는 시간 주기 동안 수신되는, 상기 방법은,
서버로부터 제 1 청크의 수신 시에, 상기 제 1 청크로 인코딩된 비디오 컨텐츠를 렌더링하고, 상기 제 1 청크를 메모리에 저장하는 단계;
다음의 청크 수신 주기 동안 클라이언트 디바이스와 서버 사이의 이용 가능한 대역폭을 측정하는 단계;
제 2 청크가 상기 다음의 청크 수신 주기 동안 이용 가능한 대역폭에 따라 수신될 수 있도록, 적어도 하나의 SVC 레이어로 인코딩된 상기 제 2 청크를 전송할 것을 서버에 요청하는 단계; 및
상기 저장된 제 1 청크가 상기 적어도 하나의 개선 레이어 없이 수신된 경우, 그리고 추가의 대역폭이 다음의 청크 수신 주기에서 이용 가능한 경우, 제 2 청크의 하나의 개선 레이어의 단편이 상기 다음의 청크 수신 주기 동안 수신될 수 있도록, 이용 가능한 추가의 대역폭에 따라, 상기 단편을 전송할 것을 서버에 요청하고, 상기 개선 레이어를 상기 메모리에 저장하는 단계;
를 포함하는, 클라이언트 디바이스에서의 스트리밍 방법. - 제1항에 있어서,
상기 제 2 청크가 높은 움직임 시퀀스(high motion sequence)에 해당하는 비디오 컨텐츠를 포함하는 경우에 수행되는, 하나의 개선 레이어의 단편을 전송할 것을 서버에 요청하는 단계를 더 포함하는,
클라이언트 디바이스에서의 스트리밍 방법. - 비디오 컨텐츠 지속 시간에 해당하는 청크들로 분해된 비디오 컨텐츠를 수신하기 위한, 클라이언트 디바이스로서,
상기 청크들은 스케일링 가능한 비디오 코딩(scalable video coding), SVC 기술에 따라 기본 레이어 및 적어도 하나의 개선 레이어로 인코딩되며, 청크는 청크 수신 주기라고 불리는 시간 주기 동안 수신되는, 상기 클라이언트 디바이스는,
서버와 통신하는 통신 인터페이스, 메모리 및 프로세서를 포함하고, 상기 프로세서는,
서버로부터 제 1 청크의 수신 시에, 상기 제 1 청크로 인코딩된 비디오 컨텐츠를 렌더링하고, 상기 제 1 청크를 메모리에 저장하고,
다음의 청크 수신 주기 동안 클라이언트와 서버 사이의 이용 가능한 대역폭을 측정하고;
제 2 청크가 상기 다음의 청크 수신 주기 동안 이용 가능한 대역폭에 따라 수신될 수 있도록, 적어도 하나의 SVC 레이어로 인코딩된 상기 제 2 청크를 전송할 것을 서버에 요청하고; 및
상기 저장된 제 1 청크가 상기 적어도 하나의 개선 레이어 없이 수신된 경우, 그리고 추가의 대역폭이 다음의 청크 수신 주기에서 이용 가능한 경우, 제 2 청크의 하나의 개선 레이어의 단편이 상기 다음의 청크 수신 주기 동안 수신될 수 있도록, 이용 가능한 추가의 대역폭에 따라, 상기 단편을 전송할 것을 서버에 요청하고, 상기 개선 레이어를 상기 메모리에 저장하는;
클라이언트 디바이스. - 제3항에 있어서,
통신 인터페이스, 메모리 및 프로세서는, 상기 제 2 청크가 높은 움직임 시퀀스에 해당하는 비디오 컨텐츠를 포함하는 경우에 수행되는, 하나의 개선 레이어의 단편을 전송할 것을 서버에 요청하도록 더 구성되는,
클라이언트 디바이스. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP10305336A EP2375680A1 (en) | 2010-04-01 | 2010-04-01 | A method for recovering content streamed into chunk |
EP10305336.9 | 2010-04-01 | ||
PCT/EP2011/055030 WO2011121083A1 (en) | 2010-04-01 | 2011-03-31 | A method for recovering content streamed into chunk |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130044218A KR20130044218A (ko) | 2013-05-02 |
KR101701182B1 true KR101701182B1 (ko) | 2017-02-01 |
Family
ID=42338158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020127025294A KR101701182B1 (ko) | 2010-04-01 | 2011-03-31 | 청크로 스트리밍된 컨텐츠를 복구하기 위한 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9258333B2 (ko) |
EP (2) | EP2375680A1 (ko) |
JP (1) | JP6016778B2 (ko) |
KR (1) | KR101701182B1 (ko) |
CN (1) | CN102823223B (ko) |
WO (1) | WO2011121083A1 (ko) |
Families Citing this family (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8472792B2 (en) | 2003-12-08 | 2013-06-25 | Divx, Llc | Multimedia distribution system |
US7519274B2 (en) | 2003-12-08 | 2009-04-14 | Divx, Inc. | File format for multiple track digital data |
JP5200204B2 (ja) | 2006-03-14 | 2013-06-05 | ディブエックス リミテッド ライアビリティー カンパニー | 高信頼性システムを含む連合型デジタル権限管理機構 |
EP4213033A1 (en) | 2007-01-05 | 2023-07-19 | DivX, LLC | Video distribution system including progressive playback |
CN101861583B (zh) | 2007-11-16 | 2014-06-04 | 索尼克Ip股份有限公司 | 用于多媒体文件的分级及简化索引结构 |
EP2507995A4 (en) | 2009-12-04 | 2014-07-09 | Sonic Ip Inc | SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL |
US8904027B2 (en) * | 2010-06-30 | 2014-12-02 | Cable Television Laboratories, Inc. | Adaptive bit rate for data transmission |
US20120079000A1 (en) * | 2010-09-27 | 2012-03-29 | Motorola-Mobility, Inc. | Selectively receiving media content |
US9247312B2 (en) | 2011-01-05 | 2016-01-26 | Sonic Ip, Inc. | Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol |
US20120278495A1 (en) * | 2011-04-26 | 2012-11-01 | Research In Motion Limited | Representation grouping for http streaming |
US8812662B2 (en) | 2011-06-29 | 2014-08-19 | Sonic Ip, Inc. | Systems and methods for estimating available bandwidth and performing initial stream selection when streaming content |
US9467708B2 (en) | 2011-08-30 | 2016-10-11 | Sonic Ip, Inc. | Selection of resolutions for seamless resolution switching of multimedia content |
KR102020764B1 (ko) | 2011-08-30 | 2019-09-11 | 디브이엑스, 엘엘씨 | 복수의 최대 비트레이트 레벨들을 사용하여 인코딩된 비디오를 인코딩하고 스트리밍하기 위한 시스템들 및 방법들 |
US8806188B2 (en) | 2011-08-31 | 2014-08-12 | Sonic Ip, Inc. | Systems and methods for performing adaptive bitrate streaming using automatically generated top level index files |
US8799647B2 (en) | 2011-08-31 | 2014-08-05 | Sonic Ip, Inc. | Systems and methods for application identification |
US8909922B2 (en) | 2011-09-01 | 2014-12-09 | Sonic Ip, Inc. | Systems and methods for playing back alternative streams of protected content protected using common cryptographic information |
US8964977B2 (en) | 2011-09-01 | 2015-02-24 | Sonic Ip, Inc. | Systems and methods for saving encoded media streamed using adaptive bitrate streaming |
WO2013079598A1 (en) * | 2011-12-01 | 2013-06-06 | Thomson Licensing | Device for obtaining content by choosing the transport protocol according to the available bandwidth |
US20130179199A1 (en) | 2012-01-06 | 2013-07-11 | Rovi Corp. | Systems and methods for granting access to digital content using electronic tickets and ticket tokens |
WO2013173721A1 (en) | 2012-05-18 | 2013-11-21 | Home Box Office, Inc. | Audio-visual content delivery |
US9936267B2 (en) | 2012-08-31 | 2018-04-03 | Divx Cf Holdings Llc | System and method for decreasing an initial buffering period of an adaptive streaming system |
KR101903996B1 (ko) * | 2012-09-03 | 2018-12-03 | 삼성전자주식회사 | 의료 영상 시뮬레이션 방법 및 그 방법을 이용한 장치 |
US9560392B2 (en) * | 2012-09-07 | 2017-01-31 | Google Inc. | Dynamic bit rate encoding |
US9313510B2 (en) | 2012-12-31 | 2016-04-12 | Sonic Ip, Inc. | Use of objective quality measures of streamed content to reduce streaming bandwidth |
US9191457B2 (en) | 2012-12-31 | 2015-11-17 | Sonic Ip, Inc. | Systems, methods, and media for controlling delivery of content |
US9571543B2 (en) | 2013-01-15 | 2017-02-14 | Futurewei Technologies, Inc. | Using quality information for adaptive streaming of media content |
US9906785B2 (en) | 2013-03-15 | 2018-02-27 | Sonic Ip, Inc. | Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata |
US10397292B2 (en) | 2013-03-15 | 2019-08-27 | Divx, Llc | Systems, methods, and media for delivery of content |
HUE043713T2 (hu) * | 2013-03-29 | 2019-09-30 | Intel Ip Corp | Minõségtudatos sebességillesztési technikák DASH streameléshez |
CN105379293B (zh) | 2013-04-19 | 2019-03-26 | 华为技术有限公司 | 基于超文本协议的动态自适应流媒体中的媒体质量信息指示 |
US9094737B2 (en) | 2013-05-30 | 2015-07-28 | Sonic Ip, Inc. | Network video streaming with trick play based on separate trick play files |
US9100687B2 (en) | 2013-05-31 | 2015-08-04 | Sonic Ip, Inc. | Playback synchronization across playback devices |
US9380099B2 (en) | 2013-05-31 | 2016-06-28 | Sonic Ip, Inc. | Synchronizing multiple over the top streaming clients |
EP2811711A1 (en) * | 2013-06-05 | 2014-12-10 | Alcatel Lucent | Nodes and methods for use in HAS content distribution systems |
EP2816782A1 (en) * | 2013-06-18 | 2014-12-24 | Alcatel Lucent | Node and methods for use in TCP friendly HAS content distribution systems |
WO2015000936A1 (en) | 2013-07-03 | 2015-01-08 | Koninklijke Kpn N.V. | Streaming of segmented content |
WO2015007795A1 (en) * | 2013-07-16 | 2015-01-22 | Bitmovin Gmbh | Apparatus and method for cloud assisted adaptive streaming |
US8850055B1 (en) * | 2013-09-17 | 2014-09-30 | Google Inc. | Intelligently streaming portions of media at higher quality over a limited bandwidth connection |
US9386067B2 (en) | 2013-12-30 | 2016-07-05 | Sonic Ip, Inc. | Systems and methods for playing adaptive bitrate streaming content by multicast |
EP2897337B1 (en) * | 2014-01-21 | 2022-01-05 | Alcatel Lucent | Improved playback control device and method for streaming media content |
US9542953B2 (en) * | 2014-01-22 | 2017-01-10 | Comcast Cable Communications, Llc | Intelligent data delivery |
US9538120B2 (en) * | 2014-01-29 | 2017-01-03 | Google Inc. | Method for improving offline content playback |
KR101924703B1 (ko) | 2014-02-13 | 2019-02-20 | 코닌클리즈케 케이피엔 엔.브이. | 단일 메세지 요청에 기초하여 네트워크 노드로부터 다수의 청크 요청 |
US9866878B2 (en) | 2014-04-05 | 2018-01-09 | Sonic Ip, Inc. | Systems and methods for encoding and playing back video at different frame rates using enhancement layers |
US10523723B2 (en) | 2014-06-06 | 2019-12-31 | Koninklijke Kpn N.V. | Method, system and various components of such a system for selecting a chunk identifier |
KR101873969B1 (ko) | 2014-06-30 | 2018-07-04 | 에코스타 테크놀로지스 엘엘씨 | 대역폭 최적화를 위한 적응형 데이터 세그먼트 전송 중재 |
US20160014439A1 (en) * | 2014-07-14 | 2016-01-14 | Cisco Technology Inc. | Indexing of Video Assets |
US9787751B2 (en) | 2014-08-06 | 2017-10-10 | At&T Intellectual Property I, L.P. | Method and apparatus for delivering media content utilizing segment and packaging information |
KR102597985B1 (ko) | 2014-08-07 | 2023-11-06 | 디빅스, 엘엘씨 | 독립적으로 인코딩된 타일을 포함한 기본 비트스트림을 보호하는 시스템 및 방법 |
US9722903B2 (en) | 2014-09-11 | 2017-08-01 | At&T Intellectual Property I, L.P. | Adaptive bit rate media streaming based on network conditions received via a network monitor |
JP6944371B2 (ja) | 2015-01-06 | 2021-10-06 | ディビックス, エルエルシー | コンテンツを符号化し、デバイス間でコンテンツを共有するためのシステムおよび方法 |
US9826016B2 (en) * | 2015-02-24 | 2017-11-21 | Koninklijke Kpn N.V. | Fair adaptive streaming |
CN107251008B (zh) | 2015-02-27 | 2020-11-13 | 帝威视有限公司 | 在实况视频编码和流传输中进行帧复制和帧扩展的系统和方法 |
US10271112B2 (en) * | 2015-03-26 | 2019-04-23 | Carnegie Mellon University | System and method for dynamic adaptive video streaming using model predictive control |
JP5973616B1 (ja) * | 2015-04-15 | 2016-08-23 | 西日本電信電話株式会社 | 受信端末及びその映像取得方法 |
US10114835B2 (en) * | 2015-04-29 | 2018-10-30 | Box, Inc. | Virtual file system for cloud-based shared content |
US20170006303A1 (en) * | 2015-06-30 | 2017-01-05 | Intel Corporation | Method and system of adaptive reference frame caching for video coding |
CN105208463B (zh) * | 2015-08-31 | 2017-12-15 | 暴风集团股份有限公司 | 针对m3u8文件进行帧确定的方法和系统 |
US12063380B2 (en) | 2015-09-09 | 2024-08-13 | Vantrix Corporation | Method and system for panoramic multimedia streaming enabling view-region selection |
US10694249B2 (en) | 2015-09-09 | 2020-06-23 | Vantrix Corporation | Method and system for selective content processing based on a panoramic camera and a virtual-reality headset |
US10506006B2 (en) | 2015-09-09 | 2019-12-10 | Vantrix Corporation | Method and system for flow-rate regulation in a content-controlled streaming network |
US11108670B2 (en) | 2015-09-09 | 2021-08-31 | Vantrix Corporation | Streaming network adapted to content selection |
US11287653B2 (en) | 2015-09-09 | 2022-03-29 | Vantrix Corporation | Method and system for selective content processing based on a panoramic camera and a virtual-reality headset |
US10419770B2 (en) | 2015-09-09 | 2019-09-17 | Vantrix Corporation | Method and system for panoramic multimedia streaming |
US10327164B2 (en) | 2015-10-29 | 2019-06-18 | Cable Television Laboratories, Inc. | Multichannel communication systems |
CN108476345B (zh) * | 2015-11-02 | 2021-10-15 | 万特里克斯公司 | 内容控制流媒体网络中的流量速率调节的方法和系统 |
US10523939B2 (en) * | 2015-12-31 | 2019-12-31 | Facebook, Inc. | Dynamic codec adaption |
GB2547934B (en) | 2016-03-03 | 2021-07-07 | V Nova Int Ltd | Adaptive video quality |
US10075292B2 (en) | 2016-03-30 | 2018-09-11 | Divx, Llc | Systems and methods for quick start-up of playback |
US10231001B2 (en) | 2016-05-24 | 2019-03-12 | Divx, Llc | Systems and methods for providing audio content during trick-play playback |
US10129574B2 (en) | 2016-05-24 | 2018-11-13 | Divx, Llc | Systems and methods for providing variable speeds in a trick-play mode |
US10148989B2 (en) | 2016-06-15 | 2018-12-04 | Divx, Llc | Systems and methods for encoding video content |
US10498795B2 (en) | 2017-02-17 | 2019-12-03 | Divx, Llc | Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming |
EP3410728A1 (en) * | 2017-05-30 | 2018-12-05 | Vestel Elektronik Sanayi ve Ticaret A.S. | Methods and apparatus for streaming data |
US10652166B2 (en) * | 2017-06-27 | 2020-05-12 | Cisco Technology, Inc. | Non-real time adaptive bitrate recording scheduler |
US11470131B2 (en) | 2017-07-07 | 2022-10-11 | Box, Inc. | User device processing of information from a network-accessible collaboration system |
US11190455B2 (en) * | 2018-02-28 | 2021-11-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Decoding of a media stream at a packet receiver |
US10674166B2 (en) * | 2018-08-22 | 2020-06-02 | Purdue Research Foundation | Method and system for scalable video streaming |
US10735744B2 (en) | 2018-10-22 | 2020-08-04 | At&T Intellectual Property I, L.P. | Adaptive bitrate streaming techniques |
EP3942437B1 (en) | 2019-03-21 | 2024-01-10 | DivX, LLC | Systems and methods for multimedia swarms |
US12001355B1 (en) | 2019-05-24 | 2024-06-04 | Pure Storage, Inc. | Chunked memory efficient storage data transfers |
US20220408135A1 (en) * | 2019-10-01 | 2022-12-22 | Streamonkey Gmbh | Server-Side Adaptive Media Streaming |
CN114902685B (zh) * | 2019-10-15 | 2024-03-22 | 交互数字Ce专利控股有限公司 | 用于发送和接收视频的方法和装置 |
EP3905708B1 (en) * | 2020-04-27 | 2022-12-21 | Broadpeak | Method and server for audio and/or video content delivery |
US11356725B2 (en) * | 2020-10-16 | 2022-06-07 | Rovi Guides, Inc. | Systems and methods for dynamically adjusting quality levels for transmitting content based on context |
US11374998B1 (en) | 2021-09-01 | 2022-06-28 | At&T Intellectual Property I, L.P. | Adaptive bitrate streaming stall mitigation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6981045B1 (en) | 1999-10-01 | 2005-12-27 | Vidiator Enterprises Inc. | System for redirecting requests for data to servers having sufficient processing power to transcast streams of data in a desired format |
US20060242275A1 (en) | 2001-11-09 | 2006-10-26 | Jody Shapiro | System, method, and computer program product for remotely determining the configuration of a multi-media content user |
WO2009063467A2 (en) | 2007-11-14 | 2009-05-22 | Ubstream Ltd. | System and method for adaptive rate shifting of video/audio streaming |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998037699A1 (en) | 1997-02-25 | 1998-08-27 | Intervu, Inc. | System and method for sending and receiving a video as a slide show over a computer network |
US6496980B1 (en) | 1998-12-07 | 2002-12-17 | Intel Corporation | Method of providing replay on demand for streaming digital multimedia |
US20030079222A1 (en) * | 2000-10-06 | 2003-04-24 | Boykin Patrick Oscar | System and method for distributing perceptually encrypted encoded files of music and movies |
CA2331474A1 (en) * | 2001-01-19 | 2002-07-19 | Stergios V. Anastasiadis | Stride-based disk space allocation scheme |
WO2003042783A2 (en) | 2001-11-09 | 2003-05-22 | Musicmatch, Inc. | File splitting scalade coding and asynchronous transmission in streamed data transfer |
US7483487B2 (en) * | 2002-04-11 | 2009-01-27 | Microsoft Corporation | Streaming methods and systems |
CN100583880C (zh) * | 2003-02-26 | 2010-01-20 | Nxp股份有限公司 | 用于广播多媒体内容的系统 |
US8868772B2 (en) | 2004-04-30 | 2014-10-21 | Echostar Technologies L.L.C. | Apparatus, system, and method for adaptive-rate shifting of streaming content |
JP2007036666A (ja) | 2005-07-27 | 2007-02-08 | Onkyo Corp | コンテンツ配信システム、クライアント及びクライアントプログラム |
US20080133766A1 (en) * | 2006-05-05 | 2008-06-05 | Wenjun Luo | Method and apparatus for streaming media to a plurality of adaptive client devices |
US20080195748A1 (en) * | 2007-02-09 | 2008-08-14 | Melodeo Inc. | Data delivery |
FR2916600B1 (fr) * | 2007-05-24 | 2013-11-22 | Canon Kk | Procede et dispositif de transmission de donnees |
BRPI0721603A2 (pt) * | 2007-06-28 | 2013-04-02 | Thomson Licensing | escalonamento de bloco adaptÁvel baseado em fila para transmissço ao vivo nço hierÁrquica |
TWI369672B (en) * | 2007-09-07 | 2012-08-01 | Sunplus Technology Co Ltd | Data recording method of recording an audio and video interleaved file |
US7860996B2 (en) * | 2008-05-30 | 2010-12-28 | Microsoft Corporation | Media streaming with seamless ad insertion |
US8290915B2 (en) * | 2008-09-15 | 2012-10-16 | International Business Machines Corporation | Retrieval and recovery of data chunks from alternate data stores in a deduplicating system |
US8621044B2 (en) * | 2009-03-16 | 2013-12-31 | Microsoft Corporation | Smooth, stateless client media streaming |
-
2010
- 2010-04-01 EP EP10305336A patent/EP2375680A1/en not_active Withdrawn
-
2011
- 2011-03-31 CN CN201180016915.6A patent/CN102823223B/zh active Active
- 2011-03-31 JP JP2013501855A patent/JP6016778B2/ja active Active
- 2011-03-31 EP EP11711364.7A patent/EP2553896B1/en active Active
- 2011-03-31 KR KR1020127025294A patent/KR101701182B1/ko active IP Right Grant
- 2011-03-31 US US13/635,199 patent/US9258333B2/en active Active
- 2011-03-31 WO PCT/EP2011/055030 patent/WO2011121083A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6981045B1 (en) | 1999-10-01 | 2005-12-27 | Vidiator Enterprises Inc. | System for redirecting requests for data to servers having sufficient processing power to transcast streams of data in a desired format |
US20060242275A1 (en) | 2001-11-09 | 2006-10-26 | Jody Shapiro | System, method, and computer program product for remotely determining the configuration of a multi-media content user |
WO2009063467A2 (en) | 2007-11-14 | 2009-05-22 | Ubstream Ltd. | System and method for adaptive rate shifting of video/audio streaming |
Also Published As
Publication number | Publication date |
---|---|
EP2553896B1 (en) | 2018-11-28 |
US20130013803A1 (en) | 2013-01-10 |
WO2011121083A1 (en) | 2011-10-06 |
JP6016778B2 (ja) | 2016-10-26 |
EP2375680A1 (en) | 2011-10-12 |
KR20130044218A (ko) | 2013-05-02 |
CN102823223B (zh) | 2015-08-12 |
CN102823223A (zh) | 2012-12-12 |
JP2013524603A (ja) | 2013-06-17 |
EP2553896A1 (en) | 2013-02-06 |
US9258333B2 (en) | 2016-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101701182B1 (ko) | 청크로 스트리밍된 컨텐츠를 복구하기 위한 방법 | |
EP2360923A1 (en) | Method for selectively requesting adaptive streaming content and a device implementing the method | |
CA2844648C (en) | Method and apparatus for adaptive transcoding of multimedia stream | |
US10547659B2 (en) | Signaling and processing content with variable bitrates for adaptive streaming | |
US8751677B2 (en) | System and method to support different ingest and delivery schemes for a content delivery network | |
Begen et al. | Watching video over the web: Part 1: Streaming protocols | |
US9351020B2 (en) | On the fly transcoding of video on demand content for adaptive streaming | |
US8929441B2 (en) | Method and system for live streaming video with dynamic rate adaptation | |
EP2481199B1 (en) | Enhanced block-request streaming using cooperative parallel http and forward error correction | |
EP2481195B1 (en) | Enhanced block-request streaming using url templates and construction rules | |
Sanchez et al. | Efficient HTTP-based streaming using scalable video coding | |
US9042449B2 (en) | Systems and methods for dynamic transcoding of indexed media file formats | |
US11722711B2 (en) | System and method for data stream fragmentation | |
CN108271039A (zh) | 一种文件发送方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20200114 Year of fee payment: 4 |