KR101838320B1 - 예시-기반 데이터 프루닝을 이용한 비디오 디코딩 - Google Patents

예시-기반 데이터 프루닝을 이용한 비디오 디코딩 Download PDF

Info

Publication number
KR101838320B1
KR101838320B1 KR1020137009100A KR20137009100A KR101838320B1 KR 101838320 B1 KR101838320 B1 KR 101838320B1 KR 1020137009100 A KR1020137009100 A KR 1020137009100A KR 20137009100 A KR20137009100 A KR 20137009100A KR 101838320 B1 KR101838320 B1 KR 101838320B1
Authority
KR
South Korea
Prior art keywords
pruned
blocks
patch
high resolution
patches
Prior art date
Application number
KR1020137009100A
Other languages
English (en)
Other versions
KR20130139262A (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 KR20130139262A publication Critical patent/KR20130139262A/ko
Application granted granted Critical
Publication of KR101838320B1 publication Critical patent/KR101838320B1/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/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/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/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

개선된 비디오 압축 효율을 위하여 예시-기반 데이터 프루닝을 이용하여 비디오 신호를 디코딩하기 위한 방법 및 장치가 제공된다. 비디오 시퀀스에서 화상의 프루닝된 버전을 복구하기 위한 장치는 화상의 프루닝된 버전을 다수의 비중첩 블록으로 분할하기 위한 디바이더(115), 화상의 프루닝된 버전을 복구하는데 이용하기 위하여 메타데이터를 디코딩하기 위한 메타데이터 디코더(125), 및 화상의 재구성 버전으로부터 패치 라이브러리를 생성하기 위한 패치 라이브러리 생성기(130)를 포함한다. 패치 라이브러리는 화상의 프루닝된 버전의 복구 동안 하나 이상의 프루닝된 블록을 대체하기 위한 다수의 고해상도 대체 패치를 포함한다. 장치는 다수의 비중첩 블록 중에서 하나 이상의 프루닝된 블록의 각각의 것에 대한 대응 패치를 찾고 하나 이상의 프루닝된 블록의 각각의 것을 상기 대응 패치로 대체하도록 메타데이터를 이용하여 검색 프로세스를 수행하기 위한 검색 및 대체 디바이스(120)를 추가로 포함한다.

Description

예시-기반 데이터 프루닝을 이용한 비디오 디코딩{VIDEO DECODING USING EXAMPLE - BASED DATA PRUNING}
본 출원은, 미국 가특허 출원 제61/403108호(출원일: 2010년 9월 10일, 발명의 명칭: "EXAMPLE-BASED DATA PRUNING FOR IMPROVING VIDEO COMPRESSION EFFICIENCY", Technicolor 문서 번호 PU100193)의 이익을 주장하며, 이 기초출원은 그 전문이 본 명세서에 병합된다.
분 출원은 동시계류 중이고 공동으로 소유된 다음의 특허 출원에 관한 것이다:
(1) 국제특허출원 PCT/USl1/000107(Technicolor 문서 번호 PU100004)(출원일: 2011년 1월 20일, 발명의 명칭:"A SAMPLING-BASED SUPER-RESOLUTION APPROACH FOR EFFICENT VIDEO COMPRESSION");
(2) 국제특허출원 PCT/USl1/000117(Technicolor 문서 번호 PU100014)(출원일: 2011년 1월 21일, 발명의 명칭: "DATA PRUNING FOR VIDEO COMPRESSION USING EXAMPLE-BASED SUPER-RESOLUTION");
(3) 국제특허출원 일련 번호 XXXX(Technicolor 문서 번호 PU100190)(출원일: 2011년 9월 XX일, 발명의 명칭: "METHODS AND APPARATUS FOR ENCODING VIDEO SIGNALS USING MOTION COMPENSATED EXAMPLE-BASED SUPER-RESOLUTION FOR VIDEO COMPRESSION");
(4) 국제특허출원 일련 번호 XXXX(Technicolor 문서 번호 PU100266)(출원일: 2011년 9월 XX일, 발명의 명칭: "METHODS AND APPARATUS FOR DECODING VIDEO SIGNALS USING MOTION COMPENSATED EXAMPLE-BASED SUPER-RESOLUTION FOR VIDEO COMPRESSION");
(5) 국제특허출원 일련 번호 XXXX(Technicolor 문서 번호 PU100193)(출원일: 2011년 9월 XX일, 발명의 명칭: "METHODS AND APPARATUS FOR ENCODING VIDEO SIGNALS USING EXAMPLE-BASED DATA PRUNING FOR IMPROVED VIDEO COMPRESSION EFFICIENCY");
(6) 국제특허출원 일련 번호 XXXX(Technicolor 문서 번호 PU 100194)(출원일: 2011년 9월 XX일, 발명의 명칭: "METHODS AND APPARATUS FOR ENCODING VIDEO SIGNALS FOR BLOCK-BASED MIXED-RESOLUTION DATA PRUNING");
(7) 국제특허출원 일련 번호 XXXX(Technicolor 문서 번호 PU100268)(출원일: 2011년 9월 XX, 발명의 명칭: "METHODS AND APPARATUS FOR DECODING VIDEO SIGNALS FOR BLOCK-BASED MIXED-RESOLUTION DATA PRUNING");
(8) 국제특허출원 일련 번호 XXXX(Technicolor 문서 번호 PU100195)(출원일: 2011년 9월 XX일, 발명의 명칭: "METHODS AND APPARATUS FOR EFFICIENT REFERENCE DATA ENCODING FOR VIDEO COMPRESSION BY IMAGE CONTENT BASED SEARCH AND RANKING");
(9) 국제특허출원 일련 번호 XXXX(Technicolor 문서 번호 PU110106)(출원일: 2011년 9월 XX일, 발명의 명칭: "METHOD AND APPARATUS FOR EFFICIENT REFERENCE DATA DECODING FOR VIDEO COMPRESSION BY IMAGE CONTENT BASED SEARCH AND RANKING");
(10) 국제특허출원 일련 번호 XXXX(Technicolor 문서 번호 100196)(출원일: 2011년 9월 XX일, 발명의 명칭: "METHOD AND APPARATUS FOR ENCODING VIDEO SIGNALS FOR EXAMPLE-BASED DATA PRUNING USING INTRA-FRAME PATCH SIMILARITY");
(11) 국제특허출원 일련 번호 XXXX(Technicolor 문서 번호 100269)(출원일: 2011년 9월 XX, 발명의 명칭: "METHOD AND APPARATUS FOR DECODING VIDEO SIGNALS WrfH EXAMPLE-BASED DATA PRUNING USING INTRA-FRAME PATCH SIMILARITY"); 및
(12) 국제특허출원 일련 번호 XXXX(Technicolor 문서 번호 10197)(출원일: 2011년 9월 XX, 발명의 명칭: "PRUNING DECISION OPTIMIZATION IN EXAMPLE-BASED DATA PRUNING COMPRESSION").
본 원리는 일반적으로 비디오 인코딩 및 디코딩에 관한 것이고, 특히 비디오 압축 효율을 개선하기 위한 예시-기반 데이터 프루닝(data pruning)을 위한 방법 및 장치에 관한 것이다.
데이터 프루닝은 비디오 데이터가 인코딩되기 전에 입력 비디오 데이터의 일부를 제거함으로써 보다 양호한 비디오 코딩 효율을 달성하는 비디오 전처리 기술(video preprocessing technology)이다. 제거된 비디오 데이터는 디코딩된 데이터로부터 제거된 비디오 데이터를 추론함으로써 디코더 측에서 복구된다. 압축 효율을 증가시키도록 데이터 프루닝의 이용에 관한 일부 종래의 활동이 있었다. 예를 들어, 제1접근(IEEE Transactions on Circuits and Systems for Video Technology, Vol. 13, No. 2, February 2003, pp. 163-175(저자: A. Dumitras 및 B. G. Haskell, 제목: "A Texture Replacement Method at the Encoder for Bit Rate Reduction of Compressed Video,")에 기술됨) 및 제2접근(IEEE Transactions on Circuits and Systems for Video Technology, vol. 14, issue 6, June 2004, pp. 825-840(저자: A. Dumitras 및 B. G. Haskell, 제목: "An encoder-decoder texture replacement method with application to content-based movie coding,")에 기술됨)에서, 텍스처 대체 기반 방법(texture replacement based method)은 인코더 측에 있는 텍스처 영역을 제거하고, 디코더 측에 있는 텍스처 영역을 재합성하도록 이용된다. 압축 효율은 오직 규칙적인 변환 계수(regular transformation coefficients)보다 작은 양의 데이터를 가지는 합성 파라미터만이 디코더로 보내지기 때문에 얻어진다.
제3접근(IEEE International Conference on Multimedia and Expo (ICME), 2007(저자: C. Zhu, X. Sun, F. Wu, 및 H. Li, 제목: "Video Coding with Spatio-Temporal Texture Synthesis")에 기술됨) 및 제4접근(IEEE International Conference on Multimedia and Expo (ICME), 2008, 저자: C. Zhu, X. Sun, F. Wu, 및 H. Li, 제목: "Video coding with spatio-temporal texture synthesis and edge-based inpainting,")에 기술됨)에서, 시공간(spatio-temporal) 텍스처 합성과 에지-기반 인페인팅(edge-based inpainting)은 인코더 측에 있는 영역들 중 일부를 제거하도록 이용되고, 제거된 콘텐츠는 영역 마스크(region mask)와 같은 메타데이터의 도움으로 디코더 측에서 복구된다. 그러나, 제3 및 제4접근은 인코더/디코더가 영역 마스크를 이용하여 영역들 중 일부를 위한 인코딩/디코딩을 선택적으로 수행할 수 있도록 인코더 및 디코더를 변형할 필요가 있다. 그러므로, 인코더와 디코더가 제3 및 제4접근을 수행할 수 있기 위하여 변형될 필요가 있기 때문에, 이것은 정확히 배제된 접근(out-of-loop approach)이 아니다. 제5접근(IEEE Conference on Acoustics, Speech and Signal Processing, Taiwan, R.O.C., 2009(저자: Dung T. Vo, Joel Sole, Peng Yin, Cristina Gomila 및 Truong Q. Nguyen, 제목: "Data Pruning-Based Compression using High Order Edge-Directed Interpolation")에 기술됨)에서, 라인 제거 기반 방법은 최소제곱법 최소화 프레임워크를 가진 비디오에서 수평 또는 수직 라인들의 일부를 선택적으로 제거하는 것에 의해 보다 작은 사이즈로 비디오를 리스케일링하도록(rescale) 제안된다. 제5접근은 배제된 접근이며, 인코더/디코더의 변형을 요구하지 않는다. 그러나, 특정의 수평 및 수직 라인들을 완전히 제거하는 것은 일부 비디오들에 대한 정보 또는 세부사항(detail)의 손실을 초래할 수 있다.
또한, 비디오 압축을 위한 데이터 프루닝에서 일부 예비적인 연구들이 수행되었다. 예를 들어, 제6접근(동시 계류중이고 공동 소유된, 2010년 1월 22일에 출원되고(미국 가특허 출원 Serial Number 61/297320, Technicolor docket number PU100004), 2010년 2월 8일에 ICIP에 제출된 바와 같은, Sitaram Bhagavathy, Dong-Qing Zhang 및 Mithun Jacob, "A Data Pruning Approach for Video Compression Using Motion-Guided Down-sampling and Super-resolution," 에 기술됨)에서, 샘플링 기반 초해상도를 이용한 데이터 프루닝 계획이 제시된다. 풀 해상도 프레임은 몇개의 보다 작은 크기의 프레임들로 샘플링되고, 그러므로 오리지널 비디오의 공간 크기를 감소시킨다. 디코더 측에서, 고해상도 프레임은 인코더 측으로부터 수신된 메타데이터의 도움으로 다운샘플링된(downsampled) 프레임들로부터 재합성된다. 제7접근(동시 계류중이고 공동 소유된 미국 가특허 출원 Serial Number 61/336516(Technicolor docket number PU 100014)(출원일: 2010년 1월 22일, 발명자: Dong-Qing Zhang, Sitaram Bhagavathy, 및 Joan Llach, 발명의 명칭: "Data pruning for video compression using example-based super-resolution")에서, 데이터 프루닝을 위한 예시-기반 초해상도 기반 방법이 제시된다. 대표적인 패치 라이브러리는 오리지널 비디오로부터 트레이닝된다. 추후에, 비디오는 보다 작은 크기로 다운사이징된다. 다운사이징된 비디오와 패치 라이브러리는 디코더 측으로 보내진다. 디코더 측에서 복구 프로세스는 패치 라이브러리를 이용하는 예시-기반 초해상도에 의해 다운사이징된 비디오를 초분해한다(super-resolve). 그러나, 패치 라이브러리와 다운사이징된 프레임들 사이에 상당한 중복이 있음으로써, 상당한 레벨의 압축 이득이 제7접근으로 용이하게 얻어질 수 없다는 것이 발견되었다.
본 출원은 비디오 압축 효율을 개선하는 예시-기반 데이터 프루닝을 위한 방법 및 장치를 개시한다.
본 원리의 한 양태에 따르면, 비디오 시퀀스에서 화상을 인코딩하기 위한 장치가 제공된다. 장치는, 화상의 오리지널 버전으로부터 제1패치 라이브러리를 생성하고 화상의 재구성 버전으로부터 제2패치 라이브러리를 생성하기 위한 패치 라이브러리 생성기를 포함한다. 각각의 제1패치 라이브러리와 제2패치 라이브러리는 화상의 프루닝된 버전의 복구 동안 하나 이상의 프루닝된 블록을 대체하기 위한 다수의 고해상도 대체 패치를 포함한다. 장치는 제1패치 라이브러리로부터 화상의 프루닝된 버전을 발생시키기 위한 프루너(pruner), 및 제2패치 라이브러리로부터 메타데이터를 발생시키기 위한 메타데이터 발생기를 또한 포함한다. 메타데이터는 화상의 프루닝된 버전을 복구하기 위한 것이다. 장치는 화상의 프루닝된 버전 및 메타데이터를 인코딩하기 위한 인코더를 추가로 포함한다.
본 원리의 또 다른 양태에 따르면, 비디오 시퀀스에서 화상을 인코딩하기 위한 방법이 제공된다. 방법은 화상의 오리지널 버전으로부터 제1패치 라이브러리 및 화상의 재구성 버전으로부터 제2패치 라이브러리를 생성하는 단계를 포함한다. 각각의 제1패치 라이브러리와 제2패치 라이브러리는 화상의 복구 동안 하나 이상의 프루닝된 블록을 대체하기 위한 다수의 고해상도 대체 패치를 포함한다. 방법은 제1패치 라이브러리로부터 화상의 프루닝된 버전을 발생시키는 단계, 및 제2패치 라이브러리로부터 메타데이터를 발생시키는 단계를 또한 포함한다. 메타데이터는 화상의 프루닝된 버전을 복구하기 위한 것이다. 방법은 화상의 프루닝된 버전 및 메타데이터를 인코딩하는 단계를 추가로 포함한다.
본 원리의 여전히 또 다른 양태에 따르면, 비디오 시퀀스에서 화상의 프루닝된 버전을 복구하기 위한 장치가 제공된다. 장치는 화상의 프루닝된 버전을 다수의 비중첩(non-overlapping) 블록으로 분할하기 위한 디바이더, 및 화상의 프루닝된 버전을 복구하는데 이용하기 위한 메타데이터를 디코딩하기 위한 메타데이터 디코더를 포함한다. 장치는 화상의 재구성 버전으로부터 패치 라이브러리를 생성하기 위한 패치 라이브러리 생성기를 또한 포함한다. 패치 라이브러리는 화상의 프루닝된 버전의 복구 동안 하나 이상의 프루닝된 블록을 대체하기 위한 다수의 고해상도 대체 패치를 포함한다. 장치는 다수의 비중첩 블록 중에서 하나 이상의 프루닝된 블록의 각각의 것에 대한 대응 패치를 찾고(find) 하나 이상의 프루닝된 블록의 각각의 것을 대응 패치로 대체하도록 메타데이터를 이용하여 검색 프로세스를 수행하기 위한 검색 및 대체 디바이스를 추가로 포함한다.
본 원리의 추가의 양태에 따르면, 비디오 시퀀스에서 화상의 프루닝된 버전을 복구하기 위한 방법이 제공된다. 방법은 화상의 프루닝된 버전을 다수의 비중첩 블록으로 분할하는 단계, 및 화상의 프루닝된 버전을 복구하는데 이용하기 위한 메타데이터를 디코딩하는 단계를 포함한다. 방법은 화상의 재구성 버전으로부터 패치 라이브러리를 생성하는 단계를 또한 포함한다. 패치 라이브러리는 화상의 프루닝된 버전의 복구 동안 하나 이상의 프루닝된 블록을 대체하기 위한 다수의 고해상도 대체 패치를 포함한다. 방법은, 다수의 비중첩 블록 중에서 하나 이상의 프루닝된 블록의 각각의 것에 대한 대응 패치를 찾고 하나 이상의 프루닝된 블록의 각각의 것을 대응 패치로 대체하도록, 메타데이터를 이용하는 검색 프로세스를 수행하는 단계를 추가로 포함한다.
본 원리의 여전히 추가의 양태에 따르면, 비디오 시퀀스에서 화상을 인코딩하기 위한 장치가 제공된다. 장치는 화상의 오리지널 버전으로부터 제1패치 라이브러리 및 화상의 재구성 버전으로부터 제2패치 라이브러리를 생성하기 위한 수단을 포함한다. 각각의 제1패치 라이브러리 및 제2패치 라이브러리는 화상의 프루닝된 버전의 복구 동안 하나 이상의 프루닝된 블록을 대체하기 위한 다수의 고해상도 대체 패치를 포함한다. 장치는 제1패치 라이브러리로부터 화상의 프루닝된 버전을 발생시키기 위한 수단, 및 화상의 프루닝된 버전을 복구하기 위한 메타데이터를 제2패치 라이브러리로부터 발생시키기 위한 수단을 또한 포함한다. 장치는 화상의 프루닝된 버전 및 메타데이터를 인코딩하기 위한 수단을 추가로 포함한다.
본 원리의 추가의 양태에 따르면, 비디오 시퀀스에서 화상의 프루닝된 버전을 복구하기 위한 장치가 제공된다. 장치는 화상의 프루닝된 버전을 다수의 비중첩 블록으로 분할하기 위한 수단, 및 화상의 프루닝된 버전을 복구하는데 이용하기 위한 메타데이터를 디코딩하기 위한 수단을 포함한다. 장치는 화상의 재구성 버전으로부터 패치 라이브러리를 생성하기 위한 수단을 또한 포함한다. 패치 라이브러리는 화상의 프루닝된 버전의 복구 동안 하나 이상의 프루닝된 블록을 대체하기 위한 다수의 고해상도 대체 패치를 포함한다. 장치는 다수의 비중첩 블록 중에서 하나 이상의 프루닝된 블록의 각각의 것에 대한 대응 패치를 찾고 하나 이상의 프루닝된 블록의 각각의 것을 대응 패치로 대체하도록 메타데이터를 이용하는 검색 프로세스를 수행하는 수단을 추가로 포함한다.
본 원리의 이들 및 다른 양상, 특징 및 장점은 첨부 도면과 연계하여 읽혀질 예시적인 실시예의 다음의 상세한 설명으로부터 명백해질 것이다.
본 원리는 다음의 예시적인 도면에 따라서 더욱 잘 이해될 수 있다.
도 1은 본 원리의 실시예에 따라서, 패치 유사성(patch similarity)을 이용하는 예시적인 예시-기반 데이터 프루닝 시스템을 도시한 블록도;
도 2는 본 원리의 실시예에 따라서, 본 원리가 적용될 수 있는 예시적인 비디오 인코더를 도시한 블록도;
도 3은 본 원리의 실시예에 따라서, 본 원리가 적용될 수 있는 예시적인 비디오 디코더를 도시한 블록도;
도 4는 본 원리의 실시예에 따라서, 예시-기반 프루닝 시스템에서 인코더 측 프로세싱을 수행하기 위한 예시적인 제1부분을 도시한 블록도;
도 5는 본 원리의 실시예에 따라서, 클러스터링(clustering) 및 패치 라이브러리 생성을 위한 예시적인 방법을 도시한 흐름도;
도 6은 본 원리의 실시예에 따라서, 예시적인 패치 라이브러리 및 대응 클러스터를 도시한 도면;
도 7은 본 원리의 실시예에 따라서, 예시적인 시그너처 벡터(signature vector)를 도시한 도면;
도 8은 본 원리의 실시예에 따라서, 패치 유사성을 이용하는 예시-기반 프루닝 시스템에서 인코더 측 프로세싱을 수행하기 위한 예시적인 제2부분을 도시한 블록도;
도 9는 본 원리의 실시예에 따라서, 비디오 프레임 프루닝을 위한 예시적인 방법을 도시한 흐름도;
도 10은 본 원리의 실시예에 따라서, 패치 검색 프로세스를 도시한 도면;
도 11은 본 원리의 실시예에 따라서, 예시적인 혼합 해상도 프레임을 도시한 이미지;
도 12는 본 원리의 실시예에 따라서, 메타데이터를 인코딩하기 위한 예시적인 방법을 도시한 블록도;
도 13은 본 원리의 실시예에 따라서, 프루닝된 블록 ID들을 인코딩하기 위한 예시적인 방법을 도시한 흐름도;
도 14는 본 원리의 실시예에 따라서, 패치 인덱스(patch index)를 인코딩하기 위한 예시적인 방법을 도시한 흐름도;
도 15는 본 원리의 실시예에 따라서, 패치 인덱스를 디코딩하기 위한 예시적인 방법을 도시한 흐름도;
도 16은 본 원리의 실시예에 따라서, 예시적인 블록 ID을 도시한 도면;
도 17은 본 원리의 실시예에 따라서, 시퀀스 프레임을 프루닝하기 위한 예시적인 방법을 도시한 흐름도;
도 18은 본 원리의 실시예에 따라서, 프루닝된 블록에 대한 예시적인 모션 벡터(motion vector)를 도시한 도면;
도 19는 본 원리의 실시예에 따라서, 메타데이터를 디코딩하기 위한 예시적인 방법을 도시한 흐름도;
도 20은 본 원리의 실시예에 따라서, 프루닝된 블록 ID들을 디코딩하기 위한 예시적인 방법을 도시한 흐름도;
도 21은 본 원리의 실시예에 따라서, 예시-기반 데이터 프루닝을 위한 디코더 측 프로세싱을 수행하기 위한 예시적인 장치를 도시한 블록도;
도 22는 본 원리의 실시예에 따라서, 프루닝된 프레임을 복구하기 위한 예시적인 방법을 도시한 흐름도; 및
도 23은 본 원리의 실시예에 따라서, 시퀀스 프레임을 복구하기 위한 예시적인 방법을 도시한 흐름도.
본 원리는 비디오 압축 효율을 개선하기 위한 예시-기반 데이터 프루닝을 위한 방법 및 장치에 관한 것이다.
본 설명은 본 원리를 예시한다. 그러므로, 비록 본 명세서에서 명시적으로 기술 또는 도시되지 않았을지라도, 당업자가 본 원리를 구현하고 그 사상 및 범위에 포함되는 다양한 장치를 고안할 수 있다는 것이 예측될 것이다.
본 명세서에서 인용된 모든 예 및 조건어는 기술을 발전시키도록 본 발명자(들)에 의해 기여된 본 원리 및 개념들을 독자가 이해하는 것을 돕는 교육 목적을 위해 의도되고, 이러한 특정하여 인용된 예 및 조건에 대한 제한이 없는 것으로서 설명된다.
더욱이, 본 원리들의 원리들, 양태들, 및 실시예들을 인용하는 본 명세서의 모든 진술뿐만 아니라 그 특정 예는 그 구조적 및 기능적 등가물들 모두를 포용하도록 의도된다. 추가로, 이러한 등가물들이 현재 공지된 등가물들뿐만 아니라 장래에 개발되는 등가물들, 즉 구조에 관계없이 동일한 기능을 수행하도록 개발되는 임의의 구성요소 양쪽 모두를 포함하도록 의도된다.
그러므로, 예를 들어, 당업자는, 본 명세서에 제공된 블록도들이 본 원리를 구현하는 예시적인 회로의 개념적 관점을 나타낸다는 것을 예측할 것이다. 유사하게, 임의의 플로우 차트, 흐름도, 상태 천이도, 의사코드, 등이 컴퓨터 판독가능 매체로 실질적으로 표현되고, 그래서, 이러한 컴퓨터 또는 프로세서가 명시적으로 도시되어 있는지 아닌지 어떻든 간에 컴퓨터 또는 프로세서에 의해 실행될 수 있는 다양한 프로세스들을 나타낸다는 것이 예측될 수 있다.
도면들에 도시된 다양한 구성요소들의 기능들은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 수 있는 하드웨어의 이용을 통해 제공될 수 있다. 프로세서에 의해 제공될 때, 기능은 단일 전용 프로세서에 의해, 단일 공유된 프로세서에 의해, 또는 그 일부가 공유될 수 있는 다수의 개별적인 프로세서들에 의해 제공될 수 있다. 더욱이, 용어 "프로세서" 또는 "컨트롤러"의 명시적인 이용은 소프트웨어를 실행할 수 있는 하드웨어를 배타적으로 지칭하는 것으로 해석되지 않아야 하며, 디지털 신호 프로세서("DSP") 하드웨어, 소프트웨어를 저장하기 위한 판독전용 메모리("ROM"), 랜덤 액세스 메모리("RAM") 및 비휘발성 스토리지를 제한없이 내재적으로 포함할 수 있다.
종래 및/또는 통상적인 다른 하드웨어가 또한 포함될 수 있다. 유사하게, 도면들에 도시된 임의의 스위치들은 단지 개념적이다. 그 기능은 프로그램 로직의 동작을 통해, 전용 로직을 통해, 프로그램 컨트롤 및 전용 로직의 상호 작용을 통해, 또는 심지어 수동으로 수행될 수 있고, 특정 기술은 문맥으로부터 더욱 구체적으로 이해되는 대로 실시자에 의해 선택가능하다.
본 청구항들에서, 특정 기능을 수행하기 위한 수단으로서 표현된 임의의 요소는 예를 들어, 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)" 및 "이미지"는 호환 가능하게 이용되고, 일반적으로는 정지 이미지 또는 비디오 시퀀스로부터의 화상을 지칭한다. 공지된 바와 같이, 화상은 프레임 또는 필드일 수 있다.
도 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)의 출력은 엔트피 코더(245)의 제1입력 및 반전 변형기 및 반전 정량화기(inverse transformer and inverse quantizer)(250)의 제1입력과 신호 통신으로 연결된다. 엔트로피 코더(entropy coder)(245)의 출력은 컴바이너(290)의 제1비반전 입력과 신호 통신으로 연결된다. 컴바이너(290)의 출력은 출력 버퍼(235)의 제1입력과 신호 통신으로 연결된다.
인코더 컨트롤러(205)의 제1출력은 프레임 오더링 버퍼(210)의 제2입력, 반전 변형기 및 반전 정량화기(250)의 제2입력, 화상 형태 결정 모듈(215)의 입력, 매크로 블록 형태(MB 형태) 결정 모듈(220)의 제1입력, 인트라 예측(intra prediction) 모듈(260)의 제2입력, 디블록킹 필터(deblocking filter))(265)의 제2입력, 모션 보상기(270)의 제1입력, 모션 추정기(275)의 제1입력, 및 기준 화상 버퍼(reference picture buffer)(280)의 제2입력과 신호 통신으로 연결된다.
인코더 컨트롤러(205)의 제2출력은 SEI(Supplemental Enhancement Information) 인서터(inserter)(230)의 제1입력, 변형기 및 정량화기(225)의 제2입력, 엔트로피 코더(245)의 제2입력, 출력 버퍼(235)의 제2입력, 및 SPS(Sequence Parameter Set) 및 PPS(Picture Parameter Set) 인서터(240)의 입력과 신호 통신으로 연결된다.
SEI 인서터(230)의 출력은 컴바이너(290)의 제2비반전 입력과 신호 통신으로 연결된다.
화상 형태 결정 모듈(215)의 제1입력은 프레임 오더링 버퍼(210)의 제3입력과 신호 통신으로 연결된다. 화상 형태 결정 모듈(215)의 제2출력은 매크로 블록 형태 결정 모듈(macroblock-type decision module)(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접근에 따라서 통신 채널을 통하여 패치 라이브러리를 보내기 보다는 오히려 이전에 보내진 프레임들 또는 기존의 프레임들을 이용하여 디코더 측에서 패치 라이브러리를 트레이닝시키는 개념을 개시한다. 또한, 데이터 프루닝은 "혼합 해상도" 프레임들을 생성하도록 입력 프레임에 있는 일부 블록을 평탄 영역으로 대체하는 것에 의해 실현된다.
한 실시예에서, 본 원리는 유익하게 비디오를 프루닝하고 프루닝된 비디오를 복구하도록 이미지들/프레임들을 트레이닝시키는 풀(pool)로부터 트레이닝된 패치 예시 라이브러리(patch example library)의 이용을 제공한다. 패치 예시 라이브러리는 기준 프레임의 개념의 연장으로서 고려될 수 있다. 그러므로, 패치 예시 라이브러리 아이디어는 또한 종래의 비디오 인코딩 계획들에서 이용될 수 있다. 실시예에서, 본 원리는 라이브러리에서 효율적인 패치 검색을 위하여 오차 범위의(error-bounded) 클러스터링(예를 들어, 변형된 K-평균 클러스터링)을 이용한다.
더욱이, 한 실시예에서, 본 원리는 압축 효율을 개선하기 위해 고주파 신호를 감소시키도록 블록들이 평탄 블록들로 대체되는, 혼합 해상도 데이터 프루닝 계획을 유익하게 제공한다. 메타데이터(라이브러리에 있는 최상의 매치 패치(match patch) 위치)의 효율을 증가시키도록, 본 원리는 패치 시그너처 매칭(patch signature matching), 매칭 랭크, 및 랭크 넘버 인코딩을 이용한다.
부가적으로, 한 실시예에서, 본 원리는 색상 변화(color variation)에 기초하여 평탄 블록 확인 계획을 이용하는 인코딩 프루닝된 블록 ID들의 전략을 유익하게 제공한다.
그러므로, 본 원리에 따라서, 비디오가 비디오 인코더에 의해 더욱 효율적으로 인코딩될 수 있도록 입력 비디오를 프루닝하기 위한, 본 명세서에서 예시-기반 데이터 프루닝으로서 지칭되는 신규의 방법이 제공된다. 한 실시예에서, 방법은 패치들의 라이브러리를 예시로서 생성하는 단계, 및 프레임에 있는 일부 블록이 저해상도 블록 또는 평탄 블록으로 대체되는 비디오 프레임을 복구하도록 패치 라이브러리를 이용하는 단계를 포함한다. 프레임워크는 패치 라이브러리를 생성하고 비디오를 프루닝하며, 비디오를 복구할 뿐만 아니라 복구에 필요한 메타데이터를 인코딩하도록 이 방법을 포함한다.
도 1을 참조하면, 인코더 측 프로세싱은 2개의 부분, 즉 패치 라이브러리 생성 및 프루닝을 본질적으로 포함한다. 패치 라이브러리는 디코더 측으로 보내진 이전의 프레임들(오리지널 비디오 프레임 또는 인코딩 및 디코딩된 프레임)을 이용하거나, 또는 공유되거나 또는 인코더 측 및 디코더 측 모두에 의해 접근될 수 있는 일부 비디오(예를 들어, YOUTUBE.COM으로부터의 비디오)를 이용하여 생성될 수 있다. 본 명세서에 개시된 바람직한 실시예에서, 이전에 존재하는 프레임들은 패치 라이브러리를 생성하도록 이용된다. 패치 라이브러리는 또한 이전에 디코딩된 프레임들을 이용하여 디코더 측에서 발생된다. 2개의 패치 라이브러리는 인코더 측에서 발생된다. 한 라이브러리는 오리지널 프레임으로부터 발생되고, 다른 라이브러리는 재구성 프레임(즉, 인코딩되고 그런 다음 디코딩된 프레임)으로부터 발생된다. 후자(재구성 프레임으로부터의 라이브러리)는, 이것들이 패치 라이브러리들을 발생시키도록 동일 프레임(즉, 재구성 프레임)을 정확하게 이용하기 때문에 디코더 측에서 생성된 패치 라이브러리와 정확히 동일하다.
인코더 측에서, 오리지널 프레임으로부터 생성된 패치 라이브러리는 블록들을 프루닝하도록 이용되고, 이에 반하여, 재구성 프레임으로부터 생성된 패치 라이브러리는 메타데이터를 인코딩하도록 이용된다. 재구성 프레임으로부터 생성된 패치 라이브러리를 이용하는 이유는 메타데이터를 인코딩하고 디코딩하기 위한 패치 라이브러리들이 인코더 측 및 디코더 측에서 동일하게 만드는 것이다.
오리지널 프레임들을 이용하여 생성된 패치 라이브러리에 대해서, 클러스터링 알고리즘은 프루닝 동안 패치 검색 프로세스가 효율적으로 수행되도록 패치들을 그룹화하기 위해 수행된다. 프루닝은 보다 적은 비트가 디코더 측으로 보내지도록 패치 라이브러리를 이용하여 소스 비디오를 변형시키는 프로세스이다. 프루닝은 비디오 프레임을 블록들로 분할하고, 저해상도 또는 평탄 블록들로 블록들의 일부를 대체하는 것에 의해 실현된다. 프루닝된 프레임은 그런 다음 비디오 인코더를 위한 입력으로서 취해진다. 본 원리들이 적용되는 예시적인 비디오 인코더는 도 2에 도시되고 위에 기술된다.
도 1을 다시 참조하면, 프루닝 시스템(100)의 디코더 측 프로세싱 구성요소는 2개의 구성요소, 즉 패치 라이브러리 생성부와 복구부를 포함하도록 고려될 수 있다. 디코더 측에서 패치 라이브러리 생성은 이전에 디코딩된 프레임들을 이용하여 패치 라이브러리를 생성하는 프로세스이며, 이는 인코더 측과 디코더 측 모두에서 동일하여야만 한다. 인코더 측 프로세싱과 달리, 클러스터링은 디코더 측에서 패치 라이브러리에서 이용되지 않는다. 복구 구성요소는 인코더 측으로부터 디코딩된 프루닝된(decoded pruned) 프레임에서 프루닝된 콘텐츠를 복구하는 프로세스이다. 디코딩된 프루닝된 프레임은 비디오 디코더의 출력이다. 본 원리가 적용될 수 있는 예시적인 비디오 디코더는 도 3에 도시되고 위에 기술된다.
패치 라이브러리 생성
도 4를 참조하면, 예시-기반 데이터 프루닝 시스템에서 인코더 측 프로세싱을 수행하기 위한 예시적인 제1부분은 대체로 도면부호 400에 의해 지시된다. 제1부분(400)은 클러스터링 디바이스(420)의 입력과 신호 통신하는 출력을 가지는 디바이더(410)를 포함한다. 디바이더의 입력은 트레이닝 프레임들을 수신하기 위한, 제1부분(400)에 대한 입력으로서 이용할 수 있다. 클러스터링 디바이스(420)의 출력은 클러스터와 패치 라이브러리를 출력하기 위한, 제1부분(400)의 출력으로서 이용할 수 있다.
도 5를 참조하면, 클러스터링 및 패치 라이브러리 생성을 위한 예시적인 방법은 대체로 도면부호 (500)으로 표시된다. 단계 505에서, 트레이닝 비디오 프레임이 입력된다. 단계 510에서, 트레이닝 비디오 프레임은 중첩 블록들로 분할된다(디바이더(410)에 의해). 단계 515에서, 고주파 세부사항이 없는 블록들은 제거된다(클러스터링 디바이스(420)에 의해). 단계 520에서, 블록들은 클러스터링된다(클러스터링 디바이스(420)에 의해). 단계 525에서, 클러스트들과 패치 라이브러리가 출력된다.
패치 라이브러리는 프루닝된 이미지 블록들을 복구하도록 이용될 수 있는 고해상도 패치의 풀이다. 도 6을 참조하면, 예시적인 패치 라이브러리 및 대응 클러스터들은 대체로 도면부호 (600)으로 표시된다. 패치 라이브러리는 특별히 도면부호 (610)으로 표시되고, 시그너처 부분(611)과 고해상도 패치 부분(612)을 포함한다. 인코더 측 프로세싱에 대하여, 2개의 패치 라이브러리가 발생되고, 하나의 패치 라이브러리는 프루닝을 위한 것이고, 다른 패치 라이브러리는 메타데이터 인코딩을 위한 것이다. 프루닝을 위한 패치 라이브러리는 오리지널 프레임을 이용하여 발생되는데 반하여, 메타데이터 인코딩을 위한 패치 라이브러리는 재구성 프레임을 이용하여 발생된다. 프루닝을 위한 패치 라이브러리에 대하여, 라이브러리에 있는 패치들은 프루닝 검색 프로세스가 효율적으로 수행될 수 있도록 클러스터들로 그룹화된다. 라이브러리 생성을 위해 이용된 비디오 프레임들은 트레이닝 데이터 세트를 형성하도록 중첩 블록들로 분할된다. 트레이닝 데이터는 먼저 고주파 세부사항을 포함하지 않는 모든 블록을 제거하는 것에 의해 정리된다(clean-up). 변형된 K-평균 클러스터링 알고리즘(공동으로 소유된, 미국 가특허 출원 제61/336516호(Technicolor docket number PU 100014)(출원일: 2010년 1월 22일, 발명자: Dong-Qing Zhang, Sitaram Bhagavathy 및 Joan Llach, 발명의 명칭: "Data pruning for video compression using example-based super-resolution")에 기술된)은 트레이닝 데이터 세트에 있는 패치들을 클러스터 내로 그룹화하도록 이용된다. 각 클러스터에 대하여, 클러스터 중심은 클러스터에 있는 패치들의 평균이며, 프루닝 프로세스 동안 인커밍 쿼리(incoming query)를 매칭하기 위하여 이용된다. 변형된 K-평균 클러스터링 알고리즘은 클러스터 내에 있는 임의의 패치와 그 클러스터 중심 사이의 에러가 특정 임계치보다 작은 것을 보장한다. 변형된 K-평균 클러스터링 알고리즘은 클러스터들에서 오차 범위를 보장하는 임의의 유사한 클러스터링 알고리즘에 의해 대체될 수 있다.
계산을 빠르게 하도록, 트레이닝 프레임의 수평 및 수평 치수는 오리지널 사이즈의 1/4로 감소된다. 클러스터링 프로세스는 다운사이징된 프레임들에 있는 패치 상에서 수행된다. 하나의 예시적인 실시예에서, 고해상도 패치의 사이즈는 16x16 픽셀이며, 다운사이징된 패치들의 사이즈는 4x4 픽셀이다. 그러므로, 다운사이즈 팩터는 4이다. 물론, 다른 사이즈가 이용될 수 있으면서, 본 원리의 사상을 유지한다.
메타데이터 인코딩을 위한 패치 라이브러리에 대하여, 클러스터링 프로세스와 정리 프로세스는 수행되지 않으며; 그러므로, 이는 재구성 프레임으로부터 모든 가능한 패치를 포함한다. 그러나, 오리지널 프레임들로부터 생성된 패치 라이브러리에 있는 모든 패치에 대하여, 패치들의 좌표를 이용하여 재구성 프레임으로부터 생성된 패치 라이브러리에서 그 대응 패치를 찾는 것이 가능하다. 이러한 것은 메타데이터 인코딩이 정확하게 수행될 수 있게 만들 것이다. 디코더 측에 대하여, 클러스터링이 없는 동일한 패치 라이브러리는 메타데이터 디코딩 및 프루닝된 블록 복구를 위하여 동일한 디코딩된 프레임들을 이용하여 생성된다.
인코더 측과 디코더 측 모두에서 디코딩된 프레임들을 이용하여 생성된 패치 라이브러리에 대하여, 또 다른 프로세스가 패치의 시그너처를 생성하도록 수행된다. 패치의 시그너처는 패치의 평균 색상과 패치의 주변 픽셀(surrounding pixel)을 포함하는 특징 벡터(feature vector)이다. 패치 시그너처는 메타데이터를 더욱 효율적으로 인코딩하도록 메타데이터 인코딩 프로세스를 위해 이용되고, 최상 매치 패치를 찾고 프루닝된 콘텐츠를 더욱 확실하게 복구하도록 디코더 측에서 복구 프로세스에 이용된다. 도 7을 참조하면, 예시적인 시그너처 벡터는 대체로 도면부호 (700)으로 표시된다. 시그너처 벡터(700)는 평균 색상(701)과 주변 픽셀(702)을 포함한다.
메타데이터 인코딩 프로세스는 다음에 기술된다. 프루닝된 프레임에서, 흔히 복구 또는 메타데이터 인코딩을 위하여 프루닝된 블록의 이웃하는 블록 또한 프루닝된다. 그런 다음, 오직 패치 라이브러리에서 검색을 위한 시그너처로서 이용된 주변 픽셀의 세트는 프루닝되지 않은 블록들로부터의 픽셀을 포함한다. 이웃하는 블록들이 프루닝되면, 단지 평균 색상(701)은 시그너처로서 이용된다. 이러한 것은 너무 적은 정보가 패치 매칭을 위해 이용되기 때문에 결국 베드 매치로 되고, 그래서, 이웃한 프루닝되지 않은 픽셀(702)은 중요하다.
프루닝 프로세스
표준 비디오 인코딩 알고리즘과 유사하게, 입력 비디오 프레임들은 화상 그룹(Group of Pictures, GOP)으로 분할된다. 프루닝 프로세스는 GOP의 제1프레임에서 수행된다. 프루닝 결과는 이후에 GOP에 있는 나머지 프레임들로 전파된다.
GOP에서 제1프레임에 대한 프루닝 프로세스
도 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에 따라서 비중첩 블록들로 분할된다. 블록의 사이즈는 표준 압축 알고리즘에서 이용된 매크로 블록의 사이즈와 동일하며, 16x16 픽셀의 사이즈가 본 명세서에 개시된 예시적인 실행에서 채택된다. 검색 프로세스는 그런 다음 단계 920에 따라서 패치 라이브러리에서 최상-매치 패치를 찾도록 이어진다. 이러한 검색 프로세스는 도 10에 도시된다. 도 10을 참조하면, 프루닝 동안 수행하는 패치검색 프로세스는 대체로 도면부호 (1000)으로 표시된다. 패치검색 프로세스(1000)는 차례로 시그너처 부분(1011) 및 고해상도 패치 부분(1012)을 포함하는 패치 라이브러리(1010)를 포함한다. 먼저, 블록은 유클리드 거리를 계산하고 상부(top) K 매칭된 클러스터들을 찾는 것에 의해 클러스터들의 중심과 매칭된다. 현재, K는 경험적으로 결정된다. 원칙적으로, K는 클러스터들의 오차 범위에 의해 결정된다. 물론, K를 계산하는 다른 접근이 본 원리들의 교시에 관련하여 또한 이용될 수 있다. 후보 클러스터들이 확인된 후에, 검색 프로세스는 최상-매치 패치가 클러스터들에서 발견될 때까지 클러스터들 내에서 수행된다. 최상-매치 패치와 쿼리 블록 사이의 차이가 사전결정된 임계치보다 작으면, 블록은 프루닝될 것이다. 그렇지 않으면, 블록은 온전히 유지될 것이다. 프루닝된 블록들의 ID들과 각 블록의 최상-매치 패치의 인덱스는 메타데이터로서 저장되고, 이는 메타데이터 인코딩 구성요소에서 인코딩되고 디코더 측으로 보내진다.
블록들이 프루닝을 위해 확인된 후에, 프로세스는 블록을 프루닝하도록 수행된다. 예를 들어, 고해상도 블록들을 저해상도 블록들로 대체하는, 프루닝될 필요가 있는 블록들을 위한 상이한 프루닝 전략이 있을 수 있다. 그러나, 이러한 접근이 상당한 압축 효율 이득을 달성하는데 어려울 수 있다는 것이 알려졌다. 그러므로, 본 명세서에서 개시된 바람직한 실시예에서, 고해상도 블록은 모든 픽셀이 동일한 색상값(즉, 오리지널 블록에 있는 픽셀의 색상값의 평균)을 가지는 평탄 블록으로 간단하게 대체된다. 블록 대체 프로세스는 프레임의 일부 부분들이 고해상도를 가지고 다른 부분이 저해상도를 가지는 비디오 프레임을 생성하고; 그러므로, 이러한 프레임은 "혼합 해상도" 프레임으로서 지칭된다(동시 계류중이고 공동 소유된 국제특허출원 일련 번호 XXXX(Technicolor 문서 번호 PU100194)(출원일: 2011년 3월 XX일, 발명의 명칭: "METHODS AND APPARATUS FOR ENCODING VIDEO SIGNALS FOR BLOCK-BASED MIXED-RESOLUTION DATA PRUNING FOR IMPROVING VIDEO COMPRESSION EFFICIENCY") 참조). 도 11을 참조하면, 예시적인 혼합 해상도 프레임은 대체로 도면부호 (1100)으로 표시된다. 상기된 평탄-블록 대체 계획은 필요한 압축 효율을 얻는데 아주 효과적이다. 평탄 블록 대체 계획은 프루닝을 위한 블록이 그 저해상도 버전에 의해 대체되는 저해상도 블록 대체 계획에 의해 대체될 수 있다.
메타데이터 인코딩 및 디코딩
메타데이터 인코딩은 프루닝된 블록 ID들을 인코딩하기 위한 하나(도 13 참조)와, 패치 인덱스를 인코딩하는 다른 것(도 14 참조)의 2개의 구성요소(도 12 참조)를 포함하고, 이것들은 프루닝 프로세스 동안 각 블록에 대한 패치 라이브러리를 검색한 결과이다.
도 12를 참조하면, 메타데이터를 인코딩하기 위한 예시적인 방법은 대체로 도면부호 (1200)으로 표시된다. 단계 1205에서, 디코딩된 프루닝된 비디오 프레임, 프루닝된 블록 ID들, 및 각 블록에 대한 패치 인덱스가 입력된다. 단계 1210에서, 프루닝된 블록 ID들이 인코딩된다. 단계 1215에서, 패치 인덱스가 인코딩된다. 단계 1220에서, 인코딩된 메타데이터가 출력된다.
도 13을 참조하면, 프루닝된 블록 ID들을 인코딩하기 위한 예시적인 방법은 대체로 도면부호 (1300)으로 표시된다. 단계 1305에서, 프루닝된 프레임과 프루닝된 블록 ID들이 입력된다. 단계 1310에서, 저해상도 블록 확인이 수행된다. 단계 1320에서, 어떠한 실패(miss)가 있었는지 아닌지가 결정된다. 실패가 없는 것으로 결정되면, 방법은 단계 1325로 진행한다. 그렇지 않으면, 방법은 단계 1315로 진행한다. 단계 1325에서, 긍정오류(false positives)의 넘버가 프루닝된 블록의 넘버보다 큰지 아닌지가 결정된다. 긍정오류의 넘버가 프루닝된 블록의 넘버보다 크면, 방법은 단계 1330으로 진행한다. 그렇지 않으면, 컨트롤은 단계 1335로 진행한다. 단계 1330에서, 프루닝된 블록 시퀀스가 이용되고, 플래그는 0으로 설정된다. 단계 1340에서, 분화(differentiation)가 수행된다. 단계 1345에서, 무손실 인코딩(lossless encoding)이 수행된다. 단계 1350에서, 인코딩된 메타데이터가 출력된다. 단계 1315에서, 임계치가 조정된다. 단계 1335에서, 긍정오류 시퀀스가 이용되고, 플래그가 1로 설정된다.
도 14를 참조하면, 패치 인덱스를 인코딩하기 위한 예시적인 방법은 대체로 도면부호 (1400)으로 표시된다. 단계 1405에서, 디코딩된 프루닝된 프레임과 각 블록에 대한 패치 인덱스가 입력된다. 단계 1410에서, 루프가 각 프루닝된 블록에 대해 수행된다. 단계 1415에서, 시그너처가 획득된다. 단계 1420에서, 패치 라이브러리에 있는 패치들에 대한 거리가 계산된다. 단계 1425에서, 패치들은 랭크 리스트를 얻도록 정리된다. 단계 1430에서, 랭크 넘버가 획득된다. 단계 1435에서, 랭크 넘버는 엔트로피 코딩된다. 단계 1440에서, 모든 블록이 완료(프로세싱)되었는지 아닌지가 결정된다. 모든 블록이 완료되면, 방법은 단계 1445로 진행한다. 그렇지 않으면, 방법은 단계 1410으로 귀환한다. 단계 1445에서, 인코딩된 패치 인덱스가 출력된다.
프루닝 프로세스 동안, 각 블록에 대하여, 시스템은 패치 라이브러리에 있는 최상-매치 패치를 검색하고, 왜곡이 임계치보다 작으면 발견된 패치를 위한 패치 라이브러리에 있는 패치 인덱스를 출력하게 된다. 각 패치는 그 시그너처(즉, 디코딩된 프레임들에 있는 주변 픽셀을 더한 그 색상)와 관련된다. 디코더 측 프로세싱에서 복구 프로세스 동안, 프루닝된 블록의 색상과 그 주변 픽셀은 라이브러리에서 정확한 고해상도 패치를 찾는 시그너처로서 이용된다.
그러나, 노이즈로 인하여, 시그너처를 이용한 검색 공정은 신뢰할 수 없으며, 메타데이터는 신뢰성을 보장하도록 복구 프로세스를 도울 필요가 있다. 그러므로, 프루닝 프로세스 후에, 시스템은 복구를 돕기 위한 메타데이터를 발생시키도록 진행될 것이다. 각 프루닝된 블록에 대해, 이미 상기된 검색 프로세스는 라이브러리에 있는 대응 패치들을 확인한다. 메타데이터 인코딩 구성요소는 패치 라이브러리(디코딩된 프레임을 이용하여 생성된 라이브러리)에 있는 패치들의 시그너처를 매칭하도록 쿼리 벡터(주변 픽셀을 더한 프루닝된 블록의 평균 색상)를 이용함으로써 복구 프로세서를 시뮬레이션할 것이다. 프로세스는 도 14에 도시된다. 도 14를 다시 참조하면, 각 블록에 대해, 블록에 대응하는 쿼리 벡터와 라이브러리에 있는 패치들의 시그너처 사이의 거리(물론 다른 거리 메트릭스(metrics)가 이용될 수 있을지라도, 예를 들어, 유클리드)들이 계산된다. 패치들은 거리들에 따라서 정리되고, 랭크 리스트를 유발한다. 이상적인 경우에, 최상-매치 고해상도 패치가 랭크 리스트의 위에 있어야 한다. 그러나, 산술적 반올림(arithmetic rounding) 및 압축에 의해 유발되는 노이즈로 인하여, 최상-매치 패치는 흔히 랭크 리스트의 첫번째 것이 아니다. 정확한 패치가 랭크 리스트에 있는 n번째 패치인 것으로 가정한다. 넘버 n은 블록에 대한 메타데이터로서 저장될 것이다. 대부분의 경우에, 최상-매치 패치가 랭크 리스트에서 상부에 근접하기 때문에, n은 1이거나 또는 매우 작은 수이며; 그러므로, 무작위 넘버의 엔트로피는 라이브러리에 있는 최상-매치 패치의 인덱스보다 상당히 작고, 이는 최대 엔트로피를 가지는 균일한 분포이어야 하는 것을 유념하여야 한다. 그러므로, 오더넘버는 엔트로피 코딩에 의해 효율적으로 인코딩될 수 있다. 모든 프루닝된 블록의 랭크 넘버는 디코더 측으로 보내진 메타데이터의 부분으로서 랭크 넘버 시퀀스를 형성한다. 랭크 넘버의 분포가 기하학적 분포에 근접하다는 것이 실제 경험에 의해 알려졌으며; 그러므로, 현재 골롬 코드(Golomb code)가 랭크 넘버 시퀀스를 더욱 인코딩하기 위하여 이용된다. 골롬 코드는 기하학적 분포를 가지는 무작위 넘버를 위해 최적이다. 물론, 다른 형태의 코드들이 본 원리의 교시에 따라서 또한 이용될 수 있으면서, 본 원리의 사상을 유지한다.
디코딩에 대하여(도 15 참조), 디코더 측은 디코딩된 프레임들을 이용하여 생성된, 인코더와 정확히 동일한 패치 라이브러리를 가져야 한다. 프루닝된 블록의 시그너처는 패치 라이브러리에 있는 시그너처들과 매칭하고 랭크 리스트(정리된 패치 라이브러리)를 입수하도록 이용될 것이다. 랭크 넘버는 정리된 패치 라이브러리로부터 정확한 패치를 검색하도록 이용된다. 패치 라이브러리가 이전의 프레임들로부터 생성되면, 인코더 측 및 디코더 측이 정확히 동일한 패치 라이브러리를 가지는 것을 보장하기 위하여, 인코더 측에서의 메타데이터 인코딩 프로세스는 오직 디코딩된 프레임들이 디코더 측에서 이용할 수 있기 때문에 비디오 디코더로부터 디코딩된 프레임들을 또한 이용하여야 한다.
도 15를 참조하면, 패치 인덱스를 디코딩하기 위한 예시적인 방법이 대체로 도면부호 (1500)으로 표시된다. 단계 1505에서, 디코딩된 프루닝된 비디오 프레임, 인코딩된 패치 인덱스, 및 프루닝된 블록 ID들이 입력된다. 단계 1510에서, 루프가 각 프루닝된 블록에 대해 수행된다. 단계 1515에서, 시그너처가 획득된다. 단계 1520에서, 패치 라이브러리에 있는 패치들에 대한 거리가 계산된다. 단계 1525에서, 패치들은 랭크 리스트를 획득하도록 정리된다. 단계 1530에서, 인코딩된 랭크 넘버는 엔트로피 디코딩된다. 단계 1535에서, 패치 인덱스는 랭크 넘버를 이용하여 패치 라이브러리로부터 검색된다. 단계 1540에서, 모든 블록이 완료(프로세싱)되었는지 아닌지가 결정된다. 모든 블록이 완료되었으면, 방법은 단계 1545로 진행한다. 그렇지 않으면, 방법은 단계 1510으로 귀환한다. 단계 1545에서, 디코딩된 패치 인텍스가 출력된다.
랭크 넘버 메타데이터 외에, 프루닝된 블록들의 위치들이 디코더 측으로 보내질 필요가 있다. 이러한 것은 블록 ID 인코딩에 의해 행해진다(도 13 참조). 하나의 간단한 방식은 블록 ID 시퀀스를 디코더 측으로 바로 보내는 것일 수 있다. 블록의 ID는 프레임 상의 블록의 좌표를 지시한다. 도 16을 참조하면, 예시적인 블록 ID는 대체로 도면부호 (1600)으로 표시된다. 프루닝된 블록들의 ID 시퀀스를 더욱 효율적으로 인코딩하는 것이 또한 가능할 수 있다. 프루닝된 블록들이 평탄하고 고해상도 구성요소를 포함하지 않기 때문에, 블록 내에서 색상 변화를 계산하는 것에 의해 프루닝된 블록을 검출하는 것이 가능하다. 색상 변화가 임계치보다 작으면, 블록은 프루닝된 블록으로서 확인된다. 그러나, 이러한 확인 프로세스가 신뢰할 수 있는 것이 아닐 수 있기 때문에, 메타데이터는 여전히 확인 프로세스를 가능하게 하는 것이 요구된다. 먼저, 변화 임계치는 고임계값으로부터 시작하는 것에 의해 결정된다. 알고리즘은 그런 다음, 모든 프루닝된 블록들이 확인 절차에 의해 확인될 수 있지만 긍정오류 블록들이 확인된 결과에 존재할 수 있도록, 변화 임계치를 느리게 감소시킨다. 이후에, 긍정오류의 넘버가 프루닝된 블록들의 넘버보다 크면, 프루닝된 블록들의 ID들은 저장되고 디코더로 보내지며; 그렇지 않으면, 긍정오류의 ID들은 디코더 측으로 보내지게 된다. 평탄 블록을 확인하기 위한 변화 임계치는 동일한 확인 절차를 진행하기 위하여 디코더 측으로 또한 보내진다. ID 시퀀스는 넘버가 증가하도록 정리될 수 있다.
불필요한 중복을 더욱 감소시키도록, 분화 코딩 계획(differential coding)이 ID 넘버와 그 이전의 ID 넘버 사이의 차이를 먼저 계산하고, 분화 시퀀스를 인코딩하도록 채택된다. 예를 들어, ID 시퀀스가 3, 4, 5, 8, 13, 14인 것을 가정하면, 분화된 시퀀스는 3, 1, 1, 3, 5, 1로 된다. 분화 프로세스는 넘버를 1에 근접하게 만들고, 그러므로, 보다 적은 엔트로피를 가진 넘버 분포를 유발한다. 분화 시퀀스는 그런 다음 엔티로피 코딩(예를 들어, 현재의 실행에서 허프만 코딩(Huffman coding))으로 더욱 인코딩될 수 있다. 그러므로, 최종 메타데이터의 포맷은 다음과 같이 기술된다:
Figure 112013030925625-pct00001
여기에서, 플래그는 블록 ID 시퀀스가 긍정오류 ID 시퀀스인지 아닌지를 지시하는 시그널링 플래그; 임계치는 평탄 블록 확인을 위한 변화 임계치; 인코딩된 블록 ID 시퀀스는 프루닝된 블록 ID들 또는 긍정오류 블록 ID들의 인코딩된 비트스트림; 및 인코딩된 랭크 넘버 시퀀스는 블록 복구를 위해 이용된 랭크 넘버들의 인코딩된 비트스트림.
나머지 프레임들에 대한 프루닝 프로세스
GOP에 있는 나머지 프레임들에 대하여, 프레임들에 있는 블록들의 일부는 평탄 블록에 의해 또한 대체될 것이다. 제1프레임에 있는 프루닝된 블록들의 위치는 모션 트랙킹에 의해 나머지 프레임들에 전파될 수 있다. 프루닝된 블록들의 위치를 전파시키는 다른 전략들이 테스트되었다. 하나의 접근은 블록 매칭에 의해 프레임을 가로질러 프루닝된 블록들을 트래킹하고, 이후의 프레임들에 있는 대응 블록들을 프루닝(즉, 트래킹된 블록을 평탄 블록으로 대체)하는 것이다. 그러나, 이러한 접근은 대체로 트래킹된 블록들의 경계가 코딩 매크로 블록들과 정렬하지 못하기 때문에 양호한 압축 효율 이득을 유발하지 못한다. 그 결과, 트래킹된 블록들의 경계는 매크로 블록에서 고주파수 신호를 생성한다. 그러므로, 보다 간단한 대안적인 접근이 이후의 프레임들을 위한 모든 블록 위치들을 이후의 프레임과 동일한 위치로 설정하도록 현재 이용된다. 즉, 이후의 프레임들에 있는 모든 프루닝된 블록은 제1프레임에 있는 프루닝된 블록들과 동일 위치에 배치된다. 그 결과, 이후의 프레임들을 위한 모든 프루닝된 블록은 매크로 블록 위치와 정렬된다.
그러나, 이러한 접근은 프루닝된 블록들에 모션이 있으면 양호하게 작업할 수 없다. 그러므로, 이러한 문제를 해결하는 하나의 해법은 블록의 모션 강도를 계산하는 것이다(도 17 참조). 도 17을 참조하면, 프루닝 시퀀트(pruning sequent) 프레임을 위한 예시적인 방법은 대체로 도면부호 1700으로 표시된다. 단계 1705에서, 비디오 프렘과 프루닝된 블록 ID들이 입력된다. 단계 1710에서, 동일 위치에 배치된 블록들이 프루닝된다. 단계 1715에서, 루프가 각 블록에 대해 수행된다. 단계 1720에서, 이전의 프레임에 대한 모션 벡터가 계산된다. 단계 1725에서, 모션 벡터들이 메타데이터로서 저장된다. 단계 1730에서, 모든 블록이 완료(프로세싱)되었는지 아닌지가 결정된다. 모든 블록이 완료되었으면, 방법은 단계 1735로 진행한다. 그렇지 않으면, 방법은 단계 1715로 귀환한다.
모션 강도가 임계치보다 크면, 블록은 프루닝되지 않을 것이다. 본 명세서에 개시된 예시적인 실행인 또 다른 보다 정교한 해법은 이전의 프레임에 있는 대응 블록을 검색하는 것에 의해 오리지널 비디오에 있는 프루닝된 블록들의 모션 벡터들을 계산하는 것이다(도 18 참조). 도 18을 참조하면, 프루닝된 블록에 대한 예시적인 모션 벡터는 대체로 도면부호 (1800)으로 표시된다. 모션 벡터(1800)는 i번째 프레임에 있는 프루닝된 블록 및 (i-l)번째 프레임에 있는 동일 위치 배치된 블록에 관한 것이다. 프루닝된 블록의 모션 벡터는 복구 목적을 위하여 디코더 측으로 보내질 것이다. 이전의 프레임이 이미 완전히 복구되었기 때문에, 현재 프레임에 있는 프루닝된 블록은 모션 벡터들을 이용하여 복구될 수 있다. 아티팩트(artifacts)를 피하도록, 현재 프레임에 있는 블록과 이전의 프레임에서 모션 벡터에 의해 계산된 대응 블록 사이의 차이가 너무 크면, 현재 프레임에 있는 블록은 프루닝되지 않을 것이다. 또한, 서브픽셀 모션 추정은 모션 벡터 기반 복구를 더욱 정확하게 만들도록 현재 채택된다. 서브픽셀 기반 모션 벡터 추정을 이용한 결과적인 시각적 품질이 정수 픽셀(integer pixel) 기반 모션 벡터 추정보다 훨씬 양호하다는 것이 경험에 의해 알려졌다.
복구 프로세스
복구 프로세스는 디코더 측에서 일어난다. 복구 프로세스 전에, 패치 라이브러리가 생성되어야 한다. 영화와 같이 긴 비디오를 위하여, 이러한 것은 디코더 측으로 이미 보내진 이전의 프레임을 이용하여 달성될 수 있다. 인코더는 프레임들이 패치 라이브러리를 생성하도록 이용되어야 하는지를 지시하는 메타데이터(프레임 ID)를 보낼 수 있다. 디코더 측에 있는 패치 라이브러리는 인코더 측에 있는 패치 라이브러리와 정확히 동일하여야 한다.
GOP에 있는 제1프레임을 위하여, 블록 ID 시퀀스(도 20 참조) 및 랭크 오더 시퀀스(도 19 참조)를 디코딩하는 것을 포함하는 복구 프로세스는 메타데이터를 디코딩하는(도 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에서, 복구된 프레임이 출력된다.
예시 패치들을 이용한 블록 복구가 전통적인 인페인팅 및 텍스처 합성 기반 방법으로 대체될 수 있다는 것이 예측되어야 한다.
GOP에 있는 나머지 프레임들에 대하여, 각 프루닝된 블록을 위하여, 모션 벡터가 이용 가능하지 않으면, 블록의 콘텐츠는 이전의 프레임에서 동일 위치 배치된 블록으로부터 복사될 수 있다. 모션 벡터가 이용 가능하면, 모션 벡터는 이전의 프레임에 있는 대응 블록을 찾고 프루닝된 블록을 충전하도록 대응 블록의 복사하도록 이용될 수 있다(도 23 참조). 도 23을 참조하면, 이후의 프레임을 복구하기 위한 예시적인 방법은 대체로 도면부호 (2300)으로 표시된다. 단계 2305에서, 비디오 프레임과 프루닝된 블록 ID들이 입력된다. 단계 2310에서, 루프가 각 블록에 대해 수행된다. 단계 2315에서, 모션 벡터는 이전의 프레임에 있는 패치를 찾도록 이용된다. 단계 2320에서, 발견된 패치는 프루닝된 블록을 대체하도록 이용된다. 단계 2325에서, 모든 블록이 완료(프로세싱)되었는지 아닌지가 결정된다. 모든 블록들이 완료되었으면, 방법은 단계 2330으로 진행한다. 그렇지 않으면, 방법은 단계 2310으로 귀환한다.
블록 아티팩트는 복구 프로세스가 블록 기반이기 때문에 시각적이다. AVC 인코더에서 이용되는 인-루프 디블록킹 필터(in-loop deblocking filter)와 같은 디블록킹 필터는 블록 아티팩트를 감소시키도로 적용될 수 있다.
본 원리들의 이들 및 다른 특징들 및 장점들은 본 교시들에 기초하여 본 기술분야의 통상의 기술자에 의해 용이하게 확인될 수 있다. 본 원리들의 교시들은 하드웨어, 소프트웨어, 펌웨어, 특별 목적 프로세서들, 또는 그 조합들의 다양한 형태들로 구현될 수 있다.
가장 바람직하게, 본 원리들의 교시들은 하드웨어 및 소프트웨어의 조합으로서 구현된다. 더욱이, 소프트웨어는 프로그램 저장 유닛 상에 실체적으로 실시되는 어플리케이션 프로그램으로서 구현될 수 있다. 어플리케이션 프로그램은 임의의 적합한 아키텍처를 포함하는 머신에 업로딩되어 머신에 의해 실행될 수 있다. 바람직하게, 머신은 하나 이상의 중앙 처리 유닛들("CPU"), 랜덤 액세스 메모리("RAM"), 및 입/출력("I/O") 인터페이스들과 같은 하드웨어를 가지는 컴퓨터 플랫폼 상에서 구현된다. 컴퓨터 플랫폼은 또한 오퍼레이팅 시스템 및 마이크로명령 코드를 포함할 수 있다. 본 명세서에 기술된 다양한 프로세스 및 기능들은 마이크로명령 코드의 일부 또는 어플리케이션 프로그램의 일부, 또는 그 임의의 조합 중 하나일 수 있고, 이는 CPU에 의해 실행될 수 있다. 뿐만 아니라, 추가적인 데이터 저장 유닛 및 프린팅 유닛과 같은 다양한 다른 주변장치 유닛들이 컴퓨터 플랫폼에 연결될 수 있다.
첨부된 도면들에 도시된 구성 시스템 구성요소들 및 방법들의 일부가 바람직하게 소프트웨어로 구현되기 때문에, 시스템 구성요소 또는 프로세스 기능 블록 사이의 실제 연결은 본 원리들이 프로그래밍되는 방식에 따라 상이할 수 있다는 것이 더욱 이해될 것이다. 본 교시들이 주어지면, 당업자는 본 원리들의 이들 및 유사한 실행들 또는 구성들을 고려할 수 있을 것이다.
여기에서 예시적 실시예들은 첨부된 도면들을 참조하여 설명되었을지라도, 본 원리들은 이러한 정확한 실시예들로 한정되지 않고, 본 원리들의 범주 또는 사상으로부터 벗어남이 없이 당업자에 의해 다양한 변경들 및 변형들이 달성될 수 있다는 것이 이해될 것이다. 모든 그러한 변경들 및 변형들은 첨부된 청구항들에 제시된 본 원리들의 범주 내에 포함되도록 의도된다.

Claims (27)

  1. 비디오 시퀀스에서 화상의 프루닝된(pruned) 버전을 다수의 비중첩 블록으로 분할하기 위한 디바이더(115);
    상기 화상의 상기 프루닝된 버전을 복구하는데 이용하기 위한 메타데이터를 디코딩하기 위한 메타데이터 디코더(125);
    상기 화상의 상기 프루닝된 버전의 복구 동안 하나 이상의 프루닝된 블록을 대체하기 위한 다수의 고해상도 대체 패치를 포함하는 패치 라이브러리를 상기 화상의 재구성 버전으로부터 생성하기 위한 패치 라이브러리 생성기(130); 및
    상기 다수의 비중첩 블록 중에서 상기 하나 이상의 프루닝된 블록의 각각의 것에 대한 대응 패치를 찾고 상기 하나 이상의 프루닝된 블록의 각각의 것을 상기 대응 패치로 대체하도록, 상기 메타데이터를 이용하여 검색 프로세스를 수행하기 위한 검색 및 대체 디바이스(120)를 포함하되,
    상기 메타데이터는 각각의 상기 다수의 비중첩 블록에 대한 최상 매칭 패치를 확인하기 위한 패치 인덱스와, 상기 다수의 비중첩 블록 중에서 하나 이상의 프루닝된 블록을 확인하기 위한 블록 확인기(block identifier)를 포함하는, 예시-기반 데이터 프루닝 장치.
  2. 제1항에 있어서, 상기 하나 이상의 프루닝된 블록에 있는 모든 픽셀은 동일한 색상값 또는 저해상도 중 하나를 가지는, 예시-기반 데이터 프루닝 장치.
  3. 제2항에 있어서, 상기 하나 이상의 프루닝된 블록 중 특정한 것에 대한 상기 동일 색상값은 상기 하나 이상의 프루닝된 블록 중 상기 특정한 것에 있는 상기 픽셀의 색상값의 평균과 동일한, 예시-기반 데이터 프루닝 장치.
  4. 제1항에 있어서, 상기 다수의 고해상도 패치의 각각의 것의 평균 색상을 포함하는, 상기 패치 라이브러리에 대한 특징 벡터를 각각 발생시키는 것에 의해, 상기 패치 라이브러리에 포함된 각각의 상기 다수의 고해상도 패치를 위하여 시그너처가 각각 생성되는, 예시-기반 데이터 프루닝 장치.
  5. 제4항에 있어서, 상기 다수의 고해상도 패치의 상기 각각의 것에 대한 상기 특징 벡터에 포함된 상기 평균 색상은 상기 다수의 고해상도 패치의 상기 각각의 것에 대하여 주변 픽셀들을 추가로 포함하는, 예시-기반 데이터 프루닝 장치.
  6. 제4항에 있어서, 상기 시그너처는 각각의 상기 하나 이상의 프루닝된 블록에 대해 각각 생성되고, 상기 화상의 상기 프루닝된 버전은 각각의 상기 다수의 고해상도 패치를 위한 시그너처로부터 각각의 상기 하나 이상의 프루닝된 블록에 대한 시그너처까지의 각각의 거리 메트릭스(metrics)를 비교하고 각각의 상기 하나 이상의 프루닝된 블록에 대한 랭크 리스트를 획득하도록 상기 각각의 거리 메트릭스를 정리하는 것에 의해 복구되고, 상기 하나 이상의 프루닝된 블록 중 특정의 것에 대한 상기 랭크 리스트에 있는 랭크 넘버는 상기 패치 라이브러리에 있는 상기 다수의 고해상도 패치 중 대응하는 것을 검색하도록 이용되어 상기 하나 이상의 프루닝된 블록 중 상기 특정의 것을 대체하도록 이용되는, 예시-기반 데이터 프루닝 장치.
  7. 제6항에 있어서, 상기 다수의 중첩 블록의 상기 대응하는 것에 대해 동일 위치 배치된 패치 이전의 패치들만이 상기 비교를 위해 이용되는, 예시-기반 데이터 프루닝 장치.
  8. 제6항에 있어서, 다수의 노드 및 다수의 에지를 가지는 패치 의존성(dependency) 그래프는 상기 화상의 상기 프루닝된 버전을 복구하도록 이용되고, 각각의 상기 다수의 노드는 상기 다수의 비중첩 블록의 각각의 것을 나타내고, 각각의 상기 다수의 에지는 상기 다수의 비중첩 블록의 적어도 상기 각각의 것의 각각의 의존성을 나타내는, 예시-기반 데이터 프루닝 장치.
  9. 삭제
  10. 비디오 시퀀스에서 화상의 프루닝된 버전을 다수의 비중첩 블록으로 분할하는 단계(2105);
    상기 화상의 상기 프루닝된 버전을 복구하는데 이용하기 위한 메타데이터를 디코딩하는 단계(2115);
    상기 화상의 상기 프루닝된 버전의 복구 동안 하나 이상의 프루닝된 블록을 대체하기 위한 다수의 고해상도 대체 패치를 포함하는 패치 라이브러리를 상기 화상의 재구성 버전으로부터 생성하는 단계(130); 및
    상기 다수의 비중첩 블록 중에서 상기 하나 이상의 프루닝된 블록의 각각의 것에 대한 대응 패치를 찾고 상기 하나 이상의 프루닝된 블록의 각각의 것을 상기 대응 패치로 대체하도록, 상기 메타데이터를 이용하여 검색 프로세스를 수행하는 단계(2110)를 포함하되,
    상기 메타데이터는 각각의 상기 다수의 비중첩 블록에 대한 최상 매칭 패치를 확인하기 위한 패치 인덱스와, 상기 다수의 비중첩 블록 중에서 하나 이상의 프루닝된 블록을 확인하기 위한 블록 확인기를 포함하는, 예시-기반 데이터 프루닝 방법.
  11. 제10항에 있어서, 상기 하나 이상의 프루닝된 블록에 있는 모든 픽셀은 동일한 색상값 또는 저해상도를 가지는, 예시-기반 데이터 프루닝 방법.
  12. 제11항에 있어서, 상기 하나 이상의 프루닝된 블록 중 특정한 것에 대한 상기 동일한 색상값은 상기 하나 이상의 프루닝된 블록 중 상기 특정한 것에 있는 상기 픽셀의 색상값의 평균과 동일한, 예시-기반 데이터 프루닝 방법.
  13. 제10항에 있어서, 상기 다수의 고해상도 패치의 각각의 것의 평균 색상을 포함하는, 상기 패치 라이브러리에 대한 특징 벡터를 각각 발생시키는 것에 의해, 상기 패치 라이브러리에 포함된 각각의 상기 다수의 고해상도 패치를 위하여 시그너처가 각각 생성되는, 예시-기반 데이터 프루닝 방법.
  14. 제13항에 있어서, 상기 다수의 고해상도 패치의 상기 각각의 것에 대한 상기 특징 벡터에 포함된 상기 평균 색상은 상기 다수의 고해상도 패치의 상기 각각의 것에 대하여 주변 픽셀들을 추가로 포함하는, 예시-기반 데이터 프루닝 방법.
  15. 제13항에 있어서, 상기 시그너처는 각각의 상기 하나 이상의 프루닝된 블록에 대해 각각 생성되고, 상기 화상의 상기 프루닝된 버전은 각각의 상기 다수의 고해상도 패치를 위한 시그너처로부터 각각의 상기 하나 이상의 프루닝된 블록에 대한 시그너처까지의 각각의 거리 메트릭스를 비교하고 각각의 상기 하나 이상의 프루닝된 블록에 대한 랭크 리스트를 획득하도록 상기 각각의 거리 메트릭스를 정리하는 것에 의해 복구되고, 상기 하나 이상의 프루닝된 블록 중 특정의 것에 대한 상기 랭크 리스트에 있는 랭크 넘버는 상기 패치 라이브러리에 있는 상기 다수의 고해상도 패치 중 대응하는 것을 검색하도록 이용되어 상기 하나 이상의 프루닝된 블록 중 상기 특정의 것을 대체하도록 이용되는, 예시-기반 데이터 프루닝 방법.
  16. 제15항에 있어서, 상기 다수의 중첩 블록의 상기 대응하는 것에 대해 동일 위치 배치된 패치 이전의 패치들만이 상기 비교를 위해 이용되는, 예시-기반 데이터 프루닝 방법.
  17. 제15항에 있어서, 다수의 노드 및 다수의 에지를 가지는 패치 의존성 그래프는 상기 화상의 상기 프루닝된 버전을 복구하도록 이용되고, 각각의 상기 다수의 노드는 상기 다수의 비중첩 블록의 각각의 것을 나타내고, 각각의 상기 다수의 에지는 상기 다수의 비중첩 블록의 적어도 상기 각각의 것의 각각의 의존성을 나타내는, 예시-기반 데이터 프루닝 방법.
  18. 삭제
  19. 비디오 시퀀스에서 화상의 프루닝된 버전을 다수의 비중첩 블록으로 분할하기 위한 수단(115);
    상기 화상의 상기 프루닝된 버전을 복구하는데 이용하기 위한 메타데이터를 디코딩하기 위한 수단(125);
    상기 화상의 상기 프루닝된 버전의 복구 동안 하나 이상의 프루닝된 블록을 대체하기 위한 다수의 고해상도 대체 패치를 포함하는 패치 라이브러리를 상기 화상의 재구성 버전으로부터 생성하기 위한 수단(130); 및
    상기 다수의 비중첩 블록 중에서 상기 하나 이상의 프루닝된 블록의 각각의 것에 대한 대응 패치를 찾고 상기 하나 이상의 프루닝된 블록의 상기 각각의 것을 상기 대응 패치로 대체하도록, 상기 메타데이터를 이용하여 검색 프로세스를 수행하기 위한 수단(120)을 포함하되,
    상기 메타데이터는 각각의 상기 다수의 비중첩 블록에 대한 최상-매치 패치를 확인하기 위한 패치 인덱스와, 상기 다수의 비중첩 블록 중에서 하나 이상의 프루닝된 블록을 확인하기 위한 블록 확인기를 포함하는, 예시-기반 데이터 프루닝 장치.
  20. 제19항에 있어서, 상기 하나 이상의 프루닝된 블록들에 있는 모든 픽셀은 동일한 색상값 또는 저해상도 중 하나를 가지는, 예시-기반 데이터 프루닝 장치.
  21. 제20항에 있어서, 상기 하나 이상의 프루닝된 블록 중 특정한 것에 대한 상기 동일 색상값은 상기 하나 이상의 프루닝된 블록 중 상기 특정한 것에 있는 상기 픽셀의 색상값의 평균과 동일한, 예시-기반 데이터 프루닝 장치.
  22. 제19항에 있어서, 상기 다수의 고해상도 패치의 각각의 것의 평균 색상을 포함하는, 상기 패치 라이브러리에 대한 특징 벡터를 각각 발생시키는 것에 의해, 상기 패치 라이브러리에 포함된 각각의 상기 다수의 고해상도 패치를 위하여 시그너처가 각각 생성되는, 예시-기반 데이터 프루닝 장치.
  23. 제22항에 있어서, 상기 다수의 고해상도 패치의 상기 각각의 것에 대한 상기 특징 벡터에 포함된 상기 평균 색상은 상기 다수의 고해상도 패치의 상기 각각의 것에 대하여 주변 픽셀들을 추가로 포함하는, 예시-기반 데이터 프루닝 장치.
  24. 제22항에 있어서, 상기 시그너처는 각각의 상기 하나 이상의 프루닝된 블록에 대해 각각 생성되고, 상기 화상의 상기 프루닝된 버전은 각각의 상기 다수의 고해상도 패치를 위한 시그너처로부터 각각의 상기 하나 이상의 프루닝된 블록에 대한 시그너처까지의 각각의 거리 메트릭스를 비교하고 각각의 상기 하나 이상의 프루닝된 블록에 대한 랭크 리스트를 획득하도록 상기 각각의 거리 메트릭스를 정리하는 것에 의해 복구되고, 상기 하나 이상의 프루닝된 블록 중 특정의 것에 대한 상기 랭크 리스트에 있는 랭크 넘버는 상기 패치 라이브러리에 있는 상기 다수의 고해상도 패치 중 대응하는 것을 검색하도록 이용되어 상기 하나 이상의 프루닝된 블록 중 상기 특정의 것을 대체하도록 이용되는, 예시-기반 데이터 프루닝 장치.
  25. 제24항에 있어서, 상기 다수의 중첩 블록의 상기 대응하는 것에 대해 동일 위치 배치된 패치 이전의 패치들만이 상기 비교를 위해 이용되는, 예시-기반 데이터 프루닝 장치.
  26. 제24항에 있어서, 다수의 노드 및 다수의 에지를 가지는 패치 의존성 그래프는 상기 화상의 상기 프루닝된 버전을 복구하도록 이용되고, 각각의 상기 다수의 노드는 상기 다수의 중첩 블록의 각각의 것을 나타내고, 각각의 상기 다수의 에지는 상기 다수의 중첩 블록의 적어도 상기 각각의 것의 각각의 의존성을 나타내는, 예시-기반 데이터 프루닝 장치.
  27. 삭제
KR1020137009100A 2010-09-10 2011-09-09 예시-기반 데이터 프루닝을 이용한 비디오 디코딩 KR101838320B1 (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/050918 WO2012033965A1 (en) 2010-09-10 2011-09-09 Video decoding using example - based data pruning

Publications (2)

Publication Number Publication Date
KR20130139262A KR20130139262A (ko) 2013-12-20
KR101838320B1 true KR101838320B1 (ko) 2018-03-13

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 After (1)

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

Country Status (6)

Country Link
US (2) US20130163661A1 (ko)
EP (2) EP2614643A1 (ko)
JP (2) JP5905890B2 (ko)
KR (2) KR101838320B1 (ko)
CN (2) CN103202017B (ko)
WO (2) WO2012033965A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022030980A1 (ko) * 2020-08-04 2022-02-10 현대자동차주식회사 비디오 데이터의 패치북 기반 부호화 및 복호화를 위한 방법 및 장치
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

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102726044B (zh) * 2010-01-22 2016-08-10 汤姆逊许可证公司 使用基于示例的超分辨率的用于视频压缩的数据剪切
CN102823242B (zh) 2010-01-22 2016-08-10 汤姆森特许公司 基于取样超分辨率视频编码和解码的方法和装置
US9338477B2 (en) 2010-09-10 2016-05-10 Thomson Licensing Recovering a pruned version of a picture in a video sequence for example-based data pruning using intra-frame patch similarity
WO2012033972A1 (en) 2010-09-10 2012-03-15 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
WO2020255367A1 (ja) * 2019-06-21 2020-12-24 日本電信電話株式会社 符号化装置、符号化方法及びプログラム
US11432009B2 (en) * 2019-07-02 2022-08-30 Intel Corporation Techniques for encoding and decoding 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 哈尔滨工业大学 一种基于深度卷积自编码器的视觉同时定位与地图构建方法
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
JPH08502865A (ja) * 1992-09-01 1996-03-26 アプル・コンピュータ・インコーポレーテッド 改良されたベクトルの量子化
US5446806A (en) * 1993-11-15 1995-08-29 National Semiconductor Corporation Quadtree-structured Walsh transform video/image coding
EP0729688A1 (en) * 1993-11-15 1996-09-04 National Semiconductor Corporation Quadtree-structured walsh transform 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
WO2003102868A2 (en) * 2002-05-29 2003-12-11 Pixonics, Inc. Classifying image areas of 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
US8391368B2 (en) * 2005-04-08 2013-03-05 Sri International 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
BRPI0822815A2 (pt) * 2008-06-27 2015-06-30 Thomson Licensing Método e aparelho para compressão de textura utilizando síntese de textura de amostragem baseada em patch
US9571857B2 (en) * 2008-09-18 2017-02-14 Thomson Licensing Methods and apparatus for video imaging pruning
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.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
WO2022030980A1 (ko) * 2020-08-04 2022-02-10 현대자동차주식회사 비디오 데이터의 패치북 기반 부호화 및 복호화를 위한 방법 및 장치

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101838320B1 (ko) 예시-기반 데이터 프루닝을 이용한 비디오 디코딩
US9338477B2 (en) Recovering a pruned version of a picture in a video sequence for example-based data pruning using intra-frame patch similarity
CN111819852B (zh) 用于变换域中残差符号预测的方法及装置
US20190191184A1 (en) Methods and apparatus for transform selection in video encoding and decoding
US8649431B2 (en) Method and apparatus for encoding and decoding image by using filtered prediction block
JP7085009B2 (ja) マルチ符号ビット隠蔽及び残差符号予測を和合する方法及び装置
JP6071001B2 (ja) ブロックベースの混合解像度のデータ刈り込みを使用したビデオ復号化
US20090110070A1 (en) Image encoding device and encoding method, and image decoding device and decoding method
KR102011491B1 (ko) 템플릿 매칭을 이용한 영상 부호화 방법 및 장치, 그리고 복호화 방법 및 장치
KR101878515B1 (ko) 움직임 보상된 샘플 기반 초해상도를 이용한 비디오 인코딩
KR20120123132A (ko) 패치 시프팅을 통해 벡터 양자화 에러를 감소시키기 위한 방법들 및 장치
US20130272407A1 (en) Decoding of the link to a reference block in video compression by image content based search and ranking
CN113132734B (zh) 一种编码、解码方法、装置及其设备

Legal Events

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