KR20030083916A - 양자화계수를 결정하는 방법 - Google Patents

양자화계수를 결정하는 방법 Download PDF

Info

Publication number
KR20030083916A
KR20030083916A KR1020020022316A KR20020022316A KR20030083916A KR 20030083916 A KR20030083916 A KR 20030083916A KR 1020020022316 A KR1020020022316 A KR 1020020022316A KR 20020022316 A KR20020022316 A KR 20020022316A KR 20030083916 A KR20030083916 A KR 20030083916A
Authority
KR
South Korea
Prior art keywords
value
information
image
bits
data
Prior art date
Application number
KR1020020022316A
Other languages
English (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 KR1020020022316A priority Critical patent/KR20030083916A/ko
Publication of KR20030083916A publication Critical patent/KR20030083916A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 MPEG(Moving Picture Expert Group)의 전송율 제어를 위해 양자화계수를 결정하는 방법에 관한 것으로 구체적으로는 (a) 다수의 샘플 영상들로부터 입력 영상 데이터의 특징벡터들을 추출하는 단계; (b) K-means 알고리듬을 이용하여 Global RD curve를 구성하는 단계; (c) 상기 (b) 단계에서 구성된 값을 이용하여 신경망을 통하여 함수를 추출하는 단계; 및 (d) 상기 (c) 단계에서 추출된 함수를 이용하여 입력되는 영상데이터에 대한 양자화계수 값을 결정하는 단계;를 포함하는 것을 특징으로 한다.

Description

양자화계수를 결정하는 방법{Method for determining quantization coefficient}
본 발명은 MPEG(Moving Picture Expert Group)의 전송율 제어 방법에 관한것이다.
21세기를 시작하는 시대적 환경에 직면하여 우리의 생활에서 영상은 필수적인 부분이다. 우리는 수많은 영상정보를 접하게 되고 정보를 받아들이며 필요한 부분은 저장을 하게 된다.
영상 정보의 전송과 저장의 효율을 극대화하기 위하여 영상을 디지털화하여 이 신호들을 압축하는 기술로 필요한 정보의 양을 줄이는 기술이 상당하게 중요하게 되었다. 계속되는 시대의 변천은 디지털 영상의 전송과 저장 능력의 향상을 가져오게 되지만 디지털 영상 전송 요구가 계속 늘어나게 됨으로 전송되는 영상정보의 효율적인 압축 기술은 계속하여 필요할 것이고 반도체기술의 향상으로 프로세서와 메모리의 성능 향상은 디지털 영상의 보다 정밀하고 복잡한 알고리즘이 사용되게 될 것이다.
영상 정보의 압축의 대표적인 신호 압축 기법을 들어보면 다음과 같다. 정지 영상의 압축 기술인 JPEG, 동영상 압축 기술들인 H.261, H.263, MPEG-1, MPEG-2등이 표준화되었고 새로운 방식의 멀티미디어 통신을 위한 압축 표준인 MPEG-4가 표준화작업이 완료단계에 이르게 되었다. 이런 표준화 기술들은 현재 사용하는 멀티미디어 정보의 대부분을 수용하여 정지영상은 JPEG로, 동영상은 MPEG로 압축이 이루어져서 전송 되고 있다.
동영상정보는 다른 정보에 비하여 상당히 큰 차이를 보인다. 효율적인 동영상 정보의 저장은 아주 큰 의미를 갖는다. 특히 동영상 정보의 양은 어마어마하므로 정보의 특수성에 비취서도 적절한 관리가 요구된다.
특히 동영상 정보의 압축 기술 중 MPEG의 구조를 살펴보면 Encoder와 Decoder와의 구조가 상당하게 차이를 보이는데 Encoder의 압축 구조체가 훨씬 복잡함을 보인다. 이러한 구조의 비대칭성은 영상정보를 압축하는 Encoder 부분에서 다양한 기술을 이용하여 영상 정보를 압축할 수가 있음을 의미하고 각 특징에 맞는 새로운 기술의 접목이 쉽다는 사실을 말해준다.
영상정보의 압축부분에서 사용되는 대부분의 비트제어 방법들은 사용되는 버퍼의 오버프로를 방지하기 위함을 목적으로 영상 정보의 압축 지연 현상을 없게 하여 각 프레임에 최적의 양자화 계수를 선택하여 양자화 할 수 있는 것이다. 여기서 양자화계수(Qp)를 사용하여 압축하는 기본적인 개념은 영상정보를 압축하는 데에는 두 가지의 기본적인 방식으로 나누어 지는데 영상정보의 손실을 주지않고 압축하는 무손실 압축기법과 손실 압축기법으로 나눌 수 있다. 무손실 압축기법은 영상정보의 압축 후 복호시에 원 영상으로 다시 복원이 완벽하게 되는데 반하여 손실 압축기법은 복호된 영상 정보에 손실정보가 발생한다는 점이다. 무손실 압축 기법을 이용하여 영상 정보를 압축하여야 하는 분야에서는 꼭 필요하지만 일반적인 영상 전송시에는 인간의 시각적인 특성이 영상의 손실을 인식하지 못하여 무감각하므로 손실 압축 기법을 이용하여 보다 많은 영상데이터를 압축 할 수가 있게 된다. 여기에 양자화계수를 적용하는 값에 따라서 손실되는 영상 정보의 양이 정하여 진다. 그러므로 코딩을 위한 비트률 제어는 영상정보에 알맞은 양자화 계수를 이용하여 원하는 비트량으로 코딩을 하는 것을 의미한다.
영상정보의 부호화에서는 크게 두 가지의 부호화 방법이 사용되는데 하나는정지 영상에서도 사용하는 영상자체의 공간 중복성을 줄여서 압축을 하는 방법이고 다른 하나는 시간적 중복성을 줄임으로 압축을 하는 방법이다. 그래서 동영상의 부호화는 이전의 프레임의 부호화 상태에 영향을 받아서 이전 프레임에 의존적인 영상 부호화를 실행하므로 비트율 제어 또한 의존적인 비트율 제어를 실행하여야 한다.
도 1은 MPEG 부호화를 하는 일반적인 방법을 도시한 것이다.
MPEG-4의 인코더 부분은 크게 2부분으로 나누어 지는데 영상정보의 물체의 정보를 가지는 Shape Coding부분과 움직임 보상정보를 이용하여 DCT를 기반한 Texture Coding 부분으로 나누어 볼 수가 있다. Shape Coding 부분은 코딩에서 새로운 발전을 나타내는 부분이다. MPEG-4의 영상 내용기반 코딩에서의 가장 중요한 장점은 영상의 압축 효율이 상당하게 진전된 부분이 나타났는데 영상의 각 물체에 대하여 전담적으로 객체 기반의 움직임 예상을 행하는 툴을 사용하는 몇 개의 영상 정보에 대하여 상당하게 압축률이 높아졌다. 이러한 몇몇의 움직임 예상 기술은 객체의 효율적인 코딩과 유연한 표현을 하는데 사용된다.
MPEG에서 가장 중요한 부분중의 하나인 인코더의 설계부분의 중점사항은 코딩에 있어서 어떻게 하여 효과적인 Rate Control System을 운용하는가 하는 점이다.
영상의 전송에서 두가지 전송방법이 사용되는데 하나는 가변비트율 전송모드이고 다른 하나는 고정비트율 전송모드가 사용된다. 이중에서 고정비트률 전송이 이루어지는 경우에 영상정보가 코딩되어 비트 스트림이 만들어지면 이 비트들은 즉시 버퍼에 적재되어 버퍼량에 변화를 가져오게 된다. 영상정보의 코딩 비트는 주어진 영상 화질에서의 최소한의 비트로 코딩된 것이다. 이러한 버퍼링은 인코더와 디코더단 모두에서 사용될 수 있는데 MPEG에서 사용 방식은 디코더 단에서 한번 버퍼가 정하여 지면 버퍼링 작업은 언더플로어나 오버플로어 없이 주어지는 비트스트림을 디코딩하여야 한다.
고정비트률 전송모드에서는 인코더의 버퍼에 및 디코더 버퍼에 요구되는 몇가지 요소들이 존재하게 된다.
먼저 인코더와 디코더의 버퍼 크기가 동일하고, 인코더는 현 주어진 프레임을 다음 프레임이 입력되기 전에 코딩이 되어야 하고, 디코더는 현재 주어진 프레임이 다 화면 출력이 끝나기 전에 다음 프레임이 디코딩 되어야 한다. 그리고 디코더에서의 디코딩 시작은 디코더 버퍼가 가득찬 크기가 버퍼 크기에서 인코더 버퍼의 가득찬 크기의 차 값과 같은 시점에서 시작된다. 그리고 인코더의 버퍼는 버퍼링을 하는 도중에 오버플로어나 언더플로어가 절대로 발생하지 않아야 한다. 위의 몇가지 주어진 조건을 만족하는 경우에는 디코더 버퍼에서의 오버플로어나 언더플로어가 결코 발생하지 않는다. 이점은 디코더의 버퍼의 상태는 인코더의 버퍼의 상태를 그대로 표현하기 때문이다.
따라서 고정비트률 전송에서 가장 중요하게 명기될 점은 인코더 버퍼에서 오버플로어나 언더플로어가 절대 발생하여서는 않된다는 사실이다.
도 2는 부호화시 coding rate를 제어하는 종래의 방법을 나타낸 블록선도이다. 입력이 들어오면 Source Coder에서 코딩을 하며, 버퍼에 데이터가 전송되지않은 양과 Picture Activity를 측정한 값을 이용하여 Coder Parameter값을 조정하여 Source Coder에 전달하여 전송률을 제어하게 된다.
즉, 입력 영상이 입력되면 먼저 영상 정보 중에서 코딩에 필요한 정보를 추출하고 현재 버퍼의 상태를 검사하여 영상 코딩에 적절한 설정값을 계산한 후에 영상을 코딩하게 한다. 현 버퍼 상태를 검사하여 현상태가 언더플로어가 발생할 상태이면 인코더에서는 언더플로어를 방지하기 위하여 영상코딩의 실제적인 비트값을 제외한 일반적인 비트인 영상정보의 시작되는 비트정보 등을 이용하여 언더플로어를 방지하게 된다. 그리고 오버플로어가 발생할 상태이면 몇 가지 방법을 이용하여 오버플로어를 방지하는데 먼저 양자화 계수를 사용하여 프레임의 코딩 비트를 버퍼의 상태에 맞도록 조절하여 방지 할 수가 있다. 버퍼의 상태에 따라서는 현 코딩된 프레임을 건너뛰어 버퍼의 상태를 낮추어주어서 방지할 수도 있다.
동영상 전송에서 전송률은 화질에 미치는 영향이 아주 크다. 영상 전송을 지원하는 프로그램에서는 주어진 Bits를 어떻게 활용하는가에 초점을 맞추게 된다. 사용자가 영상정보의 조절기능에 원하는 정보에 대한 비트 할당률을 높이고 다른 정보에 대한 비트률을 낮추어 각각에 주어지는 비트를 최소한으로 배정한다면 사용자가 원하는 정보에 대한 영상의 질은 높게 보여지게 된다.
다음에 소개되는 것은 MPEG Coding에서의 이론적 배경으로 손실 압축의 기본이 되는 왜곡 비트율 이론( Rate Distortion Theory )을 설명하고 살펴보며, 특별한 구조에 최적화와 관련된 동작 왜곡 비트율 이론(Operational rate distortion theory)를 소개하고, 지금까지의 발표된 최적의 비트 할당 알고리즘들을 개략적으로 살펴보게 된다.
기본적인 왜곡 비트율 이론(RDT)의 개념을 살펴본다. RDT는 정보 이론의 한 분야로 Shannon으로부터 시작되어 진전되고 확장되었다. 왜곡 비트율 이론은 바탕은 정보이론에 바탕을 두는데 소스 부호화(source coding)와 채널 부호화(channel coding)의 문제로 나누어서 살펴볼 수가 있는데 소스 부호화의 문제인 어떤 정보를 보내야 하는가 하는 점과 채널 부호화의 문제인 어떻게 정보를 보내야 하는가 하는 점인데 여기서 RDT는 손실 영상 압축과 관련이 있는 소스 부호화의 이론에 의한다.
소스 부호화 이론에서 소스(source) 의 엔트로피 는 한 소스가 정보의 손실 없이 부호화될 수 있는 최소비트율이라고 정의되어 있고, 채널 부호화 이론에서는 용량보다 작거나 같아야 한다. 하지만 영상을 손실 없이 전송하기 위한 비트의 양은 상당히 많기 때문에 이 비트를 전송할 수 없는 경우에는 문제가 발생한다.
RDT의 핵심은 RDF(rate distortion function)로 로 표현이 된다. 영상의 일정한 손실을 허용하면 허용된 왜곡을 가지는 영상의 비트를 나타낼 수가 있는데 RDF는 왜곡이 허용되는 경우 엔트로피 개념의 확장으로 생각할 수가 있다. 즉 채널 용량이 주어지면 전송시 손실이 발생하지 않도록 최소한의 평균적인 왜곡값인 를 찾을 수 있고 허용가능한 왜곡 값이 주어지면 영상을 전송하기 위해 필요한 최소 채널 용량을 찾을 수가 있다.
영상을 송신하는 부분과 수신하는 부분에서의 정보를 분석하여서 전송 채널상에는 손실이 발생하지 않는다면 송신단에서 송신하는 영상정보에 대한 엔트로피 값과 수신단에서 얻어지는 영상정보의 엔트로피 값은 일치하게 된다. 이 경우에는영상 정보에 대해 요구되는 비트의 크기는 크지만 최적의 무손실 부호화가 이루어 진다.
영상정보의 전송에 요구되는 비트의 크기를 줄이기 위하여 소스 부호화에 손실이 발생하게 된다면 부호화 과정에서 잃어버린 정보만큼에 대한 엔트로피의 차이가 송신단과 수신단 사이에 발생하게 된다. 전송단의 영상정보와 수신단의 영상정보의 차이를 계산하여 영상의 왜곡률을 구할 수가 있는데 모든 정보에 대한 왜곡값을 계산한다면 평균적으로 발생하는 평균 왜곡 값(D*)을 구할 수가 있다. 모든 영상정보에 대한 계산 값으로 RDF이 정의되면 소스 부호화 이론이 설명된다. 왜곡이 허용될 때 C > R(D*)의 상태를 가진다면 충분히 많은 영상 정보들은 D*보다 작거나 같은 평균 왜곡을 가지고서는 용량c의 채널상으로 전송될 수가 있다. 그리고 C < R(D*)이면 영상정보는 D*보다 작거나 같은 평균 왜곡을 가지고 용량 c의 채널상으로 전송되는 것은 불가능하다.
RDT가 강력한 점은 손실 데이터 압축 방법의 성능에 있어서 절대적인 한계를 찾을 수가 있지만 이러한 한계를 어떻게 구하는가 하는 방법을 제시하지를 못하였다. RDT가 갖고있는 또 다른 문제점은 RDF가 단지 단순한 영상정보와 단순한 왜곡 측정들에 대해서만 계산되어 유도될 수 있다는 것이다.
영상정보를 손실 부호화를 하는 이론에서 연산적 왜곡 비트율 이론은 모든 손실데이터 부호화기가 단지 하나의 유한한 양자화 계수들을 갖는 집합이 있다는 사실에 기초한다. 임의로 주어진 입력정보에 대하여 왜곡 비트율 쌍이 존재하게 되며 이 쌍들이 갖는 값들의 집합은 양자화 함수 QF(quantization function)들을 형성한다.
도 3에서 + 나 o 들은 모든 가능한 왜곡 비트율 쌍이 표현되는데 이 값들의 쌍으로부터 양자화 함수 QF들을 정의한다. 그리고 이 쌍들 중에서 o 들은 양자화 함수를 구성하는 값들 중 가장 외각에 위치해 있는 쌍들로써, 이 쌍들이 구성하는 함수를 연산적 왜곡 비트율 함수(Operational Rate Distortion Function : QRDF)라 한다.
임의로 주어진 입력정보에 대하여
Q = {q0, …, qM-1} M:Q집합의 원소인 양자화 계수들의 개수)를 모든 허용 가능한 양자화 계수들의 집합
R(qi)를 특정한 양자화 계수와 입력정보에 대한 발생 비트량
D(qi)를 그에 상응하는 왜곡
이라 하면, QF는 다음과 같이 정의될 수 있다.
QF ={(R(qi),D(qi))}M-1 i=0
위 정의는 주어진 입력정보에 대하여 왜곡 비트율 쌍이 갖는 값들의 집합의 양자화값을 계산한다.
ORDF를 만드는 양자화 계수들도 다음과 같이 정의될 수 있다.
위 정의는 어떤 양자화 계수가 주어진 경우에 있을 때, 주어진 양자화 계수보다 낮은 비트량을 가지고 더 낮은 왜곡을 갖는 양자화 계수가 없다면, 다른 표현으로 주어진 양자화 계수보다 낮은 왜곡을 갖고 더 적은 비트량을 발생시키는 양자화 계수가 없다면, 주어진 양자화 계수는 QORDF에 속한다. 따라서 도 3에 나타나는 값들 중에서 QORDF는 o 들로 구성된 집합(301)이 된다. 그리고 최소 값들의 집합은 최소 볼록 집합(convex hull, 302)에 속하는 점이 된다
ORDT는 주어지는 부호화 방법을 분석하고 주어진 부화화 방법의 이론적인 최적 수행능력을 찾는 방법론이다.
RDT는 실제 방법의 수행능력이 이론적인 최적에 얼마나 근접한가를 평가하는데 유용한 방법이고, ORDT는 실제 방법을 최적화해서 최대의 수행능력을 발휘할 수 있게끔 하기 위해 사용되어질 수 있는 방법이다. 여기서 ORDT에서 최대의 능력 수행이라는 것은 주어진 비트율에서 최소 왜곡 값을 갖는 양자화 계수를 찾아서 이용하는 것이다. 여기서 중심이 되는 점은 최적의 비트 할당에 깊은 관련성이 있다.
최적 비트 할당은 영상정보에 최적 비트 할당을 하는 목적은 각 정보에 필요한 비트를 할당함으로 발생되는 왜곡을 최소화하여 전체적인 왜곡을 최소화하는데 있다.
최적 비트 할당에 관련한 보고서 중에 하나는 블록 양자화 관련 가우시안 랜덤 변수(block quantizing correlated Gaussian random variable)의 문제로 상관변수들을 Karhunen-Loeve 변환을 이용하여 상관 관계를 제거하고 각각의 변환된 랜덤 변수들을 분산에 의해 정규화한 후에 단위 분산 가우시안 랜덤 변수들을 위해 고안된 Max-Lloyd 양자화기를 이용하여 양자화된다. 여러 값의 재구성 단계를 갖는 양자화기들은 각각의 정규화된 랜덤 변수들을 위해 유효하며 관련된 양자화기들의 집합을 갖는 각각의 랜덤 변수는 QF들에 의해 특징지어진다. 비트 할당 문제는 비트 예산이 주어졌을 때 왜곡을 최소화하기 위해 각각의 랜덤 변수에 적절한 양자화 계수를 설정하는 것으로 초점이 모아진다.
QF들에 대한 연속적인 모델을 사용한 알고리즘의 주요한 개선점은 QF들이 지수 함수일 필요가 없다는 것이다. 그리고 비트 할당을 위해 필요한 가정들은 QF 모델이 엄격하게 볼록(convex)이고 감소(decreasing)해야 하고 비트 할당이 음수가 되지 않도록 제한하여야 한다.
최적 비트 할당을 위한 위의 두 방법들이 모델 기반 비트 할당 방법의 대표적 예이다. 두 경우에 있어서, 왜곡 비트율 점들의 집합인 QF들이 연속적인 함수를 이용하여 모델화 되었다. 이것은 ORDT보다는 RDT의 개념에 가까운데, 이는 해답을 찾기 위해 이산 값들을 근사화 시켰기 때문이다. 이러한 접근 방법의 장점은 연속적 최적화 이론이 해답을 찾기 위해 적용될 수 있다는 것이다. 하지만 이러한 방법의 단점은 특별한 양자화기에 할당된 비트량이 실수(real number)라는 것이며 할당은 단지 QF들을 위해 사용된 모델에 충실하다는 것이다. 게다가 두 방법들은 적용된 모든 양자화기들이 같은 QF들을 가져야 한다는 요구 조건에 얽매여 있다.
비트할당이 실수가 아니고 비트 할당이 정수일 필요가 있다면 이산 자원 할당을 위한 일반적인 알고리즘이 제시되었는데 몇 가지 특징들을 가지고 있다.
- 서로 다른 소스들의 QF들이 동일할 필요가 없다.
- 비트 할당이 양의 정수로 된다.
- 주어진 단계에서 할당된 비트의 부여 받는다는 것이다.
하지만 단점으로 표출되는 점은 QF들에 대한 모델이 계속 필요하며 양의 모든 정수 값들을 위해 정의가 되어져야 하고 계산되는 모델 QF들은 볼록(Convex)이며 감소해야만 한다.
이러한 부분의 확장 방법이 제안되었는데 그것은 QF들이 볼록 모델이어야 한다는 요구 사항을 제거하였다. 그러나 QF 모델은 계속 사용되어야 했는데 이는 QF 모델이 모든 양의 정수 값들에서 계산되어져야 하며 비증가 함수여야 하기 때문이다. 이 알고리즘은 먼저 볼록 QF들인 경우에 최적인 방법을 채택하고 QF 모델이 볼록이어야 한다는 가정을 제거 하였으므로 준볼록 조건(qusi-convexity conditon)을 이용하여 나온 결과가 최적인지의 판단했다.
이러한 알고리즘들에 비해 다른 방법론은 동적 프로그램(dynamic program)에 기반한 것으로 비트 할당 방법이 유명한 배낭(knapsack)문제와 상당히 관련이 있다. 배낭 문제에서 도둑은 주어진 크기의 가방에 다른 크기와 다른 값어치를 갖는 물건들을 채워야 한다. 목표는 최종 값어치가 최대가 되게끔 가방을 채우는 것이다. 그래서 최적 비트 할당 알고리즘에서 유효한 비트량은 가방 크기의 역할을, 양자화기는 물건들의 역할을 수행 하는데, 물건의 크기는 양자화기에 의해 요구되어지는 비트수를, 물건의 가치는 결과 왜곡과 관련된다.
최적 비트 할당 알고리즘에서 단지 QF들이 주어진 영역 내에 있는 모든 정수 값으로 정의되어진다는 가정된 방법론리 제안되었는데 이 알고리즘은 라그랑즈 승수 방법에 기반한 것으로써 이 알고리즘의 큰 장점은 QF들에 관한 어떠한 가정도 하지 않는다는 것이며, 그로 인해 궁극적인 비트 할당(ultimate bit allocation : UBA)이가능하다는 것이다. UBA의 의미는 소스의 모든 출력을 위해 모든 허용 가능한 양자화기가 적용되며 QF들이 온라인(on-line)상에서 기록된다는 것이다. 이것은 전에 제시된 방법으로는 불가능했다. 왜냐하면 항상 필요한 QF 모델이 주로 통계적인 방법에 의해 얻어졌기 때문이다. 비록 라그랑즈 승수 방법의 근본 이론은 QF들이 단지 정수 값이어야 한다던가 QF들이 최소와 최고 한계 사이에 있는 모든 정수 비율로 계산되어져야 한다던가 하는 요구 사항은 없다 할지라도 기본적인 조건들이 가정에 다 포함되어진다.
위에 간략하게 소개된 알고리즘들은 각각 서로 독립된 QF들을 다루는 방법들이었는데 각 정보들은 이전 정보에 상당한 영향을 받기 때문에 부호화기는 재구성된 전 프레임을 현재 프레임을 예측하기 위해 이용한다. 그러므로 현재 프레임의 QF는 전 프레임을 위해 사용됐던 양자화기에 상당히 의존하게 된다.
의존적인 양자화의 개념은 의존적 양자화기들 중에서 최적의 비트 할당을 위한 방법은 라그랑즈 승수 방법을 기반으로 정의되었는데 이 방법은 일반화된 정의를 위해 모든 미래의 QF들이 현재 선택된 양자화기에 의존한다는 완전한 전위 의존성(forward dependency)을 가정하였기 때문에 발생되는 문제는 많은 영상정보의 살펴서 양의 탐색에 의해 해결되어져야 한다. 하지만 굉장한 양의 탐색은 라그랑즈승수를 구하는 방법으로는 적절하지 못한데 이 방법이 단지 최소 볼록 집합에서만 해를 찾는 문제에서 기인한다. 새로운 방법을 통하여 특별한 의존적 양자화를 연구하는데 이는 MPEG 시퀀스에 있어서 프레임들 간의 최적 비트 할당과 다중 해상도 부호화기에 있어서 단계들 간의 최적 비트 할당을 어떻게 해야 할 것인가에 관한 것이다. MPEG의 경우에 I 프레임은 시간적 의존성을 없애며, 비터비(Viterbi) 알고리즘은 동적 프로그래밍(DP)으로 비제한적인 문제를 해결하기 위해 사용되어질 수 있다. 유사한 의존적 양자화 개념에 기반한 방법론도 제시되었는데 라그랑즈 승수와 동적 프로그래밍 기법을 이용하여 의존적 부호화기의 프레임당 최적 비트 할당을 구하는 것을 제안했는데, 부가적으로 높은 차수의 의존성을 갖는 의존적 양자화 방법을 제시하였으며, 의존적 양자화를 위해 최소 최대 왜곡 문제(minimum maximum distortion problem)를 해결하기 위한 새로운 방법도 소개하였다.
최소 최대 비트 할당 문제(minimum maximum bit allocation problem)는 최대 왜곡이 최소가 되도록 양자화기를 선택하는 문제가 중점이다. 따라서 영상정보의 세심한 분석이 필요하고 각 영상정보가 가지는 특징을 이용하여 부호화되는 비트를 최소화 하면서 영상의 왜곡을 최소로 만드는 양자화 값을 계산하여 내는 부분에 중점을 두어서 살펴보아야 한다.
종래에는 정확한 rate control을 위하여 MPEG Rate control algorithm 중에서 MPEG-4 VM5의 Rate control 방식이 사용되었다.
영상이 주어지고 그 영상을 Coding 하는 데에는 Qp 값이 필요하게 되는데 VM에서 사용하는 Rate control model에서는 다음에 보여지는 방법론이 사용된다.
이 Model은 MPEG 95/0436,MPEG 96/1109에 바탕을 두는 방식으로 이 Rate Distortion Model의 기본구성은
으로 Coding Frame의 MAD value와 Quantization parameter로 구성되어 대응되는 Bits를 출력하는 함수이다. 이 Qp 값은 Frame Coding에 주어지는데 이 Qp value의 변경으로 Actual bits를 조정할 수가 있다. 그래서 Coding 할 Frame에 주어지는 Target bits와 Frame의 MAD value를 이용하여 함수를 역이용하여 대응되는 Qp value를 계산하게 된다.
이 계산된 Qp value가 Frame Coding을 한다는 점이다.
VM scalable rate control(SRC)은 다음의 rate distortion function을 모델로 하여 구성된다.
R = X1*S*Q**(-1)+X2*S*Q**(-2)
여기서,
-R : encoding bits
-S : encoding complexity ( sum of absolute difference :: SAD )
-Q : quantization parameter
-X1,X2 : modeling parameters
VM SRC에는 기본적으로 네단계로 나누어진다.
1) model의 parameter들을 초기화 한다.
-(X1, X2를 초기화)
2) encoding을 하기전에 target bits를 정하는데 다음의 조건을 만족 시켜야 한다.
-buffer의 상태에서 사용 가능한 bits량과 이전 frame의 encoded bits에 기본으로 계산된다.
-최소의 화질을 유지하기 위한 bits 할당의 하한계를 둔다.(R/30)
-버퍼의 상태가 overflow와 underflow 발생을 일으키지 않도록 하여야 한다.
3) encoding을 하기전에 Qp를 계산 하여야 한다.
-RD model에서 역함수로 target bits를 주고, parameter X1,X2와 현 frame의 SAD값을 가지고 계산한다.
-출력값은 1-31로 한다.
-Qp의 변화율은 이전 frame의 화질을 고려하여 25% 이내에서 변화되도록 한다.
4) encoding 후에는 model의 parameter들을 encoding 결과에 따라서 갱신 한다.
-encoding된 frame의 header부분과 motion vectors의 bits값은 제외한 bits 로 갱신한다.
-update에 사용되는 data는 최근에 사용된 data로 어느 정도의 이전의data를 이용한다
-갱신된 RD curve에 어긋나 에러가 큰 data들은 제거한 후 다시 RD curve의 parameter들을 계산한다.
-버퍼의 상태를 검사하여 현 버퍼의 크기가 80% 이상이면 다음 frame은 스킵한다.
그러나, 이러한 방법을 통하여 계산된 결과는 도 3의 곡선(303)과 같은 형태를 나타내기 때문에 실제의 값들과는 많은 차이가 난다는 문제점이 있다
상기한 문제를 해결하기 위해서 본 발명에서는 신경망(Neural net) 이론을 적용하여 실제로 필요한 전송율에 가장 근사한 전송율로 코딩하는 방법을 제공하는 것을 목적으로 한다.
도 1은 MPEG 부호화를 하는 일반적인 방법을 도시한 것
도 2는 부호화시 coding rate를 제어하는 종래의 방법을 나타낸 블록선도
도 3은 RDF 그래프의 한 예
도 4는 샘플 영상을 이용하여 입력으로 사용하는 영상데이터를 추출하는 과정을 도시한 것
도 5는 정규화(normalization)을 도시한 도면
도 6은 K-means 알고리듬을 이용한 그룹화를 나타낸 도면
도 7은 RBFNN의 구조를 나타낸 도면
도 8은 간략화 된 RBFNN의 rate control function부분
도 9 및 도 10은 종래의 VM 방법을 통하여 부호화를 한 결과와 본 발명을 이용하여 부호화를 한 결과를 비교한 것
상기한 목적을 달성하기 위해서 본 발명은 (a) 다수의 샘플 영상들로부터 입력 영상 데이터의 특징벡터들을 추출하는 단계; (b) K-means 알고리듬을 이용하여 Global RD curve를 구성하는 단계; (c) 상기 (b) 단계에서 구성된 값을 이용하여 신경망을 통하여 함수를 추출하는 단계; 및 (d) 상기 (c) 단계에서 추출된 함수를 이용하여 입력되는 영상데이터에 대한 양자화계수 값을 결정하는 단계;를 포함하는 것을 특징으로 하는 부호화에서의 양자화계수를 결정하는 방법을 제공한다.
이하 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
도 4 내지 도 8은 본 발명의 실시를 하기 위한 각 단계를 순서대로 도시한것이다. 구체적으로 도 4에서와 같이 입력으로 사용하는 영상 데이터를 추출하는 과정을 거쳐서 데이터 집합을 구성하고 이를 도 5에서와 같이 정규화하고 이 데이터를 도 6에서와 같이 입력형태로 변경한 후에 K-Means algorithm으로 Global RD Curve를 구성하고 구성된 값들을 도 7에서와 같이 RBFNN(Radial Basis Function Neural Net)을 수행하여 에러를 최소화한다. 이렇게 계산된 함수를 이용하여 도 8에서와 같이 MPEG-4 Rate Control에서 실제 영상으로 실행된다. 이하에서는 RBFNN의 개략적인 설명을 하고, 각 도면에 대하여 자세히 설명한다.
1. RBFNN의 전반적인 이론
Rate control에서 전송률을 이용하는데 주어진 bits를 보다 효율적으로 이용하기 위하여 target bits에 대응되는 real bits로 coding하는데 필요한 Qp를 정하는데 중점을 주어야 한다. Frame skip를 가능한 한 방지하고 coding되는 frame들이 적절하게 동일한 bits를 할당받도록 하여야 한다. 그래서 동영상들의 일반적인 특징을 관찰하고 coding시에 영향을 미치는 요건들을 활용하여서 각 frame에 주어진 target bits에 맞는 real bits를 생성하도록 Qp를 생성하는데 중점을 둔다.
새로운 방식의 MPEG-4 Rate control algorithm을 사용하는데 있어서 몇 가지 제반 사항을 먼저 살펴볼 필요가 있다. 먼저 사용하는 RD Model의 형태는 이전에 사용되는 각 영상에 특성화된 모델을 모두 포함하여 모든 영상 정보에 대한 RD Model을 가지도록 하여 어떠한 형태를 지닌 영상에서도 적합한 Model을 찾아서 적절하게 이용할 수가 있도록 한다.
즉 Global RD Model이 필요하게 되는데 이 모델을 계산하는 과정이 우선적으로 처리되어야 한다. 그리고 영상정보를 일반적인 모델에 맞도록 RD Model을 계산하는 과정이 더하여 지고 이 과정을 가장 적절하도록 최적화하는 과정을 거치게 된다.
다음은 이러한 과정을 살펴보게 된다.
1-1. Global RD Model
실질적인 영상정보는 어느 특정한 모델을 가지고서는 처리하는 것은 어려운 부분이다. 모든 영상은 각각의 특징에 알맞은 모델을 가지고 있고 적합한 모델 정보를 가지고서 주어지는 영상정보를 부호화하는 것이 올바른 방법이다. 그러기 위해서는 주어지는 영상 정보의 모든 경우의 영상정보의 특징을 알고 있을 필요성이 있다. 하지만 굉장히 많고 복잡한 영상 정보를 모두 처리하여 각각에 알맞은 모델을 생성하는 것은 거의 불가능한 부분이다.
모든 영상정보의 대표적인 특징을 알고 있다면 새롭게 주어지는 영상정보에 대하여 특징을 구할 수 있으므로 각 영상정보의 특징을 알아내는 작업은 각 영상 정보들이 가지는 여러 가지 값들을 평가할 필요가 있다. 여러 영상정보가 서로 복합적으로 관련되어 있으므로 정보들이 가지는 특징을 비교하여서 서로 비슷한 특징을 지니는 정보들의 모임을 구성할 수가 있다. 각 정보들의 모임에서 대표적인 특징을 나타내는 값을 설정하고 특징을 구성하는 요소들을 이용하여 새로운 정보들에 대하여서도 비슷한 특징을 가지는 모임에 속하도록 하여 모임의 대표적인 값이 현 정보를 대신하여 표현할 수가 있다.
먼저 아주 다양한 영상 정보들을 이용하여 정보를 대표할 수 있는 특징들을알아내어야 한다. 각각의 영상정보를 부호화하는데 사용되는 비트 값은 모든 영상 정보들이 서로 다른 값을 가지게 되므로 정보를 나타내는 한 특징이 된다. 그리고 영상정보는 현 영상정보가 이전의 영상정보에 의하여 영향을 받는 의존적인 부호화가 이루어지므로 연관관계에 대한 각 정보들의 특징을 구할 수가 있다. 이전 영상정보와 현 영상정보의 변화가 생겨서 변경된 부분의 양은 각 정보들이 가지는 이전 영상과 현 영상의 관련성을 포함하고 있으므로 관계되는 부분의 특징으로 처리 할 수 있다. 현 영상정보가 이전 영상정보와 비교하여 상당한 차이를 보이는 경우에는 영상의 부호화 과정에서 관련성정보로 부호화하는 것이 독립적인 정보로 부호화 하는 경우보다 더 복잡한 상태를 만들어 내기 때문에 독립적인 부호화가 많이 사용된다. 이러한 독립적인 부화화인지 관련적인 부호화인지에 따라서 영상정보의 특징을 대변할 수가 있다. 그리고 영상정보는 여러 개의 객체정보를 포함하고 있는데 각각의 객체는 영상의 진행에 따라서 움직임의 변화를 가져오게 된다. 즉 영상을 구성하는 객체는 각 객체별로 움직임의 정보를 지니게 되고 영상전체의 움직임을 알 수 있는 특징으로 구성된다. 움직임이 많은 영상정보는 이전 영상과의 관련성에서 움직임이 적거나 없는 정보와 확실히 구분되고 움직임의 크기에 의하여서도 구분 지을 수 있는 요소가 된다.
이러한 영상정보를 몇 가지 특징적인 요소로 대표하여 표현할 수가 있다. 이렇게 표현된 아주 다양한 영상 정보들을 모아서 비슷한 특징을 나타내는 영상정보끼리 모을 수가 있다. 비슷한 영상 정보들의 모임은 모임을 대표할 수 있는 정보를 가지게 되고 이러한 대표 정보들의 집합은 거의 모든 영상 정보들을 포함하고 대표할 수가 있다. 즉 영상정보의 전체적인 정보를 지니게 되는 것이다.
1-2. Clustering algorithm
수 많은 영상 정보들을 이용하여 각각의 영상정보의 특징을 추출하여 비슷한 정보의 모임을 만들어야 한다. 각 영상정보가 가지는 특징의 요소들을 이용하여 모임을 형성하는 방법을 Clustering이라고 한다. 수없이 많은 영상들 중에서 실제적으로 사용 가능한 영상들을 이용하여 전체적인 영상정보의 데이터를 구성한다. 구성된 데이터에서 필요한 특징의 요소들을 추출하여 표본데이터 집합을 만든다. 이 데이터 집합을 이용하여 Clustering을 구성한다. 일반적인 Clustering algorithm은 기본적으로 4단계로 구성이 된다.
-step 1 : 주어진 데이터 집합에서 K개의 부분집합으로 각 특징요소를 계산하여 나누어준다.
-step 2 : 나누어진 부분 집합들이 가지는 데이터 값들이 서로 비슷한 값끼리 모여 있는지와 다른 부분 집합들과의 다른점이 충분한지를 검사한다.
-step 3 : 만족할만한 수준으로 부분집합으로 나누어 졌으면 끝낸다
-setp 4 : 충분하게 Clustering이 되지 않았으면 각 데이터를 더욱 비슷한 부분집합에 배분하고 부분 집합안에 다른 데이터가 있으면 다른 부분집합에 재배정 한다.
주어진 데이터들은 충분한 Clustering과정을 거치면서 비슷한 특징요소를 지닌 영상 정보들끼리 모여서 각각의 Cluster를 형성하고 각 Cluster는 대표적인 영상정보를 중심정보로 가지게 된다.
다음은 일반적으로 사용하는 Clustering algorithm들을 보여준다.
-K-Nearest-Neighbors algorithm : 주어진 정보들에 대하여 가장 가까운 k개의 정보를 이용하여 Clustering을 시행한다.
-K-Means algorithm : 먼저 K개의 Cluster를 만들어 놓은 후 주어지는 정보들을 가장 적절한 Cluster에 배정하여 Clustering을 행한다.
-Threshold clustering algorithm : 하나의 Cluster로 시작하여 주어지는 정보들이 비슷하여 주어진 threshold안에 있으면 현재 존재하는 Cluster에 배정하고 아주 다른 정보로 threshold외에 존재하면 새로운 Cluster를 생성하며 Clustering을 행한다.
-Maximin-Distance Self-Organizing algorithm : 하나의 Cluster로 시작하여 주어진 정보들이 Cluster들의 간격들 사이에 존재하는 정보는 적합한 Cluster에 배정되고 멀리 떨어져 있는 정보는 새로운 Cluster를 생성하며 Clustering을 행한다.
-ISODATA algorithm : 이 알고리즘은 K-means 와 비슷한데 설정된 K개의 Cluster를 주어진 정보들에 맞추어 Cluster의 개수를 조정 할 수가 있다.
위의 알고리즘들 중에서 여기에서 사용할 K-Means Algorithm에 대하여 살펴본다.
1-3. K-Means algorithm
K-Means algorithm은 주어진 Q개의 표본데이터 집합을 이용하여 K개의 cluster를 설정한다.
먼저 주어진 Q개의 정보들 중에서 임의로 K개를 선택한 후 이 정보를 K개의 Cluster center로 설정한 후에 남아있는 정보들을 유클리드 거리로 가장 가까운 Cluster center에 배정한다. 모든 정보들이 배정된 후에는 각 K개의 Cluster에 포함된 정보들을 계산하여 새로운 center를 계산한다. 새로운 center에 대하여 Q개의 정보를 다시 재배정 한다. 이러한 계산을 새로운 center가 이전 center와 비교하여 변경되는 부분이 없을 경우까지 계속한다. 계산이 종료되면 주어진 Q개의 정보에 대하여 가장 적절한 K개의 Cluster들이 남아 있게 된다.
1-4. Neural net
RBFNN을 알기 위하여 먼저 neural network에 대한 기본적인 개념을 살펴본다. Artuficial neural networks는 수 많은 과학적, 기술적인 방법들 중에서 유용한 부분중에서 한부분을 차지한다. 그리고 Neural networks는 아주 다양한 문제들을 해결하는 강력하고 경제적인 도구로서 인식되어 왔다. Neural networks에서 패턴인식문제를 해결하는데 상당한 부분이 할당되었고 연구되고 발전되어 왔다. 패턴인식은 다른 분야에 비하여 충분하게 연구되었다. 근래 몇 십 년간에 통계학적 이론, 문장론적 이론, 신경망 이론, 퍼지 이론들이 다양한 인식 문제를 해결하기 위하여 이용되어 졌는데 실제적인 부분에서는 한가지를 이용한 접근법은 충분한 해결책을 얻을 수가 없었다. 그래서 성공적인 인식 시스템은 통계학적 접근법이나 신경망에 기본을 두고 있다.
신경망 네트워크에 기초한 시스템의 네트워크구조를 알아보면 Single-layer Feedforward networks, Multilayer Feedforward networks, Recurrent Networks,Lattice Structures가 있다.
1-5. RBFNN 방식
Feedforward artificial neural network의 한 부류인 RBFNN ( Radial Basis Functional Neural Net )은 새롭고 상당히 강력한 알고리즘중의 하나이다.
RBFNN은 패턴의 입력단과 Radial function의 처리부와 neural net의 출력단으로 구성되는데 입력단으로부터의 데이터는 각 center 함수로의 입력으로 구성되고 입력된 패턴은 각 Radial function에서 각 center와의 거리에 따라서 출력되는 값들이 처리된다.
1-6. BRFNN을 활용한 Rate Control
Neural networks 방식으로 rate control를 수행하기 위하여 몇 단계의 수행 과정을 거친다.
먼저 일반적인 영상들의 정보들이 필요하고 그 정보들에게서 필요한 요소를 추출하는 과정이 우선적으로 수행된다. 영상의 일반적인 요소들이 모여지면 각 요소들이 가지는 특징이 비슷한 요소들은 그룹을 형성하게 되는데 이러한 그룹의 특징을 이용하여 신경망에서 영상들의 정보를 이용하여 training을 수행하게 되고 새로운 영상정보는 영상이 가지는 특징을 포함하는 그룹에서의 출력 값으로 신경망에서 수행되므로 동영상 coding에 적절한 bits를 할당하므로 전송률을 조정할 수 있다.
이하에서 이의 구체적인 동작을 도면을 참조하여 설명한다.
2. 영상의 일반적인 정보를 추출
도 4는 샘플 영상을 이용하여 입력으로 사용하는 영상데이터를 추출하는 과정을 도시한 것이다.
MPEG에서 사용하는 일반적인 샘플 영상은 QCIF format으로 176*144의 크기이고 샘플 영상들을 이용하여 영상의 정보들을 추출하여 내게 된다. 동영상들을 coding하는데 있어서 Bits Rate Control을 사용하지 않고 고정된 Qp value를 가지고 영상 정보를 추출한다. 먼저 위에 주어진 이미지를 바탕으로 MPEG-4 Encoder에서 영상 압축을 시행하는데 주어지는 영상에 몇 가지 조건을 설정하게 된다.
-Image size는 QCIF로 176 * 144의 size를 갖는다.
-Image sequence가 300 frame인 image 5개를 이용한다.
-Image frame rate를 30 frame/sec, 15 frame/sec, 10 frame/sec, 6 frame/sec를 이용하여 frame difference를 1 frame, 2 frame, 3 frame, 5 frame을 설정한다.
-Qp value는 1에서 31까지 32개의 값을 설정한다.
각 Coding parameter를 설정하고서 각 Qp value로 Coding된 Frame의 영상 정보에서 발생되는 현상들을 살펴본다. 고정된 Qp를 주어진 영상에 주고서 coding후에 나타나는 actual bits를 관찰하고 그 frame의 특징들을 찾아본다. 각 Frame이 가지는 MAD값을 관찰하고 변화율을 계산한다. Motion vector의 값들에 따르는 각 MV에 대응하는 MB의 개수를 관찰하고 Frame coding에 미치는 영향을 분석한다. 각 MB의 MV의 값의 범위를 살펴보고서 MV의 값에서 비슷한 구간을 가지는 MV의 모임을 만든다. 낮은 MV의 값을 지니는 MB을 모으고 중간 값을 지니는 MB을 모으고 높은값을 지니는 MB를 모아서 MV에 따르는 MB의 개수를 특성화 한다. Frame내에서 MV의 값을 이용하지 않고서 Intra로 coding하는 MB의 개수를 관찰하고 이 IntraMB의 개수가 Frame Coding에 주는 변화를 분석하여 본다. 그리고 각 영상 정보 요인의 서로간에 상관하는 관계를 살펴보고 각 요인들이 얼마만큼의 영향이 있는지를 분석하여 Coding시에 각 요인별로 중요성의 비율을 비교 분석한다.
영상 정보의 각 요인들에 대하여 주어진 동일한 Qp 값에 각 frame에 대응하는 actual bits가 다르도록 영향을 미치는 요인을 들어볼 수가 있다. 먼저 Actual bits는 각 frame에 대응되는 absolute difference 값에 비례하는 현상을 보이고 있다. 그리고 MAD value에 영향을 받지 않으면서 변화되는 actual bits를 볼 수 있는데 이런 변화에 기인하는 요소로는 MV를 들 수 있다. 위에서 보는 것처럼 MV값이 작은 MV1, MV2의 개수와 중간크기의 MV3-MV9의 개수, 큰 크기의 MV10이상인 개수를 살펴보면 MAD값의 변화가 적은 곳에서는 MV1,MV2값들이 actual bits의 변화에 영향을 끼치고 MV3~9사이의 값은 MAD값의 정보로 얻기 힘든 부분의 영상 변화를 표현하고 있다. 그리고 MV10~인 값은 MAD값이 큰 경우에도 MAD값과 함께 하여 actual bits에 영향을 끼침을 볼 수 있다. 그리고 MV를 사용하지 않고 coding하는 IntraMB의 개수를 살펴보면 거의 나타나지 않지만 나타나는 부분에서는 actual bits의 변화에 큰 영향을 끼치고 MAD값에 비례하는 경향을 보이면서 MAD값과 같이 큰 변화의 actual bits에 영향을 끼친다.
3. 이미지 데이터들의 변환
각 image data의 값들은 프로그램 실행을 위하여 순서를 랜덤하게 뒤섞는다.data 의 요소들은 각 값들이 가지는 범위 내에서 normalization 된다. 도 5는 이러한 정규화(normalization)을 도시한 도면이다. MV1,2와 MV3-9, MV10~인 motion vector value와 IntraMB는 QCIF image의 frame내의 MB의 개수이므로 최소값이 0이고 최대값이 99가 되어 이 범위 안에서 변환되는 값을 가지는데 MV1,2와 MV3-9는 최대값이 50 이하의 값을 가지고 변환되고 MV10~의 값은 최대값이 30 이하의 값을 가지고 변하고 IntraMB의 값은 최대값 30이하의 값을 가지고 변화되므로 data value의 변화율에 따라서 normalization된다. MAD value는 최소값은 0에서 최대값 200정도의 범위에 있는데 최대값이 30이하 범위에서 변화하므로 data value에 따라서 normalization된다.
Motion Vector의 경우에는 한 Frame에서 MV1~2의 값을 갖는 MB의 수가 0에서 30까지의 값에 몰려 있고 50이상의 개수는 잘 나타나지 않으며, MV3~9까지의 값을 갖는 MB의 수는 0에서 20의 범위에 값이 표현된다. 하지만 MV10~의 값을 갖는 MB의 수는 0에서 10사이에서 나타나고 그 이상의 값에서는 잘 발생하지 않는다. 각 Frame이 가지는 MAD value를 살펴보면 거의 0에서 13사이의 값을 지니고 있다. 따라서 위의 값들을 Normalization 할 경우에는 최소값과 최대값의 범위에서 Normalization을 할 것이 아니라 주로 데이터들이 발생하는 범위를 위주로 하여 발생 빈도의 최소값과 발생 빈도의 최대 값의 범위를 중심으로 Normalization이 실행되어야 한다. Actual bits value는 최소값 0에서 최대값 100,000정도의 범위에 있는데 data value가 낮은 bits에 많이 모여 있고 bits의 범위가 아주 넓으므로 인하여 Log10을 사용하여 값들을 변환하여 Log10을 취한 값의 최소값과 최대값 사이의범위로 data가 변화되는 값을 갖도록 한다.
Qp값은 1에서 31까지의 32단계의 값을 지니므로 최소값 1에서 최대값 31로서 normalization된다. MV1,2와 MV3-9, MV10~, IntraMB, MAD, Qp는 도 5에서와 같이 normalization되고 actual bits는 Log10을 취한 값의 최소값과 최대값사이에서 normalization된다. normalization된 결과를 MV1,2와 MV3-9, MV10~, IntraMB, MAD, actual bits를 다음 단계의 입력 data로 구조화한다.
4. K-Means algorithm을 이용한 clustering
K-Means의 center 수 k를 설정하고 k개의 center에 일정한 값이나 임의의 값을 정하게 되는데 이 부분의 초기화 설정이 중요한 영향을 끼친다. 따라서 주어지는 input data값을 먼저 k개의 cluster center를 임의로 초기화 설정하고서 input data들을 입력으로 clustering을 시행한다. 구체적인 단계는 다음과 같다.
Step 1 : - 먼저 K개의 샘플을 Center로 설정한다.
데이터를 입력 받는다. 그리고 입력 데이터 중에서 임의의 K개의 데이터를 선택하여 K개의 Cluster center로 초기화 한다.
Step 2 : - 입력받은 샘플들을 가장 가까운 Center에 Clustering한다.
입력 받은 데이터 모두를 Cluster에 배정하는데 각 입력 데이터는 각 Cluster의 Center와의 거리를 계산하여 가장 가까운 거리의 Center를 선택하여 선택되어진 Center의 Cluster에 설정된다. 모든 입력 데이터를 모두 처리 한다.
Step 3 : - 각 cluster에 속하는 데이터 값으로 새로운 Center를 계산한다.
Clustering된 K개의 Cluster를 가지고서 각 Cluster내의 데이터 값들의 평균을 구하여 Cluster의 Center로 설정한다. 새로운 Center와 Cluster내의 데이터 값들의 Mean-Squared-Error를 구한다. 각 CLuster의 MSE를 합하여 Total-Sum-Squared-Error를 구한다.
Step 4 : - Center가 변경되면 다시 시행하고, 아니면 끝낸다.
새로운 Center가 이전 Center와 비교하여 변경되었으면 Step 2.에서 다시 Clustering을 시행한다. 변경되지 않았으면 Total-SSE를 검사하여 만족스러우면 끝낸다
도 6은 K-means 알고리듬을 이용한 그룹화를 나타낸 도면이다. 초기화된 k개의 cluster center에 input data pattern을 입력한다. 각 input data pattern은 6 개의 feature data로 구성되어 있는데 각 feature가 cluster를 계산하는데 있어서 미치는 영향이 서로 다른 차이가 나게 된다. 그래서 각 feature 값이 cluster에 미치는 영향을 계산하여 각 feature에 portion을 주어지게 되는데 주어지는 portion은 clustering할 때 각 feature 값에 적용되어서 clustering이 시행된다. Portion의 값은 모든 feature에 동일한 값을 주는 경우와 서로의 값이 cluster에 영향을 미치는 양에 따라서 상이하게 주어지게 된다.
주어진 Portion외에도 여러가지 Portion을 주어줄 수가 있는데 주어진 Portion에 대한 결과를 이용하여 주어진 Portion을 Clustering의 에러가 감소하도록 Portion을 변경하도록 한다. 동일한 Portion을 이용한 Clustering을 시행하여 영향을 많이 미치는 feature의 portion을 증가 시켜가면서 각 값의 적절한 값을 선택할 수 있다.
각 cluster에 속하는 데이터들의 분포에 따라서 각 데이터가 cluster에 속하는 범위가 달라지게 된다. 각 Cluster에 variance를 변화시켜서 cluster에 포함되는 데이터의 범위를 변경할 수가 있는데 변위폭의 값은 정규적인 값의 1의 값을 기본으로 하여 좁은 범위를 지니도록 1이하의 값으로 변경하여 결과를 산출하고, 1이상의 범위를 지니도록 변경하여서 결과를 산출하여 결과값의 에러가 최소화되는 Variance를 선택한다.
위의 두개의 변동이 가능한 Portion과 Variance를 가장 적절한 값으로 결정하기 위하여 수많은 시물레이션이 필요한데 결과의 에러값이 최소가 되는 방향으로 변동을 가하고 각 결과치를 비교 분석하여 모든 영상 정보에 적합한 값을 세팅한다.
가장 적절한 값을 결정한 후에는 결정된 Portion과 variance를 가진 알고리즘을 이용하여서 data pattern과 cluster center와의 distance value를 계산하여 가장 적은 distance value를 갖는 cluster center에 data pattern을 clustering한다. 모든 training input data pattern에 대하여 clustering이 끝나면 각 cluster에 속하는 data pattern들로서 cluster center를 다시 계산하여 cluster center를 다시 설정한다. k개의 cluster center값이 모든 data pattern으로 clustering 하여도 k개 모두의 cluster center의 변경이 없으면 k개의 cluster center의 값을 저장한다.
각 cluster는 각은 유형을 지닌 data pattern들의 모임으로 6개의 pattern ( Number of MB of MV1-2, Number of MB of MV3-9, Number of MB of MV10~, Numberof IntraMB, MAD value, Target bits )이 모여서 6차원 구조의 cluster가 만들어지고 k개의 6차원 cluster는 k개의 6차원 cluster center를 생성한다.
모든 data pattern에는 대응하는 Qp value가 있는데 각 cluster에는 cluster 유형에 의한 Qp 값들이 존재하게 된다. cluster에 대응되는 대표 Qp를 만들기 위하여 cluster 내의 Qp값들을 계산하여야 한다. 그 중 몇 가지를 들면 cluster내의 data pattern들의 Qp value의 평균 Qp value를 계산할 수가 있다. 혹은 cluster내의 data pattern들의 Qp value의 중간 Qp value를 계산할 수도 있다. 또 다른 방법으로는 Qp value의 개수를 세어서 가장 많은 개수의 Qp value를 대표 값으로 사용할 수도 있다. 이외에 cluster 내의 data pattern이 cluster center와의 distance에 반비례하여 Qp에 가중치를 부여한 후에 대표적인 Qp value를 선택하는 방법도 제시된다.
5. RBFNN을 이용한 training
도 7은 RBFNN의 구조를 나타낸 도면이다. Neural network의 feed forward algorithm으로 Radial basis Functional neural network을 이용하여 input training data를 받아서 target이 되는 출력이 에러가 최소가 되어지도록 한다. K-Means algorithm을 수행하여 clustering 된 각 frame의 clustering center의 값들은 functional link의 radial center값으로 입력된다.
RBFNN에서 각 radial center는 clustering 된 center로 구성되어 training에서 입력을 받는다. 입력되는 data는 image data( 27,900개 )를 이용하여 training를 실행한다.
RBFNN의 기본적인 실행순서를 살펴보면 다음과 같다.
Step 1. - 설정된 100개의 Radial function의 Center를 설정한다.
K-Means clustering으로 계산된 100개의 Cluster center의 값을 Radial function의
Center 값으로 설정한다.
Step 2. - Output node 의 weight값을 초기화 한다.
각 node에 해당하는 weight 의 값을 랜덤하게 초기화 한다.
초기화되는 값은 0.5 < weight < +0.5 의 값으로 한다.
각 변수값과 계수값을 설정한다.
Step 3. - 입력 training data를 받아들여서 각 node별로 error를 계산한다.
Training data를 입력받아서 출력 값을 계산한다.
계산된 Output 값과 입력 데이터의 Target 값을 계산하여 TSSE를 얻는다.
Step 4. - 각 node의 weight를 update한다.
각 노드의 계산된 에러 값을 최소화하는 방향으로 주어진 노드의 Weight를 변경하
여 TSSE의 값이 전반적으로 최소한의 값을 갖도록 한다.
Step 5. - 수행과정이 끝나면 마친다.
계산된 TSSE의 값이 충분하게 작아서 주어진 Error threshold보다 작으면 마친다.
그렇지 못하면 변경된 weight를 이용하여 Step 3에서부터 다시 처리한다.
6. MPEG에 RBFNN을 이용한 Intelligent Coding
MPEG rate control의 방법을 RBFNN으로 처리하기 위하여 rate control function부분을 대체하여 RBFNN으로 대체하여야 한다.
도 8은 간략화 된 RBFNN의 rate control function부분이다. 이 함수의 목적은 Coding 할 Frame의 특성들을 이용하여 주어진 target bits에 가장 적합한 Qp를 알아내는 것이다.
먼저 coding시에 버퍼의 상태에 다른 target bits가 coding에 적합하도록 정하여지는데 각 frame에 할당되는 target bits의 값과 MAD value, 각 MV value의 MB 개수, intraMB의 개수를 RBFNN의 Qp operation function에 입력하여 coding할 주어진 frame의 Qp value를 계산한다.
입력되는 특징 요소의 값들은 입력 값으로 normalization형태와 동일하게 normalization한다.
Target bits를 처리하는 과정은 현재의 buffer 상태에 따라서 이번에 coding할 frame에 bits를 할당한 후 한 frame에 주어지는 최소 값( Rate / 30 )과 비교하여 최소 값보다 작으면 최소 bits를 할당하고 크면 주어진 bits를 이용하여 할당한다. 그리고 할당된 bits가 buffer overflow를 회피하기 위하여 buffer 용량의 90%와 비교하여 버퍼용량의 90%를 넘지 않도록 bits를 할당한 후 이 bits가 underflow가 발생하지 않도록 buffer 용량의 10%를 항상 유지하도록 최소 bits를 유지하도록bits를 설정하여 Target bits를 계산한다. 계산된 target bits는 RBFNN에 입력 값의 형태로 normalization을 하여야 한다. 먼저 target bits를 LOG10로 변환하여 최소 LOG10 Target bits와 최대 LOG10 target bits의 범위에서 0과 1로 normalization한다.
각 입력특징 값인 MAD value와 MV의 number of MB of MV1-2, number of MB3-9, number of MV10~과 number of IntraMB의 값들은 각 value의 최소값과 최대값 사이의 범위로 normalization한다.
각 6개의 입력 특징들을 일력으로 받은 RBFNN rate control function은 특성화된 각 Cluster center의 값과 입력 데이터의 값을 비교하여 각 값을 계산하여 입력 데이터에 가장 알맞게 대응하는 Qp value를 계산하여 출력한다. 이 때 출력되는 Qp value는 가질 수 있는 값의 범위를 벗어나는 값이 출력되는 경우가 발생하는데 이 때는 Qp value가 가질 수 있는 범위의 최소 값과 최대 값의 내부로 값을 계산하여 Qp value output을 계산한다. 계산된 Qp value가 출력되는 결과는 0에서 1사이의 normalization 된 값이므로 원래의 범위인 1에서 31사이로 변경한다.
도 9 및 도 10은 종래의 VM 방법을 통하여 부호화를 한 결과와 본 발명을 이용하여 부호화를 한 결과를 비교한 것이다.
도 9a는 VM에서 coding중의 Buffer 상태와 Target bits의 할당을 보여주는데 Buffer의 Bits 사용량이 많이 변화되고 있으며 전체적인 Buffer의 효율도 낮음을 볼 수 있는데 이러한 문제는 각 Frame에 배정되는 Target bits에 대한 Actual bits와의 Bits Error로서 발생하여 Buffer의 상태가 수시로 변하고 각 Frame에 배정되는 Target Bits도 일정하지 않게 되는 것이다. 도 9b는 본 발명의 RBFNN의 coding중의 Buffer 상태와 Target bits의 할당을 보여주는데 Buffer상태는 상당히 균등에게 변하고 있음을 보여준다. 그래서 각 Frame에 할당되는 Target bits도 비슷한 bits를 배정하고 있다. Buffer상의 Bit가 일정하게 움직이는 것은 각 Frame에 대한 Target bits에 대하여 Actual bits가 적절히 대응하여 bits error가 낮게 발생하기 때문이다.
도 10a의 VM Model에서는 Target Bits에 대한 변화가 많이 생김을 볼 수 있다. 변화되는 Target Bits에 대응하는 Actual bits가 서로 잘 대응되지 못함을 보여주는데 이 현상은 coding되는 각 Frame의 Target bits에 대한 Qp의 결정이 잘못되어서 Actual bits와의 대응이 안되어 Bits error이 많이 발생하는 것이다. 도 10b에서 보이는 Target Bits에 대한 변화는 각 Frame에 적절한 Bits가 배분되고 있음을 볼 수 있고 각 Frame에 대한 Target bits에 Qp value가 계산되어 Actual bits가 잘 대응되고 있음을 알 수 있다. 적절한 Qp value의 조절로 Target bits에 대한 Actual bits와의 Bits error가 적음을 볼 수 있는 부분이다.
본 발명의 상기 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상 설명한 바와 같이, 본 발명에 따르면, 전송채널의 상태에 따라 적절한 양자화계수 Qp가 결정되어서 부호화가 진행되므로 전송채널의 상태에 상관없이 질좋은 영상을 전송받을 수 있는 장점이 있다.

Claims (3)

  1. (a) 다수의 샘플 영상들로부터 입력 영상 데이터의 특징벡터들을 추출하는 단계;
    (b) K-means 알고리듬을 이용하여 Global RD curve를 구성하는 단계;
    (c) 상기 (b) 단계에서 구성된 값을 이용하여 신경망을 통하여 함수를 추출하는 단계; 및
    (d) 상기 (c) 단계에서 추출된 함수를 이용하여 입력되는 영상데이터에 대한 양자화계수 값을 결정하는 단계;를 포함하는 것을 특징으로 하는 부호화에서의 양자화계수를 결정하는 방법
  2. 제1항에 있어서, 상기 (c) 단계는
    (ca) Radial function의 센터를 결정하는 단계;
    (cb) 입력 training data를 받아서 각 노드별로 에러를 계산하는 단계;
    (cc) 각 노드의 가중치를 업데이트 하는 단계;
    (cd) 에러의 발생률이 소정의 값 이하가 될 때까지 상기 (cb) 단계 및 상기 (cc) 단계를 반복하는 단계;를 포함하는 것을 특징으로 하는 부호화에서의 양자화계수를 결정하는 방법
  3. 제1항 및 제2항 중 어느 한 항에 기재된 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020020022316A 2002-04-23 2002-04-23 양자화계수를 결정하는 방법 KR20030083916A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020022316A KR20030083916A (ko) 2002-04-23 2002-04-23 양자화계수를 결정하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020022316A KR20030083916A (ko) 2002-04-23 2002-04-23 양자화계수를 결정하는 방법

Publications (1)

Publication Number Publication Date
KR20030083916A true KR20030083916A (ko) 2003-11-01

Family

ID=32380188

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020022316A KR20030083916A (ko) 2002-04-23 2002-04-23 양자화계수를 결정하는 방법

Country Status (1)

Country Link
KR (1) KR20030083916A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100529311B1 (ko) * 2003-01-21 2005-11-17 삼성전자주식회사 신경 회로망을 이용하여 가변 길이 부호화 비트 스트림의길이를 선택하는 장치 및 방법
KR100790900B1 (ko) * 2006-12-14 2008-01-03 삼성전자주식회사 영상 부호화를 위한 초기 QP (QuantizationParameter) 값 예측 방법 및 장치
KR100919074B1 (ko) * 2004-11-29 2009-09-28 콸콤 인코포레이티드 매개 방정식을 이용한 비디오 인코딩을 위한 레이트 제어

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100529311B1 (ko) * 2003-01-21 2005-11-17 삼성전자주식회사 신경 회로망을 이용하여 가변 길이 부호화 비트 스트림의길이를 선택하는 장치 및 방법
KR100919074B1 (ko) * 2004-11-29 2009-09-28 콸콤 인코포레이티드 매개 방정식을 이용한 비디오 인코딩을 위한 레이트 제어
US8340172B2 (en) 2004-11-29 2012-12-25 Qualcomm Incorporated Rate control techniques for video encoding using parametric equations
KR100790900B1 (ko) * 2006-12-14 2008-01-03 삼성전자주식회사 영상 부호화를 위한 초기 QP (QuantizationParameter) 값 예측 방법 및 장치

Similar Documents

Publication Publication Date Title
US11240498B2 (en) Independently coding frame areas
Chen et al. Rate-distortion optimal motion estimation algorithms for motion-compensated transform video coding
CN110139109B (zh) 图像的编码方法及相应终端
US20060215751A1 (en) Method of selecting among n &#39;spatial video codecs&#34; the optimum codec for a same input signal
JP2001511983A (ja) 知覚特性利用型のトレリスに基づいて低ビットレートでビデオ符号化を行なうレート制御方法及び装置
US6252905B1 (en) Real-time evaluation of compressed picture quality within a digital video encoder
US20080205515A1 (en) Video encoding with reduced complexity
KR20030083916A (ko) 양자화계수를 결정하는 방법
Coban et al. Adaptive subband video coding using bivariate generalized Gaussian distribution model
US9503740B2 (en) System and method for open loop spatial prediction in a video encoder
CN111163320A (zh) 一种视频压缩方法及系统
Pan et al. Complexity-scalable transform coding using variable complexity algorithms
Kossentini et al. Rate-distortion-constrained subband video coding
KR100439578B1 (ko) 버텍스 단위의 움직임 벡터 예측을 통한 3차원 메쉬시퀀스 부호화 장치 및 방법
Zeng et al. Two greedy tree growing algorithms for designing variable rate vector quantizers
CN116962708B (zh) 一种智能服务云终端数据优化传输方法及系统
Nami et al. Lightweight Multitask Learning for Robust JND Prediction using Latent Space and Reconstructed Frames
Chen et al. A low-complexity rate-distortion model for motion estimation in H. 263
KR100393245B1 (ko) 동영상 코딩을 위한 전송 비트율 제어방법
Kwon et al. Very low bit-rate video coding using variable block-size entropy-constrained residual vector quantizers
KR970003105B1 (ko) 적응적인 패턴 양자화를 이용한 영상 부호화 장치 및 양자화 패턴 선정 방법
Ryu et al. Motion search region prediction using neural network vector quantization
CN116962694A (zh) 视频编码方法、装置、电子设备和存储介质
Kumar et al. High-Efficiency Video Coder in Pruned Environment Using Adaptive Quantization Parameter Selection.
Khalil et al. Predictive multistage vector quantizer design using asymptotic closed-loop optimization

Legal Events

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