KR20030061809A - 다른 트랜스코딩 채널 사이에 대역폭 할당을 갖는 통계적리멀티플렉싱 - Google Patents

다른 트랜스코딩 채널 사이에 대역폭 할당을 갖는 통계적리멀티플렉싱 Download PDF

Info

Publication number
KR20030061809A
KR20030061809A KR10-2003-7004241A KR20037004241A KR20030061809A KR 20030061809 A KR20030061809 A KR 20030061809A KR 20037004241 A KR20037004241 A KR 20037004241A KR 20030061809 A KR20030061809 A KR 20030061809A
Authority
KR
South Korea
Prior art keywords
transcoding
video frame
frame
bit rate
data
Prior art date
Application number
KR10-2003-7004241A
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 제너럴 인스트루먼트 코포레이션
Publication of KR20030061809A publication Critical patent/KR20030061809A/ko

Links

Classifications

    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • H04N19/166Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
    • 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/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/2365Multiplexing of several video streams
    • H04N21/23655Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 비디오 데이터를 포함하는 복수개의 채널을 처리하기 위한 효율적인 통계적 리멀티플렉서에 관한 것이다. 일 관점에서 보면, 비디오 데이터의 트랜스코딩이 통계적 정보가 데이터로부터 얻어지는 동안 지연된다. 데이터를 위한 비트율 요구 파라미터가 통계적 정보에 기초하여 결정되고, 비디오 데이터가 지연 후의 각기 비트율 요구 파라미터에 기초하여 트랜스코드된다(110,112,200,300). 다른 관점에서 보면, 비디오 프레임을 위한 트랜스코딩 비트율이 비트율의 더 밀접한 감시를 위해 연속되는 간격에서 여러번 갱신된다. 트랜스코딩 비트율을 위한, 예컨대 버퍼 오버플로우와 언더플로우 보호를 위한, 최소 및 최대 한도가 역시 각 간격에서 갱신된다. 또 다른 관점에서 보면, 프레임에서 매크로블록의 트랜스코드되기 전 양자화 크기는 프레임 내에서 트랜스코드되기 전 데이터의 양과 프레임을 위한 타겟의, 트랜스코드된 후 데이터의 양의 비율에 기초하여 대응하는 트랜스코딩용 새로운 양자화 크기를 제공하기 위하여 축척화된다. 트랜스코딩 대역폭의 최소한의 양이 각 매크로블록에 할당됨을 보장하기 위하여 프레임의 부분들이 트랜스코드됨에 따라, 양자화 크기가 프레임의 다른 부분들을 위해서 조절된다.

Description

다른 트랜스코딩 채널 사이에 대역폭 할당을 갖는 통계적 리멀티플렉싱{Statistical Remultiplexing With Bandwidth Allocation Among Different Transcoding Channels}
일반적으로, 케이블 텔레비젼 네트워크 등에서 가입자 터미널(subscriber terminal)로 제공된 디지털 비디오 프로그램의 비트율(bit rate)을 조절할 필요가 있다. 예컨대, 제1신호그룹이 위성 전송을 통해 헤드엔드(headend)에 수신될 수 있다. 헤드엔드 오퍼레이터(operator)는 저장 매체 또는 로컬 실시간 공급(local live feed) 등의 로컬 소스로부터 프로그램(예컨대, 광고 또는 다른 내용)을 부가하는 동안 선택된 프로그램을 가입자에게 전달하기를 원할 수 있다. 부가적으로, 전체 가용 채널 대역폭 내에서 프로그램을 공급하는 것이 때때로 필요하다.
따라서, 압축되기 전(pre-compressed)의 비디오 비트 스트림(bit stream)을 특정한 비트율로 다시 압축함(re-compressing)으로써 처리하는 통계적 리멀티플렉서(statistical remultiplexer:stat remux) 또는 멀티 채널 트랜스코더(multi-channel transcoder)가 개발되어 왔다.
그러한 시스템에서, 많은 데이터 채널이 병렬로 배열된 프로세서에 의해 처리되었다. 각 프로세서는 전형적으로 다중 데이터 채널을 수용할 수 있다. 그럼에도 불구하고, 많은 계산을 필요로 하는 HDTV 등과 같은 상황에서, 단일 채널로부터의 데이터 일부가 다중 프로세서 사이에 할당될 수 있다. 또한, 전형적으로 고정된 트랜스코딩 대역폭이 하나 또는 여러 채널 그룹(통계적 리멀티플렉서 그룹)에 할당된다.
그러나, 한정된 처리율의 제한 하에서, 코드된 데이터의 이미지 질을 최적화하는 방식으로 채널을 트랜스코딩하기 위해 비트가 할당될 수 있도록 각 채널에 비트율 요구 파라미터(bit rate need parameter)를 제공하는 개선된 통계적 리멀티플렉서 시스템이 필요하다.
그 시스템은 원래 비트열의 프레임 비트 카운트(frame bit count)와 평균 양자화 크기값(average quantizer scale value) 등의 비트 스트림에서 얻은 통계적 정보로부터 비트율 요구 파라미터를 예측해야 한다. 이러한 시스템은 MPEG-2 비트 스트림과 호환성이 있어야 한다. 이러한 시스템은 원래 비트 스트림의 통계적 정보로부터 예측된 코딩 복잡성(coding complexity)에 기초하여 타겟(target) 출력 프레임 비트 카운트를 I와, P 및, B 프레임에 할당하여야 한다.
또한, 이 시스템은 비율 제어 프로세스(rate control process)가 출력에서 타겟 프레임 비트 카운트를 만족시킬 수 있도록 하기 위해 원래 비트 스트림의 매크로블록(macroblock) 비트 카운트와 양자화 크기값을 이용함으로써 한 프레임 내에 MPEG-2 매크로블록 처리를 수용할 수 있어야 한다.
이러한 시스템은 할당된 트랜스코딩 비트율의 주기적인 조정을 한 비디오 프레임 내에서 여러번 제공하여야 한다.
부가적으로, 이 시스템은 원래의, 트랜스코딩 전의 양자화 크기값에 기초해서 프레임 내의 매크로블록을 트랜스코딩하기 위한 양자화 크기값을 얻어야 한다. 양자화 크기값은 각 매크로블록이 트랜스코딩을 위한 최소 비트수에 할당됨을 보장하기 위해 프레임의 트랜스코딩이 진행됨에 따라 조절되어야 한다.
본 발명은 상기와 같은 그리고 다른 장점을 갖는 시스템을 제공한다.
본 발명은 디지털 비디오 신호를 트랜스코딩하기 위한 통계적 리멀티플렉서에 관한 것이다.
도 1은 본 발명에 따른 통계적 리멀티플렉서와, 양자화 레벨 프로세서(QLP)로 입력되거나 출력되는 데이터 흐름을 나타낸 도면,
도 2는 본 발명에 따라 사용되는 단순화된 트랜스코더를 나타낸 도면,
도 3은 본 발명에 따라 사용되는 움직임 보상 없이 재양자화를 수행하는 트랜스코더를 나타낸 도면,
도 4는 본 발명에 따른 끝과 끝 사이의 통계적 리멀티플렉서 처리 지연을 나타낸 도면,
도 5는 본 발명에 따른 트랜스코더 비디오 버퍼링 검증기(VBV) 모델을 나타낸 도면,
도 6은 본 발명에 따른 트랜스코더 비율 타이밍을 나타낸 도면,
도 7은 본 발명에 따른 QLP와 트랜스코더 처리 요소들(TPEs) 사이의 통신 타이밍을 나타낸 도면이다.
본 발명은 디지털 비디오 신호를 트랜스코딩하기 위한 통계적 리멀티플렉서에 관한 것이다.
본 발명의 일 관점에서 보면, 비트율 요구 파라미터가 통계적 리멀티플렉싱을 위해서 MPEG-2 비트 스트림과 같은 원래 비트 스트림의 프레임 비트 카운트와 평균 매크로블록 양자화 크기값(한 프레임 동안 평균된)으로부터 예측된다. 예컨대 5개 프레임의 룩어헤드(lookahead)가 제공된다.
본 발명은 전체 가용 대역폭을 트랜스코딩 채널들 사이에 할당한다.
본 발명은 원래 비트 스트림의 프레임 비트 카운트와 평균 매크로블록 양자화 크기(각 입력 프레임 동안 평균된)로부터 예측된 코딩 복잡성에 기초하여 출력 프레임 비트 카운트의 타겟을 I와, P 및, B 프레임에 할당한다.
또한, 본 발명의 다른 관점에서 보면, 한 프레임 내에서 MPEG-2 매크로블록 프로세싱 동안, 원래 비트 스트림의 매크로블록 비트 카운트와 양자화 크기값이 비율 제어 프로세스가 출력에서 타겟 프레임 비트 카운트를 만족시킬 수 있도록 하기위해 사용된다.
따라서, 본 발명은 비디오 데이터를 포함하는 다수개의 채널들에서 데이터를 처리하기 위한 효율적인 통계적 리멀티플렉서를 제공한다. 본 발명의 일 관점에서 보면, 비디오 데이터의 트랜스코딩은 통계적 정보가 데이터로부터 얻어지는 동안 지연된다. 데이터를 위한 비트율 요구 파라미터가 통계적 정보에 기초하여 결정되고, 비디오 데이터가 지연 후의 각 비트율 요구 파라미터에 기초하여 트랜스코드된다.
본 발명의 다른 관점에서 보면, 통계적 리멀티플렉서에서 비디오 프레임을 위한 트랜스코딩 비트율이 비트율의 더 밀접한 감시를 위해 연속적인 간격(successive interval)에서 복수번 갱신된다. 더욱이, 트랜스코딩 비트율을 위한 최소 및 최대 한도(bound)는 각 간격에서 갱신된다. 따라서, 프레임의 일부분이 첫번째 간격에서 트랜스코드되고, 이어서 트랜스코딩 비트율이 갱신되고, 이어서 프레임의 두번째 부분이 두번째 간격에서 트랜스코드되고, 이어서 트랜스코딩 비트율이 다시 갱신되고, 등등이다.
본 발명의 또 다른 관점에서 보면, 프레임에서 매크로블록의 트랜스코드되기 전 양자화 크기는 프레임 내에서 트랜스코드되기 전(pre-transcoding) 데이터의 양과 프레임을 위한 타겟의, 트랜스코드된 후(post-transcoding) 데이터의 양의 비율에 기초하여 대응하는 트랜스코딩용 새로운 양자화 크기를 제공하기 위하여 축척화된다. 또한, 트랜스코딩 대역폭의 최소한의 양이 각 매크로블록에 할당됨을 보장하기 위하여 부분들이 트랜스코드됨에 따라, 양자화 크기가 프레임의 다른 부분들을 위해서 조절된다.
상기에 대응하는 방법과 장치가 개시된다.
본 발명은 디지털 비디오 신호를 트랜스코딩하기 위한 통계적 리멀티플렉서에 관한 것이다.
다음과 같은 약자와 용어가 사용된다.
BW - 대역폭(Bandwidth)
DCT - 이산 코사인 변환(Discrete Cosine Transform)
DTS - 디코딩 시간 스탬프(Decoding Time Stamp)
ES - 기초 스트림(Elementary Stream)
FIFO - 선입 선출(First-In, First-Out)
KP - 커널 프로세서(Kernel Processor)
MTS - 엠펙 전송 스트림(MPEG Transport Stream)
PCI - 주변 요소 인터커넥트(Peripheral Component Interconnect)
PCR - 프로그램 클럭 참조(Program Clock Reference)
PES - 패킷화 기본 스트림(Packetized Elementary Stream)
PID - 프로그램 식별자(Program Identifier)
Q - 양자화(Quantization)
QLP - 양자화 레벨 프로세서(Quantization Level Processor)
SDRAM - 정적 동적 램(Static Dynamic Random Access Memory)
TP - 전송 패킷(Transport Packet)
TPE - 트랜스코더 코어 프로세싱 요소(Transcoder core Processing Element)
VLD - 가변 길이 디코딩(Variable-Length Decoding)
VLE - 가변 길이 인코딩(Variable-Length Encoding)
도 1은 본 발명에 따른 통계적 리멀티플렉서와, QLP로 입력되거나 출력되는 데이터 흐름을 도시한다.
통계적 리멀티플렉서(100)는 다수의 입력 전송 스트림을 수신하기 위한 그루머(groomer;105)를 포함한다. 다른 비디오 서비스에서의 대응하는 입력 전송 패킷이 다수개의 트랜스코더들(110, …, 112) 또는 TPE들(트랜스코딩 엔진) 중 하나에 제공된다. 일반적으로, 각 트랜스코더는 하나 또는 그 이상의 비디오 서비스(채널들)를 처리할 수 있다. 트랜스코드된 데이터가 PCI 버스(115)를 통해 대응하는 출력 전송 스트림을 모으는 멀티플렉서(mux;120)로 제공된다.
커널 프로세서(KP)는 그루머(105)와, TPE들(110, …, 112), QLP(130) 및, 멀티플렉서(120)를 배치한다.
특히, 멀티플렉서(120)는 SDRAM과 같은 메모리(132)를 갖는 QLP(130)로부터 제공된 전송 비트율에 응답한다. QLP는 이퀘이터 테크놀로지스 사(Equator Technologies, Inc.)의 MAPCA2000(300MHz) 미디어 프로세서와 같은 미디어 프로세서를 이용하여 구현될 수 있다. QLP(130)는 다음의 기능을 수행한다.
● 비디오 질을 최적화하고, 각 프레임이 트랜스코드되도록 타겟 프레임 크기를 결정하기 위해 가용 대역폭을 출력 비디오 서비스에 할당한다.
● 커널 프로세서로부터 구성(configuration) 파라미터를 수신한다.
● 커널 프로세서에 다시 동작 상태와 통계를 보고한다.
QLP는 PCI 버스(32 비트 @ 66MHz)를 통해 KP 및 TPE들과 통신한다. 메모리 블록이 프로세서 내의 통신을 위해 QLP의 SDRAM에 할당된다. 이러한 메모리 블록은 QLP에 의해 다른 프로세서와 "공유(shared)"된다.
QLP(130)로의 입력
● 구성 파라미터 및 명령 (소스 : KP(140))
● 비디오와, 관련된 오디오와, 데이터 입력 패킷율 정보 (소스 : TPE들(110, …,112))
● 트랜스코드될 입력 프레임의 통계 (소스 : TPE들)
● 입력 프레임의 타이밍 정보 (소스 : TPE들)
● 직전에 트랜스코드된 출력 프레임의 통계 (소스 : TPE들)
● 출력 프레임의 타이밍 정보 (소스 : TPE들)
● 트랜스코더 FIFO 레벨 (소스 : TPE들)
● 비디오가 아닌(non-video)(데이터) 입력 패킷율 정보 (소스 : Mux(120))
QLP(130)로부터의 출력
● 상태 및 통계 (목적지 : KP)
● TPE 서비스 배정 정보 (목적지 : KP)
● 전송 비트율 (목적지 : Mux)
● 트랜스코딩 타겟 프레임 크기 (목적지 : TPE)
● 버퍼 보호를 위한 최대 및 최소 프레임 크기 (목적지 : TPE)
● 프레임에 삽입될 최대 PCR 개수 (목적지 : TPE)
● TPE가 프레임을 통과할 것을 명령하는 플래그(flag) (목적지 : TPE)
1. 개요
트랜스코더(100)가 비디오 스트림을 필수적으로 디코딩 및 재인코딩(re-encoding)하지 않는다고 하더라도, 트랜스코딩 기능은 전체 디코드 및 재인코드를 모방할 수 있다. 본 발명에 따른 비율 제어 및 통계적 리멀티플렉서 시스템은 다음의 단계에 요약되어 있다. 세부사항은 다음 섹션에 기재된다.
1. 각 TPE(110, …,112)가 처리되고 있는 모든 비디오 채널의 전송 스트림을 입력한다. 이어서, 전송 스트림이 언패킷화되고, 비디오 디코더 버퍼가 모방된다. 룩어헤드 버퍼가 각 TPE에 의해서 다수의 미래 프레임을 저장하고 이러한 프레임으로부터 통계적 정보를 얻도록 이용된다. 특히, 모든 입력 프레임이 트랜스코드되도록, TPE가 평균 양자화 크기값과 입력 프레임의 비트 개수를 계산한다. 이러한 파라미터들이 QLP(130)에 의해서 그 프레임이 트랜스코드될 차례 전의 적어도 1.5 NTSC 프레임 시간인 예정된 시간에 입력 프레임을 위한 비트율 요구 파라미터를 계산하도록 사용된다. 특히, 비디오 채널에서 3:2 풀다운 포맷(pulldown format)을 사용할 수 있기 때문에, 코드된 프레임은 하나의 NTSC 프레임 시간(33.3ms) 또는 1.5 프레임 시간(50ms)이 될 수 있다. 우리는 프레임을 위한 트랜스코딩 비율 할당이 실제 트랜스코딩이 시작되기 전에 결정되는 것을 확인하기 위하여 더 긴 시간을 이용한다.
2. QLP(130)는 트랜스코딩 비트율을 주기적 간격 Tq동안에 TPE들에 할당하기 위하여 대역폭 할당 프로세스를 수행한다. 그것은 각 간격 Tq 동안 모든 비디오 채널에 대해서 트랜스코딩 비트율을 계산한다. 트랜스코딩 비트율은 QLP(130)에서 큐(queue)내에 저장되어 있고, 가장 가까운 Tq주기에 반올림된(rounded) 0.6초(0.5초 + 3 NTSC 프레임 주기) 지연된다. 하나의 NTSC 프레임 주기는 1/30 초이다. 비디오 채널의 트랜스코딩 비트율의 지연값은 전송 비트율이 되고, 멀티플렉서(120)에 의해 사용된다.
3. 프레임이 TPE의 룩어헤드 버퍼에 있는 동안, 프레임에 대한 평균 트랜스코딩 비트율이 트랜스코딩 후의 프레임의 예상된 크기인 타겟 프레임 크기의 초기값을 얻도록 사용된다. 이러한 초기 타겟 프레임 크기값은 QLP(130)의 출력 프레임 크기 큐(예컨대, 메모리(132))에 저장되고, 관련된 TPE가 프레임을 트랜스코드할 준비가 되었을 때 복구된다. 큐는 QLP의 메모리(132)에 의해서 구현될 수 있다.
4. 트랜스코더가 새로운 프레임을 트랜스코드할 준비가 되었을 때, 이전에 결정된 초기 타겟 프레임 크기값이 출력 프레임 크기 큐로부터 복구된다. 트랜스코더 버퍼의 현재 상태(풀니스(fullness))에 기초하여, 디코더 버퍼를 언더플로우(underflow)나 오버플로우(overflow)로부터 보호하기 위한 최대 및 최소 프레임 크기가 초기 타겟 프레임 크기의 한도를 정하기 위하여 계산된다.
5. 타겟 비트(타겟 프레임 크기)의 수가 입력 프레임의 비트의 수보다 크다면(또는 미리 결정된 허용치(tolerance) 내와 가깝다면-섹션 6.3 참조), 트랜스코딩의 목적이 프레임 내의 비트의 수를 감소시키는 것이기 때문에 이러한 프레임은 통과 모드(passthrough mode)로 트랜스코딩을 바이패스(bypass)한다. 이러한 상황은 입력 비트 스트림이 이미 최대한으로 압축되었을 때 발생할 수 있다. 프레임이 바이패스되면, 관련된 입력 기초 스트림은 다시 패킷화된다. 타겟 비트의 수가 입력 프레임의 비트 수 보다 작다면, 프레임은 비트 감소된다(bit-reduced)(트랜스코드된다). 비트 감소는 예컨대 간략화된 트랜스코더 구조(도 2) 또는 재양자화(도 3)를 통해 수행될 수 있다.
6. 트랜스코딩을 위한 각 매크로블록(또는 매크로블록의 그룹)용 양자화 크기가 프레임 당 타겟 비트의 수와 원래 양자화 크기에 기초하여 선택된다. 출력 양자화 크기가 입력 양자화 크기보다 커야(더 성긴(coarser)) 하는 조건이 만족되어야 한다.
7. 트랜스코딩 동안, TPE들은 특정한 슬롯을 그들이 출력하는 패킷의 PCR 필드(field)에 할당해야 한다. 필요한 것보다 더 많은 슬롯을 할당하는 것을 피하는 것이 중요하다. 왜냐하면 이것은 비트를 낭비하기 때문이다. 따라서, TPE에서 나가는 패킷이 생성되고 메모리, 예컨대 TPE FIFO 버퍼에 저장된다. 또한, QLP(130)는 프레임을 전송하는데 사용되는 시간, 따라서 PCR들을 삽입하는 시간을 예측하기 위하여 타겟 프레임 크기를 사용한다.
더욱이, PCR 슬롯이 MPEG2 시스템 표준 요구를 만족하기 위하여 적어도 0.1초 마다 생성된다.
8. 각 n*Tq주기에, 멀티플렉서(120)는 PCI 버스(115)를 통해 TPE들(110, …,112)로부터 각 채널에 배정된 패킷 수를 독출한다. "n"은 멀티플렉서(120)를 위한 디자인 파라미터이고, 어떠한 양의 정수도 가능하다. 이러한 패킷 배정은 트랜스코딩 비트율 할당의 지연된 버전(version)인 전송 비트율 할당과 동일하다. 즉, 비트율이 Tq주기 마다 멀티플렉서로 보내기 위해 많은 수의 패킷으로 변환된다.
9. 멀티플렉서(120)는 27 MHz 클럭의 매 m 틱 마다 전송 틱(tick)을 수신한다. 전송할 패킷이 PCR을 포함한다면, 멀티플렉서는 트랜스코더의 마스터 클럭(master clock)에 올바르게 동기화된 PCR 값을 제공하기 위하여 PCR 보정을 수행한다. 이것은 발명자가 "R. Nemiroff, V. Liu, S. Wu"이고, 2000년 9월 22일에 출원되고, "Mpeg 전송 스트림을 위한 프로그램 클럭 레퍼런스의 재생성"를 발명의 명칭으로 하여 함께 계류 중인 미국특허출원 제09/667,734호에 기재된 것과 같이 달성될 수 있다. 전송 패킷(들)이 PCI 버스(115)를 통해 멀티플렉서 프로세서에서 내보내어 진다. 전송 틱은 전송 패킷을 출력하기 위한 타이밍 간격을 나타낸다.
도 2는 본 발명에 따라 사용되는 단순화된 트랜스코더를 도시한다.
간단한(straightforward) 트랜스코더가 직렬접속된(cascaded) MPEG 디코더와 인코더가 될 수 있는데 반해, 트랜스코더는 계산을 감소시키는 간단한 디자인을 제공한다. 트랜스코더 구조(200)는 대부분의 연산을 DCT 영역에서 수행하고, 따라서 역(inverse) DCT와 움직임 보상 연산의 수가 감소된다. 더욱이, 움직임 벡터(motion vector)가 다시 계산되지 않기 때문에, 필요한 계산은 현저히 감소한다. 이러한 단순화된 구조는 낮은 계산 복잡성과 높은 융통성의 우수한 결합을 제공한다.
특히, 압축되기 전의 비디오 비트 스트림이 가변 길이 디코더(VLD;215)에 입력된다. 역양자화(dequantizer) 기능부(역(inverse) 양자화기)가 최초 양자화 스텝 크기 Q1을 이용하여 VLD(215)의 출력을 처리한다.
움직임 벡터(MV) 데이터는 VLD(215)로부터 움직임 보상 기능부(235)로 제공되는데, 움직임 보상 기능부는 픽셀 영역 데이터의 이전 프레임 버퍼(250) 및/또는 현재 프레임 버퍼(245)에 응답한다. DCT 기능부(270)는 MC 기능부(235)의 출력을 주파수 영역으로 변환하고, 결과를 가산기(adder;230)로 제공한다. 스위치(231)는 가산기(230) 또는 Q1 -1기능부(220)의 출력을 양자화 기능부 Q2(275)로 전달하는데, 양자화 기능부 Q2는 비트율을 감소시키기 위해 특히 더 성긴 레벨에서 데이터를 양자화한다. 이어서, 이것의 출력은 가산기(286)에서 스위치(231)의 출력과 합산하기 위하여 역 양자화 기능부 Q2 -1(282)에서 역 양자화된다. 가산기(286)의 출력은 IDCT 기능부(284)로 제공되고, IDCT 기능부의 출력은 프레임 버퍼들(245,250)로 제공된다.
가변 길이 인코더(VLE;280)는 감소된 비트율의 출력 비트 스트림으로 제공하기 위하여 양자화 기능부(275)의 출력을 코딩한다. 따라서, 트랜스코더의 출력 비트율은 Q2를 변화시킴으로써 조절된다.
도 3은 본 발명에 따라 사용되는 움직임 보상 없이 재양자화를 수행하는 트랜스코더(300)를 도시한다.
여기에서, 움직임 보상 없이 단지 재 양자화가 프레임에 적용된다. 일반적으로, IDCT 및 DCT 연산은 생략된다. 이러한 전략은 낮은 복잡도를 초래하지만, 출력 데이터에 약간의 아티팩트(artifact)를 야기한다. DCT 계수가 역 양자화되고(de-quantized), 이어서 재 양자화된다(re-quantized).
특히, VLD(410)와, 역 양자화기(420), 양자화기(430) 및, VLE(440)가 사용된다.
2. 끝과 끝 사이(end-to-end)의 프로세싱 지연
도 4는 본 발명에 따른 통계적 리멀티플렉서의 끝과 끝 사이의 처리 지연을 도시한다.
트랜스코더들 또는 TPE들(110) 중 하나의 예는 입력 전송 스트림을 버퍼링하는 MTS 버퍼(405)와, 전송 스트림에서 다른 서비스들의 기초 스트림들을 분리해서 출력하는 디멀티플렉서(410) 및, ES 스트림들을 저장하는 ES 버퍼(415)를 포함한다. ES 데이터는 예컨대 5개 프레임의 용량을 가지고, VLD 기능부(420)에서 가변 길이 디코드되고, 결과는 룩어헤드 지연 버퍼(425)에 제공된다. 버퍼(435)에서 한 프레임 지연된 후에, 프레임이 트랜스코드 기능부(440)에서 트랜스코드되고, 결과가 트랜스코드 버퍼(445)에 저장된다. 리멀티플렉서(450)는 트랜스코드 버퍼(445)로부터의 데이터와, 존재한다면, 전송 스트림 지연 버퍼(430)로부터의 데이터를 결합하고, 결과 전송 스트림은 광대역 통신 네트워크에서의 셋톱 박스(set-top box)와 같은 디코더(452)로 전달된다. 전송 스트림 지연 버퍼(430)는 앞에서 논의한 바와 같이 트랜스코드되지 않는 바이패스 프레임을 위해 사용된다. 바이패스 프레임은 트랜스코드되는 다른 채널들과의 동기를 유지하기 위하여 지연된다.
실제로 트랜스코더(110)의 출력 스트림이 대표(representative) 디코더(452)로 전달되는 전송 멀티플렉스를 형성하기 위해 다른 트랜스코더로부터의 다른 전송 스트림과 결합된다는 것을 주목해야 한다. 디코더(452)는 입력되는 데이터를 버퍼링하는 FIFO 버퍼(455)와, 예컨대 텔레비젼에서의 디스플레이와 같은 출력을 제공하기 위해 데이터를 디코드하는 디코딩 기능부(460)를 포함한다.
다른 구현에서 변할 수 있는, 예컨대 0.5 초의 버퍼 지연이 비디오 패킷에 의해 경험된다. 이것은 트랜스코딩(인코딩) 시간과 디코드 시간 사이의 지연이다. 이러한 지연은 트랜스코더(출력) 비디오 FIFO(445)와 디코더 FIFO(455)의 양자에서 발생한다. 버퍼 지연은 고정된다. 만일 트랜스코딩 시간이 지연된다면, 실제 트랜스코드 시간에서 디코드 시간은 단축된다. 그러나, 트랜스코드 "틱"에서 디코드 시간은 버퍼 지연에 의해 고정된다.
3. 버퍼 모델
도 5는 본 발명에 따른 트랜스코더 VBV 모델을 도시한다.
디코더(452)의 VBV 모델은 새로운 프레임을 트랜스코딩하기 전에 최대 및 최소 프레임 크기를 한정하기 위해 사용된다. 트랜스코더의 비트 스트림 출력 FIFO의 레벨이 새로운 프레임의 DTS 직전의 디코드 버퍼 상태를 얻기 위해 사용될 수 있다(도 7에도 도시됨). 특히, 미래 디코드 버퍼 상태(vbv_fullness)는 다음과 같이 주어진다.
vbv_fullness= (현재 시간에서 새로운 프레임의 DTS 시간으로 전송될 비트의 수) - (인코더 FIFO의 비트 수).
vbv_fullness의 계산이 도 5에 도시되어 있는 바, 트랜스코더 FIFO의 구성이 참조부호 500으로 표기되어 있고, 대응하는 디코더 FIFO의 구성이 참조부호 550으로 표기되어 있다.
또한, 우리는 QLP에 의해 나온 t 초부터 시작하여 마지막 인코딩 비율 까지의 모든 인코딩 비율을 합산함으로써 전송된 비트의 수를 계산할 수 있다(t는 인코드와 디코드 버퍼를 통한 전체 지연, 예컨대 시스템 지연이다). QLP는 시간 주기 Tq동안 출력하기 위해 다수개 패킷에서의 비트율을 제공한다.
또한, QLP가 비율 변화를 발하는(issue) 시간부터 새로운 비율이 트랜스코더에서 실제적으로 효과를 나타내는 시간 까지의 가변 잠복(latency)에 기인한 불확실성 때문에 마진(margin)이 부가되어야 한다. 새로운 비트율이 고정된 주기 Tq에서 변화된다. Tq는 비디오 프레임 시간(디코더의 DTS)에 비동기 된다.
도 6에 나타낸 바와 같이, 트랜스코딩 비율은 점선, 예컨대 참조부호 602, 604, 606, …에서 계산된다. 이러한 예는 시스템 지연이 3개 프레임이고, 전송 비율이 P1-1에서 P1-3 동안 계산되어야 한다는 것을 가정한다. 이러한 기호에서, P1-1은 프로그램(비트 스트림 #1) 프레임 #1을 나타내고, P1-2는 프로그램(비트 스트림 #1) 프레임 #2을 나타내고, 등등 이다. 프레임 DTS 시간들이 비율 변화들과 정렬되지 않기 때문에, 트랜스코딩 비율과 전송 비율 사이의 차이를 야기한다. 또한, Tq주기가 두 프레임을 스트래들(straddle)하기 때문에, 두번째(나중) 프레임이 그러한 패킷에 배정된다.
트랜스코딩과 전송 사이의 최악의 비율 에러는 현재 시간에서 할당된 패킷 수와 시스템 지연 시간 후(현재 프레임의 DTS)에 배정된 패킷 수의 차이이다. 도 6의 하부는 두가지의 극단적인 케이스를 보여준다. 첫번째 케이스(650)에서, 프레임 DTS는 Tq직전에 발생한다. 두번째 케이스(670)에서, 프레임 DTS는 Tq +에 발생한다. A 부터 AA 까지는 각 Tq주기에 배정된 패킷의 수를 나타낸다. 양 케이스는 동일한 인코딩 패킷 배정(assignment), 합(B 부터 X 까지)을 갖는다. 첫번째 케이스에서 전송 패킷의 수는 합(Sum)(C,D,E,…,W,X,Y)이고, 두번째 케이스에서는 합(B,C,D,…,V,W,X) 이다. 두번째 케이스는 인코딩과 전송 비율 사이에 차이가 없고, 따라서 이것이 최선의 케이스(Tq와 정렬된 DTS)이다. 최악의 케이스인 첫번째 케이스는 B 패킷의 차이를 갖는다.
따라서, 현재 시간에서부터 DTS 시간 까지 전송될 예측된 비트의 수는:
transcoding_packets(n) ±packet_count_error,
packet_count_error= (DTS 시간에 배정된 패킷의 수) - (현재 시간에 배정된 패킷의 수). 양의 그리고 음의packet_count_error는 프레임 크기 계산에 다른 효과를 갖는다.
시스템 지연은 Tq의 배수이어야 한다는 것을 주목하자.
예측된 "vbv fullness"는 다음과 같이 주어진다.
vbv_fullness= (전송될 비트의 수) - (트랜스코더 FIFO의 비트)
이 값은 트랜스코드된 프레임 크기를 한정하기 위해 사용될 수 있고, 따라서 그것은 단지(no more than)vbv_fullness가 된다. 이러한 요구는 디코더 버퍼가 현재 프레임(즉, 곧 트랜스코드될 프레임)을 디코딩하는 동안 언더플로우 되지 않는 것을 보장하기 위해서 부과된다.
최대 프레임 크기(Maximum Frame Size)와 최소 프레임 크기(Minimum Frame Size)는 전송 비트율의 시퀀스(sequence)와, 트랜스코더 버퍼 레벨의 스냅샷(snapshot) 및, 이전에 트랜스코드된 프레임의 크기로부터 다음과 같이 얻어질 수 있다.
B(t) = 시간 t 에서의 버퍼 레벨
tc = 현재 프레임이 트랜스코더 FIFO에 들어갈 때의 시간
t0 = 트랜스코더 FIFO 레벨이 최종적으로 독출되었을 때의 시간
T(t) = 시간 t 에서 FIFO에 들어가는 프레임의 크기
R(t) = 시간 t 에서의 전송 비트율
dts = 현재 프레임의 DTS
nextDts = 다음 프레임의 DTS
D = 디코더 버퍼 크기
라고 하자.
도 7은 본 발명에 따른 양자화 레벨 프로세서(QLP)와 트랜스코더 처리 요소들(TPEs) 사이의 통신 타이밍을 도시한다.
시간 705에서, TPE는 현재 프레임 "N"에 대한 통계적 정보를 QLP로 보낸다. 시간 710에서, TPE는 TPE의 출력 버퍼의 풀니스(fullness)에 관한 정보를 보낸다. 그것은 예컨대 k=1 일 때, 인덱스 N-k를 가지고 이전에 트랜스코드된 프레임으로부터의 데이터를 포함한다. 이전에 코드된 프레임은 보통 프레임 N-1, 즉 이전 프레임이다. 그러나, 타이밍이 "슬립(slip)" 할 수 있기 때문에 때때로 프레임을 트랜스코드하는데 한 프레임 시간보다 더 걸린다. 이러한 상황에서, "현재 프레임"과 직전에 트랜스코드된 프레임 사이의 거리는, 예컨대 k=2가 되도록, 1 프레임 보다 클 수 있다. 시간 715에서, 관련된 통계적 정보로부터 계산된 요구 파라미터를 이용하여 트랜스코딩이 프레임 "N"에 대해서 시작한다. 트랜스코드 비트율이 각 Tq주기에 대하여, 예컨대 시간 720에서 계산된다.
시간 725는 인덱스 N+1을 갖고, 다음 프레임에 대한 트랜스코딩의 시작을 나타낸다.
예컨대 시간 730에서, TPE는 그것의 출력 버퍼의 풀니스에 관한 정보, 이제 프레임 N으로부터의 데이터를 포함하는 정보를 QLP로 보낸다. 이에 응답하여, QLP는 타겟 프레임 크기와, 트랜스코딩 비트율에 대한 최소 및 최대 한도를 시간 735에서 TPE로 제공한다.
시간 740 및 745는 각각 프레임 N과 N+1의 디코드 시간 스탬프(decode time stamp)의 시간을 나타낸다.
시간 750에서, QLP는 TPE의 출력 버퍼에서 얼마나 많은 데이터 패킷이 전송 스트림에서 출력되는지를 멀티플렉서에게 알려주기 위해 전송 비트율을 멀티플렉서로 전달한다. 이러한 시간 750은 지연 주기 만큼 트랜스코드 시간 720에 따른다.
4. 요구 파라미터
비트율 요구 파라미터가 프레임의 예상된 복잡도에 기초하여 각 프레임에 대하여 결정된다. 트랜스코딩 비트율은 요구 파라미터와 가용 대역폭에 기초하여 QLP(130)에 의해서 각 TPE에 할당된다.
다시 도 4를 참조하면, 입력 프레임의 비트가 먼저 가변 길이 디코더(420)에 의해 부분적으로 디코드되고, 평균 양자화 크기와 프레임 내의 비트 수가 계산된다. 부분적으로 디코드된 계수와 헤더의 다수개의 프레임, 예컨대 5개의 프레임이대응하는 룩어헤드 지연을 제공하는 룩어헤드 버퍼(425)의 각 비디오 채널을 위해 저장된다. 프로세서 SDRAM 메모리(132)의 크기가 룩어헤드 버퍼의 길이를 한정한다. 각 계수는 2 바이트를 차지하는데, 결국 "720x480x1.5x2 = 1 Mbyte/frame"가 된다.
타겟 디코더(452)에서 프레임의 계획된 디코드 시간에 의해 결정된 특정한 시간, TframeStart에서, 요구 파라미터가 룩어헤드 버퍼(425)의 가장 오래된 프레임에 대하여 계산된다. 디코드 시간은 27 MHz 클럭 틱 단위인 프레임의 DTS에 의해서 특정된다. TframeStart는 다음과 같이 정의된다.
(프레임의 디코드 시간 - 버퍼 지연 - 1.5 NTSC 프레임 시간)
요구 파라미터(Need Parameter)는 평균 양자화 크기와 입력 프레임의 비트 카운트로부터 다음과 같이 계산된다.
NeedParameter = MbResolutionAdjust * AvgQR * (CurrentQR + Alpha * PastQR)/(Beta * CurrentQR + PastQR), 이때
AvgQR = (과거에서 가장 최근의 15 P 또는 B 프레임과 가장 최근의 I 프레임에 대한 (avgInQuant * inFrameSize)의 합) * 900,000 / (현재 프레임의 DTS - 과거에서 16 번째 프레임의 DTS). 900,000은 한 프레임 주기(1/30 초)에서 27 MHz 단위의 수이다. 27 MHz는 MPEG 클럭 율이다.
과거, 예컨대 45 프레임 내에 I 프레임이 없다면, 과거 16 P 또는 B 프레임이 사용된다.
I 프레임에 대하여,
CurrentQR = avgInQuant * 현재 프레임의 inFrameSize.
PastQR = avgInQuant * 과거 I 프레임의 inFrameSize.
만일 과거 45 프레임 내에 I 프레임이 없다면, PastQR은 CurrentQR과 동일한 값으로 설정된다.
P 또는 B 프레임에 대하여,
CurrentQR = 동일한 픽쳐 타입(picture type)의 룩어헤드 버퍼(425)에서 모든 프레임과 현재 프레임에 대한 (avgInQuant * inFrameSize)의 평균.
PastQR = 동일한 픽쳐 타입의 과거 4개의 프레임에 대한 (avgInQuant * inFrameSize)의 평균.
만일 과거에 동일한 픽쳐 타입의 4개의 프레임 보다 작다면, PastQR은 CurrentQR과 동일한 값으로 설정된다.
Alpha와 Beta는 양자화 크기와 비트 카운트의 곱의 변화까지 요구 파라미터의 반응(reaction)을 제어하기 위한 조정 가능한 파라미터이다. 디폴트 값(default value)은 Alpha=256, Beta=256 이다.
MbResolutionAdjust는 다른 해상도(resolution)에서 지각할 수 있는 왜곡의 차이를 보상하는 조정 가능한 파라미터이다. 해상도가 낮을 수록, 왜곡을 더 쉽게 볼 수 있다. 따라서, 요구 파라미터가 더 낮은 해상도를 위해 증대된다. MbResolutionAdjust의 디폴트 값은 최대 해상도에 대하여 1.0이고, 3/4 해상도에 대하여 1.2 및, 1/2 해상도에 대하여 1.5이다. 양자 택일로, 또는 부가적으로 요구파라미터가 한 프레임 내의 매크로블록의 수인 매크로블록 해상도에 기초하여 조정될 수 있다.
5. 입력 비트율 정보
모든 Tq시간 슬롯에서, TPE들(110,…,112)과 멀티플렉서(120)는 입력 전송 패킷의 수를 계산하고, 이러한 패킷 카운트 정보를 QLP(130)의 원형(circular) 버퍼에 저장한다. TPE들에 의하여 처리된 각 비디오 프로그램/채널을 위해 입력 비트율 정보의 하나의 원형 버퍼와, TPE를 거치지 않고(즉, 통과(passthrough) 모드로) 멀티플렉서(120)로 직접 전달된 모든 데이터 스트림을 위해 비트율 정보의 하나의 원형 버퍼가 있다. 각 원형 버퍼는 예컨대 1024 엔트리(entry)를 갖고, 각 엔트리는 하나의 Tq시간 슬롯의 비트율 정보를 저장한다. 1024 엔트리는 다른 구현에서는 변할 수 있는 단지 디자인 파라미터이다. 원형 버퍼는 0.6 초 지연 동안 데이터를 수용할 수 있도록 충분히 커야 한다. 패킷 카운트로부터, QLP(130)는 각 Tq시간 슬롯에 대하여 동시적인 입력 비트율을 다음과 같이 계산할 수 있다.
BitRate(초당 비트) = PktCount * 188 * 8 / TqPeriod.
멀티플렉서(120)는 하나 이상의 MPEG 프로그램으로 이루어지는 각 데이터 서비스에서 전송 패킷(널(null) 패킷 이외)의 수를 계산한다. QLP(130)는 각 Tq시간 슬롯에 대하여 동시적인 데이터 서비스 입력 비트율을 계산하기 위하여 패킷 카운트를 이용한다. 멀티플렉서는 TPE로부터의 패킷 카운트 정보가 저장되는 것과 동일한 방법으로 패킷 카운트 정보를 QLP의 원형 버퍼에 저장한다.
멀티플렉서(120)와 TPE들이 패킷 카운트 정보를 QLP의 원형 버퍼에 기록하는 프로세스는 Tq 틱과 비동기된다. 패킷 카운트 정보와 함께 저장된 Tq 인덱스는 초기화 프로세스 동안 QLP를 입력 패킷 카운트 정보와 동기화하기 위해 사용된다.
Tq 인덱스는 QLP에 의해서 유지된다. QLP는 Tq 인덱스를 초기화에서 0으로 설정하고, 모든 Tq 인터럽트 마다 1 씩 증가시킨다. QLP는 Tq 인덱스 및 관련된 시간을 TPE들(110,…,112)과 멀티플렉서(120)로 주기적으로 배포한다.
트랜스코딩 비트율 할당 프로세스 동안, QLP(130)는 순수 통과 비디오 채널(들)과 비디오가 아닌(non-video) 채널을 위해 대역폭을 남겨둔다. 이러한 통과 채널에서 패킷의 전송 비트율이 입력에서의 대응하는 패킷의 비트율과 정합해야 하기 때문에, 각 통과 비디오 채널을 위해 남겨 두는 비트율은 동시적인 입력 비트율과 현재 시간 전인
PacketCountDelay = PassThroughDelay - TcrToTxrDelay
의 시간에서 동일하다. 여기서, PassThroughDelay는 비디오 통과 채널(디멀티플렉서(410)에서 리멀티플렉서(450)로)에서 패킷의 지연을 나타는데, 이것은 구현 예에서 0.7 초(0.5 초 + 6 NTSC 프레임 주기 = 0.7 초)에 고정된다. 비디오가 아닌 PID들은 동일한 지연 양을 갖는다.
TcrToTxrDelay는 트랜스코딩 비율(현재 Tq 틱)의 계산으로부터 전송 비트율의 구현까지의 지연이다(도 7). 이러한 지연은 0.6 초(0.5 초 + 1.5 NTSC 프레임 주기 + 1.5 NTSC 프레임 주기 = 0.6 초)에 고정된다.
따라서, PacketCountDelay는 0.1 초(0.7 초 - 0.6 초 = 0.1 초)와 같은 상수이다. 이러한 지연과 동일한 Tq 틱의 수는 : PacketCountDelayIndex = (PacketCountDelay / TqPeriod).
QLP(130)는 입력 패킷 카운트 정보를 현재 Tq 인터럽트와 다음과 같이 동기화시킨다.
각 원형 버퍼를 위해, QLP는 10 비트 독출 포인터(read pointer)를 유지한다. 우선, QLP는 원형 버퍼에서 tqIndex가 (CurrentTqIndex - PacketCountDelayIndex)의 값과 정합하는 엔트리를 탐색한다. 그 후에 매 Tq 틱 마다, QLP는 독출 포인터의 값을 1 씩 증가시킨다. 또한 QLP는 원형 버퍼에 패킷 카운트와 함께 저장된 TqIndex의 연속성을 검사한다. 만일 불연속성이 있다면, QLP는 경고 플래그(warning flag)를 KP(140)에 설정하고, (CurrentTqIndex - PacketCountDelayIndex)와 정합하는 TqIndex를 탐색함으로써 독출 포인터를 다시 초기화한다.
모든 입력 프레임에 대하여, QLP는 한 프레임 동안의 평균 입력 비트율을 계산한다. 이러한 계산은 프레임의 요구 파라미터 계산과 동시에 수행된다. 평균 입력 비트율이 타겟 프레임 크기의 계산을 위해 사용된다.
첫째, QLP가 프레임에 의해 스트래들된(straddled) 정수 Tq 주기의 수를 계산한다:
FrameTqCount = (다음 프레임의 디코드 시간과 현재 프레임의 디코드 시간 사이의 차이) / TqPeriod, 다음의 큰 정수로 반올림함.
QLP가 FrameTqCount로부터 프레임의 지속 시간을 계산한다:
FrameDuration = FrameTqCount * TqPeriod.
이어서, QLP는 평균 입력 비트율을 계산한다:
AvgInBitrate = InPacketCount * 188 * 8 * / FrameDuration,
여기서 InPacketCount는 현재 독출 포인터로부터 시작되는, 비디오 패킷 카운트 원형 버퍼의 FrameTqCount 엔트리에 대한 PacketCount의 합이다.
6. 대역폭 할당
모든 Tq 슬롯에서, QLP는 대역폭 할당 과정을 수행한다. QLP는 먼저 대역폭을 순수 통과 비디오 프로그램에 배정하고, 트랜스코드되지 않는 데이터에 그리고 오디오 프로그램에 배정한다. 남은 대역폭은 채널들의 요구 파라미터에 기초하여, 그리고 최대 및 최소 비트율 제한(constraint)에 종속하여 남은 채널에 할당된다.
6.1 통과 비디오 및 데이터 채널
QLP는 트랜스코딩 비트율을 순수 통과 채널에 다음과 같이 배정한다.
if( purePassThrough )
TcodeBitrate = VideoInBitrate
여기서 VideoInBitrate는 다음과 같이 계산되는 동시적인 입력 비디오 비트율이다.
VideoInBitrate = (현재 독출 포인터에서 대응하는 비디오 프로그램 원형 버퍼 엔트리에 저장된 PacketCount 값) * 188 * 8 / TqPeriod.
각 통계적 멀티플렉서 그룹에 대하여, QLP는 동적 할당이 가능한 대역폭의 양, 즉 순수 통과 채널 및 PES 정렬 오버헤드 비트의 대역폭을 감산한 후의 가능한 대역폭의 양을 계산한다. 통계적 리멀티플렉서 그룹은 서로 대역폭을 위해 경쟁하는 트랜스코더(100)에서의 채널 그룹을 참조한다. 하나 또는 그이상의 통계적 리멀티플렉서 그룹이 트랜스코더(100)에서 사용될 수 있다.
AvailableVideoBitrate = TotalOutputBandwidth - (모든 채널에 대한 NonVideoInBitrate의 합) - (모든 순수 통과 채널에 대한 TcodeBitrate의 합) - (순수 통과가 아닌 채널의 수 * PesOverheadBitrate).
이러한 식에서, TotalOutputBandwidth는 시스템 정보를 포함하여, 입력 스트림에서 비디오와, 오디오 및, 데이터 서비스가 가능한 전체 출력 전송(페이로드(payload)) 대역폭이다. 이것은 통계적 멀티플렉서 그룹을 위해 사용자 구성(user-configured) 파라미터이다.
PesOverheadBitrate는 PES 정렬을 위한 평균 오버헤드 비트율이고, 이것은 상수이다:
PesOverheadBitrate = 1/2 * 184 * 8 * 30 = 22.08 Kbps.
동시적인 비디오가 아닌 비트율(NonVideoInBitrate)이 VideoInBitrate와 유사한 방법으로 계산된다:
NonVideoInBitrate = (현재 독출 포인터에서 대응하는 비디오가 아닌 PID의 원형 버퍼 엔트리에 저장된 PacketCount 값) * 188 * 8 / TqPeriod.
6.2 트랜스코딩 비트율 할당
각 통계적 멀티플렉서 그룹에 대하여, QLP는 다음의 제한 하에서 통과가 아닌(non-passthrough) 비디오 채널 사이에 AvailableVideoBitrate를 할당한다.
1. 트랜스코딩 비트율의 합 = GroupBandwidth. 동적 할당이 가능한 대역폭은 가변적이고, 전송 스트림에서 통과 구성요소(예컨대, 비디오가 아닌 데이터)에 의해 차지된 대역폭에 종속적이기 때문에, 그룹 대역폭은 출력 전송 멀티플렉스를 위해 구성된 하나 이상의 통계적 멀티플렉서 그룹이 존재할 때 전체 가용 대역폭의 퍼센트에 의해 표현된다.
2. 어떠한 단일 TPE에서 모든 순수 통과가 아닌(non-pure-passthrough) 비디오 채널을 위한 평균 트랜스코딩 비트율의 합은 TPE에서의 가변 길이 인코더(380,440)의 최대 출력에 의해 결정되는 상한보다 작아야 한다.
3. 순수 통과 채널에서, 출력 비트율은 입력 비트율과 동일하여야 한다. 채널은 예컨대, 질을 유지하기 위해 순수 통과 채널로써 처리될 수 있다.
4. 어떠한 비디오 채널에 대하여도, 출력 타겟 프레임 크기는 입력 프레임 크기보다 클 수 없다. 이것은 평균 트랜스코딩 비트율이 평균 입력 비트율을 초과할 수 없다는 제한을 설명한다.
5. 타겟 프레임 크기는 최대값보다 클 수 없고, 최소값보다 작을 수 없다. 이것은 비디오 버퍼를 보호하기 위하여 제공된다.
트랜스코딩 비트율 할당 과정이 다음과 같이 개요가 설명된다.
6.2.1 최대 프레임 크기의 근사치 계산
언더플로우로부터 디코더 버퍼를 보호하기 위한 최대 트랜스코드된 프레임크기는 다음과 같이 주어진다:
maxFrameSize = (트랜스코드된 프레임의 첫번째 비트가 트랜스코더 FIFO(445)에 입력되는 시간에서 부터 프레임의 디코드 시간까지 디코더(452)로 전송된 비트의 수) - (트랜스코드된 프레임의 첫번째 비트가 FIFO에 입력되는 시간에서의 트랜스코더 FIFO 레벨).
그러나, 트랜스코드된 프레임의 첫번째 비트가 FIFO에 입력되는 시간에서의 트랜스코더 FIFO 레벨은 트랜스코딩 비트율이 계산되는 시간에서는 알 수 없다. 따라서, 최대 트랜스코드된 프레임 크기의 근사치가 다음과 같이 계산된다:
maxFrameSizeEstimate = delayBitsMax - FifoLevel - offsetBitsMax.
delayBitsMax 값은 FIFO 레벨이 독출된 최종 시간부터 프레임의 디코드 시간까지 디코더(452)로 전송된 비트의 수이고, 다음과 같이 계산된다:
delayBitsMax = TqPeriod * Ndelay 항(term)이 FrameMarker로부터 시작되도록 전송 비트율 큐에서 전송 비트율 값의 합, 여기서:
Ndelay = FifoLevel이 독출되는 때의 시간부터 프레임이 디코드되는 때의 시간까지 계산한 Tq 슬롯의 수.
FifoLevel 값은 트랜스코더의 가장 최근 출력 FIFO 레벨이다.
offsetBitsMax 값은 FIFO 레벨이 최종적으로 독출된 시간부터 타겟 트랜스코드된 프레임의 첫번째 비트가 FIFO로 입력되는 시간까지 트랜스코더 FIFO로 입력된 비트의 근사된 수이다. 이러한 근사치는 트랜스코드되기를 기다리는 프레임의 초기(한정되지 않은) 타겟 프레임 크기의 합에 의해서 주어진다. 이것은 다음과 동일하다:
offsetBitsMax = 가장 최근 출력 프레임의 크기 + 현재 트랜스코드되고 있는 프레임의 타겟 프레임 크기 + 트랜스코드되기를 기다리는 현재 프레임에 선행하는 프레임의 타겟 프레임 크기의 합.
최대 프레임 크기의 근사치에서, 미래에 트랜스코드될 프레임에 의해 생성된 비트의 수가 프레임 타겟을 만족하고, QLP의 출력 큐(132)에서 초기 프레임 타겟 값이 최대 프레임 크기나 최소 프레임 크기에 딱 들어맞지 않는(do not hit)것으로 가정된다.
6.2.2 최소 프레임 크기의 추정치 계산
오버플로우로부터 디코더(452)를 보호하기 위한 최소 트랜스코드된 프레임 크기가 다음과 같이 주어진다:
MinFrameSize = (트랜스코드된 프레임의 첫번째 비트가 트랜스코더 FIFO로 입력되는 시간부터다음프레임의 디코드 시간까지 디코더로 전송된 비트의 수) - (디코더 버퍼의 크기) - (트랜스코드된 프레임의 첫번째 비트가 FIFO로 입력되는 시간에서의 트랜스코더 FIFO 레벨).
MinFrameSize는 MaxFrameSize와 다음과 같이 관련되어 있다.
MinFrameSize = MaxFrameSize + (현재 프레임의 디코드 시간부터 다음 프레임의 디코드 시간까지 디코더로 전송된 비트의 수) - (디코더 버퍼의 크기).
따라서,
MinFrameSizeEstimate = MaxFrameSizeEstimate + DeltaBitsMin -DecoderBufferSize,
여기서 DeltaBitsMin = 현재 프레임의 디코드 시간부터 다음 프레임의 디코드 시간까지 디코더로 전송되는 비트의 수, 이것은 전송 비트율의 큐에 있는 대응하는 항을 합산함으로써 계산된다.
구현예에서, DecoderBufferSize는 1.835 Mbits인, Main Level 버퍼 크기, MPEG2 Main Profile의 크기이다.
6.2.3 버퍼를 보호하는 최대 트랜스코딩 비트율 계산
최대 트랜스코딩 비트율은 디코더 버퍼 오버플로우를 피하도록 설정되어야 한다. 프레임의 타겟 프레임 크기는 평균 트랜스코딩 비트율 대 평균 입력 비트율의 비에 의해 축척화된 입력 프레임 크기와 같이 계산된다. 따라서, 최대 트랜스코딩 비트율은, 트랜스코딩 비트율이 프레임 시간의 끝까지 상수를 유지한다고 가정할 때, 최대 프레임 크기로부터 다음과 같이 계산된다:
MaxTcodeBitrate = ((MaxFrameSize / OrigFrameSize) * AvgInBitrate * FrameTqCount - (프레임의 시작부터 현재 Tq 인터럽트 까지 트랜스코딩 비트율의 합) * FrameTqIndex) / (FrameTqCount - FrameTqIndex),
여기서, OrigFrameSize는 입력 프레임의 비트의 수이고, FrameTqCount는 프레임 시간에서의 Tq 시간 슬롯의 수이고, FrameTqIndex는 프레임 시작(Tframestart) 부터의 Tq 시간 슬롯의 수이다.
6.2.4 버퍼를 보호하는 최소 트랜스코딩 비트율 계산
최소 트랜스코딩 비트율은 디코더 버퍼 언더플로우를 피하도록 설정되어야 한다. 각 비디오 서비스에 대하여, 최소 트랜스코딩 비트율은 최대 트랜스코딩 비트율과 유사한 방법으로 계산된다:
MinTcodeBitrate = ((MinFrameSize / OrigFrameSize) * AvgInBitrate * FrameTqCount - (프레임의 시작부터 현재 Tq 인터럽트 까지 트랜스코딩 비트율의 합) * FrameTqIndex) / (FrameTqCount - FrameTqIndex).
6.2.5 각 TPE에 의해 처리될 수 있는 최대 집합 비트율 계산
윈도우(window) 동안(예컨대, 3 프레임 주기) 어떠한 단일 TPE에서 모든 비디오 서비스 사이에서의 평균 출력 비트율은 TPE에 있는 VLE의 처리 능력에 의해 제한된다. 예컨대, 출력은 3 프레임 윈도우 동안 평균 12 Mbits/sec.스프레드(spread:프로세서 종속 값) 보다 크지 않도록 제한된다. 어떠한 Tq 주기에서도, TPE에 의해 지지되는 최대 비트율은 다음과 같이 계산된다:
MaxTpeBitrate = (NTq* VleThroughput) - (과거 NTq-1 Tq 인터럽트 동안 TPE에서 모든 비디오 채널의 트랜스코딩 비트율 값의 합),
여기서 NTq= 예컨대 3 NTSC 프레임 시간인(100ms), 평균한 윈도우에서 Tq 시간 슬롯의 수; VleThroughput은 평균 비트율, 예컨대 12 Mbits/sec에 의한 VLE의 출력.
6.2.6 비디오 채널 사이에 가용 비트율 분배
다음 과정은 각 통계적 리멀티플렉서 그룹에 적용된다.
1. QLP가 최소 및 최대 비트율 제한 없이 이상적인 대역폭 할당을 결정한다.
2. 각 비디오 채널이 채널의 MinTcodeBitrate에 배정된다. MinTcodeBitrate의 합이 AvailableVideoBitrate를 초과한다면, 대역폭이 MinTcodeBitrate에 비례하여 분배된다.
3. 이어서, QLP가 사용자 최소 비트율 요구를 만족시키기 위하여 시도한다. QLP는 사용자 최소 비트율을 적용하기 전에 MaxTcodeBitrate에 의해서 사용자 최소 비트율을 제한한다.
4. QLP가 사용자 최대 비트율에 기초하여 각 채널에 대한 최대 비트율 값을 계산하고, 디코더 버퍼를 보호하기 위하여 최대 및 최소 트랜스코딩 비트율을 계산하고, 각 TPE에 의해 지지될 수 있는 최대 처리 비트율을 계산한다.
5. QLP는 남은 NeedBitrate 값에 비례하여 남은 대역폭을 배정한다.
6. QLP이 비트율 할당에 최대 비트율 제한을 적용한다.
7. QLP가 최대 비트율을 초과하는 채널로부터 수집한 여분의 대역폭을 할당한다.
8. QLP가 현재 할당된 비트율과 최대 비트율의 차이에 비례하여 남은 대역폭을 할당한다.
QLP가 각 비디오 채널에 대하여 트랜스코딩 비트율의 큐를 유지한다. 각 Tq 인터럽트에서, 계산된 트랜스코딩 비트율 값이 큐에 저장되고, 전송 비트율 값으로 사용하기 위해 0.5 초 후에 복구된다.
6.2.7 초기 타겟 프레임 크기 계산
프레임의 마지막 Tq 슬롯에서, QLP가 타겟 프레임 크기를 위한 초기값을 다음과 같이 계산한다.
InitialTargetFrameSize = (OrigFrameSize * AvgInBitrate / AvgTcodeBitrate,
여기서 AvgTcodeBitrate는 프레임에 대한 평균 트랜스코딩 비트율이고, 프레임에 의해 차지된 모든 Tq 슬롯에 대한 TcodeBitrate의 합으로 정의된다.
TPE가 이 시간에 새로운 프레임을 트랜스코드할 준비가 되어 있지 않을 수 있고, 따라서 QLP는 각 비디오 채널을 위해 타겟 프레임 크기 큐를 유지한다. InitialTargetFrameSize 값이 대응하는 채널을 위해 큐에 저장되고, 후에 TPE가 프레임을 트랜스코드할 준비가 되었을 때 복구된다.
6.3 통과 결정
프레임의 첫번째 Tq 인터럽트에서, QLP는 프레임을 통과시킬 것인지 아닌지 결정한다. 통과 결정은 새로운 프레임의 시작에서 각 채널에 대하여 프레임의 첫번째 Tq 슬롯에서 계산된 트랜스코딩 비트율에 기초하여 다음과 같이 만들어 진다.
PassThroughBitrate = PassThroughMargin * OrigFrameSize / FrameTqCount;
여기서 PassThroughMargin은 1.0 보다 작지만 가까운 파라미터이다, 예컨대 0.95; OrigFrameSize는 입력 프레임에서의 비트 수이다; 그리고 FrameTqCount는 프레임에서 Tq 슬롯의 수이다. PassThroughMargin의 사용은 통과될 타겟 프레임 크기보다 크기가 약간 큰 입력 프레임을 허용하고, 따라서 프레임의 질을 보존하고, 또한 트랜스코더 처리 사이클을 보장한다.
6.4 타겟 프레임 크기 계산
TPE가 새 프레임을 트랜스코드할 준비가 되었음을 알리는 메시지를 TPE로부터 수신하자 마자 QLP가 가장 최근의 버퍼 레벨 정보에 기초하여 최대 프레임 크기와 최소 프레임 크기 값을 계산한다. 이어서 QLP는 타겟 프레임 크기 큐로부터 타겟 프레임 크기를 추출하고, 최대 및 최소 프레임 크기 제한을 이용하여 타겟 프레임 크기의 최종 값을 계산한다.
6.4.1 최대 프레임 크기 계산
QLP가 디코더 버퍼를 언더플로우로부터 보호하기 위해 최대 프레임 크기를 계산한다. 그 계산은 Tq 인터럽트 동안의 근사 최대 프레임 크기 계산과 유사하다(6.2.1):
MaxFrameSize = DelayBits - FifoLevel - LastOutputFrameSize.
DelayBits 값은 FIFO 레벨이 독출된 시간부터 프레임의 디코드 시간까지 디코더로 전송된 비트 수이고, 현재 전송 비트율 큐에 있는 대응하는 전송 비트율 값을 합산함으로써 계산될 수 있다.
FifoLevel 값은 트랜스코더에 의해 래치된(latched) 트랜스코더 FIFO 레벨이다. 즉, FifoLevel은 트랜스코더에 의해 독출되고, QLP로 전달된다.
6.4.2 최소 프레임 크기 계산
QLP가 디코더 버퍼를 언더플로우로부터 보호하기 위해 최소 프레임 크기를 계산한다. 그 계산은 Tq 인터럽트 동안의 근사 최소 프레임 크기 계산과 유사하다(6.2.2). 최소 프레임 크기는 최대 프레임 크기와 다음과 같이 관련된다.
MinFrameSize = MaxFrameSize + (현재 프레임의 디코드 시간부터 다음 프레임의 디코드 시간까지 디코더로 전송된 비트 수) - (디코더 버퍼의 크기).
이전에 언급한 바와 같이, MPEG2 Main Profile Main Level에 대하여, 디코더 버퍼 크기는 1.835 Mbit이다.
6.4.3 이전 프레임으로부터 캐리오버(carryover) 계산
트랜스코더는 타겟 프레임 크기와 동일한 비트 수를 정확히 생성하지 못할 수도 있다. 이전 프레임의 트랜스코딩으로부터 비트의 잉여 또는 부족은 현재 프레임의 타겟 프레임 크기와 함께 하나로 묶여진다. 이러한 이탈(잉여 또는 부족)은 다음과 같이 계산된다:
FrameCarryOver = LastOutputFrameSize - (이전 프레임의 TargetFrameSize).
6.4.4 타겟 프레임 크기 계산
QLP는 대응하는 비디오 채널의 타겟 프레임 크기 큐로부터 InitialTargetFrameSize 값을 추출하고, 최대 및 최소 값에 의해 타겟 프레임 크기를 제한한다:
TargetFrameSize = Min ( MaxFrameSize, Max ( MinFrameSize, InitialTargetFrameSize + FrameCarryOver )).
이어서, QLP는 MinFrameSize와, MaxFrameSize 및, TargetFrameSize의 값을 TPE로 보낸다. 이러한 값은 트랜스코딩 프로세스의 비율 제어를 가이드하도록 이용된다.
6.5. 양자화 제어
프레임 내에서, 다음의 알고리즘은 모든 매크로블록이 트랜스코드되도록 양자화 크기 값을 계산하는데 사용된다. 새로운 양자화 크기 Qnew가 입력 매크로블록 Qold의 양자화 크기를 타겟된 비트 감소비(targeted bit reduction ratio) Rnew/Rold에의해 축척화함으로써 계산된다. 전형적으로, 각 매크로블록이 양자화 크기(quantizer scale)를 갖는다. 그러나, 슬라이스(slice) 내 또는 다른 그룹핑(grouping)과 같은 매크로블록의 그룹은 일반 양자화 크기와 관련되어 있을 수 있다. 이러한 상황에서, 새로운 양자화 크기가 그룹을 위해 결정된다.
초기화:
Rold= 프레임 내의 원래 비트 수
Rnew=TargetFrameSize= 프레임을 트랜스코딩/재양자화함으로써 생성되는 비트의 타겟 수. 모든 슬라이스에 대해서, 다음을 실행한다:
Qnew에 대해서, 다음의 큰 정수로, 또는 가장 가까운 정수로의 반올림이 사용될 수 있다. 상기 공식은 프레임이 타켓 프레임 크기로 트랜스코드되도록 되어야 한다. 트랜스코드된 프레임 크기는 타겟을 넘을 수(go over) 있으나, 그것은 최대 프레임 크기를 초과해서는 않된다.
그러나, 만일 최대 프레임 크기가 프레임에서 매우 일찍 도달된다면, 이러한 것이 발생할 수 있는데, 예컨대 프레임의 초기에서 양자화 크기가 낮다면, 따라서많은 비트를 생성하게 되고, 양자화 크기는 최대 레벨(가장 성긴 양자화)로 설정되고, 나머지 프레임은 결과적으로 매우 낮은 질을 갖게 된다. 이것을 피하기 위해, 매크로 블록 당 최소 비트 수,mb_budget가 할당된다. 프레임이 트랜스코드되면서, 만일 사용된 비트 수의 러닝 카운트(running count)가 너무 크게 성장한다면, 즉 사용된 비트 수가 특정 레벨에 도달한다면, 이것은 프레임 진행(progress)의 재양자화로 조정되는데, 패닉 양자화(panic quantizer)가 남은 매크로블록이mb_budget비트 수를 갖도록 충분한 비트가 남을 때 까지 잠시동안 설정된다. 즉, panic_level은 MB들이 mb_budget 또는 더 작은 비트 수를 갖도록 강제하기 위한 양자화 레벨이다. 이것은 프레임의 단지 일부분이 패닉 모드로 진행할 수 있도록 패닉 양자화를 프레임에 분산시킨다(spread). 이것을 달성하기 위해, 각 프레임의 초기에서 다음과 같은 변수를 초기화한다:
ξ는 프레임 타겟 크기 T0를 이용하여 매크로블록 당 평균 비트 수의 비율(fraction)로서 각 매크로블록에 할당된 최소 비트 수를 결정한다. 범위는 0<ξ<1 이다. 대부분의 케이스에서 1/4-1/2의 ξ가 적당하다. 만일 ξ가 너무 크다면, 패닉 상태가 너무 일찍 촉발될 수 있고; 만일 ξ가 0이라면, 패닉 상태가 너무 늦게 촉발될 수 있으며, 그래서 나머지 프레임이 패닉 모드에서 고착되게 된다(stuck).
각 매크로블록이 코드된 후에,
panic_level = panic_level - bits_used_mb + mb_budget
if(panic_level < 0)
QMew=MAX_QL;
여기서MAX_QL= 112(예컨대, 시스템에 대한 적당한 최대 QL).
만일, 프레임 크기가 최소 프레임 크기보다 작다면, 프레임 크기가 최소 프레임 크기와 동일하거나 더 크도록, 0(zeros)이 비트 스트림의 끝에 부가된다.
6.6. PCR 슬롯
MPEG 표준은 PCR이 100ms인 최대 간격에서 전달되는 것을 요구한다. 실제 PCR 값은 전송 시간 까지 알려지지 않고, 따라서 트랜스코더는 PCR을 위해 위치보유자 슬롯(placeholder slot)을 생성한다.
타겟 프레임 크기로부터, QLP는 프레임을 전송하는데 이용되는 시간을, 따라서 최대 PCR 간격 요구를 만족시키기 위해 프레임에 삽입되어야 하는 최소 수의 PCR을 예측한다. 이러한 요구를 만족시킴에 있어서, 코드되지 않은 픽쳐(uncoded pictures)가 일정한 지속 시간(1/30 sec)을 갖는 동안, 코드된 비트 스트림은 각 프레임에 대하여 가변 지속 시간을 갖을 수 있다. 예컨대, 만일 프레임이 100,000 비트를 갖고, 1 Mbps로 전송된다면, 지속 시간은 0.1 초이다. 만일 프레임이 2 Mbps로 전송된다면, 지속 시간은 0.05 초이다. 프레임을 전송하기 위해 필요한 시간의 양(또는 더 정확하게는, 프레임의 첫번째 비트가 트랜스코더의 출력버퍼(FIFO;445)를 떠나는 시간부터 프레임의 마지막 비트가 FIFO를 떠나는 시간까지의 시간의 경과)은 다음과 같이 예측된다:
TxFrameDuration = TargetFrameSize / (전송 비트율 큐에서 최소값).
프레임 동안 삽입하는 최소 PCR 수는:
MinPcrCount = TxFrameDuration / MaxPcrSeparation, 가장 가까운 정수로 반올림한,
여기서 MaxPcrSeparation은 MPEG(100ms)에 의해 요구되는 PCR들 사이의 최대 분리이다. MaxPcrSeparation=80ms의 값이 20ms 마진을 제공하기 위하여 사용된다.
따라서, 본 발명이 비디오 데이터를 포함하는 여러 채널에서 데이터를 처리하기 위한 효율적인 통계적 리멀티플렉서를 제공한다는 것을 알 수 있다. 본 발명의 일 관점에서 보면, 비디오 데이터의 트랜스코딩이 통계적 정보가 데이터로부터 얻어지는 동안 지연된다. 데이터를 위한 비트율 요구 파라미터가 통계적 정보에 기초하여 결정되고, 비디오 데이터가 지연 후의 각기 비트율 요구 파라미터에 기초하여 트랜스코드된다.
본 발명의 다른 관점에서 보면, 통계적 리멀티플렉서에서 비디오 프레임을 위한 트랜스코딩 비트율이 비트율의 더 밀접한 감시를 위해 연속되는 간격에서 여러번 갱신된다. 또한, 트랜스코딩 비트율을 위한 최소 및 최대 한도가 각 간격에서 갱신된다. 따라서, 프레임의 일부분이 첫번째 간격에서 트랜스코드되고, 이어서 트랜스코딩 비트율이 갱신되고, 이어서 프레임의 두번째 부분이 두번째 간격에서 트랜스코드되고, 등등이다.
본 발명의 또 다른 관점에서 보면, 프레임에서 매크로블록의 트랜스코드되기 전 양자화 크기는 프레임 내에서 트랜스코드되기 전 데이터의 양과 프레임을 위한 타겟의, 트랜스코드된 후 데이터의 양의 비율에 기초하여 대응하는 트랜스코딩용 새로운 양자화 크기를 제공하기 위하여 축척화된다. 또한, 트랜스코딩 대역폭의 최소한의 양이 각 매크로블록에 할당됨을 보장하기 위하여 프레임의 부분들이 트랜스코드됨에 따라, 양자화 크기가 프레임의 다른 부분들을 위해서 조절된다.
발명이 다양한 바람직한 실시예에 따라 설명되었지만, 청구항에서 제시된 발명의 범위를 이탈함이 없이 다양한 변형과 응용이 가능하다는 것을 이해해야 한다.

Claims (39)

  1. 다수의 채널을 수신하는 통계적 리멀티플렉서에서 데이터를 처리하는 방법에 있어서,
    상기 채널로부터 비디오 프레임을 복구하는 단계와;
    상기 비디오 프레임으로부터 통계적 정보를 얻는 동안 상기 비디오 프레임의 트랜스코딩을 지연시키는 단계;
    상기 얻어진 통계적 정보에 따라 상기 비디오 프레임을 위한 각 비트율 요구 파라미터를 결정하는 단계; 및
    상기 지연 후의 상기 각 비트율 요구 파라미터에 따라 상기 각 비디오 프레임을 트랜스코딩하는 단계를 구비하여 이루어진 것을 특징으로 하는 데이터 처리방법.
  2. 제1항에 있어서, 상기 비디오 프레임의 상기 지연이 룩어헤드 버퍼에 상기 비디오 프레임을 저장함에 의해 달성되는 것을 특징으로 하는 데이터 처리방법.
  3. 제1항에 있어서, 상기 각 비트율 요구 파라미터를 저장 장치에 저장하는 단계; 및
    상기 각 비디오 프레임이 트랜스코딩에서 사용할 수 있도록 상기 비트율 요구 파라미터를 상기 저장 장치로부터 복구하는 단계를 더 구비하여 이루어진 것을특징으로 하는 데이터 처리방법.
  4. 제1항에 있어서, 상기 각 비트율 요구 파라미터를 결정하기 위해 사용되는 각 비디오 프레임의 상기 통계적 정보가 평균 양자화 크기값을 구비하여 이루어진 것을 특징으로 하는 데이터 처리방법.
  5. 제1항에 있어서, 상기 각 비트율 요구 파라미터를 결정하기 위해 사용되는 각 비디오 프레임의 상기 통계적 정보가 다수의 비트를 구비하여 이루어진 것을 특징으로 하는 데이터 처리방법.
  6. 제1항에 있어서, 상기 각 비트율 요구 파라미터를 결정하기 위해 사용되는 각 비디오 프레임의 상기 통계적 정보가 관련된 평균 비트율을 구비하여 이루어진 것을 특징으로 하는 데이터 처리방법.
  7. 제1항에 있어서, 상기 각 비트율 요구 파라미터를 결정하기 위해 사용되는 각 비디오 프레임의 상기 통계적 정보가 매크로블록에 다수의 비트를 구비하여 이루어진 것을 특징으로 하는 데이터 처리방법.
  8. 제1항에 있어서, 상기 각 비트율 요구 파라미터를 결정하기 위해 사용되는 각 비디오 프레임의 상기 통계적 정보가 매크로블록 해상도를 구비하여 이루어진것을 특징으로 하는 데이터 처리방법.
  9. 다수의 채널을 수신하는 통계적 리멀티플렉서에 있어서,
    상기 채널로부터 비디오 프레임을 복구하는 수단과;
    상기 비디오 프레임으로부터 통계적 정보를 얻는 동안 상기 비디오 프레임의 트랜스코딩을 지연시키는 수단;
    상기 얻어진 통계적 정보에 따라 상기 비디오 프레임을 위한 각 비트율 요구 파라미터를 결정하는 수단; 및
    상기 지연 후의 상기 각 비트율 요구 파라미터에 따라 상기 각 비디오 프레임을 트랜스코딩하는 수단을 구비하여 구성된 것을 특징으로 하는 통계적 리멀티플렉서.
  10. 비디오 프레임을 구비하여 이루어진 다수의 채널을 수신하는 통계적 리멀티플렉서에서 데이터를 처리하는 방법에 있어서,
    상기 비디오 프레임의 트랜스코딩이 진행될 때 연속적인 간격에서 적어도 특정한 비디오 프레임에 대하여 여러번 트랜스코딩 비트율을 갱신하는 단계와;
    대응하는 한정되고 갱신된 트랜스코딩 비트율을 제공하기 위하여 상기 연속적인 간격의 각각에서 또한 갱신되는 최소 및 최대 레벨 중 적어도 하나에 의해 상기 갱신된 트랜스코딩 비트율을 한정하는 단계; 및
    상기 연속적인 간격에서 상기 특정 비디오 프레임의 대응하는 트랜스코딩 부분을 위하여 상기 한정되고 갱신된 트랜스코딩 비트율을 할당하는 단계를 구비하여 이루어진 것을 특징으로 하는 데이터 처리방법.
  11. 제10항에 있어서, 상기 연속적인 간격이 주기적인 것을 특징으로 하는 데이터 처리방법.
  12. 제10항에 있어서, 상기 갱신된 트랜스코딩 비트율이 상기 대응하는 한정되고 갱신된 트랜스코딩 비트율을 제공하기 위하여 상기 연속적인 간격의 각각에서 갱신되는 최소 및 최대 레벨 양자에 의해 한정되는 것을 특징으로 하는 데이터 처리방법.
  13. 제10항에 있어서, 각 비디오 프레임을 위해 상기 비디오 프레임의 트랜스코딩의 결과로서 발생하는 것으로 기대되는 데이터의 양을 지시하는 타겟 프레임 크기를 계산하는 단계를 더 구비하여 이루어지고,
    관련된 타겟 프레임 크기가 트랜스코딩되기 전의 비트 수 보다 더 큰 비디오 프레임이 트랜스코딩을 바이패스하는 것을 특징으로 하는 데이터 처리방법.
  14. 제10항에 있어서, 각 비디오 프레임을 위해 상기 비디오 프레임의 트랜스코딩의 결과로서 발생하는 것으로 기대되는 데이터의 양을 지시하는 타겟 프레임 크기를 계산하는 단계를 더 구비하여 이루어지고,
    관련된 타겟 프레임 크기가 트랜스코딩되기 전의 비트 수로부터 미리 결정된 차이 내에 있는 비디오 프레임이 트랜스코딩을 바이패스하는 것을 특징으로 하는 데이터 처리방법.
  15. 제10항에 있어서, 상기 다수 채널의 통과 데이터를 위해 전송 대역폭의 가변 양을 할당하는 단계; 및
    상기 할당 단계에 따라 상기 다수의 채널에서 상기 비디오 프레임을 트랜스코딩하기 위해 전송 대역폭의 양을 조절하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 데이터 처리방법.
  16. 제10항에 있어서, 상기 통계적 리멀티플렉서가 채널의 다수 통계적 리멀티플렉싱 그룹을 구비하여 이루어진 전송 스트림을 출력하고,
    전체 가용 전송 대역폭의 각 부분이 상기 통계적 리멀티플렉싱 그룹의 각 부분을 구성하기 위해 사용되는 것을 특징으로 하는 데이터 처리방법.
  17. 제10항에 있어서, 관련 트랜스코딩 엔진과 관련된 지연에 따라 상기 연속적인 간격에서 상기 갱신되고 한정된 트랜스코딩 비트율을 지연시키는 단계; 및
    트랜스코딩 후에 상기 특정 비디오 프레임을 전송하기 위해 상기 지연 후에 상기 갱신되고 한정된 트랜스코딩 비트율에 따라 전송 비트율을 할당하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 데이터 처리방법.
  18. 제17항에 있어서, 트랜스코딩 후의 상기 특정 비디오 프레임의 다수의 패킷을 상기 할당된 전송 비트율에 따라 적어도 다른 한 채널의 패킷과 함께 멀티플렉싱하기 위해 멀티플렉서로 제공하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 데이터 처리방법.
  19. 제10항에 있어서, 상기 특정 비디오 프레임을 위해 상기 특정 비디오 프레임의 트랜스코딩의 결과로서 발생하는 것으로 기대되는 데이터의 양을 지시하는 타겟 프레임 크기를 계산하는 단계를 더 구비하여 구성되고,
    상기 연속적인 간격에서 상기 특정 비디오 프레임을 위한 상기 트랜스코딩 비트율이 상기 타겟 프레임 크기에 따라 결정되는 것을 특징으로 하는 데이터 처리방법.
  20. 제19항에 있어서, 상기 타겟 프레임 크기가 상기 연속된 간격에서 갱신된 최소 및 최대 값 중 적어도 하나에 의해 한정되는 것을 특징으로 하는 데이터 처리방법.
  21. 제20항에 있어서, 상기 최소 및 최대 값 중 적어도 하나가 관련된 트랜스코딩 엔진 버퍼의 현재 풀니스에 따라 결정되는 것을 특징으로 하는 데이터 처리방법.
  22. 제20항에 있어서, 상기 최소 및 최대 값 중 적어도 하나가 관련된 디코더 버퍼를 언더플로우 또는 오버플로우로부터 보호하기 위해 결정되는 것을 특징으로 하는 데이터 처리방법.
  23. 제19항에 있어서, 상기 타겟 프레임 크기에 따라 상기 특정 비디오 프레임의 트랜스코드된 데이터를 구비하는 적어도 한 패킷을 전송하기 위한 시간을 예측하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 데이터 처리방법.
  24. 제19항에 있어서, 상기 타겟 프레임 크기에 따라 상기 특정 비디오 프레임의 트랜스코드된 데이터를 구비하는 적어도 한 패킷으로 클럭 참조 데이터를 삽입하기 위한 시간을 예측하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 데이터 처리방법.
  25. 제19항에 있어서, 상기 타겟 프레임 크기가 상기 연속된 간격에서 갱신된 최소 및 최대 값 중 적어도 하나에 의해 한정되는 것을 특징으로 하는 데이터 처리방법.
  26. 비디오 프레임을 구비하여 구성된 다수의 채널을 수신하는 통계적 리멀티플렉서에 있어서,
    상기 비디오 프레임의 트랜스코딩이 진행될 때 연속적인 간격에서 적어도 특정한 비디오 프레임에 대하여 여러번 트랜스코딩 비트율을 갱신하는 수단과;
    대응하는 한정되고 갱신된 트랜스코딩 비트율을 제공하기 위하여 상기 연속적인 간격의 각각에서 역시 갱신되는 최소 및 최대 레벨 중 적어도 하나에 의해 상기 갱신된 트랜스코딩 비트율을 한정하는 수단; 및
    상기 연속적인 간격에서 상기 특정 비디오 프레임의 대응하는 트랜스코딩 부분을 위하여 상기 한정되고 갱신된 트랜스코딩 비트율을 할당하는 수단을 구비하여 구성된 것을 특징으로 하는 통계적 리멀티플렉서.
  27. 특정 비디오 프레임이 통계적 멀티플렉서로 입력될 때 각 매크로블록이 관련된 구(old) 양자화 크기를 갖고, 상기 특정 비디오 프레임의 관련된 부분에서 다수의 매크로블록을 구비하는 특정 비디오 프레임을 포함하는, 비디오 프레임을 구비하여 구성된 다수의 채널을 수신하는 통계적 리멀티플렉서에서 데이터를 처리하는 방법에 있어서,
    상기 특정 비디오 프레임의 트랜스코딩의 결과로서 발생하는 것으로 기대되는 타겟 데이터 양을 계산하는 단계와;
    (a) 상기 대응하는 구 양자화 크기와, (b) 상기 특정 비디오 프레임에서 트랜스코딩되기 전의 데이터 양 대 (c) 상기 타겟 데이터 양의 비율에 따라 상기 특정 비디오 프레임의 첫번째 부분에서 대응하는 매크로블록을 트랜스코딩하는데 사용하는 새(new) 양자화 크기를 결정하는 단계를 구비하여 이루어진 것을 특징으로하는 데이터 처리방법.
  28. 제27항에 있어서, 상기 새 양자화 크기를 정수값으로 반올림하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 데이터 처리방법.
  29. 제27항에 있어서, 상기 부분이 상기 특정 비디오 프레임의 각 슬라이스를 구비하여 이루어진 것을 특징으로 하는 데이터 처리방법.
  30. 제27항에 있어서, 상기 새 양자화 크기가 상기 대응하는 구 양자화 크기보다 더 미세하지(finer) 않도록, 필요하다면, 조절되는 것을 특징으로 하는 데이터 처리방법.
  31. 제27항에 있어서, 트랜스코딩을 위해 상기 대응하는 매크로블록이 최소 비트수를 수신하는 것을 보장하기 위해 상기 새 양자화 크기가, 필요하다면, 조절되는 것을 특징으로 하는 데이터 처리방법.
  32. 제27항에 있어서, (a) 상기 대응하는 구 양자화 크기와, (b) 상기 특정 비디오 프레임의 남은 부분에서 트랜스코딩되기 전의 데이터 양 대 (c) 상기 남은 부분의 트랜스코딩의 결과로서 발생하는 것으로 기대되는 상기 타겟 데이터 양의 비율에 따라, 상기 특정 비디오 프레임의 두번째 부분에서 매크로블록을 트랜스코딩하는데 사용하는 새 양자화 크기를 결정하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 데이터 처리방법.
  33. 제32항에 있어서, 상기 남은 부분의 트랜스코딩의 결과로서 발생하는 것으로 기대되는 상기 타겟 데이터 양이 상기 특정 비디오 프레임의 트랜스코딩의 결과로서 발생하는 것으로 기대되는 상기 타겟 데이터의 양을 상기 첫번째 부분의 트랜스코딩에서 생성된 데이터 양 만큼 감소함에 의해 결정되는 것을 특징으로 하는 데이터 처리방법.
  34. 제32항에 있어서, 상기 남은 부분에서 상기 트랜스코딩되기 전의 데이터 양이 상기 특정 비디오 프레임에서 상기 트랜스코딩되기 전의 데이터 양을 상기 첫번째 부분에서 트랜스코딩되기 전의 데이터 양 만큼 감소함에 의해 결정되는 것을 특징으로 하는 데이터 처리방법.
  35. 제27항에 있어서, 상기 부분을 트랜스코딩하는데 사용되는 데이터 양의 러닝 카운트를 유지하는 단계를 더 구비하여 구성되고,
    상기 러닝 카운트가 최대 레벨을 초과하면, 트랜스코딩을 위한 최소 비트수를 수신하기 위해 남은 부분에서 매크로블록을 위한 남겨진 충분한 비트가 있을 때 까지 패닉 양자화 크기가 설정되는 것을 특징으로 하는 데이터 처리방법.
  36. 제35항에 있어서, 각 부분의 트랜스코딩 후에 상기 최대 레벨이 하향 조절되는 것을 특징으로 하는 데이터 처리방법.
  37. 제27항에 있어서, 각 매크로블록이 각자의 관련된 구 양자화 크기를 갖는 것을 특징으로 하는 데이터 처리방법.
  38. 제27항에 있어서, 매크로블록의 그룹이 각자의 관련된 구 양자화 크기를 갖는 것을 특징으로 하는 데이터 처리방법.
  39. 특정 비디오 프레임이 통계적 멀티플렉서로 입력될 때 각 매크로블록이 관련된 구 양자화 크기를 갖고, 상기 특정 비디오 프레임의 관련된 부분에서 다수의 매크로블록을 구비하는 특정 비디오 프레임을 포함하는, 비디오 프레임을 구비하여 구성된 다수의 채널을 수신하는 통계적 리멀티플렉서에 있어서,
    상기 특정 비디오 프레임의 트랜스코딩의 결과로서 발생하는 것으로 기대되는 타겟 데이터 양을 계산하는 수단과;
    (a) 상기 대응하는 구 양자화 크기와, (b) 상기 특정 비디오 프레임에서 트랜스코딩되기 전의 데이터 양 대 (c) 상기 타겟 데이터 양의 비율에 따라, 상기 특정 비디오 프레임의 첫번째 부분에서 대응하는 매크로블록을 트랜스코딩하는데 사용하는 새(new) 양자화 크기를 결정하는 수단을 구비하여 구성된 것을 특징으로 하는 통계적 리멀티플렉서.
KR10-2003-7004241A 2000-09-25 2001-09-04 다른 트랜스코딩 채널 사이에 대역폭 할당을 갖는 통계적리멀티플렉싱 KR20030061809A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/669,517 2000-09-25
US09/669,517 US6847656B1 (en) 2000-09-25 2000-09-25 Statistical remultiplexing with bandwidth allocation among different transcoding channels
PCT/US2001/027243 WO2002028108A2 (en) 2000-09-25 2001-09-04 Statistical remultiplexing with bandwidth allocation among different transcoding channels

Publications (1)

Publication Number Publication Date
KR20030061809A true KR20030061809A (ko) 2003-07-22

Family

ID=24686625

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7004241A KR20030061809A (ko) 2000-09-25 2001-09-04 다른 트랜스코딩 채널 사이에 대역폭 할당을 갖는 통계적리멀티플렉싱

Country Status (9)

Country Link
US (2) US6847656B1 (ko)
EP (1) EP1320997A2 (ko)
KR (1) KR20030061809A (ko)
CN (1) CN100459705C (ko)
AU (1) AU2001290599A1 (ko)
CA (1) CA2421794C (ko)
MX (1) MXPA03002527A (ko)
TW (1) TW529308B (ko)
WO (1) WO2002028108A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100694275B1 (ko) * 2005-01-21 2007-03-14 닛본 덴끼 가부시끼가이샤 신택스레벨에서 동화상의 압축 부호화된 비트스트림을변환하는 트랜스코더장치 및 동화상 통신시스템
KR100970315B1 (ko) * 2006-08-04 2010-07-15 가부시끼가이샤 메가 칩스 트랜스코더 및 부호화 화상 변환 방법

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19946267C2 (de) * 1999-09-27 2002-09-26 Harman Becker Automotive Sys Digitales Transcodiersystem
US7054362B1 (en) * 2001-05-29 2006-05-30 Cisco Technology, Inc. Methods and apparatus for updating a reduction ratio
US7675972B1 (en) 2001-07-30 2010-03-09 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7356079B2 (en) 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7173947B1 (en) * 2001-11-28 2007-02-06 Cisco Technology, Inc. Methods and apparatus to evaluate statistical remultiplexer performance
KR100430525B1 (ko) * 2001-12-17 2004-05-10 한국전자통신연구원 디지털 케이블 방송 시스템에서의 전송 스트림 처리장치와방법 및 그것을 위한 지연제어장치
US7292602B1 (en) * 2001-12-27 2007-11-06 Cisco Techonology, Inc. Efficient available bandwidth usage in transmission of compressed video data
US7418037B1 (en) * 2002-07-15 2008-08-26 Apple Inc. Method of performing rate control for a compression system
US7529276B1 (en) 2002-09-03 2009-05-05 Cisco Technology, Inc. Combined jitter and multiplexing systems and methods
US7804897B1 (en) * 2002-12-16 2010-09-28 Apple Inc. Method for implementing an improved quantizer in a multimedia compression and encoding system
US7940843B1 (en) 2002-12-16 2011-05-10 Apple Inc. Method of implementing improved rate control for a multimedia compression and encoding system
US20040193289A1 (en) * 2002-12-31 2004-09-30 Shi Chen Decoding system and method
US7925770B1 (en) * 2003-01-29 2011-04-12 Realnetworks, Inc. Systems and methods for selecting buffering time for media data
US7352809B2 (en) * 2003-02-21 2008-04-01 Polycom, Inc. System and method for optimal transmission of a multitude of video pictures to one or more destinations
US20050005304A1 (en) * 2003-05-07 2005-01-06 Ajai Kaul Superframe planning technique for DVB-RCS networks
US7274740B2 (en) * 2003-06-25 2007-09-25 Sharp Laboratories Of America, Inc. Wireless video transmission system
KR101017770B1 (ko) * 2003-06-26 2011-02-28 톰슨 라이센싱 슬라이딩 윈도 채널 제약에 부합하는 멀티패스 비디오레이트 제어
US7453852B2 (en) * 2003-07-14 2008-11-18 Lucent Technologies Inc. Method and system for mobility across heterogeneous address spaces
US20050094965A1 (en) * 2003-09-05 2005-05-05 Chen Jing Y. Methods and apparatus to improve the rate control during splice transitions
US9325998B2 (en) * 2003-09-30 2016-04-26 Sharp Laboratories Of America, Inc. Wireless video transmission system
US8018850B2 (en) 2004-02-23 2011-09-13 Sharp Laboratories Of America, Inc. Wireless video transmission system
US7784076B2 (en) * 2004-10-30 2010-08-24 Sharp Laboratories Of America, Inc. Sender-side bandwidth estimation for video transmission with receiver packet buffer
US8356327B2 (en) * 2004-10-30 2013-01-15 Sharp Laboratories Of America, Inc. Wireless video transmission system
US7797723B2 (en) * 2004-10-30 2010-09-14 Sharp Laboratories Of America, Inc. Packet scheduling for video transmission with sender queue control
US9462333B2 (en) 2010-09-27 2016-10-04 Intel Corporation Method for processing multimedia streams
US20060133513A1 (en) * 2004-12-22 2006-06-22 Kounnas Michael K Method for processing multimedia streams
AU2005329052B2 (en) * 2005-03-14 2011-08-11 The Nielsen Company (Us), Llc Compressed domain encoding apparatus and methods for use with media signals
US7668914B2 (en) * 2005-03-28 2010-02-23 Alcatel Lucent Milestone synchronization in broadcast multimedia streams
US20070067480A1 (en) * 2005-09-19 2007-03-22 Sharp Laboratories Of America, Inc. Adaptive media playout by server media processing for robust streaming
US7707485B2 (en) * 2005-09-28 2010-04-27 Vixs Systems, Inc. System and method for dynamic transrating based on content
US9544602B2 (en) * 2005-12-30 2017-01-10 Sharp Laboratories Of America, Inc. Wireless video transmission system
EP2574057B1 (en) 2006-01-05 2014-01-29 Telefonaktiebolaget L M Ericsson (publ) Media content management
US20070177519A1 (en) * 2006-01-30 2007-08-02 Thomsen Jan H Systems and methods for transcoding bit streams
US8068541B2 (en) * 2006-01-30 2011-11-29 Jan Harding Thomsen Systems and methods for transcoding bit streams
US7652994B2 (en) * 2006-03-31 2010-01-26 Sharp Laboratories Of America, Inc. Accelerated media coding for robust low-delay video streaming over time-varying and bandwidth limited channels
AU2007246157A1 (en) * 2006-04-28 2007-11-08 National Ict Australia Limited Packet based communications
US8861597B2 (en) * 2006-09-18 2014-10-14 Sharp Laboratories Of America, Inc. Distributed channel time allocation for video streaming over wireless networks
US7885189B2 (en) * 2006-09-20 2011-02-08 Rgb Networks, Inc. Methods and apparatus for rate estimation and predictive rate control
WO2008039857A2 (en) * 2006-09-26 2008-04-03 Dilithium Networks Pty Ltd. Method and apparatus for compressed video bitstream conversion with reduced-algorithmic-delay
US20080101405A1 (en) * 2006-10-26 2008-05-01 General Instrument Corporation Method and Apparatus for Dynamic Bandwidth Allocation of Video Over a Digital Subscriber Line
US7652993B2 (en) * 2006-11-03 2010-01-26 Sharp Laboratories Of America, Inc. Multi-stream pro-active rate adaptation for robust video transmission
US7843824B2 (en) 2007-01-08 2010-11-30 General Instrument Corporation Method and apparatus for statistically multiplexing services
GB2454168A (en) * 2007-10-24 2009-05-06 Cambridge Silicon Radio Ltd Estimating the number of bits required to compress a plurality of samples using a given quantisation parameter by calculating logarithms of quantised samples
US8594191B2 (en) * 2008-01-03 2013-11-26 Broadcom Corporation Video processing system and transcoder for use with layered video coding and methods for use therewith
JP5098043B2 (ja) * 2008-02-26 2012-12-12 株式会社メガチップス トランスコーダ
JP5550032B2 (ja) * 2008-08-05 2014-07-16 株式会社メガチップス トランスコーダ
US8798150B2 (en) * 2008-12-05 2014-08-05 Motorola Mobility Llc Bi-directional video compression for real-time video streams during transport in a packet switched network
FR2945697B1 (fr) * 2009-05-18 2016-06-03 Actimagine Procede et dispositif de compression d'une sequence video
US20100333149A1 (en) * 2009-06-24 2010-12-30 Rgb Networks, Inc. Delivery of pre-statistically multiplexed streams in a vod system
US8422859B2 (en) * 2010-03-23 2013-04-16 Vixs Systems Inc. Audio-based chapter detection in multimedia stream
WO2012025139A1 (en) * 2010-08-23 2012-03-01 Telefonaktiebolaget L M Ericsson (Publ) Improved program clock reference insertion
US9118939B2 (en) 2010-12-20 2015-08-25 Arris Technology, Inc. SVC-to-AVC rewriter with open-loop statistical multiplexer
US8885050B2 (en) * 2011-02-11 2014-11-11 Dialogic (Us) Inc. Video quality monitoring
US9185424B2 (en) * 2011-07-05 2015-11-10 Qualcomm Incorporated Image data compression
US20140112386A1 (en) * 2012-10-22 2014-04-24 General Instrument Corporation Algorithms for determining bitrate for a statistical multiplexing system to account for signal complexity including film mode and gop structural changes
CN104835167B (zh) * 2015-05-15 2017-05-24 张立华 一种基于空间影响域覆盖最大的航标自动选取方法
WO2017168206A1 (en) * 2016-03-29 2017-10-05 Huawei Technologies Canada Co., Ltd. Systems and methods for performing traffic engineering in a communications network
US10812550B1 (en) * 2016-08-03 2020-10-20 Amazon Technologies, Inc. Bitrate allocation for a multichannel media stream
US20220248041A1 (en) * 2021-02-01 2022-08-04 Facebook Technologies, Llc Pixel Block Encoder
CN114221870B (zh) * 2021-12-16 2023-01-20 北京达佳互联信息技术有限公司 用于服务器的带宽分配方法和装置

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887115A (en) 1993-01-13 1999-03-23 Hitachi America, Ltd. Method and apparatus for implementing a video tape recorder for recording digital video signals having either a fixed or variable data transmission rate
US5477397A (en) 1993-02-23 1995-12-19 Matsushita Electric Corporation Of America Digital high definition television receiver with features that facilitate trick-play modes on a digital VCR
KR950014858B1 (ko) 1993-06-04 1995-12-16 대우전자주식회사 디지탈 영상 기록장치
US5566208A (en) * 1994-03-17 1996-10-15 Philips Electronics North America Corp. Encoder buffer having an effective size which varies automatically with the channel bit-rate
JPH0837662A (ja) 1994-07-22 1996-02-06 Hitachi Ltd 画像符号化復号化装置
US5617142A (en) 1994-11-08 1997-04-01 General Instrument Corporation Of Delaware Method and apparatus for changing the compression level of a compressed digital signal
US5619733A (en) 1994-11-10 1997-04-08 International Business Machines Corporation Method and apparatus for synchronizing streaming and non-streaming multimedia devices by controlling the play speed of the non-streaming device in response to a synchronization signal
US5623312A (en) 1994-12-22 1997-04-22 Lucent Technologies Inc. Compressed-domain bit rate reduction system
WO1996026608A2 (en) 1995-02-22 1996-08-29 Philips Electronics N.V. System for transmitting a plurality of video programs simultaneously through a transmission channel
US5694170A (en) 1995-04-06 1997-12-02 International Business Machines Corporation Video compression using multiple computing agents
JP4223571B2 (ja) 1995-05-02 2009-02-12 ソニー株式会社 画像符号化方法及び装置
US5650860A (en) 1995-12-26 1997-07-22 C-Cube Microsystems, Inc. Adaptive quantization
US5686963A (en) 1995-12-26 1997-11-11 C-Cube Microsystems Method for performing rate control in a video encoder which provides a bit budget for each frame while employing virtual buffers and virtual buffer verifiers
JP2000508855A (ja) 1996-04-12 2000-07-11 イメディア コーポレイション ビデオ・トランスコーダ
US5933500A (en) 1996-05-31 1999-08-03 Thomson Consumer Electronics, Inc. Adaptive decoding system for processing encrypted and non-encrypted broadcast, cable or satellite video data
EP0851656A1 (en) 1996-12-23 1998-07-01 HE HOLDINGS, INC. dba HUGHES ELECTRONICS System and method for high resolution video compression by tiling
US6038256A (en) * 1996-12-31 2000-03-14 C-Cube Microsystems Inc. Statistical multiplexed video encoding using pre-encoding a priori statistics and a priori and a posteriori statistics
US6052384A (en) * 1997-03-21 2000-04-18 Scientific-Atlanta, Inc. Using a receiver model to multiplex variable-rate bit streams having timing constraints
US6240103B1 (en) 1997-03-21 2001-05-29 Scientific-Atlanta, Inc. Method and apparatus for detecting and preventing bandwidth overflow in a statistical multiplexer
US5949490A (en) 1997-07-08 1999-09-07 Tektronix, Inc. Distributing video buffer rate control over a parallel compression architecture
US6275507B1 (en) * 1997-09-26 2001-08-14 International Business Machines Corporation Transport demultiplexor for an MPEG-2 compliant data stream
JPH11196414A (ja) 1997-11-06 1999-07-21 Thomson Broadcast Syst コード化されたビデオデータを処理する装置及びその装置を使用したプログラムを配布するシステム
US6351474B1 (en) * 1998-01-14 2002-02-26 Skystream Networks Inc. Network distributed remultiplexer for video program bearing transport streams
US6327275B1 (en) * 1998-05-19 2001-12-04 General Instrument Corporation Remultiplexing variable rate bitstreams using a delay buffer and rate estimation
US6483543B1 (en) * 1998-07-27 2002-11-19 Cisco Technology, Inc. System and method for transcoding multiple channels of compressed video streams using a self-contained data unit
JP2000059793A (ja) * 1998-08-07 2000-02-25 Sony Corp 画像復号装置及び画像復号方法
US6167084A (en) 1998-08-27 2000-12-26 Motorola, Inc. Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals
WO2000021302A1 (en) 1998-10-02 2000-04-13 General Instrument Corporation Method and apparatus for providing rate control in a video encoder
AU762996B2 (en) 1999-02-09 2003-07-10 Motorola Australia Pty Ltd An image compression system and method of determining quantisation parameters therefor
US6643327B1 (en) * 2000-05-05 2003-11-04 General Instrument Corporation Statistical multiplexer and remultiplexer that accommodates changes in structure of group of pictures
US6724825B1 (en) * 2000-09-22 2004-04-20 General Instrument Corporation Regeneration of program clock reference data for MPEG transport streams
US7292602B1 (en) * 2001-12-27 2007-11-06 Cisco Techonology, Inc. Efficient available bandwidth usage in transmission of compressed video data

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100694275B1 (ko) * 2005-01-21 2007-03-14 닛본 덴끼 가부시끼가이샤 신택스레벨에서 동화상의 압축 부호화된 비트스트림을변환하는 트랜스코더장치 및 동화상 통신시스템
KR100970315B1 (ko) * 2006-08-04 2010-07-15 가부시끼가이샤 메가 칩스 트랜스코더 및 부호화 화상 변환 방법
US8204105B2 (en) 2006-08-04 2012-06-19 Megachips Corporation Transcoder and coded image conversion method

Also Published As

Publication number Publication date
WO2002028108A3 (en) 2002-10-31
WO2002028108A2 (en) 2002-04-04
CN1504051A (zh) 2004-06-09
US20050041689A1 (en) 2005-02-24
CN100459705C (zh) 2009-02-04
CA2421794A1 (en) 2002-04-04
AU2001290599A1 (en) 2002-04-08
CA2421794C (en) 2013-06-25
US6847656B1 (en) 2005-01-25
EP1320997A2 (en) 2003-06-25
TW529308B (en) 2003-04-21
MXPA03002527A (es) 2003-10-06

Similar Documents

Publication Publication Date Title
US6847656B1 (en) Statistical remultiplexing with bandwidth allocation among different transcoding channels
US6411602B2 (en) Method and apparatus for detecting and preventing bandwidth overflow in a statistical multiplexer
US6493388B1 (en) Rate control and buffer protection for variable bit rate video programs over a constant rate channel
CA2422131C (en) Method and apparatus for determining a transmission bit rate in a statistical multiplexer
US6643327B1 (en) Statistical multiplexer and remultiplexer that accommodates changes in structure of group of pictures
US6654421B2 (en) Apparatus, method and computer program product for transcoding a coded multiplexed sound and moving picture sequence
CA2421788C (en) Regeneration of program clock reference data for mpeg transport streams
CA2361047C (en) Method and apparatus for assuring sufficient bandwidth of a statistical multiplexer
KR20010073001A (ko) 압축 및 압축되지 않은 디지탈 비디오신호의 통계적다중화를 위한 동적 비트할당방법 및 그 장치
KR20000069473A (ko) 비디오 데이터 다중화 장치, 비디오 데이터 다중화 제어 방법,부호화 스트림 다중화 장치 및 방법과 부호화 장치 및 방법
US7173947B1 (en) Methods and apparatus to evaluate statistical remultiplexer performance
EP1173023B1 (en) Multiplex dependend video compression

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid