KR100531028B1 - Process for coding digital data of a video image sequence - Google Patents
Process for coding digital data of a video image sequence Download PDFInfo
- Publication number
- KR100531028B1 KR100531028B1 KR1019980708983A KR19980708983A KR100531028B1 KR 100531028 B1 KR100531028 B1 KR 100531028B1 KR 1019980708983 A KR1019980708983 A KR 1019980708983A KR 19980708983 A KR19980708983 A KR 19980708983A KR 100531028 B1 KR100531028 B1 KR 100531028B1
- Authority
- KR
- South Korea
- Prior art keywords
- bit rate
- buffer
- image
- coding
- instant
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000008569 process Effects 0.000 title description 5
- 239000000872 buffer Substances 0.000 claims abstract description 161
- 230000005540 biological transmission Effects 0.000 claims abstract description 24
- 238000013139 quantization Methods 0.000 claims description 32
- 230000008859 change Effects 0.000 claims description 9
- 230000006835 compression Effects 0.000 claims description 7
- 238000007906 compression Methods 0.000 claims description 7
- 230000002457 bidirectional effect Effects 0.000 claims description 4
- 238000005259 measurement Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 19
- 238000004364 calculation method Methods 0.000 description 7
- 238000007781 pre-processing Methods 0.000 description 7
- 230000033001 locomotion Effects 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000033228 biological regulation Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000001939 inductive effect Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/149—Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/164—Feedback from the receiver or from the transmission channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 가변 비트율로 전송을 하기 위하여 디지털 데이터인 비디오 시퀀스를 코딩하는 방법에 관한 것이다.The present invention relates to a method of coding a video sequence, which is digital data, for transmission at a variable bit rate.
상기 코딩하는 방법은, 순간시점(n)에서의 이미지에 대한 비트율 조정이 순간시점(n+τ)에서 전송 채널 비트율 예측에 관한 상관 관계에 따라 실행되는 것을 특징으로 하며, 이때에 τ는 이미지가 코더의 버퍼에 저장되는 순간시점과 이미지가 디코더 버퍼로부터 출력되는 순간시점사이의 일정한 시간이다.The coding method is characterized in that the bit rate adjustment for the image at the instant n is performed according to the correlation regarding the transmission channel bit rate prediction at the instant n + τ, where τ is It is a constant time between the instant stored in the coder's buffer and the instant outputted from the decoder buffer.
Description
본 발명은 오디오 디지털 데이터, 비디오 디지털 데이터, 또는 보조 디지털 데이터를 코딩하는 방법에 관한 것이다.The present invention relates to a method of coding audio digital data, video digital data, or auxiliary digital data.
더욱 상세하게, 본 발명은 오디오 및 비디오 디지털 데이터에 대하여 압축 방식을 사용하여, 가변 비트율로 전송하고 또한 저장하는 시스템들에 관한 것이다. 본 발명은 MPEG 2 표준과 호환된다.More particularly, the present invention relates to systems for transmitting and storing at variable bit rates using compression schemes for audio and video digital data. The present invention is compatible with the MPEG 2 standard.
비디오 압축 시스템의 역할은 가능한 한 낮은 전송 비트율로 가장 양호한 이미지 품질을 달성하는 것이다. 무엇보다도, 이러한 방식을 이용하여 수행되는 코딩 품질은 움직임 추정기(motion estimator)와 코더 조정 알고리듬(coder regulating algorithm)의 선택에 달려있다. 움직임 추정기와 코더 조정 알고리듬의 선택은 채택한 최적성 기준(optimality criteria)에 직접적으로 의존한다.The role of the video compression system is to achieve the best image quality at the lowest bit rate possible. First of all, the coding quality performed using this approach depends on the choice of motion estimator and coder regulating algorithm. The choice of motion estimator and coder adjustment algorithm depends directly on the optimality criteria adopted.
움직임 추정 면에서 보면, 기준 이미지에 대한 검색 성능은 중요한 특성이다. 조정(regulation)의 주요한 목표는 코딩된 이미지가 안정적인(stable) 품질을 유지하게 하는 것이다. 출력 비트율에 맞게끔 코딩을 조절하기 위하여 채택되는 "패딩" 인수(" padding " factor)은 (일반적으로 셋팅된 비트율을 유지하는 것을 가능하게 하기 위하여 데이터 스트림에 " 0 "을 삽입하는것) 최적 코딩이 되게 하기 위하여 최소화되어야 한다.In terms of motion estimation, the search performance for the reference image is an important characteristic. The main goal of the regulation is to ensure that the coded image maintains a stable quality. The "padding" factor, which is adopted to adjust the coding to match the output bit rate (usually inserts "0" in the data stream to make it possible to maintain the set bit rate), is optimized for To be minimized.
각 이미지를 코딩하는 데 드는 코스트는 가변적이다. 조정 루프(regulating loop)의 역할은, 이미지 복잡도의(이하에서 규정함) 변동에 기인하는 데이터 흐름의 변동을 정정하고 또한 출력으로서 데이터율 세팅에 대응하는 데이터 흐름을 전송하는 것이다. 이러한 조정은 일반적으로 버퍼 메모리의 충만도(fill level)에 따라 결정되는 양자화 간격(quantization interval)에 영향을 미친다. 코더의 출력측에 있는 상기 버퍼 메모리의 조정 루프의 응답 시간 때문에 생기는 비트율의 편차가 완화되는 것을 가능하게 하고, 또한 버퍼의 용량은 비트율의 편차에 관련된다.The cost of coding each image is variable. The role of the regulating loop is to correct for variations in the data flow due to variations in image complexity (defined below) and to transmit the data flow corresponding to the data rate setting as an output. This adjustment generally affects the quantization interval, which is determined by the fill level of the buffer memory. It is possible to alleviate the variation in the bit rate caused by the response time of the adjustment loop of the buffer memory at the output side of the coder, and the capacity of the buffer is related to the variation in the bit rate.
비디오 소스의 코더 출력단에서의 데이터 흐름은 가변적일 수 있다. 예컨대 단일 채널을 통하여 몇 몇 비디오 소스들을 전송하는 경우에, 다양한 소스사이에 동적으로(dynamically) 즉, 각각의 비디오 소스로부터 코딩되려는 이미지들의 복잡성에서의 변화의 함수로서 이러한 채널의 가용 "글로벌(global)" 비트율을 배당하는 것은 실제로 유리할 수 있다. 본 방법은, 기존의 방법 예컨대 전송된 프로그램(programme) 유형의 함수로 비디오 소스들에게 비트율을 할당하는 방법에 비교하여 전송된 이미지들에 대한 포괄적 품질을 향상시키는 것을 가능하게 한다.The data flow at the coder output of the video source may be variable. For example, in the case of transmitting several video sources over a single channel, these channels are available "global" dynamically as a function of the change in the complexity of the images to be coded from each video source. Allocating bitrates can actually be beneficial. The method makes it possible to improve the overall quality of the transmitted images as compared to existing methods such as assigning bit rates to video sources as a function of the transmitted program type.
도 1은 이러한 방법을 이용하는 한 세트의 전송을 도시한다. 상기 전송은 단일 전송 채널을 통하여 몇 몇의 코딩된 비디오 소스들로부터 일정한 글로벌 비트율로 전송하는 것을 포함한다. 이 비트율은 채널의 용량, 예를 들어 트랜스폰더 채널의 용량에 해당된다. 비디오 소스측(13i)의 코딩 회로들은 멀티플렉서(11)의 입력측에 링크되어 있고, 멀티플렉서의 출력은 채널을 통하여 전송되는 데이터 스트림을 공급한다. 비디오 소스측의 코딩 회로들은 또한 인터페이스 회로(14)에 링크되어 있는데, 인터페이스 회로는 비디오 소스들의 복잡도에 관련되는 데이터들을 비트율 할당기(12)에 전송하고, 또한 그 비트율 할당기(12)에 의하여 각각의 소스에 할당된 비트율들을 수신한다. 따라서 각 소스(13i)에 비트율을 할당하는 역할을 하는 비트율 할당기는 멀티플렉싱 회로, 즉 멀티플렉서(11)를 제어한다. 정보는 이 비트율 할당기(12) 및 인터페이스 회로(14)에 연결된 속도가 빠른 버스를 이용하여 교환된다. 감독 회로(15)는 전송 세트를 관리하기 위하여 상기 버스에 링크되어 있다.1 illustrates a set of transmissions using this method. The transmission includes transmitting at a constant global bit rate from several coded video sources over a single transport channel. This bit rate corresponds to the capacity of the channel, for example the capacity of the transponder channel. The coding circuits on the video source side 13i are linked to the input side of the multiplexer 11, and the output of the multiplexer supplies a data stream transmitted over the channel. The coding circuits on the video source side are also linked to the interface circuit 14, which transmits data pertaining to the complexity of the video sources to the bit rate allocator 12, and also by the bit rate allocator 12 Receive the bit rates assigned to each source. Therefore, the bit rate allocator, which serves to allocate a bit rate to each source 13i, controls the multiplexing circuit, that is, the multiplexer 11. Information is exchanged using a fast bus connected to this bit rate allocator 12 and interface circuit 14. Supervisory circuit 15 is linked to the bus to manage the transmission set.
멀티플렉싱은 예컨대 GOP 속도로 비트율 할당기에 의하여 동일한 채널을 통하여 전송된 각 비디오 소스에 할당된 비트율의 함수로 실행되며, 상기 GOP는 이하에서 정의한 이미지 그룹을 말한다. 상기의 비트율은 비디오 소스의 복잡도 계수에 의존하는데, 복잡도 계수는 소정의 양자화 간격동안에 생성된 정보량을 고려한다. 상기 복잡도 계수는 각 비디오 소스의 각 GOP를 위하여 측정된다. 양자화 간격이 일정하면 복잡도 계수는 예를 들어 GOP를 코딩하기 위하여 사용된 비트의 개수에 해당하며, 대안적으로 만약에 이 양자화 스텝(step)이 가변적이라면 복잡도 계수는 양자화 간격으로 곱해진 비트수에 해당되는 표준화된 비트 카운팅수(counting)에 해당된다. 데이터 흐름은 한 개의 GOP 기간동안에는 일정하기 때문에, 대응하는 소스에 있는 출력 버퍼는 한 개의 GOP 기간동안에 나타나는 비트율 스파이크를 완화해야 한다.Multiplexing is performed as a function of the bit rate assigned to each video source transmitted over the same channel, for example by the bit rate allocator at the GOP rate, said GOP being a group of images defined below. The bit rate is dependent on the complexity coefficient of the video source, which takes into account the amount of information generated during a given quantization interval. The complexity coefficient is measured for each GOP of each video source. If the quantization interval is constant, then the complexity coefficient corresponds to the number of bits used to code the GOP, for example. Alternatively, if this quantization step is variable, then the complexity coefficient is multiplied by the number of bits multiplied by the quantization interval. Corresponding to the corresponding standardized bit counting. Since the data flow is constant during one GOP period, the output buffer at the corresponding source must mitigate the bit rate spikes that appear during one GOP period.
각 소스의 비트율에 의존하는 통계학적 멀티플렉싱(statistical multiplexing)과 관련되는, 가변 비트율 인코더의 사용은 위에서 설명한 바와 같이 알려져 있고, 트랜스폰더 채널의 용량을 최적화하는 수단이다. 이러한 조정 방법들의 단점도 또한 알려져 있다. 이들 단점은 주로 디코더에 있는 버퍼 메모리의 크기이며, 이러한 버퍼 메모리 크기는 메모리가 고갈되거나 포화되지 않으면서 대응하는 비디오 소스들의 비트율 변동을 완화(absorbing)할 수 있기 위하여 클 필요가 있다. 디코더의 버퍼는 오버플로우(데이타가 손실됨)되지도 않아야 하고 고갈되지도 않아야 한다. 그래서 디코더의 코스트가 증가하게 된 것이다. 다른 면에서는, 필요한 메모리의 용량이 일반적으로 더 이상 MPEG 2 표준과 호환되지 않는다.The use of variable bit rate encoders, associated with statistical multiplexing depending on the bit rate of each source, is known as described above and is a means of optimizing the capacity of the transponder channel. The disadvantages of these adjustment methods are also known. These disadvantages are mainly the size of the buffer memory in the decoder, which needs to be large in order to be able to absorb bit rate variations of the corresponding video sources without running out of memory or saturation of the memory. The decoder's buffer must neither be overflowed (loss of data) nor exhausted. That is why the cost of the decoder has increased. In other respects, the amount of memory required is generally no longer compatible with the MPEG 2 standard.
비트율 순간 변동이 코더측에서 일어나던가 디코더 측에서 일어나던가 간에 또는 대안적으로 이들 버퍼 메모리 용량의 함수로서 제한되어야 하든지 상관없이, 비트율, 즉 이미지 레벨의 순간 변동(instantaneous variation)은 훨씬 더 큰 버퍼 메모리 용량을 일반적으로 필요로 한다.Whether bit rate instantaneous fluctuations occur at the coder side or at the decoder side or alternatively should be limited as a function of these buffer memory capacities, the instantaneous variation of the bit rate, i.e. image level, is much larger. Doses are generally needed.
도 1은 종래 기술에서 알려진 전송 세트를 나타낸 도면.1 shows a transmission set known in the prior art;
도 2는 MPEG2 표준에 따라 코딩하고 디코딩하는 장치를 나타낸 도면.2 shows an apparatus for coding and decoding according to the MPEG2 standard.
도 3은 비트율 함수로서 코더와 디코더의 버퍼 메모리의 충만도를 개략적으로 도시한 도면.3 schematically illustrates the fullness of the coder and decoder buffer memory as a function of bit rate;
도 4는 시간함수로서 가상 버퍼의 위치와 크기에 대한 변화예를 나타낸 도면.4 is a diagram showing an example of change in position and size of a virtual buffer as a time function;
도 5는 비트율 함수로서 코더의 물리적인 버퍼에 있는 가상 버퍼의 위치와 크기를 나타낸 도면.5 shows the position and size of a virtual buffer in the coder's physical buffer as a function of bit rate.
도 6은 비트율 함수로서 코더의 물리적인 버퍼에 있는 가상 버퍼의 크기를 나타낸 도면.6 shows the size of a virtual buffer in the coder's physical buffer as a function of bit rate.
도 7은 비트율 함수로서 파라미터(α)의 변화를 나타낸 도면.Fig. 7 shows the change of the parameter α as a function of the bit rate.
도 8은 본 발명에 따라 코딩을 하는 장치를 도시한 도면.8 illustrates an apparatus for coding in accordance with the present invention.
도 9는 본 발명에 따라 조정(regulation)을 하는 장치를 도시한 도면.9 illustrates an apparatus for regulation in accordance with the present invention.
도 10은 본 발명에 따른 조정 방법을 나타낸 순서도.10 is a flow chart showing an adjustment method according to the present invention.
본 발명의 목적은 상기에서 언급한 결점들을 제거하는 것이다.The object of the present invention is to eliminate the above mentioned drawbacks.
본 발명의 요지는 비디오 이미지 시퀸스의 디지털 데이터를 코딩하는 방법으로서, 코딩되려는 데이터의 양자화 간격에 작용하는 조정 루프를 이용한 코더 출력에서의 비트율에 대한 조정 및 상기 데이터 이미지의 압축을 실현하고, 디코더의 버퍼 측으로 가변 비트율로 채널을 통하여 코더가 데이터 전송을 할 수 있기 위하여 코더에 의한 출력 데이터를 버퍼에 저장하고, 및 상기 코더의 버퍼에 이미지를 저장하는 순간시점과 상기 디코더의 버퍼로부터 이미지를 출력하는 순간시점 사이에 일정한 시간(τ)이 있는 것을 보장하기 위한 상기 데이터 태깅(tagging)을 실현하며, 순간시점(n)에서의 이미지에 대한 비트율 조정이 순간시점(n+τ)에 대한 전송 채널의 비트율 예측(bit rate prediction)의 함수로서 실행되고, 또한 상기 조정(regulation)은 상기 코더 버퍼의 상위 주소(top address)와 하위 주소(bottom address)로 한정되는 가상 버퍼(virtual buffer)의 한계 값 내에서 실행되고, 상기 코더 버퍼의 출력에서의 전송 비트율에 대한 변동이 발생하기 시간(τ) 전에 개시하고 또한 시간(τ)으로 곱한 비트율 변동에 해당하는 값에 의존하여, 상기 가상 버퍼의 상기 상위 주소 즉 오프셋은 상기 코더 버퍼의 상위 주소에 따라 변화하는 것을 특징으로 한다.SUMMARY OF THE INVENTION An aspect of the present invention is a method of coding digital data of a video image sequence, which realizes compression of the data image and adjustment of the bit rate at the coder output using an adjustment loop that operates on the quantization interval of the data to be coded, In order to enable the coder to transmit data through the channel at a variable bit rate to the buffer side, the coder stores the output data by the coder in the buffer, and outputs the image from the buffer at the instantaneous time and the image stored in the buffer of the coder. Realizing the data tagging to ensure that there is a constant time τ between instants, and the bit rate adjustment for the image at the instant Implemented as a function of bit rate prediction, and the regulation is performed by the coder buffer. Runs within the limits of a virtual buffer defined by a top address and a bottom address, before the time τ of a change in the transmission bit rate at the output of the coder buffer occurs. And depending on the value corresponding to the bit rate variation multiplied by time [tau], the upper address of the virtual buffer, i.e. the offset, varies according to the upper address of the coder buffer.
본 발명의 다른 요지는 몇 개의 비디오 소스들로부터 데이터를 전송하는 방법으로서, 소정의 전송 채널을 통하여 데이터를 가변 비트율로 전송하기 위하여 데이터 코딩을 각 소스에 대해 실현하며, 채널가용 비트율 및 한 세트의 비디오 소스들로부터 선행 이미지의 복잡도 측정에 의존하여 채널을 통하여 상기 소스의 실제 비트율이 출현되기 시간(τ) 전에 각 소스에 대대 비트율 할당을 수행하는 것을 특징으로 하는 데이터 전송 방법에 관한 것이다.Another aspect of the present invention is a method of transmitting data from several video sources, which realizes data coding for each source in order to transmit data at a variable bit rate over a given transmission channel, the channel available bit rate and a set of And a large bit rate allocation to each source before a time τ of the actual bit rate of the source appears through the channel depending on the complexity measurement of the preceding image from the video sources.
본 발명의 특성과 장점은 첨부된 도면에 대한 참조 및 예를 이용하여 주어진 이하에 나오는 설명으로부터 더 잘 나타나 있다.The features and advantages of the present invention are better illustrated by the following description given by reference to the accompanying drawings and examples.
본 발명의 장점은 디코더에 있는 버퍼 메모리의 감소된 크기에 관한 것이다. 이 메모리는 따라서 매우 큰 범위 내에서 순간적인 비트율 변화를 허용하면서도 동시에 MPEG 2표준과 호환하게끔 되어 있다. 본 방법은 비디오 버퍼의 크기 제한에 숭응하는 디코더를 보장하면서도, 각 이미지, 비트율이 변경에 반응하는 성능을 갖고 있다. 이러한 성능은 비트율 변경에서의 최대 스텝, 즉 MP@ML MPEG2 형식(MPEG2 주 프로파일 주 레벨)의 1.5-15 Mbit/s 브래킷(bracket)에 대하여 어떤 제한도 도입하지 않는다는 면에서 가장 주목할 만하다.An advantage of the present invention relates to the reduced size of the buffer memory in the decoder. This memory is therefore intended to be compatible with the MPEG 2 standard while allowing instantaneous bit rate changes within a very large range. The method ensures a decoder that adapts to the size limitations of the video buffer, but has the ability to respond to changes in each image, bit rate. This performance is most notable in that it does not introduce any limit on the maximum step in bit rate change, namely 1.5-15 Mbit / s bracket of MP @ ML MPEG2 format (MPEG2 main profile main level).
본 발명이 갖고 있는 장점으로 말미암아, 채널의 가용 비트율은 최적화되는데, 다시 말하자면 각각의 비디오 소스 정보 복잡도의 함수로서 값과 시간이 최적화되는 방식으로 할당된다.Due to the advantages of the present invention, the available bit rate of the channel is optimized, i.e. assigned in such a way that the value and time are optimized as a function of the respective video source information complexity.
일반적으로 MPEG2라고 언급되는 비디오 압축의 원칙은 국제 권고(ISO/IEC 13818 H.262)의 요지이다. MPEG2 압축기의 기능적인 구조는 MPEG2 표준에서 설명하고 있는 바와 같이 알려져 있기 때문에 이하에서 간단하게만 상기하기로 한다.The principle of video compression, commonly referred to as MPEG2, is the subject of international recommendations (ISO / IEC 13818 H.262). Since the functional structure of the MPEG2 compressor is known as described in the MPEG2 standard, only a brief description will be given below.
코더의 비디오 입력단은 4.2.2 형식으로 디지털 코딩된 이미지를 수신한다. 공간 코딩(spatial coding)(인트라 이미지 즉 "인트라" 코딩)의 경우에 있어서, 이미지들, 더욱 정확하게 말하자면 이미지를 이루는 블록들은 이산 코사인 변환(DCT)이 직접 되고, 이어서 양자화 처리(이미지 I)를 받는데, 그 때에 양자화된 값들은 메모리 또는 버퍼에 저장되기 전에 가변 길이 코딩된다(VLC). 후자는 코더의 출력에서 비트율의 "평활(smoothing)"을 제공하고, 또한 조정 루프는 양자화 간격을 비트율 셋팅값으로 연결하는 것을 가능하게 한다. 역 DCT변환이 후속하는 역 양자화 처리는 또한 움직임 추정시 지원 역할을 수행하는 재구성된 이미지를 메모리에 저장하는 방식으로 수행된다.The coder's video input receives digitally coded images in 4.2.2 format. In the case of spatial coding (intra image or "intra" coding), the images, or more precisely the blocks that make up the image, are directly subjected to a discrete cosine transform (DCT) followed by a quantization process (image I). The quantized values are then variable length coded (VLC) before being stored in memory or buffer. The latter provides "smoothing" of the bit rate at the output of the coder, and the adjustment loop also makes it possible to link the quantization interval to the bit rate setting. The inverse quantization process, followed by an inverse DCT transform, is also performed in such a way as to store a reconstructed image in memory, which plays a support role in motion estimation.
인터-이미지 즉 "인터(inter)" 코딩은 블록들에 대한 이미지들간의 시프팅을 코딩함으로써 시간 중복성(temporal redundancy)을 활용할 수 있게 된다. 시간 코딩(temporal coding)의 두가지 형태는 다음과 같다 :Inter-image, or "inter" coding, can take advantage of temporal redundancy by coding shifting between images for blocks. The two forms of temporal coding are:
- 움직임 추정 동안에 선행하는 이미지들 중에서 자신과 유사한 형태의 이미지나 인트라 이미지들에만 단독으로 의존하는 순방향 예측(predictive) 코딩(P 이미지);Forward predictive coding (P image) that solely relies on only images of a similar or self-like form among preceding images during motion estimation;
- 코딩되려는 이미지와 직접 접하는 이미지들(I 및/또는 P 이미지)에 의존하는 양방향성 코딩(B 이미지).Bidirectional coding (B image) depending on the images (I and / or P images) directly contacting the image to be coded.
코사인 변환은 시간 코딩의 경우에 있어서 이미지들간의 차에만 적용된다. 따라서 벡터를 수반하는 양자화된 에러는 디코더에서 데이터의 재구성을 허용하는데, 상기 벡터는 이미지를 구성하는 블록들의 움직임의 특징을 나타낸다.The cosine transform only applies to the differences between the images in the case of time coding. The quantized error accompanying the vector thus allows the reconstruction of the data at the decoder, which characterizes the movement of the blocks making up the image.
그 다음 이미지(I 이미지)에 선행하는 이미지들(P 이미지, B 이미지)이 후속하는 이미지(I 이미지)로 구성되는 세트는 GOP(화상 그룹: Group Of Pictures)라고 불리운다.The set in which the images (P image, B image) preceding the next image (I image) is made up of the subsequent image (I image) is called GOP (Group Of Pictures).
비트율 조정의 원칙에 대한 설명, 즉 본 발명의 요지는, MPEG2 표준에서 설명하고 있는 것과 같은 VBV 모델을 인용한다.An explanation of the principle of bit rate adjustment, that is, the gist of the present invention, refers to the VBV model as described in the MPEG2 standard.
VBV 모델, 즉 비디오 버퍼링 검증기(Video Buffering Verifier)는 코더의 출력에 접속되어 있는 가상 디코더로서 정의할 수 있어서, 이것은 비트율의 변동에 대한 제약점들을 모델링하는 것이 가능하게 한다. 이는 디코더가 자신이 구비하는 버퍼로부터 디코딩되려는 이미지들을 순간적으로 추출한다는 가정 하에서이다. VBV 모델은 코더를 조정하는 알고리듬에 존재하게 되며, 또한 코더로 하여금 디코더의 버퍼로부터 이들 이미지가 출력되는 순간시점 값을 정확하게 알 수 있게 하는데 필수적이다. MPEG2 표준에 따라 도 2에서 설명한 방법을 이용하여 이들 디코딩 순간시점들을 결정하는데 책임이 있는 것은 코더 자신이다.The VBV model, or Video Buffering Verifier, can be defined as a virtual decoder connected to the output of the coder, which makes it possible to model constraints on variations in bit rate. This is under the assumption that the decoder instantaneously extracts the images to be decoded from its buffer. The VBV model is present in the algorithms to adjust the coders and is also essential for the coder to know exactly the instantaneous value at which these images are output from the decoder's buffer. It is the coder itself that is responsible for determining these decoding instants using the method described in FIG. 2 according to the MPEG2 standard.
코더(21)는 다음과 같은 구성 요소들로 이루어져 있다 :The coder 21 consists of the following components:
- 자신의 입력단, 즉 코더의 입력단에서의 디지털 비디오 데이터를 수신하는 코딩 모듈(211),A coding module 211 for receiving digital video data at its input, that is, at the input of the coder,
- 코딩 모듈로부터 시작하는 코딩된 데이터를 자신의 입력단에서 수신하는 출력용 버퍼(212),An output buffer 212 which receives at its input the coded data starting from the coding module,
- 결과적으로 구성되는 비트 스트림 또는 데이터 플럭스를 전송 채널(22), 케이블, 무선 링크 또는 위성 통신 링크를 통하여 전송하고, 또한 버퍼로부터 시작한 데이터에 클록 기준을 삽입하기 위하여 버퍼(212)의 출력에 자신의 입력이 링크되어 있는 삽입 회로(213), 및The resulting bit stream or data flux is transmitted over the transmission channel 22, cable, wireless link or satellite communication link, and also at its output at the output of the buffer 212 to insert a clock reference to the data starting from the buffer. An insertion circuit 213 to which an input of is linked, and
- 코더에서 이미지의 도착 순간시간에 해당되는 동기화 신호를 코딩 모듈(211)로부터 수신하고, 이 모듈 측으로 DTS(MPEG 2 표준에 따른 Decoding Time Stamp) "디코딩 순간시점" 을 전송하며, 또한 삽입 회로 측으로 PCR(Program Clock Reference) 클록 값을 공급하는 내부 클록 회로(214).The coder receives a synchronization signal corresponding to the instant of arrival of the image from the coding module 211, sends a Decoding Time Stamp (DTS) "decoding instant" according to the MPEG 2 standard to the module side, and also to the insertion circuit side Internal clock circuitry 214 for supplying a Program Clock Reference (PCR) clock value.
채널을 통하여 전송된 데이터는 디코더(23)의 입력측에 도달한다. 디코더는 다음의 구성 요소를 포함한다:Data transmitted through the channel reaches the input side of the decoder 23. The decoder includes the following components:
- PCR 클록 기준 추출을 하며, 또한 채널을 통하여 전송된 데이터를 자신의 입력단, 즉 디코더의 입력단에서 수신하는 디멀티플렉싱 회로(231),A demultiplexing circuit 231 which performs PCR clock reference extraction and also receives data transmitted through its channel at its input, ie at the input of the decoder,
- 상기 디멀티플렉싱 회로로부터 시작되는 데이터를 수신하는 디코더의 버퍼(232),A buffer 232 of the decoder for receiving data originating from the demultiplexing circuit,
- 자신의 입력단이 버퍼의 출력단에 링크되어 있으며, 코딩 동작에 반대되는 디코딩 동작을 실행하고 디코더(23)의 출력이기도 한 자신의 출력에서 디코딩된 비디오 데이터를 공급하는 디코딩 모듈(233), 및A decoding module 233 whose input is linked to the output of the buffer, which performs a decoding operation opposite to the coding operation and supplies decoded video data at its output, which is also the output of the decoder 23, and
- DTS 디코딩 순간시점을 판독하고 그 판독 신호를 전송하기 위하여 버퍼에도 링크되어 있고, 또한 PCR(Program Clock Reference) 기준을 수신하기 위하여 디멀티플렉싱 회로에도 링크되어 있는 내부 클록 회로(234).An internal clock circuit 234 linked to a buffer for reading the DTS decoding instant and transmitting a read signal thereof and also linked to the demultiplexing circuit for receiving a PCR (Program Clock Reference) reference.
따라서, 대략 매 100 ms마다, 코더의 내부 클록 값(PCR)은 운송 레이어(transport layer)(표준에서 정의되어 있음)의 레벨에서 MPEG2 비트 스트림상으로 전송된다. 디코더는 내부 클록 회로(234)에 위치하고 있는 위상 동기 루프, 즉 PLL을 이용하여 자신의 시간 기준을 래칭하기 위하여 이 PCR 값을 추출한다. 따라서 코더와 디코더는 공통되는 기준 클록을 갖게 된다.Thus, approximately every 100 ms, the coder's internal clock value (PCR) is transmitted on the MPEG2 bit stream at the level of the transport layer (as defined in the standard). The decoder extracts this PCR value to latch its time reference using a phase locked loop, or PLL, located in the internal clock circuit 234. The coder and decoder thus have a common reference clock.
코더의 입력에 제공된 각 이미지에 대하여 PCR 클록은 샘플링되고, 전이(transit) 시간만큼 보상된다. 얻어진 정보, 즉 디코딩 순간시점 태그(DTS = 디코딩 시간 스탬프)는 상기 이미지와 연관된 MPEG2 비트 스트림에 삽입되며, 또한 프로그램밍된 디코딩 순간시점에 해당된다.For each image provided at the input of the coder, the PCR clock is sampled and compensated by the transit time. The obtained information, i.e. the decoding instant tag (DTS = decoding time stamp), is inserted into the MPEG2 bit stream associated with the image and also corresponds to the programmed decoding instant.
디코더는 자신의 조정 버퍼에 있는 이미지들을 수신하는데 책임이 있으며, 그 조정 버퍼는 이미지 각각에 대하여 DTS 순간시점을 저장하며, 그 DTS 순간시점에 코더는 디코딩을 프로그래밍했다. 따라서, 디코더에서 재구성되는 PCR 클록 데이터가 버퍼의 출력측에 있는 이미지의 DTS 값에 도달할 때마다, 클록 회로는 디코딩을 초기화하고, 이미지에 해당되는 비트 스트림의 콘텐트(content)는 판독 신호를 이용하여 디코더의 버퍼에서 추출된다.The decoder is responsible for receiving the images in its calibration buffer, which stores the DTS instants for each of the images, at which time the coder programmed the decoding. Therefore, whenever the PCR clock data reconstructed at the decoder reaches the DTS value of the image on the output side of the buffer, the clock circuit initializes the decoding, and the content of the bit stream corresponding to the image is read using a read signal. Extracted from the decoder's buffer.
디코더에 있는 버퍼가 풀(full)상태에 있는 동안에(VBV_fullness = VBV_size), 디코더가 제일 먼저 인코딩된 이미지를 그 버퍼로부터 추출해야 한다는 가정을 했을 때에, 만약 VBV_ size가 디코더 버퍼의 크기라면, 또한 VBV_fullness 가 소정의 순간시점에서 상기 디코더 버퍼의 충만도(fill level)라면, 디코더는 자신의 출력측을 인에이블(enable)하기 전에 다음과 동일한 시간동안 기다려야 한다:While the buffer at the decoder is full (VBV_fullness = VBV_size), when the decoder first assumes that the encoded image should be extracted from the buffer, if VBV_ size is the size of the decoder buffer, then VBV_fullness If is the fill level of the decoder buffer at a given moment, the decoder must wait for the same time before enabling its output side:
여기서, τ는 버퍼들에서 전이 시간이다(엔드-투-엔드 지연: end-to-end delay)Where τ is the transition time in the buffers (end-to-end delay)
그리고, rate는 코더의 출력 비트율이다(전송 비트율).The rate is the output bit rate of the coder (transmission bit rate).
이것은 실제적으로 코더 버퍼에 이미지가 있는 시간이다.This is actually the time the image is in the coder buffer.
완전한 코딩/디코딩 체인에 대한 단순화된 다이어그램이 도 3에 도시되어 있다.A simplified diagram for the complete coding / decoding chain is shown in FIG.
이하의 표기가 채택되었다.The following notation has been adopted.
D1(t)=순간시점(t)에서 코딩 회로를 벗어 날 때의 비트율(코더 버퍼의 입력),D1 (t) = bit rate (input of the coder buffer) when leaving the coding circuit at the instant t (t),
D2(t)=순간시점(t)에서 디코딩 회로에 진입할 때의 비트율(디코더 버퍼의 출력),D2 (t) = bit rate (output of the decoder buffer) when entering the decoding circuit at the instant t,
B1(t)=순간시점(t)에서 코더의 버퍼 점유율,B1 (t) = coder's buffer occupancy at the instant (t),
B2(t)=순간시점(t)에서 디코더의 버퍼 점유율,B2 (t) = decoder's buffer occupancy at instant t
DC(t)= 순간시점(t)에서 채널 비트율.D C (t) = channel bit rate at instant t.
자신의 입력단에서 비디오 데이터를 수신하는 코딩 회로(31)는 버퍼의 점유율(buffer occupancy)인 데이터 양{B1(t)}으로 채워진 수신용기로 상징되는 버퍼 메모리(32)측으로 링크된다. 이 버퍼는 물리적인 링크, 무선 통신 링크, 또는 위성 통신 링크에 의하여 디코더 버퍼(34)의 입력 측으로 링크되는데, 이 링크는 전송 채널(33)이라고 언급된다. 각각의 버퍼(34)는 충만도{B2(t)}를 갖고 있다. 버퍼(34)의 출력은 디코딩 회로(35) 입력측으로 적합하게 링크되어 있다.The coding circuit 31 which receives the video data at its input is linked to the buffer memory 32 side which is symbolized by the reception container filled with the data amount B1 (t) which is the occupancy of the buffer. This buffer is linked to the input side of the decoder buffer 34 by a physical link, a wireless communication link, or a satellite communication link, which is referred to as transport channel 33. Each buffer 34 has a fullness {B2 (t)}. The output of the buffer 34 is suitably linked to the input of the decoding circuit 35.
τ1이 버퍼(32)에서의 이미지 상주 시간(residence time)이고, τ2는 버퍼(34)에서의 이미지 상주 시간(residence time)이고, τ는 코더의 버퍼로 이미지가 입력되는 순간시점과 디코더의 버퍼로부터 상기 이미지가 출력되는 순간시점 사이의 경과 시간이다.τ1 is the image residence time in the buffer 32, τ2 is the image residence time in the buffer 34, τ is the instant at which the image is input into the coder's buffer and the buffer of the decoder Is the elapsed time between the instantaneous time from which the image is output.
글로벌 처리 시간(압축+저장+전송+저장+압축해제)이 일정하게 되는 것을 보장하기 위하여, 각각의 이미지는 일정한 시간(τ)안에 코더와 디코더의 버퍼링 스테이지와 저장 스테이지를 통과해야 하는데, 코딩 및 디코딩 시간 자체는 일정하고, 코더의 입력단과 디코더의 출력 측에서의 비트율은 동일하다: τ=τ1+τ2=일정값.In order to ensure that the global processing time (compression + storage + transmission + storage + decompression) is constant, each image must pass through the buffering and storage stages of the coder and decoder in a certain amount of time (τ). The decoding time itself is constant, and the bit rates at the input side of the coder and the output side of the decoder are the same: τ = τ 1 + τ 2 = constant value.
도 2에 참조하자면 일정한 시간(τ)을 보장하기 위하여, 비트 스트림에 삽입되며 DTS로 표시된 디코딩 순간시점은, 코더의 입력에 이미지가 도달하는 시간에 해당되는 PCR 클록에 대한 샘플링 값이 코더 버퍼와 디코더 버퍼의 전이 시간(τ)(엔드-투-엔드 지연으로 지칭되는 전이 시간)과 동일하도록 포지티브 오프셋되게 함으로써 계산된다.Referring to FIG. 2, in order to guarantee a constant time τ, the decoding instants, which are inserted into the bit stream and denoted by DTS, may be configured to have a sampling value for the PCR clock corresponding to the time when the image arrives at the input of the coder. It is calculated by having a positive offset equal to the transition time τ (transition time referred to as end-to-end delay) of the decoder buffer.
τ는 완전한 이미지에 대한 전송 시간이기 때문에, 순간시점(t)에서 코더 버퍼의 입력의 비트율은 순간시점(t+τ)에서 디코더 버퍼의 출력의 비트율과 동일하다:Since τ is the transmission time for the complete image, the bit rate of the input of the coder buffer at instant t is equal to the bit rate of the output of the decoder buffer at instant t (τ):
D1(t)=D2(t+τ)D1 (t) = D2 (t + τ)
순간시점(t0)에서의 초기 조건은 다음과 같다:The initial conditions at the instant t0 are as follows:
B1(t0)=B2(t0)=0B1 (t0) = B2 (t0) = 0
순간시점(t0+τ)에서 디코더의 버퍼 상태는:At the instant (t 0 + τ), the decoder's buffer state is:
임의의 순간시점에, 코더의 버퍼 상태는 다음과 같다:At any instant, the coder's buffer state is:
마찬가지로, 순간시점(t+τ)에서의 디코더 버퍼 상태는 다음과 같이 기록할 수 있다:Similarly, the decoder buffer state at the instant t + τ can be written as:
따라서, 다음과 같은 식을 구할 수 있다:Thus, the following equation can be obtained:
위의 관계식은 코더 버퍼에서 측정된 값을 기초로 하여 디코더 버퍼의 동작의 특성을 규정한다.The above relation defines the behavior of the decoder buffer based on the values measured in the coder buffer.
채널상의 비트율이 일정할 때에, 버퍼 상태는 상호보완적이다:When the bit rate on the channel is constant, the buffer states are complementary:
B2(t+τ)=B2(t0+τ)-B1(t), 이때 B2(t0+τ)는 디코더 버퍼의 초기 상태B 2 (t + τ) = B 2 (t 0 + τ) -B 1 (t), where B 2 (t 0 + τ) is the initial state of the decoder buffer
이 결과는 인코더 버퍼와 디코더 버퍼들을 통과하는 데이터 아이템의 통과 시간과 일치하는 지연 시간이 있으면서, 이들 두 개의 버퍼들간에서 베슬(vessel)들을 통신하는 것에 관한 직관적인 원칙을 표현한다.This result represents an intuitive principle for communicating vessels between these two buffers, with a delay time that matches the pass time of the data item passing through the encoder buffer and decoder buffers.
MPEG2의 메인 프로파일 메인 레벨(MP@ML) 비디오 코딩에 있어서 두 개의 버퍼 량을 합산하여 얻은 상수값은 1.835 Mbit까지로 제한된다.In MPEG2's main profile main level (MP @ ML) video coding, the constant value obtained by summing two buffer amounts is limited to 1.835 Mbit.
채널에서의 비트율이 가변적일 때에, 디코더 버퍼의 상태는 다음과 같은 양을 갖는 조건 하에서 명백하게 알 수 있다:When the bit rate in the channel is variable, the state of the decoder buffer can be clearly seen under conditions with the following amounts:
B1(t)+B2(t+τ)에 동일한 상기 양은 코더 버퍼에 위치하며 이하에서 설명하는 바와 같은 가상 버퍼의 오프셋을 특정짓는다.This amount equal to B1 (t) + B2 (t + τ) is located in the coder buffer and specifies the offset of the virtual buffer as described below.
도4는 버퍼의 축적된 점유율-코더의 버퍼와 디코더의 버퍼에 축적되는 정보의 양-을 시간의 함수로서 나타내고 있는데, 각 버퍼의 충만도(fill) 변화를 추론하는 것을 가능하게 한다.Fig. 4 shows the accumulated occupancy of the buffer—the amount of information accumulated in the buffer of the coder and the buffer of the decoder—as a function of time, making it possible to infer the change in fill of each buffer.
횡축은 시간을 나타내고 종축은 버퍼들에 축적되는 정보의 양, 즉 축적된 점유율을 나타낸다.The horizontal axis represents time and the vertical axis represents the amount of information accumulated in the buffers, i.e., the accumulated occupancy rate.
커브(41)는 코더 버퍼에 대한 것으로서 버퍼 기록 주소나 버퍼 기록 포인터에 대한 것이라고도 말할 수 있으며, 각 버티컬 스트로크(vertical stroke)는 이미지를 인터 코딩 또는 인트라 코딩하기 위하여 필요한, 버퍼가 저장하는 정보의 양을 나타낸다(인트라 코딩의 경우에 스트로크의 길이는 더 길다).The curve 41 may be referred to as a coder buffer, either to a buffer write address or to a buffer write pointer, where each vertical stroke is a representation of the information stored by the buffer, which is necessary for intercoding or intracoding the image. Amount (the length of the stroke is longer in the case of intra coding).
커브(42)는 디코더 버퍼, 디코더 버퍼 판독 포인터에 대한 것이며, 버퍼에서 출발하는 축적되었던 정보의 양을 나타낸다. 위에서 설명한 관계에 의하여, 상기 두 번째의 그래프는 첫 번째 커브의 종축을 따라 값(τ)만큼 이동한 것이다.Curve 42 is for the decoder buffer, decoder buffer read pointer, and represents the amount of accumulated information starting from the buffer. By the relationship described above, the second graph is moved by the value τ along the longitudinal axis of the first curve.
커브(43)는 코더 버퍼에서 출발하는 축적된 정보의 양과, 디코더 버퍼로 입력되는 정보의 양을 나타낸다. 이들 그래프들은 중첩되며 채널을 통하여 전송되는 정보의 양을 나타내는데, 그 이유는 채널에서의 전이(transit) 시간이 증명을 간단하게 하기 위하여 제로로 가정되었기 때문이다. 사실상, 그래프(43)는 코더 버퍼의 판독 포인터를 나타내며, 이것은 디코더 버퍼의 기록 포인터상으로 중첩된다. 상기 커브의 기울기는 채널 비트율{Dc(t)}, 즉 코더 버퍼의 출력에서의 비트율, 디코더 버퍼의 입력에서의 비트율이다.Curve 43 shows the amount of accumulated information starting from the coder buffer and the amount of information input to the decoder buffer. These graphs overlap and represent the amount of information transmitted over the channel since the transit time in the channel was assumed to be zero to simplify the proof. In fact, graph 43 represents the read pointer of the coder buffer, which is overlaid onto the write pointer of the decoder buffer. The slope of the curve is the channel bit rate Dc (t), that is, the bit rate at the output of the coder buffer and the bit rate at the input of the decoder buffer.
커브(44)는 코더 버퍼의 실제 크기를 상징하며, 커브(45)는 디코더 버퍼의 크기를 상징한다. 이것은 커브(43)를 종축을 따라 이동시킨 것으로서, 전자의 경우에 있어서는 코더 버퍼의 크기를 계수로 한(modulus) 포지티브 벡터만큼 이동시키고, 후자의 경우에 있어서는 디코더 버퍼의 크기를 계수로 한 네가티브 벡터만큼 이동시킨 것이다. 마지막으로, 커브들(46, 47)은 가상 버퍼의 위치와 크기를 한정함으로서 코더 버퍼에 있는 가상 버퍼를 모델링하는데 기여한다.Curve 44 represents the actual size of the coder buffer, and curve 45 represents the size of the decoder buffer. This is a shift of the curve 43 along the longitudinal axis. In the former case, the coder buffer is moved by a positive vector modulated by the modulus, and in the latter case, the negative vector is obtained by using the size of the decoder buffer as the coefficient. As much as I moved. Finally, curves 46 and 47 contribute to modeling the virtual buffer in the coder buffer by defining the location and size of the virtual buffer.
상기 가상 버퍼는 코더 버퍼에 있는 "유용한" 조정 영역을 나타내며, VBV 모델에서의 코더 버퍼에서는 이미지를 구성한다.The virtual buffer represents a "useful" adjustment area in the coder buffer, which in the VBV model constitutes an image.
코더의 물리적인 버퍼(physical buffer)에서의 위치지정은 모든 비트율에 있어서 각 이미지에 대한 전이 시간이 일정하게 되는 것을 보장하도록 계산된다.Positioning in the coder's physical buffer is calculated to ensure that the transition time for each image is constant at all bit rates.
이것은 소정 순간시점(t)에서 조정 영역에서의 최대 주소인 파라미터(VBV_offset)에 의하여 한정된다. 이것은 커브(43)와 커브(46)간의 편차에 해당하며, 종축에서 읽을 수 있다.This is defined by the parameter VBV_offset which is the maximum address in the adjustment area at a predetermined instant t. This corresponds to the deviation between curve 43 and curve 46 and can be read on the longitudinal axis.
상기 파라미터(VBV_offset)를 알 수 있으면 모든 순간시점에 디코더가 VBV 모델의 경우에 있어서 버퍼 점유율 제한조건들에 순응하였는지의 여부를 확인하는 것이 가능해진다. 조정 알고리듬을 적합하게 작용시키기 위하여 이것을 아는 것은 필수이다.Knowing the parameter VBV_offset makes it possible to determine whether at all instants the decoder has complied with the buffer occupancy constraints in the case of the VBV model. It is necessary to know this in order to function the tuning algorithm appropriately.
코더의 물리적인 버퍼에서의 가상 버퍼의 위치지정은 다음에 표시한 바와 같이 얻을 수 있다.The positioning of the virtual buffer in the coder's physical buffer can be obtained as shown below.
그 관계식은 다음과 같다:The relation is as follows:
상기 관계식은 이미지 레벨에서 "이산 처리(discretizing)"하여 나타낼 수 있다:The relation can be represented by "discretizing" at the image level:
상기 이산 공식에 있어서:In the discrete formula:
- n은 순간시점(t)에서의 이미지를 나타낸다n represents the image at the instant t
- Dc(k)는 이미지(k)를 코딩하는 동안에, 코더의 출력측에서의 이미지당 비트율(bits per image)을 나타낸다Dc (k) represents bits per image at the output side of the coder while coding image k.
- τ는 지속기간(τ)동안의 이미지 개수로 나타나 있다.τ is represented by the number of images during the duration τ.
따라서 이전 이미지에 대한 식을 다음과 같이 얻을 수 있다:Thus, the expression for the previous image can be obtained as follows:
이것으로부터 버퍼 점유율 인자의 변동이 구해진다:From this the variation in the buffer occupancy factor is obtained:
여기서 다음의 내용을 주목하자:Note the following here:
ΔB1(n)=ΔD1(n)-Dc(n)-εDc(n) ΔB 1 (n) = ΔD 1 (n) -D c (n) -ε Dc (n)
우리는 가상 버퍼의 점유율 인자를 갱신하는 공식을 얻게 된다:We get a formula to update the occupancy factor of the virtual buffer:
ΔB2(n+τ)=Dc(n+τ)-ΔD1(n)+εDc(n) ΔB 2 (n + τ) = D c (n + τ) -ΔD 1 (n) + ε Dc (n)
상기 공식에서 ΔD1(n)은 순간시점(n)에서 이미지 코딩 코스트에 해당되며, 또한 Dc(n+τ)는 순간시점(n+τ)에서의 코더 출력측에서의 예상 비트율이다. 상기 등식에서의 세 번째 항은 순간시점(n)에서 측정된 실제 측정값{Dc(n)}과 코더 출력측에서의 예상 비트율간의 에러이다.ΔD 1 (n) in the above formula corresponds to the image coding cost at instant n, and D c (n + τ) is the expected bit rate at the coder output side at the instant n. The third term in the equation is the error between the actual measured value Dc (n) measured at the instant n and the expected bit rate at the coder output.
따라서, 순간시점(n)에서의 이미지 코딩 코스트(cost of coding)는 순간시점(n+τ)에서의 코더 출력측에서의 예상 비트율에 의존한다. 상기의 기본 원칙에 따라, 임의의 순간시점에 있어서 다음과 같은 계산을 함으로서 VBV 모델의 버퍼 점유율 정보를 구할 수 있다:Thus, the cost of image coding at instant n depends on the expected bit rate at the coder output side at instant n + τ. According to the above basic principle, the buffer occupancy information of the VBV model can be obtained by calculating the following at any instant:
VBV_fullness(n)=VBV_fullness(n-1)+Dc(n+τ) - Last_picture_cost+εDc(n)VBV_fullness (n) = VBV_fullness (n-1) + Dc (n + τ)-Last_picture_cost + εDc (n)
위에서의 조건에 따라, 셋팅값은 이미지(n)을 코딩하기 바로 직전에 수신되고 외부 장치(비트율 할당기)에서 시작된다.According to the above conditions, the setting value is received just before coding the image n and started at an external device (bit rate allocator).
상기 비트율 할당기는 순간시점(τ) 후의 채널 비트율을 예측하기 위하여 예컨대 GOP 지속기간동안의 선행 이미지에 대한 복잡도를 수신하는데, 그 복잡도는 동일한 채널을 통하여 전송되는 것이 요구되는 비디오 소스들의 복잡도를 고려한다.The bit rate allocator receives the complexity of the preceding image, for example during the GOP duration, to predict the channel bit rate after the instant τ, the complexity taking into account the complexity of the video sources that are required to be transmitted over the same channel. .
만약에 Bpp(n)이 이미지 주기(n+τ)동안에 있어서의 코더 출력측의 예상 채널 비트율 셋팅값을 표기하는 것이라면, 다음의 등식에 의하여 이미지 레벨에 대한 VBV 모델의 갱신을 한정하는 것이 가능해 진다 :If Bpp (n) denotes the expected channel bitrate setting at the coder output during the image period n + τ, then it is possible to limit the update of the VBV model to the image level by the following equation:
VBV_fullness(n) = VBV_fullness(n-1) + Bpp(n) - Last_picture_cost + εBpp(n-τ)VBV_fullness (n) = VBV_fullness (n-1) + Bpp (n)-Last_picture_cost + εBpp (n-τ)
여기서:here:
εBpp(n- τ)= Bpp(n- τ) - Dc(n)이며, 이것은 이미지(n- τ)를 코딩하기 전에 수신한 셋팅값과, 이미지를 코딩하고 있는 동안에(n) 코더의 출력측에서의 실제 비트율간의 에러를 나타낸다.εBpp (n−τ) = Bpp (n−τ) −Dc (n), which is a setting received before coding the image (n−τ) and at the output side of the coder while coding the image (n). Indicates an error between the actual bit rates.
이러한 관계식은 우리로 하여금 가변 비트율 코더의 주요한 동작 조건을 가정하는 것을 요구한다:This relationship requires us to assume the main operating conditions of a variable bit rate coder:
조정 알고리듬이 수신한 그 비트율 정보 신호는 코더 버퍼에서 디코더 버퍼로의 전이 시간와 동일한 일정량의 시간만큼 코더 출력에서 그것의 실제 응용보다 선행해야 한다.The bitrate information signal received by the coordination algorithm must precede its actual application at the coder output by an amount of time equal to the transition time from the coder buffer to the decoder buffer.
디코더 버퍼 상태의 모델링은, 코더로 순간시점(t)에 제공된 이미지를 코딩하는 순간에 수평구간(horizon)[t, t+τ]에 걸쳐서 채널 비트율을 연역적으로 인지하는 단계를 포함한다.The modeling of the decoder buffer state involves deductively recognizing the channel bit rate over the horizon [t, t + τ] at the moment of coding the image provided at the instant t with the coder.
따라서, 상기 가상 버퍼의 위치를 제어함으로써, 코더는 디코더에서 발생할 수 있는, 가능한 임의의 한도초과(overstepping)가 일어났는지를 예측할 수 있다. 도 4에 참조하자면, 가상 버퍼에 의한 디코더 버퍼의 재생은 비트율이 변하고 있는 동안에 예측 메카니즘을 포함한다.Thus, by controlling the location of the virtual buffer, the coder can predict if any possible overstepping has occurred that may occur at the decoder. Referring to Fig. 4, the reproduction of the decoder buffer by the virtual buffer includes a prediction mechanism while the bit rate is changing.
높은 비트율에 대하여, 코더를 조정하기 위한 유용한 영역은 커브(43, 44)에 의하여 표시된 물리적 버퍼(physical buffer)의 상부( "top" part)에 위치하며, 낮은 비트율이 되면 버퍼의 하부로 스위칭된다.For high bit rates, a useful area for adjusting the coder is located at the "top" part of the physical buffer indicated by curves 43 and 44, and at low bit rates it switches to the bottom of the buffer. .
이러한 스위칭은 채널의 비트율이 지속기간(τ)만큼 변경되는 것을 예측한다.This switching predicts that the bit rate of the channel changes by the duration [tau].
두 개 버퍼의 통과 시간은 일정하다. 허용 가능한 최소 비트율에서 동작하도록 하기 위하여, 그것은 버퍼의 통과 시간을 고려함으로써 선택된다. 여기서는 τ가 VBV_size/bit rate_min보다 크게 되도록 선택한다.The passing time of the two buffers is constant. In order to operate at the minimum allowable bit rate, it is chosen by considering the pass time of the buffer. Here, τ is selected so that it is larger than VBV_size / bit rate_min.
만약에 높은 비트율에 대한 짧은 지연 제한요소(규격 스케쥴에 대한 가능한 제약)에 순응하는 것이 요구되면, 이렇게 하여 선택된 값은 불리하게 할 수 있다. 그러나, 시간(τ)을 감소시키기 위하여 유용한 조정 영역을 낮은 비트율로 제한하는 것이 가능하다.If compliance with short delay constraints (possible constraints on the specification schedule) for high bit rates is required, the value chosen in this way can be disadvantageous. However, it is possible to limit the useful adjustment area to a low bit rate in order to reduce the time τ.
마지막으로 코더 버퍼 크기가, 최대 비트율과 최소 비트율의 비율과 동일한 비율에 의하여 디코더 버퍼 크기 값보다 크다는 것을 주목하자. 소정 형식의 이미지에 대하여, 상기 비율은 4를 초과하지 않을 것이기 때문에, 결국 8Mbit의(메인 프로파일 메인 레벨의 유용한 최대 크기인 1.835 Mbit에 대하여) 코더 버퍼 크기를 예측하는 것이 가능해진다.Finally note that the coder buffer size is larger than the decoder buffer size value by a ratio equal to the ratio of the maximum bit rate to the minimum bit rate. For certain types of images, the ratio will not exceed 4, thus making it possible to predict the coder buffer size of 8 Mbits (for 1.835 Mbits, which is a useful maximum size of the main profile main level).
도 5는 인코더의 실제적인 버퍼에 있는 가상 버퍼를 도시한 것이다. 이 도면은 가상 버퍼가 어떻게 위치해야 하는가 및 그 버퍼의 크기가 현재 비트율과의 함수에 따라 무엇으로 정해져야 하는 것을 도시한다.5 shows a virtual buffer in the actual buffer of the encoder. This figure shows how the virtual buffer should be located and what its size should be determined as a function of the current bit rate.
비트율은 횡축을 따라 감소하는 방향으로 단위는 Mbits/s를 이용하여 도면이 작성되어 있으며 가상 버퍼의 "위치" 는 Mbits로 종좌표에 선이 그려져 있다.The bit rate is reduced along the horizontal axis, and the unit is drawn using Mbits / s, and the "position" of the virtual buffer is Mbits, and a line is drawn in the ordinate.
최대 비트율과 포화 영역에서, 가상 버퍼의 크기는 디코더 버퍼의 크기와 동일한데, 그 크기는 여기의 예에서 1.835 Mbits이다.In the maximum bit rate and saturation region, the size of the virtual buffer is equal to the size of the decoder buffer, which is 1.835 Mbits in this example.
Evbs = VBV_sizeEvbs = VBV_size
가상 버퍼는 인코더 버퍼의 상부에 위치한다.The virtual buffer is located on top of the encoder buffer.
선형 영역에서, 즉 여기의 예에 나온 9 Mbits/s와 1.5 Mbits/s의 최소 비트율 사이의 영역에서, 버퍼 크기는 선형적으로 감소하여 다음과 같이 된다:In the linear domain, that is, between the 9 Mbits / s and 1.5 Mbits / s minimum bit rates in the example here, the buffer size decreases linearly so that:
Evbs = KREvbs = KR
α(n) = 상수α (n) = constant
이미지 레벨이 여전히 불연속적이기 때문에, 이미지(n)를 코딩하는 순간에, 인코더의 물리적인 버퍼의 크기(물리적 버퍼 크기)는 Epbs(n)이라 불리우며, 인코더의 가상 버퍼의 크기(가상 버퍼 크기)는 Evbs(n)이라 불리운다.Since the image level is still discontinuous, at the moment of coding image n, the size of the encoder's physical buffer (physical buffer size) is called Epbs (n), and the size of the encoder's virtual buffer (virtual buffer size) is It is called Evbs (n).
가상 버퍼는 전송 비트율이 최대일 때에, 완전히 인트라-코딩된 이미지로 채워지게 되도록 그 크기가 정해진다.The virtual buffer is sized to be filled with a fully intra-coded image when the transmit bit rate is maximum.
인코더의 가상 버퍼의 크기는 기껏해야 디코더 버퍼의 크기인데, 즉 소위 VBV_size인데; 전송 비트율이 낮을 때에, 그 크기는 값{K.R(n)}으로 감소할 수 있는데, 이때에 K는 시간 상수로서 0.1과 0.2사이의 값이며, GOP 구조와 이미지(n)에 대한 전송 비트율{R(n)}에 따라 결정된다.The size of the virtual buffer of the encoder is at most the size of the decoder buffer, ie the so-called VBV_size; When the transmission bit rate is low, its magnitude can be reduced to the value {KR (n)}, where K is a time constant between 0.1 and 0.2, and the transmission bit rate R for the GOP structure and image n (n)}.
Evbs[n] = min(VBV_size, K·R[n]) (a)Evbs [n] = min (VBV_size, KR [n]) (a)
단순하게 하기 위하여, 소정 비트율에서 디코더 버퍼의 크기가 도달될 때까지, 가상 버퍼의 크기는 결과적으로 비트율의 선형 함수로서 정해지는데; 그 후 버퍼의 크기는 상기 포화 레벨에서 일정하게 유지된다.For simplicity, the size of the virtual buffer is consequently determined as a linear function of the bit rate until the size of the decoder buffer is reached at a given bit rate; The size of the buffer then remains constant at this saturation level.
여기에서 다른 예를 들자면:Here is another example:
Epbs = 7.2 MbitsEpbs = 7.2 Mbits
K = 0.2 sK = 0.2 s
Rmax = 15 Mbit/sRmax = 15 Mbit / s
Rmin = 1.5 Mbits/sRmin = 1.5 Mbits / s
τ= 480 msτ = 480 ms
Evbs는 1.835 Mbits에서 최소 300 kbits 사이에 존재한다.Evbs are between 1.835 Mbits and at least 300 kbits.
가상 버퍼의 오프셋은 최대 비트율에 대하여 7.2 Mbits이며, 최소 비트율에 대하여 420 kbits (α(n) × Rmin)이다.The offset of the virtual buffer is 7.2 Mbits for the maximum bit rate and 420 kbits (α (n) x Rmin) for the minimum bit rate.
도 6은 이 파라미터(K)의 다양한 값들에 대하여 그리고 가상 버퍼의 크기 변화를 비트율의 함수로서 나타낸 예를 제시한다.6 shows an example showing the variation of the size of the virtual buffer as a function of the bit rate for the various values of this parameter K.
횡축은 비트율(Mbits/s)을 나타내며, 종축은 가상 버퍼의 크기를 Mbits로 나타낸다. 커브(61)에서 K는 0.2에 해당되며, 점선 커브(62)는 K가 0.12이다. MPEG2 표준에 따르자면, 디코더 버퍼의 크기는 1.832 Mbits로 취해지며, 비트율 변동은 1.5 Mbits/s와 15 Mbits/s 사이에 존재한다.The horizontal axis represents the bit rate (Mbits / s), and the vertical axis represents the size of the virtual buffer in Mbits. In curve 61, K corresponds to 0.2, and dashed line curve 62 has K of 0.12. According to the MPEG2 standard, the size of the decoder buffer is taken at 1.832 Mbits, and the bit rate variation is between 1.5 Mbits / s and 15 Mbits / s.
커브(61)는 두 개의 영역으로 나누어져 있는데, 선형적 영역은 1.5 Mbits/s와 9 Mbits/s 사이에서 있고, 포화 영역은 9 Mbits/s 와 15 Mbits/s 사이에 있다.The curve 61 is divided into two regions, the linear region is between 1.5 Mbits / s and 9 Mbits / s, and the saturation region is between 9 Mbits / s and 15 Mbits / s.
만약에 τ가 글로벌 버퍼화 지속기간(global bufferization duration)이라면 -다시 말해서 인코더 버퍼에서 이미지를 기록하는 순간시점과 디코더 버퍼로부터 동일한 상기 이미지를 판독하는 순간시점간의 경과시간(elapsed time)-이라면, 이 경과시간은 위에서 설명한 바와 같이 버퍼들의 통과 시간에 유사하며, 만약에 α(n)가 값(τ)이 상수가 되는 것을 보장하기 위하여 계산된 지속기간이라면, 다음과 같은 식을 갖을 수 있다:If τ is a global bufferization duration, e.g. the elapsed time between the instant of recording the image in the encoder buffer and the instant of reading the same image from the decoder buffer, The elapsed time is similar to the passage time of the buffers as described above, and if α (n) is a duration calculated to ensure that the value τ is constant, then the equation can be:
τ.R[n]=α[n]·R[n] +Evbs[n]가 되며, τ·R[n]값은 위에서 설명한 바와 같이 가상 버퍼의 오프셋을 나타낸다.τ.R [n] = α [n] .R [n] + Evbs [n], where τ · R [n] represents the offset of the virtual buffer as described above.
코더 버퍼에 가상 버퍼를 위치하는 것에 대한 계산을 한다는 것은 관계식(a)에 맞는 소정의 가상 버퍼 크기와 비트율과 고정된 전이 시간(transfer time)이 주어졌을 때에 파라미터{α(n)}를 관계식(b)에 맞게 되도록 연속적으로 계산하고 갱신하는 것을 말한다.The calculation of the placement of the virtual buffer in the coder buffer is based on the relation {a (n)} given the predetermined virtual buffer size and bit rate and fixed transfer time corresponding to relation (a). b) Calculate and update continuously to meet b).
다르게 설명하자면, 가상 버퍼의 크기와 위치는 일정한 전이 시간을 유지하기 위하여 계속해서 적응된다.In other words, the size and position of the virtual buffer are constantly adapted to maintain a constant transition time.
일단 K값이 선택되면, α값은 그 값에서 추정된다.Once the K value is selected, the α value is estimated at that value.
도 7은 비트율 함수(횡축을 따라 표시되어 있음)로서 α 변화(종축을 따라 표시되어 있음)를 나타낸다.Figure 7 shows the α change (shown along the vertical axis) as a bit rate function (shown along the horizontal axis).
α(n)값은 τ값이 상수가 되는 것을 보장하기 위하여 비트율 값에 계속적으로 적응되어야 한다.The α (n) value must be continuously adapted to the bit rate value to ensure that the value of τ is constant.
커브의 제 1 부분(71)-1.5 Mbits/s와 9 Mbits/s 사이에 해당되는 영역-에 있어서, 즉 선형적 영역에 있어서 α값은 일정하며 다음과 같이 된다:In the first part 71 of the curve-the region between 1.5 Mbits / s and 9 Mbits / s-i.e. in the linear region, the α value is constant and becomes:
포화 영역에 해당되는 커브의 제 2 부분(72)에 있어서, α값은 αmax와 αmin사이에서 변한다:In the second part 72 of the curve corresponding to the saturation region, the α value varies between α max and α min :
K의 최소값은 다음과 같다:The minimum value of K is
선택된 K값은 일반적으로 포화 영역이 없는 것에 해당되는 이 최소값보다 큰데, 전형적으로 그 값은 0.2이다. 이것이 α(n)값이 계속해서 재조절되어야 하는 이유이며, 그렇기 때문에 α(n)값은 일정하지 않다.The K value chosen is generally greater than this minimum value, which corresponds to no saturation region, and typically is 0.2. This is why the α (n) value must be continuously readjusted, and thus the α (n) value is not constant.
본 발명에 따른 코더는 도 8에 도시되어 있고 이하에서 설명되어 있다.The coder according to the invention is shown in FIG. 8 and described below.
선행 처리 회로(81)는 코딩되려는 데이터를 수신한다. 선행 처리 회로의 출력은 코딩 회로(82)의 입력측으로 링크되어 있다. 코딩 회로의 출력은 버퍼(83)의 입력측으로 링크되어 있는데, 버퍼는 자신의 출력에서 디코더 측으로 전송될 이진 스트림을 공급해준다. 버퍼의 출력은 또한 조정기(84)의 입력측으로로 링크되어 있다. 코딩 회로의 출력은 조정기의 입력측으로 링크되어 있기 때문에, 조정기는 자신의 다른 입력단에서 코딩 회로로부터의 데이터를 수신한다. 로컬 감독 장치(local supervisory facility)(86)는 비트율 할당기(85)와, 선행 처리 회로(81) 및 조정기(84)에 링크되어 있다.Preprocessing circuit 81 receives the data to be coded. The output of the preprocessing circuit is linked to the input side of the coding circuit 82. The output of the coding circuit is linked to the input side of the buffer 83, which supplies a binary stream to be transmitted from its output to the decoder side. The output of the buffer is also linked to the input side of the regulator 84. Since the output of the coding circuit is linked to the input side of the regulator, the regulator receives data from the coding circuit at its other input. A local supervisory facility 86 is linked to the bit rate allocator 85, preprocessing circuit 81, and regulator 84.
선행 처리 회로(81)는 필터링하고 - 성형 처리하고-, 더욱 상세하게 말하자면 이미지 각각을 위하여 선택된 코딩 형태에 따라 수신된 이미지들을 재배열(reorder)하기 위하여, 디지털 소스에 포함된 4.2.2. 형식으로 되어 있는 유용한 비디오 신호를 수신한다. 비디오 코딩 회로(82)는 수신된 신호를 압축하고, MPEG2 포맷의 "기초 스트림(elementary stream)"이라고 호칭되는 이진 열(train)의 형태로 포맷팅한다. 이 신호는 이진 스트림 즉 " 비트 스트림 "의 형태로서 디코더 측으로 전송되기 위하여 출력 버퍼(83)를 통과한다. 조정기는 버퍼가 전송한 이진 스트림을 구성하는 코딩된 데이터로부터, 코더 출력의 실제 비트율을 측정한다. 코딩 회로(82)는 조정기 측으로 코딩된 데이터를 전송하여, 조정기로 하여금 코딩 코스트(coding cost)와 자신에게 복귀하는 양자화 시간 간격을 계산하도록 한다. 로컬 감독 장치(86)는 조정기(84)의 복잡성 계수를 수신하여 비트율 할당기(85) 측으로 전송하며, 또한 비트율 할당기는 다른 비디오 소스들로부터 상기와 같은 정보 신호를 수신하여 이러한 다양한 비디오 소스들을 멀티플렉싱하는 것을 제어함으로써 결국 각각의 비디오 소스 측으로 비트율을 할당하게 된다. 따라서, 로컬 감독 장치(86)는 외부 장치와의 인터페이스를 공급하고 특히 비트율 할당기로부터 코더 출력에서 비트율 정보 신호의 애플리케이션에 대해 위상이 선행하는 (phase-advanced) 비트율 정보 신호를 수신한다. 이것은 또한 선행 처리 회로(81)에도 링크되어 있는데, 무엇보다도 조정기(84)로부터의 GOP 구조의 데이터를 선행 처리 회로 측으로 전송하고, 또한 선행 처리 회로로 하여금 이미지들을 재구성하도록 한다.The preprocessing circuit 81 is included in the digital source in order to filter-shaping-and more specifically reorder the received images according to the coding type selected for each image. Receive a useful video signal in a format. Video coding circuitry 82 compresses the received signal and formats it in the form of a binary train called an "elementary stream" in MPEG2 format. This signal passes through an output buffer 83 to be sent to the decoder side in the form of a binary stream, or "bit stream". The adjuster measures the actual bit rate of the coder output from the coded data making up the binary stream sent by the buffer. The coding circuit 82 sends the coded data to the coordinator side to cause the coordinator to calculate the coding cost and the quantization time interval that returns to it. Local supervisor 86 receives the complexity factor of regulator 84 and sends it to bit rate allocator 85, which also receives such information signals from other video sources to multiplex these various video sources. By controlling the rate, the bit rate is eventually allocated to each video source. Thus, the local supervision device 86 supplies an interface with an external device and receives a phase-advanced bit rate information signal, in particular for the application of the bit rate information signal at the coder output from the bit rate allocator. It is also linked to the preprocessing circuit 81 which, among other things, sends the data of the GOP structure from the regulator 84 to the preprocessing circuit side and also causes the preprocessing circuit to reconstruct the images.
조정기는 코딩 회로의 데이터 압축기의 양자화 간격을 검사한다. 이러한 조정기는 코더의 물리적인 버퍼에 가상 버퍼라고 호칭되는, 디코더의 VBV 모델 버퍼뿐만 아니라 코더 출력에서의 비트율을 측정할 수 있는 장치를 구성하고 있는데, 비디오 디코더의 버퍼가 포화되지도 않고 고갈되지 않는 것을 보장하도록 구성한다.The regulator checks the quantization interval of the data compressor of the coding circuit. These regulators comprise a device that can measure the bit rate at the coder's output, as well as the decoder's VBV model buffer, which is called a virtual buffer in the coder's physical buffer, and the video decoder's buffer is neither saturated nor exhausted. Configure to ensure that
버퍼 상태에 관한 함수에 따라 양자화기 시간간격에 영향을 미치는 비트율 조정기는 두 개의 기능적인 서브-블록들로 나뉘어 질 수 있다.The bit rate adjuster, which affects the quantizer time interval as a function of the buffer state, can be divided into two functional sub-blocks.
이미지 레벨에 대하여만 조정 기능을 수행하는 상기 이미지 조정 서브-블록은, 그 다음의 이미지가 코딩되기 위하여 생성되어야 하는 데이터 볼륨에 해당되는 "타겟 비트(target bit)" 셋팅값을, 인코딩되려는 각각의 이미지를 위하여 수신한다. 이 항목은 코더와 VBV 모델 버퍼의 상태에 관련하는 구성 파라미터(configuration parameter)의 함수에 따라 GOP 레벨에서 조정을 수행하는 다른 GOP 조정 서브-블록에 의하여 결정된다.The image adjustment sub-block, which performs the adjustment function only for the image level, each of the " target bit " settings corresponding to the data volume that the next image must be generated to code. Receive for the image. This item is determined by another GOP coordination sub-block that performs coordination at the GOP level as a function of configuration parameters related to the state of the coder and the VBV model buffer.
이미지의 제 1 블록을 코딩하기 위한 초기 양자화 간격으로부터 시작하자면, 이미지 조정 알고리듬은 양자화 간격을 동적으로 조절하여 결과적으로 양자화 시간 간격이 대해 프로그래밍된 "타겟 비트" 값에 가능한 한 근사하게 된다. 이러한 조절은 피드백 시스템에 의하여 실행되는데, 피드백 시스템의 경직성(stiffness)(수렴율)은 동일한 명칭의 파라미터에 의하여 제어될 수 있다.Starting from the initial quantization interval for coding the first block of the image, the image adjustment algorithm dynamically adjusts the quantization interval so that the quantization time interval is as close as possible to the programmed "target bit" value. This adjustment is performed by a feedback system in which the stiffness (convergence rate) of the feedback system can be controlled by a parameter of the same name.
이미지의 엔드부분에서, 이미지 조정 서브-블록은 이미지의 실제 코딩 코스트를 GOP 조정 서브-블록 측으로 전송한다. GOP 전송된 조정 서브-블록은 전송된 "타겟 비트" 와 상기 코스트간의 에러를 계산한다. 에러는 그 다음에 후행 이미지를 위한 "타겟 비트" 를 계산하기 위하여 알고리듬에 피드백된다. 이미지 조정 서브-블록은 또한 마지막 이미지를 코딩하는데 사용되는 평균 양자화 간격을 전송한다. 이것은 이하에서 설명하고 있는 바와 같이, 방금 코딩된 이미지의 귀납적으로 아는 복잡도를 계산하는데 사용된다.At the end of the image, the image adjustment sub-block sends the actual coding cost of the image to the GOP adjustment sub-block side. The GOP transmitted coordination sub-block calculates the error between the transmitted "target bit" and the cost. The error is then fed back to the algorithm to calculate the "target bit" for the trailing image. The image adjustment sub-block also transmits the average quantization interval used to code the last image. This is used to calculate the inductive knowing complexity of the just coded image, as described below.
이미지 조정 알고리듬에서 "타겟 비트" 를 계산하는 원칙은 다음과 같다:The principle for calculating the "target bit" in the image adjustment algorithm is as follows:
Ti, Tp(n) 및 Tb(m)은 각각 인트라 이미지, 예측 이미지중 이미지(n) 및 양방향성 이미지중 이미지(m)를 코딩할 때의 타겟 코스트(target costs)(즉 타겟)들이며, 소정의 GOP에 대하여 다음과 같다:Ti, Tp (n) and Tb (m) are the target costs (ie targets) when coding an intra image, an image in a predictive image (n) and an image in a bidirectional image (m), respectively. For the GOP:
TI = 입력되는 I 유형 이미지의 타겟 비트,TI = target bit of type I image input,
TP = 입력되는 P 유형 이미지의 타겟 비트,TP = target bit of the P type image being input,
TB = 입력되는 B 유형 이미지의 타겟 비트,TB = target bit of type B image input,
QI = I 유형 이미지의 평균 양자화 간격,QI = average quantization interval of type I image,
QP = P 유형 이미지의 평균 양자화 간격,QP = average quantization interval of P type image,
QB = B 유형 이미지의 평균 양자화 간격,QB = average quantization interval of type B images,
NP = GOP에서의 P 유형 이미지 개수,NP = number of P-type images in the GOP,
NB = GOP에서의 B 유형 이미지 개수.NB = the number of B type images in the GOP.
N개의 이미지들로 이루어져 있는 GOP는 하나의 인트라 이미지, NP개의 예측 이미지 및 NB개의 양방향 이미지들을 포함한다 : N = 1 + NB + NP.A GOP consisting of N images includes one intra image, NP predictive images and NB bidirectional images: N = 1 + NB + NP.
따라서 GOP에 의한 조정의 원칙은 다음 식에 순응하는 것을 요한다:Therefore, the principle of coordination by GOP requires compliance with the following equation:
GOP에서의 이미지 유형당 코딩 코스트 변화가 없다고 가정하면, 인터-이미지 조정을 위하여 다음과 같은 기본 등식을 얻을 수 있다:Assuming there are no coding cost changes per image type in the GOP, we can obtain the following basic equation for inter-image adjustment:
(1) TI+NPTP+NBTB=N ×BPP -ε(1) T I + N P T P + N B T B = N × B PP -ε
(2) ZIQI=ZPQP=ZBQB (2) Z I Q I = Z P Q P = Z B Q B
등식(1)은 GOP를 이루는 이미지 셋트에 대하여 가용 비트율을 분배하는 원칙을 표현한다. 그러나, 상기의 가용 비트율은 그 이전에 코딩된 GOP를 이루는 이미지 세트에서 측정된 편차(타겟 비트-실제 코딩 코스트)의 합계에 해당하는 에러(ε)만큼 증가하거나 감소된다.Equation (1) expresses the principle of distributing the available bit rate for a set of images making up a GOP. However, the available bit rate is increased or decreased by an error ε corresponding to the sum of the deviations (target bit-actual coding cost) measured in the image set that constitutes the previously coded GOP.
등식(2)은 서로 다른 유형의 이미지 사이에 모두 안정된 품질을 유지하기 위하여, 서로 다른 유형의 이미지 사이의 평균 양자화 간격의 대응 규칙을 확립시켜 놓은 것이다. 비율 상수들의 실험값은 다음과 같다:Equation (2) establishes a rule of correspondence of average quantization intervals between different types of images in order to maintain stable quality between different types of images. The experimental values of the rate constants are as follows:
ZI=1.0ZI = 1.0
ZP=1.35ZP = 1.35
ZB=1.1ZB = 1.1
등식(3)에 따른 시스템은 동일한 형태의 최종 이미지의 코딩 코스트값에 평균 양자화 간격을 곱한 값인 이미지 복잡도가 계산된다. 그 다음에 복잡도 안정성 가정으로 말미암아 그 다음의 이미지를 코딩하는데 사용되는 타겟 비트를 기초로 하여 상기 동일한 복잡도를 나타낼 수 있는 것이 가능하게 된다. 다르게 설명하자면, 그 다음 GOP의 이미지 복잡도가 선행 GOP에서 측정된 복잡도와 동일하다는 가정을 만들 수 있다.The system according to equation (3) calculates the image complexity, which is the value of the coding cost of the final image of the same shape multiplied by the average quantization interval. The complexity stability assumption then makes it possible to represent the same complexity based on the target bit used to code the next image. In other words, one can make the assumption that the image complexity of the next GOP is the same as the complexity measured in the preceding GOP.
이러한 복잡도 예측은 각 형태의 이미지에 대한, 초기 양자화 간격과 타겟 비트에 대하여 연역적으로 계산하여 값을 구하는 것을 가능하게 한다:This complexity prediction makes it possible to deduce the value by deductively calculating the initial quantization interval and the target bit for each type of image:
등식(5)에 따른 시스템은 대부분의 경우에서 디코더 조정을 하는데 있어서의 제약에 따라 값을 산출하게 되는 것을 가능하게 한다. 그러나, 한 GOP에서 다른 GOP로 옮겨지는 에러는 연역적으로 제한할 수 없어서, 출력 비트율은 선택한 실행 모드에 존재하는 약간의 변동을 받을 수 있다.The system according to equation (5) makes it possible in most cases to calculate the value according to the constraints in the decoder adjustment. However, errors that are shifted from one GOP to another cannot be deductively limited, so the output bit rate may be subject to some variation present in the selected run mode.
이것이 VBV 모델에서 GOP 조정 서브-블록을 만드는 이유이다. 디코더 모델의 이러한 단순화된 동작은 이전에 설명한 바와 같이 다음에 나오는 가정들을 사용한다:This is the reason for making the GOP coordination sub-block in the VBV model. This simplified operation of the decoder model uses the following assumptions as previously described:
- 코딩값과 디코딩값의 곱은 0 이다;The product of the coding value and the decoding value is zero;
- 코딩한 후에 코더 버퍼 안으로 이미지가 입력되는 것은 순간적이다;It is instantaneous that the image is entered into the coder buffer after coding;
- 디코딩을 하기 위하여 이미지를 인출하는 것은 디코더에서도 순간적이다.Retrieval of images for decoding is instantaneous in the decoder.
따라서, 각각의 인코딩된 이미지에 대하여 조정 알고리듬은 다음의 관계식을 적용시킴으로써 VBV 모델의 버퍼 점유율 상태를 갱신한다:Thus, for each encoded image the adjustment algorithm updates the buffer occupancy state of the VBV model by applying the following relationship:
VBV_fullness(n)=VBV_fullness(n)+Bpp(n)-Last_picture_cost+εBPP(n-τ)VBV_fullness (n) = VBV_fullness (n) + Bpp (n) -Last_picture_cost + εB PP (n-τ)
위에서 설명한 바와 같이, 상기 관계식은 마지막으로 코딩된 이미지의 등가치가 인출될 때에 디코더의 버퍼속으로 Bpp비트들이 입력된다는 사실을 나타낸다. 부가적인 에러 신호(εBpp)는 코더의 출력에서 측정된 비트율과 예상되는 비트율 사이의 편차를 나타낸다:As described above, the relationship indicates that Bpp bits are input into the decoder's buffer when the equivalent value of the last coded image is retrieved. The additional error signal εBpp represents the deviation between the measured bit rate and the expected bit rate at the output of the coder:
VBV 모델의 첫 번째 사용은 디코더 버퍼가 현재 이미지에 대하여 및 그 다음 이미지를 송신하고 있는 동안에 포화되지 않는 것을 보장하기 위하여 필수적인 패딩 처리(비트 스트림 이미지의 엔드 부분에 첨부된 제로 바이트)에 관계된다. 상기 처리 과정은 상기 모델에서 유래하는 버퍼 점유율이 디코더 버퍼의 최대 사이즈를 뛰어넘지 않는다, 즉 그 다음 이미지의 주기 기간동안에 있어서 디코더 버퍼의 입력에서의 예상된 데이터 볼륨 값(Bpp)보다 적은 지를 확인하는 단계를 포함한다. 따라서:The first use of the VBV model involves padding processing (zero bytes appended to the end portion of the bit stream image) to ensure that the decoder buffer is not saturated for the current image and while transmitting the next image. The process checks whether the buffer occupancy derived from the model does not exceed the maximum size of the decoder buffer, i.e., is less than the expected data volume value (Bpp) at the input of the decoder buffer during the period of the next image. Steps. therefore:
만약에 (VBV_fullness(n)>VBV_size-Bpp(n+1)이면,If (VBV_fullness (n)> VBV_size-Bpp (n + 1),
Last_pict_cost(n)=Last_pict_cost(n)+VBV_fullness(n)-(VBV_size-Bpp(n+1)),Last_pict_cost (n) = Last_pict_cost (n) + VBV_fullness (n)-(VBV_size-Bpp (n + 1)),
VBV_fullness(n)=VBV_size-Bpp(n+1)VBV_fullness (n) = VBV_size-Bpp (n + 1)
VBV_size는 디코더 버퍼의 유용한 크기를 나타낸다(메인 프로파일 메인 레벨(Main Profile Main Level)의 MPEG2에 대해 1.835Mbits). 이미지의 코스트에 적용되는 오프셋에 해당하는 패딩 데이터의 볼륨은 그 다음에 도입된다.VBV_size represents the useful size of the decoder buffer (1.835 Mbits for MPEG2 of Main Profile Main Level). The volume of padding data corresponding to the offset applied to the cost of the image is then introduced.
패딩말고도, VBV 모델 버퍼 점유율 상태에 관한 정확한 인지는 인코딩되려는 그 다음 이미지들의 타겟 비트를 예방적인 차원에서 다시 조절하는 것을 허용한다. 상기의 타겟 비트 재조절 단계는 버퍼 침해상태(buffer violation)를 예측하기 위하여 필수적이다. 두 개의 특정 경우들이 발생한다:Besides padding, accurate perception of the VBV model buffer occupancy state allows proactively re-adjusting the target bit of the next image to be encoded. The target bit readjustment step is essential for predicting a buffer violation. Two specific cases occur:
- VBV 모델 버퍼의 관측된 상태가 지나치게 고갈 상태에 근접하게된 경우. 이 경우에 그 다음의 타겟 비트값은 리스크(risk)가 크면 클수록 더욱 더 커지는 양만큼 감소되어야 한다;The observed state of the VBV model buffer is too close to exhaustion. In this case, the next target bit value should be reduced by an amount that is larger the greater the risk;
- VBV 모델 버퍼의 관측된 상태가 지나치게 포화상태에 근접하게된 경우. 이러한 경우에는, 그 다음의 타겟 비트값들이 리스크가 크면 클수록 더욱 더 커지는 양만큼 증가되어야 한다;The observed state of the VBV model buffer is too close to saturation. In this case, the next target bit values should be increased by an amount that increases with greater risk;
디코더의 버퍼가 완전히 풀(full)하다는 가정 하에서, VBV 모델의 버퍼 상태 초기화가 실행된다. 이러한 상태를 보장하기 위하여, 위에서 설명한 코더와 디코더간의 동기화 처리의 원칙과 관련하여, 코더 버퍼에서 디코더 버퍼로 전이될 때의 지연(엔드-투-엔드 지연) 개념이 고려된다.Under the assumption that the decoder's buffer is full, the buffer state initialization of the VBV model is performed. In order to ensure this condition, with respect to the principle of synchronization processing between the coder and the decoder described above, the concept of delay (end-to-end delay) when transitioning from the coder buffer to the decoder buffer is considered.
알고리듬 동작의 원칙은 따라서 GOP 조정 서브-블록을 이용하여 이미지 속도에서 이미지를 조정하는 서브-블록에 전송되는 "타겟 비트" 와 "초기 양자화 간격" 파라미터를 계산하는 것을 특징으로 한다.The principle of the algorithm operation is thus characterized by using the GOP adjustment sub-block to calculate the "target bit" and "initial quantization interval" parameters transmitted to the sub-block adjusting the image at the image rate.
도 9는 GOP 조정 서브-블록과 서브-블록 조정 알고리듬에 의하여 실행되는 다양한 계산들을 개략적으로 도시한 것이다.9 schematically illustrates the various calculations performed by the GOP coordination sub-block and the sub-block coordination algorithm.
선행-계산 모듈(91)은 "코딩 코스트(coding cost)"{CC(n)}와 "평균 양자화 시간 간격 "{Q(n)} 정보 신호를 수신하는데, 이것들은 이전에 코딩한 이미지(n)에서 유래한 것이며 이미지 조정 서브-블록이 송신한 것이고, 뿐만 아니라 제 3 입력에서, 예상된 코스트{Target bit T(n)}와 실제 코스트{CC(n)}간의 에러{E(n)}도 수신한다. 제 4 입력에서, 선행-계산 모듈은 또한 후행 이미지(n+1)를 코딩하는 순간시점에 해당되는 예상 비트율{Bpp(n+1)}에 관련되고 또한 비트율 할당기에서 시작하는 셋팅값이기도 한 정보 신호를 수신한다. 설명한 바와 같이, 비트율 할당기는 전송하려는 채널 비트율이 효력을 발생하기 순간시점(τ)전에 조정기 측으로 채널 비트율 세팅을 전송한다. 따라서, 상기 할당기는 그 다음의 후행 이미지를 위한 비트율 정보 신호{Bpp(n+1)}를 제공한다. 모듈(91)은 제어 모듈(92)의 제 1 입력단과 제 2 입력단에서 이미지(n+1)를 위한 타겟 비트{T(n+1)} 정보와 이미지(n+1)를 위한 초기 양자화 시간 간격{Q_init(n+1)}을 전송한다.The pre-calculation module 91 receives the "coding cost" {CC (n)} and the "average quantization time interval" {Q (n)} information signals, which are previously coded images n. ) And transmitted by the image adjustment sub-block, as well as at the third input, the error {E (n)} between the expected cost {Target bit T (n)} and the actual cost {CC (n)}. Also receives. In the fourth input, the pre-calculation module is also related to the expected bit rate {Bpp (n + 1)} corresponding to the instant of coding the trailing image (n + 1) and is also a setting value starting at the bit rate allocator. Receive an information signal. As described, the bit rate allocator sends the channel bit rate setting to the coordinator before the moment τ at which the channel bit rate to be transmitted becomes effective. Thus, the allocator provides the bit rate information signal Bpp (n + 1) for the subsequent trailing image. The module 91 has target bit {T (n + 1)} information for the image n + 1 and initial quantization time for the image n + 1 at the first and second input terminals of the control module 92. Send the interval {Q_init (n + 1)}.
할당기에서 시작된 비트율 정보 신호는 또한 일 이미지 기간 지연 회로(a delay by one image duration circuit)(93)에 전송된다. 이 회로의 출력은 제어 모듈(92)의 제 3 입력단으로 전송된다. 지연 회로(93)의 출력은 또한 τ기간 지연 회로(94)측의 입력으로 전송된다. τ기간 지연 회로의 출력단은 제 1 감산기(95)의 제 1 입력(+)으로 링크되어 있는데, 제 1 감산기는 자신의 제 2 입력단에서 비트율 측정 회로(96)에 의하여 코더의 출력에서 측정된 비트율 정보 신호를 수신한다. 상기 감산기의 출력은 제어 모듈(92)의 제 4 입력단으로 링크되어 있다. 상기 제어 모듈은 가상 버퍼(virtual buffer)의 파라미터들을 재조절하여, GOP 조정 서브-블록의 출력이기도 한 자신의 출력으로 후행 이미지(n+1)의 초기 타겟 비트와 양자화 시간 간격 정보를 전송한다. 이들 두 개의 정보 신호들은 그 다음의 이미지를 코딩하기 위하여 이미지 조정 서브-블록으로 전송된다.The bit rate information signal originating at the allocator is also sent to a delay by one image duration circuit 93. The output of this circuit is sent to the third input of control module 92. The output of the delay circuit 93 is also sent to the input on the τ period delay circuit 94 side. The output end of the τ period delay circuit is linked to the first input (+) of the first subtractor 95, which is measured at the output of the coder by the bit rate measurement circuit 96 at its second input end. Receive an information signal. The output of the subtractor is linked to the fourth input of control module 92. The control module readjusts the parameters of the virtual buffer and sends the initial target bits and quantization time interval information of the trailing image (n + 1) to its output, which is also the output of the GOP adjustment sub-block. These two information signals are sent to an image adjustment sub-block to code the next image.
제어 모듈의 목적은 귀납적으로 버퍼 침해(buffer violation)의 위험성을 확인하는 것이다. 그렇게 하기 위하여, 제어 모듈은 따라서 자신의 입력단에서 셋팅된 비트율 값과 실제상의 비트율 값간의 에러 값에 해당되는 차분치{(Bpp(n-τ)-Dc(n)}뿐만 아니라, 그 다음 이미지를 위한 파라미터들{T(n+1), Q_init(n+1)}과 현재 코딩되고 있는 이미지를 위한 파라미터{Bpp(n)}를 수신한다. 이러한 정보는 제어 모듈로 하여금 가상 버퍼의 충만도 인자(fill factor)에서의 변동을 계산하도록 한다.The purpose of the control module is to inductively identify the risk of a buffer violation. To do so, the control module thus not only displays the difference value {(Bpp (n-τ) -Dc (n)), but also the next image, corresponding to the error value between the bit rate value set at its input and the actual bit rate value. Receive the parameters {T (n + 1), Q_init (n + 1)} and the parameters {Bpp (n)} for the image currently being coded. Calculate the variation in the fill factor.
아마 정정된 후행 이미지{T(n+1)}의 타겟 비트값은 일 이미지 기간 지연 회로(97)에 피드백되는데, 이 회로의 출력은 제 2 감산기(98)의 입력단(+)을 구동시킨다. 상기 감산기의 입력단(-)은 현재 이미지{CC(n)}의 코딩 코스트(coding cost)를 수신하고, 그것의 출력은 선행 계산 모듈(91)의 제 3 입력에 연결되어 있다.The target bit value of the corrected trailing image {T (n + 1)} is fed back to one image period delay circuit 97, the output of which drives the input terminal (+) of the second subtractor 98. The input (-) of the subtractor receives the coding cost of the current image (CC (n)), the output of which is connected to the third input of the preceding calculation module 91.
선행 계산 모듈과 제어 모듈이 수행하는 다양한 계산들은 도 10에 나와 있는 순서도를 참조하여 설명한다.Various calculations performed by the preceding calculation module and the control module will be described with reference to the flowchart shown in FIG. 10.
제 1 단계(101)는 태스크를 트리거하기 위한 인터럽트 대기 루프이다. 이미지 인터럽트는 알고리듬에게 방금 인코딩된 이미지(n)에 관련하는 이미지에 나타난 정보가 이용 가능하다는 것을 통보한다. 이 단계 다음에는 다음 정보들을 판독하는 단계(102)가 수행되는데, 이때 판독되는 정보들은 다음과 같다:The first step 101 is an interrupt wait loop for triggering a task. The image interrupt informs the algorithm that the information presented in the image related to the image n just encoded is available. This step is followed by a step 102 of reading the following information, where the information read is as follows:
- 이미지(n)의 코딩 코스트{CC(n)},Coding cost of image n {CC (n)},
- 이미지(n)를 위한 평균 양자화 시간 간격,Mean quantization time interval for image n ,
- 이미지(n+1)를 위한 이미지 관련 비트 율 셋팅{Bpp(n+1)},Image-related bit rate settings for image (n + 1) {Bpp (n + 1)},
- 이미지(n+1)의 유형(I, P, B),-Type (I, P, B) of image (n + 1),
- 이미지(n)를 위한, 코더 출력에서의 비트율{Dc(n)}.The bit rate {Dc (n)} at the coder output, for image n.
그 다음 단계(103)는 각각의 유형에 따른 이미지를 위한 "타겟 비트" 를 계산한다. 선행 이미지를 코딩한 결과는(코딩 코스트와 평균 양자화 시간 간격) 이미지(n)의 복잡도를 계산하는데 사용된다.Step 103 then calculates a "target bit" for the image according to each type. The result of coding the preceding image (coding cost and average quantization time interval) is used to calculate the complexity of the image n.
코딩할 때 발생하는, "타겟 비트" 에 대한 에러{E(n)}는 이미지(n)의 각각에 대하여 계산되고, GOP의 엔드(end) 부분에서 값(ε)으로서 저장되기 위하여 GOP를 통해 축적된다. E(n)값은 그 다음 GOP의 제 1 이미지에서 초기화된다.The error {E (n)} for the "target bit", which occurs when coding, is calculated for each of the images n and is stored in the end of the GOP via the GOP to be stored as a value ε. Accumulate. The E (n) value is then initialized in the first image of the GOP.
E(n) = E(n-1) + T(n) - CC(n)E (n) = E (n-1) + T (n)-CC (n)
새로운 "타겟 비트" 는 각각의 유형에 따른 이미지(n+1)에 대하여 다음과 같이 계산된다:The new "target bit" is calculated as follows for each type of image (n + 1):
그러므로, 이들 "타겟 비트" 들은 선행 GOP의 축적 에러를 고려한다. 이 에러는 타겟 비트를 계산하기 위하여 후행 GOP 이미지들에 걸쳐서 말하자면 재배분된다.Therefore, these "target bits" consider the accumulation error of the preceding GOP. This error is then redistributed across the trailing GOP images to compute the target bit.
그 다음 단계(104)는 가상 버퍼 침해(violation)의 위험이 있는지에 대하여 귀납적 검사를 실행하고, 그에 따라 "타겟 비트" 를 재조절하며 및 코딩되려는 그 다음 이미지를 위한 초기 양자화 간격을 계산한다.Step 104 then performs an inductive check for the risk of virtual buffer violations, readjusts the "target bit" and calculates the initial quantization interval for the next image to be coded.
따라서, 상기 단계는 VBV_fullness 상태를 계산함으로써 VBV 모델을 갱신하는 것을 실행한다. 그 버퍼 상태는 디코더의 버퍼가 포화되는 것을 회피하기 위하여 우선 패딩을 삽입하는 것을 가능하게 한다. 두 번째로, '타겟 비트 "는 어쩌면 재조절될 수 있으며(재조절 과정은 본 특허의 요지가 아님), 코딩되려는 그 다음 이미지의 초기 양자화 간격은 계산된다.Thus, the step executes updating the VBV model by calculating the VBV_fullness state. The buffer state makes it possible to insert padding first to avoid saturation of the decoder's buffer. Secondly, the 'target bit' may possibly be reconditioned (the reconditioning process is not the subject of this patent), and the initial quantization interval of the next image to be coded is calculated.
EC(n) = BPP(n-τ) - DC(n)E C (n) = B PP (n-τ)-D C (n)
VBV_fullness(n) = VBV_fullness(n-1) + Bpp(n) - [CC(n) + B(n)] - EC(n)VBV_fullness (n) = VBV_fullness (n-1) + Bpp (n)-[CC (n) + B (n)]-E C (n)
CC(n) + B(n)은, 이미지(n)가 입력되는 동일한 시간에 코더의 버퍼 측으로 입력되는 비트(예컨대 0들)의 개수에 해당되는 패딩 볼륨{B(n)}이 더해진 이미지의 코스트{CC(n)}를 나타낸다.CC (n) + B (n) is an image of an image added with a padding volume {B (n)} corresponding to the number of bits (for example, 0s) input to the coder's buffer at the same time that the image n is input. Cost {CC (n)}.
만약에 VBV_fullness(n)가 VBV_size - BPP(n+1)보다 크다면, 패딩 볼륨{B(n)}은 다음과 같이 수정된다:If VBV_fullness (n) is greater than VBV_size-B PP (n + 1), the padding volume {B (n)} is modified as follows:
B(n) = VBV_fullness(n) - (VBV_size - Bpp(n+1))B (n) = VBV_fullness (n)-(VBV_size-Bpp (n + 1))
버퍼의 충만도 인자(fill factor)에서의 변동은 다음과 같다:The variation in the fill factor of the buffer is:
VBV_fullness(n) = VBV_fullness(n) -B(n)VBV_fullness (n) = VBV_fullness (n) -B (n)
초기 양자화 시간 간격은 다음과 같이 계산된다:The initial quantization time interval is calculated as follows:
QIinit = XI/TIQIinit = XI / TI
QPinit = XP/TPQPinit = XP / TP
QBinit = XB/TBQBinit = XB / TB
단계(104)는 그 다음에 초기 단계(101)로 복귀한다.Step 104 then returns to initial step 101.
가상 버퍼와 VBV_오프셋 개념은 순간시점(n)에서의 코더 출력단에서의 측정된 비트율 값이 순간시점(n-τ)에서의 값(Bpp)와 비교된다는 사실과 함축적으로 관련된다는 것을 주목하기로 한다. 그 다음에 가상 버퍼의 오프셋은 이들 두 개 아이템들(items)간의 불일치 값을 VBV_fullness의 상태를 계산할 때에 피드백시킴으로서 조절된다. 이것은 가상 버퍼의 위치 제어를 확실하게 해주는 단순한 피드백 루프이다.Note that the concept of virtual buffer and VBV_offset is implicitly related to the fact that the measured bitrate value at the coder output at instant n is compared with the value Bpp at instant n-τ. do. The offset of the virtual buffer is then adjusted by feeding back the mismatch between these two items in calculating the state of VBV_fullness. This is a simple feedback loop that ensures position control of the virtual buffer.
응용은 디지털 텔레비젼에 관련되는데, 프로그램들 그룹의 전송, 다시 말해서 비디오 소스들의 위성 통신 전송이나 트랜스폰더 채널을 공유하여 전송하는 것과 같은 몇 개의 비디오 소스들의 동시 전송은 통계학적 멀티플렉싱(statistical multiplexing) 방식을 사용한다. 비디오 데이터는 압축되어 채널을 통하여 팩방식(packwise)으로 전송될 수 있도록 멀티플렉싱된다.Applications relate to digital television, in which the transmission of groups of programs, ie the simultaneous transmission of several video sources, such as the satellite communication of video sources or the sharing of transponder channels, is achieved by means of statistical multiplexing. use. Video data is compressed and multiplexed so that it can be transmitted packwise over a channel.
응용은 멀티패스 인코딩(multipass encoding)방식을 사용하는 DVD 레코딩에도 관련된다. 제 1 패스는 전체 필름에서의 이미지들의 복잡성을 결정할 수 있도록 해준다. 제 2 패스는 앞에서 설명한 평균 비트율에서 개시하여 상기 복잡성과의 상관 관계에 따라 각 이미지에게 비트율을 할당하는 것을 가능하게 해준다. 따라서, 이미지들의 품질은 동일한 볼륨의 데이터에 대하여 일정하다.The application also relates to DVD recording using multipass encoding. The first pass allows to determine the complexity of the images in the entire film. The second pass makes it possible to assign a bit rate to each image according to the correlation with the complexity starting from the average bit rate described above. Thus, the quality of the images is constant for the same volume of data.
상술한 바와 같이, 본 발명은 오디오 디지털 데이터, 비디오 디지털 데이터, 또는 보조 디지털 데이터를 코딩하는 방법에 이용되며, 더욱 상세하게, 본 발명은 오디오 및 비디오 디지털 데이터에 대하여 압축 방식을 사용하여, 가변 비트율로 전송하고 또한 저장하는 시스템들에 이용된다.As described above, the present invention is used in a method of coding audio digital data, video digital data, or auxiliary digital data, and more particularly, the present invention uses a compression scheme for audio and video digital data, and thus, a variable bit rate. Is used in systems that transmit and store data.
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980708983A KR100531028B1 (en) | 1996-05-09 | 1997-05-07 | Process for coding digital data of a video image sequence |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR96/05766 | 1996-05-09 | ||
KR1019980708983A KR100531028B1 (en) | 1996-05-09 | 1997-05-07 | Process for coding digital data of a video image sequence |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20000010842A KR20000010842A (en) | 2000-02-25 |
KR100531028B1 true KR100531028B1 (en) | 2006-04-28 |
Family
ID=41740123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980708983A Expired - Fee Related KR100531028B1 (en) | 1996-05-09 | 1997-05-07 | Process for coding digital data of a video image sequence |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100531028B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0670663A1 (en) * | 1994-03-02 | 1995-09-06 | Laboratoires D'electronique Philips S.A.S. | Method of and apparatus for coding digital signals representing a sequence of images |
WO1995026111A2 (en) * | 1994-03-17 | 1995-09-28 | Philips Electronics N.V. | An encoder buffer having an effective size which varies automatically with the channel bit-rate |
-
1997
- 1997-05-07 KR KR1019980708983A patent/KR100531028B1/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0670663A1 (en) * | 1994-03-02 | 1995-09-06 | Laboratoires D'electronique Philips S.A.S. | Method of and apparatus for coding digital signals representing a sequence of images |
WO1995026111A2 (en) * | 1994-03-17 | 1995-09-28 | Philips Electronics N.V. | An encoder buffer having an effective size which varies automatically with the channel bit-rate |
Also Published As
Publication number | Publication date |
---|---|
KR20000010842A (en) | 2000-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4547048B2 (en) | Coding method and transmission method in variable bit rate encoder | |
US9407909B2 (en) | Video rate control for video coding standards | |
US6157674A (en) | Audio and video data transmitting apparatus, system, and method thereof | |
US6526097B1 (en) | Frame-level rate control for plug-in video codecs | |
US6263020B1 (en) | Method and apparatus for bit rate control in a digital video system | |
US6912253B1 (en) | Method and apparatus for transcoding coded video image data | |
US5933451A (en) | Complexity determining apparatus | |
US5929914A (en) | Method and device for global bitrate control of a plurality of encoders | |
JPH09510070A (en) | Buffer management for variable bit rate compression systems | |
KR20090073189A (en) | Video coding rate adaptation to reduce packetization overhead | |
KR100601615B1 (en) | Video Compression Device Adaptive to Network Bandwidth | |
US6879632B1 (en) | Apparatus for and method of variable bit rate video coding | |
WO1999057673A2 (en) | Transcoding of a data stream | |
US5710595A (en) | Method and apparatus for controlling quantization and buffering for digital signal compression | |
JP4669190B2 (en) | Method and apparatus for controlling the quality of video data | |
EP0734173B1 (en) | Fixed rate transmission system with selection of compressor configuration and corresponding method | |
CN103250411A (en) | Method for bit rate control within scalable video coding system and system therefor | |
JP4619479B2 (en) | Statistical multiplexing system | |
US7826530B2 (en) | Use of out of order encoding to improve video quality | |
KR100314329B1 (en) | Multiplexer Using Constant Bit Rate Encoder | |
KR100531028B1 (en) | Process for coding digital data of a video image sequence | |
WO2003073759A1 (en) | Image transmission apparatus and image transmission method | |
US20100272170A1 (en) | Image encoding apparatus, image encoding method and medium on which image encoding program is recorded | |
JP3630686B2 (en) | Parameter sampling device | |
KR19980085246A (en) | Variable Bit Rate Video Control Method Using Channel Rate |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0105 | International application |
Patent event date: 19981107 Patent event code: PA01051R01D Comment text: International Patent Application |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
AMND | Amendment | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20020418 Comment text: Request for Examination of Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20041026 Patent event code: PE09021S01D |
|
AMND | Amendment | ||
E601 | Decision to refuse application | ||
PE0601 | Decision on rejection of patent |
Patent event date: 20050419 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20041026 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |
|
J201 | Request for trial against refusal decision | ||
PJ0201 | Trial against decision of rejection |
Patent event date: 20050718 Comment text: Request for Trial against Decision on Refusal Patent event code: PJ02012R01D Patent event date: 20050419 Comment text: Decision to Refuse Application Patent event code: PJ02011S01I Appeal kind category: Appeal against decision to decline refusal Decision date: 20050912 Appeal identifier: 2005101004639 Request date: 20050718 |
|
AMND | Amendment | ||
PB0901 | Examination by re-examination before a trial |
Comment text: Amendment to Specification, etc. Patent event date: 20050809 Patent event code: PB09011R02I Comment text: Request for Trial against Decision on Refusal Patent event date: 20050718 Patent event code: PB09011R01I Comment text: Amendment to Specification, etc. Patent event date: 20041224 Patent event code: PB09011R02I Comment text: Amendment to Specification, etc. Patent event date: 20020418 Patent event code: PB09011R02I |
|
B701 | Decision to grant | ||
PB0701 | Decision of registration after re-examination before a trial |
Patent event date: 20050912 Comment text: Decision to Grant Registration Patent event code: PB07012S01D Patent event date: 20050818 Comment text: Transfer of Trial File for Re-examination before a Trial Patent event code: PB07011S01I |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20051118 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20051121 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20081110 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20091110 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20101117 Start annual number: 6 End annual number: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20111020 Start annual number: 7 End annual number: 7 |
|
FPAY | Annual fee payment |
Payment date: 20121019 Year of fee payment: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20121019 Start annual number: 8 End annual number: 8 |
|
FPAY | Annual fee payment |
Payment date: 20131018 Year of fee payment: 9 |
|
PR1001 | Payment of annual fee |
Payment date: 20131018 Start annual number: 9 End annual number: 9 |
|
LAPS | Lapse due to unpaid annual fee | ||
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20151009 |