KR20070115551A - N-Zi Image Image Data Encoding / Decoding Apparatus and Method - Google Patents
N-Zi Image Image Data Encoding / Decoding Apparatus and Method Download PDFInfo
- Publication number
- KR20070115551A KR20070115551A KR1020060077290A KR20060077290A KR20070115551A KR 20070115551 A KR20070115551 A KR 20070115551A KR 1020060077290 A KR1020060077290 A KR 1020060077290A KR 20060077290 A KR20060077290 A KR 20060077290A KR 20070115551 A KR20070115551 A KR 20070115551A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- predetermined
- image data
- result
- bit depth
- 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.)
- Granted
Links
Images
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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- 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/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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
도 1은 본 발명의 일 실시예에 따른 AVS(Audio and Video coding Standard) 부호화기의 구성을 도시한 블록도이다.1 is a block diagram illustrating a configuration of an audio and video coding standard (AVS) encoder according to an embodiment of the present invention.
도 2는 도 1에 도시된 변환 및 양자화부(113)의 보다 자세한 구성을 도시한 블록도이다.FIG. 2 is a block diagram illustrating a more detailed configuration of the transform and
도 3은 본 발명의 일 실시예에 따른 상기 변환 및 양자화부(113)의 동작을 설명하기 위한 플로우차트이다.3 is a flowchart illustrating an operation of the transform and
도 4는 본 발명의 일 실시예에 따른 AVS 복호화기의 구성을 도시한 블록도이다.4 is a block diagram showing the configuration of an AVS decoder according to an embodiment of the present invention.
도 5는 도 4에 도시된 역 변환 및 역 양자화부(414)의 보다 자세한 구성을 도시한 블록도이다.5 is a block diagram illustrating a more detailed configuration of the inverse transform and
도 6은 본 발명의 일 실시예에 따른 상기 역 변환 및 역 양자화부(414)의 동작을 설명하기 위한 플로우차트이다.6 is a flowchart for describing an operation of the inverse transform and
도 7은 종래기술과 본 발명의 일 실시예에 따른 부호화 효율을 PSNR(Peak Signal-to-Noise)을 이용하여 비교한 그래프이다.7 is a graph comparing the coding efficiency according to the prior art and the embodiment of the present invention using a peak signal-to-noise (PSNR).
본 발명은 영상 처리기술에 관한 것으로, 특히 8 bit이상의 다양한 비트심도를 갖는 영상 데이터를 부호화 및 복호화하는 방법 및 장치에 관한 것이다.The present invention relates to image processing technology, and more particularly, to a method and apparatus for encoding and decoding image data having various bit depths of 8 bits or more.
영상 통신 시스템 및 장치에서 대형 스크린에 대한 요구 및 그에 따른 고 해상도에 대한 요구가 증가하는 추세이다. 전자제품 시장에 있어서도 대형 CRT, LCD, PDP 및 고화질 프로젝터 TV(High-Definition)에 대한 소비자들의 수요가 증가하고 있다. 더욱이 MPEG, DVD, DV 등의 디지털 방식으로 처리되어 저장되는 영상 데이터의 확산은 이를 더욱 가속화하고 있다. 그에 따라, 고 해상도를 갖는 대형 스크린에서 디스플레이되는 이미지 또는 동영향의 화질을 개선하는 것이 매우 중요한 문제로 부각되었다.In video communication systems and devices, there is a growing demand for large screens and hence high resolution. In the electronics market, consumer demand for large CRTs, LCDs, PDPs and high-definition projectors (TVs) is increasing. Moreover, the spread of image data processed and stored digitally such as MPEG, DVD, DV, and the like is accelerating this further. Accordingly, improving the image quality of the image or dynamic effect displayed on a large screen with high resolution has emerged as a very important problem.
비디오 부호화 장치의 측면에서 살펴보면, 디스플레이되는 영상의 화질을 그 영상 데이터 값을 표현하는 비트 수에 영향을 받는다. 영상 데이터의 정밀도를 나타내는 비트심도(bit depth) 즉, 영상 데이터 값을 표현하는 비트 수가 증가할수록 더욱 다양한 레벨로 데이터를 표현할 수 있기 때문이다.In terms of the video encoding apparatus, the image quality of the displayed image is affected by the number of bits representing the image data value. This is because the bit depth representing the precision of the image data, that is, the number of bits representing the image data value increases, so that the data can be represented at various levels.
그러나, 종래의 오디오 및 비디오 코딩 표준(AVS; Audio and Video coding Standard)에 따르면, 종래의 부호화 장치는 8 bit 데이터와 같이 일정한 비트심도를 갖는 데이터에 대해서만 부호화가 수행되었다. 그러나, 비디오 압축기술이 발전함에 따라, 입력되는 비디오 데이터의 타입(type) 또는 고화질 디스플레이 응용 제품의 요구에 따라 8 bit 이상의 예를 들어, 10bit 또는 12bit와 같은 더 높은 비트 심도를 갖는 데이터를 처리할 수 있는 부호화 장치의 성능이 요구된다. 그러나, 더 높은 비트심도를 갖는 데이터를 처리하기 위해 하드웨어의 스펙(Specification)을 높이는 것을 가격 상승을 야기하므로 바람직하지 못하다. 따라서, AVS에 따른 부호화 장치 및 방법에 있어서, 동일한 하드웨어 스펙을 유지하면서 다양한 비트심도를 갖는 N bit 영상 데이터를 부호화 하여, 디스플레이 되는 영상 데이터의 화질을 개선할 필요가 있다.However, according to the conventional audio and video coding standard (AVS), the conventional encoding apparatus performs encoding only on data having a constant bit depth, such as 8 bit data. However, as the video compression technology develops, it is necessary to process data having a higher bit depth such as 10 bit or 12 bit or more according to the type of input video data or the demand of high definition display application. The performance of the encoding device that can be required. However, increasing the specification of the hardware to process data with higher bit depths is undesirable because it causes a price increase. Therefore, in the coding apparatus and method according to the AVS, it is necessary to improve the image quality of the displayed image data by encoding N bit image data having various bit depths while maintaining the same hardware specification.
본 발명이 해결하고자 하는 기술적 과제는, 오디오 및 비디오 코딩 표준(AVS)에 있어서, 하드웨어 스펙을 최소한만 변경하여 N(8 이상의 정수) bit 영상 데이터를 부호화할 수 있고, 동시에 부호화 효율이 개선되는 부호화 방법 및 장치를 제공하는 것이다. The technical problem to be solved by the present invention, in the audio and video coding standard (AVS), the encoding of the N (integer or greater) bit image data can be encoded with a minimum change of hardware specifications, and at the same time the encoding efficiency is improved It is to provide a method and apparatus.
본 발명의 해결하고자 하는 다른 기술적 과제는, 오디오 및 비디오 코딩 표준(AVS)에 있어서, 하드웨어 스펙을 최소한만 변경하여 N(8이상의 정수) bit 영상 데이터를 복호화할 수 있는 복호화 방법 및 장치를 제공하는 것이다.Another technical problem to be solved by the present invention is to provide a decoding method and apparatus which can decode N (integer of 8 or more) bit image data by changing a minimum of a hardware specification in an audio and video coding standard (AVS). will be.
상기 기술적 과제를 해결하기 위하여, 본 발명에 따른 N-bit 영상 데이터의 부호화 방법은 (a) 입력된 영상 데이터에서 상기 영상 데이터의 예측 데이터를 제거한 차분 데이터를 생성하는 단계 (b) 상기 생성된 차분 데이터를 주파수영역으로 변환하는 단계 및 (c) 상기 영상 데이터의 정밀도를 나타내는 비트심도에 대응하여 상기 변환된 차분 데이터를 양자화하는 단계를 포함하는 것이 바람직하며, (d) 상 기 비트심도(N)에 관한 정보 및 상기 양자화된 결과를 부호화하여 비트스트림을 생성하고, 출력하는 단계를 더 포함할 수 있다.In order to solve the above technical problem, the encoding method of the N-bit image data according to the present invention comprises the steps of (a) generating the difference data from the prediction data of the image data from the input image data (b) the difference And converting the data into a frequency domain and (c) quantizing the transformed differential data corresponding to a bit depth indicating the precision of the image data. (D) The bit depth (N). The method may further include generating and outputting a bitstream by encoding information about the quantized result.
또한 상기 (c)단계는 상기 비트심도(N)에 따라 결정되는 소정 계수들을 이용한 소정 연산을 수행함으로써, 상기 변환된 차분 데이터를 양자화하는 단계로서, (c1) 상기 변환된 차분 데이터를 제1 소정값으로 나누는 단계; (c2) 상기 제1 소정값으로 나눈 결과에 소정 계수 s를 곱하는 단계; (c3) 상기 소정 계수 s를 곱한 결과를 제2 소정값으로 나누는 단계; (c4) 상기 제2 소정값으로 나눈 결과에 소정 계수 q를 곱하는 단계; 및 (c5) 상기 소정 계수 q를 곱한 결과에 소정값 k를 더하고, 상기 소정값 k를 더한 결과를 소정 비트 우측으로 이동시키는 단계를 포함하는 것이 바람직하다. In addition, step (c) is a step of quantizing the transformed differential data by performing a predetermined operation using predetermined coefficients determined according to the bit depth N, and (c1) converting the transformed differential data to a first predetermined value. Dividing by value; (c2) multiplying a result of dividing by the first predetermined value by a predetermined coefficient s; (c3) dividing a result of multiplying the predetermined coefficient s by a second predetermined value; (c4) multiplying a result of dividing by the second predetermined value by a predetermined coefficient q; And (c5) adding a predetermined value k to a result of multiplying the predetermined coefficient q and shifting the result of adding the predetermined value k to the right of the predetermined bit.
또한, 상기 비트심도(N)는 8이상의 정수인 것이 바람직하다.In addition, the bit depth N is preferably an integer of 8 or more.
상기 다른 기술적 과제를 해결하기 위하여, 본 발명에 따른 N-bit 영상 데이터의 부호화 장치는 입력된 영상 데이터에서 상기 입력된 영상 데이터의 예측 데이터를 제거한 차분 데이터를 생성하는 차분 데이터 생성부, 상기 생성된 차분 데이터를 주파수영역으로 변환하는 변환부, 및 상기 변환된 차분 데이터를 상기 입력된 상기 영상 데이터의 정밀도를 나타내는 비트심도에 대응하여 상기 변환된 차분 데이터를 양자화하는 양자화부를 포함하는 것이 바람직하며, 상기 비트심도(N)에 관한 정보 및 상기 양자화된 결과를 부호화하여 비트스트림을 생성하고, 출력하는 엔트로피 부호화부를 더 포함할 수 있다. In order to solve the above another technical problem, an apparatus for encoding N-bit image data according to the present invention includes a difference data generator for generating difference data from which prediction data of the input image data is removed from the input image data. And a conversion unit for converting the difference data into the frequency domain, and a quantization unit for quantizing the converted difference data corresponding to a bit depth indicating the precision of the input image data. The apparatus may further include an entropy encoder configured to generate and output a bitstream by encoding the information about the bit depth N and the quantized result.
또한, 상기 양자화부는 상기 변환된 차분 데이터를 제1 소정값으로 나누는 제1 나눗셈부, 상기 제1 소정값으로 나눈 결과에 소정 계수 s를 곱하는 제1 곱셈부,상기 소정 계수 s를 곱한 결과를 제2 소정값으로 나누는 제2 나눗셈부, 상기 제2 소정값으로 나눈 결과에 소정 계수 q를 곱하는 제2 곱셈부 및 상기 소정 계수 q를 곱한 결과에 상수 k를 더하고, 상기 상수 k를 더한 결과를 소정 비트 우측으로 이동시키는 시프팅부를 포함하고, 상기 제1 및 제2 소정값은 상기 비트심도(N)에 대응하여 결정되는 값이고, 상기 제1 및 제2 나눗셈부에서 수행되는 연산은 정수 연산인 것이 바람직하다. The quantization unit may further include a first divider that divides the transformed difference data into a first predetermined value, a first multiplier that multiplies a result of dividing the converted difference data by the first predetermined value, and multiplies a result of the predetermined coefficient s A second division unit for dividing by a predetermined value, a second multiplier for multiplying a result of dividing by the second predetermined value, and a result of multiplying the predetermined coefficient q, and a result of adding the constant k to the result of multiplying the predetermined coefficient q, and adding the constant k And a shifting unit for shifting bits to the right, wherein the first and second predetermined values are values determined corresponding to the bit depths N, and the operations performed by the first and second division units are integer operations. It is preferable.
또한, 상기 비트심도(N)는 8이상의 정수인 것이 바람직하다.In addition, the bit depth N is preferably an integer of 8 or more.
상기 또 다른 기술적 과제를 해결하기 위하여, 본 발명에 따른 N-bit 영상 데이터의 복호화 방법은 (a) 입력된 비트스트림을 복호화하여 상기 비트스트림에 포함된 영상 데이터의 정밀도를 나타내는 비트심도(N)에 관한 정보 및 양자화 데이터를 복원하는 단계, (b) 상기 복원된 양자화 데이터를 상기 비트심도에 대응하여 역양자화하는 단계 및(c) 상기 역양자화된 결과를 시간영역으로 역변환하여 상기 영상 데이터에서 상기 영상 데이터의 예측 데이터를 제거한 차분 데이터를 복원하는 단계를 포함하는 것이 바람직하며, (d) 상기 복원된 차분 데이터에 상기 영상 데이터의 예측 데이터를 합하여 상기 영상 데이터를 복원하고, 출력하는 단계를 더 포함할 수 있다.In order to solve the another technical problem, the decoding method of the N-bit image data according to the present invention (a) a bit depth (N) indicating the precision of the image data included in the bit stream by decoding the input bit stream Restoring information about the quantized data and (b) dequantizing the reconstructed quantized data corresponding to the bit depth, and (c) inversely converting the dequantized result into a time domain to perform the inverse on the image data. And restoring difference data from which prediction data of the image data has been removed, and (d) restoring and outputting the image data by adding the predicted data of the image data to the restored difference data. can do.
또한, 상기 (b)단계는 (b1) 상기 복원된 양자화 데이터에 소정 계수 r을 곱하는 단계 및 (b2) 상기 소정 계수 r을 곱한 결과를 소정 계수 n으로 나누는 단계를 포함하고, 상기 (b2)단계는 정수 연산에 의해 수행되는 것이 바람직하다.In addition, step (b) includes (b1) multiplying the reconstructed quantized data by a predetermined coefficient r and (b2) dividing a result of multiplying the predetermined coefficient r by a predetermined coefficient n, and (b2) Is preferably performed by an integer operation.
또한, 상기 비트심도(N)는 8이상의 정수인 것이 바람직하다.In addition, the bit depth N is preferably an integer of 8 or more.
상기 또 다른 기술적 과제를 해결하기 위하여, N-bit 영상 데이터의 복호화 장치는 입력된 비트스트림을 복호화하여 상기 비트스트림에 포함된 영상 데이터의 정밀도를 표현하는 비트심도에 관한 정보 및 양자화 데이터를 복원하는 엔트로피 복호화부, 상기 복원된 양자화 데이터를 상기 복원된 비트심도에 대응하여 역양자화하는 역양자화부 및 상기 역양자화된 결과를 시간 영역으로 역변환하여 차분 데이터를 복원하는 역변환부를 포함하는 것이 바람직하다.In order to solve the another technical problem, the decoding apparatus for N-bit image data decodes the input bitstream to restore the information about the bit depth and the quantization data representing the precision of the image data included in the bitstream An entropy decoder, an inverse quantizer for inversely quantizing the recovered quantized data corresponding to the recovered bit depth, and an inverse transformer for restoring the differential data by inversely transforming the inverse quantized result into a time domain.
또한, 상기 역양자화부는 상기 복원된 양자화 데이터에 소정 계수 r을 곱하는 제3 곱셈부 및 상기 소정 계수 r을 곱한 결과를 소정 계수 n으로 나누는 제3 나눗셈부를 포함하고, 상기 제3 나눗셈부에서 수행되는 연산은 정수 연산인 것이 바람직하다.The inverse quantization unit may include a third multiplier for multiplying the restored quantized data by a predetermined coefficient r, and a third divider for dividing a result of multiplying the predetermined coefficient r by a predetermined coefficient n, and performed by the third divider. The operation is preferably an integer operation.
또한, 상기 비트심도(N)는 8이상의 정수인 것이 바람직하다.In addition, the bit depth N is preferably an integer of 8 or more.
상기 또 다른 기술적 과제를 해결하기 위하여, 본 발명에 따른 부호화 방법 및 복호화 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.In order to solve the another technical problem, a computer-readable recording medium having a program for executing the encoding method and the decoding method according to the present invention on a computer is provided.
이하, 첨부된 도면 및 실시예를 참조하여 본 발명의 바람직한 실시예를 설명하겠다. 본 발명은 앞으로 설명하는 실시예에 한정되지 않으며, 첨부된 청구범위로부터 본 발명이 속한 기술 분야에서 통상의 지식을 가진 자가 다양하게 변환할 수 있으며, 이러한 변환은 본 발명의 범위에 속한다.Hereinafter, with reference to the accompanying drawings and embodiments will be described a preferred embodiment of the present invention. The present invention is not limited to the embodiments described below, and various changes can be made by those skilled in the art from the appended claims, and such conversions fall within the scope of the present invention.
동영상(moving image) 데이터는 움직임 예측 기술에 의하여 부호화/복호화 된다. 움직임 예측(motion prediction)은 과거(previous) 프레임 또는 과거(previous) 및 미래(future) 프레임 모두를 참조하여 수행된다. 현재(current) 프레임을 부호화/복호화할 때, 참조되는 프레임을 참조(reference) 프레임이라고 명칭한다. 블록기반 동영상 부호화에 있어서, 동영상을 구성하는 정지 이미지(still image) 또는 정지 프레임은 일반적으로 16ㅧ 16 단위의 매크로 블록(MB; Macro-block)으로 분할되며, 매크로 블록은 더 작은 단위의 서브 블록들로 분할된다. 따라서, 정지 이미지간의 움직임은 블록 대 블록으로서 예측되고, 부호화된다.Moving image data is encoded / decoded by a motion prediction technique. Motion prediction is performed with reference to past frames or both past and future frames. When encoding / decoding a current frame, the frame referred to is referred to as a reference frame. In block-based video encoding, a still image or still frame constituting a video is generally divided into macroblocks (MB) of 16 ㅧ 16 units, and macroblocks are subblocks of smaller units. Divided into Thus, the motion between still images is predicted as block to block and encoded.
이하, 도 1을 참조하여 본 발명에 따른 N-bit 영상 데이터의 부호화 장치 및 방법을 설명하겠다.Hereinafter, an apparatus and method for encoding N-bit image data according to the present invention will be described with reference to FIG. 1.
도 1은 본 발명의 일 실시예에 따른 N-bit 영상 데이터의 부호화 장치의 구성을 도시한 블록도로서, 분할부(100), 예측부(110), 제1 가산기(112), 부호화 제어부(120), 변환 및 양자화부(113) 및 엔트로피 부호화부(130)를 포함한다.FIG. 1 is a block diagram illustrating a configuration of an apparatus for encoding N-bit image data according to an embodiment of the present invention. The
8-bit의 비트심도를 갖는 로 데이터(raw data)가 입력되면, 분할부(100)는 부호화 제어부(120)의 제어에 따라 부호화할 프레임(frame) 또는 필드(field)를 선택하며, 선택된 각 프레임 또는 필드를 매크로 블록으로 분할한다. 각 매크로 블록은 16ㅧ 16 화소(pixel)들로 구성된다. 16ㅧ 16 화소의 매크로 블록은 영상 데이터의 휘도 또는 색차 정보가 담긴 복수 개의 16ㅧ 16 블록 및/또는 복수 개의 8ㅧ 8 블록으로 구성된다.When raw data having an 8-bit bit depth is input, the
부호화 제어부(120)는 입력 영상 데이터의 정밀도를 나타내는 비트심도(N)에 관한 정보를 추출하고, 부호화 장치의 전반적인 동작을 제어한다.The
제1 가산기(112)는 분할부(100)에서 출력된 로 데이터 및 프레임내 예측부(117, intra prediction module) 또는 프레임간 예측부(118, inter prediction module)에서 예측된 예측 데이터를 전송받고, 로 데이터에서 예측 데이터를 제거하여(subtract) 차분 데이터(X, differential data)를 출력한다.The
변환 및 양자화부(113)는 차분 데이터(X)를 정수 DCT(Discrete Cosine Transform, 이상여현변환) 변환하고, 변환된 차분 데이터(X)를 양자화하여 양자화 데이터를 생성한다. 또, 생성된 양자화 데이터를 예측부(110)로 출력한다.The transform and
예측부(110)는 역 변환 및 역 양자화부(114), 제2 가산기(111), 디블록킹부(115), 메모리(116), 프레임내 예측부(117, intra prediction module), 프레임간 예측부(118, inter prediction module) 및 움직임 추정부(119)를 포함한다.The
역 변환 및 역 양자화부(114)는 변환 및 양자화부(113)에서 출력된 양자화 데이터에 대해 역 정수 DCT 변환 및 역 양자화을 수행하여 복원된 차분데이터(X)를 생성하고, 출력한다.The inverse transform and inverse quantization unit 114 performs inverse integer DCT transform and inverse quantization on the quantized data output from the transform and
제2 가산기(111)는 현재 프레임의 복원된 차분 데이터(X)에 프레임내 예측부(117) 또는 프레임간 예측부(118)에서 예측된 예측 데이터를 합하고, 그 결과를 디블록킹부(115)로 출력한다.The
디블록킹부(115)는 블록 왜곡현상을 감소시키기 위해 각각의 복원된 매크로 블록에 필터링을 수행하고, 필터링이 수행된 각 결과를 메모리(116)로 출력한다.The
메모리(116)는 디블록킹부(110)에서 출력된 데이터를 후에 프레임내 예측부(117) 또는 프레임간 예측부(118)에서 사용할 수 있도록 저장한다.The
프레임내 예측부(117, intra prediction)는 프레임내 예측을 수행하고, 프레임간 예측부(118, inter prediction))는 프레임간 예측을 수행한다. 이들 예측은 움직임 보상이라고도 불린다.The
움직임 추정부(119)는 메모리(116)에서 매크로 블록에 대한 참조 프레임을 검색하고, 검색된 참조 프레임의 매크로 블록에서의 이미지와 현재 프레임의 매크로 블록에서의 이미지간의 위치 차이를 움직임 벡터로 표현하여, 제1 가산기(112)로 출력한다.The
엔트로피 부호화부(130)는 부호화 제어부(120)의 제어 신호, 움직임 추정부(119)의 움직임 데이터 및 변환 및 양자화부(113)의 양자화 데이터를 전송받고, 이들을 조합(group)하여 출력 비트스트림을 생성한다.The
변환 및 양자화부(113)는 차분 데이터(X)를 영상 데이터의 비트심도(N)에 대응하여 변환하고, 양자화한다. The transform and
이하, 도 2 및 도 3을 참조하여, 변환 및 양자화부(113)의 동작을 설명하겠다.Hereinafter, the operation of the transform and
도 2는 본 발명의 일 실시예에 따른 부호화 장치의 변환 및 양자화부(113)의 구성을 도시한 블록도로서,변환 및 양자화부(113)는 DCT 변환부(210), 제1 나눗셈부(220), 제1 곱셈부(230), 제2 나눗셈부(240), 제2 곱셈부(250) 및 시프팅부(260)를 포함한다. 2 is a block diagram illustrating a configuration of a transform and
도 3은 본 발명의 일 실시예에 따른 변환 빛 양자화 과정을 설명하기 위한 플로우차트로서, 차분 데이터(X)를 주파수 영역으로 변환하는 310단계, 비트심 도(N)에 따라 하드웨어의 스펙에 맞게 변환된 차분 데이터(X)의 크기를 조절하는 320 내지 350단계 및 변환되고, 크기가 조절된 차분 데이터(X)로부터 양자화 데이터를 생성하는 360 내지 370단계를 포함한다.FIG. 3 is a flowchart for describing a converted light quantization process according to an embodiment of the present invention, in which step 310 is performed to convert difference data X into a frequency domain, according to hardware specifications according to bit depth N;
도 3을 참조하여, 변환 및 양자화부(113)의 동작을 살펴보자.Referring to FIG. 3, look at the operation of the transform and
일반적으로 차분 데이터(X)는 행렬 형태로 처리되므로, 설명의 편의를 위하여 차분 데이터(X)를 차분 행렬(X)로 표현하기로 하자.In general, since the difference data X is processed in a matrix form, the difference data X will be represented as a difference matrix X for convenience of explanation.
제 300단계에서, 변환 및 양자화부(113)는 입력된 영상 행렬의 비트심도(N)에 관한 정보를 전송받는다.In
제 310단계에서, 제1 가산기(112)는 입력되 영상 행렬의 예측에 의한 차분 행렬(X)을 생성한다.In
제 320단계에서, DCT 변환부(210)는 제1 가산기(112)로부터 입력된 차분 행렬(X)을 다음 수학식 1에 의해 정수 DCT 변환하여 제1 행렬(B)을 생성한다.(각 매크로 블록에 대하여, 신호 행렬의 개수 및 구성(organization)은 로(raw) 비디오 포맷 및 매크로 블록의 부호화 모드에 의해 결정된다)In
B = A · TT B = AT T
여기서, P·Q는 행렬 P와 행렬 Q의 행렬 곱을 의미하고, T는 정수 DCT 변환 행렬, TT는 정수 DCT 변환 행렬 T의 전치행렬(transpose), X는 차분 행렬, B는 DCT 변환된 제1 행렬을 의미한다.Where P and Q are matrix multiplications of the matrix P and matrix Q, T is an integer DCT transform matrix, T T is a transpose of the integer DCT transform matrix T, X is a differential matrix, and B is a DCT transformed product. 1 matrix.
8ㅧ 8 DCT 변환을 위하여, 정수 DCT 변환 행렬 T는 다음의 행렬인 것이 바람직하다.For 8 ㅧ 8 DCT conversion, the integer DCT conversion matrix T is preferably the following matrix.
T = [8 8 8 8 8 8 8 8T = [8 8 8 8 8 8 8 8
10 9 6 2 -2 -6 -9 -1010 9 6 2 -2 -6 -9 -10
10 4 -4 -10 -10 -4 4 1010 4 -4 -10 -10 -4 4 10
9 -2 -10 -6 6 10 2 -99 -2 -10 -6 6 10 2 -9
8 -8 -8 8 8 -8 -8 88 -8 -8 8 8 -8 -8 8
6 -10 2 9 -9 -2 10 -66 -10 2 9 -9 -2 10 -6
4 -10 10 -4 -4 10 -10 44 -10 10 -4 -4 10 -10 4
2 -6 9 -10 10 -9 6 -2 ].2 -6 9 -10 10 -9 6 -2].
DCT 변환부(210)는 T 행렬 및 TT 행렬을 이용하여, 정수 DCT 변환된 제1 행렬(B)을 제1 나눗셈부(220)로 출력한다.The
제 330단계에서, 제1 나눗셈부(220)는 변환된 제1 행렬(B)을 입력 영상 데이터의 비트심도(N)에 대응하여 결정되는 제1 소정값(Shift Tab0)으로 나누고, 나눈 몫을 가장 가까운 정수값으로 근사하여(rounding) 제2 행렬(C)을 생성한다. 그리고 생성된 제2 행렬(C)를 제1 곱셈부(230)로 전송한다. 330단계는 다음 수학식 2로 표현될 수 있다.In
여기서 a//b는 a를 b로 나누고, 라운드(가장 가까운 정수값으로 근사)하는 연산을 의미한다.Where a // b divides a by b and rounds (approximates to the nearest integer).
제1 곱셈부(230)가 16-bit 멀티플라이어(multiplier)에 의해 구현될 때, 입력된 영상 데이터의 비트심도(N)가 10 bit인 경우, 제1 소정값(Shift Tab0)은 7로 설정되고, 비트심도(N)가 12 bit인 경우, 제1 소정값(Shift Tab0)이 9로 설정되는 것이 바람직하다. 그러나, 제1 소정값(Shift Tab0)은 제1 곱셈부(230)를 구현하는 멀티플라이어의 스펙에 따라 다르게 설정될 수 있다. When the
제 340단계에서, 제1 곱셈부(230)는 제2 행렬(C)를 소정 계수 s(i)를 원소로 하는 소정 행렬 S와 좌표기반 배열 곱(domain-based array multiplication)하여 제3 행렬(D)을 생성하고, 제3 행렬(D)을 제3 나눗셈부(240)로 전송한다. 340단계는 수학식 3으로 표현될 수 있다.In
여기서, C는 제2 행렬, s(i)는 다음 수학식 4에 의해 결정되는 소정 계수, ".*"연산은 좌표기반 배열 곱을 의미한다.Here, C is a second matrix, s (i) is a predetermined coefficient determined by the following equation (4), ". *" Operation means a coordinate-based array product.
P.*Q란 P의 각 원소를 그 원소와 동일한 위치의 Q의 각 원소와 곱하는 연산이다. 본 발명의 일 실시예에 따라, 차분 행렬(X)이 8ㅧ 8 행렬인 경우, 소정 행렬 S는 다음과 같을 수 있다. P. * Q is an operation of multiplying each element of P with each element of Q at the same position as that element. According to an embodiment of the present invention, when the difference matrix X is an 8 ㅧ 8 matrix, the predetermined matrix S may be as follows.
S = S =
소정 행렬 S의 각 원소 s(i)는 다음과 같다.Each element s (i) of the predetermined matrix S is as follows.
s(i)≒ /v(i), 여기서 i는 0 내지 5 사이의 정수이고, "≒"는 거의 동일한 값임을 의미한다. 즉, s(i)는 /v(i)와 오차 범위내에 있는 정수이다.s (i) / v (i), where i is an integer between 0 and 5, and "≒" means approximately the same value. That is, s (i) is / v (i) and an integer within the margin of error.
본 발명의 일 실시예에 따르면, v(i)는 v = [512×512, 442×442, 464×454, 512×442, 512×464, 442×464] 값을 갖고, s(i)는 s = [32768, 43969 39898 37958 36158, 41884]의 값을 갖는다. According to an embodiment of the present invention, v (i) has a value of v = [512 × 512, 442 × 442, 464 × 454, 512 × 442, 512 × 464, 442 × 464], and s (i) is s = [32768, 43969 39898 37958 36158, 41884].
이제, 좌표기반 배열 곱에 대해 상세히 설명하겠다. 본 발명의 일 실시예에 따라 제2 행렬(C)과 소정 행렬 S를 좌표 기반 배열 곱하는 과정을 다음과 같다.We will now discuss the coordinate-based array product in detail. According to an embodiment of the present invention, a process of performing coordinate-based array multiplication of the second matrix C and the predetermined matrix S is as follows.
우선, 제0 또는 4행이면서 제0 또는 4열인 데이터는 소정(preset) 계수 s(0)에 의해 곱하고, 제1, 3, 5 및 7행 중 어느 한 행이면서 제1, 3, 5, 7열 중 어느 한 열인 데이터는 소정 계수 s(1)에 의해 곱하고, 제2 또는 6행이면서 제2 또는 6열인 데이터는 소정 계수 s(2)에 의해 곱한다. 또, 제0 또는 4행이면서, 제1, 3, 5 및 7행 중 어느 한 행인 데이터 및 제 1, 3, 5 및 7행 중 어느 한 행이면서 제 0 또는 4열인 데이터는 소정 계수 s(3)에 의해 곱하고, 제0 또는 4행이면서 제2 또는 6열인 데이터 및 제2 또는 6행이면서 제0 또는 4열인 데이터는 소정 계수 s(4)에 의해 곱하고, 나머지 데이터는 소정 계수 s(5)에 의해 곱한다. First, the data of the 0th or 4th row and the 0th or 4th column is multiplied by a preset coefficient s (0), and is any of the first, 3, 5, and 7th rows and is the first, 3, 5, 7th. Data in any one of the columns is multiplied by the predetermined coefficient s (1), and data in the second or sixth row and the second or sixth column is multiplied by the predetermined coefficient s (2). Moreover, data which is 0th or 4th row and is any one of 1st, 3, 5, and 7th row, and data which is 1st, 3rd, 5th, and 7th row and 0th or 4th column is predetermined coefficient s (3 Multiply by), and the data of the second or sixth row in the 0th or 4th row and the data of the 0th or 4th row in the second or 6th row are multiplied by the predetermined coefficient s (4), and the remaining data is multiplied by the predetermined coefficient s (5) Multiply by
이후, 제1 곱셈부(230)는 좌표기반 배열 곱에 의해 생성된 제3 행렬(D)을 제2 나눗셈부(240)로 전송한다.Thereafter, the
제 350단계에서, 제2 나눗셈부(240)는 제3 행렬(D)를 입력 영상 데이터의 비트심도 N에 대응하여 결정된 제2 소정값(Shift Tab1)에 의해 나누고, 나눈 몫을 가장 가까운 정수값으로 근사화하여 제4 행렬(E)을 생성한다. 그리고, 생성된 제4 행렬(E)을 제2 곱셈부(250)로 전송한다. 350단계에서의 동작은 다음 수학식 4와 같이 표현될 수 있다.In
제2 곱셈부(250)가 16-bit 멀티플라이어(multiplier)에 의해 구현될 때, 입력된 영상 데이터의 비트심도(N)가 10 bit인 경우, 제2 소정값(Shift Tab1)은 17로 설정되고, 비트심도(N)가 12 bit인 경우, 제2 소정값(Shift Tab1)은 15로 설정되는 것이 바람직하다. 그러나, 제2 소정값(Shift Tab1)은 제2 곱셈부(230)를 구현하는 멀티플라이어의 스펙에 따라 다르게 설정될 수 있다.When the
제 310단계에서 생성된 차분 행렬(X)을 제 320단계에서 DCT 변환하면, 영상 데이터의 중요한 값들이 특정 부분으로 모이게 된다. 예를 들어, DCT 변환하여 생성된 제1 행렬(B)의 좌측 상단 부분에 영상 데이터를 복원함에 있어 의미있는 값들이 모이게 된다. 이 값들을 양자화함에 있어서, 한정된 하드웨어 제약내에서 부호화 효율을 개선하기 위해서는 중요한 값들에 더 가중치를 두어 중요한 값들은 더 세밀한 간격으로 양자화하고, 그렇지 않은 값들은 조금 덜 세밀한 간격으로 양자화 하는 것이 바람직하다. 제 340단계에서 소정 계수 s를 곱하는 단계는 변환된 차분 데이터(X)로부터 양자화 데이터를 추출하기 전에 각 데이터마다 다르게 설정된 스케일 팩터를 곱하여, 중요한 데이터들은 더 정밀하게 양자화될 수 있도록 하는 과정이다.When the difference matrix X generated in
또한, 제 340단계의 과정 전후에, 제 330 및 제 350 단계에서는 비트심도에 대응하여 결정되는 제1 및 제2 소정값으로 데이터를 나누는 과정을 수행한다. 이는 차분 데이터(X)를 소정 연산과정을 통해 양자화함에 있어서, 하드웨어의 스펙에 제한이 있으므로, 이러한 제한 조건하에서 비트심도가 확장된 데이터들을 처리하기 위하여, 데이터 레벨을 조절하는 단계들이다. 따라서, 영상 데이터의 비트심도가 증가하는 경우, 동일한 하드웨어 스펙을 가지는 시스템에서 이를 처리하기 위해서는 DCT 변환된 제1 행렬(B)을 비트심도에 비례하여 증가하는 제1 소정값으로 나누어 이 연산을 수행하는 멀티플라이어 및 메모리 등에서 오버플로우(overflow)가 발생하여 영상 데이터를 유실하는 일이 없도록 하기 위함이다. 제1 행렬(B)을 제1 소정값으로 나누어 생성한 제2 행렬(C)을 소정 계수 s로 곱한 제3 행렬(D)을 제2 소정값으로 나누는데, 제2 소정값은 제1 소정값이 증가함으로 발생한 여분을 보충하기 위하여 제1 소정값과는 반대로 비트심도에 비례하여 감소하는 것이 바람직하다. 이와 같이 제1 및 제2 소정값을 하드웨어 스펙에 맞춰 적절히 조절하여 양자화를 위한 소정 연산과정에서 오버플로우(overflow)가 발생되지 않도록 하는 것이 바람직하다. 또한, 이처럼 제1 소정값과 제2 소정값을 비트심도에 따라 적절히 조절하므로, 하드웨어 스펙이 고정된 시스템내에서 하드웨어를 최대한 효율적으로 활용하 여, 부호화 효율을 증가시키고, 화질을 개선하여 효과도 얻을 수 있다.In addition, before and after the process of
구체적인 수치를 예로 들면, 종래의 AVS 부호화 장치에서, 종래의 8 bit 영상 데이터를 부호화 하는 경우에는, 제1 소정값이 5로 설정되나, 10 bit 또는 12 bit 의 영상 데이터의 경우는 제1 소정값이 7 또는 9로 설정되는 것이 바람직하다. 즉, 차분 행렬(X)의 입출력을 위해 16-bit 메모리, 양자화를 위해 16-bit 멀리플라이어, 소정 연산을 위해 32 bit 산술논리유닛(ALU; Arithmetic Logic Unit)을 사용하는 경우, 종래에 8bit 영상 데이터를 부호화 하는 경우는, 제1 및 제2 소정값이 5 및 19로 설정되었으나, 비트심도가 10 bit 또는 12 bit로 증가하게 되면, 제1 및 제2 소정값이 각각 7과 17 또는 9와 15로 설정될 수 있다.Taking a specific numerical value as an example, in the conventional AVS encoding apparatus, when encoding conventional 8-bit video data, the first predetermined value is set to 5, but in the case of 10-bit or 12-bit video data, the first predetermined value. It is preferable to set this to 7 or 9. That is, in the case of using a 16-bit memory for input and output of the difference matrix (X), a 16-bit far plier for quantization, and a 32-bit Arithmetic Logic Unit (ALU) for a predetermined operation, a conventional 8-bit image is used. In the case of encoding data, the first and second predetermined values are set to 5 and 19, but when the bit depth is increased to 10 bits or 12 bits, the first and second predetermined values are set to 7, 17, or 9, respectively. Can be set to 15.
제 360단계에서, 제2 곱셈부(250)는 제4 행렬(E)에 소정 계수 q[QP]를 곱하여, 제5 행렬(F)을 생성한다. 그리고, 생성된 제5 행렬(F)을 시프트부(260)로 전송한다. 360단계에서의 동작은 다음 수학식 5와 같이 표현될 수 있다.In
여기서, a.P는 a와 P 행렬의 스칼라 곱을 의미한다.Here, a.P means a scalar product of a and P matrix.
소정 계수 q[QP]는 양자화 파라미터(QP)에 의해 다음과 같이 결정된다.The predetermined coefficient q [QP] is determined as follows by the quantization parameter QP.
q[QP]= round[/]q [QP] = round [ Of ]
여기서, 양자화 파라미터(QP)는 0≤QP≤63 사이의 정수이고, Here, the quantization parameter QP is an integer between 0 ≦ QP ≦ 63,
round[X]는 X와 가장 가까운 정수를 의미하며,round [X] is the integer closest to X.
"≒"부호는 근사적으로 동일한 값임을 의미한다.The symbol "부" means that the value is approximately the same.
즉, q[QP]는 양자화 파라미터(QP)에 따라That is, q [QP] is determined according to the quantization parameter QP.
q[64] = { 32768,29775,27554,25268,23170,21247,19369,17770,q [64] = {32768,29775,27554,25268,23170,21247,19369,17770,
16302,15024,13777,12634,11626,10624,9742,8958,16302,15024,13777,12634,11626,10624,9742,8958,
8192,7512,6889,6305,5793,5303,4878,4467,8192,7512,6889,6305,5793,5303,4878,4467,
4091,3756,3444,3161,2894,2654,2435,2235,4091,3756,3444,3161,2894,2654,2435,2235,
2048,1878,1722,1579,1449,1329,1218,1117,2048,1878,1722,1579,1449,1329,1218,1117,
1024,939,861,790,724,664,609,558,1024,939,861,790,724,664,609,558,
512,470,430,395,362,332,304,279,512,470,430,395,362,332,304,279,
256,235,215,197,181,166,152,140} 256,235,215,197,181,166,152,140}
의 값을 갖는다.Has the value of.
제 370단계에서, 시프트부(260)는 제5 행렬(F)에 소정값 k를 더하고, 그 결과를 15bit 만큼 우측으로 시프트(right shift)하여 제6 행렬(G)을 생성한다. 제 6행렬(G)은 양자화 데이터로서 엔트로피 부호화부(130)로 전송된다. 소정값 k는 다음과 같이 정의된다.In
프레임내의 블록인 경우, k = (1<<15)*10/31 = *10/31For blocks in a frame, k = (1 << 15) * 10/31 = * 10/31
프레임간의 블록인경우, k = (1<<15)*10/62 = *10/62For blocks between frames, k = (1 << 15) * 10/62 = * 10/62
여기서, <<는 좌측 시프트(left shift)를 의미한다.Here, << means left shift.
프레임내 예측과 프레임간 예측에 따라 k를 다르게 설정하는 이유는, 각 예 측 이유에 차분 행렬(X)의 특성이 달라져서, 양자화부의 데드존(dead zone)을 다르게 설정할 필요가 있기 때문이다.The reason for setting k differently according to intra-frame prediction and inter-frame prediction is that the characteristics of the difference matrix X are different for each prediction reason, and it is necessary to set different dead zones of the quantization unit.
이하, 도 4를 참조하여, 본 발명의 따른 N-bit 영상 데이터의 복호화 장치 및 방법을 설명하겠다.Hereinafter, an apparatus and method for decoding N-bit image data according to the present invention will be described with reference to FIG. 4.
도 4는 본 발명의 일 실시예에 따른 N-bit 영상 데이터의 복호화 장치의 구성을 도시한 블록도로서, 복호화 제어부(420), 엔트로피 복호화부(430), 역 변환 및 역 양자화부(414), 제3 가산기(411), 디블록킹부(415), 메모리(416), 프레임내 예측부(417) 및 프레임간 예측부(418)을 포함한다.4 is a block diagram illustrating a configuration of an apparatus for decoding N-bit image data according to an embodiment of the present invention. The
엔트로피 복호화부(430)는 입력 비트스트림을 복호화하여 제어 신호, 움직임 데이터 및 양자화 데이터를 복원하여 생성하고, 제어 신호를 복호화 제어부(420)로, 움직임 데이터를 프레임간 예측부(618)로 양자화 데이터를 역 변환 및 역 양자화부(414)로 각각 출력한다. 이 제어 신호에는 입력 비트스트림에 포함된 영상 데이터의 정밀도를 나타내는 비트심도에 관한 정보가 포함된단.The
복호화 제어부(420)는 제어 신호를 전송받고, 복호화 장치의 전반적인 동작을 제어한다.The
역 변환 및 역 양자화부(414)는 엔트로피 복호화부(430)로부터 전송 받은 양자화 데이터를 역 정수 DCT 변환하여 차분 데이터(X)를 복원하고, 이 복원된 차분데이터(X')를 제3 가산기(411)로 출력한다.The inverse transform and
제3 가산기(411)는 복원된 차분 데이터(X')와 프레임내 예측부(417) 또는 프 레임간 예측부(418)에서 예측한 예측 데이터를 합하고, 블록 단위의 영상 데이터를 생성하고, 그 결과를 디블록킹부(415)로 출력한다.The
디블록킹부(415)는 블록 왜곡현상을 감소시키기 위해 각각의 복원된 매크로 블록에 필터링을 수행하고, 필터링이 수행된 각 결과를 메모리(416)로 출력한다.The
메모리(416)는 디블록킹부(410)에서 출력된 데이터를 후에 프레임내 예측부(117) 또는 프레임간 예측부(118)에서 사용할 수 있도록 참조 데이터로서 저장한다.The memory 416 stores the data output from the
프레임내 예측부(417)는 프레임내 예측을 수행하고, 프레임간 예측부(418)는 프레임간 예측을 수행한다. 이들 예측은 움직임 보상이라고도 불린다. 프레임간 예측부(417)는 메모리(416)의 참조 프레임(reference frame)의 움직임 벡터에 대응하는 예측 매크로 블록을 추출하고, 참조 프레임의 예측 매크로 블록의 움직임을 보상하여 예측 데이터를 출력한다.The
도 5는 본 발명의 일 실시예에 따라 도 4에 도시된 역 변환 및 역 양자화부(414)의 보다 상세한 구성을 도시한 블록도로서, 역 변환 및 역 양자화부(414)는 제3 곱셈부(510) 및 제 3 나눗셈부(520)를 포함하는 역 양자화부 및 제1 변환부(530), 제4 나눗셈부(540), 제2 변환부(550)) 및 제5 나눗셈부(560)를 포함하는 역 변환부를 포함한다.FIG. 5 is a block diagram illustrating a more detailed configuration of the inverse transform and
도 6은 본 발명의 일 실예에 따른 역 변환 및 역 양자화 과정을 도시한 플로우차트로서, 600 및 610단계의 역 양자화 과정 및 제 630단계의 역 변환과정을 포함한다. 이하, 도 5 및 도 6a을 참조하여 역 변환 및 역 양자화부(414)에 구체적인 동작에 관해 설명하겠다.6 is a flowchart illustrating an inverse transform and inverse quantization process according to an embodiment of the present invention, and includes an inverse quantization process of
제 600단계에서, 입력된 비트스트림을 복호화 하여 양자화 데이터 즉, 제 6행렬(G)을 복원한다.In
제 610단계에서, 제1 곱셈부(510)는 엔트로피 복호화부(430)로부터 전송받은 제6 행렬(G)에 r[QP]를 곱하여 제7 행렬(H)을 생성한다. 610단계에서의 동작은 다음 수학식6과 같이 표현될 수 있다.In
여기서, 양자화 파라미터(QP)는 0≤QP≤63 사이의 정수이고, Here, the quantization parameter QP is an integer between 0 ≦ QP ≦ 63,
q[QP]*r[QP] = 이고, "."는 배열 곱을 의미한다.q [QP] * r [QP] = And "." Means array product.
q[QP]가 앞서 수학식 5에서 언급한 값인 경우, r[QP]는 다음 값을 갖는다.When q [QP] is the value mentioned in Equation 5 above, r [QP] has the following value.
r[64] = { 32768,36061,38968,42495,46341,50535,55437,60424,r [64] = {32768,36061,38968,42495,46341,50535,55437,60424,
32932,35734,38968,42495,46177,50535,55109,59933,32932,35734,38968,42495,46177,50535,55109,59933,
65535,35734,38968,42577,46341,50617,55027,60097,65535,35734,38968,42577,46341,50617,55027,60097,
32809,35734,38968,42454,46382,50576,55109,60056,32809,35734,38968,42454,46382,50576,55109,60056,
65535,35734,38968,42495,46320,50515,55109,60076,65535,35734,38968,42495,46320,50515,55109,60076,
65535,35744,38968,42495,46341,50535,55099,60087,65535,35744,38968,42495,46341,50535,55099,60087,
65535,35734,38973,42500,46341,50535,55109,60097,65535,35734,38973,42500,46341,50535,55109,60097,
32771,35734,38965,42497,46341,50535,55109,60099}32771,35734,38965,42497,46341,50535,55109,60099}
n[64] = { 14,14,14,14,14,14,14,14,n [64] = {14,14,14,14,14,14,14,14,
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
7,7,7,7,7,7,7,7}7,7,7,7,7,7,7,7}
제 620단계에서, 제3 나눗셈부(520)는 제7 행렬(H)을 n[QP]으로 나누고, 나눈 몫을 가장 가까운 정수값으로 근사하여 제8 행렬(I)을 생성한다. 620단계의 동작은 다음 수학식 7과 같이 표현될 수 있다. In
n[QP]는 수학식 6에서 언급한 값과 같다.n [QP] is equal to the value mentioned in Equation 6.
제 630단계에서, 역 DCT 변환부는 제8 행렬(I)를 역 DCT 변환하여 제 12행렬(M)을 생성한다. In
이하, 도 6b를 참조하여 630단계의 보다 자세한 과정을 살펴보자.Hereinafter, a detailed process of
제 632단계에서, 제1 변환부(530)는 제8 행렬(I)에 변환 행렬 T를 곱하여 제9 행렬(J)을 생성한다. 632단계는 다음 수학식 8과 같이 표현될 수 있다.In
여기서, T는 도 2의 DCT 변환부(210)에서 사용된 정수 DCT 변환 행렬이다. Here, T is an integer DCT conversion matrix used in the
제 634단계에서, 제4 나눗셈부(540)는 제9 행렬(J)을 3으로 나누고, 나눗몫을 가장 가까운 정수값으로 근사하여 제10 행렬(K)를 생성한다. 634단계는 다음 수학식 9와 같이 표현될 수 있다. In
여기서,"//"는 수학식 2와 같다.Here, "//" is the same as Equation 2.
제 636단계에서, 제2 변환부(550)는 제9 행렬(K)에 TT를 곱하여 제11 행렬(L)을 생성한다. 636단계의 동작은 다음 수학식 10과 같이 표현될 수 있다.In
여기서, TT는 정수 DCT 변환 행렬 T의 전치행렬이다.Where T T is the transpose of the integer DCT transformation matrix T.
제 638단계에서, 제5 나눗셈부(560)는 제11 행렬(L)을 7로 나누고, 나눈 몫을 가장 가까운 정수값으로 근사하여 제12 행렬(M) 즉, 복원된 차분행렬(X')을 생성한다. 638단계의 동작은 다음식과 같이 표현될 수 있다. In
이하, 부호화 장치의 변환 및 양자화부(113) 및 복호화 장치의 역 변환 및 역 양자화부(414)의 동작은 다음과 같다.Hereinafter, operations of the transform and
A = T · XA = T
B = A · TT B = AT T
C = B // Shift Tab0C = B // Shift Tab 0
D = S(i).* CD = S (i). * C
E = D // Shift Tab1E = D // Shift Tab1
F = q[QP].EF = q [QP] .E
G = (F + k )>> 15G = (F + k) >> 15
H = r[QP].GH = r [QP] .G
I = H//n[QP]I = H // n [QP]
J = I · TJ = IT
K = J//3K = J // 3
L = TT · KL = T T · K
M = L//7M = L // 7
여기서, 양자화 파라미터(QP)는 0≤QP≤63 사이의 정수이고,Here, the quantization parameter QP is an integer between 0 ≦ QP ≦ 63,
s(i)≒ /v(i)이고(i는 0≤i≤5인 정수), s (i) / v (i) (i is an integer of 0≤i≤5),
v = [512×512, 442×442, 464×454, 512×442, 512×464, 442×464]이고,v = [512 × 512, 442 × 442, 464 × 454, 512 × 442, 512 × 464, 442 × 464],
q[QP]≒ q [QP] ≒
q[QP]*r[QP]≒이다.q [QP] * r [QP] ≒ to be.
여기서, a//b는 a를 b로 나누고, 나눈 몫을 가장 가까운 정수값으로 근사한 연산, P·Q는 행렬 P와 행렬 Q를 행렬 곱한 연산, a.P는 a와 행렬 P를 스칼라 곱 또는 배열 곱(array multiplication)한 연산, P.*Q는 행렬 P와 행렬 Q를 좌표기반 배열 곱(domain-based array multiplication)한 연산, a≒b는 a와 b가 근사적으로 동일한 값임을 의미한다.Where a // b divides a by b, approximates the quotient divided by the nearest integer, PQ is a matrix multiplication of matrix P and matrix Q, aP is a scalar or array product of a and matrix P (array multiplication), P. * Q, is a domain-based array multiplication of matrix P and matrix Q, and a ≒ b means that a and b are approximately equal values.
이 때, v(i)의 값은 정수 DCT 변환 행렬 T에 따라 결정되며, v(i)가 결정되면 s(i)의 값도 결정된다. 또한, 제1 소정값(Shift Tab0) 및 제2 소정값(Shift Tab1)은 각각 제1 곱셈부(230) 및 제2 곱셈부(250)를 구현하기 위한 멀티플라이어의 스펙(Spec.)에 따라 다르게 설정될 수 있는 값으로, 비트심도에 대응하여 다르게 설정됨이 바람직하다.At this time, the value of v (i) is determined according to the integer DCT transformation matrix T. If v (i) is determined, the value of s (i) is also determined. In addition, the first predetermined value Shift Tab0 and the second predetermined value Shift Tab1 may be set according to the specification of the multiplier for implementing the
도 7는 종래 기술에 따른 부호화 장치와 본 발명에 따른 부호화 장치 간의 부호화 효율을 RD곡선을 이용하여 비교하여 도시한 그래프이다. 도 7을 참조하여 살펴보면, 본 발명에 따른 N bit 영상 데이터 부호화/복호화 장치 및 방법은 N-bit 데이터를 부호화 할 수 있는 수용능력을 갖추며, 종래의 부호화 장치를 최소한으로 변형하여 10 bit 또는 12 bit 영상 데이터는 물론이고, 14 bit영상 데이터까지도 부호화할 수 있다. 이와 동시에, 부호화 장치의 부호화 효율도 개선되며, PSNR이 높을수록 종래기술과 비교하여 부호화 효율의 개선 정도가 더욱 확연하게 드러난 다.7 is a graph illustrating a comparison of encoding efficiency between an encoding apparatus according to the prior art and an encoding apparatus according to the present invention using an RD curve. Referring to FIG. 7, the N-bit image data encoding / decoding apparatus and method according to the present invention have a capacity to encode N-bit data, and are modified to 10-bit or 12-bit by minimizing a conventional encoding apparatus. Not only the image data but also 14 bit image data can be encoded. At the same time, the encoding efficiency of the encoding apparatus is also improved, and the higher the PSNR, the more the improvement in the encoding efficiency is revealed more clearly than in the prior art.
종래의 8 bit 부호화 장치에서의 하드웨어 스펙(Specification)은 다음과 같다.The hardware specification of the conventional 8-bit encoder is as follows.
(1) 양자화 파라미터(QP)는 0 에서 63 사이의 범위를 갖는다. (1) The quantization parameter QP is in the range of 0 to 63.
(2) 차분 데이터 입출력을 위해서 16-bit 메모리가 사용된다.(2) 16-bit memory is used for differential data input and output.
(3) 소정 연산을 위해 16-bit 멀리플라이어가 사용된다.(3) A 16-bit muller is used for certain operations.
(4) 산술 논리 유닛(ALU; Arithmetic Logic Unit)은 32 bit 동작을 지원한다.(4) Arithmetic Logic Unit (ALU) supports 32 bit operation.
본 발명의 일 실시예에 따른 N-bit 영상 데이터 부호화 장치의 하드웨어 스펙(Spec)은 다음과 같다.Hardware specifications of the N-bit image data encoding apparatus according to an embodiment of the present invention are as follows.
(1) 양자화 파라미터(QP)는 0 에서 63 사이의 범위를 갖는다. (1) The quantization parameter QP is in the range of 0 to 63.
(2) 차분 데이터 입출력을 위해서 16-bit 메모리가 사용된다.(2) 16-bit memory is used for differential data input and output.
(3) 소정 연산을 위해 16-bit 멀리플라이어가 사용된다.(3) A 16-bit muller is used for certain operations.
(4) 산술 논리 유닛(ALU; Arithmetic Logic Unit)은 32 bit 동작을 지원한다. (4) Arithmetic Logic Unit (ALU) supports 32 bit operation.
즉, 본 발명에 따르면, 종래기술에 따른 부호화 장치를 최소한으로 변경하여 다양한 비트심도를 갖는 영상 데이터를 부호화할 수 있는 N bit 영상 데이터 부호화 장치를 구현할 수 있다.That is, according to the present invention, an N-bit image data encoding apparatus capable of encoding image data having various bit depths may be implemented by changing the encoding apparatus according to the related art to a minimum.
이상 본 발명의 바람직한 실시예에 대해 상세히 기술하였지만, 본 발명이 속하는 기술분야에 있어서 통상의 지식을 가진 사람이라면, 첨부된 청구범위에 정의 된 본 발명의 정신 및 범위에 벗어나지 않으면서 본 발명을 여러 가지로 변형 또는 변경하여 실시할 수 있음을 알 수 있을 것이다. 따라서, 본 발명의 앞으로의 실시예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.Although a preferred embodiment of the present invention has been described in detail above, those skilled in the art to which the present invention pertains may make various changes without departing from the spirit and scope of the invention as defined in the appended claims. It will be appreciated that modifications or variations may be made. Accordingly, modifications to future embodiments of the present invention will not depart from the technology of the present invention.
본 발명에 따른 N bit 영상 데이터 부호화/복호화 장치 및 방법은 오디오 및 비디오 코딩 표준(AVS)에 있어서, 입력된 영상 데이터의 예측 차분 데이터를 영상 데이터의 정밀도를 나타내는 비트심도에 대응하여 양자화함으로써, 다양한 비트심도를 갖는 N bit 영상 데이터를 처리할 수 있으며, 부호화 효율이 개선된다. 특히, 양자화함에 있어, 비트심도에 비례하여 가변되는 소정값을 이용하여 소정 연산을 수행하므로, 종래의 8 bit 영상 데이터만 처리할 수 있었던 부호화/복호화 시스템을 최소한만 변형하여 다양한 비트심도를 갖는 N bit 영상 데이터를 처리할 수 있다.The apparatus and method for encoding / decoding N-bit image data according to the present invention, in the audio and video coding standard (AVS), quantize predictive difference data of input image data corresponding to a bit depth indicating the precision of image data, N bit image data having a bit depth can be processed, and encoding efficiency is improved. In particular, in quantization, since a predetermined operation is performed using a predetermined value that is variable in proportion to the bit depth, N having a variety of bit depths by modifying a coding / decoding system capable of processing only 8-bit image data at least. It can process bit image data.
Claims (20)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610092448.6 | 2006-06-02 | ||
CN2006100924486A CN101083769B (en) | 2006-06-02 | 2006-06-02 | Encoder/decoder and encoding/decoding method for processing N-bit video data |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070115551A true KR20070115551A (en) | 2007-12-06 |
KR101312632B1 KR101312632B1 (en) | 2013-10-04 |
Family
ID=38912996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060077290A Expired - Fee Related KR101312632B1 (en) | 2006-06-02 | 2006-08-16 | A method and apparatus for encoding/decoding of N-bit video data |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101312632B1 (en) |
CN (1) | CN101083769B (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013109092A1 (en) * | 2012-01-18 | 2013-07-25 | 한국전자통신연구원 | Method and device for encoding and decoding image |
KR20130116845A (en) * | 2012-04-16 | 2013-10-24 | 한국전자통신연구원 | Method and apparatus for image encoding/decoding |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101742328B (en) * | 2008-11-14 | 2013-03-27 | 北京中星微电子有限公司 | Method and device for integer transform of image residual matrix, and method and device for inverse transform of image residual matrix |
KR101510108B1 (en) * | 2009-08-17 | 2015-04-10 | 삼성전자주식회사 | Method and apparatus for encoding video, and method and apparatus for decoding video |
BR112012025920B1 (en) | 2010-04-13 | 2022-03-08 | Samsung Electronics Co., Ltd | VIDEO DECODING METHOD AND VIDEO DECODING APPARATUS USING FORECAST UNITS BASED ON ENCODING UNITS DETERMINED ACCORDING TO A TREE STRUCTURE |
CN111225206B (en) * | 2018-11-23 | 2021-10-26 | 华为技术有限公司 | Video decoding method and video decoder |
EP3820151B1 (en) * | 2019-06-25 | 2023-06-14 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Image encoding method, image decoding method, encoder, decoder and storage medium |
CN112114874B (en) * | 2020-08-20 | 2021-10-15 | 北京百度网讯科技有限公司 | Data processing method and device, electronic equipment and storage medium |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148109A (en) * | 1996-05-28 | 2000-11-14 | Matsushita Electric Industrial Co., Ltd. | Image predictive coding method |
AU3573099A (en) * | 1998-04-24 | 1999-11-16 | Rockwell Science Center, Llc | N-bit video coder and method of extending an 8-bit mpeg video coder |
KR101014667B1 (en) * | 2004-05-27 | 2011-02-16 | 삼성전자주식회사 | Scalable video encoding and decoding device and method thereof |
KR100723408B1 (en) * | 2004-07-22 | 2007-05-30 | 삼성전자주식회사 | Method and apparatus to transform/inverse transform and quantize/dequantize color image, and method and apparatus to encode/decode color image using it |
KR20060042295A (en) * | 2004-11-09 | 2006-05-12 | 삼성전자주식회사 | Image data encoding and decoding method and apparatus |
-
2006
- 2006-06-02 CN CN2006100924486A patent/CN101083769B/en not_active Expired - Fee Related
- 2006-08-16 KR KR1020060077290A patent/KR101312632B1/en not_active Expired - Fee Related
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9807412B2 (en) | 2012-01-18 | 2017-10-31 | Electronics And Telecommunications Research Institute | Method and device for encoding and decoding image |
US12206887B2 (en) | 2012-01-18 | 2025-01-21 | Electronics And Telecommunications Research Institute | Method and device for encoding and decoding image |
US12003752B2 (en) | 2012-01-18 | 2024-06-04 | Electronics And Telecommunications Research Institute | Method and device for encoding and decoding image |
US11706438B2 (en) | 2012-01-18 | 2023-07-18 | Electronics And Telecommunications Research Institute | Method and device for encoding and decoding image |
US9374595B2 (en) | 2012-01-18 | 2016-06-21 | Electronics And Telecommunications Research Institute | Method and device for generating a prediction block to encode and decode an image |
US10397598B2 (en) | 2012-01-18 | 2019-08-27 | Electronics And Telecommunications Research Institue | Method and device for encoding and decoding image |
US9621913B2 (en) | 2012-01-18 | 2017-04-11 | Electronics And Telecommunications Research Institute | Method and device for generating a prediction block to encode and decode an image |
US9621912B2 (en) | 2012-01-18 | 2017-04-11 | Electronics And Telecommunications Research Institute | Method and device for generating a prediction block to encode and decode an image |
WO2013109092A1 (en) * | 2012-01-18 | 2013-07-25 | 한국전자통신연구원 | Method and device for encoding and decoding image |
US9635380B2 (en) | 2012-01-18 | 2017-04-25 | Electronics And Telecommunications Research Institute | Method and device for generating a prediction block to encode and decode an image |
US9635379B2 (en) | 2012-01-18 | 2017-04-25 | Electronics And Telecommunications Research Institute | Method and device for generating a prediction block to encode and decode an image |
KR20180068918A (en) * | 2012-04-16 | 2018-06-22 | 한국전자통신연구원 | Method for image encoding and computer readable redording meduim thereof |
US10455232B2 (en) | 2012-04-16 | 2019-10-22 | Electronics And Telecommunications Research Institute | Method and device for encoding/decoding image |
KR20180068920A (en) * | 2012-04-16 | 2018-06-22 | 한국전자통신연구원 | Method for image encoding and computer readable redording meduim thereof |
KR20180068919A (en) * | 2012-04-16 | 2018-06-22 | 한국전자통신연구원 | Method for image encoding and computer readable redording meduim thereof |
KR20180068921A (en) * | 2012-04-16 | 2018-06-22 | 한국전자통신연구원 | Method for image encoding and computer readable redording meduim thereof |
KR20170042526A (en) * | 2012-04-16 | 2017-04-19 | 한국전자통신연구원 | Method for image encoding and computer readable redording meduim thereof |
US10057579B2 (en) | 2012-04-16 | 2018-08-21 | Electronics And Telecommunications Research Institute | Method and device for encoding/decoding image |
KR20190053827A (en) * | 2012-04-16 | 2019-05-20 | 한국전자통신연구원 | Method for image encoding and computer readable redording meduim thereof |
US9571841B2 (en) | 2012-04-16 | 2017-02-14 | Electronics And Telecommunications Research Institute | Method and device for encoding/decoding image |
US10448018B2 (en) | 2012-04-16 | 2019-10-15 | Electronics And Telecommunications Research Institute | Method and device for encoding/decoding image |
US10455233B2 (en) | 2012-04-16 | 2019-10-22 | Electronics And Telecommunications Research Institute | Method and device for encoding/decoding image |
KR101868122B1 (en) * | 2012-04-16 | 2018-06-18 | 한국전자통신연구원 | Method for image encoding and computer readable redording meduim thereof |
US10455234B2 (en) | 2012-04-16 | 2019-10-22 | Electronics And Telecommunications Research Institute | Method and device for encoding/decoding image |
US10477213B2 (en) | 2012-04-16 | 2019-11-12 | Electronics And Telecommunications Research Institute | Method and device for encoding/decoding image |
KR20200105787A (en) * | 2012-04-16 | 2020-09-09 | 한국전자통신연구원 | Method for image encoding and computer readable redording meduim thereof |
US10924742B2 (en) | 2012-04-16 | 2021-02-16 | Electronics And Telecommunications Research Institute | Method and device for encoding/decoding image |
KR20220006134A (en) * | 2012-04-16 | 2022-01-14 | 한국전자통신연구원 | Method for image encoding and computer readable redording meduim thereof |
KR20220151140A (en) * | 2012-04-16 | 2022-11-14 | 한국전자통신연구원 | Method for image encoding and computer readable redording meduim thereof |
US11553183B2 (en) | 2012-04-16 | 2023-01-10 | Electronics And Telecommunications Research Institute | Method and device for encoding/decoding image |
KR101527445B1 (en) * | 2012-04-16 | 2015-06-11 | 한국전자통신연구원 | Method and apparatus for image encoding/decoding |
WO2013157825A1 (en) * | 2012-04-16 | 2013-10-24 | 한국전자통신연구원 | Method and device for encoding/decoding image |
KR20130116845A (en) * | 2012-04-16 | 2013-10-24 | 한국전자통신연구원 | Method and apparatus for image encoding/decoding |
Also Published As
Publication number | Publication date |
---|---|
KR101312632B1 (en) | 2013-10-04 |
CN101083769A (en) | 2007-12-05 |
CN101083769B (en) | 2011-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101320611B1 (en) | A method and apparatus for encoding/decoding of N bit video data with quantization parameter extension | |
KR101974261B1 (en) | Encoding method and apparatus comprising convolutional neural network(cnn) based in-loop filter, and decoding method and apparatus comprising convolutional neural network(cnn) based in-loop filter | |
JP5133135B2 (en) | Video encoding method and apparatus, decoding method and apparatus using inter-color compensation | |
KR101312632B1 (en) | A method and apparatus for encoding/decoding of N-bit video data | |
US10237551B2 (en) | Moving image encoding device, moving image decoding device, moving image coding method, and moving image decoding method | |
KR101261526B1 (en) | An video encoding/decoding method and apparatus | |
US8090025B2 (en) | Moving-picture coding apparatus, method and program, and moving-picture decoding apparatus, method and program | |
US20070189626A1 (en) | Video encoding/decoding method and apparatus | |
US20130114700A1 (en) | Moving image encoding device, moving image decoding device, moving image coding method, and moving image decoding method | |
US10284851B2 (en) | Method of determining binary codewords for transform coefficients | |
JP2001145113A (en) | Device and method for image information conversion | |
KR100651316B1 (en) | Method and apparatus for increasing memory resource usage in an information stream decoder | |
KR20060119736A (en) | Video signal encoding method | |
US7995848B2 (en) | Method and apparatus for encoding and decoding image data | |
KR100968371B1 (en) | Method and apparatus for decoding video | |
KR100384327B1 (en) | Method and apparatus for selecting a coding mode in a block-based coding system | |
US20220217367A1 (en) | Decoding device, program, and decoding method | |
JP5299328B2 (en) | Image processing apparatus and image processing method | |
US20110150350A1 (en) | Encoder and image conversion apparatus | |
WO2015045301A1 (en) | Video encoding device, video encoding method, and video encoding program | |
JP2007266861A (en) | Image encoding device | |
GB2503234B (en) | Video coding and decoding | |
WO2021045059A1 (en) | Encoding device, decoding device, and program | |
CA2415636C (en) | Dynamic selection of field/frame-based mpeg video encoding | |
Bhojani et al. | Standard Video Codec |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20060816 |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20110218 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20060816 Comment text: Patent Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20120727 Patent event code: PE09021S01D |
|
E90F | Notification of reason for final refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Final Notice of Reason for Refusal Patent event date: 20130319 Patent event code: PE09021S02D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20130620 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20130923 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20130924 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20160830 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20160830 Start annual number: 4 End annual number: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170830 Year of fee payment: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20170830 Start annual number: 5 End annual number: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180830 Year of fee payment: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20180830 Start annual number: 6 End annual number: 6 |
|
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20200704 |