[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR100998449B1 - Dmb 수신장치 및 그 버퍼제어 방법 - Google Patents

Dmb 수신장치 및 그 버퍼제어 방법 Download PDF

Info

Publication number
KR100998449B1
KR100998449B1 KR1020080117404A KR20080117404A KR100998449B1 KR 100998449 B1 KR100998449 B1 KR 100998449B1 KR 1020080117404 A KR1020080117404 A KR 1020080117404A KR 20080117404 A KR20080117404 A KR 20080117404A KR 100998449 B1 KR100998449 B1 KR 100998449B1
Authority
KR
South Korea
Prior art keywords
audio
video
stream
png
cts
Prior art date
Application number
KR1020080117404A
Other languages
English (en)
Other versions
KR20100058844A (ko
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 KR1020080117404A priority Critical patent/KR100998449B1/ko
Publication of KR20100058844A publication Critical patent/KR20100058844A/ko
Application granted granted Critical
Publication of KR100998449B1 publication Critical patent/KR100998449B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/439Processing of audio elementary streams
    • H04N21/4392Processing of audio elementary streams involving audio buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing 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/44004Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H2201/00Aspects of broadcast communication
    • H04H2201/10Aspects of broadcast communication characterised by the type of broadcast system
    • H04H2201/11Aspects of broadcast communication characterised by the type of broadcast system digital multimedia broadcasting [DMB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명은 DMB 수신장치 및 그 버퍼제어 방법에 관한 것으로서, 보다 구체적으로는 DMB 신호의 버퍼링을 최소화하여 안정적으로 방송 서비스를 수신하는 DMB 수신장치 및 그 버퍼제어 방법에 관한 것이다. 이를 위하여 본 발명에 따른 DMB 수신장치는 TS 파서 스레드(Transport Stream Parser Thread), DSP(BSAC) 코덱부, DSP(H.264) 코덱부, 오디오(BSAC) ACK 스레드, 비디오(H.264) ACK 스레드, 오디오 링 버퍼(Audio Ring Buffer), 비디오 링 버퍼(Video Ring Buffer), 오디오 콜백(Call Back)부, CTS Clock 제어부 및 비디오 렌더 스레드(Video Render Thread)를 포함한다.
본 발명에 따르면 DMB 신호의 버퍼링을 최소화하여 DMB 재생 시 비디오 영상과 음성/오디오 신호의 싱크(Sync)가 상호 일치하도록 제공하는 효과가 있다.
Figure R1020080117404
디지털 비디오, 버퍼제어, DMB, 인터럽트 신호

Description

DMB 수신장치 및 그 버퍼제어 방법{DIGITAL MULTIMEDIA BROADCASTING RECEIVER AND THE METHOD FOR CONTROLLING BUFFER USING THE RECEIVER}
본 발명은 DMB 수신장치 및 그 버퍼제어 방법에 관한 것으로서, 보다 구체적으로는 DMB 신호의 버퍼링을 최소화하여 안정적으로 방송 서비스를 수신하는 DMB 수신장치 및 그 버퍼제어 방법에 관한 것이다.
일반적으로, 스트림형태로 전송되는 DMB(Digital Multimedia Broadcasting), ISDB-T, DVH-H, 및, IPTV등의 모바일 방송은 효과적인 전송을 위해 다양한 방식이 적용된다.
그 중 대표적인 일례로서, 송신측은 음향과 영상을 MPEG(Moving Picture Experts Group: 이하’MPEG'이라 한다)-4 규격으로 압축한 후, 전송에 적합하도록 MPEG-2 TS(Transport Stream) 형태로 변환하여 무선 채널 및 인터넷을 통해 수신측으로 전송한다.
수신측은 무선 채널로 수신되는 방송의 경우 모뎀을 이용한 역변조 과정을 통해 MPEG-2 TS(Transport Stream)데이터를 추출하여 방송을 재생한다.
또한, 인터넷을 통해 방송이 수신되는 경우 재생 장치는 MPEG-2 TS parser를 이용하여 방송 패킷으로부터 비디오 스트림 신호 및 오디오 스트림 신호를 구분하여 검출하고, MPEG-4로 압축된 상기 방송 스트림 신호의 동영상 데이터와 오디오 데이터를 디코더를 이용하여 검출하여 재생하게 된다. 이때, 효율적인 방송 재생을 위해 버퍼를 이용하게 된다.
그러나, 종래에는 이러한 버퍼를 이용하여 방송을 재생하는 경우 적시에 적절한 버퍼 제어가 수행되지 않는다. 따라서, 처음 혹은 일정시간이 경과함에 따라 A/V동기가 이루어지지 않는 문제점이 있다.
본 발명은 상기와 같은 종래의 문제점을 개선하기 위해 안출된 것으로서, DMB 신호의 버퍼링을 최소화하여 시청자가 안정적으로 방송을 시청하도록 제공하는 것을 목적으로 한다.
또한, 본 발명은 DMB 재생 시 비디오 영상과 음성/오디오 신호의 싱크(Sync)가 상호 일치하도록 제공하는 것을 목적으로 한다.
상기의 목적을 달성하기 위하여, 본 발명의 일례에 따른 DMB 수신장치는 MPEG-2 TS를 파싱(Parsing)하고, MPEG-4의 SL(Sync Layer)단을 이용하여 MPEG-2 TS에 대한 부호화(Encode)된 BSAC(Bit Sliced Arithmetic Coding)스트림, H.264 스트림 및 JPEG/PNG 스트림을 형성하는 TS 파서 스레드(Transport Stream Parser Thread), BSAC 스트림을 복호화(Decode)하는 DSP(BSAC) 코덱부, H.264 스트림 신호를 복호화(Decode)하는 DSP(H.264) 코덱부; DSP(BSAC) 코덱부로부터 입력되는 BSAC 스트림을 복호화하여 오디오의 데이터 프레임을 복원하는 오디오(BSAC) ACK 스레드, DSP(H.264) 코덱부로부터 입력되는 H.264 스트림을 복호화하여 비디오의 데이터 프레임을 복원하는 비디오(H.264) ACK 스레드, 오디오의 데이터 프레임을 입력된 순서대로 저장하는 오디오 링 버퍼(Audio Ring Buffer), 비디오의 데이터 프레임을 입력된 순서대로 저장하는 비디오 링 버퍼(Video Ring Buffer), 오디오 링 버퍼에 저장된 상기 오디오의 데이터 프레임을 재생하는 오디오 콜백(Call Back)부, 오디오 링 버퍼에 저장된 오디오의 데이터 프레임 및 비디오 링 버퍼에 저장된 비디오의 데이터 프레임의 시간을 제어하는 CTS Clock 제어부 및 CTS Clock 제어부로부터 입력된 제어 신호에 따라 오디오 콜백부에서 재생되는 오디오 프레임의 싱크(Synchronization)에 해당되는 비디오 프레임을 상기 비디오 링 버퍼로부터 수신하고, 오디오 프레임과 비디오 프레임을 렌더링(Rendering)하여 싱크를 조정하는 비디오 렌더 스레드(Video Render Thread)를 포함한다.
본 발명에 따르면, JPEG/PNG 프레임을 임시 저장하는 ARM(JPEG/PNG) 버퍼, SD(Scene Description)을 파싱(Parsing)하여 JPEG/PNG 프레임을 트리(Tree)구조로 형성하는 SD/BIFS(JPEG/PNG) 스레드, ARM(JPEG/PNG) 버퍼에 저장된 JPEG/PNG 프레임을 SD/BIFS(JPEG/PNG) 스레드의 제어에 따라 복호화하는 JPEG/PNG 복호화부, SD/BIFS(JPEG/PNG) 스레드로부터 입력된 JPEG/PNG 프레임을 순서대로 저장하는 BIFS 링 버퍼 및 BIFS 링 버퍼에 저장된 Image(JPEG/PNG) 프레임을 Overlay로 출력하는 BIFS 렌더 스레드를 더 포함한다.
본 발명의 일례에 따른 DMB 수신장치의 버퍼제어 방법은 DMB 주파수로 수신되는 아날로그 신호를 MPEG-2 TS(Transport Stream)형태의 디지털 신호로 변환하는 단계, MPEG-2 TS의 PAT(Program Association Table), ADT(Adaptation Field), PMT(Program Map Table) 및 PES(Packetized Elementary Stream)를 파싱(Parsing)하여 BSAC(Bit Sliced Arithmetic Coding) 스트림, H.264 스트림 및 JPEG/PNG 스트림을 형성하는 단계. BSAC 스트림을 복호화(Decode)하는 단계, H.264 스트림을 복호화하는 단계, DTS 클록 제어부로부터 입력된 제어신호에 따라 상기 BSAC 스트림의 오디오 프레임을 복원하는 단계, DTS 클록 제어부로부터 입력된 제어신호에 따라 상기 H.264 스트림의 비디오 프레임을 복원하는 단계, BSAC 스트림의 오디오 프레임을 오디오 링 버퍼(Audio Ring Buffer)에 저장하는 단계, H.264 스트림의 비디오 프레임을 비디오 링 버퍼(Video Ring Buffer)에 저장하는 단계, CTS 클록 제어부로부터 입력된 제어신호에 따라 상기 오디오 프레임의 CTS(Composition Time Stamp) 초기값 및 시스템 클록(System Clock)을 설정하여 재생하는 단계, 재생되는 오디오 프레임의 CTS의 기준시간과 현재 재생 중인 비디오 프레임의 CTS 간의 차 값를 도출하는 단계 및 상기 차 값만큼 상기 비디오 링 버퍼에 저장된 상기 비디오 프레임을 보상하여 상기 비디오 프레임 및 상기 오디오 프레임의 싱크를 조정하는 단계를 포함한다.
본 발명에 따르면, DMB 신호의 버퍼링을 최소화하여 시청자가 안정적으로 방송을 시청하도록 제공하는 효과가 있다.
또한, 본 발명에 따르면 DMB 재생 시 비디오 영상과 음성/오디오 신호의 싱크(Sync)가 상호 일치하도록 제공하는 효과가 있다.
이하 첨부된 도면을 참조하여 본 발명의 일례에 따른 DMB 수신장치 및 그 버퍼제어 방법을 상세히 설명한다.
도 1은 본 발명의 일례에 따른 버퍼 제어를 통해 DMB 방송을 수신하는 DVP를 도시한 블록도이다.
도 1에 도시된 바와 같이, 본 발명에 따른 수신장치(1000)는 방송 수신부(100), DMB 처리부(200) 및 출력부(300)을 포함한다.
방송 수신부(100)는 안테나로부터 DMB 신호를 수신하고, 상기 수신된 DMB 신호를 디지털 신호로 변환한다. 이를 위하여, 방송 수신부(100)는 DMB 안테나 조절기(110), OFDM 역 변조기(120), 채널 복호부(Channel Decoder)(130)를 포함한다.
DMB 안테나 조절기(110)는 소정의 DMB 주파수로 수신되는 아날로그 신호를 디지털 신호로 변환한다. 디지털 신호는 Eureka-147 형태의 디지털 데이터인 것이 바람직하다.
OFDM 역 변조기(120)는 디지털 신호를 MPEG-2 TS(Transport Stream)형태로 변환한다. 이때, MPEG-2 TS는 188바이트 단위로 패킷화되는 것이 바람직하다.
채널 복호부(Channel Decoder)(130)는 MPEG-2 TS를 DMB 처리부(200)로 출력한다.
DMB 처리부(200)는 방송 수신부(100)로부터 입력된 MPEG-2 TS 스트림(Stream)을 처리하여 오디오 프레임 및 비디오 프레임의 싱크(Synchronization)를 제어한다. 이를 위하여, DMB 처리부(200)는 TS 파서 스레드(Transport Stream Parser Thread)(210), BSAC 스트림 처리부(220), H.264 스트림 처리부(230), JPEG/PNG 스트림 처리부(240) 및 클록 제어부(250)를 포함한다.
TS 파서 스레드(Transport Stream Parser Thread)(210)는 MPEG-2 TS의 PAT(Program Association Table), ADT(Adaptation Field), PMT(Program Map Table) 및 PES(Packetized Elementary Stream)를 파싱(Parsing)한다. 또한, TS 파서 스레 드(210)는 MPEG-4의 SL(Sync Layer)단을 이용하여 상기 MPEG-2 TS에 대한 부호화(Encode)된 BSAC(Bit Sliced Arithmetic Coding) 스트림, H.264 스트림 및 JPEG/PNG 스트림을 형성한다.
BSAC 스트림 처리부(220)는 클록 제어부(250)의 입력 신호에 따라 TS 파서 스레드(210)로부터 입력된 BSAC(Bit Sliced Arithmetic Coding)스트림의 CTS(Composition Time Stamp) 초기값 및 시스템 클록(System Clock)을 설정한다. 이를 위하여, BSAC 스트림 처리부(220)는 DSP(BSAC) 코덱부(221), 오디오(BSAC) ACK 스레드(222), 오디오 링 버퍼(Audio Ring Buffer)(233) 및 오디오 콜백부(Audio Callback)(234)를 포함한다.
DSP(BSAC) 코덱부(221)는 TS 파서 스레드(210)로부터 입력된 부호화(Encode)된 BSAC 스트림을 복호화(Decode)한다.
오디오(BSAC) ACK 스레드(222)는 DTS 클록 제어부(251)로부터 입력된 제어신호에 따라 DSP(BSAC) 코덱부(221)부터 입력된 BSAC 스트림의 오디오 프레임을 복원한다.
오디오 링 버퍼(Audio Ring Buffer)(233)는 오디오(BSAC) ACK 스레드(222)로부터 입력된 순서대로 오디오 프레임을 저장한다.
오디오 콜백부(Audio Callback)(234)는 CTS 클록 제어부(252)로부터 입력된 제어신호에 따라 오디오 프레임의 CTS(Composition Time Stamp) 초기값 및 시스템 클록(System Clock)을 설정한다. 여기서, 오디오 프레임의 CTS는 상기 오디오 프레임의 CTS 초기값과 상기 설정된 시스템 클록을 기준시간으로 하여 설정된다.
H.264 스트림 처리부(230)는 클록 제어부(250)의 입력 신호에 따라 TS 파서 스레드(210)로부터 입력된 H.264 스트림의 싱크를 제어한다. 이를 위하여, H.264 스트림 처리부(230)는 DSP(H.264) 코덱부(231), 비디오(H.264) ACK 스레드(232), 비디오 링 버퍼(Video Ring Buffer)(233) 및 비디오 렌더 스레드(Video Render Thread)(234)를 포함한다.
DSP(H.264) 코덱부(231)는 TS 파서 스레드(210)로부터 입력된 부호화(Encode)된 H.264 스트림을 복호화(Decode)한다.
비디오(H.264) ACK 스레드(232)는 DTS 클록 제어부(251)로부터 입력된 제어신호에 따라 DSP(H.264) 코덱부(231)로부터 입력된 H.264 스트림의 비디오 프레임을 복원한다.
비디오 링 버퍼(Video Ring Buffer)(233)는 비디오(H.264) ACK 스레드(232)로부터 입력된 순서대로 비디오 프레임을 저장한다.
비디오 렌더 스레드(Video Render Thread)(234)는 오디오 콜백부(234)에서 현재 재생되는 오디오 프레임의 CTS의 기준시간과 현재 재생 중인 비디오 프레임의 CTS 간의 차 값를 도출하고, 상기 차 값만큼 비디오 링 버퍼(233)에 저장된 비디오 프레임을 보상하여 비디오 프레임 및 오디오 프레임의 싱크를 조정한다.
JPEG/PNG 스트림 처리부(240)는 TS 파서 스레드(210)로부터 입력된 JPEG/PNG 스트림를 처리하여 출력한다. 이를 위하여, JPEG/PNG 스트림 처리부(240)는 ARM(JPEG/PNG) 코덱부(241), SD/BIFS(JPEG/PNG) 스레드(242), BIFS 링 버퍼(BIFS Ring Buffer)(243), BIFS 렌더 스레드(244) 및 JPEG/PNG 복호화부(245)를 포함한 다.
ARM(JPEG/PNG) 버퍼(241)는 TS 파서 스레드(210)로부터 입력된 부호화(Encode)된 JPEG/PNG 스트림을 임시 저장한다.
SD/BIFS(JPEG/PNG) 스레드(242)는 JPEG/PNG 복호화부(243)에서 입력된 JPEG/PNG 프레임의 SD(Scene Description)을 파싱(Parsing)하여 트리(Tree)구조로 형성한다.
JPEG/PNG 복호화부(243)는 ARM(JPEG/PNG) 버퍼(241)에 저장된 JPEG/PNG 프레임을 복호화한다.
BIFS 링 버퍼(244)는 SD/BIFS(JPEG/PNG) 스레드(242)로부터 입력된 JPEG/PNG 프레임을 순서대로 저장한다.
BIFS 렌더 스레드(245)는 BIFS 링 버퍼(244)에 저장된 JPEG/PNG 프레임을 렌더링하여 Overlay로 출력한다.
클록 제어부(250)는 TS 파서 스레드(210)로부터 입력된 신호에 따라 BSAC 스트림 처리부(220) 및 H.264 스트림 처리부(230)의 싱크 동작을 제어한다. 이를 위하여, 클록 제어부(250)는 Dts Clock 제어부(251) 및 CTS Clock 제어부(252)를 포함한다.
Dts Clock 제어부(251)는 TS 파서 스레드(210)로부터 입력된 신호에 따라 오디오 프레임의 DTS(Decoding Time Stamp)를 오디오(BSAC) ACK 스레드(222)에 제공한다. 또한, TS 파서 스레드(210)로부터 입력된 신호에 따라 비디오 프레임의 DTS를 비디오(H.264) ACK 스레드(232)에 제공한다.
여기서, DTS는 오디오 프레임 및 비디오 프레임을 복호하는 시간을 지정한 정보이다. 즉, 영상 신호와 음성 신호를 MPEG-2로 압축하여 전송할 경우, 압축 및 복원에 소요되는 시간은 음성 신호에 비해 영상 신호가 더 큼으로, 동영상 재생 시 영상과 음성이 일치하지 않는 현상이 발생한다. DTS는 이러한 현상을 방지하기 위해 오디오 프레임 및 비디오 프레임의 복호 시간을 지정한 정보이다.
CTS Clock 제어부(252)는 TS 파서 스레드(210)로부터 입력된 신호에 따라 오디오 프레임의 CTS(Composition Time Stamp)를 오디오 콜백부(234)에 제공한다. 여기서, CTS는 오디오 링 버퍼(233)에 저장된 오디오 프레임의 구성 시간을 지정한 정보이다.
도 2는 본 발명의 일례에 따른 오디오 프레임의 CTS(Composition Time Stamp) 값을 이용하여 오디오 링 버퍼를 제어하는 과정을 도시한 블록도이다.
도 2에 도시된 바와 같이, 오디오 콜백부(Audio Callback)(234)는 CTS 클록 제어부(252)로부터 입력된 오디오 프레임의 CTS(Composition Time Stamp)를 이용하여 오디오 링 버퍼(233)를 제어한다. 이러한 과정을 수학식 1 내지 3을 통해 수식화하였다.
[수학식1]
BaseTime(Object Time)=Audio_Init_CTS+System_Clock()
[수학식2]
Audio_ObjectTime=Audio CTS(Composition Time Stamp)
[수학식3]
Audio_diff=Audio_ObjectTime-BaseTime
여기서, BaseTime은 오디오 프레임의 CTS의 기준시간, Audio_Init_CTS는 오디오 프레임의 초기 CTS, System_Clock()은 시스템 클록 함수, Audio CTS는 현재 재생 중인 오디오 프레임의 CTS, Audio_diff은 현재 재생 중인 오디오 프레임의 CTS와 오디오 프레임의 CTS의 기준시간의 차를 의미한다.
위의 수학식 1 내지 3을 통해 산출된 Audio_diff과 임계값을 비교하여 Audio_diff이 임계값 보다 큰 경우, 오디오 링 버퍼(233)를 제어하여 BaseTime 및 Audio_Init_CTS를 초기화(240)한다. 반면, Audio_diff보다 임계값이 큰 경우, 오디오 링 버퍼(233)를 제어하여 BaseTime을 기준시간으로 하여 오디오 프레임(Drop)을 드롭(250)시킨다.
본 발명에 따르면, BaseTime과 Audio CTS을 임계값과 비교한다. 이때, BaseTime보다 Audio CTS가 임계값 이상인 경우, TS 파서 스레드(210)는 TS 스트림을 파싱하고, MPEG-4 Sync layer에서 검출한 Composition Time Stamp로부터 CTS를 구한다. TS 파서 스레드(210)는 이렇게 구한 CTS를 CTS 클록 제어부(252)로 제공한다. CTS 클록 제어부(252)는 오디오 콜백부(234)를 제어하여 오디오 프레임의 Audio Init time을 현재 CTS로 보정하고, 또한, BaseTime을 현재의 System Clock()으로 보정한다.
여기서, CTS는 오디오 프레임의 CTS 초기값(CompositionTimeStamp)과 상기 설정된 시스템 클록(SL.timeStampResolution)을 기준시간으로 하여 설정된다. 이러한 과정을 수학식 4를 통해 수식화하였다.
[수학식 4]
CTS=CompositionTimeStamp*1000/SL.timeStampResolution
CTS는 ISO/IEC 14496-1 2001(E), 초단파 디지털 라디오 방송(지상파 DMB) 비디오 송수신 정합표준을 참조하여 구한다. 이때, SL.timeStampResolution은 정합표준에서 90,000으로 고정된다.
본 발명에 따르면, BaseTime과 Audio CTS을 임계값과 비교한다. 이때, BaseTime보다 Audio CTS가 임계값 이하인 경우, 오디오 콜백부(234)는 오디오 링 버퍼(233)를 제어하여 오디오 프레임들의 CTS를 비교하고, BaseTime을 기준시간으로 하여 CTS가 낮은 오디오 프레임(Drop)을 드롭(250)시킨다.
오디오 프레임의 CTS가 BaseTime과 임계값 이내에 위치하는 경우 출력장치(300)를 통해 재생한다.
또한, 본 발명에 따르면, 오디오 콜백부(202)는 오디오 링 버퍼(203)에 저장된 오디오 프레임의 CTS(Composition Time Stamp) 값을 기준 시간으로 하여 오디오 프레임과 비디오의 싱크(Synchronization)가 일치하도록 조정한다.
즉, 오디오 콜백부(234)는 오디오 프레임의 CTS를 기준으로 오디오 링 버퍼(233)로부터 오디오 프레임을 입력받는다. 이때, 오디오 프레임의 CTS의 기준시간은 BaseTime이 된다.
CTS 클록 제어부(252)는 오디오 콜백부(234)를 제어하여 오디오 링 버퍼(233)에 저장된 오디오 프레임의 Audio Init time을 현재 CTS로 보정하고, 또한 B(BaseTime)을 현재의 System Clock()으로 보정한다.
이때, 외부영향으로 스트림이 소실됨으로써, B(BaseTime)가 A(오디오 링 버퍼(233)에 저장된 오디오 Frame의 CTS값) 보다 임계값 이하로 작은 경우, TS 파서 스레드(210)의 Audio_Init Time 및 System Clock Time값을 업데이트하면서 BaseTime을 스킵(Skip)한다. 또한, B(BaseTime)이 스킵됨에 따라 오디오 링 버퍼(233)의 프레임들은 업데이트되어 출력장치(300)를 통해 재생된다.
그러나, B(BaseTime)가 A(오디오 링 버퍼(233)에 저장된 오디오 Frame의 CTS값) 보다 임계값 이상인 경우, 오디오 링 버퍼(233)에 저장된 오디오 프레임을 현재 재생 시간과 일치하도록 스킵하여 출력장치(300)를 통해 재생한다.
이와 달리, B(BaseTime) 및 A(오디오 링 버퍼(233)에 저장된 오디오 Frame의 CTS값)이 임계값 영역 내에 위치한 경우 오디오 링 버퍼(233)의 오디오 프레임들은 정상적으로 출력(300)된다.
도 3은 본 발명의 일례에 따른 오디오 프레임의 CTS(Composition Time Stamp) 값을 이용하여 비디오 립 싱크(Video Lip Sync) 및 비디오 링 버퍼를 제어하는 과정을 도시한 블록도이다.
도 3에 도시된 바와 같이, 비디오 렌더 스레드(234)는 비디오 링 버퍼(233)의 한 프레임의 CTS 값을 B값과 A값의 차와 비교하고, 그 비교값이 임계값 영역을 벗어나는 경우, 다음의 수학식을 참조하여 현재 재생 중인 오디오 CTS 값에 따라 비디오 립 싱크(Lip Sync) 및 비디오 링 버퍼(233)를 제어한다. 이러한 과정을 수학식 5 내지 7을 통해 수식화하였다.
[수학식5]
BaseTime_Audio(Object Time)=Audio CTS(Composition Time Stamp)
[수학식6]
Video_ObjectTime=Video CTS(Composition Time Stamp)
[수학식7]
Video_diff=Video_ObjectTime-BaseTime_Audio
여기서, BaseTime은 현재 재생 중인 Audio CTS(Composition Time Stamp)값, Video_ObjectTime은 현재 재생 중인 Video CTS(Composition Time Stamp)값, Video_diff는 현재 재생 중인 Audio CTS 값과 현재 재생 중인 Video CTS 값의 차를 의미한다.
먼저, B(BaseTime_Audio)과 Audio CTS의 차 값을 V(Video CTS)를 임계값과 비교한다. 이때, B(BaseTime_Audio)보다 V(Video CTS)가 임계값 이상인 경우, TS 파서 스레드(210)는 TS 스트림을 파싱하고, MPEG-4 Sync layer에서 검출한 Composition Time Stamp로부터 V(Video CTS)를 구한다. 이렇게 구한 V(Video CTS)를 도 2에서 설명한 Audio_Init_CTS에 적용한다. 또한, B(BaseTime_Audio)를 현재의 System Clock()으로 설정한다. 상기 설정 값에 따라 오디오 링 버퍼(223)에 저장된 오디오 프레임의 CTS를 B(BaseTime_Audio)으로 하여 오디오 링 버퍼(223)를 제어한다.
본 발명에 따르면, Audio CTS(BaseTime_Audio)를 기준으로 비디오 링 버퍼에 저장된 비디오 프레임의 CTS를 B(BaseTime_Audio)으로 설정(340)하여 비디오 링 버퍼(233)를 제어한다.
이와 달리, B(BaseTime_Audio)보다 V(Video CTS)가 임계값 이하인 경우, 비디오 링 버퍼(233)에 저장된 비디오 프레임들의 CTS를 비교하고, B(BaseTime_Audio)을 기준시간으로 하여 CTS가 낮은 비디오 프레임들을 드롭(350)하여 비디오 링 버퍼(233)를 제어한다.
B(BaseTime_Audio) 및 V(Video CTS)가 임계값 이내에 위치하는 경우, 비디오 프레임을 정상적으로 출력한다.
본 발명에 따르면, B(BaseTime_Audio)와 A(오디오 프레임의 CTS)의 차를 이용하여 비디오 링 버퍼(233)를 제어한다. 즉, V(Video CTS)를 B(BaseTime_Audio)와 A(오디오 프레임의 CTS)의 차와 비교하고, 그 비교값이 임계값 영역보다 작은 경우, 비디오 링 버퍼(233)의 프레임들을 임계값과의 차이만큼 스킵하여 재생한다.
반면, V(Video CTS)를 B(BaseTime_Audio)와 A(오디오 프레임의 CTS)의 차와 비교하고, 그 비교값이 임계값 영역에 존재하는 경우, 오디오 프레임 및 비디오 프레임의 싱크(Synchronization)를 일치시켜 출력(300)한다.
도 4는 본 발명의 일례에 따른 DMB 수신장치의 버퍼제어 방법을 도시한 흐름도이다.
OFDM 역 변조기(120)는 소정의 DMB 주파수로 수신되는 아날로그 신호를 MPEG-2 TS(Transport Stream)형태의 디지털 신호로 변환한다(S401). 이때, MPEG-2 TS는 188바이트 단위로 패킷화되는 것이 바람직하다.
TS 파서 스레드(210)는 MPEG-2 TS의 PAT(Program Association Table), ADT(Adaptation Field), PMT(Program Map Table) 및 PES(Packetized Elementary Stream)를 파싱(Parsing)한다(S402). 또한, TS 파서 스레드(210)는 MPEG-4의 SL(Sync Layer)단을 이용하여 상기 MPEG-2 TS에 대한 부호화(Encode)된 BSAC(Bit Sliced Arithmetic Coding) 스트림, H.264 스트림 및 JPEG/PNG 스트림을 형성한다.
DSP(BSAC) 코덱부(221)는 TS 파서 스레드(210)로부터 입력된 부호화(Encode)된 BSAC 스트림을 복호화(Decode)한다(S403).
DSP(H.264) 코덱부(231)는 TS 파서 스레드(210)로부터 입력된 부호화(Encode)된 H.264 스트림을 복호화(Decode)한다(S404).
오디오(BSAC) ACK 스레드(222)는 DTS 클록 제어부(251)로부터 입력된 제어신호에 따라 DSP(BSAC) 코덱부(221)부터 입력된 BSAC 스트림의 오디오 프레임을 복원한다(S405).
비디오(H.264) ACK 스레드(232)는 DTS 클록 제어부(251)로부터 입력된 제어신호에 따라 DSP(H.264) 코덱부(231)로부터 입력된 H.264 스트림의 비디오 프레임을 복원한다(S406).
오디오 링 버퍼(Audio Ring Buffer)(233)는 오디오(BSAC) ACK 스레드(222)로부터 입력된 순서대로 오디오 프레임을 저장한다(S407).
비디오 링 버퍼(Video Ring Buffer)(233)는 비디오(H.264) ACK 스레드(232)로부터 입력된 순서대로 비디오 프레임을 저장한다(S408).
오디오 콜백부(Audio Callback)(234)는 CTS 클록 제어부(252)로부터 입력된 제어신호에 따라 오디오 프레임의 CTS(Composition Time Stamp) 초기값 및 시스템 클록(System Clock)을 설정하여 재생한다(S409). 여기서, 오디오 프레임의 CTS는 상기 오디오 프레임의 CTS 초기값과 상기 설정된 시스템 클록을 기준시간으로 하여 설정된다.
비디오 렌더 스레드(Video Render Thread)(234)는 오디오 콜백부(234)에서 현재 재생되는 오디오 프레임의 CTS의 기준시간과 현재 재생 중인 비디오 프레임의 CTS 간의 차 값를 도출한다(S410).
상기 차 값만큼 비디오 링 버퍼(233)에 저장된 비디오 프레임을 보상하여 비디오 프레임 및 오디오 프레임의 싱크를 조정한다(S411).
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
도 1은 본 발명의 일례에 따른 버퍼 제어를 통해 DMB 방송을 수신하는 DVP를 도시한 블록도이다.
도 2는 본 발명의 일례에 따른 오디오 프레임의 CTS(Composition Time Stamp) 값을 이용하여 오디오 링 버퍼를 제어하는 과정을 도시한 블록도이다.
도 3은 본 발명의 일례에 따른 오디오 프레임의 CTS 값을 이용하여 비디오 립 싱크 및 비디오 링 버퍼를 제어하는 과정을 도시한 블록도이다.
도 4는 본 발명의 일례에 따른 DMB 수신장치의 버퍼제어 방법을 도시한 흐름도이다.
<도면의 주요 부분에 관한 부호의 설명>
107 : TS 파서 스레드, 116 : 오디오 링 버퍼
108 : DSP(BSAC) 코덱부 117 : CTS Clock 제어부
109 : DSP(H.264) 코덱부, 118 : 비디오 링 버퍼
110 : ARM(JPEG/PNG) 버퍼, 119 : BIFS 링 버퍼
111 : 오디오(BSAC) ACK 스레드 120 : 오디오 콜백부
112: Dts Clock 제어부 121 : 비디오 렌더 스레드
113 : 비디오(H.264) ACK 스레드 122 : BIFS 렌더 스레드
114 : SD/BIFS(JPEG/PNG) 스레드
115 : JPEG/PNG 복호화부

Claims (3)

  1. MPEG(Moving Picture Experts Group)-2 TS(Transport Stream)를 파싱(Parsing)하고, MPEG(Moving Picture Experts Group)-4의 SL(Sync Layer)단을 이용하여 상기 MPEG-2 TS에 대한 부호화(Encode)된 BSAC(Bit Sliced Arithmetic Coding)스트림, H.264 스트림 및 JPEG(Joint Photographic Experts Group)/PNG(Portable Network Graphics) 스트림을 형성하는 TS 파서 스레드(Transport Stream Parser Thread);
    상기 BSAC(Bit Sliced Arithmetic Coding) 스트림을 복호화(Decode)하는 DSP(Digital Signal Processing)(BSAC) 코덱부;
    상기 H.264 스트림 신호를 복호화(Decode)하는 DSP(H.264) 코덱부;
    상기 DSP(BSAC) 코덱부로부터 입력되는 상기 BSAC 스트림을 복호화하여 오디오 프레임을 복원하는 오디오(BSAC) ACK(ACKnowledgement) 스레드;
    상기 DSP(H.264) 코덱부로부터 입력되는 상기 H.264 스트림을 복호화하여 비디오 프레임을 복원하는 비디오(H.264) ACK(ACKnowledgement) 스레드;
    상기 오디오 프레임을 입력된 순서대로 저장하는 오디오 링 버퍼(Audio Ring Buffer);
    상기 비디오 프레임을 입력된 순서대로 저장하는 비디오 링 버퍼(Video Ring Buffer);
    상기 오디오 링 버퍼에 저장된 상기 오디오 프레임을 재생하는 오디오 콜백(Call Back)부;
    상기 오디오 링 버퍼에 저장된 상기 오디오 프레임 및 상기 비디오 링 버퍼에 저장된 상기 비디오 프레임의 시간을 제어하는 CTS(Composition Time Stamp) 클록(clock) 제어부; 및
    상기 CTS 클록 제어부로부터 입력된 상기 제어 신호에 따라 상기 오디오 콜백부에서 재생되는 오디오 프레임의 싱크(Synchronization)에 해당되는 비디오 프레임을 상기 비디오 링 버퍼로부터 수신하고, 상기 오디오 프레임과 상기 비디오 프레임을 렌더링(Rendering)하여 싱크를 조정하는 비디오 렌더 스레드(Video Render Thread)
    를 포함하는 DMB(Digital Multimedia Broadcasting) 수신장치.
  2. 제1항에 있어서,
    상기 JPEG/PNG 프레임을 임시 저장하는 ARM(Advanced RISC(Reduced Instruction Set Computer) Machine)(JPEG/PNG) 버퍼;
    SD(Scene Description)을 파싱(Parsing)하여 상기 JPEG/PNG 프레임을 트리(Tree)구조로 형성하는 SD(Scene Description)/BIFS(Binary Format for Scenes)(JPEG/PNG) 스레드;
    상기 ARM(JPEG/PNG) 버퍼에 저장된 JPEG/PNG 프레임을 상기 SD/BIFS(JPEG/PNG) 스레드의 제어에 따라 복호화하는 JPEG/PNG 복호화부;
    상기 SD/BIFS(JPEG/PNG) 스레드로부터 입력된 JPEG/PNG 프레임을 순서대로 저장하는 BIFS(Binary Format for Scenes) 링 버퍼; 및
    상기 BIFS 링 버퍼에 저장된 이미지(Image)(JPEG/PNG) 프레임을 오버레이(Overlay)로 출력하는 BIFS(Binary Format for Scenes) 렌더 스레드
    를 더 포함하는 DMB(Digital Multimedia Broadcasting) 수신장치.
  3. DMB(Digital Multimedia Broadcasting) 주파수로 수신되는 아날로그 신호를 MPEG(Moving Picture Experts Group)-2 TS(Transport Stream)형태의 디지털 신호로 변환하는 단계;
    상기 MPEG-2 TS의 PAT(Program Association Table), ADT(Adaptation Field), PMT(Program Map Table) 및 PES(Packetized Elementary Stream)를 파싱(Parsing)하여 BSAC(Bit Sliced Arithmetic Coding) 스트림, H.264 스트림 및 JPEG(Joint Photographic Experts Group)/PNG(Portable Network Graphics) 스트림을 형성하는 단계;
    상기 BSAC 스트림을 복호화(Decode)하는 단계;
    상기 H.264 스트림을 복호화하는 단계;
    DTS(Decoding Time Stamp) 클록 제어부로부터 입력된 제어신호에 따라 상기 BSAC 스트림의 오디오 프레임을 복원하는 단계;
    상기 DTS 클록 제어부로부터 입력된 제어신호에 따라 상기 H.264 스트림의 비디오 프레임을 복원하는 단계;
    상기 BSAC 스트림의 오디오 프레임을 오디오 링 버퍼(Audio Ring Buffer)에 저장하는 단계;
    상기 H.264 스트림의 비디오 프레임을 비디오 링 버퍼(Video Ring Buffer)에 저장하는 단계;
    CTS(Composition Time Stamp) 클록 제어부로부터 입력된 제어신호에 따라 상기 오디오 프레임의 CTS(Composition Time Stamp) 초기값 및 시스템 클록(System Clock)을 설정하여 재생하는 단계;
    상기 재생되는 오디오 프레임의 CTS(Composition Time Stamp)의 기준시간과 현재 재생 중인 비디오 프레임의 CTS(Composition Time Stamp) 간의 차 값를 도출하는 단계; 및
    상기 차 값만큼 상기 비디오 링 버퍼에 저장된 상기 비디오 프레임을 보상하여 상기 비디오 프레임 및 상기 오디오 프레임의 싱크를 조정하는 단계
    를 포함하는 DMB(Digital Multimedia Broadcasting) 수신장치의 버퍼제어 방법.
KR1020080117404A 2008-11-25 2008-11-25 Dmb 수신장치 및 그 버퍼제어 방법 KR100998449B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080117404A KR100998449B1 (ko) 2008-11-25 2008-11-25 Dmb 수신장치 및 그 버퍼제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080117404A KR100998449B1 (ko) 2008-11-25 2008-11-25 Dmb 수신장치 및 그 버퍼제어 방법

Publications (2)

Publication Number Publication Date
KR20100058844A KR20100058844A (ko) 2010-06-04
KR100998449B1 true KR100998449B1 (ko) 2010-12-06

Family

ID=42360233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080117404A KR100998449B1 (ko) 2008-11-25 2008-11-25 Dmb 수신장치 및 그 버퍼제어 방법

Country Status (1)

Country Link
KR (1) KR100998449B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103369365A (zh) * 2013-06-28 2013-10-23 东南大学 音视频同步记录装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100864009B1 (ko) 2007-04-02 2008-10-16 주식회사 대우일렉트로닉스 오디오/비디오 동기화 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100864009B1 (ko) 2007-04-02 2008-10-16 주식회사 대우일렉트로닉스 오디오/비디오 동기화 방법

Also Published As

Publication number Publication date
KR20100058844A (ko) 2010-06-04

Similar Documents

Publication Publication Date Title
KR100950867B1 (ko) 패킷화된 비디오 데이터 처리 방법, 이미지 데이터를 디코딩하는 방법, 및 비디오 방송 방법
US11611760B2 (en) Preserving image quality in temporally compressed video streams
KR101967818B1 (ko) 수신 장치 및 그 수신 방법
US20070206930A1 (en) Apparatus and method for image coding and decoding
US20080002776A1 (en) Media Content and Enhancement Data Delivery
CN112369042B (zh) 用于自适应流传输对齐的帧转换
JP2007013436A (ja) 符号化ストリーム再生装置
MXPA03011051A (es) Empalme de flujos de transporte de video digitales.
US20100328527A1 (en) Fast Channel Switch Between Digital Television Channels
US9137477B2 (en) Fast channel change companion stream solution with bandwidth optimization
US20150135247A1 (en) Receiver apparatus and synchronization processing method thereof
US20080279272A1 (en) Contents reproducing apparatus
KR19990057100A (ko) 엠펙 디코더 및 디코딩 제어 방법
EP1162845A2 (en) Apparatus and method for information processing, and recording medium
US20090013369A1 (en) Device and Method for Initializing Decoder in Digital Broadcasting Receiver
US20090251616A1 (en) Apparatus and method for processing data in digital broadcasting receiver
US20180295415A1 (en) Digital media splicing system and method
KR100998449B1 (ko) Dmb 수신장치 및 그 버퍼제어 방법
US20100086284A1 (en) Personal recording apparatus and control method thereof
KR101075969B1 (ko) 비디오 시퀀스 내에서 에러 전달을 예방하기 위한 방법 및 장치
US10700799B2 (en) Method and apparatus for broadcast signal transmission
US11770595B2 (en) Transmission apparatus, transmission method, reception apparatus, and reception method
CN108702533B (zh) 发送装置、发送方法、接收装置和接收方法
KR100802133B1 (ko) 오디오/비디오신호의 동기화를 위한 디지털신호 처리장치및 그의 방법
McKinney et al. ATSC digital television standard

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20081125

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20100531

Patent event code: PE09021S01D

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20101129

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20101130

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20101201

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20131030

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20131030

Start annual number: 4

End annual number: 4

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20161009