KR20060027795A - 하이브리드 비디오 압축 방법 - Google Patents

하이브리드 비디오 압축 방법 Download PDF

Info

Publication number
KR20060027795A
KR20060027795A KR1020057022258A KR20057022258A KR20060027795A KR 20060027795 A KR20060027795 A KR 20060027795A KR 1020057022258 A KR1020057022258 A KR 1020057022258A KR 20057022258 A KR20057022258 A KR 20057022258A KR 20060027795 A KR20060027795 A KR 20060027795A
Authority
KR
South Korea
Prior art keywords
block
blocks
sub
frame
encoded
Prior art date
Application number
KR1020057022258A
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 에이엠티 어드밴스트 멀티미디어 테그놀로지 에이비
Publication of KR20060027795A publication Critical patent/KR20060027795A/ko

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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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
    • 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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Analysis (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 디지털 부호화된 비디오 프레임 시퀀스를 압축하는 방법에 관한 것이다. 본 방법에 있어서, 주어진 프레임은 블록들로 분할되고, 선택된 블록들의 정보 컨텐츠는 이웃하는 하나 또는 그 이상의 블록들에 포함된 정보에 따라 변경되며(예측), 이 블록들은 공간 표현에서 주파수 표현으로 변환된다. 변환된 블록들의 정보 컨텐츠는 산술 코딩에 의해 인코딩된다. 코딩의 효율은 여러 가지 방법으로 향상되는데, 예컨대 블록들을 서브-블록들로 동적으로 분할하거나 또는 또다른 변형을 수행하기 전에 블록들에 대해 압축성 분석을 수행하는 것이다. 엔트로피 코딩은 산술 코딩의 파라미터를 결정하기 위해 뉴럴 네트워크를 이용한다. 프레임들은 이용가능한 대역폭과 부호화된 이미지의 품질에 따라 동적으로 다시 스케일링된다.
부호화, 프레임 시퀀스, 압축, 블록 분할, 엔트로피, 뉴럴 네트워크.

Description

하이브리드 비디오 압축 방법 {HYBRID VIDEO COMPRESSION METHOD}
본 발명은 비디오 압축에 관한 것으로, 더욱 구체적으로는 비디오 프레임 시퀀스를 압축하는 방법 및 장치에 관한 것이다.
멀티미디어는 일상 생활에서 역할이 늘어만 가고 있다. 디지털 비디오 영상(동영상)은 거의 모든 곳에서 발견할 수 있다. 디지털 비디오에 포함된 정보의 양은 디지털 비디오 시스템의 전송 대역폭의 향상을 요구한다. 최근의 이 분야에서의 진보에 대한 증거 중 하나는 근래의 플래시 타입 반도체 메모리 모듈의 용량의 급격한 증가(rocketing increase)이다. 유감스럽게도, 디지털 비디오의 정보 컨텐츠는 지극히 많기 때문에, 비디오 디지털 데이터를 저장하는 데 반도체 메모리를 사용하는 것은 실용적으로 불가능하거나 적어도 매우 비용이 많이 든다. 예를 들어, 1분의 완전 해상도(full-resolution)(D1) 디지털 비디오는 압축하지 않으면 1,866 Gbyte 기억 용량을 필요로 한다. 대역폭은 248000 Kbit/s에 이를 것이다. 1990년대 초에, MPEG1로 알려진 비디오 인코딩 방식이 출현하였는데, 이는 디지털 비디오 데이터의 양을 원래의 대략 1/30으로 줄일 수 있는 것이었다. 품질상의 이유로, 이 방식은 개선되었고, MPEG2로 알려진 비디오 인코더가 탄생하였다. 이것이 주로 DVD 및 DVB 시스템에 적용된다. 이 방식의 여러 개선된 것 중에서, MPEG4는 인터넷 지향, 이른바 스트리밍 미디어(straming media)라는 것을 목적으로 설계 되었다.
본 발명의 목적은 고효율의 비디오 데이터 압축 시스템이다. 제안된 시스템은 비디오 데이터를 반도체 메모리 모듈에 저장할 수 있도록 하여, 비디오 데이터의 저장에 컴퓨터 시장에서 널리 보급되어 있는 RAM 모듈과 같은, 저가의 RAM 메모리 모듈을 사용하는 애플리케이션를 허용한다. 이러한 비기계적인(non-mechanic) 저장 시스템(즉, 움직이는 부품이 없는 저장 시스템)은 방송 프로그램을 중간 저장하기 위해 TV 수상기와, 위성 및 케이블 TV 애플리케이션에 사용된 이른바 사용된 셋톱 박스에 편리하게 적용될 수 있고, 또한 종래의 비디오 테이프 레코더를 대체할 수 있다. 본 발명의 압축 방법을 적용하는 부호화 시스템은 또한 종래의 비디오 카메라의 기계적인 테이프 레코딩 시스템을 대체하여 디지털 데이터를, 예를 들어 플래시 메모리에 저장하기 위해 유익하게 사용될 수 있다.
제안된 하이브리드 비디오 압축 부호화 시스템은 양호한 비디오 품질을 유지하면서 디지털 데이터 스트림의 대역폭을 300-600 Kbit/s로 감소시킬 수 있는데, 이는 2시간분의 비디오에 단지 4-500 Mbyte 기억 공간이 필요하다는 것을 의미한다.
I.
비디오 프레임 시퀀스를 압축하는 많은 상이한 방법들이 고안되었다.
비디오 프레임들의 부호화 프로세스 중에, 부호화된 데이터의 양은 원하는 품질 및 원하는 총 데이터 길이를 유지하기 위하여 최소 및 최대 한계 값 내에서 동적으로 변화한다. 일반적으로 공지된 소프트웨어 프로그램들은 x개의 프레임으로 구성되는 시퀀스에 대해 계산된 평균 부호화 프레임 길이에 따라서 압축 제어를 수행한다. 평균 길이가 이전의 평균 길이 값을 초과하면, 더 강하게 압축될 것이다(압축률이 증가된다). 평균 길이가 이전의 평균 길이 값보다 작으면 압축율은 특정한 최소 및 최단 한계 값 내로 감소될 것이다.
압축율은 보통 "더 강한(stronger)" 양자화(변환 중에 수행된 "반올림(rounding off) 연산, 아래 참조)를 선택함으로써 증가된다. 그것은 더 높은 에러율(error rate) 및 노이즈를 유발한다. 에러는 흔히 시각적으로 눈에 띄고 방해되며, 특히 1 Mbit/s 하에서 그러하다. 압축율이 프레임에 따라 변화하기 때문에, 일정한 예상 품질의 경우, 보통 원하는 평균 프레임 길이를 유지하기 어렵다. 최소 및 최대 길이 값은 보통 너무 높게 설정될 수 없는 데, 그 이유는 제어 범위가 지나치게 넓게 되고 부호화 길이가 지나치게 큰 스케일로 변화할 것이기 때문이다. 이는 종종 특정한 최소값이 원하는 품질을 제공할 수 없는 경우이며, 그래서 압축율을 더욱 증가시켜야 할 것이다.
I.1 MEPG 방법
비디오 데이터를 압축하는 가장 널리 보급되고 알려진 방법 중 하나가 MPEG이다. MPEG은 공간 중복성(spatial redundancy)에 기초한 압축과 시간 중복성(temporal redundancy)에 기초한 압축을 결합하기 때문에, 하이브리드 부호화 방법으로 간주될 수 있다. 공간 중복성에 기초한 방법은 세부 정보(details)를 줄이거나 프레임 내의 반복되는 특징들(recurring features)을 인식하여 이용함으로써 프레임의 정보 컨텐츠를 줄인다. 한편 시간 반복성에 의존하는 압축 방법은 전후 프레임을 사용하여 이들의 변화만을 부호화한다. 정지 영상(still image)을 압축하는 공지된 방법 중 하나가 JPEG이다. 이 방법도 또한 공간 중복성 이용에 기초한 것이다. 압축될 영상은 블록들로 분할되고 블록들의 정보 컨텐츠는 이산 코사인 변환(discrete cosine transformation)을 사용하여 감소된다.
본 발명의 신규한 특징의 더욱 용이한 이해를 위해, 공지된 MPEG 방식의 동작을 간략하게 개관한다. MPEG 방식의 동작은 도 1에 도시되어 있으며, 그 기능적인 구성요소를 보여주고 있다. 압축될 수신된 블록들은 입력 라인(1)을 통해 선택기(2)로 전달된다. 선택기(2)는 주어진 블록이 인트라(intra)-, 인터(inter)-, 또는 예측된 블록인지를 결정하여 그에 따라 처리한다. DCT(discrete cosine transform, 이산 코사인 변환) 모듈(3)과 양자화 모듈(4)을 통과한 블록은 엔트로피 코딩 모듈(entropy coding module)(13)에서 부호화되어 비디오 멀티플렉스(14)를 통해 출력(15) 상에 전송될 또는 저장될 압축된 출력 데이터 스트림으로 출력된다. 인트라/인터 블록들의 변환된 데이터(아래의 설명 참조)는 역양자화(inverse quantization) 모듈(5), IDCT(inverse discrest cosine transform, 역 이산 코사인 변환) 모듈(6) 및 선택기(7)에 의해 재구성되고, 이 데이터들은 최종적으로 참조 프레임 저장부(8)에 기입된다. 이하에 상세하게 설명하는 바와 같이, 양자화 모듈(4)은 본질적으로 DCT 변환된 블록(DCT 계수들(coefficients))의 요소들을 양자화 인자로 분할한다. 계수들은 역양자화 모듈(5)에 의해 재구성되는데, 실제로는 계수들을 양자화 인자와 곱함으로써 재구성된다. 다시 말해, 역양자화 모듈은 DCT 계 수들의 원래 값을, 정수 분할로부터 발생하는 에러에 의해 허용된 적어도 가능한 범위에서 복원하기 위해 시도한다. 이것은 각 프레임 또는 프레임 내의 블록을 즉시 복호화할 의도로 실행된다. 즉각적인 복호화는, 이 방법이 복호화된 프레임을 다음 프레임을 부호화하는 데 참조로 사용하기 때문에 필요하다. 이 절차는 엔트로피 코딩(디코딩)(entropy coding(decoding))을 포함하지 않는데, 이는 엔트로피 코딩은 복호화된 참조 프레임에서 고려되어야 할 정보 손실을 유발하지 않는 것으로 간주할 필요가 없을 것이기 때문이다. 첫 번째 프레임은 참조 프레임이 없는데, 이는 첫 번째 프레임이 항상 이른바 인트라 프레임(I 프레임)이라는 것을 의미한다. 따라서, 첫 번째 프레임으로 위의 절차는 전체 I-타입 프레임이 처리될 때까지 반복된다. 선행(previous) 또는 후속(subsequent) 프레임을 참조 프레임으로 사용하는 프레임들 및 블록들은 각각 P-타입 및 B-타입 프레임/블록이라고 한다.
다음에 수신된 프레임의 블록들은 참조 프레임 저장부(8)에 저장된 참조 프레임에서 부호화될 블록의 참조 블록 검색을 시도하는 움직임 추정 모듈(motion estimation module)(10)에 공급된다.
움직임 추정 모듈(10)은 검색된 참조 블록을 사용하여 움직임 보상을 수행하고, 그런 다음 부호화될 (원래의) 블록을 예측 모듈(9)이 참조 블록에서 감산하고, 그 차(difference)는 전술한 변환을 실행하는 모듈들, 즉 선택기(2), DCT 변환 모듈(3), 및 양자화 모듈(4)에 전달되고, 그 후 엔트로피 코딩 모듈(13)에, 그리고 최종적으로 비디오 멀티플렉서(14)에 전달된다. 움직임 보상의 결과로서 생성된 움직임 벡터(motionvector, MV)는 엔트로피 코딩 모듈(12)에 의해 부호화되어 움직 임 벡터를 출력 데이터 스트림(15)에 삽입하는 비디오 멀티플렉서(14)에 전달된다.
도면 부호 7로 나타낸 모듈은 선택기/합 모듈이며, I-타입 블록들의 데이터는 변경되지 않은 상태로 두고, P-타입 및 B-타입 블록들인 경우에 검색된 참조 블록을 역변환된 차와 가산한다. 따라서 재구성된 블록은 그 후 참조 프레임 저장부에 기입된다. 검색 중에 발견한 위치들(positions)은 벡터로 변환되고 엔트로피 코딩 모듈(12)에 의해 부호화된다.
이러한 동작에 대해 이제 더욱 자세하게 설명한다.
I.2.1
시간 중복성에 의존하는 압축 방식들은 연속적인 프레임들의 변화된 부분들만을 부호화한다. 실제로, 이것은 프레임들을 블록들로 분할하고, 선행 또는 후속 프레임의 검색 범위 내에 위치된 픽셀들에 대해 개별 블록들을 픽셀단위로 비교함으로써 실행된다. 이 절차는 도 2에 도시하였으며, 프레임(17)의 주어진 블록(20)은 이전 프레임(16)에 위치한 검색 범위(21) 또는 후속 프레임(18)의 검색 범위(18)에서 검색되는 가장 일치하는 참조 블록을 나타낸 것이다. 참조 블록은 어디라도 위치할 수 있으며, 참조 프레임 16 또는 18로 나타낸 검색 범위(회색으로 도시)와 일치할 필요는 없다. 물론 참조 검색이 주어진 참조 프레임(들)에서 실패하는 경우가 발생할 수도 있다. 아마도, 참조 프레임들(17, 18)은 참조 검색을 위해 블록들로 분할되지 않으며, 블록들은 오직 더 잘 개관(overview)하기 위해 도 2에 도시된다.
비교는 다음의 식을 사용하여 수행된다:
Figure 112005067001496-PCT00001
위 식에서, MSE는 본질에 있어 부호화될 블록과 검색된 참조 블록의 개별 픽셀의 비교를 정량화하는(quantifying) 평균 제곱 오차(Mean Square Error)이며, 비교는 픽셀단위로 수행되고, 지수 k, l은 부호화될 블록의 위치를 결정하는 지수이고, 지수 u, v는 참조 프레임에 위치한 검색 범위를 지시하는 지수이고, M, N은 블록의 수평 크기와 수직 크기이다.
부호화될 블록을 포함하는 프레임의 전 및 후에 연속적으로 위치한 프레임들을 획일적으로 참조 프레임들이라고 부른다. 검색 절차 중에, 32/32 픽셀의 전형적인 크기를 갖는 검색 범위는 기준 프레임에서 설정된다. 부호화될 현재 블록의 위치는 검색 범위의 중앙으로 표시될 것이다. 즉, 부호화 프로세스가 현재 위치 10에 있으면, 이 위치 10은 참조 프레임에서의 검색 범위의 중앙이 될 것이다. 범위는 현재 블록에 대해 스텝단위로(step-by-step) 주사되며, 오차(앞서 기술한 MSE 값)는 각 스텝에 계산된다. 최선의 참조 후보는 오차가 최소인 검색, 즉 부호화될 현재 블록과 가장 일치하는 블록이다. 오차 값에 기초하여, 검색이 성공적인 것으로 간주될 수 있는지 여부를 결정할 수 있다. 검색이 성공적인 경우, 검색된 참조 블록 위치는 완전 해상도(full resolution) 모드로 취득된다. 하지만, 대부분의 경우에 검색 결과는 만족스럽지 못하다. 이 문제를 좀 더 자세하게 조사하면, 과도한 오차(와 그에 따른 검색 실패)의 원인은 오차 측정 방법인 것으로 이내 판명 된다. 예를 들면, 노이즈가 있는 프레임들의 경우, 최상의 위치에서조차도 두 개의 블록은 일치할 수 없으며, 블록들의 정보 컨텐츠는 단지 그 노이즈 때문에 다르다. 이러한 상황은 또한 블록의 변위(displacement)가 픽셀 크기의 정확한 배수가 아니고, 그 변위가 두 개의 정수 픽셀 사이의 어딘가에서 끝나는, 즉 실제 변위가 오직 픽셀 크기의 분수로서 정확하게 표현될 수 있는 경우에 발생한다. 따라서, 현재블록과 그것의 참조 사이에 적절하게 일치하는 것을 제공하기 위해, 노이즈 및 다른 방해 인자들(disturbing factors)은 필터링되어야 한다. 보통 저역 통과 필터들이 이러한 목적에 사용된다. 미리 결정된 샘플링 주파수에 좌우되는 고주파 성분의 댐핑(damping)을 수행하여, 화상 노이즈를 어느 정도 억제할 수 있다. 필터들은 보통 각 픽셀을 그 옆 또는 위에 위치한 픽셀들과 평균함으로써 오차들을 보상한다. 예를 들면, 소위 1/2 픽셀-해상도 참조 프레임은 원래 프레임의 두 개의 이웃하는 픽셀마다 그 사이에 하나의 픽셀을 삽입하여 생성되며, 두 개의 이웃하는 픽셀의 평균값을 갖는다. 그 결과는 새로운 픽셀이 모두 두 개의 이웃하는 픽셀마다의 평균값으로부터 생성되면 실질적으로 동일하며, 원본(original)과 동일한 해상도를 갖는 새로운 프레임을 생성하기 위해 그 새로운 픽셀들을 사용한다. 이 프레임은 수평적으로 보간 되었을 경우에 실제로 원본에 대해 1/2 픽셀 왼쪽으로 시프트되고, 수평적으로 보간 되었을 경우에 1/2 픽셀 위로 시프트된다.
I.2.2
오차 보상을 위해, 보통 쌍일차(bilinear) 필터들이 제안된다. 쌍일차 필터링은 3개의 보간된(필터링된) 참조 프레임, 즉 하나는 수직으로 보간, 하나는 수평 으로 보간, 그리고 하나는 수평 및 수직으로 보간 참조 프레임의 생성을 포함한다. 참조 프레임이 복호화된(재구성된) 여러 인트라( 또는 인터) 프레임인 것을 기억하여야 한다. 이것은 주어진 참조 프레임에 기초한 추가적인 프레임들이 복호화된 참조 프레임에 존재하는 양자화 오차에 의해 더욱 열화되는 것을 방지하기 위해 수행된다.
다음 단계(phase)에서, 검색이 1/2 픽셀 해상도로 계속된다(즉, 필터링된 참조 프레임에서 계속된다). 선택기 S는, 식 S=(y & 1) * 2 + x & 1(여기서, &는 논리 AND 연산)을 사용하여 일치된 x, y 위치의 비트들로부터 생성된다. 다음에, 새로운 검색 범위는, 최선의 블록의 위치를 가지고, 제1 검색 단계(필터링되지 않은 참조 내의 검색)에서 발견되고, 범위의 중앙으로 설정된, 한계값 -1/+1, -1/+1, 즉 (x +(-1/+1),y + ( -1/+1)) 로 설정된다. 이제 새로운 범위를 사용하여 검색을 반복한다. 선택기는 위치들에 따라 필요한 보간된 참조 프레임과, 또한 그 위치들에 의해 결정된 프레임 내의 특정 블록을 고르고, 현재의 블록에 대한 제곱된 오차를 계산한다. 검색의 끝에서, 오차가 최소였던 위치가 계속 유지된다. 그래서, 현재 블록의 픽셀들을 오차가 최소였을 때 선택기가 가리켰던 블록의 픽셀들로부터 감산할 것이다. 이것은 도 3에 도시되어 있다. 부호화될 프레임(22)의 블록(24)과 유사하거나 동일한 블록이 참조 프레임(23)에서 탐색 된다. 가장 일치하는 블록(25)이 발견되면, 그 컨텐츠는 데이터 라인(28)을 통해 Sad/Sub(비교) 모듈(29)에 공급되고, 위치 값들에 기초하여 식 S = (y & 1) * 2 + x & 1에 따라 선택기에 의해 선택되었던 어느 하나에 따라, 필터링되지 않은 참조, 수평으로 보간된(필터 링된) 참조, 수직으로 보간된(필터링된) 참조, 또는 양방향으로 보간된(필터링된) 참조 중 어느 하나를 사용하여 비교가 수행된다. 이 절차는 국부적으로 필터링된(보간된) 필터링되지 않은 참조만을 포함한다. 절차는 3개의 사전에 필터링된 참조 프레임(수평, 수직 및 양방향으로 보간된 것)이 이용 가능한 경우에 동일하다. 그 경우에, 선택기는 위의 대안들(필터링되지 않은 프레임과 3개의 상이하게 필터링된 것들)로부터 적절한 참조 프레임을 선택하여, 추가적인 비교와 처리를 위해 위치 x, y에 위치된 블록들을 전송한다(forward).
최종적으로, 제곱된 오차 또는 최소 오차 블록의 경우에 부호화될 참조 블록(25)과 블록(24)을 출력 라인(30)으로 전달한다.
I.2.3
다음에, 결과 차이-검색이 성공적인 경우- 또는 검색이 실패였던 경우, 현재 블록 자체가 DCT 변환에 의해 공간 표현(spatial representation)에서 주파수 표현(frequency representation)으로 변환된다. 그런 다음, 데이터의 불필요한 정도(precision)이 이른바 양자화 연산(quantization operation)에 의해 감소된다. 이것은 필연적으로 DCT에 의해 생성된 더 높은 차수의 계수들을 무시하는데, 이들 계수가 대개 작은 값이기 때문이다. 남은 DCT 계수들도 또한 작은 값이거나 0(영)이며, 앞서 설정된 위치 값과 동시에 엔트로피 코딩에 의해 유효하게 부호화될 수 있다. 이 절차는 도 4와 도 5에 도시되어 있다.
도 4는 인트라 프레임의 부호화 프로세스를 개략적으로 나타낸 블록도이다. 입력 프레임(31)을 Y, UV 포맷을 가지며, 여기서 Y는 휘도(luma) 정보를 포함하고, UV는 색차(chroma) 정보를 포함한다. 프레임(31)은, 예를 들어 8x8 픽셀 크기의 블록을 포함한다. 따라서, 개별 블록은 8x8 행렬이며, 주어진 프레임과 관련된 별개의 Y 및 UV 블록을 갖는다. 다음에서, 달리 표시되지 않는 다면, Y 및 UV 블록은 유사하게 부호화 되어서, 일반적으로 도 4에서 행렬 f(i, j)로 표현된다. 주어진 블록에 대해 단계 31에서 수행된 DCT 변환의 결과는 F(u, v)로 표기된 행렬이며, 또한 8x8개의 요소를 포함한다. 단계 33에서 행렬 F(u, v)의 개별 요소를 변경하여, 도 4에서 도면 부호 37로 나타낸 바와 같이 양자화된 행렬 Fq(um v)를 얻는다. 이미 좀 더 일찍 표시된 것처럼, 양자화는 본질적으로 실제 F(u, v) 해열의 일정한 요소들을 무시함으로써 수행되는, 데이터의 불필요한 정도의 감소를 포함한다. 따라서, 이하에서 원래의 블록(original block)에 포함된 정보는 양자화된 행렬(37)에 포함되어 있다. 양자화된 행렬(37)의 첫 번째 요소, 이른바 DC 계수는 단계 34에서 델타 펄스 부호 변조(delta pulse code modulation, DPCM)로 감소된다. 이것은 본질적으로 동일한 크기의 차수를 갖는 후속 블록들의 DC 계수가 서로 감산되며, 이런 식으로 단계 36에서 수행된 정적인(static) 후프만(Huffman) 엔트로피 코딩에 의해 더욱 효율적으로 부호화될 수 있는 더 작은 크기의 DC 계수들이 구해진다는 것을 의미한다. 행렬들의 다른 요소들, 이른바 AC 계수들은 재발생하는 계수들에 대해 오직 발생 총수(occurrence count)와 계수 값의 기입에 기초하는, 소위 런-길이 부호화(run-length coding)을 적용하여 부호화된다. DC 계수 및 AC 계수는 행렬(27)에 나타낸 바와 같이, 소위 지그재그 주사 순서에 따라 양자화된 8x8 행렬로부터 검색된다. 그것에 의해 계수들이 낮은 주파수 계수에서 시작하 여 높은 주파수 계수를 향해 주파수의 오름 차순(increaing order)으로 엔트로피 코더(entropy coder)에 전달된다.
I.2.4
블록이 인트라가 아닌 인터 부호화된(inter coded) 블록인 경우에, 도 5는 일치되고 보상된 P-타입 블록의 부호화를 나타낸다. 이것은 부호화될 블록(42)에 대한 참조 블록(43)을 찾기 위해 탐색된다. 블록(42)은 원래의 위치(40), 부호화될 현재 프레임의 블록들(38) 사이에 위치하고 있다. 참조 블록(43)은 도면 부호 41로 나타낸 위치에 있을 수 있다. 검색은 부호화될 블록(42)을 참조 프레임의 검색 범위(39)에서 스테핑(stepping)함으로써 수행된다. 가장 일치하는 것이 발견되며, 부호화될 블록(42)은 참조 블록(43)에서 감산되어(또는 다른 방식의 끝처리(round)) 부호화될 블록(42)과 일치한 참조 블록(43) 사이의 오차를 생성한다. 이런식으로, 오차의 휘도(luminance)(44) 및 색차(chrominance)(45) 성분을 구한다. 이 성분들은 단계(46)에서 DCT 변환, 양자화 및 런 길이 부호화를 거치게 되고, 최종적으로 단계 47에서 런 길이 부호화된 데이터는 추가로 엔트로피 코딩된다.
원래의 프레임은 복호화 중에 참조로 이용할 수 없을 것이기 때문에, 이미 부호화된 프레임만을 참조로 사용할 수 있다. 그 이유는 부호화 프로세스 중에 이미 부호화된 데이터로부터 참조 프레임을 재구성하여야 하기 때문이다. 이렇게 하는 가장 간단한 방법은 양자화 후에 즉시 역양자화 및 역 DCT를 수행하는 것이다.
참조 검색이 성공한 경우, 일치한 참조 블록은 역변환된 블록에 가산되고, 그 역변환된 블록은 현재 프레임의 현재 위치에 기입된다. 이 단계에서 취득된 프 레임은 다음 프레임의 참조로서 사용될 것이기 때문에, 현재 프레임의 모든 블록이 갱신된다.
참조 검색이 성공한 경우, 그 블록은 인터 블록(inter block)으로 분류되고, 반면에 검색이 실패한 경우 그 블록은 인트라 블록(intra block)으로 분류된다. 블록 분류 데이터는 부호화 프로세스 중에 블록이 어떻게 생성되었는지를 나타내기 때문에 디코더에서 필요로 한다. 프레임들은 같은 원리에 따라 분류된다.
프레임에 대한 참조가 발견되지 않으면(또는 차이(difference)의 부호화가 원래 프레임의 부호화과 실질적으로 동일한 양의 데이터를 요구할 정도로, 프레임이 참조에 대해 변화되었으면), 전체 프레임이 DCT를 이용하여 변환되고 I-프레임으로 분류된다. 프레임이 선행 프레임만을 참조로 사용한다면, 그것은 P-프레임으로 분류되고, 프레임이 선행 프레임 및 후속 프레임을 모두 사용하는 경우, 그것은 B-프레임으로 분류된다.
도 6은 B 프레임에 대해 부호화 시스템이 부호화될 블록(C)의 참조(49)를 선행 프레임(48) 및 후속 프레임(50)에서 검색하여, 최종적으로 최소 오차가 발생된 것 또는 그 둘의 선형적으로 보간된 평균 중 어느 하나를 참조로 깅비한다.
먼저, 일치한 블록 P 및 C의 MSE 값을 계산한 다음, 블록 F 및 C에 대해서도 MSE를 계산한다. 이어서, 시스템은 식 0.5 * (P + F)에 의해 생성된 블록 및 블록 C에 대한 MSE를 계산하고, 다른 결과를 초래하는(alternative yielding) 최소 MSE를 최종적으로 부호화한다. 즉, 블록 C의 MSE가 선행 프레임(48)에 가장 호응한 경우에 프레임(48)의 블록 P가 블록 C의 참조 블록이 된다. 최상의 결과가 프레임 (49)에 이은 프레임(50)에 의해 발생된 경우이면, 프레임(50)의 블록 F가 블록 C의 참조 블록이 되고, 최상의 결과를 블록 F 및 P의 평균하여 얻었으면, 이들 블록 모두가 블록 C의 참조로 사용된다. 블록 기술자 구조(descriptor structure)는 항상 참조의 소스, 즉 블록 C를 어떻게 부호화하였는지를 나타내야 한다.
I.2.5
참조 검색이 성공한 경우, 확정된(established) 참조 위치들이 벡터로 변환되고, 그 벡터들이 부호화된다. 벡터들은 참조에 대한 부호화될 블록의 변위 방향 및 크기를 명기한다.
DCT의 응용예는 다음 사실들에 의해 정당화될 수 있다: 계수들의 일부분이 삭제(소거)되는 경우, 역DCT 변환은 원래의 블록 데이터를 매우 양호한 근삿값으로 재구성할 수 있다. 문제가 발생할 수 있다: 여러 FFT인 경우에만 왜 DCT를 사용하는가? 그 답은, DCT가 비디오 인코딩에 있어 FFT보다 더 우수한 함수 근삿값을 제공한다는 경험적인 증거가 있기 때문이다. 이것은 도 7에 예로서 도시된 몇 개의 구체적인 값으로 나타나 있다. FFT 계수들(52)과 DCT 계수들(53)은 입력 데이터(51)에 대해 각각 FFT 변환과 DCT 변환을 수행함으로써 생성된다. 양자화 후(즉, 계수들을 버림 또는 절단한 후), 절단된 FFT 계수들(54)과 절단된 DCT 계수들(55)를 얻는다. 다음의 역벽환으로, IFFT 재구성된 데이터(56) 및 IDCT 재구성된 데이터(57)를 얻는다. 재구성된 데이터를 곡선(58) 및 곡선(59)로 나타내면, FFT가 계수 절단에 더욱 민감하다는 것을 알 수 있다.
I.2.6
양자화의 목적은 불필요한 세부 정보를 무시하여, 프레임 데이터의 정도(세부 정보의 레벨)를 감소시키는 것이다. 주어진 블록를 정밀 조사(close examination)하면, 블록이 시각적으로 인지되지 않는 많은 세부 정보를 포함한다는 것을 알 수 있다. 그 이유는 인간의 눈의 민감도가 더 낮은 공간 주파수 성분을 향해 증가한다는 것이다. 따라서, 프레임의 더 높은 주파수의 성분을 더 낮은 성분에 비해 더욱 강하게 댐핑하면, 복호화된 프레임에서 변화를 시각적으로 인지할 수 없는 일정한 한계까지, 데이터의 압축률(compressibility)은 증가되었다. 이러한 종류의 양자화는 MPEG1-2 표준에 의해 적용된다. 다른 공지의 방법에 따라, 계수들의 주파수 분포를 무시하고, 그렇게 각 계수는 동일한 상수에 의해 분할될 것이다(H26x-MPEG4). 양자화의 가장 중요한 기능은 DCT 계수들을 기술하는 비트의 수를 감소시키는 것이다. 다시 말해, DCT 변환된 계수들을 가능한 적은 수의 비트로 기술하는 것이 바람직하다. 계수를 기술하는 비트의 수가 적을수록 압축률은 더 좋아질 것이다. 하지만, 정수 분할에 의해 유발된 오차도 또한 제수(divisor)의 값이 증가되면 증가한다.
DCT 계수들을 표현하는 비트의 수를 감소시키기 위한 다른 공지의 방법들도 있다. 예를 들어, 이른바 DC(delta code, 델타 코드) 예측법은 연속하는 DCT 블록들의 0 위치에 있는 값들이 단지 서로 약간 상이하다는 인식에 근거한다. 따라서, DC 값을 선행하는 것에서 감산한다면, DC 성분들의 값과 이들 값을 나타내는 비트의 수도 또한 줄일 수 있다(블록의 0 위치에 있는 계수를 DC라고 하고, 다른 것들을 AC라 한다).
AC 예측의 프로세스는 DC 예측과 유사하지만, 계수들이 상이한 방향들로 주사되고 여러 방법을 사용하여 평균되는 차이점이 있다. AC/DC 예측에 대한 많은 해결법이 공지되어 있기 때문에, 여기서 상세하게 설명하지 않는다.
II.
본 발명의 일반적인 목적은 전술한 공지된 방법의 압축 효율을 향상시키는 것이다. 즉 더욱 구체적으로는 상당히 낮은 계산 부하로 효율적인 압축을 제공하는 것이다. 이러한 목적은 본 설명에 첨부된 독립항에 기술된 본 발명의 방법에 의해 달성된다.
비록 상기 방법들은 그들만으로 유효하게 사용될 수 있지만, 그들의 동시 사용은 한편으로는 개별 방법들의 효과가 가산되고 다른 한편으로는 개별 방법들이 압축 프로세스의 다른 단계들에 관여하기 때문에, 특히 상당한 효과를 낳는다.
다른 장치들 및 본 발명의 단계들을 수행하는 소프트웨어(컴퓨터 프로그램 제품들), 그리고 부호화된 데이터의 압축 해제를 수행하는 다른 실질적으로 반대의 방법도 또한 본 발명의 목적들이다.
본 발명은 이하의 첨부 도면을 참조하여 상세하게 설명된다.
도 1은 종래 기술의 MPEG 인코딩에 대한 개략적인 블록도이다.
도 2는 인터 프레임들을 찾아내는 방법을 나타낸 것이다.
도 3은 참조 블록과 부호화될 블록을 비교하는 방법을 나타낸 것이다.
도 4는 DCT 변환, 양자화 및 후속 엔트로피 코딩의 단계들을 나타낸 것이다.
도 5는 부호화될 블록을 참조 블록에서 감산하는 방법을 나타낸 것이다.
도 6은 선행 또는 후속 프레임들 중에서 참조 프레임들을 검색하는 프로세스를 나타낸 것이다.
도 7은 DCT 방법과 FFT 방법의 차이를 나타낸 것이다.
도 8은 본 발명의 하이브리드 비디오 인코더의 개략적인 기능도이다.
도 9는 인트라 블록들의 예측 모드들을 나타낸 것이다.
도 10은 강한 예측 모드들로부터 예측 모드를 선택하는 방법을 나타낸 것이다.
도 11은 블록 분할의 인코딩에 대한 일 실시예를 나타낸 것이다.
도 12는 상이한 크기의 서브 블록을 사용하는 가능한 블록 분할들titionings)을 나타낸 것이다.
도 13은 3개의 상이한 블록 크기를 포함하는 분할을 나타낸 것이다.
도 14는 두 개의 상이한 블록 크h기를 포함하는 분할을 나타낸 것이다.
도 15a 내지 도 15c는 P 프레임과 B 프레임에 사용할 수 있는 검색 모드들을 나타낸 것이다.
도 16은 감속된 샘플들을 사용하는 참조 검색 방법을 나타낸 것으로, 검색 프로세스 중에 사용된 블록 크기들 및 블록 패턴들을 도시한 것이다.
도 17은 본 발명에 따른 방법에 사용된 보간된 참조 프레임들을 생성하는 방법을 나타낸 것이다.
도 18a는 본 발명에 따른 뉴럴 연산 부호화부(neural arithmetic coding unit)의 뉴런들의 선택(어드레싱)을 나타낸 것이다.
도 18b는 본 발명에 따른 뉴럴 대역폭 제어 시스템의 일 실시예에 사용할 수 있는 뉴럴 네트워크를 개략적으로 나타낸 것이다.
도 18c는 본 발명에 따른 뉴럴 대역폭 제어 시스템의 다른 실시예에 사용할 수 있는 뉴럴 네트워크를 개략적으로 나타낸 것이다.
도 19는 높은 동적 범위(dynamic-range) 뉴럴 대역폭 제어 시스템에서의 입력 데이터의 데이터 경로의 변경을 나타낸 것이다.
도 20은 본 발명에 따른 동적 스케일링 방법을 나타낸 것이다.
도 21은 본 발명의 동적 스케일링 방법 중에 실현된 전송의 신호/노이즈 특징을 동적 스케일링하지 않은 특성들과 비교하여 나타낸 것이다.
도 22는 본 발명에 따른 방법으로 부호화된 비디오 데이터에 대한 복호화 프로세스의 흐름도이다.
도 23은 본 발명에 따른 방법을 사용하는 오디오 및 비디오 데이터 부호화 시스템의 개략적인 블록도이다.
도 24는 본 발명에 따라 부호화된 오디오 및 비디오 데이터를 복호화할 수 있는 시스템의 개략적인 블록도이다.
Ⅲ.
도 8에 본 발명에 따른 하이브리드 부호화 시스템의 논리 구조(개략적인 기 능도)가 도시되어 있다. 이 시스템의 주요 기능 부분은 도 1에 도시된 공지된 MPEG 부호화 시스템과 많은 점에서 유사하다. 입력 비디오 데이터(60), 즉 부호화될 프레임은 프레임 스케일링 모듈(frame scaling module)(61)에 제공된다. 이 프레임 스케일링 모듈은 다수의 상이한 기준(나중에 상세히 설명한다)에 따라, 입력 프레임의 크기를 줄이거나 그 크기를 유지하도록 할 수 있다. 시스템 전체는 부호화 제어부(coding control unit)(62)에 의해 그 정밀한 기능을 이용하여 제어된다. 이 기능에 대해서는 나중에 설명된다. 프레임들 또는 블록들은 인트라/인터(intra/inter) 스위치(63)에 의존하는 인트라 또는 인터 코딩에 따라 부호화된다. 블록들은 DCT 변환 모듈(64), 양자화 모듈(65), 및 엔트로피 인코딩 모듈(72)을 통과하여 변환, 양자화 및 부호화된 상태로 출력(83)에 전달된다. 프레임간 부호화에 필요한 참조 프레임은 역양자화 모듈(66) 및 역DCT 모듈(67)에 의해 생성되며, 이에 의하여 재구성된 참조 프레임이 블록 제거 필터(69)를 거쳐 프레임 저장부(70)에 제공된다. 움직임 보상, 즉 필터링 처리된 참조 프레임과 보상된 움직임 정보(74)(움직임 벡터 및 감산된 블록)는 도면 부호 68로 표시된 모듈에 의해 생성된다(1/2, 1/4, 및 1/8 픽셀 사이의 조정 가능한 해상도를 가짐). 프레임 저장부(70)는 현재의 참조 프레임을 저장하고 있으며, 이 프레임의 블록은 자동으로 리프레시(현실화(actualized))된다. 모듈(71)은 변화를 식별하며, 프레임에서의 변화를 추적하는데 가장 적합한 블록 분할(block partitioning) 방법을 찾고, 모듈(71)은 최적의 블록 분할이 Quad-tree(쿼드 트리) 구조(나중에 설명함)를 이용하는 것을 나타낸다. 엔트로피 인코딩 모듈(72)은 뉴럴 연산 압축장치(neural arithmetic compressor)(아래에 설명함)라고도 한다.
이하, 본 발명에 따른 인코딩(압축)의 일정한 측면에 대하여 상세히 설명한다.
"예측(prediction)"이라는 용어는, 본 명세서에서, 실제 또는 잠재적으로 예상 가능한 유사성을 이용하여, 실질적으로 평균화하는 특징(character)의 연산에 기초하고, 양호한 근사값으로 원래의 값을 되돌리는 복원 가능한 수학식을 포함하는 의미로 사용되고 있다. 이것은 데이터의 재구성이 최초 데이터에 대하여 근사값만을 부여한다는 것으로서, 예상되는 값이 "예측된" 값이다. 실질적으로, 이들 계산(통상적으로 평균화 연산을 포함함)을 수행하기 위하여 특별한 기능이 이용된다.
본 발명의 압축 방법은 본질적으로 하이브리드(hybrid) 특성을 가지는데, 이는 본 발명의 압축 방법이 시간 중복성과 공간 중복성을 모두 갖기 때문이다. 구현되는 압축 방식은 동적으로 변화하는 크기를 갖는 블록을 포함하는 계층적 블록 구조에 기반을 두고 있다. 참조 검색은 현재의 프레임에 바로 선행하는 프레임 및 바로 후속하는 프레임을 이용할 뿐만 아니라, 최대의 깊이가 +1 및 -3 프레임인 선행하는 프레임 및 후속하는 프레임을 이용한다(즉, 후속하는 하나의 프레임과 선행하는 3개의 프레임에 대하여 참조 검색이 가능하다). 본 발명의 방법에 의하여 높은 레벨의 압축이 구현되며, 해상도는 1/2 내지 1/8의 범위를 갖는다. 엔트로피 압축기는 다중 레벨의 예측에 기초하는 최적의 산술 부호화를 수행한다.
다음에, "인트라 예측(intra prediction)"이라는 용어는 하나 이상의 참조 블록에 있는 값에 기초하여, 부호화할 현재의 블록에 있는 픽셀 값을 감소시키거나 영(0)으로 만드는 복원 가능한 수학식을 의미한다.
이를 명확히 나타내기 위하여, 본 명세서에서는, 두 가지 기본적으로 상이한 예측 원리를 참조한다. 이 두 가지 원리는 다음과 같다:
1. 인트라 프레임을 부호화하는데 이용되는 "인트라 예측"; 및
2. 뉴럴 엔트로피 코딩에 이용되는 예측.
이들은 어떤 경우에는 동일하게 된다.
IV. 부호화할 블록의 고속 인트라 예측
IV.1
인트라 예측은 주어진 프레임에서의 이웃하는 블록이 유사한 특성을 갖는 경우에 수행되는 것으로서, 이웃하는 블록들 사이의 공간 상관성을 이용하여 감축시킬 수 있다. 따라서, 선택된 블록(부호화될 블록)의 정보 컨텐츠는, 어느 하나의 블록 또는 상기 언급한 인트라 예측 과정을 이용하여 선택된 블록에 인접하는 블록의 미리 정해진 픽셀의 정보 컨텐츠에 기초하여 변경될 수 있다. 일례로서, 인트라 예측은, 도 9에 개략적으로 도시된 바와 같이, 부호화될 블록의 앞에 위치한 블록의 수직 라인(76), 및 상기 블록의 위에 위치하는 블록의 수평 라인(77)(즉, 라인의 픽셀값) 중 하나, 또는 이들 모두를 이용하여 구현된다. 수직 라인(76)을 B라고 하고, 수평 라인(77)을 A라고 하자.
구체적인 예를 들어 보면,
221, 224, 230, 232
는 부호화될 블록의 위에 위치하는 블록의 마지막 수평 라인(77)이다.
부호화될 블록이 다음과 같다고 하자:
Figure 112005067001496-PCT00002
부호화될 각각의 수평 라인으로부터 수평 라인(77)을 감산하면, 예측된 블록을 얻을 수 있다:
Figure 112005067001496-PCT00003
이 예에서는 수평 예측을 이용한다. 이러한 예측의 장점은 픽셀의 비트 감축이고, 부호화될 블록의 경우와 동일한 것으로 증명된 수평 라인(77)에서 관찰될 수 있는, 왼쪽에서 오른쪽으로 값이 증가하는 경향을 가지기 때문에, 데이터의 엔트로피가 향상된다. 처리 이후의 값의 분포는 원래의 블록에 비해 부호의 출현 빈도가 더 많은 것을 나타내는 2 x "2", 2 x "1", 2 x "0", 4 x "4", 2 x "9", 1 x "7"이다.
변환/예측 타입이 많이 정의될수록, 이들 중 하나를 채택함으로써 취득 가능한 엔트로피가 더 향상된다. 따라서, 제안된 해결법 중 하나의 실질적인 실시예에서, 원래의 블록(75) 대신에, 변경된(예측된) 블록이 부호화된다. 예측된 블록은 부호화될 블록(75)의 수평 또는 수직 라인으로부터 이웃하는 수평 라인(77 A) 또는 수평 라인(76 B)을 라인마다 감산하거나, 원래의 픽셀 값으로부터 A 및 B의 평균값 을 감산함으로써 계산되며, 이 계산은 통상적으로 식(픽셀-(A+B)/2)을 이용하여 수행되고, 이에 의하여, 소위 예측된 블록을 얻게 된다. 이것은 공지되어 있는 해결법이지만, 상이한 크기를 갖는 블록들이 서로 섞여 있더라도 이 블록들을 이용할 수 있을 때, 인트라 코딩의 효율은 크게 향상될 수 있으며, 이에 의하여 더 양호하게 압축될 수 있는 블록을 얻을 수 있다는 것을 알 수 있다. 그러나,수행하여야 하는 계산이 많으면, 이 해결법은 그 자체로는 실행이 불가능하다. 공지된 방법으로서, 예측된 블록에 대하여 DCT 변환 및 엔트로피 코딩을 효과적으로 수행함으로써, 최종적이며 최적인 압축 예측 블록을 얻을 수 있다. 이 방법을 사용하면, 어느 정도까지는 주어진 예측된 블록이 압축될 수 있다. 그러나, 이전의 단계에서 얻어진 최적의 압축 예측 블록은, 재구성된 블록(원래의 블록과 비교하여)의 오차가 너무 크지 않은 경우에만 이용 가능하다. 따라서, 이러한 오차를 측정 및 평가하기 위해서는 반드시 역변환(inverse transformation)이 수행되어야 한다. 이와 함께, 매우 높은 계산 능력이 필요하게 된다.
따라서, 본 발명에 의하면, 압축성 분석(compressibility analysis)은 DCT 변환을 수행하기 전에 부호화될 블록에 대해 이루어지게 된다. 이러한 압축성 분석에 기초하여, 블록은 DCT 및 엔트로피 코딩에 의해 부호화된다. 그러나, 대부분의 경우, 압축성 분석은 부호화될 블록을 서브-블록으로 분할함으로써 블록의 압축성이 조사할만한 가치가 있다는 것을 나타낸다. 이 경우, 다양한 블록 분할 편차와 관련된 블록의 압축성이 분석되며, 가장 유력한 결과를 보증하는 분할이 선택된다. 결국, 인트라 예측에 이어 블록 분할을 수행한 후, 선택된 가장 가능성이 있 는 블록 분할에 기초하여, DCT 변환이 수행된다.
IV.2.
이 프로세스에 대하여 더 상세하게 설명한다.
본 발명의 실시예를 나타내는, 도 12에 도시된 바와 같이, 적절한 블록 크기는 16x16, 8x8, 및 4x4 픽셀이다. 상이한 크기를 갖는 블록의 (인트라)예측은 여러 가지 방법으로 수행될 수 있다. 이들 방법에 대하여 이하에 열거한다.
IV.2.1 4x4 블록의 예측
6개의 예측 타입이 정의된다.
1. DC 예측
S0을 예측 벡터라고 하면,
A와 B가 존재하는 경우에는,
S0 = ∑(Aj+Bj+4)/8
A만 존재하는 경우에는,
S0 = ∑(Aj+2)/4
B만 존재하는 경우에는
S0 = ∑(Bj+2)/4
그외의 경우에는, S0 = 128 이다.
따라서, 예측된 블록은 이하의 식에 따라 계산된다.
DCP(j,i) = IB(j,i)-S0, 여기서, j=0..3, i=0..3
여기서, IB는 부호화될 블록이며, DCP는 예측된 블록이다.
2. 수평 예측
Figure 112005067001496-PCT00004
3. 수직 예측
Figure 112005067001496-PCT00005
4. 수평 및 수직을 조합한 대각선 예측
Figure 112005067001496-PCT00006
5. 수직이 있는 대각선
Figure 112005067001496-PCT00007
6. 수평이 있는 대각선
Figure 112005067001496-PCT00008
Figure 112005067001496-PCT00009
IV.2.2 8x8 픽셀 크기를 갖는 블록의 예측이 유사한 원리에 따라 구현될 수 있다.
이 경우, 4가지 가능한 예측 타입을 정의한다.
1. DC 예측
A와 B가 존재하는 경우에는,
S0 = ∑(Aj+Bj+8)/16
A만 존재하는 경우에는,
S0 = ∑(Aj+4)/8
B만 존재하는 경우에는
S0 = ∑(Bj+4)/8
그외의 경우에는, S0 = 128 이다.
2. 수평 예측
Figure 112005067001496-PCT00010
3. 수직 예측
Figure 112005067001496-PCT00011
4. 대각선 예측
Figure 112005067001496-PCT00012
IV.2.3 마지막으로, 16x16 픽셀의 크기를 갖는 블록의 예측도 유사하다.
이 경우 4가지 예측 타입이 정의된다.
1. DC 예측
A와 B가 존재하는 경우에는,
S0 = ∑(Aj+Bj+16)/32
A만 존재하는 경우에는,
S0 = ∑(Aj+8)/16
B만 존재하는 경우에는
S0 = ∑(Bj+8)/16
그외의 경우에는, S0 = 128 이다.
Figure 112005067001496-PCT00013
(IB는 현재의 블록이며, DCP는 예측된 블록이다)
2. 수평 예측
Figure 112005067001496-PCT00014
3. 수직 예측
Figure 112005067001496-PCT00015
4. " 평면 예측"
Figure 112005067001496-PCT00016
Figure 112005067001496-PCT00017
IV.2.4 따라서, 이러한 측면에서, 제안된 방법은 3개의 상이한 블록 크기와, 14개의 예측 타입을 이용한다. 공지된 방법을 채택하고자 한다면, 높은 계산 능력이 요구된다는 것을 알 수 있으며, 모든 예측 및 이에 후속하는 계산은 16x16 모드(즉, 이 경우 허용되는 블록 크기가 16x16임)가 4번, 8x8 모드가 4번, 4x4 모드가 16번 수행되어야 한다. 실제로, 이것이 의미하는 바는, 16x16 크기의 블록이 서브-블록으로 분할되지 않은 경우에, P → DCT → Q → IQ → IDCT → IP 변환 시퀀스, 이에 후속하는 계수의 엔트로피 코딩, 최초 및 역변환된 블록에 대한 MSE 값의 결정이 4번 수행되어야 한다. 블록을 서브-블록으로 분할하는 것이 허용되면, 상기 설명한 방법에 따라, 변환하는 전체 횟수가 16(4*4)번, 심지어는 96(6*16)번(블록 크기가 작은 경우에도 해당됨)까지 증가한다.
이 때문에, 최적의 예측된 블록을 선택하는 것이 도 10에 제시된 흐름도에 따라 수행된다. 블록 데이터(79)는 멀티플렉서/선택기(80)를 통과하여, 그 블록 크기에 따라, 상기 열거한 것들 중에서 현재의 예측 모드(81)가 선택된다. 선택기(82b)에 의하면, 사용자는, 예측된 블록의 블록 데이터(79)가 직접 또는 아다마르(Hadamard) 변환 모듈(82a)을 통해 처리 모듈(82c)에 제공되도록 설정할 수 있다. 처리 모듈(82c)은 블록의 절대 제곱합(absolute squared sum)을 생성하며, 비교기(83)는 이 결과값인 합을 평가한다. 이 값이 기준 임계값보다 작은 경우에는, 기준 임계값에 일시적인 합계를 합하고, 현재의 예측 모드는 예측된 블록과 함께 처리 모듈(84)에 의해 저장된다. 다음으로, 멀티플렉서/선택기(MUX)(80)는 다음 예측을 위한 모드를 선택하고, 모든 이용 가능한 노드, 즉 블록의 여러 가지 가능한 분할을 포함하는 예측 모드가 검사될 때까지 전체 프로세스가 반복된다. 마지막으로, 최적의 예측된 블록, 및 이 블록에 의해 생성된 예측 모드가 결정된다.
예측된 블록은 이하의 식을 이용하여 처리 모듈(82c)에 의해 가산된다.
Figure 112005067001496-PCT00018
여기서, M은 블록 길이이다.
일부 경우에 있어서, 상기 방법은 공간 주파수를 고려하지 않고 있다는 단점이 있다. 이 때문에, 아다마르 변환 모듈(82a)이 포함되는 것이다. 이 아다마르 변환은 제곱합이 계산되기 전에 수행되며, 사용자는 이 변환을 수행할 것인지 여부를 결정할 수 있다. 아다마르 변환의 정의를 이하에 나타낸다. 이 변환은, 변환된 블록의 주파수 성분/계수를 생성한다는 점에서 DCT 변환과 유사하다. 대부분의 경우에, 변환된 블록이 주파수 성분/계수를 매우 적게 갖는 경우에, 효과적인 예측 결과를 얻을 수 있다
최적의 블록 분할과 이에 대응하는 예측 모드가 상기 설명한 바와 같이 결정된 후에, 남은 변환(DCT 등)이 수행되며, 블록은 엔트로피 코딩 모듈에 의해 부호 화된다.
본 발명의 방법을 종래의 방법과 비교해보면, 본 발명의 방법의 품질/압축률이 cca. 1dB 더 양호하다는 것을 알 수 있다. 종래의 방법으로도 양호한 압축을 얻을 수 있지만, 항상 품질이 문제가 된다. 그러나, 본 발명의 방법은 양호한 영상 품질과, 실질적으로 동일한 압축 효율을 제공한다.
본 발명의 방법에 관한 다른 중요한 특징은, 아다마르 변환이 이용되는 경우에, 본 발명의 계산 부하가 종래의 방법에 비해 대략 1/10이라는 것이다. 아다마르 변환이 이용되지 않는 경우라면, 본 발명의 계산 부하는 종래의 방법에 비해 대략 16분의 1이 된다.
블록의 분할은 성공적인 복호화를 위해 어느 정도 기록되어야 하기 때문에, 블록은 소위 Quad-tree(쿼드 트리) 구조에 따라 분할된다. 16x16 크기의 픽셀로 된 각각의 블록은 4개의 하위 리프(leaf)를 가지며, 4개의 다른 하위 리프를 4x4의 블록 크기까지 압축해제한 루트(root)로서 표현될 수 있다. 이것이 도 11에 도시되어 있으며, 도 11에는 주어진 블록의 4x4 픽셀의 서브-블록(03) 중 하나에, 2x2 서브-블록이 도시되어 있으며, 이들 2x2 픽셀의 블록 중 하나에, 개별 픽셀이 도시되어 있다. 블록의 이미지 옆에 표시된 그래프는 개별의 서브-블록, 또는 블록의 개별적인 픽셀이 필요한 경우 어떻게 식별될 수 있는지를 나타낸다. 해상도가 증가하면, 주어진 분할을 감소시키는데 필요한 데이터량도 증가한다는 것을 명확하게 알 수 있다.
본 발명의 방법에 대한 디폴트(default)로서 이러한 분할 방법(3개의 상이한 블록 크기가 허용되는 경우)이 제안된다. 그러나, 다른 구현 방법으로서, 사용자 또는 시스템 자체가 결정권을 가질 수도 있으며, 2개의 상이한 블록 크기만을 이용하는 모드가 설정될 수 있다. 이것은 전체 프레임에 적절하게 포함되며, 3개의 블록 크기를 갖는 모드와 혼합될 수 없으며, 주어진 프레임에서의 하나의 블록이 2개의 상이한 크기를 갖는 블록 모드와 3개의 상이한 크기를 갖는 블록 모드에서 부호화되는 것을 방지한다.
본 발명의 한가지 제안된 특징으로서의 인트라 예측 부호화에 의하면, 동적으로 변경되는 블록 크기를 이용하는 4가지 가능한 모드(I-타입)가 가능하다. 따라서, I 프레임 전체를 부호화하는 동안, 상이한 크기를 갖는 블록을 적용할 수 있다(적용 가능한 블록 크기를 이하에 열거한다). 중요한 것은, 선택된 모드가 프레임의 헤더 구조에 표시되어야 한다는 것이다. 이 예에서 4가지 가능한 모드는 다음과 같다.
● 3개의 상이한, 동적으로 변경가능한 블록 크기(16x16, 8x8, 4x4)를 이용하는 부호화.
● 2개의 동적으로 변경가능한 블록 크기(16x16, 8x8)를 이용하는 부호화.
● 2개의 동적으로 변경가능한 블록 크기(16x16, 4x4)를 이용하는 부호화.
● 2개의 동적으로 변경가능한 블록 크기(8x8, 4x4)를 이용하는 부호화.
본 방법의 한가지 구현예로서, 사용자는 2가지 픽셀 크기를 갖는 블록과 3개의 픽셀 크기를 갖는 블록만을 선택하거나, 이와 달리, 시스템이 최적의 모드를 자동으로 선택할 수도 있다. 따라서, 사용자는 다음에 설명하는 옵션으로부터 선택 이 가능하다.
1. 3개의 상이한, 동적으로 변경가능한 블록 크기를 이용하는 부호화.
2. 2개의 동적으로 변경가능한 블록 크기를 이용하는 부호화.
3. 상기 옵션들 중 하나를 자동으로 선택.
이 선택은 일반적으로 이용가능한 계산 용량(능력)에 의해, 또는 이와 선택적으로, 부호화될 프레임의 소정의 특징을 평가하는 것에 기초하여 결정된다.
도 12는 상기 설명한 예에서 사용되는 블록 크기를 나타낸다.
IV.3. 3개의 상이하고 동적으로 변경가능한 블록 크기를 이용하는 인트라 예측 부호화(I 타입)
Y 블록의 크기는 16x16, 또는 이와 택일적으로, 4개의 8x8 픽셀 크기의 서브-블록 또는 16개의 4x4 픽셀 크기의 서브-블록이 이용된다.
UV의 크기는 Y 블록의 분할에 대응하는 8x8, 또는 4개의 4x4 픽셀 크기의 서브-블록이나 16개의 2x2 픽셀 크기의 서브-블록이 사용된다(도 13 참조). 중요한 것은, UV 컬러 표면상에서의 2x2 픽셀의 블록 크기가 "인터" 모드에서만 허용된다는 것이다. 3개의 상이한 블록 크기가 적용되기 때문에, 최적의 크기를 선택하는 방법이 필요하게 된다.
종래의 방법에 따라 처리하게 되면, 변환 중 가장 큰 블록 크기를 이용하는 필요한 모든 변환을 수행하여야 하며, 원래의 블록과 재구성된 블록 사이의 오차를 평가하여야 할 것이다. 오차가 한계 값을 초과하는 경우, 블록은 4개의 부분으로 분할될 것이고, 각각의 서브-블록에 대해 변환 및 오차 비교가 반복적으로 행해져 야 한다. 주어진 임계값을 초과하는 오차를 갖는 이들 서브-블록은 다시 4개의 서브-블록으로 분할되고, 변환이 반복하여 수행되어야 할 것이다.
이 방법이 이상적이라고 하더라도, 최종적인 결과를 만드는데 필요치 않는 많은 변환이 포함될 것이다.
블록이 3개의 8x8 픽셀 및 4개의 4x4 픽셀 크기의 서브-블록으로 분할되어야 하는 경우, 16x16 블록에 대해 양쪽 방향에서 한가지 변환 세트가 수행되어야 하며, 4개의 8x8 변환 세트도 양쪽 방향에서 수행되어야 하고, 4x4 변환 세트도 수행되어야 한다. 물론, 이 변환 세트는 16x16 블록에 대해 수행되고, 8x8 블록들 중 하나에 대해 수행되는 변환 세트(DCT 및 엔트로피 코딩-디코딩)는 필요하지 않다. 따라서, 가장 많은 계산 부하를 갖는 이들 변환 세트는 불필요하게 수행되어야 한다.
그래서, 본 발명에 의하면, 블록에 대해 먼저 압축성 분석이 수행된다. 본 발명의 한가지 특징에 의하면, 이 압축성 분석은 블록을 4개의 서브-블록으로 분할하고, 이하의 식을 이용하여 블록에 대해 편차를 계산함으로써 수행된다.
Figure 112005067001496-PCT00019
여기서, M은 서브-블록의 길이이며, 편차 ≤TH8 또는 편차≤TH16이라는 조건을 충족하는지를 검사하여 얻는다.
여기서, TH8 = 8x8 블록에 대해 허용되는 편차 임계값이고,
TH16 = 16x16 블록에 대해 허용되는 편차 임계값이다.
TH8과 TH16은 경험상의 상수이다. 식에서 나타내는 바와 같이, "편차"값은 블록에서의 가시적인 세부 정보의 양을 정량화한다.
사용자의 선택이 행해지면, 계산을 행하기 전에 아다마르 변환이 수행되지만, TH 상수는 아다마르 변환이 없는 변환에 대해 이용되는 것과 상이하다.
모든 서브-블록에 대한 편차값이 ±N의 제한 범위에 속하고, 상기 편차값이 미리 설정된 임계값 TH16을 초과하지 않으면, 블록은 가장 큰 블록 크기를 이용하여 부호화될 수 있다.
상기 조건을 충족시키지 못하는 경우로서, 서브-블록의 편차가 TH8보다 작으면, 주어진 서브-블록은 8x8 크기로 부호화될 수 있다. 그렇지 않으면, 8x8 픽셀 크기의 서브-블록이 추가로 4x4 픽셀 크기의 서브-블록으로 분할되어야 한다.
TH8/TH16에 대한 값을 결정할 때에는 양자화에 의해 생기는 오차를 고려하여야 한다. 왜냐하면, 양자화 오차는 비교적 작기 때문에, 더 큰 블록 크기가 이용하여 만족할만한 결과를 얻을 수 있으며, 블록을 부분분할하는 것이 필요하지 않게 되기 때문이다. 예를 들어, TH 값은 이하의 식을 이용하여 결정된다.
Figure 112005067001496-PCT00020
errorfactor(qp)는 양자화 인자 QP에 기초하여 결정되는 qp에 의해 인덱스된 테이블에서 얻는다. 이 양자화 인자 QP는 나중에 설명되는 본 발명의 뉴럴 제어 시스템에 의해 제공된다. 그러나, 이와 달리, QP는 상수가 될 수도 있으며, 그렇지 않고 다른 공지된 방법을 이용하여 결정될 수도 있다.
오차 인자를 나타내는 테이블은 조합한 양자화 오차 값으로부터 생성되며, 여기서 오차 인자 값은 인덱스가 클수록 감소한다. 다시 말해서, 높은 양자화라는 것은 TH 및 더 엄격한 조건하에서의 변경이 작다는 것이며, 또는 다른 방법에서, 블록에서의 가시적 세부 정보의 양이 많고 높은 양자화에 의해, 블록 크기를 더 작은 블록 크기를 갖는 값으로 수렴시킨다는 것을 의미한다.
이하 설명하는 바와 같이, 블록 분할의 부호화는 상대적으로 많은 양의 데이터를 자체적으로 필요로 한다. 2개의 상이한 블록 크기만이 허용되는 경우에, 블록 분할 데이터를 기록하기 위해서는 몇 개의 추가적인 정보가 부호화되어야 한다.
그래서, 본 발명의 한가지 특징으로서, 블록 분할이 전체 프레임에 대해 분석되며, 통계량이 각각의 블록 크기에 할당된다(즉, 허용된 블록 크기를 갖는 블록의 카운트가 결정된다). 모든 블록 크기에 대한 각각의 출현 비율이 대략 동일하고, 3-블록 또는 자동 선택 모드라면, 프로세스가 계속된다. 그렇지 않고, 대부분의 블록이 2개의 주요한 블록 크기 중 하나라면, 이들 주요한 블록 크기가 결정되며, 본 방법은 동적으로 변경가능한 2개의 블록 크기를 이용하는 인트라 예측 부호화(Intrapredictive coding using two dynamically changing block sizes)이라는 제목의 장(IV.4. 이하)에 설명되는 단계에 의해 수행된다.
본 방법은 두 가지 부분으로 구성된다. 첫째로, 전체 프레임에 대해 편차 계산에 기초하여 압축성 분석이 수행되고, 그 결과로서 최적의 블록 분할이 결정된다 둘째로, 블록 분할이 행해지고 최적의 분할에 대해 발견되었던 예측이 수행되며, 선택된 블록 분할에 속하는 각각의 블록에 대하여, 부호화 및 역변환이 수행되고, 최적인 것으로 판명된 예측을 이용한다.
편차 분석에 의해 주어진 블록의 각각의 서브-블록이 어떻게 분할되어야 하는지가 특정되지만, 이러한 분할은 기록되어야 한다. 대부분의 명백한 해결법은 소위 Quad-tree(쿼드 트리) 구조를 적용한다(도 11에 도시).
블록 전체의 설명을 위해서는 2개의 변수 레벨이 필요하다. 첫 번째 레벨에서의 변수를 L이라고 하며, 두 번째 레벨의 변수를 ABCD라고 표시한다. 주어진 블록이 분할되지 않은 경우, L은 0으로 설정(블록 크기가 16x16인 경우에 L=0)된다. 블록이 분할되어 있으면, L은 1로 설정된다. 서브-블록을 설명하는데에는 4개의 다른 비트가 필요하다. 서브-블록이 추가로 분할(8x8 픽셀의 크기를 가짐)되어 있지 않으면, 관련된 비트의 값은 0이다. 서브-블록이 추가로 분할(4x4 픽셀의 서브-블록으로 분할)되어 있으면, 관련된 비트의 값은 1이다. 예를 들어,
0 --------- 블록이 분할되어 있지 않다
1 0000 블록의 4개의 8x8 서브-블록으로 분할되어 있다.
1 0001 블록의 첫 번째 쿼터가 4x4 픽셀의 서브-블록으로 분할되어 있고, 다른 블록의 크기가 8x8이다.
1 0010 블록의 두 번째 쿼터가 4x4 픽셀의 서브-블록으로 분할되어 있고, 다른 블록의 크기가 8x8이다.
블록이 분할되어 있으면(L=1), 16개의 조합이 가능하며, 데이터를 인코딩하는 경우, 블록의 분할은 L과 함께 5비트의 길이가 되며, 블록이 분할되어 있지 않다면, 분할 데이터는 1비트 길이(L만 있음)가 된다.
블록 분할이 완료된 후, 개별적인 블록에 포함되는 변환이 수행되고, 변환된 블록은 엔트로피 코딩 모듈에서 부호화된다.
IV.4. 2개의 동적으로 변경가능한 블록 크기를 이용하는 인트라 예측 부호화
분석이 2개의 블록 크기를 이용하는 옵션을 지원하는 것으로 결정되면, 2개의 주요한 블록 크기는 이미 결정되어 있다(가능한 서브-블록의 구성이 도 14에 도시되어 있다). 2개의 블록 크기를 갖는 부호화는 상기 언급한 방식과, 약간의 중요하지 않은 조정만을 하고, 동일하게 수행된다.
주요한 블록 크기 중 하나가 16x16(다른 크기는 8x8 또는 4x4)인 경우, 편차가 제한값 TH16을 초과하지 않는다면(즉, 블록이 16x16 크기의 조건을 충족시키는 경우), 블록은 16x16의 크기로 부호화될 것이며, 초과한다면, 부호화 이전에 8x8 또는 4x4 픽셀의 서브-블록으로 분할될 것이다. 그러나, 2개의 주요한 블록 크기가 8x8 및 4x4라면, 블록은 8x8 크기로 부호화되며, 적어도 3개의 서브-블록의 편차값이 TH8보다 작은 경우(즉, 블록이 상기 조건을 충족시키는 경우), 4x4 픽셀의 크기로 부호화될 것이다.
2개의 블록 크기만 허용되는 블록 분할의 장점은 5비트 QT 코드(분할 기술자)가 선택된 분할을 나타내는 단일 비트 코드로 교체될 수 있다는 것이다(예를 들어, 기본적인 블록 크기가 16x16인 경우, 0은 16x16 블록, 1은 8x8 크기의 서브-블록이 될 수 있다).
후속하는 모든 변환은 이미 설명한 것들과 동일하다. 요약하면, 분석에 의해 프레임에 대해 2개의 블록 크기가 선택되고, 이 블록 크기가 전체 프레임을 부호화하는데 이용된다.
도 14의 도면 부호 1, 2, 및 3은 가능한 서브-블록 조합을 나타낸다.
따라서, 블록 부호화 프로세스는 다음과 같이 진행된다.
1. 압축성 분석에 의해 최적이라고 생각되는 블록 분할에 따라 블록을 서브-블록으로 분할한다.
2. 각각의 서브-블록에 대해 최적의 예측된 서브-블록을 결정하고, 이 예측된 블록을 부호화한다.
IV.5. 공간 영역을 주파수 영역으로 변환
IV.5.1 이산 코사인 변환(DCT)은 공지된 기술이다. 그 기본 원리는 모든 블록 크기에 대해 동일하다.
이산 코사인 변환
Figure 112005067001496-PCT00021
여기서, N은 주어진 블록에서의 요소의 개수로서, c(0)=1/√N, c(k)=√(2/N)이며, 1≤k≤N-1이고, x(n)은 부호화될 n번째 요소에 해당한다.
역DCT 변환
Figure 112005067001496-PCT00022
이들 변환은 인자화 행렬 벡터 곱으로서 구현될 수 있으며, 이에 의하여 계산량을 상당히 감소시키게 된다.
현재 구현되는 방법은 정수에 기초한 2D 변환으로 실현된다. 컴퓨터상에서 DCT 변환을 수행하기 위한 몇 가지 방법이 문서화되어 있기 때문에, 이들을 여기서 설명할 필요는 없다.
IV.5.2 아다마르(Hadamard) 변환
Figure 112005067001496-PCT00023
여기서,
Figure 112005067001496-PCT00024
이산 코사인 변환과 유사하게, 아다마르 변환은 FFT의 편차이며, 가장 큰 장점은 이 변환이 행렬 형태로 가산과 감산만을 포함한다는 것이다. 따라서, DCT 또는 FFT에 비해 컴퓨터상에서 더 빠르게 실행될 수 있다. 중요한 단점도 있는데, 그 기능이 연속적이지 않다는 것이다. 즉, 아다마르 변환에 의해 DCT보다 세부 정보가 더 많은 블록에서 가시적으로 더 명확한 오차를 유발한다. 이에 의하여, "평평한"(세부 정보가 더 적은) 16x16 블록에 직접 적용하는 것이 적합하다. 16x16 픽셀의 블록 크기는 가장 많은 양의 계산을 필요로 하기 때문에, 16x16 블록에 대해 변환이 필요할 때마다 아다마르 변환을 적용하는 것이 바람직하다. 여기서 중요한 것은, 특정의 실시예에서, 주어진 블록이 매우 낮은 세부 정보 레벨을 갖는다면, 본 발명에 의해 수행되는 편차 분석은 16x16 블록 크기의 적용을 허용하는 경우에만 이용된다는 것이다.
IV.6 블록 또는 서브-블록의 DCT 변환과 엔트로피 코딩 사이에서 수행되는 단계는 양자화이며, 양자화가 수행되는 동안, DCT 변환 블록의 행렬 요소가 특정의 안내선에 따라 변경되어, 엔트로피 코딩 모듈에서의 부호화가 더 용이하게 될 수 있다.
본 발명에 따른 방법은 표준 MPEG 양자화와 유사하며, 이하의 식을 이용하여 수행된다.
Figure 112005067001496-PCT00025
여기서, qcoeff(j)는 양자화 이후 DCT 변환된 블록에 대응하는 행렬의 j번째 요소이고, data(j)는 양자화에 앞서 DCT 변환된 블록에 대응하는 행렬의 j번째 요소이며, matrix(j)는 양자화 행렬의 j번째 요소이고, QP는 양자화 인자(스칼라 값)이다.
역양자화
Figure 112005067001496-PCT00026
양자화 행렬 matrix(j)는 DCT 변환된 블록과 동일한 크기를 가지며, 원래의 블록 그 자체이다(예컨대, 16x16, 8x8 등). 본 발명의 방법에 의해 제공되는 해결법이 종래의 MPEG 양자화 방법과 다른 점은 본 발명의 방법에서는 양자화 행렬 matrix(j)를 양자화 인자에 의해 선택한다는 것이다. 공지된 MPEG 양자화는 단일의 양자화 행렬 matrix(j)를 이용한다.
양자화 행렬와 QP 양자화 인자 사이의 대응 관계는 양자화 영역 전체를 각각의 부분 영역에 할당된 것으로서 이전에 특정된 대역폭 범위에서 N개의 부분 영역으로 분할함으로써 수행된다. 본 발명의 실시예에서, QP는 1과 36의 범위를 가지며, 이 간격은 (1-4), (4-8), (8-20), (20-36)에 따라 여러 개(일 태양에서는 4개)의 부분 영역으로 분할된다. 이들 부분 영역에 할당되는 대역폭 범위는 초당 6000-1000 KBit/s), 800-1000 KBit/s, 400-800 KBit/s, 100-400 KBit/s이다. 이것이 의미하는 바는, 최적화된 4x3 행렬 테이블(3개의 상이한 블록 크기에 대응)가 분할된 QP 영역에 할당되며, 이 테이블의 개별 요소는 전체적인 양자화 행렬 matrix(j)라는 것이다. matrix(j)의 크기는 블록 크기(4x4, 8x8, 16x16)와 동일하기 때문에, 별개의 행렬이 이들 블록 크기의 각각에 할당되며, 이에 의하여 테이블의 각각의 행이 3개의 셀로 구성된다(즉, 3개의 행렬이 각각의 부분 영역에 할당된다). 따라서, 본 방법이 QP를 변경하는 경우, 새로운 양자화 인자에, 주어진 대역폭에 대응하는 최적의 테이블 행렬(최적의 행렬)이 할당된다.
IV.6. 양자화된 계수의 부호화
본 발명의 압축 시스템에 대한 구체적인 구현예로서, 계수를 부호화하기 위한 3가지 상이한 방법이 구현되었다. 이들 방법의 기본적인 원리는 알려져 있지만, 명확히 나타내기 위하여 아래에 간단하게 설명한다.
IV.6.1. 이산 코사인 변환의 DC 값의 차에 기초한 부호화 방법
그 이름으로부터 알 수 있는 바와 같이, 본 방법은 연속하는 블록의 DC 값을 서로 감산하는 단계와, 그 결과값인 차 값을 산술 부호화 방법에 의해 부호화하는 단계(산술 부호화하는 원리는 공지되어 있으며, 나중에 상세히 설명한다)를 포함한다.
Figure 112005067001496-PCT00027
본 방법은 델타 펄스 코드 변조(DPCM, delta pulse code modulation)라고도 부르며, 연속하는 DC 값들 간의 차가 통상적으로 매우 작기 때문에, 그 차를 그들 자신의 값보다 훨씬 더 적은 수의 비트로 부호화할 수 있다는 것에 기초한다. 본 발명의 방법은 다수의 블록 크기를 이용하기 때문에, 동일한 크기를 갖는 블록의 DC 값만을 연속하는 블록에서 적절하게 감산될 수 있으며, 블록 크기가 DC 계수의 크기를 결정하는 것이 중요하다. 이 산술 방법은 전용의 파라미터(부호화 간격의 부분 분할, 부호화 간격의 상한/하한 등)를 이용하여 각각의 블록 크기를 부호화한다.
IV.6.2 AC 값의 런-길이 부호화(run-length coding)및 그 결과인 압축된 값의 산술 부호화
AC 계수는 소위 "지그재그" 테이블(도 4의 도면 부호 37 참조)에 의해 검색되며, 잘 알려진 런-길이 방법에 의해 압축된다. 이 런-길이 방법은 순차 쌍(계수: 출현 카운트)을 생성하며, 순차 쌍 중 뒤의 값은 데이터 시퀀스에서 주어진 계수가 출현하는 횟수를 특정한다. 주어진 블록에서의 순차 쌍의 전체 개수는 예측이 가능하지 않기 때문에, 순차 쌍의 개수를 지정하거나, 블록의 끝(end-of-block) 코드 가 마지막 순차 쌍 다음에 삽입되어야 한다. 마지막 순차 쌍의 계수 값이 영(0)이라면, 이 마지막 순차 쌍은 부호화될 필요가 없다. 즉, 블록의 끝 코드를 시퀀스에 기입하는 것으로 충분하다. 계수-출현 카운트 쌍은 부호화될 데이터 시퀀스에 반대 순서로(출현 카운트: 계수)로 기입된다. 왜냐하면, 이 방식에서, 출현 카운트 파라미터의 영(0) 값은 블록의 끝 코드로서 이용될 수 있기 때문이다. 모든 순차 쌍이 타당한 것이라면, 출현 카운트가 제로인 경우에 조합은 생기지 않으며, 코드는 블록의 끝 코드로서 안전하게 이용할 수 있다. 부호화를 행하기 전에 블록이 0(영)만을 포함하고 있다면, 블록의 끝 코드만이 부호화된다. 이 경우, 블록의 재구성 동안, 주어진 블록이 복호화를 행하기 전에 삭제(0으로 채워짐)될 것이다. 런-길이 방법에 의해 생성되는 쌍은 최종적으로 산술 부호화에 의해 부호화된다.
IV.6.3 통상적인 파라미터와 뉴럴 네트워크에 의해 예측되는 파라미터를 이용하는 AC 값의 산술 부호화
이 방법에 있어서, AC 계수는 런-길이 부호화를 거치지 않고 산술 방법에 의해 직접 부호화된다. 본 발명에 따른 코더(coder)에서 구현되는 방법들 중 하나에서, 산술 부호화는 현재의 계수가 부호화되는 레벨이 모듈로 함수(modulo function)를 통해 이전에 부호화된 계수의 값에 의해 결정되도록 수행된다(이것은 많은 방식에서 뉴럴 네트워크가 없는 종래의 산술 부호화과 유사하다). 이 모듈로 함수는 일반적으로 하나 이상의 동일한 AC 계수가 서로 나란하게 있고, 계수가 동일 레벨에서 부호화되는 경우에만 확실하다. 뉴럴 산술 부호화 모듈의 동작 원리에 대해서는 나중에 상세하게 설명한다. 충분히 설명되는 바와 같이, 본 발명의 뉴럴 산술 코더에는 AC 값에 의존하는 파라미터(간격 제한, 간격 부분 분할)가 없다. 블록의 끝 코드가 이용되지 않는 대신에, 변환 및 양자화된 블록에서의 마지막 0이 아닌(non-zero) AC 계수의 위치는 실제 위치에 1을 더한 값으로 기록된다. 이것은 모든 AC 계수는 블록에서 영(0)인 경우 필요하며, 영(0)을 기입함으로써, 주어진 블록에 관련된 데이터가 더 이상 출력 데이터 스트림에서 부호화되지 않는다(즉, 블록은 제로만을 포함한다)는 것을 나타낼 수 있다. 예를 들어,
위치: 0 1 2 3 4 5 6 7
계수: 63 11 21 32 0 0 0 0
출력: 3 63 11 21 32
여기서, 3은 마지막 액티브(0이 아닌) 위치를 나타낸다. 그러나, 이러한 배치는 모든 데이터가 영(0)인 경우를 나타낼 수는 없는데, 만일 1이 위치 0에서 발견되면, 마지막 액티브(0이 아닌) 위치에 대해 코드를 계속해서 영(0)으로 하여야 하기 때문이다. 그래서, 위치 값은 모든 데이터가 영(0)인 경우를 제외하고는 1씩 증가된다. 그래서, 출력 데이터 시퀀스는 다음과 같다: 4 63 21 32, 또는 모든 데이터가 영이면 모두 0이다.
상기 방법에 대한 대안으로서, 각각의 계수에 대하여 미리 정해진 레벨에서 제로가 부호화되고, 마지막 0이 아닌 값에 도달하면 1이 되는 것을 생각할 수 있다.
예를 들면,
레벨 0 : 0 0 0 1 여기서, "1"은 마지막 0이 아닌 데이터를 나타낸 다.
레벨 1 : 63 11 21 32
본 발명에 따라 구현되는 부호화 모듈에서, 상기 기술된 2개의 방법 중 하나가 엔트로피 코딩에 대해 AC 데이터를 제공하는데 이용된다. 그러나, 본 발명의 범위를 벗어나지 않고, 다른 변환 방법도 이용될 수 있다.
IV.6.4 엔트로피 코딩 중에, 방법 2(IV.6.2 참조)와 방법 3(IV.6.3 참조)이 테스트 모드에서 실행되며, 결국 이 방법이 이용되어 데이터 시퀀스를 더 짧게 한다. 물론, 선택된 방법은 부호화된 데이터 스트림에서 동일하여야 한다.
방법 1(DC 계수를 부호화하기 위한 방법)은 항상 출력 데이터 스트림으로 출력되며, 이어서 본 발명에 따른 뉴럴 엔트로피 코딩 모듈에 의해 부호화되는 부호화된 데이터에 의해 수행된다. 물론, 다른 공지된 엔트로피 코딩 방법도 이용될 수 있다.
이를 명확히 나타내기 위하여, 방법 2(IV.6.2 참조) 및 방법 3(IV.6.2 참조)을 이용하여, 단일의 서브-블록에 대한 출력 데이터 스트림을 포맷하는 것을 고려해보자.
Figure 112005067001496-PCT00028
여기서, 개시 비트는 부호화 모드를 식별한다.
PRED 예측 타입
DPCM 델타 코딩에 의해 부호화되는 DC 계수
AC 하나 이상의 AC 계수
POS AC 계수의 위치
EOB 블록의 끝 코드.
전체가 16x16인 블록을 부호화하기 위한 포맷
Figure 112005067001496-PCT00029
여기서, QT(quad tree, 쿼드 트리)는 블록이 4개의 서브-블록으로 분할되어 있으며 각각의 서브-블록이 타입-2의 부호화를 이용하는 경우의 블록 분할을 나타내는 데이터이다.
또는:
Figure 112005067001496-PCT00030
16x16 블록은 부분 분할되지 않은 3개의 8x8 서브-블록을 포함하며, 4번째 8x8 블록(사실상 첫 번째로 나옴)은 4개의 4x4 서브-블록으로 부분 분할된 것을 나타낸다.
IV.7. UV 컬러 표면의 인트라 예측 부호화
MPEG 부호화의 공지된 방법을 수행하는 동안, 주어진 프레임의 픽셀 데이터는 RGB로부터 YUV2 포맷으로 변환된다. 여기서, Y는 휘도( luma ) 신호를 나타내며, UV 는 색차( chroma ) 신호를 나타낸다.
UV 표면의 물리적인 크기는 Y에 대해 절반으로 줄어든다(이에 의하여, 데이터 손실이 생긴다. 이 데이터 손실은 허용 가능한 것으로 증명되었으며, 품질의 감소에 영향을 미치지는 않는다). 따라서, 각각의 16x16 블록에 대하여, 하나의 8x8 U와 하나의 8x8 V 블록이 할당된다(도 12에 도시됨).
이 방법에서, U 블록 및 V 블록을 서브-블록으로 분할할 때, 8x8 크기와 4x4 크기만을 이용하는 것이 바람직하다(2x2 픽셀의 서브-블록은 4x4 또는 8x8 픽셀보다 더 양호하게 압축하지 않기 때문에, 이용상의 가치가 적다). 블록 분할의 분석은 실질적으로 앞서 설명한 것과 동일한 방식으로 행해지며, 중요한 차이는 여기서는 TH8 편차 임계값에 대해서만 비교가 이루어진다는 것이다. TH8은 그 편차가 비교되는 경험상의 값이며, 이 편차는 식 II와 유사한 방식으로 계산된다. 테스트된 블록의 편차가 TH8≥편차의 조건을 충족하면, 블록은 8x8 크기로 부호화되고, 충족시키지 않으면, 4x4 픽셀의 크기로 부호화된다.
U 블록 및 V 블록의 예측을 위해, DC 예측만이 이용된다(다른 예측 모드를 이용함으로써 생기는 이득은 근소하다는 것이 경험상으로 알 수 있다).
다른 변환은 상기 설명한 것과 동일하다. 유일한 차이점은 양자화 스텝 크기(양자화의 차수)이다.
데이터 블록의 (산술 부호화 이전의) 출력 포맷은 다음과 같다:
Figure 112005067001496-PCT00031
여기서, M은 블록 분할을 나타내는 비트이다. 예를 들어, 블록이 분할되어 있지 않으면, M=0이고, 분할되어 있으면, M=1이다.
이제, "인터" 블록의 부호화에 대하여 설명한다. 여기서 참조 블록은 다른 프레임에서 부호화될 블록을 위해 검색된다.
V. 동적으로 변경가능한 블록 크기를 이용하는 인터 예측 부호화
V.1 이미 지적한 바와 같이, 인터 프레임의 부호화는 시간 중복성에 기초하고 있다. 이것은 현재의 프레임이 선행 프레임 또는 후속 프레임과 비교되는 것을 의미하며, 2개 프레임간의 차이점은 부호화뿐이다. 본 방법의 참조 검색 모드에 대하여 도 15에 나타낸다. 이하의 대안도 가능하다: 3개의 선행하는 P-타입의 프레임에서의 검색(도 15a); 2개의 선행하는 B-타입의 프레임에서의 검색(도 15b); 선행 및 후속하는 움직임 보상 참조에서의 검색(도 15c, 이 경우, B-타입 프레임은 참조로서 이용될 수 없다).
본 방법의 기초 원리는 공지된 방법과 동일하다. 즉, 참조 프레임 내에서 특정된 검색 범위에서 부호화될 블록에 대해 검색이 수행되고, 중복성(상이한 블록)이 참조 블록의 위치(더 정확하게는, 움직임 벡터)와 함께 부호화되며, 이 상이한 블록은 검색에 의해 결정된 위치에 있는 블록의 각각의 픽셀로부터, 부호화될 블록의 각각의 픽셀을 감산함으로써 계산된다.
가능한 검색 방법들 중에서, "완전 검색(full search)"에 의해 최적의 결과가 주어질 수 있다. 그러나, 이러한 검색은 엄청난 양의 계산 부하를 가지는데, 이는 검색 범위 내의 모든 가능한 위치에 있는 부합하는 블록에 대해 검색할 때, 그 범위의 각각의 픽셀로부터 시작하는 검색 범위에 있는 데이터를 갖는 16x16 블 록의 비교를 포함하기 때문이다. 실질적으로, 32x32 픽셀의 검색 범위를 이용하는 것은, 1024*256 = 262144번의 가산 및 감산과, 그 차의 절대값을 결정하기 위한 동작이 필요하다는 것을 의미하며, 부합되는 16x16 참조 블록을 찾아야 한다. 720x576 픽셀의 프레임은 1620개의 블록(16x16 픽셀 크기를 가짐)을 포함하기 때문에, 계산의 전체 횟수는 4억 2천 4백만 번을 넘을 것이다. 이것이, 완전 검색 대신에 "고속 검색"이 일반적으로 이용되는 이유이다. "고속 검색" 방법은 아주 적은 개수의 테스트 지점(test point)(통상적으로 64개 이하)을 이용하며, 변위가 작은 경우(통상적으로 1-4 픽셀 이하)에만 성공한다는 단점이 있다. 즉, 비디오 풋티지(video footage)에서의 움직임이 느리게 된다. 변위가 큰 경우, 성공적인 검색의 가능성이 급격히 감소한다. 고속 검색 방법의 다른 단점은, 검색이 성공적으로 보이는 경우라도, 찾은 위치가 검색 범위 내에서의 최소의 지점(최적의 참조 블록의 위치)라는 것을 보증할 수 없다.
본 발명에서 구현되는 검색 방법은 실질적으로 "완전 검색"으로 고려될 수 있으며, 움직임이 느린 경우, 실제의 완전 검색 방법에서보다 계산 부하량이 약간 정도만 더 높다. 고속의 움직임(변위가 큼)이 있는 경우라도, 본 발명에 의한 계산 부하량은 표준 "완전 검색" 방법에서 요구되는 부하량의 일부분일 뿐이다.
V.2. 본 발명에 의해 구현되는 검색 방법은 실질적으로 다음과 같이 수행되는 "공간 검색"에 기초한다.
V.2.1 검색 범위는 참조 프레임에서 특정된다. 검색 범위의 중심에서의 좌표는 검색 샘플(부호화될 블록)의 중심에서의 좌표와 동일하다.
다음 단계에서, 검색 샘플, 즉 부호화될 블록(88)이 더 작은 크기의 서브-블록(도 16 참조)으로 분할된다. 본 발명의 일 실시예에서는, 4x2 서브-블록을 이용하여 양호한 결과가 얻어졌다. 이하, 각각의 서브-블록에 대하여 편차 값을 계산하는데 있어서, 식 II와 유사한 식을 이용한다. 다른 모든 서브-블록의 편차 값보다 큰 편차 값을 갖는 적어도 2개의 서브-블록이 있는 경우, 이들 편차의 합계는 미리 정해진 경험상의 상수 THV22보다 크며, 2개의 서브-블록은 인접해서 위치하지 않고(예컨대, 서브-블록 88b와 88c), 16x16 블록(88)의 서브-블록만이 검색 동안 테스트된다.
THV22 ≤ variance1 + variance2 의 조건을 만족시키지 않는 경우(여기서, variance1 과 variance2 는 2개의 인접하지 않는 가장 큰 편차를 갖는 서브-블록의 편차 값이다), 상기 동작은 4개의 인접하지 않는 가장 큰 편차를 갖는 서브-블록으로 반복되며, 여기서, 조합된 편차가 다른 상수 THV24와 비교된다(블록 89의 서브-블록 89a, 89b, 89c, 89d로 도시됨). 4개의 서브-블록의 편차에 대한 조건이 계속해서 충족되지 않는다면, 서브-블록이 4x4 서브-블록으로 병합되고, 상수 THV42를 갖는 2개의 서브-블록과, 필요하다면 상수 THV44를 갖는 4개의 서브-블록에 대해 상기 동작이 반복되고(블록 90의 서브-블록 90a, 90b), 상기 4개의 서브-블록에 대해서는 4개의 인접하지 않는 가장 큰 편차를 갖는 서브-블록을 찾는 시도를 한다.
상기 상황 중 어느 것에서도 각각의 조건이 충족되지 않는다면, 16x16 블록의 4개의 코너와 중심에 위치한 5개의 4x4 서브-블록을 이용하여 참조 검색이 수행 된다(도 16). 상수 THV는 서브-블록의 조합된 편차가 상기 각각의 상황에서 동일하거나 초과하여야 하는 최소의 편차를 특정한다.
상기 설명한 프로세스는 16x16 블록에서 가장 세부적인 서브-블록의 검색을 시도하는 것으로 직관적으로 요약될 수 있다. 이것은, 가장 세부적인 서브-블록이 검색 범위에서 부합하는 참조를 가지며, 덜 세부적인 다른 서브-블록이 자신들의 적절한 참조를 갖는 경우이다.
공간의 중심은 참조 프레임에서 검색 샘플의 위치에 부합하는 위치로 특정되고, 이 특정된 지점 주변의 블록이, 상기 설명한 감소된 검색 샘플을 갖는 넓은 사이클에서 테스트된다. 이 검색 범위는 샘플 패턴의 서브-블록의 상대적인 위치를 계속해서 일정하게 하여 스캔된다.
V.2.2
다음의 식에 따라 테스트가 수행된다:
Figure 112005067001496-PCT00032
MSE는 소위 평균 제곱 오차(Mean Square Error)라고 한다. MSE 값이 현재 계산된 최저 MSE보다 더 적은 것으로 판명될 때마다, 새로운 MSE 값이 현재 위치와 함께 예컨대 64-요소 순환 버퍼와 같은 임시 버퍼에 기입된다. 버퍼가 충만될 경우, 데이터는 제1 요소에서부터 겹쳐 쓰기(overwrite)된다.
검색 방법은 마찬가지로 다른 측면으로부터 획득된 MSE 값을 분석함으로써 미세 조정되는 것이 바람직하다. 예컨대, 검색의 일치 조건(the conditions for a match)(예컨대, MSE가 최대 허용 오차보다 더 적음)을 충족하는 다수의 위치를 탐색하고, 이들 위치가 개시 지점으로부터 바라본 것과 동일한 방향에(동일한 측면에 대해) 위치되어 있고, 검색이 이들 위치의 지역에서 벗어나고 있을 때에 오차가 증가하며, 검색이 최적의 지점으로부터 멀어지도록 이동할 가능성이 매우 높기 때문에 검색이 중단될 수 있다.
모든 지점이 테스트되었거나 검색이 중단되어 검색이 종료된 후, 순환 버퍼는 기준 위치(reference position)에 대한 최상의 후보가 될 수도 있는 위치를 포함한다(1024개의 위치 중에서 더 적은 수의 위치가 저장되며, 예컨대 상기의 예에 따라서는 64개의 위치가 저장된다). 저장된 위치는 그 후 다시 테스트되지만, 이 때에는 전체 16x16 블록으로 시행되며, 최소의 오차를 산출하는 위치가 결정된다.
V.2.3. 그 다음으로, 코딩된 블록으로부터 계산된 SAD16 값(Sum Absolute Difference, 첨자는 블록 크기를 나타냄)과 새로이 확정된 참조 블록이 실험 상수 MAXSAD16와 비교된다. SAD는 다음의 식을 이용하여 계산된다:
Figure 112005067001496-PCT00033
여기서, M은 블록 길이이고, A 및 B는 참조 블록과 부호화될 블록의 요소를 의미한다.
상수 MAXSAD16은 16x16 블록에 일치된 기준값의 최대 허용 가능한 오차를 특정한다. 검색에 의해 발견된 블록의 오차가 수용 불가능한 경우, 현재 프레임의 선행 프레임 또는 후속 프레임(프레임 유형에 좌우됨)에서 참조 검색이 반복된다. 어떠한 참조 프레임도 수용 가능한 결과를 제공하지 못한다면, 최저 오차를 산출한 프레임이 선택된다. 그 후, 블록은 4개의 4x4 서브-블록으로 분할되며, SAD8 값이 계산되어, 각각의 서브-블록에 대한 실험 상수 MAXSAD8과 비교된다.
그 후, 참조 프레임에 연관된 버퍼에 포함된 위치가 테스트되며, 대부분의 8x8 서브-블록이 수용 가능한 결과를 산출하는(SAD8≤MAXSAD8 조건을 충족하는) 참조 프레임 및 위치가 선택된다.
과도한 오차를 갖는 각각의 서브-블록에 대하여서는 주어진 서브-블록에서 개시하여 8x8의 블록 크기를 이용하여 축소된 검색 범위에서 검색이 반복된다. 오차가 여전히 한계값을 초과한다면, 8x8 검색에 의해 최상으로 나타나는 서브-블록이 4x4 서브-블록으로 분할되고, SAD4>MAXSAD4의 조건을 충족하는 서브-블록에 대하여 검색이 반복된다.
특정 블록의 서브-블록 전부가 4x4 서브-블록으로 분할되어야 한다면, 이 특정 블록에 대하여서는, 현재의 참조 프레임에서 성공하지 못한 경우에 모든 참조 프레임에서 참조 검색이 반복될 수 있다.
개개의 서브-블록의 오차가 검색이 완료된 후에도 여전히 과도한 것으로 판명되면, 검색이 성공하지 못한 블록은 표시된다. 이들 블록은 본 방법의 후속 단계에서 인트라 블록으로서 부호화될 것이다.
모든 참조 프레임에서 검색한다는 것은 검색이 예컨대 두 번째 프레임에서 만족스러운 결과를 가지고 멈출 경우에는 세 번째 프레임으로 계속되지 않는다는 것을 의미한다.
V.3. 16x16 분할에서의 블록 처리
16x16 블록의 경우에 현재 프레임에서 참조 검색이 성공하지 못하고(참조 블록이 발견되지 않음), 현재 프레임이 P-타입이라면, 최대 3개의 선행 P-타입 참조 프레임들에서 검색이 반복된다. 검색이 성공하였다면, 참조 프레임의 수가 기록되고, 검색이 완료된다. 그렇지 않은 경우, 본 방법은 최소의 오차를 갖는 프레임을 선택하고, 그 블록을 4개의 8x8 서브-블록으로 분할하며, 오차가 한계값을 초과하는 이들 서브-블록에서 검색을 계속한다. 현재 프레임이 B-타입인 경우, 검색은 후속의 P 프레임에서 먼저 수행되며, 그리고나서 3개의 선행 P 프레임에서 수행된다. B-타입의 경우에 검색이 모든 참조 프레임에서 성공하지 못한다면, 후속 프레임에서 발견된 최상의 참조 블록 후보의 위치와 3개의 선행 프레임 중의 하나에서 발견된 최상의 참조 블록 후보의 위치를 MPEG 방법에서 적용된 간편한 수식을 이용하여 보간함으로써 후속 프레임과 3개의 선행 프레임 중의 하나의 선행 프레임으로부터 평균 참조 블록이 생성된다. 생성된 보간 블록과 원래의 블록 간의 제곱 오차가 지나치게 크게 남아 있을 경우에는, 오차가 가장 작은 참조 프레임이 선택되고, 그 블록은 4개의 8x8 서브-블록으로 분할된다.
V.4. 8x8 분할에서의 블록 처리
8x8 블록의 처리는 16x16 블록의 처리와 거의 동일하며, 이들 간의 차이점은 검색이 처리의 종료시에 여전히 성공하지 못한 경우에 블록이 4x4 픽셀의 서브-블록으로 분할된다는 점이다.
V.5. 4x4 분할에서의 블록 처리
4x4 블록의 처리는 8x8 블록의 처리와 거의 동일하며, 유일한 차이점은 검색이 여전히 성공적이지 못한 경우에는 오류가 발생한 블록이 intra 블록으로 표시된다는 점이다.
V.6. 1/2, 1/4 및 1/8 픽셀 해상도로의 확장 검색
블록의 처리가 완전한 픽셀 해상도(full pixel resolution)로 완료된 후, 검색은 1/2, 1/4 및 1/8 픽셀 해상도에 관해 수행된다(필터링된/보간된 참조에서의 검색). 유일한 차이점은 B-타입 프레임의 보간 모드이며, 여기에서는 1/2, 1/4 및 1/8 픽셀 해상도 검색이 보간 전에 수행되어야만 한다. 1/2, 1/4 및 1/8 픽셀 해상도에서의 검색이 본 명세서에서 전술하였던 공지의 방법과 반드시 상이한 것은 아니기 때문에, 여기에서는 그 처리를 설명하지 않는다.
실시된 방법에서, 각각의 프레임에는 최대 3개의 참조 프레임이 할당된다. 이들 프레임은 그 크기와 이들을 생성시키는 필터링 방법만이 상이하다(도 17을 참조).
참조 프레임의 크기는 1:4 → 1:8
└→ 1:1
적용된 필터는: Wiener → bilinear
└→ bilinear
각각의 검색 프로세스는 관련 참조 프레임을 이용한다. 1/2 및 1/4 픽셀 해상도의 검색은 1:4 비율의 보간된 참조 프레임을 이용하는 한편, 1/8 픽셀 해상도 검색은 1:8 비율의 보간된 참조 프레임을 이용한다. 전체-픽셀 검색(full-pixel search)은 1:1 비율의 보간된 참조 프레임을 이용한다. 보간된 참조 프레임 및 필터의 적용은 본질적으로 공지의 것이므로, 여기에서는 상세히 설명할 필요가 없을 것이다.
이전의 상황과 마찬가지로, 순환 검색이 적용되지만, 테스트 지점의 수는 현저히 축소된 탐색 범위로 인해 20개 미만이 된다. 통상적으로, 탐색은 SAD=0인 경우(현재 블록과 참조 블록 간의 완전한 일치)에만 중단될 수 있다. 검색은 각각의 블록 크기로 수행될 수 있지만, 블록 축소 없이 수행되며(즉, 전체 크기의 블록만이 비교되고, 서브-블록은 비교되지 않음), 이것은 16x16 블록을 테스트하는 것은 256개의 감산 연산(subtraction operation)을 수반한다는 것을 의미한다.
부호화될 블록이 일치된 참조 블록으로부터 감산된 후, 그 결과의 축소된 블록이 공간 표현에서 주파수 표현으로 변환된다.
V.7.
전체 16x16 블록에 대하여 참조 블록을 탐색하여 참조 블록을 분할하는 처리가 성공적으로 완료된 후, 부호화될 블록 또한 동일 크기의 서브-블록으로 분할되며, 서브-블록은 참조 블록의 서브-블록으로부터 감산된다. 이러한 감산의 차는 그 후 이산 코사인 변환 및 양자화 처리되며, AC/DC 예측이 그 결과의 블록에 포함된 계수에 적용된다. 예측 방법은, 인트라 블록의 예측 처리와 유사하게, 변형된 블록의 DC 값 간의 차를 발생하고, AC 계수의 최초의 수평/수직 라인 상에 수평/수직 예측을 적용한다. 이 방법과 이전 방법 간의 차이점은 전술된 인트라 예측이 부호화될 블록의 픽셀값으로부터 이웃하는 픽셀의 실제 픽셀값을 감산하는 반면, 이 경우에는 이웃하는 DCT 변환된 블록의 요소가 DCT 변환된 블록의 요소로부터 감산된다는 점이다. 이 방법은 엔트로피 코딩(entropy coding) 동안의 변형된 블록의 부호화 효율을 더욱 향상시킨다. 예측 모드(수평 또는 수직)가 적용되어야만 하는지에 대한 결정은 변환된 블록을 둘러싸는 블록의 DC 계수 간의 차이에 기초하여 이루어지며, 여기서 블록의 상대적인 위치확인은 다음과 같이 될 수도 있다:
C B
A X
여기서, X는 처리되고 있는 변환된 블록을 나타내는 한편, A, B 및 C는 둘러싸고 있는 블록을 나타낸다.
예측 모드(pred)는 다음의 조건부 표현식에 의해 선택된다:
pred = abs(A - C) < abs(C - B)
여기서, A, B 및 C는 처리되고 있는 블록을 둘러싸는 블록의 DC 계수이다.
조건이 참인 경우에는 수직 예측이 적용될 것이지만, 조건이 거짓인 경우에는 수평 모드가 선택된다. 예측 모드를 결정하는 상관이 블록 재구성이 수행될 때에 이용 가능하기 때문에, 선택된 모드를 출력값에 기록할 필요는 없다.
V.8.
이 절에서는 블록 분할을 기술하는 데이터에 대한 가능한 데이터 포맷과 코딩 방법이 설명된다.
부호화될 블록의 블록 분할에 대한 설명은 인트라 프레임을 처리하는 것과 관련된 절에서 설명된 것과 유사하다.
최대 2-비트 길이 값 L은 16x16 블록의 분할을 기술한다. 블록이 분할되지 않는 경우에는 비트 1은 0이고, 블록이 분할되는 경우에는 비트 1은 1이다. 비트 2는 블록이 intra로 라벨링되는 경우에는 값 1을 갖는다. 후자는 8x8 서브-블록의 각각이 4x4 서브-블록으로 분할되고 이들 서브-블록의 50% 이상이 intra 블록으로 라벨링될 때에 발생한다. 그 경우에, 시스템은 intra 블록을 부호화하기 위한 처리에 따라 주어진 블록을 부호화할 것이다.
엔트로피 코딩 이전의 데이터는 다음과 같다:
RFIDX는 적용된 참조 프레임의 프레임수이다.
MV는 움직임 벡터이다.
DC는 이산 코사인 변환의 첫 번째 계수이며,
AC는 다른 DCT 계수를 나타낸다.
IP는 B 프레임에 대한 보간 모드를 나타낸다.
I는 인트라 모드를 나타낸다.
P는 인트라 모드 예측의 수를 나타낸다.
P 프레임을 위한 모드는 다음과 같다:
Figure 112005067001496-PCT00034
B 프레임을 위한 모드는 다음과 같다:
Figure 112005067001496-PCT00035
I=1인 경우, 주어진 블록의 기술은 다음으로 변경한다: ┃I┃P┃DC┃AC.
P 타입 프레임을 위한 2가지 구체적인 예는 다음과 같다:
Figure 112005067001496-PCT00036
4개의 4x4 블록 및 4개의 4x4 블록, 그 첫번째 것이 intra 블록임
3개의 8x8 블록 3개의 8x8 블록
(이 경우에도 변수 "AC"는 통상 하나 이상의 데이터 요소를 표현한다.)
16x16 블록의 Y 컬러 표면을 부호화하면, 다음 단계는 UV 컬러 표면을 부호화하는 것이다. 블록의 크기는 Y 블록 및 그 서브-블록의 크기에 비례한다.
Y 블록이 16x16 픽셀의 크기를 갖는 경우, UV 블록은 8x8 픽셀의 크기로 되며, Y 블록이 8x8 픽셀의 크기이면, UV 블록은 4x4 픽셀의 크기로 되며, 최종적으로 4x4 픽셀의 Y 블록에 대하여서는 그에 대응하는 UV 블록이 2x2 픽셀의 크기로 된다.
한편, U 블록 및 V 블록의 분할은 Y 블록의 분할과 동일하다. UV 블록을 분 할하는 방법은 Y 블록을 분할하는 것과 동일한 방식으로 수행된다. 그러므로, 부화화 프로세스 동안, 모든 다른 데이터(블록 분할 디스크립터, 블록 식별자 등)가 이미 Y 블록에 기술되었기 때문에, DCAC 값만이 엔트로피 코딩 전에 순차적으로 외부로 기입되어야 한다.
V.9. 매크로블록의 예측(움직임 벡터 및 인터 블록)
움직임 벡터(즉, 참조 블록에 관련한 움직임을 나타내는 벡터)의 최적의 부호화를 위해, 움직임 벡터는 최단의 가능한 형태로 표현되는 것이 바람직하다. 이것은 현재의 움직임 벡터로부터 현재 블록 옆에, 위에 또는 대각선 방향의 위에 위치된 블록에 속하는 움직임 벡터를 감산함으로써 제공될 수 있다. 3개의 가능한 이웃 움직임 벡터 중에서 평균값에 가장 근접한 움직임 벡터, 즉 최소의 움직임 벡터보다는 더 크고 최대의 움직임 벡터보다는 더 작은 움직임 벡터가 선택된다.
V.10. 최종적으로, 데이터는 엔트로피 코딩 모듈을 이용하여 부호화된다. 이하에서는 본 발명의 2진 다중-레벨 산술 부호화 모듈의 기술에 대하여 설명한다.
VI. 뉴럴 산술 부호화 모듈
본 발명에 따른 엔트로피 코딩 모듈은 2진 적응형 기술(binary adaptive techique)을 이용한다. 이것은 입력 데이터가 발생 빈도 및 이미 수신된 비트의 패턴을 함수로 하여 비트 단위로 처리된다는 것을 의미한다.
VI.1. 본 발명의 방법이 목적으로 하는 주요 설계는 상대적으로 간편한 계산으로 최상의 가능한 압축을 달성하고 있다. 본 발명의 방법은 분할을 이용하지 않고 2개의 승산 및 소수의 가산과 논리 연산만을 수행하여 실시될 수 있다. 모든 다른 연산은 정수를 기초로 한다.
본 발명의 방법은 소위 산술 부호화 방법이다. 산술 부호화는 널리 알려진 방법이다. 산술 코딩의 기본 원리는 부호화될 데이터 시퀀스의 수신 데이터에 좌우되는 구간(범위)의 상한값 및 하한값의 수정을 포함한다. 산술 코더는 유입 데이터의 분포가 어느 정도로 알려져 있는 경우, 즉 다음 입력 데이터 요소의 값에 대한 확률 추정이 어느 정도 알려져 있는 경우에만 실제로 효율적이 된다.
다음의 짧은 알고리즘은 2진 데이터 스트림(0 및 1 기호만을 포함하는)에 관해 산술 부호화를 수행한다. 부호화될 현재의 데이터(데이터 스트림의 다음 비트)는 "bit" 변수에 저장된다. 부호화 구간의 상한값와 하한값은 변수 "area[0]" 및 "area[1]"이다.
Figure 112005067001496-PCT00037
부호화의 효율을 증대시키데 있어서의 핵심적인 요소는 "prob" 변수의 값(이하에서는, 프로브값 또는 프로브라고 함)이 어떻게 결정되는가에 좌우된다. 프로브 값은 "calc_next_probe(bit)" 함수에 의해 상기의 예에서는 반환(return)된다.
어레이 "area[0,1]"는 2개의 32-비트값, 즉 코딩 구간의 상한값와 하한값을 저장하는 "area[0]" 및 "area[1]"을 포함한다. 산술적 코딩의 이론으로부터 알려 진 바와 같이, 구간 (area[0], area[1])은 프로브값을 이용하여 크기 조정된다. 공지의 방법에서, 프로브값은 통상적으로 이전에 도달된 비트의 발생 빈도를 함수로 하여 결정된다. 새로이 수신된 비트의 값에 따라, 코딩 구간의 하한값와 상한값 중의 하나가 크기 조정된 값으로 수정된다. 구간은 상한값와 하한값의 차이가 256보다 더 작게 될 때까지 수정될 수 있다(신규의 비트가 부호화될 수 있다). 원칙적으로, 다른 값 또한 사용될 수 있지만, 오버플로우를 처리하기 위해서는 256이 가장 실질적인 값이 될 것이다. 따라서, 상한값와 하한값 간의 차가 256 미만인 경우, 8개의 최상위 비트가 출력 데이터 시퀀스에 기입되며, 하한값와 상한값 모두를 표현하는 변수가 8칸씩 좌측으로 시프트된다.
이것은 다음과 같은 수학적인 형태로 기록될 수 있다:
area[1] = area[1]*256
area[0] = area[0]*256
VI.2. 프로브값은 다음과 같이 결정된다:
빈도 테이블(frequency table)의 개념을 도입하여, 유입 데이터 시퀀스에서의 0과 1의 발생율을 기술하기 위한 2가지의 함수를 정의한다. 수신된 비트는 m 비트의 길이를 갖는 버퍼에 제공되며, 여기서 2m = N이어서 N의 베이스-2 알고리즘은 윈도우폭을 제공한다.
버퍼 내로 순차적으로 도달하는 비트는 "window" 변수를 구성한다(버퍼의 내용을 필요시에 좌측으로 시프트함). "window" 변수는 빈도 테이블에서 행 중의 하 나를 지적해주는 인덱스("index" 변수에 저장됨)를 형성하기 위해 m 비트의 길이로 절단된다. 여기에서 제공된 예에서는 빈도 테이블은 512개의 행을 갖는다. 빈도 테이블의 각각의 요소는 변수 FreqTbl[index]f0 및 FreqTbl[index]f1에 의해 특정된다. 이들 변수는 비트 조합이 버퍼에 현재 저장된 비트 조합과 동일한 때에(즉, 현재 비트 조합이 테이블의 주어진 행을 나타내는 인덱스로서 간주됨) 수신된 비트가 얼마나 많이 0 또는 1을 갖는지를 나타낸다.
Figure 112005067001496-PCT00038
압축의 개시 시에, 모든 변수(베이스 2 알고리즘이 윈도우 길이를 제공하는 N을 제외)가 제로로 채워진다. 인입 비트(incoming bit)는 버퍼(윈도우)의 최하위 비트를 겹쳐쓰기하고, 버퍼의 이전의 값에 의해 어드레싱되는 빈도 테이블의 그 요소가 새로이 도착하는 비트에 따라 갱신된다. 이후에서 명확한 것으로 밝혀지는 바와 같이, 버퍼의 이전의 값이 한 단계 후에 도달하는 비트, 즉 현재 처리되고 있 는 비트와 연관되어야만 한다는 점이 중요하다. 이것은 엄밀히 말해서 시스템이 작동하는 동안에 인입 비트의 값을 "예측"할 수 있게 하는 특징이다. 버퍼의 이전의 값은 N이 상한값인 변수 "index"에 저장된다.
본 방법의 다음 단계에서, 프로브값("prob" 변수의 값)이 다음 비트에 대하여 계산된다. 이를 위한 정확한 식은 다음과 같이 되어야 한다:
Figure 112005067001496-PCT00039
그러나, 이 식은 그 결과가 분수일 것이기 때문에 직접 적용되지 않는다. 계산(분할)은 다른 용도로는 너무 저속인 실수 연산을 요구할 것이다.
그 대신, 512개 요소의 분수 테이블이 사용되며("FracTbl[sum]" 변수로 표현됨), 그 표의 적합한 요소는 빈도 테이블의 대응하는 행에서의 비트 빈도의 합계(상기 알고리즘에서의 "sum" 변수를 참조)에 의해 선택된다. 프로브값을 결정하기 위해, 빈도 테이블의 적합한 행에서의 f0 값이 분수 테이블로부터 위에서 수신된 값에 의해 승산되며, 그 후 예컨대 결과(product)가 우측으로 10 비트 시프트되는 것과 같이, 결과가 상수와 승산된다. 그러므로, 프로브값이 획득되며, 이 프로브값은 구간 0...65535에 부합할 것이고, 구간 0..1과 유사하게 된다. 분수 테이블이 512개의 요소(실제적으로, 1/sum의 적합하게 크기 조정된 값, 여기서 "sum" 변수는 동일한 시각에서의 표에 대한 인덱스로서 사용됨)를 포함하기 때문에, "sum" 값이 이 값을 초과하지 못하도록 되어야 한다. 이것은 "sum"이 256 보다 크다면 "sum" 값을 테스트하고 f0f1을 크기 재조정함으로써 달성된다(실제적으로는 "prob" 변수의 값이 f0 및 f1의 절대값이 아니라 이들의 비율에 의해 결정되기 때문에, 이들은 크기 재조정될 수 있다).
알고리즘으로부터 알 수 있는 바와 같이, 본 방법은 상당히 간편하다. 제수(divisor)가 2의 거듭제곱(power)이기 때문에, 분할은 우측-시프트 연산에 의해 대체될 수 있다. MOD 연산은 또한 AND 논리 연산에 의해 대체될 수 있다.
VI.3. 전술한 바와 같이, 본 방법은 상이한 레벨에서의 부호화를 수행한다. 실제로, 이것은 프로브 변수에만 영향을 미친다. 즉, 파라미터(N, 윈도우 크기, 부호화 구간의 한계값)가 조정된다면, 모든 데이터 유형에 대하여 동일한 부호화 모듈이 사용될 수 있다. 각각의 레벨이 소정 데이터 유형의 요건에 따라 복수의 서브-레벨로 분할된다면, 각각의 데이터 유형에 상이한 레벨이 지정된다. 예컨대, ACDC 계수의 부호화에 상이한 서브-레벨이 지정된다면, 4x4 이산 코사인 변환 연산의 결과를 코딩하기 위해, 특정 유형 레벨이 정해진다.
상수 N은 윈도우 크기를, 즉 현재 수신되고 있는 비트와 함께 테스트되는 이전에 수신된 비트의 수를 결정한다. 이 인자는 부호화 효율에 상당히 크게 영향을 미치지만, N이 증가되는 경우에 더 많은 메모리가 요구되기 때문에 메모리 요구량을 증가시킨다.
전술한 방법은 다양한 고속의 정수-연산의 공지된 방법이다. 파라미터가 적절하게 조정된다면, 압축 효율은 MPEG 시스템에서 이용된 VLC 방법의 압축 효율보다 10% 더 높게 된다. 지금까지, 더 복잡한 프로브 알고리즘을 이용하는 방법만이 VLC 방법의 압축 효율보다 상당히 우수하게 수행되었다. 효율을 향상시키기 위해, 빈도 테이블이 또한 상당한 크기로 되어야 한다. 선택된 프로브 알고리즘 및 빈도 테이블 크기 양자는 본 방법의 실행 시간에 영향을 준다.
본 발명에 사용된 데이터 구조에 대한 프로브값을 결정하기 위한 최상의 공지의 방법으로는 소위 동적 마르코프 모델(dynamic Markov model)이라고 하는 방법이 있다. 그러나, 이 모델은 적어도 64Kb의 빈도 테이블을 이용할 경우에 효율적으로 작용한다. 코딩에 적용된 모든 서브-레벨이 이 크기로 설정된다면(즉, 상이한 블록 크기에 따른 모든 변수 및 변수 유형이 이러한 방식으로 코딩된다면), 16Mb 이상의 메모리가 빈도 테이블만을 위해서 할당되어야 한다.
이러한 문제점에 의해, 신규의 현저하게 보다 효율적인 프로브 알고리즘을 고안할 필요가 발생하였다.
VI.4. 뉴럴 프로브를 이용한 산술 코더
VI.4.1. 산술 부호화의 중요한 단점은 최적의 효율을 위해서는 부호화될 데이터에 나타날 개개 기호의 발생 빈도가 알려져야만 한다는 점이다. 원칙적으로, 이미 발생한 다수의 기호를 참고하는 것이 가능할 것이다. 개개의 기호뿐만 아니라 상이한 기호 그룹의 발생 빈도를 살펴보는 것이 보다 효율적일 것이다. 그러나, 이것은 매우 많은 수의 빈도값의 저장체를 필요로 할 것이다. 이것은 이미 발생한 기호의 가능한 조합 전체(context) 대신에 실제로 발생한 이들 기호 조합만을 저장함으로써 어느 정도까지 경감될 수도 있다.
이것은 새로운 기호 조합의 발생을 나타내주기 위해 여분의 기호(escape)가 도입되어야 한다는 것을 의미한다. 공지의 부호화 방법, 주로 PPM(prediction by partial match) 방법은 길이가 변화하는 기호 조합을 검사한다. 수신된 기호가 부호화될 때, 먼저 최장의 허용 조합이 테스트된다. 새로이 도착한 기호는 저장된 기호 그룹에 추가되며, 검색은 현재 그룹이 이미 발생하였는지를 확증하기 위해 현재 기호 그룹 길이로 수행된다. 예컨대, 그룹 길이가 4라면, 3개의 가장 최근의 기호가 새로 도착한 기호와 함께 테스트될 것이다. 기호 조합이 이미 발생하였다면, 그 기호 조합은 그 소정 기호 조합에 지정된 일시적인 또는 지속적인 확률값을 이용하여 부호화된다. 한편, 조합이 아직 발생하지 않았다면, 조합이 신규의 것이라는 것을 나타내주기 위해(디코더에게) escape 기호가 부호화되며, 더 짧은 검색 길이를 가지고 검색이 수행된다.
수신된 기호가 어떠한 이전의 조합으로 부호화되지 않은 경우에, 이 기호는 개개의 기호에 지정된 발생 확률의 평균치를 이용하여 부호화된다. 부호화가 완료된 후, 기호 조합의 발생 카운트를 측정하는(즉, 그 발생 확률을 정량화하는) 카운터가 갱신되고, 필요 시에 새로운 조합이 추가된다.
이 방법이 저속이고 비교적 높은 메모리 부하를 갖기 때문에, 비디오 데이터를 직접 부호화하기에는 적합하지 않다.
그러나, 본 발명에 따르면, 가변 길이 기호 조합을 검사하는 원리가 본 발명에 적용된 뉴럴 코딩 방법에 대하여 시행된다. 산술 프로브값을 결정하기 위해 뉴럴 네트워크를 적용하는 아이디어는 새로운 것이 아님을 주지하기 바란다. 뉴럴 네트워크를 활용하는 방법은 슈미트후버(Schmidhuber) 및 하일(Heil)에 의해 1996년도에 시행되었다. 그들의 방법은 PPM과 유사하게 이전에 수신된 기호와 새로이 도착된 기호의 공통 발생을 살펴보고, 그에 따라 프로브값을 결정한다. 이 공지의 해결책을 이용하면, 뉴럴 네트워크의 입력만이 현재 테스트된 조합과 그 이전에 알려진 조합들 중의 한 조합과 간에 상관이 존재하는 곳에서 활성화될 것이기 때문에, 검색을 위해 상이한 기호 그룹 길이를 사용할 필요가 없다. 이로써, 이러한 기호 조합의 선택(인식)이 자동적으로 수행된다. 이 공지의 방법은 그러나 트레이닝 프로세스가 매우 길기 때문에 실질적인 용도로는 거의 사용되지 않는다. 예컨대, 한 테스트 경우에, 대략 20kB 데이터의 상관을 인식하기 위한 네트워크의 트레이닝은 2일(two days)을 필요로 한다.
Matthew V. Mahoney(플로리다 기술 협회)는 뉴럴 네트워크 이론으로부터 알려진 온라인 트레이닝 방법을 이용하고 일정한 학습 레이트 대신에 적응형 학습 레이트를 적용하여, 이진 산술 부호화(여기에서는 부호화될 기호가 0과 1이다)에 뉴럴 네트워크를 적용하는 기술을 구현하였다.
그러나, 최적의 부호화에 필요한 메모리 요구가 매우 높기 때문에, 이 향상된 방법이 비디오 인코딩에 직접 적용 가능하기에는 아주 충분하지만은 않다. 마호니(Mahoney)의 원래 방법은 단일 레벨을 부호화하기 위해 258kB 이상의 메모리를 사용하였다. 이러한 메모리 요구량이 128개의 레벨에 적용된다면(128개의 상이한 유형의 데이터 구조에 대하여, 예측, 블록 크기, DC 및 AC 계수 등을 고려한다면), 요구된 총 메모리는 32MB 이상이 될 것이다. 그러나, 비디오 인코딩을 위해 단일 레벨만이 정해진다면, 본 방법은 복수의 레벨을 이용하는 종래의 부호화 방법보다 덜 효율적이 될 것이다.
이러한 모든 문제점을 감안하여 본 발명의 방법은 뉴럴 프로브값을 결정하기 위해 고안된 것이다. 본 발명에 따른 방법은 1∼2kB 정도의 적은 메모리를 사용하여 엔트로피를 최대화할 수 있다. 메모리를 대략 16kB 까지 정도로만 증가시키는 것은 효과가 있지만 그 이상에서는 코딩 효율의 향상이 무시 가능한 정도인 것으로 판명되었다.
VI.4.2 본 방법은 다음 페이지에 걸쳐 상세하게 설명된다. 전술한 산술적 방법에 비교하면, 유일한 차이점은 프로브값의 계산("prob" 변수의 값을 반환하는 함수)이 뉴럴 프로브에 의해 대체되었다는 점이다.
부호화될 인입 비트는 32, 64 또는 그 이상의 비트의 크기를 갖는 시프트 레지스터(버퍼)에 제공된다(이하에서는, 32-비트 레지스터를 포함하는 예가 제공된다). 레지스터의 내용은 소위 윈도우를 구성한다. 그 후, 레지스터에 저장된 값(32-비트 정수로서 처리된)은 해시 함수를 이용하여 N개의 부분으로 동적으로 분할된다.
해시 함수의 정의는 다음과 같다(단지 예로서 제공됨):
Figure 112005067001496-PCT00040
H3은 이전의 어드레스값으로부터 계산되며, 이로써 (H0+H1+H2)-(H2*k)에서 개시하는 범위 길이 H3가 잔여 메모리의 끝으로(2048까지) 연장한다. 해시 함수의 결과는 도 18에 도시되어 있다.
"register" 변수는 레지스터(150)에 현재 저장된 이진값이며, H0-H2는 사전 결정된 값이다. 예컨대, H0-H2의 값은 256, 512, 1024가 될 수 있으며, 그 값으로부터 H3의 값이 구체적인 상황에서는 1536으로서 계산된다. 인자 k는 뉴럴 네트워크의 출력에 의해 제공된다. 인자 k는 디폴트값이며, 0과 1 사이의 구간에 부합할 수 있다.
전술한 해시 함수는 어드레스 adr1∼adr4 를 테이블(155)의 행에 맵핑하며, 테이블(155)은 2048개의 행으로 구성된다. 보다 구체적으로, 맵핑은 서브레인지(151∼154)에 대하여 행해지며, 이것은 어드레스 1이 서브레인지 151 내의 요소(테이블 행)를 나타내고, 어드레스 2가 서브레인지 152 내의 행을 나타내고, 어드레스 3이 서브레인지 153 내의 행을 나타내고, 어드레스 4가 서브레인지 154 내의 행을 나타낸다는 것을 의미한다. 본 발명의 방법의 중요한 특징은 서브레인지가 중첩하여 이에 의해 합집합(156∼158)을 형성할 수도 있다는 점이며, 본 실시예는 3개의 합집합(156∼158)을 포함한다. 상기의 식으로부터 알 수 있는 바와 같이, 합집합의 크기는 인자 k에 의해 결정된다. 합집합의 중요성은 최하위 비트에서부터 최상위 비트로 갈수록 커진다. 합집합은 입력 스트림 내의 순환 비트 시퀀스의 인식에 중요한 역할을 한다. 합집합의 역할은 또한 이들이 2개의 어드레스가 테이블(155)의 동일한 행을 나타낼 수 있도록 하기 때문에 중요하다. 수학적인 세부내용으로 들어가지 않아도, 이러한 정도로도 충분하며, 입력이 순차적으로 처리되기 때문에, 제1 어드레스가 소정의 뉴런을 나타낸다면, 그 가중치는 트레이닝 프로세스 동안 변할 것이다. 또 다른 어드레스가 동일한 뉴런을 선택하는 경우, 가중치는 그 뉴 런에 지정된 비트 해시 함수의 값과 함께 다시 변할 것이다. 따라서, 뉴런과 연관된 비트 빈도 함수의 값 또한 2회 수정될 것이다. 시스템의 작동 동안에 양쪽 입력은 동일한 가중치를 가질 것이다.
인자 k가 뉴럴 네트워크의 출력에 의한 값이 지정되고 서브 영역(152∼154)의 실제 길이 H1∼H4가 k에 의해(간접적으로는, 합집합 크기가 서브 영역의 길이에 영향을 주기 때문에 합집합 크기를 통해) 결정되기 때문에, 테이블(155)을 서브 영역(151∼155)으로 분할하는 것은 각각의 수신 비트 후에 뉴럴 네트워크의 출력에 따라 동적으로 변경한다.
해시 함수에 의해 정해진 N개의 어드레스(이 경우에는 N=4)는 테이블(155)의 N개의 요소(행)를 선택한다. 테이블(155)의 각각의 행은 2개의 가중치 함수, 즉 양자화 가중치 함수 Wi,Q 및 크기 조정 가중치 함수 Wi,S(또는, 크기 조정 인자 S가 생성될 필요가 없는 경우에는 오직 Wi,Q 만)와, 이산 알고리즘의 경우에서와 동일한 방식으로 정해진 빈도쌍 f(0)i, f(1)i 을 포함한다(즉, 비트가 수신될 때마다의 비트값에 따라 빈도값이 갱신됨). 선택된 가중치 함수는 트레이닝 프로세스 동안 다음과 같이 수정된다:
Figure 112005067001496-PCT00041
여기서, i는 테이블의 어드레싱된 행의 인덱스이며, "error"은 예측 비트와 실제 수신된 비트의 차이며, "gain"은 이득 인자이며, "eta"는 학습 레이트이며, f(0), f(1)은 위에서 정해진 비트 빈도이다. 실제로, 본 방법에서 적용된 N-입력 뉴럴 네트워크의 지식 기반은 가중치 함수와 테이블(155)에 의해 저장된 빈도값에 의해 결정된다.
작동 동안, 이 예에 따른 네트워크의 출력은 다음의 식에 의해 제공된다:
Figure 112005067001496-PCT00042
여기서, i는 출력의 수이고, 첨자 i는 1에서 N까지이다. 즉, 출력은 선택된 가중치 함수 전부에 대하여 합산된다. 네트워크의 출력은 k와 "prob" 값 자체가 출력에 나타나도록 정해질 수 있다.
더 상세한 수학적 분석을 생략하면, 뉴럴 네트워크의 동작은 다음과 같이 요약될 수 있다:
제1 비트가 도달할 때에 프로브값은 0(0.5 확률에 대응)이다. 그러고나서, 네트워크는 오차(오차 = 비트 - 프로브)를 계산하며, 그 오차를 이전의 비트값에 지정된 뉴런에 알려준다(제1 단계에서, 이들 값은 서로 무관하다. 이전의 데이터가 없기 때문에, 모든 어드레스는 0가 되어, 0번째 뉴런이 입력에 지정될 것이다). 다음으로, 시스템은 레지스터(버퍼)의 현재값으로부터 새로운 어드레스를 생성한다. 어드레스에 의해 선택된 뉴런의 가중치 함수(제1 단계에서는 제로)가 합산되며, 합산치의 지수함수가 계산되고(제1 단계에서의 결과는 마찬가지로 제로), 이것이 새로운 프로브값이 된다.
다음 프로브 구간은 -0.5...+0.5 이며, 이로써 0...1 구간 상에 맵핑된 현재의 프 로브값은 0.5가 될 것이다. 다음의 인입 비트에 대해, 상기의 처리가 반복되며, 이 때 유효 어드레스를 갖는다면, 이전에 선택된 뉴런의 가중치 함수가 오차값에 기초하여 수정된다. 이 처리는 인자 k에 대하여 동일하다.
전술한 바와 같이, 시스템의 이득 및 학습율을 동적으로 조정할 수 있다. 양호한 실시예에서는, 뉴런을 선택하는 어드레스가 집합(union) 내의 어드레스 범위를 가리키는 경우에만 이득을 변경한다. 즉 집합 내의 우선권에 따라 각각의 집합에 이득 인자를 할당한다. 학습 레이트는 인자 k와 일련의 외부 결정자로 결정된다. 학습 레이트는 네트워크에서 학습 곡선의 기울기를 나타내는데, 즉 트레이닝 주기마다 에러가 최소화되는 정도를 나타낸다.
뉴럴 네트워크는 2개의 출력을 가지는 바, 출력 "프로브(probe)"는 산술적 프로브 값을 제공하고 또 다른 출력은 집합의 분할을 결정하기 위해 적용되는 인자 k를 지정한다. 뉴럴 네트워크에 대한 적절한 구조가 도 18b에 도시되어 있으며, 이 도면에는 입력층(160)의 뉴런과, "프로브" 및 인자 k를 생성하는 출력(169 및 168)이 도시되어 있다. 도면 중에 도시된 뉴럴 네트워크는 마찬가지로 은닉층(162)이지만 본 발명 역시 더 단순한 구조의 네트워크로도 성공적으로 작동한다.
이 방법에서, 뉴럴 네트워크의 지식 베이스를 구성하는 테이블의 행마다 카운터로 간주될 수 있는 주파수 f(0) 및 f(1)이 할당되어 있다. 이러한 카운터는 위에서 본 바와 같은 테이블 FreqTb1[index]의 구성요소와 유사하게, 주어진 테이블 행이, 테이블(155)이 세분되어 생성된 하부범위(151-154)를 가리키는 어드레스들(1-4) 중 하나에 의해 선택되었을 때, 현재 부호화된 비트가 0 또는 1이 된 횟수를 지정한다. 그러므로, 주파수 f(0) 및 f(1)이 N행의 테이블에 저장될 수 있고, 전술한 방법과 유사하게, 그 값이 주어진 한정을 초과한다면 다시 스케일링될 수 있다.
Ⅵ.5. 다음, 레지스터(150)의 분할을 반복해서 테스트하여 최상의 분할을 선택한다. 뉴럴 네트워크는 다음에 수신된 비트 값에 기초하여 가장 최근에 어드레스된 테이블 행의 주파수 데이터 f(0) 및 f(1)를 갱신하고, 예측된 비트값과 수신된 비트값 사이의 차이(에러)와 관련해서 주파수 f(0) 및 f(1)로부터 유도된 k 및 프로브 인자의 최종값을 그 행들에 저장되어 있는 뉴런 가중 함수에 알려준다.
시스템의 동작은 여러 가지 면에서 전술한 방법과 유사하지만 동적 레지스터 분할, 동적 이득의 활용성 그리고 학습 레이트는 기본적으로 새로운 구성요소이다.
이 방법이 실제로 어느 정도나 효율적인지를 알아보자.
20개의 8x8 블록의 DCT 계수를 부호화한 다음 1280 바이트의 데이터를 생성한다. 부호화된 블록은 프레임 내에서 이웃해 있고 실제로 동일하다. 서로 다른 블록들의 DCT 계수의 데이터 시퀀스가 반복하되 개별적인 블록 내에서는 시퀀스가 반복하지 않는 상황에서 상기 방법들의 부호화 효율성이 주요 관심 대상이다.
그 결과가 다음의 테이블에서 다른 방법들과 비교된다.
종류 입력 데이터 출력 데이터
VLC* 1280 690
AMT 이진수 모델* 1280 550
계산(마크로브 모델 200K) 1280 350
매튜스 뉴럴 계산 256K 1280 149
AMT 뉴럴 계산 1280 76
* 다중 레벨 방법
다른 데이터 종류를 이용하면 상기 결과는 더 크게 확장되지만 본 발명의 방 법은 다른 해결법보다 현저히 우수하게 수행될 것이다.
Ⅶ. 대역폭(전송률) 제어 및 압축률의 조정
Ⅶ.1. 대역폭(전송률) 제어는 비디오 인코딩에서 가장 중요한 사항 중 하나이다. 비디오 프레임 시퀀스에서 프레임의 정보 컨텐츠는 넓은 범위에 걸쳐 변화하므로 상당한 이미지 품질을 유지하는 것이 목적이라면 압축률을 크게 조정하여 이러한 변화에 따라야 한다.
압축 데이터가 저장 장치에 저장되는 경우, 부호화된 데이터의 총량은 그 장치의 저장 용량에 제한받게 된다. 그렇지만, 대역폭이 제약이 되는 가장 분명한 경우는 데이터 전송 시스템에서 데이터가 실시간으로 전송되어야만 할 때 일어난다. 이 경우 전송된 비디오의 품질은 이용 가능한 대역폭(데이터 전송률)에 의해 제한된다. 그러므로, 전송률(1초에 전송되는 데이터량)을 거의 일정한 값으로 유지할 필요가 있다. 이것은 압축률을 조정해야만 가능하다. 이후, 압축률 조정은 양자화 인자를 증감시키는 것을 의미한다. 그렇지만, 양자화는 대가(consequences) 없이는 증가하지 않는다. 양자화가 높을수록 이미지 내에 제공된 식별 가능한 공간 주파수의 감소에 따라 영상의 세부 정보(image details)가 사라지며, 동시에 가시적으로 느낄 수 있는 에러도 증가한다. 특정한 포인트에서 이미지는 불가피하게 블록들로 나뉘어져 가시적으로 인지되는 다른 이미지 손상도 일어난다.
이용 가능한 대역폭에 따라 양자화 인자를 변형하는 것은 특히 공지되어 있다. 종래의 해결법에서는, 부호화된 시퀀스의 예상된 길이 및 실제의 길이로부터 새로운 양자화 인자를 계산한 후 다음의 프레임에 적용한다. 한 번에 하나의 프레 임만 고려하지 않고, 더욱 복잡한 해결법은 주어진 타임프레임으로 압축된 프레임의 평균 길이 및 예상된 평균 길이를 사용하여 새로운 양자화 인자를 계산한다. 이러한 방법에서는 통상적으로 반응 지연 계수를 사용하여, 제어 시스템이 계산된 최대값을 달성해야 하는 시간을 지정한다.
이러한 방법은 일정한 전송률 또는 일정한 비트 레이트를 제공한다(CBR 방법).
전송률 제어에 최소 한계 및 최대 한계를 설정하므로 결과를 상당히 향상시킬 수 있고 이러한 한계 내에서 전송률로 항상 일정하게 유지하여 상한 및 하한의 평균값과 같은 주요한 전송률을 장기간 달성할 수 있다. 원래의 프레임과 재구성된 프레임간의 신호 대 잡음비를 제어 파라미터로서 고려하고, 즉 전송률을 (특정한 한계 내에서) 증가시키는 것이 양호한데, SNR이 저하되는 경우에는 SNR을 향상시키고 SNR이 향상되는 경우에는 전송률을 낮춘다. 이것이 소위 가변 비트 레이트(VBR) 방법이다. 이 해결법의 주된 단점은 예상되는 전체 데이터 길이를 정확하게 예측할 수 없다는 점이다. 최소값 및 최대값을 너무 높게 설정할 수 없는데 왜냐하면 제어 범위가 너무 넓게 되어 전체적인 부호화 데이터 길이가 너무 큰 스케일로 변해 버리기 때문이다. 또한 시스템이 설정한 최대 전송률을 원하는 품질로 유지할 수 없게 되어 전송률을 더 증가시킬 필요가 있는 경우도 빈번하게 일어난다.
Ⅶ.2. 본 발명에 따르면, 대역폭 제어에 대해 2가지 해결법이 제공된다. 2가지 해결법 모두 뉴럴 네트워크의 애플리케이션에 기반한다.
Ⅶ.3.1. 제1 해결법에 따르면, 뉴럴 네트워크는 잘 알려진 후방 전파 구조를 갖는다. 그 네트워크가 도 18c에 도시되어 있다. 네트워크는 N개의 입력(1801-180n), 2N 뉴런을 포함하는 은닉층(185), 및 적어도 하나의 출력을 갖는다. 양자화 인자 Q 및 스케일링 인자 S(이 계수의 역할에 대해서는 에서 상세히 후술함)는 출력(188 및 189)에 나타난다.
연속적인 제어를 제공하기 위해, 네트워크의 입력은 최종의 N 수신된 데이터 구성요소들이고, 이것들은 차례로 그 순서에 따라 입력으로 순차 제공된다. 데이터 구성요소들은 예상되는 프레임 길이와 부호화된 프레임 길이의 비율로 구성되고, 이러한 데이터 소자들은 다음과 같은 시간 시퀀스로서 고려된다.
ELi-1/CLi-1, ELi/CLi, ELi+1/CLi+1 등(여기서 EL은 예상 길이이고, CL은 부호화된 길이이며, i는 i번째 데이터(예를 들어 부호화된 프레임)에 대응하는 인덱스이다.)
네트워크를 트레이닝하는데 사용되는 테스트 데이터는 외부 제어 시스템을 사용하거나 또는 트레이닝 프로세스를 시작하기 전에 수동으로 생성되며, 상기 데이터는 1000-4000 트레이닝 샘플에 대한 복소수 상관 계산에 의해 감소된다. 트레이닝 샘플은 정상적인 비디오 레코딩에서 발생하는 모든 프레임 종류를 나타내도록 고안되어 있다. 이러한 샘플들을 몇몇 트레이닝 주기를 통해, 즉 확실한 실행에 있어서는 50000 주기 내에서 시스템에 알려준다.
트레이닝을 완료한 후, 네트워크는 실제의 데이터를 수신하고 처리할 준비를 한다. 본 양호한 실시예에서는 네트워크의 출력에 나타나는 양자화 인자 Q가 아닌 현재의 Q를 차례대로 변형하는데 사용되는 kQ 계수이도록 계산이 수립되어 있다는 것에 주목해야 한다.
이산 시스템과 비교되는 뉴럴 네트워크의 주요 이점은 모든 종류의 제어 특성을 상기 이산 시스템과 함께 가시적으로 실행할 수 있다는 것이다.
제어 특성은 일정한 비트 레이트 제어 시스템에서보다는 가변 비트 레이트 제어 시스템에서 훨씬 더 중요하다.
Ⅶ.3.2. 전술한 바와 같이, 네트워크는 조사된 트레이닝에 따라 동작한다. 뉴럴 네트워크는 이전의 예상된 프레임 길이와 부호화된 프레임 길이에 따라 원하는 매핑을 추정하는데, 후자는 데이터 시퀀스로 간주된다. 이 방법은 일정한 대역폭(CBR) 시스템의 경우에는 성공적으로 적용될 수 있지만 가변 대역폭(VBR) 시스템에 그 자체가 항상 적절한 것은 아니다. 그 이유는 VBR 시스템 역시 이미지 품질을 고려하기 때문이다.
이미지 품질이 평균 품질값을 초과하는 경우에는, 압축비가 증가하고, 품질이 평균값에 미치지 못하는 경우에는 압축비가 감소한다. 뉴럴 네트워크 제어 시스템 역시 이점을 고려해야만 한다. 그러므로 최소 양자화 인자 및 최대 양자화 인자가 제어 네트워크에 의해 지정되며, 시스템에 의해 초과되어서는 안 된다.이 값들은 도 18c의 참조 번호 186 및 187로 표시된 뉴런을 통해 효과적이게 된다.
Ⅶ.3.3. VBR 모드에 적용되는 뉴럴 네트워크는 CBR 모드에 사용되는 네트워크의 입력보다 2배가 많은데 왜냐하면 예상된/부호화된 길이 비 외에, 이미지 품질 을 나타내는 데이터도 예상된/부호화된 품질 비의 형태로 네트워크의 입력에 제공되기 때문이다.
EQi-1/CQi-1, EQi/CQi, EQi+1/CQi+1
여기서 EQ는 예상 품질이고, CL은 부호화된 품질이며, i는 데이터 인덱스이다.)
도 18c에서 알 수 있는 바와 같이, 양자화 인자를 결정하는 출력(188) 외에, VBR 모드에서 사용되는 뉴럴 네트워크는 스케일링 인자 S를 나타내는 추가의 출력(189)을 포함한다(이에 대해서는 후술한다). 전술한 바와 유사하게, 네트워크는 타임 시퀀스 내의 예상/부호화된 품질 및 예상/부호화된 길이에 대한 입력 데이터를 트레이닝 동안 처리하고 지정된 최소값 및 최대값에 따라, 추구하는 매핑을 추정한다. 상기 지정된 제어 특성 및 제어 기울기를 반영하도록 트레이닝 데이터를 선택한다.
네트워크의 실제 부호화 동작 동안, 즉 실제 데이터를 처리할 때에는, 추가의 트레이닝이 없으며, 뉴런의 가중 함수는 일정하게 유지된다. 부호화 자체가 사실상 관련 작업이며, 타임 슬롯에 포함된 수신된 입력 데이터는 트레이닝 프로세스 동안 네트워크가 학습한 것에 기초하여 Q 및 S 계수에 매핑된다. 그러므로 수신된 길이 및 품질 데이터에 따라 다음의 Q 및 S 값을 결정함으로써, 네트워크는 종래의 제어 시스템과 동일한 작업을 수행한다. 직관적으로 타임 슬롯은 특정한 상황을 서술한다고 할 수 있다. 네트워크는 현재의 상황에 가장 부합하는 상황을 트레이닝 동안 직면하게 되는 상황들 중에서 상기 특정한 상황으로서 조사하고, 그 특정한 상황과 결합해서 학습된 최적의 응답을 제공한다.
뉴럴 네트워크의 수행된 변수는 소위 S자 결장의 합(sigmoid sum)이라 하는 단일의 식만을 실질적으로 사용한다.
Figure 112005067001496-PCT00043
여기서, N은 뉴런의 수이다.
"이득(gain)" 값은 1일 수도 있고 그 유일한 역할이 출력값들의 크기의 순서를 결정하는 것이므로 최적의 조사에 의해 결정될 수도 있다. 먼저, 은닉층(들)에서의 뉴런의 가중 함수를 상기 식에 따라 합산한 다음 출력층들의 가중 함수에 대한 계산을 마찬가지로 수행한다.
실제의 실행에 있어서는, 입력 데이터를 제외하고는, VBR과 CBR 네트워크 간에 상당한 차이는 존재하지 않으며, 이는 VBR 모드를 수행하는 네트워크가 CBR 모드의 기능을 마찬가지로 수행할 수 있다는 것을 의미한다. CBR 모드 동작에 있어서, 이것은 품질 입력에서 상수값을 단순히 제공함으로써 달성된다(가능성 있는 최대값에서, 입력들은 마찬가지로 트레이닝 동안 일정하게 유지된다). CBR 모드에서는 최소 및 최대 대역폭 제한 입력이 동일하게 설정되고, 원하는 일정한 대역폭에 대응하는 값들로 설정된 상수로 유지된다.
Ⅶ.4. 본 장에서는 뉴럴 네트워크에 의해 수행되는 향상된 동적 양자화의 다른 변수에 대해 서술한다(소위 어드레스 압축해제 방법).
Ⅶ.4.1 이 네트워크 모델은 산술적 부호화를 취급하는 섹션(section)에 제공된 모델의 변형이다. 전술한 네트워크와는 네트워크의 소정의 선택된 뉴런의 어드레싱이 전체적인 타임 윈도우/타임 슬롯에 의해 결정되지 않는다는 점에서 다르다. 이것은 도 19에 개략적으로 도시되어 있는데, 도 19는 타임 윈도우에서 시험된 입력 데이터가 어드레스 발생기를 우회하는 것이 도시되어 있다. 여기서 입력 데이터 시퀀스의 구성요소들은 0-s 및 1-s가 아니며 그러므로 전술한 어드레스 발생 공정을 직접적으로 적용할 수 없다. 대신 뉴럴 네트워크의 입력층이 2 부분으로 이루어져 있다. 해시 함수는, 타임 윈도우에서 발견할 수 있는 데이터 값마다에, (전술한 예와 유사한) 입력 데이터가 예상/부호화된 길이 데이터인가 예상/부호화된 품질 데이터인가에 따라 2048 또는 256과 같은 적절한 수의 뉴런 중에서 선택된 하나의 뉴런을 할당한다. 사실상, 이것은 2개의 뉴런 가중 테이블을 의미하는데, 하나는 예상/부호화된 길이 데이터로 작동하는 뉴런(더 정확하게는 뉴런에 대한 가중 함수)에 대한 테이블이고 다른 하나는 예상/부호화된 품질 데이터로 작동하는 뉴런의 가중 함수에 대한 테이블이다.
타임 슬롯 크기가 N=32이고, 어드레스 발생이 11 및 8 비트를 사용하여 각각 수행되는 경우, 2개의 데이터 종류에 있어서, 뉴런의 입력 데이터를 저장하는데 필요한 메모리의 크기는 Mem = 2048 * 16 + 256 * 16 이다(어드레스를 위한 16x11 비트 길이의 정규화된 데이터는 예상/부호화된 길이로부터 발생하고, 어드레스를 위한 16x8 비트 길이의 정규화된 데이터는 예상/부호화된 품질 데이터로부터 발생한다).
사용된 어드레스 변환 공정 중에, 뉴럴 네트워크의 입력은 0과 1 사이의 값들을 갖는 데이터로 정규화되는데, 이러한 값들은 이어서 어드레스 발생을 위해 정수로 변환된다.
Figure 112005067001496-PCT00044
여기서, VKn은 정규화된 예상/부호화된 길이 비이고 Cvk는 발생된 어드레스이며, Mn은 정규화된 품질이고 Cm은 발생된 어드레스이다.
이러한 표현에 기초하여, 타임 시퀀스의 위치마다 위치해 있는 데이터로부터 어드레스가 발생된다. 그런 다음 이렇게 발생된 어드레스들은 테이블에 저장된 뉴런을 어드레스한다. 환언하면, 뉴런은 상기 발생된 어드레스들에 의해 선택되고, 뉴런은 트레이닝 프로세스 동안 예상/부호화된 길이 및 예상/부호화된 품질과의 비를 수신한다. 시스템은 타임 시퀀스와 관련이 없는 2개의 다른 입력을 가지고 있다. 도 18c에 도시된 네트워크와 유사하게, 이러한 입력들은 최소 및 최대 대역폭을 결정하는데 사용된다. 식(1/Q - 1/Qprev)을 사용하여 에러 계수를 계산하는데, 이 에러 계수는 현재의 트레이닝 양자화 인자의 역수와 이전에 계산된 양자화 인자의 역수의 차이로서 결정되며, 단 Qprev는 이전의 양자화 인자이다.
가중 함수는 다음과 같이 변형된다:
Figure 112005067001496-PCT00045
네트워크의 효과적인 제어 동작 동안 추가의 트레이닝은 없으며, 이 시스템역시 사전 트레이닝된 네트워크를 사용한다. 제어 동작의 프로세스는 가중 변형이 활성화되지 않는 것은 제외하고는 트레이닝 프로세스와 동일하다.
전술한 바와 유사한 방법에서, 시스템은 최소/최대 대역폭 및 품질 데이터를 각각의 상수값을 고정함으로써 CBR 모드로 전환될 수 있다.
이 시스템은 다중-스텝 모드에서도 마찬가지로 완벽하게 동작한다. 이 모드의 필수 동작은 제1 단계에서, 시스템은 제어 없이 일정 양자화 인자로 (예를 들어 3으로 설정된 Q로) 전체 풋티지(footage)를 인코딩하는 것이다. 다음의 제2 단계에서는 활성화된 제어 시스템으로 부호화를 수행하는 것이다. 이 해결법은 제1 단계가 각각의 프레임이 압축될 수 있는 정도를 지정하기 때문에 정확도가 향상된 부호화를 제공하므로 Q를 결정할 필요는 없지만 스텝 1에서 직접적으로 채택될 수는 있다. 그렇지 않으면, 본 발명의 뉴럴 네트워크는 어떠한 변형없이 적용될 수 있다. 다중-스텝 모드에서 트레이닝은 고속 트레이닝 공정을 사용하여 수행될 수 있다. 또한 이러한 모드에서는 보간이 매우 효과적인데, 이산 제어 시스템에 의해 4-6 스텝에서 달성된 품질은 뉴럴 제어 시스템에 의해 2 스텝만큼 작게 도달될 수 있다.
단일 스텝 모드에 비교해서, 다중 스텝 모드는 우수한 품질을 반드시 제공하 지 않아도 된다는 것을 인식하여야 한다. 이러한 모드의 이점 중 하나는 출력의 길이를 저장 매체의 용량에 대응하는 소정의 값으로 조정할 수 있다는 것이다.
Ⅷ. 동적 스케일링
Ⅷ.1. 전술한 바와 같이, 부호화된 비디오의 원하는 길이를 원하는 비디오 품질로 유지하기 어려운 일이 빈번하게 발생한다. 이것은 사전설정된 압축률이 특정의 시퀀스에서 너무 높아 원하는 이미지 품질을 현재 설정된 최소/최대 한계의 압축률을 사용해서는 유지할 수 없기 때문에 야기된다. 이러한 상황은 통상적으로 매우 상세하고 액션이 풍부한 풋티지에서 일어난다. 일례로, 필름 영화 "The Mummy Returns"의 처음 5분을 언급할 수 있다. 이 특정한 시퀀스의 경우, 양호한 품질의 MPEG 압축에 적어도 2.5 Mbit/s의 대역폭이 필요하다. 그렇지만, 이용 가능한 대역폭이 1.5 Mbit/s로 저하하면, 에러를 제어하기 위해서는 오히려 복잡한 전후 필터링 동작이 압축 및 압축해제 시간에 모두 필요하게 된다. 이것은 부호화된 비디오의 품질이 "수용할 수 있는" 레벨에 겨우 도달할 수 있는 정도로 이미지 선명도를 매우 저하시킨다.
Ⅷ.2. 전술한 문제를 해결하기 위해, 본 발명에 따른 동적 스케일의 개념을 도입한다. 이것은 제어 시스템이 외부의 고정된 경계 조건으로 인해 원하는 이미지 품질을 유지하기 어려운 경우에 스케일링 다운(재스케일링)을 수행하는 것을 의미한다. 프레임을 만족스런 결과를 제공하는 크기로 스케일 다운시킨다(크기를 다시 조정한다). 시스템은 이러한 크기가 감소된 프레임을 압축하고, 압축해제 시 그것을 그 원래의 크기로 다시 복원한다. 이해할 수 있는 바와 같이, 이미지 품질은 이 경우에도 마찬가지로 저하된다. 그렇지만 이것은 일차적으로 감소된 선명도로서 나타난다. 적어도 압축률이 극단적으로 높게 설정되어 있는 경우가 아니라면, 인공적인 구조의 차단이나 압축률에 의해 야기되는 다른 통상적인 에러는 일어나지 않는다.
입력 데이터의 양이 이러한 임계의 프레임 시퀀스에 대해 감소되었지만 압축 계수는 변하지 않았을 때 무슨 일이 일어나는지에 대해 시험하였다. 환원하여, 프레임을 그 원래의 크기에서 3/4 또는 1/2로 스케일 다운하였다. 인코더는 가능한 한 데이터 레이트를 일정하게 유지하려 하므로 이미지 품질을 고려하여 프레임 크기의 감소에 따라 압축률이 감소된다. 이 방법에서 출력 데이터의 양은 스케일링을 다시 하기 전과 동일하게 유지된다.
예를 들어, 전체 데이터 스트림이 예를 들어 0.5 Mbit/s의 대역폭으로 부호화되고, 임계의 시퀀스에서 프레임이 그 원래의 크기에서 절반으로 줄어드는 경우, 실제의 전송률은 0.5 Mbit/s를 유지하지만, 압축률 및 양자화 인자 모두는 현저하게 감소된다. 위의 예에서, 후자의 계수는 원래의 크기 면에서, 2 Mbit/s 대역폭으로 부호화된 이미지 품질에 대응하는 정도로 감소된다. 이로 인해 에러가 감소된다. 상기 방법의 단점은 스케일링이 프레임의 해상도를 감소시킨다는 것이다. 그러므로, 프레임이 복호화되는 동안 그 원래의 크기로 복원될 때 손상된 픽셀의 값을 유추하여야 한다. 그렇지만, 이러한 문제는 적절한 스케일링 방법을 적용하면 상당히 감소될 수 있다. 프레임 내에 공간 주파수 구성성분이 존재한다는 것과, 변환이 이에 따라 수행되어야 한다는 것을 고려해야만 한다.
Ⅷ.3. 따라서, 본 발명에 따른 동적 스케일링 방법에서는 스케일링된 이미지를 필요로 한다. 보간 기반의 일련의 프레임 스케일링 방법이 테스트된다. 랑코 방법은 최상의 결과를 보여주고 있다(랑코 (Lancos))방법은 이미지의 공간 주파수 구성성분에 기초하여, 필터에 의해 손상된 픽셀을 보간하는 공지의 재샘플링 공정이다). 스케일링한 수행한 방법과 수행하지 않은 방법을 비교해 보면, 스케일링을 수행하지 않을 때 임계의 시퀀스에서, 스트림이 0.5 Mbit/s의 전송률로 압축되는 경우에 품질 손상이 쉽게 인지되는 것으로 밝혀졌다. 이러한 이미지의 많은 영역이 완전하게 "평평"하게 되고, 인공적인 것이나 스트라이프를 차단하는 것이 나타나고, 이미지 선명도는 그 이미지에 이레이저(eraser)를 적용한 것처럼 일부 영역에서 현저하게 감소된다. 한편, 본 발명에 따른 프레임 스케일링으로 압축을 수행한 경우는, 이러한 에러들이 전혀 발생하지 않는다. 인지할 수 있는 에러라고는 선명도의 감소뿐이다. 그렇지만, 상기 시퀀스들을 분석한 결과, 비디오 풋티지에서의 고속 동작이 발생하는 포인트들에서 스케일링이 통상적으로 필요하다는 것이 밝혀졌다. 고속 동작 장면들은 일반적으로 이미 원래의 장면에서 약간 흐릿해지기 때문에, 재스케일링으로 인해 생기는 정보 손실은 미미한 수준이다.
본 발명의 동적 스케일링 공정은 다음과 같이 수행된다.
각각의 인입 프레임은 시작 시에 0의 스케일링 인자(스케일링 없음)로 스케일링 모듈을 통해 통과한다. 압축 제어 시스템은 부호화의 결과가 지정된 한계 내에서 만족스러운지를 판단한다. 결과가 만족스럽지 못하면 프레임 크기를, 디코딩 후에도 수용 가능한 품질을 제공할 수 있을 정도까지 변화(감소)시킨다.
스케일링 작업은 이산 방법들을 사용해서도 해결할 수 있다는 점을 인식하여야 한다. 그렇지만, 뉴럴 네트워크는 이미 본 발명의 대역폭 제어를 위한 시스템을 적용하였다는 것을 고려하면, 스케일링 역시 뉴럴 네트워크로 더욱 효과적으로 수행될 것이다. 상기 문제는 대역폭 제어의 문제와 밀접하게 관계 있으므로, 뉴럴 네트워크에 다른 출력을 부가하면 만족스럽게 될 것으로 밝혀졌다(도 18c 참조). 그러므로, 네트워크는 2개의 출력을 가지는데, 하나는 양자화 인자의 Q 계수를 제공하는 것이고 다른 하나는 스케일링 인자 S를 제공하는 것이다.
대역폭 제어를 위해 제공된 첫 번째 해결법에서는(Ⅶ.3 및 도 18c 참조), 새로운 뉴런(189)이 직접적으로 투입되어, 그 출력이 스케일링 인자 S를 제공한다. 그렇지만, 제안된 두 번째 해결법에서는(Ⅶ.4 참조) 실제로 2개의 가중 벡터가 테이블 어드레스마다 할당되어야 한다.
이것은 실제로, 동일한 입력들을 가지되 출력에는 서로 다른 값을 제공하는 2개의 독립적인 뉴럴 네트워크에 상응한다. 상기 뉴럴 네트워크를 더 정교하게 하기 위해, 상기 뉴럴 네트워크에 은닉층을 추가하고, 은닉층의 뉴런을 출력층에 접속하는 것이 제안되었다. 이 경우, 네트워크는 소위 후방 전파 구조를 가지게 된다. 여기서 다시 언급하면, 전술한 해결법에서와 같이, 입력층의 뉴런은 시스템이 생성한 어드레스가 가리키는 위치에 의해 선택된다.
스케일링 공정은 I(인트라) 프레임에서 시작해서 그 다음의 I 프레임에서 끝난다. 다른 종류의 프레임에서 결정된 스케일링 인자들은 평균화된다. 이에 대해서는 도 20 및 도 21에 도시되어 있으며 이들 도면에서 스케일링은 A로 표시된 포인 트에서 시작해서 B로 표시된 포인트에서 끝난다.
X. 본 발명에 적용되는 신경제어 시스템과 관련된 일반적인 몇몇 언급 사항
//우리는 본 발명의 제어 시스템의 잠재적인 응용을 위한 다수의 상이한 네트워크 형태를 시험했다. 그것들의 계산상의 로드와 적절한 제어 동작을 고려할때, 놀랍게도 가장 간단한 구조를 가지는 네트워크에 의하여 최상의 결과가 만들어졌다. 상술한 역전파-타입(backpropagation-type) 네트워크보다 많은 경우에 있어서 더 낳은 근사값을 제공한다면, 그러나 주소-분해(decomposition)방법(위 참조)가 적용된 경우에만, 소위 반대전파-타입(counterpropagation-type)네트워크 역시 우수한 결과를 가져올 수 있다.
요약하면, 더 큰 지식 기반을 가지는 두번째 방법이 첫번째 방법보다 더 잘 수행되었다. 역전파-타입 또는 소위 반대전파-타입으로 전환되어, 그것은 우수한 제어를 제공한다.
본 발명은 본질적으로 상이한 제어 특성을 인지할 능력이 있는 제어 시스템을 제공하고 시각적으로 인지된 이미지의 품질 또한 고려하면서 최적의 압축을 보장한다는 아이디어에 기초한다. 상이한 학습된 특성은 어떠한 주어진 비디오 시퀀스에 대하여도 가장 적절한 특성의 선택을 가능하게 하는 프로파일들로 분류될 수 있다. 우리는 또한 불연속 제어 시스템을 시험하였으며 이들이 적절하지 않은 제어역학을 가진다는 것을 알게 되었다. 예를 들면, 복호화가 중간 주파수대를 사용하여 두단계로 수행된 경우 더욱 고 압축이 요구되는 시퀀스 또는 더욱 낮은 압축을 사용에 만족하는 장면이 항상 있을 수 있다. 알려진 불연속 시스템은 그들이 일반 적으로 일정한 함수를 이용하여 인코딩을 수행하는 것을 의미하는 닫혀진(closed) 시스템이다. 그러나, 상기 신경 시스템은 이전의 프레임의 정보를 고려하여 학습된 순간 특성을 사용하여 복호화 제어를 수행할 수 있는 능력을 갖는다.
상이한 신경 네트워크 모델이 본질적으로 알려져 있기 때문에 본 서면에서는 새로운 신경 네트워크의 구동에 대하여는 자세하게 분석되지는 않았다. 우리는 비디오 프레임 시퀀스에 적용된 신경 네트워크의 구체적인 다수의 실시예만을 제공하였다.
XI . 1. 본 발명의 방법을 수핸하는 하이브리드 비디오 복호화 시스템의 작동 개요
전체 시스템의 구조가 도8 및 도 22 내지 도 24에 도시된다.
압축하는 동안 프레임은 먼저 크기조절(scaling)시스템(61(도8))을 통과한다. 상기 시스템은 어떤 방법으로 부호화가 계속되어야 하는지를 결정하고 이에 따라, 부호화모드(I.P.B)를 선택한다. I-프레임의 경우 상이한 예측들이 각각의 블럭에 대하여 수행되고, 시스템은 변이 분석 결과에 기초하여 최상의 압축성을 보증하는 예측을 선택한다. 그러면, 블럭들은 DCT로 변환되어, 저절한 레벨로 양자화되고 압축된다.
B프레임에 대하여 이전 프레임과 다음의 프레임이 부호화되어야 하는 현재의 블럭을 위한 매칭 기준 블럭 검색하는 기준프레임으로 사용되는 한편, P-프레임의 경우 오직 이전 프레임이 사용된다.
발견된 블럭은 그후 블럭 크기와 위치(이는 선택적으로 1/2 또는 1/4 픽셀 해상도 탐색과 모션 보상을 사용하여 기준 블럭으로부터 감산된다.)에 따라 보상된다. 그후 상기 블럭은 예측, 변환, 및 부호화된다. 동시에, 발견된 기준 위치는 동작 벡터로 전환되고, 상기 동작벡터는 이전의 것에서 감산되어 적절한 레벨에서 압축된다.
압축 비율은 예상되고 부호화된 길이와 품질값에 따라 제어 시스템에 의하여 조정된다. 현재의 제한의 범위 내에서 원하는 품질이 유지될 수 없는 경우 프레임은 품질이 받아들여질 수 있는 크기까지 축소된다. 구체적인 구현에 있어서 상기 시스템은 결코 프레임을 그들의 원래 크기의 절반보다 작게 줄이지는 않았다는 것을 주지하여야 한다.
놀랍게도, 구현된 방법은 기대된 것보다 훨씬 더 우수하게 수행됨을 알 수 있었다.
450kB/s의 대역위에서 재스케일링에 의한 선명도(sharpness)상의 감소를 제외하고 중요한 시퀀스에서의 시각적으로 인지 가능한 오류가 거의 없다. 380-450kB/s범위내의 전송율로 본 발명의 하이브리드 부호화 시스템은 평균적인 비디오 레코더의 SP모드의 품질을 제공하는 한편, 280-380kB/s범위내에서 품질은 보통의 비디오 레코더의 LP모드에 대응된다는 것을 알 수 있었다. 대역이 500kB/s를 초과하는 경우, 비디오 품질은 DVD품질에 접근하게 된다. 750kB/s 한계위에서 그것은 DVD로부터 실질적으로 시각적으로 판별할 수 없다.
본 부호화 시스템의 결점은, 산술 부호화가기 때문에 전송 채널에서의 데이터 손실에 의해 발생하는 에러에 민감하다는 것이다. 하지만, 현대의 디지털 전송 네트워크(예컨대, 인터넷)는 안전성이 높고 실질적으로 손실이 없는 데이터 전송이 가능하고, 심지어 매우 큰 데이터량을 처리할 수 있기 때문에, 이러한 결점이 그리 중요하지 않다. 효율 좋게 이 부호화 시스템을 동작시키기 위해, 주파수(빈도) 테이블이 지속적으로 갱신되어야 한다. 만일 전송 에러가 복호화 과정의 어디에선가 발생하면, 그 지점으로부터 그 영향을 받은 프레임의 끝까지 모든 데이터가 손상될 것이다.
XI.2.1. 본 발명에 따른 시스템을 가지고 압축된 데이터를 복호화하기 위해 사용되는 하이브리드 비디오 디코더의 동작은 도 22를 참조하여 설명한다. 프레임 복구는 인코딩된 데이터를 입력 버퍼(121)로 제공하고 스트림 정보 블록(133)을 복호화함으로써 시작된다. 이 스트림 정보 블록(133)은 프레임의 원래 크기 및 복호화 과정에서 변경되지 않는 다른 데이터를 포함한다. 따라서, 이 스트림 정보 블록(133)은 복호화 과정의 시작 시점에서 오직 한번만 복호화된다. 다음으로, 프레임 헤더 정보가 복호화된다(단계 122). 프레임 헤더 정보 블록은 현재 프레임 크기, 프레임 타입(I,P,B), 양자화 타입, 및 주어진 프레임에 전용적으로 해당되는 다른 데이터를 포함한다.
프레임이 인트라(intra) 프레임인 경우, 블록 분할을 나타내는 쿼드트리(QuadTree) 구조가 DCT 계수와 개별의 블록에 해당되는 특정 정보와 함께 복호화된다(단계 123, 126). 다음으로, 각 블록에 대해 역변환이 수행되고(단계 127, 128, 129), 그 결과로서 얻어진 역변환된 블록은 새로운 프레임을 저장하는 현재 비디오 메모리(131)에 기록된다.
인트라(intra) 프레임에서, 각 블록은 그 복원을 위해 필요한 모든 데이터를 포함하고 있다(특히, 예측 타입 및 해당 블록이 16×16 블록 또는 4개의 4×4 블록으로 분할되었는지를 나타내는 정보, 등).
인트라 프레임에서, 먼저 블록 분할을 나타내는 쿼드트리 구조가 단계 123에서 복호화된다. 왜냐하면, 이 트리 구조가 해당 블록의 복원을 위해 요구되는 데이터를 포함하고 있기 때문이다. 이들 데이터는, 개별의 서브-블록에 연관된, DCT 계수, 움직임 벡터, 및 예측 코드를 복호화하기 위해 사용되고, 또한 부호화를 위해 사용되었던 참조 프레임을 식별하기 위한 코드를 복호화하기 위해 사용되기도 한다. 역변환이 또한 수행되고(단계 127, 128, 129), 그런 다음, 참조 메모리(125)에 저장된 참조 프레임의 블록들, 즉 단계 124에서 움직임 벡터를 이용하여 선택된 블록들이 단계 130에서 역변환된 블록들에 더해진다.
프레임이 선형 보간법을 이용하여 부호화되었다면, 우선 보간된 블록이 단계 124에서 복원된 움직임 벡터에 의해 선택된 블록과 참조 메모리(125)에 저장된 참조 프레임에 기초하여 생성되고, 그런 다음 이 보간된 블록은 역변환된 블록에 더해진다. 각 복원된 블록은 새로운 프레임을 저장하는 현재 비디오 메모리(131)에 기록된다.
복호화되어 복원된 인트라(intra) 및 인터(inter) 프레임은 모두 참조 메모리(125)에 기록된다. 참조 메모리(125)는 부호화 과정 동안 사용된 참조 프레임의 최대수에 따라 하나 이상의 프레임을 포함할 수 있다. 참조 메모리(125)는 원형 버퍼이다. 즉, 새로운 프레임이 저장될 때마다 가장 오래된 프레임이 삭제된다.
다음 단계는 단계 132에서 프레임 크기를 원래대로 복원하는 것이다. 프레임 크기는 바람직하게는 랑코즈 법(Lancos method)으로 복원된다. 스케일링(scaling)은 적합한 서브루틴에 의해 부호화 및 복호화 동안 수행된다. 이용가능한 하드웨어 비디오 소스나 스케일링이 가능한 출력 기기가 있는 경우에, 코더나 디코더는 프레임 크기만 특정하면 된다.
XI.2.2. 뉴럴 디코더(neural decoder)
알려진 바와 같이, 산술 부호화에서의 코더의 동작이 디코더의 동작과 동일하기 때문에, 뉴럴 산술 디코더는 뉴럴 산술 모듈과 실질적으로 동일한 방식으로 동작한다. 본 방법은 적응적이기 때문에, 단일 비트가 시작 시점에서 복호화되고, 새로운 예측자(predictor)가 이 복호화된 비트를 이용하여 계산된다. 이 예측자를 계산하기 위해, 부호화용 뉴럴 네트워크는 변형없이 사용될 수 있다. 코더와 디코더 간의 사이는 다른 기능적 요소는 완전히 일치하고, 다만 알려진 바와 같이 수학적 계산에 있어서만 차이가 있을 뿐이다.
마지막으로, 완성된 비디오 부호화/트랜스코딩 시스템이 제공된다(도 23 참조).
본 비디오 부호화 시스템은 비디오 신호의 디지털화(digitizing), 효율적인 부호화, 및 저장을 수행할 수 있다. 동시에, 이것은 또한 이미 인코딩된 디지털 비디오 데이터를 저장 효율을 증가시키기 위해 트랜스코딩할 수도 있다. 예컨대, 그러한 트랜스코딩은 DVB 방송의 MPEG 전송 패킷의 대역폭을, 위성 방송 또는 텔레비전 방송을 기록하기 위해, 예컨대, 약 20 Mbit/s에서 약 600 Kbit/s로 줄이는 데 에 사용될 수 있다. 마찬가지로, 본 고효율 부호화 방법은 또한 기계적 기기를 응용하기 않고도 디지털 비디오 카메라로 기록된 비디오 시퀀스를 저장하기 위해 사용될 수 있다.
부호화 시스템의 입력은 아날로그 비디오 입력(93), 결합된 복호화된 MPEG 디지털 비디오/오디오 패킷 입력(94), 및 아날로그 오디오 입력(105)으로 구성된다.
본 부호화 시스템은 다음과 같은 모드로 동작될 수 있다.
a. 아날로그 비디오 입력(93) 및 아날로그 오디오 입력(105)으로부터 들어오는 신호를 디지털 변환 후에 부호화한다.
b. 디지털 비디오 신호(94) 및 오디오 신호를 트랜스코딩(transcoding)한다. 여기서, 오디오 신호는 결합된 디지털 비디오/오디오 신호 패킷으로부터 디멀티플렉서(109)에 의해 분리된다.
선택기(96)에 의해 선택된 디지털 비디오 데이터는 입력(97)을 통해 부호화 시스템(98)(도 8을 참조하여 위에서 설명한)으로 제공된다. 부호화된 비디오 데이터(99)는 멀티플렉서(100)에 의해 디지털 오디오 데이터와 멀티플렉싱되어 결합된 패킷(101)을 생성한다. 디지털 패킷은 PSC(주변 시스템 컨트롤러:Peripheral System Controller)(102)에 의해 라우팅되어, 하드 디스크(103)나 광 저장 기기 또는 반도체 메모리(104)에 저장될 수 있다. 선택기(107)에 의해 선택된 디지털 오디오 신호는 인코더(108)에 의해 부호화되어 상술한 바와 같이 저장된다.
XI.2.3. 저장된 비디오 및 오디오 데이터의 복호화는 도 24에 도시되어 있 다.
디멀티플렉서(110)는 반도체 메모리(104) 또는 하드 디스크(103)에 저장된 데이터 패킷을 부호화된 디지털 비디오 데이터(111)와 부호화된 디지털 오디오 데이터(112)로 분리한다. 디지털 비디오 데이터(111)는 도 22를 참조하여 설명한 복호화 시스템(113)에 의해 복호화된다. 복호화된 비디오 데이터(114)는 선택적으로 필터링 및 스케일링 모듈(115)로 제공되고, 그런 다음 D/A 변환기(116)에 의해 아날로그 비디오 신호(117)로 변환된다. 디멀티플렉서(110)에 의해 분리된 디지털 오디오 데이터(112)는 디코더(118)에 의해 복호화되어, D/A 변환기(119)에 의해 궁극적으로 아날로그 오디오 신호(120)로 변환된다.
본 발명은 상기 실시예에 한정되지 않고, 다른 여러 가지 변형예 및 구현예를 포함할 수 있다.

Claims (60)

  1. 디지털 부호화된 비디오 프레임 시퀀스를 압축하는 방법으로서,
    (1) 주어진 프레임을 블록들로 분할하는 단계;
    (2) 선택적으로, 상기 개별의 블록들을 더 작은 블록들로 분할하는 단계;
    (3) 선택된 블록들의 정보 컨텐츠를 이웃하는 하나 이상의 블록에 포함된 정보에 기초하여 변경하는 단계(예측(prediction));
    (4) 상기 선택된 블록들에 대해 공간 표현(spatial representation)을 주파수 표현(frequency representation)으로 변환하는 변환(DCT:Descrete Cosine Transform)을 수행하여, 변환된 블록들을 생성하는 단계; 및
    (5) 엔트로피 코딩에 의해 상기 변환된 블록의 정보 컨텐츠를 인코딩하는 단계
    를 포함하고,
    (a) 상기 단계 (4)에서의 변환을 수행하기 전에 상기 선택된 블록에 대해 압축성 분석을 수행하고,
    (b) 상기 압축성 분석의 결과에 기초하여, 상기 블록에 대해 상기 단계 (3)(예측) 및 단계 (4)(DCT)를 수행하며,
    (c) 선택적으로, 상기 블록을 서브-블록들로 더 분할하고, 개별의 분할에 의해 얻어진 블록들에 대해 상기 (a)의 압축성 분석을 다시 수행하며,
    (d) 상기 (a) 및 (c)의 수행 결과에 기초하여 최상의 결과를 가져올 수 있는 블록 분할이 선택되고,
    (e) 상기 단계 (3)에서의 예측에 기초하여, 최상의 결과를 가져올 수 있는 블록 분할을 이용하여 상기 단계 (4)에서의 변환을 수행하는 것을 특징으로 하는 압축 방법.
  2. 제1항에 있어서,
    상기 개별의 블록 분할에 속하는 블록들에 대한 압축성 분석을, 상기 블록들의 컨텐츠 및/또는 개별의 블록 형태의 출현 빈도를 고려하여 수행하는 것을 특징으로 하는 압축 방법.
  3. 제1항에 있어서,
    상기 블록들의 컨텐츠에 대해, 상기 압축성 분석을 수행하는 동안, 아다마르(Hadamard) 필터를 통해 또는 직접적으로 편차 분석(variance analysis)을 행하는 것을 특징으로 하는 압축 방법.
  4. 제3항에 있어서,
    상기 편차 분석은 다음의 수식
    Figure 112005067001496-PCT00046
    을 이용하여 수행되고,
    상기 수식에서, M은 주어진 블록 또는 서브-블록 내의 요소(element)의 수이고, pixel(i)는 압축되지 않은(원래의) 블록의 요소이며,
    상기 편차가 주어진 임계값을 초과하였는지 확인하기 위해 상기 계산된 편차값을 상기 주어진 임계값과 비교하는 것을 특징으로 하는 압축 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    주어진 프레임 내에서 최대로 허용되는 블록 크기를 가진 블록들에 할당되어 그 할당된 블록의 블록 분할(쿼드트리(Quadtree))을 나타내는 특정 데이터를 엔트로피 코딩으로 추가로 인코딩하는 것을 특징으로 하는 압축 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    이산 코사인 변환(DCT)은 공간 영역에서의 표현을 주파수 영역에서의 표현으로 변환하는 변환으로서 사용되는 것을 특징으로 하는 압축 방법.
  7. 제6항에 있어서,
    16×16 픽셀 미만의 블록들에는 상기 DCT를 적용하고, 16×16 픽셀의 크기를 가진 블록들에는 아드마르 변환을 적용하는 것을 특징으로 하는 압축 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 변경된(예측된) 블록들의 정보 컨텐츠는, 상기 압축성 분석을 수행하는 동안, 다음의 수식
    Figure 112005067001496-PCT00047
    에 따라 정량화되고,
    여기서, M은 상기 예측된 블록 내의 요소의 수이고, pixel(i)는 상기 예측된 블록의 요소이며,
    상기 계산된 "sum"값이 주어진 임계값 또는 이전의 "sum"값을 초과하는지를 확인하기 위해 상기 계산된 "sum"값을 상기 주어진 임계값 또는 이전의 "sum"값과 비교하는 것을 특징으로 하는 압축 방법.
  9. 제8항에 있어서,
    상기 개별의 블록에 대한 예측을 수행하는 동안, 다중 예측 모드를 이용하여 예측을 수행하고, 상기 예측 모드는 상기 주어진 블록에 적용되는 가장 낮은 "sum"값을 산출하는 것을 특징으로 하는 압축 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    개별의 블록 크기의 출현 카운트가 두 개의 가장 자주 출현하는 블록 크기의 출력 빈도가 주어진 값을 초과한다는 것을 성립시키는 경우, 모든 블록을 상기 두 개의 가장 자주 출현하는 블록 크기의 블록들로 교체하는 것을 특징으로 하는 압축 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 블록들에 대한 압축성 분석을 수행하는 동안 에러를 계산하고,
    상기 계산된 에러를 고려하여 임계값 이상의 에러에 기여하는 블록들은 서브-블록으로 분할하는 것을 특징으로 하는 압축 방법.
  12. 제11항에 있어서,
    상기 에러가 주어진 서브-블록에서 소정의 값을 초과하는 경우에, 상기 서브-블록을 더 작은 서브-블록들로 분할하고, 그 결과로서 얻어지는 상기 더 작은 서브-블록을 포함하는 블록 분할에 대해 상기 압축성 분석을 수행하는 것을 특징으로 하는 압축 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 블록들 및 상기 서브-블록들은 16×16, 8×8, 4×4, 또는 2×2의 크기로 사용되는 것을 특징으로 하는 압축 방법.
  14. 디지털 부호화된 비디오 프레임 시퀀스를 압축하는 방법으로서,
    (1) 주어진 프레임을 2차원 블록으로 분할하는 단계;
    (2) 특정 경우에 개별의 블록들을 서브-블록들로 더 분할함으로써, 상기 프레임의 블록 분할을 수립하는 단계;
    (3) 블록들의 정보 컨텐츠에 대해 공간 표현을 주파수 표현으로 변환하는 변환(DCT)을 수행하여, 변환된 다중-요소 2차원 블록(DCT 계수의 행렬)을 생성하는 단계;
    (4) 외부 경계 조건에 따라 상기 변환된 블록들의 요소를 변경하는 단계(양자화); 및
    (5) 상기 변환된 블록 내의 정보를 엔트로피 코딩에 의해 인코딩하는 단계
    를 포함하고,
    상기 단계 (4)에서, 상기 변환된 다중-요소 2차원 블록들 내의 데이터에 대한 변경은 상기 블록들의 크기와 부호화된 데이터의 전송에 사용되는 대역폭에 기초하여 변경되는 것을 특징으로 하는 압축 방법.
  15. 제14항에 있어서,
    상기 변환된 블록들에 대한 변경은 양자화인 것을 특징으로 하는 압축 방법.
  16. 제15항에 있어서,
    상기 양자화는 다음의 함수
    Figure 112005067001496-PCT00048
    에 따른 MPEG 양자화이고,
    상기 함수에서, qcoeff (j) 는 상기 변환된 다중-요소 2차원 블록의 요소이고, matrix (j) 는 상기 변환된 다중-요소 2차원 블록에 대응하는 크기의 행렬의 요소이며, QP는 양자화 인자인 것을 특징으로 하는 압축 방법.
  17. 제16항에 있어서,
    상기 matrix (j) 의 값은 실험적으로 수립된 행렬 테이블로부터 얻어지고,
    상기 테이블의 개별의 요소들은 전체 matrix (j) 행렬이며, 상기 단계 (4)에서의 외부 경계 조건에 따라 상기 테이블로부터의 선택을 수행하는 것을 특징으로 하는 압축 방법.
  18. 제16항 또는 제17항에 있어서,
    상기 테이블로부터의 선택은 상기 QP 양자화 인자의 값에 대해 수행하는 것을 특징으로 하는 압축 방법.
  19. 제16항 내지 제18항 중 어느 한 항에 있어서,
    상기 전체 QP 영역은 N개의 서브-영역으로 분할되고, 개별의 서브-영역에는 행렬 테이블이 할당되며, 상기 행렬 테이블의 크기는 상기 블록 크기에 대응하고, 각 서브-영역은 미리 특정된 대역폭 범위에 할당되는 것을 특징으로 하는 압축 방법.
  20. 제16항 내지 제19항 중 어느 한 항에 있어서,
    상기 단계 (4)의 외부 경계 조건은 사용가능한 저장 용량 및/또는 사용가능한 대역폭에 의해 정해지는 것을 특징으로 하는 압축 방법.
  21. 제14항 내지 제20항 중 어느 한 항에 있어서,
    특정한 경우에, 이웃하는 하나 또는 그 이상의 블록의 사전에 선택된 이미지 요소에 포함된 정보(예측) 또는 참조 프레임 내에 포함된 참조 블록의 정보 컨텐츠에 기초하여, 상기 단계 (3)에서의 변환이 수행되기 전에 선택된 블록들의 정보 컨텐츠를 변경하는 것을 특징으로 하는 압축 방법.
  22. 제14항 내지 제21항에 있어서,
    인트라 프레임(intra frame)을 인코딩하기 위해, 상기 제1항 내지 제13항 중 어느 한 항에 따른 방법의 단계들을 또한 수행하는 것을 특징으로 하는 압축 방법.
  23. 선행하거나 후속하는 프레임(참조 프레임)의 컨텐츠로부터 프레임의 정보 컨텐츠를 인코딩하는, 디지털 부호화된 비디오 프레임 시퀀스를 압축하는 방법으로서,
    (1) 상기 인코딩할 프레임을 블록들로 분할하는 단계;
    (2) 상기 인코딩할 주어진 블록에 대해, 상기 블록을 포함하는 프레임에 선행하거나 후속하는 참조 이미지에서 매칭되는 참조 블록을 검색하는 단계;
    (3) 상기 매칭되는 참조 블록과 상기 인코딩할 블록을 비교함으로써 압축성 분석을 수행하는 단계;
    (4) 상기 압축성 분석의 결과에 따라 최상의 참조 블록을 선택하는 단계; 및
    (5) 상기 선택된 최상의 참조 블록을 이용하여 상기 블록을 인코딩하는 단계
    를 포함하고,
    상기 단계 (2)에서 상기 참조 블록을 검색하는 동안,
    (a) 상기 인코딩할 블록을 서브-블록들로 분할하고,
    (b) 상기 서브-블록들의 컨텐츠를 분석하며,
    (c) 미리 정의된 기준에 따라, 소정 수의, 바람직하게는 두 개 이상의 서브-블록들을 선택하고,
    (d) 상기 선택된 서브-블록들을 이용하여 참조 블록의 검색을 수행하되, 상기 검색은 선택된 참조 프레임 내의 특정 검색 범위 내에서 상기 선택된 서브-블록들과 가장 차이가 없는 서브-블록들을 포함하는 참조 블록에 대해 수행하고, 상기 선택된 블록들의 상대적인 위치는 상기 검색을 수행하는 동안 일정하게 유지되며,
    (e) 상기 선택된 서브-블록들을 이용한 검색의 결과로서 상기 최상의 참조 블록을 선택하는 것을 특징으로 하는 압축 방법.
  24. 제23항에 있어서,
    상기 (5)에서의 최상의 참조 블록은, 상기 검색에 의해 현재의 참조 블록보다 더 나은 블록을 발견한 때마다, 새롭게 발견된 블록의 위치 데이터를 멀티-요소 원형 버퍼(multi-element circular buffer)에 기록하여, 상기 원형 버퍼의 마지막 요소가 상기 최상의 서브-블록의 위치를 포함하도록 하는 방식으로 선택되는 것을 특징으로 하는 압축 방법.
  25. 제23항 또는 제24항에 있어서,
    참조 검색은 상기 부호화할 블록 전체를 이용하여 수행되고,
    상기 검색은 최상의 참조 블록으로 간주되는 참조 블록의 주변에서 수행되며,
    최종의 참조 블록은 부호화할 블록 전체를 이용하여 수행된 상기 검색의 결과에 따라 선택되는 것을 특징으로 하는 압축 방법.
  26. 제23항 내지 제25항 중 어느 한 항에 있어서,
    상기 부호화할 블록과 상기 참조 블록의 절대 제곱 차(absolute square difference)를 결정하고, 상기 결정된 차(difference)에 기초하여 상기 참조 블록의 수용가능성에 대해 결정하는 것을 특징으로 하는 압축 방법.
  27. 제23항 내지 제26항 중 어느 한 항에 있어서,
    상기 참조 블록 검색을 필터링된 참조 프레임 내에서 수행하는 것을 특징으로 하는 압축 방법.
  28. 제23항 내지 제27항 중 어느 한 항에 있어서,
    상기 검색의 결과가 여전히 만족스럽지 않은 경우에, 추가의 참조 프레임 내에 위치한 검색 범위에서 상기 참조 블록의 검색을 수행하는 것을 특징으로 하는 압축 방법.
  29. 제23항 내지 제28항 중 어느 한 항에 있어서,
    상기 검색이 모든 참조 프레임 내에서 성공하지 못한 경우에, 상기 부호화할 블록을 서브-블록들로 분할하고, 각 서브-블록에 대해 매칭되는 참조 서브-블록을 검색하고, 상기 검색은 지금까지 최상의 결과를 나타낸 참조 프레임으로서 최상으로 간주되는 참조 프레임의 위치의 주변에서 수행되는 것을 특징으로 하는 압축 방법.
  30. 제29항에 있어서,
    상기 부호화할 블록을 서브-블록들로 분할한 것이 만족스런 결과를 가져오지 못한 경우에, 다른 참조 프레임들의 최상의 위치의 주변에서 참조 서브-블록의 검색을 수행하는 것을 특징으로 하는 압축 방법.
  31. 제29항 또는 제30항에 있어서,
    서브-블록이 잘못된 채로 남은 경우에, 상기 잘못된 서브-블록을 더 작은 서브-블록들로 분할하고 상기 검색을 반복하는 것을 특징으로 하는 압축 방법.
  32. 제23항 내지 제31항에 있어서,
    상기 부호화할 블록을 상기 참조 블록에서 감산하고, 그 차 블록(difference block)을 상기 단계 (5)에서 인코딩하는 것을 특징으로 하는 압축 방법.
  33. 제23항 내지 제32항 중 어느 한 항에 있어서,
    상기 차 블록의 정보 컨텐츠에 대해 공간 표현을 주파수 표현으로 변환하는 변환(DCT 또는 아드마르 변환)을 수행하여, 변환된 다중-요소 2차원 블록(DCT 또는 아드마르 계수의 행렬)을 생성하고, 상기 변환된 블록의 정보 컨텐츠를 엔트로피 코딩으로 인코딩하는 것을 특징으로 하는 압축 방법.
  34. 제23항 내지 제32항 중 어느 한 항에 있어서,
    상기 인코딩 처리를 수행하는 동안, 상기 제1항 내지 제13항 중 어느 한 항에 따른 방법의 단계들을 또한 수행하는 것을 특징으로 하는 압축 방법.
  35. 디지털 부호화된 비디오 프레임 시퀀스를 압축하는 방법으로서,
    (1) 각 프레임을 개별적으로 부호화될 블록들로 분할하는 단계;
    (2) 상기 블록들의 정보 컨텐츠에 대해 공간 표현을 주파수 표현으로 변환하는 변환(DCT)을 수행하여, 변환된 블록을 생성하는 단계; 및
    (3) 상기 변환된 블록에 포함된 정보를 엔트로피 코딩으로 인코딩하고, 엔트 로피 코딩으로서 산술 코딩을 적용하는 단계
    를 포함하고,
    상기 단계 (3)을 수행하는 동안, 상기 비트 시퀀스의 연속하는 비트들의 값의 함수로서 간격의 하한 및 상한을 변경함으로써 상기 비트 시퀀스를 인코딩하고, 상기 시퀀스에서의 이미 도착한 비트들의 분포가 상기 간격의 한계를 변경하는 함수에 고려되며,
    상기 비트 시퀀스에서의 이미 도착한 비트 값들로부터 어드레스가 생성되어, 다중 처리 요소를 포함하여 구성되는 뉴럴 네트워크(neural network)의 개별 처리 요소를 어드레싱하기 위해 사용되며,
    개별 어드레싱 동작의 빈도와 상기 비트 시퀀스에서의 현재 도착하는 비트의 값이 입력 데이터로서 사용되고, 상기 뉴럴 네트워크의 출력은 상기 간격의 하한 및 상한을 변경하는 파라미터를 결정하는 데에 사용되도록, 상기 처리 요소의 파라미터들이 변경되고,
    다중 비트들의 처리를 포함하는 초기 학습 단계 후에, 상기 간격의 상한 또는 하한이, 유입되는 비트들을 인코딩하는 동안, 상기 뉴럴 네트워크의 출력의 함수로서 결정되는 것을 특징으로 하는 압축 방법.;
  36. 제35항에 있어서,
    상기 유입되는 인코딩할 비트 시퀀스는 버퍼로 공급하여, 다수의 짧은 비트 시퀀스들로 분할하는 것을 특징으로 하는 압축 방법.
  37. 제36항에 있어서,
    상기 짧은 비트 시퀀스들의 비트들에 의해 나타내어지는 이진값은 어드레스로 간주되는 것을 특징으로 하는 압축 방법.
  38. 제35항 내지 제37항 중 어느 한 항에 있어서,
    상기 어드레스는 테이블에서의 행(row)을 선택하기 위해 사용되고, 상기 테이블은 적어도 하나의 가중 함수뿐 아니라 부호화할 현재 비트의 가능한 값들의 출현 빈도를 나타내는 함수값을 포함하는 것을 특징으로 하는 압축 방법.
  39. 제38항에 있어서,
    개별 뉴런(neuron)의 가중 함수들은 부호화할 비트의 포텐셜 값의 출현 빈도를 나타내는 함수값들의 함수로서 변경되는 것을 특징으로 하는 압축 방법.
  40. 제35항에 있어서,
    상기 어드레스들의 포텐셜 어드레스 범위들은 서로와 함께 연합을 형성하는(적어도 부분적으로 중첩되는) 것을 특징으로 하는 압축 방법.
  41. 제35항 내지 제40항 중 어느 한 항에 있어서,
    상기 뉴럴 네트워크의 이득 및 학습 속도는 경계 조건에 따라 동적으로 조정 되는 것으로 특징으로 하는 압축 방법.
  42. 제35항 내지 제41항 중 어느 한 항에 있어서,
    서로 다른 레벨을 가진 인코더가 사용되고, 각 레벨의 파라미터는 개별적으로 조정가능하며, 상기 뉴럴 네트워크는 각 레벨에 할당되는 전용의 파라미터들을 가지고 동작하는 것을 특징으로 하는 압축 방법.
  43. 제35항 내지 제42항 중 어느 한 항에 있어서,
    상기 인코딩 처리를 수행하는 동안, 상기 제1항 내지 제34항 중 어느 한 항에 의한 방법의 단계들도 수행하는 것을 특징으로 하는 압축 방법.
  44. 디지털 부호화된 비디오 프레임 시퀀스를 압축하는 방법으로서,
    (1) 주어진 프레임을 2차원 블록들로 분할하는 단계;
    (2) 상기 블록들의 정보 컨텐츠에 대해 공간 표현을 주파수 표현으로 변환하는 변환(DCT)을 수행하여, 변환된 다중-요소 2차원 블록(DCT 계수의 행렬)을 생성하는 단계;
    (3) 외부 경계 조건에 따라 상기 변환된 블록들의 요소들을 변경하는 단계(양자화); 및
    (4) 상기 변환된 블록들에 포함된 정보를 엔트로피 코딩으로 인코딩하는 단계
    를 포함하고,
    상기 단계 (3)에서의 상기 변환된 다중-요소 2차원 블록들의 데이터에 대한 변경은 뉴럴 네트워크의 출력의 함수로서 수행되는 것을 특징으로 하는 압축 방법.
  45. 제44항에 있어서,
    상기 뉴럴 네트워크는 역전파(back propagation) 또는 반대전파(counter propagation) 구조를 가지거나, 또는 다수의 뉴런으로 구성된 간단한 네트워크이고,
    여기서, 예측된/부호화된 길이와 예측된/부호화된 품질의 정규화된 값이 입력 데이터로서 사용되며, 특정 수의 사전에 수신된 입력 데이터와 현재의 입력 데이터가 타임 윈도우(타임 슬롯) 내에 저장되고, 상기 타임 윈도우(슬롯) 내에 포함된 데이터는 상기 뉴럴 네트워크의 입력 뉴런들에게 할당되는 것을 특징으로 하는 압축 방법.
  46. 제45항에 있어서,
    상기 뉴럴 네트워크의 입력층(input layer)에 있는 뉴런의 수는 상기 타임 윈도우 내에 저장된 데이터 요소의 수와 같은 것을 특징으로 하는 압축 방법.
  47. 제46항에 있어서,
    상기 뉴럴 네트워크가 은닉층(hidden layer)을 포함하는 것을 특징으로 하는 압축 방법.
  48. 제47항에 있어서,
    상기 은닉층 내에 있는 뉴런의 수는 상기 입력층에 있는 뉴런의 수보다 많은 것을 특징으로 하는 압축 방법.
  49. 제44항에 있어서,
    상기 정규화된 예측된/부호화된 길이 값과 예측된/부호화된 품질 값은 입력 데이터로서 사용되고,
    미리 정해진 수(N)의 사전에 수신된 입력 데이터 요소들(바람직하게, N=31 또는 N=63)이 사기 현재의 입력 데이터와 함께 타임 윈도우 내에 저장되고, 상기 타임 슬롯 내에 포함된 데이터에 기초하여 어드레스를 생성하며,
    상기 어드레스 생성 처리를 위해 입력 데이터를 주어진 비트 길이로 잘라내고,
    상기 타임 윈도우의 각 요소로부터 해시 함수를 사용하여 어드레스를 생성하고, 상기 어드레스는 상기 뉴럴 네트워크의 처리 요소들 중 하나에 대응하는 테이블의 요소를 가리키는 것을 특징으로 하는 압축 방법.
  50. 제49항에 있어서,
    상기 뉴럴 네트워크는, 어드레스 생성을 위해 잘라내기 전의 원래 형태의 예 측된/부호화된 길이 및 품질 데이터를 이용하여 사전에 훈련되는 것을 특징으로 하는 압축 방법.
  51. 제49항 또는 제50항 중 어느 한 항에 있어서,
    상기 어드레스는 상기 타임 윈도우 내에 포함된 데이터로부터 해시 함수(hash function)를 이용하여 생성되는 것을 특징으로 하는 압축 방법.
  52. 제44항 내지 제51항 중 어느 한 항에 있어서,
    최소 및 최대 허용 대역폭 값이, 상기 뉴럴 네트워크의 다른 요소로부터 독립된 두 개의 처리 요소에 대한 입력 데이터로서 사용되는 것을 특징으로 하는 압축 방법.
  53. 제52항에 있어서,
    상기 뉴럴 네트워크의 처리 요소들과 상기 두 개의 독립적인 처리 요소들로부터 생성된 결과가 두 개의 출력에서 나타나는 것을 특징으로 하는 압축 방법.
  54. 제52항에 있어서,
    상기 뉴럴 네트워크의 출력이 프레임 크기 스케일 인자 및/또는 양자화 인자인 것을 특징으로 하는 압축 방법.
  55. 제52항에 있어서,
    상기 뉴럴 네트워크의 출력이 프레임 크기 스케일 인자 및/또는 양자화 인자인 것을 특징으로 하는 압축 방법.
  56. 제44항 내지 제55항 중 어느 한 항에 있어서,
    상기 코딩 처리를 수행하는 동안, 상기 제1항 내지 제43항 중 어느 한 한에 의한 방법의 단계들도 수행하는 것을 특징으로 하는 압축 방법.
  57. 상기 제1항 내지 제55항 중 어느 한 항에 의한 방법의 단계들을 수행하도록 구성된 수단을 포함하는 것을 특징으로 하는 디지털 비디오 데이터를 인코딩하는 장치.
  58. 상기 제1항 내지 제55항 중 어느 한 항에 의한 방법의 단계들을 수행하는 명령어를 포함하는 소프트웨어.
  59. 제1항 내지 제55항 중 어느 한 항에 의한 압축 방법에 의해 생성된 부호화된 시퀀스.
  60. 제1항 내지 제55항 중 어느 한 항에 의한 압축 방법에 의해 생성된 부호화된 시퀀스로부터 인코딩된 비디오 데이터를 압축해제하는 방법.
KR1020057022258A 2003-05-20 2004-05-20 하이브리드 비디오 압축 방법 KR20060027795A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
HUP0301368 2003-05-20
HU0301368A HUP0301368A3 (en) 2003-05-20 2003-05-20 Method and equipment for compressing motion picture data

Publications (1)

Publication Number Publication Date
KR20060027795A true KR20060027795A (ko) 2006-03-28

Family

ID=89981373

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057022258A KR20060027795A (ko) 2003-05-20 2004-05-20 하이브리드 비디오 압축 방법

Country Status (9)

Country Link
US (1) US8086052B2 (ko)
EP (1) EP1629437A2 (ko)
JP (1) JP2007503784A (ko)
KR (1) KR20060027795A (ko)
CN (1) CN1857001B (ko)
CA (1) CA2526450A1 (ko)
HU (1) HUP0301368A3 (ko)
NO (1) NO20055660L (ko)
WO (1) WO2004104930A2 (ko)

Cited By (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009113791A3 (ko) * 2008-03-10 2009-11-05 삼성전자 주식회사 영상 부호화장치 및 영상 복호화장치
KR20110019140A (ko) * 2009-08-19 2011-02-25 삼성전자주식회사 유연한 직교 변환에 기초한 영상 부호화, 복호화 방법 및 장치
WO2011043562A2 (ko) * 2009-10-07 2011-04-14 에스케이텔레콤 주식회사 적응적 부호화 패턴 정보를 생성/이용하는 동영상 부호화/복호화 방법, 장치 및 기록 매체
WO2011049397A2 (en) * 2009-10-23 2011-04-28 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
WO2011087297A2 (en) * 2010-01-14 2011-07-21 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using deblocking filtering, and method and apparatus for decoding video by using deblocking filtering
WO2011053050A3 (en) * 2009-10-30 2011-09-09 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding coding unit of picture boundary
WO2011126281A2 (en) * 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by performing in-loop filtering based on tree-structured data unit, and method and apparatus for decoding video by performing the same
WO2011126283A2 (en) * 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video based on internal bit depth increment, and method and apparatus for decoding video based on internal bit depth increment
WO2011049396A3 (en) * 2009-10-23 2011-11-03 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video, based on hierarchical structure of coding unit
WO2011087295A3 (en) * 2010-01-14 2011-11-10 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video by using pattern information in hierarchical data unit
WO2011087271A3 (ko) * 2010-01-12 2011-11-10 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
WO2011087292A3 (en) * 2010-01-14 2011-12-01 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video by considering skip and split order
WO2011099792A3 (ko) * 2010-02-10 2011-12-08 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
US8228998B2 (en) 2006-10-10 2012-07-24 Nippon Telegraph And Telephone Corporation Intra prediction encoding control method and apparatus, program therefor, and storage medium which stores the program
KR101224554B1 (ko) * 2007-12-13 2013-01-23 미디어텍 인크. 비디오 압축용 루프내 충실도 향상
US8542935B2 (en) 2009-11-30 2013-09-24 Electronics And Telecommunications Research Institute Hybrid prediction apparatus and method for entropy encoding
KR101316503B1 (ko) * 2009-02-02 2013-10-10 엔비디아 코포레이션 듀얼 스테이지 인트라-예측 비디오 인코딩 시스템 및 방법
US8676000B2 (en) 2010-04-05 2014-03-18 Samsung Electronics Co., Ltd. Method and apparatus for performing interpolation based on transform and inverse transform
KR20140060480A (ko) * 2014-05-07 2014-05-20 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
KR20140071298A (ko) * 2014-05-07 2014-06-11 삼성전자주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
US8761253B2 (en) 2008-05-28 2014-06-24 Nvidia Corporation Intra prediction mode search scheme
US8792737B2 (en) 2009-08-13 2014-07-29 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image by using large transformation unit
US8831099B2 (en) 2008-12-17 2014-09-09 Nvidia Corporation Selecting a macroblock encoding mode by using raw data to compute intra cost
KR20140109843A (ko) * 2014-08-05 2014-09-16 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US8842734B2 (en) 2009-08-14 2014-09-23 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
KR101452862B1 (ko) * 2013-04-02 2014-10-23 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101454642B1 (ko) * 2013-04-02 2014-10-27 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101454664B1 (ko) * 2013-04-30 2014-10-28 삼성전자주식회사 움직임 벡터를 복호화하는 방법
KR101457397B1 (ko) * 2011-01-06 2014-11-04 삼성전자주식회사 계층적 구조의 데이터 단위를 이용한 비디오의 부호화 방법 및 장치, 그 복호화 방법 및 장치
KR101464979B1 (ko) * 2013-04-02 2014-11-25 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
KR101464980B1 (ko) * 2013-04-02 2014-11-25 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
KR20140139460A (ko) * 2014-10-29 2014-12-05 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
KR20140140002A (ko) * 2014-10-29 2014-12-08 삼성전자주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
KR20140147786A (ko) * 2014-10-29 2014-12-30 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR20150013931A (ko) * 2015-01-19 2015-02-05 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
KR101492930B1 (ko) * 2010-09-14 2015-02-23 블랙베리 리미티드 변환 도메인 내의 어댑티브 필터링을 이용한 데이터 압축 방법 및 장치
US8982961B2 (en) 2010-04-05 2015-03-17 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using transformation index, and method and apparatus for decoding video by using transformation index
KR20150045979A (ko) * 2015-04-13 2015-04-29 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
KR20150051962A (ko) * 2015-04-21 2015-05-13 삼성전자주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
KR20150051963A (ko) * 2015-04-21 2015-05-13 삼성전자주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
KR20150060615A (ko) * 2015-04-13 2015-06-03 삼성전자주식회사 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR20150060614A (ko) * 2015-04-13 2015-06-03 삼성전자주식회사 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR20150061618A (ko) * 2015-04-13 2015-06-04 삼성전자주식회사 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR101538921B1 (ko) * 2014-10-29 2015-07-24 삼성전자주식회사 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR101538920B1 (ko) * 2014-05-07 2015-07-24 삼성전자주식회사 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR101540684B1 (ko) * 2014-05-07 2015-07-31 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101564944B1 (ko) * 2014-10-29 2015-11-02 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
KR20150129096A (ko) * 2012-08-13 2015-11-19 구루로직 마이크로시스템스 오이 인코더 및 방법
US9294780B2 (en) 2009-12-08 2016-03-22 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by motion prediction using arbitrary partition, and method and apparatus for decoding video by motion prediction using arbitrary partition
US9313502B2 (en) 2009-08-17 2016-04-12 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
US9369736B2 (en) 2010-04-05 2016-06-14 Samsung Electronics Co., Ltd. Low complexity entropy-encoding/decoding method and apparatus
US9374591B2 (en) 2009-08-17 2016-06-21 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
KR20160077027A (ko) * 2016-06-22 2016-07-01 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
US9544588B2 (en) 2009-08-13 2017-01-10 Samsung Electronics Co., Ltd. Method and apparatus for encoding/decoding motion vector
KR20170088318A (ko) * 2017-07-19 2017-08-01 삼성전자주식회사 영상 부호화 방법 및 장치, 및 부호화된 비트스트림을 포함하는 기록 매체
KR20170115021A (ko) * 2017-09-22 2017-10-16 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
KR20180026707A (ko) * 2018-03-05 2018-03-13 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR20180069766A (ko) * 2018-06-07 2018-06-25 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
KR20180090971A (ko) * 2018-08-01 2018-08-14 삼성전자주식회사 영상 부호화 방법 및 장치
US10333547B2 (en) 2012-08-13 2019-06-25 Gurologic Microsystems Oy Encoder and method for encoding input data using a plurality of different transformations or combinations of transformations
WO2019216515A1 (ko) * 2018-05-09 2019-11-14 삼성전자주식회사 전자 장치 및 그 제어 방법
US11386873B2 (en) 2020-04-01 2022-07-12 Alibaba Group Holding Limited Method and apparatus for efficient application screen compression
US11470327B2 (en) 2020-03-30 2022-10-11 Alibaba Group Holding Limited Scene aware video content encoding
US11734577B2 (en) 2019-06-05 2023-08-22 Samsung Electronics Co., Ltd Electronic apparatus and method of performing operations thereof
US11792408B2 (en) 2020-03-30 2023-10-17 Alibaba Group Holding Limited Transcoder target bitrate prediction techniques

Families Citing this family (205)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7742525B1 (en) * 2002-07-14 2010-06-22 Apple Inc. Adaptive motion estimation
JP4263140B2 (ja) * 2003-08-04 2009-05-13 Necエレクトロニクス株式会社 データ記録装置、データ記録方法及び記録制御プログラム
EP1605706A2 (en) * 2004-06-09 2005-12-14 Broadcom Corporation Advanced video coding (AVC) intra prediction scheme
US8111752B2 (en) 2004-06-27 2012-02-07 Apple Inc. Encoding mode pruning during video encoding
US20050286777A1 (en) * 2004-06-27 2005-12-29 Roger Kumar Encoding and decoding images
US7792188B2 (en) 2004-06-27 2010-09-07 Apple Inc. Selecting encoding types and predictive modes for encoding video data
US8363714B2 (en) * 2004-12-22 2013-01-29 Entropic Communications, Inc. Video stream modifier
JP2006333436A (ja) * 2005-01-07 2006-12-07 Ntt Docomo Inc 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、及び、動画像復号プログラム
US7587401B2 (en) * 2005-03-10 2009-09-08 Intel Corporation Methods and apparatus to compress datasets using proxies
US8121836B2 (en) * 2005-07-11 2012-02-21 Lg Electronics Inc. Apparatus and method of processing an audio signal
JP4839035B2 (ja) * 2005-07-22 2011-12-14 オリンパス株式会社 内視鏡用処置具および内視鏡システム
KR100750137B1 (ko) 2005-11-02 2007-08-21 삼성전자주식회사 영상의 부호화,복호화 방법 및 장치
US8780997B2 (en) * 2005-11-18 2014-07-15 Apple Inc. Regulation of decode-side processing based on perceptual masking
US20070147510A1 (en) * 2005-12-27 2007-06-28 Islam Asad Method and module for altering color space parameters of video data stream in compressed domain
US20070160134A1 (en) * 2006-01-10 2007-07-12 Segall Christopher A Methods and Systems for Filter Characterization
US8014445B2 (en) * 2006-02-24 2011-09-06 Sharp Laboratories Of America, Inc. Methods and systems for high dynamic range video coding
US8194997B2 (en) * 2006-03-24 2012-06-05 Sharp Laboratories Of America, Inc. Methods and systems for tone mapping messaging
US7885471B2 (en) * 2006-07-10 2011-02-08 Sharp Laboratories Of America, Inc. Methods and systems for maintenance and use of coded block pattern information
US8130822B2 (en) * 2006-07-10 2012-03-06 Sharp Laboratories Of America, Inc. Methods and systems for conditional transform-domain residual accumulation
US7840078B2 (en) * 2006-07-10 2010-11-23 Sharp Laboratories Of America, Inc. Methods and systems for image processing control based on adjacent block characteristics
US8422548B2 (en) * 2006-07-10 2013-04-16 Sharp Laboratories Of America, Inc. Methods and systems for transform selection and management
US8059714B2 (en) * 2006-07-10 2011-11-15 Sharp Laboratories Of America, Inc. Methods and systems for residual layer scaling
US8532176B2 (en) * 2006-07-10 2013-09-10 Sharp Laboratories Of America, Inc. Methods and systems for combining layers in a multi-layer bitstream
EP2136564A1 (en) * 2007-01-09 2009-12-23 Kabushiki Kaisha Toshiba Image encoding and decoding method and device
CN101222641B (zh) * 2007-01-11 2011-08-24 华为技术有限公司 帧内预测编解码方法及其装置
US7826673B2 (en) * 2007-01-23 2010-11-02 Sharp Laboratories Of America, Inc. Methods and systems for inter-layer image prediction with color-conversion
US8665942B2 (en) * 2007-01-23 2014-03-04 Sharp Laboratories Of America, Inc. Methods and systems for inter-layer image prediction signaling
US8503524B2 (en) * 2007-01-23 2013-08-06 Sharp Laboratories Of America, Inc. Methods and systems for inter-layer image prediction
US8233536B2 (en) * 2007-01-23 2012-07-31 Sharp Laboratories Of America, Inc. Methods and systems for multiplication-free inter-layer image prediction
US7760949B2 (en) 2007-02-08 2010-07-20 Sharp Laboratories Of America, Inc. Methods and systems for coding multiple dynamic range images
US8767834B2 (en) 2007-03-09 2014-07-01 Sharp Laboratories Of America, Inc. Methods and systems for scalable-to-non-scalable bit-stream rewriting
KR101403338B1 (ko) * 2007-03-23 2014-06-09 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
KR100793285B1 (ko) * 2007-05-11 2008-01-10 주식회사 코아로직 필터 매트릭스에 의한 영상 노이즈 제거 시스템, 방법 및그 기록매체
JP5008484B2 (ja) * 2007-07-11 2012-08-22 株式会社日立国際電気 映像処理方法
US7925101B2 (en) * 2007-09-05 2011-04-12 Himax Technologies Limited Apparatus for controlling image compression
AU2008298902A1 (en) * 2007-09-11 2009-03-19 Rgb Light Limited Byte representation for enhanced image compression
US8228983B2 (en) * 2007-12-04 2012-07-24 Hong Kong Applied Science And Technology Research Method and device for order-16 integer transform from order-8 integer cosine transform
US8401071B2 (en) * 2007-12-19 2013-03-19 Sony Corporation Virtually lossless video data compression
US8175158B2 (en) * 2008-01-04 2012-05-08 Sharp Laboratories Of America, Inc. Methods and systems for inter-layer image prediction parameter determination
US8160141B2 (en) * 2008-03-17 2012-04-17 Sony Corporation Advanced video coded pictures—reduced cost computation of an intra mode decision in the frequency domain
US8108401B2 (en) * 2008-03-28 2012-01-31 International Business Machines Corporation Applying various hash methods used in conjunction with a query with a group by clause
US7827187B2 (en) * 2008-04-04 2010-11-02 International Business Machines Corporation Frequency partitioning: entropy compression with fixed size fields
US8199823B2 (en) * 2008-04-15 2012-06-12 Sony Corporation Estimation of B frame average rate quantization parameter (QP) in a group of pictures (GOP)
US8189677B2 (en) * 2008-04-15 2012-05-29 Sony Corporation Estimation of P frame average rate quantization parameter (QP) in a group of pictures (GOP)
US8199814B2 (en) * 2008-04-15 2012-06-12 Sony Corporation Estimation of I frame average rate quantization parameter (QP) in a group of pictures (GOP)
EP2288163B1 (en) * 2008-05-07 2015-07-01 Lg Electronics Inc. Method and apparatus for decoding video signal
US8099440B2 (en) 2008-08-15 2012-01-17 International Business Machines Corporation Method for laying out fields in a database in a hybrid of row-wise and column-wise ordering
US8325801B2 (en) 2008-08-15 2012-12-04 Mediatek Inc. Adaptive restoration for video coding
KR101619972B1 (ko) * 2008-10-02 2016-05-11 한국전자통신연구원 이산 여현 변환/이산 정현 변환을 선택적으로 이용하는 부호화/복호화 장치 및 방법
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
KR101590633B1 (ko) * 2008-11-11 2016-02-02 삼성전자주식회사 슬라이스 단위로 분할된 동영상을 처리하는 동영상 부호화/복호화장치 및 동영상 부호화/복호화방법
US20100158105A1 (en) * 2008-12-19 2010-06-24 Nvidia Corporation Post-processing encoding system and method
JP5151999B2 (ja) * 2009-01-09 2013-02-27 セイコーエプソン株式会社 画像処理装置及び画像処理方法
KR20100095992A (ko) * 2009-02-23 2010-09-01 한국과학기술원 비디오 부호화에서의 분할 블록 부호화 방법, 비디오 복호화에서의 분할 블록 복호화 방법 및 이를 구현하는 기록매체
US8370326B2 (en) 2009-03-24 2013-02-05 International Business Machines Corporation System and method for parallel computation of frequency histograms on joined tables
KR101527085B1 (ko) * 2009-06-30 2015-06-10 한국전자통신연구원 인트라 부호화/복호화 방법 및 장치
CN104822066A (zh) 2009-07-01 2015-08-05 汤姆森特许公司 用于视频编码器和解码器的方法和装置
KR101483750B1 (ko) * 2009-07-24 2015-01-19 삼성전자주식회사 영상의 부호화 방법 및 장치, 영상 복호화 방법 및 장치
JP5359657B2 (ja) 2009-07-31 2013-12-04 ソニー株式会社 画像符号化装置および方法、記録媒体、並びにプログラム
KR101624649B1 (ko) * 2009-08-14 2016-05-26 삼성전자주식회사 계층적인 부호화 블록 패턴 정보를 이용한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101456498B1 (ko) * 2009-08-14 2014-10-31 삼성전자주식회사 계층적 부호화 단위의 스캔 순서를 고려한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
HUE026080T2 (en) * 2009-10-01 2016-05-30 Sk Telecom Co Ltd Process and apparatus for encoding / decoding an image using a distributed layer
US9565439B2 (en) * 2009-10-15 2017-02-07 Nbcuniversal Media, Llc System and method for enhancing data compression using dynamic learning and control
KR101710883B1 (ko) * 2009-11-04 2017-02-28 삼성전자주식회사 필터 정보를 이용한 영상 압축 장치 및 방법과 영상 복원 장치 및 방법
JP5684823B2 (ja) * 2009-11-06 2015-03-18 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ ハイブリッド映像符号化
KR101674078B1 (ko) * 2009-12-16 2016-11-08 삼성전자 주식회사 블록 기반의 영상 잡음 제거 방법 및 장치
CN102668558B (zh) * 2009-12-24 2016-09-07 英特尔公司 无线显示编码器架构
US8358698B2 (en) * 2010-01-08 2013-01-22 Research In Motion Limited Method and device for motion vector estimation in video transcoding using full-resolution residuals
US20110170608A1 (en) * 2010-01-08 2011-07-14 Xun Shi Method and device for video transcoding using quad-tree based mode selection
US8559519B2 (en) * 2010-01-08 2013-10-15 Blackberry Limited Method and device for video encoding using predicted residuals
US8315310B2 (en) * 2010-01-08 2012-11-20 Research In Motion Limited Method and device for motion vector prediction in video transcoding using full resolution residuals
US8340188B2 (en) * 2010-01-08 2012-12-25 Research In Motion Limited Method and device for motion vector estimation in video transcoding using union of search areas
KR101487687B1 (ko) 2010-01-14 2015-01-29 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
CN102804782A (zh) 2010-01-15 2012-11-28 三星电子株式会社 用于预测编码的使用可变分区的视频编码的方法和设备以及用于预测编码的使用可变分区的视频解码的方法和设备
CN106454380B (zh) * 2010-01-15 2019-04-05 三星电子株式会社 对视频进行解码的方法
BR112012025407B1 (pt) * 2010-04-13 2022-03-22 Samsung Electronics Co, Ltd Método de decodificação de vídeo baseado em unidades de codificação determinadas de acordo com uma estrutura de árvore
DK3301648T3 (da) 2010-04-13 2020-04-06 Ge Video Compression Llc Nedarvning i samplearraymultitræsunderinddeling
KR102282803B1 (ko) 2010-04-13 2021-07-28 지이 비디오 컴프레션, 엘엘씨 평면 간 예측
CN106231336B (zh) 2010-04-13 2020-06-12 Ge视频压缩有限责任公司 解码器、解码方法、编码器以及编码方法
KR102145722B1 (ko) 2010-04-13 2020-08-20 지이 비디오 컴프레션, 엘엘씨 샘플 영역 병합
AU2015202094B2 (en) * 2010-04-13 2016-11-17 Samsung Electronics Co., Ltd. Video-encoding method and video-encoding apparatus based on encoding units determined in accordance with a tree structure, and video-decoding method and video-decoding apparatus based on encoding units determined in accordance with a tree structure
US8837592B2 (en) * 2010-04-14 2014-09-16 Mediatek Inc. Method for performing local motion vector derivation during video coding of a coding unit, and associated apparatus
US8798131B1 (en) 2010-05-18 2014-08-05 Google Inc. Apparatus and method for encoding video using assumed values with intra-prediction
JP2012019490A (ja) * 2010-07-09 2012-01-26 Sony Corp 画像処理装置及び画像処理方法
SI2953356T1 (sl) * 2010-08-17 2018-12-31 Samsung Electronics Co., Ltd Postopek dekodiranja videa z uporabo transformacijske enote z variabilno drevesno strukturo
WO2012034280A1 (en) * 2010-09-16 2012-03-22 Hewlett-Packard Development Company, L.P. Digital watermarking
US10863196B2 (en) * 2010-09-27 2020-12-08 Lg Electronics Inc. Method for partitioning block and decoding device
CN103238321B (zh) 2010-09-30 2016-11-02 三星电子株式会社 用于对分层结构的符号进行编解码的视频编解码方法及其装置
US9532059B2 (en) 2010-10-05 2016-12-27 Google Technology Holdings LLC Method and apparatus for spatial scalability for video coding
US8442988B2 (en) 2010-11-04 2013-05-14 International Business Machines Corporation Adaptive cell-specific dictionaries for frequency-partitioned multi-dimensional data
CN107071460B (zh) * 2010-12-14 2020-03-06 M&K控股株式会社 用于编码运动画面的设备
KR101506446B1 (ko) 2010-12-15 2015-04-08 에스케이 텔레콤주식회사 움직임정보 병합을 이용한 부호움직임정보생성/움직임정보복원 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
CN102547268B (zh) * 2010-12-30 2014-12-10 深圳华强数码电影有限公司 一种流媒体播放方法及播放设备
US9210442B2 (en) 2011-01-12 2015-12-08 Google Technology Holdings LLC Efficient transform unit representation
US20120176536A1 (en) * 2011-01-12 2012-07-12 Avi Levy Adaptive Frame Rate Conversion
CN106878730B (zh) 2011-01-13 2020-06-26 日本电气株式会社 视频解码设备和视频解码方法
WO2012101781A1 (ja) 2011-01-26 2012-08-02 株式会社日立製作所 画像復号化装置
US9380319B2 (en) * 2011-02-04 2016-06-28 Google Technology Holdings LLC Implicit transform unit representation
US20140072240A1 (en) * 2011-02-25 2014-03-13 Samsung Electronics Co., Ltd. Method and apparatus for converting an image, and method and apparatus for inverse converting an image
US9848197B2 (en) 2011-03-10 2017-12-19 Qualcomm Incorporated Transforms in video coding
US8754929B1 (en) * 2011-05-23 2014-06-17 John Prince Real time vergence control for 3D video capture and display
US8989256B2 (en) 2011-05-25 2015-03-24 Google Inc. Method and apparatus for using segmentation-based coding of prediction information
US20140086309A1 (en) * 2011-06-16 2014-03-27 Freescale Semiconductor, Inc. Method and device for encoding and decoding an image
US8768082B2 (en) 2011-06-22 2014-07-01 Blackberry Limited Compressing image data
US8837582B2 (en) 2011-06-22 2014-09-16 Blackberry Limited Compressing image data
EP2736254B1 (en) 2011-07-22 2018-07-04 Hitachi, Ltd. Video decoding method and image encoding method
US9800870B2 (en) * 2011-09-16 2017-10-24 Qualcomm Incorporated Line buffer reduction for short distance intra-prediction
US9398300B2 (en) 2011-10-07 2016-07-19 Texas Instruments Incorporated Method, system and apparatus for intra-prediction in video signal processing using combinable blocks
CN103108177B (zh) * 2011-11-09 2016-11-23 华为技术有限公司 图像编码方法及图像编码装置
US9247257B1 (en) 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
CN103139558B (zh) * 2011-11-30 2016-08-03 联芯科技有限公司 视频解码器的dc/ac系数预测方法及视频解码器
US9762904B2 (en) 2011-12-22 2017-09-12 Qualcomm Incorporated Performing motion vector prediction for video coding
US9094681B1 (en) 2012-02-28 2015-07-28 Google Inc. Adaptive segmentation
US9300984B1 (en) 2012-04-18 2016-03-29 Matrox Graphics Inc. Independent processing of data streams in codec
US10003803B1 (en) 2012-04-18 2018-06-19 Matrox Graphics Inc. Motion-based adaptive quantization
US10003802B1 (en) 2012-04-18 2018-06-19 Matrox Graphics Inc. Motion-based adaptive quantization
US8396127B1 (en) * 2012-06-27 2013-03-12 Google Inc. Segmentation for video coding using predictive benefit
EP2873236B1 (en) * 2012-07-10 2020-10-07 Cisco Technology, Inc. Decoded picture buffer size management
US9332276B1 (en) 2012-08-09 2016-05-03 Google Inc. Variable-sized super block based direct prediction mode
US9380298B1 (en) 2012-08-10 2016-06-28 Google Inc. Object-based intra-prediction
JP2014082541A (ja) * 2012-10-12 2014-05-08 National Institute Of Information & Communication Technology 互いに類似した情報を含む複数画像のデータサイズを低減する方法、プログラムおよび装置
EP2920962A4 (en) 2012-11-13 2016-07-20 Intel Corp ADAPTIVE TRANSFORMATION ENCODING OF CONTENT FOR NEXT GENERATION VIDEO
TW201419862A (zh) * 2012-11-13 2014-05-16 Hon Hai Prec Ind Co Ltd 影像切割系統及方法
US9219915B1 (en) 2013-01-17 2015-12-22 Google Inc. Selection of transform size in video coding
EP2952003B1 (en) 2013-01-30 2019-07-17 Intel Corporation Content adaptive partitioning for prediction and coding for next generation video
US9967559B1 (en) 2013-02-11 2018-05-08 Google Llc Motion vector dependent spatial transformation in video coding
US9544597B1 (en) 2013-02-11 2017-01-10 Google Inc. Hybrid transform in video encoding and decoding
US9794375B2 (en) * 2013-03-14 2017-10-17 Openwave Mobility, Inc. Method, apparatus, and non-transitory computer medium for obtaining a required frame size for a compressed data frame
AU2014202288B2 (en) * 2013-04-29 2017-10-05 Everi Technology Pty Ltd Gaming machine and method employing video compression
US9674530B1 (en) 2013-04-30 2017-06-06 Google Inc. Hybrid transforms in video coding
CN105684409B (zh) 2013-10-25 2019-08-13 微软技术许可有限责任公司 在视频和图像编码和解码中使用散列值来表示各块
KR20160075705A (ko) * 2013-10-25 2016-06-29 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩에서의 해시 기반 블록 매칭
US9973780B2 (en) 2013-10-31 2018-05-15 Microsoft Technology Licensing, Llc Scaled video for pseudo-analog transmission in spatial domain
KR101789954B1 (ko) * 2013-12-27 2017-10-25 인텔 코포레이션 차세대 비디오 코딩을 위한 콘텐츠 적응적 이득 보상된 예측
KR102185857B1 (ko) * 2014-02-13 2020-12-02 삼성전자주식회사 영상 부호화, 복호화 방법 및 장치
US10567754B2 (en) * 2014-03-04 2020-02-18 Microsoft Technology Licensing, Llc Hash table construction and availability checking for hash-based block matching
WO2015131326A1 (en) 2014-03-04 2015-09-11 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
CN109036441B (zh) * 2014-03-24 2023-06-06 杜比国际公司 对高阶高保真立体声信号应用动态范围压缩的方法和设备
CN105706450B (zh) * 2014-06-23 2019-07-16 微软技术许可有限责任公司 根据基于散列的块匹配的结果的编码器决定
CN105338352B (zh) * 2014-07-24 2019-04-19 华为技术有限公司 一种视频编码中自适应反量化方法及装置
CN104123375B (zh) * 2014-07-28 2018-01-23 清华大学 数据搜索方法及***
CN110582001B (zh) 2014-09-30 2022-10-14 微软技术许可有限责任公司 用于视频编码的基于散列的编码器判定
KR101607310B1 (ko) 2014-10-29 2016-03-29 삼성전자주식회사 계층적 부호화 단위의 스캔 순서를 고려한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US9565451B1 (en) 2014-10-31 2017-02-07 Google Inc. Prediction dependent transform coding
CN104780379B (zh) * 2015-01-21 2018-03-09 北京工业大学 一种屏幕图像集合的压缩方法
KR102131142B1 (ko) 2015-01-29 2020-07-07 브이아이디 스케일, 인크. 인트라-블록 카피 검색
WO2016199330A1 (ja) * 2015-06-12 2016-12-15 パナソニックIpマネジメント株式会社 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置
US9769499B2 (en) 2015-08-11 2017-09-19 Google Inc. Super-transform video coding
US10277905B2 (en) 2015-09-14 2019-04-30 Google Llc Transform selection for non-baseband signal coding
WO2017088093A1 (en) * 2015-11-23 2017-06-01 Mediatek Singapore Pte. Ltd. On the smallest allowed block size in video coding
US9807423B1 (en) 2015-11-24 2017-10-31 Google Inc. Hybrid transform scheme for video coding
JP6721977B2 (ja) * 2015-12-15 2020-07-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 音声音響信号符号化装置、音声音響信号復号装置、音声音響信号符号化方法、及び、音声音響信号復号方法
CN105916022A (zh) * 2015-12-28 2016-08-31 乐视致新电子科技(天津)有限公司 一种基于虚拟现实技术的视频图像处理方法及装置
US10499056B2 (en) * 2016-03-09 2019-12-03 Sony Corporation System and method for video processing based on quantization parameter
US9946956B2 (en) * 2016-06-15 2018-04-17 Qualcomm Incorporated Differential image processing
JP6261020B2 (ja) 2016-06-28 2018-01-17 株式会社Nexpoint 画面画像転送方法及び画面画像復元方法
JP6229770B2 (ja) * 2016-07-25 2017-11-15 ソニー株式会社 画像処理装置および方法、記録媒体、並びにプログラム
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
RU2642402C1 (ru) * 2016-10-07 2018-01-24 Общество с ограниченной ответственностью "СТРИМ Лабс" (ООО "СТРИМ Лабс") Способ выявления повторяющихся кадров видео
WO2018068845A1 (en) * 2016-10-12 2018-04-19 Gottfried Wilhelm Leibniz Universität Hannover Method for encoding and decoding of quality values of a data structure
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
CN107046646B (zh) * 2016-12-30 2020-05-22 上海寒武纪信息科技有限公司 基于深度自动编码器的视频编解码装置及方法
US10694181B2 (en) * 2017-01-27 2020-06-23 Qualcomm Incorporated Bilateral filters in video coding with reduced complexity
CN106713929B (zh) * 2017-02-16 2019-06-28 清华大学深圳研究生院 一种基于深度神经网络的视频帧间预测增强方法
EP3586510A4 (en) * 2017-02-24 2020-08-12 RealNetworks, Inc. MOTION VECTOR SELECTION AND PREDICTION IN VIDEO ENCODING SYSTEMS AND METHODS
JP6956803B2 (ja) * 2017-05-26 2021-11-02 グーグル エルエルシーGoogle LLC ニューラルネットワークを使用するタイル型画像圧縮
US10360695B1 (en) 2017-06-01 2019-07-23 Matrox Graphics Inc. Method and an apparatus for enabling ultra-low latency compression of a stream of pictures
US11144828B2 (en) 2017-06-09 2021-10-12 Htc Corporation Training task optimization system, training task optimization method and non-transitory computer readable medium for operating the same
KR102401851B1 (ko) * 2017-06-14 2022-05-26 삼성디스플레이 주식회사 영상 압축 방법 및 이를 수행하는 표시 장치
TWI777907B (zh) * 2017-07-13 2022-09-11 美商松下電器(美國)知識產權公司 編碼裝置、編碼方法、解碼裝置、解碼方法及電腦可讀取之非暫時性媒體
TW202344049A (zh) * 2017-07-13 2023-11-01 美商松下電器(美國)知識產權公司 編碼裝置、解碼裝置及記錄媒體
US10614613B2 (en) * 2017-07-28 2020-04-07 Nvidia Corporation Reducing noise during rendering by performing parallel path space filtering utilizing hashing
CN111133756B (zh) * 2017-10-12 2022-04-19 联发科技股份有限公司 用于视频编码的神经网络方法和装置
US11195096B2 (en) * 2017-10-24 2021-12-07 International Business Machines Corporation Facilitating neural network efficiency
KR102589303B1 (ko) 2017-11-02 2023-10-24 삼성전자주식회사 고정 소수점 타입의 뉴럴 네트워크를 생성하는 방법 및 장치
WO2019102476A2 (en) * 2017-11-26 2019-05-31 Yeda Research And Development Co. Ltd. Signal enhancement and manipulation using a signal-specific deep network
CN108289224B (zh) * 2017-12-12 2019-10-29 北京大学 一种视频帧预测方法、装置及自动补偿神经网络
CN108174225B (zh) * 2018-01-11 2021-03-26 上海交通大学 基于对抗生成网络的视频编解码环路内滤波实现方法及***
US10559093B2 (en) * 2018-01-13 2020-02-11 Arm Limited Selecting encoding options
CN110062246B (zh) * 2018-01-19 2021-01-05 杭州海康威视数字技术股份有限公司 对视频帧数据进行处理的方法和装置
CN108174218B (zh) * 2018-01-23 2020-02-07 中国科学技术大学 基于学习的视频编解码***
US11902369B2 (en) 2018-02-09 2024-02-13 Preferred Networks, Inc. Autoencoder, data processing system, data processing method and non-transitory computer readable medium
US10972738B2 (en) * 2018-03-29 2021-04-06 Mediatek Inc. Video encoding apparatus having reconstruction buffer with fixed size and/or bandwidth limitation and associated video encoding method
EP3562162A1 (en) * 2018-04-27 2019-10-30 InterDigital VC Holdings, Inc. Method and apparatus for video encoding and decoding based on neural network implementation of cabac
CN109033439B (zh) * 2018-08-15 2019-11-19 中科驭数(北京)科技有限公司 流式数据的处理方法和装置
CN109495750A (zh) * 2018-10-26 2019-03-19 西安科锐盛创新科技有限公司 基于四叉树的带宽压缩预测方法
US11562046B2 (en) 2018-11-26 2023-01-24 Samsung Electronics Co., Ltd. Neural network processor using dyadic weight matrix and operation method thereof
KR20200082227A (ko) * 2018-12-28 2020-07-08 한국전자통신연구원 오디오 신호를 위한 손실 함수 결정 방법 및 손실 함수 결정 장치
CN113711594A (zh) * 2019-02-15 2021-11-26 诺基亚技术有限公司 用于视频编码和解码的装置、方法和计算机程序
WO2020175938A1 (ko) * 2019-02-28 2020-09-03 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
US11122297B2 (en) 2019-05-03 2021-09-14 Google Llc Using border-aligned block functions for image compression
KR20200129957A (ko) 2019-05-10 2020-11-18 삼성전자주식회사 피처맵 데이터에 대한 압축을 수행하는 뉴럴 네트워크 프로세서 및 이를 포함하는 컴퓨팅 시스템
CN114390296A (zh) * 2019-07-15 2022-04-22 华为技术有限公司 基于小波变换的图像编解码方法及装置
CN113038134B (zh) * 2019-12-25 2023-08-01 武汉Tcl集团工业研究院有限公司 一种图片处理方法、智能终端及存储介质
US11403782B2 (en) * 2019-12-31 2022-08-02 Alibaba Group Holding Limited Static channel filtering in frequency domain
US11323732B2 (en) 2020-04-13 2022-05-03 Tencent America LLC Method and apparatus for video coding
KR20210136476A (ko) 2020-05-07 2021-11-17 삼성전자주식회사 쿼드 트리 방법의 파라미터들을 이용하여 압축하는 장치 및 방법
US11205077B1 (en) * 2020-05-29 2021-12-21 Arm Limited Operating on a video frame to generate a feature map of a neural network
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks
CN112351252B (zh) * 2020-10-27 2023-10-20 重庆中星微人工智能芯片技术有限公司 监控视频编解码装置
US20220086445A1 (en) * 2020-12-03 2022-03-17 Intel Corporation Methods, apparatus, and articles of manufacture for multi-symbol equiprobable mode entropy coding
JPWO2022225025A1 (ko) * 2021-04-23 2022-10-27
CN113781588A (zh) * 2021-07-01 2021-12-10 杭州未名信科科技有限公司 一种基于神经网络的帧内编码单元尺寸划分方法
GB2609218B (en) * 2021-07-22 2023-08-30 Imagination Tech Ltd Coding blocks of pixels
CN114786011B (zh) * 2022-06-22 2022-11-15 苏州浪潮智能科技有限公司 一种jpeg图像压缩的方法、***、设备和存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2830723B2 (ja) * 1993-12-20 1998-12-02 松下電器産業株式会社 雑音除去装置
JPH08294001A (ja) * 1995-04-20 1996-11-05 Seiko Epson Corp 画像処理方法および画像処理装置
KR100324610B1 (ko) * 1996-05-28 2002-02-27 모리시타 요이찌 화상예측 복호화장치 및 방법
US6529634B1 (en) * 1999-11-08 2003-03-04 Qualcomm, Inc. Contrast sensitive variance based adaptive block size DCT image compression
US6600836B1 (en) * 2000-01-28 2003-07-29 Qualcomm, Incorporated Quality based image compression
EP1246469A3 (fr) * 2001-03-27 2005-04-13 Koninklijke Philips Electronics N.V. Procédé de réduction de format et de décodage similtanés de signaux vidéo codés
JP4193406B2 (ja) * 2002-04-16 2008-12-10 三菱電機株式会社 映像データ変換装置および映像データ変換方法
US7330509B2 (en) * 2003-09-12 2008-02-12 International Business Machines Corporation Method for video transcoding with adaptive frame rate control

Cited By (167)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8228998B2 (en) 2006-10-10 2012-07-24 Nippon Telegraph And Telephone Corporation Intra prediction encoding control method and apparatus, program therefor, and storage medium which stores the program
KR101224554B1 (ko) * 2007-12-13 2013-01-23 미디어텍 인크. 비디오 압축용 루프내 충실도 향상
WO2009113791A3 (ko) * 2008-03-10 2009-11-05 삼성전자 주식회사 영상 부호화장치 및 영상 복호화장치
US8761253B2 (en) 2008-05-28 2014-06-24 Nvidia Corporation Intra prediction mode search scheme
US8831099B2 (en) 2008-12-17 2014-09-09 Nvidia Corporation Selecting a macroblock encoding mode by using raw data to compute intra cost
KR101316503B1 (ko) * 2009-02-02 2013-10-10 엔비디아 코포레이션 듀얼 스테이지 인트라-예측 비디오 인코딩 시스템 및 방법
US9432674B2 (en) 2009-02-02 2016-08-30 Nvidia Corporation Dual stage intra-prediction video encoding system and method
US9883186B2 (en) 2009-08-13 2018-01-30 Samsung Electronics Co., Ltd. Method and apparatus for encoding/decoding motion vector
US8792741B2 (en) 2009-08-13 2014-07-29 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image by using large transformation unit
US8842921B2 (en) 2009-08-13 2014-09-23 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image by using large transformation unit
US8792737B2 (en) 2009-08-13 2014-07-29 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image by using large transformation unit
US8971650B2 (en) 2009-08-13 2015-03-03 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image by using large transformation unit
US9544588B2 (en) 2009-08-13 2017-01-10 Samsung Electronics Co., Ltd. Method and apparatus for encoding/decoding motion vector
US8971649B2 (en) 2009-08-13 2015-03-03 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image by using large transformation unit
US8798381B2 (en) 2009-08-13 2014-08-05 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image by using large transformation unit
US9386325B2 (en) 2009-08-13 2016-07-05 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image by using large transformation unit
US10110902B2 (en) 2009-08-13 2018-10-23 Samsung Electronics Co., Ltd. Method and apparatus for encoding/decoding motion vector
US9374579B2 (en) 2009-08-14 2016-06-21 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
KR101487686B1 (ko) * 2009-08-14 2015-01-30 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US9313490B2 (en) 2009-08-14 2016-04-12 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
US9307238B2 (en) 2009-08-14 2016-04-05 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
US9313489B2 (en) 2009-08-14 2016-04-12 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
US8842734B2 (en) 2009-08-14 2014-09-23 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
US8953682B2 (en) 2009-08-14 2015-02-10 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
US9392283B2 (en) 2009-08-17 2016-07-12 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
US9313503B2 (en) 2009-08-17 2016-04-12 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
US9319686B2 (en) 2009-08-17 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
US9313502B2 (en) 2009-08-17 2016-04-12 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
US9374591B2 (en) 2009-08-17 2016-06-21 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
US9369715B2 (en) 2009-08-17 2016-06-14 Samsung Electronics Co., Ltd. Method and apparatus for encoding video, and method and apparatus for decoding video
KR20110019140A (ko) * 2009-08-19 2011-02-25 삼성전자주식회사 유연한 직교 변환에 기초한 영상 부호화, 복호화 방법 및 장치
WO2011043562A2 (ko) * 2009-10-07 2011-04-14 에스케이텔레콤 주식회사 적응적 부호화 패턴 정보를 생성/이용하는 동영상 부호화/복호화 방법, 장치 및 기록 매체
WO2011043562A3 (ko) * 2009-10-07 2011-07-28 에스케이텔레콤 주식회사 적응적 부호화 패턴 정보를 생성/이용하는 동영상 부호화/복호화 방법, 장치 및 기록 매체
WO2011049397A3 (en) * 2009-10-23 2011-10-27 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
RU2559753C1 (ru) * 2009-10-23 2015-08-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования видео и способ и устройство для декодирования видео, основанные на иерархической структуре блока кодирования
US9338471B2 (en) 2009-10-23 2016-05-10 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
US8798159B2 (en) 2009-10-23 2014-08-05 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video, based on hierarchical structure of coding unit
US20140205003A1 (en) * 2009-10-23 2014-07-24 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video, based on hierarchical structure of coding unit
US20140205004A1 (en) * 2009-10-23 2014-07-24 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video, based on hierarchical structure of coding unit
US9319706B2 (en) 2009-10-23 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
US9414055B2 (en) 2009-10-23 2016-08-09 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video, based on hierarchical structure of coding unit
RU2559757C9 (ru) * 2009-10-23 2016-10-20 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования видео и способ и устройство для декодирования видео, основанные на иерархической структуре блока кодирования
WO2011049396A3 (en) * 2009-10-23 2011-11-03 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video, based on hierarchical structure of coding unit
US8594183B2 (en) 2009-10-23 2013-11-26 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
US9602828B2 (en) 2009-10-23 2017-03-21 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
US9319704B2 (en) 2009-10-23 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
RU2560791C2 (ru) * 2009-10-23 2015-08-20 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования видео и способ и устройство для декодирования видео, основанные на иерархической структуре блока кодирования
RU2559751C1 (ru) * 2009-10-23 2015-08-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования видео и способ и устройство для декодирования видео, основанные на иерархической структуре блока кодирования
US9319707B2 (en) 2009-10-23 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
RU2559757C2 (ru) * 2009-10-23 2015-08-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования видео и способ и устройство для декодирования видео, основанные на иерархической структуре блока кодирования
RU2559758C2 (ru) * 2009-10-23 2015-08-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования видео и способ и устройство для декодирования видео, основанные на иерархической структуре блока кодирования
KR101457418B1 (ko) * 2009-10-23 2014-11-04 삼성전자주식회사 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
RU2557760C2 (ru) * 2009-10-23 2015-07-27 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования видео и способ и устройство для декодирования видео, основанные на иерархической структуре блока кодирования
US8891631B1 (en) 2009-10-23 2014-11-18 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video, based on hierarchical structure of coding unit
US8891632B1 (en) 2009-10-23 2014-11-18 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video, based on hierarchical structure of coding unit
US8891618B1 (en) 2009-10-23 2014-11-18 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video, based on hierarchical structure of coding unit
US8989274B2 (en) 2009-10-23 2015-03-24 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video, based on hierarchical structure of coding unit
KR101504887B1 (ko) * 2009-10-23 2015-03-24 삼성전자 주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
US8897369B2 (en) 2009-10-23 2014-11-25 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video, based on hierarchical structure of coding unit
WO2011049397A2 (en) * 2009-10-23 2011-04-28 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
US9319705B2 (en) 2009-10-23 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
RU2509435C2 (ru) * 2009-10-23 2014-03-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования видео и способ и устройство для декодирования видео, основанные на иерархической структуре блока кодирования
US8842922B2 (en) 2009-10-30 2014-09-23 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding coding unit of picture boundary
WO2011053050A3 (en) * 2009-10-30 2011-09-09 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding coding unit of picture boundary
US8208742B2 (en) 2009-10-30 2012-06-26 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding coding unit of picture boundary
US8320688B2 (en) 2009-10-30 2012-11-27 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding coding unit of picture boundary
US8582901B2 (en) 2009-10-30 2013-11-12 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding coding unit of picture boundary
US8837840B2 (en) 2009-10-30 2014-09-16 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding coding unit of picture boundary
US8842925B2 (en) 2009-10-30 2014-09-23 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding coding unit of picture boundary
US8842926B2 (en) 2009-10-30 2014-09-23 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding coding unit of picture boundary
US9264708B2 (en) 2009-10-30 2016-02-16 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding coding unit of picture boundary
US8542935B2 (en) 2009-11-30 2013-09-24 Electronics And Telecommunications Research Institute Hybrid prediction apparatus and method for entropy encoding
US10448042B2 (en) 2009-12-08 2019-10-15 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by motion prediction using arbitrary partition, and method and apparatus for decoding video by motion prediction using arbitrary partition
US9294780B2 (en) 2009-12-08 2016-03-22 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by motion prediction using arbitrary partition, and method and apparatus for decoding video by motion prediction using arbitrary partition
WO2011087271A3 (ko) * 2010-01-12 2011-11-10 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
US9055299B2 (en) 2010-01-14 2015-06-09 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using deblocking filtering, and method and apparatus for decoding video by using deblocking filtering
US10582194B2 (en) 2010-01-14 2020-03-03 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video by considering skip and split order
WO2011087295A3 (en) * 2010-01-14 2011-11-10 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video by using pattern information in hierarchical data unit
US10110894B2 (en) 2010-01-14 2018-10-23 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video by considering skip and split order
WO2011087297A3 (en) * 2010-01-14 2011-11-10 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using deblocking filtering, and method and apparatus for decoding video by using deblocking filtering
US10015520B2 (en) 2010-01-14 2018-07-03 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video by using pattern information in hierarchical data unit
US11128856B2 (en) 2010-01-14 2021-09-21 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video by considering skip and split order
US9979986B2 (en) 2010-01-14 2018-05-22 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using deblocking filtering, and method and apparatus for decoding video by using deblocking filtering
US9894356B2 (en) 2010-01-14 2018-02-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video by considering skip and split order
WO2011087292A3 (en) * 2010-01-14 2011-12-01 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video by considering skip and split order
US10194173B2 (en) 2010-01-14 2019-01-29 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video by using pattern information in hierarchical data unit
US9628809B2 (en) 2010-01-14 2017-04-18 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video by using pattern information in hierarchical data unit
KR101457396B1 (ko) * 2010-01-14 2014-11-03 삼성전자주식회사 디블로킹 필터링을 이용한 비디오 부호화 방법과 그 장치, 및 디블로킹 필터링을 이용한 비디오 복호화 방법 및 그 장치
WO2011087297A2 (en) * 2010-01-14 2011-07-21 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using deblocking filtering, and method and apparatus for decoding video by using deblocking filtering
US9641855B2 (en) 2010-01-14 2017-05-02 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video by using pattern information in hierarchical data unit
US9635375B2 (en) 2010-01-14 2017-04-25 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video by using pattern information in hierarchical data unit
US8855201B2 (en) 2010-01-14 2014-10-07 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video by considering skip and split order
US9118916B2 (en) 2010-01-14 2015-08-25 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using deblocking filtering, and method and apparatus for decoding video by using deblocking filtering
US9118915B2 (en) 2010-01-14 2015-08-25 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using deblocking filtering, and method and apparatus for decoding video by using deblocking filtering
US9124903B2 (en) 2010-01-14 2015-09-01 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using deblocking filtering, and method and apparatus for decoding video by using deblocking filtering
US9628812B2 (en) 2010-01-14 2017-04-18 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video by using pattern information in hierarchical data unit
US8792561B2 (en) 2010-01-14 2014-07-29 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using deblocking filtering, and method and apparatus for decoding video by using deblocking filtering
US9225987B2 (en) 2010-01-14 2015-12-29 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video by considering skip and split order
US9264738B2 (en) 2010-01-14 2016-02-16 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using deblocking filtering, and method and apparatus for decoding video by using deblocking filtering
US10284878B2 (en) 2010-01-14 2019-05-07 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using deblocking filtering, and method and apparatus for decoding video by using deblocking filtering
US9100649B2 (en) 2010-02-10 2015-08-04 Lg Electronics Inc. Method and apparatus for processing a video signal
WO2011099792A3 (ko) * 2010-02-10 2011-12-08 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
US10158890B2 (en) 2010-04-05 2018-12-18 Samsung Electronics Co., Ltd. Low complexity entropy-encoding/decoding method and apparatus
US9390470B2 (en) 2010-04-05 2016-07-12 Samsung Electronics Co., Ltd. Method and apparatus for performing interpolation based on transform and inverse transform
US9049460B1 (en) 2010-04-05 2015-06-02 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using transformation index, and method and apparatus for decoding video by using transformation index
US9294781B2 (en) 2010-04-05 2016-03-22 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using transformation index, and method and apparatus for decoding video by using transformation index
US9042459B1 (en) 2010-04-05 2015-05-26 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using transformation index, and method and apparatus for decoding video by using transformation index
US9262804B2 (en) 2010-04-05 2016-02-16 Samsung Electronics Co., Ltd. Method and apparatus for performing interpolation based on transform and inverse transform
US9436975B2 (en) 2010-04-05 2016-09-06 Samsung Electronics Co., Ltd. Method and apparatus for performing interpolation based on transform and inverse transform
US10027991B2 (en) 2010-04-05 2018-07-17 Samsung Electronics Co., Ltd. Low complexity entropy-encoding/decoding method and apparatus
US9602845B2 (en) 2010-04-05 2017-03-21 Samsung Electronics Co., Ltd. Low complexity entropy-encoding/decoding method and apparatus
WO2011126281A2 (en) * 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by performing in-loop filtering based on tree-structured data unit, and method and apparatus for decoding video by performing the same
US8676000B2 (en) 2010-04-05 2014-03-18 Samsung Electronics Co., Ltd. Method and apparatus for performing interpolation based on transform and inverse transform
US9424625B2 (en) 2010-04-05 2016-08-23 Samsung Electronics Co., Ltd. Method and apparatus for performing interpolation based on transform and inverse transform
US8982961B2 (en) 2010-04-05 2015-03-17 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using transformation index, and method and apparatus for decoding video by using transformation index
WO2011126283A2 (en) * 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video based on internal bit depth increment, and method and apparatus for decoding video based on internal bit depth increment
US9866875B2 (en) 2010-04-05 2018-01-09 Samsung Electronics Co., Ltd. Low complexity entropy-encoding/decoding method and apparatus
US9049450B2 (en) 2010-04-05 2015-06-02 Samsung Electronics Co., Ltd. Method and apparatus for encoding video based on internal bit depth increment, and method and apparatus for decoding video based on internal bit depth increment
US9369736B2 (en) 2010-04-05 2016-06-14 Samsung Electronics Co., Ltd. Low complexity entropy-encoding/decoding method and apparatus
WO2011126283A3 (en) * 2010-04-05 2012-01-12 Samsung Electronics Co., Ltd. Method and apparatus for encoding video based on internal bit depth increment, and method and apparatus for decoding video based on internal bit depth increment
WO2011126281A3 (en) * 2010-04-05 2012-01-12 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by performing in-loop filtering based on tree-structured data unit, and method and apparatus for decoding video by performing the same
US9547886B2 (en) 2010-04-05 2017-01-17 Samsung Electronics Co., Ltd. Method and apparatus for performing interpolation based on transform and inverse transform
US9042460B1 (en) 2010-04-05 2015-05-26 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using transformation index, and method and apparatus for decoding video by using transformation index
KR101492930B1 (ko) * 2010-09-14 2015-02-23 블랙베리 리미티드 변환 도메인 내의 어댑티브 필터링을 이용한 데이터 압축 방법 및 장치
KR101457397B1 (ko) * 2011-01-06 2014-11-04 삼성전자주식회사 계층적 구조의 데이터 단위를 이용한 비디오의 부호화 방법 및 장치, 그 복호화 방법 및 장치
US9407916B2 (en) 2011-01-06 2016-08-02 Samsung Electronics Co., Ltd. Encoding method and device of video using data unit of hierarchical structure, and decoding method and device thereof
US9319689B2 (en) 2011-01-06 2016-04-19 Samsung Electronics Co., Ltd. Encoding method and device of video using data unit of hierarchical structure, and decoding method and device thereof
US9313507B2 (en) 2011-01-06 2016-04-12 Samsung Electronics Co., Ltd. Encoding method and device of video using data unit of hierarchical structure, and decoding method and device thereof
US9313506B2 (en) 2011-01-06 2016-04-12 Samsung Electronics Co., Ltd. Encoding method and device of video using data unit of hierarchical structure, and decoding method and device thereof
US9479784B2 (en) 2011-01-06 2016-10-25 Samsung Electronics Co., Ltd. Encoding method and device of video using data unit of hierarchical structure, and decoding method and device thereof
US10333547B2 (en) 2012-08-13 2019-06-25 Gurologic Microsystems Oy Encoder and method for encoding input data using a plurality of different transformations or combinations of transformations
KR20150129096A (ko) * 2012-08-13 2015-11-19 구루로직 마이크로시스템스 오이 인코더 및 방법
KR101452862B1 (ko) * 2013-04-02 2014-10-23 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101454642B1 (ko) * 2013-04-02 2014-10-27 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101464980B1 (ko) * 2013-04-02 2014-11-25 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
KR101464979B1 (ko) * 2013-04-02 2014-11-25 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
KR101454664B1 (ko) * 2013-04-30 2014-10-28 삼성전자주식회사 움직임 벡터를 복호화하는 방법
KR20140071298A (ko) * 2014-05-07 2014-06-11 삼성전자주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
KR101540684B1 (ko) * 2014-05-07 2015-07-31 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101538920B1 (ko) * 2014-05-07 2015-07-24 삼성전자주식회사 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR20140060480A (ko) * 2014-05-07 2014-05-20 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
KR20140109843A (ko) * 2014-08-05 2014-09-16 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101564944B1 (ko) * 2014-10-29 2015-11-02 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
KR20140147786A (ko) * 2014-10-29 2014-12-30 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR20140140002A (ko) * 2014-10-29 2014-12-08 삼성전자주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
KR20140139460A (ko) * 2014-10-29 2014-12-05 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
KR101538921B1 (ko) * 2014-10-29 2015-07-24 삼성전자주식회사 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR20150013931A (ko) * 2015-01-19 2015-02-05 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
KR20150061618A (ko) * 2015-04-13 2015-06-04 삼성전자주식회사 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR20150045979A (ko) * 2015-04-13 2015-04-29 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
KR20150060614A (ko) * 2015-04-13 2015-06-03 삼성전자주식회사 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR20150060615A (ko) * 2015-04-13 2015-06-03 삼성전자주식회사 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR20150051963A (ko) * 2015-04-21 2015-05-13 삼성전자주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
KR20150051962A (ko) * 2015-04-21 2015-05-13 삼성전자주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
KR20160077027A (ko) * 2016-06-22 2016-07-01 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
KR20170088318A (ko) * 2017-07-19 2017-08-01 삼성전자주식회사 영상 부호화 방법 및 장치, 및 부호화된 비트스트림을 포함하는 기록 매체
KR101867597B1 (ko) * 2017-09-22 2018-06-14 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
KR20170115021A (ko) * 2017-09-22 2017-10-16 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
KR20180026707A (ko) * 2018-03-05 2018-03-13 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
WO2019216515A1 (ko) * 2018-05-09 2019-11-14 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20180069766A (ko) * 2018-06-07 2018-06-25 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
KR20180090971A (ko) * 2018-08-01 2018-08-14 삼성전자주식회사 영상 부호화 방법 및 장치
US11734577B2 (en) 2019-06-05 2023-08-22 Samsung Electronics Co., Ltd Electronic apparatus and method of performing operations thereof
US11470327B2 (en) 2020-03-30 2022-10-11 Alibaba Group Holding Limited Scene aware video content encoding
US11792408B2 (en) 2020-03-30 2023-10-17 Alibaba Group Holding Limited Transcoder target bitrate prediction techniques
US12003732B2 (en) 2020-03-30 2024-06-04 Alibaba Group Holding Limited Scene aware video content encoding
US11386873B2 (en) 2020-04-01 2022-07-12 Alibaba Group Holding Limited Method and apparatus for efficient application screen compression

Also Published As

Publication number Publication date
WO2004104930A3 (en) 2006-05-18
WO2004104930A2 (en) 2004-12-02
HU0301368D0 (en) 2003-07-28
JP2007503784A (ja) 2007-02-22
EP1629437A2 (en) 2006-03-01
HUP0301368A3 (en) 2005-09-28
CN1857001A (zh) 2006-11-01
NO20055660L (no) 2005-12-16
CA2526450A1 (en) 2004-12-02
US8086052B2 (en) 2011-12-27
US20060251330A1 (en) 2006-11-09
CN1857001B (zh) 2011-12-21
NO20055660D0 (no) 2005-11-30
HUP0301368A2 (hu) 2005-02-28

Similar Documents

Publication Publication Date Title
KR20060027795A (ko) 하이브리드 비디오 압축 방법
JP3888597B2 (ja) 動き補償符号化装置、及び動き補償符号化復号化方法
US5767909A (en) Apparatus for encoding a digital video signal using an adaptive scanning technique
US6040861A (en) Adaptive real-time encoding of video sequence employing image statistics
US6097757A (en) Real-time variable bit rate encoding of video sequence employing statistics
US5786856A (en) Method for adaptive quantization by multiplication of luminance pixel blocks by a modified, frequency ordered hadamard matrix
US6876703B2 (en) Method and apparatus for video coding
KR100253931B1 (ko) 디지탈 영상 시퀀스의 디코딩 방법 및 장치
RU2463729C2 (ru) Отделимые направленные преобразования
US4816914A (en) Method and apparatus for efficiently encoding and decoding image sequences
US8126282B2 (en) Image encoding apparatus and image decoding apparatus
US6252905B1 (en) Real-time evaluation of compressed picture quality within a digital video encoder
US20120320987A1 (en) Enhancing fractional pixel motion prediction using a plurality of filters
EP0859520B1 (en) Video signal coding systems and processes using adaptive quantization
US9071844B2 (en) Motion estimation with motion vector penalty
WO1996041482A1 (en) Hybrid hierarchical/full-search mpeg encoder motion estimation
US20050036549A1 (en) Method and apparatus for selection of scanning mode in dual pass encoding
WO2003090469A2 (en) System and method for providing single-layer video encoded bitstreams suitable for reduced-complexity decoding
US5844607A (en) Method and apparatus for scene change detection in digital video compression
KR100305485B1 (ko) 화질을최적화하기위한화상처리방법및디지탈비디오부호화기시스템
KR100961760B1 (ko) 이산코사인변환 계수를 참조하는 움직임 추정 방법 및 장치
JP2005530423A (ja) 画像鮮鋭度を符号化中に最適化する方法及びシステム
EP1841235A1 (en) Video compression by adaptive 2D transformation in spatial and temporal direction
EP1720356A1 (en) A frequency selective video compression
KR0157465B1 (ko) 영상데이타의 영상특성에 따른 양자화레벨결정방법 및 그 장치

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid