KR102174267B1 - 영상 패킷의 변환 장치 및 방법 - Google Patents

영상 패킷의 변환 장치 및 방법 Download PDF

Info

Publication number
KR102174267B1
KR102174267B1 KR1020130162448A KR20130162448A KR102174267B1 KR 102174267 B1 KR102174267 B1 KR 102174267B1 KR 1020130162448 A KR1020130162448 A KR 1020130162448A KR 20130162448 A KR20130162448 A KR 20130162448A KR 102174267 B1 KR102174267 B1 KR 102174267B1
Authority
KR
South Korea
Prior art keywords
video
size
packets
bit rate
buffer
Prior art date
Application number
KR1020130162448A
Other languages
English (en)
Other versions
KR20150074556A (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 KR1020130162448A priority Critical patent/KR102174267B1/ko
Publication of KR20150074556A publication Critical patent/KR20150074556A/ko
Application granted granted Critical
Publication of KR102174267B1 publication Critical patent/KR102174267B1/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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling 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/23611Insertion of stuffing data into a multiplex stream, e.g. to obtain a constant bitrate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling 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/23605Creation or processing of packetized elementary streams [PES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/242Synchronization processes, e.g. processing of PCR [Program Clock References]

Abstract

가변 비트레이트(VBR: variable bit rate)로 부호화된 영상 패킷들을 획득하는 단계; 단위 시간마다 재생되어야 할 영상 패킷 그룹들 각각의 크기에 기초하여, 변환 윈도우의 크기를 결정하는 단계; 영상 패킷 그룹들 중 제 1 영상 패킷 그룹의 크기와 변환 윈도우의 크기를 비교하는 단계; 제 1 영상 패킷 그룹의 크기가 변환 윈도우의 크기를 초과하지 않는 경우, 제 1 영상 패킷 그룹에 포함된 제 1 영상 패킷들을 버퍼에 입력하는 단계; 및 버퍼에 입력된 제 1 영상 패킷들을 기 설정된 고정 비트레이트(CBR: constant bit rate)로 전송하는 단계를 포함하는 것을 특징으로 하는 본 발명의 일 실시예에 따른 영상 패킷의 변환 방법이 개시된다.

Description

영상 패킷의 변환 장치 및 방법 {APPARATUS AND METHOD FOR TRANSFORMING VIDEO PACKET}
본 발명은 영상 패킷의 변환 장치 및 방법에 관한 것이다. 보다 구체적으로, 본 발명은 가변 비트레이트로 부호화된 영상 패킷을 고정 비트레이트의 영상 패킷으로 변환하는 장치 및 방법에 관한 것이다.
영상을 부호화하는 방식에 있어서 항상 일정한 비트율로 부호화하는 CBR(Constant Bit Rate; 고정 비트율) 방식과 영상 특성에 따라 변하는 비트율로 부호화하는 VBR(Variable Bit Rate; 가변 비트율) 방식이 있다. 이 중 VBR 방식은 영상의 특성을 고려하여 움직임이 많은 영상 구간에서는 높은 비트율을 사용하여 영상을 부호화하고, 움직임이 적은 정적인 구간에서는 낮은 비트율을 사용하는 영상을 부호화함으로써, 고화질의 영상을 낮은 용량으로 부호화할 수 있다.
그러나, VBR로 부호화된 영상을 원격지에 위치한 시청자에게 전달하기 위해서는 전송 매체를 통해 전송하여야 하는데, 유선 인터넷 망이나 이동통신 망에서는 필요에 따라 원하는 대역폭을 사용할 수 있기 때문에 문제가 없지만 ATSC(Advanced Television System Committee)나 DMB 등의 대부분의 방송 규격은 각 채널당 일정한 데이터를 전송하는 고정 비트레이트 방식만 지원하고 있기 때문에 VBR로 부호화된 영상을 CBR 영상으로 변환해야 하는 문제가 있다.
VBR 영상을 CBR 영상으로 변환하기 위해서는, VBR로 부호화된 영상을 복호화한 후 다시 CBR 영상으로 부호화하는 과정을 거치기 때문에 변환 장치에 높은 부하를 주고, 또한 부호화와 복호화 과정을 처리하기 위한 시간이 소요되므로 실시간 방송에 지연이 발생하게 된다.
더구나, VBR 영상을 CBR 영상으로 변환하기 위해서는 상당히 많은 자원이 필요한데, 특히 방송 사업자의 경우, 수백 개에 달하는 채널을 모두 변환하기 위해서는 엄청난 비용이 소모된다.
따라서, 일반 인터넷 환경에서 많이 사용되는 VBR 영상을 방송 규격과 같은 고정 비트레이트의 전송 매체를 통해 효율적으로 전송하기 위한 방안이 요구된다.
본 발명의 일 실시예에 따른 영상 패킷의 변환 장치 및 방법은 가변 비트레이트로 부호화된 영상 패킷을 적은 자원을 이용하여 고정 비트레이트의 영상 패킷으로 변환하는 것을 목적으로 한다.
또한, 본 발명의 일 실시예에 따른 영상 패킷의 변환 장치 및 방법은 가변 비트레이트로 부호화된 영상 패킷의 손실 및 영상 재생의 지연을 최소화하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 영상 패킷의 변환 장치는,
가변 비트레이트(VBR: variable bit rate)로 부호화된 영상 패킷들을 획득하는 단계; 단위 시간마다 재생되어야 할 영상 패킷 그룹들 각각의 크기에 기초하여, 변환 윈도우의 크기를 결정하는 단계; 상기 영상 패킷 그룹들 중 제 1 영상 패킷 그룹의 크기와 상기 변환 윈도우의 크기를 비교하는 단계; 상기 제 1 영상 패킷 그룹의 크기가 상기 변환 윈도우의 크기를 초과하지 않는 경우, 상기 제 1 영상 패킷 그룹에 포함된 제 1 영상 패킷들을 버퍼에 입력하는 단계; 및 상기 버퍼에 입력된 제 1 영상 패킷들을 기 설정된 고정 비트레이트(CBR: constant bit rate)로 전송하는 단계를 포함할 수 있다.
상기 버퍼에 입력하는 단계는, 상기 제 1 영상 패킷 그룹의 크기가 상기 변환 윈도우의 크기를 초과하는 경우, 상기 제 1 영상 패킷들 중 일부의 제 1 영상 패킷을 폐기하고, 상기 폐기된 제 1 영상 패킷을 제외한 나머지 제 1 영상 패킷들을 상기 버퍼에 입력하는 단계를 포함할 수 있다.
상기 전송하는 단계는, 상기 버퍼에 입력된 제 1 영상 패킷들의 전체 크기가 상기 고정 비트레이트보다 작은 경우, 널 패킷(null packet)을 생성하여 상기 생성된 널 패킷과 상기 버퍼에 입력된 제 1 영상 패킷들을 상기 고정 비트레이트로 전송하는 단계를 포함할 수 있다.
상기 전송하는 단계는, 상기 버퍼에 입력된 제 1 영상 패킷들의 전체 크기가 상기 고정 비트레이트보다 큰 경우, 상기 제 1 영상 패킷들 중 일부의 제 1 영상 패킷을 제외한 나머지 제 1 영상 패킷들을 상기 고정 비트레이트로 전송하는 단계; 및 상기 제외된 일부의 제 1 영상 패킷과, 상기 제 1 영상 패킷 그룹에 인접한 제 2 영상 패킷 그룹에 포함된 제 2 영상 패킷들을 상기 고정 비트레이트로 함께 전송하는 단계를 포함할 수 있다.
상기 전송하는 단계는, 상기 일부의 제 1 영상 패킷과 상기 제 2 영상 패킷들의 전체 크기가 상기 고정 비트레이트보다 큰 경우, 상기 일부의 제 1 영상 패킷과, 상기 제 2 영상 패킷들 중 일부의 제 2 영상 패킷을 제외한 나머지 제 2 영상 패킷들을 상기 고정 비트레이트로 함께 전송하는 단계를 포함할 수 있다.
상기 변환 윈도우의 크기를 결정하는 단계는, 상기 획득된 영상 패킷들의 PCR(program clock reference) 필드를 참조하여 상기 단위 시간마다 재생되어야 할 영상 패킷 그룹들 각각의 크기를 결정하는 단계를 포함할 수 있다.
상기 변환 윈도우의 크기는, {(영상 패킷 그룹들 각각의 크기 중 최대 크기 - 영상 패킷 그룹들 각각의 크기 중 최소 크기) × 10 / 고정 비트레이트} × (영상 패킷 그룹 각각에 포함된 영상 패킷들 중 고정 비트레이트를 초과하게 하는 영상 패킷들의 전체 개수) + 고정 비트레이트 / (단일 영상 패킷의 크기 × 8)에 의해 결정될 수 있다.
상기 버퍼에 입력하는 단계는, 상기 제 1 영상 패킷들 각각을 상기 버퍼에 입력할 때마다, 버퍼 카운트를 하나씩 증가시키는 단계를 포함하고, 상기 전송하는 단계는, 상기 버퍼에 입력된 제 1 영상 패킷들 각각을 전송할 때마다, 상기 버퍼 카운트를 하나씩 감소시키는 단계를 포함할 수 있다.
본 발명의 다른 실시예에 따른 영상 패킷의 변환 방법은,
가변 비트레이트로 부호화된 영상 패킷들을 고정 비트레이트의 영상 패킷들로 변환하는 장치에 있어서, 상기 가변 비트레이트로 부호화된 영상 패킷들을 획득하는 영상 패킷 획득부; 단위 시간마다 재생되어야 할 영상 패킷 그룹들 각각의 크기에 기초하여, 변환 윈도우의 크기를 결정하는 결정부; 상기 영상 패킷 그룹들 중 제 1 영상 패킷 그룹의 크기와 상기 변환 윈도우의 크기를 비교하는 비교부; 상기 제 1 영상 패킷 그룹의 크기가 상기 변환 윈도우의 크기를 초과하지 않는 경우, 상기 제 1 영상 패킷 그룹에 포함된 제 1 영상 패킷들을 버퍼에 입력하는 버퍼 제어부; 및 상기 버퍼에 입력된 제 1 영상 패킷들을 기 설정된 고정 비트레이트(CBR: constant bit rate)로 전송하는 전송부를 포함할 수 있다.
본 발명의 일 실시예에 따른 영상 패킷의 변환 장치 및 방법은 가변 비트레이트로 부호화된 영상 패킷을 적은 자원을 이용하여 고정 비트레이트의 영상 패킷으로 변환할 수 있다.
또한, 본 발명의 일 실시예에 따른 영상 패킷의 변환 장치 및 방법은 가변 비트레이트로 부호화된 영상 패킷의 손실 및 영상 재생의 지연을 최소화할 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 패킷의 변환 장치의 구성을 도시하는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 영상 패킷의 변환 장치가 획득하는 가변 비트레이트로 부호화된 영상 패킷들을 도시하는 도면이다.
도 3은 가변 비트레이트로 부호화된 영상 패킷의 구조를 도시하는 도면이다.
도 4(a)는 가변 비트레이트로 부호화된 영상 패킷을 버퍼에 입력하는 방법을 설명하기 위한 도면이고, 도 4(b)는 가변 비트레이트로 부호화된 영상 패킷을 버퍼에 입력하는 다른 방법을 설명하기 위한 도면이다.
도 5(a)는 버퍼에 입력된 영상 패킷을 전송하는 방법을 설명하기 위한 도면이고, 도 5(b)는 버퍼에 입력된 영상 패킷을 전송하는 다른 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 다른 실시예에 따른 영상 패킷의 변환 방법의 순서를 도시하는 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 실시예에서 사용되는 '부'라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부'는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부'들로 결합되거나 추가적인 구성요소들과 '부'들로 더 분리될 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 패킷의 변환 장치(100)의 구성을 도시하는 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 영상 패킷의 변환 장치(100)는 영상 패킷 획득부(110), 결정부(120), 비교부(130), 버퍼 제어부(140), 버퍼(150) 및 전송부(160)를 포함할 수 있다.
영상 패킷 획득부(110)는 가변 비트레이트(VBR: variable bit rate)로 부호화된 영상 패킷들을 획득한다. 영상 패킷 획득부(110)는 가변 비트레이트로 부호화된 영상 패킷들을 외부 장치로부터 수신할 수도 있고, 메모리부(미도시)에 저장된 영상 패킷들을 획득할 수도 있다. 가변 비트레이트로 부호화된 영상 패킷들은 재생되어야 할 순서가 기 설정될 수 있고, 상기 영상 패킷들은 단위 시간 동안 재생되어야 할 복수의 영상 패킷 그룹들로 구분될 수 있다.
결정부(120)는 영상 패킷 그룹들 각각의 크기에 기초하여 변환 윈도우의 크기를 결정한다. 변환 윈도우의 크기는 해당 변환 윈도우에 포함될 수 있는 영상 패킷들의 개수로 계산될 수 있다. 변환 윈도우의 크기를 결정하는 방법에 대해서는 도 2 및 도 3을 참조하여 후술한다.
비교부(130)는 영상 패킷 그룹들 중 제 1 영상 패킷 그룹의 크기와 변환 윈도우의 크기를 비교한다. 예를 들어, 비교부(130)는 재생 시작 시점으로부터 1초 내에 재생되어야 할 제 1 영상 패킷 그룹의 크기와 변환 윈도우의 크기를 비교할 수 있다.
버퍼 제어부(140)는 제 1 영상 패킷 그룹의 크기가 변환 윈도우의 크기를 초과하지 않는 경우, 제 1 영상 패킷 그룹에 포함된 제 1 영상 패킷들을 버퍼(150)에 입력한다. 또한, 버퍼 제어부(140)는 제 1 영상 패킷 그룹의 크기가 변환 윈도우의 크기를 초과하는 경우에는, 제 1 영상 패킷들 중 일부의 제 1 영상 패킷을 폐기하여, 폐기된 제 1 영상 패킷을 제외한 제 1 영상 패킷들만을 버퍼(150)에 입력할 수 있다. 즉, 버퍼 제어부(140)는 제 1 영상 패킷 그룹에 포함된 제 1 영상 패킷들 중 변환 윈도우의 크기를 초과하게 하는 제 1 영상 패킷을 폐기하고, 폐기된 제 1 영상 패킷을 제외한 나머지 제 1 영상 패킷들의 전체 크기가 변환 윈도우의 크기를 초과하지 않게 할 수 있다. 버퍼(150)는 FIFO(first in first out) 버퍼를 포함할 수 있다.
전송부(160)는 버퍼(150)에 입력된 제 1 영상 패킷들을 기 설정된 고정 비트레이트(CBR: constant bit rate)로 전송한다. 예를 들어, 전송부(160)는 제 1 영상 패킷들을 고정 비트레이트로 외부 장치로 전송할 수 있다.
전송부(160)는 버퍼(150)에 입력된 제 1 영상 패킷들의 전체 크기가 고정 비트레이트를 초과하는 경우, 제 1 영상 패킷들 전체를 한번에 전송하지 않고, 제 1 영상 패킷들의 일부만을 고정 비트레이트로 전송할 수 있다. 또한, 전송부(160)는 버퍼(150)에 입력된 제 1 영상 패킷들의 전체 크기가 고정 비트레이트보다 작은 경우, 제 1 영상 패킷들과 널 패킷을 고정 비트레이트로 전송할 수 있고, 구현예에 따라 제 1 영상 패킷들과 제 2 영상 패킷 그룹에 포함된 제 2 영상 패킷들을 고정 비트레이트로 전송할 수도 있다. 이에 대해서는 도 5(a) 및 도 5(b)를 참조하여 후술된다.
즉, 본 발명의 일 실시예에 따른 영상 패킷의 변환 장치(100)는 가변 비트레이트로 부호화된 영상 패킷들을 복호화하지 않고도 간단한 방법으로 영상 패킷들을 고정 비트레이트로 변환하여 전송할 수 있다.
또한, 본 발명의 일 실시예에 따른 영상 패킷의 변환 장치(100)는 변환 윈도우의 크기를 최적화시켜, 폐기되는 영상 패킷들의 개수와 영상 재생의 지연을 최소화한다. 만약, 변환 윈도우의 크기가 매우 작게 설정된다면 폐기되는 영상 패킷들의 개수는 많아질 것이다. 반대로, 변환 윈도우의 크기가 매우 크게 설정된다면 버퍼(150)에 입력되는 영상 패킷들의 개수가 많아지게 되고, 고정 비트레이트로 전송할 수 없는 영상 패킷들은 뒤로 밀려 계속적으로 영상의 지연이 발생하게 된다. 따라서, 폐기되는 영상 패킷들의 개수와 영상 재생의 지연을 최소화하기 위해서는 변환 윈도우의 크기를 최적화하는 것이 매우 중요하다.
이하에서는 도 2 및 도 3을 참조하여, 본 발명의 일 실시예에 따른 영상 패킷의 변환 장치(100)의 결정부(120)가 변환 윈도우의 크기를 결정하는 방법에 대해 설명한다.
도 2는 영상 패킷 획득부(110)가 획득한 가변 비트레이트로 부호화된 영상 패킷들을 도시하는 도면이다.
가변 비트레이트로 부호화된 영상 패킷들은 소정 단위 시간(D)마다 재생되어야 할 영상 패킷 그룹들로 구분될 수 있고, 각 영상 패킷 그룹의 크기는 서로 상이할 수 있다. 도 2를 보면, 첫 번째 단위 시간(D) 동안 재생되어야 할 제 1 영상 패킷 그룹(210)에 포함된 제 1 영상 패킷들의 개수는 9개이고, 두 번째 단위 시간(D) 동안 재생되어야 할 제 2 영상 패킷 그룹(220)에 포함된 제 2 영상 패킷들의 개수는 5개인 것을 알 수 있다.
각 영상 패킷 그룹의 크기는 영상 패킷의 PCR(program clock reference) 필드를 참조하여 확인할 수 있다.
도 3은 가변 비트레이트로 부호화된 영상 패킷의 구조를 도시하는 도면이다. 도 3은 MPEG 2 TS 패킷(300)을 도시하는 도면이며, TS 패킷(300)은 헤더(310)와 페이로드(320)로 구성되고, 패킷(300)의 크기는 188 바이트로 고정되어 있다. 이 중 헤더(310)의 크기는 최소 8 바이트에서 150 바이트 이상의 크기로 가변될 수 있다.
도 3에 도시된 PCR 필드(312)는 해당 패킷(300)이 재생되어야 할 시간을 나타내는 값으로서, PCR 필드(312)는 모든 TS 패킷(300)들에 포함되지 않고, 해당 단위 시간(D)을 대표하는 TS 패킷(300)에만 포함될 수 있다. 즉, 도 2의 제 1 영상 패킷 그룹(210)에 포함된 제 1 영상 패킷들 중 맨 아래 위치한 영상 패킷(212)에만 PCR 필드(312)가 포함될 수 있다. 한편, 도 3에 도시된 TS 패킷(300)에 포함된 다른 필드들은 MPEG 2 관련 규격에 정의되어 있는바, 본 명세서에서는 상세한 설명을 생략한다.
결정부(120)는 가변 비트레이트로 부호화된 영상 패킷들의 PCR 필드(312)를 참조하여, 소정 단위 시간(D)마다 재생되어야 할 영상 패킷 그룹의 크기를 결정할 수 있다. 예를 들어, 도 2에 도시된 제 1 영상 패킷 그룹(210)에 포함된 영상 패킷의 개수는 9개이므로, 결정부(120)는 제 1 영상 패킷 그룹의 크기를 "9× 단일 영상 패킷의 크기"로 결정할 수 있다. 다만, 결정부(120)가 PCR 필드(312)를 참조하여 영상 패킷 그룹의 크기를 결정하는 것은 하나의 예시일 뿐이며, 결정부(120)는 TS 패킷(300)의 PCR 필드(312)뿐만 아니라, 다른 규격에 의해 생성된 패킷에 포함되어 있는 재생 시간 정보를 참조하여 영상 패킷 그룹의 크기를 결정할 수도 있다.
다음으로, 결정부(120)는 결정된 영상 패킷 그룹 각각의 크기에 기초하여 변환 윈도우의 크기를 결정할 수 있는데, 구체적으로 아래의 수학식 1을 이용하여 결정할 수 있다.
[수학식 1]
변환 윈도우의 크기 = {(영상 패킷 그룹들 각각의 크기 중 최대 크기 - 영상 패킷 그룹들 각각의 크기 중 최소 크기) × 10 / 고정 비트레이트} × (영상 패킷 그룹 각각에 포함된 영상 패킷들 중 고정 비트레이트를 초과하게 하는 영상 패킷들의 전체 개수) + 고정 비트레이트 / (단일 영상 패킷의 크기 × 8)
상기 수학식 1에서 "고정 비트레이트를 초과하는 크기를 갖는 영상 패킷 그룹에 포함된 영상 패킷들 중 고정 비트레이트를 초과하게 하는 영상 패킷들의 개수"는, 예를 들어, 변환 윈도우의 크기가 영상 패킷 5개로 결정된 경우, 도 2에서 제 1 영상 패킷 그룹(210)에서 5개의 영상 패킷을 제외한 제 1 영상 패킷의 개수인 4개, 제 3 영상 패킷 그룹(230)에서 5개의 영상 패킷을 제외한 제 3 영상 패킷의 개수인 5개, 제 4 영상 패킷 그룹(240)에서 5개의 영상 패킷을 제외한 제 4 영상 패킷의 개수인 3개, 제 5 영상 패킷 그룹(250)에서 5개의 영상 패킷을 제외한 제 5 영상 패킷의 개수인 1개, 제 6 영상 패킷 그룹(260)에서 5개의 영상 패킷을 제외한 제 6 영상 패킷의 개수인 1개 및 제 7 영상 패킷 그룹(270)에서 5개의 영상 패킷을 제외한 제 6 영상 패킷의 개수인 5개의 총합인 19가 될 수 있다.
또한, 수학식 1에서 "고정 비트레이트 / (단일 영상 패킷의 크기 × 8)"은 고정 비트레이트로 전송할 수 있는 영상 패킷의 개수를 의미하므로, 본 발명의 일 실시예에 따른 영상 패킷의 변환 장치(100)는 고정 비트레이트로 전송할 수 있는 영상 패킷의 개수를 기초로 영상 패킷 그룹들 각각의 크기에 기초하여 변환 윈도우의 크기를 결정하므로 영상 패킷 그룹들의 크기에 최적화된 변환 윈도우의 크기를 결정할 수 있다.
도 4(a)는 가변 비트레이트로 부호화된 영상 패킷을 버퍼(430)에 입력하는 방법을 설명하기 위한 도면이고, 도 4(b)는 가변 비트레이트로 부호화된 영상 패킷을 버퍼(430)에 입력하는 다른 방법을 설명하기 위한 도면이다.
먼저, 도 4(a)를 보면, 변환 윈도우(420)의 크기는 총 9개의 영상 패킷의 크기와 동일하게 설정된 것을 알 수 있다.
비교부(130)는 변환 윈도우(420)의 크기와 제 1 영상 패킷 그룹(410)의 크기를 비교한다. 버퍼 제어부(140)는 변환 윈도우(420)의 크기가 제 1 영상 패킷 그룹(410)의 크기보다 큰 경우, 제 1 영상 패킷 그룹(410)에 포함된 제 1 영상 패킷들 전체를 버퍼(430)에 입력한다. 도 4(a)의 버퍼(430)에는 제 1 영상 패킷들, 즉, 8개의 영상 패킷이 입력된 것을 알 수 있다. 전송부(160)는 버퍼(430)에 입력된 제 1 영상 패킷들을 고정 비트레이트로 전송한다.
다음으로, 도 4(b)를 참조하면, 제 1 영상 패킷 그룹(410)에 포함된 제 1 영상 패킷들의 개수가 10개인 것을 알 수 있고, 이는 변환 윈도우(420)의 크기보다 크다. 따라서, 버퍼 제어부(140)는 총 10개의 제 1 영상 패킷들 중 변환 윈도우(420)의 크기를 초과하는 제 1 영상 패킷(412)을 폐기하고, 나머지 제 1 영상 패킷들만을 버퍼(430)에 입력한다. 버퍼(430)에는 제 1 영상 패킷들 중 폐기된 제 1 영상 패킷(412)을 제외한 8개의 제 1 영상 패킷들만이 입력된 것을 알 수 있다. 전송부(160)는 버퍼(430)에 입력된 제 1 영상 패킷들을 고정 비트레이트로 전송한다.
도 5(a)는 버퍼(430)에 입력된 영상 패킷을 전송하는 방법을 설명하기 위한 도면이고, 도 5(b)는 버퍼(430)에 입력된 영상 패킷을 전송하는 다른 방법을 설명하기 위한 도면이다. 이하에서는, 전송부(160)는 기 설정된 비트레이트로서, 단위 시간 동안 5개의 영상 패킷을 전송할 수 있는 것으로 가정한다.
도 5(a)에 도시된 바와 같이, 제 1 영상 패킷 그룹(410)에 포함된 제 1 영상 패킷들의 개수가 3개이고, 3개의 제 1 영상 패킷들이 모두 버퍼(430)에 입력된 경우, 전송부(160)는 단위 시간 동안 총 5개의 영상 패킷들을 전송할 수 있는바, 2개의 널(null) 패킷을 생성하여 2개의 널 패킷과 3개의 제 1 영상 패킷들을 함께 전송할 수 있다. 구현예에 따라서는, 전송부(160)는 3개의 제 1 영상 패킷들과 뒤따라 버퍼(430)에 입력되는 2개의 제 2 영상 패킷들을 함께 전송할 수도 있다.
또한, 도 5(b)에 도시된 바와 같이, 만약, 버퍼(430)에 입력된 제 1 영상 패킷들의 개수가 5개를 초과하는 경우, 전송부(160)는 제 1 영상 패킷들 중 5개의 제 1 영상 패킷들(414)만을 고정 비트레이트로 전송하고, 나머지 3개의 제 1 영상 패킷들(416)은 전송하지 않는다. 다음으로, 제 2 영상 패킷 그룹(440)에 포함된 제 2 영상 패킷들이 버퍼(430)에 입력된 경우, 전송부(160)는 3개의 제 1 영상 패킷들(416)과 2개의 제 2 영상 패킷들(442)을 다음 단위 시간 동안 고정 비트레이트로 함께 전송할 수도 있다. 또한, 구현예에 따라, 전송부(160)는 3개의 제 1 영상 패킷들(416)과 2개의 널 패킷을 다음 단위 시간 동안 고정 비트레이트로 함께 전송할 수도 있다.
전술한 바와 같이, 변환 윈도우(420)의 크기가 매우 크면, 버퍼(430)에 입력되는 영상 패킷들의 개수가 많아지게 되고, 전송부(160)가 전송할 수 없는 영상 패킷들은 계속적으로 뒤로 밀리게 되어 영상이 지연되는 현상이 발생한다. 따라서, 변환 윈도우(420)의 크기를 최적화하는 것이 영상 지연을 방지하는 중요한 요소가 된다.
한편, 버퍼 제어부(140)는 제 1 영상 패킷들 각각을 버퍼(430)에 입력할 때마다, 버퍼 카운트를 하나씩 증가시키고, 전송부(160)에 의해 버퍼(430)에 입력된 제 1 영상 패킷들 각각이 전송될 때마다, 버퍼 카운트를 하나씩 감소시켜, 영상 패킷들이 버퍼(430)로 계속적으로 입력됨에 따라 버퍼(430)의 용량이 초과되는 것을 방지할 수 있다.
도 6은 본 발명의 다른 실시예에 따른 영상 패킷의 변환 방법의 순서를 도시하는 순서도이다. 도 6을 참조하면, 본 발명의 다른 실시예에 따른 영상 패킷의 변환 방법은 도 1에 도시된 영상 패킷의 변환 장치(100)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라 하더라도 도 1에 도시된 영상 패킷의 변환 장치(100)에 관하여 이상에서 기술된 내용은 도 6의 영상 패킷의 변환 방법에도 적용됨을 알 수 있다.
S610 단계에서, 영상 패킷의 변환 장치(100)는 가변 비트레이트로 부호화된 영상 패킷들을 획득한다.
S620 단계에서, 영상 패킷의 변환 장치(100)는 단위 시간마다 재생되어야 할 영상 패킷 그룹들 각각의 크기에 기초하여, 변환 윈도우의 크기를 결정한다.
S630 단계에서, 영상 패킷의 변환 장치(100)는 제 1 영상 패킷 그룹의 크기와 변환 윈도우의 크기를 비교한다.
S640 단계에서, 영상 패킷의 변환 장치(100)는 제 1 영상 패킷 그룹의 크기가 변환 윈도우의 크기를 초과하는지를 판단한다.
S650 단계에서, 영상 패킷의 변환 장치(100)는 제 1 영상 패킷 그룹의 크기가 변환 윈도우의 크기보다 작은 경우, 제 1 영상 패킷 그룹에 포함된 제 1 영상 패킷들 전체를 버퍼에 입력한다.
S660 단계에서, 영상 패킷의 변환 장치(100)는 제 1 영상 패킷 그룹의 크기가 변환 윈도우의 크기보다 큰 경우, 제 1 영상 패킷들 중 일부의 제 1 영상 패킷을 폐기하고, S670 단계에서, 제 1 영상 패킷들 중 폐기된 제 1 영상 패킷들을 제외한 나머지 제 1 영상 패킷들만을 버퍼에 입력한다.
S680 단계에서, 영상 패킷의 변환 장치(100)는 버퍼에 입력된 제 1 영상 패킷들을 고정 비트레이트로 전송한다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이상과 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 영상 패킷의 변환 장치
110: 영상 패킷 획득부
120: 결정부
130: 비교부
140: 버퍼 제어부
150: 버퍼
160: 전송부

Claims (9)

  1. 가변 비트레이트(VBR: variable bit rate)로 부호화된 영상 패킷들을 획득하는 단계;
    단위 시간마다 재생되어야 할 영상 패킷 그룹들 각각의 크기에 기초하여, 변환 윈도우의 크기를 결정하는 단계;
    상기 영상 패킷 그룹들 중 제 1 영상 패킷 그룹의 크기와 상기 변환 윈도우의 크기를 비교하는 단계;
    상기 제 1 영상 패킷 그룹의 크기가 상기 변환 윈도우의 크기를 초과하지 않는 경우, 상기 제 1 영상 패킷 그룹에 포함된 제 1 영상 패킷들을 버퍼에 입력하는 단계; 및
    상기 버퍼에 입력된 제 1 영상 패킷들을 기 설정된 고정 비트레이트(CBR: constant bit rate)로 전송하는 단계를 포함하는 것으로,
    상기 버퍼에 입력하는 단계는,
    상기 제 1 영상 패킷 그룹의 크기가 상기 변환 윈도우의 크기를 초과하는 경우, 상기 제 1 영상 패킷들 중 일부의 제 1 영상 패킷을 폐기하고, 상기 폐기된 제 1 영상 패킷을 제외한 나머지 제 1 영상 패킷들을 상기 버퍼에 입력하는 단계를 더 포함하는 것을 특징으로 하는 영상 패킷의 변환 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 전송하는 단계는,
    상기 버퍼에 입력된 제 1 영상 패킷들의 전체 크기가 상기 고정 비트레이트보다 작은 경우, 널 패킷(null packet)을 생성하여 상기 생성된 널 패킷과 상기 버퍼에 입력된 제 1 영상 패킷들을 상기 고정 비트레이트로 전송하는 단계를 포함하는 것을 특징으로 하는 영상 패킷의 변환 방법.
  4. 제1항에 있어서,
    상기 전송하는 단계는,
    상기 버퍼에 입력된 제 1 영상 패킷들의 전체 크기가 상기 고정 비트레이트보다 큰 경우, 상기 제 1 영상 패킷들 중 일부의 제 1 영상 패킷을 제외한 나머지 제 1 영상 패킷들을 상기 고정 비트레이트로 전송하는 단계; 및
    상기 제외된 일부의 제 1 영상 패킷과, 상기 제 1 영상 패킷 그룹에 인접한 제 2 영상 패킷 그룹에 포함된 제 2 영상 패킷들을 상기 고정 비트레이트로 함께 전송하는 단계를 포함하는 것을 특징으로 하는 영상 패킷의 변환 방법.
  5. 제4항에 있어서,
    상기 전송하는 단계는,
    상기 일부의 제 1 영상 패킷과 상기 제 2 영상 패킷들의 전체 크기가 상기 고정 비트레이트보다 큰 경우, 상기 일부의 제 1 영상 패킷과, 상기 제 2 영상 패킷들 중 일부의 제 2 영상 패킷을 제외한 나머지 제 2 영상 패킷들을 상기 고정 비트레이트로 함께 전송하는 단계를 포함하는 것을 특징으로 하는 영상 패킷의 변환 방법.
  6. 제1항에 있어서,
    상기 변환 윈도우의 크기를 결정하는 단계는,
    상기 획득된 영상 패킷들의 PCR(program clock reference) 필드를 참조하여 상기 단위 시간마다 재생되어야 할 영상 패킷 그룹들 각각의 크기를 결정하는 단계를 포함하는 것을 특징으로 하는 영상 패킷의 변환 방법.
  7. 가변 비트레이트(VBR: variable bit rate)로 부호화된 영상 패킷들을 획득하는 단계;
    단위 시간마다 재생되어야 할 영상 패킷 그룹들 각각의 크기에 기초하여, 변환 윈도우의 크기를 결정하는 단계;
    상기 영상 패킷 그룹들 중 제 1 영상 패킷 그룹의 크기와 상기 변환 윈도우의 크기를 비교하는 단계;
    상기 제 1 영상 패킷 그룹의 크기가 상기 변환 윈도우의 크기를 초과하지 않는 경우, 상기 제 1 영상 패킷 그룹에 포함된 제 1 영상 패킷들을 버퍼에 입력하는 단계; 및
    상기 버퍼에 입력된 제 1 영상 패킷들을 기 설정된 고정 비트레이트(CBR: constant bit rate)로 전송하는 단계를 포함하는 것으로,
    상기 변환 윈도우의 크기는,
    {(영상 패킷 그룹들 각각의 크기 중 최대 크기 - 영상 패킷 그룹들 각각의 크기 중 최소 크기) × 10 / 고정 비트레이트} × (영상 패킷 그룹 각각에 포함된 영상 패킷들 중 고정 비트레이트를 초과하게 하는 영상 패킷들의 전체 개수) + 고정 비트레이트 / (단일 영상 패킷의 크기 × 8)
    에 의해 결정되는 것을 특징으로 하는 영상 패킷의 변환 방법.
  8. 제1항에 있어서,
    상기 버퍼에 입력하는 단계는,
    상기 제 1 영상 패킷들 각각을 상기 버퍼에 입력할 때마다, 버퍼 카운트를 하나씩 증가시키는 단계를 포함하고,
    상기 전송하는 단계는,
    상기 버퍼에 입력된 제 1 영상 패킷들 각각을 전송할 때마다, 상기 버퍼 카운트를 하나씩 감소시키는 단계를 포함하는 것을 특징으로 하는 영상 패킷의 변환 방법.
  9. 가변 비트레이트로 부호화된 영상 패킷들을 고정 비트레이트의 영상 패킷들로 변환하는 장치에 있어서,
    상기 가변 비트레이트로 부호화된 영상 패킷들을 획득하는 영상 패킷 획득부;
    단위 시간마다 재생되어야 할 영상 패킷 그룹들 각각의 크기에 기초하여, 변환 윈도우의 크기를 결정하는 결정부;
    상기 영상 패킷 그룹들 중 제 1 영상 패킷 그룹의 크기와 상기 변환 윈도우의 크기를 비교하는 비교부;
    상기 제 1 영상 패킷 그룹의 크기가 상기 변환 윈도우의 크기를 초과하지 않는 경우, 상기 제 1 영상 패킷 그룹에 포함된 제 1 영상 패킷들을 버퍼에 입력하는 버퍼 제어부; 및
    상기 버퍼에 입력된 제 1 영상 패킷들을 기 설정된 고정 비트레이트(CBR: constant bit rate)로 전송하는 전송부를 포함하는 것으로,
    상기 버퍼 제어부는,
    상기 제 1 영상 패킷 그룹의 크기가 상기 변환 윈도우의 크기를 초과하는 경우, 상기 제 1 영상 패킷들 중 일부의 제 1 영상 패킷을 폐기하고, 상기 폐기된 제 1 영상 패킷을 제외한 나머지 제 1 영상 패킷들을 상기 버퍼에 입력하는 것을 특징으로 하는 영상 패킷의 변환 장치.
KR1020130162448A 2013-12-24 2013-12-24 영상 패킷의 변환 장치 및 방법 KR102174267B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130162448A KR102174267B1 (ko) 2013-12-24 2013-12-24 영상 패킷의 변환 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130162448A KR102174267B1 (ko) 2013-12-24 2013-12-24 영상 패킷의 변환 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20150074556A KR20150074556A (ko) 2015-07-02
KR102174267B1 true KR102174267B1 (ko) 2020-11-04

Family

ID=53787652

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130162448A KR102174267B1 (ko) 2013-12-24 2013-12-24 영상 패킷의 변환 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102174267B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011109355A (ja) * 2009-11-17 2011-06-02 Hitachi Kokusai Electric Inc デジタル放送装置、デジタル放送方法、および、デジタル放送プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3231941B2 (ja) * 1994-05-06 2001-11-26 日本電信電話株式会社 輻輳防止方法およびパケット通信システム
TW303570B (ko) * 1995-09-29 1997-04-21 Matsushita Electric Ind Co Ltd
AU761704B2 (en) * 1998-01-14 2003-06-05 Skystream Corporation Video program bearing transport stream remultiplexer
KR100584381B1 (ko) * 2004-02-04 2006-05-26 삼성전자주식회사 엠펙-2 데이터 전송속도 조절 방법 및 그 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011109355A (ja) * 2009-11-17 2011-06-02 Hitachi Kokusai Electric Inc デジタル放送装置、デジタル放送方法、および、デジタル放送プログラム

Also Published As

Publication number Publication date
KR20150074556A (ko) 2015-07-02

Similar Documents

Publication Publication Date Title
US8837586B2 (en) Bandwidth-friendly representation switching in adaptive streaming
US9781477B2 (en) System and method for low-latency multimedia streaming
US8281347B2 (en) System and method of receiving over-the-air television content
JP2008523738A (ja) 高解像度画像フレームバッファ及び低解像度画像フレームバッファを有するメディアプレーヤ
JP2006050604A (ja) Avデータ受信時のバッファ量をコンテンツ属性によって弾力的に調節する方法及び装置
WO2018166320A1 (zh) 一种频道切换方法及其装置
US9749379B2 (en) Apparatus and method for receiving video service in hybrid network
US11743535B2 (en) Video fragment file processing
CN105681139A (zh) 用于传输自适应调整的文件的设备和方法
US20110103771A1 (en) Apparatus and method for recording partial encryption of broadcast program
KR101519000B1 (ko) 모듈레이터 내장형 인코더 방송장비 및 자동전환 설정 방법
US20170171586A1 (en) Method and device for the remote recording of video programs
KR102174267B1 (ko) 영상 패킷의 변환 장치 및 방법
JP4178477B2 (ja) データ送信装置
US10313708B1 (en) Distributed upload of television content
US10218626B2 (en) Data processing device, receiving device, data processing method, and program with dynamic priority order
CN113747209A (zh) 多路ts流节目的重组方法及装置
EP1615439A2 (en) Network receiving apparatus and network transmitting apparatus
US20230252110A1 (en) Efficient media stream encryption providing full content protection
US8837916B2 (en) Apparatus and method to provide adaptive recording
JP2006229618A (ja) 映像通信システム、映像通信装置、プログラム、及び映像通信方法
KR20210157653A (ko) Iptv 채널 변경을 위한 프리페칭 장치 및 방법
JP2007053504A (ja) 映像通信装置、映像通信方法、及びプログラム
KR20230022061A (ko) 디코딩 장치 및 그의 동작 방법
JP2007318258A (ja) コンテンツ送信装置

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