KR100269426B1 - Motion compensator having an improved frame memory - Google Patents
Motion compensator having an improved frame memory Download PDFInfo
- Publication number
- KR100269426B1 KR100269426B1 KR1019970022373A KR19970022373A KR100269426B1 KR 100269426 B1 KR100269426 B1 KR 100269426B1 KR 1019970022373 A KR1019970022373 A KR 1019970022373A KR 19970022373 A KR19970022373 A KR 19970022373A KR 100269426 B1 KR100269426 B1 KR 100269426B1
- Authority
- KR
- South Korea
- Prior art keywords
- frame
- picture
- motion
- motion compensation
- frame memory
- Prior art date
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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- 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
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
본 발명은 움직임 보상장치에 관한 것으로서, 특히 영상 복호화기(video decoder)에 있어서 움직임 보상(motion compensation)을 수행하거나, 움직임 보상된 영상 데이타를 디스플레이하기 위해 사용되는 프레임 메모리 및 이를 이용한 움직임 보상장치에 관한 것이다.BACKGROUND OF THE
일반적으로 고화질 텔레비젼(HDTV: High Definition TV) 신호를 한정된 대역폭을 갖는 채널로 전송하기 위해서는 영상신호의 대역 압축을 수행해야 하는데, 이때 MPEG(Moving Picture Experts Group)-2 영상 부호화 알고리즘을 이용한다. 이러한 MPEG-2 영상 부호화 알고리즘에서는 첫째, 화면내에 인접하는 화소간에는 상관도가 높으므로 블록 단위로 이산여현변환(DCT: Discrete Cosine Transform) 및 양자화를 수행하여 공간적인 중복성(spatial redundancy)을 줄이고, 둘째, 시간적으로 인접한 두 화면간에도 상관도가 높으므로 매크로블록 단위로 두 화면간의 움직임을 추정하여 보상함으로써 시간적 중복성(temporal redundancy)을 줄이고, 셋째, 이산여현변환 및 양자화 과정을 거친 계수값들을 가변길이 부호화함으로써 통계적인 중복성(statistical redundancy)을 줄인다.In general, in order to transmit a high definition television (HDTV) signal to a channel having a limited bandwidth, band compression of an image signal should be performed. In this case, a moving picture expert group (MPEG) -2 image encoding algorithm is used. In the MPEG-2 image coding algorithm, first, since there is a high correlation between adjacent pixels in the screen, a discrete cosine transform (DCT) and quantization are performed on a block basis to reduce spatial redundancy. In addition, since the correlation between two screens that are adjacent in time is high, the temporal redundancy is reduced by estimating and compensating the motion between the two screens in macroblock units. This reduces statistical redundancy.
이 중, 움직임 추정 및 보상과정에서는 인접한 영상과 현재 영상을 비교하여 물체의 움직임에 관한 정보인 움직임 벡터를 검출해 내고, 이 움직임 벡터를 이용하여 현재 영상을 예측해 낸다. 움직임 벡터를 검출하기 위해서는 일반적으로 블록 정합 알고리즘(Block Matching Algorithm: 이하 BMA라 약함) 혹은 화소 순환 알고리즘(Pel Recursive Algorithm: 이하 PRA라 약함)을 이용한다. 여기서, 데이터 감축 능력면에서는 PRA 방식이 BMA 방식보다 우수하나, 시스템의 복잡도 측면에서는 블록 단위로 처리하는 BMA 방식이 화소 단위로 처리하는 PRA 방식보다 훨씬 간단하여 영상 코덱을 위한 국제 표준화그룹(H.261, H.262, MPEG-1, MPEG-2 등)에서도 이 BMA 방식을 채택하고 있다.Among these, in the motion estimation and compensation process, a neighboring image is compared with a current image to detect a motion vector, which is information about an object's motion, and the current image is predicted using the motion vector. Generally, a block matching algorithm (weak BMA) or a pixel recursive algorithm (weak PRA) is used to detect a motion vector. Here, the PRA method is superior to the BMA method in terms of data reduction capability, but in terms of system complexity, the BMA method that is processed in units of blocks is much simpler than the PRA method that is processed in units of pixels. 261, H.262, MPEG-1, MPEG-2, etc.) also adopt this BMA method.
한편, MPEG-2 영상 부호화 알고리즘에는 도 1에서와 같이 움직임 보상의 방법에 따라 I, P, B 3 종류의 픽쳐가 있고, 랜덤 액세스(random access)가 가능한 I 픽쳐의 주기에 따라 I, P, B를 묶어 하나의 픽쳐 그룹(Group Of Picture: 이하 GOP라 약함)을 구성한다. 여기서, I 픽쳐는 움직임 보상을 하지 않고 프레임내 코딩(intraframe coding)만을 수행하고, P 픽쳐는 현재 영상에 대해서 이전 영상의 I 픽쳐 또는 P 픽쳐를 기준으로 하여 순방향 움직임 보상을 수행하고, B 픽쳐는 현재 영상에 대해서 이전 영상의 I 픽쳐 혹은 P 픽쳐, 및 다음 영상의 I 픽쳐 혹은 P 픽쳐를 기준으로 하여 순방향 움직임 보상, 역방향 움직임 보상 및 보간형 움직임 보상을 수행하여 얻은 움직임 보상 블록 중 최선의 것을 선택한다.Meanwhile, in the MPEG-2 video encoding algorithm, there are three types of pictures I, P, and B according to the motion compensation method as shown in FIG. 1, and I, P, and I according to the period of the I picture that can be randomly accessed. B is grouped to form one group of pictures (hereinafter referred to as GOP). Here, the I picture performs only intraframe coding without performing motion compensation, the P picture performs forward motion compensation on the basis of the I picture or P picture of the previous picture with respect to the current picture, and the B picture Selects the best motion compensation block obtained by performing forward motion compensation, backward motion compensation, and interpolated motion compensation based on the I picture or P picture of the previous picture and the I picture or P picture of the next picture. do.
그리고, 움직임 추정 및 보상을 위한 방법으로는 프레임 움직임 추정 및 보상 모드, 필드 움직임 추정 및 보상 모드, 듀얼 프라임(dual prime) 움직임 추정 및 보상 모드 등이 있으며, 기본적으로 모든 움직임 추정 및 보상은 반화소(half-pel) 단위까지 하는 것을 규정하고 있다.Methods for motion estimation and compensation include frame motion estimation and compensation mode, field motion estimation and compensation mode, dual prime motion estimation and compensation mode, and basically all motion estimation and compensation are half pixel. It is specified to have a half-pel unit.
이 중, 프레임 움직임 추정 및 보상 모드는 MPEG-1에서 부터 사용하여 온 것으로서, 상위 필드(top field 혹은 even field)와 하위 필드(bottom field 혹은 odd field)의 구분없이 프레임 구조로 움직임을 추정하고 보상한다. 이를 위하여, 현재 프레임의 부호화하고자 하는 매크로블럭(MB)에 대해 기준 프레임의 탐색 영역내에서 반화소 정밀도까지 완전 탐색(full search)을 수행하여, 가장 작은 평균 절대 에러(MAE: Mean Absolute Error)를 발생시키는 위치를 해당 매크로블럭에 대한 움직임 벡터로 결정한다. 실제로는 데이터가 화소 단위로 주어지므로 화소 단위의 1차 완전 탐색을 통해 화소 단위 움직임 벡터를 구한 다음, 반화소 단위의 보간 및 2차 완전 탐색을 통해 반화소 단위 움직임 벡터를 구한다. 프레임 움직임 추정의 경우, P 픽쳐에 대해서는 한 개의 매크로블록당 1 개의 움직임 벡터를 전송하고, B 픽쳐에 대해서는 한 개의 매크로블록당 1 개 혹은 2 개의 움직임 벡터를 전송하므로, 필드 움직임 추정에 비해 움직임 벡터 전송에 소요되는 비트 수가 적다.Among these, frame motion estimation and compensation mode has been used since MPEG-1, and motion estimation and compensation are performed in a frame structure without distinguishing a top field or even field and a bottom field or odd field. do. To this end, a full search is performed on the macroblock MB to be encoded of the current frame up to half-pixel precision in the search region of the reference frame, thereby obtaining the smallest mean absolute error (MAE). The position to generate is determined as a motion vector for the macroblock. In fact, since data is given in units of pixels, a pixel-by-pixel motion vector is obtained through the first-order full search in pixel units, and then a half-pixel motion vector is obtained through interpolation and a second full search in half-pixel units. In the case of frame motion estimation, one motion vector is transmitted per one macroblock for a P picture, and one or two motion vectors are transmitted per one macroblock for a B picture. The number of bits required for transmission is small.
다음, 필드 움직임 추정 및 보상 모드는 프레임 구조의 픽쳐에 있어서 각 필드별로 움직임 추정 및 보상을 수행한다. 이를 위하여, 현재 프레임의 상위 필드와 하위 필드, 기준 프레임의 상위 필드와 하위 필드 사이에서 각각 16*8 (pixels) 서브 매크로블록 단위로 상위에서 하위, 상위에서 상위, 하위에서 상위, 하위에서 하위의 4 가지 움직임 벡터를 구한 뒤, 현재 프레임의 상위 필드와 하위 필드 각각에 대하여 최소의 움직임 보상에러를 발생시키는 하나씩의 움직임 벡터를 선택한다. 따라서, P 픽쳐에 대해서는 한 개의 매크로블록당 2 개의 움직임 벡터, B 픽쳐에 대해서는 한 개의 매크로블록당 2 개 혹은 4 개의 움직임 벡터를 전송한다. MPEG-2 영상 부호화기에서는 모든 매크로블록에 대하여 프레임/필드 예측 모드를 모두 적용한 다음, 그 중 보다 작은 예측 오차를 갖는 예측 모드를 사용한다. 한편, MPEG-2 영상 복호화기에서는 부호화기에서 사용한 예측 모드가 전송되므로 이에 따라 움직임 보상을 수행하여 영상을 복원한다.Next, the field motion estimation and compensation mode performs motion estimation and compensation for each field in the picture of the frame structure. For this purpose, the upper and lower, upper and upper, lower and upper, lower and lower positions in the unit of 16 * 8 (pixels) sub macroblocks between upper and lower fields of the current frame and upper and lower fields of the reference frame, respectively. After four motion vectors are obtained, one motion vector is generated to generate a minimum motion compensation error for each of the upper and lower fields of the current frame. Therefore, two motion vectors per macroblock for a P picture and two or four motion vectors per macroblock for a B picture are transmitted. The MPEG-2 image encoder applies all the frame / field prediction modes to all macroblocks, and then uses the prediction mode having the smaller prediction error. Meanwhile, since the prediction mode used by the encoder is transmitted in the MPEG-2 image decoder, motion compensation is performed to restore the image.
다음, 듀얼 프라임 움직임 추정 및 보상 모드는 한 개의 매크로블록당 1 개의 움직임 벡터와 차분 움직임 벡터(dmv)만을 전송하는 것으로, 비교적 느린 움직임을 갖는 시퀀스에 효과적인 것으로 알려져 있다. 이 모드는 B 픽쳐를 사용하지 않는 경우에만 사용되도록 규정하고 있다. 즉, B 픽쳐가 허용되는 경우에는 이를 이용하여 더 좋은 화질을 얻을 수 있으나, B 픽쳐가 허용되지 않는 경우에는 듀얼 프라임 예측 모드를 사용함으로써, 가능한 한 적은 비트 발생량으로 화질의 향상을 가져 올 수 있다. 듀얼 프라임 예측 모드에서는 먼저, 필드 예측 모드에서 구한 상위에서 하위, 상위에서 상위, 하위에서 상위, 하위에서 하위의 4 가지 움직임 벡터 중 상위에서 상위와 하위에서 하위의 움직임 벡터는 그대로 기본 움직임 벡터로 사용하고, 상위에서 하위와 하위에서 상위의 움직임 벡터는 각각 스케일링(*2, *2/3)과 트렁케이션(truncation)을 하여 기본 움직임 벡터를 만든다. 다음, 이와 같이 만들어진 4개의 기본 움직임 벡터 각각에 대하여 수평 방향과 수직 방향으로 -1, 0, 1씩의 미세 조정을 가하여 두 개의 16*8 (pixels) 서브 매크로블록에 대해 움직임 보상에러가 최소가 되도록 하는 움직임 벡터와 차분 움직임 벡터를 전송한다. 듀얼 프라임 예측 모드는 영상 부호화기에서의 계산량이 상당히 많은 편으로 한 개의 기본 움직임 벡터당 9 개의 예측 후보값을 계산해 내야 하므로 총 36 가지의 후보 중 한 개의 기본 움직임 벡터와 차분 움직임 벡터를 계산해야 한다. 한편, 영상 복호화기에서는 전송되어 온 기본 움직임 벡터와 차분 움직임 벡터로 부터 2 개의 필드움직임 벡터를 계산하기만 하면 되므로 비교적 간단하게 구현 가능하다.Next, the dual prime motion estimation and compensation mode transmits only one motion vector and differential motion vector (dmv) per macroblock, and is known to be effective for sequences with relatively slow motion. This mode is specified to be used only when the B picture is not used. That is, when the B picture is allowed, a better picture quality can be obtained using the B picture. However, when the B picture is not allowed, the dual prime prediction mode can be used to improve the picture quality with as little bit generation as possible. . In the dual prime prediction mode, first, the motion vectors of the upper, upper, and lower part of the four motion vectors obtained from the field prediction mode from upper to lower, upper to upper, lower to upper, lower to lower are used as the basic motion vectors. The upper and lower motion vectors and upper and lower motion vectors are scaled (* 2, * 2/3) and truncated, respectively, to form a basic motion vector. Next, each of the four basic motion vectors thus created is fine-tuned by -1, 0, and 1 in the horizontal and vertical directions to minimize the motion compensation error for the two 16 * 8 (pixels) sub macroblocks. A motion vector and a differential motion vector are transmitted. Since the dual prime prediction mode has a large amount of computation in the image encoder, it is necessary to calculate nine prediction candidate values per one basic motion vector. Therefore, the basic motion vector and the differential motion vector of one of 36 candidates must be calculated. Meanwhile, the image decoder can be implemented relatively simply because only two field motion vectors need to be calculated from the transmitted basic motion vector and the differential motion vector.
상술한 바와 같은 MPEG-2 영상 부호화 알고리즘에 의해 부호화된 비트스트림을 복호화하기 위한 일반적인 MPEG-2 영상 복호화기의 개략적인 구성이 도 2에 도시되어 있다. 도 2의 영상 복호화기는 크게 복호화부(21), 움직임 보상부(23)와 선택부(25)로 이루어진다.A schematic configuration of a general MPEG-2 image decoder for decoding a bitstream encoded by the MPEG-2 image encoding algorithm as described above is shown in FIG. 2. The video decoder of FIG. 2 is largely comprised of a
도 2를 살펴보면, 가변길이 복호화기(21a)에서는 비트 버퍼(미도시)로 부터 버퍼링되어 출력되는 비트스트림에 대하여 역다중화 및 가변길이 복호화를 수행하여, 프레임의 형태, 양자화 결과와 움직임 보상정보 등을 나타내는 부호화 데이터를 출력한다. 여기서, 움직임 보상정보는 움직임 벡터와 움직임 보상의 종류를 나타내는 데이타 등을 포함한다.Referring to FIG. 2, the
먼저, 프레임의 형태를 나타내는 부호화 데이터가 인트라 프레임(I)을 지시하는 경우, 가변길이 복호화된 양자화 결과는 역양자화기(21b)로 인가되고, 여기서 역양자화가 수행되어 이산여현변환(DCT) 계수로 복원된다. 역이산여현변환기(21c)에서는 복원된 이산여현변환 계수에 대하여 역이산여현변환을 수행하여 화소값을 복원한다. 이때, 인트라 프레임(I)임을 나타내는 부호화 데이터가 선택부(25)의 선택제어신호로 공급되기 때문에, 선택부(25)에서는 역이산여현변환기(21c)의 출력을 선택한다. 따라서, 역이산여현변환기(21c)로 부터 출력되는 복원 영상 데이타는 외부의 디스플레이 기기(미도시)로 출력되는 동시에, 제1프레임 메모리(23a)내 소정의 어드레스에 해당하는 영역에 저장된다.First, when encoded data indicating the shape of a frame indicates an intra frame I, the variable-length decoded quantization result is applied to the inverse quantizer 21b, where inverse quantization is performed to perform discrete cosine transform (DCT) coefficients. Is restored. The inverse
다음, 프레임의 형태를 나타내는 부호화 데이터가 예측 프레임(P)을 지시하는 경우에 대하여 설명하기로 한다. 먼저, 제1프레임 메모리(23a)에 저장된 복원 영상 데이타가 제2프레임 메모리(23b)내 소정의 어드레스에 해당하는 영역으로 전달된다. 그리고, 가변길이 복호화된 양자화 결과에 대하여 역양자화 및 역이산여현변환이 수행되어 예측 오차를 복원한다. 복원된 예측 오차는 가산기(23g)와 선택부(25)로 공급된다. 한편, 가변길이 복호화기(21a)로 부터 출력되는 움직임 벡터가 순방향 움직임 보상기(23c)로 인가되면, 순방향 움직임 보상기(23c)에서는 제2프레임 메모리(23b)로 부터 움직임 보상 블록을 생성하여 선택기(23f)로 공급한다. 이때, 예측 프레임(P)임을 나타내는 부호화 데이터가 선택기(23f)의 선택제어신호로 공급되기 때문에, 예측 프레임 디코딩 과정동안 순방향 움직임 보상기(23c)의 출력이 일정하게 가산기(23g)로 공급된다.Next, a description will be given of the case where the encoded data indicating the shape of the frame indicates the prediction frame P. FIG. First, the reconstructed image data stored in the first frame memory 23a is transferred to an area corresponding to a predetermined address in the
가산기(23g)에서는 움직임 보상 블록과 역이산여현변환기(21c)로 부터 복원된 예측 오차를 가산하여 선택부(25)로 공급한다. 이때, 예측 프레임(P)임을 나타내는 부호화 데이터가 선택부(25)의 선택제어신호로 공급되기 때문에, 선택부(25)에서는 가산기(23g)의 출력을 선택한다. 따라서, 가산기(23g)로 부터 출력되는 복원 영상 데이타는 외부의 디스플레이 기기(미도시)로 출력되는 동시에, 제1프레임 메모리(23a)내 소정의 어드레스에 해당하는 영역에 저장된다.The
다음, 프레임의 형태를 나타내는 부호화 데이터가 보간 프레임(B)을 지시하는 경우에 대하여 설명하기로 한다. 먼저, 가변길이 복호화된 양자화 결과에 대하여 역양자화 및 역이산여현변환이 수행되어 예측 오차를 복원한다. 복원된 예측 오차는 가산기(23g)와 선택부(25)로 공급된다. 한편, 가변길이 복호화기(21a)로 부터 출력되는 움직임 벡터는 순방향 움직임 보상기(23c), 역방향 움직임 보상기(23d)와 보간형 움직임 보상기(23e)로 공급된다. 그러면, 각 움직임 보상기(23c~23e)에서는 제1 및 제2프레임 메모리(23a,23b)에 저장된 복원 영상 데이터를 기초로 하여 움직임 보상 블록을 생성하여 선택기(23f)로 공급한다. 선택기(23f)에서는 해당 블록의 움직임 보상 형태에 따라 각 움직임 보상기(23c~23e)의 출력 중 하나를 선택하여 가산기(23g)로 공급한다.Next, a description will be given of the case where coded data indicating a frame shape indicates an interpolation frame B. FIG. First, inverse quantization and inverse discrete cosine transform are performed on the variable-length decoded quantization result to recover the prediction error. The reconstructed prediction error is supplied to the
가산기(23g)에서는 움직임 보상 블록과 역이산여현변환기(21c)로 부터 복원된 예측 오차를 가산하여 선택부(25)로 공급한다. 이때, 보간 프레임(B)임을 나타내는 부호화 데이터가 선택부(25)의 선택제어신호로 공급되기 때문에, 선택부(25)에서는 가산기(23g)의 출력을 선택하여 외부의 디스플레이 기기(미도시)로 출력된다.The
상술한 바와 같은 움직임 보상을 이용한 영상 복호화기에 관한 종래 기술은 미국 특허번호 5,315,388호, 5,337,086호 및 5,353,062 등에 개략적으로 혹은 부분적으로 언급되어 있다.The prior art related to the image decoder using the motion compensation as described above is mentioned schematically or partially in US Pat. Nos. 5,315,388, 5,337,086 and 5,353,062.
그런데, 영상 복호화기에서 복원된 영상 데이터가 화면상에 디스플레이되는 순서(이를 display order라 함)가 도 1에서와 같이 I,B,B,P,B,B,P,B,B,..,I,B,.. 인 경우, 영상 복호화기에서 복호화되는 순서(이를 decoding order라 함) 즉, 선택부(25)로 부터 출력되는 복원 영상 데이터의 순서는 I,P,B,B,P,B,B,P,B,...,I,P,.. 가 된다. 이러한 디스플레이 순서와 복호화 순서의 불일치를 해결하기 위하여, 기존에는 비디오 프레임 메모리를 별도로 구비하여 선택부(25)로 부터 출력되는 복원 영상 데이터를 저장한 다음, 디스플레이 순서에 따라 독출하여 디스플레이 기기로 출력하였다. 그러나, 상기 비디오 프레임 메모리는 I 픽쳐와 P 픽쳐 혹은 P 픽쳐와 P 픽쳐간의 거리(M)에 따라 적어도 3 프레임 분의 영상 데이타를 저장할 수 있는 용량을 가져야 하므로 그 가격이 비싸고, 따라서 전체 영상 복호화기의 가격을 상승시키는 요인이 될 뿐 아니라, 복호화 완료 이후 디스플레이까지의 지연시간이 증가하는 문제점이 있었다.However, the order in which the image data reconstructed by the image decoder is displayed on the screen (this is called a display order) is shown in FIG. 1 as follows: I, B, B, P, B, B, P, B, B, .. , I, B, .., the order of decoding by the image decoder (referred to as decoding order), that is, the order of reconstructed image data output from the
디스플레이 순서와 복호화 순서의 불일치를 해결하기 위한 다른 방법으로는, 선택부(25)로 부터 출력되는 B 픽쳐 영상 데이터를 M에 따라 소정 프레임 지연시키기 위한 프레임 버퍼를 별도로 구비하여, 디스플레이 순서에 따라 제1 및 제2프레임 메모리(23a,23b)와 프레임 버퍼(미도시)로 부터 복원 영상 데이터를 독출하였다. 그러나, 제1 및 제2프레임 메모리(23a,23b)에 대해서는 움직임 보상을 위한 데이터 읽기와 디스플레이를 위한 데이터 읽기를 함께 수행해야 하므로 그 타이밍 제어가 복잡해지는 문제점이 있었다.As another method for resolving a mismatch between the display order and the decoding order, a frame buffer for delaying the B picture image data output from the
이에 본 발명은 상술한 바와 같은 문제점을 해결하기 위하여 안출된 것으로, 영상 복호화기에 있어서, 움직임 보상시 참조를 위한 영상 데이터를 저장하는 영역, 디스플레이를 위해 복호화가 완료된 영상 데이터를 저장하는 영역 및 영상 복호화기로 입력되는 부호화된 비트스트림을 저장하는 영역이 하나의 메모리 모듈 상에 구현된 프레임 메모리를 제공하는데 그 목적이 있다.Accordingly, the present invention has been made to solve the above-described problems, and in the image decoder, an area for storing image data for reference during motion compensation, an area for storing decoded image data for display, and image decoding It is an object of the present invention to provide a frame memory in which an area for storing a coded bitstream that is previously input is implemented on one memory module.
본 발명의 다른 목적은 상기 프레임 메모리를 이용한 움직임 보상장치를 제공하는데 있다.Another object of the present invention is to provide a motion compensation device using the frame memory.
상기 목적을 달성하기 위하여 본 발명에 따른 프레임 메모리는 영상 복호화기에 있어서,In order to achieve the above object, the frame memory according to the present invention is an image decoder,
움직임 보상을 위한 기준 영상으로 사용하는 것과 동시에 디스플레이를 위하여, 복원된 I 픽쳐 혹은 움직임 보상된 P 픽쳐 영상 데이터를 저장하는 제1 및 제2프레임 저장영역;First and second frame storage regions for storing reconstructed I-picture or motion-compensated P-picture image data for display as well as being used as a reference image for motion compensation;
움직임 보상된 B 픽쳐 영상 데이터를 디스플레이를 위하여 저장하는 제3프레임 저장영역; 및A third frame storage area for storing the motion compensated B picture image data for display; And
상기 영상 복호화기로 입력되는 부호화된 비트스트림을 소정의 비트 단위로 저장하는 제4프레임 저장영역으로 이루어지며,And a fourth frame storage area for storing the encoded bitstream input to the image decoder in predetermined bit units.
상기 제1 내지 제3프레임 저장영역에 저장된 각 픽쳐 영상 데이터는 소정의 디스플레이 순서에 따라 독출되어지는 것을 특징으로 한다.Each picture image data stored in the first to third frame storage areas is read according to a predetermined display order.
상기 다른 목적을 달성하기 위하여 본 발명에 따른 움직임 보상장치는The motion compensation device according to the present invention to achieve the other object
움직임 벡터와 각종 플래그를 입력받아 움직임 보상 과정을 제어하기 위한 복수개의 움직임 보상 제어신호를 발생하고, 상기 움직임 보상 과정에 대한 타이밍을 조절하는 움직임 보상 제어부;A motion compensation controller configured to receive a motion vector and various flags, generate a plurality of motion compensation control signals for controlling a motion compensation process, and adjust a timing of the motion compensation process;
움직임 벡터와 각종 플래그를 입력받아 읽기/쓰기 어드레스 신호 및 메모리 제어신호를 발생하는 메모리 제어부;A memory controller configured to receive a motion vector and various flags and generate a read / write address signal and a memory control signal;
복원된 영상 데이터 쓰기 동작, 움직임 보상을 위한 데이터 읽기 동작, 디스플레이를 위한 데이터 읽기 동작이 상기 메모리 제어부에 의해 제어되며, 움직임 보상을 위한 기준 영상으로 사용하는 것과 동시에 디스플레이를 위하여, 복원된 I 픽쳐 혹은 움직임 보상된 P 픽쳐 영상 데이터를 저장하는 제1 및 제2프레임 저장영역, 움직임 보상된 B 픽쳐 영상 데이터를 디스플레이를 위하여 저장하는 제3프레임 저장영역, 및 상기 영상 복호화기로 입력되는 부호화된 비트스트림을 소정의 비트 단위로 저장하는 제4프레임 저장영역으로 이루어지는 프레임 메모리;The reconstructed image data write operation, the data read operation for motion compensation, and the data read operation for display are controlled by the memory controller and used as a reference image for motion compensation, and at the same time for display, the reconstructed I picture or First and second frame storage areas for storing motion compensated P picture image data, a third frame storage area for storing motion compensated B picture image data for display, and an encoded bitstream input to the image decoder. A frame memory comprising a fourth frame storage area for storing a predetermined bit unit;
버스 제어신호를 출력하는 버스 제어부;A bus controller which outputs a bus control signal;
움직임 보상 혹은 디스플레이를 위해 상기 프레임 메모리로 부터 읽혀지는 영상 데이터, 상기 프레임 메모리에 쓰기 위한 움직임 보상된 영상 데이터, 및 디스플레이를 위해 상기 프레임 메모리로 부터 읽혀지는 영상 데이터를 상기 버스 제어신호에 따라서 전송하는 공통 버스; 및Transmitting image data read from the frame memory for motion compensation or display, motion compensated image data for writing to the frame memory, and image data read from the frame memory for display in accordance with the bus control signal. Common bus; And
상기 공통 버스를 통해 상기 프레임 메모리로 부터 공급되는 영상 데이터와 역이산여현변환된 영상 데이터에 대한 움직임 보상을 상기 움직임 보상 제어신호에 따라서 수행하는 움직임 보상부를 구비하는 것을 특징으로 한다.And a motion compensation unit configured to perform motion compensation on the image data supplied from the frame memory and the inverse discrete cosine transformed image data through the common bus according to the motion compensation control signal.
도 1은 프레임 배열의 일예를 보이는 도면,1 shows an example of a frame arrangement;
도 2는 일반적인 MPEG-2 영상 복호화기의 개략적인 구성을 나타낸 블록도,2 is a block diagram showing a schematic configuration of a typical MPEG-2 video decoder;
도 3은 영상 복호화기에 있어서 본 발명에 따른 프레임 메모리를 채택한 움직임 보상장치를 나타낸 블록도,3 is a block diagram showing a motion compensation apparatus employing a frame memory according to the present invention in an image decoder;
도 4는 본 발명에서 채택한 1 프레임에 대한 RAS 박스 설정방법을 나타낸 도면,4 is a view showing a RAS box setting method for one frame adopted in the present invention,
도 5는 본 발명에 따른 프레임 메모리의 구조를 나타낸 도면,5 is a diagram showing the structure of a frame memory according to the present invention;
도 6은 도 5에 도시된 제1 내지 제4프레임 저장영역을 형성하기 위한 SDRAM 배열을 나타낸 도면,FIG. 6 is a diagram illustrating an SDRAM array for forming the first to fourth frame storage regions shown in FIG. 5;
도 7은 한 개의 매크로블록에 대하여 도 5의 프레임 메모리에서의 읽기 및 쓰기 동작에 할당된 시간을 나타낸 도면,FIG. 7 is a diagram illustrating time allocated to read and write operations in the frame memory of FIG. 5 for one macroblock; FIG.
도 8은 복호화 순서 및 디스플레이 순서에 따라서, 제1 내지 제3프레임 저장영역의 스케쥴링 과정을 나타낸 도면이다.8 is a diagram illustrating a scheduling process of first to third frame storage areas according to a decoding order and a display order.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
100 : 움직임 보상 제어부 200 : 메모리 제어부100: motion compensation control unit 200: memory control unit
300 : 프레임 메모리 400 : 버스 제어부300: frame memory 400: bus control unit
500 : 공통 버스 600 : 움직임 보상부500: common bus 600: motion compensation unit
41~47 : 제1 내지 제4프레임 저장영역 41a~41f : 제1프레임 저장영역41 to 47: first to fourth frame storage areas 41a to 41f: first frame storage areas
43a~43f : 제2프레임 저장영역 45a~45f : 제3프레임 저장영역43a ~ 43f: Second
47a~47f : 제4프레임 저장영역 51 : 어드레스 버스47a ~ 47f: 4th frame storage area 51: address bus
53 : 명령어 버스 55,55a~55f : 데이터 버스53:
300a~300f : SDRAM 1~SDRAM 6300a ~ 300f:
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대해 상세히 설명하기로 한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the present invention.
도 3은 영상 복호화기에 있어서 본 발명에 따른 프레임 메모리를 채택한 움직임 보상장치를 나타낸 블록도로서, 움직임 보상장치(33)는 움직임 보상 제어부(100), 메모리 제어부(200), 프레임 메모리(300), 버스 제어부(400), 공통 버스(500) 및 움직임 보상부(600)로 구성된다.3 is a block diagram illustrating a motion compensator employing a frame memory according to the present invention in an image decoder. The motion compensator 33 includes a
움직임 보상 제어부(100)에서는 가변길이 복호화기(도 2 참조: 21a)로 부터 움직임 벡터(mv)와 각종 플래그(flag)를 입력받아 움직임 보상과정을 제어하기 위한 움직임 보상 제어신호들을 발생하고, 움직임 보상과정에 대한 전체 타이밍을 제어한다. 이때, 플래그(flag)는 움직임 보상을 위한 정보로서, 영상 복호화기로 입력된 데이터가 유효한 데이터인지를 나타내는 신호("decoded_pels"), 영상 복호화기로 입력된 픽쳐가 I 픽쳐, P 픽쳐, B 픽쳐 중 어느 픽쳐에 해당되는지를 나타내는 신호("picture_coding_type"), 픽쳐 구조가 상위 필드, 하위 필드, 프레임 픽쳐 중 어느 것에 해당되는지를 나타내는 신호("picture_structure"), 영상 부호화기에서의 예측 모드를 나타내는 신호("mc_type"), 영상 부호화기에서의 이산여현변환 모드를 나타내는 신호("dct_type") 등이 있다.The motion
메모리 제어부(200)에서는 가변길이 복호화기(도 2 참조: 21a)로 부터 움직임 벡터(mv)와 각종 플래그(flag)를 입력받아, 쓰기/읽기 어드레스 신호 및 메모리 제어신호들을 발생한다.The
프레임 메모리(300)는 복원된 영상 데이터 쓰기 동작, 움직임 보상을 위한 데이터 읽기 동작, 디스플레이를 위한 데이터 읽기 동작이 메모리 제어부(200)에 의해 제어되며, 4 프레임 분량의 화소 데이터를 저장할 수 있는 용량을 가진다. 이 프레임 메모리(300)에 대하여 도 4 내지 도 6을 참조하여 좀 더 상세히 설명하면 다음과 같다.The
도 4를 참조하면, 본 발명에서는 1 프레임(여기서는 1,920 화소*1,088 화소규격을 예로 든다.)을 1,020(즉, 30*34) 개 의 RAS(Row Address Strobe) 박스로 분할한다. 즉, 이 RAS 박스의 번호가 프레임 메모리(300)의 행 어드레스(row address:RA)가 된다. 여기서, 하나의 RAS 박스는 8 개의 매크로블록(MB0~MB7)으로 이루어지며, 각 매크로블록은 4개의 Y 블록, 1개의 Cr 블록 및 1개의 Cb 블록으로 구성되고, 각 블록은 8개의 박스(box)로 구성된다. 그리고, Y 블록을 구성하는 각 박스에는 8개의 화소 데이터, Cr 블록을 구성하는 각 박스에는 2개의 화소 데이터, Cb 블록을 구성하는 각 박스에는 2개의 화소 데이터가 존재한다. 한편, 프레임 메모리(300)의 열 어드레스(column address:CA)는, 행 어드레스에 의해 선택된 RAS 박스를 구성하는 매크로블록 수, 해당 매크로블록을 구성하는 블록 수, 해당 블록을 구성하는 박스 수에 의해 결정된다. 이와 더불어, 예측된 매크로블록의 기준 포인트(reference point:R.P)를 얻기 위하여 해당 박스내의 화소 어드레스(pel address:PA)가 사용된다.Referring to FIG. 4, in the present invention, one frame (1,920 pixels * 1,088 pixel standard is taken as an example) is divided into 1,020 (that is, 30 * 34) RAS (Row Address Strobe) boxes. That is, the number of the RAS box is the row address (RA) of the
만약 예측된 매크로블록의 기준 포인트(reference point:R.P)가 사선으로 빗금친 부분 즉, MB3~MB7에 존재하게 되면, 해당 매크로블록의 화소 데이터를 모두 읽기 위해서 행 어드레스, 즉 RAS 박스를 변경시켜야 한다. 도 4와 같은 방식으로 RAS 박스를 설정하게 되면, 해당 매크로블록의 화소 데이터를 모두 읽기 위해서 최악의 경우라도 매크로블록을 구성하는 4개의 블록 중 한 개의 블록은 RAS 박스를 변경하지 않아도 된다. 따라서, 프레임 메모리(300)로 부터 데이터 페치(fetch)시 소요되는 시간을 줄일 수 있다. 여기서, 최악의 경우는 예측된 매크로블록의 기준 포인트가 MB7 내부에 위치하는 경우를 말한다.If the reference point (RP) of the predicted macroblock is in the diagonally hatched area, that is, MB3 to MB7, the row address, or RAS box, must be changed to read all the pixel data of the macroblock. . When the RAS box is set up in the same manner as in FIG. 4, even in the worst case, one block of the four blocks constituting the macroblock does not need to change the RAS box in order to read all the pixel data of the macroblock. Therefore, the time required to fetch data from the
한편, 도 5를 참조하면, 프레임 메모리(300)는 뱅크 1과 뱅크 2의 두 개의 메모리 뱅크를 가지며, 뱅크 1에는 제1 및 제2프레임 저장영역(41,43)이 있고, 뱅크 2에는 제3 및 제4프레임 저장영역(45,47)이 있다. 여기서, 제1 내지 제4프레임 저장영역(41,43,45,47)은 각각 1 프레임 분량의 화소 데이터를 저장할 수 있는 용량을 가지며, 제1 내지 제4프레임 저장영역(41,43,45,47)은 각각 1,024 개의 행 어드레스(row address)를 가지고, 256워드(여기서, 1워드는 8비트)의 열 어드레스(column address)를 가진다. 그리고, 하나의 어드레스에는 8개의 Y 화소, 2개의 Cr 화소 및 2 개의 Cb 화소, 총 12 화소 데이터가 저장된다. 여기서, 1,024 개의 행 어드레스는 상기한 RAS 박스 번호를 의미하며, 따라서 4 개의 행 어드레스가 남는다. 그리고, 256워드의 열 어드레스는 하나의 RAS 박스당 8개의 매크로블록*한개의 매크로블록당 32개의 화소(=256 화소)에 의해 나온 것이다. 여기서, 제1 및 제2프레임 저장영역(41,43)은 복원된 I 픽쳐 혹은 움직임 보상된 P 픽쳐 영상 데이터를 움직임 보상을 위한 기준 영상으로 사용하는 것과 동시에 디스플레이하기 위하여 저장하는데 사용되고, 제3프레임 저장영역(45)은 움직임 보상된 B 픽쳐 영상 데이터를 디스플레이하기 위하여 저장하는데 사용되고, 제4프레임 저장영역(47)은 영상 복호화기로 입력되는 부호화된 비트스트림을 소정의 비트 단위로 저장하는데 사용된다.Meanwhile, referring to FIG. 5, the
한편, 프레임 메모리(300)는 영상 포맷이 4:2:0인 경우 도 6에서와 같이 6개의 메모리 예를 들어, SDRAM(Synchronous-DRAM:300a~300f)로 구현될 수 있다. SDRAM(300a~300f)은 각각 제1 내지 제4서브프레임 저장영역들(41a~41f, 43a~43f, 45a~45f, 47a~47f)로 나누어진다. 그 중, SDRAM(300a~300d)는 각각 한 개의 8*8 블록에 해당하는 휘도(Y) 화소 데이터를, SDRAM(300e)는 한 개의 8*8 블록에 해당하는 색차(Cr) 화소 데이터를, SDRAM(300f)는 한 개의 8*8 블록에 해당하는 색차(Cb) 화소 데이터를 저장한다. 한편, 각각의 SDRAM(300a~300f)는 16 Mbit의 용량을 가지며, 16 비트의 데이터 폭(data width)을 가진다. 1 화소 데이터(pel)가 8 비트에 해당하므로, 1회 페치(fetch)시 데이터 버스(55)를 통해 하나의 SDRAM으로 부터 2 화소 데이터를 출력할 수 있다. 즉, 1회 페치시 각각의 SDRAM(300a~300f)로 부터 2 화소씩, 총 12 화소(96 비트) 단위로 공통 버스(500) 상에 올려진다. 다시 말하면 SDRAM(300a~300d)에는 하나의 박스를 구성하는 8개 Y 화소 데이터에 대하여 각각 2 화소씩 저장되어 있고, SDRAM(300e)에 상기 8개 Y 화소 데이터에 해당하는 Cr 화소 데이터가 2 화소씩 저장되어 있고, SDRAM(300f)에는 상기 8개 Y 화소 데이터에 해당하는 Cb 화소 데이터가 2 화소씩 저장되어 있다. 즉, SDRAM(300a~300f)에서는 한 개의 행 어드레스(RAS 박스)에 256 개(8 MB*32 pel)의 화소가 저장된다. 이때, 화소 데이터의 휘도 성분(Y)과 색차 성분(Cr,Cb)이 동일 어드레스에 해당하는 영역에 저장되는 것으로 가정할 경우, 도 6에서와 같이 어드레스 버스(51) 및 명령어 버스(53)를 공유할 수 있다. 여기서는 SDRAM을 예로 들었는데, 그외 다른 비동기 메모리로도 용이하게 변형가능하다.Meanwhile, when the image format is 4: 2: 0, the
다시, 도 3으로 돌아가서, 버스 제어부(400)에서는 공통 버스(500)를 제어하기 위한 버스 제어신호를 출력한다.3, the
공통 버스(500)는 버스 제어부(400)의 제어하에, 움직임 보상부(600)로 부터 출력되는 움직임 보상된 화소 데이터를 프레임 메모리(300)에 쓰거나, 움직임 보상부(600)에서 사용할 참조 화소 데이터를 프레임 메모리(300)로 부터 읽거나, 디스플레이 기기(미도시)와 같은 다른 기능 블록으로 보내기 위하여 움직임 보상된 화소 데이터를 프레임 메모리(300)로 부터 읽기 위한 전송 경로로서 제공된다. 다시 말하면, 공통 버스(500)는 프레임 메모리(300)와 움직임 보상부(600), 프레임 메모리(300)와 디스플레이 기기(미도시), 프레임 메모리(300)와 비트 버퍼(미도시) 사이의 데이터 전송을 담당하며, 전송되는 데이터 크기는 12 화소(pel) 즉, 96 비트 단위이다. 한 개의 매크로블록에 대하여, 버스 제어부(400)에 의한 공통 버스(500) 제어 타이밍을 도 7을 참조하여 설명하면 다음과 같다.The
도 7에 있어서, "MC"는 프레임 메모리(300)의 제1 내지 제3프레임 저장영역(41,43,45) 중 해당 영역으로 부터 기준 프레임 픽쳐를 읽어 움직임 보상부(600)로 입력하는 위상이고, "D"는 디스플레이에 사용되는 데이타를 프레임 메모리(300)의 제1 내지 제3프레임 저장영역(41,43,45) 중 해당 영역으로 부터 읽어 전처리부(미도시)로 전송하는 위상이고, "BBR"은 프레임 메모리(300)의 비트 버퍼 영역 즉, 제4프레임 저장영역(47)으로 부터 데이터를 읽어 비트 버퍼(미도시)로 입력하는 위상이고, "BBW"는 비트 버퍼(미도시)로 부터 각종 부가 정보를 읽어 프레임 메모리(300)의 제4프레임 저장영역(47)에 소정의 비트 단위로 저장하는 위상이고, "W"는 움직임 보상부(600)에서 움직임 보상된 데이터를 프레임 메모리(300)의 제1 내지 제3프레임 저장영역(41,43,45) 중 해당 영역에 저장하는 위상이다. 다시 말하면, 프레임 메모리(300) 측면에서 볼 때, 읽기 동작은 "MC", "D" 및 "BBR" 위상에, 쓰기 동작은 "W"와 "BBW" 위상에 해당한다. 예를 들어, 프레임 메모리(300)에서 공통버스(500)상에서 한 개의 매크로블록 처리에 할당되는 시간 단위를 '202'라고 하였을 때 각 위상에 대한 할당 예로서, "MC"는 '110', "D"는 '40', "BBR"는 '16', "BBW"는 '4', "W"는 '32'와 같이 할당할 수 있다.In FIG. 7, "MC" is a phase for reading a reference frame picture from a corresponding area among the first to third
움직임 보상부(600)에서는 움직임 보상 제어부(100)의 제어하에, 공통버스(500)를 통해 프레임 메모리(300)의 제1 내지 제3프레임 저장영역(41,43,45) 중 해당 영역으로 부터 출력되는 화소 데이터에 대하여 반화소 보상을 수행한 후, 역이산여현변환기(도 2 참조: 21c)로 부터 출력되는 화소 데이터를 더함으로써 움직임 보상된 화소 데이터를 생성한다. 이 움직임 보상된 화소 데이터는 96 비트 단위로 프레임 메모리(300)의 제1 내지 제3프레임 저장영역(41,43,45) 중 해당 영역에 저장된다.The
이어서, 도 2에 도시된 영상 복호화기에서 복호화되는 순서가 I,P,B,B,P,B,B,P,B,B,P,B,B,I,P,B,B 이고, 디스플레이 순서가 I,B,B,P,B,B,P,B,B,P,B,B,P,I,B,B 이고, 디스플레이 잠복기(latency)가 2 프레임인 경우, 본 발명에 따른 프레임 메모리를 이용한 움직임 보상장치의 실시예에 대한 동작을 좀 더 세부적으로 살펴보면 다음과 같다.Subsequently, the decoding order in the video decoder shown in FIG. 2 is I, P, B, B, P, B, B, P, B, B, P, B, B, I, P, B, B, If the display order is I, B, B, P, B, B, P, B, B, P, B, B, P, I, B, B, and the display latency is two frames, The operation of the embodiment of the motion compensation device using the frame memory will be described in more detail as follows.
1) I 픽쳐가 입력된 경우1) When I picture is input
영상 복호화기로 입력된 I 픽쳐 데이타는 가변길이 복호화, 역양자화 및 역이산여현변환을 순차적으로 거친 후, 움직임 보상부(600)에서 움직임 보상과정을 행하지 않은 상태로 소정의 포맷으로 공통 버스(500) 상에 올려진다.The I picture data input to the image decoder is sequentially subjected to variable length decoding, inverse quantization, and inverse discrete cosine transform, and then the
메모리 제어부(200)에서는 가변길이 복호화기(도 2 참조:21a)로 부터 움직임 벡터(I 픽쳐이므로 "0")와 각종 플래그를 입력받아, 프레임 메모리(300)에 I 픽쳐 데이터를 쓰기 위한 쓰기 어드레스 신호 및 메모리 제어신호를 출력한다. 그러면, 공통 버스(500)상에 올려져 있던 I 픽쳐 데이터는 버스 제어부(400)의 제어하에, 메모리 제어부(200)로 부터의 쓰기 어드레스 신호 및 메모리 제어신호에 따라 프레임 메모리(300)내 제1프레임 저장영역(41)의 소정 영역에 저장된다. 이때, 프레임 메모리(300)에 저장되는 픽쳐 구조는 필드 구조인 것이 바람직하며, 12 화소(96 비트) 단위로 공통 버스(500)에 올려 진다. 한편, 제2 및 제3프레임 저장영역(43,45)은 비어 있는(empty) 상태이다. 이 상황이 도 8에 있어서 두 번째 프레임 메모리 블록에 해당한다.The
2) P 픽쳐가 입력된 경우2) When a P picture is input
가변길이 복호화기(도 2 참조: 21a)로 부터 P 픽쳐에 대한 움직임 벡터와 플래그들이 움직임 보상 제어부(100) 및 메모리 제어부(200)로 입력되면, 움직임 보상 제어부(100)에서는 움직임 보상시 필요한 각종 제어신호들(예를 들어, dct_type, mc_type 등)을 발생하여 움직임 보상부(600)로 인가한다. 한편, 메모리 제어부(200)에서는 움직임 벡터와 각종 플래그에 따라 읽기 어드레스 신호 및 메모리 제어신호들을 발생하여 프레임 메모리(300)로 인가한다. 그러면, 메모리 제어신호에 따라서, 프레임 메모리(300)내 제1프레임 저장영역(41)에서 읽기 어드레스에 해당하는 영역에 저장된 I 픽쳐 화소 데이터가 읽혀져 공통 버스(500) 상에 올려진다.When motion vectors and flags for the P picture are input from the variable length decoder (see FIG. 2A) to the
공통 버스(500) 상에 올려진 I 픽쳐 화소 데이터는 버스 제어부(400)의 제어하에, 12 화소(96 비트)씩 움직임 보상부(600)로 인가된다. 움직임 보상부(600)에서는 먼저, 프레임 메모리(300)로 부터 출력되는 I 픽쳐 화소 데이터를 움직임 보상부(600)에서 처리하는 데이터 포맷으로 맞춘 후, 반화소 보상을 수행한다. 다음, 움직임 보상 제어신호(dct_type, mc_type)에 따라서, 반화소 보상된 I 픽쳐 화소 데이터는 역이산여현변환기(도 2 참조: 21c)에서 역이산여현변환된 P 픽쳐 화소 데이터와 합해져서 P 픽쳐 화소 데이터에 대한 움직임 보상이 이루어진다. 움직임 보상된 P 픽쳐 화소 데이터는 움직임 보상 제어부(100)의 제어하에, 12 화소(96 비트)씩 공통 버스(500) 상에 올려진다.The I picture pixel data mounted on the
한편, 메모리 제어부(200)에서는 가변길이 복호화기(도 2 참조:21a)로 부터 움직임 벡터와 각종 플래그를 입력받아, 프레임 메모리(300)에 움직임 보상된 P 픽쳐 데이터를 쓰기 위한 쓰기 어드레스 신호 및 메모리 제어신호를 출력한다. 그러면, 공통 버스(500)상에 올려져 있던 움직임 보상된 P 픽쳐 데이터는 버스 제어부(400)의 제어하에, 메모리 제어부(200)로 부터의 쓰기 어드레스 신호 및 메모리 제어신호에 따라 프레임 메모리(300)내 제2프레임 저장영역(43)의 소정 영역에 저장된다. 이때, 제3프레임 저장영역(45)은 비어 있는(empty) 상태이다. 이 상황이 도 8에 있어서 세 번째 프레임 메모리 블록에 해당한다.Meanwhile, the
3) B 픽쳐가 입력된 경우3) When B picture is input
가변길이 복호화기(도 2 참조: 21a)로 부터 B 픽쳐에 대한 움직임 벡터와 플래그들이 움직임 보상 제어부(100) 및 메모리 제어부(200)로 입력되면, 움직임 보상 제어부(100)에서는 움직임 보상시 필요한 각종 제어신호들(예를 들어, dct_type, mc_type 등)을 발생하여 움직임 보상부(600)로 인가한다.When motion vectors and flags for a B picture are input from the variable length decoder (see FIG. 2A) to the
메모리 제어부(200)에서는 움직임 벡터와 각종 플래그에 따라 순방향 움직임 보상을 위한 읽기 어드레스 신호 및 메모리 제어신호들을 발생하여 프레임 메모리(300)로 인가한다. 그러면, 메모리 제어신호에 따라서, 프레임 메모리(300)내 제1프레임 저장영역(41)에서 읽기 어드레스에 해당하는 영역에 저장된 I 픽쳐 화소 데이터가 읽혀져 공통 버스(500) 상에 올려진다. 공통 버스(500) 상에 올려진 I 픽쳐 화소 데이터는 버스 제어부(400)의 제어하에, 12 화소(96 비트)씩 움직임 보상부(600)로 인가된다. 움직임 보상부(600)에서는 프레임 메모리(300)로 부터 출력되는 I 픽쳐 화소 데이터를 움직임 보상부(600)에서 처리하는 데이터 포맷으로 맞춘 후, 반화소 보상을 수행하여 내부 버퍼(미도시)에 일시적으로 저장한다.The
다음, 메모리 제어부(200)에서는 움직임 벡터와 각종 플래그에 따라 역방향 움직임 보상을 위한 읽기 어드레스 신호 및 메모리 제어신호들을 발생하여 프레임 메모리(300)로 인가한다. 그러면, 메모리 제어신호에 따라서, 프레임 메모리(300)내 제2프레임 저장영역(43)에서 읽기 어드레스에 해당하는 영역에 저장된 P 픽쳐 화소 데이터가 읽혀져 공통 버스(500) 상에 올려진다. 공통 버스(500) 상에 올려진 P 픽쳐 화소 데이터는 버스 제어부(400)의 제어하에, 12 화소(96 비트)씩 움직임 보상부(600)로 인가된다. 움직임 보상부(600)에서는 프레임 메모리(300)로 부터 출력되는 P 픽쳐 화소 데이터를 움직임 보상부(600)에서 처리하는 데이터 포맷으로 맞춘 후, 반화소 보상을 수행하여 내부 버퍼(미도시)에 일시적으로 저장한다.Next, the
또한, 양방향 움직임 보상을 위해, 반화소 보상된 I 픽쳐 화소 데이터와 P 픽쳐 화소 데이터의 평균값도 내부 버퍼(미도시)에 일시적으로 저장한다.In addition, for bidirectional motion compensation, an average value of half-pixel compensated I picture pixel data and P picture pixel data is also temporarily stored in an internal buffer (not shown).
다음, 움직임 보상 제어부(100)로 부터의 순방향, 역방향, 양방향 움직임 보상 중 어느 것이 선택될 지에 대한 움직임 보상 제어신호(mc_type)에 따라서, 반화소 보상된 I 픽쳐 화소 데이터, 반화소 보상된 P 픽쳐 화소 데이터, 반화소 보상된 I 픽쳐 화소 데이터와 P 픽쳐 화소 데이터의 평균값 중 하나가 선택된다. 선택된 화소 데이터는 역이산여현변환기(도 2 참조: 21c)에서 역이산여현변환된 B 픽쳐 화소 데이터와 합해져서 B 픽쳐 화소 데이터에 대한 움직임 보상이 이루어진다. 움직임 보상된 B 픽쳐 화소 데이터는 움직임 보상 제어부(100)의 제어하에, 12 화소(96 비트)씩 공통 버스(500) 상에 올려진다.Next, the half pixel compensated I picture pixel data and the half pixel compensated P picture according to the motion compensation control signal mc_type for which one of the forward, reverse, and bidirectional motion compensation from the
한편, 메모리 제어부(200)에서는 가변길이 복호화기(도 2 참조:21a)로 부터 움직임 벡터와 각종 플래그를 입력받아, 프레임 메모리(300)에 움직임 보상된 B 픽쳐 데이터를 쓰기 위한 쓰기 어드레스 신호 및 메모리 제어신호를 출력한다. 그러면, 공통 버스(500)상에 올려져 있던 움직임 보상된 B 픽쳐 화소 데이터는 버스 제어부(400)의 제어하에, 메모리 제어부(200)로 부터의 쓰기 어드레스 신호 및 메모리 제어신호에 따라 프레임 메모리(300)내 제3프레임 저장영역(45)의 소정 영역에 저장된다. 한편, 제1프레임 저장영역(41)에 저장되어 있던 I 픽쳐 화소 데이터는 메모리 제어부(200)의 제어하에 12 화소(96 비트)씩 공통 버스(500) 상에 올려지고, 버스 제어부(100)의 제어하에, 해당 위상에서 디스플레이를 위하여 디스플레이 기기(미도시)로 출력된다. 이 상황이 도 8에 있어서 네 번째 프레임 메모리 블록에 해당한다.Meanwhile, the
상기 1) 내지 3) 과정은 복호화 순서에 따라 반복적으로 수행되는데, P 픽쳐가 입력되는 경우 참조 화소 데이터는 복호화 순서에 따라 I 픽쳐 혹은 P 픽쳐가 될 수 있으며, B 픽쳐가 입력되는 경우 순방향 혹은 역방향 움직임 보상을 위한 참조 화소 데이터는 복호화 순서에 따라 각각 I 픽쳐 혹은 P 픽쳐가 될 수 있다. 또한, 각각의 참조 화소 데이터가 저장되는 영역도 복호화 순서에 따라 제1프레임 저장영역(41) 혹은 제2프레임 저장영역(43)이 된다. 이러한 복호화 순서 및 디스플레이 순서를 도식화한 것이 도 8에 나타나 있다. 도 8에서 화살표들은 움직임 보상을 위해 참조되는 영상 데이터를 나타내며, "D"는 디스플레이를 위해 프레임 메모리(300)로 부터 영상 데이터가 읽혀지고 있음을 나타낸다.Steps 1) to 3) are repeatedly performed according to the decoding order. When the P picture is input, the reference pixel data may be an I picture or a P picture according to the decoding order, and when the B picture is input, forward or backward Reference pixel data for motion compensation may be an I picture or a P picture, respectively, in decoding order. Further, the area where each reference pixel data is stored also becomes the first
한편, 상기한 상세한 설명은 여기에 제시된 특정의 실시예를 설명하고자 한 것이며, 본 발명을 한정하려는 의도는 아니다. 당업자라면, 상기한 상세한 설명 및 도면을 참조하여 본 발명의 기술적 사상내에서 여러 가지 변형 및 수정을 가할 수 있을 것이다.On the other hand, the above detailed description is intended to describe particular embodiments presented herein and is not intended to limit the present invention. Those skilled in the art may make various changes and modifications within the technical spirit of the present invention with reference to the above detailed description and drawings.
상술한 바와 같이 본 발명에 따르면, 움직임 보상장치에 있어서, 움직임 보상시 참조를 위한 영상 데이터를 저장하는 영역, 디스플레이를 위해 복호화가 완료된 영상 데이터를 저장하는 영역 및 영상 복호화기로 입력되는 부호화된 비트스트림을 저장하는 영역이 하나의 메모리 모듈 상에 구현된 프레임 메모리를 채택함으로써, 영상 복호화기 구성을 간소화할 수 있을 뿐 아니라 복호화 완료 이후 디스플레이에 소요되는 시간을 단축할 수 있다.As described above, according to the present invention, in a motion compensation apparatus, an area for storing image data for reference during motion compensation, an area for storing decoded image data for display, and an encoded bitstream input to an image decoder By adopting a frame memory implemented on one memory module as a region for storing the data, not only the image decoder configuration can be simplified but also the time required for display after the decoding is completed can be shortened.
Claims (19)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970022373A KR100269426B1 (en) | 1997-05-31 | 1997-05-31 | Motion compensator having an improved frame memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970022373A KR100269426B1 (en) | 1997-05-31 | 1997-05-31 | Motion compensator having an improved frame memory |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980086114A KR19980086114A (en) | 1998-12-05 |
KR100269426B1 true KR100269426B1 (en) | 2000-10-16 |
Family
ID=19508131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970022373A KR100269426B1 (en) | 1997-05-31 | 1997-05-31 | Motion compensator having an improved frame memory |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100269426B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI260509B (en) * | 2002-08-15 | 2006-08-21 | Sony Corp | Method and apparatus for processing image data and semiconductor storage device |
-
1997
- 1997-05-31 KR KR1019970022373A patent/KR100269426B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19980086114A (en) | 1998-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8175157B2 (en) | Apparatus and method for controlling data write/read in image processing system | |
JPH08237662A (en) | Picture element interpolation filter for video decompressionprocessor | |
KR100298397B1 (en) | Video decoding system | |
US8514937B2 (en) | Video encoding apparatus | |
US7843993B2 (en) | Moving picture encoding apparatus having increased encoding speed and method thereof | |
JPH0759096A (en) | Video encoder and decoder | |
JP3120010B2 (en) | Image decoding method and image decoding device | |
GB2400260A (en) | Video compression method and apparatus | |
KR100269426B1 (en) | Motion compensator having an improved frame memory | |
JPH07298264A (en) | Image data processing method, storage device used for the method and processing unit of image data | |
US20030123555A1 (en) | Video decoding system and memory interface apparatus | |
KR100248085B1 (en) | Sdram having memory map structure | |
KR100243471B1 (en) | Address generator in frame memory | |
KR100248651B1 (en) | A motion compensator | |
KR100243470B1 (en) | Address generator in frame memory | |
KR100243475B1 (en) | Jump address generator in frame memory | |
KR100235486B1 (en) | Method for compensating a slice position during an address generation 0f a predicted macroblock in a frame memory and circuit using the same | |
KR100235485B1 (en) | Method for compensating a reference point during an address generation 0f a predicted macroblock in a frame memory and circuit using the same | |
KR100243474B1 (en) | Jump address generator in frame memory | |
KR100255221B1 (en) | Method for compensating a pel address and counter for compensating a box in case of compensating a half-pel in a frame memory | |
KR0128883B1 (en) | Improved memory structure in image decoder for half pixel motion compensation | |
KR100243473B1 (en) | Apparatus for compensating a motion vector during an address generation of a predicted macroblock in a frame memory | |
KR100243476B1 (en) | Half-pixel compensator of a motion compensator | |
JPH10304373A (en) | Moving image decoding method and moving image decoder | |
KR19990005602A (en) | Dual Prime Field Prediction Method in Frame Memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120702 Year of fee payment: 13 |
|
FPAY | Annual fee payment |
Payment date: 20130701 Year of fee payment: 14 |
|
LAPS | Lapse due to unpaid annual fee |