KR20020015231A - System and Method for Compressing Image Based on Moving Object - Google Patents

System and Method for Compressing Image Based on Moving Object Download PDF

Info

Publication number
KR20020015231A
KR20020015231A KR1020000048424A KR20000048424A KR20020015231A KR 20020015231 A KR20020015231 A KR 20020015231A KR 1020000048424 A KR1020000048424 A KR 1020000048424A KR 20000048424 A KR20000048424 A KR 20000048424A KR 20020015231 A KR20020015231 A KR 20020015231A
Authority
KR
South Korea
Prior art keywords
motion
screen
image
wavelet
frame
Prior art date
Application number
KR1020000048424A
Other languages
Korean (ko)
Inventor
김영민
Original Assignee
김영민
(주)하이칩스
김호진
주식회사 한국아이티시스템
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김영민, (주)하이칩스, 김호진, 주식회사 한국아이티시스템 filed Critical 김영민
Priority to KR1020000048424A priority Critical patent/KR20020015231A/en
Priority to PCT/KR2001/001254 priority patent/WO2002017498A1/en
Publication of KR20020015231A publication Critical patent/KR20020015231A/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/20Contour coding, e.g. using detection of edges
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • H04N19/619Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding the transform being operated outside the prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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

Landscapes

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

Abstract

PURPOSE: A system and a method for object-oriented video encoding are provided to flexibly change the size of an image by orienting to a moving object and using wavelet transformation, to enhance speed gain and compressing efficiency by supporting multiple resolution and increasing processing speed, and to reduce the size and capacity of a memory by enhancing the compressing efficiency. CONSTITUTION: An object-oriented video encoding system comprises a subtracter(10), an object sampling unit(12) sampling the moving objects included in a following picture and calculating the motion vector of the moving object, a discrete wavelet transformation unit(16) wavelet-transforming a reference picture, wavelet-transforming the difference image between a prior picture and the following picture, and outputting a wavelet transformation value, a quantization unit(18) outputting a quantized value by quantizing the wavelet transformation value, an entropy coder(20) outputting an encoded value by arithmetically coding the quantized value, a multiplexer/buffer(22) temporarily storing the encoded value and motion vector and forming a bit stream including the encoded value and motion vector, an inverse quantization unit(24), an invert discrete wavelet transformation unit(26), an adder(28), and a frame memory(30). The video encoding system encodes the plural pictured including a reference picture and at least one of following pictures arranged after the reference picture. Even the minute motion of the object in a picture is identified.

Description

객체 지향형 영상 부호화 시스템 및 방법{System and Method for Compressing Image Based on Moving Object}System and Method for Compressing Image Based on Moving Object

본 발명은 영상 처리 시스템 및 방법에 관한 것으로서, 보다 상세하게는 동영상을 압축하여 저장하거나 전송하는 시스템 및 방법에 관한 것이다.The present invention relates to an image processing system and method, and more particularly, to a system and method for compressing and storing or transmitting a moving image.

영상 정보는 영상의 공간적, 시간적 중복성을 제거함으로써 압축할 수 있다. 공간적 상관 관계를 줄이는 방법으로는 변환 부호화가 주로 이용되고 있다. 한편, 시간 영역에서는 움직임 보상 부호화가 많이 이루어지는데, 이러한 움직임 보상 부호화는 공간영역에서의 부호화 기법들에 비해 더 많은 데이터 량을 감축할 수 있게 해준다. 종래의 영상 압축 알고리즘에 있어서는 상기 변환 부호화와 움직임 보상 부호화를 결합하여 채용하는 것이 일반적이다.The image information can be compressed by removing spatial and temporal redundancy of the image. Transform encoding is mainly used as a method of reducing spatial correlation. On the other hand, many motion compensation coding is performed in the time domain, and this motion compensation coding enables to reduce the amount of data more than the coding techniques in the spatial domain. In a conventional video compression algorithm, it is common to employ a combination of the transform coding and the motion compensation coding.

기존의 동영상 압축 알고리즘의 일 예로서, 블록 기반 이산여현변환(DCT) 방법을 들 수 있다. 예컨대 MPEG-1/2 및 H.261 등에 있어서는, 8x8의 크기를 가지는 블록을 기본 단위로 DCT변환하여 영상을 처리하며, 움직임 추정 및 보상에 있어서는 16x16 크기의 매크로 블록을 한 단위로 사용한다. 이 방법은 하드웨어 구현이간단하고 동화상 내의 움직임 추정 및 보상 성능이 우수하기 때문에, 현재까지 동영상 압축 및 복원 시스템에 가장 많이 사용되고 있다.An example of the existing video compression algorithm is a block-based discrete cosine transform (DCT) method. For example, in MPEG-1 / 2 and H.261, an image is processed by DCT transforming a block having a size of 8x8 in basic units, and a macroblock of 16x16 size is used as a unit for motion estimation and compensation. This method is the most widely used video compression and decompression system to date because of its simple hardware implementation and excellent motion estimation and compensation performance in moving images.

그렇지만, 이와 같은 블록 기반 DCT 방법은 한정된 영역의 움직임 추정 및 보상에서만 안정된 성능을 발휘할 뿐이며, 넓은 범위의 움직임 추정 및 보상에 있어서는 제대로 기능을 수행하기 어렵고 처리 속도가 떨어진다는 문제점을 가지고 있다. 아울러, 이 방법에 따르면, 저비트율에서 화질 열화가 심하고 영상내의 객체가 거의 정지해 있는 경우에는 이를 식별해내기 어렵기 때문에, 위성용 카메라나 감시용 시스템에 사용하기가 곤란하다는 단점이 있다.However, such a block-based DCT method exhibits a stable performance only in motion estimation and compensation in a limited area, and has a problem in that it is difficult to properly perform a function and processing speed is slow in a wide range of motion estimation and compensation. In addition, this method has a disadvantage in that it is difficult to use in satellite cameras or surveillance systems because the image quality is severely deteriorated at a low bit rate and it is difficult to identify when the object in the image is almost stationary.

기존의 동영상 압축 알고리즘의 다른 예로서, 임베디드 제로트리 웨이브렛(Embedded Zero-tree Wavelet)을 이용하는 방법이 있다. 이 방법은 데이터의 부분 정렬에 의해 중요 비트를 먼저 보내는 방법으로서, 임베디드 비트열을 만들어 내고 웨이브렛 변환된 영상에서 부대역(Subband)간의 유사성을 이용한 제로트리(Zero-tree) 부호화로 압축을 한다. 부호기는 임베디드 비트열로 원하는 비트율에서 부호화를 할 수 있고, 복호기 역시 원하는 비트율로 복호화할 수 있다는 특징을 가진다.Another example of an existing video compression algorithm is a method using an embedded zero-tree wavelet. This method sends the important bits first by partial alignment of the data, and generates an embedded bit string and compresses it by zero-tree coding using similarity between subbands in the wavelet transformed image. . The encoder can encode at a desired bit rate with an embedded bit string, and the decoder can also decode at a desired bit rate.

그러나, 임베디드 웨이브렛 방법에 따르면, 다중 해상도를 가지도록 부호화 및 복호화를 할 수 있기는 하지만, 한 계층이 비트열을 대부분 갖게 되는 문제와, 복호화 과정에서 시간의 이득이 없어 효율성이 없다는 문제점이 있다. 또한, 이 방법은 블록 기반 DCT 방법에 비해 화질 열화가 적고 정지 영상에서의 해상도가 높은 장점을 가지고 있는 반면에, 압축율이 낮고 움직임 추정 및 보상에 많은 시간을소요하기 때문에 동영상을 처리하기에는 적합하지 않다는 문제점을 안고 있다.However, according to the embedded wavelet method, although encoding and decoding can be performed to have multiple resolutions, there is a problem in that one layer has most of the bit strings, and there is a problem in that there is no efficiency because there is no gain of time in the decoding process. . In addition, this method has the advantage of lower image quality deterioration and higher resolution in still image than block-based DCT method, but it is not suitable for processing video because of low compression ratio and time-consuming motion estimation and compensation. I have a problem.

본 발명은 이와 같은 문제점을 해결하기 위하여 안출된 것으로서, 압축율이 높고 저비트율에서 화질 열화를 감소시키며 영상내 객체의 움직임이 작은 경우에도 이를 식별할 수 있는 영상 부호화 시스템을 제공하는 것을 그 기술적 과제로 한다.The present invention has been made to solve such a problem, and provides a video encoding system capable of identifying a high compression rate, reducing image quality deterioration at a low bit rate, and even identifying small movements of an object in an image. do.

또한, 본 발명은 압축율이 높고 저비트율에서 화질 열화를 감소시키며 영상내 객체의 움직임이 작은 경우에도 이를 식별할 수 있는 영상 부호화 방법과 이에 적합한 영상 복호화 방법을 제공하는 것을 다른 기술적 과제로 한다.Another object of the present invention is to provide an image encoding method and a video decoding method suitable for this, in which a high compression ratio and a low bit rate reduce image quality deterioration, and even when a motion of an object in a image is small.

도 1은 본 발명에 의한 영상 부호화 시스템의 바람직한 실시예의 블록도.1 is a block diagram of a preferred embodiment of a video encoding system according to the present invention.

도 2는 도 1에 도시된 객체 추출부의 일 예를 보여주는 상세 블록도.FIG. 2 is a detailed block diagram illustrating an example of the object extractor shown in FIG. 1. FIG.

도 3은 카메라 움직임 검출 및 보상 과정을 보여주는 흐름도.3 is a flowchart showing a camera motion detection and compensation process.

도 4는 카메라 움직임 검출을 위한 탐색영역을 보여주는 도면.4 is a diagram illustrating a search area for camera motion detection.

도 5는 움직임 객체 프레임 형성 과정을 설명하기 위한 프레임 계통을 보여주는 도면.5 is a diagram illustrating a frame system for explaining a process of forming a motion object frame;

도 6a 내지 도 6i는 움직임 객체 프레임의 형성 예를 보여주는 도면.6A to 6I illustrate examples of forming a moving object frame.

도 7은 바운딩 박스 구성 과정의 일 예를 보여주는 흐름도.7 is a flowchart illustrating an example of a bounding box configuration process.

도 8은 도 6h의 마스크에 대해 구성된 바운딩 박스의 예를 보여주는 도면.FIG. 8 shows an example of a bounding box configured for the mask of FIG. 6H.

도 9a 내지 도 9c는 둘 이상의 형태가 존재하는 경우에 있어서의 바운딩 박스들의 예를 보여주는 도면.9A-9C show examples of bounding boxes in the case where two or more shapes are present.

도 10은 바운딩 박스 내의 개별 움직임 객체들 각각에 대한 최소 바운딩 박스 추출 과정을 보여주는 흐름도.10 is a flow chart showing a minimum bounding box extraction process for each of the individual moving objects in the bounding box.

도 11은 도 6a 내지 도 6i 및 도 8에서 예시한 영상에 있어서 바운딩 박스 내의 형태를 움직임 벡터에 따라 그룹핑한 예를 보여주는 도면.FIG. 11 is a diagram illustrating an example of grouping shapes in a bounding box according to a motion vector in the images illustrated in FIGS. 6A to 6I and 8.

도 12a 및 도 12b는 개별 움직임 객체에 대한 최소 바운딩 박스의 예를 보여주는 도면.12A and 12B show examples of minimum bounding boxes for individual moving objects.

도 13은 도 6a 내지 도 6i에서 예시한 영상에 대한 배경 마스크를 보여주는 도면.FIG. 13 shows a background mask for the image illustrated in FIGS. 6A-6I.

도 14a 및 도 14b는 이와 같이 에지로부터 출현하는 움직임 객체의 예를 보여주는 도면.14A and 14B show an example of a moving object appearing from an edge like this.

도 15는 도 2에 도시된 이산 웨이브렛 변환부의 블록도.FIG. 15 is a block diagram of a discrete wavelet transform unit shown in FIG. 2; FIG.

도 16은 도 15에 도시된 필터링부의 상세 블록도.FIG. 16 is a detailed block diagram of the filtering unit illustrated in FIG. 15. FIG.

도 17 및 도 18은 입력 영상을 부영상으로 분해하는 예를 보여주는 도면.17 and 18 illustrate examples of decomposing an input image into sub-images.

도 19a 내지 도 19g는 도 1의 영상 부호화 시스템에 의해 출력되는 비트 스트림의 구성을 보여주는 도면.19A to 19G are diagrams showing the configuration of a bit stream output by the video encoding system of FIG.

도 20은 본 발명에 의한 영상 복호화 시스템의 바람직한 실시예의 블록도.20 is a block diagram of a preferred embodiment of an image decoding system according to the present invention.

도 21은 본 발명에 의한 영상 부호화 방법을 보여주는 흐름도.21 is a flowchart showing a video encoding method according to the present invention.

도 22는 본 발명에 의한 영상 복호화 방법을 보여주는 흐름도.22 is a flowchart illustrating an image decoding method according to the present invention.

<도면 중 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

10: 감산기 12: 객체 추출부10: subtractor 12: object extraction unit

16: 이산 웨이브렛 변환부 18: 양자화부16: Discrete Wavelet Transform 18: Quantization

20: 엔트로피 코더 22: 멀티플렉서/버퍼20: Entropy Coder 22: Multiplexer / Buffer

24: 역양자화부 26: 역변환부24: inverse quantization unit 26: inverse transform unit

28: 가산기 30: 프레임 메모리28: adder 30: frame memory

290: 바운딩 박스 340, 342: 최소 바운딩 박스290: bounding box 340, 342: minimum bounding box

Fi: 영상 프레임 ERi,j: 차영상 프레임F i : Picture frame ER i, j : Car picture frame

MASKERi,j: 마스크 프레임 MASKERi: 마스크MASKER i, j : Mask Frame MASKER i : Mask

MOBFRi: 움직임 객체 프레임MOBFR i : Motion Object Frame

상기 기술적 과제를 달성하기 위하여, 본 발명은 참조 화면 이외의 화면에 대해서는 움직임 객체 및 주요 정지 객체만을 추출하여 부호화함으로써, 이미지 크기를 유연하게 변경하여 시간에 따른 중복성을 제거한다. 각 객체를 부호화함에 있어서는 웨이브렛 변환을 사용함으로써, 다중 해상도를 지원함과 동시에 처리 속도를 높여 속도 이득과 압축 효율성을 높인다. 특히 움직임 객체에 대해서는 원 영상과 이전 영상간의 차영상을 구하고, 다시 원 영상과 다음 영상간의 차를 구한다. 두 차영상들의 논리곱을 계산하여 움직임 영역을 구하고, 이 움직임 영역에 대하여 움직임 벡터를 구한다. 그 다음, 해당 객체에 대한 차영상과 움직임 벡터를 웨이브렛 변환하여 압축하게 된다.In order to achieve the above technical problem, the present invention extracts and encodes only a motion object and a main still object for a screen other than a reference screen, thereby flexibly changing an image size to remove redundancy over time. In encoding each object, wavelet transform is used to support multiple resolutions while increasing processing speed to increase speed gain and compression efficiency. In particular, for the moving object, the difference image between the original image and the previous image is obtained, and the difference between the original image and the next image is obtained again. The logical product of two difference images is calculated to obtain a motion region, and a motion vector is obtained for the motion region. Next, the difference image and the motion vector of the object are compressed by wavelet transform.

구체적으로, 상기 기술적 과제를 달성하기 위한 영상 부호화 시스템은 촬상 수단에 의해 촬상되어 참조 화면과 상기 참조 화면 다음에 배치되는 적어도 하나의후속 화면을 포함하는 복수의 화면을 압축 부호화한다. 객체 추출 수단은 상기 후속 화면에 대해서 상기 후속 화면 내에 포함된 움직임 객체를 추출하고, 상기 움직임 객체의 움직임 벡터를 계산한다. 웨이브렛 변환 수단은 상기 참조 화면을 웨이브렛 변환하고, 상기 후속 화면 내에 있는 움직임 객체에 대하여 상기 후속 화면 이전 화면과의 차영상을 웨이브렛 변환한다. 양자화 수단은 웨이브렛 변환치를 양자화하여 양자화된 값을 출력하며, 엔트로피 부호화 수단은 양자화된 값을 산술부호화하여 부호화한다. 멀티플렉싱 및 버퍼링 수단은 부호화된 값과 움직임 객체의 움직임 벡터를 포함하는 소정 형식의 비트 스트림을 형성한다.In detail, an image encoding system for achieving the above technical problem compresses and encodes a plurality of screens including a reference screen and at least one subsequent screen arranged after the reference screen. The object extracting means extracts a motion object included in the subsequent screen with respect to the subsequent screen, and calculates a motion vector of the motion object. The wavelet converting means wavelet transforms the reference screen and wavelet transforms the difference image with the previous screen of the subsequent screen with respect to the motion object in the subsequent screen. The quantization means quantizes the wavelet transform value and outputs a quantized value. The entropy encoding means encodes the quantized value by arithmetic coding. The multiplexing and buffering means form a bit stream of a predetermined format comprising the encoded value and the motion vector of the motion object.

한편, 상기 다른 기술적 과제를 달성하기 위한 영상 부호화 방법에 있어서는, 먼저 (a) 참조 화면을 웨이브렛 변환하고 양자화하며 산술부호화하여, 부호화된 참조 화면 데이터를 생성한다. (b) 상기 후속 화면에 대해서 움직임 객체를 추출하고, 움직임 객체의 움직임 벡터를 계산한다. (c) 움직임 객체에 대하여 상기 후속 화면 이전 화면과의 차영상을 웨이브렛 변환하고 양자화하며 산술부호화하여, 부호화된 움직임 객체 데이터를 생성한다. (d) 부호화된 참조 화면 데이터, 부호화된 움직임 객체 데이터 및 움직임 벡터를 포함하는 소정 형식의 비트 스트림을 형성하게 된다.Meanwhile, in the image encoding method for achieving the above another technical problem, first, (a) wavelet transforms, quantizes, and arithmically encodes a reference picture to generate coded reference picture data. (b) A motion object is extracted for the subsequent screen, and a motion vector of the motion object is calculated. (c) Wavelet transforms, quantizes, and arithmetic-codes the difference image with respect to the previous screen before the motion object to generate coded motion object data. (d) A bit stream having a predetermined format including encoded reference picture data, encoded motion object data, and a motion vector is formed.

영상 복호화 방법에 있어서는, 먼저 (a) 비트 스트림을 해체하여 상기 부호화된 참조 화면 데이터, 상기 부호화된 움직임 객체 데이터 및 상기 움직임 벡터를 복원한다. (b) 부호화된 참조 화면 데이터를 가변장 복호화하고, 역양자화하며, 역웨이브렛 변환하여 참조 화면을 복원한다. (c) 상기 후속 화면에 대해서, 상기부호화된 움직임 객체 데이터를 가변장 복호화하고, 역양자화하며, 역웨이브렛 변환하여 상기 움직임 객체를 복원한다. (d) 이전 화면 내의 움직임 객체 부분을 움직임 벡터만큼 이동시킨 후, 이동된 움직임 객체 부분을 참조 화면에 덮어씌워서 후속 화면을 복원한다.In the image decoding method, first (a) the bit stream is decomposed to restore the encoded reference picture data, the encoded motion object data, and the motion vector. (b) Variable length decoding of the coded reference picture data, inverse quantization, and inverse wavelet transform to restore the reference picture. (c) For the subsequent screen, the motion object data is variably decoded, dequantized, and inverse wavelet transformed to restore the motion object. (d) After moving the moving object part in the previous screen by the motion vector, the moving screen object is overwritten on the reference screen to restore the subsequent screen.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 보다 구체적으로 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the present invention.

도 1은 본 발명에 의한 영상 부호화 시스템의 일 실시예를 보여준다. 도시된 시스템은 감산기(10), 객체 추출부(12), 이산 웨이브렛 변환부(DWT: 16), 양자화부(18), 엔트로피 코더(20), 멀티플렉서/버퍼(22), 역양자화부(24), 역변환부(IDWT: 26), 가산기(28) 및 프레임 메모리(30)를 포함한다.1 shows an embodiment of an image encoding system according to the present invention. The illustrated system includes a subtractor 10, an object extractor 12, a discrete wavelet transformer (DWT) 16, a quantization unit 18, an entropy coder 20, a multiplexer / buffer 22, an inverse quantizer ( 24), an inverse transform unit (IDWT) 26, an adder 28, and a frame memory 30.

영상 부호화 시스템은 일정한 수의, 예컨대 5~30 개 정도의 연이어진 프레임을 화면그룹(GOP)으로 설정하고, GOP단위로 영상을 부호화한다. 각 GOP에 대해서, 영상 부호화 시스템은 첫 번째 프레임(I-화면)에 대해서는 전 화면을 웨이브렛 변환하여 부호화하고, GOP 내의 나머지 프레임은 이전 프레임을 참조하여 부호화하게 된다. 즉, I-화면이외의 프레임에 대하여, 부호화 시스템은 부호화할 프레임과 이전 프레임간의 차영상을 구하고 움직임 객체들을 추출한 후, 움직임 객체들 각각의 움직임 벡터를 구한다. 그리고 각 움직임 객체를 포함하는 최소 바운딩 박스에 대하여 이전 프레임과의 차를 구하고, 차영상을 웨이브렛 변환하여 움직임 벡터와 함께 저장하거나 전송하게 된다.The video encoding system sets a predetermined number of frames, for example, about 5 to 30 consecutive frames, into a picture group (GOP), and encodes pictures in GOP units. For each GOP, the video encoding system encodes the entire picture by wavelet transforming the first frame (I-picture), and encodes the remaining frames in the GOP with reference to the previous frame. That is, for a frame other than an I-picture, the encoding system obtains a difference image between a frame to be encoded and a previous frame, extracts motion objects, and then obtains a motion vector of each of the motion objects. The difference between the previous frame and the minimum bounding box including each motion object is obtained, and the difference image is wavelet-transformed and stored or transmitted together with the motion vector.

먼저, 도 1의 영상 부호화 시스템에 I-화면이 입력되는 경우를 살펴본다.입력 영상 신호는 웨이브렛 변환부(16)에 직접 입력된다. 웨이브렛 변환부(16)는 영상 신호에 대해 웨이브렛 변환을 수행하여 변환 계수들을 출력한다. 양자화부(18)는 웨이브렛 변환부(16)로부터의 변환 계수를 양자화하는데, 이때 양자화 레이트는 외부로부터 인가되는 제1 제어신호(CON1)에 따라서 가변될 수 있다. 엔트로피 코더(20)는 양자화된 데이터를 산술부호화하여 신호를 압축시키게 된다. 한편, 역양자화부(24)는 양자화된 데이터를 다시 역양자화하고, 역변환부(IDWT: 26)는 역양자화부(24)의 출력 신호를 역웨이브렛 변환한다. 따라서, 역변환부(IDWT: 26)에서 출력되는 신호는 웨이브렛 변환 이전의 신호와 거의 동일하게 된다.First, a case in which an I-picture is input to the video encoding system of FIG. 1 will be described. The input video signal is directly input to the wavelet converter 16. The wavelet transform unit 16 performs wavelet transform on the image signal and outputs transform coefficients. The quantization unit 18 quantizes the transform coefficients from the wavelet transform unit 16. In this case, the quantization rate may vary according to the first control signal CON1 applied from the outside. The entropy coder 20 compresses the signal by arithmetically encoding the quantized data. On the other hand, the inverse quantizer 24 inverse quantizes the quantized data again, and the inverse transformer IDWT 26 performs inverse wavelet transform on the output signal of the inverse quantizer 24. Therefore, the signal output from the inverse transform unit IDWT 26 is almost the same as the signal before the wavelet transform.

가산기(28)는 역변환부(IDWT: 26)의 출력 신호에 프레임 메모리(30)의 출력 신호를 가산하고 가산 결과를 프레임 메모리(30)에 공급한다. 여기서, 프레임 메모리(30)는 I-화면의 부호화 이전에 리셋되기 때문에, 가산기(28)가 프레임 메모리(30)에 공급하는 신호는 I-화면의 전체 프레임에 대한 영상 신호가 된다. 프레임 메모리(30)는 가산기(28)로부터 공급받은 신호를 저장한다.The adder 28 adds the output signal of the frame memory 30 to the output signal of the inverse transform unit IDWT 26 and supplies the addition result to the frame memory 30. Here, since the frame memory 30 is reset before encoding of the I-picture, the signal supplied by the adder 28 to the frame memory 30 becomes a video signal for the entire frame of the I-picture. The frame memory 30 stores a signal supplied from the adder 28.

다음에는, 영상 부호화 시스템에 I-화면 이외의 프레임 즉, B-화면이 입력되는 경우를 살펴본다. 감산기(10)는 입력 영상과 프레임 메모리(30)로부터의 이전 프레임 영상간의 차영상을 구하여, 프레임 차영상 신호를 출력한다. 객체 추출부(12)는 프레임 차영상 신호로부터 해당 프레임에 포함된 객체들을 추출하고, 각 객체에 대한 객체 차영상 신호를 구하여 웨이브렛 변환부(16)에 출력하고, 각 객체에 대한 움직임 벡터를 계산하여 멀티플렉서/버퍼(22)에 출력한다.Next, a case in which a frame other than an I-picture, that is, a B-picture, is input to the video encoding system will be described. The subtractor 10 obtains a difference image between the input image and the previous frame image from the frame memory 30 and outputs a frame difference image signal. The object extractor 12 extracts the objects included in the frame from the frame difference image signal, obtains the object difference image signal for each object, outputs the object difference image signal to the wavelet converter 16, and outputs a motion vector for each object. The calculation is performed to the multiplexer / buffer 22.

이와 같은 경우, 웨이브렛 변환부(16)는 프레임에 포함된 각 객체에 대한 객체 차영상 신호를 웨이브렛 변환하게 된다. 양자화부(18), 엔트로피 코더(20), 역양자화부(24) 및 역변환부(IDWT: 26)의 동작은 I-화면이 입력되는 경우에 있어서와 동일하다. 그리고, 가산기(28)는 역변환부(IDWT: 26)로부터 출력되는 각 객체의 차영상신호를 프레임 메모리(30)의 출력 신호를 가산하고 가산 결과를 프레임 메모리(30)에 공급한다. 이에 따라, 프레임 메모리(30)는 현재 프레임(FN)에 대한 영상신호를 저장하게 되는데, 이 영상신호는 다음 프레임 영상신호의 부호화에 대한 기준 신호로 사용될 수 있다. 아울러, 프레임 메모리(30)는 부호화할 프레임의 이전 프레임(FN-1) 및 다음 프레임(FN+1)과, 프레임간 차영상들(ERN,N-1, ERN+1,N)을 함께 저장할 수 있도록 충분한 용량을 가지는 것이 바람직하다.In this case, the wavelet converter 16 wavelet transforms the object difference image signal for each object included in the frame. The operations of the quantization unit 18, entropy coder 20, inverse quantization unit 24, and inverse transform unit (IDWT) 26 are the same as in the case where an I-picture is input. The adder 28 adds the difference image signal of each object output from the inverse transform unit IDWT 26 to the output signal of the frame memory 30 and supplies the addition result to the frame memory 30. Accordingly, the frame memory 30 stores an image signal for the current frame F N , which may be used as a reference signal for encoding the next frame image signal. In addition, the frame memory 30 may include the previous frame F N-1 and the next frame F N + 1 of the frame to be encoded, and the inter-frame difference images ER N, N-1 and ER N + 1, N. It is desirable to have sufficient capacity to store the) together.

멀티플렉서/버퍼(22)는 엔트로피 코딩된 I-화면 전체 프레임에 대한 부호화 데이터, B-화면에 대한 각 객체의 부호화 데이터 및 움직임 벡터를 임시 저장하고, 이를 정렬하여 일정한 형식의 비트 스트림을 구성한다. 상기 비트 스트림의 구조에 대해서는 후술한다. 멀티플렉서/버퍼(22)로부터 출력되는 데이터는 통신망을 통해 원격지로 전송되거나 저장 매체에 저장될 수 있다.The multiplexer / buffer 22 temporarily stores the encoded data for the entire entropy-coded I-picture frame, the encoded data of each object for the B-picture, and the motion vector, and arranges them to form a bit stream of a predetermined format. The structure of the bit stream will be described later. Data output from the multiplexer / buffer 22 may be transmitted remotely through a communication network or stored in a storage medium.

멀티플렉서/버퍼(22)의 비트 스트림 구성 작업은 제2 제어 신호(CON2)에 응답하여 조절된다. 본 실시예에 있어서, 양자화부(18)에 대한 제1 제어신호(CON1) 및 멀티플렉서/버퍼(22)에 대한 제2 제어신호(CON2)는 도시되지 않은 제어부에 의해 공급된다. 상기 제어부는 고성능 RISC 프로세서로 구현될 수 있다. 한편, 본발명의 다른 실시예에 있어서는, 도 1의 영상 부호화 시스템의 전체 또는 일부가 이와 같은 프로세서 상에서 실행되는 소프트웨어에 의해 구현될 수도 있다.The bit stream configuration operation of the multiplexer / buffer 22 is adjusted in response to the second control signal CON2. In the present embodiment, the first control signal CON1 for the quantization unit 18 and the second control signal CON2 for the multiplexer / buffer 22 are supplied by a controller (not shown). The controller may be implemented as a high performance RISC processor. Meanwhile, in another embodiment of the present invention, all or part of the image encoding system of FIG. 1 may be implemented by software running on such a processor.

도 2는 도 1에 도시된 객체 추출부(12)의 일 예를 보여준다. 객체 추출부(12)는 카메라 움직임 검출 및 보상부(100), 움직임 객체 프레임 구성부(102), 바운딩 박스 구성부(104) 및 움직임 객체 추출부(106)를 포함한다.FIG. 2 shows an example of the object extractor 12 shown in FIG. 1. The object extractor 12 includes a camera motion detector and compensator 100, a motion object frame constructer 102, a bounding box constructer 104, and a motion object extractor 106.

카메라 움직임 검출 및 보상부(100)는 현재 프레임과 이전 프레임을 비교하여 프레임 내에 있는 객체의 움직임에 관계없이 카메라가 움직였는지 여부를 판단하고, 카메라가 움직였다고 판단되는 경우 카메라의 움직임을 보상한다. 즉, 카메라 움직임 검출 및 보상부(100)는 각 프레임에 대해 전체 프레임 움직임 벡터를 구하여, 부호화 시스템이 이전 프레임(Previous frame 또는 Reference frame)과 현재 프레임간의 차영상을 웨이브렛 압축함에 있어서, 상기 전체 프레임 움직임 벡터가 차영상(Error frame) 계산에 반영될 수 있게 해준다.The camera motion detection and compensator 100 compares the current frame with the previous frame to determine whether the camera has moved regardless of the movement of the object within the frame, and compensates the movement of the camera when it is determined that the camera has moved. That is, the camera motion detection and compensation unit 100 obtains a full frame motion vector for each frame, and when the encoding system compresses the difference image between the previous frame (Previous frame or Reference frame) and the current frame, It allows the frame motion vector to be reflected in the error frame calculation.

카메라 움직임 검출 및 보상 과정이 도 3에 도시되어 있다. 도 3을 참조하면, 먼저 도 4에 도시된 바와 같이 현재 프레임의 네 모서리 근처에 32 x 32 픽셀 블록을 프레임 움직임 탐색 블록(Frame motion search block: 180, 182, 184, 186)을 설정한다. 또한, 각 탐색 블록에 대해 160 x 160 픽셀 블록을 탐색 영역(190, 192, 194, 196)으로 설정한다(제150단계). 각 탐색 블록에 대하여 블록정합법에 의하여 프레임 움직임 벡터(Frame motion vector)를 구하게 된다(제152단계). 즉, 각 탐색 블록을 탐색 영역 내에서 천이(shift)하면서 탐색 영역 내의 각 픽셀에 대해 이전 프레임과 화소값 차를 구하고, 화소값 차의 자승 값들을 누적하게 된다.누적된 자승값이 최소가 되는 움직임 량이 해당 탐색 블록에 대한 움직임 벡터로 결정된다.The camera motion detection and compensation process is shown in FIG. 3. Referring to FIG. 3, first, as shown in FIG. 4, a frame motion search block (180, 182, 184, 186) is set to a 32 × 32 pixel block near four corners of the current frame. In addition, a 160 x 160 pixel block is set as the search areas 190, 192, 194, and 196 for each search block (operation 150). A frame motion vector is obtained for each search block by block matching (step 152). In other words, while shifting each search block in the search area, the pixel value difference is calculated for each pixel in the search area, and the square values of the pixel value difference are accumulated. The amount of motion is determined by the motion vector for the corresponding search block.

구해진 4개의 프레임 움직임 벡터를 토대로 전체 프레임 움직임 벡터를 구한다(제154 내지 제162단계). 이때, 4개의 프레임 움직임 벡터가 방향 및 크기에 있어 유사하고 최소 오류(Minimum error)의 크기가 작으면 4개의 움직임 벡터의 평균을 전체 프레임 움직임 벡터로 취한다(제154 및 제156단계). 만약 4개의 프레임 움직임 벡터 중 3개가 유사하고 하나가 다르다면, 상기 유사한 3개의 움직임 벡터의 평균을 전체 프레임 움직임 벡터로 취한다(제158 및 제160단계). 한편, 프레임 움직임 벡터 중 2개 이상이 서로 다른 경우에는, 화면 전이가 일어났다고 간주하고 현재 프레임을 새로운 참조 프레임(Reference frame) 즉, I-화면으로 설정하여, 프레임 전체가 부호화되도록 한다(제162단계).The entire frame motion vector is obtained based on the obtained four frame motion vectors (steps 154 to 162). At this time, if the four frame motion vectors are similar in direction and magnitude, and the magnitude of the minimum error is small, the average of the four motion vectors is taken as the entire frame motion vector (steps 154 and 156). If three of the four frame motion vectors are similar and one is different, the average of the three similar motion vectors is taken as the full frame motion vector (steps 158 and 160). On the other hand, if two or more of the frame motion vectors are different from each other, it is assumed that a screen transition has occurred and the current frame is set to a new reference frame, that is, an I-screen, so that the entire frame is encoded (162). step).

다시 도 2를 참조하면, 움직임 객체 프레임 구성부(102)는 영상 프레임 내에서 움직임 객체만 존재하는 부분을 나타내는 움직임 객체 프레임을 형성한다. 도 5는 움직임 객체 프레임 구성부(102)에 의한 움직임 객체 프레임 형성 과정을 설명하기 위한 프레임 계통을 보여주고 있다. N 번째 프레임(FN: 202)을 부호화하는 경우를 예로 들면, 먼저 N-1 번째 프레임(FN-1: 200)과 N 번째 프레임(FN: 202) 간의 차영상(ERN,N-1: 206)을 구한다. 위에서 기술한 바와 같이, 차영상을 구함에 있어서는, 프레임 움직임 벡터를 고려한다. 즉, 차영상(ERN,N-1)을 구함에 있어서는, N-1번째 프레임(FN-1)을 프레임 움직임 벡터만큼 이동시킨 후 화소 단위로 N 번째 프레임(FN)과의 화소값 차를 구하게 된다. 마찬가지로 N 번째 프레임(FN: 202)과 N+1 번째 프레임(FN+1: 204) 간의 차영상(ERN+1,N: 208)을 구한다.Referring back to FIG. 2, the moving object frame constructing unit 102 forms a moving object frame indicating a portion in which only a moving object exists in the image frame. FIG. 5 illustrates a frame system for explaining a process of forming a motion object frame by the motion object frame constructing unit 102. For example, when the Nth frame (F N : 202) is encoded, the difference image (ER N, N- ) between the N- 1th frame (F N-1 : 200) and the Nth frame (F N : 202) is first described. 1 : 206). As described above, in obtaining a difference image, a frame motion vector is considered. That is, in obtaining the difference images ER N and N-1 , the pixel value with the N th frame F N in pixel units after the N-1 th frame F N-1 is moved by the frame motion vector. You get a car. Similarly, the difference image (ER N + 1, N : 208) between the Nth frame (F N : 202) and the N + 1th frame (F N + 1 : 204) is obtained.

다음에는, 차영상(ERN,N-1)에서 화소값이 "0"이 아닌 모든 화소의 화소값을 "1"로 치환하여 이진화함으로써 마스크 프레임(MASKERN,N-1: 210)을 구한다. 마찬가지로, 차영상(ERN+1,N)을 이진화하여 마스크 프레임(MASKERN+1,N: 212)을 구한다. 두 마스크 프레임들(MASKERN,N-1, MASKERN+1,N)을 논리곱연산하여 마스크(MASKERN: 214)를 구한다. N 번째 프레임(FN)과 마스크(MASKERN: 214)를 다시 논리곱연산하여 움직임 객체(Moving Object)만 존재하는 움직임 객체 프레임(MOBFRN)을 구하게 된다.Next, in the difference image ER N, N-1 , the mask frame MASKER N, N-1 : 210 is obtained by replacing the pixel values of all pixels whose pixel value is not "0" with "1" and binarizing them. . Similarly, a mask frame (MASKER N + 1, N : 212) is obtained by binarizing the difference image ER N + 1, N. The mask MASAKER N 214 is obtained by performing an AND operation on two mask frames MASKER N, N-1 and MASKER N + 1, N. The N th frame (F N ) and the mask (MASKER N : 214) are ORed again to obtain a motion object frame (MOBFR N ) having only a moving object.

두 번째 프레임(F2)에 대한 움직임 객체 프레임(MOBFR2)을 구하는 예가 도 6a 내지 도 6i에 도시되어 있다. 도 6a 내지 도 6c는 연이어진 세 프레임의 영상(F1, F2, F3)을 보여주는데, 이 영상에는 두 개의 움직임 객체가 존재한다. 도 6d 및 도 6e는 각각 첫 번째 프레임(F1)과 두 번째 프레임(F2) 간의 차영상(ER1,2)과 두 번째 프레임(F2)과 세 번째 프레임(F3) 간의 차영상(ER2,3)을 보여준다. 도 6f 및 도 6g는 차영상(ER1,2)에서 화소값이 "0"이 아닌 모든 화소의 화소값이 "1"로 치환된 마스크 프레임(MASKER1,2)과 차영상(ER2,3)에서 화소값이 "0"이 아닌 모든 화소의 화소값이 "1"로 치환된 마스크 프레임(MASKER2,3)을 보여준다. 도 6h는 두 마스크 프레임들(MASKER1,2, MASKER2,3)을 화소 단위로 논리곱연산하여 형성되는 마스크(MASKER2)를 보여주며, 도 6i는 두 번째 프레임(F2)과 마스크(MASKER2)를 다시 논리곱연산하여 구해지는 움직임 객체 프레임(MOBFR2)을 보여준다. 도시된 바와 같이, 움직임 객체 프레임(MOBFR2)에는 두 번째 프레임(F2)에서 움직임 객체가 존재하는 부분들이 필수적으로 포함되고, 화면상의 다른 부분은 거의 모두가 0의 화소값으로 채워지게 된다.An example of obtaining the motion object frame MOBFR 2 for the second frame F 2 is shown in FIGS. 6A-6I. 6A to 6C show images (F 1 , F 2 , F 3 ) of three consecutive frames, in which two moving objects exist. Figure 6d and 6e are respective first frame (F 1) and two difference between the first frame (F 2) between the difference image (ER 1,2) and the second frame (F 2) and the third frame (F 3) video (ER 2,3 ). Figure 6f and 6g is a difference image of the mask frame (MASKER 1,2) and a substituted primary image the pixel values of all pixels in the pixel value (ER 1,2) other than "0" to "1" (ER 2, 3 shows a mask frame (MASKER 2,3 ) in which the pixel value of all pixels whose pixel value is not "0" is replaced with "1". Figure 6h shows the mask (MASKER 2) is formed by calculating a logical product of two mask frame (MASKER 1,2, MASKER 2,3) pixel by pixel, and Fig. 6i is a second frame (F 2) and the mask ( MASKER 2 ) shows the motion object frame (MOBFR 2 ), which is obtained by logical ANDing again. As shown, the moving object frame MOBFR 2 essentially includes portions in which the moving object exists in the second frame F 2 , and almost all other portions of the screen are filled with pixel values of zero.

도 2에 있어서, 바운딩 박스 구성부(104)는 영상내에서 움직임 객체를 포함하는 바운딩 박스를 구성한다. 여기서, 바운딩 박스란 움직임 객체를 포함하는 사각형 박스를 나타낸다. 이와 같은 바운딩 박스는 여러가지 방식으로 구성될 수 있는데, 바람직한 실시예에 있어서 바운딩 박스 구성부(104)는 마스크 프레임(MASKERi,i-1) 또는 마스크(MASKERi)에서 화소값이 "1"인 화소들로 연결된 형태를 라스터 스캐닝(Raster scanning) 방식으로 스캐닝하여 최소 크기의 바운딩 박스를 도출하게 된다. 바운딩 박스 구성 과정이 도 7에 도시되어 있다.In FIG. 2, the bounding box constructing unit 104 configures a bounding box including a moving object in the image. Here, the bounding box refers to a rectangular box including a motion object. Such a bounding box may be configured in various ways. In a preferred embodiment, the bounding box constructer 104 may have a pixel value of "1" in the mask frame MASKER i, i-1 or the mask MAKER i . The bounding box of the minimum size is derived by scanning the shape connected with the pixels by raster scanning. The bounding box configuration process is shown in FIG.

먼저, 프레임의 좌상(left top)에서부터 시작하여 스캐닝을 시작한다(제250단계). 스캐닝 과정에서, 처음으로 화소값이 "1"인 화소가 나타나면(제252단계), 해당 화소의 X, Y 좌표를 바운딩 박스의 좌상 및 우하 모서리의 X, Y 좌표로 설정한다(제254단계). 그리고, 화소값이 "1"인 화소가 다시 나타날 때까지 형태 스캐닝을 계속한다(제256단계). 만약 화소값이 "1"인 화소가 다시 나타나면(제258단계), 해당 화소의 좌표를 기 설정된 좌상 및 우하 모서리의 X, Y 좌표와 비교하여 좌상 및 우하 모서리의 X, Y 좌표를 갱신하게 된다(제260 내지 제274단계).First, scanning starts from the left top of the frame (step 250). When a pixel having a pixel value of "1" appears for the first time in the scanning process (step 252), the X and Y coordinates of the corresponding pixel are set to the X and Y coordinates of the upper left and lower right corners of the bounding box (step 254). . The shape scanning is continued until the pixel having the pixel value of "1" appears again (step 256). If a pixel having a pixel value of "1" appears again (step 258), the coordinates of the pixel are compared with the preset X and Y coordinates of the upper left and lower right corners to update the X and Y coordinates of the upper left and lower right corners. (Steps 260 to 274).

즉, 새로이 발견된 화소값이 "1"인 화소의 X좌표가 좌상 모서리 X좌표(X_top_left)보다 작다면, 좌상 모서리 X좌표(X_top_left)를 해당 화소의 X좌표로 갱신한다(제260 및 제262단계). 또한, 화소의 X좌표가 우하 모서리 X좌표(X_bottom_right)보다 크다면, 우하 모서리 X좌표(X_bottom_right)를 화소의 X좌표로 갱신한다(제264 및 제266단계). 한편, 화소의 Y좌표가 우하 모서리 Y좌표(Y_bottom_right)보다 크다면, 우하 모서리 Y좌표(Y_bottom_right)를 화소의 Y좌표로 갱신한다(제268 및 제270단계). 그리고 제256 내지 제270단계의 스캐닝 및 좌표 갱신 절차를 스캐닝이 종료될 때까지 계속하게 된다(제272단계).That is, if the X coordinate of the pixel whose newly found pixel value is "1" is smaller than the upper left corner X coordinate (X_top_left), the upper left corner X coordinate (X_top_left) is updated to the X coordinate of the corresponding pixel (260 and 262). step). If the X coordinate of the pixel is larger than the right lower corner X coordinate (X_bottom_right), the lower right corner X coordinate (X_bottom_right) is updated to the X coordinate of the pixel (steps 264 and 266). On the other hand, if the Y coordinate of the pixel is larger than the lower right corner Y coordinate (Y_bottom_right), the lower right corner Y coordinate (Y_bottom_right) is updated to the Y coordinate of the pixel (steps 268 and 270). The scanning and coordinate updating procedure of steps 256 to 270 is continued until the scanning is completed (step 272).

한편, 바운딩 박스는 마스크 프레임(MASKERi,i-1) 또는 마스크(MASKERi)에서 화소값이 "1"인 화소를 스캐닝하여 구성하는 대신에 움직임 객체 프레임(MOBFRi)에서 화소값이 "0"이 아닌 화소를 스캐닝하여 구성할 수도 있다. 도 8은 도 6i의 움직임 객체 프레임(MOBFR2)에 대해 구성된 바운딩 박스(290)의 예를 보여준다. 다른 한편으로, 본 발명의 다른 실시예에 있어서는, 바운딩 박스를 구성함에 있어서 8x8의 크기를 가지는 블록 또는 16x16의 매크로 블록 단위로 프레임을 스캐닝할 수도 있다. 이러한 경우, 각 블록 내에 "1"이 하나라도 존재하는 블록이 나타나면, 해당 블록의 좌상단 픽셀과 우하단 픽셀의 좌표가 바운딩 박스의 모서리를 갱신하는데 사용될 수 있다. 아울러, 이러한 경우에는 바운딩 박스의 위치 및 크기에 대한 기록은 블록 또는 매크로블록의 번호를 사용하여 이루어질 수 있다.On the other hand, the bounding box is configured by scanning pixels having a pixel value of "1" in the mask frame MASKER i, i-1 or mask MASK i , and having a pixel value of "0" in the motion object frame MOBFR i . It may be configured by scanning pixels other than ". 8 shows an example of a bounding box 290 configured for the motion object frame MOBFR 2 of FIG. 6I. On the other hand, in another embodiment of the present invention, in configuring the bounding box, the frame may be scanned in units of 8x8 blocks or 16x16 macroblocks. In this case, if a block in which at least one "1" exists in each block appears, the coordinates of the upper left pixel and the lower right pixel of the block may be used to update the corner of the bounding box. In this case, the recording of the position and size of the bounding box can also be made using the number of the block or macroblock.

또한, 한 프레임 내에 둘 이상의 형태가 존재하는 경우에는, 각 형태에 대하여 별도의 바운딩 박스가 도출될 수도 있다. 도 9a 내지 도 9c는 이처럼 둘 이상의 형태가 존재하는 경우에 형성되는 바운딩 박스들의 예를 보여준다. 도 9a는 움직임 객체 프레임(MOBFR)을 나타내고, 도 9b는 도 9a의 움직임 객체 프레임에 존재하는 움직임 객체들 중 자동차에 대한 바운딩 박스를 나타내고, 도 9c는 움직임 객체들 중 비행기에 대한 바운딩 박스를 나타낸다.In addition, when two or more shapes exist in one frame, a separate bounding box may be derived for each shape. 9A to 9C show examples of bounding boxes formed when two or more shapes are present. FIG. 9A shows a motion object frame (MOBFR), FIG. 9B shows a bounding box for a car among the motion objects present in the motion object frame of FIG. 9A, and FIG. 9C shows a bounding box for an airplane among the motion objects. .

다시 도 2를 참조하면, 바람직한 실시예에 있어서 움직임 객체 추출부(106)는 각 바운딩 박스 내에 있는 개별 움직임 객체들 각각에 대한 최소 바운딩 박스를 추출한다. 도 10은 최소 바운딩 박스 추출 과정을 보여준다. 먼저, 움직임 객체 추출부(106)는 각 바운딩 박스에 대하여 마스크(MASKERi)에 포함되거나 적어도 부분적으로 걸쳐지는 매크로블록에 대하여 이전 프레임과 현재 프레임간의 움직임 벡터를 구한다(제300단계).Referring back to FIG. 2, in the preferred embodiment the motion object extractor 106 extracts the minimum bounding box for each of the individual motion objects in each bounding box. 10 shows a minimum bounding box extraction process. First, the motion object extractor 106 obtains a motion vector between a previous frame and a current frame with respect to a macroblock included in or partially overlapped with the mask MASKERi for each bounding box (step 300).

검출된 움직임 벡터들은 그 크기 및 방향의 유사성에 따라서 AA, BB 등 몇 개의 그룹으로 분류된다(제302단계). 만약, 각 그룹에 속한 매크로블록들이 서로 인접하고 있으면 이를 단일객체로 간주하고 그 객체를 커버하는 최소 바운딩 박스를 추출한다(제304단계, 제306단계). 이러한 최소 바운딩 박스는 그룹 소속 매크로블록 번호만을 가지고 산출할 수 있다. 최소 바운딩 박스 내에서 해당 객체가 속하지 않는 모든 영역은 "0" 또는 임의의 평균치로 채워진다. 움직임 객체 추출부(106)는 최소 바운디드 박스에 대한 차영상을 이산 웨이브렛 변환부(도 1의 16)에 출력하여, 이산 웨이브렛 변환부(16)가 최소 바운디드 박스 단위로 차영상을 웨이브렛 변환하게 해준다.The detected motion vectors are classified into several groups, such as AA and BB, according to the similarity in magnitude and direction (step 302). If macroblocks belonging to each group are adjacent to each other, it is regarded as a single object and a minimum bounding box covering the object is extracted (steps 304 and 306). This minimum bounding box can be calculated with only the macroblock number belonging to the group. All areas within the minimum bounding box to which the object does not belong are filled with "0" or any average value. The motion object extractor 106 outputs the difference image for the minimum bounded box to the discrete wavelet transform unit 16 of FIG. 1, so that the discrete wavelet transform unit 16 outputs the difference image in units of the minimum bounded box. Lets you convert wavelets.

도 11은 도 6a 내지 도 6i 및 도 8에서 예시한 영상에 있어서, 바운딩 박스 내의 형태를 움직임 벡터에 따라 그룹핑한 예를 보여준다. 도시된 예에서는 바운딩 박스 내의 형태가 AA 및 BB의 두 단일 객체로 구분되어 있다. 바람직한 실시예에 있어서는 움직임 객체 추출부(106)가 이들 단일 객체별로 도 12a 및 도 12b에 도시된 바와 같은 최소 바운딩 박스(340, 342)를 추출함으로써, 이산 웨이브렛 변환부(16)가 최소 바운딩 박스(340, 342) 내의 단일 객체에 대한 차영상을 웨이브렛 변환하게 해준다. 그렇지만, 본 발명의 다른 실시예에 있어서는 최소 바운딩 박스를 추출하지 않고 바운딩 박스 내의 모든 형태를 하나의 단위로써 이산 웨이브렛 변환할 수도 있다.FIG. 11 illustrates an example of grouping shapes in a bounding box according to a motion vector in the images illustrated in FIGS. 6A to 6I and 8. In the example shown, the shape in the bounding box is divided into two single objects, AA and BB. In the preferred embodiment, the motion object extractor 106 extracts the minimum bounding boxes 340 and 342 as shown in Figs. 12A and 12B for each of these single objects, so that the discrete wavelet transform unit 16 is the least bounded. Wavelet transform the difference image for a single object in boxes 340 and 342. However, in another embodiment of the present invention, it is also possible to perform discrete wavelet transformation on all forms in the bounding box as one unit without extracting the minimum bounding box.

한편, 움직임 객체 추출부(106)는 움직임 객체와 아울러 이전 프레임에서 움직임 객체에 가려져 있었지만 현재 프레임에서 배경이 복구된 부분 즉, 배경 객체를 추출한다. 이와 같은 배경 객체는 위에서 설명한 마스크 프레임(MASKERN,N-1)에서 마스크(MASKERN)를 대해 화소 단위로 차감함으로써 배경 마스크(FNEXTN-1)를 추출하고, 배경 마스크(FNEXTN-1)에 프레임 영상(FN)을 다시 논리곱 연산함으로써 추출할 수 있다. 도 13은 도 6a 내지 도 6i에서 예시한 영상에 대한 배경 마스크를 보여준다. 움직임 객체 추출부(106)는 배경 객체에 대한 차영상을 그에 대한 바운디드박스 단위로 이산 웨이브렛 변환부(16)에 출력하여, 이산 웨이브렛 변환부(16)가 이를 웨이브렛 변환하게 해준다.On the other hand, the motion object extractor 106 extracts a part of the background that is hidden from the motion object in the previous frame together with the motion object, but the background is recovered from the current frame. Such a background object extracts the background mask F N EXT N-1 by subtracting the mask MASKER N pixel by pixel from the mask frame MASKER N, N-1 described above, and extracts the background mask F N EXT. N-1 ) can be extracted by logical ANDing the frame image F N again. FIG. 13 shows a background mask for the image illustrated in FIGS. 6A to 6I. The motion object extractor 106 outputs the difference image of the background object to the discrete wavelet transform unit 16 in bounded units thereof, so that the discrete wavelet transform unit 16 converts the wavelet.

다른 한편으로, 영상내의 움직임 객체는 모든 프레임에서 완전한 형태로 존재하기보다는 시간에 따라 어느 한 에지로부터 출현한 후 일정 시간 경과 후에 다른 에지를 통해 사라지게 되는 경우가 많다. 도 14a 및 도 14b는 이와 같이 에지로부터 출현하는 움직임 객체의 예를 보여준다. 도 14b에서 새로이 출현한 움직임 객체 부분(DD)은 비록 움직임 객체의 일부분이기는 하지만, 이전 프레임에는 없던 부분이기 때문에 이전 프레임(F1)을 토대로 차영상을 부호화하는 것이 부적절하다. 따라서, 움직임 객체 추출부(106)는 이와 같이 출현하는 객체에 대해서는 이전 프레임에 존재하던 부분(CC)과 이전 프레임에 없던 부분(DD)에 대해 별도의 최소 바운딩 박스를 형성한다. 움직임 객체 추출부(106)는 이전 프레임에 존재하던 부분(CC)에 대해서는 차영상 신호를 이산 웨이브렛 변환부(16)에 공급하지만, 이전 프레임에 없던 부분(DD)에 대해서는 완전한 영상을 이산 웨이브렛 변환부(16)에 공급하여 원 화소값(Absolute pixel value)이 부호화될 수 있게 해준다.On the other hand, a moving object in an image often disappears from one edge over time and then disappears through another edge after elapse of a certain time, rather than being in full form in every frame. 14A and 14B show an example of a moving object appearing from an edge like this. Although the new motion object part DD newly shown in FIG. 14B is part of the motion object that is not present in the previous frame, it is inappropriate to encode the difference image based on the previous frame F 1 . Accordingly, the moving object extracting unit 106 forms separate minimum bounding boxes for the portion CC existing in the previous frame and the portion DD not present in the previous frame. The motion object extractor 106 supplies the difference image signal to the discrete wavelet transform unit 16 for the portion CC existing in the previous frame, but provides a complete image for the portion DD not present in the previous frame. It is supplied to the let transform unit 16 so that the absolute pixel value can be encoded.

도 15는 도 2에 도시된 이산 웨이브렛 변환부(16)를 구체적으로 보여준다. 이산 웨이브렛 변환부(16)는 제1 및 제2 스위치(400, 402), 필터링부(404), 신호 확장부(406) 및 데이터 정렬부(408)를 포함한다. 제1 스위치(400)는 일 입력단자로 프레임 영상 신호를 받아들이고 다른 입력단자로 신호 확장부(406)의 출력 신호를 받아들이며, 제1 선택신호(SEL1)에 응답하여 이들 중 하나를 필터링부(404)에공급한다. 필터링부(404)는 받아들여진 신호를 웨이브렛 변환하여 제2 스위치(402) 및 데이터 정렬부(408)에 출력한다. 제2 스위치(402)는 일 입력단자로 필터링부(404)의 출력 신호를 받아들이고 다른 입력단자로 데이터 정렬부(408)의 출력 신호를 받아들이며, 제2 선택신호(SEL2)에 응답하여 이들 중 하나를 변환 계수로써 출력한다. 제1 및 제2 선택신호(SEL1, SEL2)는 미도시된 제어부에 의해 공급된다.FIG. 15 illustrates the discrete wavelet transform unit 16 shown in FIG. 2 in detail. The discrete wavelet converter 16 includes first and second switches 400 and 402, a filter 404, a signal expander 406, and a data aligner 408. The first switch 400 receives the frame image signal as one input terminal and the output signal of the signal extension unit 406 as the other input terminal, and filters one of them in response to the first selection signal SEL1. ). The filtering unit 404 converts the received signal into wavelet transform and outputs it to the second switch 402 and the data alignment unit 408. The second switch 402 receives the output signal of the filtering unit 404 as one input terminal and the output signal of the data alignment unit 408 as the other input terminal, and responds to one of these in response to the second selection signal SEL2. Is output as the transform coefficient. The first and second selection signals SEL1 and SEL2 are supplied by a controller (not shown).

완전한 픽셀값들을 나타내는 프레임 영상 신호가 공급될 때, 이산 웨이브렛 변환부(16)는 웨이브렛 변환만을 수행하고 그 결과를 변환 계수로써 출력한다. 그렇지만, 객체 차영상 신호가 공급될 때, 이산 웨이브렛 변환부(16)는 경계면에서의 화질 열화를 방지하기 위해 신호를 웨이브렛 변환하기에 앞서 신호 확장부(406)를 통과시키며 웨이브렛 변환된 결과를 다시 데이터 정렬부(408)를 통과시킨다. 신호 확장부(406)는 예컨대 다우비치(Daubechies) 필터에 의해 구현될 수 있으며, 경계면에서의 차영상 신호를 점대칭 확장하여 출력한다. 데이터 정렬부(408)는 필터링부(404) 내에 있는 필터 뱅크의 완전복원 특성을 보존하기 위하여 필터링부(404)의 출력 데이터를 재정렬하여 출력한다.When a frame image signal representing complete pixel values is supplied, the discrete wavelet transform unit 16 performs only wavelet transform and outputs the result as a transform coefficient. However, when the object difference image signal is supplied, the discrete wavelet transform unit 16 passes the wavelet transformed through the signal extension unit 406 before wavelet transforming the signal to prevent image quality deterioration at the interface. The result is passed back through the data sorter 408. The signal extension unit 406 may be implemented by, for example, a Dowchies filter, and outputs a point-symmetric extension of a difference image signal at an interface. The data aligning unit 408 rearranges and outputs the output data of the filtering unit 404 in order to preserve the complete restoration characteristics of the filter bank in the filtering unit 404.

도 16은 도 15에 도시된 필터링부(404)를 보다 상세하게 보여준다. 필터링부(404)는 멀티플렉서(450), 행연산 유닛(452), 제1 메모리(458), 열연산 유닛(460) 및 제2 메모리(470)를 포함한다. 멀티플렉서(450)는 외부로부터의 입력 데이터 스트림과 제2 메모리(470)로부터의 데이터를 받아들이고, 이중 하나를 선택하여 출력한다. 행연산 유닛(452)은 저역통과필터(454) 및 고역통과필터(456)를포함하며, 멀티플렉서(450)의 출력 데이터를 행방향을 따라서 병렬로 저역통과필터링과 고역통과필터링을 수행하고 2로 다운샘플링하여 제1 메모리(458)에 저장한다. 열연산 유닛(460)은 저역통과필터들(462, 466) 및 고역통과필터들(464, 468)을 포함하며, 제1 메모리(458)에 저장된 데이터를 열방향을 따라서 병렬로 저역통과필터링과 고역통과필터링을 수행하고 2로 다운샘플링한다. 열연산 유닛(460)은 네 개의 부영상(LL, LH, HL, HH) 중 LL대역 부영상은 제2 메모리(470)에 저장하고, 나머지 부영상들은 외부로 출력하게 된다.FIG. 16 shows the filtering unit 404 shown in FIG. 15 in more detail. The filtering unit 404 includes a multiplexer 450, a row operation unit 452, a first memory 458, a column operation unit 460, and a second memory 470. The multiplexer 450 receives an input data stream from the outside and data from the second memory 470, and selects one of them and outputs the data. The row operation unit 452 includes a low pass filter 454 and a high pass filter 456, and performs low pass filtering and high pass filtering in parallel along the row direction of the output data of the multiplexer 450. Downsamples and stores the data in the first memory 458. The thermal operation unit 460 includes low pass filters 462 and 466 and high pass filters 464 and 468, and the low pass filtering and the data stored in the first memory 458 in parallel along the column direction. Perform highpass filtering and downsample to 2. The thermal operation unit 460 stores the LL band sub-image among the four sub-images LL, LH, HL, and HH in the second memory 470, and outputs the remaining sub-images to the outside.

도 16의 장치는 다음과 같이 동작한다. 필터링부(404)에 영상 신호가 새로이 입력될 때, 멀티플렉서(450)는 입력 영상 신호를 행연산 유닛(452)에 공급한다. 도 17에 도시된 바와 같이, 입력 영상은 행연산 유닛(452) 및 열연산 유닛(460)에 의해 동시에 1레벨씩 웨이브렛 변환이 이루어져서 네 개의 부영상(LL0, LH0, HL0, HH0)으로 분해된다. 여기서, 부영상(LL0)은 저주파 수평 방향 정보와 저주파 수직 방향 정보를 포함하며, 부영상(LH0)은 저주파 수평 방향 정보와 고주파 수직 방향 정보를 포함한다. 또한, 부영상(HL0)은 고주파 수평 방향 정보와 저주파 수직 방향 정보를 포함하며, 부영상(HH0)은 고주파 수평 방향 정보와 고주파 수직 방향 정보를 포함한다. 이중 부영상(LL0)이 가장 많은 에너지를 포함하고 있기 때문에, 부영상(LL0)은 행연산 유닛(452) 및 열연산 유닛(460)에 다시 공급되어 도 18에 도시된 바와 같이 네 개의 부영상(LL1, LH1, HL1, HH1)으로 분해된다. 응용분야에 따라 부영상(LL)은 추가적으로 분해될 수도 있다.The apparatus of FIG. 16 operates as follows. When the image signal is newly input to the filtering unit 404, the multiplexer 450 supplies the input image signal to the row operation unit 452. As shown in FIG. 17, the input image is wavelet-transformed one level at a time by the row operation unit 452 and the thermal operation unit 460 so that four sub-images LL 0 , LH 0 , HL 0 , HH Decomposes into 0 ). Here, the sub-image LL 0 includes low frequency horizontal direction information and low frequency vertical direction information, and the sub-image LH 0 includes low frequency horizontal direction information and high frequency vertical direction information. In addition, the sub-image HL 0 includes high frequency horizontal direction information and low frequency vertical direction information, and the sub-image HH 0 includes high frequency horizontal direction information and high frequency vertical direction information. Since the double sub-image LL 0 contains the most energy, the sub-image LL 0 is fed back to the row operation unit 452 and the thermal operation unit 460 so that four sub-images LL 0 are shown as shown in FIG. 18. Decompose into sub-images (LL 1 , LH 1 , HL 1 , HH 1 ). Depending on the application, the sub-image LL may be further resolved.

도 19a 내지 도 19g는 도 1의 영상 부호화 시스템에 있어서 멀티플렉서/버퍼(22)에 의해 출력되는 비트 스트림의 구성을 보여준다. 도 19a에 도시된 바와 같이, 비디오 시퀀스 비트 스트림은 헤더(500)에 화면 그룹들(GOP: 502)이 연이어져 배치되어 있다. 도 19b에 도시된 바와 같이, 각 GOP(502)에는 헤더(510)에 일정 개수 프레임에 대한 부호화된 화면 데이터(512)가 포함된다. 헤더(510)에는 GOP(502) 내의 프레임 개수 등의 정보가 포함된다. 도 19c에 도시된 바와 같이, 각 화면 데이터(512)는 헤더(520)와, 움직임 객체 정보 및 정지 객체 정보가 포함된다. 특히, 움직임 객체 정보는 움직임 객체 데이터가 시작됨을 나타내는 헤더(522)와, 복수의 움직임 객체 데이터(524)를 포함할 수 있다. 마찬가지로, 정지 객체 정보는 정지 객체 데이터가 시작됨을 나타내는 헤더(526)와, 복수의 정지 객체 데이터(528)를 포함할 수 있다. 여기서, 정지 객체라 함은 배경 객체와 해당 화면에서 새로이 출현하는 움직임 객체 부분을 포함한다.19A to 19G show the configuration of a bit stream output by the multiplexer / buffer 22 in the video encoding system of FIG. As shown in FIG. 19A, the video sequence bit stream is arranged with successive screen groups (GOP) 502 in the header 500. As shown in FIG. 19B, each GOP 502 includes encoded picture data 512 for a certain number of frames in the header 510. The header 510 includes information such as the number of frames in the GOP 502. As shown in FIG. 19C, each screen data 512 includes a header 520, motion object information, and still object information. In particular, the movement object information may include a header 522 indicating that the movement object data starts and a plurality of movement object data 524. Similarly, the stationary object information may include a header 526 indicating that the stationary object data starts, and a plurality of stationary object data 528. Here, the stationary object includes a background object and a moving object part newly appearing on the screen.

도 19d에 도시된 바와 같이, 움직임 객체 헤더(522)는 시작 코드(530)와, 해당 화면 내의 움직임 객체의 수(532), 바운딩 박스 좌표(534) 및 개별 움직임 객체 리스트(536)를 포함한다. 도 19e에 도시된 바와 같이, 움직임 객체 데이터(524)는 헤더(540)와, 해당 움직임 객체에 대한 최소 바운딩 박스 좌표(542)와, 해당 객체에 대한 웨이브렛 계수(544) 및 움직임 벡터(546)를 포함한다. 도 19f에 도시된 바와 같이, 정지 객체 헤더(526)는 시작 코드(550)와, 해당 화면 내의 정지 객체의 수(552), 바운딩 박스 좌표(554) 및 개별 정지 객체 리스트(556)를 포함한다. 도19g에 도시된 바와 같이, 정지 객체 데이터(528)는 헤더(560)와, 해당 정지 객체에 대한 최소 바운딩 박스 좌표(562)와, 해당 객체에 대한 웨이브렛 계수(544)를 포함한다.As shown in FIG. 19D, the motion object header 522 includes a start code 530, the number of motion objects 532 in the corresponding screen, the bounding box coordinates 534, and the individual motion object list 536. . As shown in FIG. 19E, the motion object data 524 includes a header 540, a minimum bounding box coordinate 542 for that motion object, a wavelet coefficient 544 and a motion vector 546 for that object. ). As shown in FIG. 19F, the stationary object header 526 includes a start code 550, the number of stationary objects 552 in the screen, the bounding box coordinates 554, and the individual stationary object list 556. . As shown in FIG. 19G, the stationary object data 528 includes a header 560, a minimum bounding box coordinate 562 for that stationary object, and a wavelet coefficient 544 for that object.

도 20은 본 발명에 의한 영상 복호화 시스템의 일 실시예를 보여준다. 도시된 시스템은 가변장 복호화부(600), 역양자화부(602), 역웨이브렛 변환부(IDWT: 604), 가산기(606) 및 메모리(608)를 포함한다. 가변장 복호화부(600)는 산술부호화된 데이터 스트림을 가변장 복호화하고, 역양자화부(602)는 복호화된 데이터를 역양자화하며, 역변환부(604)는 역양자화부(602)의 출력 신호를 역웨이브렛 변환한다. 최초 프레임 영상 즉, 참조 영상(I-화면)의 경우, 역웨이브렛 변환되어 복호화된 데이터는 외부로 출력됨과 아울러 메모리(608)에 저장된다. I-화면 이외의 후속 화면 즉, P-화면의 경우, 역웨이브렛 변환된 데이터는 메모리(608)에 저장되어 있는 이전 화면 데이터와 가산됨으로써 해당 화면의 전체 데이터로 합성되어 외부로 출력됨과 아울러 메모리(608)에 저장된다.20 shows an embodiment of an image decoding system according to the present invention. The illustrated system includes a variable length decoder 600, an inverse quantizer 602, an inverse wavelet transform unit (IDWT) 604, an adder 606, and a memory 608. The variable length decoder 600 performs variable length decoding on an arithmetic-encoded data stream, the inverse quantizer 602 inversely quantizes the decoded data, and the inverse transformer 604 converts the output signal of the inverse quantizer 602. Inverse wavelet transform. In the case of the first frame image, that is, the reference image (I-picture), the inverse wavelet transformed and decoded data is output to the outside and stored in the memory 608. In the case of subsequent screens other than the I-screen, that is, the P-screen, the inverse wavelet transformed data is added to the previous screen data stored in the memory 608 to be synthesized into the entire data of the screen and output to the outside. 608 is stored.

본 발명에 의한 영상 부호화 시스템 및 복호화 시스템의 동작을 요약하면 다음과 같다.The operations of the video encoding system and the decoding system according to the present invention are summarized as follows.

도 21을 참조하면, 영상 부호화에 있어서는, 먼저 참조화면(I-화면) 전체를 웨이브렛 변환하여 부호화한다(제700단계). 매 5 내지 30 프레임이 GOP로 설정되고 GOP 내의 첫 화면이 참조화면으로 정해진다. 그렇지만, 배경 변화가 심하거나 움직임 객체의 수가 많은 경우에는 해당 화면이 참조화면으로 설정될 수도 있는데, 이러한 경우 GOP 자체가 새로 설정될 수도 있다. 한편, 본 발명의 다른 실시예에있어서는, 배경 변화가 거의 없는 경우 배경만을 별도로 추출하여 전송하거나 저장하고 참조화면에 대해서도 움직임 객체만을 부호화할 수도 있다.Referring to FIG. 21, in video encoding, first, the entire reference picture (I-picture) is wavelet-transformed and encoded (step 700). Every 5 to 30 frames are set to a GOP and the first screen in the GOP is set as the reference picture. However, when the background change is severe or the number of moving objects is large, the corresponding screen may be set as the reference screen, in which case the GOP itself may be newly set. Meanwhile, in another embodiment of the present invention, when there is almost no background change, only the background may be separately extracted and transmitted or stored, and only the motion object may be encoded for the reference picture.

참조화면 이외의 화면 즉, P-화면은 항상 직전 화면을 참조하여 객체 단위로 부호화한다. 도 2에 도시된 객체 추출부(12)는 움직임 객체를 추출하고 각 움직임 객체에 대한 움직임 벡터를 계산하여, 움직임 객체의 차영상을 이산 웨이브렛 변환부(16)에 공급하고 움직임 벡터를 멀티플렉서/버퍼(22)에 공급한다(제702단계). 이산 웨이브렛 변환부(16)는 1 레벨 단위로 차영상을 부호화한다. P-화면 부호화가 객체 단위로 이루어지기 때문에, 웨이브렛 변환을 위한 입력 이미지의 크기는 가변적으로 정해진다. 만일 움직임 객체들이 한 이미지 내에서 여러 곳에서 발생할 때 입력을 위한 각 최소 바운딩 박스의 순서는 위에서 아래로 그리고 좌에서 우의 순서로 정해지게 된다.Screens other than the reference picture, that is, P-picture, are always encoded in the object unit by referring to the previous picture. The object extractor 12 shown in FIG. 2 extracts a motion object, calculates a motion vector for each motion object, supplies the difference image of the motion object to the discrete wavelet transform unit 16, and supplies the motion vector to the multiplexer / The buffer 22 is supplied to the buffer 22 (step 702). The discrete wavelet transform unit 16 encodes the difference image in units of one level. Since P-picture coding is performed on a per object basis, the size of the input image for the wavelet transform is variably determined. If moving objects occur in multiple places within an image, the order of each minimum bounding box for input is determined from top to bottom and left to right.

웨이브렛 변환된 데이터는 각 최소 바운딩 박스별로 양자화부(18)에 의해 순차적으로 양자화되고, 양자화된 값은 엔트로피 코더(20)에 의해 산술부호화된다. 멀티플렉서/버퍼(22)는 산술부호화된 값을 움직임 벡터 및 바운딩 박스 좌표와 함께 도 19d 및 도 19e에 도시된 포맷에 따라 비트 스트림을 형성하게 된다(제704단계).The wavelet transformed data is sequentially quantized by the quantization unit 18 for each minimum bounding box, and the quantized value is arithmetic encoded by the entropy coder 20. The multiplexer / buffer 22 forms the bit stream in accordance with the format shown in Figs. 19D and 19E along with the motion vector and the bounding box coordinates (step 704).

한편, 객체 추출부(12)는 움직임 객체 중 신규 출현 부분 및 배경 객체와 같은 정지 객체를 추출하고 각 정지 객체 객체에 대한 최소 바운딩 박스를 구한다(제706단계). 이산 웨이브렛 변환부(16)는 정지 객체 영상을 부호화하고, 양자화부(18)는 웨이브렛 변환된 데이터를 각 최소 바운딩 박스별로 순차적으로 양자화하며, 엔트로피 코더(20)는 양자화된 값을 산술부호화한다. 멀티플렉서/버퍼(22)는 산술부호화된 값을 최소 바운딩 박스 좌표와 함께 도 19f 및 도 19g에 도시된 포맷에 따라 비트 스트림을 형성하게 된다(제708단계).Meanwhile, the object extractor 12 extracts still objects such as a new appearance part and a background object among the moving objects and obtains a minimum bounding box for each still object object (operation 706). The discrete wavelet transform unit 16 encodes a still object image, the quantization unit 18 sequentially quantizes the wavelet transformed data for each minimum bounding box, and the entropy coder 20 performs arithmetic encoding on the quantized value. do. The multiplexer / buffer 22 forms the bit stream in accordance with the format shown in Figs. 19F and 19G with the arithmetic coded value along with the minimum bounding box coordinates (step 708).

제702 내지 제708단계는 GOB 내에서 참조화면 이외의 모든 화면에 대해 수행된다. 각 화면에 대한 부호화가 끝날 때마다 해당 화면이 GOB의 끝인지가 판단되고(제710단계), 만약 해당 화면이 GOB의 끝이 아닌 경우에는 다시 다음 화면에 대해 제702 내지 제708단계가 수행된다.Steps 702 to 708 are performed for all screens other than the reference screen in the GOB. When encoding of each screen is finished, it is determined whether the corresponding screen is the end of the GOB (step 710). If the corresponding screen is not the end of the GOB, steps 702 to 708 are performed for the next screen again. .

도 22를 참조하면, 영상 복호화에 있어서는, 먼저 참조화면을 복호화하여 메모리(608)에 저장한다(제750단계). 다음 화면의 움직임 객체 차영상 데이터를 복호화하고(제752단계), 이전 화면에서 복호화된 데이터에 해당하는 움직임 객체 부분을 분리하여 움직임 벡터만큼 이동한 후, 이전 화면에 덮어씌우게 된다. 이에 따라 움직임 객체에 대한 정보의 갱신이 완료된다(제754단계). 다음에는, 정지 객체 영상 데이터를 복호화한 후(제756단계), 복호화된 데이터를 이전 화면의 해당 위치에 덮어씌우게 된다. 만약 화면이 GOB의 끝이 아닌 경우에는(제758단계), 다시 다음 화면에 대해 제752 내지 제758단계가 수행된다.Referring to FIG. 22, in image decoding, first, a reference picture is decoded and stored in the memory 608 (operation 750). After the motion object difference image data of the next screen is decoded (operation 752), a portion of the motion object corresponding to the decoded data on the previous screen is separated and moved by a motion vector, and then overwritten on the previous screen. Accordingly, updating of the information on the moving object is completed (operation 754). Next, after decoding the still object image data (step 756), the decoded data is overlaid on the corresponding position of the previous screen. If the screen is not the end of the GOB (step 758), steps 752 to 758 are performed again for the next screen.

본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art to which the present invention pertains will understand that the present invention can be implemented in other specific forms without changing the technical spirit or essential features. Therefore, the above-described embodiments are to be understood as illustrative in all respects and not as restrictive. The scope of the present invention is shown by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included in the scope of the present invention. do.

상술한 바와 같이, 본 발명은 동영상을 압축함에 있어서 움직임 객체를 기반으로 하고 웨이브렛 변환을 사용하기 때문에, 이미지 크기를 유연하게 변경 할 수 있고, 다중 해상도를 지원함과 동시에 처리 속도를 높여 속도 이득과 압축 효율성을 높일 수 있다. 압축률이 높아서 메모리 크기 내지 사용량을 감소시킬 수 있으며, 처리 속도를 높이는 것이 가능해진다. 특히, 본 발명의 시스템은 하드웨어 구성이 간단하며, 정지영상 및 동영상 처리에 모두 이용할 수 있다는 장점이 있다. 이에 따라, 본 시스템은 감시 시스템을 위시한 다양한 분야에 적용될 수 있으며, 사용자가 그동안 한정된 부분에 개별적으로 사용되어 왔던 영상 시스템을 적은 재정적 부담만으로 사용하도록 해줄 수 있다.As described above, since the present invention is based on a motion object and uses wavelet transform in compressing a video, it is possible to flexibly change the image size, support multiple resolutions, and at the same time increase the processing speed, Compression efficiency can be increased. The high compression ratio allows to reduce the memory size or the usage amount, and to increase the processing speed. In particular, the system of the present invention has the advantage that the hardware configuration is simple and can be used for both still and moving images. Accordingly, the present system can be applied to various fields including the surveillance system, and can allow the user to use the imaging system, which has been used individually for a limited portion, with little financial burden.

Claims (9)

촬상 수단에 의해 촬상되어, 참조 화면과 상기 참조 화면 다음에 배치되는 적어도 하나의 후속 화면을 포함하는 복수의 화면을 압축 부호화하는 영상 부호화 시스템으로서,An image encoding system which is imaged by an image pickup means and compressively encodes a plurality of screens including a reference screen and at least one subsequent screen disposed after the reference screen. 상기 후속 화면에 대해서 화면 내에 포함된 움직임 객체를 추출하고, 상기 움직임 객체의 움직임 벡터를 계산하는 객체 추출 수단;Object extraction means for extracting a motion object included in the screen with respect to the subsequent screen, and calculating a motion vector of the motion object; 상기 참조 화면을 웨이브렛 변환하고, 상기 후속 화면 내에 있는 움직임 객체에 대하여 상기 후속 화면 이전 화면과의 차영상을 웨이브렛 변환하여, 웨이브렛 변환치를 출력하는 웨이브렛 변환 수단;Wavelet converting means for converting the reference screen into a wavelet, wavelet transforming a difference image with the previous screen of the subsequent screen with respect to a motion object in the subsequent screen, and outputting a wavelet transform value; 상기 웨이브렛 변환치를 양자화하여 양자화된 값을 출력하는 양자화 수단;Quantization means for quantizing the wavelet transform value and outputting a quantized value; 상기 양자화된 값을 산술부호화하여 부호화된 값을 출력하는 엔트로피 부호화 수단; 및Entropy encoding means for performing arithmetic encoding on the quantized value to output an encoded value; And 상기 부호화된 값과 상기 움직임 객체의 움직임 벡터를 받아들여 일시 저장하고, 상기 부호화된 값과 상기 움직임 객체의 움직임 벡터를 포함하는 소정 형식의 비트 스트림을 형성하는 멀티플렉싱 및 버퍼링 수단;Multiplexing and buffering means for receiving and temporarily storing the encoded value and the motion vector of the motion object, and forming a bit stream of a predetermined format including the encoded value and the motion vector of the motion object; 을 포함하는 영상 부호화 시스템.Image coding system comprising a. 제1항에 있어서,The method of claim 1, 상기 객체 추출 수단은, 상기 후속 화면을 부호화함에 있어서, 상기 이전 화면에서는 상기 움직임 객체에 의해 가려져 있지만 상기 후속 화면에서는 상기 움직임 객체에 가려져 있지 않은 배경 객체를 추가적으로 추출하고,The object extracting means additionally extracts a background object which is covered by the moving object in the previous screen but not covered by the moving object in the subsequent screen in encoding the subsequent screen, 상기 웨이브렛 변환 수단은 상기 배경 객체를 추가적으로 웨이브렛 변환하는 영상 부호화 시스템.And the wavelet transform means additionally wavelet transforms the background object. 제1항 또는 제2항에 있어서,The method according to claim 1 or 2, 상기 후속 화면을 부호화함에 있어서, 상기 후속 화면과 상기 이전 화면 사이에 상기 촬상 수단이 움직인 움직임 량을 검출하여, 상기 웨이브렛 변환 수단이 상기 움직임 량이 반영된 차영상을 웨이브렛 변환하도록 해주는 카메라 움직임 검출 수단;In encoding the subsequent screen, camera motion detection for detecting the amount of movement of the image pickup means moved between the subsequent screen and the previous screen, and the wavelet converting means to wavelet transform the difference image reflecting the motion amount Way; 을 더 포함하는 영상 부호화 시스템.Image coding system further comprising. 촬상 수단에 의해 촬상되어, 참조 화면과 상기 참조 화면 다음에 배치되는 적어도 하나의 후속 화면을 포함하는 복수의 화면을 압축 부호화하는 영상 부호화 방법으로서,An image encoding method for compressing and encoding a plurality of screens which are picked up by an imaging unit and include a reference screen and at least one subsequent screen disposed after the reference screen, (a) 상기 참조 화면을 웨이브렛 변환하고 양자화하며 산술부호화하여, 부호화된 참조 화면 데이터를 생성하는 단계;(a) wavelet transforming, quantizing, and arithmetically encoding the reference picture to generate coded reference picture data; (b) 상기 후속 화면에 대해서 움직임 객체를 추출하고, 상기 움직임 객체의 움직임 벡터를 계산하는 단계;(b) extracting a motion object for the subsequent screen and calculating a motion vector of the motion object; (c) 상기 움직임 객체에 대하여 상기 후속 화면 이전 화면과의 차영상을 웨이브렛 변환하고 양자화하며 산술부호화하여, 부호화된 움직임 객체 데이터를 생성하는 단계; 및generating encoded motion object data by performing wavelet transform, quantization, and arithmetic encoding on a difference image with respect to the subsequent screen before the subsequent screen with respect to the motion object; And (d) 상기 부호화된 참조 화면 데이터, 상기 부호화된 움직임 객체 데이터 및 상기 움직임 벡터를 포함하는 소정 형식의 비트 스트림을 형성하는 단계;(d) forming a bit stream of a predetermined format including the coded reference picture data, the coded motion object data, and the motion vector; 를 포함하는 영상 부호화 방법.Image encoding method comprising a. 제4항에 있어서,The method of claim 4, wherein 상기 (b)단계는Step (b) is 상기 이전 화면에서는 상기 움직임 객체에 의해 가려져 있지만 상기 후속 화면에서는 상기 움직임 객체에 가려져 있지 않은 배경 객체를 추가적으로 추출하는 단계를 더 포함하고,And further extracting a background object that is hidden by the moving object in the previous screen but not covered by the moving object in the subsequent screen. 상기 (c)단계는Step (c) is 상기 배경 객체를 추가적으로 웨이브렛 변환하고 양자화하며 산술부호화하는 단계를 더 포함하는 영상 부호화 방법.And further performing wavelet transform, quantization, and arithmetic encoding of the background object. 제4항 또는 제5항에 있어서,The method according to claim 4 or 5, 상기 (b)단계는Step (b) is (b1) 상기 후속 화면과 상기 이전 화면 사이에 상기 촬상 수단이 움직인 움직임 량을 검출하는 단계;를 더 포함하며,(b1) detecting an amount of movement of the imaging means moved between the subsequent screen and the previous screen; 상기 (c)단계에서는, 상기 움직임 량이 반영된 차영상을 웨이브렛 변환하는영상 부호화 방법.In the step (c), the video encoding method for wavelet transform the difference image reflected in the motion amount. 제4항에 있어서,The method of claim 4, wherein 상기 (b)단계는Step (b) is (b1) 상기 움직임 객체를 둘러싸고 있고 상기 움직임 객체를 제외한 화소의 화소값이 영인 바운딩 박스를 구하는 단계;(b1) obtaining a bounding box surrounding the moving object and having a pixel value of zero except for the moving object; 를 더 포함하며,More, 상기 (c)단계에서는, 상기 바운딩 박스 단위를 웨이브렛 변환하고 양자화하며 산술부호화하는 영상 부호화 방법.In the step (c), the video encoding method for performing wavelet transform, quantization and arithmetic encoding of the bounding box unit. 제4항의 방법에 의하여 압축 부호화된 영상을 복호화하는 영상 복호화 방법으로서,An image decoding method for decoding an image encoded by the method of claim 4, (a) 상기 비트 스트림을 해체하여 상기 부호화된 참조 화면 데이터, 상기 부호화된 움직임 객체 데이터 및 상기 움직임 벡터를 복원하는 단계;(a) decomposing the bit stream to restore the coded reference picture data, the coded motion object data, and the motion vector; (b) 상기 부호화된 참조 화면 데이터를 가변장 복호화하고, 역양자화하며, 역웨이브렛 변환하여 상기 참조 화면을 복원하는 단계;(b) variably decoding the encoded reference picture data, inverse quantization, and inverse wavelet transform to restore the reference picture; (c) 상기 후속 화면에 대해서, 상기 부호화된 움직임 객체 데이터를 가변장 복호화하고, 역양자화하며, 역웨이브렛 변환하여 상기 움직임 객체를 복원하는 단계; 및(c) restoring the motion object by variable length decoding, inverse quantization, and inverse wavelet transform of the encoded motion object data with respect to the subsequent screen; And (d) 상기 이전 화면 내의 상기 움직임 객체 부분을 상기 움직임 벡터만큼 이동시킨 후, 상기 움직임 객체 부분을 상기 참조 화면에 덮어씌워서 상기 후속 화면을 복원하는 단계;(d) restoring the subsequent screen by moving the motion object part in the previous screen by the motion vector and then overwriting the motion object part on the reference screen; 를 포함하는 영상 복호화 방법.Image decoding method comprising a. 제8항에 있어서, 상기 비트 스트림은 상기 후속 화면 이전 화면에서는 상기 움직임 객체에 의해 가려져 있지만 상기 후속 화면에서는 상기 움직임 객체에 가려져 있지 않은 배경 객체에 대한 부호화된 배경 객체 데이터를 더 포함하며,The method of claim 8, wherein the bit stream further includes encoded background object data of a background object that is hidden by the moving object in the previous screen but not covered by the moving object in the subsequent screen. 상기 (a)단계는 상기 비트 스트림으로부터 상기 부호화된 배경 객체 데이터를 복원하는 단계를 더 포함하고,The step (a) further includes the step of recovering the encoded background object data from the bit stream, 상기 방법은The method is (e) 상기 후속 화면에 대해서, 상기 부호화된 배경 객체 데이터를 가변장 복호화하고, 역양자화하며, 역웨이브렛 변환하여 상기 배경 객체를 복원하는 단계; 및(e) variable length decoding, inverse quantizing and inverse wavelet transforming the encoded background object data for the subsequent screen to restore the background object; And (f) 상기 배경 객체를 상기 후속 화면에 덮어씌우는 단계;(f) overwriting the background object on the subsequent screen; 를 더 포함하는 영상 복호화 방법.Image decoding method further comprising.
KR1020000048424A 2000-08-21 2000-08-21 System and Method for Compressing Image Based on Moving Object KR20020015231A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020000048424A KR20020015231A (en) 2000-08-21 2000-08-21 System and Method for Compressing Image Based on Moving Object
PCT/KR2001/001254 WO2002017498A1 (en) 2000-08-21 2001-07-24 System and method for compressing image signal based on moving objects

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000048424A KR20020015231A (en) 2000-08-21 2000-08-21 System and Method for Compressing Image Based on Moving Object

Publications (1)

Publication Number Publication Date
KR20020015231A true KR20020015231A (en) 2002-02-27

Family

ID=19684284

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000048424A KR20020015231A (en) 2000-08-21 2000-08-21 System and Method for Compressing Image Based on Moving Object

Country Status (2)

Country Link
KR (1) KR20020015231A (en)
WO (1) WO2002017498A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100621582B1 (en) * 2004-07-14 2006-09-08 삼성전자주식회사 Method for scalable video coding and decoding, and apparatus for the same
WO2013077638A1 (en) * 2011-11-22 2013-05-30 삼성전자 주식회사 Device and method for coding/decoding multi-view depth image by using color image

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69633129T2 (en) * 1995-10-25 2005-08-04 Sarnoff Corp. WAVELET TREE BILDCODER WITH OVERLAPPING PICTURE BLOCKS
KR19990005283A (en) * 1997-06-30 1999-01-25 배순훈 Hierarchical Motion Estimation Method in Wavelet Transform Domain
US6130911A (en) * 1997-11-21 2000-10-10 Sharp Laboratories Of America, Inc. Method and apparatus for compressing reference frames in an interframe video codec

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100621582B1 (en) * 2004-07-14 2006-09-08 삼성전자주식회사 Method for scalable video coding and decoding, and apparatus for the same
WO2013077638A1 (en) * 2011-11-22 2013-05-30 삼성전자 주식회사 Device and method for coding/decoding multi-view depth image by using color image

Also Published As

Publication number Publication date
WO2002017498A1 (en) 2002-02-28

Similar Documents

Publication Publication Date Title
JP2744871B2 (en) Image signal encoding method and image signal encoding device
EP1138152B8 (en) Method and apparatus for performing hierarchical motion estimation using nonlinear pyramid
KR100231186B1 (en) Method and device for decoding image data
KR100308627B1 (en) Low bit rate encoder using overlapping block motion compensation and zerotree wavelet coding
US5936673A (en) Temporal tile staggering for block based video compression
US5786856A (en) Method for adaptive quantization by multiplication of luminance pixel blocks by a modified, frequency ordered hadamard matrix
US6553071B1 (en) Motion compensation coding apparatus using wavelet transformation and method thereof
JP2007028579A (en) Method for video data stream integration and compensation
EP1042735A1 (en) Hierarchical motion estimation apparatus and method using variable block sizes
WO2002037859A2 (en) Video data compression system
JPH09121345A (en) Image encoding device and image decoding device
KR19990067723A (en) Dynamically determining group of picture size during encoding of video sequence
KR20030014705A (en) Method of encoding a sequence of frames
JP3703299B2 (en) Video coding method, system and computer program product for optimizing picture center image quality
KR100468384B1 (en) Moving object based Motion estimation Wavelet picture Compression and Decompression system
KR20020015231A (en) System and Method for Compressing Image Based on Moving Object
Panchanathan et al. Fast multiresolution motion estimation scheme for a wavelet transform video coder
KR100207378B1 (en) Image encoding system using adaptive vector quantization
JP2901105B2 (en) Motion compensated inter-frame subband coding
KR100229792B1 (en) Improved image coding system having functions for adaptively determining image coding mode
Padmanabhan et al. An Efficient Video Compression Encoder Based on Wavelet Lifting Scheme in LSK
JPH066777A (en) Picture encoding device
KR100657714B1 (en) Method for coding image data using of 3d scanning
JP2000295622A (en) Moving picture coding method, moving picture coder, moving picture decoding method, moving picture decoder and storage medium storing program for them
Rajasekhar et al. An Efficient Video Compression Technique Using Watershed Algorithm and JPEG-LS Encoding

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
N231 Notification of change of applicant
E601 Decision to refuse application