KR100281924B1 - 비월 주사 방식의 형상 및 화상 정보 부호화 방법 및 부호화기 - Google Patents

비월 주사 방식의 형상 및 화상 정보 부호화 방법 및 부호화기 Download PDF

Info

Publication number
KR100281924B1
KR100281924B1 KR1019980024254A KR19980024254A KR100281924B1 KR 100281924 B1 KR100281924 B1 KR 100281924B1 KR 1019980024254 A KR1019980024254 A KR 1019980024254A KR 19980024254 A KR19980024254 A KR 19980024254A KR 100281924 B1 KR100281924 B1 KR 100281924B1
Authority
KR
South Korea
Prior art keywords
field
encoding
block
frame
mode
Prior art date
Application number
KR1019980024254A
Other languages
English (en)
Other versions
KR19990066707A (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 윤종용
Publication of KR19990066707A publication Critical patent/KR19990066707A/ko
Application granted granted Critical
Publication of KR100281924B1 publication Critical patent/KR100281924B1/ko

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 비월주사 방식의 형상 및 화상 부호화 방법 및 부호화기에 관한 것으로서, 그 방법은 형상 및 화상정보를 프레임 단위로 부호화하는 방식을 프레임 기반 부호화, 필드단위로 부호화하는 방식을 필드기반 부호화라 할 때, 입력된 현재 블록의 움직임벡터를 추정하는 제1단계; 추정된 움직임벡터를 사용하여 이전 프레임으로부터 움직임 보상된 블록을 얻는 제2단계; 움직임 보상된 블록과 현재 블록을 비교하여 프레임기반 부호화여부를 판단하는 제3단계; 프레임기반 부호화로 판단되면 현재 블록에 대해 프레임기반 부호화를 수행하고, 프레임기반 부호화로 판단되지 않으면 현재 블록을 필드단위로 분할하는 제4단계; 분할된 필드단위의 블록 각각에 대해 움직임 벡터를 추정하는 제5단계; 이전 프레임으로부터 움직임 보상된 필드 블록을 얻는 제6단계; 보상된 필드블록과 현재 필드블록을 비교하여 필드기반 부호화여부를 판단하는 제7단계; 및 분할된 필드블록 중 적어도 어느 하나의 필드블록이 필드기반 부호화로 판단되면 필드기반 부호화를 수행하고, 분할된 필드블록 둘다 필드기반 부호화로 판단되지 않으면 프레임기반 부호화를 수행하는 제8단계를 포함함을 특징으로 한다.
본 발명에 의하면, 순차주사방식 뿐만 아니라 비월주사방식으로 MPEG4 형상 부호화를 효율적으로 수행할 수 있다.

Description

비월 주사 방식의 형상 및 화상 정보 부호화 방법 및 부호화기
본 발명은 형상정보 부호화에 관한 것으로서, 특히 비월주사 방식의 형상정보에 대한 부호화 방법 및 부호화기에 관한 것이다.
일반적으로 MPEG4 부호화는 텍스쳐(Texture) 부호화와 형상(Shape) 부호화가 있다. 상기 텍스쳐 부호화는 순차주사(non-interaced) 방식 및 비월주사(interlaced) 방식 모두 사용할 수 있다. 그러나 상기 형상(Shape) 부호화는 순차주사 방식에 대해서만 효율적이다. 상기 shape 부호화는 비월주사 방식에 대해서는 별도의 처리방식이 없이 상기 순차주사 방식을 그대로 사용한다. 따라서 부호화 결과 데이터 양이 많아지고 시간이 많이 걸리는 단점이 있다. 즉 비월주사 방식에서는 한 프레임을 top 필드 및 bottom 필드로 나누어 각기 따로 따로 처리를 하므로 주사하는 시간에 차이가 난다. 이로 인해 형상 모양이 원래의 모양과 달라진다. 예를 들어 원래의 형상이 원이라고 하면 비월 주사를 하게 되면 울퉁불퉁한 shape를 갖는 원이 된다.
즉, 현재 MPEG 4에서는 비월주사 방식의 비주얼 정보 부호화시 화상정보, 형상정보 각각에 대하여 부호화 모드를 표시하는 표시자를 사용하는데, 이는 이들 정보 간의 상관성을 고려치 않은 것으로 부호화 효율이 최적이 아님을 의미한다.
한편, non-interaced 방식의 이진형상 부호화 방법을 설명하면 다음과 같다. 먼저, 움직임 벡터를 결정한다. 현재블록의 좌측, 상측, 상기 상측의 우측에 위치한 세 개의 인접블록 각각에 대해, 형상정보부호화를 위한 움직임벡터를 MVs1, MVs2, MVs3라 하고, 텍스쳐정보 부호화를 위한 움직임벡터를 MV1, MV2, MV3라 할 때, 상기 움직임벡터 결정을 위해 MVs1, MVs2, MVs3, MV1, MV2, MV3에서 유효한 움직임 벡터를 결정한다. 예를 들어 MVs1이 움직임 벡터로 결정되면, 상기 움직임 벡터에 해당하는 이전 프레임의 보상된 블록을 찾는다. 그리고 나서 상기 움직임 보상된 블록과 현재블록의 차이를 구하여 기설정된 소정의 오차한계와 비교한다. 비교결과 오차한계 내에 포함되면, 상응하는 블록모드 정보(MVDsF=0 && NO_update)를 부호화한다.
비교결과 오차한계를 벗어나면, 상기 결정된 유효화 움직임벡터(MVs1)을 중심으로 소정의 크기를 갖는 타겟윈도우(target window)를 설정하여 픽셀 단위로 움직이면서 현재 블록과의 차이를 비교하여 에러가 가장 작은 블록을 찾는다. 이렇게 해서 찾은 블록을 매칭블록(matching block)이라 할 때, 상기 매칭블록과 현재블록을 비교하여 소정의 오차한계를 벗어나는지 비교한다. 비교결과 소정의 오차한계 내에 있으면, 상기 움직임벡터(MVs1)을 기준으로 한 매칭블록에 대한 움직임 벡터(MVDs)를 구하여, 상기 움직임벡터(MVDs) 정보와 블록모드(MVDsF!=0 && NO_update) 정보를 부호화한다.
만일 비교결과 소정의 오차한계를 벗어나면, 움직임 벡터 정보는 보내지 않고 현재 블록의 위치가 상기 결정된 유효한 움직임 벡터(MVs1)와 같은지 검사하여 즉 MVD = 0 인지 검사하여, 같으면 즉 MVD = 0 이면 이에 상응하는 블록모드(MVDsF=0 && inter_coded) 정보와, 현재블록과 이전블록을 고려하여 현재 블록의 픽셀을 부호화한다.(inter_coded)
만일 다르면, 상기 MVD 정보와 이에 상응하는 블록모드(MVDsF!=0 && inter_coded) 정보 및 현재블록과 상기 MVD에 상응하는 이전 블록을 고려하여 현재 블록의 픽셀을 부호화한다.(inter_coded)
본 발명이 이루고자 하는 기술적 과제는 기존의 형상 부호화기에서 사용하는 기본 구조와 비월주사 방식의 처리 모드를 효율적으로 결합한 구성을 가지며, 특히 이전 프레임과의 연관성을 이용한 부호화 방식(inter frame coding mode)인, MPEG4의 이진 형상 부호화기에 비월 주사 방식의 이진 형상 정보 부호화 방법 및 부호화기를 제공하는 것이다.
도 1은 본 발명에 의한 비월 주사방식의 이진 형상 부호화기의 전체 구성에 대한 블록도를 도시한 것이다.
도 2a는 프레임 기반 블록의 부호화모드에 대한 부호화 방법을 도시한 것이다.
도 2b는 Top 필드블록의 부호화모드에 대한 부호화 방법을 도시한 것이다.
도 2c는 Bottom 필드블록의 부호화모드에 대한 부호화 방법을 도시한 것이다.
도 2d는 필드기반의 Top 필드블록의 부호화모드에 대한 다른 부호화 방법을 도시한 것이다.
도 2e는 필드기반의 Bottom 필드블록의 부호화모드에 대한 다른 부호화 방법을 도시한 것이다.
도 2f는 필드기반의 블록에 대한 부호화 모드의 VLC 코드를 도시한 것이다.
도 3a는 필드기반의 Top 필드블록에 대한 부호화모드 결정법을 도시한 것이다.
도 3b는 필드기반의 Bottom 필드블록에 대한 부호화모드 결정법을 도시한 것이다.
도 4a는 일반적인 인트라 프레임 형상 부호화정보를 도시한 것이다.
도 4b는 일반적인 인터 프레임 형상 부호화정보를 도시한 것이다.
도 4c는 본 발명이 적용된 인트라 필드 형상 부호화정보(Intra Shape Coding Bitstream)를 도시한 것이다.
도 4d는 본 발명이 적용된 인터 필드 형상 부호화정보를 도시한 것으로서, Top 과 Bottom 필드 블록 모두 'No_update' 부호화모드일 경우를 도시한 것이다.
도 4e는 임의의 한 필드 블록만이 'No_update' 부호화모드일 경우를 도시한 것이다.
도 4f는 Top 필드블록과 Bottom 필드블록 모두 'inter_coded' 부호화모드일 경우를 도시한 것이다.
도 4g는 도 4f의 인터필드 형상부호화 정보에서 정보효율을 높이기 위해 필드기반 움직임 벡터 대신 프레임 기반 움직임 벡터로 (7)번 모드로 지정된 필드 블럭에 대해서만 지정하는 차이를 갖는 인터필드 형상부호화 정보를 도시한 것이다.
도 5는 비월주사 방식의 형상정보 부호화방법에 대한 일실시예를 흐름도로 도시한 것이다.
도 6a는 프레임 기반 블록의 움직임 벡터 추정을 위한 인접블록 후보자를 도시한 것이다.
도 6b는 필드 기반 블록의 움직임 벡터 추정을 위한 인접블록 후보자를 도시한 것이다.
도 7a는 움직임벡터 추정자 선정시의 후보자의 우선순위를 결정하기 위한 프레임 기반 블록과 그 인접블록을 도시한 것이다.
도 7b는 움직임벡터 추정자 선정시의 후보자의 우선순위를 결정하기 위한 필드 기반 블록과 그 인접블록을 도시한 것이다.
도 8은 부호화효율 향상을 위해 도 5에 도시된 130단계를 변형시킨 흐름도이다.
도 9는 도 5를 기반으로 하면서 부호화를 하기 전에 인접블록의 부호화 성향을 먼저 판단하여 부호화 효율을 향상시키는 방법을 흐름도로 도시한 것이다.
도 10은 Top 과 Bottom 필드블록 중 적어도 하나가 'No_update' 일 경우 항상 필드기반 부호화를 처리하는 부호화방법을 흐름도로 도시한 것이다.
도 11a 내지 도 11c는 기존의 화상 및 형상의 프레임/필드 부호화 표시자를 포함한 일반적인 비주얼 데이터 부호화 정보의 비트스트림를 도시한 것이다.
도 12a 내지 도 12c는 본 발명에 의한 화상 및 형상의 프레임/필드 부호화 표시자를 포함한 일반적인 비주얼 데이터 부호화 정보의 비트스트림을 도시한 것이다.
도 13a 내지 도 13d는 본 발명에 의한 화상 및 형상의 프레임/필드 부호화 정보의 비트스트림을 도시한 것이다.
도 14는 블록 또는 필드 블록의 부호화모드 부호화방법에서의 이전의 블록 또는 필드블록의 부호화 모드 결정방법을 도시한 것이다.
도 15a 내지 도 15e는 필드기반 블록의 부호화모드를 프레임 기반 블록의 부호화모드로 변환하는 방법을 도시한 것이다.
도 16은 두 필드블록 중 한 필드 블록이 No_update 인 블록 부호화모드에서의 필드 블록 부호화모드와 그 때의 VLC 코드를 도시한 것이다.
상기 기술적 과제를 해결하기 위한 본 발명에 의한, 비월주사 방식의 형상 및 화상 정보를 부호화하는 방법은, 상기 형상 및 화상정보를 프레임 단위로 부호화하는 방식을 프레임 기반 부호화, 필드단위로 부호화하는 방식을 필드 기반 부호화라 할 때, 입력된 현재 블록의 움직임벡터를 추정하는 제1단계; 상기 추정된 움직임벡터를 사용하여 이전 프레임으로부터 움직임 보상된 블록을 얻는 제2단계; 상기 움직임 보상된 블록과 현재 블록을 비교하여 프레임 기반 부호화여부를 판단하는 제3단계; 상기 판단결과, 프레임 기반 부호화로 판단되면 현재 블록에 대해 프레임 기반 부호화를 수행하고, 프레임 기반 부호화로 판단되지 않으면 상기 현재 블록을 필드단위로 분할하는 제4단계; 상기 분할된 필드단위의 블록 각각에 대해 움직임 벡터를 추정하는 제5단계; 상기 추정된 움직임 벡터를 사용하여 이전 프레임으로부터 움직임 보상된 필드 블록을 얻는 제6단계; 상기 움직임 보상된 필드블록과 현재 필드블록을 비교하여 필드기반 부호화여부를 판단하는 제7단계; 및 상기 필드기반 부호화 판단결과, 상기 분할된 필드블록 중 적어도 어느 하나의 필드블록이 필드기반 부호화로 판단되면 필드기반 부호화를 수행하고, 상기 분할된 필드블록 둘다 필드기반 부호화로 판단되지 않으면 프레임 기반 부호화를 수행하는 제8단계를 포함함을 특징으로 한다.
상기 제3단계는 상기 움직임 보상된 블록과 현재 블록을 비교하는 단계; 및 상기 비교결과, 그 차가 기설정된 블록허용 오차보다 작으면 프레임기반 부호화로 결정하는 단계로 이루어짐을 특징으로 한다.
인트라 필드형상 부호화정보의 비트스트림은 "부호화모드, SFP, CR, STsft, STsfb, 부호화된 Top 필드형상, 부호화된 bottom 필드형상"으로 이루어지고, 인터 필드형상 부호화정보의 비트스트림은 Top 과 Bottom 필드 블록 모두 'No_Update' 부호화 모드일 경우에는 "부호화모드, SFP, 필드부호화모드, MVsft, MVsfb "로 이루어지고, 하나의 필드블록만이 'No_Update' 부호화모드일 경우에는 "부호화모드, SFP, 필드부호화모드, Top_or_Bottom', MVsft, MVsfb, STsft/STsfb, 부호화된 Top, Bottom 필드형상"으로 이루어지고, Top 과 Bottom 필드 블록 모두 'inter_coded' 부호화 모드일 경우에는 "부호화모드, SFP, MVsft, MVsfb, CR, STsft, STsfb, 부호화된 Top 필드 형상, 부호화된 Bottom 필드 형상" 또는“부호화모드, SFP, MVsF,
CR, STsft, STsfb, 부호화된 Top 필드 형상, 부호화된 Bottom 필드 형상” 으로 이루어짐을 특징으로 한다.
제1단계의 움직임 벡터 추정은 인접블록이 프레임기반 움직임 벡터를 이용한 블록일 경우, 인접블록 움직임 벡터의 수직성분 및 수평성분을 현재블록 움직임벡터의 수직성분 및 수평성분으로 설정하고, 인접블록이 필드블록 기반 움직임 벡터를 이용한 블록일 경우, 인접 top 필드블록의 움직임벡터 수직성분과 bottom 필드블록의 움직임벡터 수직성분의 합을 현재 블록의 움직임벡터 수직성분 값으로 설정하고, 인접 top 필드블록의 움직임벡터 수평성분과 bottom 필드블록의 움직임벡터 수평성분의 산술평균값에서 정수부분을 취해 현재 블록의 움직임벡터 수평성분 값으로 설정함을 특징으로 한다.
제5단계의 움직임 벡터 추정은 인접블록이 필드기반 움직임 벡터를 이용한 블록일 경우, 인접필드블록의 수직성분 움직임 벡터 및 수평성분 움직임 벡터를 현재블록의 수직성분 움직임벡터 및 수평성분 움직임 벡터로 설정하고, 인접블록이 프레임 기반 움직임 벡터를 이용한 블록일 경우, 현재 top 필드블록 및 bottom 필드블록의 수직성분 움직임 벡터는 인접블록의 수직성분 움직임벡터를 반으로 나눈 값의 정수부분을 취한 값으로 설정하고, 현재 top 필드블록 및 bottom 필드블록의 수평성분 움직임벡터는 인접블록의 수평성분 움직임 벡터 값으로 설정함을 특징으로 한다.
상기 기술적 과제를 해결하기 위한 본 발명에 의한, 비월주사 방식의 형상/화상 정보 부호화기는, 상기 형상 및 화상정보를 프레임 단위로 부호화하는 방식을 프레임 기반 부호화, 필드단위로 부호화하는 방식을 필드 기반 부호화라 할 때, 입력된 현재 블럭과 이전 복원 영상간의 움직임을 추정하고, 추정된 움직임 벡터를 사용하여 이전 프레임으로부터 움직임 보상된 블록을 구하는 움직임추정부; 상기 움직임추정부에서 보상된 블록과 현재 블록을 비교하여 프레임블럭의 부호화모드를 결정하는 부호화모드 결정부; 상기 부호화모드 결정부에서 결정된 부호화모드 및 프레임 블록내의 형상특성에 따라 프레임기반 부호화여부를 판단하는 상기 프레임기반 부호화판단부; 상기 프레임기반 부호화판단부에서 필드기반 부호화로 판단되면 현재블록을 필드단위로 분할하여 상기 분할된 필드단위의 블록 각각에 대해 움직임 벡터를 추정하여 추정된 움직임 벡터를 사용하여 이전 프레임으로부터 움직임 보상된 필드 블록을 얻는 필드기반 움직임추정부; 상기 움직임 추정부에서 보상된 필드블록과 현재 필드블록을 비교하여 필드 블록에 대한 부호화모드를 결정하는 필드기반 부호화모드 결정부; 상기 필드기반 부호화모드결정부에서 결정된 부호화모드에 따라 필드기반 부호화여부를 판단하는 필드기반 부호화판단부; 상기 필드기반 부호화 판단결과, 상기 분할된 필드블록 중 적어도 어느 하나의 필드블록이 필드기반 부호화로 판단되면 필드기반 부호화를 수행하는 필드블록 부호화부; 및 상기 프레임기반 부호화판단부에서 프레임 기반 부호화로 판단되거나, 상기 필드기반 부호화판단부에서 두 개의 필드블록 모두 필드기반 부호화로 판단되지 않으면, 현재 블록에 대해 프레임 기반 부호화를 수행하는 프레임기반 블록부호화부를 포함함을 특징으로 한다.
상기 기술적 과제를 해결하기 위한 본 발명에 의한, 비월주사 방식의 형상/화상 정보 부호화 방법은, 비월주사 방식의 형상 및 화상 정보를 부호화하는 방법에 있어서, 상기 형상 및 화상정보를 프레임 단위로 부호화하는 방식을 프레임 기반 부호화, 필드단위로 부호화하는 방식을 필드 기반 부호화라 하고, 상기 프레임기반 부호화와 필드기반 부호화에 대해 각각 소정의 부호화 모드가 설정되어 있을 때, 입력된 현재 블록의 움직임벡터를 추정하는 단계; 상기 추정된 움직임벡터를 사용하여 이전 프레임으로부터 움직임 보상된 블록을 얻는 단계; 상기 움직임 보상된 블록과 현재 블록을 비교하여 그 차가 기설정된 블록허용오차보다 큰지 비교하는 단계; 상기 비교결과, 그 차가 블록허용오차보다 작으면 프레임 기반 부호화를 수행하는 제1부호화 단계; 상기 비교결과, 그 차가 블록허용오차보다 크면, 현재 블록을 필드 단위로 나누어 각 필드별로 움직임 벡터를 추정하는 단계; 상기 각 필드별로 추정된 움직임 벡터를 사용하여 복원된 이전 프레임의 해당 필드블록을 현재 필드블록과 비교하여 그 차를 구하는 단계; 적어도 하나의 필드블록에 대해서 상기 차가 기설정된 값보다 작으면 필드기반 부호화를 수행하고, 상기 두 개의 필드블록 모두에 대해 상기 차가 기설정된 값보다 크면 프레임기반 부호화를 수행하는 제2부호화 단계를 포함함을 특징으로 한다. 상기 제1부호화단계는 (a) 프레임기반 부호화인지 필드기반 부호화인지를 나타내는 표시자(shape_field prediction)를 프레임기반 부호화로 설정하는 단계; 및 (b) 상기 설정된 부호화모드 중 상응하는 부호화모드 정보를 부호화하는 단계로 이루어진다. 상기 제2부호화단계는 (c) 적어도 하나의 필드블록에 대해서 상기 차가 기설정된 값보다 작으면 상기 표시자를 필드기반 부호화로 설정한 후 필드기반 부호화를 수행하는 단계; 및 (d) 상기 두 개의 필드블록 모두에 대해 상기 차가 기설정된 값보다 크면 상기 표시자를 프레임기반 부호화로 설정한 후 프레임 기반 부호화를 수행하는 단계로 이루어진다.
상기 (b)단계의 부호화모드는 'MVDsF= 0 && NO_update ' 이고, 상기 (c)단계의 필드기반 부호화는 두개의 필드(top field, bottom field) 모두에 대해 상기 차가 기설정된 값(필드블록 허용오차)보다 작으면, 부호화 모드를 top 필드에 대해서는 'MVDsft= 0 && NO_update '로 설정하고, bottom 필드에 대해서는 'MVDsfb= 0 && NO_update'로 설정하고, 상기 부호화모드정보를 부호화하는 단계; 상기 top 필드에 대해서만 상기 차가 기설정된 값(필드블록 허용오차)보다 작으면, 부호화모드를 top 필드에 대해서는 'MVDsft= 0 && NO_update '로 설정하고, bottom 필드에 대해서는 'MVDsfb!= 0 && NO_update ', 'MVDsfb= 0 && inter_coded' 및 'MVDsfb!= 0 && inter_coded' 중 하나로 설정하고, 이에 상응하는 부호화를 수행하는 단계; 및 상기 bottom 필드에 대해서만 상기 차가 기설정된 값(필드블록 허용오차)보다 작으면, bottom 필드에 대해서는 부호화모드를 'MVDsfb= 0 && NO_update '로 설정하고, top 필드에 대해서는 'MVDsft!= 0 && NO_update ', 'MVDsft= 0 && inter_coded' 및 'MVDsft!= 0 && inter_coded' 중 하나로 설정하고, 이에 상응하는 부호화를 수행하는 단계로 이루어지고, 상기 (d)단계의 프레임기반 부호화는 부호화모드를 'MVDsF!= 0 && NO_update ', 'MVDsF= 0 && inter_coded' 및 'MVDsF!= 0 && inter_coded' 중 하나로 설정하고, 이에 상응하는 부호화를 수행함을 특징으로한다.
상기 (d)단계의 프레임기반 부호화는 부호화모드를 'MVDsF!= 0 && NO_update ', 'MVDsF= 0 && inter_coded' 및 'MVDsF!= 0 && inter_coded' 중 하나로 설정하는 단계; 상기 부호화모드가 'MVDsF!= 0 && NO_update ' 이면, 블록모드 부호화를 수행하고, 상기 부호화모드가 'MVDsF= 0 && inter_coded' 및 'MVDsF!= 0 && inter_coded' 중 하나이면, 프레임 기반 부호화 및 필드기반 부호화를 각각 수행하여 그 효율을 비교하는 단계; 및 상기 프레임기반 부호화효율이 크면, 프레임기반 블록 부호화를 수행하고, 필드기반 부호화효율이 크면, 필드기반 필드블록을 부호화하는 단계로 이루어짐을 특징으로 한다. 상기 (d)단계에서 필드기반부호화를 수행할 경우 형상정보 부호화효율을 높이기 위해 이전 프레임에서 움직임 보상된 블럭을 필드기반 움직임 벡터가 아닌 프레임기반 움직임 벡터에 의해 보상된 블럭을 사용하는 방법도 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 의한, 비월주사 방식의 형상/화상 정보 부호화 방법은, 상기 형상 및 화상정보를 프레임 단위로 부호화하는 방식을 프레임 기반 부호화, 필드단위로 부호화하는 방식을 필드 기반 부호화라 하고, 상기 프레임기반 부호화와 필드기반 부호화에 대해 각각 소정의 부호화 모드가 설정되어 있을 때, 입력된 현재블록의 인접블록들의 부호화모드 성향이 프레임기반 부호화모드인지 검사하는 모드성향검사단계; 상기 검사결과 프레임기반 부호화모드이면, 입력된 현재 블록의 움직임벡터를 추정하여, 상기 추정된 움직임벡터를 사용하여 이전 프레임으로부터 움직임 보상된 블록을 얻는 단계; 상기 움직임 보상된 블록과 현재 블록을 비교하여 그 차가 기설정된 블록허용오차보다 큰지 비교하여, 그 차가 블록허용오차보다 작으면 프레임 기반 부호화를 수행하는 단계; 상기 비교결과 그 차가 블록허용오차보다 크거나, 상기 모드성향검사단계에서 모드성향이 프레임기반 부호화모드가 아니면, 현재 블록을 필드 단위로 나누어 각 필드별로 움직임 벡터를 추정하여 상기 추정된 움직임 벡터를 사용하여 복원된 이전 프레임의 해당 필드블록을 현재 필드블록과 비교하여 그 차를 구하는 단계; 적어도 하나의 필드블록에 대해서 상기 차가 기설정된 값보다 작으면 필드기반 부호화를 수행하는 단계; 상기 두 개의 필드블록 모두에 대해 상기 차가 기설정된 값보다 크면 프레임기반 부호화를 수행하는 부호화단계를 포함함을 특징으로 한다. 상기 부호화단계의 부호화는 상기 인접블록 부호화모드성향이 프레임기반 부호화모드가 아니면 입력된 현재 블록의 움직임벡터를 추정하여 이전 프레임으로부터 움직임 보상된 블록과 현재 블록을 비교하여 차를 구하는 단계; 상기 차를 기설정된 블록허용오차와 비교하여 그 결과에 따라 상기 설정된 블록모드 중 하나를 선택하여 이에 상응하는 부호화를 수행하는 단계로 이루어진다.
상기 기술적 과제를 해결하기 위한 본 발명에 의한, 비월주사 방식의 형상/화상 정보 부호화 방법은, 형상 및 화상 정보에 대한 부호화모드를 (1)'MVDs = 0 && NO_UPDATE ', (2) 'one_field_NO_UPDATE', (3) 'all_0', (4) all_255', (5) 'intra_coded', (6)'MVDs = 0 && inter_coded', (7) 'MVDs != 0 && inter_coded' 의 일곱가지로 정의하고, 상기 형상 및 화상정보를 프레임 단위로 부호화하는 방식을 프레임기반 부호화, 필드단위로 부호화하는 방식을 필드기반 부호화라 할 때, 비월주사 방식의 형상/화상 정보를 부호화하는 방법에 있어서. 입력된 현재 블록에 대해 부호화모드(mb_type)를 구하는 제1단계; 상기 부호화모드(mb_type)가 'MVDs = 0 && NO_UPDATE ' , 'all_0 ', all_255' 중 어느 하나에 해당하는지 검사하여, 해당하면 상기 부호화모드(mb_type)를 부호화하는 제2단계; 상기 검사결과 상기 세가지 부호화모드 중 어느 하나에도 해당하지 않으면 적어도 하나의 필드블록에 대한 부호화모드(mb_type)가 'one_field_NO_UPDATE' 인지 검사하는 제3단계; 상기 부호화모드가 'one_field_NO_UPDATE' 이면, 필드기반 부호화를 수행하는 제4단계; 및 상기 부호화모드가 'one_field_NO_UPDATE' 가 아니면, 프레임기반 부호화 및 필드기반 부호화를 여부를 소정의 방법에 의하여 판단하여 프레임기반 부호화로 판단되면 프레임기반 부호화를 수행하고, 필드기반 부호화로 판단되면 필드기반 부호화를 수행하는 제5단계를 포함함을 특징으로 한다.
상기 제4단계는 상기 필드 부호화모드(one_field_NO_UPDATE)를 부호화하는 단계; 상기 필드 부호화모드 외의 나머지 필드에 대한 부호화모드('bab_type_field')가 'NO_UPDATE'인지 검사하는 단계; 상기 검사결과, 'NO_UPDATE'가 아니면, 'top_or_bottom' 정보를 부호화하고 top 필드블록 및 bottom 필드 블록에 대해 부호화를 수행하는 단계; 및 상기 검사결과, 'NO_UPDATE' 이면, top 필드블록 및 bottom 필드 블록에 대해 부호화를 수행하는 단계로 이루어짐을 특징으로 한다.
상기 제5단계는 상기 부호화모드가 'one_field_NO_UPDATE' 가 아니면, 프레임기반 부호화 및 필드기반 부호화 여부를 판단하기 위해 부호화모드(mb_type) 및 부호화타입정보(encoding _type)를 구하는 단계; 및 상기 부호화타입정보가 필드기반 부호화모드를 나타내면, 필드기반 부호화를 수행하고, 프레임기반 부호화를 나타내면 프레임기반 부호화를 수행하는 단계로 이루어진다.
상기 'bab_type_field'의 부호화는 필드에 대해 상기 일곱가지의 부호화모드를 가변장코드(VLC)를 사용하여 부호화함을 특징으로 한다.
이하에서 첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다. 먼저 본 발명의 상세한 설명에서 사용할 용어를 정의하면 다음과 같다.
* 블록 : 임의의 n×m 크기의 정보
* 필드블록(top 필드블록, bottom 필드블록) : 블록을 비월 주사 방식의 각각의 필드 단위로 분할한 (n/2)×m 크기의 서브블록(sub-block)
top 필드블록
bottom 필드블록
* MVPsF: 프레임기반 움직임 벡터 추정자
* MVPsft: top 필드 블록에 대한 필드기반 움직임 벡터 추정자
* MVPsfb: bottom 필드 블록에 대한 필드기반 움직임 벡터 추정자
* MVDsF: (선정된 프레임기반 움직임 벡터 - 프레임기반 움직임벡터 추정자)
* MVDsft: (선정된 top 필드블록에 대한 필드기반 움직임 벡터
- top 필드블록에 대한 필드기반 움직임 벡터 추정자)
* MVDsfb: (선정된 bottom 필드 블록에 대한 필드 기반 움직임 벡터
- bottom 필드 블록에 대한 필드 기반 움직임 벡터 추정자)
* (MC오차)F: 임의의 이전 프레임에서의 움직임 보상된 블록과 현재의 블록과의 오차
* (MC오차)ft: 임의의 이전 필드에서의 움직임 보상된 필드블록과 현재의 top 필드블록과의 오차
* (MC오차)fb: 임의의 이전 필드에서의 움직임 보상된 필드블록과 현재의 bottom 필드블록과의 오차
* MVCF : 프레임기반 움직임 벡터 추정자 결정을 위해 사용되는 현재 블록의 주변 블록의 움직임 벡터
* MVCft: top 필드블록을 위한 필드기반 움직임 벡터 추정자 결정을 위해 사용되는 현재 필드블록의 주변 필드블록의 움직임 벡터
* MVCfb: bottom 필드블록을 위한 필드기반 움직임 벡터 추정자 결정을 위해 사용되는 현재 필드블록의 주변 필드블록의 움직임 벡터
* shape_field_prediction(t) : 임의의 블록 t 에서의 해당 블록 혹은 필드블록에 대한 블록 추정 방법 표시자
* BITSFab: 임의의 이전 프레임에서 움직임 보상된 블록의 모드가 (a)이고 현재 블록의 모드가 (b)일 경우의 엔트로피 부호화 정보(bitstream)
* BITSftab: 임의의 이전 필드에서 움직임 보상된 필드블록의 모드가 (a)이고 현재 필드블록(top 필드블록)의 모드가 (b)일 경우의 엔트로피 부호화 정보(bitstream)
* BITSfbab: 임의의 이전 필드에서 움직임 보상된 필드블록의 모드가 (a)이고 현재 필드블록(bottom 필드블록)의 모드가 (b)일 경우의 엔트로피 부호화 정보(bitstream)
* No_update : 움직임 추정 및 보상 결과 보상된 정보와 현재 정보와의 오차가 허용오차 범위 내에 있을 경우 보상된 정보를 현재 정보로 간주하고 형상화소 각각에 대한 부호화를 시행하지 않는 부호화모드
도 1은 본 발명에 의한 비월 주사방식의 이진 형상 부호화기의 전체 구성에 대한 블록도를 도시한 것으로서, 프레임기반 부호화부(15)와 필드기반 부호화부(55)로 이루어진다. 상기 프레임기반 부호화부(15)는 움직임추정부(10), 프레임부호화모드결정부(20), 프레임기반 부호화 판단부(30) 및 프레임기반 블록부호화부(30)로 이루어진다. 상기 필드기반 부호화부(55)는 필드기반 움직임추정부(50), 필드기반 부호화모드결정부(60), 필드기반 부호화판단부(70) 및 필드블록부호화부(80)로 이루어진다.
상기 움직임추정부(10)는 입력된 현재 블럭과 이전 복원 영상간의 움직임을 추정하고, 추정된 움직임 벡터를 사용하여 이전 프레임으로부터 움직임 보상된 블록을 구한다.
상기 부호화모드 결정부(20)는 상기 움직임추정부(10)에서 보상된 블록과 현재 블록을 비교하여 프레임블럭의 부호화모드를 기존의 MPEG4 방식대로 결정한다.
상기 프레임기반 부호화판단부(30)는 프레임기반 부호화여부를 판단한다. 구체적으로는, 부호화 모드나 프레임 블럭내의 형상특성 등에 따라 현재 블럭을 프레임기반 블럭 부호화부(40)에서 부호화를 수행할 것인지를 판단한다.
상기 프레임기반 블록부호화부(40)는 상기 프레임기반 부호화판단부(30)에서 프레임 기반 부호화가 효율적인 것으로 판단되거나, 상기 필드기반 부호화판단부(60)에서 두 개의 필드블록 모두 필드기반 부호화로 판단되지 않으면, 현재 블록에 대해 프레임 기반 부호화를 수행한다.
상기 필드기반 움직임추정부(50)는 상기 프레임기반 부호화판단부(30)에서 필드기반 부호화로 판단되면 현재 블록을 필드단위로 분할하고 상기 분할된 필드단위의 브록 각각에 대해 움직임 벡터를 추정한다. 그리고 나서 상기 필드기반 움직임추정부(50)에서 추정된 움직임 벡터를 사용하여 이전 프레임으로부터 움직임 보상된 필드 블록을 얻는다.
상기 필드기반 부호화모드 결정부(60)는 움직임 보상된 필드블럭과 현재 필드블럭을 이용해 필드기반의 필드블록 부호화 모드를 결정한다.
상기 필드기반 부호화판단부(70)는 상기 결정된 필드블록 부호화 모드에 따라 필드기반 부호화여부를 판단한다.
상기 필드블록 부호화부(80)는 상기 필드기반 부호화 판단결과, 상기 분할된 필드블록 중 적어도 어느 하나의 필드블록이 필드기반 부호화로 판단되면 필드기반 부호화를 수행한다.
여기서, 상기 프레임기반 부호화모드 결정부(20) 및 필드기반 부호화모드 결정부(60)에서 사용되는 부호화모드는 표 1과 같다.
부호화 추정방식모드 인덱스 프레임기반 부호화모드 필드기반 부호화모드(TOP 필드) 필드기반 부호화모드(Bottom 필드)
(1) MVDsF= 0 && No_update MVDsft= 0 && No_update MVDsfb= 0 && No_update
(2) MVDsF!= 0 && No_update MVDsft!= 0 && No_update MVDsfb!= 0 && No_update
(3) all_0 all_0 all_0
(4) all_255 all_255 all_255
(5) intra_coded intra_coded intra_coded
(6) MVDsF= 0 && inter_coded MVDsff= 0 && inter_coded MVDsfb= 0 && inter_coded
(7) MVDsF!= 0 && inter_coded MVDsft!= 0 && inter_coded MVDsfb!= 0 && inter_coded
아울러, 상기 프레임기반 부호화 판단부(30) 및 필드기반 부호화 판단부(70)는 프레임기반인지 필드기반인지를 식별할 수 있는 정보, TOP 필드인지 BOTTOM 필드인지를 식별할 수 있는 정보 등과 같은 부호화에 필요한 정보들을 지정할 필요가 있을 경우에는 적절한 해당 표시자를 정하여 사용한다. 상기와 같은 표시자를 사용할 경우, 프레임기반 블럭 부호화부(40) 및 필드기반 블록 부호화부(80)는 이를 고려하여 비월 주사방식의 형상 부호화 정보를 구성하여야 한다. 특히 상기 필드기반 부호화 판단부(70)는 부호화 판단기준으로 TOP과 BOTTOM 필드블럭 중 적어도 한 개가 'No_update' 인 경우 필드기반 부호화를 수행하는 것을 하나의 방안으로 채택할 수 있다.
그리고 상기 프레임기반 블록부호화부(40)는 부호화모드 정보를 부호화할 때 상기 부호화모드에 대한 부호화 비트를 도 2a에 도시된 바와 같은 방법으로 발생시킨다. 여기서, BITSFab는 임의의 이전 프레임에서 움직임 보상된 블록의 모드가 (a) 이고 현재 블록의 모드가 (b) 일 경우의 엔트로피 부호화 정보(bitstream)를 나타낸다. 즉 BITSF56는 이전 프레임에서 움직임보상된 블록의 부호화 모드가 (5)이고 현재블록의 부호화모드가 (6)일 경우의 엔트로피 부호화 정보이다. 그리고 부호화모드 (1) 내지 (7)은 표 1에 도시된 (1) 내지 (7)을 한 예로 사용할 수 있다.
필드기반 블록부호화부(80)는 필드 부호화 모드에 대한 부호화 비트를 도 2f에 도시된 바와 같이 실험을 통한 통계법이나 그외 임의의 타당한 추정법등을 이용해 발생되는 필드블럭의 부호화 모드 수를 고려한 VLC 코드를 구성하고 이를 이용해 발생한다.
한편, 필드기반 부호화모드 결정부(60)는 TOP과 BOTTOM 필드의 부호화 모드 특성에 따라 필드기반 부호화 모드를 결정하는 방법을 사용한다. 도 3a는 TOP과 BOTTOM 필드의 부호화 모드에 따른 특성만을 고려해 필드기반 부호화 모드를 결정하는 방법을 도시한 것이다. 도 3b는 TOP과 BOTTOM 필드의 부호화 모드에 따른 특성과 실제 부호화 효율을 고려해 필드기반 부호화 모드를 결정하는 방법을 도시한 것이다. 도 3a에서는 TOP과 BOTTOM 필드 중 임의의 한 필드만이‘No_update' 부호화 모드일 경우만 다른 나머지 필드의 부호화 모드가 최종 필드 부호화 모드로 지정된다. 도 3b에서는 도 3a와 동일한 방법으로 최종 필드 부호화모드를 결정하나, 단지 부호화 효율을 고려해 부호화모드를‘1’은‘2’로,‘3’과‘4’는‘5’로 부호화 모드를 통합한 형태로 지정한다. 이는 실제 필드기반 블럭 부호화부(80)에서 필드 부호화모드의 부호화 비트를 발생할 때 도 3a에 비해 보다 나은 부호화 효율을 제공할 수 있다는 장점을 갖고 있다.
한편, 상기의 방법으로 부호화된 비월 주사방식의 이진형상 정보는 도 4c 내지 도 4g에 도시된 바와 같은 부호화된 형상정보 형태(Bitstream)로 정의한다. 도 4a 및 도 4b는 기존의 MPEG4에서 프레임기반의 부호화된 형상정보 형태를 도시한 것이고, 필드기반의 부호화된 형상정보 형태는 도 4c 내지 도 4g와 같이 정의한다. 단, 도 4a 내지 도 4g에서 'CR'은 기존의 MPEG4 부호화방법에서 사용하는 것과 동일한 용도로 사용되며, TOP과 BOTTOM 필드블럭을 합친 현재 입력된 블럭을 처리 단위로 해서 고해상도에서 저해상도로 해상도를 가변시킬때 가변시킨 정도에 대한 정보를 나타낸다. 'ST(STsF, STsft, STsfb)' 역시 기존의 MPEG4 부호화방법에서 사용하는 것과 동일한 용도로 사용되어 형상을 부호화를 할때 부호화된 방향(수직, 수평)을 표시하는 정보를 제공한다. 그리고 'SFP'는 ‘shape_field_prediction' 표시자를 나타내며, 1비트가 할당된다. 상기 할당된 비트가 '0'을 나타내면 프레임 기반 움직임 벡터를 이용한 블록 추정(predictied using frame motion vectors)을 의미하고, '1'을 나타내면 필드기반 움직임벡터를 이용한 필드블록 추정(predicted using field motion vectors)을 의미한다.
먼저, 인트라 필드형상 부호화 정보(Intra Shape Coding Bitstream)는 도 4c에 도시된 바와 같이, TOP과 BOTTOM 필드블럭 모두 움직임추정법에서 허용오차를 만족치 않을 경우나 I-VOP 프레임을 부호화할때 발생한다. 그리고 그 부호화 모드는 표 1에 정의된 모드값으로 지정하고, 각 필드 블럭별로 부호화시킨 형상정보만으로 구성한다. 그리고 'ST'는 각 필드마다 지정되며, 'CR'은 먼저 나타나는 필드정보에만 한정시켜 지정한다.
다음으로, 인터 필드형상 부호화 정보는 도 4d 내지 도 4g에 도시된 바와 같이, 크게 4가지 형태로 구분하여 구성한다. 도 4d는 도 5의 112단계/114단계에서 TOP과 BOTTOM 필드 모두 'No_Update'로 부호화 모드가 지정되는 경우에 발생한다. 그 부호화 모드는 표 1에 정의된 모드 중 (2)번 모드로, 필드부호화 모드는 도 3a 또는 도 3b에 도시된 방법에 따라 지정하고, Top_or_Bottom 표시자 정보를 줄이기 위해 필드 움직임 벡터가 없을 경우에도 (0,0)의 필드 움직임 벡터(MVsft, MVsfb)를 지정한 형상정보를 구성한다. 여기서 상기 Top_or_Bottom 표시자는 1 비트가 할당되며, 상기 비트가 '0'이면 Top 필드블록이 'inter_coded' 부호화 모드블록임을 표시하고, 이 때의 Bottom 필드블록은 'MVDsfb= 0 && No_update' 부호화모드를 갖는다. 그리고 상기 비트가 '1'이면, Bottom 필드블록이 'inter_coded' 부호화 모드 블록임을 표시하고, 이 때의 Top 필드블록은 'MVDsfb= 0 && No_update' 부호화모드를 갖는다.
도 4e는 도 5의 118단계/120단계, 124단계/126단계에서 TOP 또는 BOTTOM 필드블럭 중 하나만이‘No_update' 부호화 모드로 지정되는 경우에 발생하며, 부호화 모드는 표 1에 정의된 모드중 (2)번 모드로, 필드부호화 모드는 도 4d와 마찬가지로 도 3a 또는 도 3b에 도시된 방법에 따라 지정하고, 'Top_or_Bottom' 표시자는‘No_update'가 아닌 필드블럭을 표시하기 위해 1 비트정보로 지정한다, 그리고 'No_update' 부호화 모드의 필드블럭의 움직임 벡터는 도 4d와 같이 움직임 벡터가 없어도 (0,0)의 필드기반 움직임벡터를 지정하고,‘No_update'부호화 모드가 아닌 필드 블록에서 표 1의 (7)번 모드를 가질 경우에만 필드 움직임벡터를 지정한다. 또한, 'ST'는 부호화 모드가 'No_update' 모드로 지정된 필드블럭에 대해서만 지정하고, 부호화된 필드형상 역시 TOP이나 BOTTOM 필드블럭 중 'No_update' 부호화 모드가 아닌 블럭에 대해서만 구성한다.
도 4f는 도 8의 860단계에서 TOP과 BOTTOM 필드 블럭 모두가 표 1에 도시된 (3)번 모드에서 (7)번 모드, 즉 TOP과 BOTTOM 필드블럭들 모두‘No_update' 필드 부호화모드가 아닐 경우에 발생한다. 그 부호화 모드는 표 1에 정의된 모드 중 (5)번 내지 (7)번 모드를 지정하고, 필드기반 움직임 벡터는 필드 부호화 모드 (7)번 모드로 지정된 필드블럭에 대해서만 지정한다. 'CR'과 'ST'는 도 4c에서 지정하는 방법과 동일하게 지정하고, 이에 따른 부호화된 필드형상은 각 필드블럭마다 구성한다. 도 4g는 도 4f의 인터필드 형상부호화 정보에서 정보효율을 높이기 위해 필드기반 움직임 벡터 대신 프레임 기반 움직임 벡터로 (7)번 모드로 지정된 필드 블럭에 대해서만 지정하는 차이를 갖는 인터필드 형상부호화 정보이다.
이와 같이 구성된 비월 주사방식의 부호화된 이진 형상정보형태에서 SFP 표시자는 표 1에서 정의된 부호화 모드 앞에 지정될 수도 있다.
한편, 도 5는 비월주사 방식의 형상정보 부호화방법에 대한 일실시예를 흐름도로 도시한 것으로서, 형상 부호화기에서의 프레임간 연관성을 이용한 인터 프레임 부호화(inter frame coding)에서 형상 부호화 방식을 결정하는 순서도이다. 먼저 현재 입력 프레임블럭내의 화소 값들이 모두 ‘0’ 또는 ‘255’로만 구성되어 있을 경우는 필드기반 부호화나 움직임추정법이 비효율적이기 때문에 ‘shape_field_prediction' 표시자를 OFF 한 후, 기존의 MPEG4 형상부호화기에서 처리하는 방법과 동일한 방법으로 프레임 기반 형상부호화를 수행한다.
다음으로 기존의 MPEG4 형상 부호화기에서와 같이 입력된 현재 블록에서의 움직임 벡터 추정자(MVPsF)를 프레임 기반 추정법으로 결정한다(101단계). 이렇게 결정된 MVPsF를 사용하여 움직임이 보상된 블록을 이전 프레임으로부터 얻을 수 있고, 이에 대한 현재 블록과의 오차를 구한다(102단계). 상기 102단계에서 구한 오차(MC오차)F가 미리 정해진 허용오차값보다 같거나 작으면 shape_field_prediction 표시자를 OFF로 지정한 후(103단계), 형상 부호화 모드를 'MVDsF = 0 && No_update'로 지정한 후 부호화한다.(104단계)
그러나 상기 102단계에서 오차가 블록허용오차보다 크면, 필드 기반 부호화로 추정한다. 먼저, 현재 블록을 Top 필드와 Bottom 필드로 나누고, Top 필드에 대하여 현재 블록의 Top 필드블록에서의 움직임 벡터 추정자(MVPsft)를 필드기반 추정법으로 결정한다(105단계). 그리고 나서 상기 결정된 MVPsft를 이용하여 움직임 보상된 필드블록을 이전 프레임의 Top 필드(혹은 Bottom 필드)에서 얻어 현재 Top 필드블록과의 오차((MC오차)ft)를 구하고, 그 값이 필드블록 허용오차보다 같거나 작은지를 판단한다.(106단계) 이와 같은 방법을 현재 블록의 bottom 필드에도 동일하게 적용하여 현재 블록의 bottom 필드블록에서의 움직임 벡터 추정자(MVPsfb)를 필드 기반 추정법으로 결정한다.(107단계) 이를 이용해 움직임 보상된 필드블록을 이전 프레임의 bottom 필드에서 얻어 현재 필드블록(bottom)과의 오차를 구하고, 그 값이 필드블록 허용오차보다 같거나 작은지를 판단한다.(108단계)
이렇게 판단된 106단계와 108단계의 결과는 109에서와 같은 4가지 경우로 분류하여 그 때마다의 최적의 형상 부호화 모드를 지정한다. 즉, TOP과 BOTTOM 필드블럭 중 적어도 하나가 'No_update'일 경우 필드기반 부호화를 수행하며, 두 필드 모두 'No_Update' 모드가 아닐 경우에만 프레임기반 부호화를 수행한다.
상기 106단계 및 108단계의 오차가 모두 필드블록 허용오차 이하일 경우, 먼저 'shape_field_prediction'표시자를 ON으로 지정한다.(110단계) 그리고 나서 Top 필드블록에 대해서는 부호화모드를 'MVDsft= 0 && No_update'로 설정하고 부호화를 수행하며(112단계), Bottom 필드블록에 대해서는 부호화모드를 'MVDsft= 0 && No_update'로 설정하고 부호화를 수행한다.(114단계)
그리고 상기 106단계에서 top 필드블록의 오차가 필드블록허용오차 이하이고 상기 108단계에서 bottom 필드블록의 오차가 필드블록허용오차보다 클 경우, 'shape_field_prediction'표시자를 ON으로 지정한다.(116단계) 그리고 나서 Top 필드블록에 대해서는 부호화모드를 'MVDsft= 0 && No_update'로 설정하고 부호화를 수행하고(118단계), Bottom 필드블록에 대해서는 부호화모드를 다음의 세 가지 모드 즉 'MVDsfb!= 0 && NO_update ', 'MVDsfb= 0 && inter_coded' 및 'MVDsfb!= 0 && inter_coded' 중 하나로 설정하고, 이에 상응하는 부호화를 수행한다.(120단계)
또한 상기 106단계에서 top 필드블록의 오차가 필드블록허용오차 보다 크고 상기 108단계에서 bottom 필드블록의 오차가 필드블록허용오차 이하일 경우, 'shape_field_prediction'표시자를 ON으로 지정한다.(122단계) 그리고 나서 Bottom 필드블록에 대해서는 부호화모드를 다음의 세 가지 모드 즉 'MVDsfb!= 0 && NO_update ', 'MVDsfb= 0 && inter_coded' 및 'MVDsfb!= 0 && inter_coded' 중 하나로 설정하고 이에 상응하는 부호화를 수행한다.(124단계) Top 필드블록에 대해서는 부호화모드를 'MVDsft= 0 && No_update'로 설정하고 부호화를 수행한다.(126단계)
한편, 상기 106단계 및 108단계에서 top 필드블록 및 Bottom 필드블록의 오차가 필드블록허용오차 보다 크면, 'shape_field_prediction'표시자를 OFF로 지정한다.(122단계) 그리고 나서 부호화모드를 'MVDsF!= 0 && NO_update ', 'MVDsF= 0 && inter_coded' 및 'MVDsF!= 0 && inter_coded' 중 하나로 설정하고, 이에 상응하는 부호화를 수행한다.(130단계)
상기 101단계에서의 움직임 벡터 결정은 기존의 MPEG4 형상부호화기에서의 움직임 벡터 추정자(MVPs) 결정법을 따른다. 그러나 도 6a에 도시된 바와 같이 움직임 벡터 후보자가 필드기반일 경우에는 프레임 기반의 움직임 벡터로 전환한다. 이를 좀더 자세하게 설명하기로 한다. 현재 블록 부호화모드가 프레임 예측모드(frame prediction mode)이고, 이웃 후보자 블록 부호화모드도 프레임 예측 모드(frame prediction mode)인 경우, 이웃블록의 움직임 벡터를 현재 블록 움직임 벡터 추정자로 사용한다.
만일 현재 블록 부호화 모드가 프레임 예측 모드(frame prediction mode)이고, 이웃 후보자 블록 부호화 모드가 필드 예측 모드(field prediction mode)이면, 이웃 top 필드블록과 bottom 필드블록의 두 개의 움직임벡터를 평균하여 버림을 사용한 라운딩(rounding) 연산을 수행하여 현재 블록의 움직임 벡터 추정자로 사용한다. 이를 알고리즘으로 표현하면 다음과 같다.
if (현재블록부호화모드 == 프레임 예측 모드) {
if (이웃 후보자 블록 부호화모드 == 프레임 예측모드) {
이웃 블록의 움직임 벡터를 현재 블록의 움직임 벡터
추정자로 사용 }
else if (이웃 후보자 블록 부호화모드 == 필드 예측 모드) {
이웃 top과 bottom 필드 블록의 두 개의 움직임 벡터를
평균하여 버림을 사용한 라운딩(rounding)연산을 수행하여
현재 블록의 움직임 벡터 추정자로 사용 }
}
한편, 상기 105단계와 107단계에서의 움직임벡터 추정방법은 상기 101단계에서의 움직임벡터 추정방법과 원리는 유사하나 처리단위가 필드블록이다. 도 6b에 도시된 바와 같이 현재 블록이 필드 블록이고 움직임 벡터 후보자가 프레임 기반 움직임 벡터인 경우, 필드기반 움직임 벡터로 전환한다. 이를 좀더 상세히 설명하기로 한다. 현재 블록 부호화 모드가 필드 예측 모드(field prediciton mode)이고, 이웃 후보자 블록 부호화 모드가 프레임 예측 모드(frame prediciton mode)이면, 이웃 블록의 프레임 기반 움직임 벡터를 현재 블록의 top 필드블록 및 bottom 필드블록 각각의 움직임 벡터 추정자로 동일하게 사용한다.
만일 현재 블록 부호화모드가 필드 예측 모드(field prediciton mode)이고, 이웃 후보자 블록 부호화 모드도 필드 예측 모드(field prediciton mode)이면, 이웃 top 필드 블록의 움직임 벡터를 현재 top 필드 블록의 움직임 벡터 추정자로 사용하고, 동시에 이웃 bottom 필드 블록의 움직임 벡터를 현재 bottom 필드 블록의 움직임 벡터 추정자로 사용한다. 이를 알고리즘으로 표현하면 다음과 같다.
if (현재 블록 부호화 모드 == 필드예측모드) {
if (이웃 후보자 블록 부호화 모드 == 프레임 예측모드) {
이웃 블록의 프레임 기반 움직인 벡터를 현재 블록의
top 및 bottom 필드 블록 각각의 움직임 벡터 추정자로
동일하게 사용 }
else if (이웃 후보자 블록 부호화 모드 == 필드 예측 모드) {
이웃 top 필드블록의 움직임 벡터를 현재 top 필드
블록의 움직임 벡터 추정자로 사용하고,
동시에 이웃 bottom 필드 블록의 움직임 벡터를 현재
bottom 필드 블록의 움직임 벡터 추정자로 사용 }
}
그리고 도 5에 도시된 움직임벡터 결정(101단계, 105단계 및 107단계)을 보다 상세히 설명하기로 한다. 먼저 프레임기반 움직임벡터 추정자(MVPsF)를 결정할 때(101단계), 기존의 방법과 같이 현재 블록의 주변 3개 블록의 형상정보 움직임 벡터 및 화상정보 움직임 벡터를 현재의 블록의 움직임 벡터 추정자의 후보자로 사용한다. 이 때 후보자가 속한 블록이 프레임 기반이 아닐 경우, 먼저 후보자가 속한 나머지 2개의 블록들 중 프레임 기반의 유효한 움직임 벡터가 있는지를 조사한다. 그리고나서 이를 만족하는 프레임 기반 블럭이 있을 경우엔 가장 먼저 나타난 프레임 기반 블럭의 움직임 벡터를 현재 블럭의 움직임 벡터 추정자로 정의한다. 한편 이를 만족하는 블럭이 없을 경우엔 도 6a에서와 같이, 해당 top 필드 기반 움직임 벡터와 bottom 필드 움직임 벡터의 평균을 구하고 이를 정수화(rounding)하여 후보자로 사용한다. 이 때 수직 방향의 벡터 성분은 2배로 하여 사용한다. 이러한 후보자 벡터의 변환을 시행한 후, 움직임 벡터 후보자를 일정한 우선 순위로 조사하고 이 때 가장 먼저 나타나는 유효한 움직임 벡터 후보자를 현재 블록의 움직임 벡터 추정자(MVPsF)로 사용한다.
이 때의 조사 우선순위는 상기 도 6a 및 도 6b에 도시된 바와 같은 인접블록들 중에서 움직임 벡터 추정자(MVPsft,MVPsfb)를 선택할 때 변경될 수 있다. 먼저 프레기반 움직임 추정모드에 대해 설명하면 다음과 같다. 도 7a에 도시된 바와 같이 현재블록(70)의 좌측(71), 상측(72), 상기 상측의 우측(73)에 위치한 세 개의 인접블록 각각에 대해, 형상정보부호화를 위한 움직임벡터를 MVs1, MVs2, MVs3라 하고, 텍스쳐정보 부호화를 위한 움직임벡터를 MV1, MV2, MV3라 하기로 한다. 이 때 프레임 단위의 현재블록의 움직임 벡터 추정자를 선정할 때 후보자 우선순위는 다음과 같은 세가지 방법 중 하나를 사용할 수 있다. 즉 우선순위를 MVs1, MVs2, MVs3,MV1, MV2, MV3 순서로 하는 방법, MVs1, MV1, MVs2, MV2, MVs3 ,MV3 순서로 하는 방법 및 MVs1, MVs2, MV1, MV2, MVs3,MV3 순서로 하는 방법이 가능하다. 그러나 상기 세가지 방법에 의해 본 발명이 한정되지는 않으며, 임의의 타당한 방법을 사용할 수 있다.
다음으로 105단계 및 107단계의 경우, 즉 필드기반 움직임 벡터 추정자(MVPsft,MVPsfb) 결정시, 기존의 방법과 유사하나, 처리 단위를 필드 블록으로 사용하며 현재 필드 블록이 top 이면 주변 블록에서도 top 필드 블록만을, bottom 이면 주변 블록에서도 bottom 필드 블록만을 사용하거나, 항상 주변 블록의 모든 필드 블록을 사용할 수도 있다. 이 경우 현재 필드 블록의 주변 3개 동일 필드 블록의 움직임 벡터를 현재의 필드블록의 움직임 벡터 추정자의 후보자로 사용하거나, 주변 블록의 모든 필드블록 움직임 벡터를 사용한다. 필드 기반의 유효한 움직임 벡터를 선정할때는 프레임기반 움직임 벡터 선정방법과 유사한 방법을 사용한다. 먼저 3개의 후보 필드블럭들 중 유효한 필드기반 움직임 벡터를 갖고 있는 필드블럭이 있는지를 조사한다. 그리고나서 만족되는 필드기반 움직임 벡터가 존재할 경우엔 가장 먼저 나타난 움직임 벡터 후보자를 현재블럭의 움직임 벡터 추정자로 결정하고, 만족하는 것이 없을 경우엔 도 6b에서와 같이, 해당 프레임기반 움직임 벡터의 수직성분을 2로 나누고, 이를 정수화(rounding)하여 후보자로 사용한다. 이러한 후보자 벡터의 변환을 시행한 후 주변 움직임 벡터 후보자를 일정한 우선 순위로 조사하고 이 때 가장 먼저 나타나는 유효한 움직임 벡터 후보자를 현재 블록의 움직임 벡터 추정자(MVPsft,MVPsfb)로 사용한다.
이 때의 조사 우선 순위는 top 필드 블록과 bottom 필드 블록 각각에 대하여 다음과 같이 행하여진다. 도 7b에 도시된 바와 같이 현재블록(75)의 좌측(76), 상측(77), 상기 상측의 우측(78)에 위치한 세 개의 인접블록 각각에 대해, 형상정보부호화를 위한 움직임벡터를 MVsft1, MVsft2, MVsft3 ,텍스쳐정보 부호화를 위한 움직임벡터를 MVft1, MVft2, MVft3라 하고, bottom 필드블록에 대해서는 형상정보부호화를 위한 움직임벡터를 MVsfb1, MVsfb2, MVsfb3, 텍스쳐정보 부호화를 위한 움직임벡터를 MVfb1, MVfb2, MVfb3라 하기로 한다. 이 때 필드 단위의 현재 top 필드블록의 움직임 벡터 추정자를 선정할 때 후보자 우선순위는 다음과 같은 네가지 방법 중 하나를 사용할 수 있다. 즉 우선순위를 MVsft1, MVsft2, MVsft3 ,MVft1, MVft2, MVft3순서로 하는 방법, MVsft1, MVft1, MVsft2, MVft2, MVsft3 ,MVft3순서로 하는 방법, MVsft1, MVsft2, MVft1, MVft2, MVsft3 ,MVft3순서로 하는 방법 및 MVsft1, MVsfb1, MVsft2,MVsfb2, MVft3, MVsfb3 ,MVft1, MVfb2, MVft2 ,MVfb2, MVft3, MVfb3순서로 하는 방법이 있다.
그리고 현재 bottom 필드블록의 움직임 벡터 추정자를 선정할 때의 후보자 우선순위는 다음과 같은 네가지 방법 중 하나를 사용할 수 있다. 즉, 우선순위를 MVsfb1, MVsfb2, MVsfb3 ,MVfb1, MVfb2, MVfb3순서로 하는 방법, MVsfb1, MVfb1, MVsfb2, MVfb2, MVsfb3 ,MVfb3순서로 하는 방법, MVsfb1, MVsfb2, MVfb1, MVfb2, MVsfb3 ,MVfb3순서로 하는 방법 및 MVsfb1, MVsft1, MVsfb2,MVsft2, MVfb3, MVsft3 ,MVfb1, MVft2, MVfb2 ,MVft2, MVfb3, MVft3순서로 하는 방법이 있다. 그러나 상기 필드별 네가지 방법에 의해 본 발명이 한정되지는 않으며, 임의의 타당한 방법을 사용할 수 있다.
한편, 도 5에서 필드블록 단위의 처리를 나타내는 112단계, 114단계와 118단계, 120단계와 124단계, 126단계는 기존의 MPEG4 형상부호화기에서의 블록 단위의 처리가 필드블록 단위의 필드블록 모드 및 형상정보 부호화로 진행된다. 상기 각각의 필드블록 모드는 표 1에 도시되어 있으며, 부호화방법은 도 2a 내지 도 2f에 도시되어 있다.
표 1에 도시된 프레임 기반 부호화모드에서 볼 수 있듯이, 프레임 기반 움직임벡터 추정모드(104단계, 119단계)에서는 기존의 MPEG4 형상부호화기에서와 동일한 부호화 모드를 갖는다. 그리고 필드 기반 움직임 벡터 추정 모드에서는 프레임기반 움직임 추정모드와 동일한 의미의 모드를 가지나, 다만 그 처리 단위가 블럭이 아니라 필드블록이 된다.
그리고 기존의 MPEG4 비주얼(visual) 부호화에 존재하는 부호화 정보 즉 'interlaced '는 1 비트 할당되어 있으며, 상기 비트가 '0'을 나타내면 순차주사 방식의 동영상 부호화를 의미하고, '1'을 나타내면 비월주사방식의 동영상 부호화를 의미한다. 즉 상기 'interlaced'는 현재의 비주얼 정보가 비월 주사인지 여부를 나타내며 프레임단위(MPEG4에서는 VOP)로 주어진다.
그리고 'shape_field_prediction'은 새로이 추가된 부호화 정보로 블록 단위로 주어지며 현재의 블록이 프레임 기반의 움직임 벡터를 이용한 블록 추정 모드인지, 필드 기반의 움직임 벡터를 이용한 블록 추정 모드인지를 나타내는 1 비트 정보이다. 또한 'Top_or_Bottom'은 비월주사 부호화방식에서 새로이 추가된 정보로 상기 "shape_field_prediction' 표시자가 1로 정의되고, 상기 118단계 및 120단계, 124단계 및 126단계에서 TOP이나 BOTTOM 필드블럭 중 임의의 한 필드블럭의 부호화 모드가 'No_update'로 지정될 경우 'inter_coded'로 지정된 필드블럭을 표시하는 1 비트정보이다.
한편, 도 2a 내지 도 2f는 표 1에 도시된 프레임 기반 부호화모드, Top 필드 부호화모드, Bottom 필드 부호화모드를 부호화하는 방법을 나타낸다.
표 1에서 부호화모드 인덱스로 표기된 각각의 모드((1)-(7))는 도 2a, 2b, 2c에 도시된 방식으로 부호화된다. 즉 프레임 기반 부호화 모드는 도 2a와 같이 이전 프레임의 움직임 보상된 블록 모드에 따른 현재 블록의 모드의 상관관계를 이용하여 최적의 부호화 비트(BITSF11∼BITSF77)로 부호화된다. 이 방법은 기존의 MPEG4 형상 부호화와 동일한 방법이다. 그러나 새로이 추가된 필드기반 부호화 모드의 부호화는 도 2b 및 도 2c에 도시된 방식을 따른다. 도 2a 및 도 2b는 이전 필드블록 모드 정보로 이전 프레임에서의 각각의 필드에 대한 필드기반 움직임 벡터에 의해 보상된 필드블록의 모드를 사용하거나, 이전 필드 정보로 현재 필드블록과 상관이 높은 임의의 필드정보를 사용할 수 있다. 도 2b 및 도 2c에 도시된 각각의 부호화 비트(BITSft11∼ BITSft77, BITSfb11∼ BITSfb77)는 적당한 엔트로피 부호화 기법을 사용하여 발생시킨다. 한편, 표 1에 도시된 필드기반 부호화모드를 2, 5, 6, 7 총 4 가지 모드로만 사용할 경우에는 도 2d 및 도 2e의 방식을 이용해 최적의 부호화 비트(BITSft22~ BITSft77, BITSfb22~ BITSfb77)로 부호화할 수 있다.
그런데 이러한 도 2a 내지 도 2f와 같은 방법은 임의의 이전 블록 혹은 필드블록의 부호화 모드가 표 1에 도시된 부호화모드 인덱스로 표시된 7개 중 어느 것인지를 알아야 한다. 이 때 도 14에 도시된 바와 같이 참조번호 801,802,803,804의 4가지의 경우가 발생할 수 있다. 상기 도 14에서 (p),(q),(r),(s),(MODEpq)는 표 1의 부호화모드 인덱스 중 임의의 하나를 표시한다. 801, 803의 경우는 이전 블록 모드 정보를 그대로 사용할수 있으나, 802의 경우 도 15a 내지 도 15e에서와 같은 방법으로 Top 필드블록, Bottom 필드블록 각각의 모드를 사용하여 하나의 프레임 기반 블록 모드로 변환하여 사용할 수 있다. 이 때의 도 15a 내지 도 15e의 변환법으로는 도 15a 및 도 15b에서와 같이 TOP 필드블록의 부호화모드와 BOTTOM 필드블록의 부호화모드의 각각의 조합에 따른 프레임기반 블록 부호화 모드를 미리 지정하여 사용할 수 있다. 이 때 각 경우의 변환은 임의의 효과적인 방법을 사용할 수 있으며 그 한가지 방법을 도 15c에 나타내었다. 이러한 방법 외에 도 15d 및 도 15e에 도시한 방법을 사용할 수 있다. 특히 각각의 필드블록 부호화 모드 중 TOP 필드블록의 부호화 모드를 변환된 프레임 기반 블록 부호화 모드로 사용할 경우를 도 15d에, BOTTOM 필드블록의 부호화 모드를 변환된 프레임 기반 블록 부호화 모드로 사용할 경우를 도 15e에 나타내었다. 도 14의 마지막 경우인 804는 805의 변환 방법을 통해 하나의 프레임 기반 블록 부호화 모드를 TOP 필드블록 및 BOTTOM 필드블록의 부호화 모드로 동일하게 지정하여 사용한다. 여기서 도 14 및 도 15a 내지 도 15e에서 (p), (q), (r), (s), (MODEpq)는 표 1의 부호화모드 인덱스 중 임의의 하나를 표시한다.
한편, 도 10은 두 필드블록 즉 Top 과 Bottom 필드블록 중 적어도 하나가 'No_update' 일 경우 항상 필드기반 부호화를 처리하는 부호화방법을 흐름도로 도시한 것이다. 도 10에 도시된 부호화 방법에서는 필드/프레임 기반 부호화 표시자는 표 1에 도시된 Coded 모드인 (5),(6),(7) 부호화모드에 대해서만 사용된다. 그리고 Not_coded 인 (1),(2),(3),(4) 부호화모드에 대해서는 필드/프레임 기반 부호화 표시자를 사용하지 않고 부호화모드 (1),(3),(4)는 항상 프레임기반 부호화를, 부호화모드 (2)는 항상 필드기반 부호화를 수행한다.
도 10에 도시된 부호화방법을 보다 상세하게 설명하면 다음과 같다. 먼저 도 10에 있어서 사용되는 부호화 모드는 부호화 모드 (2)를 제외하고는 동일하다. 즉 표 1에서의 부호화모드 (2)는 프레임 기반일 경우는 'MVDsF!= 0 && No_update' 이고, Top 필드블록일 경우는 'MVDsft!= 0 && No_update', Bottom 필드블록일 경우는 'MVDsfb!= 0 && No_update' 이다. 반면, 도 10에 도시된 부호화 방법에서 정의되는 부호화 모드 (2)는 'one_field_No_update' 부호화모드를 정의한다. 상기 'one_field_No_update'는 필드 기반 부호화 모드로서, Top 이나 Bottom 필드블록 중 적어도 하나의 필드블록이 No_update 임을 나타낸다.
한편, 도 10에 도시된 흐름도를 구체적으로 설명하면, 먼저 움직임 벡터를 추정하고 이에 기초한 보상된 블록을 구하여 부호화 모드(mb_type)를 결정한다.(140단계) 그리고 나서 상기 결정된 mb_type 이 부호화모드 (1), (3), (4) 중의 어느 하나인지 검사한다.(142단계) 만일 상기 부호화모드 (1), (3), (4) 중 어느 하나이면, 상기 결정된 부호화모드(mb_type)를 부호화한다.(144단계) 한편, 상기 142단계에서 상기 결정된 부호화모드가 (1), (3), (4) 중 어느하나가 아니면, 상기 부호화모드(mb_type)가 부호화모드 (2) 즉, 'one_field_No_update' 인지 검사한다.(146단계) 만일 상기 부호화모드가 'one_field_No_update'이면, 즉 Top 이나 Bottom 필드블록 중 적어도 하나라도 No_update 이면, 필드기반 부호화를 수행한다.(185단계) 그리고 만일 부호화모드가 'one_field_No_update'가 아니면, 즉 Top 이나 Bottom 필드블록 둘다 모두 No_update 가 아니라면, 프레임 기반 부호화 및 필드기반 부호화 여부를 판단하여 프레임기반 부호화로 판단되면 프레임 기반 부호화를 수행하고, 필드기반 부호화로 판단되면 필드기반 부호화를 수행한다.(195단계)
상기 185단계를 상세히 설명하면, 먼저 mb_type를 부호화한다.(148단계) 그리고 나서 'bab_type_field'를 부호화한다.(150단계) 상기 'bab_type_field'는 상기 'one_field_No_update' 부호화모드에서 Top 필드블록에 대해 'one_field_No_update' 임을 결정했으면, Bottom 필드 블록이 'bab_type_field'가 되고, 반대로 Bottom 필드블록에 대해 'one_field_No_update' 임을 결정했으면, Top 필드블록이 'bab_type_field'가 된다. 그 다음에 상기 'bab_type_field'가 No_update 인지 판단하여(152단계), No_update 이면 Top 과 Bottom 필드블록에 대해 각각 부호화를 수행한다.(156단계, 158단계) 한편, 상기 'bab_type_field'가 No_update 가 아니면, 'Top_or_Bottom' 표시자를 사용하여 상기 bab_type_field가 Top 필드블록인지 Bottom 필드블록인지 표시한 후(154단계), Top 및 Bottom 필드블록을 부호화한다.(156, 158단계)
상기 195단계를 좀 더 상세히 설명하면, 먼저 부호화타입(encoding_type)을 결정한다.(160단계) 즉 프레임 부호화모드인지 필드 부호화모드인지를 결정한다. 그리고 나서 부호화모드(mb_type)를 결정한 후(162단계), 상기 encoding_type이 필드 기반 부호화모드인지 프레임 기반 부호화 모드인지를 검사한다.(166단계) 만일 필드기반 부호화모드이면, 필드기반 부호화를 수행하고(170단계), 프레임기반 부호화모드이면 프레임 기반 부호화를 수행한다.(168단계)
한편, 도 16은 상기 bab_type_field 의 부호화 모드로 사용될 수 있는 부호화모드를 도시한 것이다. 방법 1은 앞서 설명된 필드블록 부호화 모드 7개를 모두 사용하는 경우이고, 방법 2는 이들중 (2)(5)(6)(7)의 4개를 사용하는 방법이며, 방법 3는 이들 중 (2)(5)(7)의 3개를 사용하는 방법이며, 방법 4는 이들 중 (1)(2)(5)(7)의 4개를 사용하는 방법이다. 또 그 때의 효과적인 VLC 코드의 한 사용방법을 표시하였다. 상기 방법 3에서 VLC 코드는 2가지 측면에서 달리 지정될 수 있는데, 먼저 부호화 효율 측면에서 (2)번 모드는 ‘1’, (5)번은‘01’, (7)번은 ‘00’으로 지정하며, 복호화된 화질 향상 측면에서는 (2)번 모드는‘01’, (5)번 모드는 ‘1’, (7)번모드는 ‘00’으로 지정한다. 여기서 상기 bab_type_field의 부호화모드는 방법 1에서는 7개의 부호화모드 모두 사용하고, 방법 2, 3, 4는 상기 7 개의 부호화모드 중 일부만 사용한 것이다. 따라서 부호화모드 중 일부만 사용하는 방법으로 방법 2, 3, 4는 그 일예에 불과하며, 다른 방법으로도 가능하다. 그리고 상기 부호화모드는 가변장코드(VLC)를 사용하여 부호화하면 부호화 효율을 향상시킬 수 있다.
한편, 도 8은 도 5에서 130단계를 변형시킨 방식으로 알고리즘 복잡도는 증가하나 부호화 효율을 향상시킬 수 있다. 도 8은 도 5의 130단계를 제외한 나머지 부분은 모두 동일하다. 상기 130단계는 도 8에서 참조번호 800으로 변형되었다. 즉, 130단계에서와 같은 방식으로 810단계에서 주어진 3개의 모드 중 하나를 특정한 방법으로 선택하고, 이 때의 모드가 'MVDsF!=0 && NO_update' (표 1의 부호화모드 (2))이면 830단계의 프레임 기반의 블록 모드를 부호화한다. 만약 820단계의 조건이 만족하지 않으면 840단계의 조건에서 적당한 방법으로 프레임기반 부호화 효율과 필드기반 부호화 효율을 예측하고, 이를 비교하여 840단계의 조건을 만족하면 850단계의 프레임기반 블록 모드 및 그 형상 정보를 부호화 하며, 840단계의 조건을 만족하지 않으면 860단계에서 필드기반의 필드블록 모드 및 그 형상 정보를 부호화 한다. 또한 860단계에서 TOP 필드블럭과 BOTTOM 필드블럭 모드가 표 1의 Top필드 기반 부호화모드의 부호화모드 (2)와 Bottom 필드 기반 부호화모드의 부호화모드(2)이면서 MVDsft와 MVDsfb가 동일할 경우, 또는 Top 필드 부호화모드의 부호화모드(6)과(7), Bottom 필드 부호화모드의 (6)과 (7) 각각 서로 같은 모드 내에서 MVDsft와 MVDsfb가 서로 같을 경우엔 850단계의 프레임 기반 블럭모드로 처리해 부호화 효율을 높인다. 아울러, 860단계에선 형상부호화 정보의 효율을 향상시키기 위해 필드기반 움직임 벡터 대신 프레임 기반 움직임 벡터를 사용할 수도 있다.
한편, 도 9는 도 5를 기반으로 하여 참조번호 900단계의 주변 인접 블록의 부호화 성향을 판단하여 프레임기반 부호화 성향을 가질 경우는 도 5와 동일한 부호화 과정으로 수행하고, 주변 인접 블록이 필드기반 부호화 성향을 가질 경우는 필드기반 블록처리를 먼저 수행하고, 필드기반 블록모드로 만족되는 경우가 없을 때 프레임기반 블록 모드 처리를 참조번호 910단계에서 수행한다. 즉 900단계에서 입력된 현재 블록의 인접블록들의 부호화모드 성향이 프레임 기반 부호화모드인지 검사한다. 그리고 나서 상기 검사결과 프레임기반 부호화모드이면, 도 5에 도시된 방법대로 입력된 현재 블록의 움직임벡터를 추정하여, 상기 추정된 움직임벡터를 사용하여 이전 프레임으로부터 움직임 보상된 블록을 얻는다. 상기 움직임 보상된 블록과 현재 블록을 비교하여 그 차가 기설정된 블록허용오차보다 큰지 비교하여, 그 차가 블록허용오차보다 작으면 프레임 기반 부호화를 수행한다.
상기 비교결과 그 차가 블록허용오차보다 크거나, 상기 모드성향검사단계에서 모드성향이 프레임기반 부호화모드가 아니면, 현재 블록을 필드 단위로 나누어 각 필드별로 움직임 벡터를 추정하여 상기 추정된 움직임 벡터를 사용하여 복원된 이전 프레임의 해당 필드블록을 현재 필드블록과 비교하여 그 차를 구한다. 적어도 하나의 필드블록에 대해서 상기 차가 기설정된 값보다 작으면 도 5에 도시된 방법대로 필드기반 부호화를 수행한다.
한편, 상기 두 개의 필드블록 모두에 대해 상기 차가 기설정된 값보다 크면, 910단계에 도시된 바와 같이 프레임기반 부호화를 수행한다. 상기 프레임 부호화를 좀 더 상세하게 설명하면, 상기 인접블록 부호화모드성향이 프레임기반 부호화모드가 아니면(912단계), 입력된 현재 블록의 움직임벡터를 추정한다.(914단계) 이어서 이전 프레임으로부터 움직임 보상된 블록과 현재 블록을 비교하여 차를 구하여 상기 차를 기설정된 블록허용오차와 비교하여(916단계), 그 결과에 따라 설정된 블록모드 중 하나를 결정하여 이에 상응하는 부호화를 수행한다.(920단계) 여기서 상기 설정된 블록 모드는 표 1에 도시된 프레임 기반의 부호화모드(2),(6),(7)이다. 한편, 상기 912단계에서 입접블록들의 부호화모드 성향이 프레임 기반 부호화모드이면, 바로 상기 920단계를 수행한다.
한편, 이러한 형상에 대한 비월주사 방식을 고려한 부호화는 항상 'shape_field_prediction' 표시자를 사용하여 현재 블록의 부호화가 프레임 기반인지 필드 기반인지를 표시한다. 이러한 표시자는 화상에 대한 비월 주사방식을 고려한 부호화에서도 동일하게 사용된다. 이 경우, 도 11a 내지 도 11c와 같은 일반적인 부호화 정보의 형태를 가진다. 이러한 형상 및 화상에 대한 두 개의 표시자의 상관성을 고려한 효율적인 부호화를 위해 도 12a 내지 도 12c의 방법을 사용한다. 즉 도 11a와 같이 형상정보 및 화상정보에 대하여 독립적으로 존재하던 프레임/필드 부호화 표시자를 도 12a에서와 같이 하나의 부호화 정보로 통합하였다. 또한 본 발명의 한가지 사용예로서, 도 11b 및 도 11c에 도시된 바와 같이 intra frame coding 모드와 inter frame coding 모드에 대하여 각각 나타낸 기존의 MPEG4에서의 형상 및 화상에 대한 각각의 프레임/필드 부호화 표시자를, 도 12b 및 도 12c에 도시된 바와 같이 단일 표시자로 각각 나타내었다. 즉 도 12b는 본 발명이 적용된 비주얼 데이터에 대한 인트라 부호화정보(visual intra coding bitstream)를 도시한 것이고, 도 12c는 본 발명이 적용된 비주얼 데이터에 대한 인터 부호화 정보(visual inter coding bitstream)을 도시한 것이다.
한편, 도 13a 내지 도 13d는 이러한 화상 및 형상의 프레임/필드 부호화 표시자의 부호화 정보(VLC code) 발생법을 나타낸다. 도 13a는 도 12a에 대한 부호화정보 발생법을 도시한 것으로서, 일반적인 경우의 부호화 정보 발생법으로 형상정보 프레임/필드 부호화 표시자가 프레임기반, 필드기반일 각각의 경우에 화상정보 프레임/필드 부호화 표시자가 프레임기반인지 필드기반인지에 따른 최적의 엔트로피 부호화 정보를 발생시킴을 나타낸다. 도 13b 및 도 13c는 도 12b 및 도 12c에 대한 부호화정보 발생법을 나타낸다. 또한 도 13d는 이러한 부호화 정보 발생 방법을 사용하여 나타날 수 있는 화상 및 형상의 프레임/필드 부호화 표시자의 부호화 정보의 한 경우를 도시한 것이다.
본 발명에 의하면, 순차주사방식 뿐만 아니라 비월주사방식으로 MPEG4 형상 부호화를 효율적으로 수행할 수 있다.

Claims (28)

  1. 비월주사 방식의 형상 및 화상 정보를 부호화하는 방법에 있어서,
    상기 형상 및 화상정보를 프레임 단위로 부호화하는 방식을 프레임 기반 부호화, 필드단위로 부호화하는 방식을 필드 기반 부호화라 할 때,
    입력된 현재 블록의 움직임벡터를 추정하는 제1단계;
    상기 추정된 움직임벡터를 사용하여 이전 프레임으로부터 움직임 보상된 블록을 얻는 제2단계;
    상기 움직임 보상된 블록과 현재 블록을 비교하여 프레임 기반 부호화여부를 판단하는 제3단계;
    상기 판단결과, 프레임 기반 부호화로 판단되면 현재 블록에 대해 프레임 기반 부호화를 수행하고, 프레임 기반 부호화로 판단되지 않으면 상기 현재 블록을 필드단위로 분할하는 제4단계;
    상기 분할된 필드단위의 블록 각각에 대해 움직임 벡터를 추정하는 제5단계;
    상기 추정된 움직임 벡터를 사용하여 이전 프레임으로부터 움직임 보상된 필드 블록을 얻는 제6단계;
    상기 움직임 보상된 필드블록과 현재 필드블록을 비교하여 필드기반 부호화여부를 판단하는 제7단계; 및
    상기 필드기반 부호화 판단결과, 상기 분할된 필드블록 중 적어도 어느 하나의 필드블록이 필드기반 부호화로 판단되면 필드기반 부호화를 수행하고, 상기 분할된 필드블록 둘다 필드기반 부호화로 판단되지 않으면 프레임 기반 부호화를 수행하는 제8단계를 포함함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  2. 제1항에 있어서, 상기 제3단계는
    상기 움직임 보상된 블록과 현재 블록을 비교하는 단계; 및
    상기 비교결과, 그 차가 기설정된 블록허용 오차보다 작으면 프레임기반 부호화로 결정하는 단계로 이루어짐을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  3. 제1항에 있어서, 상기 프레임기반 부호화 및 필드기반 부호화는
    소정의 부호화모드를 설정하여 상기 부호화모드에 상응하는 부호화를 수행함을 특징으로 하고,
    상기 프레임 기반 부호화 모드는
    'MVDsF= 0 && NO_update ', 'MVDsF!= 0 && NO_update ', 'all = 0', 'all = 255', 'intra_coded", 'MVDsF= 0 && inter_coded' 및 'MVDsF!= 0 && inter_coded' 로 이루어지며,
    상기 필드가 top 필드 및 bottom 필드로 이루어질 때, 상기 top 필드기반 부호화모드는 'MVDsft= 0 && NO_update ', 'MVDsft!= 0 && NO_update ', 'all = 0', 'all = 255', 'intra_coded ', 'MVDsft= 0 && inter_coded' 및 'MVDsft!= 0 && inter_coded' 로 이루어지며,
    상기 bottom 필드기반 부호화모드는 'MVDsfb= 0 && NO_update ', 'MVDsfb!= 0 && NO_update ', 'all = 0', 'all = 255', 'intra_coded ', 'MVDsfb= 0 && inter_coded' 및 'MVDsfb!= 0 && inter_coded' 로 이루어지는, 비월주사 방식의 형상/화상 정보 부호화방법.
  4. 제3항에 있어서, 상기 일곱 가지로 이루어진 부호화모드는
    첫 번째 부호화모드는 두 번째 부호화모드로, 세 번째 및 네 번째 부호화모드는 다섯 번째, 여섯 번째 및 일곱 번째 부호화모드 중 어느 하나로 각각 변환되어 다섯가지로 이루어짐을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  5. 제3항 또는 제4항에 있어서, 상기 각 부호화모드정보의 부호화는
    가변장코드(VLC)를 사용하여 부호화함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  6. 제3항에 있어서,
    인트라 필드형상 부호화정보의 비트스트림은
    "부호화모드, SFP, CR, STsft, STsfb, 부호화된 Top 필드형상, 부호화된 bottom 필드형상"으로 이루어짐을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  7. 제3항에 있어서,
    인터 필드형상 부호화정보의 비트스트림은
    Top 과 Bottom 필드 블록 모두 'No_Update' 부호화 모드일 경우에는 "부호화모드, SFP, 필드부호화모드, MVsft, MVsfb "로 이루어지고,
    하나의 필드블록만이 'No_Update' 부호화모드일 경우에는 "부호화모드, SFP, 필드부호화모드, Top_or_Bottom', MVsft, MVsfb, STsft/STsfb, 부호화된 Top, Bottom 필드형상"으로 이루어지고,
    Top 과 Bottom 필드 블록 모두 'inter_coded' 부호화 모드일 경우에는 "부호화모드, SFP, MVsft, MVsfb, CR, STsft, STsfb, 부호화된 Top 필드 형상, 부호화된 Bottom 필드 형상" 이나 "부호화모드, SFP, MVsft, MVsF, CR, STsft, STsfb, 부호화된 Top 필드 형상, 부호화된 Bottom 필드 형상"으로 이루어짐을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  8. 제1항에 있어서, 제1단계의 움직임 벡터 추정은
    인접블록이 프레임기반 움직임 벡터를 이용한 블록일 경우, 인접블록 움직임 벡터의 수직성분 및 수평성분을 현재블록 움직임벡터의 수직성분 및 수평성분으로 설정하고,
    인접블록이 필드블록 기반 움직임 벡터를 이용한 블록일 경우, 인접 top 필드블록의 움직임벡터 수직성분과 bottom 필드블록의 움직임벡터 수직성분의 합을 현재 블록의 움직임벡터 수직성분 값으로 설정하고, 인접 top 필드블록의 움직임벡터 수평성분과 bottom 필드블록의 움직임벡터 수평성분의 산술평균값에서 정수부분을 취해 현재 블록의 움직임벡터 수평성분 값으로 설정함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  9. 제1항에 있어서, 제5단계의 움직임 벡터 추정은
    인접블록이 필드기반 움직임 벡터를 이용한 블록일 경우, 인접필드블록의 수직성분 움직임 벡터 및 수평성분 움직임 벡터를 현재블록의 수직성분 움직임벡터 및 수평성분 움직임 벡터로 설정하고,
    인접블록이 프레임 기반 움직임 벡터를 이용한 블록일 경우, 현재 top 필드블록 및 bottom 필드블록의 수직성분 움직임 벡터는 인접블록의 수직성분 움직임벡터를 반으로 나눈 값의 정수부분을 취한 값으로 설정하고, 현재 top 필드블록 및 bottom 필드블록의 수평성분 움직임벡터는 인접블록의 수평성분 움직임 벡터 값으로 설정함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  10. 제1항에 있어서, 제1단계의 프레임기반 움직임 벡터 추정자 선정은
    현재블록의 좌측, 상측, 상기 상측의 우측에 위치한 세 개의 인접블록 각각에 대해, 형상정보부호화를 위한 움직임벡터를 MVs1, MVs2, MVs3라 하고, 텍스쳐정보 부호화를 위한 움직임벡터를 MV1, MV2, MV3라 할 때, MVs1, MVs2, MVs3 ,MV1, MV2, MV3 순서, MVs1, MV1, MVs2, MV2, MVs3 ,MV3 순서 및 MVs1, MVs2, MV1, MV2, MVs3,MV3 순서 중 어느 하나의 방법으로 이루어짐을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  11. 제1항에 있어서,
    현재top필드블록의 좌측, 상측 및 상기 상측의 우측에 위치한 세 개의 인접블록의 top 필드블록 각각에 대해, 형상정보부호화를 위한 움직임벡터를 MVsft1, MVsft2, MVsft3 ,텍스쳐정보 부호화를 위한 움직임벡터를 MVft1, MVft2, MVft3라 하고, bottom 필드블록에 대해서는 형상정보부호화를 위한 움직임벡터를 MVsfb1, MVsfb2, MVsfb3, 텍스쳐정보 부호화를 위한 움직임벡터를 MVfb1, MVfb2, MVfb3라 할 때,
    제5단계의 필드기반 top 필드블록의 움직임 벡터 추정자 선정은
    MVsft1, MVsft2, MVsft3 ,MVft1, MVft2, MVft3순서, MVsft1, MVft1, MVsft2, MVft2, MVsft3 ,MVft3순서, MVsft1, MVsft2, MVft1, MVft2, MVsft3 ,MVft3순서 및 MVsft1, MVsfb1, MVsft2,MVsfb2, MVft3, MVsfb3 ,MVft1, MVfb2, MVft2 ,MVfb2, MVft3, MVfb3순서 중 어느 하나로 결정하고,
    제5단계의 필드기반 bottom 필드블록의 움직임 벡터 추정자 선정은
    MVsfb1, MVsfb2, MVsfb3 ,MVfb1, MVfb2, MVfb3순서, MVsfb1, MVfb1, MVsfb2, MVfb2, MVsfb3 ,MVfb3순서, MVsfb1, MVsfb2, MVfb1, MVfb2, MVsfb3 ,MVfb3순서 및 MVsfb1, MVsft1, MVsfb2,MVsft2, MVfb3, MVsft3 ,MVfb1, MVft2, MVfb2 ,MVft2, MVfb3, MVft3순서 중 어느 하나로 결정함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  12. 상기 형상 및 화상정보를 프레임 단위로 부호화하는 방식을 프레임 기반 부호화, 필드단위로 부호화하는 방식을 필드 기반 부호화라 할 때,
    입력된 현재 블럭과 이전 복원 영상간의 움직임을 추정하고, 추정된 움직임 벡터를 사용하여 이전 프레임으로부터 움직임 보상된 블록을 구하는 움직임추정부;
    상기 움직임추정부에서 보상된 블록과 현재 블록을 비교하여 프레임블럭의 부호화모드를 결정하는 부호화모드 결정부;
    상기 부호화모드 결정부에서 결정된 부호화모드 및 프레임 블록내의 형상특성에 따라 프레임기반 부호화여부를 판단하는 상기 프레임기반 부호화판단부;
    상기 프레임기반 부호화판단부에서 필드기반 부호화로 판단되면 현재블록을 필드단위로 분할하여 상기 분할된 필드단위의 블록 각각에 대해 움직임 벡터를 추정하여 추정된 움직임 벡터를 사용하여 이전 프레임으로부터 움직임 보상된 필드 블록을 얻는 필드기반 움직임추정부;
    상기 움직임 추정부에서 보상된 필드블록과 현재 필드블록을 비교하여 필드 블록에 대한 부호화모드를 결정하는 필드기반 부호화모드 결정부;
    상기 필드기반 부호화모드결정부에서 결정된 부호화모드에 따라 필드기반 부호화여부를 판단하는 필드기반 부호화판단부;
    상기 필드기반 부호화 판단결과, 상기 분할된 필드블록 중 적어도 어느 하나의 필드블록이 필드기반 부호화로 판단되면 필드기반 부호화를 수행하는 필드블록 부호화부; 및
    상기 프레임기반 부호화판단부에서 프레임 기반 부호화로 판단되거나, 상기 필드기반 부호화판단부에서 두 개의 필드블록 모두 필드기반 부호화로 판단되지 않으면, 현재 블록에 대해 프레임 기반 부호화를 수행하는 프레임기반 블록부호화부를 포함함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화기.
  13. 비월주사 방식의 형상 및 화상 정보를 부호화하는 방법에 있어서,
    상기 형상 및 화상정보를 프레임 단위로 부호화하는 방식을 프레임 기반 부호화, 필드단위로 부호화하는 방식을 필드 기반 부호화라 하고, 상기 프레임기반 부호화와 필드기반 부호화에 대해 각각 소정의 부호화 모드가 설정되어 있을 때,
    입력된 현재 블록의 움직임벡터를 추정하는 단계;
    상기 추정된 움직임벡터를 사용하여 이전 프레임으로부터 움직임 보상된 블록을 얻는 단계;
    상기 움직임 보상된 블록과 현재 블록을 비교하여 그 차가 기설정된 블록허용오차보다 큰지 비교하는 단계;
    상기 비교결과, 그 차가 블록허용오차보다 작으면 프레임 기반 부호화를 수행하는 제1부호화 단계;
    상기 비교결과, 그 차가 블록허용오차보다 크면, 현재 블록을 필드 단위로 나누어 각 필드별로 움직임 벡터를 추정하는 단계;
    상기 각 필드별로 추정된 움직임 벡터를 사용하여 복원된 이전 프레임의 해당 필드블록을 현재 필드블록과 비교하여 그 차를 구하는 단계;
    적어도 하나의 필드블록에 대해서 상기 차가 기설정된 값보다 작으면 필드기반 부호화를 수행하고, 상기 두 개의 필드블록 모두에 대해 상기 차가 기설정된 값보다 크면 프레임기반 부호화를 수행하는 제2부호화 단계를 포함함을 특징으로 하고,
    상기 제1부호화단계는
    (a) 프레임기반 부호화인지 필드기반 부호화인지를 나타내는 표시자(shape_field prediction)를 프레임기반 부호화로 설정하는 단계; 및
    (b) 상기 설정된 부호화모드 중 상응하는 부호화모드 정보를 부호화하는 단계로 이루어지고,
    상기 제2부호화단계는
    (c) 적어도 하나의 필드블록에 대해서 상기 차가 기설정된 값보다 작으면 상기 표시자를 필드기반 부호화로 설정한 후 필드기반 부호화를 수행하는 단계; 및
    (d) 상기 두 개의 필드블록 모두에 대해 상기 차가 기설정된 값보다 크면 상기 표시자를 프레임기반 부호화로 설정한 후 프레임 기반 부호화를 수행하는 단계로 이루어지는, 비월주사 방식의 형상/화상 정보 부호화방법.
  14. 제13항에 있어서, 상기 (b)단계의 부호화모드는
    'MVDsF= 0 && NO_update ' 이고,
    상기 (c)단계의 필드기반 부호화는
    두개의 필드(top field, bottom field) 모두에 대해 상기 차가 기설정된 값(필드블록 허용오차)보다 작으면, 부호화 모드를 top 필드에 대해서는 'MVDsft= 0 && NO_update '로 설정하고, bottom 필드에 대해서는 'MVDsfb= 0 && NO_update'로 설정하고, 상기 부호화모드정보를 부호화하는 단계;
    상기 top 필드에 대해서만 상기 차가 기설정된 값(필드블록 허용오차)보다 작으면, 부호화모드를 top 필드에 대해서는 'MVDsft= 0 && NO_update '로 설정하고, bottom 필드에 대해서는 'MVDsfb!= 0 && NO_update ', 'MVDsfb= 0 && inter_coded' 및 'MVDsfb!= 0 && inter_coded' 중 하나로 설정하고, 이에 상응하는 부호화를 수행하는 단계; 및
    상기 bottom 필드에 대해서만 상기 차가 기설정된 값(필드블록 허용오차)보다 작으면, bottom 필드에 대해서는 부호화모드를 'MVDsfb= 0 && NO_update '로 설정하고, top 필드에 대해서는 'MVDsft!= 0 && NO_update ', 'MVDsft= 0 && inter_coded' 및 'MVDsft!= 0 && inter_coded' 중 하나로 설정하고, 이에 상응하는 부호화를 수행하는 단계로 이루어지고,
    상기 (d)단계의 프레임기반 부호화는
    부호화모드를 'MVDsF!= 0 && NO_update ', 'MVDsF= 0 && inter_coded' 및 'MVDsF!= 0 && inter_coded' 중 하나로 설정하고, 이에 상응하는 부호화를 수행함을 특징으로하는 비월주사 방식의 형상/화상 정보 부호화방법.
  15. 제14항에 있어서, 상기 (d)단계의 프레임기반 부호화는
    부호화모드를 'MVDsF!= 0 && NO_update ', 'MVDsF= 0 && inter_coded' 및 'MVDsF!= 0 && inter_coded' 중 하나로 설정하는 단계;
    상기 부호화모드가 'MVDsF!= 0 && NO_update ' 이면, 블록모드 부호화를 수행하고,
    상기 부호화모드가 'MVDsF= 0 && inter_coded' 및 'MVDsF!= 0 && inter_coded' 중 하나이면, 프레임 기반 부호화 및 필드기반 부호화를 각각 수행하여 그 효율을 비교하는 단계; 및
    상기 프레임기반 부호화효율이 크면, 프레임기반 블록 부호화를 수행하고, 필드기반 부호화효율이 크면, 필드기반 필드블록을 부호화하는 단계로 이루어짐을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  16. 제15항에 있어서, 부호화 효율에 따라 필드기반필드 블럭을 부호화하는 단계에서 부호화 정보의 효율면에서 필드기반 움직임 벡터 대신 프레임기반 움직임 벡터를 사용하는 것을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화 방법.
  17. 비월주사 방식의 형상 및 화상 정보를 부호화하는 방법에 있어서,
    상기 형상 및 화상정보를 프레임 단위로 부호화하는 방식을 프레임 기반 부호화, 필드단위로 부호화하는 방식을 필드 기반 부호화라 하고, 상기 프레임기반 부호화와 필드기반 부호화에 대해 각각 소정의 부호화 모드가 설정되어 있을 때,
    입력된 현재블록의 인접블록들의 부호화모드 성향이 프레임기반 부호화모드인지 검사하는 모드성향검사단계;
    상기 검사결과 프레임기반 부호화모드이면, 입력된 현재 블록의 움직임벡터를 추정하여, 상기 추정된 움직임벡터를 사용하여 이전 프레임으로부터 움직임 보상된 블록을 얻는 단계;
    상기 움직임 보상된 블록과 현재 블록을 비교하여 그 차가 기설정된 블록허용오차보다 큰지 비교하여, 그 차가 블록허용오차보다 작으면 프레임 기반 부호화를 수행하는 단계;
    상기 비교결과 그 차가 블록허용오차보다 크거나, 상기 모드성향검사단계에서 모드성향이 프레임기반 부호화모드가 아니면, 현재 블록을 필드 단위로 나누어 각 필드별로 움직임 벡터를 추정하여 상기 추정된 움직임 벡터를 사용하여 복원된 이전 프레임의 해당 필드블록을 현재 필드블록과 비교하여 그 차를 구하는 단계;
    적어도 하나의 필드블록에 대해서 상기 차가 기설정된 값보다 작으면 필드기반 부호화를 수행하는 단계;
    상기 두 개의 필드블록 모두에 대해 상기 차가 기설정된 값보다 크면 프레임기반 부호화를 수행하는 부호화단계를 포함함을 특징으로 하고,
    상기 부호화단계의 부호화는
    상기 인접블록 부호화모드성향이 프레임기반 부호화모드가 아니면 입력된 현재 블록의 움직임벡터를 추정하여 이전 프레임으로부터 움직임 보상된 블록과 현재 블록을 비교하여 차를 구하는 단계;
    상기 차를 기설정된 블록허용오차와 비교하여 그 결과에 따라 상기 설정된 블록모드 중 하나를 선택하여 이에 상응하는 부호화를 수행하는 단계로 이루어지는, 비월주사 방식의 형상/화상 정보 부호화방법.
  18. 형상 및 화상 정보에 대한 부호화모드를 (1)'MVDs = 0 && NO_UPDATE ', (2) 'one_field_NO_UPDATE', (3) 'all_0', (4) all_255', (5) 'intra_coded', (6)'MVDs = 0 && inter_coded', (7) 'MVDs != 0 && inter_coded' 의 일곱가지로 정의하고, 상기 형상 및 화상정보를 프레임 단위로 부호화하는 방식을 프레임기반 부호화, 필드단위로 부호화하는 방식을 필드기반 부호화라 할 때, 비월주사 방식의 형상/화상 정보를 부호화하는 방법에 있어서.
    입력된 현재 블록에 대해 부호화모드(mb_type)를 구하는 제1단계;
    상기 부호화모드(mb_type)가 'MVDs = 0 && NO_UPDATE ' , 'all_0 ', all_255' 중 어느 하나에 해당하는지 검사하여, 해당하면 상기 부호화모드(mb_type)를 부호화하는 제2단계;
    상기 검사결과 상기 세가지 부호화모드 중 어느 하나에도 해당하지 않으면 적어도 하나의 필드블록에 대한 부호화모드(mb_type)가 'one_field_NO_UPDATE' 인지 검사하는 제3단계;
    상기 부호화모드가 'one_field_NO_UPDATE' 이면, 필드기반 부호화를 수행하는 제4단계; 및
    상기 부호화모드가 'one_field_NO_UPDATE' 가 아니면, 프레임기반 부호화 및 필드기반 부호화를 여부를 소정의 방법에 의하여 판단하여 프레임기반 부호화로 판단되면 프레임기반 부호화를 수행하고, 필드기반 부호화로 판단되면 프레임기반움직임 벡터나 필드기반 움직임 벡터를 사용한 움직임 보상된 블럭을 사용하는 필드기반 부호화를 수행하는 제5단계를 포함함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  19. 제18항에 있어서, 상기 제4단계는
    상기 필드 부호화모드(one_field_NO_UPDATE)를 부호화하는 단계;
    상기 필드 부호화모드 외의 나머지 필드에 대한 부호화모드('bab_type_field')가 'NO_UPDATE'인지 검사하는 단계;
    상기 검사결과, 'NO_UPDATE'가 아니면, 'top_or_bottom' 정보를 부호화하고 top 필드블록 및 bottom 필드 블록에 대해 부호화를 수행하는 단계; 및
    상기 검사결과, 'NO_UPDATE' 이면, top 필드블록 및 bottom 필드 블록에 대해 부호화를 수행하는 단계로 이루어짐을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  20. 제18항에 있어서, 상기 제5단계는
    상기 부호화모드가 'one_field_NO_UPDATE' 가 아니면, 프레임기반 부호화 및 필드기반 부호화 여부를 판단하기 위해 부호화모드(mb_type) 및 부호화타입정보(encoding _type)를 구하는 단계; 및
    상기 부호화타입정보가 필드기반 부호화모드를 나타내면, 필드기반 부호화를 수행하고, 프레임기반 부호화를 나타내면 프레임기반 부호화를 수행하는 단계로 이루어짐을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  21. 제19항에 있어서, 상기 'bab_type_field'의 부호화는
    필드에 대해 상기 일곱가지의 부호화모드를 가변장코드(VLC)를 사용하여 부호화함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  22. 제19항에 있어서, 상기 'bab_type_field'의 부호화는
    필드에 대해 상기 일곱가지의 부호화모드를 소정 개수의 부호화 모드로 줄여 부호화함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  23. 제22항에 있어서, 상기 'bab_type_field'의 부호화는
    필드에 대해 상기 일곱가지의 부호화모드를 4가지로 줄이되, 부호화모드 (1)을 부호화모드 (2)를 사용하여 나타내고, 부호화모드 (3) 및 (4)를 부호화모드 (5)를 사용하여 나타내어, 상기 (2), (5), (6), (7)을 가변장코드(VLC)를 사용하여 부호화함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  24. 제22항에 있어서, 상기 'bab_type_field'의 부호화는
    필드에 대해 상기 일곱가지의 부호화모드를 세 가지로 줄이되, 부호화모드 (1)을 부호화모드 (2)를 사용하여 나타내고, 부호화모드 (3) 및 (4)를 부호화모드 (5)를 사용하여 나타내고, 부호화모드 (6)을 부호화모드 (7)을 사용하여 나타내어, 상기 (2), (5), (7)을 가변장코드(VLC)를 사용하여 부호화함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  25. 제24항에 있어서,
    상기 부호화모드 (2)에 대한 가변장 코드는 '1', (5)에 대해서는 '01', (7)에 대해서는 '00'을 할당함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  26. 제24항에 있어서,
    복호화된 형상 화질의 향상을 고려할 경우 상기 부호화모드 (2)에 대한 가변장 코드는 '01', (5)에 대해서는 '1', (7)에 대해서는 '00'을 할당함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  27. 제22항에 있어서, 상기 'bab_type_field'의 부호화는
    필드에 대해 상기 일곱가지의 부호화모드를 네 가지로 줄이되, 부호화모드 (3) 및 (4)를 부호화모드 (5)를 사용하여 나타내고, 부호화모드 (6)을 부호화모드 (7)을 사용하여 나타내어, 상기 (1), (2), (5), (7)을 가변장코드(VLC)를 사용하여 부호화함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
  28. 제27항에 있어서,
    상기 부호화모드 (1)에 대한 가변장 코드는 '11', (2)에 대한 가변장 코드는 '10', (5)에 대해서는 '01', (7)에 대해서는 '00'을 할당함을 특징으로 하는 비월주사 방식의 형상/화상 정보 부호화방법.
KR1019980024254A 1998-01-08 1998-06-26 비월 주사 방식의 형상 및 화상 정보 부호화 방법 및 부호화기 KR100281924B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR101998000274 1998-01-08
KR1019980000274 1998-01-08
KR19980000274 1998-01-08
KR19980005600 1998-02-23
KR1019980005600 1998-02-23
KR101998005600 1998-02-23

Publications (2)

Publication Number Publication Date
KR19990066707A KR19990066707A (ko) 1999-08-16
KR100281924B1 true KR100281924B1 (ko) 2001-02-15

Family

ID=65908695

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980024254A KR100281924B1 (ko) 1998-01-08 1998-06-26 비월 주사 방식의 형상 및 화상 정보 부호화 방법 및 부호화기

Country Status (1)

Country Link
KR (1) KR100281924B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000021867A (ko) * 1998-09-30 2000-04-25 전주범 이진 형상 신호의 움직임 벡터 부호화 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100632105B1 (ko) * 1998-06-27 2007-03-02 주식회사 팬택앤큐리텔 디지털 비월주사 인트라픽쳐 부호화/복호화 방법
KR100632106B1 (ko) * 1998-06-27 2007-03-02 주식회사 팬택앤큐리텔 디지털 비월주사 인터픽쳐 부호화/복호화 방법
KR100350376B1 (ko) * 1999-12-27 2002-08-28 주식회사 하이닉스반도체 격행주사를 위한 모양정보 부호화방법 및 그 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000021867A (ko) * 1998-09-30 2000-04-25 전주범 이진 형상 신호의 움직임 벡터 부호화 방법

Also Published As

Publication number Publication date
KR19990066707A (ko) 1999-08-16

Similar Documents

Publication Publication Date Title
CN111937391B (zh) 用于视频编解码系统中的子块运动补偿的视频处理方法和装置
CN110809887B (zh) 用于多参考预测的运动矢量修正的方法和装置
US10542284B2 (en) Method and arrangement for video coding
WO2019201264A1 (en) Candidate reorganizing with advanced control in video coding
KR100508798B1 (ko) 쌍방향 예측 블록 예측 방법
TWI581622B (zh) 動畫像編碼裝置、動畫像解碼裝置、動畫像編碼方法、動畫像解碼方法及動畫像編碼資料
US8687696B2 (en) Derivation of frame/field encoding mode for a pair of video macroblocks
KR100249223B1 (ko) 엠팩(mpeg)-4의움직임벡터코딩방법
US8428136B2 (en) Dynamic image encoding method and device and program using the same
US20110013697A1 (en) Motion vector prediction method, and apparatus and method for encoding and decoding image using the same
US10171830B1 (en) Moving picture coding device, moving picture coding method, and moving picture coding program, and moving picture decoding device, moving picture decoding method, and moving picture decoding program
JP5821542B2 (ja) 動画像符号化装置、および動画像復号装置
KR101990423B1 (ko) 인터 예측 방법 및 그 장치
JP5895469B2 (ja) 動画像符号化装置、および動画像復号装置
WO2010106100A2 (en) Encoding and decoding video data using motion vectors
JP3940657B2 (ja) 動画像符号化方法と装置及び動画像復号化方法と装置
KR100281924B1 (ko) 비월 주사 방식의 형상 및 화상 정보 부호화 방법 및 부호화기
JP2013009165A (ja) 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法
JP2005073291A (ja) 動き補償装置
KR100293445B1 (ko) 움직임벡터코딩방법
JP2012186762A (ja) 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101028

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee