KR100228543B1 - Dpcm/dct 비디오 인코더의 전송율 제어 방법 - Google Patents

Dpcm/dct 비디오 인코더의 전송율 제어 방법 Download PDF

Info

Publication number
KR100228543B1
KR100228543B1 KR1019960045248A KR19960045248A KR100228543B1 KR 100228543 B1 KR100228543 B1 KR 100228543B1 KR 1019960045248 A KR1019960045248 A KR 1019960045248A KR 19960045248 A KR19960045248 A KR 19960045248A KR 100228543 B1 KR100228543 B1 KR 100228543B1
Authority
KR
South Korea
Prior art keywords
dct
image
bit
dpcm
gop
Prior art date
Application number
KR1019960045248A
Other languages
English (en)
Other versions
KR19980026713A (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 KR1019960045248A priority Critical patent/KR100228543B1/ko
Priority to US08/948,932 priority patent/US6028896A/en
Publication of KR19980026713A publication Critical patent/KR19980026713A/ko
Application granted granted Critical
Publication of KR100228543B1 publication Critical patent/KR100228543B1/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/146Data rate or code amount at the encoder output
    • 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/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • 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/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/172Methods 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 picture, frame or field
    • 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
    • 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/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

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

본 발명은 차분펄스부호변조/이산여현변환(DPCM/DCT)을 사용하는 비디오 인코더의 전송율 제어(Rate Control) 방법에 관한 것으로, 입력된 비트율(bit rate)로부터 영상 그룹(GOP), 영상, 매크로블럭의 순으로 비트를 할당하여 할당한 값과 실제 발생한 비트량을 비교하는 파라미터를 계산하여 양자기 스텝크기를 정하고, 또한 오버플로우나 언더플로우 경고를 발생시키는 잇점이 있으며, 간단한 알고리듬과 회로를 사용하면서도 성능은 우수함을 컴퓨터 모의실험에서 증명하였다.

Description

DPCM/DCT 비디오 인코더의 전송율 제어 방법
본 발명은 비디오 인코더의 전송율 제어 방법에 관한 것으로, 특히 차분펄스 부호변조(Differential Pulse Code Modulation : 이하 DPCM이라 칭한다) 및 이산 여현 변환(Discrete Cosine Transform : 이하 DCT라 칭한다)을 사용하는 비디오 신호대역 압축 기법을 통한 전송율 제어를 위해 인코더에서 버퍼의 오버 플로우나 언더플로우를 막으면서 화질을 최상의 상태로 유지하기 위한 DPCM/DCT 비디오 인코더 전송율 제어 방법에 관한 것이다.
DPCM/DCT 기법은 현재 가장 많이 사용되는 비디오 신호 대역 압축 기법이다. 국제 표준화 기구인 ISO/IEC 및 ITU-T에서 방송, 통신 및 멀티미디어 서비스를 위해 만든 디지틀 영상 데이터 압축 표준인 MPEG-1, MPEG-2, H.261등도 모두 DPCM/DCT 기법을 사용한다. 디지틀 영상 서비스의 수요가 계속 증가하므로 위의 표준을 이용한 DPCM/DCT 비디오 코덱의 수요는 향후 급격히 증가할 전망이다. 전송율 제어는 인코더에서 버퍼의 오버플로우나 언더플로우를 막으면서 화질을 가능한 한 최상의 상태로 유지하는 알고리듬으로서 표준과는 관계가 없이 인코더의 성능을 좌우하는 핵심 기술이다.
DPCM/DCT 비디오 신호 대역 압축방법은 비디오 신호가 공간적, 시간적으로 중복성(redundancy)이 많다는 성질을 이용하여 중복성을 제거하는 방법이다. 공간적 중복성을 제거하기 위하여 영상을 여러 개의 작은 블록(8X8화소)으로 나누어 2차원 이산 여현 변환을 한다. DCT를 거친 데이터(계수)는 주파수 성분에 따라 분포하게 된다. 대부분의 영상 데이터는 저주파 성분이 많기 때문에 DCT를 거친 영상 블록은 대부분 저주파 성분의 계수에 에너지가 가장 많이 분포하게 된다. 또한 인간의 시각은 영상의 고주파 성분에 둔감하다. 따라서 고주파 성분의 계수는 많이 생략하고 저주파 성분의 계수만 전송하게 되면 많은 데이터 압축 효과를 볼 수 있다. 시간적 중복성을 제거하기 위하여 현재 영상의 매크로블럭(16X16화소)과 가장 유사한 이전 영상의 매크로블럭을 찾아 두 매크로블럭의 차이값과 그 위치를 가리키는 벡터만을 전송하면 큰 데이터 압축 효과를 볼 수 있다. 벡터도 이전 매크로블럭의 벡터와의 차이값을 전송한다. 또한 통계적으로 자주 나오는 값에는 짧은 부호를 붙이고 통계적으로 자주 나오지 않는 값에는 긴 부호를 붙이면 또 다시 데이터 압축 효과를 볼 수 있다. DPCM/DCT를 사용하는 MPEG, H.121 등의 표준에는 위와 같은 압축 알고리듬, 여러 가지 가변길이 부호 및 이를 전송하기 위한 구문(syntax)을 상세히 규정해 놓고 있다.
DPCM/DCT 대역 압축 방법의 영상 부호화 모드에는 인트라(Intra : I)모드와 예측 부호화(Predictive : P)모드의 두가지 부호화 모드가 있다. I 모드에서는 영상 데이터의 공간적 중복성을 제거하기 위하여 영상 데이터를 블록 단위로 DCT 한후 DCT 계수를 양자화 하여 전송한다. P 모드에서는 영상과 영상사이의 시간적 중복성을 제거하기 위하여 매크로블럭 단위로 이전 영상으로부터 가장 유사한 부분의 움직임 벡터를 찾아서 찾아낸 매크로블럭과 현재 매크로블럭 블록과의 차이를 DCT 하고 양자화하여 벡터와 함께 전송한다.
I 모드는 영상 자체의 정보를 그대로 보내므로 언제든지 임의 접근(Random Access)하여 복호가 가능하지만 P 모드는 이전 영상으로부터 움직임 보상을 하므로 참조 영상이 반드시 있어야 한다. P 모드 영상이더라도 이전 영상과 유사한 부분을 발견하지 못한 매크로블럭은 I 모드로 전송한다. MPEG-2 에서는 임의 접근할 수 있는 단위를 영상 그룹(Group Of Picture : 이하 GOP라 칭한다))이라고 한다. 따라서 GOP의 첫 번째 영상은 참조영상을 필요로 하지 않는 I 모드이고 나머지 영상들은 모두 P 모드로 부호화한다. 일반적으로 동일한 화질을 유지할 때 I 모드영상에서 발생하는 비트스트림의 양이 P 모드에서 발생하는 비트스트림의 양보다 훨씬(약 3배)많다. 이는 움직임 보상을 하면 더 많은 데이터 압축 효과를 많이 볼 수 있기 때문이다. 인코더에서 부호화되어 나오는 비트스트림의 양은 입력 영상의 특성과 부호화 모드에 따라 크게 변하게 된다. 이렇게 가변적으로 발생하는 비트스트림을 항등율로 전송하기 위해서는 인코더와 디코더 양쪽에 버퍼를 두어 인코더의 데이터 발생량과 전송용량과의 차이를 완화시켜야 한다. 따라서 인코더에서 버퍼가 넘치거나 고갈되지 않도록 하기 위해 비트스트림 발생량을 전송용량에 맞도록 제어해야 하는데 이를 전송율 제어(Bit rate control)라고 한다. 전송율 제어를 하기 위해서는 부호화 단위마다 전송용량을 고려해서 적절하게 비트를 할당하고 할당한 만큼 실제 비트가 발생하도록 제어하는 것이 효과적이다. 비트스트림 발생량은 양자기 스텝크기로 조절한다. 양자기의 스텝크기가 커지면 양자화 손실이 증가하므로 복호 영상의 화질이 떨어지지만 비트 발생량은 감소한다. 양자기 스텝크기가 작아지면 복호 영상의 화질은 좋아지지만 비트 발생량이 상대적으로 증가한다. 따라서 전송율 제어는 복호 영상의 화질과 직접 관련이 있으며 표준화되지 않았기 때문에 인코더마다 다를 수 있으며 인코더의 성능을 좌우하게 된다.
종래의 DPCM/DCT 비디오 인코더 전송율 제어 알고리듬에서는 단순히 버퍼의 충만도에 비례하도록 양자기 스텝크기를 정하는 방법이나 입력 영상의 복잡도를 계산하여 복잡도에 비례하게 비트 할당을 하는 방법이 주로 사용되고 있었다. 버퍼의 충만도만을 고려하는 방법은 알고리듬과 회로가 단순하지만 화질의 변화가 심하여 효과적이라고 할 수 없고 영상의 복잡도를 계산하는 방법은 복잡도를 계산하기 위한 알고리듬과 회로가 복잡한 문제점이 있다.
본 발명은 상기에 기술한 바와 같은 종래 문제점을 해결하기 위하여 복잡도 계산을 하지 않아 구조가 간단하면서도 복잡도 계산을 하는 알고리듬과 비교해 볼 때 화질이 유사하여 우수한 성능을 가지도록 하는 DPCM/DCT 비디오 인코더 전송율 제어 방법을 제공하는 것을 목적으로 한다.
제1도는 본 발명에 따른 전송율 제어 과정을 나타내는 흐름도.
제2도는 본 발명에 따른 각 클럭의 타이밍도.
제3도는 본 발명에 따른 GOP 비트 할당을 나타내는 회로도.
제4도는 본 발명에 따른 GOP 비트할당량중 남은 비트량 R을 계산하는 과정을 나타내는 회로도.
제5도는 본 발명에 따른 영상 비트 할당을 나타내는 회로도.
제6도는 양자기 스텝크기를 정하기 위한 파라미터의 초기값, 언더플로우 및 오버플로우 경고, 버퍼 크기를 나타내는 회로도.
제7도는 본 발명에 따른 양자기 스텝크기를 정하는 것을 나타내는 회로도.
* 도면의 주요부분에 대한 부호의 설명
300,302 : 덧셈기 301 : 곱셈기
400 : 래치 1 401 : 래치 2
501 : 나눗셈기
상기와 같은 목적을 달성하기 위한 본 발명의 전송율 제어 방법은, GOP에 대한 초기 비트 할당량 TGOP를 정하는 단계; 상기 GOP를 이루는 영상들의 영상비트를 할당하는 단계; 상기 할당값들을 이용하여 양자기 스텝 크기를 정하기 위한 양자기 스텝 파라미터를 정하는 단계; 및 상기 양자기 스텝 파라미터에 비례하는 양자기 스텝 크기를 정하는 단계를 포함하는 것을 특징으로 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하면 다음과 같다.
효과적인 전송율 제어를 위해서는 전송용량을 고려하면서 부호화 단위마다 적절하게 비트할당을 하고 할당된만큼 비트가 발생하도록 제어해야 한다. 비트 할당은 GOP, 영상 및 매크로블럭의 순서와 같이 큰 부호화 단위부터 작은 부호화 단위의 순으로 한다. 가장 큰 단위인 GOP의 비트 할당량은 전송용량에 맞추고 GOP보다 작은 부호화 단위부터는 차 상위 부호화 단위의 비트 할당량의 한도내에서 차 상위 비트 할당량을 다시 나누어서 할당한다.
이를 상세히 설명하면, 상기에서 가장 큰 부호화단위인 GOP에 대한 초기 비트 할당량 TGOP는 전송용량에 맞추어 고르게 할당한다. 즉, 식(1)과 같이 전송용량(bit_rate), 초당 영상의 프레임 수(frame_rate) 및 GOP 내의 영상의 개수(nPinGOP)에 의해서 구한다.
한 GOP에 대한 부호화가 끝나고 다음 GOP에 비트를 할당할 때에는 식 (2)와 같이 GOP에 할당했던 비트량 TGOP와 실제로 발생했던 비트량 B와의 차이를 다음 GOP의 초기 비트 할당량에 더해주므로서 전체적인 비트 발생율이 전송용량을 벗어나는 것을 막는다.
상기와 같이 GOP의 비트 할당량을 전송 용량에 맞추었으므로 GOP를 이루는 영상들에는 GOP의 비트 할당량을 다시 분배하여 할당하면 된다. 영상의 비트 할당은 GOP내의 영상의 개수와 부호화 모드를 고려하여 할당한다. I 모드 영상은 P 모드 영상보다 더 많은 비트를 할당하여야 한다. 그 이유는 일반적으로 I 모드 영상이 P 모드 영상보다 비트 발생량이 많기 때문에 GOP내의 영상들을 균일한 화질로 유지하기 위해서이며 I 모드 영상은 다음에 오는 P 모드 영상의 움직임 보상을 위한 참조 영상이 되기 때문에 화질이 좋아야 보다 효율적인 대역 압축을 할 수 있기 때문이다.
따라서, I,P 모드 영상의 비트 할당량을 각각 TI,TP 라고 하면 식(3),(4)와 같이 TI가 TP의 3배가 되도록 결정한다. 여기서 3배는 수많은 모의실험 결과 통계적으로 정한 값이다. 식(4)에서 B는 GOP가 시작된 이후 그동안 발생한 비트량이며 nPinGOP`는 GOP 내 영상의 개수에서 아직 부호화 안된(앞으로 부호화 할)영상의 개수이다.
영상에 대한 비트량의 최소값 minTI, minTP를 규정하고 TI나 TP가 최소 비트량 minTI, minTP보다 작으면 비트 할당량을 minTI, minTP로 한다. minTI, minTP값은 식(5),(6)과 같이 전송 용량에 비례하도록 경험적으로 구하였다. 그 이유는 전송 용량에 비례해서 버퍼 크기, 지연, 화질 등이 정해지기 때문이다.
매크로블럭에 대한 비트 할당량 TMB는 식(7)과 같이 영상에 대한 비트 할당량을 한 영상을 구성하는 매크로블럭의 개수 nMBinP로 균등히 나누어 할당한다.
양자기 스텝크기는 매크로블럭마다 정할 수 있으므로 매크로블럭마다 할당량과 실제 발생량을 비교하여 양자기 스텝크기를 가감하여 전송율을 제어한다. 이를 위하여 파라미터를 상정하고 파라미터값에 비례하게 양자기 스텝크기를 변화시킨다. 식(8)은 양자기 스텝크기를 조절하기 위한 파라미터를 구하는 식이다.
이때dj는 j번째 매크로블럭의 파라미터값, d0는 dj의 초기값,는 j번째 매크로블럭 현재까지 발생한 비트량의 누계,는 j번째 매크로블럭까지의 비트 할당량의 누계치를 나타낸다. 양자기 스텝 크기는 파라미터 dj에 비례하여 결정된다. 따라서 현재 매크로블럭까지의 비트 할당량보다 실제로 발생하는 비트량이 커지면 dj가 증가하므로 양자기 스텝 크기도 증가하게 된다. 양자기 스텝 크기가 증가하면 비트 발생량은 감소하게 된다. 반대로 현재 매크로블록까지의 비트 할당량보다 실제 발생 비트량이 적으면 dj가 작아지고 양자기 스텝 크기가 작아지므로 비트 발생량은 늘어나게 된다. 식 (9),(10)은 파라미터 dj로부터 j번째 매크로블록의 양자기 스텝 Qj를 구하는 식이다.
식(9)의 의미는 dj가 r만큼 되었을 때 양자기 스텝 크기를31로 하겠다는 의미이다. MPEG이나 H.261과 같은 표준에서 양자기 스텝 크기의 최대값은 31이다. buffer_size는 버퍼의 크기를 의미한다. r은 양자기 스텝 크기의 변화하는 정도를 정하는 값이다. r이 작을수록 양자기 스텝 크기가 dj의 변화에 민감하게 반응하므로 비트 발생량이 비트 할당량에 빠르게 수렴하지만 양자기 스텝 크기값이 너무 자주 변하게 된다. r이 클수록 비트 발생량이 비트 할당량에 느리게 수렴하고 양자기 스텝 크기가 변하는 빈도가 작아진다.
식(10)은 r값을 인코더의 버퍼 크기에 비례하도록 정한다는 의미이다. 그 이유는 버퍼가 작을수록 오버플로우가 발생할 위험이 커지므로 화질보다는 비트 할당량에 빠르게 수렴하는 것이 중요하기 때문이다. 식(11)은 dj의 초기값 d0를 나타낸다.
식(11)은 초기 양자기 스텝크기 값이 10이 되도록 d0를 정한 것이다. 한 영상내의 매크로블럭들을 모두 부호화하면는 영상의 비트 할당량과 같아지므로 비트 발생량도 영상의 비트 할당량에 근접하게 된다. 영상의 마지막 매트로블록에 해당하는 dj는 다음 영상의 파라미터의 초기값 d0가 되고도 0으로 리셋한다.
버퍼의 크기는 전송용량의 10분의 1로 정하고 오버플로우 경고는 버퍼크기의 10분의 9, 언더플로우 경고는 버퍼의 10분의 1에서 발생하도록 하였다. 언더플로우 경고가 발생하면 인코더는 양자기 스텝크기를 최소 1로 하고 비트 스터핑(stuffing)을 한다. 오버플로우 경고가 발생하면 인코더는 양자기 스텝크기를 최대 31로 하고 필요하면 양자기에서 DCT 계수의 AC 성분을 지그재그 순서로 3개 정도만 남기고 강제로 모두 0으로 만든다. 필드 픽쳐로 부호화할때엔 GOP내 영상의 개수는 2배로 되고 버퍼의 크기나 언더/오버플로우 경고값이 2분의 1로 줄게 된다.
이하에서는 본 발명에서 제공하는 각각의 비트 할당량을 계산하는 회로들을 예시한다.
본 회로는 MPEG과 같은 DPCM/DCT 비디오 인코더에 부착되어 동작한다. 입력 신호는 리셋, GOP 클럭, 영상 클럭, 매크로블럭 클럭, 발생 비트, 전송율, GOP내 영상의 개수이며 매 매크로블록마다 양자기 스텝크기와 오버/언더플로우 경고를 출력한다. GOP 클럭(GOPck), 전송율, GOP내 영상의 개수(nPinGOP) 프레임 필드 픽쳐 선택(fr_fi)은 GOP 단위로 입력해야 한다. 영상 단위의 입력은 영상 클럭(pick)이고 매크로블럭 단위의 입력은 매크로블럭클럭(mbck), 발생 비트()이다. 출력은 매크로블럭마다 계산되는 오버/언더플로우 경고신호와 양자기 스텝크기이다. GOP클럭, 영상 클럭, 매크로블럭 클럭은 각각 GOP, 영상, 매크로블럭의 시작을 알리는 클럭으로서 시스팀 클럭의 한 주기(하강에서 하강)동안 1로 떠있어야 한다.
제1도와 제2도는 전송율 제어의 흐름도와 클럭의 타이밍도를 나타낸다. 인코더가 영상의 한 매크로블럭을 처리하기 위해서는 필터링, 움직임 보상, DCT, 양자화, 모드 계산 등의 처리 때문에 한 매크로블럭 클럭내에 처리 할 수가 없으며 이러한 계산 처리에 걸리는 레이턴시(latency) 시간이 필요하다. 따라서 한 영상 클럭내에 매크로블럭 클럭의 개수는 매크로블럭의 개수에 레이턴시 기간에 해당하는 매크로 블록 개수만큼을 더한 값과 같거나 그 보다 많아야 한다. 그러므로 첫 번째 매크로 블록에 해당하는 양자기 스텝크기의 결과는 첫 번째 매크로블럭 클럭에 출력되지 않고 매크로블럭 데이터가 움직임 보상과 DCT를 거친 후 양자기로 입력될 시점에 해당하는 매크로블럭 클럭에 출력되어야 한다. 그러므로 처음 레이턴시 기간동안 GOP 비트 할당과 영상 비트 할당량을 계산하면 된다.
제3도는 식(1)의 초기 GOP 할당량 TGOP를 구하는 아키텍쳐이다. 식(1)에서 frame_rate는 30을 실시예로 하였다. 전송율은 400분의 1 단위로 입력하도록 하였다. 그 이유는 MPEG 구문(syntax)에서 전송율을 400분의 1 단위로 전송하기 때문이다. 30으로 나누는 계산은 2의 배수(32,512,8192)로 나눈 결과를 덧셈기(300)에 입력하여 근사값을 계산한다. 2의 배수로 나누는 것은 비트만 자르면 되므로 간단한 하드웨어로 구현할 수 있다. 나눈 결과는 입력된 GOP길이(nPinGOP)와 곱해야 한다. 곱셈기(301)는 일반적인 16X16 곱셈기이다. 400을 다시 곱하는 것도 2의 배수(16,128)로 곱한 것을 덧셈기(302)로 더하면 된다. 2의 배수로 곱하는 것도 0만 붙이면 되므로 간단하게 구현될 수 있다. TGOP의 계산은 레이턴시로 인한 매크로블럭의 여유시간에 행한다. TGOP의 계산은 입력값이 변하지 않는한 한번 계산한 값을 래치하여 계속 유지하기 때문에 시간적 제약을 크게 받지 않는다. pct는 1일 때 I 모드 영상비트의 최소값 minTI, 0일 때 P 모드 영상비트의 최소값 minTP를 가리킨다.
제4도는 처음 GOP에 할당한 비트중 남은 비트(R)를 계산하는 회로이다. 한 영상이 끝날때마다 TGOP에서 실제로 발생한 비트량을 빼게 되며 이 값을 R이라 한다. 그러므로 R은 현재 GOP의 비트 할당량중 남은 비트량을 가리킨다. 한 GOP에 대한 부호화가 모두 끝나면 남은 R은 양수일 수도 있고 음수일 수 도 있게 된다. 다음 GOP가 시작되면 식(2)와 같이 초기 비트 할당량에 남은 R값을 더함으로서 GOP에서 실제로 발생된 비트량의 초과분 또는 부족분을 보상한다. 리셋 후 최초의 R값은 0이다. 리셋 신호에 의해서 래치 L1(400)과 L2(401)는 0으로 리셋된다. 래치 L1(400)의 인에이블(enable)신호인 GOPck_dl은 GOP클럭 다음 클럭에 뜬다. L1(400)은 GOP마다 값을 래치하는데 TGOP와 L2(401)와의 합이 래치된다. L2(401)는 GOP가 시작될때에만 L1(TGOP)(400)을 래치한 후 한 영상의 부호화가 끝날때마다 영상마다 실제 발생한 비트 genbits를 뺀 값(R)을 래치한다. L2(401)값은 음수(2의 보수)일 수도 있으므로 최상위 비트(MSB)가 부호 비트가 된다. GOPck_d2는 GOPck_d1보다 한 클럭 다음에 온다.
제5도는 영상에 대한 비트 할당량 (TI,TP)을 계산하기 위한 회로이다. 영상에 대한 비트 할당량 TI/TP는 식 (3),(4)와 같이 I 모드 영상에는 P 모드 영상보다 약 3배가량 더 많이 비트 할당을 한다. 이때 TI나 TP가 식(5),(6)에서 구한 minTI, minTP보다 작으면 최소 비트량 minTI, minTP로 한다. GOP 시작일때에는 L1(500)에 nPinGOP를 래치하고 그 후에는 매 영상 클럭마다 L1(500)을 1씩 감소시킨다. 나눗셈기(501)는 일반 나눗셈기이고 L2(502)에는 영상클럭이 후 나눗셈 결과가 나온 후에 래치한다.
제6도는 전송율로부터 버퍼 크기, 오버/언더플로우 경고 및 파라미터의 최초의 초기값(d0)을 만드는 아키텍쳐이다. 버퍼 크기는 전송율의 10분의 1, 오버플로우 경고 및 언더플로우 경고 신호는 각각 버퍼 크기의 10분의 9 및 10분의 1로 잡는다.
제7도는 양자기 스텝크기를 정하는 아키텍쳐이다. 파라미터의 초기값 d0는 리셋후 최초의 GOP에서 선택된다. 매크로블럭마다 발생하는 비트량 mb_genbits는 L3(702)에 의해서 매크로블럭마다 누산되어 래치되며 한 영상이 끝나면 genbits가 된다. L2(701)에는 영상이 시작할때에 계산된 TMB가 래치되어 있다. 따라서 L1(701)에는 매크로블럭마다 식(8)의 결과인 파라미터의 상태가 래치된다. 최종 양자기 스텝크기는 DIV_B를 거쳐 1에서 31까지 클램프(clamp)한 결과가 된다. 나눗셈기는 영상의 시작에 TMB를 계산할 때 쓰이고(나눗셈기A), 매 매크로블럭마다 양자기 스텝크기를 결정할 때 쓰이므로(나눗셈B) 하나의 나눗셈기와 다중화기(MUX), 역다중화기(DEMUX)를 이용하여 시분할하여 사용한다.
이상에서 상세히 설명한 바와 같이 본 발명은 DPCM/DCT 비디오 인코더의 전송율제어 알고리듬과 그 하드웨어 구현에 관한 것으로서 구조가 간단하면서도 성능이 뛰어나다. 모든 디지틀 비디오신호 대역 압축 비디오 인코더는 전송율 제어를 하여야 하며 전송율 제어는 표준화와는 무관한 인코더의 품질을 결정짓는 기술이다. 따라서 본 발명이 실시되면 디지틀 TV, 고선명 TV 또는 B-ISDN 통신용 코덱등과 같이 비디오 신호 대역 압축용 인코더 시스팀에 효과적으로 이용될 수 있다. 그리고 이 회로는 필드 프로그래머블 게이트 어레이(FPGA)나 주문형 반도체(ASIC)으로 구현될 수 있으므로 MPEG 이나 H.261등의 비디오 인코더의 칩내에 구현될 수 있다.
아울러 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이며, 당업자라면 본 발명의 사상과 범위안에서 다양한 수정, 변경 부가 등이 가능할 것이며 이러한 수정, 변경등은 이하의 특허 청구의 범위에 속하는 것으로 보아야 할 것이다.

Claims (9)

  1. 차분펄스부호변조/이산여현변환(DPCM/DCT)을 사용하는 비디오 인코더 전송율 제어 방법에 있어서, 영상그룹(GOP)에 대한 초기 비트 할당량(TGOP)을 정하는 단계와; 상기 GOP를 이루는 영상들에 대해 영상비트를 할당하는 단계와; 상기 영상을 구성하는 매크로블럭들에 대한 비트를 할당하는단계와; 상기 할당값들릉 이용하여 양자기 스텝 크기를 정하기 위한 양자기 스텝 파라미터를 정하는 단계; 및 상기 양자기 스텝 파라미터에 비례하는 양자기 스텝 크기를 정하는 단계를 포함하는 것을 특징으로 하는 차분펄스부호변조/이산여현변환(DPCM/DCT)을 사용하는 비디오 인코더 전송율 제어 방법.
  2. 제1항에 있어서, 상기 초기 비트 할당량(TGOP)은 하기의 식에 할당되는 것을 특징으로 하는 차분펄스부호변조/이산여현변환(DPCM/DCT)을 사용하는 비디오 인코더 전송율 제어 방법.
    (bit_rate : 전송 용량
    frame_rate : 초당 영상의 프레임 수
    nPinGOP : GOP내 영상의 개수)
  3. 제1항에 있어서, 상기 영상비트의 할당은 I모드 영상비트의 최소값(minTI)과 P모드 여상비트의 최소값(minTP)을 미리 정한 후, 상기 I모드 영상비트(TI)는 P모드 영상의 3배의 비트값을 할당하고, 상기 P모드 영상비트(TP)는 초기 비트 할당량(TGOP)으로부터 GOP가 시작된 이후 발생한 비트량을 뺀 값을 GOP내 영상의 개수에서 부호화 안된 영상의 개수로 나눈값을 할당하며, TI < minTI이거나 TP <minTP인 경우 영상비트 할당은 각각의 영상비트의 최소값(minTI, minTP)으로 할당되는 것을 특징으로하는 차분펄스부호변조/이산여현변환(DPCM/DCT)을 사용하는 비디오 인코더 전송율 제어 방법.
  4. 상기 I모드 영상비트의 최소값(minTI)은이고, 상기 P모드 영상비트의 최소값(minTP)은임을 특징으로 하는 차분펄스부호변조/이산여현변환(DPCM/DCT)을 사용하는 비디오 인코더 전송율 제어 방법.
  5. 제1항에 있어서, 상기 매크로 블록 비트 할당은, 상기 영상비트 할당량을 한 영상을 구성하는 매크로블록의 개수로 균등하게 나누어 할당하는 것을 특징으로 하는 차분펄스부호변조/이산여현변환(DPCM/DCT)을 사용하는 비디오 인코더 전송율 제어 방법.
  6. 제1항에 있어서, 상기 양자기 스텝 파라미터(di)는 실제로 매크로블록에서 발생한 비트들의 누계치에서 매크로블록에 할당된 비트의 누계치를 감한 값에 비례하게 정해짐을 특징으로 하는 차분펄스부호변조/이산여현변화(DPCM/DCT)을 사용하는 비디오 인코더 전송율 제어 방법.
  7. 제6항에 있어서, 상기 양자기 스텝 파라미터(di)는 하기의 식에 의해 정해짐을 특징으로 하는 차분펄스부호변조/이산여현변환(DPCM/DCT)을 사용하는 비디오 인코더 전송율 제어 방법.
    (d0; dj의 초기값,
    : j번째 매크로블록에서 현재까지 발생한 비트량의 누계,
    : j번째 매크로블록까지의 비트 할당량의 누계치)
  8. 제7항에 있어서, 상기 d0는,라 하고, buffer_size는 버퍼의 크기라 할 때,을 만족하는 것을 특징으로 하는 차분펄스부호변조/이산여현변환(DPCM/DCT)을 사용하는 비디오 인코더 전송율 제어 방법.
  9. 제1항에 있어서, 상기 양자기 스텝 크기 Qj는 하기의 식에 의해 정해짐을 특징으로 하는 차분펄스부호변조/이산여현변환(DPCM/DCT)을 사용하는 비디오 인코더 전송율 제어 방법.
KR1019960045248A 1996-10-11 1996-10-11 Dpcm/dct 비디오 인코더의 전송율 제어 방법 KR100228543B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019960045248A KR100228543B1 (ko) 1996-10-11 1996-10-11 Dpcm/dct 비디오 인코더의 전송율 제어 방법
US08/948,932 US6028896A (en) 1996-10-11 1997-10-10 Method for controlling data bit rate of a video encoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960045248A KR100228543B1 (ko) 1996-10-11 1996-10-11 Dpcm/dct 비디오 인코더의 전송율 제어 방법

Publications (2)

Publication Number Publication Date
KR19980026713A KR19980026713A (ko) 1998-07-15
KR100228543B1 true KR100228543B1 (ko) 1999-11-01

Family

ID=19477065

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960045248A KR100228543B1 (ko) 1996-10-11 1996-10-11 Dpcm/dct 비디오 인코더의 전송율 제어 방법

Country Status (2)

Country Link
US (1) US6028896A (ko)
KR (1) KR100228543B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6956899B2 (en) * 1998-03-23 2005-10-18 International Business Machines Corporation Precise bit control apparatus with look-ahead for MPEG encoding
FR2792798B1 (fr) * 1999-04-26 2001-05-25 Thomson Multimedia Sa Procede et dispositif de quantification pour compression video
US6556624B1 (en) * 1999-07-27 2003-04-29 At&T Corp. Method and apparatus for accomplishing multiple description coding for video
ATE536002T1 (de) * 2000-07-17 2011-12-15 Koninkl Philips Electronics Nv Ungleichgewichtiger fehlerschutz für packete mit variabler länge
TR200200680T1 (tr) * 2000-07-17 2002-09-23 Koninklijke Philips Electronics N. V. Sinyal kodlama.
US6831647B1 (en) 2000-09-28 2004-12-14 Rockwell Automation Technologies, Inc. Raster engine with bounded video signature analyzer
US7215339B1 (en) 2000-09-28 2007-05-08 Rockwell Automation Technologies, Inc. Method and apparatus for video underflow detection in a raster engine
EP1489850A4 (en) * 2002-03-28 2008-09-10 Sony Corp IMAGE COMPRESSION / CODING DEVICE, METHOD AND PROGRAM
TWI220636B (en) * 2002-11-13 2004-08-21 Mediatek Inc System and method for video encoding according to degree of macroblock distortion
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
CN100481943C (zh) * 2006-12-30 2009-04-22 清华大学 一种视频编码码率控制方法
US9872066B2 (en) * 2007-12-18 2018-01-16 Ibiquity Digital Corporation Method for streaming through a data service over a radio link subsystem

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970003789B1 (ko) * 1993-11-09 1997-03-21 한국전기통신공사 비디오 부호기의 전송율을 제어하기 위한 비트 할당 방법
EP0670663A1 (fr) * 1994-03-02 1995-09-06 Laboratoires D'electronique Philips S.A.S. Procédé et dispositif de codage de signaux numériques représentatifs d'une séquence d'images
US5877814A (en) * 1994-04-20 1999-03-02 Thomson Consumer Electronics, Inc. Asynchronous control signal generating apparatus
US5526054A (en) * 1995-03-27 1996-06-11 International Business Machines Corporation Apparatus for header generation
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

Also Published As

Publication number Publication date
US6028896A (en) 2000-02-22
KR19980026713A (ko) 1998-07-15

Similar Documents

Publication Publication Date Title
JP3533282B2 (ja) 複数のプロセッサを使用したビデオ圧縮
US5719632A (en) Motion video compression system with buffer empty/fill look-ahead bit allocation
KR100253931B1 (ko) 디지탈 영상 시퀀스의 디코딩 방법 및 장치
KR100610520B1 (ko) 비디오 데이터 부호화 장치, 비디오 데이터 부호화 방법, 비디오데이터 전송 장치 및 비디오 데이터 기록 매체
US5949490A (en) Distributing video buffer rate control over a parallel compression architecture
US6363119B1 (en) Device and method for hierarchically coding/decoding images reversibly and with improved coding efficiency
US5650782A (en) Variable length coder using two VLC tables
EP0535960B1 (en) Coding signal processor
KR970003789B1 (ko) 비디오 부호기의 전송율을 제어하기 위한 비트 할당 방법
US5892548A (en) Adaptive quantizer with modification of high frequency coefficients
US5461422A (en) Quantizer with automatic pre-threshold
EP0772362A2 (en) Video data compression
Gonzales et al. DCT coding for motion video storage using adaptive arithmetic coding
KR20000071026A (ko) 코딩 시스템내에서 속도 제어를 최적화하기 위한 장치 및 방법
KR100228543B1 (ko) Dpcm/dct 비디오 인코더의 전송율 제어 방법
KR20000057295A (ko) 재압축을 사용하는 메모리 관리 시스템을 위한 영상 요소 프로세서
JP3463291B2 (ja) 圧縮ディジタル・ビデオ・シーケンスをデコードし表示する方法および装置
EP1037473A1 (en) Device and process for regulating bit rate in a system for the statistical multiplexing of streams of images coded according to MPEG 2 coding
US6819712B2 (en) Video encoding apparatus and video encoding method
KR20010032337A (ko) 영상신호 부호화방법, 영상신호 부호화장치 및 프로그램기록매체
WO1991014339A1 (en) Digital image coding with quantization level computation
US5751357A (en) Method and arrangement for coding and decoding a video data stream for all picture elements of the video data stream
EP0772363A2 (en) Video data compression
JP3978810B2 (ja) 符号化方法およびこれを使用した符号化装置
JP3800965B2 (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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120807

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20130805

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20150804

Year of fee payment: 17

FPAY Annual fee payment

Payment date: 20160809

Year of fee payment: 18

EXPY Expiration of term