KR20090045289A - 손실된 패킷을 갖는 컨테이너 파일에 포함된 샘플을 수리하기 위한 방법 및 장치 - Google Patents
손실된 패킷을 갖는 컨테이너 파일에 포함된 샘플을 수리하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR20090045289A KR20090045289A KR1020097004112A KR20097004112A KR20090045289A KR 20090045289 A KR20090045289 A KR 20090045289A KR 1020097004112 A KR1020097004112 A KR 1020097004112A KR 20097004112 A KR20097004112 A KR 20097004112A KR 20090045289 A KR20090045289 A KR 20090045289A
- Authority
- KR
- South Korea
- Prior art keywords
- sample
- file
- packet
- container file
- repairing
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 239000000945 filler Substances 0.000 claims description 13
- 230000008439 repair process Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 description 39
- 230000008901 benefit Effects 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000012546 transfer Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 239000012634 fragment Substances 0.000 description 5
- 230000002457 bidirectional effect Effects 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- 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)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
손실된 패킷을 갖는 컨테이너 파일 내에 포함된 샘플을 수리하기 위한 방법 및 장치가 제공된다. 이 장치는 수신기(140)와 파일 패처(150)를 포함한다. 수신기(140)는 컨테이너 파일을 포함하는 패킷을 수신하고, 패킷 손실이 발생한 임의의 패킷을 식별하고, 상기 패킷 손실에 의해 영향을 받은 상기 식별된 패킷에 포함된 데이터를 갖는 적어도 하나의 샘플을 식별하기 위한 것이다. 상기 적어도 하나의 샘플은 제각각 특별한 컨테이너 파일에 대응한다. 상기 파일 패처(150)는 상기 적어도 하나의 샘플에 대해 상기 특별한 컨테이너 파일을 수리하기 위한 것이다.
Description
관련된 출원에 대한 교차-참조
본 출원은 그 전체가 여기에 참조에 의해 병합되는 2006년 8월 29일에 출원된 미합중국 가출원 일련번호 60/823,880의 이익을 주장한다.
본 발명의 원리는 일반적으로 비디오 인코딩에 대한 것이고, 보다 구체적으로는 손실된 패킷을 갖는 컨테이너 파일 내에 포함된 샘플을 수리하기 위한 방법 및 장치에 대한 것이다.
컨테이너 포맷은 표준화된 인코더와 코덱에 의해 압축된 다양한 유형의 데이터를 포함할 수 있는 컴퓨터 파일 포맷이다. 컨테이너 파일은 상이한 데이터 유형을 식별하고 인터리빙하기 위해 사용된다. 보다 간단한 컨테이너 포맷은 상이한 유형의 오디오 코덱을 포함할 수 있으며, 한편 보다 진보된 컨테이너 포맷은 다양한 스트림을 함께 재생하기 위해 필요로 하는 동기 정보와 함께, 오디오, 비디오, 자 막, 장(chapter)과 메타-데이데(태그)를 지원할 수 있다.
컨테이너 파일이 손실이 많은 네트워크를 통해 방송되거나 멀티캐스팅될 때, 파일 수신시에 패킷 오류가 발생할 수 있다. 일부 비디오 디코더는 채널 오류에 대해 견고하지(robust) 않다. 종종 비디오 디코더 또는 플레이어가 부분적으로 유실된 슬라이스(slices) 또는 화상을 가진 압축된 비디오 파일을 처리할 수 있는 것보다 완전히 유실된 슬라이스 또는 화상을 갖는 압축된 비디오 파일을 처리할 수 있는 것이 더 쉽다. 가변 길이 코딩 때문에, 비디오 디코더가 유실되거나 손상된 데이터를 검출하는 것은 어려운데, 그 이유는 모든 비트가 허용 가능하지만 부정확한 심벌이라고 해석될 수 있기 때문이다. 추가적으로, International Organization for Standardization/International Electrotechnical Commission(ISO/IEC) Moving Picture Experts Group-4(MPEG-4) Part 10 Advanced Video Coding(AVC) 표준/International Telecommunication Union, Telecommunication Sector(ITU-T) H.264 권장안과 같은 일부 컨테이너 파일 포맷은 파일 내의 전체 슬라이스 또는 화상의 위치를 식별하기 위해 오프셋의 테이블에 의존한다. 데이터가 유실될 때, 이러한 오프셋은 부정확하므로, 적절한 비디오 디코더 동작을 방해할 것이다.
비디오가 패킷 네트워크를 통해 스트리밍될 때, 실시간 전송 프로토콜(RTP)가 일반적으로 사용된다. 실시간 전송 프로토콜 패킷 헤더는 손실된 패킷을 식별하기 위해 사용될 수 있는 순차 번호들을 포함한다. 실시간 전송 프로토콜 데이터 패킷은 가변 길이일 수 있다. 압축된 비디오 슬라이스가 패킷과 함께 정렬되는 것이 일반적으로 권장된다. 만약 패킷이 하나 이상의 완전한 슬라이스를 포함하고, 패킷 이 손실되면, 디코더는 부분적인(fractional) 슬라이스를 처리할 능력을 가지지 않을 것이다.
MPEG-4 AVC 표준은 네트워크 추상층(Network Abstraction Layer: NAL) 유닛을 규정하는데, 이 유닛 내에 슬라이스가 포함되어야 한다. 코딩된 화상 내의 매크로블록은 하나 이상의 슬라이스 내로 놓인다. 네트워크 추상층 유닛은 시퀀스 또는 화상 파라미터 세트, 보충적 향상 정보(Supplemental Enhancement Information: SEI) 메시지와 같은 다른 유형의 데이터를 또한 포함할 수 있다. MPEG-4 AVC 표준에 순응형 비트스트림이 인터넷 프로토콜(IP) 네트워크를 통해 스트리밍될 때, 실시간 전송 프로토콜을 사용해서 MPEG-4 AVC 표준과 순응형 비트스트림을 전송하기 위한 구문(syntax)을 규정하는 방식을 사용하는 것이 일반적이다. 하나의 종래 기술 접근법에서, 만약 단편(fragmentation) 또는 집합(aggregation) 유닛이 사용되지 않으면, 단일 전체 네트워크 추상층 유닛이 전송을 위한 인터넷 프로토콜 패킷 내에 놓인다. 만약 이 패킷이 전송 오류 때문에 손실되면, 단일 전체 네트워크 추상층 유닛이 손실된다. 만약 집합 유닛이 사용되면, 다수의 전체 네트워크 추상층 유닛은 단일 패킷 내에 놓인다. 만약 이 패킷이 전송 오류 때문에 손실되면, 다수의 전체 네트워크 추상층 유닛이 손실된다. 이 경우에, 부분 네트워크 추상층 유닛이 대응하는 수신기에 도달하지 않을 것이다. 만약 단편 유닛이 사용되면, 단일의 큰 네트워크 추상층 유닛이 다수의 패킷으로 분할된다. 실시간 전송 프로토콜 패킷에 포함된 순차 번호들을 이용해서 수신기는 하나 이상의 이러한 패킷이 전송 오류 때문에 손실되는지를 검출할 수 있다.
만약 단편 유닛이 손실되면, 수신기는 동일한 단편화된 네트워크 추상층 유닛에 대응하는 전송 순서로 모든 다음과 같은 단편 유닛을 버려야 한다. 종료점에서 또는 매체인지 네트워크 요소(Media Aware Network Element: MANE) 내의 수신기는 비록 네트워크 추상층 유닛의 단편 n이 수신되지 않을지라도, 네트워크 추상층 유닛의 처음 n-1개의 단편들을 (불완전한) 네트워크 추상층 유닛에 집합시킬 수 있다. 이 경우에, 네트워크 추상층 유닛의 forbidden-zero_bit는 구문 위반을 지시하기 위해 1로 설정된다. MPEG-4 AVC 표준에 따라, 네트워크 추상층 유닛 헤더는 forbidden_zero_bit라고 불리는 하나의 비트 구문 필드를 포함한다. MPEG-4 AVC 순응형 비트스트림에서, forbidden_zero_bit는 일반적으로 0과 같다. 비트스트림 구문에서 오류가 검출될 때, 디코더는 검출된 조건을 바이트 정렬이 손상되었을 수 있다는 지시로서 고려하고, 비트스트림의 나중 위치에서 바이트 정렬이 검출될 때까지 모든 비트스트림 데이터를 버릴 수 있다.
MPEG-4 AVC 표준은 필러(filler) 데이터 네트워크 추상층 유닛 유형을 정의 한다. 디코더는 필러 데이터를 포함하는 네트워크 추상층 유닛을 무시하는 것이 기대된다.
양방향 네트워크를 통한 파일 전송은 예를 들면 전송 제어 프로토콜(TCP)와 같은 신뢰성 있는 프로토콜을 종종 이용한다. 만약 패킷 손실이 발생하면, 궁극적으로 파일 내의 모든 데이터를 수신하기 위해 재전송이 사용된다. 파일이 단방향 네트워크 또는 신뢰성이 없는 프로토콜을 사용하는 양방향 네트워크를 통해 전송될 때, 재전송은 사용되지 않는다.
압축된 비디오와 오디오는 예를 들면, MPEG-4 AVC 표준, Audio Video Interleaved(AVI) 포맷, 3rd Generation Partnership Project(3GPP), 그리고 ISO/IEC MPEG-2 표준에 따른 멀티미디어 컨테이너 포맷 내에 함께 저장될 수 있다. MPEG-4 AVC 표준은 다수의 상이한 비디오(MPEG-2 비디오, MPEG-4 Part 2 비디오, 또는 MPEG-4 AVC 비디오) 또는 오디오(MPEG-2 Layer 3, Advanced Audio Coding(AAC)) 포맷들을 저장하기 위해 사용될 수 있는 컨테이너 파일 포맷을 포함한다. MPEG-4 AVC 표준 파일 포맷은 ISO 미디어 파일 포맷에 기초한다.
MPEG-4 AVC 파일 내의 기본 유닛은 샘플인데, 이 샘플은 비디오에 대해서 일반적으로 전체 코딩된 화상이다. 비-힌트(non-hint) 트랙에서, 샘플은 비디오의 개별 프레임, 시간-연속적인 일련(series)의 비디오 프레임, 또는 오디오의 시간-연속적 압축된 섹션이다. 힌트 트랙에서, 샘플은 하나 이상의 스트리밍 패킷의 형성을 한정한다. 트랙 내의 아무런 두 개의 샘플도 동일 시간-스탬프를 공유하지 않는다.
MPEG-4 AVC 파일은 샘플 테이블을 포함한다. 샘플 테이블은 샘플이 위치된 파일 내의 오프셋과 샘플 크기를 지시하는 각 샘플(일반적으로 코딩된 화상)에 대한 정보를 제공한다.
샘플 테이블은 트랙 내의 미디어 샘플의 모든 시간과 데이터 인덱싱을 포함한다. 테이블을 사용해서, 시간에 있어서 샘플을 위치시키고, 그 유형(예, I-프레임 또는 다른 유형)을 결정하고, 그 크기, 컨테이너, 및 이 컨테이너 내로의 오프 셋을 결정하는 것이 가능하다.
만약 샘플 테이블 박스가 포함된 트랙이 데이터를 참으로 참조하면, 다음과 같은 서브-박스가 요구될 수 있다: 샘플 설명, 샘플 크기, 청크(chunk)할 샘플 및 청크 오프셋.
MPEG-4 AVC 파일 포맷이 MPEG-4 AVC 비디오를 포함하기 위해 확장되었다. MPEG-4 AVC 비디오는 MPEG-4 AVC 파일 포맷에 포함되고, 시작 코드는 파일 내에 포함되지 않는다.
단방향 전송을 통한 파일 전달(File Delivery over Unidirectional Transport: FLUTE)이라고 불리는 파일 전달 프로토콜은 단방향 네트워크를 통한 멀티캐스트 전달을 목표로 한다. FLUTE은 MPEG-4 AVC 파일을 전달하기 위해 사용될 수 있다. 특별한 FLUTE 세션 내의 모든 FLUTE 전송된 패킷은 동일한 길이이고, 따라서 MPEG-4 AVC 파일 내에서 가변 길이 코딩된 슬라이스 또는 화상을 가지고 정렬되지 않을 것이다. 만약 패킷 손실이 MPEG-4 AVC 파일의 전달 동안 발생하면, 수신된 부분적 MPEG-4 AVC 파일은 무효하다. 동일 테이블 내의 오프셋은 부정확한 위치를 가리킬 것이다. 가변 길이 코딩된 화상 때문에, 무효한 MPEG-4 AVC 파일에서, 특별한 코딩된 프레임의 시작을 가리켜야 하는 MPEG-4 AVC 샘플 테이블 내의 오프셋은 그 대신 비트스트림 데이터 내의 알려지지 않은 위치를 가리킬 것인데, 이 위치는 코딩된 프레임의 중간에 있을 가능이 높다. 각각의 FLUTE 패킷은 각각의 전송된 패킷에 대해 증가하는 소스 블록 번호 필드를 포함한다. FLUTE 프로토콜은 전달될 파일의 크기를 지시하기 위한 필드를 포함하는 파일 설명 테이블(FDT)을 포함 한다.
종래 기술의 이러한 및 다른 단점 및 불이익은 손실된 패킷을 갖는 컨테이너 파일 내에 포함된 샘플을 수리하기 위한 방법 및 장치에 대한 본 발명의 원리에 의해 다루어진다.
본 발명의 원리의 양상에 따라, 하나의 장치가 제공된다. 이 장치는 수신기와 파일 패처(patcher)를 포함한다. 수신기는 컨테이너 파일을 포함하는 패킷을 수신하고, 패킷 손실이 발생한 임의의 패킷을 식별하고, 상기 패킷 손실에 의해 영향을 받은 상기 식별된 패킷에 포함된 데이터를 갖는 적어도 하나의 샘플을 식별하기 위한 것이다. 상기 적어도 하나의 샘플은 제각각 특별한 컨테이너 파일에 대응한다. 상기 파일 패처는 상기 적어도 하나의 샘플에 대해 상기 특별한 컨테이너 파일을 수리하기 위한 것이다.
본 발명의 원리의 다른 하나의 양상에 따라, 하나의 방법이 제공된다. 이 방법은 컨테이너 파일을 포함하는 패킷을 수신하는 단계; 패킷 손실이 발생한 임의의 패킷을 식별하는 단계; 상기 패킷 손실에 의해 영향을 받는 상기 식별된 패킷에 포함된 데이터를 갖는 적어도 하나의 샘플을 식별하는 단계로서, 상기 적어도 하나의 샘플은 특별한 컨테이너 파일에 제각각 대응하는, 식별하는 단계; 및 상기 적어도 하나의 샘플에 대해 상기 특별한 컨테이너 파일을 수리하는 단계를 포함한다.
본 발명의 원리의 이런 및 다른 양상, 특징과 이점은 첨부된 도면들과 함께 읽혀질 예시적인 실시예들의 다음과 같은 상세한 설명으로부터 명백하게 될 것이다.
본 발명의 원리들은 다음과 같은 예시적인 도면들에 따라 보다 잘 이해될 수 있다.
도 1은 본 발명의 원리의 실시예에 따라 본 발명이 적용될 수 있는 단방향 비디오 파일 전송 시스템을 위한 블록도.
도 2는 본 발명의 원리의 실시예에 따라 본 발명이 적용될 수 있는 예시적인 컨테이너 파일을 도시한 도면.
도 3은 본 발명의 원리의 실시예에 따라 본 발명의 원리가 적용될 수 있는 전송 패킷화를 갖는 예시적인 컨테이너 파일을 도시한 도면.
도 4는 본 발명의 원리의 실시예에 따라 본 발명의 원리가 적용될 수 있는 전송 패킷화와 패킷 손실을 갖는 예시적인 컨테이너 파일을 도시한 도면.
도 5는 본 발명의 원리의 실시예에 따라, 제1 예시적인 갱신 옵션에 따라 갱신된 샘플 테이블을 가지고 파일 패칭한 후에 전송 패킷화와 패킷 손실을 갖는 예시적인 컨테이너 파일을 도시한 도면.
도 6은 본 발명의 원리의 실시예에 따라, 제2 예시적인 갱신 옵션에 따라 필러 데이터를 사용해 파일 패칭한 후에 전송 패킷화와 패킷 손실을 갖는 예시적인 컨테이너 파일을 도시한 도면.
도 7은 본 발명의 원리의 실시예에 따라, 손실된 패킷에 의해 영향을 받는 샘플을 결정하기 위한 예시적인 방법을 위한 흐름도.
도 8은 본 발명의 원리의 실시예에 따라, 손실된 패킷에 의해 영향을 받는 샘플을 대체시키기 위한 예시적인 방법을 위한 흐름도.
본 발명의 원리는 손실된 패킷을 갖는 컨테이너 파일에 포함된 샘플을 수리하기 위한 방법 및 장치에 대한 것이다.
본 발명의 설명은 본 발명의 원리를 묘사한다. 따라서 당업자가, 비록 여기서 명시적으로 설명되거나 보여지지 않지만, 본 발명의 원리를 실현하고, 본 발명의 정신과 범위 내에 포함되는, 다양한 배열을 고안할 수 있다는 것이 인식될 것이다.
여기서 기술된 모든 예들과 조건적인 언어는 종래 기술을 향상시키기 위해 본 발명자(들)에 의해 기여되는 본 발명의 원리와 개념을 독자가 이해하는 것을 돕기 위한 교육적인 목적을 위해 의도되고, 이와 같이 특정되게 열거된 예들과 조건들로의 제한이 없는 것으로 해석되어야 한다.
또한, 본 발명의 특정 예시뿐만 아니라, 원리, 양상 및 실시예를 기술하는 모든 문장들은 본 발명과 구조적 및 기능적 등가물 모두를 포괄하는 것으로 의도된다. 추가적으로 이러한 등가물은 미래에 개발되는 등가물 뿐만 아니라 현재 알려진 등가물 모두, 즉, 구조와는 상관없이 동일 기능을 수행하기 위해 개발된 임의의 요 소들을 포함하는 것으로 의도된다.
따라서, 예를 들면, 본 명세서에서 제공된 블록도는 본 발명의 원리를 실현하는 예시적인 회로의 개념도를 표현하는 것이라는 것이 당업자에 의해 인식될 것이다. 유사하게, 임의의 흐름 차트, 흐름도, 상태 전이도, 의사 코드 등은 컴퓨터 판독가능 매체에서 실질적으로 표현될 수 있고, 컴퓨터 또는 프로세서가 명시적으로 도시되는지에 상관없이 이러한 컴퓨터 또는 프로세서에 의해 실행될 수 있다는 것이 인식될 것이다.
도면들에서 도시된 다양한 요소의 기능은 적절한 소프트웨어와 연관되어 소프트웨어를 실행할 수 있는 하드웨어뿐만 아니라 전용 하드웨어의 사용을 통해 제공될 수 있다. 프로세서에 의해 제공될 때, 이러한 기능은 단일 전용 프로세서에 의해서, 단일 공유되는 프로세서에 의해서, 또는 복수의 개별 프로세서(이것들의 일부는 공유될 수 있다)에 의해 제공될 수 있다. 또한, "프로세서" 또는 "제어기"라는 용어의 명시적인 사용은 소프트웨어를 실행할 수 있는 하드웨어를 배타적으로 참조하는 것으로 해석되지 말아야 하고, 제한이 없이 디지털 신호 프로세서("DSP") 하드웨어, 소프트웨어를 저장하기 위한 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 그리고 비휘발성 저장 장치를 포함할 수 있다.
다른 하드웨어(종래의 및/또는 맞춤형)가 또한 포함될 수 있다. 유사하게, 도면들에 도시된 임의의 스위치는 단지 개념일 뿐이다. 이것들의 기능은 프로그램 로직의 동작을 통해, 전용 로직을 통해, 프로그램 제어 및 전용 로직의 상호작용을 통해, 또는 심지어 수동으로 수행될 수 있으며, 특별한 기술이 상황으로부터 보다 특정되게 이해되는 대로 구현자에 의해 선택 가능하다.
본 명세서의 청구항들에서, 특정 기능을 수행하기 위한 수단으로서 표현되는 임의의 요소는 예를 들면 a) 이 기능을 수행하는 회로 요소의 조합, 또는 b) 이 기능을 수행하는 소프트웨어를 실행하기 위한 적절한 회로와 결합된 펌웨어, 마이크로코드 등을 포함하는 임의의 형태의 소프트웨어를 포함하는 이 기능을 수행하는 임의의 방식을 포괄하기 위해 의도된다. 이러한 청구항들에서 한정되는 본 발명의 원리는 다양하게 열거되는 수단에 의해 제공되는 기능이 이러한 청구항들이 청구하는 방식대로 조합되고 결합된다는 사실에 있다. 따라서, 이러한 기능을 제공할 수 있는 임의의 수단은 여기서 도시된 것과 동등하다고 간주된다.
명세서에서 본 발명의 원리의 "일 실시예"로의 참조는 이 실시예와 연관되어 설명된 특별한 특징, 구조, 속성 등이 본 발명의 원리의 적어도 하나의 실시예에 포함되는 것을 의미한다. 따라서, 본 명세서 전체를 통해 다양한 장소에 기재되어 있는 "일 실시예에서"라는 구문의 기재는 필연적으로 모두 동일한 실시예를 지칭하는 것은 아니다.
더 나아가, 본 발명의 원리의 하나 이상의 실시예는 본 명세서에서 MPEG-4 AVC 표준 및/또는 오디오 비디오 인터리브(AVI) 포맷에 대해 설명되며, 본 발명의 원리의 정신을 유지하면서, 본 발명의 원리는 단지 이러한 표준 및/또는 포맷에 제한되지 않고, 따라서, MPEG-4 AVC 표준 및 다른 공동 비디오 및 오디오 포맷을 포함하는 다른 비디오 코딩 표준, 권장안, 및 이것들의 확장에 대해서 활용될 수 있다는 것이 인식되어야 한다.
또한, 본 발명의 원리의 하나 이상의 실시예가 본 발명의 명세서에서 단방향 전송을 통한 파일 전달(File Delivery over Unidirectional Transport: FLUTE)에 대해 설명되지만, 본 발명의 원리는 단지 이러한 프로토콜에 제한되지 않으며, 따라서 본 발명의 원리의 정신을 유지하면서 다른 파일 전송 프로토콜에 대해 활용될 수 있다는 것이 인식되어야한다.
또한, 본 명세서에서 사용될 때, "수리"라는 용어는 "패칭(patching)"과 같은 의미이다. 즉, 손실된 패킷 또는 패킷들 때문에 영향을 받은 (적어도 부분적으로 손실된) 샘플은 컨테이너(container) 파일로부터 제거되거나(그리고 대응하는 샘플 테이블은 적절하게 갱신된다), 영향 받은 (적어도 부분적으로 손실된) 샘플은 그 대신 필러(filler) 비트를 가지고 패딩(padding)된다. 필러 비트는 디코더가 폐기하고 디코딩하지 않기 위해 의도되는 데이터이다.
위에서 지적된 것처럼, 본 발명의 원리는 손실된 패킷을 갖는 컨테이너 파일에 포함된 샘플을 수리하기 위한 방법 및 장치에 대한 것이다.
일 실시예에서, 본 발명의 원리는 패킷 손실이 있는 수신된 컨테이너 파일을 수리하기 위한 방법 및 장치를 제공해서, 이 파일이 오디오/비디오 디코더에 의해 재생될 수 있게 한다. 수리/패칭 프로세스는 슬라이스 또는 화상을 나타내는 부분적으로 수신된 샘플을 컨테이너 파일로부터 제거한다. 이것은 손상된 슬라이스 또는 화상에 대해서 견고하지 않는 디코더가 파일을 처리할 수 있게 한다. 디코더는 손실된 슬라이스 또는 화상을 은닉하기 위해 에러 은닉을 여전히 수행할 수 있다.
도 1을 보면, 단방향 비디오 파일 전송 시스템이 참조 번호(100)에 의해 일 반적으로 지시된다.
시스템(100)은 파일 전송기(120)의 입력에 신호 통신으로 연결된 출력을 갖는 저장 디바이스(110)를 포함한다. 파일 전송기(120)의 출력은 패킷 네트워크(130)의 입력에 신호 통신으로 연결된다. 패킷 네트워크(130)의 출력은 파일 수신기(140)의 입력에 신호 통신으로 연결된다. 파일 수신기(140)의 제1 출력은 파일 패처(150)의 입력에 신호 통신으로 연결된다. 파일 수신기(140)의 제2 출력은 저장 디바이스(160)의 입력에 신호 통신으로 연결된다. 저장 디바이스(160)의 양방향 입출력은 파일 패처(150)의 양방향 입출력에 신호 통신으로 연결되다. 파일 패처(150)의 출력은 비디오 디코더(170)의 입력에 신호 통신으로 연결된다.
압축된 비디오 및 선택적으로 오디오 데이터는 MPEG-4 또는 오디오 비디오 인터리브(AVI)와 같은 컨테이너 파일 포맷으로 저장된다. 컨테이너 파일은 네트워크를 통해 파일 수신기에 전송되는데, 파일 수신기에서 파일이 국부적으로(locally) 저장된다. 파일 전송 프로토콜은 임의의 패킷 손실이 발생했는지를 지시할 수 있어야 한다. 만약 단방향 전송을 통한 파일 전송(FLUTE)이 파일 전송 프로토콜로서 사용되면, 파일 수신기는 수신된 소스 블록 번호 필드에서 간격(gap)을 검출할 수 있다. 만약 수신된 패킷의 소스 블록 번호가 바로 이전의 수신된 패킷의 소스 블록 번호보다 하나만큼 높지 않다면, 패킷 손실이 검출될 수 있다. 파일 수신기(140)는 손실된 소스 블록 번호들을 파일 패처(150)에 지시해야 한다. 하나의 FLUTE 파일 수신기는 수신된 파일 크기를 파일 설명 테이블(FDT)에 지시된 파일 크기와 비교하여 전송 손실이 발생했는지를 결정할 수 있다. 만약 수신된 파일 크기 가 FDT 파일 크기와 동일하지 않으면, 전송 손실이 발생했는지가 알려지지만, 어느 데이터가 손실됐는지는 결정하지 않는다. 만약 모든 데이터가 적절하게 수신되지 않았으면, 파일 패칭 프로세스를 수행하는 것이 필요치 않다.
도 2를 보면, 예시적인 컨테이너 파일이 참조 번호(200)에 의해 일반적으로 지시된다. 컨테이너 파일(200)은 샘플 테이블(210)과 가변 크기 코딩된 화상(220)을 포함한다.
샘플 테이블(210)은 각 샘플에 대해 예를 들면, 파일 오프셋과 크기와 같은 정보를 포함한다. 물론, 이 정보는 단지 상기 선행하는 유형의 정보에만 제한되는 것이 아니며, 따라서, 샘플과 관련된 다른 유형의 정보가 본 발명의 원리의 범위를 유지하면서, 또한 사용될 수 있다. 테이블 1은 컨테이너 파일 샘플 테이블을 위한 예시적인 내용을 도시하며, 여기서 각 샘플은 코딩된 화상을 나타낸다.
화상 번호 | 오프셋 | 크기 |
0 | 900 | 923 |
1 | 1823 | 415 |
2 | 2238 | 639 |
3 | 2877 | 312 |
4 | 3189 | 1527 |
테이블 1
도 3을 보면, 전송 패킷화를 가진 예시적인 컨테이너 파일이 참조 번호(300)에 의해 일반적으로 지시된다. 컨테이너 파일(300)은 어떻게 예시적인 컨테이너 파일이 전송을 위해 길이 1000의 고정된 크기 패킷으로 분할되는지를 보여 준다. 이 예에서, 패킷(2)은 화상1의 끝 부분, 화상2의 전부, 그리고 화상3의 시작 부분을 포함한다.
만약 패킷2가 전송 동안에 손실되었다면, 패킷2에 포함된 데이터는 손실될 것이다. 만약 디코더가 파일 패칭 프로세스를 사용하지 않고 파일을 디코딩하려고 시도했다면, 화상1을 디코딩하려고 시도할 때, 디코더는 부정확한 데이터에 대해서 동작할 것이다. 도 4는 이 예를 묘사한다.
도 4를 보면, 전송 패킷화와 패킷 손실을 갖는 예시적인 컨테이너 파일이 참조 번호 400에 의해 일반적으로 지시된다. 디코더(170)가 샘플 테이블에 지시된 화상1의 기대된 380 바이트를 액세스하려고 시도했을 때, 디코더는 1a로서 도 4에 지시된 화상1의 정확한 초기 부분, 3b로서 지시된 화상3의 최종 부분, 그리고 화상4의 부분을 얻을 것이다. 가변 길이 코딩 때문에, 디코더는 자신이 유효하지 않은 데이터를 처리하고 있다는 것을 검출할 수 없을 가능성이 높아서, 이 데이터를 부정확하게 해석할 것이다. 예를 들면, 변환 계수가 움직임 벡터라고 해석되었을 때, 이것은 매우 이상하게 보이는 비디오를 야기할 수 있다. 추가적으로, 부적절한 메모리 위치를 액세스하기 위해 시도하기 때문에 디코더가 갑자기 기능을 멈추는 것이(crash) 가능할 것이다.
본 발명의 원리의 하나 이상의 실시예에 따라 패칭은 유효하지 않은 데이터를 디코더에 송신하는 이러한 문제점을 해결한다. 일 실시예에서, 파일 패칭 프로세스는 파일 수신 동안 또는 이후에, 그리고 디코딩 이전에 컨테이너 파일에 적용될 것이다. 패칭 프로세스에서, 각각의 손실된 패킷에 대해서, 샘플의 적어도 일 부분이 손실되었기 때문에 어느 샘플이 손실된 패킷에 의해 영향을 받는지에 대한 결정이 내려질 것이다. 그런 후에, 컨테이너 파일이 손상된 샘플을 제거하기 위해 그러한 영향을 받은 샘플의 각각에 대해서 갱신된다. 디코더가 자신이 유효한 코딩된 화상 또는 슬라이스만을 수신할 것이라는 것을 보장하게 하기 위해 정확하게 수신된 데이터의 일부는 제거되거나 대체된다.
일 실시예에서, 어느 샘플이 손실된 패킷에 의해 영향을 받는지를 결정하기 위한 프로세스는 파일 수신기에 의해 손실된 패킷에 대응하는 것으로 결정된 패킷 길이(pkt_length)와 소스 블록 번호들을 포함하는 예를 들면 FLUTE과 같은 파일 전송 프로토콜로부터의 정보를 이용한다. 프로세스는 또한 샘플 오프셋(또는 청크 오프셋)과 샘플 크기를 포함하는 컨테이너 파일 포맷의 샘플 테이블로부터의 정보를 또한 이용한다. 이러한 파라미터는 손실된 패킷에 있었던 바이트와 컨테이너에 파일 내의 대응하는 코딩된 샘플간의 중첩을 결정하기 위해 이용된다. 특별한 샘플에 대해서, 만약 임의의 중첩이 샘플과 손실된 패킷간에 존재하여, 샘플의 적어도 일부분이 손실된다면, 샘플은 패킷 손실에 의해 영향을 받는 것으로 표시된다.
어느 샘플이 손실된 패킷에 의해 영향을 받는지를 결정하기 위해 FLUTE의 사용이 본 명세서에서 예시적인 목적을 위해 설명되고, 본 발명의 원리는 이러한 결정을 위해 FLUTE의 이용에만 제한된다는 것이 인식되어야 한다. 즉, 본 명세서에서 제공된 본 발명의 원리의 교시가 주어졌을 때, 당업자는 본 발명의 원리의 정신을 유지하면서, 본 발명의 원리에 따라 수리를 수행하는데 이용하기 위해, 어느 샘플이 손실된 패킷에 의해 영향을 받는지를 결정하기 위해 FLUTE, 및 다른 프로토콜과 접근법의 이용을 고려할 것이다.
도 7을 보면, 손실된 패킷에 의해 영향을 받는 샘플을 결정하기 위한 예시적 인 방법은 참조 번호(700)에 의해 일반적으로 지시된다.
방법(700)은 제어를 기능 블록(710)으로 전달하는 시작 블록(705)을 포함한다. 기능 블록(710)은 변수(s)에 의해 표시되는 현재 샘플을 0으로 설정하고, 제어를 순환(loop) 제한 블록(715)으로 전달한다. 순환 제한 블록(715)은 소스 블록 번호를 표시하는 변수(m)에 의해 표시되는 각각의 손실된 소스 블록에 대한 순환을 수행하고, 제어를 기능 블록(720)으로 전달한다. 기능 블록(720)은 lost_pkt_offset[m]을 pkt_length*m으로 설정하고, 제어를 결정 블록(725)으로 전달한다. 결정 블록(725)은 offset[s]+size[s]가 lost_pkt_offset[m]보다 큰 지를 결정한다. 만약 그렇다면, 제어는 기능 블록(730)으로 전달된다. 그렇지 않다면, 제어는 기능 블록(745)으로 전달된다.
기능 블록(730)은 샘플(s)가 패킷 손실에 의해 영향을 받은 것으로 표시하고, 제어를 결정 블록(735)으로 전달한다. 결정 블록(735)은 offset[s]+size[s]<lost_pkt_offset[m]+pkt_length가 성립하는 지를 결정한다. 만약 그렇다면 제어는 기능 블록(740)으로 전달된다. 그렇지 않으면, 제어는 순환 제한 블록(750)으로 전달된다.
기능 블록(740)은 변수(s)를 증가시키고, 제어를 기능 블록(730)으로 복귀시킨다.
순환 제한 블록(750)은 변수(m)에 의해 지정되는 각각의 손실된 소스 블록 상에서 순환을 끝내고, 제어를 종결 블록(799)으로 전달한다.
기능 블록(745)은 s를 증가시키고, 제어를 결정 블록(725)으로 복귀시킨다.
만약 방법(700)이 본 명세서에서 묘사된 예에 적용되었다면, 화상1, 2, 및 3에 대응하는 샘플은 패킷 손실에 의해 영향을 받은 것으로 표시될 것이다.
영향을 받은 샘플이 결정된 후에, 컨테이너 파일이 본 명세서에서 설명된 두 개의 예시적인 옵션들 중 하나를 사용해서 그러한 영향을 받은 샘플을 패치(patch)하기 위해 갱신된다. 물론, 상기 예시적인 옵션들은 예시적인 목적을 위한 것이고, 당업자가 본 명세서에서 제공된 본 발명의 원리의 교시가 주어졌을 때 본 발명의 원리의 정신을 유지하면서 컨테이너 파일을 갱신하기 위한 이러한 및 다른 옵션들을 고려할 것이므로, 본 발명의 원리는 이러한 옵션에만 제한되지는 않는다는 것이 인식되어야 한다.
제1 예시적인 옵션에 따라, 영향을 받는 샘플에 대응하는 모든 데이터는 파일로부터 제거되고, 샘플 테이블은 패킷 손실에 의해 영향을 받는 모든 샘플을 제거하기 위해 갱신된다. 그런 후에, 샘플 테이블 내의 모든 다른 샘플의 오프셋은 제거된 샘플을 고려하기 위해 조정된다. 제거된 각각의 샘플에 대해서, 제거된 샘플의 크기는 샘플 테이블 내의 모든 후속 샘플의 오프셋 값으로부터 빼진다. 이 옵션을 따라서, 패칭 후에 컨테이너 파일의 전체 크기가 감소된다. 도 5를 보면, 제1 예시적인 갱신 옵션에 따라 갱신된 샘플 테이블을 가지고 파일 패칭 한 후에 전송 패킷화와 패킷 손실을 갖는 예시적인 컨테이너 파일이 참조 번호(500)에 의해 일반적으로 지시된다.
제2 예시적인 옵션에 따라, 샘플 테이블이 수정되지 않는다. 대신에, 필러(filler) 데이터가 모든 영향을 받는 샘플의 위치 내로 놓인다. 이 옵션을 따라 서, 패칭 후 컨테이너 파일의 전체 크기는 원래 파일의 크기와 동일하다. 도 6을 보면, 제2 예시적인 갱신 옵션을 따라 필러 데이터를 사용해서 파일 패칭 한 후에 전송 패킷화와 패킷 손실을 갖는 예시적인 컨테이너 파일이 참조 번호(600)에 의해 일반적으로 지시된다.
만약 사용된 비디오 압축 표준이 MPEG-4 AVC 표준이라면, 필러 데이터를 포함하는 네트워크 추상화 층 유닛이 영향을 받은 샘플을 대체하기 위해 컨테이너 파일 내로 놓여 질 수 있다. 다른 하나의 옵션은 네트워크 추상화 층 유닛 헤더의 forbidden_zero_bit를 1로 설정하는 것인데, 이는 이 유닛이 손상된 네트워크 추상화 층 유닛이라는 것을 디코더에게 지시한다. 일부 컨테이너 파일 포맷(MPEG-4 AVC 표준 인코딩된 비디오에 적용되는 예를 들면 MPEG-4 AVC 표준 파일 포맷과 같은)은 유닛의 크기(NALUnitLength)를 갖는 각각의 네트워크 추상화 층 유닛을 이어서(perpend) 단일 샘플 내에 일련의 네트워크 추상화 층(NAL) 유닛을 저장할 수 있다. 만약 forbidden_zero_bit 방법이 손상을 지시하기 위해 사용되고, 다수의 추상화 층 유닛이 영향을 받은 샘플 내에 존재한다면, NALUnitLength은 영향을 받은 샘플의 전체 크기를 반영하기 위해 조정되어야 한다(NALUnitLength 필드의 크기를 뺌).
컨테이너 파일 내의 샘플의 기본 유닛은 일반적으로 전체 코딩된 화상이다. 하지만, 이 개념은 개별적인 슬라이스에 또한 적용할 수 있다. 코딩된 화상 또는 코딩된 슬라이스는 그러한 데이터의 적어도 일부분이 전송 동안 손실되었을 때 제거된다.
도 8을 보면, 손실된 패킷에 의해 영향을 받은 샘플을 대체하기 위한 예시적인 방법이 참조 번호(800)에 의해 일반적으로 지시된다.
방법(800)은 제어를 기능 블록(810)으로 전달하는 시작 블록(805)을 포함한다. 기능 블록(810)운 현재 샘플(s)을 0으로 설정하고, 제어를 순환 제한 블록(815)으로 전달한다. 기능 블록(815)은 각 샘플(s) 상에서 순환을 수행하고, 제어를 결정 블록(820)으로 전달한다.
결정 블록(820)은 s가 패킷 손실에 의해 영향을 받은 것으로 표시되는지를 결정한다. 만약 그렇다면, 제어는 결정 블록(825)으로 전달된다. 그렇지 않다면, 제어는 기능 블록(850)으로 전달된다.
결정 블록(825)은 forbidden_zero_bit 방법을 사용할지를 결정한다. 만약 그렇다면, 제어는 기능 블록(830)으로 전달된다. 그렇지 않다면, 제어는 결정 블록(855)으로 전달된다.
기능 블록(830)은 현재 샘플의 시작 부분에 있는 NALUnitLength 필드를 샘플 s의 길이에서 길이 필드의 크기를 뺀 값으로 설정하고, 제어를 기능 블록(835)으로 전달한다. 기능 블록(835)은 현재 샘플의 제일 처음의 NAL 헤더의 forbidden_zero_bit를 1로 설정하고, 제어를 결정 블록(840)으로 전달한다.
결정 블록(840)은 현재 샘플(s)가 마지막 샘플인지를 결정한다, 만약 그렇다면, 제어는 순환 제한 블록(845)에 전달된다. 그렇지 않다면, 제어는 기능 블록(850)으로 전달된다.
기능 블록(845)은 각 샘플(s) 상에서의 순환을 끝내고, 제어를 종결 블 록(899)으로 전달한다.
기능 블록(850)은 s를 증가시키고, 제어를 결정 블록(820)으로 복귀시킨다.
결정 블록(855)은 필러 NAL 방법을 사용할 것인지를 결정한다. 만약 그렇다면, 제어는 기능 블록(860)으로 전달된다. 그렇지 않다면, 제어는 기능 블록(870)으로 전달된다.
기능 블록(860)은 현재 샘플의 시작 부분에 있는 NALUnitLength 필드를 샘플 (s)의 길이에서 길이 필드의 크기를 뺀 값으로 설정하고, 제어를 기능 블록(865)으로 전달한다. 기능 블록(865)은 샘플의 내용(contents)을 필러 비트 내용을 포함하는 NAL로 대체시키고, 제어를 결정 블록(840)으로 전달한다.
기능 블록(870)은 샘플 제거 방법이 사용된다는 것을 지정하고, 제어를 기능 블록(875)으로 전달한다. 기능 블록(875)은 파일로부터 샘플을 제거하고, 제어를 기능 블록(880)으로 전달한다. 기능 블록(880)은 제거된 샘플을 지시하기 위해 샘플 테이블을 갱신하고, 제어를 결정 블록(840)으로 전달한다.
본 발명의 많은 수반하는 이점/특징 중 일부에 대한 설명이 이제 주어질 것인데, 이것들 중 일부는 위에서 언급되었다. 예를 들면, 하나의 이점/특징은 수신기와 파일 패처를 포함하는 장치이다. 수신기는 컨테이너 파일을 포함하는 패킷을 수신하고, 패킷 손실이 발생한 임의의 패킷을 식별하고, 패킷 손실에 의해 영향을 받는 식별된 패킷 내에 포함된 데이터를 갖는 적어도 하나의 샘플을 식별하기 위한 것이다. 적어도 하나의 샘플은 특별한 컨테이너 파일에 각각 대응한다. 파일 패처는 적어도 하나의 샘플에 대해 특별한 컨테이너 파일을 수리하기 위한 것이다.
다른 하나의 이점/특징은 위에서 설명된 것과 같은 수신기와 파일 패처를 갖는 장치인데, 여기서 파일 패처는 특별한 컨테이너 파일로부터 적어도 하나의 샘플을 제거하고, 적어도 하나의 샘플의 제거를 지시하기 위해 특별한 컨테이너 파일의 샘플 테이블을 갱신함으로써 특별한 컨테이너 파일을 수리하는 것이다.
또 다른 하나의 이점/특징은 수신기와 파일 패처를 갖는 장치인데, 여기서 파일 패처는 특별한 컨테이너 파일로부터 적어도 하나의 샘플을 제거하고, 위에서 설명된 것과 같은 적어도 하나의 샘플의 제거를 지시하기 위해 특별한 컨테이너 파일의 샘플 테이블을 갱신함으로써 특별한 컨테이너 파일을 수리하는데, 여기서 파일 패처는 적어도 하나의 샘플의 제거를 고려하기 위해 샘플 테이블 내의 후속적인 샘플의 오프셋을 갱신한다.
또한, 다른 하나의 이점/특징은 수신기와 파일 패처를 갖는 장치인데, 여기서, 파일 패처는 위에서 설명된 것과 같이 적어도 하나의 샘플의 제거를 고려하기 위해 샘플 테이블 내의 후속적인 샘플의 오프셋을 갱신하며, 여기서 파일 패처는 후속적인 샘플의 오프셋으로부터 적어도 하나의 샘플의 크기를 뺀다.
더 나아가, 다른 하나의 이점/특징은 위에서 설명된 것과 같은 수신기와 파일 패처를 갖는 장치인데, 여기서 파일 패처는 적어도 하나의 샘플을 필러 비트 내용으로 대체함으로써 특별한 컨테이너 파일을 수리한다.
또한, 다른 하나의 이점/특징은 위에서 설명된 것과 같은 수신기와 파일 패처를 갖는 장치인데, 여기서 수신기는 패킷 길이, 소스 블록 번호, 컨테이너 파일 샘플 테이블 샘플 오프셋 값, 그리고 컨테이너 파일 샘플 테이블 샘플 크기 중 적 어도 하나에 기초해서 패킷 손실이 발생한 임의의 패킷을 식별한다.
추가적으로, 다른 하나의 이점/특징은 위에서 설명된 것과 같은 수신기와 파일 패처를 갖는 장치인데, 여기서 수신기는 패킷 파라미터와 컨테이너 파일 포맷 샘플 테이블 파라미터 중 적어도 하나를 이용해서 패킷 각각에 포함된 바이트와 컨테이너 파일 각각 내의 대응 샘플간에 임의의 중첩이 존재하는지를 제각각 결정함으로써 패킷 손실이 발생한 임의의 패킷을 식별하고, 중첩이 존재할 때 이러한 임의의 패킷을 패킷 손실을 겪은 것으로 식별한다.
또한, 다른 하나의 이점/특징은 위에서 설명된 것과 같은 수신기와 파일 패처를 갖는 장치인데, 여기서 적어도 하나의 샘플은 부분적으로 수신된 샘플과 완전히 손실된 샘플 중 임의의 하나를 포함하고, 파일 패처는 적어도 하나의 샘플이 손상된 것을 지시하기 위해 적어도 하나의 샘플에 대응하는 네트워크 추상화 층 유닛 헤더 내의 하나의 비트를 설정한다.
더 나아가, 다른 하나의 이점/특징은 위에서 설명된 것과 같은 수신기와 파일 패처를 갖는 장치인데, 여기서 파일 패처는 적어도 하나의 샘플이 손상된 것을 지시하기 위해 적어도 하나의 샘플에 대응하는 적어도 하나의 네트워크 추상화 층 유닛내의 forbidden_zero_bit를 1로 설정한다.
또한, 다른 하나의 이점/특징은 위에서 설명된 것과 같은 수신기와 파일 패처를 갖는 장치인데, 여기서 파일 패처는 특별한 컨테이너파일을 디코딩하기 전에 이 파일을 수리한다.
추가적으로, 다른 하나의 이점/특징은 위에서 설명된 것과 같은 수신기와 파 일 패처를 갖는 장치인데, 여기서 적어도 하나의 샘플은 부분적으로 수신된 샘플과 완전히 손실된 샘플 중 임의의 하나의 샘플을 포함한다.
본 발명의 원리의 이러한 그리고 다른 특징과 이점은 본 명세서의 교시에 기초해서 당업자에 의해 쉽게 확인될 수 있다. 본 발명의 원리의 교시가 다양한 하드웨어, 소프트웨어, 펌웨어, 특수 목적 프로세서, 또는 이것들의 결합으로 구현될 수 있다는 것이 이해되어야 한다.
가장 바람직하게, 본 발명의 원리의 교시는 하드웨어와 소프트웨어의 결합으로서 구현된다. 더 나아가, 소프트웨어는 프로그램 저장 유닛 상에 실체로서(tangibly) 실현되는 애플리케이션 프로그램으로서 구현될 수 있다. 애플리케이션 프로그램은 임의의 적합한 아키텍처를 포함하는 기계에 업로딩되고 이 기계에 의해 실행될 수 있다. 바람직하게, 기계는 하나 이상의 중앙 처리 유닛("CPU"), 랜덤 액세스 메모리("RAM"), 그리고 입출력("I/O") 인터페이스와 같은 하드웨어를 갖는 컴퓨터 플랫폼 상에 구현된다. 컴퓨터 플랫폼은 또한 운영체제와 마이크로명령어 코드를 포함할 수 있다. 본 명세서에서 설명된 다양한 프로세스와 기능은 CPU에 의해 실행될 수 있는, 마이크로명령어 코드의 일부 또는 애플리케이션 프로그램의 일부 또는 이것들의 결합일 수 있다. 또한, 다양한 다른 주변 유닛이 추가적인 데이터 저장 유닛과 프린팅 유닛과 같은 컴퓨터 플랫폼에 연결될 수 있다.
첨부된 도면들에서 묘사된 구성 시스템 성분과 방법의 일부는 바람직하게 소프트웨어로 구현되기 때문에, 시스템 성분 또는 프로세스 기능 블록간의 실제적인 연결은 본 발명의 원리가 프로그래밍되는 방식에 따라 다를 수 있다. 본 명세서의 교시가 주어졌을 때, 당업자는 본 발명의 원리의 이러한 및 유사한 구현 또는 구성을 고려할 수 있을 것이다.
비록 예시적인 실시예들이 첨부된 도면들을 참조해서 본 명세서에서 설명되었지만, 본 발명의 원리는 이러한 특정 실시예들에 제한되지 않으며, 다양한 변경과 수정이 본 발명의 원리의 범위 또는 정신을 벗어나지 않고 당업자에 의해 수행될 수 있다는 것이 이해되어야 한다. 모든 이러한 변경과 수정은 첨부된 청구들에 기재된 대로 본 발명의 원리의 범위 내에 포함되도록 의도된다.
본 발명의 원리는 일반적으로 비디오 인코딩에 이용가능하고, 보다 구체적으로는 손실된 패킷을 갖는 컨테이너 파일 내에 포함된 샘플을 수리하기 위한 방법 및 장치에 이용 가능하다.
Claims (22)
- 장치로서,컨테이너 파일을 포함하는 패킷을 수신하고, 패킷 손실이 발생한 임의의 패킷을 식별하고, 상기 패킷 손실에 의해 영향을 받은 상기 식별된 패킷에 포함된 데이터를 갖는 적어도 하나의 샘플을 식별하기 위한 수신기(140)로서, 상기 적어도 하나의 샘플은 제각각 특별한 컨테이너 파일에 대응하는, 수신기(140)와,상기 적어도 하나의 샘플에 대해 상기 특별한 컨테이너 파일을 수리하기 위한 파일 패처(patcher)(150)를포함하는, 장치.
- 제1항에 있어서, 상기 파일 패처(150)는 상기 특별한 컨테이너 파일로부터 상기 적어도 하나의 샘플을 제거하고, 상기 적어도 하나의 샘플의 제거를 지시하기 위해 상기 특별한 컨테이너 파일의 샘플 테이블을 갱신함으로써 상기 특별한 컨테이너 파일을 수리하는, 장치.
- 제2항에 있어서, 상기 파일 패처(150)는 상기 적어도 하나의 샘플의 제거를 설명하기 위해 상기 샘플 테이블 내의 후속 샘플의 오프셋을 갱신하는, 장치.
- 제3항에 있어서, 상기 파일 패처(150)는 후속 샘플의 오프셋으로부터 상기 적어도 하나의 샘플의 크기를 빼는, 장치.
- 제1항에 있어서, 상기 파일 패처(150)는 상기 적어도 하나의 샘플을 필러(filler) 비트 내용물로 대체시켜서 상기 특별한 컨테이너 파일을 수리하는, 장치.
- 제1항에 있어서, 상기 수신기(140)는 패킷 길이, 소스 블록 번호, 컨테이너 파일 샘플 테이블 샘플 오프셋 값, 및 컨테이너 파일 샘플 테이블 샘플 크기 중 적어도 하나에 기초해서 상기 패킷 손실이 발생한 임의의 패킷을 식별하는, 장치.
- 제1항에 있어서, 상기 수신기(140)는 패킷 파라미터와 컨테이너 파일 포맷 샘플 테이블 파라미터 중 적어도 하나를 이용해서 상기 패킷 각각에 포함된 바이트와 상기 컨테이너 파일 각각 내의 대응하는 샘플간에 중첩이 존재하는지를 제각각 결정함으로써, 상기 패킷 손실이 발생한 임의의 패킷을 식별하고, 상기 중첩이 존재할 때 패킷 손실을 겪은 임의의 패킷을 식별하는, 장치.
- 제1항에 있어서, 상기 적어도 하나의 샘플은 부분적으로 수신된 샘플과 완전히 유실된 샘플 중 임의의 하나를 포함하고, 상기 파일 패처(150)는 상기 적어도 하나의 샘플이 손상된 것을 지시하기 위해 상기 적어도 하나의 샘플에 대응하는 네트워크 추상층(Network Abstraction Layer) 유닛 헤더 내의 한 비트를 설정하는, 장치.
- 제1항에 있어서, 상기 파일 패처(150)는 상기 적어도 하나의 샘플이 손상된 것을 지시하기 위해 상기 적어도 하나의 샘플에 대응하는 적어도 하나의 네트워크 추상층 유닛 내에서 forbidden_zero_bit를 1로 설정하는, 장치.
- 제1항에 있어서, 상기 파일 패처(150)는 상기 특별한 컨테이너 파일을 디코딩하기 전에 수리하는, 장치.
- 제1항에 있어서, 상기 적어도 하나의 샘플은 부분적으로 수신된 샘플과 완전히 손실된 샘플 중 임의의 하나를 포함하는, 장치.
- 방법으로서,컨테이너 파일을 포함하는 패킷을 수신하는 단계;패킷 손실이 발생한 임의의 패킷을 식별하는 단계(725);상기 패킷 손실에 의해 영향을 받는 상기 식별된 패킷에 포함된 데이터를 갖는 적어도 하나의 샘플을 식별하는 단계(730)로서, 상기 적어도 하나의 샘플은 특별한 컨테이너 파일에 제각각 대응하는, 식별하는 단계; 및상기 적어도 하나의 샘플에 대해 상기 특별한 컨테이너 파일을 수리하는 단계(800)를 포함하는, 방법.
- 제12항에 있어서, 상기 수리하는 단계는 상기 적어도 하나의 샘플을 제거하는 단계(875)와, 상기 적어도 하나의 샘플의 제거를 지시하기 위해 상기 특별한 컨테이너 파일의 샘플 테이블을 갱신하는 단계(880)를 포함하는, 방법.
- 제13항에 있어서, 상기 수리하는 단계는 상기 적어도 하나의 샘플의 제거를 설명하기 위해 상기 샘플 테이블 내의 후속 샘플의 오프셋을 갱신하는 단계(880)를 포함하는, 방법.
- 제14항에 있어서, 상기 수리하는 단계는 상기 후속 샘플의 오프셋으로부터 상기 적어도 하나의 샘플의 크기를 빼는 단계(880)를 포함하는, 방법.
- 제12항에 있어서, 상기 수리하는 단계는 상기 적어도 하나의 샘플을 필러 비트 내용물(865)로 대체하는 단계(865)를 포함하는, 방법.
- 제12항에 있어서, 패킷 손실이 발생한 임의의 패킷을 식별하는 상기 단계는 패킷 길이, 소스 블록 번호, 컨테이너 파일 샘플 테이블 샘플 오프셋 값과 컨테이너 파일 샘플 테이블 샘플 크기 중 적어도 하나를 이용하는(725), 방법.
- 제12항에 있어서, 패킷 손실이 발생한 임의의 패킷을 식별하는 상기 단계는 패킷 파라미터와 컨테이너 파일 포맷 샘플 테이블 파라미터 중 적어도 하나를 이용해서 상기 패킷 각각에 포함된 바이트와 상기 컨테이너 파일 각각 내의 대응하는 샘플간에 중첩이 존재하는지를 제각각 결정하는 단계와, 상기 중첩이 존재할 때 패킷 손실을 겪은 임의의 패킷을 식별하는 단계(730)를 포함하는, 방법.
- 제12항에 있어서, 상기 수리하는 단계는 상기 적어도 하나의 샘플이 손상된 것을 지시하기 위해 상기 적어도 하나의 샘플에 대응하는 네트워크 추상층 유닛 헤더 내의 한 비트를 설정하는 단계(835)를 포함하는, 방법.
- 제12항에 있어서, 상기 수리하는 단계는 상기 적어도 하나의 샘플이 손상된 것을 지시하기 위해 상기 적어도 하나의 샘플에 대응하는 적어도 하나의 네트워크 추상층 유닛 내에서 forbidden_zero_bit를 1로 설정하는 단계(835)를 포함하는, 방법.
- 제12항에 있어서, 상기 수리하는 단계는 상기 특별한 컨테이너 파일을 디코딩하기 전에 수행되는, 방법.
- 제12항에 있어서, 상기 적어도 하나의 샘플은 부분적으로 수신된 샘플과 완전히 손실된 샘플 중 임의의 하나를 포함하는, 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US82388006P | 2006-08-29 | 2006-08-29 | |
US60/823,880 | 2006-08-29 | ||
PCT/US2007/018497 WO2008027253A2 (en) | 2006-08-29 | 2007-08-21 | Method and apparatus for repairing samples included in container files having lost packets |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090045289A true KR20090045289A (ko) | 2009-05-07 |
KR101380356B1 KR101380356B1 (ko) | 2014-04-03 |
Family
ID=39030871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097004112A KR101380356B1 (ko) | 2006-08-29 | 2007-08-21 | 손실된 패킷을 갖는 컨테이너 파일에 포함된 샘플을 수리하기 위한 방법 및 장치 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8514887B2 (ko) |
EP (1) | EP2070336B1 (ko) |
JP (1) | JP2010503266A (ko) |
KR (1) | KR101380356B1 (ko) |
CN (1) | CN101513075B (ko) |
WO (1) | WO2008027253A2 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2109293A1 (en) | 2008-04-11 | 2009-10-14 | Thomson Licensing | System and method for improving the file transmission reliability |
KR20140053346A (ko) * | 2011-08-18 | 2014-05-07 | 브이아이디 스케일, 인크. | 패킷 차등화를 위한 방법 및 시스템 |
CN102510493B (zh) * | 2011-10-09 | 2014-01-15 | 航天恒星科技有限公司 | 一种遥感卫星图像容错显示方法 |
US20130254611A1 (en) * | 2012-03-23 | 2013-09-26 | Qualcomm Incorporated | Recovering data in multimedia file segments |
US9723305B2 (en) | 2013-03-29 | 2017-08-01 | Qualcomm Incorporated | RTP payload format designs |
JP6181876B2 (ja) | 2014-06-25 | 2017-08-16 | エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd | マルチメディア情報を管理する方法、装置、及び無人航空機 |
US20160249092A1 (en) * | 2015-02-24 | 2016-08-25 | Layer3 TV, Inc. | System and method for digital video recording backfill |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9206863D0 (en) * | 1992-03-27 | 1992-05-13 | British Telecomm | Apparatus for transmitting and receiving information blocks |
JP2998659B2 (ja) * | 1996-10-11 | 2000-01-11 | 日本電気株式会社 | 誤り制御装置 |
JP3564309B2 (ja) * | 1998-11-18 | 2004-09-08 | 松下電器産業株式会社 | データ処理装置とその制御方法 |
US6357028B1 (en) * | 1999-03-19 | 2002-03-12 | Picturetel Corporation | Error correction and concealment during data transmission |
JP2001025010A (ja) * | 1999-07-09 | 2001-01-26 | Mitsubishi Electric Corp | マルチメディア情報通信装置およびその方法 |
US8656423B2 (en) * | 1999-08-27 | 2014-02-18 | Ochoa Optics Llc | Video distribution system |
JP3991540B2 (ja) * | 1999-12-15 | 2007-10-17 | ソニー株式会社 | 記録装置および方法、並びに記録媒体 |
US6643298B1 (en) * | 1999-11-23 | 2003-11-04 | International Business Machines Corporation | Method and apparatus for MPEG-2 program ID re-mapping for multiplexing several programs into a single transport stream |
US6662329B1 (en) * | 2000-03-23 | 2003-12-09 | International Business Machines Corporation | Processing errors in MPEG data as it is sent to a fixed storage device |
WO2002035847A2 (en) * | 2000-10-27 | 2002-05-02 | Polycom Israel Ltd. | Apparatus and method for improving the quality of video communication over a packet-based network |
JP3727862B2 (ja) * | 2001-03-23 | 2005-12-21 | 株式会社シキノハイテック | 符号化データ復号化装置 |
JP2002359603A (ja) * | 2001-05-31 | 2002-12-13 | Mitsubishi Electric Corp | ストリーム変換装置 |
US20030023746A1 (en) * | 2001-07-26 | 2003-01-30 | Koninklijke Philips Electronics N.V. | Method for reliable and efficient support of congestion control in nack-based protocols |
WO2003013004A2 (en) * | 2001-07-27 | 2003-02-13 | Koninklijke Philips Electronics N.V. | Signal coding |
US6977948B1 (en) * | 2001-08-13 | 2005-12-20 | Utstarcom, Inc. | Jitter buffer state management system for data transmitted between synchronous and asynchronous data networks |
JP4156531B2 (ja) * | 2003-02-03 | 2008-09-24 | 富士フイルム株式会社 | 通信機器 |
IL154739A0 (en) * | 2003-03-04 | 2003-10-31 | Bamboo Mediacasting Ltd | Segmented data delivery over non-reliable link |
JP3838511B2 (ja) * | 2003-03-24 | 2006-10-25 | 株式会社Kddi研究所 | 動画像圧縮符号化送受信装置 |
JP3895305B2 (ja) * | 2003-06-06 | 2007-03-22 | シャープ株式会社 | データ記録方法、データ記録装置、およびデータ記録媒体 |
US7657938B2 (en) * | 2003-10-28 | 2010-02-02 | International Business Machines Corporation | Method and system for protecting computer networks by altering unwanted network data traffic |
JP2005210219A (ja) * | 2004-01-20 | 2005-08-04 | Sony Corp | 送受信システム、送信装置および方法、受信装置および方法、記録媒体、並びにプログラム |
JP2005303480A (ja) * | 2004-04-07 | 2005-10-27 | Matsushita Electric Ind Co Ltd | 動画像復号化方法および動画像復号化装置 |
JP4020883B2 (ja) * | 2004-04-20 | 2007-12-12 | 株式会社東芝 | 動画像復号装置 |
US7657056B2 (en) * | 2004-06-05 | 2010-02-02 | Samsung Electronics Co., Ltd. | Apparatus for identifying a photographer of an image |
US20060062312A1 (en) * | 2004-09-22 | 2006-03-23 | Yen-Chi Lee | Video demultiplexer and decoder with efficient data recovery |
US7617436B2 (en) * | 2005-08-02 | 2009-11-10 | Nokia Corporation | Method, device, and system for forward channel error recovery in video sequence transmission over packet-based network |
CN100452876C (zh) * | 2006-02-24 | 2009-01-14 | 清华大学 | 流媒体数据的并行传输调度方法 |
-
2007
- 2007-08-21 EP EP07837154.9A patent/EP2070336B1/en not_active Not-in-force
- 2007-08-21 WO PCT/US2007/018497 patent/WO2008027253A2/en active Application Filing
- 2007-08-21 US US12/310,089 patent/US8514887B2/en not_active Expired - Fee Related
- 2007-08-21 CN CN2007800326273A patent/CN101513075B/zh not_active Expired - Fee Related
- 2007-08-21 JP JP2009526637A patent/JP2010503266A/ja active Pending
- 2007-08-21 KR KR1020097004112A patent/KR101380356B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
EP2070336A2 (en) | 2009-06-17 |
CN101513075A (zh) | 2009-08-19 |
KR101380356B1 (ko) | 2014-04-03 |
CN101513075B (zh) | 2012-04-04 |
WO2008027253A2 (en) | 2008-03-06 |
US20090245283A1 (en) | 2009-10-01 |
WO2008027253A3 (en) | 2008-04-17 |
JP2010503266A (ja) | 2010-01-28 |
US8514887B2 (en) | 2013-08-20 |
EP2070336B1 (en) | 2013-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101380356B1 (ko) | 손실된 패킷을 갖는 컨테이너 파일에 포함된 샘플을 수리하기 위한 방법 및 장치 | |
JP2023089026A (ja) | ネットワーク装置およびエラー処理の方法 | |
EP2880836B1 (en) | Replacing lost media data for network streaming | |
TWI500325B (zh) | 用於媒體串流記錄之方法與裝置、電腦程式產品、及體現多媒體容器檔案的電腦可讀媒體 | |
US7131048B2 (en) | Apparatus for system decoder and method for error correction of packet data | |
KR100926017B1 (ko) | 대역외 디렉토리 정보를 이용한 에러 복원의 개선 | |
EP3167621B1 (en) | Error handling for files exchanged over a network | |
US20210203938A1 (en) | Extension Data Handling | |
TWI325706B (en) | Method and apparatus for processing multimedia data | |
WO2012011076A1 (en) | Method and apparatus for indicating switching points in a streaming session | |
EP3050300B1 (en) | Hybrid codec scalable video | |
TW200904194A (en) | Feedback based scalable video coding | |
WO2018118710A1 (en) | Detecting and signaling new initialization segments during manifest-file-free media streaming | |
US8332736B2 (en) | Decoder with resiliency to handle errors in a received data stream | |
KR20100021596A (ko) | 잽핑 시간을 감소시키는 시스템 및 방법 | |
CN114430911A (zh) | 在dash分段的再同步点处的随机存取 | |
CA2554987C (en) | Storage of advanced video coding (avc) parameter sets in avc file format | |
TWI497982B (zh) | 包括rtp封包之資料連流,多層應用資料使用rtp封包之編碼方法和裝置,以及包括多層應用資料的rtp封包解碼之準備方法和裝置 | |
US20140119445A1 (en) | Method of concealing picture header errors in digital video decoding | |
US8462855B2 (en) | Method and apparatus for stream parsing and picture location | |
US20160173898A1 (en) | Methods, Decoder and Encoder for Selection of Reference Pictures to be Used During Encoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170220 Year of fee payment: 4 |