KR20210073579A - 수신된 패킷 스트림의 파일들을 저장하기 위한 버퍼 관리 - Google Patents
수신된 패킷 스트림의 파일들을 저장하기 위한 버퍼 관리 Download PDFInfo
- Publication number
- KR20210073579A KR20210073579A KR1020217015392A KR20217015392A KR20210073579A KR 20210073579 A KR20210073579 A KR 20210073579A KR 1020217015392 A KR1020217015392 A KR 1020217015392A KR 20217015392 A KR20217015392 A KR 20217015392A KR 20210073579 A KR20210073579 A KR 20210073579A
- Authority
- KR
- South Korea
- Prior art keywords
- file
- buffer
- incoming
- map
- entry
- Prior art date
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 294
- 238000000034 method Methods 0.000 claims abstract description 73
- 230000004044 response Effects 0.000 claims abstract description 29
- 230000008569 process Effects 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 12
- 238000002372 labelling Methods 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 28
- 238000007726 management method Methods 0.000 description 20
- 230000011664 signaling Effects 0.000 description 17
- 239000012634 fragment Substances 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 230000003139 buffering effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000003936 working memory Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9005—Buffering arrangements using dynamic buffer space allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2362—Generation or processing of Service Information [SI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4345—Extraction or processing of SI, e.g. extracting service information from an MPEG stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
파일들을 저장하기 위한 사전 설정된 바이트 크기를 갖는 버퍼를 관리하기 위한 방법은, 착신 파일의 파일 식별자 및 길이를 결정하는 단계를 포함한다. 방법은, 착신 파일이 다음 기입 위치와 버퍼의 끝 사이의 공간에 맞지 않을 것임을 결정하는 단계를 포함한다. 착신 파일이 맞지 않을 것이라는 결정에 대한 응답으로, 방법은, 맵에서, 착신 파일의 범위와 적어도 부분적으로 겹치는 파일에 대응하는 각각의 엔트리를 삭제하는 단계 및 착신 파일에 대한 엔트리를 맵에 부가하는 단계를 포함한다. 방법은, 착신 파일에 버퍼의 연속적 영역을 할당한 다음, 다음 기입 위치를 할당된 연속적 영역의 끝으로 이동시키는 단계, 및 착신 파일의 패킷들을 수신하고 수신된 패킷들을 할당된 연속적 영역에 저장하는 단계를 더 포함한다.
Description
본 개시내용은, 착신 패킷 스트림의 패킷들을 버퍼링하면서 제한된 메모리 리소스의 관리를 최적화하는 방법, 장치, 및 컴퓨터 판독가능 저장 매체에 관한 것이다.
다양한 서비스들 및 애플리케이션들은 패킷 스트림의 수신을 수반한다. 예컨대, 고급 텔레비전 시스템 위원회(ATSC; Advanced Television Systems Committee) 3.0 표준은, 브로드캐스터가 송신 채널을 통해 인터넷 프로토콜(IP) 패킷들을 수신기들에 전달하는 브로드캐스트 방법을 정의한다. 구체적으로, ATSC 표준은, 각각의 전체가 인용에 의해 본원에 포함되는 ATSC 표준 A/322 - 물리 계층 프로토콜(2017년 6월 6일자 문헌 A/322:2017)(이하에서, "A/322 표준") 및 ATSC 표준 A/321 - 시스템 전달 및 시그널링(2016년 3월 23일자 문헌 A/321:2016)(이하에서, "A/321 표준")에서 물리 계층 프로토콜들을 정의한다. 이러한 프로토콜들은, UDP/IP 패킷들을 상위 계층들에 전달하기 위해, 그 전체가 인용에 의해 본원에 포함되는 링크 계층 프로토콜 ATSC 표준: 링크 계층 프로토콜(A/330)(2016년 9월 19일자 문헌 A/330:2016)(이하에서, "A/330 표준")과 조합되어 구현된다.
ATSC 3.0 수신 디바이스의 상위 계층 프로토콜들은, 수신, 복조, 및 하위 계층 처리가 발생하는 하위 계층들로부터 UDP/IP 패킷들을 수신하고 해석하며, 인터넷 통신들에 공통인 많은 프로토콜들을 중심으로 설계된다. 이들은, 그 전체가 인용에 의해 본원에 포함되는 ATSC 제안 표준 A/331(2017년 11월 7일자 문헌 S33-331r1)(이하에서, "A/331 표준")에서 설명되는, 단방향 전송을 통한 실시간 객체 전달(ROUTE; Real-Time Object Delivery over Unidirectional Transport)로 지칭되는 파일 전달을 위한 수정된 단방향 전송을 통한 파일 전달(FLUTE; File Delivery over Unidirectional Transport) 프로토콜, 및 국제 인터넷 표준화 기구(IETF; Internet Engineering Task Force)에 의해 개발된 많은 다른 인터넷 프로토콜들의 사용을 포함한다. A/331 표준은 또한 UDP/IP 기반 전송 프로토콜들을 정의한다.
ATSC 3.0 텔레비전 수신기는, 시그널링을 처리하여 디코딩 및 사용자에 대한 제시를 위한 패킷들을 선택하기 위해, 초당 수십 메가비트의 데이터율로 스트리밍 데이터의 수신을 관리할 수 있다. 브로드캐스트 스트림 내에서 전달되는 객체는 파일들이다. 그들 중 몇몇, 주로, 시그널링 데이터를 반송하는 것들은, 단일 UDP/IP 패킷들에 맞을 것이지만, 다른 것들은 길이가 메가바이트일 수 있고, 그에 따라, 전달을 위해 복수의 UDP/IP 패킷들로 조각화된다.
ATSC 3.0 수신기의 설계는 여러 메모리 관련 고려사항들을 다룰 수 있다. 예컨대, ATSC 3.0 수신기는 제한된 메모리를 가지며, 따라서, 그의 동작은 메모리 사용을 최적화해야 한다. 다른 제한된 리소스는 CPU 사이클이므로, ATSC 3.0 수신기에서의 수신된 데이터의 저장 및 처리는 CPU 사이클 수를 최소화해야 한다. 다른 고려사항들은, 메모리 누수들의 방지, 및 휘발성 메모리로부터 비-휘발성 메모리로의 적절한 데이터 전송을 포함하는, 휘발성 메모리(예컨대, RAM) 및 비-휘발성 메모리(예컨대, FLASH)의 적절한 사용을 포함한다. 마지막으로, ATSC 3.0 수신기는, 이용가능한 메모리가 불충분할 때, 수용가능한 성능 및 사용자 경험을 지원하도록 설계되어야 한다. 본 개시내용은 이러한 난제들을 다루는 전략을 설명한다.
본 개시내용의 실시예에 따르면, 패킷 스트림을 통해 수신된 파일들을 저장하기 위한 사전 설정된 바이트 크기를 갖는 버퍼를 관리하기 위한 방법이 제공된다. 방법은, 착신 파일의 파일 식별자 및 길이를 결정하는 단계, 및 착신 파일이 다음 기입 위치와 버퍼의 끝 사이의 공간에 맞지 않을 것임을 결정하는 단계를 포함한다. 착신 파일이 다음 기입 위치와 버퍼의 끝 사이의 공간에 맞지 않을 것이라는 결정에 대한 응답으로, 방법은, 버퍼에 저장된 하나 이상의 파일을 식별하는 맵에서, 초기 기입 위치에서 시작하여 착신 파일의 길이와 동일한 크기를 갖는 버퍼의 영역에 적어도 부분적으로 저장된 파일에 대응하는 각각의 엔트리를 삭제하는 단계를 포함한다. 삭제와 함께, 방법은, 버퍼의 초기 기입 위치와 연관하여, 착신 파일의 파일 식별자 및 길이를 포함하는 엔트리를 맵에 부가하는 단계, 및 버퍼의 초기 기입 위치에서 시작하여 착신 파일의 길이와 동일한 크기를 갖는 버퍼의 연속적 영역을 할당한 다음, 다음 기입 위치를 할당된 연속적 영역의 끝으로 이동시키는 단계를 포함한다. 마지막으로, 방법은, 착신 파일의 패킷들을 수신하고 수신된 패킷들을 할당된 연속적 영역에 저장하는 단계를 포함한다.
본 개시내용의 실시예에 따르면, 패킷 스트림을 통해 수신된 파일들을 사전 설정된 바이트 크기를 갖는 버퍼에 저장하기 위한 버퍼 관리 장치가 제공된다. 버퍼 관리 장치는, 착신 파일의 파일 식별자 및 길이를 결정하고, 착신 파일이 다음 기입 위치와 버퍼의 끝 사이의 공간에 맞지 않을 것임을 결정하도록 구성된다. 착신 파일이 다음 기입 위치와 버퍼의 끝 사이의 공간에 맞지 않을 것이라는 결정에 대한 응답으로, 버퍼 관리 장치는, 버퍼에 저장된 하나 이상의 파일을 식별하는 맵에서, 초기 기입 위치에서 시작하여 착신 파일의 길이와 동일한 크기를 갖는 버퍼의 영역에 적어도 부분적으로 저장된 파일에 대응하는 각각의 엔트리를 삭제하도록 구성된다. 삭제와 함께, 버퍼 관리 장치는, 버퍼의 초기 기입 위치와 연관하여, 착신 파일의 파일 식별자 및 길이를 포함하는 엔트리를 맵에 부가하고, 버퍼의 초기 기입 위치에서 시작하여 착신 파일의 길이와 동일한 크기를 갖는 버퍼의 연속적 영역을 할당한 다음, 다음 기입 위치를 할당된 연속적 영역의 끝으로 이동시키도록 구성된다. 마지막으로, 버퍼 관리 장치는, 착신 파일의 패킷들을 수신하고 수신된 패킷들을 할당된 연속적 영역에 저장하도록 구성된다.
본 개시내용의 실시예에 따르면, 컴퓨터 판독가능 명령어들을 저장하는 비-일시적인 컴퓨터 판독가능 저장 매체가 제공되며, 명령어들은, 프로세서에 의해 실행될 때, 프로세서로 하여금, 패킷 스트림을 통해 수신된 파일들을 저장하기 위한 사전 설정된 바이트 크기를 갖는 버퍼를 관리하기 위한 방법을 수행하게 한다. 방법은, 착신 파일의 파일 식별자 및 길이를 결정하는 단계, 및 착신 파일이 다음 기입 위치와 버퍼의 끝 사이의 공간에 맞지 않을 것임을 결정하는 단계를 포함한다. 착신 파일이 다음 기입 위치와 버퍼의 끝 사이의 공간에 맞지 않을 것이라는 결정에 대한 응답으로, 방법은, 버퍼에 저장된 하나 이상의 파일을 식별하는 맵에서, 초기 기입 위치에서 시작하여 착신 파일의 길이와 동일한 크기를 갖는 버퍼의 영역에 적어도 부분적으로 저장된 파일에 대응하는 각각의 엔트리를 삭제하는 단계를 포함한다. 삭제와 함께, 방법은, 버퍼의 초기 기입 위치와 연관하여, 착신 파일의 파일 식별자 및 길이를 포함하는 엔트리를 맵에 부가하는 단계, 및 버퍼의 초기 기입 위치에서 시작하여 착신 파일의 길이와 동일한 크기를 갖는 버퍼의 연속적 영역을 할당한 다음, 다음 기입 위치를 할당된 연속적 영역의 끝으로 이동시키는 단계를 포함한다. 마지막으로, 방법은, 착신 파일의 패킷들을 수신하고 수신된 패킷들을 할당된 연속적 영역에 저장하는 단계를 포함한다.
전술한 문단들은 일반적인 소개로 제공되었으며, 하기의 청구항들의 범위를 제한하도록 의도되지 않는다. 추가적인 이점들과 함께, 설명된 실시예들은, 첨부된 도면들과 함께 취해지는 다음의 상세한 설명을 참조하여 가장 잘 이해될 것이다.
본 개시내용 및 본 개시내용의 수반되는 이점들 중 많은 이점들은 첨부된 도면들과 관련하여 고려될 때 다음의 상세한 설명을 참조함으로써 더 잘 이해될 수 있으므로, 이들의 보다 완전한 이해가 용이하게 획득될 것이다.
도 1은 예시적인 디지털 텔레비전 브로드캐스트 시스템을 예시한다.
도 2는 예시적인 수신 장치를 예시한다.
도 3은 수신 장치에서 수행되는 예시적인 프로세스를 예시한다.
도 4는 수신 장치에서 수행되는 예시적인 "새로운 파일 시작" 서브-프로세스를 예시한다.
도 5a 및 도 5b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 6a 및 도 6b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 7a 및 도 7b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 8a 및 도 8b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 9a 및 도 9b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 10a 및 도 10b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 11a 및 도 11b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 12a 및 도 12b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 13a 및 도 13b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 14a 및 도 14b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 15는 컴퓨터의 예시적인 하드웨어 구성을 예시한다.
도 1은 예시적인 디지털 텔레비전 브로드캐스트 시스템을 예시한다.
도 2는 예시적인 수신 장치를 예시한다.
도 3은 수신 장치에서 수행되는 예시적인 프로세스를 예시한다.
도 4는 수신 장치에서 수행되는 예시적인 "새로운 파일 시작" 서브-프로세스를 예시한다.
도 5a 및 도 5b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 6a 및 도 6b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 7a 및 도 7b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 8a 및 도 8b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 9a 및 도 9b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 10a 및 도 10b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 11a 및 도 11b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 12a 및 도 12b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 13a 및 도 13b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 14a 및 도 14b는 예시적인 버퍼 및 대응하는 해시 테이블을 예시한다.
도 15는 컴퓨터의 예시적인 하드웨어 구성을 예시한다.
본 개시내용은 많은 상이한 형태들의 실시예를 허용하지만, 그러한 실시예들의 본 개시내용이 원리들의 예로서 고려되고 본 개시내용을 도시되고 설명된 특정 실시예들로 제한하도록 의도되지 않을 것이라는 이해와 함께, 특정 실시예들이 도면들에 도시되고 본원에서 상세히 설명될 것이다.
본원에서 사용되는 바와 같은 단수형 용어들은 하나 또는 하나 초과로서 정의된다. 본원에서 사용되는 바와 같은 "복수"라는 용어는 2개 또는 2개 초과로서 정의된다. 본원에서 사용되는 바와 같은 "다른"이라는 용어는 적어도 제2 또는 그 이상으로서 정의된다. 본원에서 사용되는 바와 같은 "포함(including)" 및/또는 "갖는"이라는 용어들은 포함(comprising)(즉, 개방형 언어)으로서 정의된다. 본원에서 사용되는 바와 같은 "결합"이라는 용어는, 직접적일 필요는 없고 기계적일 필요는 없지만 연결된 것으로서 정의된다. 본원에서 사용되는 바와 같은 "프로그램" 또는 "컴퓨터 프로그램"이라는 용어 또는 유사한 용어들은, 컴퓨터 시스템 상에서의 실행을 위해 설계된 명령어들의 시퀀스로서 정의된다. "프로그램" 또는 "컴퓨터 프로그램"은, 서브루틴, 프로그램 모듈, 스크립트, 함수, 프로시저, 객체 방법, 객체 구현, 실행가능 애플리케이션, 애플릿, 서블릿, 소스 코드, 객체 코드, 공유 라이브러리/동적 로드 라이브러리 및/또는 컴퓨터 시스템 상에서의 실행을 위해 설계된 명령어들의 다른 시퀀스를 포함할 수 있다.
본원에서 사용되는 바와 같은 "프로그램"이라는 용어는 또한 제2 맥락으로 사용될 수 있다(위의 정의는 제1 맥락에 대한 것임). 제2 맥락에서, 이 용어는 "텔레비전 프로그램"의 의미로 사용된다. 이러한 맥락에서, 이 용어는, 전자 프로그램 가이드(EPG: electronic program guide)에서 단일 텔레비전 프로그램으로서 해석되고 보고될 것들과 같은 임의의 일관성 있는 오디오/비디오 콘텐츠 시퀀스를 의미하도록 사용되며, 그 콘텐츠가 영화, 스포츠 경기, 여러 편의 시리즈의 일부분, 뉴스 브로드캐스트 등 어느 것인지와는 상관이 없다. 이 용어는 또한, EPG에서 프로그램으로서 보고되지 않을 수 있는 중간 광고(commercial spot)들 및 다른 프로그램-유사 콘텐츠를 포괄하도록 해석될 수 있다.
본 문서 전반에 걸친 "일 실시예", "특정 실시예들", "실시예", "구현", "예", 또는 유사한 용어들에 대한 언급은, 그 실시예와 관련하여 설명된 특정 특징, 구조, 또는 특성이 본 개시내용의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 그에 따라, 본 명세서 전반에 걸친 다양한 장소들에서의 그러한 문구들의 출현들 모두가 동일한 실시예를 지칭할 필요는 없다. 또한, 특정 특징들, 구조들, 또는 특성들은 제한 없이 하나 이상의 실시예에서 임의의 적합한 방식으로 조합될 수 있다.
본원에서 사용되는 바와 같은 "또는" 및 "~거나"라는 용어는 포괄적인 것으로서, 또는 어느 하나 또는 임의의 조합을 의미하는 것으로서 해석되어야 한다. 따라서, "A, B, 또는 C"는 "다음의 것들: A; B; C; A와 B; A와 C; B와 C; A와 B와 C 중 임의의 것"을 의미한다. 이러한 정의에 대한 예외는, 요소들, 기능들, 단계들, 또는 동작들의 조합이 어떤 방식으로든 본질적으로 상호 배타적일 때에만 발생할 것이다.
이제, 유사한 참조 번호들이 여러 도면들 전반에 걸쳐 동일하거나 대응하는 부분들을 지정하는 도면들을 참조하면, 다음의 설명은, 수신된 패킷 스트림의 파일들을 저장하기 위한 버퍼 관리 시스템에 관한 것이다.
본 개시내용의 실시예들은, 텔레비전 수신 장치(예컨대, ATSC 3.0 수신기)에서 수신되는 파일들을 수집 및 저장하기 위한 방법에 관한 것이다. 방법은, 예컨대, ATSC 3.0 브로드캐스트 송신의 특성들에 기반하여 CPU 사이클들이 최소화되고 동작이 최적화되도록 관리되는 하나 이상의 원형 버퍼를 사용한다. ATSC 3.0 송신의 하나의 그러한 특성은, 특정 파일들이 자주 반복된다는 것이다. 자주 반복되는 파일들의 일 예는, 스트리밍 미디어(예컨대, 비디오 기본 스트림, 오디오 기본 스트림 등)의 각각의 구성요소를 디코딩하는 것을 시작하는 데 필요한 "초기화 세그먼트(IS)" 파일들이다.
본 개시내용의 실시예들은 다음의 개념들에 기반한다.
(1)
착신 파일들의 길이는, 예컨대, A/331 표준에 정의된 시그널링으로 인해 미리 알려져 있다.
(2)
파일의 조각을 반송하는 각각의 패킷은, 파일의 처음으로부터 조각이 속하는 파일 내의 지점까지의 오프셋을 표시하는 오프셋 파라미터를 포함한다. 오프셋 파라미터는, 조각을 배치할 버퍼 내의 위치를 결정함으로써 조각들의 비-순차적 수신을 가능하게 하기 위해 텔레비전 수신 장치에 의해 사용될 수 있다.
(3)
파일은, 버퍼의 비-연속적 영역들 간에 분할됨이 없이 버퍼의 연속적 바이트에 기입된다. 그에 따라서, 파일의 처음이 버퍼의 끝 쪽에 기입되고 파일의 나머지가 버퍼의 헤드에 기입되는 "래핑"이 발생하지 않는다. 즉, "래핑"은 버퍼의 비-연속적 영역들에 있는, 다시 말해서, 버퍼의 끝 및 버퍼의 처음에 있는 파일의 부분들을 초래하기 때문에, 본원에 개시된 실시예들에서는 "래핑"이 수행되지 않는다.
(4)
(3)에서 위에 설명된 바와 같은 "래핑"이 수행되지 않지만, 주어진 파일이 현재 기입 위치와 버퍼의 끝 사이의 버퍼 영역에 맞지 않을 수 있는 경우, 공간을 만들기 위해 버퍼의 처음에 있는 하나 이상의 파일이 삭제될 수 있고, 현재 기입 위치가 버퍼의 처음으로 또는 버퍼의 처음 쪽으로 이동된다는 의미에서 파일들은 원형으로 기입될 수 있다.
(5)
각각의 버퍼는 적절하게 크기가 정해지며, 이에 따라, 비디오, 오디오, 및 자막들의 디코딩 및 동기화된 제시를 유지하는 데 필요한 다수의 파일들이 저장될 수 있다.
(6)
이미 버퍼에 있는 파일의 중복인 새로운 파일이 수신되는 경우, 이전에 수신된 파일을 저장하고 있는 버퍼의 영역은, 새로운 파일의 마지막 바이트가 버퍼에 저장된 후에 해제될 수 있다.
본 개시내용의 실시예들에서 사용되는 각각의 원형 버퍼는 메모리(예컨대, RAM) 내의 고정된 연속적 메모리 범위를 점유하고, 파일 객체들을 저장한다. 각각의 버퍼에 대해, 지시자(이하에서, "다음 시작 위치")는, 다음 새로운 파일의 제1 바이트가 기입될 메모리 위치를 식별할 수 있다. 각각의 버퍼에는, 배정된 고유 버퍼 번호, 및 버퍼에 있는 파일들을 표현하는 엔트리들을 열거하거나 다른 방식으로 식별하는 연관된 해시 테이블(또는 다른 테이블 또는 데이터 구조)을 갖는다. 버퍼의 해시 테이블의 각각의 엔트리는 버퍼에 저장된 하나의 파일에 대응하고, 일 실시예에서, 파일에 관한 적어도 다음의 파라미터들: 파일의 명칭, A/331 표준에 따른 파일의 전송과 연관된 전송 객체 식별자(TOI; Transport Object Identifier), 파일의 제1 바이트의 버퍼 내의 위치, 및 파일의 총 길이를 포함한다. A/331의 TOI는, A/331에 정의된 전송 프로토콜이 FLUTE에 기반하므로, RFC 6726에 정의된 FLUTE 표준에서의 TOI 값과 동일한 기능을 수행한다.
도 1은 텔레비전 콘텐츠에 대한 액세스를 제공하기 위한 예시적인 디지털 텔레비전 브로드캐스트 시스템(100)이다. 시스템은, 서비스 제공자(102), 수신 장치(120), 및 입력 디바이스(140)를 포함한다. 수신 장치(102)는 안테나를 통해 데이터를 수신하도록 구성될 수 있다. 수신 장치(102)는 추가로, 데이터를 수신하기 위해 인터넷(130)에 연결되도록 구성될 수 있다.
일 예에서, 서비스 제공자(102)는 텔레비전 콘텐츠의 브로드캐스터이고, 수신 장치(120)는, 텔레비전으로서 동작하도록 구성되는 임의의 디바이스, 이를테면, 평면 스크린 TV, 랩톱, 태블릿, 또는 스마트폰일 수 있다. 입력 디바이스(140)는 수신 장치(120)에 물리적으로 또는 무선으로 연결될 수 있고, 수신 장치(120)를 동작시키기에 적합한 임의의 디바이스, 이를테면, 숫자식 키들 및/또는 문자숫자식 키들을 갖는 리모컨, 쿼티(QWERTY) 키보드, 또는 수신 장치(120)와 호환가능한 애플리케이션을 실행하는 스마트폰일 수 있다. 입력 디바이스(140) 상의 키들은, 물리적 버튼들, 또는 터치스크린 상의 숫자식 또는 문자숫자식 키들의 디지털 표현일 수 있다. 본 개시내용의 실시예들은 다른 브로드캐스트 콘텐츠(예컨대, HTML5 애플리케이션들과 같은 실행가능 애플리케이션들)에 대한 액세스를 제공하는 데 활용될 수 있다. 서비스 제공자(102)는, 텔레비전 콘텐츠를 포함하고 디지털 텔레비전 브로드캐스트 신호를 통해 전달될 수 있는 브로드캐스트 스트림을 송신한다.
서비스 제공자(102)(예컨대, 브로드캐스터 엔티티 또는 브로드캐스트 스테이션)는, 일 실시예에서, 데이터 스트림(예컨대, 브로드캐스트 스트림)에서 콘텐츠, 애플리케이션들, 및/또는 서비스들을 수신 장치(120)에 송신하도록 구성되는 송신기를 갖는 송신 장치를 포함하는 서비스 배포 시스템을 동작시킨다. 송신기는, 예컨대, 디지털 지상 브로드캐스트를 통해, 데이터 스트림을 수신 장치(120)에 제공하도록 구성된다. 다른 예들에서, 데이터 스트림은, 디지털 지상 브로드캐스트, 모바일 폰 네트워크, 광대역 네트워크, 이를테면 인터넷, 케이블 네트워크, 및 위성 링크 중 하나 또는 이들의 조합을 통해 수신 장치(120)에 송신될 수 있다. 서비스 배포 시스템은, 수신 장치(120)에 데이터 스트림을 통신하기 위해 임의의 하나의 송신 기법 또는 다양한 송신 기법들을 사용할 수 있다.
일 실시예에 따른 서비스 배포 시스템은, 소스 인코더, 채널 인코더, 및 변조기를 포함한다. 소스 인코더는, 소스로부터 수신되는 오디오, 비디오, 시그널링, 제어, 또는 다른 데이터를 압축하기 위한, 데이터, 오디오, 및 비디오 인코더들을 포함한다. 채널 인코더는, 압축된 미디어 및 시그널링 데이터를 무작위화하고, 인터레이싱하고, 채널 코딩하고, 프레임 맵핑한다. 예컨대, 채널 인코더는, 많은 데이터 셀들을 직교 주파수 분할 다중화(OFDM) 심볼들 상에서 전달될 시퀀스들로 형성하는 프레임 구축자를 포함한다. 변조기(예컨대, 다중화기)는, 처리된 디지털 데이터를, 예컨대, OFDM 심볼들일 수 있는 변조 심볼들로 변환한다. 이어서, 다중화된 데이터는, 주파수 도메인 신호를 시간 도메인 신호로 변환하는 역 고속 푸리에 변환기(IFFT)로 전달된다. 시간 도메인 신호는, 심볼들 사이에 보호 구간(GI; guard interval)을 생성하기 위한 보호 삽입 모듈에 그리고 이어서 디지털-아날로그(D/A) 변환기에 공급된다. 이어서, 브로드캐스트 스트림을 송신하기 위해 상향-변환, RF 증폭, 및 오버-디-에어(over-the air) 브로드캐스팅이 수행된다.
송신 장치 또는 수신 장치의 특정 구성요소들이 다른 실시예들에서는 필요하지 않을 수도 있다. OFDM 송신기 및 수신기의 세부사항들은, 예컨대, DVB-T2 표준(2015년 7월 1일자 ETSI EN 302 755 V1.4.1)(인용에 의해 본원에 포함됨), A/322 표준, 및 A/321 표준에서 발견될 수 있다.
도 2는, 텔레비전 콘텐츠 및 브로드캐스터 애플리케이션들에 액세스하도록 구성되는 예시적인 수신 장치(120)를 예시한다. 수신 장치(120)는 고정 또는 모바일 디바이스, 이를테면, 텔레비전 세트, 셋톱 박스, 스마트폰, 태블릿 컴퓨터, 랩톱, 휴대용 컴퓨터, 또는 텔레비전 콘텐츠를 수신하도록 구성되는 임의의 다른 디바이스일 수 있다. 추가로, 수신 장치(120)는, 차량 또는 위에 설명된 고정 또는 모바일 디바이스들 중 임의의 것에 포함되는 디지털 텔레비전 수신기일 수 있다.
수신 장치(120)는, 하나 이상의 서비스 제공자(102)로부터 데이터 스트림(예컨대, 브로드캐스트 스트림)을 수신하도록 구성되는 수신기 회로, 및 수신 장치(120)의 다양한 기능들을 수행하도록 구성되는 처리 회로를 포함한다. 일 실시예에서, 튜너/복조기(202)가 브로드캐스트 스트림을 포함하는 브로드캐스트 송출(emission)들을 수신한다. 실시예에 따르면, 수신 장치(120)는 대안적으로 또는 부가적으로, 케이블 텔레비전 송신 또는 위성 브로드캐스트를 수신하도록 구성될 수 있다.
ATSC 3.0 브로드캐스트 송출이 튜너/복조기(202)에 의해 취득되었을 때, 착신 데이터 패킷들은 작업 메모리(240)에서 본원에 설명된 실시예들에 따라 버퍼링될 수 있다. 일부 실시예들에서, 본원에 설명된 관리 전략에 따라 버퍼링된 특정 파일들은 선택적으로, 예컨대, 영구 저장소(280)로, 버퍼들 및 해시 맵들에 의해 점유되지 않은 작업 메모리(240)의 부분으로, 또는 다른 RAM으로 이동된다. 파일들이 덮어 쓰여지는 버퍼들 이외의 메모리로의 파일들의 이러한 선택적 이동은, 나중의 시간에 참조(또는 다시 액세스)될 수 있는 파일들에 적용된다. 예들은, 브로드캐스터 애플리케이션들과 연관된 시그널링 테이블들 및 파일들을 포함한다. 미디어(예컨대, 비디오, 오디오, 및 자막들)와 연관된 파일들은 그들이 수신된 버퍼로부터 직접 렌더링 및 제시되고, 그들이 나중의 시간에 재생될 수 있는 영구 저장소로 이동되지 않을 수 있다. 그러나, 개인용 비디오 레코더(PVR) 기능성을 구현하는 수신 디바이스들의 경우, 미디어 파일들은 시간-편이된 재생을 위해 영구 저장소로 이동될 것이다.
역다중화기(204)는, 저장소(280)로부터의 임의의 필요한 파일들을 사용하여 데이터 스트림을 역다중화하고, 역다중화된 데이터를 별개의 오디오 및 비디오(A/V) 스트림들로 디코딩하기 위해 미디어 엔진(290)에 전달할 수 있다. 역다중화기(204)에 의해 출력되는 파일들, 이를테면, 메타데이터, 저수준 시그널링(LLS) 및 서비스 계층 시그널링(SLS) 파일들, 미디어 파일들, 및 전자 서비스 가이드(ESG) 파일들이 처리를 위해 CPU(238)에 제공될 수 있다. 오디오는 오디오 디코더(210)에 의해 디코딩되고, 비디오는 비디오 디코더(214)에 의해 디코딩된다. 추가로, 비-압축 A/V 데이터가, 이용가능한 경우, 비-압축 A/V 인터페이스(예컨대, HDMI 인터페이스)를 통해 수신될 수 있다.
수신 장치(120)는 일반적으로, 적어도 하나의 프로세서, 이를테면 CPU(238)의 제어 하에서 동작하며, 이는, 하나 이상의 버스(예컨대, 버스(250))를 통해 영구 저장소(280), 작업 메모리(240), 프로그램 메모리(242), 및 그래픽 서브시스템(244)에 결합된다. CPU(238)는, 수신된 미디어를 일 실시예에 따라 사용자에게 출력하기 위한 사용자 인터페이스를 생성하도록 구성된다. 그래픽 서브시스템(244)에 의해 출력되는 그래픽들은 컴포지터(compositor) 및 비디오 인터페이스(260)에 의해 비디오 이미지들과 결합되어 비디오 디스플레이 상의 표시에 적합한 출력을 생성한다.
CPU(238)는, 예컨대, 프로그램 메모리(242)에 저장된 HTML5 사용자 에이전트를 사용하여, 브로드캐스터 애플리케이션(예컨대, HTML5 애플리케이션), 고유한 브로드캐스터 애플리케이션 등에 포함된 스크립트 객체들(제어 객체들)을 실행하는 것을 포함하는 수신 장치(120)의 기능들을 수행하도록 동작한다.
일 실시예에서, 브로드캐스터 애플리케이션을 구성하는 파일들의 집합은, 그 전체가 인용에 의해 포함되는, 예컨대, ATSC 표준 A/331(2017년 12월 6일자 문헌 A/331:2017)(이하에서, "A/331 표준")에서 설명된 ROUTE 프로토콜을 통해 패키지들로서 브로드캐스트를 통해 전달될 수 있다. 예시적인 브로드캐스터 애플리케이션은, 그 전체가 인용에 의해 포함되는 ATSC 표준 A/344(2017년 12월 18일자 문헌 A/344:2017)(이하에서, "A/344 표준")에서 설명된다.
CPU(238)는, 특정 실시예들에서, 하나 이상의 기능의 제어를 중앙집중화하기 위해 수신 장치(120) 리소스들 중 어느 하나 또는 이들의 조합에 결합될 수 있다. 일 실시예에서, CPU(238)는 또한, 튜너/복조기(202) 및 다른 텔레비전 리소스들을 포함하는 수신 장치(120)의 제어를 감독하도록 동작한다.
일 실시예에서, 착신 데이터 패킷들을 통해 수신되는 파일들의 버퍼링은 CPU(238)에 의해 제어된다. 버퍼링 관리 프로세스(300)는 도 3을 참조하여 설명된다. 프로세스는, 패킷을 수신하는 단계(S30)로 시작된다. 패킷은 초기화된 버퍼 및 대응하는 해시 테이블에 대해 수신되는 제1 패킷일 수 있거나, 패킷 스트림에서 수신되는 후속 패킷들 중 하나일 수 있다.
제1 패킷을 수신하는 전자의 시나리오에서, 미리 결정된 바이트 크기의 버퍼가 초기화되고, 버퍼에 대응하는 해시 테이블이 생성된다. 초기 상태에서, 버퍼 및 해시 테이블 둘 모두는 비어 있고, 다음 시작 위치 지시자는 버퍼의 헤드로 초기화된다. 일단 수신기가 ATSC 3.0 브로드캐스트 송출로 튜닝되고 시그널링 테이블들이 검색(retrieve)되었으면, 요청된 서비스와 연관된 계층화된 코딩 전송(LCT) 채널들이 식별되었을 것이다. 예컨대, LCT 채널들은, A/331 표준에 의해 정의되는 바와 같은 서비스 기반 전송 세션 인스턴스 설명(S-TSID)을 포함하는 서비스 목록 테이블(SLT) 및 서비스 계층 시그널링(SLS)을 사용하여 식별될 수 있다.
각각의 LCT 채널은, 소스 및 목적지 IP 주소 및 포트 값들과 TSI 값의 특정 조합과 연관된다. 하나 초과의 LCT 채널이 동일한 소스 및 목적지 IP 주소 및 포트 값들의 IP 패킷들 내에서 반송될 수 있다. 일 실시예에서, TSI 값은 특정 LCT 채널을 구별한다. 즉, 각각의 수신된 LCT 채널은 대응하는 초기화된 버퍼 및 해시 테이블을 갖고, 이들은 그 LCT 채널의 TSI 값을 갖는 패킷들을 저장 및 관리한다.
ATSC A/331 표준은 2개의 상이한 가능한 전송 프로토콜, 즉, ROUTE/DASH 및 MPEG MMT를 정의한다. 본원에 개시된 버퍼 관리 프로세스의 실시예들은 이러한 전송 프로토콜들 둘 모두에 적용가능하다. MPEG DASH 표준은, 그 전체 내용들이 인용에 의해 포함되는, 국제 표준화 기구의 2014년 5월 15일자 문헌 ISO/IEC 23009-1:2014 "정보 기술 ― HTTP를 통한 동적 적응형 스트리밍(DASH) ― 파트 1: 미디어 제시 설명 및 세그먼트 포맷들"(이하에서, "MPEG DASH 표준")에서 설명된다.
도 3의 버퍼 관리 프로세스(300)의 단계(S30)를 다시 참조하면, 패킷의 수신에 후속하는 단계는, 단계(S32)에서의 대응하는 해시 테이블을 통한 반복이다. 해시 테이블을 통한 반복의 목적은, 단계(S34)에서, 수신된 패킷과 동일한 TOI 번호를 갖고 불완전한 것으로 라벨링된 해시 테이블의 엔트리가 존재하는지 여부를 결정하는 것이다. 일부 실시예들에서, 단계(S34)는, 예컨대, TOI 번호 그 자체가 파일 명칭을 고유하게 식별하지는 않는 실시예들에서, 동일한 파일 식별자(예컨대, 파일 명칭 및 TOI)를 갖는 해시 테이블의 엔트리가 존재하는지 여부를 결정하는 것을 포함한다. 수신된 패킷의 명칭 및 TOI 번호에 매칭하고 불완전한 것으로 라벨링된 해시 테이블의 엔트리가 발견되면, 이는, 수신된 패킷이, 이미 부분적으로 수신되었고 버퍼링된 파일의 세그먼트라는 것을 표시한다. 그에 따라서, 적절한 버퍼 공간이 파일에 할당되었고, 수신된 패킷은 그 할당된 버퍼 공간에 속한다.
따라서, 프로세스(300)의 단계(S34)에서의 예(YES) 분기는 단계(S36)로 이어지며, 여기서, 수신된 패킷이 해시 테이블의 발견된 엔트리에 대응하는 파일의 할당된 버퍼 영역에 저장된다. 해시 테이블의 발견된 엔트리는, 파일에 할당된 공간의 제1 바이트의 위치를 표시한다. 위에 논의된 바와 같이, 수신된 패킷은, 파일의 처음으로부터 수신된 패킷의 조각이 속하는 파일 내의 지점까지의 오프셋을 표시하는 오프셋 파라미터를 포함한다. 수신된 패킷의 오프셋 파라미터를 버퍼에 있는 파일의 제1 바이트의 위치에 부가함으로써, 수신된 패킷의 파일 조각에 대한 버퍼 내의 적절한 위치가 결정될 수 있고, 단계(S36)에서, 파일 조각이 버퍼에 저장될 수 있다.
파일 조각이 버퍼에 저장된 파일을 완성하는 경우에, 완성된 파일에 대응하는 해시 테이블의 엔트리로부터 "불완전" 라벨이 제거된다. 파일에 대한 마지막 파일 조각이 수신되고 해시 테이블의 엔트리로부터 "불완전" 라벨이 제거될 때, 동일한 명칭의 다른 파일이 이미 해시 테이블에 존재하는지를 결정하기 위해 해시 테이블의 탐색이 수행되며, 존재한다는 것은, 동일한 파일이 이전에 수신되었고 버퍼링되었다는 것을 의미한다. 그러한 중복 엔트리가 해시 테이블에서 발견되는 경우, 중복 엔트리는 해시 테이블로부터 제거된다. 앞서 수신된 중복 파일의 바이트들이 버퍼에 남아 있고 소거되지 않지만, 이 파일에 대응하는 엔트리가 해시 테이블로부터 제거되며, 이에 따라, 해시 테이블은 앞서 수신된 중복 파일이 기입된 버퍼의 영역에 대한 어떠한 참조도 포함하지 않는다.
단계(S34)로 돌아와서, 수신된 패킷의 TOI 번호에 매칭하고 불완전한 것으로 라벨링된 해시 테이블의 엔트리가 발견되지 않는 경우, 이는 2개의 가능성 중 하나를 표시한다. 수신된 패킷의 TOI 번호를 갖는 엔트리가 해시 테이블에 존재하지 않는 경우, 패킷은 새로운 착신 파일의 제1 패킷이다. 대안적으로, 수신된 패킷과 동일한 TOI 번호를 갖는 엔트리가 해시 테이블에 존재하지만 엔트리가 불완전한 것으로 라벨링되지 않은 경우, 이는, 동일한 파일의 이전 송신이 앞선 지점에서 완전히 버퍼링되었고 수신된 패킷이 파일의 새로운 송신의 제1 패킷이라는 것을 표시한다.
위의 경우들 중 어느 경우에서든, 단계(S34)의 아니오(NO) 분기에 있는 단계(S38)에서 새로운 파일을 시작하기 위한 프로세스가 수행되며, 이는, 수신된 패킷의 TOI 번호에 매칭하고 불완전한 것으로 라벨링된 해시 테이블의 엔트리가 발견되지 않았음을 표시한다. 새로운 파일을 시작하는 프로세스는, 새로운 파일 시작 동작(400)으로서 도 4를 참조하여 설명된다.
새로운 파일 시작 동작은 단계(S40)에서 시작되고, 새로운 파일이 버퍼의 남아 있는 공간에 맞을 것인지 여부를 결정하기 위한 단계(S41)로 이동된다. 이러한 결정을 행하기 위해, 예컨대 A/331 표준에서 위에 설명된 바와 같이, 시그널링을 통해 미리 수신되는, 새로운 파일의 크기가 다음 시작 위치 지시자의 바이트 위치에 부가된다. 결과적인 위치가 버퍼의 끝을 넘는 경우, 단계(S41)에서, 이용가능한 더 많은 공간을 먼저 만들지 않고는 새로운 파일이 버퍼의 남아 있는 공간에 맞지 않을 것이라는 결정이 이루어진다. 새로운 파일의 크기가 다음 시작 위치 지시자의 위치와 버퍼의 끝 사이에 남아 있는 버퍼 영역보다 큰 경우, 만들어질 공간은 버퍼의 헤드로부터 취해질 것이다.
반면에, 새로운 파일의 크기를 다음 시작 위치 지시자의 바이트 위치에 부가하는 것으로부터 초래되는 위치가 버퍼의 끝을 넘지 않는 경우, 단계(S41)에서, 새로운 파일은 해시 테이블의 임의의 엔트리들을 제거할 필요 없이 버퍼의 남아 있는 공간에 맞을 것이라고 결정된다. 이러한 경우에, 프로세스는, 새로운 파일의 범위가 해시 테이블에 열거된 다른 파일들과 겹칠 것인지 여부를 결정하기 위해 단계(S46)로 이동된다.
단계(S46)에서, 파일은 다음 시작 위치 지시자에서 기입되기 시작할 것으로 알려져 있으며, 그 이유는, 단계(S41)에서, 파일이 다음 시작 위치와 버퍼의 끝 사이에 맞을 것이라고 결정되었기 때문이다. 그에 따라서, 단계(S46)에서의 새로운 파일의 범위는 다음 시작 위치에서 시작하여 새로운 파일의 길이로 연장된다. 새로운 파일의 이러한 범위를 고려하여, 단계(S46)에서, 해시 테이블에 열거된 임의의 파일(들)이 새로운 파일의 범위와 겹치는지 여부가 결정된다. 이러한 프로세스에서, 해시 테이블의 각각의 엔트리의 할당된 연속적 버퍼 영역이, 해시 테이블 필드에 표시된 파일의 제1 바이트의 위치의 바이트 번호에서 시작하도록 결정되고, 해시 테이블 엔트리의 파일 길이 필드와 길이가 동일하도록 결정된다. 이어서, 각각의 개개의 해시 테이블 엔트리에 대한 연관된 연속적 버퍼 영역이 새로운 파일의 범위와 겹치는지 여부가 결정된다. 다시 말해서, 단계(S46)는, 새로운 파일이 버퍼에 저장된 경우, 해시 테이블에 열거된 임의의 파일(들)이 부분적으로 또는 전체적으로 덮어 쓰여질 것인지 여부를 결정한다.
단계(S46)에서, 새로운 파일의 범위가 해시 테이블에 있는 파일들과 겹치지 않을 것이라고 결정되는 경우, 프로세스는 단계(S47)로 이동되며, 여기서, 다음 시작 위치에서 시작되는 버퍼의 영역이 새로운 파일에 할당된다. 단계(S47)의 할당의 일부로서, 시그널링을 통해 미리 수신되고 단계(S30)에서 수신된 패킷에 포함되는, 새로운 파일에 관한 정보에 기반하여, 새로운 엔트리가 해시 테이블에 생성된다. 예컨대, 파일의 명칭, 파일의 TOI, 및 파일의 길이가 해시 테이블에 단일 엔트리로서 채워진다. 파일의 제1 바이트의 위치는 다음 시작 위치 지시자의 현재 위치로서 해시 테이블에 채워진다. 마지막으로, 단계(S30)에서 수신된 패킷이 전체 파일을 포함하지 않는 경우, 해시 테이블의 새로운 엔트리는 불완전한 것으로 라벨링된다.
그에 따라서, 단계(S47)에서, 해시 테이블의 생성된 엔트리에 기반하여 새로운 파일에 버퍼의 영역이 할당된다. 할당된 버퍼 영역은 연속적이고, 다음 시작 위치 지시자의 현재 위치에서 시작한다. 할당된 버퍼 영역의 크기는 새롭게 생성된 해시 테이블 엔트리에서 표시된 파일의 길이이다. 단계(S47)에서의 버퍼의 영역의 할당 시, 단계(S48)에서, 다음 시작 위치 지시자의 위치는 할당된 영역의 처음으로부터 할당된 영역의 끝으로 이동되거나, 새로운 파일이 버퍼의 끝까지 정확히 채울 것인 경우에는, 버퍼의 헤드로 이동된다. 본 개시내용에서, "버퍼의 헤드"는 버퍼의 처음 근처의 위치를 나타내기 위해 사용되며, 이는, 바이트 0, 또는 바이트 0에 가까운 다른 위치일 수 있다.
이어서, 단계(S49)에서, 단계(S30)에서 수신된 패킷이 할당된 영역에 저장된다. 단계(S30)에서 수신된 패킷이 새로운 파일의 제1 조각을 반송할 필요는 없기 때문에, 단계(S49)에서, 단계(S36)에서와 동일한 오프셋 결정이 수행된다. 다시 말해서, 수신된 패킷은, 파일의 처음으로부터 수신된 패킷의 조각이 속하는 파일 내의 지점까지의 오프셋을 표시하는 오프셋 파라미터를 포함한다. 수신된 패킷의 오프셋 파라미터를 버퍼에 있는 파일의 제1 바이트의 위치에 부가함으로써, 수신된 패킷의 파일 조각에 대한 버퍼 내의 적절한 위치가 결정될 수 있고, 단계(S49)에서, 파일 조각이 버퍼에 저장될 수 있다.
단계(S46)로 돌아와서, 단계(S46)에서, 새로운 파일의 범위가 해시 테이블에 저장된 파일(들)의 할당된 버퍼 영역들과 겹칠 것이라고 결정된 경우, 이 단계의 예 분기가 후속된다. 위에 설명된 바와 같이, 새로운 파일의 범위는 다음 시작 위치에서 시작하여 새로운 파일의 길이로 연장되며, 해시 테이블에 있는 각각의 파일의 할당된 버퍼 영역들은 해시 테이블에 저장된 정보에 기반하여 결정될 수 있다. 해시 테이블에 있는 적어도 하나의 파일의 할당된 버퍼 영역이 새로운 파일의 범위와 겹치는 것으로 밝혀진 경우에, 단계(S50)가 수행된다. 단계(S50)에서, 새로운 파일의 범위와 겹치는 것으로 밝혀진 해시 테이블에 있는 파일 또는 파일들이 해시 테이블로부터 삭제된다. 이는, 새로운 파일의 할당된 영역과 겹치는 해시 테이블의 엔트리들을 가짐이 없이 새로운 파일에 대한 버퍼 영역의 할당을 위한 단계(S47)로 프로세스가 이동되는 것을 허용한다. 그 후, 위에 설명된 바와 같이 단계들(S48 및 S49)이 수행된다.
단계(S41)로 돌아와서, 새로운 파일이 버퍼의 남아 있는 공간에 맞지 않을 것으로 결정되는 경우, 이 단계의 아니오 분기가 후속된다. 위에 설명된 바와 같이, 이는, 새로운 파일의 크기가, 다음 시작 위치 지시자의 바이트 위치와 버퍼의 끝 사이에 남아 있는 버퍼 영역보다 클 때 발생한다. 이러한 경우에, 단계(S42)에서, "공간 만들기" 동작이 수행된다.
공간 만들기 동작은, 새로운 파일이 버퍼의 남아 있는 공간에 맞지 않을 것이라는 단계(S41)에서의 결정의 결과로서 단계(S42)에서 시작된다. 그에 따라서, 새로운 파일의 범위는 버퍼의 처음 또는 버퍼의 처음 쪽의 초기 기입 버퍼 위치에서 시작할 것이고, 새로운 파일의 길이로 연장될 것이다. 이러한 시작 지점으로부터, 새로운 파일의 범위는 연속적 블록에서 새로운 파일의 길이로 연장될 것이다.
위에 설명된 바와 같이, 일부 실시예들에서, 새로운 파일은, 버퍼의 맨 처음(바이트 0)에 있을 필요는 없지만 그럼에도 불구하고 새로운 파일의 길이를 수용할 수 있는 초기 기입 버퍼 위치에 기입될 것이다. 이전에 언급된 바와 같이, "버퍼의 헤드"는 버퍼의 처음 근처의 위치를 나타내기 위해 사용되며, 이는, 바이트 0, 또는 바이트 0에 가까운 다른 위치일 수 있다. 즉, 새로운 파일의 범위는, 일부 실시예들에서, 바이트 0에서 시작하지 않을 것이지만 일부 다른 초기 기입 버퍼 위치에서 시작할 것이고, 새로운 파일의 길이로 연장될 것이다. 일 실시예에서, 새로운 파일의 범위는, 새로운 파일을 저장하기 위해 덮어 쓰여져야 하는, 이전에 저장된 파일 또는 파일들의 그룹의 제1 바이트에 대응하는 바이트 번호에서 시작할 것이다. 다른 실시예에서, 새로운 파일의 범위는, 새로운 파일을 저장하는 데 필요한 부가적인 바이트 수만큼 다음 시작 위치를 편이시킴으로써 결정되는 바이트 번호에서 시작할 것이다.
다음으로, 단계(S43)에서, 새로운 파일의 범위와 겹치는 해시 테이블의 각각의 엔트리가 식별된다. 단계(S41)에서, 새로운 파일이 버퍼의 남아 있는 공간에 맞지 않을 것으로 밝혀졌기 때문에, 새로운 파일의 범위는, 위에 설명된 바와 같이, 버퍼의 헤드에 있거나 그 근처에 있을 수 있는 초기 기입 버퍼 위치에서 시작하여 새로운 파일의 길이로 연장된다.
단계(S43)에서, 해시 테이블의 각각의 엔트리에 대해, 버퍼에 있는 파일의 연관된 연속적 영역이 해시 테이블 필드에 표시된 파일의 제1 바이트의 위치의 바이트 번호에서 시작하도록 결정되고, 해시 테이블 엔트리의 파일 길이 필드와 길이가 동일하도록 결정된다. 이어서, 각각의 개개의 해시 테이블 엔트리에 대한 연관된 연속적 영역이 새로운 파일의 범위와 겹치는지 여부가 결정된다. 다시 말해서, 단계(S43)는, 새로운 파일이 버퍼에 저장된 경우, 부분적으로 또는 전체적으로 덮어 쓰여질, 해시 테이블에 열거된 모든 파일들을 식별한다.
단계(S44)에서, 단계(S43)에서 식별된 모든 해시 테이블 엔트리들이 해시 테이블로부터 삭제된다. 이는 새로운 파일을 기입하기 위한 준비로서 행해지며, 그에 의해, 해시 테이블로부터 엔트리들이 삭제된 파일들이 부분적으로 또는 전체적으로 덮어 쓰여진다.
단계(S44)의 완료 시, 프로세스는 단계(S45)로 이동되며, 여기서, 초기 기입 위치에서 시작하는 버퍼의 영역이 새로운 파일에 할당된다. 단계(S45)에서의 할당의 일부로서, 새로운 엔트리가 해시 테이블에 생성된다. 시그널링을 통해 미리 수신되고 단계(S30)에서 수신된 패킷에 포함되는, 새로운 파일에 관한 정보에 기반하여, 파일의 명칭, 파일의 TOI, 및 파일의 길이가 해시 테이블에 새로운 엔트리로서 채워진다. 초기 기입 위치는 파일의 제1 바이트의 위치로서 새로운 엔트리에 표시된다. 위에 설명된 바와 같이, 일부 실시예들에서, 초기 기입 위치는 버퍼 용량을 최적화하기 위해 버퍼의 헤드에 위치된다. 다른 실시예들에서, 초기 기입 위치는, 초기 기입 위치와 버퍼의 끝 사이의 공간이 새로운 파일의 크기를 수용할 수 있는 한, 다른 버퍼 위치에 위치된다. 마지막으로, 단계(S30)에서 수신된 패킷이 전체 파일을 포함하지 않는 경우, 해시 테이블의 새로운 엔트리는 불완전한 것으로 라벨링된다.
단계(S45)의 완료 시, 이어서, 단계(S48)에서, 다음 시작 위치 지시자의 위치가 할당된 영역의 끝으로 이동되고, 단계(S49)에서, 단계(S30)에서 수신된 패킷이 할당된 영역에 저장된다. 위에 설명된 바와 같이, 수신된 패킷의 오프셋 파라미터를 버퍼에 있는 파일의 제1 바이트의 위치(버퍼 영역이 단계(S47)에서 할당된 경우 다음 시작 위치 지시자의 위치이거나, 버퍼 영역이 단계(S45)에서 할당된 경우 초기 기입 위치임)에 부가함으로써, 단계(S49)에서, 패킷들의 "비-순차적" 수신이 수용된다. 그러한 부가에 따라, 수신된 패킷의 파일 조각에 대한 버퍼 내의 적절한 위치가 결정될 수 있고, 단계(S49)에서, 파일 조각이 버퍼에 저장될 수 있다.
다음으로, 도 3 및 도 4를 참조하여 위에 설명된 프로세스들에 따른 버퍼 및 해시 테이블의 동작의 예들이 제공될 것이다. 도 5a 및 도 5b는 버퍼 및 대응하는 해시 테이블의 초기 상태를 도시한다. 이러한 예에서, 버퍼의 미리 결정된 바이트 크기는 20,000,000 바이트이다. 일부 실시예들에서, 버퍼는 RAM의 연속적 메모리 블록이다. 도 5a의 초기화된 상태에서, 다음 시작 위치 지시자의 위치는 버퍼의 헤드이다. 다음의 예들에서, 0 내지 20,000,000의 바이트 번호들은 버퍼의 연속적 메모리 블록 내의 상대적 위치들을 표시하며, 버퍼가 위치되는 RAM 내의 절대적 메모리 주소들 또는 위치들을 표시하지 않는다.
위에 설명된 바와 같이, 초기화된 버퍼 및 해시 테이블은, 동일한 TSI 값을 가진 패킷들을 갖는 수신된 LCT 채널에 대응한다. 도 5a 및 도 5b의 현재 예에서, 선택된 서비스는, 3개의 LCT 채널을 정의하는 ROUTE 세션을 포함한다. 본 예에서, 서비스의 비디오 구성요소의 파일들이 TSI 값 443과 연관된 LCT 채널 상에서 전송되고 도 5a의 초기화된 버퍼에 버퍼링될 것이다. 일부 실시예들에서, TSI 값은 해시 테이블 식별자에 포함된다.
도 6a 및 도 6b는, 파일에 관한 시그널링을 수신 및 처리함으로써 도출되는 "ch4-2-v00392.mp4"라는 명칭의 비디오 DASH 미디어 세그먼트 파일에 관한 정보에 기반하여 프로세스(300)를 수행하는 것의 결과를 도시한다. 일 실시예에서, 시그널링은, 선택된 서비스와 연관된 S-TSID에서 발견되는 A/331 표준에 따른 확장된 파일 전달 테이블(EFDT)이다. 이러한 파일을 반송하는 패킷들이 도 6a의 예시적인 실시예에서 버퍼에 저장되기 시작했다.
파일 ch4-2-v00392.mp4에 대응하는 수신된 제1 패킷에 대해, 단계(S34)의 결정은 아니오인데, 그 이유는, 해시 테이블이 여전히 도 5b의 초기화된 상태에 있고, 파일 ch4-2-v00392.mp4와 동일한 TOI 번호를 갖는 불완전한 엔트리가 존재하지 않기 때문이다. 새로운 파일 동작(400)에서, 버퍼가 도 5a의 초기화된 상태에 있기 때문에, 단계(S41)에서, 파일은 버퍼의 남아 있는 공간에 맞는 것으로 결정된다. 도 6b는, 파일의 수신 전의 다음 시작 위치 지시자의 위치였던 바이트 0에 파일의 제1 바이트가 저장되었고 파일의 길이가 5,000,000 바이트라는 것을 표시하는 이 파일에 대한 새로운 엔트리의 생성을 도시한다.
도 6a는, (TOI = 392로 표시된) 버퍼의 영역이 새로운 파일에 할당되었고 다음 시작 위치의 위치가 할당된 영역의 끝으로(즉, 바이트 5,000,000으로) 이동된 버퍼의 상태를 도시한다. 할당된 영역의 음영진 구역은, 파일을 반송하는 일부 패킷들이 수신되었고 버퍼에 저장되었지만 파일이 아직 완전하지 않은 상태를 표시한다.
처음에, 파일과 연관된 모든 바이트들이 검색될 때까지, 도 6b에 도시된 바와 같이, 시그널링에서(예컨대, EFDT.FDT-Instance.File@Content-Location에서) 수신된 파일명 스트링이 ".new"가 덧붙여진 채로 해시 테이블에 저장된다. ".new"의 존재는 해시 테이블의 엔트리를 불완전한 것으로 표시하는 방식이고, 해시 테이블의 엔트리가 버퍼에서의 수신이 불완전한 파일을 표현한다는 것을 표시한다. 파일의 수신이 완료되지 않았다는 것을 표시하기 위해 다른 식별자가 덧붙여질 수 있거나 별개의 파라미터가 해시 테이블에 부가될 수 있다.
그에 따라서, 파일을 반송하는 모든 후속(즉, 처음에 수신되지 않은) 패킷들의 처리에서는, 단계(S34)에서, TOI 매치를 갖는 해시 테이블의 불완전한 엔트리가 발견되는데, 그 이유는, 도 6b의 해시 테이블이 이제 이 파일에 대한 불완전한 엔트리를 포함하기 때문이다. 따라서, 파일을 반송하는 후속 수신된 패킷들은 단계(S36)에 따라 도 6a에 도시된 할당된 영역에 저장된다.
파일의 마지막 바이트가 수신되었을 때, 파일명의 ".new" 부분이 해시 테이블에서 삭제되고, 파일은 제1 바이트의 기록된 위치에서 액세스될 수 있다. 파일명의 ".new" 부분이 삭제됨으로써 파일이 완전한 것으로 라벨링될 때, 동일한 파일명의 다른 엔트리가 해시 테이블에 존재하는지의 확인이 이루어진다. 중복이 발견되는 경우, 위에 설명된 바와 같이, 동일한 파일명을 갖는 해시 테이블의 앞선 엔트리가 제거된다. 일 실시예에서, 파일의 새로운 버전은 이전 버전과 상이한 TOI 번호를 갖는다.
도 7a 및 도 7b의 예시적인 실시예에서, 제1 파일(ch4-2-v00392.mp4)은 완전히 수신되었으며, 이는, 파일명의 끝에서의 ".new"의 부재, 및 바이트 0 내지 5,000,000 사이의 할당된 버퍼 영역의 완전히 음영진 상태에 의해 표시된다. 예컨대 EFDT를 파싱함으로써, 제2 파일에 관한 정보가 발견된다.
상기된 바와 같이, 제2 파일의 처음에 수신된 패킷에 대해 프로세스(300)가 수행된다. 제2 파일의 길이는 7,000 바이트인 것으로서 시그널링된다. 제2 파일의 처음에 수신된 패킷에 대해, 단계(S34)에서의 응답은 아니오이고, 새로운 파일 동작(400)이 수행된다. 단계(S41)에서, 제2 파일의 7,000 바이트 전부가 버퍼의 끝을 지나감이 없이 버퍼에 맞을 것이라고 결정된다. 단계(S46)에서, 새로운 파일의 범위가 해시 테이블에 있는 임의의 파일들과 겹치지 않을 것이라고 결정된다. 따라서, 제2 파일에 대응하는 엔트리가 해시 테이블에 부가된다. 도 7b는 제2 파일이 완전히 수신된 후의 해시 테이블의 상태를 도시하며, 따라서, 제2 파일에 대응하는 엔트리는 파일명의 끝에서 ".new"로 불완전한 것으로 라벨링되지 않는다. 제2 파일의 제1 바이트는 바이트 5,000,000에 있으며, 이는, 도 6a에 도시된 바와 같이, 제2 파일의 수신 전의 다음 시작 위치 지시자의 위치였다. 제2 파일에 대한 버퍼 공간의 할당 후에, 다음 시작 위치 지시자의 위치는, 도 7a에 도시된 바와 같이, 제2 파일에 대한 할당된 버퍼 공간의 끝으로, 즉, 바이트 5,007,000으로 이동된다.
제2 파일 "ch4-2-v-init.mp4"는 서비스의 비디오 기본 스트림 구성요소에 대한 초기화 파일(즉, 초기화 세그먼트)이다. 일부 실시예들에서, 임의의 시간에 스트림에 합류할 수 있는 수신 장치에 대한 액세스를 용이하게 하기 위해, 그러한 초기화 파일들은 패킷 스트림에서 자주 반복된다. 초기화 파일들의 상시 이용가능성을 보장하기 위해, 일부 실시예들에서, 버퍼의 크기는 임의의 주어진 시점에 초기화 파일을 저장할 만큼 충분히 크도록 설정된다. 예컨대, 초기화 파일의 재발률 및 파일 스트림의 다른 인자들을 고려하여, 버퍼의 크기는, 다음 초기화 파일이 수신되고 버퍼에 저장될 때 이전에 수신된 초기화 파일이 아직 덮어 쓰여지지 않았도록 하는 크기로 설정될 수 있다. 일부 실시예들에서, 수신기는, 착신 브로드캐스트 파일들의 크기에 기반하여 버퍼 크기를 동적으로 변화시키도록 구성될 수 있다. 일부 실시예들에서, 초기화 파일은 메모리의 다른 부분으로 이동될 수 있으며, 그에 의해, 초기화 파일이 상시 이용가능하고 덮어 쓰여지지 않을 것임이 보장된다.
다음으로, 이러한 예시적인 실시예에서, 제3 파일과 연관된 패킷들이 브로드캐스트 스트림에서 발견되고 처리된다. 제3 파일은 "ch4-2-v00393.mp4"라는 명칭의 후속 비디오 미디어 세그먼트이다. 길이는 4,000,000 바이트인 것으로서 시그널링된다. 파일 ch4-2-v00393.mp4에 대응하는 수신된 제1 패킷에 대해, 단계(S34)의 결정은 아니오인데, 그 이유는, 해시 테이블이 도 7b의 상태에 있고, 파일 ch4-2-v00393.mp4와 동일한 TOI 번호를 갖는 불완전한 엔트리가 존재하지 않기 때문이다. 새로운 파일 동작(400)에서, 버퍼가 도 7a에 도시된 상태에 있고 다음 시작 위치 지시자와 버퍼의 끝 사이의 공간이 제3 파일의 4,000,000 바이트 길이보다 크기 때문에, 단계(S41)에서, 제3 파일은 버퍼의 남아 있는 공간에 맞는 것으로 결정된다. 또한, 단계(S46)에서, 새로운 파일의 범위가 해시 테이블에 있는 임의의 파일들과 겹치지 않을 것이라고 결정된다. 도 8b는, 제3 파일의 수신 전의 도 7a에서의 다음 시작 위치 지시자의 위치였던 바이트 5,007,000에 파일의 제1 바이트가 저장되었다는 것을 표시하는 제3 파일에 대한 부가된 새로운 엔트리를 도시한다.
도 8a는, (TOI = 393으로 표시된) 버퍼의 영역이 새로운 파일에 할당되었고 다음 시작 위치의 위치가 할당된 영역의 끝으로(즉, 바이트 9,007,000으로) 이동된 버퍼의 상태를 도시한다. 할당된 영역의 음영진 구역은, 파일을 반송하는 일부 패킷들이 수신되었고 버퍼에 저장되었지만 파일이 아직 완전하지 않은 상태를 표시한다.
그에 따라서, 제3 파일을 반송하는 모든 후속(즉, 처음에 수신되지 않은) 패킷들의 처리에서는, 단계(S34)에서, TOI 매치를 갖는 해시 테이블의 불완전한 엔트리가 발견되는데, 그 이유는, 도 8b의 해시 테이블이 이제 이 파일에 대한 불완전한 엔트리를 포함하기 때문이다. 따라서, 제3 파일을 반송하는 후속 수신된 패킷들은 단계(S36)에 따라 도 8a에 도시된 할당된 영역에 저장된다.
다음으로, 이러한 예시적인 실시예에서, 제2 파일(ch4-2-v-init.mp4)의 반복된 인스턴스를 반송하는 패킷들이 본 실시예의 버퍼 및 해시 테이블에 대응하는 LCT 채널(TSI = 443)에서 발견된다. 이러한 새로운 파일은 제2 파일의 반복인 것으로 식별되는데, 그 이유는, 그 새로운 파일의 파일명이 제2 파일의 것과 동일하고 두 파일들 모두의 TSI/TOI 값들이 동일하기 때문이다. 새롭게 수신된 파일이 제2 파일의 업데이트된 버전이었을 경우, 파일명들은 동일했을 것이지만 파일들의 TOI 번호들이 상이했을 것이다.
그럼에도 불구하고, 일 실시예에서, 새로운 파일의 처음에 수신된 패킷에 대해 프로세스(300)가 수행된다. 제2 파일의 길이는 7,000 바이트인 것으로서 시그널링된다. 제2 파일의 처음에 수신된 패킷에 대해, 단계(S34)에서의 응답은 아니오인데, 그 이유는, 새로운 파일과 동일한 TOI 번호(즉, 2)를 갖는 해시 테이블 엔트리가 불완전한 것으로 라벨링되지 않기 때문이며, 따라서, 새로운 파일 동작(400)이 수행된다.
위에 설명된 바와 같이, 일부 수신기 실시예들은, 반복된 초기화 파일들의 상시 이용가능성을 요구한다. 그러한 실시예들에서, 아래에 설명되는 바와 같이, 이전에 버퍼링된 중복들을 제거하면서 초기화 파일의 각각의 새로운 사본이 수신되고 버퍼링된다. 대안적인 실시예들에서, 초기화 파일은, 파일의 이용가능성을 보장하기 위해, 버퍼 외부의 다른 메모리 부분으로 이동될 수 있다. 초기화 파일의 상시 이용가능성을 요구하지는 않을 수 있는 다른 실시예들에서, 중복 수신된 파일은 저장되지 않고, 동일한 TOI 번호를 갖는 해시 테이블 엔트리에 대응하는 이전에 버퍼링된 파일이 유지된다. 다른 실시예들에서, 중복 수신된 파일은, 수신된 파일이 필요하지 않고 수신 장치에 의해 판독되지 않을 것이라는 결정에 대한 응답으로, 저장되지 않는다.
단계(S41)에서, 제2 파일의 7,000 바이트 전부가 버퍼의 끝을 지나감이 없이 버퍼에 맞을 것이라고 결정된다. 단계(S46)에서, 새로운 파일의 범위가 이미 해시 테이블에 있는 임의의 파일들과 겹치지 않는다고 결정된다. 따라서, 새로운 파일에 대응하는 엔트리가 제4 엔트리로서 해시 테이블에 부가된다. 도 9b는 아직 모든 바이트들이 수신되지는 않았지만 새로운 파일의 일부 패킷들이 수신된 후의 해시 테이블의 상태를 도시하며, 새로운 파일에 대응하는 엔트리는 파일명의 끝에서 ".new"로 불완전한 것으로 라벨링된다. 새로운 파일의 제1 바이트는 바이트 9,007,000에 있으며, 이는, 도 8a에 도시된 바와 같이, 제2 파일의 수신 전의 다음 시작 위치 지시자의 위치였다.
새로운 파일에 대한 버퍼 공간의 할당 후에, 다음 시작 위치 지시자의 위치는, 도 9a에 도시된 바와 같이, 할당된 버퍼 공간의 끝으로, 즉, 바이트 9,014,000으로 이동된다. 반복된 ch4-2-v-init.mp4 파일의 마지막 바이트가 수신될 때, 위에 설명된 바와 같이, 동일한 명칭을 갖는 파일이 이미 해시 테이블에 존재하는지 여부를 결정하기 위해 해시 테이블의 각각의 엔트리가 확인되고, 해시 테이블의 식별된 앞선 엔트리들이 제거된다.
도 10a는 반복된 ch4-2-v-init.mp4 파일이 완전히 수신되고 버퍼에 저장되는 예시적인 실시예를 도시한다. 반복된 ch4-2-v-init.mp4 파일이 완전할 때, 도 9b의 해시 테이블의 제2 엔트리는 새롭게 수신된 파일의 중복으로서 식별된다. 그에 따라서, 도 10b에 도시된 바와 같이, 파일의 제1 인스턴스가 제거된다. 이 시점에, 예시적인 실시예에서, 수신 장치가 파일 ch4-2-v-init.mp4를 참조할 필요가 있으면, 해시 테이블은 버퍼의 바이트 9,007,000에서 시작하여 파일이 저장된다는 것을 표시할 것이고, 수신 장치는 파일의 가장 최근에 수신된 사본을 참조할 것이다.
도 10a에서, ch4-2-v-init.mp4 파일의 제1 사본을 저장한 버퍼의 영역(즉, 바이트 5,000,000과 바이트 5,007,000 사이의 영역)은 그 파일의 바이트들이 버퍼에 남아 있는 것을 표시하기 위해 (전과 같이) 음영진 것으로서 도시된다. 바이트들이 소거되지 않지만, 해시 테이블의 버퍼의 이러한 영역에 대한 참조가 전혀 존재하지 않는다.
다음으로, 도 11a 및 도 11b의 예시적인 실시예에서, 제3 미디어 세그먼트 파일(ch4-2-v00394.mp4) 및 다른 초기화 세그먼트(ch4-2-v-init.mp4)가 수신되고 버퍼링되었다. 위에 설명된 바와 같이, 새로운 착신 파일의 제1 패킷에 직면할 때마다, 새로운 파일 동작(400)의 단계(S41)에서, 완전한 파일이 다음 시작 위치에서 시작하여 버퍼에 맞을 것인지 여부의 결정이 이루어진다. 도 11a에 도시된 바와 같이, 이러한 2개의 새로운 파일은 버퍼의 남아 있는 공간에 맞으므로, 파일들 각각에 대해, 단계(S41)에서의 응답은 예이다. 이러한 파일들의 범위들은 또한 해시 테이블에 저장된 임의의 다른 파일들과 겹치지 않으므로, 단계(S46)에서의 응답은 아니오이다. 또한, 위에 설명된 바와 같이, 반복된 초기화 세그먼트(또는 임의의 반복된 파일)를 수신하는 것은, 새로운 반복된 파일의 완전한 수신 시에 해시 테이블로부터 이전에 수신된 파일의 엔트리를 제거하는 것을 수반한다. 본 예시적인 실시예에서, 해시 테이블이 순서화되지 않으므로, 엔트리들은 해시 테이블 내의 임의의 위치에 부가되고 그로부터 제거될 수 있다.
도 11a의 예시적인 실시예에서, 버퍼는 거의 가득 차 있다. 이러한 예시적인 실시예에서, 제4 미디어 세그먼트 파일의 패킷들이 발견되고, EFDT는, 파일이 5,500,000 바이트의 길이를 갖는다는 것을 표시한다. 제4 파일의 처음에 수신된 패킷에 대해, 단계(S34)에서의 응답은 아니오인데, 그 이유는, 새로운 파일과 동일한 명칭 및 TOI 번호(즉, 395)를 갖는 또는 일부 실시예들에서는 단지 동일한 TOI 번호를 갖는 엔트리가 해시 테이블에 존재하지 않기 때문이며, 따라서, 새로운 파일 동작(400)이 수행된다.
그러나, 본 예시적인 실시예에서, 단계(S41)에서의 결정은, 파일이 버퍼의 남아 있는 공간에 맞지 않을 것이라는 것이다. 이러한 결정은, 본 실시예에서는 15,021,000 바이트에 있는 다음 시작 위치 지시자의 위치에 부가되는 5,500,000 바이트인 파일의 길이가 20,000,000 바이트인 버퍼의 크기를 초과하기 때문에 이루어진다. 그러므로, 이어서, 공간을 만들기 위해 단계(S43)의 공간 만들기 동작이 수행된다.
단계(S42)에서 시작하는 공간 만들기 동작은, 버퍼에 있는 더 오래된 파일들이 그들의 유용성을 잃도록 오래되었고 폐기될 수 있다는 인지에 기반한다. 단계들(S43 및 S44)에서, 해시 테이블의 각각의 엔트리가 조사되고, 엔트리들은, 착신 파일이 다음 시작 위치에서가 아니라 초기 기입 위치에서 저장될 것이라고 가정하여, 대응하는 파일의 임의의 바이트가 착신 파일에 의해 점유될 공간과 겹칠 경우 삭제된다.
본 예시적인 실시예에서, 처음 2개의 미디어 세그먼트(TOI = 392 및 393)는 버퍼의 처음 5,500,000 바이트 내에 완전히 또는 부분적으로 포함된다. 따라서, 해시 테이블의 이러한 엔트리들 둘 모두는 단계(S43)에서 식별되고 단계(S44)에서 삭제된다. 이어서, 초기 기입 위치에서 시작하는 버퍼 영역이 새로운 파일에 할당되고, 새로운 파일에 대해 새로운 해시 테이블 엔트리가 생성되고, 수신 장치는 이제 초기 기입 위치에 시작하여 새로운 파일 ch4-2-v00395.mp4의 패킷들을 저장하기 시작할 수 있다.
도 12a의 예시적인 실시예에서, 새로운 파일은, 수신되고 버퍼링되는 프로세스에 있다. 도 12a는 해시 테이블 엔트리들이 제거된 일부 파일들 또는 파일들의 부분들을, 그 파일들의 바이트들이, 그들이 새로운 파일의 수신된 패킷에 의해 덮어 쓰여질 때까지 버퍼에 존재한다는 것을 반영하도록 도시한다. 도 12b는, 단계(S43)에서 식별된 미디어 세그먼트 파일들이 제거되었고, 2개의 이전에 부가된 파일이 남아 있고(TOI = 2 및 394), 새로운 파일 ch4-2-v00395.mp4가 파일명에 대한 ".new" 접미사로 불완전한 것으로 표시되는 해시 테이블의 대응하는 도면을 도시한다.
이 예에 계속되도록, 도 13a 및 도 13b의 예시적인 실시예는 다른 미디어 세그먼트 파일의 도달을 도시하며, 이 파일은 길이가 2,000,000 바이트이다. 새로운 파일은, 바이트 5,500,000에 있는 다음 시작 위치 지시자와 버퍼의 끝 사이의 버퍼 공간에 맞고, 그에 따라, 단계(S41)에서의 응답은 예이다. 다음으로, 새로운 파일이 바이트 5,500,000에 있는 다음 시작 위치 지시자와 오프셋 9,014,000에 저장된 파일의 시작 사이의 버퍼 공간에 맞다고 결정되며, 그에 따라, 단계(S46)에서의 응답은 아니오이다. 도 13a는 버퍼를 도시하고, 도 13b는 새로운 파일이 완전히 저장된 후의 해시 테이블을 도시한다.
다음으로, 도 14a 및 도 14b의 예시적인 실시예에서, 길이가 5,000,000 바이트인 미디어 세그먼트 파일에 직면한다. 이러한 파일이 버퍼 내에 맞지만(예컨대, 다음 시작 위치에 5,000,000을 더한 것의 값이 20,000,000을 초과하지 않음), 단계(S46)의 결정에서의 응답은 아니오인데, 그 이유는, 파일의 범위(다음 시작 위치에 5,000,000을 더한 것)가 파일 ch4-2-v00394.mp4에 할당된 공간과 겹치기 때문이다. 그에 따라서, 단계(S50)에서, 파일 ch4-2-v00394.mp4가 해시 테이블로부터 삭제된다. 도 14a는 새로운 파일 ch4-2-v00397.mp4가 부분적으로 저장되는 경우의 버퍼를 도시한다. 도 14b는 도 14a에 대응하는 해시 테이블의 상태를 도시하며, 여기서, 파일 ch4-2-v00394.mp4는 제거되었고, 새로운 파일 ch4-2-v00397.mp4가 불완전한 것으로 라벨링된다.
위에 설명된 예시적인 실시예들의 요약에서, 파일에 대응하는 수신된 패킷의 처리는, 먼저 파일의 LCT 채널에 대응하는 해시 테이블의 엔트리들을 통해 반복하여 TOI/파일명 매치를 탐색하는 것이다. 매치가 발견되고 파일명이 불완전한 것으로 라벨링되는 경우, 수신된 패킷은 그 파일을 저장할 메모리의 영역 내의 그의 적절한 위치에 저장된다. 패킷의 위치는, 파일의 시작에 대한 패킷의 위치를 표시하는, 패킷에 포함된 오프셋에 의해 결정된다. 패킷이 버퍼에 저장된 파일을 완성하는 경우, "불완전" 라벨이 해시 테이블에 있는 파일의 엔트리로부터 제거되고, 동일한 파일에 대응하는 해시 맵의 임의의 이전 엔트리들이 삭제된다. TOI/파일명 매치가 발견되지 않은 경우, "새로운 파일 시작" 동작이 수행된다.
새로운 파일 시작 동작의 예시적인 실시예들은, 먼저, 파일이 버퍼의 남아 있는 공간에 맞을 것인지 여부를 결정하는 것으로 요약될 수 있다. 다음 시작 위치에 파일 길이를 더한 것인 파일의 범위가 버퍼의 크기를 초과하는 경우 응답은 아니오일 것이며, 이 경우에, "공간 만들기" 동작이 수행된다. 그렇지 않으면, 응답은 예이다. 새로운 파일이 버퍼의 남아 있는 공간에 맞을 것이라고 결정될 때, 다음 시작 위치에 파일 길이를 더한 것인 새로운 파일의 범위가 해시 테이블에 열거된 임의의 파일들과 겹치는지 여부가 결정된다. 겹치는 경우, 그러한 파일들은 삭제된다. 이어서, 다음 시작 위치에서의 새로운 파일의 할당된 버퍼 영역을 표시하는 새로운 엔트리가 해시 테이블에 생성되고, 다음 시작 위치는 할당된 버퍼 영역의 끝으로 이동되고, 패킷은 파일의 제1 바이트 위치에 대한 버퍼 내의 그의 대응하는 위치에 저장된다. 새로운 파일의 조각을 포함하는 패킷이 새로운 파일을 완성하지 못한 경우, 해시 테이블에 생성된 새로운 엔트리는 불완전한 것으로 라벨링된다. 새로운 파일이 버퍼의 남아 있는 공간에 맞지 않을 것이라고 결정될 때, 공간 만들기 동작이 수행된다.
예시적인 실시예들에서, "공간 만들기" 동작은, 해시 테이블의 엔트리들 각각에 대해, 엔트리에 대응하는 개개의 파일이, 초기 기입 위치에서 시작하여 새로운 파일의 길이로 연장되는 새로운 파일의 범위와 겹치는지 여부를 결정한다. 주어진 해시 테이블 엔트리가 차지하는 버퍼 영역은 엔트리의 제1 바이트 위치 및 파일 길이에 기반하여 결정될 수 있다.
공간 만들기 동작의 예시적인 실시예들에서, 해시 테이블의 엔트리들 중 새로운 파일의 범위와 겹치는 것으로 밝혀진 임의의 엔트리가 해시 테이블로부터 제거되고, 새로운 파일에 대한 해시 테이블의 엔트리를 생성하는 것을 포함하여 초기 기입 위치에서 시작하는 버퍼 영역이 새로운 파일에 할당된다. 해시 테이블의 새로운 엔트리는, 파일의 모든 바이트들이 아직 수신되지 않은 경우 불완전한 것으로 라벨링된다.
새로운 파일 시작 동작의 예시적인 실시예들에서의 버퍼 공간의 할당 후에, 위에 설명된 바와 같이, 다음 시작 위치는 할당된 버퍼 공간의 끝으로 이동되고, 새로운 파일에 속하는 수신된 패킷들은, 그들의 오프셋들에 따라, 할당된 버퍼 공간에 배치된다.
착신 패킷들을 처리하는 위에 설명된 예시적인 실시예들은, 파일의 패킷들이 순차적으로 수신되지 않을 때 파일을 적절히 수신하고 버퍼링하는 것이 가능하다. 예컨대, 일부 파일들은, 파일의 콘텐츠들을 전달하는 패킷들이 시간 경과에 따라 지속적으로 반복되는 "캐러셀"을 통해 브로드캐스팅된다. 그러한 실시예들에서, 큰 파일은 하루 종일 5 분에 걸쳐 반복되었을 수 있다. 수신 장치가 처음에 튜닝될 때, 수신 장치에 의해 수신되는 제1 패킷은 파일의 제1 바이트를 포함할 가능성이 없다. 그러나, 위에 설명된 실시예들에 따르면, 수신 장치는, 수신된 제1 패킷이 파일의 제1 패킷이 아닌 경우라 하더라도 여전히 파일을 버퍼링할 수 있다.
이러한 기능성은, ATSC A/331 표준에 따른 각각의 전송 패킷이 start_offset으로 지칭되는 각각의 LCT 패킷 내의 필드를 포함하기 때문에 달성된다. 위에 설명된 바와 같이, 예시적인 실시예들에서, 수신 장치는, 이러한 오프셋 필드를 사용하여, 파일의 제1 바이트의 버퍼 내의 위치에 대한, 임의의 패킷의 바이트들이 저장될 버퍼 내의 위치를 결정한다. 그에 따라서, 파일의 패킷들이 수신됨에 따라, 패킷들이 비-순차적으로 수신되는 경우라 하더라도, 패킷들은 파일에 할당된 버퍼 영역 내에 올바른 순서로 배치되며, 이에 따라, 할당된 영역은 결국 패킷들로 채워지고 파일은 버퍼에서 재구성된다.
도 15는, 수신 장치 및 서비스 배포 시스템 중 어느 하나 또는 이들의 조합의 기능들을 수행하도록 구성될 수 있는 컴퓨터의 하드웨어 구성의 예를 도시하는 블록도이다. 예컨대, 일 실시예에서, 컴퓨터는, 수신 장치(120)에 관하여 본원에 설명된 기능들 중 하나 또는 이들의 조합을 수행하도록 구성된다.
도 15에 예시된 바와 같이, 컴퓨터는, 하나 이상의 버스(1208)를 통해 서로 상호연결되는, CPU(1202), 판독 전용 메모리(ROM)(1204), 및 랜덤 액세스 메모리(RAM)(1206)를 포함한다. 하나 이상의 버스(1208)는 입력-출력 인터페이스(1210)와 추가로 연결된다. 입력-출력 인터페이스(1210)는, 키보드, 마우스, 마이크로폰, 원격 제어기 등에 의해 형성되는 입력 부분(1212)과 연결된다. 입력-출력 인터페이스(1210)는 또한, 오디오 인터페이스, 비디오 인터페이스, 디스플레이, 스피커 등에 의해 형성되는 출력 부분(1214); 하드 디스크, 비-휘발성 메모리 또는 다른 비-일시적인 컴퓨터 판독가능 저장 매체에 의해 형성되는 기록 부분(1216); 네트워크 인터페이스, 모뎀, USB 인터페이스, 파이어 와이어 인터페이스 등에 의해 형성되는 통신 부분(1218); 및 착탈식 매체(1222), 이를테면, 자기 디스크, 광학 디스크, 광자기 디스크, 반도체 메모리 등을 구동하기 위한 드라이브(1220)에 연결된다.
일 실시예에 따르면, CPU(1202)는, 기록 부분(1216)에 저장된 프로그램을 입력-출력 인터페이스(1210) 및 버스(1208)를 통해 RAM(1206)에 로딩하고, 이어서, 수신 장치(120)에 관하여 본원에 설명된 기능들 중 하나 또는 이들의 조합의 기능성을 제공하도록 구성되는 프로그램을 실행한다.
도 2 및 도 15에 도시된 구조 예들 중 어느 하나에 의해 예시된 위의 하드웨어 설명은, 예컨대, 도 3 및 도 4를 참조하여 위에 설명된 알고리즘을 수행하도록 프로그래밍되거나 구성되는 특수화된 대응하는 구조를 구성하거나 그를 포함한다. 예컨대, 도 3 및 도 4에 도시된 알고리즘들 중 어느 하나 또는 이들의 조합은 도 2에 도시된 단일 디바이스에 포함된 회로에 의해 완전히 수행될 수 있다.
명백하게, 위의 교시들을 고려하여 다수의 수정들 및 변형들이 가능하다. 따라서, 첨부된 청구항들의 범위 내에서, 본 개시내용은 본원에 구체적으로 설명된 것과 다른 방식으로 실시될 수 있다는 것이 이해되어야 한다. 그에 따라, 전술한 논의는 단지 본 개시내용의 예시적인 실시예들을 개시하고 설명한다. 관련 기술분야의 통상의 기술자들에 의해 이해될 바와 같이, 본 개시내용은 본 개시내용의 사상 또는 본질적 특성들로부터 벗어남이 없이 다른 특정 형태들로 구현될 수 있다. 그에 따라서, 본 개시내용은, 본 개시내용뿐만 아니라 다른 청구항들의 범위를 제한하는 것이 아니라 예시적인 것으로 의도된다. 본원에서의 교시들의 임의의 용이하게 식별가능한 변형들을 포함하여 본 개시내용은, 본 발명의 주제가 공중에 전용되지 않도록, 전술한 청구항 용어의 범위를 부분적으로 정의한다.
본 개시내용의 실시예들은 다음과 같은 상당히 유리한 특징들을 포함한다:
(1) 버퍼링 접근법이 스트리밍 멀티캐스트 전달 미디어 데이터의 수신에 최적화된다.
(2) 자바(Java) 프로그래밍 언어의 이점들 및 제한들을 유념하여, 구체적으로는, 메모리 누수들로 이어질 수 있는 가비지 수집(garbage collection) 동작들과 관련된 비효율성 및 불확실성들을 피하도록 처리가 설계된다.
(3) 자바에서의 바이트 어레이들이 조각들로 분할될 수 없기 때문에, 임의의 하나의 파일이 다수의 연속적 바이트 어레이들을 점유하는 것을 피하도록 처리가 최적화된다.
(a) 바이트 어레이들 상에서만 작동하는 System.arrayCopy 고유 안드로이드(Android) 기능을 이용하여 메모리의 블록들을 효율적으로 이동시키도록 처리가 설계된다.
(b) 일반적으로, 안드로이드 상에서의 자바에 대해 처리가 최적화된다.
(4) 처리의 최적화들은 다음을 포함한다:
(a) 파일이 연속적 메모리에 저장되지 않은 경우 발생되는 복잡성 및 CPU 오버헤드를 피하도록 버퍼의 연속적 영역들에 파일들을 저장하는 것.
(b) 파일들의 불필요한 복사를 피하는 것.
(c) 중복 파일들의 효율적인 처리.
(d) 더 새로운 파일들을 저장하는 데 사용하기 위한 메모리의 회수(recovery)의 효율적인 관리.
(5) 비-순차적 패킷 전달 및 캐러셀 파일 전달 모드들을 처리가 지원한다.
위의 개시내용은 또한 아래에 열거된 실시예들을 포괄한다.
(1) 패킷 스트림을 통해 수신된 파일들을 저장하기 위한 사전 설정된 바이트 크기를 갖는 버퍼를 관리하기 위한 방법으로서, 방법은, 착신 파일의 파일 식별자 및 길이를 결정하는 단계; 착신 파일이 다음 기입 위치와 버퍼의 끝 사이의 공간에 맞지 않을 것임을 결정하는 단계; 착신 파일이 다음 기입 위치와 버퍼의 끝 사이의 공간에 맞지 않을 것이라는 결정에 대한 응답으로, 버퍼에 저장된 하나 이상의 파일을 식별하는 맵에서, 초기 기입 위치에서 시작하여 착신 파일의 길이와 동일한 크기를 갖는 버퍼의 영역에 적어도 부분적으로 저장된 파일에 대응하는 각각의 엔트리를 삭제하는 단계, 버퍼의 초기 기입 위치와 연관하여, 착신 파일의 파일 식별자 및 길이를 포함하는 엔트리를 맵에 부가하는 단계, 버퍼의 초기 기입 위치에서 시작하여 착신 파일의 길이와 동일한 크기를 갖는 버퍼의 연속적 영역을 할당한 다음, 다음 기입 위치를 할당된 연속적 영역의 끝으로 이동시키는 단계, 및 착신 파일의 패킷들을 수신하고 수신된 패킷들을 할당된 연속적 영역에 저장하는 단계를 포함한다.
(2) 특징 (1)에 따른 방법에서, 패킷 스트림은 고급 텔레비전 시스템 위원회(ATSC) 3.0 디지털 텔레비전 신호의 일부이다.
(3) 특징 (1) 또는 (2)에 따른 방법에서, 착신 파일은, 버퍼에 저장된 다른 파일들과 공통인 전송 세션 식별자(TSI) 값을 갖는 계층화된 코딩 전송(LCT) 채널에서 수신되고, 상이한 대응하는 TSI 값을 갖는 파일들을 저장하기 위해 새로운 버퍼 및 별개의 맵이 초기화된다.
(4) 특징 (1) 내지 (3) 중 임의의 특징에 따른 방법에서, 맵의 부가된 엔트리는 착신 파일의 파일 식별자 및 길이를 포함한다.
(5) 특징 (1) 내지 (4) 중 임의의 특징에 따른 방법은, 착신 파일의 수신된 패킷들이 파일에 할당된 버퍼의 연속적 영역을 채울 때까지 맵의 부가된 엔트리를 불완전한 것으로 라벨링하는 단계를 더 포함한다.
(6) 특징들 (1) 내지 (5) 중 임의의 특징에 따른 방법은, 패킷 스트림의 각각의 착신 패킷에 대해, 대응하는 파일의 파일 식별자를 결정하는 단계; 대응하는 파일의 파일 식별자를 갖고 불완전한 것으로 라벨링된, 맵의 엔트리가 존재하는지 여부를 결정하는 단계; 대응하는 파일의 파일 식별자를 갖는, 맵의 불완전한 엔트리가 존재한다는 결정에 대한 응답으로, 맵의 불완전한 엔트리와 연관된 할당된 연속적 영역에 착신 패킷을 저장하는 단계, 착신 패킷이 맵의 불완전한 엔트리와 연관된 할당된 연속적 영역에 있는 파일을 완성하는지 여부를 결정하는 단계, 착신 패킷이 맵의 불완전한 엔트리와 연관된 할당된 연속적 영역에 있는 파일을 완성한다는 결정에 대한 응답으로, 맵의 엔트리와 연관된 불완전 라벨을 제거하는 단계, 맵의 그 엔트리와 동일한 파일 명칭을 갖는, 맵의 모든 다른 엔트리들을 제거하는 단계, 및 대응하는 파일의 파일 식별자를 갖는, 맵의 불완전한 엔트리가 없다는 결정에 대한 응답으로, 착신 패킷을 새로운 착신 파일로서 처리하는 단계를 더 포함한다.
(7) 특징들 (1) 내지 (6) 중 임의의 특징에 따른 방법에서, 파일 식별자는 전송 객체 식별자(TOI) 및 파일 명칭을 포함한다.
(8) 패킷 스트림을 통해 수신된 파일들을 사전 설정된 바이트 크기를 갖는 버퍼에 저장하기 위한 버퍼 관리 장치로서, 버퍼 관리 장치는 회로를 포함하며, 회로는, 착신 파일의 파일 식별자 및 길이를 결정하고; 착신 파일이 다음 기입 위치와 버퍼의 끝 사이의 공간에 맞지 않을 것임을 결정하고; 착신 파일이 다음 기입 위치와 버퍼의 끝 사이의 공간에 맞지 않을 것이라는 결정에 대한 응답으로, 버퍼에 저장된 하나 이상의 파일을 식별하는 맵에서, 초기 기입 위치에서 시작하여 착신 파일의 길이와 동일한 크기를 갖는 버퍼의 영역에 적어도 부분적으로 저장된 파일에 대응하는 각각의 엔트리를 삭제하고, 버퍼의 초기 기입 위치와 연관하여, 착신 파일의 파일 식별자 및 길이를 포함하는 엔트리를 맵에 부가하고, 버퍼의 초기 기입 위치에서 시작하여 착신 파일의 길이와 동일한 크기를 갖는 버퍼의 연속적 영역을 할당히고, 다음 기입 위치를 할당된 연속적 영역의 끝으로 이동시키고, 착신 파일의 패킷들을 수신하고 수신된 패킷들을 할당된 연속적 영역에 저장하도록 구성된다.
(9) 특징 (8)에 따른 버퍼 관리 장치에서, 패킷 스트림은 고급 텔레비전 시스템 위원회(ATSC) 3.0 디지털 텔레비전 신호의 일부이다.
(10) 특징 (8) 또는 (9)에 따른 버퍼 관리 장치에서, 착신 파일은, 버퍼에 저장된 다른 파일들과 공통인 전송 세션 식별자(TSI) 값을 갖는 계층화된 코딩 전송(LCT) 채널에서 수신되고, 상이한 대응하는 TSI 값을 갖는 파일들을 저장하기 위해 새로운 버퍼 및 별개의 맵이 초기화된다.
(11) 특징 (8) 내지 (10) 중 임의의 특징에 따른 버퍼 관리 장치에서, 맵의 부가된 엔트리는 착신 파일의 파일 식별자 및 길이를 포함한다.
(12) 특징 (8) 내지 (11) 중 임의의 특징에 따른 버퍼 관리 장치에서, 회로는, 착신 파일의 수신된 패킷들이 착신 파일에 할당된 버퍼의 연속적 영역을 채울 때까지 맵의 부가된 엔트리를 불완전한 것으로 라벨링하도록 추가로 구성된다.
(13) 특징들 (8) 내지 (12) 중 임의의 특징에 따른 버퍼 관리 장치에서, 회로는, 패킷 스트림의 각각의 착신 패킷에 대해, 대응하는 파일의 파일 식별자를 결정하고; 대응하는 파일의 파일 식별자를 갖고 불완전한 것으로 라벨링된, 맵의 엔트리가 존재하는지 여부를 결정하고; 대응하는 파일의 파일 식별자를 갖는, 맵의 불완전한 엔트리가 존재한다는 결정에 대한 응답으로, 맵의 불완전한 엔트리와 연관된 할당된 연속적 영역에 착신 패킷을 저장하고, 착신 패킷이 맵의 불완전한 엔트리와 연관된 할당된 연속적 영역에 있는 파일을 완성하는지 여부를 결정하고, 착신 패킷이 맵의 불완전한 엔트리와 연관된 할당된 연속적 영역에 있는 파일을 완성한다는 결정에 대한 응답으로, 맵의 엔트리와 연관된 불완전 라벨을 제거하고, 맵의 그 엔트리와 동일한 파일 명칭을 갖는, 맵의 모든 다른 엔트리들을 제거하고, 대응하는 파일의 파일 식별자를 갖는, 맵의 불완전한 엔트리가 없다는 결정에 대한 응답으로, 착신 패킷을 새로운 착신 파일로서 처리하도록 추가로 구성된다.
(14) 특징들 (8) 내지 (13) 중 임의의 특징에 따른 버퍼 관리 장치에서, 파일 식별자는 전송 객체 식별자(TOI) 및 파일 명칭을 포함한다.
(15) 컴퓨터 판독가능 명령어들을 저장하는 비-일시적인 컴퓨터 판독가능 저장 매체로서, 명령어들은, 프로세서에 의해 실행될 때, 프로세서로 하여금 패킷 스트림을 통해 수신된 파일들을 저장하기 위한 사전 설정된 바이트 크기를 갖는 버퍼를 관리하기 위한 방법을 수행하게 하며, 방법은, 착신 파일의 파일 식별자 및 길이를 결정하는 단계; 착신 파일이 다음 기입 위치와 버퍼의 끝 사이의 공간에 맞지 않을 것임을 결정하는 단계; 착신 파일이 다음 기입 위치와 버퍼의 끝 사이의 공간에 맞지 않을 것이라는 결정에 대한 응답으로, 버퍼에 저장된 하나 이상의 파일을 식별하는 맵에서, 초기 기입 위치에서 시작하여 착신 파일의 길이와 동일한 크기를 갖는 버퍼의 영역에 적어도 부분적으로 저장된 파일에 대응하는 각각의 엔트리를 삭제하는 단계, 버퍼의 초기 기입 위치와 연관하여, 착신 파일의 파일 식별자 및 길이를 포함하는 엔트리를 맵에 부가하는 단계, 버퍼의 초기 기입 위치에서 시작하여 착신 파일의 길이와 동일한 크기를 갖는 버퍼의 연속적 영역을 할당한 다음, 다음 기입 위치를 할당된 연속적 영역의 끝으로 이동시키는 단계, 및 착신 파일의 패킷들을 수신하고 수신된 패킷들을 할당된 연속적 영역에 저장하는 단계를 포함한다.
(16) 특징 (15)에 따른 비-일시적인 컴퓨터 판독가능 매체에서, 패킷 스트림은 고급 텔레비전 시스템 위원회(ATSC) 3.0 디지털 텔레비전 신호의 일부이다.
(17) 특징 (15) 또는 (16)에 따른 비-일시적인 컴퓨터 판독가능 매체에서, 착신 파일은, 버퍼에 저장된 다른 파일들과 공통인 전송 세션 식별자(TSI) 값을 갖는 계층화된 코딩 전송(LCT) 채널에서 수신되고, 상이한 대응하는 TSI 값을 갖는 파일들에 대해 새로운 버퍼 및 별개의 맵이 초기화된다.
(18) 특징들 (15) 내지 (17) 중 임의의 특징에 따른 비-일시적인 컴퓨터 판독가능 매체에서, 맵의 부가된 엔트리는 착신 파일의 파일 식별자 및 길이를 포함하고, 파일 식별자는 전송 객체 식별자(TOI) 및 파일 명칭을 포함한다.
(19) 특징 (15) 내지 (18) 중 임의의 특징에 따른 비-일시적인 컴퓨터 판독가능 매체는, 착신 파일의 수신된 패킷들이 착신 파일에 할당된 버퍼의 연속적 영역을 채울 때까지 맵의 부가된 엔트리를 불완전한 것으로 라벨링하는 것을 더 포함한다.
(20) 청구항 19항에 따른 비-일시적인 컴퓨터 판독가능 매체는, 패킷 스트림의 각각의 착신 패킷에 대해, 대응하는 파일의 파일 식별자를 결정하는 것; 대응하는 파일의 파일 식별자를 갖고 불완전한 것으로 라벨링된, 맵의 엔트리가 존재하는지 여부를 결정하는 것; 대응하는 파일의 파일 식별자를 갖는, 맵의 불완전한 엔트리가 존재한다는 결정에 대한 응답으로, 맵의 불완전한 엔트리와 연관된 할당된 연속적 영역에 착신 패킷을 저장하는 것, 착신 패킷이 맵의 불완전한 엔트리와 연관된 할당된 연속적 영역에 있는 파일을 완성하는지 여부를 결정하는 것, 착신 패킷이 맵의 불완전한 엔트리와 연관된 할당된 연속적 영역에 있는 파일을 완성한다는 결정에 대한 응답으로, 맵의 엔트리와 연관된 불완전 라벨을 제거하는 것, 맵의 그 엔트리와 동일한 파일 명칭을 갖는, 맵의 모든 다른 엔트리들을 제거하는 것, 및 대응하는 파일의 파일 식별자를 갖는, 맵의 불완전한 엔트리가 없다는 결정에 대한 응답으로, 착신 패킷을 새로운 착신 파일로서 처리하는 것을 더 포함한다.
Claims (20)
- 패킷 스트림을 통해 수신된 파일들을 저장하기 위한 사전 설정된 바이트 크기를 갖는 버퍼를 관리하기 위한 방법으로서,
착신 파일의 파일 식별자 및 길이를 결정하는 단계;
상기 착신 파일이 다음 기입 위치와 상기 버퍼의 끝 사이의 공간에 맞지 않을 것임을 결정하는 단계;
상기 착신 파일이 상기 다음 기입 위치와 상기 버퍼의 끝 사이의 공간에 맞지 않을 것이라는 결정에 대한 응답으로,
상기 버퍼에 저장된 하나 이상의 파일을 식별하는 맵에서, 초기 기입 위치에서 시작하여 상기 착신 파일의 길이와 동일한 크기를 갖는 상기 버퍼의 영역에 적어도 부분적으로 저장된 파일에 대응하는 각각의 엔트리를 삭제하는 단계,
상기 버퍼의 상기 초기 기입 위치와 연관하여, 상기 착신 파일의 파일 식별자 및 길이를 포함하는 엔트리를 상기 맵에 부가하는 단계,
상기 버퍼의 상기 초기 기입 위치에서 시작하여 상기 착신 파일의 길이와 동일한 크기를 갖는 상기 버퍼의 연속적 영역을 할당한 다음, 상기 다음 기입 위치를 할당된 연속적 영역의 끝으로 이동시키는 단계, 및
상기 착신 파일의 패킷들을 수신하고 수신된 패킷들을 상기 할당된 연속적 영역에 저장하는 단계를 포함하는, 버퍼를 관리하기 위한 방법. - 제1항에 있어서,
상기 패킷 스트림은 고급 텔레비전 시스템 위원회(ATSC) 3.0 디지털 텔레비전 신호의 일부인, 버퍼를 관리하기 위한 방법. - 제2항에 있어서,
상기 착신 파일은, 상기 버퍼에 저장된 다른 파일들과 공통인 전송 세션 식별자(TSI) 값을 갖는 계층화된 코딩 전송(LCT) 채널에서 수신되고,
상이한 대응하는 TSI 값을 갖는 파일들을 저장하기 위해 새로운 버퍼 및 별개의 맵이 초기화되는, 버퍼를 관리하기 위한 방법. - 제1항에 있어서,
상기 맵의 부가된 엔트리는 상기 착신 파일의 파일 식별자 및 길이를 포함하는, 버퍼를 관리하기 위한 방법. - 제4항에 있어서,
상기 착신 파일의 상기 수신된 패킷들이 상기 파일에 할당된 상기 버퍼의 연속적 영역을 채울 때까지 상기 맵의 상기 부가된 엔트리를 불완전한 것으로 라벨링하는 단계를 더 포함하는, 버퍼를 관리하기 위한 방법. - 제5항에 있어서,
상기 패킷 스트림의 각각의 착신 패킷에 대해,
대응하는 파일의 파일 식별자를 결정하는 단계;
상기 대응하는 파일의 파일 식별자를 갖고 불완전한 것으로 라벨링된, 상기 맵의 엔트리가 존재하는지 여부를 결정하는 단계;
상기 대응하는 파일의 파일 식별자를 갖는, 상기 맵의 불완전한 엔트리가 존재한다는 결정에 대한 응답으로,
상기 맵의 상기 불완전한 엔트리와 연관된 상기 할당된 연속적 영역에 상기 착신 패킷을 저장하는 단계,
상기 착신 패킷이 상기 맵의 상기 불완전한 엔트리와 연관된 상기 할당된 연속적 영역에 있는 파일을 완성하는지 여부를 결정하는 단계;
상기 착신 패킷이 상기 맵의 상기 불완전한 엔트리와 연관된 상기 할당된 연속적 영역에 있는 파일을 완성한다는 결정에 대한 응답으로,
상기 맵의 상기 엔트리와 연관된 불완전 라벨을 제거하는 단계,
상기 맵의 상기 엔트리와 동일한 파일 명칭을 갖는, 상기 맵의 모든 다른 엔트리들을 제거하는 단계; 및
상기 대응하는 파일의 파일 식별자를 갖는, 상기 맵의 불완전한 엔트리가 없다는 결정에 대한 응답으로, 상기 착신 패킷을 새로운 착신 파일로서 처리하는 단계를 더 포함하는, 버퍼를 관리하기 위한 방법. - 제6항에 있어서,
상기 파일 식별자는 전송 객체 식별자(TOI) 및 파일 명칭을 포함하는, 버퍼를 관리하기 위한 방법. - 패킷 스트림을 통해 수신된 파일들을 사전 설정된 바이트 크기를 갖는 버퍼에 저장하기 위한 버퍼 관리 장치로서,
회로를 포함하며,
상기 회로는,
착신 파일의 파일 식별자 및 길이를 결정하고;
상기 착신 파일이 다음 기입 위치와 상기 버퍼의 끝 사이의 공간에 맞지 않을 것임을 결정하고;
상기 착신 파일이 상기 다음 기입 위치와 상기 버퍼의 끝 사이의 공간에 맞지 않을 것이라는 결정에 대한 응답으로,
상기 버퍼에 저장된 하나 이상의 파일을 식별하는 맵에서, 초기 기입 위치에서 시작하여 상기 착신 파일의 길이와 동일한 크기를 갖는 상기 버퍼의 영역에 적어도 부분적으로 저장된 파일에 대응하는 각각의 엔트리를 삭제하고,
상기 버퍼의 상기 초기 기입 위치와 연관하여, 상기 착신 파일의 파일 식별자 및 길이를 포함하는 엔트리를 상기 맵에 부가하고,
상기 버퍼의 상기 초기 기입 위치에서 시작하여 상기 착신 파일의 길이와 동일한 크기를 갖는 상기 버퍼의 연속적 영역을 할당한 다음, 상기 다음 기입 위치를 할당된 연속적 영역의 끝으로 이동시키고,
상기 착신 파일의 패킷들을 수신하고 수신된 패킷들을 상기 할당된 연속적 영역에 저장하도록 구성되는, 버퍼 관리 장치. - 제8항에 있어서,
상기 패킷 스트림은 고급 텔레비전 시스템 위원회(ATSC) 3.0 디지털 텔레비전 신호의 일부인, 버퍼 관리 장치. - 제9항에 있어서,
상기 착신 파일은, 상기 버퍼에 저장된 다른 파일들과 공통인 전송 세션 식별자(TSI) 값을 갖는 계층화된 코딩 전송(LCT) 채널에서 수신되고,
상이한 대응하는 TSI 값을 갖는 파일들을 저장하기 위해 새로운 버퍼 및 별개의 맵이 초기화되는, 버퍼 관리 장치. - 제8항에 있어서,
상기 맵의 부가된 엔트리는 상기 착신 파일의 파일 식별자 및 길이를 포함하는, 버퍼 관리 장치. - 제11항에 있어서,
상기 회로는, 상기 착신 파일의 수신된 패킷들이 상기 착신 파일에 할당된 상기 버퍼의 연속적 영역을 채울 때까지 상기 맵의 상기 부가된 엔트리를 불완전한 것으로 라벨링하도록 추가로 구성되는, 버퍼 관리 장치. - 제12항에 있어서,
상기 회로는, 상기 패킷 스트림의 각각의 착신 패킷에 대해,
대응하는 파일의 파일 식별자를 결정하고;
상기 대응하는 파일의 파일 식별자를 갖고 불완전한 것으로 라벨링된, 상기 맵의 엔트리가 존재하는지 여부를 결정하고;
상기 대응하는 파일의 파일 식별자를 갖는, 상기 맵의 불완전한 엔트리가 존재한다는 결정에 대한 응답으로,
상기 맵의 상기 불완전한 엔트리와 연관된 상기 할당된 연속적 영역에 상기 착신 패킷을 저장하고;
상기 착신 패킷이 상기 맵의 상기 불완전한 엔트리와 연관된 상기 할당된 연속적 영역에 있는 파일을 완성하는지 여부를 결정하고;
상기 착신 패킷이 상기 맵의 상기 불완전한 엔트리와 연관된 상기 할당된 연속적 영역에 있는 파일을 완성한다는 결정에 대한 응답으로,
상기 맵의 상기 엔트리와 연관된 불완전 라벨을 제거하고;
상기 맵의 상기 엔트리와 동일한 파일 명칭을 갖는, 상기 맵의 모든 다른 엔트리들을 제거하고;
상기 대응하는 파일의 파일 식별자를 갖는, 상기 맵의 불완전한 엔트리가 없다는 결정에 대한 응답으로, 상기 착신 패킷을 새로운 착신 파일로서 처리하도록 추가로 구성되는, 버퍼 관리 장치. - 제13항에 있어서,
상기 파일 식별자는 전송 객체 식별자(TOI) 및 파일 명칭을 포함하는, 버퍼 관리 장치. - 컴퓨터 판독가능 명령어들을 저장하는 비-일시적인 컴퓨터 판독가능 저장 매체로서,
상기 명령어들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 패킷 스트림을 통해 수신된 파일들을 저장하기 위한 사전 설정된 바이트 크기를 갖는 버퍼를 관리하기 위한 방법을 수행하게 하며,
상기 방법은,
착신 파일의 파일 식별자 및 길이를 결정하는 단계;
상기 착신 파일이 다음 기입 위치와 상기 버퍼의 끝 사이의 공간에 맞지 않을 것임을 결정하는 단계;
상기 착신 파일이 상기 다음 기입 위치와 상기 버퍼의 끝 사이의 공간에 맞지 않을 것이라는 결정에 대한 응답으로,
상기 버퍼에 저장된 하나 이상의 파일을 식별하는 맵에서, 초기 기입 위치에서 시작하여 상기 착신 파일의 길이와 동일한 크기를 갖는 상기 버퍼의 영역에 적어도 부분적으로 저장된 파일에 대응하는 각각의 엔트리를 삭제하는 단계,
상기 버퍼의 상기 초기 기입 위치와 연관하여, 상기 착신 파일의 파일 식별자 및 길이를 포함하는 엔트리를 상기 맵에 부가하는 단계,
상기 버퍼의 상기 초기 기입 위치에서 시작하여 상기 착신 파일의 상기 길이와 동일한 크기를 갖는 상기 버퍼의 연속적 영역을 할당한 다음, 상기 다음 기입 위치를 할당된 연속적 영역의 끝으로 이동시키는 단계, 및
상기 착신 파일의 패킷들을 수신하고 수신된 패킷들을 상기 할당된 연속적 영역에 저장하는 단계를 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체. - 제15항에 있어서,
상기 패킷 스트림은 고급 텔레비전 시스템 위원회(ATSC) 3.0 디지털 텔레비전 신호의 일부인, 비-일시적인 컴퓨터 판독가능 저장 매체. - 제16항에 있어서,
상기 착신 파일은, 상기 버퍼에 저장된 다른 파일들과 공통인 전송 세션 식별자(TSI) 값을 갖는 계층화된 코딩 전송(LCT) 채널에서 수신되고,
상이한 대응하는 TSI 값을 갖는 파일들에 대해 새로운 버퍼 및 별개의 맵이 초기화되는, 비-일시적인 컴퓨터 판독가능 저장 매체. - 제15항에 있어서,
상기 맵의 부가된 엔트리는 상기 착신 파일의 파일 식별자 및 길이를 포함하고, 상기 파일 식별자는 전송 객체 식별자(TOI) 및 파일 명칭을 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체. - 제18항에 있어서,
상기 착신 파일의 상기 수신된 패킷들이 상기 착신 파일에 할당된 상기 버퍼의 연속적 영역을 채울 때까지 상기 맵의 상기 부가된 엔트리를 불완전한 것으로 라벨링하는 것을 더 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체. - 제19항에 있어서,
상기 패킷 스트림의 각각의 착신 패킷에 대해,
대응하는 파일의 파일 식별자를 결정하는 것;
상기 대응하는 파일의 파일 식별자를 갖고 불완전한 것으로 라벨링된, 상기 맵의 엔트리가 존재하는지 여부를 결정하는 것;
상기 대응하는 파일의 파일 식별자를 갖는, 상기 맵의 불완전한 엔트리가 존재한다는 결정에 대한 응답으로,
상기 맵의 상기 불완전한 엔트리와 연관된 상기 할당된 연속적 영역에 상기 착신 패킷을 저장하는 것;
상기 착신 패킷이 상기 맵의 상기 불완전한 엔트리와 연관된 상기 할당된 연속적 영역에 있는 파일을 완성하는지 여부를 결정하는 것;
상기 착신 패킷이 상기 맵의 상기 불완전한 엔트리와 연관된 상기 할당된 연속적 영역에 있는 파일을 완성한다는 결정에 대한 응답으로,
상기 맵의 상기 엔트리와 연관된 불완전 라벨을 제거하는 것;
상기 맵의 상기 엔트리와 동일한 파일 명칭을 갖는, 상기 맵의 모든 다른 엔트리들을 제거하는 것; 및
상기 대응하는 파일의 파일 식별자를 갖는, 상기 맵의 불완전한 엔트리가 없다는 결정에 대한 응답으로, 상기 착신 패킷을 새로운 착신 파일로서 처리하는 것을 더 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/199,117 | 2018-11-23 | ||
US16/199,117 US11159833B2 (en) | 2018-11-23 | 2018-11-23 | Buffer management for storing files of a received packet stream |
PCT/IB2019/058667 WO2020104870A1 (en) | 2018-11-23 | 2019-10-11 | Buffer management for storing files of a received packet stream |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210073579A true KR20210073579A (ko) | 2021-06-18 |
KR102527060B1 KR102527060B1 (ko) | 2023-05-02 |
Family
ID=68290291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217015392A KR102527060B1 (ko) | 2018-11-23 | 2019-10-11 | 수신된 패킷 스트림의 파일들을 저장하기 위한 버퍼 관리 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11159833B2 (ko) |
EP (1) | EP3868066A1 (ko) |
JP (1) | JP7168918B2 (ko) |
KR (1) | KR102527060B1 (ko) |
CN (1) | CN113056893B (ko) |
WO (1) | WO2020104870A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240281164A1 (en) * | 2023-02-22 | 2024-08-22 | Sony Group Corporation | Method for signaling memory requirements in atsc3.0 when out-of-order data is being utilized |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100848273B1 (ko) * | 2007-07-03 | 2008-07-25 | 삼성전자주식회사 | 디지털 방송수신기의 파일 처리 장치 및 방법 |
KR20130039741A (ko) * | 2010-05-28 | 2013-04-22 | 퀄컴 인코포레이티드 | 파일 시스템 추상화, 브로드캐스트 스케쥴 메시지들 및 선택적 수신을 이용하는 브로드캐스트 네트워크를 통한 파일 전달 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11194899A (ja) * | 1997-12-26 | 1999-07-21 | Toshiba Corp | ディスク記憶システム及び同システムに適用するデータ更新方法 |
GB0127234D0 (en) | 2001-11-13 | 2002-01-02 | British Sky Broadcasting Ltd | Improvements in receivers for television signals |
US20030126201A1 (en) * | 2001-11-30 | 2003-07-03 | Khoi Hoang | Efficient storage of data files received in a non-sequential manner |
US7003597B2 (en) * | 2003-07-09 | 2006-02-21 | International Business Machines Corporation | Dynamic reallocation of data stored in buffers based on packet size |
US20080063387A1 (en) * | 2004-09-24 | 2008-03-13 | Hiroshi Yahata | Data Processor |
EP2487182B1 (en) * | 2005-07-07 | 2019-10-23 | FULCRUM SP Ltd. | Sp1 polypeptides, modified sp1 polypeptides and uses thereof |
US9015375B2 (en) * | 2006-04-11 | 2015-04-21 | Sigmatel, Inc. | Buffer controller, codec and methods for use therewith |
US7526623B1 (en) * | 2006-09-28 | 2009-04-28 | Emc Corporation | Optimizing reclamation of data space |
DE102007029833B4 (de) * | 2007-06-28 | 2019-03-28 | Texas Instruments Deutschland Gmbh | Mikrocontroller mit Datenmodifikationsmodul und System umfassend ein Datenmodifikationsmodul |
US8432882B2 (en) * | 2008-01-02 | 2013-04-30 | Cisco Technology, Inc. | Multiple transport receiver |
KR101759958B1 (ko) * | 2008-11-18 | 2017-07-20 | 엘지전자 주식회사 | 비실시간 서비스 처리 방법 및 방송 수신기 |
US8869216B2 (en) * | 2009-12-14 | 2014-10-21 | Lg Electronics Inc. | Method of processing non-real time service and broadcast receiver |
JP5238768B2 (ja) * | 2010-07-27 | 2013-07-17 | 株式会社日立アドバンストデジタル | 記憶制御装置およびデータ処理システム |
US10511887B2 (en) * | 2010-08-30 | 2019-12-17 | Saturn Licensing Llc | Reception apparatus, reception method, transmission apparatus, transmission method, program, and broadcasting system |
KR101741487B1 (ko) * | 2010-12-20 | 2017-05-30 | 삼성전자주식회사 | 디지털 방송 시스템에서 타임 쉬프트 버퍼링 기능을 제공하기 위한 장치 및 방법 |
US9185125B2 (en) * | 2012-01-31 | 2015-11-10 | Db Networks, Inc. | Systems and methods for detecting and mitigating threats to a structured data storage system |
US9672222B1 (en) * | 2013-12-12 | 2017-06-06 | EMC IP Holding Company LLC | Write-through buffer cache for write-able file system that utilizes differencing disk to preserve read-only data |
US10897636B2 (en) * | 2014-04-18 | 2021-01-19 | Lg Electronics Inc. | Broadcast signal transmitting apparatus and broadcast signal transmitting method |
KR102456991B1 (ko) * | 2014-10-10 | 2022-10-21 | 소니그룹주식회사 | 수신 장치, 수신 방법, 송신 장치, 및 송신 방법 |
US20170220283A1 (en) * | 2016-01-29 | 2017-08-03 | Microsoft Technology Licensing, Llc | Reducing memory usage by a decoder during a format change |
US10747678B2 (en) * | 2016-10-27 | 2020-08-18 | Seagate Technology Llc | Storage tier with compressed forward map |
CN108093292B (zh) * | 2016-11-21 | 2020-09-11 | 阿里巴巴集团控股有限公司 | 用于管理缓存的方法、装置及系统 |
WO2019132119A1 (ko) * | 2017-12-28 | 2019-07-04 | 주식회사 디에스브로드캐스트 | 방송 신호 송신을 위한 다중화 방법 및 그 장치 |
-
2018
- 2018-11-23 US US16/199,117 patent/US11159833B2/en active Active
-
2019
- 2019-10-11 CN CN201980076355.XA patent/CN113056893B/zh active Active
- 2019-10-11 WO PCT/IB2019/058667 patent/WO2020104870A1/en unknown
- 2019-10-11 EP EP19790297.6A patent/EP3868066A1/en active Pending
- 2019-10-11 JP JP2021528943A patent/JP7168918B2/ja active Active
- 2019-10-11 KR KR1020217015392A patent/KR102527060B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100848273B1 (ko) * | 2007-07-03 | 2008-07-25 | 삼성전자주식회사 | 디지털 방송수신기의 파일 처리 장치 및 방법 |
KR20130039741A (ko) * | 2010-05-28 | 2013-04-22 | 퀄컴 인코포레이티드 | 파일 시스템 추상화, 브로드캐스트 스케쥴 메시지들 및 선택적 수신을 이용하는 브로드캐스트 네트워크를 통한 파일 전달 |
Also Published As
Publication number | Publication date |
---|---|
KR102527060B1 (ko) | 2023-05-02 |
CN113056893A (zh) | 2021-06-29 |
CN113056893B (zh) | 2023-10-20 |
JP2022507911A (ja) | 2022-01-18 |
EP3868066A1 (en) | 2021-08-25 |
US20200169765A1 (en) | 2020-05-28 |
WO2020104870A1 (en) | 2020-05-28 |
US11159833B2 (en) | 2021-10-26 |
JP7168918B2 (ja) | 2022-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11374993B2 (en) | Reception device, reception method, transmission device, and transmission method | |
US11575961B2 (en) | Reception apparatus, transmission apparatus, and data processing method | |
KR102464061B1 (ko) | 미디어 데이터를 송수신하는 방법 및 장치 | |
KR102527060B1 (ko) | 수신된 패킷 스트림의 파일들을 저장하기 위한 버퍼 관리 | |
WO2017061272A1 (ja) | 受信装置、送信装置、及び、データ処理方法 | |
MXPA05007198A (es) | Dispositivos y metodos para la realizacion de decision de ejecucion condicional en relacion a servicios recibidos, y la creacion de mensajes de informacion asociados con los servicios, y productos asociados. | |
CN106134207B (zh) | 发送装置、发送方法、接收装置以及接收方法 | |
JP2022507912A (ja) | ミドルウェアによるチューナ制御のための装置及び方法 | |
KR20150013110A (ko) | 방송 프로그램과 관련한 양방향 서비스를 처리하는 장치 및 방법 | |
CN108271039B (zh) | 一种文件发送方法及装置 | |
US20200228860A1 (en) | Broadcast signal reception apparatus and broadcast signal processing method | |
CN107430860B (zh) | 用于对包括系统数据的音频比特流进行解码的方法和设备 | |
US10742339B2 (en) | Receiving device, transmitting device, and data processing method | |
US20220014291A1 (en) | Method and device for transmitting and receiving broadcast signal for application file filtering in hybrid broadcast system | |
JP6862437B2 (ja) | マルチメディアデータを送受信する方法及び装置 | |
KR101289348B1 (ko) | 방송수신장치 및 그 데이터 공유방법 | |
WO2017212932A1 (ja) | 受信装置、送信装置、及び、データ処理方法 | |
KR20120069082A (ko) | 디지털 방송 시스템에서 타임 쉬프트 버퍼링 기능을 제공하기 위한 장치 및 방법 | |
KR20060072023A (ko) | 데이터 방송에서의 채널 변환시 데이터 관리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |