KR100586099B1 - Moving picture coding method - Google Patents

Moving picture coding method Download PDF

Info

Publication number
KR100586099B1
KR100586099B1 KR1020030029852A KR20030029852A KR100586099B1 KR 100586099 B1 KR100586099 B1 KR 100586099B1 KR 1020030029852 A KR1020030029852 A KR 1020030029852A KR 20030029852 A KR20030029852 A KR 20030029852A KR 100586099 B1 KR100586099 B1 KR 100586099B1
Authority
KR
South Korea
Prior art keywords
gob
macroblock
synchronization information
data
extracted
Prior art date
Application number
KR1020030029852A
Other languages
Korean (ko)
Other versions
KR20040097524A (en
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 KR1020030029852A priority Critical patent/KR100586099B1/en
Publication of KR20040097524A publication Critical patent/KR20040097524A/en
Application granted granted Critical
Publication of KR100586099B1 publication Critical patent/KR100586099B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

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

Abstract

본 발명에 따른 동영상 코딩 방법은, 동영상 전송 시스템에서 에러 은닉을 수행하는 동영상 코딩 방법에 있어, 인코더에서 입력된 영상에 대하여, GOB 단위를 이루는 소정 매크로블록의 동기 정보를 추출하는 단계와; 추출된 GOB 단위를 이루는 소정 매크로블록의 동기 정보에 대하여 인코딩 시 데이터 숨김을 통하여 전송하는 단계; 및 디코더에서 데이터 숨김에 의하여 전송된, GOB 단위를 이루는 소정 매크로블록의 동기 정보를 추출하고, 그 추출된 동기 정보를 이용하여 에러 은닉을 수행하는 단계; 를 포함한다.In accordance with another aspect of the present invention, there is provided a video coding method for performing error concealment in a video transmission system, comprising: extracting synchronization information of a predetermined macroblock in a GOB unit with respect to an image input from an encoder; Transmitting through data hiding during encoding on the synchronization information of a predetermined macroblock constituting the extracted GOB unit; Extracting synchronization information of a predetermined macroblock of a GOB unit transmitted by data hiding at a decoder, and performing error concealment using the extracted synchronization information; It includes.

여기서 본 발명에 의하면, GOB 단위를 이루는 소정 매크로블록의 동기 정보라는 것은, GOB 단위로 비트 스트림 상에서 여섯 번째 매크로블록의 시작위치를 나타낸다.According to the present invention, the synchronization information of a predetermined macroblock forming a GOB unit indicates a start position of a sixth macroblock on a bit stream in a GOB unit.

또한 본 발명에 의하면, 데이터 숨김을 수행함에 있어, 입력된 영상에 대한 양자화 파라메터 및/또는 DCT가 수행되는 블록 내의 레벨 값(DCT 계수를 양자화 파라메타로 나눈 값)을 이용하여 데이터 숨김을 수행한다.In addition, according to the present invention, in performing data hiding, data hiding is performed by using a quantization parameter for the input image and / or a level value (a value obtained by dividing the DCT coefficient by the quantization parameter) in a block in which DCT is performed.

또한 본 발명에 의하면, 추출된 GOB 단위를 이루는 소정 매크로블록의 동기 정보에 대한 데이터 숨김을 수행함에 있어, 소정 매크로블록의 동기 정보가 추출된 GOB 보다 하나의 GOB 뒤에 추출된 소정 매크로블록의 동기 정보를 숨긴다.Further, according to the present invention, in performing data concealment on the synchronization information of the predetermined macroblock constituting the extracted GOB unit, the synchronization information of the predetermined macroblock extracted one GOB after the GOB from which the synchronization information of the predetermined macroblock is extracted Hides.

Description

동영상 코딩 방법{Moving picture coding method}Moving picture coding method

도 1은 일반적인 동영상 코딩 방법에 의하여 코딩이 수행되는 과정을 개략적으로 나타낸 도면.1 is a view schematically showing a process in which coding is performed by a general video coding method.

도 2는 일반적인 동영상 코딩 방법에서의 영상 계층을 설명하기 위한 도면.2 is a diagram for explaining an image layer in a general video coding method.

도 3은 일반적인 동영상 코딩 방법에서, 각 영상 계층에 에러가 발생될 경우의 영향을 설명하기 위한 도면.3 is a view for explaining the effect of an error occurs in each video layer in a general video coding method.

도 4는 본 발명에 따른 동영상 코딩 방법에 의하여 각 GOB의 동기 정보가 제공되는 경우의 효과를 설명하기 위한 도면.4 is a view for explaining the effect when the synchronization information of each GOB is provided by the video coding method according to the present invention.

도 5는 본 발명에 따른 동영상 코딩 방법에 의하여, 양자화 파라미터를 이용하여 데이터 숨김이 수행되는 과정을 설명하기 위한 도면.5 is a view for explaining a process of data concealment is performed using a quantization parameter by the video coding method according to the present invention.

도 6은 본 발명에 따른 동영상 코딩 방법에 의하여, 레벨 값을 이용하여 데이터 숨김이 수행되는 과정을 설명하기 위한 도면.6 is a view for explaining a process of data hiding is performed by using a level value by the video coding method according to the present invention.

도 7은 본 발명에 따른 동영상 코딩 방법에 의하여 인코더에서 코딩이 수행되는 과정을 나타낸 순서도.7 is a flowchart illustrating a process in which coding is performed in an encoder by a video coding method according to the present invention.

도 8은 본 발명에 따른 동영상 코딩 방법에 의하여 디코더에서 코딩이 수행되는 과정을 나타낸 순서도.8 is a flowchart illustrating a process in which coding is performed in a decoder by a video coding method according to the present invention.

본 발명은 동영상 코딩에 관한 것으로서, 특히 멀티미디어 영상이 네트워크를 통해 전송될 때, 인코딩 과정에서의 데이터 숨김을 통해, 디코딩 과정에서 발생되는 에러에 대하여 효율적으로 에러 은닉을 처리할 수 있는 동영상 코딩 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to video coding. In particular, when a multimedia video is transmitted through a network, the video coding method can efficiently process error concealment with respect to errors generated in a decoding process by hiding data in an encoding process. It is about.

최근 들어 IMT2000 등 초고속 이동 통신이 가시화되면서 음성, 정지영상뿐 아니라 동영상 같은 멀티미디어 서비스도 확대되고 있다. 동영상의 멀티미디어 서비스의 예로는 VOD 같은 단방향 서비스와 화상통화 같은 양방향 서비스가 있다. 비디오 통신은 음성 통화보다 데이터양이 훨씬 많기 때문에 기본적으로 비디오 압축을 수행한다.Recently, as high-speed mobile communication such as IMT2000 becomes visible, multimedia services such as video, as well as voice and still images, are expanding. Examples of multimedia services of video include one-way services such as VOD and two-way services such as video calls. Video communication basically performs video compression because it has much more data than voice calls.

일반적인 동영상 코딩 과정은, 도 1에 나타낸 바와 같이, 입력 영상에 대하여 움직임 보상(motion compensation)과 움직임 예측(motion estimation)을 통해 움직임 벡터(motion vector)를 추출하고, 그 차 영상에 대해서는 DCT와 양자화 과정을 수행한다. 양자화가 수행된 데이터에 대하여 데이터 압축을 좀 더 효율적으로 처리하기 위해 가변장 부호화(VLC encoding)를 수행한다.In the general video coding process, as shown in FIG. 1, a motion vector is extracted through motion compensation and motion estimation on an input image, and a DCT and quantization are performed on the difference image. Perform the process. VLC encoding is performed to more efficiently process data compression on the quantized data.

그리고 역 양자화와 역 DCT(IDCT)를 수행한 것과 이전 영상을 합해 기존 영상으로 복원하고 그 영상을 가지고 또 다음 영상의 차 영상을 구한다. 이러한 방식으로 비디오 데이터 압축이 이루어진다.Then, the inverse quantization and the inverse DCT (IDCT) are combined with the previous image to restore the existing image, and the difference image of the next image is obtained. In this way video data compression is achieved.

이후, 이러한 비디오 압축 후 네트워크를 통해 상대편과 통화가 이루어진다. 이때 데이터가 이동하는 네트워크에는 노이즈가 발생된다. 즉, 통신하는 데이터는 그대로 수신단에 전해지지 않고 데이터의 손상이나 손실이 발생되게 된다. 이러한 전송 데이터의 손실이나 손상을 에러라고 한다.Then, after the video compression, a call is made with the other party through the network. At this time, noise is generated in the network to which data moves. That is, the data to be communicated is not transmitted to the receiving end as it is, and the data is damaged or lost. This loss or corruption of transmitted data is called an error.

이러한 에러는 에러가 발생한 프레임뿐 아니라 그 이후에도 연속적으로 영향을 미치게 된다. 그 이유는 비디오에 대하여 압축이 수행되기 때문인데, 시공간 움직임 예측은 한번 일어난 데이터의 에러가 연속된 프레임에 영향을 미치게 한다. 또한, 가변 부호화 방식은 데이터 에러가 발생했을 때 동기(Sync)를 잃어버려 그 프레임에서 다음 동기(Sync)를 찾을 때 까지 영향을 미치게 한다. 즉 비디오 압축으로 인해 데이터 손실에 대한 화질의 저하게 매우 커지고 연속적으로 이어지게 된다.This error affects not only the frame in which the error occurred, but also continuously thereafter. The reason for this is that compression is performed on the video, where spatiotemporal motion prediction causes errors in the data that occur once to affect successive frames. In addition, the variable coding scheme loses sync when a data error occurs and affects until the next sync is found in the frame. In other words, the video compression causes the picture quality to be lost to data very large and continuous.

특히 데이터 압축에서 에러가 발생하였을 경우 다음 동기(Sync)정보를 찾을 때 까지 모든 정보가 부정확해 지기 때문에 동기 정보가 자주 나올수록 에러 전파는 크게 줄어들 수 있다. 하지만 동기 정보는 다른 인코딩되는 비트스트림들과 달라야 하기 때문에 정보 길이가 길어 비디오 압축에 자주 들어갈 수 없다. 예를 들어 H.263에서는 픽쳐 헤더와 GOB 헤더 앞에만 동기 정보가 포함되어 있다. 압축되는 스트림에 동기 정보가 자주 포함되어 있지 않기 때문에 에러가 발생하였을 경우 다음 동기 정보를 만날 때 까지 모든 데이터가 손상되어 화질 저하가 커지게 된다.In particular, when an error occurs in data compression, all information becomes inaccurate until the next synchronization information is found. Therefore, the error propagation can be greatly reduced as synchronization information frequently appears. However, because the synchronization information must be different from other encoded bitstreams, the information is long and cannot be frequently entered into video compression. For example, in H.263, synchronization information is included only before the picture header and the GOB header. Since the synchronization stream is not frequently included in the compressed stream, when an error occurs, all the data is damaged until the next synchronization information is met, and the image quality deteriorates.

위와 같은 영상의 화질 저하는 동영상 서비스의 커다란 장애물이다. 비디오 압축 표준에서도 위와 같은 에러에 대한 복원과 은닉에 대한 방법이 있으나 각각 한계점이 있다.The image quality deterioration is a major obstacle to video services. In the video compression standard, there are methods for restoring and concealing the above errors, but each has its limitations.

에러에 대한 복원방법은 주로 인코더에서 추가적인 데이터의 삽입으로 행해지는 방법으로 에러가 발생했을 때 디코더에서 에러의 전파를 막기 위한 방법이다. 인코딩 되는 스트림에 동기화(Sync) 비트를 추가로 삽입하거나 인코딩 되는 스트림을 같은 길이의 묶음으로 잘라 에러의 전파를 막는 방법이다. 이러한 에러 복원 방법은 디코더가 인코더의 에러 복원 방법을 모르면 디코딩을 수행할 수 없다는 단점이 있다.The recovery method for an error is mainly performed by inserting additional data in an encoder, and is a method for preventing an error propagation in a decoder when an error occurs. This is a method to prevent the propagation of an error by inserting additional Sync bits in the stream to be encoded or cutting the encoded stream into bundles of the same length. This error recovery method has a disadvantage in that the decoder cannot perform decoding unless the decoder knows the error recovery method of the encoder.

에러 복원 방법 중 또 하나의 방법은 인코더와 디코더가 동시에 수행하는 방법이 있다. 이 방법은 백 채널(back channel)을 이용하는 방법으로 디코더가 인코더에게 에러의 발생 위치를 알려주면 인코더가 그 정보를 이용하여 에러 복원을 할 수 있는 방법으로 인코딩 하는 것이다. 이러한 경우에는 시스템에서 백 채널을 추가적으로 지원해 주어야 하는 단점이 있다.Another method of error recovery includes a method in which an encoder and a decoder perform simultaneously. This method uses a back channel, and when the decoder informs the encoder where the error occurs, the encoder encodes the information in such a way that the error can be recovered. In this case, there is a disadvantage in that the system needs to additionally support the back channel.

그리고, 에러 은닉 방법은 디코더에서 행해지는 방법으로, 에러가 발생한 부분을 디코더에서 가지고 있는 영상을 이용하여 최대한 원 영상과 유사하게 만드는 방법이다. 이러한 경우, 디코더에서 제한된 정보만을 이용하여 에러를 은닉하기 때문에 에러 은닉의 정확성에 한계가 있다.In addition, the error concealment method is a method performed by the decoder, and is a method of making the portion where an error occurs as similar to the original image as possible by using the image of the decoder. In this case, since the error is concealed using only limited information in the decoder, the accuracy of the error concealment is limited.

이상에서 설명된 에러 복원 방법과 에러 은닉 방법을 각각 이용하는 방법만으로는 발생된 에러를 모두 제거 시킬 수 없는 단점을 가지고 있다.Only the method of using the error recovery method and the error concealment method described above has a disadvantage in that it is not possible to eliminate all the errors.

본 발명은, 멀티미디어 영상이 네트워크를 통해 전송될 때, 인코딩 과정에서의 데이터 숨김을 통해 GOB 단위를 이루는 소정 매크로블록의 동기 정보를 제공함 으로써, 디코딩 과정에서 발생되는 에러에 대하여 효율적으로 에러 은닉을 처리할 수 있는 동영상 코딩 방법을 제공함에 그 목적이 있다.According to the present invention, when a multimedia image is transmitted through a network, by providing data synchronization information of a predetermined macroblock forming a GOB unit through data hiding in an encoding process, error concealment is efficiently processed for errors generated during a decoding process. The purpose is to provide a video coding method that can be done.

상기의 목적을 달성하기 위하여 본 발명에 따른 동영상 코딩 방법은, 동영상 전송 시스템에서 에러 은닉을 수행하는 동영상 코딩 방법에 있어,In order to achieve the above object, a video coding method according to the present invention provides a video coding method for performing error concealment in a video transmission system.

인코더에서 입력된 영상에 대하여, GOB 단위를 이루는 소정 매크로블록의 동기 정보를 추출하는 단계와;Extracting synchronization information of a predetermined macroblock in a GOB unit with respect to an image input from an encoder;

상기 추출된 GOB 단위를 이루는 소정 매크로블록의 동기 정보에 대하여 인코딩 시 데이터 숨김을 통하여 전송하는 단계; 및Transmitting through data hiding during encoding on the synchronization information of a predetermined macroblock constituting the extracted GOB unit; And

디코더에서 상기 데이터 숨김에 의하여 전송된, GOB 단위를 이루는 소정 매크로블록의 동기 정보를 추출하고, 그 추출된 동기 정보를 이용하여 에러 은닉을 수행하는 단계; 를 포함하는 점에 그 특징이 있다.Extracting, by the decoder, synchronization information of a predetermined macroblock forming a GOB unit transmitted by the data hiding, and performing error concealment using the extracted synchronization information; Its features are to include.

여기서 본 발명에 의하면, 상기 GOB 단위를 이루는 소정 매크로블록의 동기 정보라는 것은, GOB 단위로 비트 스트림 상에서 여섯 번째 매크로블록의 시작위치를 나타내는 점에 그 특징이 있다.According to the present invention, the synchronization information of a predetermined macroblock constituting the GOB unit is characterized in that it indicates the start position of the sixth macroblock on the bit stream in the GOB unit.

또한 본 발명에 의하면, 상기 추출된 GOB 단위를 이루는 소정 매크로블록의 동기 정보에 대하여 데이터 숨김을 수행함에 있어, 상기 추출된 GOB 단위를 이루는 소정 매크로블록의 동기 정보를 여러번 반복하여 숨기는 점에 그 특징이 있다.Further, according to the present invention, in performing data hiding on the synchronization information of the predetermined macroblock of the extracted GOB unit, the feature is that the synchronization information of the predetermined macroblock of the GOB unit is repeatedly hidden several times. There is this.

또한 본 발명에 의하면, 상기 데이터 숨김을 수행함에 있어, 입력된 영상에 대한 양자화 파라메터 및/또는 DCT가 수행되는 블록 내의 레벨 값(DCT 계수를 양자 화 파라메타로 나눈 값)을 이용하여 데이터 숨김을 수행하는 점에 그 특징이 있다.According to the present invention, in performing the data concealment, data concealment is performed using a quantization parameter and / or a level value (a value obtained by dividing the DCT coefficient by the quantization parameter) in the block in which the DCT is performed. There is a characteristic in that.

또한 본 발명에 의하면, 상기 추출된 GOB 단위를 이루는 소정 매크로블록의 동기 정보에 대한 데이터 숨김을 수행함에 있어, 상기 소정 매크로블록의 동기 정보가 추출된 GOB 보다 하나의 GOB 뒤에 상기 추출된 소정 매크로블록의 동기 정보를 숨기는 점에 그 특징이 있다.Further, according to the present invention, in performing data concealment on the synchronization information of the predetermined macroblock constituting the extracted GOB unit, the extracted predetermined macroblock is one GOB after the GOB from which the synchronization information of the predetermined macroblock is extracted. Its characteristics are that it hides the motivational information of the.

또한 본 발명에 의하면, 상기 디코더에서 추출된 소정 매크로블록의 동기 정보를 이용하여 에러 은닉을 수행함에 있어, 입력되는 GOB의 매크로블록에 에러가 발생되는 경우에는, 숨김 데이터로부터 추출된 GOB를 이루는 매크로블록의 동기 정보를 참조하여, 상기 에러가 발생된 GOB의 매크로블록에 대한 디코딩을 다시 수행하는 점에 그 특징이 있다.According to the present invention, in performing error concealment by using the synchronization information of a predetermined macroblock extracted by the decoder, when an error occurs in a macroblock of an input GOB, a macro that forms a GOB extracted from hidden data is formed. The feature is that the decoding of the macroblock of the GOB in which the error occurs is performed again by referring to the synchronization information of the block.

또한 본 발명에 의하면, 상기 디코더에서 추출된 소정 매크로블록의 동기 정보가 하나의 GOB를 이루는 여섯 번째 매크로블록의 동기 정보인 경우에는, 상기 에러가 발생된 매크로블록이 여섯 번째 매크로블록 보다 이전 매크로블록인 경우에, 상기 추출된 동기 정보를 참조하여 상기 에러가 발생된 GOB의 여섯 번째 매크로블록부터 디코딩을 다시 수행하는 점에 그 특징이 있다.According to the present invention, when the synchronization information of a predetermined macroblock extracted by the decoder is the synchronization information of a sixth macroblock forming one GOB, the macroblock in which the error occurs is earlier than the sixth macroblock. In this case, the decoding is performed again from the sixth macroblock of the GOB in which the error is generated by referring to the extracted synchronization information.

이하, 첨부된 도면을 참조하여 본 발명에 따른 실시 예를 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명은 인코딩 과정에서 데이터의 숨김을 통해 GOB 단위를 이루는 소정 매크로블록의 동기 정보를 숨겨 전송함으로써, 디코더에서 에러가 발생했을 때 에러의 은닉을 좀 더 효과적으로 처리할 수 있는 동영상 코딩 방법을 제시한다.The present invention provides a video coding method that can more effectively process concealment of an error when an error occurs in a decoder by hiding and transmitting synchronization information of a predetermined macroblock forming a GOB unit through data hiding in an encoding process. .

알려진 바와 같이, 비디오 화상 통신에서 비디오는 데이터의 양이 많기 때문 에 압축을 수행하여 전송하게 된다. 비디오 데이터를 모두 압축하면 압축된 데이터양도 많기 때문에 이전 영상과 유사한 부분을 찾아 움직임 벡터를 구하고 그에 대한 차분치만을 인코딩한 후 가변장 부호화를 수행하여 전송한다.As is known, in video image communication, video is compressed and transmitted because of the large amount of data. When all the video data is compressed, the amount of compressed data is also large. Therefore, a motion vector is found to find a part similar to the previous image, only the difference value is encoded, and the variable length encoding is performed.

이러한 방법으로 비디오 데이터를 압축하였을 경우 데이터 압축은 많이 할 수 있지만, 에러가 발생하였을 경우 에러의 전파가 발생한다. 즉 가변장 부호화를 통해 압축하였기 때문에 한 비트에서 에러가 발생하여도 다음 동기(Sync)부호를 만날 때까지 에러가 이어지고, 이전 영상을 참조하여 인코딩 하기 때문에 이전 영상에서 에러가 발생하였을 경우 다음 영상까지 에러가 전파되게 된다.When video data is compressed in this manner, data compression can be performed a lot, but when an error occurs, error propagation occurs. That is, even if an error occurs in one bit because it is compressed through variable-length encoding, the error continues until the next sync code is met, and since the encoding is referred to the previous image, the error occurs in the previous image until the next image. The error will be propagated.

또한 움직임 예측과 움직임 보상을 통해 압축하는 일반적인 비디오 압축 방법은 영상을 계층으로 분할하고 계층을 이용하여 압축을 수행하게 되는데, 계층을 이용하는 것이 하위 계층의 공통적인 정보를 헤더에 포함시킬 수 있기 때문이다. 일반적인 움직임 예측, 움직임 보상 비디오 압축 방법인 H.263의 계층을 도 2에 나타내었다. 도 2는 일반적인 동영상 코딩 방법에서의 영상 계층을 설명하기 위한 도면이다.In addition, the general video compression method that compresses through motion prediction and motion compensation divides an image into layers and performs compression using layers, because using layers can include common information of lower layers in a header. . The layer of H.263, which is a general motion prediction and motion compensation video compression method, is shown in FIG. 2 is a diagram for describing an image layer in a general video coding method.

도 2에 나타낸 바와 같이, 영상의 계층은 픽쳐층, GOB층, 매크로 블록(MB)층, 블록층의 4 계층으로 나누어 진다. 여기서, 픽쳐는 프레임 한 장을 의미하고 9 개의 GOB를 포함한다. 그리고, GOB는 매크로 블록 단위의 한 열을 의미하고 11 개의 매크로 블록을 포함한다. 매크로 블록은 움직임 벡터를 찾는 단위로 4 개의 휘도 블록과 2 개의 색차 블록을 포함한다. 블록은 데이터 압축의 가장 기본 단위로 8*8 화소를 포함한다.As shown in Fig. 2, the image layer is divided into four layers: a picture layer, a GOB layer, a macro block (MB) layer, and a block layer. Here, the picture means one frame and includes nine GOBs. And, GOB means one row in macroblock units and includes 11 macroblocks. The macro block includes four luminance blocks and two color difference blocks in units of finding a motion vector. The block contains 8 * 8 pixels as the most basic unit of data compression.

좀 더 부연하여 살펴보면, 각 계층마다 헤더가 붙어 그 하위 계층의 구조적 정보를 나타낸다. 픽쳐 헤더에는 픽쳐의 인코딩 타입, 추가 모드의 사용 여부, 참조 프레임 번호, 영상의 사이즈 등 한 프레임의 전체 골격의 정보를 담고 있다. GOB 헤더에는 GOB 시작 코드와 GOB 번호 그리고 프레임 ID 등의 정보가 포함되어 있다. 즉, 매크로 블록 단위의 한 열에 대한 정보가 포함되어 있다. 매크로 블록 헤더에는 16*16의 픽셀 단위로 움직임 벡터, 매크로 블록 인코딩 타입 등의 정보가 포함되어 있다.More specifically, headers are attached to each layer to represent structural information of the lower layer. The picture header contains information on the entire skeleton of one frame, such as a picture encoding type, whether to use an additional mode, a reference frame number, and a size of an image. The GOB header contains information such as the GOB start code, GOB number, and frame ID. That is, information on one column of macro block units is included. The macro block header includes information such as a motion vector and a macro block encoding type in units of 16x16 pixels.

위에서 설명하였듯이 각 계층은 그 하위 계층의 구조적 정보를 포함하는 헤더를 가지고 있다. 비디오 통신 환경에서 각 계층의 헤더에 에러가 발생하였을 경우, 데이터에 에러가 발생했을 경우보다 화질 저하가 훨씬 크다. 도 3은 각 계층의 헤더에 에러가 발생하였을 경우 어떤 화질 저하 현상이 생기고 그 영향이 어느 정도인지 나타내주고 있다.As explained above, each layer has a header that contains the structural information of its lower layer. When an error occurs in the header of each layer in a video communication environment, the image quality deterioration is much greater than when an error occurs in data. FIG. 3 shows what quality degradation occurs when an error occurs in the header of each layer, and how much the effect thereof is.

도 3에 나타낸 바와 같이, 가장 상위 계층인 픽쳐 헤더에 에러가 발생하였을 경우 한 프레임 전체를 디코딩 할 수 없어 그 프레임을 참조하는 다음 프레임에 큰 화질 저하가 발생한다. 특히 움직임이 클 때 이전 영상을 참조하지 못했을 경우 화질 저하는 더욱 심해진다. As shown in Fig. 3, when an error occurs in the picture header which is the uppermost layer, the entire frame cannot be decoded and a large image quality deterioration occurs in the next frame referencing the frame. In particular, when the movement is large, the image quality deteriorates even more when the previous image cannot be referred to.

또한, GOB 헤더에 에러가 발생되는 경우에는 GOB 한 줄을 정상적으로 디코딩하지 못하게 되며, 매크로블록 헤더에 에러가 발생되는 경우에는 에러가 발생된 매크로블록부터 마지막 매크로블록까지 정상적인 디코딩이 수행되지 않게 된다.In addition, when an error occurs in the GOB header, one line of the GOB cannot be decoded normally. When an error occurs in the macroblock header, normal decoding is not performed from the macroblock in which the error occurs to the last macroblock.

한편 디코딩 과정에서, 픽쳐 헤더와 GOB 헤더에는 동기(Sync) 부호가 포함되 어 있음에 따라, 인코딩 된 데이터에 에러가 발생하여 동기를 잃고 정상적으로 디코딩하지 못할 경우에도, GOB 헤더나 픽쳐 헤더를 만나면 동기를 찾아 다시 정상적으로 디코딩 할 수 있다. 하지만 매크로 블록 헤더에는 동기 부호가 포함되어 있지 않기 때문에 매크로 블록 이하 단위의 헤더나 데이터에서 에러가 발생하면 가변장 부호화로 인하여 데이터의 내용을 정확히 디코딩 할 수 없게 된다.In the decoding process, since the picture header and the GOB header include a sync code, when the encoded data encounters an error and loses synchronization and cannot be decoded normally, the picture header and the GOB header are synchronized. Can be decoded normally. However, since the macroblock header does not contain the synchronization code, if an error occurs in the header or data in units below the macroblock, variable-length encoding cannot correctly decode the content of the data.

따라서, 다음 동기화 부호가 나타나는 픽쳐 헤더나 GOB 헤더를 만날 때 까지 모든 데이터를 버리게 된다. 즉, 발생된 에러가 단순히 한 비트의 에러라 할지라도, 도 4에 나타낸 바와 같이, 다음 동기 부호가 나타나기 전까지의 모든 데이터는 복원이 불가능해 진다. Therefore, all data is discarded until a picture header or GOB header with the next synchronization code appears. In other words, even if the generated error is simply one bit of error, as shown in Fig. 4, all data until the next synchronization code appears cannot be restored.

본 발명에서는, 이러한 화질 저하를 방지하기 위해 데이터 숨김 기술을 이용하여, GOB 단위를 이루는 소정 매크로블록의 동기 정보를 인코딩되는 데이터에 숨겨 전송하여 디코딩시 발생하는 에러에 대해 영상 복원을 수행하고자 한다.In the present invention, in order to prevent such deterioration of image quality, by using a data concealment technique, the synchronization information of a predetermined macroblock constituting a GOB unit is hidden in the encoded data and transmitted to perform image reconstruction for errors generated during decoding.

그러면, 본 발명에서 수행되는 데이터 숨김에 대하여 살펴 보기로 한다.Then, the data hiding performed in the present invention will be described.

데이터 숨김이라는 것은 디지털 멀티미디어에 원하는 정보를 숨겼다가 필요할 때 숨겨진 정보를 추출하는 기술이다. 데이터를 숨기는 기술로는 크게 숨긴 정보를 추출하기 위해 원본이 필요한 기술과 원본이 필요 없는 기술로 나눌 수 있다. 본 발명에서는 사용할 데이터 숨김 방법으로서 원본 데이터를 필요로 하지 않는 방법을 이용하고자 한다.Data hiding is a technology that hides the desired information in digital multimedia and extracts the hidden information when needed. The technique of hiding data can be divided into those that require originals and those that do not require originals to extract largely hidden information. In the present invention, it is intended to use a method that does not require the original data as a data hiding method to be used.

본 발명에서의 데이터 숨김은 비디오 압축 시 수행된다. 데이터의 숨김은 입력 영상을 압축할 때 데이터 압축 시 이용되는 파라메터나 입력 영상에 의존적인 값을 변형하여 수행할 수 있다. 비디오 압축을 수행할 때 데이터 숨김을 할 수 있으려면, 데이터 숨김을 하여 원래 파라메터나 원본 데이터가 변형되더라도 화질이나 압축되는 데이터 양에 큰 영향을 미치지 않는 부분이어야 한다. 그러한 값으로는 양자화 파라메터(QP)와, DCT 계수를 양자화 파라메터로 나눈 'level' 값이 있다.Data hiding in the present invention is performed during video compression. Data hiding may be performed by modifying a parameter used for data compression or a value dependent on the input image when compressing the input image. In order to be able to hide data when performing video compression, the data should be hidden so that the original parameter or the original data is not changed, but it does not affect the quality or the amount of data to be compressed. Such values include the quantization parameter (QP) and the 'level' value obtained by dividing the DCT coefficient by the quantization parameter.

양자화 파라메터를 이용하여 데이터 숨김을 수행하는 것에 대하여 도 5에 나타내었다. 도 5는 본 발명에 따른 동영상 코딩 방법에 의하여, 양자화 파라미터를 이용하여 데이터 숨김이 수행되는 과정을 설명하기 위한 도면이다.Performing data hiding using the quantization parameter is shown in FIG. 5. 5 is a diagram for describing a process of data hiding using a quantization parameter by a video coding method according to the present invention.

알려진 바와 같이, 인코딩되는 데이터 양을 조절하는 것이 양자화 파라메터이다. 양자화 파라메터는 입력 영상이나 입력 영상의 차분치를 DCT한 계수 값을 나눠주는 파라메터이다. 양자화 파라메터가 커지면 DCT 계수를 나눠주는 값이 커지기 때문에 인코딩되는 데이터양이 줄어들고 양자화 파라메터가 줄어들면 DCT계수를 나눠주는 값이 작아지기 때문에 인코딩되는 데이터양이 늘어난다. As is known, controlling the amount of data to be encoded is a quantization parameter. The quantization parameter is a parameter that divides the coefficient value obtained by DCT of the difference between the input image and the input image. The larger the quantization parameter is, the larger the value of dividing the DCT coefficients is. Therefore, the amount of data to be encoded is reduced.

그리고, 네트워크를 통해 비디오 동영상을 주고 받을 때 네트워크의 대역폭에 맞게 데이터를 압축하게 된다. 네트워크의 대역폭이 넓으면 통신할 수 있는 데이터 양이 많기 때문에 인코딩되는 양은 많아지고 화질은 좋아지게 된다. 반대로 네트워크의 대역폭이 좁으면 통신할 수 있는 데이터 양이 적기 때문에 인코딩되는 양은 적어지고 화질은 나빠지게 된다. 위와 같이 네트워크 상황을 보고 인코딩되는 데이터 양을 양자화 파라메터를 이용하여 조절하게 되는데 이때 데이터 숨김을 하게 된다.And when sending and receiving video and video over the network, the data is compressed according to the network bandwidth. The wider the bandwidth of the network, the greater the amount of data that can be communicated, resulting in higher amounts of encoding and better image quality. Conversely, the narrower the bandwidth of the network, the less data can be communicated, which results in less encoded content and poorer quality. As described above, the amount of data to be encoded is controlled by using the quantization parameter, and the data is hidden.

도 5에 나타낸 바와 같이, 입력 영상이나 입력 영상의 차분치 영상에 대하여 DCT를 한 후 네트워크의 대역폭을 고려하여 적절한 양자화 파라메터를 설정한다. 양자화 파라메터는 매크로블록 헤더로 들어가 압축한 영상을 디코딩 할 때 사용하게 된다. 이때 실제 양자화 파라메터를 이용하여 양자화하기 전에 데이터 숨김을 수행하게 된다. 여기서 데이터 숨김은 다음과 같이 수행할 수 있다.As shown in FIG. 5, after performing DCT on the input image or the differential image of the input image, an appropriate quantization parameter is set in consideration of the bandwidth of the network. The quantization parameter enters the macroblock header and is used to decode the compressed image. In this case, data hiding is performed before quantization using the actual quantization parameter. Here, data hiding can be performed as follows.

QP_new %2 == Hide bit[k]QP_new% 2 == Hide bit [k]

QP_new 변동 없음QP_new no change

QP_new %2 != Hide bit[k]QP_new% 2! = Hide bit [k]

QP_new = QP_new + 1 ;QP_new = QP_new + 1;

Hide bit[k] : 숨길 데이터의 비트 스트림Hide bit [k]: Bit stream of data to hide

위와 같이 데이터 숨김을 하게 되면 디코더에서 압축된 데이터를 디코딩 하면서 양자화 파라미터의 값을 보고 숨겨진 데이터를 추출할 수 있게 된다. 디코더에서 양자화 파라메터가 짝수이면 숨겨진 데이터는 '0'이 되고 양자화 파라메터가 홀수이면 숨겨진 데이터는 '1'이 되는 것이다. When the data is hidden as described above, the decoder can decode the compressed data and look at the value of the quantization parameter to extract the hidden data. If the quantization parameter is even in the decoder, the hidden data becomes '0', and if the quantization parameter is odd, the hidden data becomes '1'.

이때, 데이터 숨김을 위해 인코더에서는 양자화 파라메터를 약간 변경하게 된다. 즉, 숨길 데이터와 양자화 파라메터가 2로 나눴을 때 나머지가 같지 않다면 양자화 파라메터 값을 1만큼 증가시켜 2로 나눴을 때 나머지를 같게 해준다. 이렇게 되면 DCT 계수를 나눠주는 값이 커지기 때문에 인코딩되는 데이터양은 줄어들게 된다. 하지만 사람 눈으로 느껴지는 화질 저하는 거의 발생되지 않는다. At this time, the encoder slightly changes the quantization parameter to hide data. That is, if the data to be hidden and the quantization parameter are divided by 2, and the remainder is not the same, the quantization parameter value is increased by 1 and divided by 2 makes the remainder the same. This increases the value of dividing the DCT coefficients, thus reducing the amount of data encoded. However, the image quality felt by the human eye is hardly generated.

한편, 입력 영상이나 차분치 영상의 DCT 계수 값을 양자화 한 값인 'level' 값에 데이터 숨김을 수행하는 것에 대하여 도 6에 나타내었다. 도 6은 본 발명에 따른 동영상 코딩 방법에 의하여, 레벨 값을 이용하여 데이터 숨김이 수행되는 과정을 설명하기 위한 도면이다.Meanwhile, FIG. 6 illustrates that data hiding is performed on a 'level' value, which is a quantized value of a DCT coefficient value of an input image or a differential image. FIG. 6 is a diagram for describing a process of data hiding using a level value by a video coding method according to the present invention.

본 발명에 따른 동영상 코딩 방법에 의하면, 압축을 위해 입력 영상이나 차분치 영상에 대하여 DCT를 한다. 그 후 전송할 대역폭을 살펴보고 양자화 파라메터를 지정하여 인코딩되는 비트량을 조절하게 된다. 양자화 파라메터가 나누는 값은 DCT 계수이다.According to the video coding method according to the present invention, DCT is performed on an input video or a differential video for compression. Then we look at the bandwidth to be transmitted and specify the quantization parameter to adjust the amount of bits to be encoded. The value divided by the quantization parameter is the DCT coefficient.

도 6에서 DCT는 8*8 블록 단위로 수행된다. DCT가 수행된 블록에 양자화 파라메터가 적용되어 계수 값을 나눠주게 되는데, 이때 양자화 파라메터로 나눈 몫을 'level' 이라고 한다. 각 블록마다 나온 몫인 'level'을 이용하여 데이터 숨김을 수행하게 된다. 여기서, 데이터의 숨김은 다음과 같이 할 수 있다.In FIG. 6, the DCT is performed in units of 8 * 8 blocks. A quantization parameter is applied to a block on which DCT is performed to divide coefficient values. The quotient divided by the quantization parameter is called 'level'. Data hiding is performed using 'level' which is the quotient of each block. Here, the data can be hidden as follows.

LevelSum %2 == Hide Bit[k]LevelSum% 2 == Hide Bit [k]

Level 변경 없음No level change

LevelSum %2 != Hide Bit[k]LevelSum% 2! = Hide Bit [k]

Level 중 중요도가 가장 낮은 level 값을 1 줄임Decrease the lowest value of level among the levels by 1

LevelSum : 블록의 level을 모두 더한 값LevelSum: The sum of all block levels

각각의 'level'에 데이터 숨김을 하지 않고 블록 단위로 'level'을 합한 값에 데이터 숨김을 하는 이유는 각 'level'에 대해 데이터 숨김을 할 경우 화질에 영향을 주기 때문이다. 'Level'은 양자화 파라메터로 DCT 계수를 나눈 값의 몫이기 때문에 양자화 파라메터가 클수록 'level' 하나가 의미하는 DCT 계수의 범위는 커 지게 된다.The reason for hiding data at the sum of 'level' in units of blocks without hiding data at each 'level' is that data hiding for each 'level' affects the image quality. Since 'Level' is the quotient of the DCT coefficient divided by the quantization parameter, the larger the quantization parameter is, the larger the range of DCT coefficients that 'level' means.

예를 들어 'level' 값이 똑같이 '1'이더라도 양자화 파라메터가 10이면 가능한 DCT 범위는 10에서부터 19이고, 양자화 파라메터가 30이면 가능한 DCT 범위는 30부터 59까지이다. 그러므로 8*8 블록 단위로 'level'의 'sum'을 구한 뒤, 'level'의 'sum'을 2로 나눈 나머지와 숨길 데이터 비트가 동일하면 'level'의 변동이 없고 같지 않다면 중요도가 가장 낮은 'level'의 값을 1 만큼 줄인다.For example, even if the 'level' value is equal to '1', the DCT range is 10 to 19 when the quantization parameter is 10, and the DCT range is 30 to 59 when the quantization parameter is 30. Therefore, after calculating 'sum' of 'level' in 8 * 8 block units, if 'sum' of 'level' is divided by 2 and the data bits to be hidden are the same, there is no change in 'level' and the least important if not Decrease the value of 'level' by 1.

여기서, 중요도가 가장 낮은 'level'이라 함은 사람의 눈에 가장 민감도가 낮은 부분을 말한다. 사람의 눈은 고주파 영역에 대해 민감도가 낮으므로 숨길 데이터 비트와 'level sum'을 2로 나눈 나머지가 같지 않을 경우 가장 고주파를 갖는 'level'의 값에 대하여 1을 줄인다.Here, the 'level' of the least importance refers to the part having the least sensitivity to the human eye. The human eye is less sensitive to the high frequency range, so if the data bits to hide and the 'level sum' divided by 2 are not equal, reduce the value of 'level' with the highest frequency.

즉, 'level sum'이 '16'이고 삽입해야 할 비트가 '1'이면 그 블록의 가장 고주파 영역인 'level'의 값을 '1' 줄여 블록 'level sum'이 '15'가 되게 하여 숨길 비트와 'level sum'을 2로 나눴을 때 나머지를 같게 해 준다. That is, if the 'level sum' is '16' and the bit to be inserted is '1', the block 'level sum' becomes '15' by reducing the value of 'level', which is the highest frequency region of the block, to '1'. Divide the beat and the 'level sum' by two to make the rest the same.

하지만 만일 'level sum'이 '1'일 때는 문제가 생긴다. 'Level sum'이고 숨길 비트가 '1'이면 가장 민감도가 낮은 부분의 'level'을 '1'을 줄여 전체 블록의 합이 '0'이 된다. 하지만 원래 블록의 합이 '0'인 블록은 더 이상 'level'을 줄일 수 없기 때문에 데이터를 숨기지 않는다. 그렇게 되면 원래 'level sum'이 '1'이었다가 데이터를 숨겨 'level sum'이 '0'으로 된 블록과 처음부터 level sum이 '0'이고 데이터 숨김이 없는 블록을 구분할 수 없게 된다.However, if 'level sum' is '1', there is a problem. If it is 'Level sum' and the bit to hide is '1', the sum of all blocks is '0' by reducing '1' to 'level' of the least sensitive part. However, a block whose original sum of blocks is '0' does not hide data because it can no longer reduce the 'level'. In this case, the original 'level sum' is '1' and the data is hidden so that the block having 'level sum' of '0' and the level sum '0' from the beginning cannot be distinguished from the block without data hiding.

본 발명에서는 이러한 오류를 막고자 다음과 같은 방법을 사용하였다. 'Level'의 합이 '1'일 때 숨길 데이터가 '1' 이면 그 블록에 데이터를 삽입하였다. 그래도 'level'의 합은 변하지 않는다. 만일 'level'의 합이 '1'이고 숨길 데이터가 '0'이면 그 블록의 'level'의 합을 '0'으로 바꾸고 데이터 숨김은 하지 않는다. 디코더에서는 'level'의 합이 '0'일 때는 그 블록에 데이터 숨김이 없다고 여기게 된다.In the present invention, the following method was used to prevent such an error. If the sum of 'Level' is '1' and the data to hide is '1', the data is inserted into the block. However, the sum of 'levels' does not change. If the sum of 'level' is '1' and the data to hide is '0', change the sum of 'level' of the block to '0' and do not hide data. If the sum of 'level' is '0', the decoder assumes that there is no data hiding in the block.

이러한 방법으로 'level'의 합이 '1'인 블록을 제외하고 모든 블록은 숨길 데이터와 자신의 블록의 합을 2로 나눈 나머지 값이 같으면 블록의 'level'이 변화가 없고 그렇지 않으면 가장 민감도가 낮은 부분의 'level'을 '1' 만큼 감소시켜 데이터를 숨길 수 있다.In this way, except for blocks where the sum of 'levels' is '1', all blocks have the same level of data to hide and the remainder of their blocks divided by two, so the 'level' of the block remains unchanged; You can hide the data by reducing the lower level by one.

'Level'의 합이 '1'인 블록은 숨길 데이터가 '1' 이면 데이터를 숨기고 숨김 데이터가 '0'이면 데이터를 숨기지 않고 블록의 'level' 값만 '0'으로 변경시킨다. 'Level'의 합이 0'일 때도 데이터 숨김은 이루어 지지 않는다.A block whose sum of 'Level' is '1' hides the data if the data to be hidden is '1'. If the hidden data is '0', the block's 'level' value is changed to '0' without hiding the data. Even when the sum of 'Level' is 0 ', data hiding is not performed.

한편 본 발명에서는, 양자화 파라메터나 'level' 값을 이용하여 데이터 숨김을 수행함에 있어, GOB 단위를 이루는 소정 매크로블록의 동기 정보에 대하여 데이터 숨김을 수행한다.Meanwhile, in the present invention, in performing data hiding using a quantization parameter or 'level' value, data hiding is performed for synchronization information of a predetermined macroblock forming a GOB unit.

여기서, GOB 단위를 이루는 소정 매크로블록의 동기 정보라는 것은, 예컨대 하나의 GOB에 11 개의 매크로블록이 있는데 이중 가운데 매크로블록인 여섯 번째 매크로블록의 비트스트림 상의 시작위치를 의미한다. 이와 같은 각 GOB의 중간 위치 정보는 하나의 GOB 뒤에 삽입하여 전송한다.Here, the synchronization information of a predetermined macroblock forming a GOB unit, for example, includes 11 macroblocks in one GOB, which means a start position on a bitstream of a sixth macroblock, which is a middle macroblock among them. The intermediate position information of each GOB is inserted after one GOB and transmitted.

부연하여 설명하면, 비트 스트림상에서 여섯 번째 매크로블록의 시작 위치를 숨겨 전송한다는 것은 비트 스트림상에서 여섯 번째 매크로블록의 위치마다 동기 정보를 삽입한다는 의미가 된다.In other words, hiding and transmitting the start position of the sixth macroblock on the bit stream means inserting synchronization information for each position of the sixth macroblock on the bit stream.

앞에서 설명된 바와 같이, 비트 스트림에서 에러가 발생되는 경우에는, 다음 동기 부호를 만나기 전까지는 모든 데이터를 정상적으로 디코딩 할 수 없게 된다. 하지만, 본 발명에 의하면 비트 스트림상에서 여섯 번째 매크로블록의 시작 위치를 전송해 줌으로써, 디코더에서 디코딩시에 에러가 발생했을 경우에, 동기를 다음 GOB 헤더가 아닌 여섯 번째 매크로블록에서 맞출 수 있기 때문에 훨씬 더 좋은 화질을 얻을 수 있고 에러의 전파도 크게 줄일 수 있게 된다.As described above, when an error occurs in the bit stream, all data cannot be decoded normally until the next synchronization code is met. However, according to the present invention, by transmitting the start position of the sixth macroblock on the bit stream, when an error occurs during decoding at the decoder, synchronization can be achieved in the sixth macroblock instead of the next GOB header. Better image quality can be obtained and the propagation of errors can be greatly reduced.

예를 들어 도 4에서 보는 것과 같이, 만일 세 번째 매크로블록에서 에러가 발생하면 기존 방법으로는 다음 GOB가 나올 때까지 뒤에 나오는 모든 데이터를 정상적으로 디코딩할 수 없게 된다. 하지만, 본 발명에서 제시된 바와 같이, 동기 정보 숨김을 이용하여 여섯 번째 매크로블록의 시작 위치를 알 수 있으면 세 번째에서 다섯 번째 매크로블록 데이터는 정상적으로 디코딩 할 수 없지만 여섯 번째 매크로블록부터는 정상적으로 디코딩 할 수 있게 된다.For example, as shown in FIG. 4, if an error occurs in the third macroblock, the existing method cannot normally decode all the data following until the next GOB. However, as shown in the present invention, if the start position of the sixth macroblock can be known using the synchronization information hiding, the third to fifth macroblock data cannot be decoded normally, but the sixth macroblock can be decoded normally. do.

한편, 동기 정보에 대한 데이터 숨김을 수행하는 인코더 측면에서 볼 때, GOB 단위로 압축된 데이터를 보면 가변장 부호화를 수행하여 압축하였기 때문에 GOB 단위로 여섯 번째 GOB의 위치가 각각 다르게 된다. 이에 따라, GOB 단위로 인코딩 된 비트상에서 여섯 번째 GOB 위치를 추출하고, 그 추출된 위치 정보를 다음 GOB를 인코딩할 때 삽입하도록 한다. 이때, 여섯 번째 매크로블록의 시작 위치는 양자화 파라메터와 DCT의 level 값에 숨기도록 한다. 이러한 일련의 과정을 도 7에 나타내었다. 도 7은 본 발명에 따른 동영상 코딩 방법에 의하여 인코더에서 코딩이 수행되는 과정을 개념적으로 나타낸 순서도이다.On the other hand, in terms of an encoder that performs data hiding on synchronization information, when the data compressed in the unit of GOB is compressed by performing variable length encoding, the positions of the sixth GOB in the unit of GOB are different. Accordingly, the sixth GOB position is extracted from the bits encoded in the GOB unit, and the extracted position information is inserted when the next GOB is encoded. At this time, the start position of the sixth macroblock is hidden in the quantization parameter and the level value of the DCT. This series of processes is shown in FIG. 7 is a flowchart conceptually illustrating a process in which coding is performed in an encoder by a video coding method according to the present invention.

그리고, 동기 정보를 추출하는 디코더 측면의 과정을 기술하면, 디코딩을 수행할 때 GOB 단위로 숨겨진 정보를 추출하여 이전 GOB의 여섯 번째 매크로블록의 시작 위치를 알아낸다. 그리고, 이전 GOB에서 에러가 여섯 번째 GOB 이전에 일어났을 경우 추출된 정보를 이용하여 이전 GOB의 여섯 번째 매크로블록부터 정상적으로 다시 디코딩을 수행한다. 이러한 일련의 과정을 도 8에 나타내었다. 도 8은 본 발명에 따른 동영상 코딩 방법에 의하여 디코더에서 코딩이 수행되는 과정을 나타낸 순서도이다.In addition, when the decoder side process of extracting synchronization information is described, the hidden information is extracted in units of GOB when decoding is performed to find the start position of the sixth macroblock of the previous GOB. If an error occurs in the previous GOB before the sixth GOB, the extracted information is normally decoded again from the sixth macroblock of the previous GOB. This series of processes is shown in FIG. 8. 8 is a flowchart illustrating a process in which coding is performed in a decoder by a video coding method according to the present invention.

한편, 동영상 통신에서 에러 비율은 환경에 따라 다르게 변한다. 심하게는 10E-3이고 거의 에러가 없는 환경도 있다. 이때 에러 발생 비율이 높은 환경에서는 숨기는 데이터도 에러에 의해 깨질 수가 있으므로 여러 번 반복해서 보내주어야 한다. 복원하는 데이터에 에러가 발생하였을 경우 숨겨진 데이터를 추출하여 에러를 은닉하게 되는데, 데이터 숨김 자체가 인코딩 되는 비트 스트림에 숨겨져 있기 때문에 인코딩된 데이터가 에러에 의해 깨졌으면 숨겨진 데이터도 깨지게 되기 때문이다.On the other hand, the error rate in the video communication varies depending on the environment. Some environments are badly 10E-3 and almost error free. At this time, since the hidden data may be broken by an error in an environment where the error occurrence rate is high, it should be sent repeatedly. If an error occurs in the restored data, the hidden data is extracted and the error is concealed. Since the data hiding itself is hidden in the encoded bit stream, the hidden data is also broken if the encoded data is broken by an error.

따라서, 깨어진 정보를 이용하여 에러 은닉을 수행하면 화질 저하는 더욱 심해지므로, 숨길 데이터를 여러 번 중복하여 보내 디코더에서 숨겨진 데이터가 에러에 의해 깨졌을 경우에도 중복된 다른 데이터를 이용할 수 있도록 한다.Therefore, when the error concealment is performed using the broken information, the image quality deterioration becomes more severe, so that the duplicated data is repeatedly transmitted several times so that the duplicated data can be used even when the hidden data in the decoder is broken by an error.

한편, 종래에 수행되는 에러 은닉방법은 디코더에서 받은 영상만을 이용하여 최대한 원 영상과 유사하게 복원하게 된다. 즉, 이용할 수 있는 정보가 제한되어 있기 때문에 복원된 영상이 원 영상과 차이를 갖게 된다. 일반적인 비디오 압축 방식은 이전 영상과의 차분치를 이용하여 압축하기 때문에 어떤 시점에서 에러가 발생하면 그 부분의 에러를 완벽히 제거하지 않는 한 다음 영상에 에러가 전파되게 된다. 즉, 발생된 시점의 에러를 최대한 제거 시키는 것이 필요하다. On the other hand, the conventional error concealment method is to reconstruct as much as possible to the original image using only the image received from the decoder. That is, since the information available is limited, the reconstructed image is different from the original image. In general, the video compression method compresses by using a difference from the previous video. If an error occurs at a certain point, the error is propagated to the next video unless the error is completely removed. In other words, it is necessary to eliminate the error at the time of occurrence.

본 발명에서 제시한 동영상 코딩 방법을 이용하면 에러 은닉을 수신단에서만 하는 것이 아니고 송신단에서 추가적인 정보를 받아서 하기 때문에 발생된 에러를 최대한 제거시킬 수 있게 된다. 제시한 알고리즘을 이용하면 에러가 발생하였을 때 동기를 픽쳐 헤더와 GOB 헤더 뿐만 아니라 GOB 중간에서도 찾을 수 있기 때문에 에러 전파를 크게 방지할 수 있게 된다.Using the video coding method proposed in the present invention, the error concealment is not only performed at the receiving end, but the additional error can be eliminated as much as possible because the receiving end receives additional information. Using the proposed algorithm, when the error occurs, synchronization can be found not only in the picture header and the GOB header, but also in the middle of the GOB, thereby greatly preventing error propagation.

본 발명에 따른 동영상 코딩 방법을 이용하면, IMT-2000 등의 비디오 통신 서비스에서 에러가 발생했을 때 에러 은닉을 좀 더 효율적으로 해 주어 일반적인 비디오 코덱 표준(H.26X, MPEG 1,2,4)을 사용하고 있는 동영상 통신 서비스에 효과적으로 사용될 수 있다.Using the video coding method according to the present invention, when an error occurs in a video communication service such as IMT-2000, error concealment can be more efficiently, and thus a general video codec standard (H.26X, MPEG 1,2,4) It can be effectively used for a video communication service that uses a.

이상의 설명에서와 같이 본 발명에 따른 동영상 코딩 방법에 의하면, 멀티미디어 영상이 네트워크를 통해 전송될 때, 인코딩 과정에서의 데이터 숨김을 통해 GOB 단위를 이루는 소정 매크로블록의 동기 정보를 제공함으로써, 디코딩 과정에서 발생되는 에러에 대하여 효율적으로 에러 은닉을 처리할 수 있는 장점이 있다.As described above, according to the video coding method according to the present invention, when a multimedia image is transmitted through a network, by providing the synchronization information of a predetermined macroblock forming a GOB unit through data hiding in the encoding process, There is an advantage that the error concealment can be efficiently processed for the generated error.

Claims (7)

동영상 전송 시스템에서 에러 은닉을 수행하는 동영상 코딩 방법에 있어,In a video coding method for performing error concealment in a video transmission system, 인코더에서 입력된 영상에 대하여, GOB 단위를 이루는 소정 매크로블록의 동기 정보를 추출하는 단계와;Extracting synchronization information of a predetermined macroblock in a GOB unit with respect to an image input from an encoder; 상기 추출된 GOB 단위를 이루는 소정 매크로블록의 동기 정보에 대하여 인코딩 시 입력된 영상에 대한 양자화 파라메터 및/또는 DCT가 수행되는 블록 내의 레벨 값(DCT 계수를 양자화 파라메타로 나눈 값)을 이용하여 상기 소정 매크로블록의 동기 정보가 추출된 GOB보다 하나의 GOB뒤에 상기 추출된 소정 매크로 블록의 동기 정보를 삽입하는 데이터 숨김을 통하여 전송하는 단계; 및The predetermined value is determined using a quantization parameter for the image input during encoding and / or a level value (a value obtained by dividing the DCT coefficient by the quantization parameter) for the image input during encoding and the synchronization information of the predetermined macroblock constituting the extracted GOB unit. Transmitting the synchronization information of the macroblock through data hiding which inserts the synchronization information of the extracted predetermined macroblock after one GOB rather than the extracted GOB; And 디코더에서 상기 데이터 숨김에 의하여 전송된, GOB 단위를 이루는 소정 매크로블록의 동기 정보를 추출하고, 그 추출된 동기 정보를 이용하여 에러 은닉을 수행하는 단계; 를 포함하는 것을 특징으로 하는 동영상 코딩 방법.Extracting, by the decoder, synchronization information of a predetermined macroblock forming a GOB unit transmitted by the data hiding, and performing error concealment using the extracted synchronization information; Video coding method comprising a. 제 1항에 있어서,The method of claim 1, 상기 GOB 단위를 이루는 소정 매크로블록의 동기 정보라는 것은, GOB 단위로 비트 스트림 상에서 여섯 번째 매크로블록의 시작위치를 나타내는 것을 특징으로 하는 동영상 코딩 방법.The synchronization information of a predetermined macroblock constituting the GOB unit indicates a start position of a sixth macroblock on a bit stream in a GOB unit. 제 1항에 있어서,The method of claim 1, 상기 추출된 GOB 단위를 이루는 소정 매크로블록의 동기 정보에 대하여 데이터 숨김을 수행함에 있어, 상기 추출된 GOB 단위를 이루는 소정 매크로블록의 동기 정보를 여러번 반복하여 숨기는 것을 특징으로 하는 동영상 코딩 방법.And performing data hiding on the synchronization information of the predetermined macroblock of the extracted GOB unit, wherein the synchronization information of the predetermined macroblock of the GOB unit is repeatedly hidden. 삭제delete 삭제delete 제 1항에 있어서,The method of claim 1, 상기 디코더에서 추출된 소정 매크로블록의 동기 정보를 이용하여 에러 은닉을 수행함에 있어, 입력되는 GOB의 매크로블록에 에러가 발생되는 경우에는, 숨김 데이터로부터 추출된 GOB를 이루는 매크로블록의 동기 정보를 참조하여, 상기 에러가 발생된 GOB의 매크로블록에 대한 디코딩을 다시 수행하는 것을 특징으로 하는 동영상 코딩 방법.In performing error concealment using the synchronization information of the predetermined macroblock extracted by the decoder, when an error occurs in the macroblock of the input GOB, the synchronization information of the macroblock constituting the GOB extracted from the hidden data is referred to. And decoding the macroblock of the GOB in which the error occurs again. 제 6항에 있어서,The method of claim 6, 상기 디코더에서 추출된 소정 매크로블록의 동기 정보가 하나의 GOB를 이루는 여섯 번째 매크로블록의 동기 정보인 경우에는, 상기 에러가 발생된 매크로블록이 여섯 번째 매크로블록 보다 이전 매크로블록인 경우에, 상기 추출된 동기 정보를 참조하여 상기 에러가 발생된 GOB의 여섯 번째 매크로블록부터 디코딩을 다시 수행하는 것을 특징으로 하는 동영상 코딩 방법.When the synchronization information of the predetermined macroblock extracted by the decoder is the synchronization information of the sixth macroblock constituting one GOB, the extraction is performed when the macroblock in which the error occurs is a macroblock earlier than the sixth macroblock. And decoding from the sixth macroblock of the GOB in which the error occurs with reference to the received synchronization information.
KR1020030029852A 2003-05-12 2003-05-12 Moving picture coding method KR100586099B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030029852A KR100586099B1 (en) 2003-05-12 2003-05-12 Moving picture coding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030029852A KR100586099B1 (en) 2003-05-12 2003-05-12 Moving picture coding method

Publications (2)

Publication Number Publication Date
KR20040097524A KR20040097524A (en) 2004-11-18
KR100586099B1 true KR100586099B1 (en) 2006-06-07

Family

ID=37375679

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030029852A KR100586099B1 (en) 2003-05-12 2003-05-12 Moving picture coding method

Country Status (1)

Country Link
KR (1) KR100586099B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110677680A (en) * 2019-09-24 2020-01-10 杭州当虹科技股份有限公司 Master and standby information source switching method based on decoder error detection

Also Published As

Publication number Publication date
KR20040097524A (en) 2004-11-18

Similar Documents

Publication Publication Date Title
JP5007012B2 (en) Video encoding method
CA2409027C (en) Video encoding including an indicator of an alternate reference picture for use when the default reference picture cannot be reconstructed
DE60020243T2 (en) VIDEO CODING
JP4537583B2 (en) Error concealment of video signal
JP2002537736A (en) Video coding
JP2007028579A (en) Method for video data stream integration and compensation
MXPA02011206A (en) Video coding.
US6421386B1 (en) Method for coding digital moving video including gray scale shape information
KR100586100B1 (en) Moving picture coding method
KR100586101B1 (en) Moving picture coding method
KR100586099B1 (en) Moving picture coding method
Kwon et al. Error concealment techniques for H. 263 video transmission
KR100513014B1 (en) Video communication system and video coding method
KR100380230B1 (en) Image codec system based on multi-resolution image
JP3956081B2 (en) Encoding method for digital video including gray shape information
de los Reyes et al. Video transcoding for resilience in wireless channels
KR100535630B1 (en) Encoding / Decoding Method of Digital Gray Shape Information / Color Information
KR100620715B1 (en) Encoding / Decoding Method of Digital Gray Shape Information / Color Information
Gao et al. Early resynchronization, error detection and error concealment for reliable video decoding
KR100212544B1 (en) Method for detecting error of bit stream in h.263 algorithm
KR100203711B1 (en) Method for detecting error of bit stream in h.263 algorithm
Gao et al. Two-way decodable variable-length data blocks for robust video transmission
Karlekar Content based robust video coding for videoconferencing
KR20000003298A (en) Encoding/decoding method of digital interlaced scanning interpicture

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
LAPS Lapse due to unpaid annual fee