KR20130105855A - 예제 기반 데이터 프루닝을 이용한 비디오 부호화 - Google Patents

예제 기반 데이터 프루닝을 이용한 비디오 부호화 Download PDF

Info

Publication number
KR20130105855A
KR20130105855A KR1020137009080A KR20137009080A KR20130105855A KR 20130105855 A KR20130105855 A KR 20130105855A KR 1020137009080 A KR1020137009080 A KR 1020137009080A KR 20137009080 A KR20137009080 A KR 20137009080A KR 20130105855 A KR20130105855 A KR 20130105855A
Authority
KR
South Korea
Prior art keywords
patch
blocks
overlap
pruned
picture
Prior art date
Application number
KR1020137009080A
Other languages
English (en)
Other versions
KR101855542B1 (ko
Inventor
동-큉 장
시타람 바가바티
Original Assignee
톰슨 라이센싱
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 톰슨 라이센싱 filed Critical 톰슨 라이센싱
Publication of KR20130105855A publication Critical patent/KR20130105855A/ko
Application granted granted Critical
Publication of KR101855542B1 publication Critical patent/KR101855542B1/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

비디오 압축 효율을 개선하기 위해 예제 기반 데이터 프루닝을 사용하여 비디오 신호들을 부호화하는 방법 및 장치가 제공된다. 비디오 시퀀스의 화상을 부호화하는 장치는 화상의 원 버전으로부터 제1 패치 라이브러리를 작성하고 화상의 재구성 버전으로부터 제2 패치 라이브러리를 작성하는 패치 라이브러리 작성기(145)를 포함한다. 제1 패치 라이브러리 및 제2 패치 라이브러리 각각은 화상의 프루닝된 버전의 복원 동안에 하나 이상의 프루닝된 블록들을 대체하기 위한 복수의 고해상도 대체 패치들을 포함한다. 장치는 또한 제1 패치 라이브러리로부터 화상의 프루닝된 버전을 생성하는 프루너(105) 및 제2 패치 라이브러리로부터 메타데이터를 생성하는 메타데이터 생성기(135)를 포함한다. 메타데이터는 화상의 프루닝된 버전을 복원하기 위한 것이다. 장치는 화상의 프루닝된 버전 및 메타데이터를 부호화하는 부호기(110, 135)를 더 포함한다.

Description

예제 기반 데이터 프루닝을 이용한 비디오 부호화{VIDEO ENCODING USING EXAMPLE - BASED DATA PRUNING}
본 출원은 2010년 9월 10일 출원되고, 발명의 명칭이 “EXAMPLE-BASED DATA PRUNING FOR IMPROVING VIDEO COMPRESSION EFFICIENCY”인 미국 가출원 제61/403108호(Technicolor Docket No. PU100193)에 대한 우선권을 주장한다.
본 출원은 다음의 동시 계류 중이고 공동 소유의 특허 출원들과 관련되어 있다.
(1) 2011년 1월 20일에 출원되고, 발명의 명칭이 “A SAMPLING-BASED SUPER-RESOLUTION APPROACH FOR EFFICENT VIDEO COMPRESSION”인 국제(PCT) 특허 출원 제PCT/US11/000107호(Technicolor Docket No. PU100004);
(2) 2011년 1월 21일에 출원되고, 발명의 명칭이 “DATA PRUNING FOR VIDEO COMPRESSION USING EXAMPLE-BASED SUPER-RESOLUTION”인 국제(PCT) 특허 출원 제PCT/US11/000117호(Technicolor Docket No. PU100014);
(3) 2011년 9월에 출원되고, 발명의 명칭이 “METHODS AND APPARATUS FOR ENCODING VIDEO SIGNALS USING MOTION COMPENSATED EXAMPLE-BASED SUPER-RESOLUTION FOR VIDEO COMPRESSION”인 국제(PCT) 특허 출원 XXXX(Technicolor Docket No. PU100190);
(4) 2011년 9월에 출원되고, 발명의 명칭이 “METHODS AND APPARATUS FOR DECODING VIDEO SIGNALS USING MOTION COMPENSATED EXAMPLE-BASED SUPER-RESOLUTION FOR VIDEO COMPRESSION”인 국제(PCT) 특허 출원 XXXX(Technicolor Docket No. PU100266);
(5) 2011년 9월에 출원되고, 발명의 명칭이 “METHODS AND APPARATUS FOR DECODING VIDEO SIGNALS USING EXAMPLE-BASED DATA PRUNING FOR IMPROVED VIDEO COMPRESSION EFFICIENCY”인 국제(PCT) 특허 출원 XXXX(Technicolor Docket No. PU100267);
(6) 2011년 9월에 출원되고, 발명의 명칭이 “METHODS AND APPARATUS FOR ENCODING VIDEO SIGNALS FOR BLOCK-BASED MIXED-RESOLUTION DATA PRUNING”인 국제(PCT) 특허 출원 XXXX(Technicolor Docket No. PU100194);
(7) 2011년 9월에 출원되고, 발명의 명칭이 “METHODS AND APPARATUS FOR DECODING VIDEO SIGNALS FOR BLOCK-BASED MIXED-RESOLUTION DATA PRUNING”인 국제(PCT) 특허 출원 XXXX(Technicolor Docket No. PU100268);
(8) 2011년 9월에 출원되고, 발명의 명칭이 “METHODS AND APPARATUS FOR EFFICIENT REFERENCE DATA ENCODING FOR VIDEO COMPRESSION BY IMAGE CONTENT BASED SEARCH AND RANKING”인 국제(PCT) 특허 출원 XXXX(Technicolor Docket No. PU100195);
(9) 2011년 9월에 출원되고, 발명의 명칭이 “METHOD AND APPARATUS FOR EFFICIENT REFERENCE DATA DECODING FOR VIDEO COMPRESSION BY IMAGE CONTENT BASED SEARCH AND RANKING”인 국제(PCT) 특허 출원 XXXX(Technicolor Docket No. PU110106);
(10) 2011년 9월에 출원되고, 발명의 명칭이 “METHOD AND APPARATUS FOR ENCODING VIDEO SIGNALS FOR EXAMPLE-BASED DATA PRUNING USING INTRA-FRAME PATCH SIMILARITY”인 국제(PCT) 특허 출원 XXXX(Technicolor Docket No. PU100196);
(11) 2011년 9월에 출원되고, 발명의 명칭이 “METHOD AND APPARATUS FOR DECODING VIDEO SIGNALS WITH EXAMPLE-BASED DATA PRUNING USING INTRA-FRAME PATCH SIMILARITY”인 국제(PCT) 특허 출원 XXXX(Technicolor Docket No. PU100269); 및
(12) 2011년 9월에 출원되고, 발명의 명칭이 “PRUNING DECISION OPTIMIZATION IN EXAMPLE-BASED DATA PRUNING COMPRESSION”인 국제(PCT) 특허 출원 XXXXX(Technicolor Docket No. PU10197).
본 발명은 일반적으로 비디오 부호화 및 복호화에 관한 것으로서, 더 구체적으로는 비디오 압축 효율을 개선하기 위한 예제 기반 데이터 프루닝을 위한 방법 및 장치에 관한 것이다.
데이터 프루닝(data pruning)은 비디오 데이터가 부호화되기 전에 입력 비디오 데이터의 일부를 제거함으로써 더 나은 비디오 코딩 효율을 달성하기 위한 비디오 프로세싱 기술이다. 복호화된 데이터로부터 제거된 비디오 데이터를 추론함으로써 제거된 비디오 데이터는 복호기 측에서 복원된다. 압축 효율을 증가시키기 위한 데이터 프루닝의 사용에 관한 종래의 여러 노력이 있었다. 예를 들어, (A. Dumitras와 B. G. Haskell이 발표한 논문 "A Texture Replacement Method at the Encoder for Bit Rate Reduction of Compressed Video,"(IEEE Transactions on Circuits and Systems for Video Technology, Vol. 13, No. 2, February 2003, pp. 163-175)에 설명된) 제1 접근법 및 (A. Dumitras와 B. G. Haskell이 발표한 논문 "An encoder-decoder texture replacement method with application to content-based movie coding,"(IEEE Transactions on Circuits and Systems for Video Technology, Vol. 14, issue 6, June 2004, pp. 825-840)에 설명된) 제2 접근법에는, 텍스처 교체 기반 방법이 부호기 측에서 텍스처 영역을 제거하고, 복호기 측에서 텍스처 영역을 재합성하는 데 사용된다. 정규 변환 계수보다 더 적은 양의 데이터를 갖는 합성 파라미터만이 복호기에 전송되기 때문에 압축 효율이 획득된다.
(C. Zhu, X. Sun, F. Wu, 및 H. Li가 발표한 논문 "Video Coding with Spatio-Temporal Texture Synthesis,"(IEEE International Conference on Multimedia and Expo (ICME), 2007)에 설명된) 제3 접근법 및 (C. Zhu, X. Sun, F. Wu, 및 H. Li가 발표한 논문 "Video coding with spatio-temporal texture synthesis and edge-based inpainting,"(IEEE International Conference on Multimedia and Expo (ICME), 2008)에 설명된) 제4 접근법에는, 시공간적 텍스처 합성 및 에지 기반 인페인팅(edge-based inpainting)이 부호기 측에서 영역들의 일부를 제거하는 데 사용되고, 제거된 컨텐츠는 영역 마스크(region mask)와 같은 메타데이터의 도움으로 복호기 측에서 복원된다. 그러나, 제3 접근법 및 제4 접근법은 부호기/복호기가 영역 마스크를 사용하여 영역들의 일부에 부호화/복호화를 선택적으로 수행할 수 있도록 부호기 및 복호기를 변형할 필요가 있다. 그러므로, 부호기와 복호기가 제3 접근법 및 제4 접근법을 수행할 수 있기 위해 변형될 필요가 있기 때문에 그것은 정확히 아웃-오브-루프(out-of-loop) 접근법이 아니다. (Dung T. Vo, Joel Sole, Peng Yin, Cristina Gomila, 및 Truong Q. Nguyen가 발표한 논문 "Data Pruning-Based Compression using High Order Edge-Directed Interpolation,"(IEEE Conference on Acoustics, Speech and Signal Processing, Taiwan, R.O.C., 2009)에 설명된) 제5 접근법에서는, 최소 자승 최소화 프레임워크(least-square minimization framework)로 비디오에 있는 수평 라인 또는 수직 라인의 일부를 선택적으로 제거함으로써 비디오를 더 작은 사이즈로 스케일 조정하는 라인 제거 기반 방법이 제안되어 있다. 제5 접근법은 아웃-오브-루프 접근법이며, 부호기/복호기의 변형을 요구하지 않는다. 그러나, 특정한 수평 및 수직 라인들을 완전히 제거하는 것은 일부 비디오에 관한 정보 또는 상세사항들의 손실을 초래할 수 있다.
또한, 비디오 압축을 위한 데이터 프루닝에 대한 일부 예비 조사가 수행되었다. 예를 들어, (2010년 1월 22일에 동시 계류 중이고 공동 소유의 미국 가출원(제61/297320호)(Technicolor docket number PU100004)으로서 출원되고, 2010년 2월 8일에 ICIP 2010에 제출된, Sitaram Bhagavathy, Dong-Qing Zhang 및 Mithun Jacob의 "A Data Pruning Approach for Video Compression Using Motion-Guided Down-sampling and Super-resolution"에 설명된) 제6 접근법에는, 샘플링 기반 초해상도(super-resolution)를 이용한 데이터 프루닝 방식이 제시되어 있다. 풀 해상도 프레임은 여러 소형 사이즈의 프레임으로 샘플링되며, 이로써 원 비디오의 공간적 사이즈를 감소시킨다. 복호기 측에서는, 고해상도 프레임이 부호기 측으로부터 수신된 메타데이터의 도움으로 다운샘플링된 프레임들로부터 재합성된다. (2010년 1월 22일에 동시 계류 중이고 공동 소유의 미국 가출원(제61/336516호)(Technicolor docket number PU100014)로서 출원된, Dong-Qing Zhang, Sitaram Bhagavathy, 및 Joan Llach의 “Data pruning for video compression using example-based super-resolution”에 설명된) 제7 접근법에는, 데이터프루닝을 위한 예제 기반 초해상도 이용 방법이 제시되어 있다. 대표적인 패치 라이브러리가 원 비디오로부터 트레이닝(training)된다. 그 후, 비디오는 더 작은 사이즈로 다운사이징된다. 다운사이징된 비디오 및 패치 라이브러리는 복호기 측으로 전송된다. 복호기 측에서의 복원 프로세스는 패치 라이브러리를 사용하여 예제 기반 초해상도에 의해 다운사이징된 비디오를 초분해(super-resolve)한다. 그러나, 패치 라이브러리 및 다운사이징된 프레임 사이에 상당한 리던던시(redundancy)가 존재함에 따라, 압축 이득의 실질 레벨이 제7 접근법을 사용하여 용이하게 획득될 수 없다는 것을 알았다.
본 출원은 비디오 압축 효율을 개선하기 위한 예제 기반 데이터 프루닝을 위한 방법 및 장치를 개시한다.
본 발명의 일 측면에 따르면, 비디오 시퀀스의 화상(picture)을 부호화하는 장치가 제공된다. 장치는 화상의 원 버전으로부터 제1 패치 라이브러리를 작성하고, 화상의 재구성 버전으로부터 제2 패치 라이브러리를 작성하는 패치 라이브러리 작성기(patch library creator)를 포함한다. 제1 패치 라이브러리 및 제2 패치 라이브러리 각각은 화상의 프루닝된 버전의 복원 동안에 하나 이상의 프루닝된 블록들을 대체하기 위한 복수의 고해상도 대체 패치를 포함한다. 장치는 또한 제1 패치 라이브러리로부터 화상의 프루닝된 버전을 생성하는 프루너(pruner) 및 제2 패치 라이브러리로부터 메타데이터를 생성하는 메타데이터 생성기를 포함한다. 메타데이터는 화상의 프루닝된 버전을 복원하기 위한 것이다. 장치는 메타데이터 및 화상의 프루닝된 버전을 부호화하는 부호기를 더 포함한다.
본 발명의 다른 측면에 따르면, 비디오 시퀀스의 화상을 부호화하는 방법이 제공된다. 방법은 화상의 원 버전으로부터 제1 패치 라이브러리를 작성하고, 화상의 재구성 버전으로부터 제2 패치 라이브러리를 작성하는 단계를 포함한다. 제1 패치 라이브러리 및 제2 패치 라이브러리 각각은 화상의 프루닝된 버전의 복원 동안에 하나 이상의 프루닝된 블록들을 대체하기 위한 복수의 고해상도 대체 패치를 포함한다. 방법은 또한 제1 패치 라이브러리로부터 화상의 프루닝된 버전을 생성하는 단계 및 제2 패치 라이브러리로부터 메타데이터를 생성하는 단계를 포함한다. 메타데이터는 화상의 프루닝된 버전을 복원하기 위한 것이다. 방법은 메타데이터 및 화상의 프루닝된 버전을 부호화하는 단계를 더 포함한다.
본 발명의 또 다른 측면에 따르면, 비디오 시퀀스의 화상의 프루닝된 버전을 복원하는 장치가 제공된다. 장치는 화상의 프루닝된 버전을 복수의 비-오버랩 블록들(non-overlapping blocks)로 분할하는 분할기(divider) 및 화상의 프루닝된 버전을 복원하는 데 사용하는 메타데이터를 복호화하는 메타데이터 복호기를 포함한다. 장치는 또한 화상의 재구성 버전으로부터 패치 라이브러리를 작성하는 패치 라이브러리 작성기를 포함한다. 패치 라이브러리는 화상의 프루닝된 버전의 복원 동안에 하나 이상의 프루닝된 블록들을 대체하기 위한 복수의 고해상도 대체 패치를 포함한다. 장치는 메타데이터를 사용하여 복수의 비-오버랩 블록들로부터 하나 이상의 프루닝된 블록들 중 각각의 프루닝된 블록에 대한 대응 패치를 발견하고 하나 이상의 프루닝된 블록들 중 각각의 프루닝된 블록을 대응 패치로 대체하는 검색 프로세스를 수행하는 검색 및 대체 디바이스를 더 포함한다.
본 발명의 또 다른 측면에 따르면, 비디오 시퀀스의 화상의 프루닝된 버전을 복원하는 방법이 제공된다. 방법은 화상의 프루닝된 버전을 복수의 비-오버랩 블록들로 분할하는 단계 및 화상의 프루닝된 버전을 복원하는 데 사용하는 메타데이터를 복호화하는 단계를 포함한다. 방법은 또한 화상의 재구성 버전으로부터 패치 라이브러리를 작성하는 단계를 포함한다. 패치 라이브러리는 화상의 프루닝된 버전의 복원 동안에 하나 이상의 프루닝된 블록들을 대체하기 위한 복수의 고해상도 대체 패치를 포함한다. 방법은 메타데이터를 사용하여 복수의 비-오버랩 블록들로부터 하나 이상의 프루닝된 블록들 중 각각의 프루닝된 블록에 대한 대응 패치를 발견하고 하나 이상의 프루닝된 블록들 중 각각의 프루닝된 블록을 대응 패치로 대체하는 검색 프로세스를 수행하는 단계를 더 포함한다.
본 발명의 또 다른 측면에 따르면, 비디오 시퀀스의 화상을 부호화하는 장치가 제공된다. 장치는 화상의 원 버전으로부터 제1 패치 라이브러리를 작성하고 화상의 재구성 버전으로부터 제2 패치 라이브러리를 작성하는 수단을 포함한다. 제1 패치 라이브러리 및 제2 패치 라이브러리 각각은 화상의 프루닝된 버전의 복원 동안에 하나 이상의 프루닝된 블록들을 대체하기 위한 복수의 고해상도 대체 패치를 포함한다. 장치는 또한 제1 패치 라이브러리로부터 화상의 프루닝된 버전을 생성하는 수단, 및 제2 패치 라이브러리로부터 화상의 프루닝된 버전을 복원하기 위한 메타데이터를 생성하는 수단을 포함한다. 장치는 메타데이터 및 화상의 프루닝된 버전을 부호화하는 수단을 더 포함한다.
본 발명의 추가적인 측면에 따르면, 비디오 시퀀스의 화상의 프루닝된 버전을 복원하는 장치가 제공된다. 장치는 화상의 프루닝된 버전을 복수의 비-오버랩 블록들로 분할하는 수단 및 화상의 프루닝된 버전을 복원하는 데 사용하는 메타데이터를 복호화하는 수단을 포함한다. 장치는 또한 화상의 재구성 버전으로부터 패치 라이브러리를 작성하는 수단을 포함한다. 패치 라이브러리는 화상의 프루닝된 버전의 복원 동안에 하나 이상의 프루닝된 블록들을 대체하기 위한 복수의 고해상도 대체 패치를 포함한다. 장치는 메타데이터를 사용하여 복수의 비-오버랩 블록들로부터 하나 이상의 프루닝된 블록들 중 각각의 프루닝된 블록에 대한 대응 패치를 발견하고, 하나 이상의 프루닝된 블록들 중 각각의 프루닝된 블록을 대응 패치로 대체하는 검색 프로세스를 수행하는 수단을 더 포함한다.
본 발명의 이들 및 그 밖의 다른 목적, 특징, 및 이점들은 첨부된 도면과 함께 실시예들에 대한 다음의 상세한 설명으로부터 명확해질 것이다.
본 발명은 다음의 예시적인 도면들과 함께 더 잘 이해될 수 있다.
도 1은 본 발명의 일 실시예에 따라 패치 유사성을 사용하는 예시적인 예제 기반 데이터 프루닝 시스템을 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따라 본 발명이 적용될 수 있는 예시적인 비디오 부호기를 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따라 본 발명이 적용될 수 있는 예시적인 비디오 복호기를 도시한 블록도이다.
도 4는 본 발명의 일 실시예에 따라 예제 기반 데이터 프루닝 시스템에서 부호기 측 프로세싱을 수행하는 예시적인 제1 부분을 도시한 블록도이다.
도 5는 본 발명의 일 실시예에 따라 클러스터화 및 패치 라이브러리 작성을 위한 예시적인 방법을 도시한 흐름도이다.
도 6은 본 발명의 일 실시예에 따라 예시적인 패치 라이브러리 및 대응 클러스터를 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따라 예시적인 시그니처 벡터(signature vector)를 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따라 패치 유사성을 사용하는 예제 기반 데이터 프루닝 시스템에서 부호기 측 프로세싱을 수행하는 예시적인 제2 부분을 도시한 블록도이다.
도 9는 본 발명의 일 실시예에 따라 비디오 프레임 프루닝을 위한 예시적인 방법을 도시한 흐름도이다.
도 10은 본 발명의 일 실시예에 따라 패치 검색 프로세스를 도시한 도면이다.
도 11은 본 발명의 일 실시예에 따라 예시적인 혼합 해상도 프레임을 도시한 영상이다.
도 12는 본 발명의 일 실시예에 따라 메타데이터를 부호화하는 예시적인 방법을 도시한 흐름도이다.
도 13은 본 발명의 일 실시예에 따라 프루닝된 블록 ID들을 부호화하는 예시적인 방법을 도시한 흐름도이다.
도 14는 본 발명의 일 실시예에 따라 패치 인덱스를 부호화하는 예시적인 방법을 도시한 흐름도이다.
도 15는 본 발명의 일 실시예에 따라 패치 인덱스를 복호화하는 예시적인 방법을 도시한 흐름도이다.
도 16은 본 발명의 일 실시예에 따라 예시적인 블록 ID를 도시한 도면이다.
도 17은 본 발명의 일 실시예에 따라 후속 프레임들을 프루닝하는 예시적인 방법을 도시한 흐름도이다.
도 18은 본 발명의 일 실시예에 따라 프루닝된 블록에 대한 예시적인 모션 벡터를 도시한 흐름도이다.
도 19는 본 발명의 일 실시예에 따라 메타데이터를 복호화하는 예시적인 방법을 도시한 흐름도이다.
도 20은 본 발명의 일 실시예에 따라 프루닝된 블록 ID들을 복호화하는 예시적인 방법을 도시한 흐름도이다.
도 21은 본 발명의 일 실시예에 따라 예제 기반 데이터 프루닝을 위한 복호기 측 프로세싱을 수행하는 예시적인 장치를 도시한 블록도이다.
도 22는 본 발명의 일 실시예에 따라 프루닝된 프레임을 복원하는 예시적인 방법을 도시한 흐름도이다.
도 23은 본 발명의 일 실시예에 따라 후속 프레임들을 복원하는 예시적인 방법을 도시한 흐름도이다.
본 발명은 비디오 압축 효율을 개선하기 위한 예제 기반 데이터 프루닝을 위한 방법 및 장치에 관한 것이다.
여기에 기재된 설명은 본 발명을 예시한다. 이에 따라, 당업자라면 여기에 명백히 설명되거나 도시되지 않았다고 할지라도 본 발명을 구현하고, 본 발명의 사상 및 범위 내에 포함되는 다양한 배열을 고안할 수 있다는 것을 알 것이다.
여기에 언급된 모든 예시 및 조건부 표현은 발명자(들)에 의해 기술 발전에 기여된 본 발명의 원리 및 개념에 대한 독자들의 이해를 돕기 위해 가르치기 위한 목적을 위한 것으로서, 그러한 구체적으로 언급된 예시 및 조건들로 한정되지 않는 것으로 간주되어야 한다.
또한, 본 발명의 원리, 측면, 및 실시예들 및 이들의 구체적 예시들을 언급하는 모든 진술들은 이들의 구조적 균등물들과 기능적 균등물들을 모두 포함하는 것을 의도한다. 또한, 이러한 균등물은 현재 공지된 균등물뿐 아니라 장래에 개발되는 균등물, 즉 구조와 상관없이 동일한 기능을 수행하도록 개발되는 임의의 구성요소들을 포함하는 것을 의도한다.
이로 인해, 예를 들어, 당업자라면 여기에 제시된 블록도들이 본 발명을 구현한 예시적인 회로의 개념도를 표현한다는 점을 이해할 것이다. 유사하게, 임의의 흐름도, 순서도, 상태 전이도, 의사코드 등이 컴퓨터 판독가능 매체에서 실질적으로 표현될 수 있고, 컴퓨터 또는 프로세서가 명확히 도시되었는지와 무관하게, 이러한 컴퓨터 또는 프로세서에 의해 실행될 수 있는 다양한 프로세스들을 표현한다는 점을 이해할 것이다.
도면에 도시된 다양한 구성요소의 기능들은 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 수 있는 하드웨어뿐 아니라 전용 하드웨어를 사용하여 제공될 수 있다. 프로세서에 의해 제공되는 경우, 이러한 기능들은 단일 전용 프로세서에 의해, 단일 공유 프로세서에 의해, 또는 일부가 공유될 수 있는 복수의 개별 프로세서들에 의해 제공될 수 있다. 또한, “프로세서” 또는 “컨트롤러”라는 용어의 명시적 사용은 소프트웨어를 실행할 수 있는 하드웨어만을 지칭하는 것으로 간주되지 않아야 하며, 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어 저장을 위한 ROM(read-only memory), RAM(random access memory), 및 비휘발성 저장부를 함축적으로 포함할 수 있다(이들에 제한되는 것은 아님).
그 밖의 다른 종래의 및/또는 주문 제작된 하드웨어가 포함될 수도 있다. 유사하게, 도면들에 도시된 임의의 스위치들은 단지 개념적인 것이다. 이들의 기능은 프로그램 로직의 동작을 통하여, 전용 로직을 통하여, 프로그램 제어와 전용 로직의 상호작용을 통하여, 또는 심지어 수동으로 수행될 수 있는데, 특정 기법은 문맥으로부터 더 구체적으로 이해되는 바와 같이 구현하는 사람에 의해 선택될 수 있다.
청구항에서, 지정된 기능을 수행하는 수단으로서 표현된 임의의 구성요소는 예를 들어, a) 그 기능을 수행하는 회로 구성요소들의 조합, 또는 b) 그 기능을 수행하기 위해 소프트웨어를 실행하는 적절한 회로와 결합된 펌웨어, 마이크로코드 등을 포함하는 임의의 형태의 소프트웨어를 포함하는 그 기능을 수행하는 임의의 방법을 포함하고자 한다. 이러한 청구항에 의해 정의된 본 발명의 원리는 청구항이 요구하는 방식으로 언급된 다양한 수단에 의해 제공되는 기능들이 함께 결합되어 합쳐진다는 사실에 있다. 이로 인해, 이러한 기능들을 제공할 수 있는 임의의 수단은 여기에 제시된 것들과 균등한 것으로 간주된다.
본 명세서에서 본 발명의 “하나의 실시예” 또는 “일 실시예” 및 이와 유사한 표현에 대한 언급은 그 실시예와 함께 설명된 특별한 특징, 구조, 특성 등이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 이에 따라, 본 명세서 전체에 걸쳐 다양한 위치에 나오는 “하나의 실시예에서” 또는 “일 실시예에서”라는 문구 및 임의의 다른 변형 문구는 반드시 모두가 동일한 실시예를 지칭하는 것은 아니다.
다음의 "/", "및/또는", 및 "적어도 하나” 중 어느 하나의 사용은, 예를 들어, “A/B”, “A 및/또는 B”, 및 “A 및 B 중 적어도 하나”의 경우에, 제1 리스트 옵션(A)만의 선택, 또는 제2 리스트 옵션(B)만의 선택, 또는 양 옵션 모두(A 및 B)의 선택을 포함하기 위한 것이라는 점이 이해되어야 한다. 추가 예로서, "A, B, 및/또는 C" 및 "A, B, 및 C 중 적어도 하나"의 경우에, 이러한 구문은 제1 리스트 옵션(A)만의 선택, 또는 제2 리스트 옵션(B)만의 선택, 또는 제3 리스트 옵션(C)만의 선택, 또는 제1 리스트 옵션 및 제2 리스트 옵션(A 및 B)만의 선택, 또는 제1 리스트 옵션 및 제3 리스트 옵션(A 및 C)만의 선택, 또는 제2 리스트 옵션 및 제3 리스트 옵션(B 및 C)만의 선택, 또는 3가지 모든 옵션(A 및 B 및 C)의 선택을 포함하고자 한다. 당업자에 의해 용이하게 명확해지는 바와 같이, 이는 리스트에 있는 개수만큼의 아이템들에 대해 확장될 수 있다.
또한, 여기에 사용된 바와 같이, “화상(picture)” 및 “영상(image)”이라는 용어는 상호 교환 가능하게 사용되며, 비디오 시퀀스로부터의 정지 영상 또는 화상을 지칭한다. 알려진 바와 같이, 화상은 프레임 또는 필드일 수 있다.
도 1을 참조하면, 예시적인 예제 기반 데이터 프루닝 시스템이 일반적으로 참조 번호 100으로 표시된다. 프루닝 시스템(100)은 비디오 부호기(110)의 입력 및 메타데이터 생성기 및 부호기(135)의 제1 입력과 신호 통신하도록 연결된 출력을 갖는 프루너(105)를 포함한다. 비디오 부호기의 출력은 비디오 복호기(115)의 입력 및 패치 라이브러리 작성기(140)의 입력과 신호 통신하도록 연결된다. 비디오 복호기(115)의 출력은 복원 디바이스(120)의 제1 입력과 신호 통신하도록 연결된다. 패치 라이브러리 작성기(130)의 출력은 복원 디바이스(120)의 제2 입력과 신호 통신하도록 연결된다. 메타데이터 생성기 및 부호기(135)의 출력은 메타데이터 복호기(125)의 입력과 신호 통신하도록 연결된다. 메타데이터 복호기(125)의 출력은 복원 디바이스(120)의 제3 입력과 신호 통신하도록 연결된다. 패치 라이브러리 작성기(140)의 출력은 메타데이터 생성기 및 부호기(135)의 제2 입력과 신호 통신하도록 연결된다. 클러스터화 디바이스 및 패치 라이브러리 작성기(145)의 출력은 프루너(105)의 제2 입력과 신호 통신하도록 연결된다. 프루너(105)의 입력, 및 클러스터화 디바이스 및 패치 라이브러리 작성기(145)의 입력은 입력 비디오의 수신을 위한 프루닝 시스템(100)에 대한 입력으로서 이용될 수 있다. 복원 디바이스의 출력은 비디오를 출력하기 위한 프루닝 시스템(100)의 출력으로서 이용될 수 있다.
도 2를 참조하면, 본 발명이 적용될 수 있는 예시적인 비디오 부호기가 일반적으로 참조 번호 200으로 표시된다. 비디오 부호기(200)는 결합기(combiner)(285)의 비반전 입력과 신호 통신하는 출력을 갖는 프레임 정렬 버퍼(frame ordering buffer)(210)를 포함한다. 결합기(285)의 출력은 변환기 및 양자화기(transformer and quantizer)(225)의 제1 입력과 신호 통신하도록 연결된다. 변환기 및 양자화기(225)의 출력은 엔트로피 코더(entropy coder)(245)의 제1 입력과 역변환기 및 역양자화기(inverse transformer and inverse quantizer)(250)의 제1 입력과 신호 통신하도록 연결된다. 엔트로피 코더(245)의 출력은 결합기(290)의 제1 비반전 입력과 신호 통신하도록 연결된다. 결합기(290)의 출력은 출력 버퍼(235)의 제1 입력과 신호 통신하도록 연결된다.
부호기 컨트롤러(205)의 제1 출력은 프레임 정렬 버퍼(210)의 제2 입력, 역변환기 및 역양자화기(250)의 제2 입력, 화상 타입 결정 모듈(215)의 입력, 매크로블록 타입(MB-type) 결정 모듈(220)의 제1 입력, 인트라 예측 모듈(260)의 제2 입력, 디블로킹 필터(265)의 제2 입력, 모션 보상기(270)의 제1 입력, 모션 추정기(275)의 제1 입력, 및 기준 화상 버퍼(280)의 제2 입력과 신호 통신하도록 연결된다.
부호기 컨트롤러(205)의 제2 출력은 부가 확장 정보(Supplemental Enhancement Information; SEI) 삽입기(230)의 제1 입력, 변환기 및 양자화기(225)의 제2 입력, 엔트로피 코더(245)의 제2 입력, 출력 버퍼(235)의 제2 입력, 및 시퀀스 파라미터 세트(SPS) 및 화상 파라미터 세트(PPS) 삽입기(240)의 입력과 신호 통신하도록 연결된다.
SEI 삽입기(230)의 출력은 결합기(290)의 제2 비반전 입력과 신호 통신하도록 연결된다.
화상 타입 결정 모듈(215)의 제1 출력은 프레임 정렬 버퍼(210)의 제3 입력과 신호 통신하도록 연결된다. 화상 타입 결정 모듈(215)의 제2 출력은 매크로블록 타입 결정 모듈(220)의 제2 입력과 신호 통신하도록 연결된다.
시퀀스 파라미터 세트(SPS) 및 화상 파라미터 세트(PPS) 삽입기(240)의 출력은 결합기(290)의 제3 비반전 입력과 신호 통신하도록 연결된다.
역양자화기 및 역변환기(250)의 출력은 결합기(219)의 제1 비반전 입력과 신호 통신하도록 연결된다. 결합기(219)의 출력은 인트라 예측 모듈(260)의 제1 입력 및 디블로킹 필터(265)의 제1 입력과 신호 통신하도록 연결된다. 디블로킹 필터(265)의 출력은 기준 화상 버퍼(280)의 제1 입력과 신호 통신하도록 연결된다. 기준 화상 버퍼(280)의 출력은 모션 추정기(275)의 제2 입력 및 모션 보상기(270)의 제3 입력과 신호 통신하도록 연결된다. 모션 추정기(275)의 제1 출력은 모션 보상기(270)의 제2 입력과 신호 통신하도록 연결된다. 모션 추정기(275)의 제2 출력은 엔트로피 코더(245)의 제3 입력과 신호 통신하도록 연결된다.
모션 보상기(270)의 출력은 스위치(297)의 제1 입력과 신호 통신하도록 연결된다. 인트라 예측 모듈(260)의 출력은 스위치(297)의 제2 입력과 신호 통신하도록 연결된다. 매크로블록 타입 결정 모듈(220)의 출력은 스위치(297)의 제3 입력과 신호 통신하도록 연결된다. 스위치(297)의 제3 입력은 (제어 입력, 즉 제3 입력에 비해) 스위치의 “데이터” 입력이 모션 보상기(270)에 의해 제공될 것인지 또는 인트라 예측 모듈(260)에 의해 제공될 것인지를 판단한다. 스위치(297)의 출력은 결합기(219)의 제2 비반전 입력 및 결합기(285)의 반전 입력과 신호 통신하도록 연결된다.
프레임 정렬 버퍼(210)의 제1 입력 및 부호기 컨트롤러(205)의 입력은 입력 화상을 수신하기 위한 부호기(200)의 입력으로서 이용될 수 있다. 또한, 부가 확장 정보(SEI) 삽입기(230)의 제2 입력은 메타데이터를 수신하기 위한 부호기(200)의 입력으로서 이용될 수 있다. 출력 버퍼(235)의 출력은 비트스트림을 출력하기 위한 부호기(200)의 출력으로서 이용될 수 있다.
도 3을 참조하면, 본 발명이 적용될 수 있는 예시적인 비디오 복호기가 일반적으로 참조 번호 300으로 표시된다. 비디오 복호기(300)는 엔트로피 복호기(345)의 제1 입력과 신호 통신하도록 연결된 출력을 갖는 입력 버퍼(310)를 포함한다. 엔트로피 복호기(345)의 제1 출력은 역변환기 및 역양자화기(350)의 제1 입력과 신호 통신하도록 연결된다. 역변환기 및 역양자화기(350)의 출력은 결합기(325)의 제2 비반전 입력과 신호 통신하도록 연결된다. 결합기(325)의 출력은 디블로킹 필터(365)의 제2 입력 및 인트라 예측 모듈(360)의 제1 입력과 신호 통신하도록 연결된다. 디블로킹 필터(365)의 제2 출력은 기준 화상 버퍼(380)의 제1 입력과 신호 통신하도록 연결된다. 기준 화상 버퍼(380)의 출력은 모션 보상기(370)의 제2 출력과 신호 통신하도록 연결된다.
엔트로피 복호기(345)의 제2 출력은 모션 보상기(370)의 제3 입력, 디블로킹 필터(365)의 제1 입력, 및 인트라 예측기(360)의 제3 입력과 신호 통신하도록 연결된다. 엔트로피 복호기(345)의 제3 출력은 복호기 컨트롤러(305)의 입력과 신호 통신하도록 연결된다. 복호기 컨트롤러(305)의 제1 출력은 엔트로피 복호기(345)의 제2 입력과 신호 통신하도록 연결된다. 복호기 컨트롤러(305)의 제2 출력은 역변환기 및 역양자화기(350)의 제2 입력과 신호 통신하도록 연결된다. 복호기 컨트롤러(305)의 제3 출력은 디블로킹 필터(365)의 제3 입력과 신호 통신하도록 연결된다. 복호기 컨트롤러(305)의 제4 출력은 인트라 예측 모듈(360)의 제2 입력, 모션 보상기(370)의 제1 입력, 및 기준 화상 버퍼(380)의 제2 입력과 신호 통신하도록 연결된다.
모션 보상기(370)의 출력은 스위치(397)의 제1 입력과 신호 통신하도록 연결된다. 인트라 예측 모듈(360)의 출력은 스위치(397)의 제2 입력과 신호 통신하도록 연결된다. 스위치(397)의 출력은 결합기(325)의 제1 비반전 입력과 신호 통신하도록 연결된다.
입력 버퍼(310)의 입력은 입력 비트스트림을 수신하기 위한 복호기(300)의 입력으로서 이용될 수 있다. 디블로킹 필터(365)의 제1 출력은 출력 화상을 출력하기 위한 복호기(300)의 출력으로서 이용될 수 있다.
전술한 바와 같이, 본 발명은 비디오 압축 효율을 개선하기 위한 예제 기반 데이터 프루닝을 위한 방법 및 장치에 관한 것이다. 본 발명은 전술한 7개의 접근법에 대한 개선을 제공한다는 이점이 있다. 즉, 본 발명은 7개의 접근법과 같이 통신 채널을 통해 패치 라이브러리를 전송하기보다, 이전에 전송된 프레임 또는 기존의 프레임들을 사용하여 복호기 측에서 패치 라이브러리를 트레이닝하는 개념을 개시한다. 또한, 데이터 프루닝은 입력 프레임의 일부 블록들을 플랫 영역으로 교체하여 “혼합 해상도(mixed resolution)” 프레임을 작성함으로써 실현된다.
일 실시예에서, 본 발명은 트레이닝 영상/프레임들의 풀(pool)로부터 트레이닝된 패치 예제 라이브러리를 사용하여 비디오를 프루닝하고 프루닝된 비디오를 복원한다는 이점이 있다. 패치 예제 라이브러리는 기준 프레임의 개념의 확장으로 간주될 수 있다. 따라서, 패치 예제 라이브러리 아이디어는 또한 종래의 비디오 부호화 방식에 사용될 수 있다. 일 실시예에서, 본 발명은 라이브러리에서의 효율적인 패치 검색을 위해 오차 범위 클러스터화(error-bounded clustering)(예를 들어, 변형 K-평균 클러스터화)를 사용한다.
또한, 일 실시예에서, 본 발명은 혼합 해상도 데이터 프루닝 방식을 제공하는 이점이 있는데, 이 방식에서는 블록들이 플랫 블록에 의해 대체됨으로써 고주파수 신호를 감소시켜 압축 효율을 개선한다. 메타데이터(라이브러리 내의 최선 매칭 패치(best-match patch) 위치) 부호화의 효율성을 증가시키기 위해, 본 발명은 패치 시그니처 매칭(signature matching), 매칭 순위 목록(matching rank list), 및 순번 부호화(rank number encoding)를 사용한다.
추가적으로, 일 실시예에서, 본 발명은 컬러 변화(color variation)에 기반한 플랫 블록 식별 방식을 사용하여 프루닝된 블록 ID들을 부호화하는 기법을 제공한다는 이점이 있다.
이에 따라, 본 발명에 따르면, 비디오가 비디오 부호기들에 의해 더 효율적으로 부호화될 수 있도록 입력 비디오를 프루닝하는 새로운 방법(여기에서 예제 기반 데이터 프루닝이라고 지칭됨)이 제공된다. 일 실시예에서, 방법은 예제들로서 패치들의 라이브러리를 작성하는 단계, 및 패치 라이브러리를 사용하여 비디오 프레임을 복원하는 단계 - 프레임 내의 일부 블록이 저해상도 블록 또는 플랫 블록으로 대체됨 - 를 포함한다. 프레임워크는 패치 라이브러리를 작성하고, 비디오를 프루닝하고, 비디오를 복원할 뿐 아니라 복원에 필요한 메타데이터를 부호화하는 방법들을 포함한다.
도 1을 참조하면, 부호기 측 프로세싱은 2개의 부분, 즉 패치 라이브러리 작성 및 프루닝을 본질적으로 포함한다. 패치 라이브러리는 복호기 측으로 전송된 이전 프레임(원 비디오 프레임 또는 부호화 및 복호화된 프레임들)을 사용하여 또는 공유되거나 부호기 측과 복호기 측 모두에 의해 액세스될 수 있는 일부 비디오들(예를 들어, YOUTUBE.COM으로부터의 비디오들)을 사용하여 작성될 수 있다. 여기에 개시된 바람직한 실시예에서는, 이전의 기존 프레임들이 패치 라이브러리를 작성하는 데 사용된다. 이전에 복호화된 프레임들을 사용하여 복호기 측에서도 패치 라이브러리가 작성된다. 2개의 패치 라이브러리들이 부호기 측에서 작성된다. 하나의 라이브러리는 원 프레임으로부터 작성되고, 나머지 라이브러리는 재구성 프레임(즉, 부호화된 후 복호화된 프레임)으로부터 작성된다. 후자(재구성 프레임으로부터 생성된 라이브러리)는 복호기 측에서 작성된 패치 라이브러리와 정확히 동일한데, 그 이유는 이들이 정확하게 동일한 프레임(즉, 재구성 프레임)을 사용하여 패치 라이브러리를 작성하기 때문이다.
부호기 측에서, 원 프레임으로부터 작성된 패치 라이브러리는 블록들을 프루닝하는 데 사용되는 반면, 재구성 프레임으로부터 작성된 패치 라이브러리는 메타데이터를 부호화하는 데 사용된다. 재구성 프레임으로부터 작성된 패치 라이브러리를 사용하는 이유는 메타데이터를 부호화 및 복호화하기 위한 패치 라이브러리들이 부호기 측과 복호기 측에서 동일하도록 보장하기 위함이다.
원 프레임을 사용하여 작성된 패치 라이브러리의 경우, 프루닝 동안 패치 검색 프로세스가 효율적으로 수행될 수 있도록 패치들을 그룹화하기 위해 클러스터화 알고리즘이 수행된다. 프루닝은 더 적은 비트가 복호기 측에 전송되도록 패치 라이브러리를 사용하여 소스 비디오를 변형하는 프로세스이다. 프루닝은 비디오 프레임을 블록들로 분할하고, 블록들의 일부를 저해상도 또는 플랫 블록들로 대체함으로써 실현된다. 프루닝된 프레임은 비디오 부호기를 위한 입력으로서 간주된다. 본 발명이 적용될 수 있는 예시적인 비디오 부호기가 전술된 도 2에 도시되어 있다.
도 1을 다시 참조하면, 프루닝 시스템(100)의 복호기 측 프로세싱 컴포넌트는 2개의 부분, 즉 패치 라이브러리 작성부 및 복원부를 포함하는 것으로 간주될 수 있다. 복호기 측의 패치 라이브러리 작성은, 부호기 측과 복호기 측 모두에 동일해야 하는, 이전에 복호화된 프레임들을 사용하여 패치 라이브러리를 작성하는 프로세스이다. 부호기 측 프로세싱과 상이하게, 복호기 측에서의 패치 라이브러리 작성에는 클러스터화가 사용되지 않는다. 복원 컴포넌트는 부호기 측으로부터 전송된 복호화된 프루닝된 프레임들의 프루닝된 컨텐츠를 복원하는 프로세스이다. 복호화된 프루닝된 프레임은 비디오 복호기의 출력이다. 본 발명이 적용될 수 있는 예시적인 비디오 복호기가 전술된 도 3에 도시되어 있다.
패치 라이브러리 작성(Patch library creation)
도 4를 참조하면, 예제 기반 데이터 프루닝 시스템에서 부호기 측 프로세싱을 수행하는 예시적인 제1 부분이 일반적으로 참조 번호 400으로 표시된다. 제1 부분(400)은 클러스터화 디바이스(420)의 입력과 신호 통신하는 출력을 갖는 분할기(410)를 포함한다. 분할기의 입력은 트레이닝 프레임들을 수신하기 위한 제1 부분(400)에 대한 입력으로서 이용될 수 있다. 클러스터화 디바이스(420)의 출력은 클러스터들 및 패치 라이브러리를 출력하기 위한 제1 부분(400)의 출력으로서 이용될 수 있다.
도 5를 참조하면, 클러스터화 및 패치 라이브러리 작성을 위한 예시적인 방법이 일반적으로 참조 번호 500으로 표시된다. 단계(505)에서, 트레이닝 비디오 프레임(training video frame)이 입력된다. 단계(510)에서, 트레이닝 비디오 프레임은 (분할기(410)에 의해) 오버랩 블록(overlapping block)들로 분할된다. 단계(515)에서, 고주파수 디테일(high-frequency details)이 없는 블록들이 (클러스터화 디바이스(420)에 의해) 제거된다. 단계(520)에서, 블록들은 (클러스터화 디바이스(420)에 의해) 클러스터화된다. 단계(525)에서, 클러스터들 및 패치 라이브러리가 출력된다.
패치 라이브러리는 프루닝된 영상 블록들을 복원하는 데 사용될 수 있는 고해상도 패치들의 풀이다. 도 6을 참조하면, 예시적인 패치 라이브러리 및 대응 클러스터들이 일반적으로 참조 번호 600으로 표시된다. 패치 라이브러리는 참조 번호 610으로 명확히 표시되며, 시그니처 부분(611) 및 고해상도 패치 부분(612)을 포함한다. 부호기 측 프로세싱의 경우, 2개의 패치 라이브러리가 작성되는데, 하나는 프루닝을 위한 패치 라이브러리이고, 다른 하나는 메타데이터를 부호화하기 위한 패치 라이브러리이다. 프루닝을 위한 패치 라이브러리는 원 프레임을 사용하여 작성되는 반면, 메타데이터 부호화를 위한 패치 라이브러리는 재구성 프레임을 사용하여 작성된다. 프루닝을 위한 패치 라이브러리의 경우, 라이브러리 내의 패치들은 프루닝 검색 프로세스가 효율적으로 수행될 수 있도록 클러스터들로 그룹화된다. 라이브러리 작성에 사용되는 비디오 프레임들은 오버랩 블록들로 분할되어 트레이닝 데이터 세트를 형성한다. 트레이닝 데이터는 우선 고주파수 디테일을 포함하지 않는 모든 블록들을 제거함으로써 클린업된다. (2010년 1월 22일에 공동 소유의 미국 가출원(제61/336516호)(echnicolor docket number PU100014)으로서 출원된, Dong-Qing Zhang, Sitaram Bhagavathy, 및 Joan Llach의 “Data pruning for video compression using example-based super-resolution”에서 설명된) 변형 k-평균 클러스터화 알고리즘(modified K-means clustering algorithm)은 트레이닝 데이터 세트의 패치들을 클러스터들로 그룹화하는 데 사용된다. 클러스터마다, 클러스터 중심(cluster center)은 클러스터의 패치들의 평균이며, 프루닝 프로세스 동안 입력되는 질의(query)에 매칭하는 데 사용된다. 변형 K-평균 클러스터화 알고리즘은 클러스터 내의 임의의 패치와 클러스터 중심 사이의 오차가 지정된 임계치보다 더 작은 것을 보장한다. 변형 K-평균 클러스터화 알고리즘은 클러스터들에서의 오차 범위를 보장하는 임의의 유사한 클러스터화 알고리즘에 의해 대체될 수 있다.
계산 속도를 높이기 위해, 트레이닝 프레임들의 수평 치수 및 수직 치수가 원 사이즈의 1/4로 축소된다. 또한, 클러스터화 프로세스는 다운사이징된 프레임들의 패치들에 수행된다. 일 실시예에서, 고해상도 패치들의 사이즈는 16×16 픽셀이고, 다운사이징된 패치들의 사이즈는 4×4 픽셀이다. 그러므로, 다운사이즈 팩터는 4이다. 당연히, 본 발명의 사상을 유지하면서, 다른 사이즈가 사용될 수 있다.
메타데이터 부호화를 위한 패치 라이브러리의 경우, 클러스터화 프로세스 및 클린업 프로세스가 수행되지 않으며, 따라서 그것은 재구성 프레임으로부터 가능한 모든 패치들을 포함한다. 그러나, 원 프레임들로부터 작성된 패치 라이브러리의 패치마다, 패치들의 좌표를 사용하여 재구성 프레임으로부터 작성된 패치 라이브러리에서 그의 대응 패치를 발견할 수 있다. 이는 메타데이터 부호화가 정확히 수행될 수 있도록 보장할 것이다. 복호기 측의 경우, 메타데이터 복호화 및 프루닝된 블록 복원을 위해 동일한 복호화된 비디오 프레임들을 사용하여 클러스터화가 없는 동일한 패치 라이브러리가 작성된다.
부호기 측과 복호기 측 모두에서 복호화된 프레임들을 사용하여 작성된 패치 라이브러리의 경우, 패치들의 시그니처들을 작성하기 위해 다른 프로세스가 수행된다. 패치의 시그니처는 패치의 평균 컬러 및 패치의 주변 픽셀들을 포함하는 특징 벡터(feature vector)이다. 패치 시그니처는 메타데이터 부호화 프로세스가 메타데이터를 더 효율적으로 부호화하는 데 사용되고, 복호기 측의 복원 프로세스에서 최선 매칭 패치를 발견하고 프루닝된 컨텐츠를 더 신뢰할 수 있게 복원하는 데 사용된다. 도 7을 참조하면, 예시적인 시그니처 벡터가 일반적으로 참조 번호 700으로 표시된다. 시그니처 벡터(700)는 평균 컬러(701) 및 주변 픽셀들(702)을 포함한다.
이하, 메타데이터 부호화 프로세스가 설명된다. 프루닝된 프레임에서, 때때로 복원 또는 메타데이터 부호화를 위한 프루닝된 블록의 인접 블록들이 또한 프루닝된다. 패치 라이브러리의 검색을 위한 시그니처로서 사용되는 주변 픽셀 세트는 프루닝되지 않은 블록들로부터의 픽셀들만을 포함한다. 모든 인접 블록들이 프루닝되면, 단지 평균 컬러(701)만이 시그니처로서 사용된다. 이는 패치 매칭에 너무 적은 정보가 사용되기 때문에 불량한 패치 매칭을 초래할 수 있으며, 이 점이 프루닝되지 않은 인접 픽셀들(702)이 중요한 이유이다.
프루닝 프로세스(Pruning Process)
표준 비디오 부호화 알고리즘과 유사하게, 입력 비디오 프레임들은 화상 그룹(Group of Pictures; GOP)으로 분할된다. 프루닝 프로세스가 GOP의 제1 프레임에 수행된다. 프루닝 결과는 그 후 GOP의 프레임들의 나머지에 전파된다.
GOP의 제1 프레임에 대한 프루닝 프로세스(Pruning Process for the First Frame in a GOP)
도 8을 참조하면, 예제 기반 데이터 프루닝 시스템에서 부호기 측 프로세싱을 수행하는 예시적인 제2 부분이 일반적으로 참조 번호 800으로 표시된다. 제2 부분(800)은 패치 라이브러리 검색기(810)의 입력과 신호 통신하는 출력을 갖는 분할기(805)를 포함한다. 패치 라이브러리 검색기(810)의 출력은 비디오 부호기(815)의 입력, 메타데이터 생성기(820)의 제1 입력, 및 메타데이터 부호기(825)의 제1 입력과 신호 통신하도록 연결된다. 메타데이터 생성기(820)의 출력은 메타데이터 부호기(825)의 제2 입력과 신호 통신하도록 연결된다. 비디오 부호기(815)의 제1 출력은 메타데이터 생성기(820)의 제2 입력과 신호 통신하도록 연결된다. 분할기(805)의 입력은 입력 프레임을 수신하기 위한 제2 부분(800)의 입력으로서 이용될 수 있다. 비디오 부호기(815)의 출력은 부호화된 비디오 프레임을 출력하기 위한 제2 부분(800)의 출력으로서 이용될 수 있다. 메타데이터 부호기(825)의 출력은 부호화된 메타데이터를 출력하기 위한 제2 부분(800)의 출력으로서 이용될 수 있다.
도 9를 참조하면, 비디오 프레임을 프루닝하는 예시적인 방법이 일반적으로 참조 번호 900으로 표시된다. 단계(905)에서, 비디오 프레임이 입력된다. 단계(910)에서, 비디오 프레임은 비-오버랩 블록들로 분할된다. 단계(915)에서, 블록마다 루프가 수행된다. 단계(920)에서, 패치 라이브러리에서 검색이 수행된다. 단계(925)에서, 패치가 발견되었는지 여부가 판단된다. 패치가 발견되었으면, 방법은 단계(930)로 진행한다. 그렇지 않으면, 방법은 단계(915)로 복귀한다. 단계(930)에서, 블록이 프루닝된다. 단계(935)에서, 모든 블록이 완료되었는지 여부가 판단된다. 모든 블록이 완료되었으면, 방법은 단계(940)로 진행한다. 그렇지 않으면, 방법은 단계(915)로 복귀한다. 단계(940)에서, 프루닝된 프레임 및 대응 메타데이터가 출력된다.
따라서, 입력 프레임은 우선 단계(910)에 따라 비-오버랩 블록들로 분할된다. 블록의 사이즈는 표준 압축 알고리즘에 사용되는 매크로블록의 사이즈와 동일한데, 여기에 개시된 예시적인 구현에서는 16×16 픽셀 사이즈가 채택된다. 그 다음, 단계(920)에 따라 패치 라이브러리에서 최선 매칭 패치를 발견하기 위해 검색 프로세스가 수행된다. 이 검색 프로세스는 도 10에 예시되어 있다. 도 10을 참조하면, 프루닝 동안 수행되는 패치 검색 프로세스는 일반적으로 참조 번호 1000으로 표시된다. 패치 검색 프로세스(1000)는 패치 라이브러리(1010)를 포함하고, 이것은 시그니처 부분(1011)과 고해상도 패치 부분(1012)을 포함한다. 우선, 블록은 유클리드 거리(Euclidean distance)를 계산하고, 최상위 K개의 매칭 클러스터들을 발견함으로써 클러스터들의 중심과 매칭된다. 여기서, K는 경험적으로 판단된다. 원칙적으로, K는 클러스터의 오차 범위에 의해 판단된다. 당연히, 본 발명의 교시에 따라 K를 계산하기 위한 다른 접근법들이 사용될 수도 있다. 후보 클러스터들이 식별된 후, 최선 매칭 패치가 클러스터에서 발견될 때까지 검색 프로세스가 클러스터들 내에서 수행된다. 최선 매칭 패치와 질의 블록 사이의 차이가 소정의 임계치 미만이면, 그 블록은 프루닝될 것이다. 그렇지 않으면, 그 블록은 그대로 유지될 것이다. 각각의 블록에 대한 최선 매칭 패치들의 인덱스 및 프루닝된 블록들의 ID들이 메타데이터로서 저장되고, 이 메타데이터는 메타데이터 부호화 컴포넌트에서 부호화되어 복호기 측으로 전송될 것이다.
블록들이 프루닝을 위해 식별된 후에, 블록들을 프루닝하기 위한 프로세스가 수행된다. 프루닝될 필요가 있는 블록들에 대한 상이한 프루닝 기법들이 존재할 수 있는데, 예를 들어, 고해상도 블록들을 저해상도 블록들로 대체하는 것이 있다. 그러나, 이 접근법을 이용하여 상당한 압축 효율 이득을 달성하는 것이 어려울 수 있다는 것을 알았다. 그러므로, 여기에 개시된 바람직한 실시예에서, 고해상도 블록은 단순히 플랫 블록으로 대체되는데, 플랫 블록에서는 모든 픽셀들이 동일한 컬러 값(즉, 원 블록 내의 픽셀들의 컬러 값들의 평균)을 갖는다. 블록 교체 프로세스는 프레임의 일부는 고해상도를 갖고, 일부 다른 부분은 저해상도를 갖는 비디오 프레임을 작성하는데, 따라서 이러한 프레임은 “혼합 해상도” 프레임이라고 지칭된다(혼합 해상도 프루닝 방식에 대한 더 상세한 내용은, 2011년 3월에 출원된 발명의 명칭이 “METHODS AND APPARATUS FOR ENCODING VIDEO SIGNALS FOR BLOCK-BASED MIXED-RESOLUTION DATA PRUNING FOR IMPROVING VIDEO COMPRESSION EFFICIENCY”인 동시 계류 중이고 공동 소유의 국제(PCT) 특허 출원 XXXX(Technicolor Docket No. PU100194)을 참조한다). 도 11을 참조하면, 예시적인 혼합 해상도 프레임이 일반적으로 참조 번호 1100으로 표시된다. 전술한 플랫 블록 대체 방식이 원하는 압축 효율을 획득하는데 상당히 효과적이라는 것을 알았다. 플랫 블록 대체 방식은 저해상도 블록 대체 방식에 의해 대체될 수 있는데, 여기서 프루닝을 위한 블록은 저해상도 버전에 의해 대체된다.
메타데이터 부호화 및 복호화(Metadata encoding and decoding)
메타데이터 부호화는 2개의 컴포넌트를 포함하는데(도 12 참조), 하나는 프루닝된 블록 ID를 부호화하기 위한 것이고(도 13 참조), 다른 하나는 패치 인덱스를 부호화하기 위한 것이며(도 14), 이는 프루닝 프로세스 동안 블록마다 패치 라이브러리를 검색한 결과이다.
도 12를 참조하면, 메타데이터를 부호화하는 예시적인 방법이 일반적으로 참조 번호 1200으로 표시된다. 단계(1205)에서, 블록마다 복호화된 프루닝된 비디오 프레임, 프루닝된 블록 ID들, 및 패치 인덱스가 입력된다. 단계(1210)에서, 프루닝된 블록 ID들이 부호화된다. 단계(1215)에서, 패치 인덱스가 부호화된다. 단계(1220)에서, 부호화된 메타데이터가 출력된다.
도 13을 참조하면, 프루닝된 블록 ID들을 부호화하는 예시적인 방법이 일반적으로 참조 번호 1300으로 표시된다. 단계(1305)에서, 프루닝된 프레임 및 프루닝된 블록 ID들이 입력된다. 단계(1310)에서, 저해상도 블록 식별이 수행된다. 단계(1320)에서, 임의의 누락(miss)이 존재하는지 여부가 판단된다. 누락이 발견되었으면, 방법은 단계(1325)로 진행한다. 그렇지 않으면, 방법은 단계(1315)로 진행한다. 단계(1325)에서, 거짓 긍정(false positives)의 개수가 프루닝된 블록들의 개수보다 많은지 여부가 판단된다. 거짓 긍정의 개수가 프루닝된 블록들의 개수보다 많으면, 방법은 단계(1330)로 진행한다. 그렇지 않으면, 제어는 단계(1335)로 진행한다. 단계(1330)에서, 프루닝된 블록 시퀀스가 사용되며, 플래그(flag)가 0으로 설정된다. 단계(1340)에서, 차별화(differentiation)가 수행된다. 단계(1345)에서, 무손실 부호화가 수행된다. 단계(1350)에서, 부호화된 메타데이터가 출력된다. 단계(1315)에서, 임계치가 조정된다. 단계(1335)에서, 거짓 긍정 시퀀스(false positive sequence)가 사용되며, 플래그(flag)가 1로 설정된다.
도 14를 참조하면, 패치 인덱스를 부호화하는 예시적인 방법이 일반적으로 참조 번호 1400으로 표시된다. 단계(1405)에서, 블록마다 복호화된 프루닝된 비디오 프레임 및 패치 인덱스가 입력된다. 단계(1410)에서, 프루닝된 블록마다 루프가 수행된다. 단계(1415)에서, 시그니처가 획득된다. 단계(1420)에서, 패치 라이브러리 내의 패치들까지의 거리가 계산된다. 단계(1425)에서, 패치들이 분류되어 순위 목록을 획득한다. 단계(1430)에서, 순번이 획득된다. 단계(1435)에서, 순번이 엔트로피 코딩된다. 단계(1440)에서, 모든 블록이 완료(프로세싱)되었는지 여부가 판단된다. 모든 블록이 완료되었으면, 방법은 단계(1445)로 진행한다. 그렇지 않으면, 방법은 단계(1410)로 복귀한다. 단계(1445)에서, 부호화된 패치 인덱스가 출력된다.
프루닝 프로세스 동안, 블록마다, 시스템은 왜곡이 임계치 미만이면 패치 라이브러리에서 최선 매칭 패치를 검색하고, 발견된 패치에 대한 패치 라이브러리에서의 패치 인덱스를 출력할 것이다. 각각의 패치는 그의 시그니처(즉, 복호화된 프레임들에서 그의 컬러에 주변 픽셀들을 더한 것)와 관련되어 있다. 복호기 측 프로세싱에서 복원 프로세스 동안, 프루닝된 블록의 컬러 및 그 주변 픽셀들이 시그니처로서 사용되어 라이브러리에서 정확한 고해상도 패치를 발견한다.
그러나, 노이즈로 인해, 시그니처를 사용한 검색 프로세스는 신뢰할 수 없으며, 신뢰성을 보장하기 위해 메타데이터가 복원 프로세스를 보조할 필요가 있다. 그러므로, 프루닝 프로세스 후에, 시스템은 복원을 보조하기 위한 메타데이터를 계속 생성할 것이다. 프루닝된 블록마다, 전술한 검색 프로세스는 라이브러리에서 대응 패치들을 이미 식별한다. 메타데이터 부호화 컴포넌트는 질의 벡터(query vector)(프루닝된 블록에 주변 픽셀들을 더한 것의 평균 컬러)를 사용하여 패치 라이브러리(복호화된 프레임을 사용하여 작성된 라이브러리)에서 패치들의 시그니처에 매칭함으로써 복원 프로세스를 시뮬레이션할 것이다. 이 프로세스는 도 14에 예시되어 있다. 도 14를 참조하면, 블록마다, 블록에 대응하는 질의 벡터와 라이브러리 내의 패치들의 시그니처들 사이의 거리(예를 들어, 유클리드 거리, 그러나 당연히 그 밖의 다른 거리 메트릭(metric)이 사용될 수 있음)가 계산된다. 패치들이 거리를 따라 분류되고, 그 결과 순위 목록이 생긴다. 이상적인 경우에, 최선 매칭 고해상도 패치는 순위 목록의 최상위에 있어야 한다. 그러나, 산술 반올림 및 압축(arithmetic rounding and compression)으로 인한 노이즈로 인해, 최선 매칭 패치는 종종 순위 목록에서 첫 번째 패치가 아니다. 정확한 패치가 순위 목록에서 n번째 패치라고 가정한다. 숫자 n은 블록에 대한 메타데이터로서 저장될 것이다. 대부분의 경우에, 최선 매칭 패치는 순위 목록에서 최상위에 가깝기 때문에 n은 1이거나 매우 작은 숫자이며, 따라서 이러한 난수(random number)의 엔트로피는, 최대 엔트로피를 갖는 균일한 분포이어야 하는, 라이브러리 내의 최선 매칭 패치의 인덱스보다 상당히 작다. 그러므로, 순번은 엔트로피 코딩에 의해 효율적으로 부호화될 수 있다. 프루닝된 모든 블록들의 순번은 복호기 측에 전송된 메타데이터의 일부로서 순번 시퀀스를 형성한다. 실제 실험을 통해 순번들의 분포가 기하학적 분포에 가깝다는 것을 알았으며, 따라서 일반적으로 순위 번호 시퀀스를 더 부호화하는데 Golomb 코드가 사용된다. Golomb 코드는 기하학적 분포를 갖는 난수에 가장 적합하다. 당연히, 본 발명의 사상을 유지하면서, 본 발명의 교시에 따라 다른 타입의 코드가 사용될 수 있다.
복호화의 경우(도 15 참조), 복호기 측은 부호기와 정확히 동일한 패치 라이브러리를 가져야 하며, 이는 복호화된 프레임들을 사용하여 작성된다. 프루닝된 블록의 시그니처는 패치 라이브러리 내의 시그니처들과 매칭하고 순위 목록(분류된 패치 라이브러리)을 얻는 데 사용될 것이다. 순번은 분류된 패치 라이브러리로부터 정확한 패치를 검색하는 데 사용된다. 패치 라이브러리가 이전 프레임들로부터 작성되면, 부호기 측과 복호기 측이 정확히 동일한 패치 라이브러리를 갖도록 보장하기 위해, 부호기 측에서의 메타데이터 부호화 프로세스도 비디오 복호기로부터의 복호화된 프레임들을 사용해야 하는데, 그 이유는 복호화된 프레임들만이 복호기 측에서 이용될 수 있기 때문이다.
도 15를 참조하면, 패치 인덱스를 복호화하는 예시적인 방법이 일반적으로 참조 번호 1500으로 표시된다. 단계(1505)에서, 복호화된 프루닝된 비디오 프레임, 부호화된 패치 인덱스, 및 프루닝된 블록 ID들이 입력된다. 단계(1510)에서, 프루닝된 블록마다 루프가 수행된다. 단계(1515)에서, 시그니처가 획득된다. 단계(1520)에서, 패치 라이브러리 내의 패치들까지의 거리가 계산된다. 단계(1525)에서, 패치들이 분류되어 순위 목록을 획득한다. 단계(1530)에서, 부호화된 순번이 엔트로피 복호화된다. 단계(1535)에서, 패치 인덱스는 순번을 사용하여 패치 라이브러리로부터 검색된다. 단계(1540)에서, 모든 블록이 완료(프로세싱)되었는지 여부가 판단된다. 모든 블록이 완료되었으면, 방법은 단계(1545)로 진행한다. 그렇지 않으면, 방법은 단계(1510)로 복귀한다. 단계(1545)에서, 복호화된 패치 인덱스가 출력된다.
순번 메타데이터뿐 아니라, 프루닝된 블록들의 위치가 복호기 측에 전송될 필요가 있다. 이는 블록 ID 부호화에 의해 수행된다(도 13 참조). 하나의 간단한 방법은 단지 블록 ID 시퀀스를 복호기 측에 전송하는 것일 수 있다. 블록의 ID는 프레임에서 블록의 좌표를 표시한다. 도 16을 참조하면, 예시적인 블록 ID가 일반적으로 참조 번호 1600으로 표시된다. 프루닝된 블록들의 ID 시퀀스를 더 효율적으로 부호화하는 것도 가능할 수 있다. 프루닝된 블록들은 플랫하고 고주파수 성분을 포함하지 않기 때문에, 블록 내의 컬러 변화를 계산함으로써 프루닝된 블록들을 검출할 수 있다. 컬러 변화가 임계치보다 작으면, 블록이 프루닝된 블록으로 식별된다. 그러나, 이러한 식별 프로세스가 신뢰할 수 없기 때문에, 메타데이터가 식별 프로세스를 용이하게 하는데 여전히 필요하다. 우선, 높은 임계값으로부터 시작함으로써 변화 임계치(variance threshold)가 판단된다. 그 후, 알고리즘은 변화 임계치를 천천히 감소시킴으로써, 프루닝된 모든 블록들이 식별 절차에 의해 식별될 수 있지만, 거짓 긍정 블록들이 식별 결과에 존재할 수 있다. 이후, 거짓 긍정의 개수가 프루닝된 블록의 개수보다 크면, 프루닝된 블록들의 ID들은 저장되어 복호기 측에 전송되고, 그렇지 않으면 거짓 긍정의 ID들이 복호기 측에 전송될 것이다. 플랫 블록들을 식별하기 위한 변화 임계치도 동일한 식별 절차를 실행하기 위해 복호기 측에 전송된다. ID 시퀀스가 분류될 수 있으며, 이로써 숫자들이 증가한다.
리던던시를 더 감소시키기 위해, ID 숫자와 이전 ID 숫자 사이의 차이를 우선 계산하고, 차이 시퀀스를 부호화하는 차분 코딩 방식(differential coding scheme)이 채택된다. 예를 들어, ID 시퀀스가 3, 4, 5, 8, 13, 14라고 가정하면, 차별화된 시퀀스는 3, 1, 1, 3, 5, 1이 된다. 차별화 프로세스는 숫자들을 1에 가깝게 만들며, 이로써 더 작은 엔트로피를 갖는 숫자 분포를 초래한다. 그 후, 차별화된 시퀀스는 엔트로피 코딩(예를 들어, 현재 구현예에서는 허프만 코딩(Huffman coding)을 사용하여 더 부호화될 수 있다. 이에 따라, 최종 메타데이터의 포맷은 다음과 같이 도시된다.
Figure pct00001
여기서 플래그는 시그널링 플래그로서 블록 ID 시퀀스가 거짓 긍정 ID 시퀀스인지 여부를 표시하고; 임계치는 플랫 블록 식별을 위한 변화 임계치이고; 부호화된 블록 ID 시퀀스는 프루닝된 블록 ID 또는 거짓 긍정 블록 ID의 부호화된 비트 스트림이고; 부호화된 순번 시퀀스는 블록 복원에 사용되는 순번들의 부호화된 비트 스트림이다.
나머지 프레임들을 위한 프루닝 프로세스(Pruning Process for the rest frames)
GOP 내의 프레임들의 나머지의 경우, 프레임 내의 블록들의 일부는 플랫 블록들으로 대체될 것이다. 제1 프레임 내의 프루닝된 블록들의 위치는 모션 트래킹(motion tracking)에 의해 나머지 프레임들로 전파될 수 있다. 프루닝된 블록들의 위치를 전파시키기 위한 상이한 기법들이 시험되고 있다. 하나의 접근법은 블록 매칭에 의해 프레임들을 가로질러 프루닝된 블록들을 트래킹하고 후속 프레임들 내의 대응 블록들을 프루닝하는 것이다(즉, 트래킹된 블록들을 플랫 블록들로 대체함). 그러나, 일반적으로 트래킹된 블록들의 경계가 코딩 매트로 블록들과 정렬되지 않기 때문에 이 접근법으로 우수한 압축 효율 이득을 얻을 수 없다. 결과적으로, 트래킹된 블록의 경계는 매크로블록들에서 고주파수 신호를 생성한다. 그러므로, 후속 프레임들에 대한 모든 블록 위치들을 제1 프레임과 동일한 위치로 설정하는 더 간단한 대체 접근법이 일반적으로 사용되고 있다. 즉, 후속 프레임들 내의 모든 프루닝된 블록들은 제1 프레임의 프루닝된 블록들과 같은 자리에 위치한다(co-located). 결과적으로, 후속 프레임들에 대한 프루닝된 블록들 모두가 매크로 블록 위치들과 정렬된다.
그러나, 이 접근법은 프루닝된 블록 내에 모션이 존재하면 잘 작용하지 않을 수 있다. 그러므로, 이 문제를 해결하기 위한 하나의 해결책은 블록의 모션 강도를 계산하는 것이다(도 17 참조). 도 17을 참조하면, 연속하는 프레임들을 프루닝하는 예시적인 방법이 일반적으로 참조 번호 1700으로 표시된다. 단계(1705)에서, 비디오 프레임 및 프루닝된 블록 ID들이 입력된다. 단계(1710)에서, 같은 자리에 위치하는 블록들이 프루닝된다. 단계(1715)에서, 블록마다 루프가 수행된다. 단계(1720)에서, 이전 프레임에 대한 모션 벡터가 계산된다. 단계(1725)에서, 모션 벡터들이 메타데이터로 저장된다. 단계(1730)에서, 모든 블록이 완료(프로세싱)되었는지 여부가 판단된다. 모든 블록이 완료되었으면, 방법은 단계(1735)로 진행한다. 그렇지 않으면, 방법은 단계(1715)로 복귀한다.
모션 강도가 임계치보다 크면, 블록은 프루닝되지 않을 것이다. 여기에 개시된 예시적인 구현예인 다른 더 복잡한 해결책은 이전 프레임에서 대응 블록을 검색함으로써 원 비디오에서 프루닝된 블록들의 모션 벡터를 계산하는 것이다(도 18 참조). 도 18을 참조하면, 프루닝된 블록에 대한 예시적인 모션 벡터가 일반적으로 참조 번호 1800으로 표시된다. 모션 벡터(1800)는 i번째 프레임의 프루닝된 블록 및 (i-1)번째 프레임의 같은 자리에 위치한 블록에 관한 것이다. 프루닝된 블록들의 모션 벡터들은 복원을 위해 복호기 측에 전송될 것이다. 이전 프레임이 이미 완전히 복원되었을 것이기 때문에, 현재 프레임에서의 프루닝된 블록들은 모션 벡터를 사용하여 복원될 수 있다. 아티팩트(artifact)를 회피하기 위해, 현재 프레임의 블록과 이전 프레임에서 모션 추정에 의해 계산된 대응 블록 사이의 차이가 너무 크면, 현재 프레임의 블록은 프루닝되지 않을 것이다. 또한, 모션 벡터 기반 복원을 더 정확하게 만들기 위해 서브 픽셀 모션 추정이 일반적으로 채택된다. 실험을 통해 서브 픽셀 기반 모션 벡터 추정을 사용한 최종적인 시각적 품질이 정수 픽셀 기반 모션 벡터 추정을 사용하는 것보다 더 우수하다는 것을 알았다.
복원 프로세스(Recovery Process)
복원 프로세스는 복호기 측에서 일어난다. 복원 프로세스 전에, 패치 라이브러리가 작성되어야 한다. 영화와 같이 길이가 긴 비디오의 경우, 복호기 측에 이미 전송된 이전 프레임을 사용함으로써 달성될 수 있다. 부호기 측은 어느 프레임이 패치 라이브러리를 작성하는 데 사용되어야 하는지를 표시한 메타데이터(프레임 ID)를 전송할 수 있다. 복호기 측의 패치 라이브러리는 부호기 측의 라이브러리와 정확히 동일해야 한다.
GOP 내의 제1 프레임의 경우, 복원 프로세스는 메타데이터의 복호화와 함께 시작하는데(도 19 참조), 블록 ID 시퀀스(도 20 참조) 및 순위 시퀀스(도 19 참조)를 복호화하는 것을 포함한다. 도 19를 참조하면, 메타데이터를 복호화하는 예시적인 방법이 일반적으로 참조 번호 1900으로 표시된다. 단계(1905)에서, 부호화된 메타데이터가 입력된다. 단계(1910)에서, 프루닝된 블록 ID들이 복호화된다. 단계(1915)에서, 패치 인덱스가 복호화된다. 단계(1920)에서, 복호화된 메타데이터가 출력된다.
도 20을 참조하면, 프루닝된 블록 ID들을 복호화하는 예시적인 방법이 일반적으로 참조 번호 2000으로 표시된다. 단계(2005)에서, 부호화된 메타데이터가 입력된다. 단계(2010)에서, 무손실 복호화가 수행된다. 단계(2015)에서, 리버스 차별화(reverse differentiation)가 수행된다. 단계(2020)에서, 플래그가 0인지 여부가 판단된다. 플래그가 0이면, 방법은 단계(2025)로 진행한다. 그렇지 않으면, 방법은 단계(2030)로 복귀한다. 단계(2025)에서, 블록 ID들이 출력된다. 단계(2030)에서, 저해상도 블록 식별이 수행된다. 단계(2035)에서, 거짓 긍정이 제거된다. 단계(2040)에서, 블록 ID들이 출력된다.
블록 ID 시퀀스가 이용 가능하게 된 후에, 프루닝된 블록마다, 이 블록의 평균 컬러 및 주변 픽셀들이 시그니처 벡터로 간주되어 패치 라이브러리 내의 시그니처와 매칭될 것이다. 그러나, 복원을 위한 블록의 인접 블록들이 또한 프루닝되면, 검색만을 위한 시그니처로서 사용되는 주변 픽셀들의 세트는 프루닝되지 않은 블록들로부터의 픽셀들을 포함한다. 모든 인접 블록들이 프루닝되면, 단지 평균 컬러만이 시그니처로서 사용된다. 매칭 프로세스는 질의 블록의 시그니처와 라이브러리 내의 패치들의 시그니처들 사이의 유클리드 거리를 계산함으로써 실현된다. 모든 거리들이 계산된 후, 목록은 거리에 따라 분류됨으로써, 순위 목록을 초래한다. 프루닝된 블록에 대응하는 순번은 순위 목록으로부터 정확한 고해상도 블록을 검색하는 데 사용된다.
도 21을 참조하면, 예제 기반 데이터 프루닝을 위한 복호기 측 프로세싱을 수행하는 예시적인 장치가 일반적으로 참조 번호 2100으로 표시된다. 장치(2100)는 검색 패치 라이브러리 및 블록 대체 디바이스(2110)의 제1 입력과 신호 통신하도록 연결된 출력을 갖는 분할기(2105)를 포함한다. 메타데이터 복호기(2115)의 출력은 검색 패치 라이브러리 및 블록 대체 디바이스(2110)의 제2 입력과 신호 통신하도록 연결된다. 분할기(2105)의 입력은 프루닝된 비디오를 수신하기 위한 장치(2100)의 입력으로서 이용될 수 있다. 메타데이터 복호기(2115)의 입력은 부호화된 메타데이터를 수신하기 위한 장치(2100)의 입력으로서 이용될 수 있다. 검색 패치 라이브러리 및 블록 대체 디바이스(2110)의 출력은 복원된 비디오를 출력하기 위한 장치의 출력으로서 이용될 수 있다.
도 22를 참조하면, 프루닝된 프레임을 복원하는 예시적인 방법이 일반적으로 참조 번호 2200으로 표시된다. 단계(2205)에서, 프루닝된 프레임 및 대응 메타데이터가 입력된다. 단계(2210)에서, 프루닝된 프레임은 비-오버랩 블록들로 분할된다. 단계(2215)에서, 블록마다 루프가 수행된다. 단계(2220)에서, 현재 블록이 프루닝된 블록인지 여부가 판단된다. 현재 블록이 프루닝된 블록이면, 방법은 단계(2225)로 진행한다. 그렇지 않으면, 방법은 단계(2215)로 복귀한다. 단계(2225)에서, 패치가 라이브러리에서 발견된다. 단계(2230)에서, 현재 블록이 발견된 패치로 대체된다. 단계(2235)에서, 모든 블록이 완료(프로세싱)되었는지 여부가 판단된다. 모든 블록이 완료되었으면, 방법은 단계(2240)로 진행한다. 그렇지 않으면, 방법은 단계(2215)로 복귀한다. 단계(2240)에서, 복원된 프레임이 출력된다.
예제 패치를 이용한 블록 복원이 종래의 인페인팅(inpainting) 및 텍스처 합성 기반 방법에 의해 대체될 수 있다는 것을 알아야 한다.
GOP의 프레임들의 나머지의 경우, 프루닝된 블록마다, 모션 벡터가 이용될 수 없으면, 블록의 내용은 이전 프레임 내의 같은 자리에 위치하는 블록으로부터 복사될 수 있다. 모션 벡터가 이용될 수 있으면, 모션 벡터는 이전 프레임 내의 대응 블록을 발견하고 대응 블록을 복사하여 프루닝된 블록을 채우는 데 사용될 수 있다(도 23 참조). 도 23을 참조하면, 후속 프레임들을 복원하는 예시적인 방법이 일반적으로 참조 번호 2300으로 표시된다. 단계(2305)에서, 비디오 프레임 및 프루닝된 블록 ID들이 입력된다. 단계(2310)에서, 블록마다 루프가 수행된다. 단계(2315)에서, 모션 벡터가 이전 프레임 내의 패치를 발견하는 데 사용된다. 단계(2320)에서, 발견된 패치는 프루닝된 블록을 대체하는 데 사용된다. 단계(2325)에서, 모든 블록이 완료(프로세싱)되었는지 여부가 판단된다. 모든 블록이 완료되었으면, 방법은 단계(2330)로 진행한다. 그렇지 않으면, 방법은 단계(2310)로 복귀한다.
복원 프로세서가 블록 기반이기 때문에 블록 아티팩트들이 가시적일 수 있다. AVC 부호기에 사용되는 인-루프 디블로킹 필터와 같은 디블로킹 필터가 블록 아티팩트를 감소시키기 위해 적용될 수 있다.
본 발명의 이들 및 그 밖의 다른 특징 및 이점들은 여기에 기재된 교시에 기반하여 당업자에 의해 용이하게 확인될 수 있다. 본 발명의 교시가 다양한 형태의 하드웨어, 소프트웨어, 펌웨어, 전용 프로세서, 또는 이들의 조합으로 구현될 수 있다는 것을 이해해야 한다.
가장 바람직하게, 본 발명의 교시는 하드웨어 및 소프트웨어의 조합으로서 구현된다. 또한, 소프트웨어는 프로그램 저장 유닛에 유형적으로 구현된 애플리케이션 프로그램으로서 구현될 수 있다. 애플리케이션 프로그램은 임의의 적합한 아키텍처를 포함하는 기계에 업로드되어 실행될 수 있다. 바람직하게, 이 기계는 하나 이상의 중앙 처리 장치(CPU), 랜덤 액세스 메모리(RAM), 및 입출력(I/O) 인터페이스 등의 하드웨어를 갖는 컴퓨터 플랫폼에서 구현된다. 컴퓨터 플랫폼은 운영체제 및 마이크로 명령 코드(microinstruction code)를 포함할 수도 있다. 여기에 설명된 다양한 프로세스 및 기능은 마이크로 명령 코드의 일부 또는 애플리케이션 프로그램의 일부, 또는 이들의 임의의 조합일 수 있으며, CPU에 의해 실행될 수 있다. 또한, 추가 데이터 저장 유닛 및 인쇄 유닛과 같은 그 밖의 다양한 주변 유닛들이 컴퓨터 플랫폼에 연결될 수 있다.
첨부된 도면에 도시된 구성 시스템 컴포넌트 및 방법 중 일부는 소프트웨어로 구현되는 것이 바람직하기 때문에, 시스템 컴포넌트 또는 프로세스 기능 블록들 사이의 실제 연결은 본 발명이 프로그래밍된 방식에 따라 상이할 수 있다는 것을 또한 이해해야 한다. 여기에 개시된 교시를 고려하면, 당업자는 본 발명의 이들 및 이와 유사한 구현예 또는 구성을 생각해낼 수 있을 것이다.
예시적인 실시예들이 첨부 도면을 참조하여 설명되었지만, 본 발명은 이들 실시예에 한정되지 않고, 다양한 변화 및 변형이 본 발명의 범위 또는 사상으로부터 벗어나지 않고 당업자에 의해 행해질 수 있다는 점이 이해되어야 한다. 따라서, 이러한 모든 변경 및 변형은 청구항에 개시된 본 발명의 범위 내에 포함되는 것으로 본다.

Claims (30)

  1. 비디오 시퀀스 내의 화상의 원 버전으로부터 제1 패치 라이브러리를 작성하고 상기 비디오 시퀀스 내의 상기 화상의 재구성 버전으로부터 제2 패치 라이브러리를 작성하는 패치 라이브러리 작성기(145) - 상기 제1 패치 라이브러리 및 상기 제2 패치 라이브러리 각각은 상기 화상의 프루닝된 버전의 복원 동안 하나 이상의 프루닝된 블록들을 대체하기 위한 복수의 고해상도 대체 패치를 포함함 - ;
    상기 제1 패치 라이브러리로부터 상기 화상의 상기 프루닝된 버전을 생성하는 프루너(pruner)(105);
    상기 화상의 상기 프루닝된 버전을 복원하는 데 사용되는 메타데이터를 상기 제2 패치 라이브러리로부터 생성하는 메타데이터 생성기(135); 및
    상기 화상의 상기 프루닝된 버전 및 상기 메타데이터를 부호화하는 부호기(110, 135)
    를 포함하는 장치.
  2. 제1항에 있어서, 상기 화상의 상기 프루닝된 버전은 상기 화상의 상기 원 버전을 복수의 블록으로 분할하고, 상기 복수의 블록 중 적어도 하나의 블록을 대체 패치로 각각 대체함으로써 생성되며, 상기 대체 패치 내의 모든 픽셀은 동일한 컬러 값 또는 저해상도 중 하나를 갖는 장치.
  3. 제2항에 있어서, 상기 동일한 컬러 값은 상기 복수의 블록 중 상기 적어도 하나의 블록 내의 상기 픽셀들의 컬러 값들의 평균과 동일한 장치.
  4. 제1항에 있어서, 상기 제1 패치 라이브러리는, 상기 화상의 상기 원 버전을 복수의 오버랩 블록(overlapping blocks)으로 분할하여 트레이닝 데이터 세트를 형성하고, 상기 트레이닝 세트로부터의 상기 복수의 오버랩 블록 중 사전 지정된 임계치 위의 고주파수 성분을 갖는 임의의 오버랩 블록을 제거하고, 상기 복수의 오버랩 블록 중 나머지 오버랩 블록들을 복수의 클러스터로 클러스터화함으로써 작성되며, 상기 복수의 오버랩 블록 중 상기 나머지 오버랩 블록들 각각은 상기 복수의 고해상도 대체 패치 중 각각의 고해상도 대체 패치를 형성하는 장치.
  5. 제4항에 있어서, 상기 복수의 클러스터 중 각각의 클러스터의 각각의 중심은 상기 복수의 클러스터 중 상기 각각의 클러스터에 포함된 상기 복수의 오버랩 블록 중 상기 나머지 오버랩 블록들 중 임의의 오버랩 블록의 평균에 대응하는 장치.
  6. 제5항에 있어서, 상기 복수의 오버랩 블록 중 상기 나머지 오버랩 블록들은 상기 클러스터화 전에 다운사이징되어 복수의 다운사이징된 오버랩 블록을 획득하고, 상기 클러스터화는 상기 복수의 다운사이징된 오버랩 블록에 대해 수행되고, 상기 복수의 클러스터 중 상기 각각의 클러스터의 상기 각각의 중심은 상기 복수의 클러스터 중 상기 각각의 클러스터에 포함된 상기 복수의 다운사이징된 오버랩 블록 중 임의의 다운사이징된 오버랩 블록의 상기 평균에 대응하는 장치.
  7. 제1항에 있어서, 상기 복수의 고해상도 패치 중 각각의 고해상도 패치에 대한 평균 컬러를 포함하는 특징 벡터(feature vector)를 생성함으로써 상기 제2 패치 라이브러리에 포함된 상기 복수의 고해상도 패치마다 각각 시그니처(signature)가 작성되는 장치.
  8. 제7항에 있어서, 상기 복수의 고해상도 패치 중 상기 각각의 고해상도 패치에 대한 상기 특징 벡터에 포함된 상기 평균 컬러는 또한 상기 복수의 고해상도 패치 중 상기 각각의 고해상도 패치에 대한 주변 픽셀들에 관한 것인 장치.
  9. 제1항에 있어서, 상기 제1 패치 라이브러리는 복수의 패치 클러스터를 포함하고, 상기 화상의 상기 프루닝된 버전은, 상기 화상의 상기 원 버전을 복수의 비-오버랩 블록(non-overlapping blocks)으로 분할하고, 상기 복수의 비-오버랩 블록 각각으로부터 상기 복수의 패치 클러스터 각각의 각각의 중심들까지의 각각의 거리 메트릭에 기초하여 상기 복수의 비-오버랩 블록마다 상기 복수의 패치 클러스터 중에서 후보 패치 클러스터들을 검색하고, 하나 이상의 기준에 기초하여 상기 후보 패치 클러스터들로부터 최선 매칭 패치(best matching patch)를 식별하고, 상기 복수의 비-오버랩 블록들 중 대응하는 하나의 비-오버랩 블록과 상기 최선 매칭 패치 사이의 차이가 임계 차이 미만인 경우 상기 복수의 비-오버랩 블록들 중 상기 대응하는 하나의 비-오버랩 블록을 프루닝하여 프루닝된 블록을 획득함으로써 생성되는 장치.
  10. 제9항에 있어서, 상기 메타데이터는 상기 복수의 비-오버랩 블록 중 상기 대응하는 하나의 비-오버랩 블록과 상기 최선 패치 사이의 차이가 상기 임계 차이 미만인 경우 상기 최선 매칭 패치에 대한 패치 인덱스를 포함하며, 상기 메타데이터는 상기 프루닝된 블록에 대한 블록 식별자를 더 포함하는 장치.
  11. 비디오 시퀀스 내의 화상의 원 버전으로부터 제1 패치 라이브러리를 작성하고 상기 비디오 시퀀스 내의 상기 화상의 재구성 버전으로부터 제2 패치 라이브러리를 작성하는 단계(525) - 상기 제1 패치 라이브러리 및 상기 제2 패치 라이브러리 각각은 상기 화상의 프루닝된 버전의 복원 동안 하나 이상의 프루닝된 블록들을 대체하기 위한 복수의 고해상도 대체 패치를 포함함 - ;
    상기 제1 패치 라이브러리로부터 상기 화상의 상기 프루닝된 버전을 생성하는 단계(810);
    상기 화상의 상기 프루닝된 버전을 복원하는 데 사용하는 메타데이터를 상기 제2 패치 라이브러리로부터 생성하는 단계(820); 및
    상기 화상의 상기 프루닝된 버전 및 상기 메타데이터를 부호화하는 단계(815, 825)
    를 포함하는 방법.
  12. 제11항에 있어서, 상기 화상의 상기 프루닝된 버전은 상기 화상의 상기 원 버전을 복수의 블록으로 분할하고(410), 상기 복수의 블록 중 적어도 하나의 블록을 대체 패치로 각각 대체함으로써 생성되며, 상기 대체 패치 내의 모든 픽셀은 동일한 컬러 값 또는 저해상도 중 하나를 갖는 방법.
  13. 제12항에 있어서, 상기 동일한 컬러 값은 상기 복수의 블록 중 상기 적어도 하나의 블록 내의 상기 픽셀들의 컬러 값들의 평균과 동일한 방법.
  14. 제11항에 있어서, 상기 제1 패치 라이브러리는, 상기 화상의 상기 원 버전을 복수의 오버랩 블록으로 분할하여 트레이닝 데이터 세트를 형성하고, 상기 트레이닝 세트로부터의 상기 복수의 오버랩 블록 중 사전 지정된 임계치 위의 고주파수 성분을 갖는 임의의 오버랩 블록을 제거하고, 상기 복수의 오버랩 블록 중 나머지 오버랩 블록들을 복수의 클러스터로 클러스터화함으로써 작성되며, 상기 복수의 오버랩 블록 중 상기 나머지 오버랩 블록들 각각은 상기 복수의 고해상도 대체 패치 중 각각의 고해상도 대체 패치를 형성하는 방법.
  15. 제13항에 있어서, 상기 복수의 클러스터 중 각각의 클러스터의 각각의 중심은 상기 복수의 클러스터 중 상기 각각의 클러스터에 포함된 상기 복수의 오버랩 블록 중 상기 나머지 오버랩 블록들 중 임의의 오버랩 블록의 평균에 대응하는 방법.
  16. 제14항에 있어서, 상기 복수의 오버랩 블록 중 상기 나머지 오버랩 블록들은 상기 클러스터화 전에 다운사이징되어 복수의 다운사이징된 오버랩 블록을 획득하고, 상기 클러스터화는 상기 복수의 다운사이징된 오버랩 블록에 대해 수행되고, 상기 복수의 클러스터 중 상기 각각의 클러스터의 상기 각각의 중심은 상기 복수의 클러스터 중 상기 각각의 클러스터에 포함된 상기 복수의 다운사이징된 오버랩 블록 중 임의의 다운사이징된 오버랩 블록의 상기 평균에 대응하는 방법.
  17. 제11항에 있어서, 상기 복수의 고해상도 패치 중 각각의 고해상도 패치에 대한 평균 컬러를 포함하는 특징 벡터를 생성함으로써 상기 제2 패치 라이브러리에 포함된 상기 복수의 고해상도 패치마다 각각 시그니처가 작성되는 방법.
  18. 제17항에 있어서, 상기 복수의 고해상도 패치 중 상기 각각의 고해상도 패치에 대한 상기 특징 벡터에 포함된 상기 평균 컬러는 또한 상기 복수의 고해상도 패치 중 상기 각각의 고해상도 패치에 대한 주변 픽셀들에 관한 것인 방법.
  19. 제11항에 있어서, 상기 제1 패치 라이브러리는 복수의 패치 클러스터를 포함하고, 상기 화상의 상기 프루닝된 버전은, 상기 화상의 상기 원 버전을 복수의 비-오버랩 블록으로 분할하고, 상기 복수의 비-오버랩 블록 각각으로부터 상기 복수의 패치 클러스터 각각의 각각의 중심들까지의 각각의 거리 메트릭에 기초하여 상기 복수의 비-오버랩 블록마다 상기 복수의 패치 클러스터 중에서 후보 패치 클러스터들을 검색하고, 하나 이상의 기준에 기초하여 상기 후보 패치 클러스터들로부터 최선 매칭 패치를 식별하고, 상기 복수의 비-오버랩 블록들 중 대응하는 하나의 비-오버랩 블록과 상기 최선 매칭 패치 사이의 차이가 임계 차이 미만인 경우 상기 복수의 비-오버랩 블록들 중 상기 대응하는 하나의 비-오버랩 블록을 프루닝하여 프루닝된 블록을 획득함으로써 생성되는 방법.
  20. 제19항에 있어서, 상기 메타데이터는 상기 복수의 비-오버랩 블록 중 상기 대응하는 하나의 비-오버랩 블록과 상기 최선 패치 사이의 차이가 상기 임계 차이 미만인 경우 상기 최선 매칭 패치에 대한 패치 인덱스를 포함하며, 상기 메타데이터는 상기 프루닝된 블록에 대한 블록 식별자를 더 포함하는 방법.
  21. 비디오 시퀀스 내의 화상의 원 버전으로부터 제1 패치 라이브러리를 작성하고 상기 비디오 시퀀스 내의 상기 화상의 재구성 버전으로부터 제2 패치 라이브러리를 작성하는 수단(145) - 상기 제1 패치 라이브러리 및 상기 제2 패치 라이브러리 각각은 상기 화상의 프루닝된 버전의 복원 동안 하나 이상의 프루닝된 블록들을 대체하기 위한 복수의 고해상도 대체 패치를 포함함 - ;
    상기 제1 패치 라이브러리로부터 상기 화상의 상기 프루닝된 버전을 생성하는 수단(105);
    상기 화상의 상기 프루닝된 버전을 복원하는 데 사용되는 메타데이터를 상기 제2 패치 라이브러리로부터 생성하는 수단(135); 및
    상기 화상의 상기 프루닝된 버전 및 상기 메타데이터를 부호화하는 수단(110, 135)
    을 포함하는 장치.
  22. 제21항에 있어서, 상기 화상의 상기 프루닝된 버전은 상기 화상의 상기 원 버전을 복수의 블록으로 분할하고, 상기 복수의 블록 중 적어도 하나의 블록을 대체 패치로 각각 대체함으로써 생성되며, 상기 대체 패치 내의 모든 픽셀은 동일한 컬러 값 또는 저해상도 중 하나를 갖는 장치.
  23. 제22항에 있어서, 상기 동일한 컬러 값은 상기 복수의 블록 중 상기 적어도 하나의 블록 내의 상기 픽셀들의 컬러 값들의 평균과 동일한 장치.
  24. 제21항에 있어서, 상기 제1 패치 라이브러리는, 상기 화상의 상기 원 버전을 복수의 오버랩 블록으로 분할하여 트레이닝 데이터 세트를 형성하고, 상기 트레이닝 세트로부터의 상기 복수의 오버랩 블록 중 사전 지정된 임계치 위의 고주파수 성분을 갖는 임의의 오버랩 블록을 제거하고, 상기 복수의 오버랩 블록 중 나머지 오버랩 블록들을 복수의 클러스터로 클러스터화함으로써 작성되며, 상기 복수의 오버랩 블록 중 상기 나머지 오버랩 블록들 각각은 상기 복수의 고해상도 대체 패치 중 각각의 고해상도 대체 패치를 형성하는 장치.
  25. 제24항에 있어서, 상기 복수의 클러스터 중 각각의 클러스터의 각각의 중심은 상기 복수의 클러스터 중 상기 각각의 클러스터에 포함된 상기 복수의 오버랩 블록 중 상기 나머지 오버랩 블록들 중 임의의 오버랩 블록의 평균에 대응하는 장치.
  26. 제25항에 있어서, 상기 복수의 오버랩 블록 중 상기 나머지 오버랩 블록들은 상기 클러스터화 전에 다운사이징되어 복수의 다운사이징된 오버랩 블록을 획득하고, 상기 클러스터화는 상기 복수의 다운사이징된 오버랩 블록에 대해 수행되고, 상기 복수의 클러스터 중 상기 각각의 클러스터의 상기 각각의 중심은 상기 복수의 클러스터 중 상기 각각의 클러스터에 포함된 상기 복수의 다운사이징된 오버랩 블록 중 임의의 다운사이징된 오버랩 블록의 상기 평균에 대응하는 장치.
  27. 제21항에 있어서, 상기 복수의 고해상도 패치 중 각각의 고해상도 패치에 대한 평균 컬러를 포함하는 특징 벡터를 생성함으로써 상기 제2 패치 라이브러리에 포함된 상기 복수의 고해상도 패치마다 각각 시그니처가 작성되는 장치.
  28. 제27항에 있어서, 상기 복수의 고해상도 패치 중 상기 각각의 고해상도 패치에 대한 상기 특징 벡터에 포함된 상기 평균 컬러는 또한 상기 복수의 고해상도 패치 중 상기 각각의 고해상도 패치에 대한 주변 픽셀들에 관한 것인 장치.
  29. 제21항에 있어서, 상기 제1 패치 라이브러리는 복수의 패치 클러스터를 포함하고, 상기 화상의 상기 프루닝된 버전은, 상기 화상의 상기 원 버전을 복수의 비-오버랩 블록으로 분할하고, 상기 복수의 비-오버랩 블록 각각으로부터 상기 복수의 패치 클러스터 각각의 각각의 중심들까지의 각각의 거리 메트릭에 기초하여 상기 복수의 비-오버랩 블록마다 상기 복수의 패치 클러스터 중에서 후보 패치 클러스터들을 검색하고, 하나 이상의 기준에 기초하여 상기 후보 패치 클러스터들로부터 최선 매칭 패치를 식별하고, 상기 복수의 비-오버랩 블록들 중 대응하는 하나의 비-오버랩 블록과 상기 최선 매칭 패치 사이의 차이가 임계 차이 미만인 경우 상기 복수의 비-오버랩 블록들 중 상기 대응하는 하나의 비-오버랩 블록을 프루닝하여 프루닝된 블록을 획득함으로써 생성되는 장치.
  30. 제29항에 있어서, 상기 메타데이터는 상기 복수의 비-오버랩 블록 중 상기 대응하는 하나의 비-오버랩 블록과 상기 최선 패치 사이의 차이가 상기 임계 차이 미만인 경우 상기 최선 매칭 패치에 대한 패치 인덱스를 포함하며, 상기 메타데이터는 상기 프루닝된 블록에 대한 블록 식별자를 더 포함하는 장치.
KR1020137009080A 2010-09-10 2011-09-09 예제 기반 데이터 프루닝을 이용한 비디오 부호화 KR101855542B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US40310810P 2010-09-10 2010-09-10
US61/403,108 2010-09-10
PCT/US2011/050917 WO2012033964A1 (en) 2010-09-10 2011-09-09 Video encoding using example - based data pruning

Publications (2)

Publication Number Publication Date
KR20130105855A true KR20130105855A (ko) 2013-09-26
KR101855542B1 KR101855542B1 (ko) 2018-06-08

Family

ID=44652032

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020137009100A KR101838320B1 (ko) 2010-09-10 2011-09-09 예시-기반 데이터 프루닝을 이용한 비디오 디코딩
KR1020137009080A KR101855542B1 (ko) 2010-09-10 2011-09-09 예제 기반 데이터 프루닝을 이용한 비디오 부호화

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020137009100A KR101838320B1 (ko) 2010-09-10 2011-09-09 예시-기반 데이터 프루닝을 이용한 비디오 디코딩

Country Status (6)

Country Link
US (2) US20130163679A1 (ko)
EP (2) EP2614643A1 (ko)
JP (2) JP5905889B2 (ko)
KR (2) KR101838320B1 (ko)
CN (2) CN103202018B (ko)
WO (2) WO2012033965A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011090790A1 (en) 2010-01-22 2011-07-28 Thomson Licensing Methods and apparatus for sampling -based super resolution vido encoding and decoding
CN102726044B (zh) * 2010-01-22 2016-08-10 汤姆逊许可证公司 使用基于示例的超分辨率的用于视频压缩的数据剪切
WO2012033970A1 (en) 2010-09-10 2012-03-15 Thomson Licensing Encoding of a picture in a video sequence by example - based data pruning using intra- frame patch similarity
US9544598B2 (en) 2010-09-10 2017-01-10 Thomson Licensing Methods and apparatus for pruning decision optimization in example-based data pruning compression
EP3090538A1 (en) * 2014-01-03 2016-11-09 Thomson Licensing Method, apparatus, and computer program product for optimising the upscaling to ultrahigh definition resolution when rendering video content
US20170178309A1 (en) * 2014-05-15 2017-06-22 Wrnch Inc. Methods and systems for the estimation of different types of noise in image and video signals
JP6274067B2 (ja) * 2014-10-03 2018-02-07 ソニー株式会社 情報処理装置および情報処理方法
US11037330B2 (en) * 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
US20220337830A1 (en) * 2019-06-21 2022-10-20 Nippon Telegraph And Telephone Corporation Encoding apparatus, encoding method, and program
US11432009B2 (en) * 2019-07-02 2022-08-30 Intel Corporation Techniques for encoding and decoding immersive video
US11477429B2 (en) 2019-07-05 2022-10-18 Electronics And Telecommunications Research Institute Method for processing immersive video and method for producing immersive video
US11616938B2 (en) 2019-09-26 2023-03-28 Electronics And Telecommunications Research Institute Method for processing immersive video and method for producing immersive video
US10769150B1 (en) * 2019-12-26 2020-09-08 Snowflake Inc. Pruning indexes to enhance database query processing
CN111325794B (zh) * 2020-02-23 2023-05-26 哈尔滨工业大学 一种基于深度卷积自编码器的视觉同时定位与地图构建方法
CN116134820A (zh) * 2020-08-04 2023-05-16 现代自动车株式会社 基于补丁本的视频数据编码和解码的方法和装置
US11922158B2 (en) * 2021-06-25 2024-03-05 Intigua, Inc. Unified local patch repository

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004266794A (ja) * 2002-09-04 2004-09-24 Microsoft Corp マルチ・リゾルーション・ビデオ符号化および復号化

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69333288T2 (de) * 1992-09-01 2004-08-26 Apple Computer, Inc., Cupertino Verbesserte vektorquantisierung
EP0729688A1 (en) * 1993-11-15 1996-09-04 National Semiconductor Corporation Quadtree-structured walsh transform coding
US5446806A (en) * 1993-11-15 1995-08-29 National Semiconductor Corporation Quadtree-structured Walsh transform video/image coding
JP2000511744A (ja) * 1997-04-02 2000-09-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 画像処理システム及び方法
US6278446B1 (en) * 1998-02-23 2001-08-21 Siemens Corporate Research, Inc. System for interactive organization and browsing of video
US6795578B1 (en) * 1999-09-29 2004-09-21 Canon Kabushiki Kaisha Image processing apparatus and method, and storage medium
US7623706B1 (en) * 2000-09-29 2009-11-24 Hewlett-Packard Development Company, L.P. Reduction of chromatic bleeding artifacts in images containing subsampled chrominance values
US6952700B2 (en) * 2001-03-22 2005-10-04 International Business Machines Corporation Feature weighting in κ-means clustering
US6766067B2 (en) * 2001-04-20 2004-07-20 Mitsubishi Electric Research Laboratories, Inc. One-pass super-resolution images
US7397858B2 (en) * 2002-05-29 2008-07-08 Innovation Management Sciences, Llc Maintaining a plurality of codebooks related to a video signal
DE10310023A1 (de) * 2003-02-28 2004-09-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren und Anordnung zur Videocodierung, wobei die Videocodierung Texturanalyse und Textursynthese umfasst, sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium
US7218796B2 (en) * 2003-04-30 2007-05-15 Microsoft Corporation Patch-based video super-resolution
US7327904B2 (en) * 2004-12-15 2008-02-05 Arcsoft, Inc. Pattern classification and filter design for increasing image resolution
WO2006110890A2 (en) * 2005-04-08 2006-10-19 Sarnoff Corporation Macro-block based mixed resolution video compression system
US7715658B2 (en) * 2005-08-03 2010-05-11 Samsung Electronics Co., Ltd. Apparatus and method for super-resolution enhancement processing
KR101381600B1 (ko) * 2006-12-20 2014-04-04 삼성전자주식회사 텍스처 합성을 이용한 영상의 부호화, 복호화 방법 및 장치
CN101389021B (zh) * 2007-09-14 2010-12-22 华为技术有限公司 视频编解码方法及装置
US8189933B2 (en) * 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
WO2009157904A1 (en) * 2008-06-27 2009-12-30 Thomson Licensing Methods and apparatus for texture compression using patch-based sampling texture synthesis
KR20110059766A (ko) * 2008-09-18 2011-06-03 톰슨 라이센싱 비디오 영상 프루닝 방법 및 장치
US8233734B2 (en) * 2008-09-22 2012-07-31 Microsoft Corporation Image upsampling with training images
FR2941581A1 (fr) * 2009-01-28 2010-07-30 France Telecom Codage et decodage d'une sequence d'images video par zones d'images
CN101556690B (zh) * 2009-05-14 2015-01-07 复旦大学 基于词典学习和稀疏表示的超分辨率算法
US20110047163A1 (en) * 2009-08-24 2011-02-24 Google Inc. Relevance-Based Image Selection
KR20110065997A (ko) * 2009-12-10 2011-06-16 삼성전자주식회사 영상처리장치 및 영상처리방법
CN102726044B (zh) * 2010-01-22 2016-08-10 汤姆逊许可证公司 使用基于示例的超分辨率的用于视频压缩的数据剪切
US20110210960A1 (en) * 2010-02-26 2011-09-01 Google Inc. Hierarchical blurring of texture maps
US8503792B2 (en) * 2010-12-17 2013-08-06 Sony Corporation Patch description and modeling for image subscene recognition
US8565482B2 (en) * 2011-02-28 2013-10-22 Seiko Epson Corporation Local difference pattern based local background modeling for object detection
EP2615832A1 (en) * 2012-01-13 2013-07-17 Thomson Licensing Method and device for encoding a block of an image and corresponding reconstructing method and device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004266794A (ja) * 2002-09-04 2004-09-24 Microsoft Corp マルチ・リゾルーション・ビデオ符号化および復号化

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Cheng H et al.; "Reduced Resolution Residual Coding for H.264-based Compression System", ISCAS 2006, 21 May 2006, pages 3486-9. *
WU F et al: "Image Compression by Visual Pattern Vector Quantization(VPVQ)", Proceedings of The 2008 Data Compression Conference (DCC 2008), 25 March 2008, pages 123-131. *

Also Published As

Publication number Publication date
EP2614643A1 (en) 2013-07-17
CN103202017B (zh) 2017-02-22
JP5905890B2 (ja) 2016-04-20
KR101838320B1 (ko) 2018-03-13
JP5905889B2 (ja) 2016-04-20
CN103202018A (zh) 2013-07-10
WO2012033964A1 (en) 2012-03-15
WO2012033965A1 (en) 2012-03-15
EP2614645A1 (en) 2013-07-17
JP2013543298A (ja) 2013-11-28
US20130163679A1 (en) 2013-06-27
JP2013543299A (ja) 2013-11-28
CN103202018B (zh) 2016-05-11
US20130163661A1 (en) 2013-06-27
KR20130139262A (ko) 2013-12-20
KR101855542B1 (ko) 2018-06-08
CN103202017A (zh) 2013-07-10

Similar Documents

Publication Publication Date Title
KR101855542B1 (ko) 예제 기반 데이터 프루닝을 이용한 비디오 부호화
US11438601B2 (en) Method for encoding/decoding image and device using same
US11095877B2 (en) Local hash-based motion estimation for screen remoting scenarios
US9338477B2 (en) Recovering a pruned version of a picture in a video sequence for example-based data pruning using intra-frame patch similarity
JP7085009B2 (ja) マルチ符号ビット隠蔽及び残差符号予測を和合する方法及び装置
JP6071001B2 (ja) ブロックベースの混合解像度のデータ刈り込みを使用したビデオ復号化
JP6042813B2 (ja) ビデオ圧縮のための動き補償事例ベース超解像を用いてビデオ信号を符号化する方法と装置
KR102011491B1 (ko) 템플릿 매칭을 이용한 영상 부호화 방법 및 장치, 그리고 복호화 방법 및 장치
CN111837389A (zh) 适用于多符号位隐藏的块检测方法及装置
US20220368925A1 (en) Method for encoding/decoding image and device using same
EP2168382A1 (en) Method for processing images and the corresponding electronic device
US20120263225A1 (en) Apparatus and method for encoding moving picture
CN115443660A (zh) 用于解码与符号数据隐藏相关的成像的方法和设备
CN115349228A (zh) 视频记录的符号数据隐藏
US20200099950A1 (en) Processing devices and control methods therefor
KR20240131326A (ko) Cclm(cross-component linear model) 인트라 예측에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체
KR20230169986A (ko) 복수의 dimd 모드 기반 인트라 예측 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right