KR20150047958A - 이동통신 단말기에서 알티피 타임스탬프 생성방법 - Google Patents

이동통신 단말기에서 알티피 타임스탬프 생성방법 Download PDF

Info

Publication number
KR20150047958A
KR20150047958A KR1020130128071A KR20130128071A KR20150047958A KR 20150047958 A KR20150047958 A KR 20150047958A KR 1020130128071 A KR1020130128071 A KR 1020130128071A KR 20130128071 A KR20130128071 A KR 20130128071A KR 20150047958 A KR20150047958 A KR 20150047958A
Authority
KR
South Korea
Prior art keywords
nal
data
time
mobile communication
communication terminal
Prior art date
Application number
KR1020130128071A
Other languages
English (en)
Inventor
최덕환
김영탁
김태균
김대현
Original Assignee
최덕환
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 최덕환 filed Critical 최덕환
Priority to KR1020130128071A priority Critical patent/KR20150047958A/ko
Publication of KR20150047958A publication Critical patent/KR20150047958A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

카메라에 의하여 촬영한 프레임 단위의 실시간 동영상을 압축하여 생성한 NAL 데이터를 타임스탬프와 함께 RTP 패킷화하여 전송하는 이동통신 단말기에서, RTP 패킷부는 현재 독출한 NAL 데이터(NAL[F].data)의 독출시각(NAL[F].time)과 직전에 독출한 NAL 데이터(NAL[F-1].data)의 독출시각(NAL[F-1].time) 간의 차이를 구하고, 그 차이를 기준값과 비교하여, 상기 차이값(NAL[F].time - NAL[F-1].time)이 기준값보다 큰 경우에는 첫번째 독출한 NAL 데이터(NAL[1].data)에서 직전에 독출한 NAL 데이터(NAL[F-1].data)까지를 한 묶음의 데이터로 인식하고, 현재 독출한 NAL 데이터(NAL[F].data)는 새로운 데이터 묶음의 시작으로 인식하고, (NAL[1].time - NAL[0].time) / (F-1)을 NAL[1].data ~ NAL[F-1].data의 데이터 묶음에 대한 타임스탬프로 설정하는 이동통신 단말기에서 알티피 타임스탬프 생성방법이 개시된다. 여기에서, NAL[0].time은 카메라에 의하여 동영상을 촬영하기 시작하는 시각이고, NAL[1].time은 NAL[1].data의 독출시각을 나타낸다. 본 발명의 방법은 이동통신 단말기마다 H.264 코덱처리방법이 다른 문제를 해결할 수 있고, 이동통신 단말기의 카메라가 촬영한 동영상의 흐름에 근사적으로 일치하기 때문에 수신단에서 우수한 품질의 동영상이 구현되게 한다.

Description

이동통신 단말기에서 알티피 타임스탬프 생성방법{Method For Producing RTP Timestamp In Mobile Communication Terminal}
본 발명은 이동통신 단말기에서 알티피 타임스탬프 생성방법에 관한 것으로서, 더욱 상세하게는, 이동통신 단말기에서 카메라로 획득한 실시간 동영상을 무선 네트워크를 통해 스트리밍하는데 효과적이고, 특히 카메라에 의한 동영상 촬영시 프레임 레이트가 변하는 이동통신 단말기에 적합한 알티피(RTP) 타임스탬프 생성방법에 관한 것이다.
이동통신 단말기에서 서버로 멀티미디어 데이터를 전송하는 방법으로 실시간 처리를 위하여 스트리밍 기술이 필요하다. 멀티미디어 스트리밍 기술은 여러 가지 방법이 있으나 가장 일반적인 RTP(Real-time Transport Protocol) 기술을 많이 사용한다. RTP는 오디오, 비디오 및 시뮬레이션 데이터와 같은 실시간 데이터를 멀티 캐스트 또는 유니캐스트 네트워크를 이용해서 전송하는 응용 서비스에 알맞은 단말 대 단말 네트워크 전송 기능을 제공한다. RTP는 별개의 독립계층으로 구현되기보다는 특정 애플리케이션에서 요구되는 정보를 전송하여 프로토콜의 처리가 응용의 처리과정으로 통합될 수 있게 설계되었다.
따라서, 특정 응용 서비스에 필요한 RTP를 구현하기 위하여 RTP 페이로드의 종류와 형식을 정의하는 프로파일 문서(Profile Specification)와 페이로드의 전송방법을 정의한 페이로드 형식문서(Payload Format Specification)가 나와 있다. MPEG4는 RFC 3016, H.264는 RFC 3984에 페이로드 전송 방법이 설명되어 있다.
도 1에는 RTP 패킷 및 FU 패킷 헤더의 일반적인 구조가 도시되어 있다. RTP는 RTP 헤더(110)와 페이로드(120)로 구성 되어 있고, 각 응용 서비스에 따라 페이로드를 보내는 방식이 따로 정해져 있다. H.264인 경우 Sigle-NAL, FU-A, Step-A 정도가 있다.
RTP 헤더는 확장되지 않는 이상 항상 12byte로 고정되어 있고, 아래와 같은 주로 많이 사용하는 각 필드 부분으로 구성되어있다.
버전(V): 2 비트 필드로서 버전필드이며 항상 2 값을 가진다,
패딩(P): 1 비트 필드로서 1 값을 가지면 패킷에 하나 이상의 패딩 바이트가 포함되어 있는 것을 나타낸다. 32 비트 단위로 패킷을 구성하기 위해 사용된다.
익스텐션(Extension)(X): 1 비트 필드로서 1 값을 가지면 고정 헤더 이후에 정확히 하나의 확장 헤더가 있음을 의미한다.
CSRC 카운트(CC): 4 비트 필드로서 고정헤더 이후에 나열되는 CSRC 식별자의 수를 나타낸다.
마커(M): 1 비트 필드로서 패킷 스트리밍 내에서 프레임 경계와 같은 중요한 이벤트를 표시하는데 사용된다. 즉 멀티미디어 정보에 대한 프레임 영역을 나타낸다. 패킷 안에서 음성과 영상 정보 등을 구별하는데 사용된다. MPEG4, H.264의 한 프레임이 MTU 단위가 넘으면 패킷을 나누어 보낸다. 그래서 한 프레임이 여러 개의 RTP 패킷으로 나누어져서 전송되는데 거기서 맨 마지막 RTP 패킷에서 마커(Marker) 비트를 1로 설정하면 수신하는 쪽에서 한 프레임이 다 전송된 것으로 인지한다. 그런데 실제 사용은 RTP 타임스탬프를 가지고 마커 비트 역할을 대신 하는데 이유는 마지막 RTP 패킷이 손실되었을 경우 경계를 알 수가 없기 때문이다.
페이로드 타입(Payload Type)(PT): 7 비트 필드로 RTP 페이로드의 타입을 나낸다. 프로파일에서 페이로드 타입의 값과 실제 페이로드 형식을 연결한다. H.264, MPEG4는 다이나믹 페이로드(dynamic payload)를 사용한다.
시퀀스 넘버(SN): 16 비트 필드로서 송신되는 각 RTP 패킷 마다 1씩 증가시킨다. 그래서 수신 측에서 패킷 손실(packet loss)을 체크하거나 순서를(reordering) 맞추는데 사용된다. 초기값은 보안을 위해 랜덤 값을 사용한다.
타임스탬프(Timestamp): 32 비트 필드로서 RTP 데이터 패킷의 첫 번째 바이트의 샘플링 순간을 나타낸다(130). 시계의 주파수는 페이로드의 데이터 형식에 종속되고, 형식을 정의하는 프로파일이나 페이로드 형식 문서에 정적으로 명시된다. 초기값은 역시 보안 때문의 램덤 값을 사용한다.
H.264 인코더(encoder)가 인코딩(encoding)된 한 장의 프레임(frame)을 넘겨주는 그 시간을 타임스탬프(timestamp) 값으로 넣는다. 그리고 프레임 사이즈가 MTU 단위 보다 크면 여러 개의 RTP 패킷으로 나누어지는데 그때 나누어진 RTP의 타임스탬프 값은 모두 똑같은 값이 됩니다. VLC와 연동시 이 부분을 잘못 계산해서 주면 화면이 안 나오는 경우가 있다.
동기화 소스(Synchronization Source: SSRC) Identifier: 32 비트 필드로 보내는 쪽의 구별자인 카메라 또는 마이크 등 데이터 원천지의 식별자를 의미한다.
CSRC 필드는 RTP패킷이 중간 시스템에서 혼합된 경우에 그 소스들을 구별할 수 있는 식별자들을 나타낸다.
RTP로 H.264를 전송할 때는 RFC3984에 따라 전송한다. H.264를 전송할 때 여러 방식이 있지만 필드에서 가장 많이 사용되는 방식은 아래 세가지 방식이 있다. Single-NAL, FU-A, STAP-A 있다(150).
Single-NAL은 H.264 설계 시부터 네트워크 전송을 고려해서 설계되었다. 그래서 코덱에서 MTU 단위로 압축된 데이터가 넘어 오기 때문에 그것을 그대로 클라이언트(Client)로 전송하면 된다. 가장 쉬운 전송방식이지만 인코더/디코더 코덱에서 Single-NAL 처리를 지원해야 하는 단점이 있다.
FU-A 방식은 코덱(Codec)에서 압축된 데이터를 받을 때 한 프레임 단위로 넘어 오기 때문에 네트워크 전송을 하기 위해서는 프레임 사이즈가 MTU(1500byte)보다 클 경우 프레임을 나누어 보내야 된다. 네트워크 전송 패킷의 크기가 [Ethernet Header] + [IP Header] + [UDP/TCP Header] + [RTP Header] + [PayLoad]를 다 합해서 1500 byte 보다 크면 안 된다. 따라서 프레임을 나눌 때 규칙을 따른다.
FU 인디케이터: 패킷이 FU-A 방식인지 여부를 나타낸다(160). F : 0, NRI : 2, Type : 28(FU-A를 나타냄), FU 헤더는 프레임의 첫 번째 패킷, 마지막 패킷을 나타내는 부분과 NAL 유니트 페이로드 타입(NAL unit payload type)으로 구성된다(170). S: 1 비트는 첫 번째 패킷인 경우 설정. E : 1 비트는 마지막 패킷인 경우 설정. R: 1 비트는 사용하지 않는다. Type: 5 비트는 NAL unit payload type를 나타낸다.
스트리밍 전송에 사용되는 RTP 기술 중에서 가장 중요한 부분이 타임스탬프 값이다. 종래의 이동통신 단말기 RTP 패킷화시 타임스탬프 계산방법은 단말기 시스템의 H.264 코덱에서 설정된 fps(frame per second)값을 이용하여 계산하는 방식 또는 NAL 데이터가 만들어진 시스템 시간으로 계산하는 방법들이 있다. 하지만 이 두 가지 방법은 이동통신 단말기의 내장된 H.264 코덱 특성을 고려하지 않은 방법으로 실제 적용시 수신단에서 시간이 지날수록 오차가 누적되어 영상이 깨지거나 나오지 않는 문제가 있다. 이러한 문제가 발생하는 가장 큰 이유는 이동통신 단말기 제조회사마다 각자의 기술로 H.264 코덱을 구현했기 때문이다. 즉 카메라에서 획득한 영상을 H.264 코덱을 통해 NAL 데이터로 만드는 시점이 일정하지 않고 제조회사별로 차이가 심하기 때문이다.
특허등록 제10-0897525호(2009. 05. 07. 등록)는 "SVC(Scalable Video Coding) 비디오의 RTP 패킷화를 위한 타임스템프 생성장치 및 그 방법과 그를 이용한 RTP 패킷화시스템"을 개시한다. 이것은 SVC 비트스트림의 첫 번째 화면인 IDR(Instantaneous Decoding Refresh)화면에 대한 타임스템프 값을 설정하고, 입력되는 NAL(Network Abstraction Layer)유닛의 헤더 정보 중 화면 속성 및 TL(Temporal_Level)을 이용하여 해당 NAL 유닛의 타임스탬프를 생성하는, SVC 비디오의 RTP 패킷화를 위한 타임스탬프 생성장치에 관한 발명이다. 여기서 TL은 프레임 레이트(frame rate)를 나타낸다. 이 발명은 일반적인 MPEG4 스트리밍 방법으로 이동통신 단말의 특성을 고려하지 않는 방법이다.
특허공개 제10-2009-0126734호(2009. 12. 09. 공개)는 "VoIP 단말을 위한 영상 사서함 서비스 방법"을 개시한다. 이 발명은 발신 VoIP 단말기로부터 사서함 메시지의 오디오 데이터와 비디오 데이터를 연속적인 RTP 패킷 단위로 수신하고, 수신된 각 RTP 패킷의 타임스탬프 정보를 해당 패킷이 실제로 수신된 시간을 기준으로 보정하여 저장해두며, 착신 VoIP 단말기측으로 저장된 사서함 메시지의 오디오 및 비디오 데이터를 각각 RTP 패킷의 타임스탬프 정보를 이용하여 동기화하여 전송하여, 착신 VoIP 단말기에서 사서함 메시지의 RTP 패킷을 적시에 전송받는 동시에, 전송된 메시지를 상기 보정된 타임스탬프를 기준으로 재생하도록 구성됨으로써, 발신 VoIP 단말기의 기종에 관계 없이 사서함 메시지의 오디오/비디오 동기화를 효과적으로 구현할 수 있는 영상 사서함 서비스 방법에 관한 것이다.
이동통신 단말기의 카메라에서 획득한 동영상을 실시간으로 스트리밍하기 위한 RTP 패킷화에 포함되는 타임스탬프 정보는 실시간 촬영되는 동영상의 흐름을 정확하게 반영하는 것이 바람직하다. 그러나, 이동통신 단말기 제조회사는 각자의 기술로 H.264 코덱을 구현하기 때문에 카메라에 의하여 획득한 동영상을 H.264 코덱을 통해 NAL 데이터를 만드는 시점이 일정하지 않은데, 지금까지 개발된 RTP 타임스탬프 생성기술은 H.264 코덱에 관한 이러한 특성을 고려하지 않은 것이어서 그러한 타임스탬프 정보에 따른 동영상의 실시간 스트리밍은 시간이 지날수록 오차가 누적되는 문제점이 있었다.
따라서, 본 발명의 목적은 상기한 문제점이 없는, 그리하여 이동통신 단말기의 카메라에서 획득한 실시간 동영상의 흐름과 근사적으로 일치하는, 이동통신 단말기에서 RTP 타임스탬프 생성방법을 제공하는 것이다.
또한 본 발명의 목적은 이동통신 단말기에서 카메라로 획득한 실시간 동영상을 무선 네트워크를 통해 스트리밍하는데 효과적이고, 특히 카메라에 의한 동영상 촬영시 프레임 레이트가 변하는 이동통신 단말기에 적합한 알티피(RTP) 타임스탬프 생성방법을 제공하는 것이다.
또한 본 발명의 목적은 상기한 이동통신 단말기에서 RTP 타임스탬프 생성방법을 구현하는 프로그램이 저장된 이동통신 단말기 판독가능한 저장매체를 제공하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 이동통신 단말기에서 RTP 타임스탬프 생성방법은 이동통신 단말기의 RTP 패킷부는 상기 이동통신 단말기의 카메라에 의하여 획득한 프레임 단위의 실시간 동영상을 압축하여 생성한 프레임 단위의 NAL 데이터를 압축부 버퍼로부터 독출하는 단계; 상기 RTP 패킷부는 상기 NAL 데이터와 상기 NAL 데이터의 독출시각을 패킷부 버퍼에 저장하는 단계; 상기 RTP 패킷부는 현재 독출한 NAL 데이터(NAL[F].data)의 독출시각(NAL[F].time)과 직전에 독출한 NAL 데이터(NAL[F-1].data)의 독출시각(NAL[F-1].time) 간의 차이를 구하고, 그 차이를 기준값과 비교하는 단계; 상기 차이값(NAL[F].time - NAL[F-1].time)이 기준값보다 큰 경우에는 첫번째 독출한 NAL 데이터(NAL[1].data)에서 직전에 독출한 NAL 데이터(NAL[F-1].data)까지를 한 묶음의 데이터로 인식하고, 현재 독출한 NAL 데이터(NAL[F].data)는 새로운 데이터 묶음의 시작으로 인식하는 단계; 상기 RTP 패킷부는 (NAL[1].time - NAL[0].time) / (F-1)을 NAL[1].data ~ NAL[F-1].data의 데이터 묶음에 대한 타임스탬프로 설정하는 단계, 여기에서, NAL[0].time은 카메라에 의하여 동영상을 촬영하기 시작하는 시각이고, NAL[1].time은 NAL[1].data의 독출시각을 나타냄; 상기 RTP 패킷부는 NAL[1].data ~ NAL[F-1].data의 데이터 묶음에 해당하는 각각의 데이터와 상기 설정된 타임스탬프를 RTP 패킷화하고, 그렇게 생성된 RTP 패킷을 송신버퍼에 저장하는 단계; 및 상기 RTP 패킷부는 NAL[1].time의 값을 변수 NAL[0].time에 설정하고, NAL[F].data의 값을 변수 NAL[1].data에 설정하며, NAL[F].time의 값을 변수 NAL[1].time에 설정하여 상기 과정을 반복하는 단계를 포함한다.
상기 NAL 데이터는 H.264로 압축한 것이 바람직하다.
상기 기준값은 200 ms인 것이 바람직하다.
본 발명은 또한 상기한 이동통신 단말기에서 알티피 타임스탬프 생성방법을 구현하는 프로그램이 저장된 이동통신 단말기 판독가능한 저장매체를 제공한다.
본 발명의 방법은 이동통신 단말기마다 H.264 코덱처리방법이 다른 문제를 해결할 수 있고, 이동통신 단말기의 카메라가 촬영한 동영상의 흐름에 근사적으로 일치하기 때문에 수신단에서 우수한 품질의 동영상이 구현되게 한다.
도 1은 RTP 패킷 및 FU 패킷 헤더의 일반적인 구조도이다.
도 2은 본 발명에 참조되는 이동통신 단말기의 이상적인 NAL 데이터 생성도이다.
도 3은 본 발명에 참조되는 이동통신단말기의 시간차가 발생하는 가변적인 NAL 데이터 생성도이다.
도 4은 본 발명에 의해 가변적인 NAL 데이터를 실시간에 맞게 최적화되는 NAL 데이터 생성도이다.
도 5는 본 발명의 실시예에 따른 이동통신 단말기 내부 구성을 개략적으로 나타낸 구성도이다.
도 6은 본 발명의 실시예에 따른 카메라에서 획득한 영상과 H.264 압축결과를 나타낸 것이다.
도 7은 본 발명의 실시예에 따른 RTP 타임스탬프 생성 방법을 설명하기 위한 흐름도이다.
이하, 도면을 참조하여 본 발명을 상세하게 설명한다.
도 5는 본 발명의 실시예에 따른 이동통신 단말기 내부 구성을 개략적으로 나타낸 구성도이다. 먼저 도 5를 참조하면, 본 발명의 방법을 구현하는 이동통신 단말기는 카메라(510), 동영상 획득부(520), H.264 압축부(530), RTP 패킷부(540), 송신버퍼부(550) 및 전송부(560)를 포함한다. 본 발명의 방법이 적용되는 이동통신 단말기는 이러한 구성을 가지는 것이라면 특별히 한정되는 것은 아니지만, 스마트폰 또는 태블릿 PC인 것이 바람직하다.
이동통신 단말기는 카메라(510)가 촬영한 동영상을 프레임 단위로 동영상 획득부(520)에서 획득하고 H.264 압축부(530)에서 H.264 코덱으로 압축하여 NAL(Network Abstraction Layer) 데이터를 생성한다. 프레임 단위의 동영상 데이터를 압축하여 NAL 데이터를 생성하는 모식도가 도 6에 도시되어 있다. 그런 후 이동통신 단말기는 타임스탬프 및 NAL(Network Abstraction Layer) 데이터를 포함하여 RTP 패킷부(540)에서 RTP 패킷으로 처리하여 송신버퍼부(550)에 저장한다. 그러면 전송부(560)는 RTP 패킷 처리된 동영상 데이터를 한 패킷씩 전송하게 된다. 여기에서, 압축방식은 H.264 방식을 예로 들었으나, 반드시 여기에 한정되는 것은 아니다.
도 2은 본 발명에 참조되는 이동통신 단말기의 이상적인 NAL 데이터 생성도이고, 도 3은 본 발명에 참조되는 이동통신단말기의 시간차가 발생하는 가변적인 NAL 데이터 생성도이며, 도 4은 본 발명에 의해 가변적인 NAL 데이터를 실시간에 맞게 최적화되는 NAL 데이터 생성도이다.
도 2 내지 도 4를 참조하여 본 발명을 개념적으로 설명한다.
NAL 데이터가 도 2에 도시한 바와 같이 생성되고, 그 생성시각을 타임스탬프로 하여 RTP 패킷화된다면 수신단에서 동영상은 끊김없이 고품질로 실행될 것이다. 그러나 실제로는 이동통신 단말기에서 NAL 데이터는 도 3에 도시한 바와 같은 형태로 생성된다. S310에서 S320까지의 시간동안에는 NAL 데이터 생성이 없는데, 이 시간동안에는 H.264 압축부는 카메라에 의하여 획득한 첫번째 묶음의 영상, 즉 도 2에 Frame data 1로 표시한 30개 프레임의 영상을 압축한다. H.264 압축부는 하나의 프레임을 압축하고 곧바로 NAL 데이터를 생성할 수도 있으나, 보통의 이동통신 단말기는 여러개의 프레임을 압축하고 여러개의 프레임에 대한 NAL 데이터를 연속적으로 생성한다. 그러한 한 묶음의 NAL 데이터를 생성한 후에는 소정시간 동안 휴지하고 다음 묶음의 NAL 데이터를 생성하게 된다.
도 2와 도 3을 비교하면, H.264 압축부는 S310~S320 시간 동안에는 Frame data 1을 압축하고, 그렇게 압축한 것을 S320~S330 시간 동안에 NAL 데이터로 연속적으로 생성한다. 그런 후 다음 NAL 데이터의 생성까지 휴지한다. 다음으로, H.264 압축부는 S320~S340 시간 동안에는 Frame data 2를 압축하고, 그렇게 압축한 것을 S340 시각부터 NAL 데이터로 연속적으로 생성하며, 그 후 소정시간 동안 휴지한다. 따라서, 실질적으로 생성된 NAL 데이터의 묶음은 그 이전 시간 동안의 압축의 결과물이므로, 압축시간에 대응시키는 것이 더욱 실시간 스트리밍을 반영하는 결과가 된다.
한편, 도 3에 도시한 바와 같은 NAL 데이터의 생성시각을 타임스탬프로 할 경우에는 수신단에서는 그러한 타임스탬프에 따라 동영상을 재생하게 되므로 영상이 불규칙적으로 재생되거나 멈추는 현상, 영상이 깨지는 블록현상 등의 재생오류가 발생한다. 이러한 문제는 이동통신 단말기 제조사 마다 H.264로 압축하여 생성하는 시점이 일정하지 않아 발생되며, 이 문제를 해결하기 위하여 고정된 프레임 레이트 값을 이용하여 RTP 패킷의 타임스탬프를 계산하는 방식 등을 사용하지만 영상 촬영 중 프레임 레이트가 변경되는 상황에서는 여전히 재생오류가 발생되므로, NAL 데이터가 실시간으로 생성되지 않거나, 프레임레이트가 변하는 이동통신 단말기에 맞게 타임스탬프를 맞춰주는 RTP 생성 방법이 필요하다.
도 4는 이상적인 NAL 데이터 생성과 실질적인 NAL 데이터 생성을 매칭시킨 결과를 도시하였다. 실질적으로 생성된 NAL 데이터의 묶음이 이상적인 NAL 데이터의 묶음에 대응되었고, 이상적인 NAL 데이터의 묶음은 H.264 압축부의 실질적 압축시간에 대응됨에 주목할 수 있다.
도 7은 본 발명의 실시예에 따른 RTP 타임스탬프 생성 방법을 설명하기 위한 흐름도이다. 이제, 도 7을 참조하여, 본 발명의 방법을 구체적으로 설명한다.
이동통신 단말기의 RTP 패킷부에 의하여 실행되는 프로그램은 카메라에 의한 동영상 촬영이 시작되면, NAL 데이터 순서에 대한 변수 F를 0으로 설정하고, 현재시각, 즉 동영상 촬영이 시작되는 시각을 변수 NAL[0].time에 저장한다(단계 S710). 여기에서, RTP 패킷부는 본 발명에 따른 방법을 실행하는 이동통신 단말기의 프로세서이고, 본 발명의 방법은 그러한 RTP 패킷부가 실행하는 프로그램으로 코딩된다.
그런 후, RTP 패킷부는 H.264 압축부가 생성한 프레임 단위의 NAL 데이터를 압축부 버퍼로부터 독출한다(단계 S720). 현재 NAL 데이터 순서 변수 F는 0이고 그 때 NAL 데이터는 없다. NAL 데이터가 읽혀지기 시작하는 때는 도 3에서 S320의 순간이다. 따라서, 첫번째 NAL 데이터가 읽혀지면, 순서 변수 F에 1을 증가시킨다. 그리고 변수 NAL[F].data에 읽혀진 NAL 데이터를 저장하고, 또한 변수 NAL[F].time에 현재시각, 즉 NAL[F].data가 읽혀진 시각을 저장한다(단계 S730). NAL[F].data가 RTP 패킷부에 의하여 읽혀진 시각은 H.264 압축부에 의하여 압축부 버퍼에 그 데이터가 저장된 시각, 즉 해당 NAL 데이터가 생성된 시각과 실질적으로 일치한다. 여기에서, 실질적으로 일치한다는 것은 이동통신 단말기의 프로세서의 처리의 관점에서는 약간의 시간차이가 있지만, 그 차이가 매우 작아서 예를 들어, 초당 30 프레임을 디스플레이하는 동영상의 흐름과 비교할 때, 그 차이가 무시될 수 있는 정도를 의미한다.
RTP 패킷부는 현재 독출한 NAL 데이터(NAL[F].data)의 독출시각(NAL[F].time)과 직전에 독출한 NAL 데이터(NAL[F-1].data)의 독출시각(NAL[F-1].time) 간의 차이를 구하고, 그 차이를 기준값(Pt)과 비교한다(단계 S740). 다만, 이때 NAL[1].time - NAL[0].time의 값이 기준값(Pt)보다 큰지 여부에 대한 판단은 하지 않는다. 즉, NAL[F].time - NAL[F-1].time의 값이 기준값(Pt)보다 큰지 여부에 대한 판단은 F가 2 이상인 경우에 대해서만 적용되고, F가 1인 경우에는 적용되지 않는다. 기준값(Pt)은 NAL 데이터의 한 묶음에 대한 판단의 기준이 되는 시간인데, 경험적 수치에 의하면 200 밀리초(ms)가 적당하지만, 단말기의 종류에 따라 다르게 설정될 수 있다.
그 차이값이 기준값(Pt)보다 크지 않다면 단계 720으로 돌아가 계속적으로 NAL 데이터를 읽는다. 한편, 차이값(NAL[F].time - NAL[F-1].time)이 기준값(Pt)보다 큰 경우에는 첫번째 독출한 NAL 데이터(NAL[1].data)에서 직전에 독출한 NAL 데이터(NAL[F-1].data)까지를 한 묶음의 데이터로 인식하고, 현재 독출한 NAL 데이터(NAL[F].data)는 새로운 데이터 묶음의 시작으로 인식한다.
그리고 RTP 패킷부는 그 묶음의 NAL 데이터에 대한 시간(ΔT)을 NAL[1].time - NAL[0].time 으로 설정하고, (NAL[1].time - NAL[0].time) / (F - 1), 즉 ΔT / (F - 1) 을 NAL[1].data ~ NAL[F-1].data의 데이터 묶음에 대한 타임스탬프(TS)로 설정한다(단계 S750). 여기에서, NAL[0].time은 카메라에 의하여 동영상을 촬영하기 시작하는 시각이고, NAL[1].time은 NAL[1].data의 독출시각을 나타낸다.
그런후, RTP 패킷부는 NAL[1].data ~ NAL[F-1].data의 데이터 묶음에 해당하는 각각의 데이터와 상기 설정된 타임스탬프를 RTP 패킷화하고, 그렇게 생성된 RTP 패킷을 송신버퍼에 저장한다. 그리고 RTP 패킷부는 NAL[1].time의 값을 변수 NAL[0].time에 설정하고, NAL[F].data의 값을 변수 NAL[1].data에 설정하며, NAL[F].time의 값을 변수 NAL[1].time에 설정한다(단계 S760).
그런 후 단계 S720으로 돌아가 NAL 데이터를 계속적으로 독출하여 상기한 과정을 반복한다.
상기와 같은 본 발명의 방법에 의하면, NAL데이터가 축적된 시간 간격와 프레임 개수에 따라 계산되어 실시간에 근사한 값으로 타임스탬프가 찍혀 전송되므로, 실시간 스트리밍에 효과적인 RTP 패킷화가 된다. 즉, 본 발명의 방법에 의하면, 이동통신 단말기마다 H.264 코덱처리 방법이 다르더라도 항상 이동통신 단말기의 카메라가 촬영한 동영상의 흐름에 근사적으로 일치하게 할 수 있다. 따라서, 본 발명의 방법에 의하면 수신단에서 우수한 품질의 동영상 구현이 가능하게 된다.
510: 카메라 520: 동영상 획득부
530: H.264 압축부 540: RTP 패킷부
550: 송신버퍼부 560: 전송부
610: 카메라 획득 영상 620: NAL 데이터

Claims (4)

  1. 이동통신 단말기의 RTP 패킷부는 상기 이동통신 단말기의 카메라에 의하여 획득한 프레임 단위의 실시간 동영상을 압축하여 생성한 프레임 단위의 NAL 데이터를 압축부 버퍼로부터 독출하는 단계;
    상기 RTP 패킷부는 상기 NAL 데이터와 상기 NAL 데이터의 독출시각을 패킷부 버퍼에 저장하는 단계;
    상기 RTP 패킷부는 현재 독출한 NAL 데이터(NAL[F].data)의 독출시각(NAL[F].time)과 직전에 독출한 NAL 데이터(NAL[F-1].data)의 독출시각(NAL[F-1].time) 간의 차이를 구하고, 그 차이를 기준값과 비교하는 단계;
    상기 차이값(NAL[F].time - NAL[F-1].time)이 기준값보다 큰 경우에는 첫번째 독출한 NAL 데이터(NAL[1].data)에서 직전에 독출한 NAL 데이터(NAL[F-1].data)까지를 한 묶음의 데이터로 인식하고, 현재 독출한 NAL 데이터(NAL[F].data)는 새로운 데이터 묶음의 시작으로 인식하는 단계;
    상기 RTP 패킷부는 (NAL[1].time - NAL[0].time) / (F-1)을 NAL[1].data ~ NAL[F-1].data의 데이터 묶음에 대한 타임스탬프로 설정하는 단계, 여기에서, NAL[0].time은 카메라에 의하여 동영상을 촬영하기 시작하는 시각이고, NAL[1].time은 NAL[1].data의 독출시각을 나타냄;
    상기 RTP 패킷부는 NAL[1].data ~ NAL[F-1].data의 데이터 묶음에 해당하는 각각의 데이터와 상기 설정된 타임스탬프를 RTP 패킷화하고, 그렇게 생성된 RTP 패킷을 송신버퍼에 저장하는 단계; 및
    상기 RTP 패킷부는 NAL[1].time의 값을 변수 NAL[0].time에 설정하고, NAL[F].data의 값을 변수 NAL[1].data에 설정하며, NAL[F].time의 값을 변수 NAL[1].time에 설정하여 상기 과정을 반복하는 단계를 포함하는 이동통신 단말기에서 알티피 타임스탬프 생성방법.
  2. 제1항에 있어서,
    상기 NAL 데이터는 H.264로 압축한 것임을 특징으로 하는 이동통신 단말기에서 알티피 타임스탬프 생성방법.
  3. 제1항 또는 제2항에 있어서,
    상기 기준값은 200 ms인 것을 특징으로 하는 이동통신 단말기에서 알티피 타임스탬프 생성방법.
  4. 제1항 내지 제3항 중 어느 한 항에 따른 이동통신 단말기에서 알티피 타임스탬프 생성방법을 구현하는 프로그램이 저장된 이동통신 단말기 판독가능한 저장매체.
KR1020130128071A 2013-10-25 2013-10-25 이동통신 단말기에서 알티피 타임스탬프 생성방법 KR20150047958A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130128071A KR20150047958A (ko) 2013-10-25 2013-10-25 이동통신 단말기에서 알티피 타임스탬프 생성방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130128071A KR20150047958A (ko) 2013-10-25 2013-10-25 이동통신 단말기에서 알티피 타임스탬프 생성방법

Publications (1)

Publication Number Publication Date
KR20150047958A true KR20150047958A (ko) 2015-05-06

Family

ID=53386713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130128071A KR20150047958A (ko) 2013-10-25 2013-10-25 이동통신 단말기에서 알티피 타임스탬프 생성방법

Country Status (1)

Country Link
KR (1) KR20150047958A (ko)

Similar Documents

Publication Publication Date Title
US11706502B2 (en) Segment types as delimiters and addressable resource identifiers
US10129308B2 (en) Session description information for over-the-air broadcast media data
KR101784051B1 (ko) 코딩된 비디오 데이터의 네트워크 스트리밍
AU2009211932B2 (en) Method and device for reordering and multiplexing multimedia packets from multimedia streams pertaining to interrelated sessions
CN104038844B (zh) 一种基于mpeg‑2标准的移动直播系统
KR102076064B1 (ko) Dash의 강건한 라이브 동작
KR102434300B1 (ko) 샘플 엔트리들 및 랜덤 액세스
KR102434299B1 (ko) 샘플 엔트리들 및 랜덤 액세스
US20170331666A1 (en) Real-time control interface for broadcast object streaming
KR20230030589A (ko) 스위칭 세트들을 갖는 어드레스가능한 리소스 인덱스 트랙을 포함하는 미디어 데이터의 스트리밍
WO2016209727A1 (en) Reporting media consumption based on service area
KR20150047958A (ko) 이동통신 단말기에서 알티피 타임스탬프 생성방법
TWI846795B (zh) 用於經串流媒體資料之多個解碼器介面
US20240098130A1 (en) Mixed media data format and transport protocol
KR20230162936A (ko) 오버레이 이미지들을 포함하는 실시간 전송 프로토콜을 통한 heif 형식 이미지들의 전송
CN114430909A (zh) 用于自适应比特率组播的修复机制
BR112016016434B1 (pt) Método de transmissão adaptativa dinâmica através de http, dispositivo para receber, a partir de um dispositivo de servidor, dados relacionados a dados de mídia de transmissão contínua dash, método e dispositivo de sinalização

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