KR101585016B1 - 고효율 비디오 코딩을 위한 콘텐츠 적응적 장애 보상 필터링 - Google Patents

고효율 비디오 코딩을 위한 콘텐츠 적응적 장애 보상 필터링 Download PDF

Info

Publication number
KR101585016B1
KR101585016B1 KR1020137017009A KR20137017009A KR101585016B1 KR 101585016 B1 KR101585016 B1 KR 101585016B1 KR 1020137017009 A KR1020137017009 A KR 1020137017009A KR 20137017009 A KR20137017009 A KR 20137017009A KR 101585016 B1 KR101585016 B1 KR 101585016B1
Authority
KR
South Korea
Prior art keywords
video
codebook
filter coefficient
coefficient values
quality
Prior art date
Application number
KR1020137017009A
Other languages
English (en)
Other versions
KR20130124517A (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 KR20130124517A publication Critical patent/KR20130124517A/ko
Application granted granted Critical
Publication of KR101585016B1 publication Critical patent/KR101585016B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of 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/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/18Methods 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 a set of transform coefficients
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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/172Methods 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 picture, frame or field
    • 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/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/184Methods 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 bits, e.g. of the compressed video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오 코딩과 함께, 또는 후처리를 위해 단독으로 사용될 수 있는 품질 복원 필터링하기 위한 시스템 및 방법을 설명한다. 이는 효율적인 코드북 표현과 함께 위너 필터링 접근법을 사용한다.

Description

고효율 비디오 코딩을 위한 콘텐츠 적응적 장애 보상 필터링{CONTENT ADAPTIVE IMPAIRMENTS COMPENSATION FILTERING FOR HIGH EFFICIENCY VIDEO CODING}
본 발명은 비디오 신호의 부호화 및 디코딩에 관한 것이고, 특히 품질 복원에 이용되는 적응 필터의 코드북(codebook) 기반의 인코딩 및 디코딩에 관한 것이다.
디지털 이미지, 스피치/오디오, 그래픽, 및 비디오 등의 디지털 멀티미디어의 출현은, 콘텐츠의 저장, 통신, 전송, 및 검색 및 액세스를 가능하게 한 상대적인 용이성에 기인한 완전 새로운 애플리케이션을 가능하게 했을 뿐만 아니라 다양한 애플리케이션을 상당히 향상시켰다. 대체로, 전반적으로, 디지털 멀티미디어의 응용 프로그램은 다수이고, 엔터테인먼트, 정보, 의료, 및 보안을 포함하여 광범위하게 아우르고, 다양한 방법으로 사회에 공헌하고 있다. 카메라 및 마이크로폰 등의 센서에 의해 포착되는 멀티미디어는 종종 아날로그이고 PCM(Pulse Coded Modulation)의 형태로의 디지털화 프로세스가 멀티미디어를 디지털로 만든다. 그러나, 디지털화 직후, 결과 데이터의 양은 스피커 및/또는 TV 디스플레이에 의해 필요한 아날로그 표현을 재생성하는 데 필요하므로 매우 중요하다. 따라서, 대용량 디지털 멀티미디어 콘텐츠의 효율적인 통신, 저장 또는 전송은 원시(raw) PCM 형태로부터 압축 표현으로의 압축을 요한다. 이에 따라, 멀티미디어의 압축을 위한 많은 기술이 발명되어 왔다. 수년에 걸쳐, 비디오 압축 기술은 매우 높은 시각 비주얼 품질을 유지하며 종종은 비압축 디지털 비디오와 유사하게 유지하면서 종종 10 내지 100의 압축비를 달성할 수 있을 정도로 매우 고도화되었다.
비디오 압축의 분야 및 과학에서 현재까지 엄청난 진보가 이루어져 왔지만(MPEG-1, MPEG-2, H.263, MPEG-4 part2, MPEG-4 AVC/H.264, MPEG-4 SVC 및 MVC 등의 많은 표준 단체 주도의 비디오 코딩에 의해 나타남), 및 Windows Media 비디오, RealVideo의, On2의 VP 등의 자체 기준을 견인 산업), 언제, 어디서나 액세스에 이용 가능한 더 높은 품질, 더 선명함, 및 나우 3D(입체)에 대한 계속해서 늘어나는 소비자의 욕구는 DVD/BD 등의 다양한 수단, 및 공중 방송(air broadcast), 케이블/위성, 유선 및 모바일 네트워크를 통해 PC/노트북, TV, 셋톱 박스, 게임 콘솔, 휴대용 미디어 플레이어/디바이스, 및 스마트 폰 등 폭 넓은 클라이언트 디바이스에 제공을 필요하게 만들었으며, 이는 훨씬 높은 수준의 비디오 압축에 대한 요구를 부채질한다. 표준 단체 주도의 표준에서는, 이것은 ITU-T의 표준화 위원회에 의해 몇 년에 걸친 H.265 비디오 압축에 대한 탐구 작업으로부터 신기술에 대한 공헌 및 기술을 결합하여 예상되는 고효율 비디오 코딩의 ISO MPEG에 의한 최근 시작된 노력에 의해 입증되고 있다.
모든 전술한 표준은, 과거의 디코딩된 프레임에 대해, 우선 프레임을 블록으로 분할하고 코딩될 프레임의 각 블록에 움직임 벡터/s를 할당함으로써 비디오의 프레임 간의 움직임을 보상하여 시간적 중복을 줄이는 것을 수반하는 일반적인 프레임간 예측 코딩 프레임 워크를 채용하고, 이어서 이들 움직임 벡터는 디코더에 전송되고 종종 변환 부호화(transform coding) 과거의 디코딩된 프레임과 차이나고 블록 단위로 코딩되는 움직임 보상 예측 프레임을 생성하는 데 이용된다. 그것은 오랫동안 높은 압축 계수에서 현재의 기술 코덱의 상태가 작용하는 높은 압축비에서는, 움직임 보상 변환 코딩 프로세스가 부호화 노이즈(예를 들면 모기 효과(mosquito effect), 블록킹, 블리딩(bleeding) 내지 링잉(ringing)에 걸친 부호화 결함을 발생시킬 수 있음은 오랫동안 인지되어 왔다. 실제로는, 일부 이들 부호화 결함을 완화시키기 위해, 최고 상태의 기술 코덱은 때때로 후처리 필터로서의 링잉뿐만 아니라 디블록킹 필터를 포함한다. 종종 디블록킹은, 루프 밖에서 행해질 수 있는 후처리에 비해 루프 내에서 행해진다. 종종 이러한 디블록킹은 비주얼 품질 결함을 억제할 수 있지만, 코덱에 의해 도입된 장애를 보상하지 않으며 이러한 디블록킹은 많은 부호화 품질 이득을 줄 수 없다.
이를 인식하고, 시각 및 코딩 품질 모두를 향상시킬 수 있는 추가 필터의 설계를 위해 지난 몇 년 동안 연구 노력이 진행되어 왔다. 코딩 품질은 비디오 시퀀스, 콘트라스트비, 노이즈 레벨, 및 동작 비트레이트의 내용에 의존하여 많이 변할 수 있으므로, 예측을 향상시키고 이에 따라 압축 효율을 향상시키는 것을 돕는 이러한 필터의 최대 이익을 얻도록 고정형보다 적응형인 것이 바람직하다. 필터 계수를 계산하는 데 사용되는 수학적 절차는 워너 호프(Wiener Hopf) 방정식에 기초하며, 모든 비디오 시퀀스의 프레임마다 직접 또는 달리 보내지는 필터 계수(예를 들면 5×5 또는 7×7 또는 9×9 계수의 배열)를 계산한다.
적응형 필터링의 기본적인 이론에 따라, 필터링 기본적인 이론에 따르면 상호상관 및 자기상관 행렬이 축적되고, 이로부터 다음과 같이 위너 호프(Wiener Hopf) 방정식을 풀어서 최적의 위너 필터가 계산될 수 있다.
x(n)는 입력 신호, y(n)는 출력, h(n)은 필터 계수를 나타내는 것으로 한다.
필터 출력 :
Figure 112013058317620-pct00001
에러 신호:
Figure 112013058317620-pct00002
평균 제곱 에러:
Figure 112013058317620-pct00003
벡터형:
Figure 112013058317620-pct00004
Figure 112013058317620-pct00005
Figure 112013058317620-pct00006
예기에서, Pd는 스칼라이다.
상호상관 행 벡터:
Figure 112013058317620-pct00007
자기상관 행렬:
Figure 112013058317620-pct00008
최소값을 구하기 위해, 다음과 같이 도함수를 취하고 제로로 설정한다.
Figure 112013058317620-pct00009
h에 대해 풀면, 위너 호프 방정식은 다음과 같다.
Figure 112013058317620-pct00010
위너 홉 방정식은 평균 제곱 오차에서 최적의 필터 계수를 결정하고 결과 필터를 '위너' 필터라고 한다.
상기 방정식에서, h는 필터 계수의 벡터이며, Rxx는 자기상관 행렬(또는 참조 프레임의 블록 데이터)이고 Rxx는 상호상관 행렬/행 벡터(소스 프레임과 참조 프레임 블록 데이터간)이다.
상술한 수학적 절차는 필터 계수를 계산할 수 있지만, 비디오 코딩 시스템에서 이 방법의 실질적인 통합에 중요한 문제가 있다. H.264 및 H.265 개발의 맥락에서, 픽쳐 기반(ALF), 블록 기반(ALF), 쿼드 트리 기반(QALF), 계수의 공간적 예측, 포스트필터(Postfilter)에 대해 다수의 제안이 이루어져 왔다.
그러나, 많은 자원을 필요로 하고(비분리형 필터는 분리형 필터보다 더 많은 계산을 필요로 함), 통상적으로 필터 계수를 계산하기 위해 3-12 전체 반복을 필요로 하여 반복적이고, 또한 프레임당 많은 계수(40-80 계수)를 보낼 필요가 종종 있고, 예를 들면 차분 코딩될 경우 CIF(Common Intermediate Format) 해상도 비디오의 프레임당 약 300-600비트가 들며 때때로 제한된 이득(예를 들면, 계수의 라운딩(rounding)으로 인해 표준 계수가 콘텐츠 등에 양호하게 정합됨), 추가적인 몇몇 방법은 이러한 필터가 '온' 또는 '오프‘되어 있는 경우 블록을 지시하기 위해 매크로블록 또는 쿼드트리 기반 블록 맵을 보내며, 이러한 프로세스는 또 다른 200-400 비트의 부가 비트 비용을 증가시켜 총비트가 프레임당 500-1000비트 비용이 된다. 이로 인해, 이러한 시스템은 부가 비트 비용이 비싸지고, 유연성이 없으며, 지나치게 복잡해진다.
적응형 필터링에 관련된 추가 정보는 다음의 참조 문헌에서 찾을 수 있으며, 이들 각각은 다목적으로 참조에 의해 그 전문이 여기에 포함된다.
·T. Chujoh et al, "Block Based Adaptive Loop Filter," ITU- Telecommunications Standardization Sector, VCEG, VCEG-AI18, Germany, July 2008.
·T. Chujoh et al, "Specification and experimental results of Quad-tree- based Adaptive Loop Filter," ITU-Telecommunications Standardization Sector, VCEG, VCEG-AK22, Japan, April 2009.
도 1은 일 실시예에 따른 예시적인 비디오 인코딩/디코딩 시스템을 나타낸 도면.
도 2는 일 실시예에 따른 예시적인 인코딩 디바이스의 일부 구성 요소를 나타낸 도면.
도 3은 일 실시예에 따른 예시적인 디코딩 디바이스의 일부 구성 요소를 나타낸 도면.
도 4는 일 실시예에 따른 품질 복원("IC") 필터 계수의 복수의 세트를 나타내는 코드북을 생성하는 "오프라인" 루틴을 나타낸 도면.
도 5a 내지 도 5g는 다양한 실시예에 따른 품질 복원 필터링에서 사용되는 다양한 필터의 계수-픽셀 위치를 나타낸 도면.
도 6a 내지 도 6d는 다양한 실시예에 따른 품질 복원 필터링에서 사용되는 다양한 필터의 예시적인 필터를 나타낸 도면.
도 7은 일 실시예에 따른 IC 코드북 필터 인코더를 포함하는 비디오 인코더를 나타낸 도면.
도 8은 일 실시예에 따른 IC 코드북 필터 디코더를 포함하는 비디오 디코더를 나타낸 도면.
도 9는 일 실시예에 따른 IC 코드북 필터 인코더를 나타낸 도면.
도 10a 내지 도 10f는 다양한 실시예가 적용될 수 있는 픽쳐의 다양한 구성을 나타낸 도면.
도 11은 일 실시예에 따른 IC 코드북 필터 디코더를 나타낸 도면.
도 12는 일 실시예에 따른 고속 IC 코드북 필터 인코더를 나타낸 도면.
도 13은 일 실시예에 따른 인코더에 의해 행해질 수 있는 IC 필터 코드북 탐색 루틴을 나타낸 도면.
도 14는 일 실시예에 따른 스펙트럼 업데이트 인코더를 갖는 고속 IC 코드북 필터 인코더를 나타낸 도면.
도 15는 일 실시예에 따른 IC 코드북 필터 디코더를 나타낸 도면.
도 16a 및 도 16b는 다양한 실시예에 의해 사용되는 예시적인 변환 계수 스캐닝 및 마스크를 나타낸 도면.
도 17은 일 실시예에 따른 스펙트럼 업데이트 인코더 및 업데이트 가능 코드북을 갖는 고속 IC 코드북 필터 인코더를 나타낸 도면.
도 18은 일 실시예에 따른 IC 코드북 필터 디코더를 나타낸 도면.
도 19은 다양한 실시예에 따른 IC 코드북 필터 인코더 및 디코더에 대한 예시적인 비트스트림 구문을 나타낸 도면.
도 20a 및 도 20b는 다양한 실시예에 따른 비디오 스트림 내의 픽쳐 또는 프레임의 시퀀스를 나타낸 도면.
도 21은 일 실시예에 따른 코드북을 이용하여 비디오의 픽쳐용 IC 필터를 비트스트림으로 인코딩하는 루틴을 나타낸 도면.
도 22는 일 실시예에 따른 IC 필터 계수-세트 업데이트 서브루틴을 나타낸 도면.
도 23은 일 실시예에 따른 하나 이상의 코드북을 이용하여 비디오의 픽쳐용 IC 필터를 비트스트림으로 인코딩 및 업데이트하는 루틴을 나타낸 도면.
도 24은 일 실시예에 따른 하나 이상의 코드북을 이용하여 비트스트림으로부터 비디오의 픽쳐용 IC 필터를 디코딩하는 루틴을 나타낸 도면.
다음의 상세한 설명은 프로세서, 프로세서에 대한 메모리 저장 디바이스, 피연결 디스플레이 디바이스 및 입력 디바이스를 포함하는 종래의 컴퓨터 구성 요소의 프로세스 및 동작의 부호 표현에 의해 주로 나타낸다. 또한, 이들 프로세스 및 동작은 원격 파일 서버, 컴퓨터 서버 및 메모리 저장 디바이스를 포함한 이종 분산 컴퓨팅 환경에서 종래의 컴퓨터 구성 요소를 사용할 수 있다. 이러한 종래의 분산 컴퓨팅 구성 요소 각각은 통신 네트워크를 통해 프로세서에 의해 액세스 가능하다.
문구 "일 실시예에서", "다양한 실시예에서", "일부 실시예에서" 등이 반복적으로 사용된다. 이러한 문구가 반드시 동일한 실시예를 가리키는 것은 아니다. 문맥에서 달리 기술되지 않는다면, "포함하는", "갖는“ 등의 용어는 동의어이다.
후술하는 바와 같이, 다양한 실시예에 따르면, 움직임 보상 비디오 코딩의 코딩 효율을 향상시키기 위해 필터링을 행하는 품질 복원 필터 계수 및 코드북 기반 표현을 행하는 데 콘텐츠 적응형 기술이 채용될 수 있다. 본원에서는, 다양한 실시예에 의하면, 다음에 설명한다. 프레임간 비디오 코딩의 예측 효율을 향상시키는 비디오의 품질 복원 필터링에 대한 다양한 시스템 및 방법을 기술한다.
후술하는 다양한 기술은, 필터 자체를 전송하는 것이 아니라, 코드북에 저장되어 있는 필터의 인덱스만을 전송할 수 있으므로, 비트에 있어서 효율적이다. 인덱스의 코딩은 실제 계수를 코딩하거나 차동 인코딩된 필터 계수를 보내는 것보다 효율적이다. 전송되는 실제 인덱스의 수는 파티션 수에 의존하며, 후술하는 기술은 유사한 파티션 유형을 이용하는 이전 접근법보다 비트레이트에 있어서 더 효율적일 수 있다.
후술하는 기술은 기존의 비코드북 기반 솔루션과 달리, 추가적으로 저감된 계산 복잡도를 제공할 수 있으며, 서로 다른 크기(예를 들면 5×5, 7×7, 9×9) 및 유형(예를 들면, 비대칭 및 점 대칭)의 위너 필터를 동시에 계산할 필요를 피할 수 있고, 필터가 적용될 블록 맵을 반복적으로 계산하고, 이어서 다시 철저한 레이트 디스토션 최적화에 의거하여 최선의 후보를 선택하기 위해 이들 사이즈 및 유형의 향상된 필터를 다시 재계산할 필요를 피할 수 있다. 대신, 후술하는 기술은 필터 사이즈 및 필터 유형을 결정하기 위해 콘텐츠 기반 처리에 의존하며, 필요할 경우 블록맵을 이용하는 능력을 유지한다. 동시에, 후술하는 기술은 최적의 후보를 결정하기 위해 효율적으로 코드북을 탐색할 수 있다.
또한, 후술하는 기술은 상대적으로 적은 비트에서 스펙트럼 업데이트(계수 자체를 보내는 것보다 여전히 더 효율적임)를 갖는 코드북으로부터 이용 가능한 최선의 필터를 수정하는 기능을 제공하면서 코드북의 사용을 허용하는 유연함을 제공할 수 있다. 스펙트럼 업데이트의 정확성을 제어될 수 있다. 또한, 후술하는 기법은 코딩될 비디오 시퀀스에 더 적합할 수 있는 수정된 필터를 추가함으로써 코드북의 부분이 교체되거나 코드북이 확장되게 할 수 있다.
후술하는 기술은 픽쳐, 슬라이스 그룹, 블록 맵, 병합된 블록 맵, 또는 바이(bi) 트리, 쿼드 트리, 또는 콘텐츠 의존 영역에 작용할 수 있다. 또한, 콘텐츠 의존 파티션과 함께 작용하는 후술하는 기술의 능력은 레이트 디스토션 최적화만으로 구동되는 다른 기술에 비해 복잡도를 저감하고 정밀도를 향상시킬 수 있다.
필터 코드북의 설계 및 코드북의 효율적인 검색에 대한 상세는 후술한다. 코드북 설계의 상세한 방법으로 제안된 코드북 크기 방법에 대해 후술하는 기법은 양호한 품질 복원 필터링이 될 것이며, 폭넓은 스펙트럼에 대한 예측 효율을 향상시킬 수 있다.
다양한 실시예에서, 후술하는 기술은 I-, P-, B-픽쳐 코딩으로 구성된 전통적인 픽쳐 구조를 사용하는 전형적인 비디오 코딩에 통합될 수 있다. 다른 실시예에서, 후술하는 기술은 계층적 B-픽쳐, 단방향 B-픽쳐, 및/또는 B-픽쳐 대안 등의 I- 및 P-픽쳐에 추가하여 다른 구조를 이용하는 비디오 코딩에 통합될 수 있다.
다양한 실시예에서, 후술하는 코드북 기반 품질 복원(Impairments-Compensation(IC))은 필터링된 픽쳐의 디스플레이 없는 인-루프, 필터링된 픽쳐의 디스플레이를 갖는 인-루프, 및/또는 필터링된 픽쳐의 디스플레이를 갖는 포스트-처리만으로서 이용될 수 있다. 그 사용 인-루프는 비주얼 품질 향상에 추가하여 압축 효율 이득의 향상을 가능하게 할 수 있다.
이하, 도면에 예시된 실시예의 설명을 상세히 참조한다. 실시예는 도면 및 관련 설명과 연계하여 설명되어 있지만, 본원에 개시된 실시예에 범주를 제한할 의도는 없다. 반대로 모든 대체, 변형 및 그에 상당하는 것을 포함하는 것을 의도한다. 대체 실시예에서, 추가 디바이스 또는 도시된 디바이스의 조합은 본원에 개시된 실시예의 범주를 제안하지 않고 추가되거나 조합될 수 있다.
도 1은 비인코딩된 비디오 소스(115), 인코딩 디바이스(200)(도 2 참조, 후술함), 선택적 외부 디스플레이(125)를 갖는 디코딩 디바이스(300)(도 3 참조, 후술함), 및 선택적 인코딩된 비디오 소스(120)를 포함하는 일 실시예에 따른 예시적인 비디오 인코딩/디코딩 시스템(100)을 나타낸다. 일부 실시예에서, 인코딩 디바이스(200) 및/또는 디코딩 디바이스(300)의 한쪽 또는 양쪽 모두가 네트워크(150)에 연결될 수 있다. 일부 실시예에서, 디코딩 디바이스(300) 및 인코딩 디바이스(200)는 단일 디바이스를 포함할 수 있다.
일부 실시예에서, 다른 서버 및/또는 디바이스(도시 생략)이 존재해도 된다. 예를 들면, 일부 실시예에서, 분산 서버(도시 생략)은 네트워크(150)을 통해 디코딩 디바이스(300)에 인코딩된 비디오를 분산시킬 수 있다.
일부 실시예에서, 인코딩 디바이스(200)는 네트워크(150), 스토리지 에어리어 네트워크("SAN"), 고속 직렬 버스, 및/또는 다른 적절한 통신 기술을 통해 비인코딩된 비디오 소스(115)와 통신할 수 있다. 마찬가지로, 일부 실시예에서, 디코딩 디바이스(300)는 네트워크(150), 스토리지 에어리어 네트워크("SAN"), 고속 직렬 버스, 및/또는 다른 적절한 통신 기술을 통해 선택적 인코딩된 비디오 소스(120)와 통신할 수 있다. 일부 실시예에서, 인코딩 디바이스(200), 디코딩 디바이스(300), 인코딩된 비디오 소스(120), 및/또는 비인코딩 비디오 소스(115)는 하나 이상의 복제 및/또는 분산된 물리적 또는 로직적 디바이스를 포함할 수 있다.
다양한 실시예에서, 네트워크(150)는 인터넷, LAN(local area network), WAN(wide area network), 셀룰러 데이터 네트워크, 및/또는 다른 데이터 네트워크를 포함할 수 있다. 많은 실시예에서, 도시된 것보다 많은 인코딩 디바이스(200), 디코딩 디바이스(300), 인코딩된 비디오 소스(120), 및/또는 비인코딩된 비디오 소스(115)가 있을 수 있다.
도 2는 일 실시예에 따른 예시적인 인코딩 디바이스(200)의 일부 구성 요소를 나타낸다. 일부 실시예에서, 인코딩 디바이스(200)는 도 2에 나타낸 것보다 더 많은 구성 요소를 포함할 수 있다. 그러나, 이들 일반적인 기존의 구성 요소 모두를 예시적인 실시예를 개시하기 위해 나타낼 필요는 없다. 도 2에 나타낸 바와 같이, 인코딩 디바이스(200)는 선택적으로 네트워크(150)에 연결되는 네트워크 인터페이스(230)를 포함한다.
인코딩 디바이스(200)는 처리 유닛(210), 메모리(250), 선택적 출력 디바이스 및/또는 디스플레이(240), 및 선택적 입력 디바이스(270)(예를 들면, 키보드, 마우스, 리모콘, 조이스틱 등)를 포함하며, 이들 모두는 버스(220)를 통해 선택적 네트워크 인터페이스(230)와 함께 상호 연결된다. 메모리(250)는 일반적으로 RAM(random access memory), ROM(read only memory), 및 디스크 드라이브 등의 영구적인 대용량 저장 디바이스를 포함한다. 메모리(250)는 IC 필터 코드북(265), IC 필터링(260)을 갖는 비디오 인코더용 프로그램 코드, IC 필터 코드북 생성 루틴(400)(도 4 참조, 후술함), IC 필터 코드북 검색 루틴(1300)(도 13 참조, 후술함), IC 필터 코드북 인코딩 루틴(도 21 참조, 후술함), 및 멀티-코드북 IC 필터 코드북 인코딩 루틴(도 23 참조, 후술함)을 저장한다. 또한, 메모리(250)는 운영 체제(255)도 저장한다. 이러한 소프트웨어 구성 요소는 플로피 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등과 같은 비일시적인 컴퓨터 판독 가능한 저장 매체(295)와 연관된 드라이브 메커니즘(도시 생략)을 이용하여 컴퓨터 판독 가능한 저장 매체(295)로부터 인코딩 디바이스(200)의 메모리(250)에 로드될 수 있다. 또한, 일부 실시예에서, 소프트웨어 구성 요소는 컴퓨터 판독 가능한 저장 매체(295)가 아닌 선택적 네트워크 인터페이스(230)를 통해 로드될 수 있다.
일부 실시예에서, 인코딩 디바이스(200)는 고속 직렬 버스 등의 비인코딩 비디오 소스(115)와 통신하기 위한 특수 인터페이스(235)를 더 포함할 수 있다. 일부 실시예에서, 인코딩 디바이스(200)는 네트워크 인터페이스(230)를 통해 비인코딩 비디오 소스(115)와 통신할 수 있다. 다른 실시예에서, 비인코딩 비디오 소스(115)는 메모리(250)에 상주할 수 있다.
일반적으로 종래의 범용 컴퓨팅 디바이스에 따르는 예시적인 인코딩 디바이스(200)를 설명했지만, 인코딩 디바이스(200)는 비디오를 인코딩할 수 있는 다수의 디바이스, 예를 들면 비디오 녹화 디바이스, 비디오 코프로세서(co-processor) 및/또는 악셀레이터, 개인용 컴퓨터, 게임 콘솔, 셋톱 박스, 휴대용 컴퓨터, 휴대 전화, 또는 임의의 다른 적절한 디바이스 중 어느 것일 수 있다.
도 3은 일 실시예에 따른 예시적인 디코딩 디바이스(300)의 일부 구성 요소를 나타낸다. 일부 실시예에서, 디코딩 디바이스(300)는 도 3에 나타낸 것보다 많은 구성 요소를 포함할 수 있다. 그러나, 이들 일반적으로 종래의 구성 요소 모두를 예시적인 실시예를 개시하기 위해 나타낼 필요는 없다. 도 3에 나타낸 바와 같이, 디코딩 디바이스(300)는 선택적으로 네트워크(150)에 연결되는 선택적 네트워크 인터페이스(330)를 포함한다.
디코딩 디바이스(300)는 처리 유닛(310), 메모리(350), 선택적 출력 디바이스 및/또는 디스플레이(340), 및 선택적 입력 디바이스(370)(예를 들면, 키보드, 마우스, 리모콘, 조이스틱 등)를 포함하며, 이들 모두는 버스(320)를 통해 선택적 네트워크 인터페이스(330)와 함께 상호 연결된다. 메모리(350)는 일반적으로 RAM(random access memory), ROM(read only memory), 및 디스크 드라이브 등의 영구적인 대용량 저장 디바이스를 포함한다. 메모리(350)는 IC 필터링(360)을 갖는 비디오 디코더용 프로그램 코드, IC 필터 코드북(365)(IC 필터 코드북(265)의 사본), IC 필터 코드북 디코더(360)용 프로그램 코드, 및 IC 필터 코드북 디코딩 루틴(도 24 참조, 후술함)을 저장한다. 또한, 메모리(350)는 운영 체제(355)도 저장한다. 이러한 소프트웨어 구성 요소는 플로피 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등과 같은 비일시적인 컴퓨터 판독 가능한 저장 매체(395)와 연관된 드라이브 메커니즘(도시 생략)을 이용하여 컴퓨터 판독 가능한 저장 매체(395)로부터 디코딩 디바이스(300)의 메모리(350)에 로드될 수 있다. 또한, 일부 실시예에서, 소프트웨어 구성 요소는 컴퓨터 판독 가능한 저장 매체(395)가 아닌 선택적 네트워크 인터페이스(330)를 통해 로드될 수 있다.
일부 실시예에서, 디코딩 디바이스(300)는 고속 직렬 버스 등의 인코딩된 비디오 소스(120)와 통신하기 위한 특수 인터페이스(335)를 더 포함할 수 있다. 일부 실시예에서, 디코딩 디바이스(300)는 네트워크 인터페이스(330)를 통해 인코딩된 비디오 소스(120)와 통신할 수 있다. 다른 실시예에서, 인코딩된 비디오 소스(115)는 메모리(350)에 상주할 수 있다.
일반적으로 종래의 범용 컴퓨팅 디바이스에 따르는 예시적인 디코딩 디바이스(300)를 설명했지만, 디코딩 디바이스(300)는 비디오를 디코딩할 수 있는 다수의 디바이스, 예를 들면 비디오 재생 디바이스, 개인용 컴퓨터, 게임 콘솔, 셋톱 박스, 휴대용 컴퓨터, 휴대 전화, 또는 임의의 다른 적절한 디바이스 중 어느 것일 수 있다.
도 4는 일 실시예에 따른 IC 필터 계수의 복수의 세트를 나타내는 코드북을 생성하는 "오프라인" 루틴(400)을 나타낸다. 일부 실시예에서, 루틴(400)은 실행하는 데 몇 시간 또는 며칠이 걸릴 수 있다.
블록(405)에서, 다수(예를 들면 25 ~ 50)의 비디오 시퀀스(각각 다수(예를 들면 20 ~ 100)의 프레임을 가짐)를 포함하는 테스트 세트가 얻어진다. 일부 실시예에서, 일부 또는 모든 비디오 시퀀스는 하나 이상의 기존 비디오 시퀀스로부터 선택될 수 있다. 다른 실시예에서, 비디오 시퀀스의 일부 또는 모두가 루틴(400)에서 사용하기 위해 전개될 수 있다. 일부 실시예에서, 비디오 시퀀스의 일부 또는 모두는 높은 콘트라스트, 낮은 콘트라스트, 높은 움직임, 낮은 움직임, 밝음, 어두움 등의 다양한 특성을 가질 수 있다. 블록(410)에서, 하나 이상의 필터 사이즈가 선택된다. 예를 들면, 일 실시예에서, 5×5, 7×7, 및 9×9 필터 사이즈 중 하나 이상이 선택될 수 있다. 블록(415)에서, 하나 이상의 대상 비트레이트가 선택된다. 예를 들면, 일 실시예에서, 낮은, 중간, 높은 비트레이트 중 하나 이상이 선택될 수 있다.
루프 블록(420)에서 시작되어, 필터 사이즈 각각이 순서대로 처리된다. 루프 블록(425)에서 시작되어, 비디오 시퀀스의 각각이 순서대로 처리된다. 루프 블록(430)에서 시작되어, 선택된 비트레이트의 각각이 순서대로 처리된다. 루프 블록(435)에서 시작되어, 현재의 비디오 시퀀스 내의 각 픽쳐 또는 프레임이 순서대로 처리된다.
블록(440)에서, 현재의 픽쳐는 비디오 인코더에 의해 인코딩된다. 블록(445)에서, 위너 필터가 원래 인코딩된 픽쳐와 원래의 비인코딩된 비디오를 비교함으로써 현재의 픽쳐, 필터 사이즈, 및 비트레이트에 대해 계산된다. 블록(450)에서, 계산된 위너 필터는 후보 위너 필터로 적어도 일시적으로 저장된다.
엔딩 루프 블록(455)에서, 현재의 비디오 시퀀스에서 다음 픽쳐를 처리하기 위해(있을 경우) 루틴(400)은 블록(435)으로 되돌아간다. 엔딩 루프 블록(460)에서, 다음 비트레이트를 처리하기 위해(있을 경우) 루틴(400)은 블록(430)으로 되돌아간다. 엔딩 루프 블록(465)에서, 다음 비디오 시퀀스를 처리하기 위해(있을 경우) 루틴(400)은 블록(425)으로 되돌아간다.
모든 비디오 시퀀스의 모든 픽쳐가 비트레이트마다 처리되었고, 블록(470)에서 계산된 후보 위너 필터 중에서 구별되는 서브세트(예를 들면 256)다른 위너 필터의 일부(예를 들면 256)는 일련의 필터 특성(예를 들면, 스무드한 것으로부터 샤프한 것까지) 낮은 콘트라스트로부터 높은 콘트라스까지를 포함하도록 선택된다.
블록(475)에서, 선택된 필터의 서브세트는 예를 들면 스무드한 것으로부터 샤프한 것까지(도 6a~6d 참조) 중심 계수(또는 다른 대표적인 파라미터)에 따라(예를 들면, 오름차순) 분류되고 현재의 필터 사이즈에 대한 필터 계수의 코드북에 저장된다.
엔딩 루프 블록(480)에서, 루틴(400)은 다음 필터 사이즈(있을 경우)를 처리하기 위해 블록(420)으로 되돌아간다. 필터 사이즈마다 코드북을 생성하고, 루틴(400)은 블록(499)에서 종료되고, 생성된 코드북은 다양한 인코더 및 디코더에 의한 사용을 위해 이용 가능해진다.
도 5a ~ 도 5d는 다양한 실시예에서 품질 복원 필터링에 사용될 수 있는 3×3, 5×5, 7×7, 및 9×9 비분리형 필터의 IC 필터 계수의 세트를 각각 나타낸다. 예를 들면, 도 5a에 나타낸 바와 같이, 3×3 필터의 경우에는 3×3 필터 계수(505)를 적용함으로써 픽셀 단위로 필터링된 디코딩된 픽쳐를 생성할 수 있고, 픽셀과 정렬되는 중심 계수(C11)가 그 픽셀의 가중치를 이용하여 필터링되고, 둘레의 5개의 픽셀이 필터 계수에 의해 주어진 가중값으로 필터링된다. 필터는 비분리형이므로, 모두 9개의 계수가 고유한 값을 가질 수 있다. 마찬가지로, 9×9 비대칭 필터링의 경우는, 도 5d에 나타낸 바와 같이, 필터링되는 픽셀이 중심 계수(C44)와 정렬되고 그 픽셀 이외에 둘레의 50개의 픽셀을 이용하며, 각각의 필터링되는 픽셀은 51개의 픽셀의 가중 조합이며, 필터링되는 픽셀은 예측, 아마 심지어 디스플레이에 대한 기준으로서 사용될 수 있는 별개의 필터링된 디코딩된 필터로서 기록된다. 다양한 실시예에서, 도 5b 및 도 5c에 나타낸 계수(510, 515)는 동일하게 적용될 수 있다.
마찬가지로, 도 5e ~ 도 5h는 각각 일부 실시예에서 필터링 품질 복원에 사용될 수 있는 3×3, 5×5, 7×7, 및 9×9 점 대칭 필터의 계수를 나타내고 있다. 예를 들면, 도 5e에 나타낸 바와 같이, 3×3 필터의 경우에는 3×3 필터 계수(525)를 적용함으로써 픽셀 단위로 필터링된 디코딩된 픽쳐를 생성할 수 있고, 픽셀과 정렬되는 중심 계수(C11)가 그 픽셀의 가중치를 이용하여 필터링되고, 둘레의 5개의 픽셀이 필터 계수에 의해 주어진 가중값으로 필터링된다. 필터는 점 대칭이기 때문에, 5개의 계수 c00, c01, c02, c10, c11만이 고유한 값을 가지며 다른 계수는 단순히 대각으로 대칭이다. 마찬가지로, 도 5h에 나타낸 바와 같이, 9×9 점 대칭 필터링의 경우에, 41개의 계수만이 고유하고, 다른 것은 대각으로 대칭이다. 필터링되는 픽셀이 중심 계수(C44)와 정렬되고 그 픽셀 이외에 둘레의 50개의 픽셀을 이용하며, 각각의 필터링되는 픽셀은 51개의 픽셀의 가중 조합이며, 필터링되는 픽셀은 예측, 아마 심지어 디스플레이에 대한 기준으로서 사용될 수 있는 별개의 필터링된 디코딩된 필터로서 기록된다. 다양한 실시예에서, 도 5f 및 도 5g에 나타낸 계수(530, 535)와 동일하게 적용될 수 있다.
도 6a는 품질 복원 필터링에 사용되는 9×9 비분리형 '샤프' 필터의 예시적인 계수를 나타낸다. 도 6b는 품질 복원 필터링에 사용되는 9×9 점 대칭의 '샤프' 필터의 예시적인 계수를 나타낸다. 도 6c는 품질 복원 필터링에 사용되는 9×9의 비분리형 '스무드' 필터의 예시적인 계수를 나타낸다. 도 6d는 품질 복원 필터링에 사용되는 9×9 점 대칭의 '스무드' 필터의 예시적인 계수를 나타낸다.
도 7은 일 실시예에 따라 움직임 보상 예측 및 코드북 기반 인루프 품질 복원 필터링을 채용하는 프레임간 인코더(700)의 일반적인 블록도를 나타낸다. 하나 이상의 비디오 프레임(vidfrms)이 블록 인덱서(701) 및 씬 콘텐츠 분석부(703)에 제공된다. 씬 콘텐츠 분석부(703)는 하나 이상의 비디오 프레임(vidfrms)을 분석하고 현장 변경(scnchg), 및 씬 콘트라스트(contr) 및 프레임 내의 영역 경계(regbnd) 등의 이미지 특성을 나타낸다. 블록 인덱서(701)는 하나 이상의 비디오 프레임(vidfrms)을 블록(blks)으로 분할하고, 이 블록은 한번에 하나씩 차분기(733)에 입력되고 대응하는 예측 신호 블록(pred)과 차분된다. 블록(blks)도 움직임 추정부(728)(후술함)에 제공된다. 차분기(733)에서의 차분 후에, 결과의 나머지(res)는 변환부(735)에 의해 주파수 도메인 표현으로 순변환되어 엔트로피 코더(718) 및 역 양자화기(740) 모두에 보내지는 양자화 계수(qcf)의 블록으로 된다. 역 양자화기(740)는 계수(tcof‘)의 역 양자화된 블록을 역 변환부(743)에 보낸다. 가산기(745)에서, 움직임 보상 루프로부터의 예측 블록(pred)이 역 변환부(743)의 출력에서 역양자화된 나머지 블록(res’)에 부가된다. 가산기(745)는 로컬 디코딩된 블록(rec)을 출력하고, 이어서 블록 현상을 저감하는 프레임 어셈블러 및 디블록 필터 프로세서(748)에 보내진다. 프레임 어셈블러 및 디블록 필터 프로세서(748)에서의 블록(recd)은 품질 복원 재구축 프레임(recf)에 대한 IC 코드북 필터 인코더(750)에 의해 처리되는 프레임을 형성하며, 이는 움직임 추정부(728) 및 움직임 보상 예측부(730)에 대한 기준 프레임으로서 이용된다. 움직임 추정부(728)는, 품질 복원 재구축 프레임(recf)에 대해 원래의 비디오 프레임의 블록(blks) 사이에 움직임 벡터(mv)를 계산한다. 일부 실시예에서, 움직임 벡터 계산 프로세스는 블록마다 정화소(integer pel) 벡터를 계산하고, 이어서 하위 화소 벡터(예를 들면, ¼ 화소 해상도)를 계산하는 것을 포함한다. 엔트로피 코더(718)는 양자화 변환 계수(qcf), 차동 움직임 벡터(dmv), 및 다른 데이터(IC 코드북 필터 인코더(750)로부터 압축된 비트스트림(728)을 생성하는 하나 이상의 신호(753)을 포함)를 인코딩한다. 일부 실시예에서, 엔트로피 코더(718)는 또한 IC 코드북 필터 인코더(750)에 비트 카운트(btcnf)를 제공할 수 있다.
도 8은 대응하는 디코더를 나타내며, 인코더(700)에서 로컬 디코딩 루프(755)와 마찬가지로 작동한다. 구체적으로, 디코딩되는 압축 비트스트림(801)은, 양자화 계수 블록(qcf), 차동 움직임 벡터(dmv), 및 IC 코드북 필터 디코더(820)(예를 들면, 도 10, 도 13, 도 15 및 도 18 참조, 후술함)에 제공될 수 있는 제어 신호(818)를 포함하는 다른 데이터의 블록을 디코딩하는 엔트로피 디코더(803)에 입력된다. 이어서, 양자화 계수 블록(qcf)은 역 양자화부(813)에 의해 역 양자화되어, 역양자화 계수(tcof‘)가 된다. 이어서, 역 양자화 계수(tcof’)는 역 변환부(815)에 의해 주파수 도메인으로부터 역 변환되어, 디코딩된 나머지 블록(res’)으로 된다. 가산기(823)는 대응하는 움직임 벡터(MV)를 이용하여 얻어진 움직임 보상 예측 블록(pred)을 추가한다. 결과의 디코딩된 비디오(rec)는 프레임 어셈블러 및 디블록 필터링 프로세서(825)에 의해 디블록 필터링된다. 인코더(800)에서와 같이, 프레임 어셈블러 및 디블록 필터 프로세서(825)에서의 블록(recd)은 품질 복원 재구축 프레임(recf)에 대한 IC 코드북 필터 디코더(820)에 의해 처리되는 프레임을 형성하며, 이는 움직임 보상 예측부(830)에 대한 기준 프레임으로서 이용된다. 움직임 보상 예측부(830)는 하위 화소 보간을 이용하는 인코더(700)에서 움직임 보상 예측부(730)와 동일한 방식으로 작용한다.
도 9는 일 실시예에 따른 IC 코드북 필터 인코더(900)을 나타낸다. 비디오 프레임(도시 생략)은 블록(blks)으로 분할되어 한번에 하나씩 인코더(900)에 입력된다. 또한 인코더(900)에는 제구축 신호(recd)가 제공된다.
공간 분할 및 파티션 인코더(905)는 후보 파티션 맵(cand. ptmap) 및 유형(cand. pttyp)을 결정하며, 이들은 비트레이트/디스토션 트레이드오프 분석부(908)에 제공된다. 예를 들면, 일 실시예에서, 후보 파티션 맵(cand. ptmap)은 이진(binary) 맵(2종류의 영역 또는 블록 유형만이 존재할 경우), 삼항(trinary) 맵(3종류의 영역 또는 블록만이 존재할 경우), 2개의 이진 맵 등을 포함할 수 있다.
비트레이트/디스토션 트레이드오프 분석부(908)는 파티션 맵(선택되는 ptmap 또는 간단히 ptmap) 및 파티션의 유형(선택되는 pttyp 또는 단순히 pttyp)을 선택하고, 이들은 공간 분할 및 파티션 인코더(905)로 되돌아가서 IC 필터링 프로세서(915)에 전달된다. 또한, 일부 실시예에서, 파티션 맵(ptmap)은 디코더에 전송을 위해 엔트로피 인코더(918)에 의해 비트스트림(928)으로 인코딩될 수 있다. 그러나 원시 형태(예를 들면 0/1 마스크 또는 다수의 0/1 마스크들)에서 파티션 맵(ptmap)은 원시 형태로 전송하는 데 상대적으로 높은 비트 비용을 가질 수 있다. 따라서, 많은 실시예에서, 파티션 맵(ptmap)의 압축 버전(코딩된 파티션 맵(ptmapc)이라 함)이 생성되고 엔트로피 코더(918)에 의해 비트스트림(928)으로 인코딩된다. 무손실 압축을 사용할 경우, 디코더는 코딩된 파티션 맵(ptmapc)를 디코딩하고 디코더에서 사용을 위한 정확한 파티션 맵(ptmap)을 얻을 수 있다. 다양한 실시예에서, 코딩된 파티션 맵(ptmapc)을 생성하기 위해 인코딩 파티션 맵(ptmap)을 인코딩하는데 사용하는 압축 방법은 호프만(Huffman) 코딩, 런/길이 코딩, 산술 코딩 또는 무손실 코딩 기술 등을 포함할 수 있다. 또한, 일부 경우에, 무손실 압축은 파티션 맵(ptmap)을 전송하는 데 비트 비용을 충분히 감소시킬 수 없다. 이러한 경우에, 코딩된 파티션 맵(ptmapc)은 손실 압축 기술을 통해 생성될 수 있다.
다양한 실시예에 따르면, 다양한 서로 다른 파티션 모드가 공간 파티셔너 및 파티션 인코더(905) 및/또는 비트레이트/디스토션 트레이드오프 분석부(908)에 의해 채용될 수 있다. 다양한 실시예에서, 본원에서 설명하는 방법은, 프레임, 영역, 또는 세크먼트, 슬라이스의 그룹, 단일 슬라이스, 프레임의 각 쿼드 트리 또는 바이 트리 파티션, 프레임의 매크로 블록 또는 블록의 그룹, 타일, 타일의 프레그먼트 각각마다 및/또는 다수의 이용 가능한 필터 중에서 선택 가능한 타일, 프래그먼트, 매크로블록, 또는 블록 맵을 이용함으로써, 적용될 수 있다.
예를 들면, 도 10a 내지 도 10f는 다양한 실시예에 따라 픽쳐를 분할하기 위한 다양한 파티션 모드를 나타낸다. 예를 들면, 도 10a는 필터 코드만이 픽쳐 단위로 온되는 픽쳐 기반 파티션을 나타낸다. 도 10b는, 제 1 필터 세트가 슬라이스 그룹 ‘A’에 적용되고, 제 2 필터 세트가 슬라이스 그룹 'Β'에 적용되는 슬라이스 또는 슬라이스 그룹 기반 파티셔닝을 나타낸다. 도 10c는 블록 유형 'A'를 위해 사용되는 어떠한 필터 블록 유형 'B'를 위해 사용되는 어떠한 필요를 식별하는 블록 맵을 나타낸다. 도 10d는 레이트 디스토션 최적화("RDO")에 기초한 바이 트리의 다양한 컷이, 제 1 또는 제 2 필터 세트를 대응하게 사용할 수 있음을 지시하는 'A' 또는 'Β'로 레이블되도록, 픽쳐의 타일에의 분할 및 타일의 바이트리 파티션에의 추가적인 분할을 나타낸다. 마찬가지로 도 10e는 제 1 또는 제 2 필터 세트를 대응하게 사용할 수 있도록, 픽쳐의 타일에의 파티셔닝과 타일의 ‘A’ 또는 ‘B’로서 라벨링되는 두 종류의 쿼드트리 파티션에의 파티셔닝을 나타낸다. 마지막으로, 도 10f는 슬라이스의 병합, 또는 블록의 병합, 또는 바이트리의 병합, 또는 쿼드트리 파티션의 병합으로부터 결과되는, 또는 순수하게 공간 세그먼트에 의한 영역을 나타낸다.
IC 코드북 필터 인코더(900) 및 도 9를 다시 참조하면, 블록(blks)은 픽쳐(들) 딜레이(925)에 공급되고 이어서, 소스 프레임 블록 데이터(blks)와 재구축된 프레임 블록 데이터(recd) 사이에 상호상관 행렬/행 벡터(Rdx)를 계산하는 상호상관 벡터 계산기(923)(Rdx)에 제공된다. 자기상관 행렬 계산기(920)는 재구축된 프레임 블록 데이터(recd)의 자기상관 행렬(Rxx)을 계산한다.
IC 필터 코드북 탐색 프로세서(910)는 씬 변경(scnchg) 및 콘트라스트(contr) 등의 입력 픽쳐의 이미지 특징에 따라 필터 사이즈(fsz)(예를 들면 5×5, 7×7, 9×9 등) 및 모드(md)(예를 들면, 비대칭 또는 점 대칭)를 결정한다(도 8a 내지 도 8h 참조, 후술함). 예를 들면, 입력 픽쳐가 '낮은 콘트라스트‘일 경우, 큰 필터 사이즈(예를 들면 9×9)가 판정될 수 있다. 한편, 입력 픽쳐가 ’높은 콘트라스트‘일 경우, 코딩 품질이 높으면 작은 필터 사이즈(예를 들면, 5×5)가 결정될 수 있거나, 코딩 품질이 중간 내지 낮다면 중간 필터 사이즈(예를 들면, 7×7)가 결정될 수 있다. 중간 콘트라스트 씬에 대하여, 코딩 품질이 충분할 경우 중간 필터 사이즈(예를 들면, 7×7)가 결정될 수 있거나, 코딩 품질이 낮을 때 큰 필터 사이즈(예를 들면, 9×9)가 결정될 수 있다. 일부 실시예에서, 필터 사이즈 정보는 프레임 단위로 전송된다.
상호상관 행렬/행 벡터(Rdx) 및 자기상관 행렬(Rxx)을 이용하여, IC 필터 코드북 검색 표(“LUT”) 및 어드레스 로직(913)은, 필터 계수의 계산된 대상 세트에 적어도 실질적으로 피팅되는 IC 필터 계수(icfc)의 세트를 찾기 위해 IC 필터 코드북 내를 탐색한다.
일부 실시예에서, 코드북 탐색은 번호부 검색은 IC 필터 계수의 각 개별 세트를 전체 재구축된 프레임 블록 데이터(recd)에 적용하는 것을 수반한다. 받은 필터 계수의 세트는, 원래의 소스 프레임 블록 데이터(blks)에 대하여 절대차의 최소 합("SAD")을 주는 필터 계수의 세트가 되도록 선택된다.
다른 실시예에서, 코드북 탐색은, 필터 코드북의 IC 필터의 평균 제곱 에러(“MSE”) 등의 비교 계측 또는 정합을 계산하는 것, 비교 계측(예를 들면, MSE, SAD 등)을 최소화하는 필터의 계수의 세트를 선택하는 것을 수반한다. 예를 들면, 두 개의 비디오 프레임, 즉 원래의 프레임 픽셀 d(n) 및 필터링된 재구축된 프레임 픽셀 y(n)(재구축된 프레임 픽셀 x(n)를 필터링하여 얻어짐) 사이의 MSE의 계산은 두 개의 비디오 프레임 사이의 픽셀간 차이를 제곱한 합을 구하고 비디오 프레임의 픽셀의 수로 다음과 같이 나누는 것을 수반한다.
Figure 112013058317620-pct00011
필터링 출력 y()가 되는 필터 h()를 이용하는 신호 x()를 필터링하는 일반 연산은 다음과 같이 작성할 수 있다.
Figure 112013058317620-pct00012
제곱 에러의 합("SSE") 방정식에서 y()이 치환
Figure 112013058317620-pct00013
이 SSE 방정식이 실제로 다음의 필터 연산 동안 논의의 식과 같다.
Figure 112013058317620-pct00014
필터의 세트를 받는 최소 SSE를 구하기 위해, 다음의 식이 되는 필터가 찾아진다.
Figure 112013058317620-pct00015
또한, 자기상관 행렬(Rxx) 또는 상호상관 벡터(Rdx)는 필터 h에 의존하지 않고, 실제로 Rdx는 주어진 프레임에 대해 초기에(최선의 IC 필터를 계산하는 동안) 계산되었고 이에 따라 재이용될 수 있다.
SSE에의 상관 기반 접근법 대 SSE의 직접 계산(곱셈 연산의 관점에서)의 복잡도를 비교하면, 실제 필터링의 복잡도는 haz×vsz×taps의 순서지만(예를 들면, CIF 비디오 및 81 탭 필터링에 대해, 352×288×81=8,211,456)인 반면, 상관 접근법의 복잡도는 taps×taps+taps의 순이다(예를 들면, CIF 비디오 및 81 탭 필터링에 대해, 81×81+81=6642, 또는 실제 필터링보다 1000배 넘게 작음).
다시 도 9를 참조하면, 따라서 MSE를 최소화하는 IC 필터 계수(icfc)의 세트를 찾기 위해 IC 필터 코드북 LUT 및 어드레스 로직(913)은 IC 필터 코드북 내에서 검색된다. IC 필터 계수(icfc)의 찾은 세트의 인덱스(icfci), 및 판정된 필터 사이즈(fsz) 및 모드(md)는 비트스트림(928)에의 포함을 위해 엔트로피 인코더(918)에 제공된다. IC 필터 계수(icfc)의 찾아진 세트를 이용하여, IC 필터링 프로세서(915)는 품질 복원된 재구축된 신호(recd)보다 원래의 소스 신호(소스 프레임 블록 데이터(blks)에 의해 나타남)에 객관적으로 더 신뢰성 있는 품질 복원 재구축된 신호(recf)에 대해 파티션 맵(ptmap) 및 파티션 유형(pttyp)에 의해 지시된 재구축된 신호(recd)의 적어도 일부를 필터링한다.
도 11은 상술한 인코더(900)에 대응하는 IC 코드북 필터 디코더(1100)를 나타낸다. 디코딩되는 압축된 비트스트림(1101)은 엔트로피 디코더(1103)에 입력되며, 엔트로피 디코더(1103)는 코딩된 파티션 맵(ptmapc), 파티션 유형(pttyp), 필터 사이즈(fsz), 및 사이즈(fsz)의 코드북에서 IC 필터 계수의 세트의 인덱스(icfci)를 디코딩한다.
코딩된 파티션 맵(ptmapc) 및 파티션 유형(pttyp)은, 코딩된 파티션 맵(ptmapc)을 디코딩하며 디코딩된 파티션 맵(ptmap)을 IC 필터링 프로세서(1108)에 제공하는 공간 파티션 디코더(1105)에 제공된다.
필터 사이즈(fsz) 및 인덱스(icfci)는, 코드북으로부터 IC 필터 계수(icfc)를 얻고, IC 필터 계수(icfc)를 IC 필터링 프로세서(1108)에 제공하는 IC 필터 코드북 LUT 및 어드레스 로직(1113)에 제공된다. IC 필터링 프로세서(1108)는, 품질 복원 재구축된 신호(recf)를 생성하는 재구축된 신호(recd)에 IC 필터 계수(icfc)를 적용한다.
도 12는 일 실시예에 따른 고속 IC 코드북 필터 인코더(1200)를 나타낸다. IC 코드북 필터 인코더(1200)는 상술한 IC 코드북 필터 인코더(900)와 많은 점에서 유사하다. 그러나, IC 코드북 필터 인코더(900)와 달리, 위너 필터 계산기(1230)는 상호상관 행렬/행 벡터(Rdx) 및 자기상관 행렬(Rxx)을 이용하여 주어진 필터 사이즈(fsz) 및 모드(md)의 위너 필터에 대해 필터 계수(calc.icfc)의 대상 세트를 계산한다. 대략 정합 계산기(1233)는 대상 위너 필터 계수(calc.icfc)를 이용하여 IC 필터 코드북 내에서 필터 계수(calc.icfc)의 계산된 대상 세트와 거의 정합되는 IC 필터 계수의 세트를 찾는다. 예를 들면, 일 실시예에서, IC 필터 계수의 대략 매칭되는 세트가 필터 계수(calc.icfc)의 대상 세트에 중심 계수 등의 가장 가까운 대표적인 계수를 갖는 계수의 세트인 것으로 판정된다. 일 실시예에서, 가장 가까운 중심 계수의 탐색은, IC 필터 코드북에서의 계수의 세트가 중심 계수에 따라 분류되어, 이진 검색 알고리즘을 통해 행해진다.
대략 정합 계산기(1233)가 IC 필터 계수의 대략 정합 세트를 찾으면, IC 필터 코드북 탐색 프로세서(1210)는, IC 필터 코드북의 IC 필터 계수의 대략 정합 매칭 세트 전후의 R필터를 포함하는 필터 계수의 2R+1 세트의 비교 그룹을 선택하는 데 이용되는 인접 반경(R)(예를 들면 8 또는 16)을 결정했다.
이어서, IC 필터 코드북 검색 프로세서(1210)는 MSE(또는 SAD, 또는 다른 정합 기준)를 최소화하는 IC 필터 계수(icfc)의 세트를 결정하기 위해 인접 비교 그룹을 검색한다. 일부 실시예에서, IC 필터 코드북 검색 프로세서(1210)는 인접 비교 그룹에서 필터 계수의 각 세트의 8개의 가능한 변형(회전 및 플립 또는 미러링)까지 탐색한다.
IC 필터 계수(icfc)의 양호한 세트가 찾아지면, 인덱스(icfci)(또한 결정된 필터 사이즈(fsz) 및 모드(md))가 비트스트림(1228)에의 포함을 위해 엔트로피 인코더(1218)(도 19에 나타낸 하나 이상의 추가적인 비트스트림 기술자(descriptor)와 함께, 후술함)에 제공된다.
도 13은 일 실시예에 따른 인코더에 의해 수행될 수 있는 IC 필터 코드북 탐색 루틴(1300)을 나타낸다. 블록(1305)에서, 루틴(1300)은 비디오의 비인코딩된 픽쳐 또는 프레임을 획득한다. 블록(1310)에서, 루틴(1300)은 비디오 인코더로 특정 비트레이트로 비디오를 인코딩한다. 일부 실시예에서, 비디오 인코더는 프레임간 인코더일 수 있다. 다른 실시예에서, 비디오 인코더는 프레임간 인코더일 수 있다. 블록(1315)에서, 루틴(1300)은 인루프 로컬 디코더를 통해 비디오 인코더에서 인코딩된 픽쳐를 로컬 디코딩한다.
블록(1320)에서, 루틴(1300)은 원래의 비인코딩된 픽쳐의 콘트라스트(예를 들면, 낮음, 중간, 또는 높음)를 결정한다. 블록(1325)에서, 루틴(1300)은 결정된 콘트라스트에 따라 필터 사이즈(fsz)를 선택한다. 예를 들면, 일 실시예에서, 루틴(1300)은 콘트라스트가 높을 경우 작은 필터 사이즈(예를 들면, 5×5)를 선택하고 콘트라스트가 낮을 경우에 중간 또는 큰 필터 사이즈(예를 들면, 7×7 또는 9×9)를 선택하고, 그렇지 않으면 큰 필터 사이즈(예를 들면, 9×9)를 선택할 수 있다.
블록(1330)에서, 루틴(1300)은 일부 또는 모든 인코딩된 비트레이트, 결정된 콘트라스트, 또는 다른 유사한 요소에 따라 필터 유형(예를 들면, 비대칭 또는 대칭)을 선택한다.
블록(1335)에서, 루틴(1300)은, 기준 신호로서 로컬 디코딩된 픽쳐 및 원하는 신호로서 원래의 비인코딩된 픽쳐를 이용하여, 원래의 픽쳐에 대해 로컬 디코딩된 픽쳐의 선택되는 사이즈(fsz)의 대상 위너 필터에 대한 계수를 계산한다. 블록(1340)에서, 루틴(1300)은 코드북으로부터 하나 이상의 후보 IC 필터를 포함하는 비교 그룹을 선택한다. 일부 실시예에서, 하나 이상의 후보 IC 필터는 코드북으로부터 대략 매칭되는 필터(예를 들면, 대상 위너 필터에 가까운 또는 가장 가까운 중심 계수를 갖는 IC 필터)를 찾고 대략 정합되는 필터의 어느 측에 대해 일부(예를 들면, 8 또는 16) 인접하는 필터를 선택함으로써 선택될 수 있다. 일부 실시예에서, 인접 비교 그룹은 후보 IC 필터 각각의 하나 이상의 변형 및 변환을 더 포함할 수 있다. 예를 들면, 비대칭 필터는 4개의 회전 변형 및 4개의 미러링 변형을 갖지만, 비대칭 필터는 4개의 회전 변형을 갖는다.
개방 루프 블록(1345)에서 시작해서, 루틴(1300)은 하나 이상의 후보 IC 필터의 각각을 처리하고, 블록(1350)에서 현재의 후보 IC 필터에 대해 에러 추정(예를 들면, SAD, MSE 등)을 판정하고, 다음 후보 IC 필터(있을 경우)를 처리하기 위해 블록(1355)으로 되돌아간다. 블록(1360)에서, 루틴(1300)은 낮은 판정된 에러 추정을 갖는 후보 IC 필터를 선택한다. 일부 실시예에서, 루틴(1300)은 최소 판정 에러 추정을 갖는 후보 IC 필터를 선택한다.
결정 블록(1365)에서, 루틴(1300)은 선택된 IC 필터가 없는 것에 비해 개선을 나타내는지의 여부를 판정한다. 예를 들면, 일 실시예에서, 루틴(1300)은 선택된 IC 필터(원래의 비인코딩된 픽쳐)로 IC 필터링 후에 디코딩된 픽쳐의 에러 추정(예를 들면, SAD, MSE 등)이 IC 필터링이 없는 디코딩된 픽쳐의 에러 오차보다 낮은지의 여부를 판정한다. 선택된 IC 필터가 향상을 제공하지 않으면, 블록(1370)에서 인코딩된 비트스트림에서 1비트 필터 보냄 플래그(fsnt)를 0으로 설정한다. 한편, 선택된 IC 필터가 개선을 제공할 경우, 블록(1375)에서 코딩된 비트스트림에서 1비트 필터 보냄 플래그(fsnt)를 1로 설정하고, 블록(1380)에서, 코드북(icfci)으로부터의 선택된 IC 필터의 인덱스를 인코딩된 비트스트림에 설정한다. 일부 실시예에서, 루틴(1300)은 선택된 IC 필터의 변형 또는 변환(예를 들면, 선택된 IC 필터에 대한 회전 또는 미러링 변형을 지시함)을 지시하는 신호(flt_ornt)(도시 생략)를 더 설정할 수 있다(도 19 참조, 비트스트림 구문의 더 상세한 설명은 후술함). 루틴(1300)은 블록(1399)에서 종료한다.
도 14는 일 실시예에 따른 스펙트럼 업데이트 인코더로 고속 IC 코드북 필터 인코더(1400)를 나타낸다. IC 코드북 필터 인코더(1400)는 상술한 고속 IC 코드북 필터 인코더(1200)와 많은 점에서 유사하다. 그러나, IC 코드북 필터 인코더(1200)와 달리, IC 코드북 필터 인코더(1400)는 다음과 같이 IC 필터 코드북 LUT 및 어드레스 로직(1413)에 의해 선택된 IC 필터 계수(icfc)에 업데이트를 스펙트럼 인코딩할 수 있다.
위너 필터 계산기(1430)는 상호상관 행렬/행 벡터(Rdx) 및 자기상관 행렬(Rxx)을 이용하여, 주어진 필터 사이즈(fsz) 및 모드(md)의 위너 필터에 대한 필터 계수(calc.icfc)의 대상 설정을 계산한다. IC 코드북 필터 인코더(1200)에서와 같이, 대략 정합 계산기(1433)는 대상 위너 필터 계수(calc.icfc)를 이용하여, 필터 계수(calc.icfc)의 계산된 대상 세트와 대략 일치하는 IC 필터 계수의 세트를 IC 필터 코드북에서 찾는다.
그러나, IC 코드북 필터 인코더(1200)와는 달리, 위너 필터 계산기(1430)는 또한 대응하는 선택되는 IC 필터 계수(icfc)와 차분되는 차분기(1435)에 대상 위너 필터 계수(calc. icfc)를 제공한다.
차분기(1435)에서 차분 후에, 결과의 계수 차분(icfcd) 조정값은 변환부(1438)에 의해 주파수 도메인 표현으로 순변환되어, 이어서 양자화기(1440)에 변환된 차분 계수의 블록이 된다. 양자화기(1440)는 양자화 파라미터(qp, 또한 때로는 양자화 스케일이라고도 함)에 따라 변환된 차분 계수의 블록을 스캐너(1443) 및 역 양자화기(1445)에 모두 보내지는 양자화된 변환된 차분 계수의 블록으로 양자화한다. 스캐너(1443)는 역 스캐닝 순서(도 16a 참조, 후술함)에 따라 양자화된 변환된 차분 계수의 블록을 스캐닝하고, 업데이트 신호(updt)(후술함)에 의해 지시될 경우 비트스트림(1428)으로 인코딩을 위한 엔트로피 인코더(1418)에 스캐닝되는 변환 코딩되는 차분 계수(tcod.iccof)를 제공한다.
역 양자화기(1445)는 양자화 파라미터(qp)에 따라 양자화 변환 차분 계수의 블록을 역 양자화하고 역 양자화 변환 차분 계수를 역 변환부(1448)에 보낸다. 가산기(1450)에서, 역 변환 역 양자화 차분 계수가 IC 필터 코드북 LUT 및 어드레스 로직(1413)으로부터 선택되는 IC 필터 계수(icfc)에 추가되어 업데이트된 IC 필터 계수(icfcu)를 형성한다.
컨트롤러(1455)는 스위치(1453)에 업데이트 신호(updt)를 보내, 스위치(1453)가 IC 필터링 프로세서(1415)에 선택된 IC 필터 계수(icfc) 또는 업데이트된 IC 필터 계수(icfcu)를 보낼지의 여부를 지시한다. 업데이트 신호(updt)를 판정하기 위해, 컨트롤러(1455)는 픽쳐 유형 신호(pictyp)(예를 들면, I-, P-, 또는 B-픽쳐 유형) 및 의의(significance) 신호(sigf)를 이용한다. 의의 신호(sigf)는 선택된 IC 필터 계수(icfc)와 대상 IC 필터 계수(calc.icfc) 사이의 차이가 소정의 의의 임계값을 초과하는지의 여부를 지시하는 IC 코드북 필터 인코더(1400)에서 이루어진 임계값 선택이다. 차분이 임계값을 초과하면, 업데이트 신호(updt)는 스위치(1453)에 업데이트된 IC 필터 계수(icfcu)가 IC 필터링 프로세서(1415)에 의해 사용되어야 함을 지시한다. 또한, 업데이트 신호(updt)도 엔트로피 부호화기(1418)에 의해 비트스트림(1428)으로 인코딩된다.
도 15는 상술한 IC 코드북 필터 인코더(1400)에 대응하는 IC 코드북 필터 디코더(1500)를 나타낸다. 압축된 비트스트림(1501)은, 코딩된 파티션 맵(ptmapc), 파티션 유형(pttyp), 필터 사이즈(fsz), 업데이트 신호(updt), 스캔 변환 코딩된 차분 계수(tcod.iccof), 및 사이즈(fsz)의 코드북에서 IC 필터 계수의 세트의 인덱스(icfci)를 디코딩하는 엔트로피 디코더(1503)에 입력된다.
코딩된 파티션 맵(ptmapc) 및 파티션 유형(pttyp)은, 코딩된 파티션 맵(ptmapc)을 디코딩하고 디코딩된 파티션 맵(ptmap)을 IC 필터링 프로세서(1508)에 제공하는 공간 파티션 디코더(1505)에 제공된다.
필터 사이즈(fsz) 및 인덱스(icfci)는, 코드북으로부터 IC 필터 계수(icfc)를 획득하는 IC 필터 코드북 LUT 및 어드레스 로직(1510)에 제공된다.
역 스캐너(1513)는 역 스캐닝 순서(도 16a 참조, 후술함)에 따라 스캐닝된 차분 변환 코딩된 계수(tcod.iccof)를 역 스캐닝하여, 양자화된 변환 차분 계수의 블록을 획득한다. 역 양자화기(1515)는 양자화 파라미터(qp)에 따라 양자화된 변환 차분 계수의 블록을 역 양자화하고 역 양자화된 변환 차분 계수를 역 변환부(1520)에 보낸다. 가산기(1523)에서, 역 변환 역 양자화된 차분 계수 조정값이 선택된 IC 필터 계수(icfc)에 추가되어 업데이트된 IC 필터 계수(icfcu)를 형성한다.
스위치(1525)는 IC 필터링 프로세서(1508)에 선택된 IC 필터 계수(icfc) 또는 업데이트된 IC 필터 계수(icfcu)를 제공할지의 여부를 판정한다(업데이트 신호(updt)에 따라). IC 필터링 프로세서(1508)는 재구축된 신호(recd)에 제공된 계수를 부가하여, 품질 복원 재구축된 신호(recf)를 생성한다.
도 16a는 IC 코드북 필터 디코더(1500) 및 IC 코드북 필터 인코더(1400)에 의해 사용되는 예시적인 변환 계수 역 스캐닝을 나타낸다. 일반적으로 말해서, 변환 계수는 종종 DC 계수(예를 들면, 1605)로 시작해서 지그재그 순서로 스캐닝된다. 그러나, 도시된 역 스캐닝에서, 변환 계수는 DC 계수(1605)로 끝나는 지그재그 순서로 스캐닝될 수 있다.
도 16b는 IC 코드북 필터 디코더(1800) 및 IC 코드북 필터 인코더(1700)에 의해 이용되는 계수 역 스캐닝과 관련하여 사용될 수 있는 예시적인 변환 마스크를 나타낸다. 도 16b에 나타낸 바와 같이, 계수 마스크(음영 셀(1615A~D) 및 다른 20개의 레이블이 없는 음영 셀로 나타냄)가 채용되어, DC 계수(1605)를 향해 끝나는 지그재그 순서로 스캐닝할 때 포함될(또는 택일적으로 생략될) AC 변환 개수를 지시할 수 있다.
도 17은 실시예에 따른 스펙트럼 업데이트 인코더 및 업데이트 가능한 코드북으로 고속 IC 코드북 필터 인코더(1700)를 나타낸다. IC 코드북 필터 인코더(1700)는 상술한 IC 코드북 필터 인코더(1400)와 여러 면에서 유사하다. 그러나, IC 코드북 필터 인코더(1400)와 달리, IC 코드북 필터 인코더(1700)는 다음과 같이 코드북 업데이트된 IC 필터 계수(icfcu)를 저장할 수 있다. 컨트롤러(1755)는 코드북이 저장 신호(str)를 통해 업데이트된 IC 필터 계수(icfcu)를 저장하도록 업데이트해야 함을 지시한다. 저장 신호(str)는 스위치(1758)에 의해 코드북에 업데이트된 IC 필터 계수(icfcu)를 저장할지의 여부를 판정하기 위해 사용된다. 또한, 저장 신호(str)는 엔트로피 인코더(1718)에 의해 비트스트림(1728)으로 인코딩된다. 또한, 일부 실시예에서, 컨트롤러(1755)는 저장된 업데이트가 폐기되어야 하고 코드북이 표준 형태로 되돌아가는 것(예를 들면, 씬 변경에서)을 지시하는 코드북 리세트 신호(도시 생략)를 지시할 수 있다.
또한, IC 코드북 필터 인코더(1700)는, 변환 계수 마스크(도 16b 참조, 상술함)가 변환 작업(마스크(1758)) 후에 및 역 변환 작업(마스크 해제(1760)) 전에 이용되는 점에서 IC 코드북 필터 인코더(1400)와 상이하다.
도 18은 상술한 IC 코드북 필터 인코더(1700)에 대응하는 IC 코드북 필터 디코더(1800)를 나타낸다. 필터 디코더(1800)는 상술한 IC 코드북 필터 디코더(1500)와 많은 점에서 유사하다. 그러나, IC 코드북 필터 디코더(1500)와 달리, IC 코드북 필터 디코더(1800)는 다음과 같이 코드북에 업데이트된 IC 필터 계수(icfcu)를 저장할 수 있다. 저장 신호(str)는 비트스트림(1801)으로부터 엔트로피 디코더(1803)에 의해 디코딩된다. 저장 신호(str)는 코드북에 업데이트된 IC 필터 계수(icfcu)를 저장할지의 여부를 결정하기 위해 스위치(1758)에 의해 사용된다. 또한, 일부 실시예에서, 엔트로피 디코더(1803)는 저장된 업데이트가 폐기되어야 함을 지시하는 코드북 리세트 신호(도시 생략)를 디코딩할 수 있으며, 코드북은 표준 형태로 되돌아간다.
도 19는 IC 코드북 필터 인코더 및 디코더, 및 본원에서 다양하게 설명되는 것을 위한 예시적인 비트스트림 구문(1900)을 나타낸다. 비트스트림 구문(1900)은 2비트 헤더 cicf_hdr(1901)로 시작된다. 1비트 pict_only 플래그(1902)는 단일 IC 필터가 전체 픽쳐에 대해 지정되어 있는지 여부를 지시한다. 선택적 3비트 numpt 필드(1903)는 파티션의 수(8개까지)를 지시한다. 선택적 1비트 map_sent 플래그(1904)는 파티션 맵이 필터가 적용될 곳, 또는 택일적으로 다수의 필터 사이를 전환하도록 보내지는지의 여부를 지시한다. 선택적 n비트 ptmap 필드(1905)는 파티션 맵(있을 경우)을 포함한다.
1비트 fsnt 플래그(1906)는 IC 필터가 비트스트림에 포함되어 있는지의 여부를 지시한다. 플래그(1906)가 세트되면, 선택적 1 또는 2비트 필드 fsz(1907)는 선택된 필터의 코드워드에 따라 포함된 IC 필터의 필터 사이즈(예를 들면, 5×5, 7×7, 또는 9×9)를 지시한다. 코드워드는 8비트 icfci 필드(1908)(IC 필터의 코드북에의 인덱스) 및 인덱스 icfci(1908)(예를 들면, 분리형 필터에 대한 4 회전 중 하나, 또는 비분리형 필터에 대한 4 회전 및 4 미러링 중 하나)에 의해 지시된 계수에 적용되어야 할 필터의 변형 또는 변환을 지시하는 flt_ornt 필드(1909) 내의 2비트(분리형 필터) 또는 3비트(비분리형 필터)를 포함한다. 선택적 1비트 updt 플래그(1910)는, 비트스트림이 인덱스 icfci(1908)에 의해 지시된 계수에 대한 차분 업데이트를 포함하는지의 여부를 지시한다. 선택적 s-비트 updt_dat 필드(1911)는 인덱스 icfci(1908)에 의해 지시된 계수에 적용될 차분 업데이트를 포함한다. pict_only 플래그(1902)에 의해 지시될 경우, 필드(1906~1911)는 numpt(1903)번 반복한다.
도 20a는 I 프레임(2001, 2008), P 프레임(2004, 2006), 및 B-프레임(2002-2003, 2005, 2007)을 포함하는 비디오 스트림의 일련의 이미지 또는 프레임(2001-2008)을 나타낸다. 도 20b는 3개의 예시적인 파티션(numpt=3)으로 분할되는 I-프레임(2001, 2008), 3개의 예시적인 파티션(numpt=3)으로 분할되는 P-프레임(2004, 2006), 및 2개의 예시적인 파티션(numpt=2)으로 분할되는 B-프레임(2002-2003, 2005, 2007)을 포함하는 비디오 스트림 내에 일련의 픽쳐 또는 프레임(2001-2008)을 나타낸다. 표 1은 다양한 픽쳐 유형의 조합 및 파티션의 수(numpt)에 따른 IC 코드북 필터를 인코딩하는 예시적인 코딩 비트 비용을 지시한다(표 1에 나타난 예시적인 코딩 비트 비용은, 영역, 슬라이스, 타일 또는 타일 프레그먼트, 픽쳐 바이트리, 타일 바이트리 또는 쿼드트리, 및/또는 병합된 블록 등의 공간 파티션 맵에 대한 비트 비용을 제외함).
Figure 112013058317620-pct00016
도 21은 일 실시예에 따라 코드북을 이용하여 비트스트림으로 비디오의 픽쳐를 위한 IC 필터를 인코딩하는 루틴(2100)을 나타낸다. 블록(2105)에서, 루틴(2100)은 다양한 특성(예를 들면, 높은 콘트라스트, 낮은 콘트라스트 등)을 갖는 부호화된 비디오의 프레임을 처리하는 비디오 디코더의 품질 복원 필터를 구성하기에 적합한 IC 필터 계수의 복수의 세트를 포함하는 코드북을 획득한다. 일 실시예에서, 코드북은 대표적인 계수에 따라 분류(예를 들면, 중심 계수에 따라 분류)된 필터 계수의 256 세트를 포함할 수 있다. 다른 실시예는 서로 다른 기준에 따라 분류된 더 작은 또는 더 큰 코드북을 포함할 수 있다.
루프 블록(2110)에서 시작하여, 루틴(2100)은 비디오의 각 픽쳐 또는 프레임을 처리한다. 블록(2115)에서, 루틴(2100)은 현재의 픽쳐를 분석한다. 예를 들면, 일 실시예에서, 루틴(2100)은, 콘트라스트 레벨 및/또는 현재의 픽쳐가 이전 픽쳐와 비교해 씬 변화를 나타내는 지의 여부 등의 하나 이상의 이미지 특징을 판정할 수 있다.
블록(2120)에서, 루틴(2100)은 현재의 이미지의 하나 이상의 부분을 판정한다. 예를 들면, 상술한 도 10a 내지 도 10f는 다양한 실시예에 따라 픽쳐가 분할될 수 있는 다양한 예시적인 부분을 나타낸다. 일부 실시예에서, 루틴(2100)이 판정하는 부분의 수는 현재 픽쳐의 픽쳐 유형에 따라 적어도 부분적으로 판정될 수 있다(예를 들면 도 20b 참조, 상술함).
블록(2125)에서, 루틴(2100)은 비트스트림에 하나 이상의 픽쳐 부분 인디케이터를 인코딩한다. 예를 들면, 일 실시예에서, 상술한 도 19에서 예시한 바와 같이 루틴(2100)은 필드(1902-1905)의 하나 이상을 인코딩할 수 있다.
루프 블록(2130)에서 시작하여, 루틴(2100)은 하나 이상의 판정된 픽쳐 부분 각각을 처리한다. 블록(2150)에서, 루틴(2100)은, IC 계수의 세트가 현재의 픽쳐 부분을 처리하는 디코더의 품질 복원 필터를 구성하는 데 사용될 때, 비디오 디코더가 현재의 픽쳐 부분을 신뢰성 있게 재생하는 방법을 개선하기 위해 코드북으로부터 IC 계수의 세트를 적응적으로 선택한다. 상술한 도 12, 도 14, 및 도 17은 코드북으로부터 IC 계수의 세트를 적응적으로 선택하는 다양한 방법을 나타내고 있다. 예를 들면, 일 실시예에서, IC 계수의 세트를 적응적으로 선택하는 것은, 비인코딩된 픽쳐를 인코딩하는 것, 로컬 디코더 루프에서 인코딩된 픽쳐를 디코딩하는 것, 디코딩된 픽쳐 및 비인코딩된 픽쳐에 따라 IC 필터 계수의 대상 세트를 계산하는 것, 및 IC 필터 계수의 대상 세트에 실질적으로 피팅되는 IC 필터 계수의 세트를 코드북으로부터 선택하는 것 중 일부 또는 모두를 포함할 수 있다. 일부 실시예에서, 대상 세트에 실질적으로 피팅되는 IC 필터 계수를 선택하는 것은 대표적인 계수(예를 들면, 중심 계수)에 따라 계수의 대략 정합되는 세트를 선택하는 것 및 대략 매칭되는 계수의 세트와 인접하는 IC 필터의 비교 그룹을 식별하는 것을 포함한다. 이어서, 비교 그룹(각각의 제로 이상의 변화를 포함)의 IC 필터는 판정된 에러 추정(예를 들면, MSE)을 판정함으로써 스코어링되며, IC 필터 계수의 최소 스코어링의 세트가 선택된다.
블록(2155)에서, 루틴(2100)은 IC 계수의 선택된 세트를 위해 코드북 내에의 인덱스 등의 필터 인디케이터를 판정한다. 블록(2160)에서, 루틴(2100)은 디코더가 코드북의 디코더의 사본으로부터 IC 계수의 선택된 세트를 찾도록 비트스트림으로 필터 인디케이터를 인코딩한다.
결정 블록(2165)에서, 루틴(2100)은, 코드북에 저장된 IC 계수의 선택된 세트에 비해, 비디오 디코더가 현재의 픽쳐 부분을 신뢰성 있게 재생하는 방법을 더 개선하기 위해 IC 계수의 선택된 세트에의 업데이트를 보낼지의 여부를 판정한다. 일부 실시예에서, 업데이트 메커니즘은 블록(2165)에서의 판정이 항상 부정적일 수 있는 경우에, 사용되지 않는다. 업데이트 메커니즘을 사용하는 실시예에서, 루틴(2100)은 업데이트된 IC 계수가 업데이트를 보내는 비트 비용을 정당화하기에 충분한 정도로 재생의 충실도를 개선하는지의 여부를 판정할 수 있다. 업데이트가 판정될 경우 서브루틴 블록(2200)(후술하는 도 22 참조)에서 조정값이 판정되어 디코더에서 IC 계수의 선택된 세트를 업데이트하기 위해 판정 및 인코딩된다. 일부 실시예에서 조정값이 계산된 필터 계수와 코드북으로부터 찾은 대략 정합 사이의 차분을 나타내는 양자화된 변환 계수를 포함할 수 있다.
엔딩 루프 블록(2190)에서, 루틴(2100)은 다음 픽쳐 부분(있을 경우)을 처리하기 위해 블록(2130)으로 되돌아간다. 엔딩 루프 블록(2195)에서, 루틴(2100)은 다음 픽쳐(있을 경우)를 처리하기 위해 블록(2110)으로 되돌아간다. 모든 픽쳐가 처리되었으면, 루틴(2100)은 블록(2199)에서 종료된다.
도 22는 일 실시예에 따른 IC 필터 계수 세트 업데이트 서브루틴(2200)을 나타낸다. 블록(2205)에서, 서브루틴(2200)은 IC 필터 계수의 코드북 저장 세트를 조정하는 조정값의 세트를 판정한다. 예를 들면, 일 실시예에서, 조정값은 코드북 저장 세트와 IC 필터 계수의 대상 세트 사이에 차분 계수값을 포함할 수 있다.
블록(2210)에서, 서브루틴(2200)은 디코더가 조정값을 얻도록 하기 위해 비트스트림에 조정값을 인코딩한다. 일부 실시예에서, 조정값을 인코딩하는 것은 조정값의 주파수 도메인 표현을 계산하는 것 및 역 지그재그 스캔 순서에 따라 주파수 도메인 표현을 엔트로피 코딩하는 것을 포함할 수 있으면, AC 계수의 마스크된 서브세트만을 포함할 수도 있다(예를 들면, 상술한 도 16b 참조).
블록(2215)에서, 서브루틴(2200)은 현재 픽쳐의 현재 부분을 처리하는 디코더의 품질 복원 필터를 구성하기 전에 인코딩된 조정값에 따라 IC 필터 계수의 코드북 저장 세트를 조정하기 비디오 디코더를 향하는 조정 인디케이터를 비트스트림 내에 인코딩한다(예를 들면, 상술한 도 19에 나타낸 비트 필드(1910-1911) 참조).
결정 블록(2220)에서, 서브루틴(2200)은, 업데이트된 IC 필터 계수가 다시 조정값을 보내지 않고 재사용될 수 있도록 코드북에 IC 필터 계수의 조정된 세트를 저장할지의 여부를 판정한다. 저장한다면, 블록(2225)에서, 서브루틴(2200)은 코드북의 인코더의 로컬 사본에 IC 필터 계수의 조정된 세트를 저장하고, 블록(2230)에서, 서브루틴(2200)은 코드북의 디코더의 사본에 조정된 계수값을 저장하도록 비디오 디코더를 향하는 비트스트림 조정 인디케이터에 저장 인디케이터를 인코딩한다. 일부 실시예에서, 저장 메커니즘은, 블록(2220)의 판정이 항상 부정적일 경우에 사용되지 않을 수 있다. 저장 메커니즘을 사용하는 실시예에서, 루틴(2100)은 조정된 IC 계수가 후속으로 재사용될 수 있는지의 여부를 판정할 수 있다. 서브루틴(2200)은 블록(2299)에서 종료된다.
도 23은 일 실시예에 따른 하나 이상의 코드북을 이용하여 비트스트림에 비디오의 픽쳐를 위한 IC의 필터를 코딩하는 루틴(2300)을 보여준다. 블록(2305)에서, 루틴(2300)은, 소정의 사이즈의 IC 필터에 대해 복수의 계수의 세트를 각각 포함하는 하나 이상의 코드북을 획득한다. 일 실시예에서, 각 코드북은 대표적인 계수에 따라 분류(예를 들면, 중심 계수에 따라 분류)된 필터 계수의 256 세트를 포함할 수 있다. 다른 실시예는 다른 기준에 따라 분류된 더 작은 또는 더 큰 코드북을 포함할 수 있다. 일 실시예에서, 코드북의 하나 이상은 3×3, 5×5, 7×7, 9×9, 11×11 사이즈 등의 IC 필터에 대한 계수를 포함할 수 있다.
루프 블록(2310)에서 시작하여, 루틴(2300)은 비디오의 각 픽쳐 또는 프레임을 처리한다. 블록(2315)에서, 루틴(2300)은 현재의 픽쳐를 분석한다. 예를 들면, 일 실시예에서, 루틴(2300)은 콘트라스트 레벨 및/또는 현재의 픽쳐가 이전 픽쳐에 비해 씬 변화를 나타내는지의 여부 등의 하나 이상의 이미지 특성을 판정할 수 있다.
블록(2320)에서, 루틴(2300)은 현재의 픽쳐의 하나 이상의 부분을 판정한다. 예를 들면, 상술한 도 10a 내지 도 10f는 다양한 실시예에 따라 픽쳐가 분할될 수 있는 다양한 예시적인 부분을 나타낸다. 일부 실시예에서, 루틴(2300)이 판정하는 부분의 수는 현재의 픽쳐의 픽쳐 유형에 따라 적어도 부분적으로 판정될 수 있다(예를 들면, 상술한 도 20b 참조).
블록(2325)에서, 루틴(2300)은 비트스트림에 하나 이상의 픽쳐 부분 인디케이터를 인코딩한다. 예를 들면, 일 실시예에서, 루틴(2300)은 상술한 도 19에 나타낸 필드(902~1905) 중 하나 이상을 인코딩할 수 있다.
블록(2326)에서, 루틴(2300)은 현재의 픽쳐에 대한 필터 사이즈를 판정한다. 블록(2327)에서, 루틴(2300)은 판정된 필터 사이즈를 비트스트림에 인코딩한다(예를 들면 상술한 도 19의 필드(1907) 참조). 예를 들면, 현재의 픽쳐가 ‘낮은 콘트라스트’일 경우, 큰 필터 사이즈(예를 들면 9×9)가 결정될 수 있다. 한편, 입력된 픽쳐가 ‘높은 콘트라스트’일 경우, 코딩 품질이 높다면 작은 필터 사이즈(예를 들면 5×5)가 판정될 것이고, 또는 코딩 품질이 중간 내지 낮다면 중간 필터 사이즈(예를 들면 7×7)가 판정될 것이다. 중간 콘트라스트 씬에 대해, 코딩 품질이 충분할 경우 중간 필터 사이즈(예를 들면 7×7)가 판정될 수 있고, 또는 코딩 품질이 낮을 경우 큰 필터 사이즈(예를 들면 9×9)가 판정될 수 있다. 일부 실시예에서, 필터 사이즈 정보는 픽쳐 또는 프레임 단위로 보내진다. 다른 실시예에서, 필터 사이즈 정보는 픽쳐의 각 부분(도시 생략)에 대해 판정 및 보내질 수 있다.
블록(2328)에서, 루틴(2300)은 선택된 사이즈의 IC 필터에 대해 계수의 세트를 갖는 코드북을 선택한다. 루프 블록(2330)에서 시작하여, 루틴(2300)은 하나 이상의 판정된 픽쳐 부분의 각각을 처리한다.
블록(2350)에서, 루틴(2300)은 IC 계수의 세트가 현재의 픽쳐 부분을 처리하는 디코더의 품질 복원 필터를 구성하는 데 사용될 때, 비디오 디코더가 현재의 픽쳐 부분을 신뢰성 있게 재생하는 방법을 개선하기 위해 코드북으로부터 IC 계수의 세트를 적응적으로 선택한다.
블록(2355)에서, 루틴(2300)은 IC 계수 선택된 세트에 대해 코드북에의 인덱스 등의 필터 인디케이터를 판정한다. 블록(2360)에서, 루틴(2300)은 디코더가 코드북의 디코더의 사본으로부터 IC 계수의 선택되는 세트를 찾을 수 있도록 필터 인디케이터를 비트스트림에 인코딩한다.
결정 블록(2365)에서, 루틴(2300)은 코드북에 저장된 IC 계수의 선택된 세트에 비해, 비디오 디코더가 현재의 픽쳐 부분을 신뢰성 있게 재생하는 방법을 더 개선하기 위해 IC 계수의 선택된 세트에의 업데이트를 보낼지의 여부를 판정한다. 일부 실시예에서, 업데이트 메커니즘은, 블록(2365)에서의 판정이 항상 부정일 수 있는 경우에 사용되지 않을 수 있다. 업데이트 메커니즘을 사용하는 실시예에서, 루틴(2300)은 업데이트된 IC 계수가 업데이트를 전송하는 비트의 비용을 정당화하기에 충분한 정도로 재생 충실도를 개선할 것인지의 여부를 판정할 수 있다. 업데이트가 판정된 경우, 서브루틴 블록(2200)(상술한 도 22 참조)에서, 조정값을 판정하고 디코더에서의 IC 계수 선택된 세트를 업데이트하도록 인코딩된다.
엔딩 루프 블록(2390)에서, 루틴(2330)은 다음 픽쳐 부분(있을 경우)을 처리하기 위해 블록(2330)으로 되돌아간다. 엔딩 루프 블록(2395)에서, 루틴(2300)은 다음 픽쳐(있을 경우)를 처리하기 위해 블록(2310)으로 되돌아간다. 모든 픽쳐가 처리되었으면, 루틴(2300)은 블록(2399)에서 완료된다.
도 24는 일 실시예에 따라 하나 이상의 코드북을 이용하여 비트스트림으로부터 비디오의 픽쳐에 대해 IC 필터를 디코딩하는 루틴(2400)을 나타낸다. 블록(2403)에서, 루틴(2400)은 소정의 사이즈의 IC 필터에 대해 복수의 계수의 세트를 각각 포함하는 하나 이상의 코드북을 획득한다. 이들 코드북은 상술한 인코딩 루틴(2200 및/또는 2400)에 이용 가능한 코드북의 사본이다.
블록(2405)에서, 루틴(2400)은 비디오의 복수의 픽쳐 또는 프레임에 대응하는 인코딩된 데이터를 포함하는 인코딩된 비트스트림을 획득한다. 루프 블록(2408)에서 시작하여, 루틴(2400)은 비트스트림에 인코딩된 각 픽쳐를 처리한다.
결정 블록(2410)에서, 루틴(2400)은 비트스트림에 인코딩된 하나 이상의 리세트 신호에 따라 코드북의 하나 이상을 리세트할지의 여부를 판정한다. 예를 들면, 일 실시예에서, 인코더는 루틴(2400)이 씬 변화 또는 다른 기간에 코드북을 리세트하게 할 수 있다. 비트스트림의 리세트 신호가 코드북의 하나 이상이 리세트되어야 함을 지시할 경우(즉, 어떤 이전의 업데이트가 폐기되는 것), 블록(2413)에서 지시된 코드북(들)은 원래의 상태로 되돌아간다.
블록(2415)에서, 루틴(2400)은 현재 인코딩된 픽쳐를 디코딩한다. 블록(2418)에서, 루틴(2400)은 비트스트림으로부터 하나 이상의 픽쳐 부분 인디케이터를 디코딩한다. 예를 들면, 일 실시예에서, 상술한 도 19에 예시한 바와 같이 루틴(2400)은 필드(1902~1905) 중 하나 이상을 디코딩할 수 있다.
루프 블록(2420)에서 시작하여, 루틴(2400)은 하나 이상의 지시된 픽쳐 부분의 각각을 처리한다. 블록(2423)에서, 루틴(2400)은 비트스트림으로부터 하나 이상의 필터 인디케이터를 디코딩한다. 예를 들면, 일 실시예에서, 상술한 도 19에 예시한 바와 같이 루틴(2400)은 필드(1906~1909) 중 하나 이상을 디코딩할 수 있다.
블록(2425)에서, 루틴(2400)은 디코딩된 필터 인디케이터(예를 들면, 필드(1907))의 하나 이상에 따라 블록(2403)에서 얻어진 하나 이상의 코드블록의 하나를 선택한다. 일부 실시예에서, 블록(2403)에서 얻어진 단일 코드북만이 있었을 경우, 디코딩된 필터 인디케이터 중 하나 이상이 생략될 수 있고, 루틴(2400)은 단순히 단일 코드북을 선택한다. 블록(2426)에서, 루틴(2400)은 선택된 코드북으로부터 하나 이상의 디코딩된 필터 인디케이터(예를 들면, 필드(1908))에 의해 지시된 IC 필터 계수의 세트를 선택한다. 일부 실시예에서, IC 필터 계수의 세트를 선택하는 것은 필드(1909)에 의해 지시될 수 있는 IC 필터 계수의 세트의 변화 또는 변환(예를 들면, 회전 또는 미러)을 계산하는 것을 더 포함할 수 있다.
결정 블록(2428)에서, 루틴(2400)은, 비트스트림이 IC 필터 계수의 선택된 세트를 조정하거나 업데이트하기 위해 지시된 루틴(2400)을 갖는지의 여부를 판정한다. 예를 들면, 일 실시예에서, 이러한 지시는 필드(1910)를 통해 전송될 수 있다. 업데이트 지시가 보내지지 않았을 경우, 블록(2430)에서, 루틴(2400)은 IC 필터 계수의 선택된 세트에 따라 IC 필터를 구성한다. 한편, 업데이트 지시가 보내졌을 경우, 블록(2433)에서, 루틴(2400)은 비트스트림으로부터 조정값(예를 들면, 필드(1911)를 통해 보내짐)을 디코딩하고 블록(2435)에서 조정값에 따라 IC 필터 계수의 선택된 세트를 업데이트한다. 블록(2430)에서, 루틴(2400)은 IC 필터 계수의 업데이트된 또는 조정된 세트에 따라 IC 필터를 구성한다.
결정 블록(2440)에서, 루틴(2400)은 비트스트림이 코드북의 디코더의 사본에 IC 필터 계수의 업데이트된 또는 조정된 세트를 저장하는 지시된 루틴(2400)을 가져, 업데이트된 IC 필터 계수가 재사용될 수 있는지의 여부를 판정한다. 이러한 지시를 받았을 경우, 블록(2443)에서, 루틴(2400)은 현재의 코드북의 디코더 사본에 IC 필터 계수의 업데이트된 또는 조정된 세트를 저장한다.
블록(2445)에서, 루틴(2400)은 디코딩된 픽쳐 부분이 비인코딩된 원래의 픽쳐의 대응하는 부분을 신뢰성 있게 재생하는 방법을 개선하기 위해 구성된 IC 필터를 이용하는 현재의 픽쳐 부분을 처리한다.
엔딩 루프 블록(2448)에서, 루틴(2400)은 다음 픽쳐 부분(있을 경우)을 처리하기 위해 블록(2420)으로 되돌아간다. 엔딩 루프 블록(2450)에서, 루틴(2400)은 다음 픽쳐(있을 경우)를 처리하기 위해 블록(2408)으로 되돌아간다. 모든 픽쳐가 처리되었을 경우, 루틴(2400)은 블록(2499)에서 종료된다.
본원에서는 특정 실시예를 예시하고 설명했지만, 본 개시의 범주에서 벗어나지 않고 나타내고 설명한 특정 실시예를 대체의 및/또는 그에 상당하는 구현으로 치환할 수 있음을 당업자는 이해할 것이다. 본 출원은 본원에서 논의된 실시예의 어떤 적응 또는 변형을 포함하는 것을 의도하고 있다.

Claims (48)

  1. 인코딩되는 비디오 프레임에 대해 품질 복원 필터 계수값의 세트를 인코딩하는 비디오 인코더 디바이스 구현 방법으로서,
    다양한 특성을 갖는 인코딩되는 비디오의 프레임을 처리하기 위해 비디오 디코더의 품질 복원 필터를 구성하기 위한 복수의 품질 복원 필터 계수값의 세트를 포함하는 코드북(codebook)을 비디오 인코더 디바이스에 의해 획득하는 단계와,
    인코딩된 비트스트림을 생성하기 위해 비디오의 비인코딩된 프레임의 인코딩 동안에, 상기 품질 복원 필터 계수값의 세트가 상기 인코딩되는 프레임의 적어도 일 부분을 처리하기 위해 상기 품질 복원 필터를 구성하는 데 이용될 경우 비디오 디코더가 상기 비디오의 비인코딩된 프레임의 적어도 일 부분을 신뢰성 있게 재생하는 방법을 개선하기 위해 상기 비디오 인코더 디바이스가 상기 품질 복원 필터 계수값의 세트를 상기 코드북으로부터 적응적으로 선택하는 단계와,
    상기 비디오 디코더가 상기 코드북의 비디오의 디코더의 사본으로부터 품질 복원 필터 계수값의 선택된 세트를 선택하게 할 수 있는 인디케이터(indicator)를 상기 비디오 인코더 디바이스에 의해 생성된 상기 인코딩된 비트스트림에 포함시키는 단계를 포함하는
    비디오 인코더 디바이스 구현 방법.

  2. 제 1 항에 있어서,
    상기 품질 복원 필터 계수값의 세트를 상기 코드북으로부터 적응적으로 선택하는 단계는,
    상기 비디오의 비인코딩된 프레임을 인코딩하는 단계와,
    상기 비디오 인코더 디바이스에 의해 로컬 디코더 루프에서 상기 인코딩된 프레임을 디코딩하는 단계와,
    상기 디코딩된 프레임과 상기 비인코딩된 프레임에 따라 품질 복원 필터 계수값의 대상 세트를 계산하는 단계를 포함하는
    비디오 인코더 디바이스 구현 방법.
  3. 제 2 항에 있어서,
    상기 품질 복원 필터 계수값의 세트를 상기 코드북으로부터 선택하는 단계는,
    상기 품질 복원 필터 계수값의 대상 세트에 피팅되는 품질 복원 필터 계수값의 세트를 상기 코드북으로부터 선택하는 단계를 포함하는
    비디오 인코더 디바이스 구현 방법.

  4. 제 3 항에 있어서,
    상기 품질 복원 필터 계수값의 대상 세트에 피팅되는 품질 복원 필터 계수값의 세트를 상기 코드북으로부터 선택하는 단계는,
    상기 품질 복원 필터 계수값의 대상 세트의 하나 이상의 대표적인 계수의 값에 따라 품질 복원 필터 계수값의 정합 세트를 상기 코드북으로부터 선택하는 단계와,
    상기 품질 복원 필터 계수값의 하나 이상의 인접 세트뿐만 아니라, 상기 품질 복원 필터 계수값의 정합 세트를 포함하는 비교 그룹을 선택하는 단계와,
    상기 품질 복원 필터 계수값의 대상 세트와 상기 비교 그룹을 포함하는 세트 사이의 복수의 비교 행렬을 각각 판정하는 단계와,
    상기 판정된 복수의 비교 행렬에 따라 상기 품질 복원 필터 계수값의 대상 세트에 피팅되는 품질 복원 필터 계수값의 세트를 상기 코드북으로부터 선택하는 단계를 포함하는
    비디오 인코더 디바이스 구현 방법.
  5. 제 1 항에 있어서,
    상기 비디오의 비인코딩된 프레임의 인코딩 동안에, 상기 품질 복원 필터 계수값의 선택된 세트에 대한 변화를 계산하는 단계를 더 포함하는
    비디오 인코더 디바이스 구현 방법.
  6. 제 1 항에 있어서,
    상기 비디오의 비인코딩된 프레임의 인코딩 동안에, 품질 복원 필터 계수값의 제 2 세트가 상기 인코딩된 프레임의 제 2 부분을 처리하기 위해 상기 품질 복원 필터를 구성하는 데 이용될 경우 상기 비디오 디코더가 상기 비디오의 비인코딩된 프레임의 제 2 부분을 신뢰성 있게 재생하는 방법을 개선하기 위해 상기 품질 복원 필터 계수값의 제 2 세트를 상기 코드북으로부터 적응적으로 선택하는 단계 더 포함하는
    비디오 인코더 디바이스 구현 방법.
  7. 제 1 항에 있어서,
    상기 비디오의 비인코딩된 프레임의 인코딩 동안에,
    상기 비디오 디코더가 상기 비디오의 비인코딩된 프레임의 적어도 일 부분을 신뢰성 있게 재생하는 방법을 더 개선하기 위해 상기 품질 복원 필터 계수값의 각각의 복수의 선택된 세트를 조정하는 복수의 조정값을 판정하고,
    상기 복수의 판정된 조정값에 따라 상기 코드북에 상기 품질 복원 필터 계수값의 선택된 세트를 업데이트하는 단계와,
    상기 복수의 조정값에 대응하는 업데이트 데이터와 상기 업데이트 데이터에 따른 상기 코드북의 비디오 디코더의 사본을 업데이트하도록 상기 비디오 디코더에 지시하는 업데이트 지시를 상기 인코딩된 비트스트림에 포함시키는 단계를 더 포함하는
    비디오 인코더 디바이스 구현 방법.
  8. 프로세서에 의한 실행 시, 제 4 항 내지 제 7 항 중 어느 한 항의 방법을 수행하는 명령을 저장하는
    비일시적인 컴퓨터 판독 가능한 저장 매체.
  9. 프로세서와,
    상기 프로세서에 의한 실행 시 제 1 항 내지 제 7 항 중 어느 한 항의 방법을 수행하는 명령을 저장하는 저장 매체를 포함하는
    비디오 인코딩 장치.
  10. 인코딩되는 비디오 프레임에 대해 품질 복원 필터 계수값의 세트를 인코딩하는 비디오 인코더 디바이스 구현 방법으로서,
    비디오 인코더 디바이스에 의해 적어도 2개의 코드북을 획득하는 단계 - 상기 적어도 2개의 코드북 중 제 1 코드북은, 적어도 제 1 이미지 특성을 갖는 인코딩되는 비디오의 프레임을 처리하기 위해 제 1 필터 사이즈의 비디오 디코더 품질 복원 필터를 구성하기 위한 품질 복원 필터 계수값의 제 1 복수의 세트를 포함하고, 상기 적어도 2개의 코드북 중 제 2 코드북은, 적어도 제 2 이미지 특성을 갖는 인코딩되는 비디오의 프레임을 처리하기 위해 제 2 필터 사이즈의 비디오 디코더 품질 복원 필터를 구성하기 위한 품질 복원 필터 계수값의 제 2 복수의 세트를 포함하고, 상기 제 2 필터 사이즈는 상기 제 1 필터 사이즈보다 작음 - 와,
    인코딩된 비트스트림을 생성하기 위해 비디오의 비인코딩된 프레임의 인코딩 동안에, 상기 비디오 인코더 디바이스가,
    상기 비인코딩된 프레임의 이미지 특성을 판정하고,
    상기 판정된 이미지 특성에 대해 적어도 부분적으로 의거하여 상기 적어도 2개의 코드북 중 하나를 선택하고,
    상기 품질 복원 필터 계수값의 세트가 상기 인코딩되는 프레임을 처리하기 위해 상기 품질 복원 필터를 구성하는 데 이용될 경우 비디오 디코더가 상기 비디오의 비인코딩된 프레임을 신뢰성 있게 재생하는 방법을 개선하기 위해 상기 품질 복원 필터 계수값의 세트를 상기 선택되는 코드북으로부터 적응적으로 선택하는 단계와,
    상기 비디오 디코더가 상기 적어도 2개의 코드북으로부터 상기 선택되는 코드북을 선택할 수 있게 하는 제 1 인디케이터와, 상기 비디오 디코더가 상기 선택되는 코드북으로부터 품질 복원 필터 계수의 선택되는 세트를 선택할 수 있게 하는 제 2 인디케이터를 상기 비디오 인코더 디바이스에 의해 생성된 상기 인코딩된 비트스트림에 포함시키는 단계를 포함하는
    비디오 인코더 디바이스 구현 방법.
  11. 제 10 항에 있어서,
    상기 판정된 이미지 특성에 적어도 부분적으로 의거하여 적어도 2개의 코드북 중 하나를 선택하는 단계는,
    상기 비인코딩된 프레임의 판정된 이미지 특성에 따라 대상 필터 사이즈를 판정하는 단계와,
    상기 판정된 대상 필터 사이즈에 적어도 부분적으로 의거하는 코드북을 선택하는 단계를 포함하는
    비디오 인코더 디바이스 구현 방법.
  12. 제 11 항에 있어서,
    상기 비인코딩된 프레임의 이미지 특성을 판정하는 단계는 상기 비인코딩된 프레임의 콘트라스트(contrast) 레벨을 판정하는 단계를 포함하는
    비디오 인코더 디바이스 구현 방법.
  13. 제 12 항에 있어서,
    상기 비인코딩된 프레임의 판정된 이미지 특성에 따라 상기 대상 필터 사이즈를 판정하는 단계는 상기 비인코딩된 프레임의 판정된 콘트라스트 레벨에 따라 상기 대상 필터 사이즈를 판정하는 단계를 포함하는
    비디오 인코더 디바이스 구현 방법.
  14. 제 13 항에 있어서,
    상기 비인코딩된 프레임의 판정된 콘트라스트 레벨에 따라 상기 대상 필터 사이즈를 판정하는 단계는, 상기 비인코딩된 프레임의 상기 판정된 콘트라스트 레벨이 낮을 경우 큰 필터 사이즈를 판정하고, 상기 비인코딩된 프레임의 상기 판정된 콘트라스트 레벨이 높을 경우 작은 필터 사이즈를 판정하는 단계를 포함하는
    비디오 인코더 디바이스 구현 방법.
  15. 제 11 항에 있어서,
    상기 적어도 2개의 코드북 중 하나를 선택하는 단계는 상기 인코딩과 연관된 인코딩 품질 행렬에 적어도 부분적으로 더 의거하는
    비디오 인코더 디바이스 구현 방법.
  16. 제 10 항에 있어서,
    상기 품질 복원 필터 계수값의 제 1 복수의 세트는, 5×5, 7×7, 및 9×9 품질 복원 필터 중 선택되는 하나에 대한 계수값의 세트를 포함하고, 상기 품질 복원 필터 계수값의 제 2 복수의 세트는 5×5, 7×7, 및 9×9 품질 복원 필터 중 선택되는 다른 하나에 대한 계수값의 세트를 포함하는
    비디오 인코더 디바이스 구현 방법.
  17. 프로세서에 의한 실행 시, 제 10 항의 방법을 수행하는 명령을 저장하는
    비일시적인 컴퓨터 판독 가능한 저장 매체.
  18. 프로세서와,
    상기 프로세서에 의한 실행 시 제 10 항의 방법을 수행하는 명령을 저장하는 저장 매체를 포함하는
    비디오 인코딩 장치.
  19. 인코딩되는 비디오 프레임에 대해 품질 복원 필터 계수값의 세트를 인코딩하는 비디오 인코더 디바이스 구현 방법으로서,
    다양한 특성을 갖는 인코딩되는 비디오의 프레임을 처리하기 위해 비디오 디코더의 품질 복원 필터를 구성하기 위한 복수의 품질 복원 필터 계수값의 세트를 포함하는 코드북을 비디오 인코더 디바이스에 의해 획득하는 단계와,
    인코딩된 비트스트림을 생성하기 위해 비디오의 비인코딩된 프레임의 인코딩 동안에, 상기 비디오 인코더 디바이스가,
    상기 품질 복원 필터 계수값의 세트가 상기 인코딩되는 프레임의 적어도 일 부분을 처리하기 위해 상기 품질 복원 필터를 구성하는 데 이용될 경우 비디오 디코더가 상기 비디오의 비인코딩된 프레임의 적어도 일 부분을 신뢰성 있게 재생하는 방법을 개선하기 위해 상기 품질 복원 필터 계수값의 세트를 상기 코드북으로부터 적응적으로 선택하고,
    상기 비디오 디코더가 상기 비디오의 비인코딩된 프레임의 적어도 일 부분을 더 신뢰성 있게 재생하는 방법을 개선하기 위해 상기 품질 복원 필터 계수의 각각의 복수의 선택되는 세트를 조정하는 복수의 조정값을 판정하고,
    상기 복수의 조정값을 인코딩하는 단계를 포함하고,
    상기 비디오 인코더 디바이스에 의해 생성된 상기 인코딩된 비트스트림에,
    상기 비디오 디코더가 상기 코드북의 상기 비디오 디코더의 사본으로부터 품질 복원 필터 계수값의 선택된 세트를 선택하게 할 수 있는 선택 인디케이터와,
    상기 인코딩된 복수의 조정값과,
    상기 인코딩된 프레임의 적어도 일 부분을 처리하기 위해 상기 품질 복원 필터를 구성하기 이전에 상기 인코딩된 복수의 조정값에 따라 상기 품질 복원 필터 계수값의 선택된 세트를 조정하도록 상기 비디오 디코더에게 지시하는 조정 인디케이터를 포함시키는
    비디오 인코더 디바이스 구현 방법.
  20. 제 19 항에 있어서,
    상기 품질 복원 필터 계수값의 세트를 상기 코드북으로부터 적응적으로 선택하는 단계는,
    상기 비디오의 비인코딩된 프레임을 인코딩하는 단계와,
    상기 비디오 인코더 디바이스에 의해 로컬 디코더 루프에서 상기 인코딩된 프레임을 디코딩하는 단계와,
    상기 디코딩된 프레임과 상기 비인코딩된 프레임에 따라 품질 복원 필터 계수값의 대상 세트를 계산하는 단계를 포함하는
    비디오 인코더 디바이스 구현 방법.
  21. 제 20 항에 있어서,
    상기 복수의 조정값은, 상기 품질 복원 필터 계수값의 대상 세트와 상기 품질 복원 필터 계수값의 선택된 세트 사이의 차분을 나타내는 복수의 차분 계수값에 따라 판정되는
    비디오 인코더 디바이스 구현 방법.
  22. 제 21 항에 있어서,
    상기 복수의 조정값을 인코딩하는 단계는 상기 복수의 차분 계수값의 주파수 도메인 표현을 계산하는 단계를 포함하는
    비디오 인코더 디바이스 구현 방법.
  23. 프로세서에 의한 실행 시, 제 19 항의 방법을 수행하는 명령을 저장하는
    비일시적인 컴퓨터 판독 가능한 저장 매체.
  24. 프로세서와,
    상기 프로세서에 의한 실행 시 제 19 항의 방법을 수행하는 명령을 저장하는 저장 매체를 포함하는
    비디오 인코딩 장치.
  25. 인코딩되는 비디오 프레임에 대해 품질 복원 필터 계수값의 세트를 디코딩하는 비디오 디코더 디바이스 구현 방법으로서,
    다양한 특성을 갖는 디코딩되는 비디오의 프레임을 처리하기 위해 품질 복원 필터를 구성하기 위한 품질 복원 필터 계수값의 복수의 세트를 포함하는 코드북을 비디오 디코더 디바이스에 의해 획득하는 단계와,
    상기 인코딩되는 비디오 프레임과, 비디오 디코더가 상기 코드북으로부터 품질 복원 필터 계수값의 세트를 선택하게 할 수 있는 선택 인디케이터를 포함하는 인코딩된 비트스트림을 획득하는 단계와,
    상기 인코딩된 비디오 프레임의 디코딩 동안에, 상기 비디오 디코더 디바이스가 상기 선택 인디케이터에 의해 지시된 품질 복원 필터 계수값의 세트를 상기 코드북으로부터 선택하는 단계와,
    상기 품질 복원 필터 계수값의 선택된 세트에 따라 상기 품질 복원 필터를 상기 비디오 디코더 디바이스에 의해 구성하는 단계와,
    상기 비디오의 디코딩되는 프레임이 상기 비디오의 대응하는 비인코딩된 소스 프레임을 신뢰성 있게 재생하는 방법을 개선하기 위해 구성된 품질 복원 필터를 이용하여 상기 비디오의 디코딩된 프레임의 적어도 일부를 상기 비디오 디코더 디바이스에 의해 처리하는 단계와,
    상기 비디오의 처리된 디코딩된 프레임을 상기 비디오 디코더 디바이스와 연관된 디스플레이에 제공하는 단계를 포함하는
    비디오 디코더 디바이스 구현 방법.
  26. 제 25 항에 있어서,
    상기 인코딩된 비트스트림은, 상기 비디오 디코더가 상기 코드북으로부터 품질 복원 필터 계수값의 제 2 세트를 선택하도록 할 수 있게 하는 제 2 선택 인디케이터와, 상기 비디오 디코더가 상기 디코딩된 프레임의 일 부분 및 제 2 부분을 식별할 수 있게 하는 부분 식별 인디케이터를 더 포함하는
    비디오 디코더 디바이스 구현 방법.
  27. 제 25 항에 있어서,
    상기 인코딩된 비트스트림은 업데이트 데이터와, 상기 업데이트 데이터에 따라 상기 비디오 디코더가 상기 코드북을 업데이트하도록 지시하는 업데이트 지시를 더 포함하는
    비디오 디코더 디바이스 구현 방법.
  28. 제 25 항에 있어서,
    품질 복원 필터 계수값의 제 2 복수의 세트를 포함하는 제 2 코드북을 획득하는 단계와,
    상기 인코딩된 비디오 프레임의 디코딩 동안에, 상기 선택 인디케이터에 의해 지시된 품질 복원 필터 계수값의 세트를 상기 선택된 코드북으로부터 선택하기 전에 상기 인코딩된 비트스트림에 포함된 선택 인디케이터에 따라 상기 코드북과 상기 제 2 코드북 중 하나를 선택하는 단계를 더 포함하는
    비디오 디코더 디바이스 구현 방법.
  29. 프로세서에 의한 실행 시, 제 25항 내지 제28항 중 어느 한 항의 방법을 수행하는 명령을 저장하는
    비일시적인 컴퓨터 판독 가능한 저장 매체.
  30. 프로세서와,
    상기 프로세서에 의한 실행 시 제 25항 내지 제28항 중 어느 한 항의 방법을 수행하는 명령을 저장하는 저장 매체를 포함하는
    비디오 디코딩 장치.
  31. 인코딩된 비디오 프레임에 대해 품질 복원 필터 계수값의 세트를 디코딩하는 비디오 디코더 디바이스 구현 방법으로서,
    다양한 특성을 갖는 디코딩되는 비디오의 프레임을 처리하기 위해 품질 복원 필터를 구성하기 위한 품질 복원 필터 계수값의 복수의 세트를 포함하는 코드북을 비디오 디코더 디바이스에 의해 획득하는 단계와,
    상기 인코딩된 비디오 프레임과, 비디오 디코더가 상기 코드북으로부터 품질 복원 필터 계수값의 세트를 선택하게 할 수 있는 선택 인디케이터와, 인코딩된 복수의 조정값과, 상기 비디오 디코더가 상기 인코딩된 복수의 조정값에 따라 품질 복원 필터 계수값의 선택된 세트를 조정하도록 지시하는 조정 인디케이터를 포함하는 인코딩된 비트스트림을 획득하는 단계와,
    상기 인코딩된 비디오 프레임의 디코딩 동안에, 상기 비디오 디코더 디바이스가 상기 선택 인디케이터에 의해 지시된 품질 복원 필터 계수값의 세트를 상기 코드북으로부터 선택하고 상기 인코딩된 복수의 조정값에 따라 품질 복원 필터 계수값의 선택된 세트를 조정하는 단계와,
    상기 품질 복원 필터 계수값의 조정 선택된 세트에 따라 상기 품질 복원 필터를 상기 비디오 디코더 디바이스에 의해 구성하는 단계와,
    상기 비디오의 디코딩되는 프레임이 상기 비디오의 대응하는 비인코딩된 소스 프레임을 신뢰성 있게 재생하는 방법을 개선하기 위해 구성된 품질 복원 필터를 이용하여 상기 비디오의 디코딩된 프레임의 적어도 일부를 상기 비디오 디코더 디바이스에 의해 처리하는 단계와,
    상기 비디오의 처리된 디코딩된 프레임을 상기 비디오 디코더 디바이스와 연관된 디스플레이에 제공하는 단계를 포함하는
    비디오 디코더 디바이스 구현 방법.
  32. 프로세서에 의한 실행 시, 제 31 항의 방법을 수행하는 명령을 저장하는
    비일시적인 컴퓨터 판독 가능한 저장 매체.
  33. 프로세서와,
    상기 프로세서에 의한 실행 시 제 31 항의 방법을 수행하는 명령을 저장하는 저장 매체를 포함하는
    비디오 디코딩 장치.
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
KR1020137017009A 2010-12-21 2011-12-21 고효율 비디오 코딩을 위한 콘텐츠 적응적 장애 보상 필터링 KR101585016B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/974,645 US9462280B2 (en) 2010-12-21 2010-12-21 Content adaptive quality restoration filtering for high efficiency video coding
US12/974,645 2010-12-21
PCT/US2011/066670 WO2012088359A2 (en) 2010-12-21 2011-12-21 Content adaptive impairments compensation filtering for high efficiency video coding

Publications (2)

Publication Number Publication Date
KR20130124517A KR20130124517A (ko) 2013-11-14
KR101585016B1 true KR101585016B1 (ko) 2016-01-13

Family

ID=46234396

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137017009A KR101585016B1 (ko) 2010-12-21 2011-12-21 고효율 비디오 코딩을 위한 콘텐츠 적응적 장애 보상 필터링

Country Status (5)

Country Link
US (4) US9462280B2 (ko)
EP (1) EP2656615A2 (ko)
KR (1) KR101585016B1 (ko)
CN (1) CN107071484B (ko)
WO (1) WO2012088359A2 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9462280B2 (en) * 2010-12-21 2016-10-04 Intel Corporation Content adaptive quality restoration filtering for high efficiency video coding
US9154799B2 (en) 2011-04-07 2015-10-06 Google Inc. Encoding and decoding motion via image segmentation
US8767824B2 (en) 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles
CN103096049A (zh) * 2011-11-02 2013-05-08 华为技术有限公司 一种视频处理方法及系统、相关设备
US9171384B2 (en) * 2011-11-08 2015-10-27 Qualcomm Incorporated Hands-free augmented reality for wireless communication devices
US9262670B2 (en) 2012-02-10 2016-02-16 Google Inc. Adaptive region of interest
US9591302B2 (en) * 2012-07-02 2017-03-07 Microsoft Technology Licensing, Llc Use of chroma quantization parameter offsets in deblocking
US9414054B2 (en) 2012-07-02 2016-08-09 Microsoft Technology Licensing, Llc Control and use of chroma quantization parameter values
EP2920962A4 (en) * 2012-11-13 2016-07-20 Intel Corp ADAPTIVE TRANSFORMATION ENCODING OF CONTENT FOR NEXT GENERATION VIDEO
EP2952003B1 (en) 2013-01-30 2019-07-17 Intel Corporation Content adaptive partitioning for prediction and coding for next generation video
US20140269896A1 (en) * 2013-03-13 2014-09-18 Futurewei Technologies, Inc. Multi-Frame Compression
US9392272B1 (en) 2014-06-02 2016-07-12 Google Inc. Video coding using adaptive source variance based partitioning
US20150365703A1 (en) * 2014-06-13 2015-12-17 Atul Puri System and method for highly content adaptive quality restoration filtering for video coding
US9578324B1 (en) 2014-06-27 2017-02-21 Google Inc. Video coding using statistical-based spatially differentiated partitioning
US9451296B2 (en) 2014-08-19 2016-09-20 At&T Intellectual Property I, L.P. Extracting data from advertisement files for ad insertion
TWI536799B (zh) * 2014-10-29 2016-06-01 虹光精密工業股份有限公司 智慧型複印設備
WO2016204524A1 (ko) * 2015-06-16 2016-12-22 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
WO2017065509A2 (ko) * 2015-10-13 2017-04-20 엘지전자 주식회사 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
KR20180069789A (ko) * 2015-10-16 2018-06-25 엘지전자 주식회사 영상 코딩 시스템에서 예측 향상을 위한 필터링 방법 및 장치
EP3518534B1 (en) * 2016-09-26 2023-05-17 Sony Group Corporation Encoding device, encoding method, decoding device, decoding method, transmission device, and reception device
GB2554680B (en) * 2016-10-03 2020-04-01 Advanced Risc Mach Ltd Selecting encoding options
KR102305633B1 (ko) * 2017-03-17 2021-09-28 엘지전자 주식회사 퀄리티 기반 360도 비디오를 송수신하는 방법 및 그 장치
US10551223B2 (en) 2017-03-20 2020-02-04 Tt Electronics Plc Method and apparatus for configurable photodetector array patterning for optical encoders
WO2019047242A1 (en) * 2017-09-11 2019-03-14 Qualcomm Incorporated METHOD FOR CONFIGURING MIMO UL NON-CODEBOOK TRANSMISSION
GB2567835B (en) 2017-10-25 2020-11-18 Advanced Risc Mach Ltd Selecting encoding options
KR102648464B1 (ko) * 2018-06-25 2024-03-15 에스케이텔레콤 주식회사 지도 학습을 이용한 영상 개선 방법 및 장치
WO2019194425A1 (ko) * 2018-04-06 2019-10-10 에스케이텔레콤 주식회사 영상 부호화 또는 복호화에 인공 신경망을 적용하는 장치 및 방법
US11265540B2 (en) * 2018-02-23 2022-03-01 Sk Telecom Co., Ltd. Apparatus and method for applying artificial neural network to image encoding or decoding
KR102591086B1 (ko) * 2018-09-02 2023-10-17 엘지전자 주식회사 영상 신호를 처리하기 위한 방법 및 장치
US10886932B2 (en) 2018-09-11 2021-01-05 Tt Electronics Plc Method and apparatus for alignment adjustment of encoder systems
US11378422B2 (en) 2018-11-05 2022-07-05 Tt Electronics Plc Method and apparatus for improved performance in encoder systems by configuring a detector array using a partition map and assigning weights to output currents of the detector array
CN111200734B (zh) * 2018-11-19 2022-03-11 浙江宇视科技有限公司 视频编码方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100074323A1 (en) 2008-09-25 2010-03-25 Chih-Ming Fu Adaptive filter
KR100960742B1 (ko) 2001-08-14 2010-06-01 제너럴 인스트루먼트 코포레이션 이전에 생성된 움직임 벡터 및 적응 공간적 필터링을 이용한 디지털 비디오용 노이즈 감소 프리-프로세서

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802481A (en) * 1997-03-20 1998-09-01 Motorola, Inc. Adaptive filtering for use with data compression and signal reconstruction
US6522688B1 (en) 1999-01-14 2003-02-18 Eric Morgan Dowling PCM codec and modem for 56K bi-directional transmission
US20030007583A1 (en) 2001-04-30 2003-01-09 Hilton Howard E. Correction of multiple transmission impairments
CN100562114C (zh) * 2007-08-30 2009-11-18 上海交通大学 视频解码方法与解码装置
US8638852B2 (en) 2008-01-08 2014-01-28 Qualcomm Incorporated Video coding of filter coefficients based on horizontal and vertical symmetry
US8625681B2 (en) * 2008-07-09 2014-01-07 Intel Corporation Rate-distortion cost reducing video encoding techniques
US8442140B2 (en) 2008-09-25 2013-05-14 Samsung Electronics Co., Ltd. Method of designing codebook for network multiple input multiple output communication system and method of using the codebook
KR101647376B1 (ko) * 2009-03-30 2016-08-10 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
EP2249493B1 (en) 2009-05-05 2013-12-18 Alcatel Lucent Method and equipment for operating a coherent optical packet receiver
KR20110001990A (ko) 2009-06-30 2011-01-06 삼성전자주식회사 영상 데이터의 인 루프 필터링 장치 및 방법과 이를 이용한 영상 부호화/복호화 장치
US20120008687A1 (en) * 2010-07-06 2012-01-12 Apple Inc. Video coding using vector quantized deblocking filters
US9628821B2 (en) * 2010-10-01 2017-04-18 Apple Inc. Motion compensation using decoder-defined vector quantized interpolation filters
CA2822079A1 (en) 2010-12-17 2012-06-21 Neural Diabetes Llc Method, system and apparatus for control of pancreatic beta cell function to improve glucose homeostatis and insulin production
US9462280B2 (en) 2010-12-21 2016-10-04 Intel Corporation Content adaptive quality restoration filtering for high efficiency video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100960742B1 (ko) 2001-08-14 2010-06-01 제너럴 인스트루먼트 코포레이션 이전에 생성된 움직임 벡터 및 적응 공간적 필터링을 이용한 디지털 비디오용 노이즈 감소 프리-프로세서
US20100074323A1 (en) 2008-09-25 2010-03-25 Chih-Ming Fu Adaptive filter

Also Published As

Publication number Publication date
CN107071484A (zh) 2017-08-18
US10595018B2 (en) 2020-03-17
US20150288964A1 (en) 2015-10-08
US9912947B2 (en) 2018-03-06
EP2656615A2 (en) 2013-10-30
KR20130124517A (ko) 2013-11-14
CN107071484B (zh) 2020-05-05
US9462280B2 (en) 2016-10-04
US20180278933A1 (en) 2018-09-27
US20120155532A1 (en) 2012-06-21
WO2012088359A2 (en) 2012-06-28
WO2012088359A3 (en) 2012-11-01
US20170078659A1 (en) 2017-03-16
CN103339952A (zh) 2013-10-02

Similar Documents

Publication Publication Date Title
KR101585016B1 (ko) 고효율 비디오 코딩을 위한 콘텐츠 적응적 장애 보상 필터링
JP7257535B2 (ja) 変換スキップモードとブロック差分パルスコード変調の改善された残差コーディング
JP5648183B2 (ja) 高い効率の動画符号化のためのコンテンツアダプティブ動き補償フィルタリング
KR101677406B1 (ko) 차세대 비디오용 비디오 코덱 아키텍처
JP7343668B2 (ja) Vvcにおける色変換のための方法及び機器
JP7297918B2 (ja) ビデオ符号化のための色変換
EP3114841A1 (en) Encoder-side decisions for block flipping and skip mode in intra block copy prediction
JP2013150323A (ja) 変換ユニット内の複数サインビット秘匿
US10284864B2 (en) Content initialization for enhancement layer coding
JP2023010892A (ja) イントラ予測モードとブロック差分パルスコード変調モードとの間の相互作用のための方法および装置
JP7357678B2 (ja) ビデオ復号のための方法、装置、およびプログラム
JP2023542029A (ja) 低ビット精度のニューラルネットワーク(nn)に基づくクロスコンポーネント予測のための方法、機器、及びコンピュータプログラム
JP2023520594A (ja) ビデオ・コーディングのための方法及び装置
US11303896B2 (en) Data encoding and decoding
KR101443865B1 (ko) 인터 예측 방법 및 장치
GB2585042A (en) Image data encoding and decoding
WO2012049876A1 (ja) 動画像符号化方法および復号方法
US20240195959A1 (en) Subblock-based adaptive interpolation filter in digital video coding
US20230007259A1 (en) Image data encoding and decoding
CN113132734A (zh) 一种编码、解码方法、装置及其设备
CN117044204A (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
FPAY Annual fee payment

Payment date: 20190103

Year of fee payment: 4