首页 / 专利库 / 多媒体工具与应用 / 视频编码 / 비디오 코딩에 따른 적응적 루프 필터링

비디오 코딩에 따른 적응적 루프 필터링

阅读:592发布:2023-03-20

专利汇可以提供비디오 코딩에 따른 적응적 루프 필터링专利检索,专利查询,专利分析的服务。并且PURPOSE: Adaptive loop filtering corresponding to video coding is provided to reduce coding noise of a decoded image. CONSTITUTION: A video encoder encodes an input video signal for generating output bitstream. The video encoder includes one or more feedback loops having an adaptive loop filter which is operated corresponding to an adaptive sample offset filter and one scaling processing. The adaptive loop filter receives an output signal, in which adaptive sample offset filtering is performed, from the adaptive sample offset filter. [Reference numerals] (AA) Macro blocks(MB), N x N pixels, (for example, N = 16); (BB) Mode selection; (CC) Mode 0(no exists); (DD) Mode 1(intra); (EE) Mode 2(inter); (FF) Input video signal; (GG) Conversion(for example, DCT); (HH) Quantization; (II) Entropy encoder(for example, CABAC, CAVLC); (JJ) Output bit stream; (KK) Movement compensation; (LL) Movement vector; (MM) Movement estimation; (NN) Picture(intra and/or inter-frame(or picture)) buffer); (OO) Adaptive loop filter(ALF); (PP) Reverse conversion(for example, IDCT); (QQ) Reverse quantization; (RR) Video encoder architecture;,下面是비디오 코딩에 따른 적응적 루프 필터링专利的具体信息内容。

  • 장치에 있어서,
    출력 비트스트림을 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 포함하고;
    상기 비디오 인코더는 샘플 적응적 오프셋(Sample Adaptive Offset; SAO) 필터 및 스케일링 단독 프로세싱(scaling only processing)에 따라 동작하는 적응적 루프 필터(Adaptive Loop Filter; ALF)를 갖는 적어도 하나의 피드백 루프를 포함하며, 상기 적응적 루프 필터는 상기 샘플 적응적 오프셋 필터로부터 샘플 적응적 오프셋-필터링된 출력 신호를 수신하도록 구현되고;
    상기 적응적 루프 필터는 상기 비디오 인코더 내에서 블록 단위(block by block basis) 또는 슬라이스 단위(slice by slice basis)로 선택적으로 이용(employ)되며;
    상기 장치는 상기 입력 비디오 신호에 연관된 복수의 블록들 또는 복수의 슬라이스들 중에서 상기 적응적 루프 필터가 선택적으로 필터링하는 출력 비트스트림을 수신하도록 구현된 적어도 하나의 부가적인 장치에 신호를 보내고; 및
    상기 적응적 루프 필터는 복수의 이득 값들 각각에 따라 스케일링 단독 프로세싱을 수행하도록 동작하는 것을 특징으로 하는 장치.
  • 청구항 1에 있어서,
    상기 적응적 루프 필터는 스케일링 단독 프로세싱, 오프셋 단독 프로세싱(offset only processing) 및 스케일링 및 오프셋 프로세싱(both scaling and offset processing)에 따라 선택적으로 동작하는 것을 특징으로 하는 장치.
  • 청구항 1에 있어서,
    상기 적응적 루프 필터는 제 1 시간 동안 또는 상기 제 1 시간에 상기 복수의 이득 값들 중 제 1 이득 값에 따라 스케일링 단독 프로세싱을 수행하도록 동작되고; 및
    상기 적응적 루프 필터는 제 2 시간 동안 또는 상기 제 2 시간에 상기 다수의 이득 값들 중 제 2 이득 값에 따라 스케일링 단독 프로세싱을 수행하도록 동작하는 것을 특징으로 하는 장치.
  • 청구항 1에 있어서,
    상기 장치는 제 1 통신 디바이스이고;
    상기 적어도 하나의 부가 장치는 적어도 하나의 통신 채널을 통하여 상기 제 1 통신 디바이스와 통신하는 제 2 통신 디바이스이며,
    상기 제 2 통신 디바이스는,
    상기 출력 비트스트림을 수신하는 입력; 및
    상기 입력 비디오 신호에 대응하는 출력 비디오 신호를 생성하기 위하여 상기 출력 비트스트림을 디코딩하는 비디오 디코더로서, 스케일링 단독 프로세싱에 따라 동작하는 적어도 하나의 부가적인 적응적 루프 필터를 갖는 적어도 하나의 부가적인 피드백 루프를 포함하는, 상기 비디오 디코더;를 포함하며,
    상기 제 2 통신 디바이스는 컴퓨터, 랩탑 컴퓨터, 고해상도(High Definition, HD) 텔레비전, 표준 해상도(Standard Definition, SD) 텔레비전, 핸드헬드 미디어 유닛, 셋탑박스(STB) 및 디지털 비디오 디스크(DVD) 플레이어 중 적어도 하나인 것을 특징으로 하는 장치.
  • 청구항 1에 있어서,
    상기 장치는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템, 광섬유 통신 시스템 및 모바일 통신 시스템 중 적어도 하나에서 동작하는 통신 디바이스인 것을 특징으로 하는 장치.
  • 출력 비트스트림을 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 포함하고,
    상기 비디오 인코더는 스케일링 단독 프로세싱에 따라 동작하는 적응적 루프 필터(ALF)를 갖는 적어도 하나의 피드백 루프를 포함하는 것을 특징으로 하는 장치.
  • 청구항 6에 있어서,
    상기 적응적 루프 필터는 상기 비디오 인코더 내에서 블록 단위(block by block basis) 또는 슬라이스 단위(slice by slice basis)로 선택적으로 이용되고; 및
    상기 장치는 상기 입력 비디오 신호에 연관된 복수의 블록들 또는 복수의 슬라이스들 중에서 상기 적응적 루프 필터가 선택적으로 필터링하는 출력 비트스트림을 수신하도록 구현된 적어도 하나의 부가적인 장치에 신호를 보내는 것을 특징으로 하는 장치.
  • 청구항 6에 있어서,
    상기 적응적 루프 필터를 갖는 적어도 하나의 피드백 루프에 포함된 샘플 적응적 오프셋(SAO) 필터를 더 포함하고, 상기 적응적 루프 필터는 상기 샘플 적응적 오프셋 필터로부터 샘플 적응적 오프셋-필터링된 출력 신호를 수신하도록 구현되고;
    상기 적응적 루프 필터는 스케일링 단독 프로세싱, 오프셋 단독 프로세싱 및 스케일링 및 오프셋 프로세싱에 따라 선택적으로 동작하는 것을 특징으로 하는 장치.
  • 청구항 6에 있어서,
    상기 적응적 루프 필터를 갖는 적어도 하나의 피드백 루프에 포함된 샘플 적응적 오프셋(SAO) 필터를 더 포함하고, 상기 적응적 루프 필터는 상기 샘플 적응적 오프셋 필터로부터 샘플 적응적 오프셋-필터링된 출력 신호를 수신하도록 구현되고;
    상기 적응적 루프 필터는 복수의 이득 값들 각각에 따라 스케일링 단독 프로세싱을 수행하도록 동작하는 것을 특징으로 하는 장치.
  • 청구항 6에 있어서,
    상기 적응적 루프 필터를 갖는 적어도 하나의 피드백 루프에 포함된 샘플 적응적 오프셋(SAO) 필터를 더 포함하고, 상기 적응적 루프 필터는 상기 샘플 적응적 오프셋 필터로부터 샘플 적응적 오프셋-필터링된 출력 신호를 수신하도록 구현되고;
    상기 적응적 루프 필터는 제 1 시간 동안 또는 상기 제 1 시간에 제 1 이득 값에 따라 스케일링 단독 프로세싱을 수행하도록 동작되고; 및
    상기 적응적 루프 필터는 제 2 시간 동안 또는 상기 제 2 시간에 제 2 이득 값에 따라 스케일링 단독 프로세싱을 수행하도록 동작하는 것을 특징으로 하는 장치.
  • 청구항 6에 있어서,
    상기 장치는 제 1 통신 디바이스이고;
    적어도 하나의 통신 채널을 통하여 상기 제 1 통신 디바이스와 통신하는 제 2 통신 디바이스를 더 포함하며,
    상기 제 2 통신 디바이스는,
    상기 출력 비트스트림을 수신하는 입력; 및
    상기 입력 비디오 신호에 대응되는 출력 비디오 신호를 생성하기 위하여 출력 비트스트림을 디코딩하는 비디오 디코더로서, 스케일링 단독 프로세싱에 따라 동작하는 부가적인 적응적 루프 필터를 갖는 적어도 하나의 부가적인 피드백 루프를 포함하는, 상기 비디오 디코더를 포함하는 것을 특징으로 하는 장치.
  • 청구항 11에 있어서,
    상기 제 2 통신 디바이스는 컴퓨터, 랩탑 컴퓨터, 고해상도(High Definition, HD) 텔레비전, 표준 해상도(Standard Definition, SD) 텔레비전, 핸드헬드 미디어 유닛, 셋탑박스(STB) 및 디지털 비디오 디스크(DVD) 플레이어 중 적어도 하나인 것을 특징으로 하는 장치.
  • 청구항 6에 있어서,
    상기 장치는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템, 광섬유 통신 시스템 및 모바일 통신 시스템 중 적어도 하나에서 동작하는 통신 디바이스인 것을 특징으로 하는 장치.
  • 통신 디바이스의 비디오 인코더를 동작하는 방법에 있어서,
    출력 비트스트림을 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 동작하는 단계를 포함하고,
    상기 비디오 인코더는 스케일링 단독 프로세싱에 따라 동작하는 적응적 루프 필터를 갖는 적어도 하나의 피드백 루프를 포함하는 것을 특징으로 하는 비디오 인코더 동작 방법.
  • 청구항 14에 있어서,
    상기 비디오 인코더 내에서 블록 단위(block by block basis) 또는 슬라이스 단위(slice by slice basis)로 선택적으로 이용되는 상기 적응적 루프 필터를 동작하는 단계; 및
    상기 입력 비디오 신호에 연관된 복수의 블록들 또는 복수의 슬라이스들 중에서 상기 적응적 루프 필터가 선택적으로 필터링하는 출력 비트스트림을 수신하도록 구현된 적어도 하나의 부가적인 장치에 신호를 보내는 단계를 더 포함하는 것을 특징으로 하는 비디오 인코더 동작 방법.
  • 说明书全文

    비디오 코딩에 따른 적응적 루프 필터링{(Adaptive loop filtering in accordance with video coding}

    우선권 주장

    본 출원은 2011년 9월 27일에 출원되고, 현재 출원계속 중인 발명의 명칭이 "Adaptive loop filtering in accordance with video coding"인 미국 가출원 번호 제61/539,666호(Attoney Docket No. BP23578)를 우선권을 주장하며, 그 전체로 참조로써 본 출원에 통합되고, 모든 목적을 위하여 본 출원의 부분이 된다.

    참조로써 통합

    다음의 표준들/표준안들은 그 전체로 참조로써 본 명세서에 통합되고, 모든 목적을 위하여 본 출원의 부분이 된다.

    1.High efficiency video coding(HEVC) text specification draft 6, Joint Collaborative Team on Video Coding(JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 7th Meeting: Geneva, CH, 21-30 November, 2011, Document: JCTVC-H1003, 259 pages.

    2. International Telecommunication Union, ITU-T, TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU, H.264(03/2010), SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of audiovisual services Coding of moving video, Advanced video coding for generic audiovisual services, Recommendation ITU-T H.264, International Telecomm ISO/IEC 14496-10 MPEG-4 Part 10, AVC(Advanced Video Coding), H.264/MPEG-4 Part 10 or AVC(Advanced Video Coding), ITU H.264/MPEG4-AVC, or equivalent.

    기술분야

    본 발명은 일반적으로 디지털 비디오 프로세싱에 관한 것으로, 더욱 상세하게는 디지털 비디오 프로세싱에 따른 시그널링(signaling)에 관한 것이다.

    디지털 미디어(예를 들어, 이미지들, 비디오, 데이터 등)와 통신하기 위하여 동작하는 통신 시스템들은 수년 동안 계속적인 발전 상황에 있었다. 어떤 형태의 비디오 데이터를 이용한 통신 시스템들과 관련하여, 많은 디지털 이미지들은 출력 및 소비에 적합한 비디오 신호를 만들기 위하여 어떤 프레임 비율(예를 들어, 초당 수 프레임들)에서 출력 또는 디스플레이된다. 비디오 데이터를 사용하여 동작하는 많은 통신 시스템들에서, 프로세싱량(예를 들어, 제 1 위치에서 제 2 위치로 송신될 수 있는 이미지 프레임들의 수)과 결국 출력 또는 디스플레이될 신호의 비디오 및/또는 이미지 품질 사이에서의 트레이드-오프(trade-off)가 있을 수 있다. 현재의 기술들은 적절하고 또는 만족스러운 비디오 및/또는 이미지 품질을 제공하고, 통신들과 관련된 상대적으로 적은 양의 오버헤드 및 통신 링크들 중 각각의 종단들에서의 통신 디바이스들의 상대적으로 적은 복잡성을 보장하면서 비디오 데이터가 제 1 위치로부터 제 2 위치로 송신될 수 있는 수단들을 적절하게 또는 만족스럽게 제공하지 못한다.

    본 발명의 일 실시예에 따라, 장치는 출력 비트스트림을 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 포함하고; 상기 비디오 인코더는 샘플 적응적 오프셋(Sample Adaptive Offset; SAO) 필터 및 스케일링 단독 프로세싱에 따라 동작하는 적응적 루프 필터(Adaptive Loop Filter; ALF)를 갖는 적어도 하나의 피드백 루프를 포함하고, 상기 적응적 루프 필터는 상기 샘플 적응적 오프셋 필터로부터 샘플 적응적 오프셋-필터링된 출력 신호를 수신하도록 구현되고; 상기 적응적 루프 필터는 상기 비디오 인코더 내에서 블록 단위(block by block basis) 또는 슬라이스 단위(slice by slice basis)로 선택적으로 이용되고; 상기 장치는 상기 입력 비디오 신호에 연관된 복수의 블록들 또는 복수의 슬라이스들 중에서 상기 적응적 루프 필터가 선택적으로 필터링하는 출력 비트스트림을 수신하도록 구현된 적어도 하나의 부가적인 장치에 신호를 보내고; 및 상기 적응적 루프 필터는 다수의 이득 값들 각각에 따라 스케일링 단독 프로세싱(scaling only processing)을 수행하도록 동작한다.

    바람직하게는, 상기 적응적 루프 필터는 스케일링 단독 프로세싱, 오프셋 단독 프로세싱(offset only processing) 및 스케일링과 오프셋 프로세싱에 따라 선택적으로 동작한다.

    바람직하게는, 상기 적응적 루프 필터는 제 1 시간 동안 또는 상기 제 1 시간에 상기 다수의 이득 값들 중 제 1 이득 값에 따라 스케일링 단독 프로세싱을 수행하도록 동작되고; 및 상기 적응적 루프 필터는 제 2 시간 동안 또는 상기 제 2 시간에 상기 다수의 이득 값들 중 제 2 이득 값에 따라 스케일링 단독 프로세싱을 수행하도록 동작한다.

    바람직하게는, 상기 장치는 제 1 통신 디바이스이고; 상기 적어도 하나의 부가 장치는 적어도 하나의 통신 채널을 통하여 상기 제 1 디바이스와 통신하는 제 2 통신 디바이스이고, 상기 제 2 통신 디바이스는 상기 출력 비트스트림을 수신하는 입력; 및 상기 입력 비디오 신호에 대응하는 출력 비디오 신호를 생성하기 위하여 출력 비트스트림을 디코딩하는 비디오 디코더를 포함하고, 상기 비디오 디코더는 스케일링 단독 프로세싱에 따라 동작하는 부가적인 적응적 루프 필터를 갖는 적어도 하나의 부가적인 피드백 루프를 포함하고; 및 상기 제 2 통신 디바이스는 컴퓨터, 랩탑 컴퓨터, HD(High Definition) 텔레비전, SD(Standard Definition) 텔레비전, 핸드헬드 미디어 유닛, 셋탑박스(STB) 및 디지털 비디오 디스크(DVD) 플레이어 중 적어도 하나이다.

    바람직하게는, 상기 장치는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템, 광섬유 통신 시스템 및 모바일 통신 시스템 중 적어도 하나에서 동작하는 통신 디바이스이다.

    본 발명의 일 실시예에 따라, 장치는 출력 비트스트림을 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 포함하고, 상기 비디오 인코더는 스케일링 단독 프로세싱에 따라 동작하는 적응적 루프 필터를 갖는 적어도 하나의 피드백 루프를 포함한다.

    바람직하게는, 상기 적응적 루프 필터는 상기 비디오 인코더 내에서 블록 단위(block by block basis) 또는 슬라이스 단위(slice by slice basis)로 선택적으로 이용되고; 및 상기 장치는 상기 입력 비디오 신호에 연관된 복수의 블록들 또는 복수의 슬라이스들 중에서 상기 적응적 루프 필터가 선택적으로 필터링하는 출력 비트스트림을 수신하도록 구현된 적어도 하나의 부가적인 장치에 신호를 보낸다.

    바람직하게는, 상기 장치는, 상기 적응적 루프 필터를 갖는 적어도 하나의 피드백 루프에 포함된 샘플 적응적 오프셋(SAO) 필터를 더 포함하고, 상기 적응적 루프 필터는 상기 샘플 적응적 오프셋 필터로부터 샘플 적응적 오프셋-필터링된 출력 신호를 수신하도록 구현되고; 상기 적응적 루프 필터는 스케일링 단독 프로세싱, 오프셋 단독 프로세싱 및 스케일링과 오프셋 프로세싱에 따라 선택적으로 동작한다.

    바람직하게는, 상기 장치는, 상기 적응적 루프 필터를 갖는 적어도 하나의 피드백 루프에 포함된 샘플 적응적 오프셋(SAO) 필터를 더 포함하고, 상기 적응적 루프 필터는 상기 샘플 적응적 오프셋 필터로부터 샘플 적응적 오프셋-필터링된 출력 신호를 수신하도록 구현되고; 상기 적응적 루프 필터는 다수의 이득 값들 각각에 따라 스케일링 단독 프로세싱을 수행하도록 동작한다.

    바람직하게는, 상기 적응적 루프 필터를 갖는 적어도 하나의 피드백 루프에 포함된 샘플 적응적 오프셋(SAO) 필터를 더 포함하고, 상기 적응적 루프 필터는 상기 샘플 적응적 오프셋 필터로부터 샘플 적응적 오프셋-필터링된 출력 신호를 수신하도록 구현되고; 상기 적응적 루프 필터는 제 1 시간 동안 또는 상기 제 1 시간에 제 1 이득 값에 따라 스케일링 단독 프로세싱을 수행하도록 동작되고; 및 상기 적응적 루프 필터는 제 2 시간 동안 또는 상기 제 2 시간에 제 2 이득 값에 따라 스케일링 단독 프로세싱을 수행하도록 동작한다.

    바람직하게는, 상기 장치는 제 1 통신 디바이스이고; 적어도 하나의 통신 채널을 통하여 상기 제 1 디바이스와 통신하는 제 2 통신 디바이스를 더 포함하고, 상기 제 2 통신 디바이스는, 상기 출력 비트스트림을 수신하는 입력; 및 상기 입력 비디오 신호에 대응되는 출력 비디오 신호를 생성하기 위하여 출력 비트스트림을 디코딩하는 비디오 디코더를 포함하고, 상기 비디오 디코더는 스케일링 단독 프로세싱에 따라 동작하는 부가적인 적응적 루프 필터를 갖는 적어도 하나의 부가적인 피드백 루프를 포함한다.

    바람직하게는, 상기 제 2 통신 디바이스는 컴퓨터, 랩탑 컴퓨터, HD(High Definition) 텔레비전, SD(Standard Definition) 텔레비전, 핸드헬드 미디어 유닛, 셋탑박스(STB) 및 디지털 비디오 디스크(DVD) 플레이어 중 적어도 하나이다.

    바람직하게는, 상기 장치는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템, 광섬유 통신 시스템 및 모바일 통신 시스템 중 적어도 하나에서 동작하는 통신 디바이스이다.

    본 발명의 일 실시예에 따라, 통신 디바이스의 비디오 인코더를 동작하는 방법은 출력 비트스트림을 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 동작하는 단계를 포함하고, 상기 비디오 인코더는 스케일링 단독 프로세싱에 따라 동작하는 적응적 루프 필터를 갖는 적어도 하나의 피드백 루프를 포함한다.

    바람직하게는, 상기 방법은, 상기 비디오 인코더 내에서 블록 단위(block by block basis) 또는 슬라이스 단위(slice by slice basis)로 선택적으로 이용되는 상기 적응적 루프 필터를 동작하는 단계; 및 상기 입력 비디오 신호에 연관된 복수의 블록들 또는 복수의 슬라이스들 중에서 상기 적응적 루프 필터가 선택적으로 필터링하는 출력 비트스트림을 수신하도록 구현된 적어도 하나의 부가적인 장치에 신호를 보내는 단계를 더 포함한다.

    바람직하게는, 상기 방법은 상기 적응적 루프 필터가 상기 샘플 적응적 오프셋 필터로부터 샘플 적응적 오프셋-필터링된 출력 신호를 수신하도록, 상기 적응적 루프 필터를 갖는 적어도 하나의 피드백 루프에 포함된 샘플 적응적 오프셋(SAO) 필터를 구동하는 단계; 및 스케일링 단독 프로세싱, 오프셋 단독 프로세싱 및 스케일링과 오프셋 프로세싱에 따라 선택적으로 동작하는 상기 적응적 루프 필터를 동작하는 단계를 더 포함한다.

    바람직하게는, 상기 방법은 상기 방법은 상기 적응적 루프 필터가 상기 샘플 적응적 오프셋 필터로부터 샘플 적응적 오프셋-필터링된 출력 신호를 수신하도록, 상기 적응적 루프 필터를 갖는 적어도 하나의 피드백 루프에 포함된 샘플 적응적 오프셋(SAO) 필터를 구동하는 단계; 및 다수의 이득 값들 각각에 따라 스케일링 단독 프로세싱을 수행하도록 동작하는 상기 적응적 루프 필터를 동작하는 단계를 더 포함한다.

    바람직하게는, 상기 방법은 상기 적응적 루프 필터가 상기 샘플 적응적 오프셋 필터로부터 샘플 적응적 오프셋-필터링된 출력 신호를 수신하도록, 상기 적응적 루프 필터를 갖는 적어도 하나의 피드백 루프에 포함된 샘플 적응적 오프셋(SAO) 필터를 구동하는 단계; 및 제 1 시간 동안 또는 상기 제 1 시간에 제 1 이득 값에 따라 스케일링 단독 프로세싱을 수행하도록 동작하는 상기 적응적 루프 필터를 동작하는 단계; 및 제 2 시간 동안 또는 상기 제 2 시간에 제 2 이득 값에 따라 스케일링 단독 프로세싱을 수행하도록 동작하는 상기 적응적 루프 필터를 동작하는 단계를 더 포함한다.

    바람직하게는 상기 방법은 적어도 하나의 통신 채널을 통하여 상기 통신 디바이스와 통신하는 부가적인 통신 디바이스를 동작하는 단계를 더 포함하고, 상기 부가적인 통신 디바이스는 출력 비트스트림을 수신하는 단계; 및 상기 입력 비디오 신호에 대응되는 출력 비디오 신호를 생성하기 위하여 출력 비트스트림을 디코딩하는 비디오 디코더를 동작하는 단계를 수행하고, 상기 비디오 디코더는 스케일링 단독 프로세싱에 따라 동작하는 부가적인 적응적 루프 필터를 갖는 적어도 하나의 부가적인 피드백 루프를 포함하고, 상기 부가적인 통신 디바이스는 컴퓨터, 랩탑 컴퓨터, HD(High Definition) 텔레비전, SD(Standard Definition) 텔레비전, 핸드헬드 미디어 유닛, 셋탑박스(STB) 및 디지털 비디오 디스크(DVD) 플레이어 중 적어도 하나이다.

    바람직하게는, 상기 통신 디바이스는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템, 광섬유 통신 시스템 및 모바일 통신 시스템 중 적어도 하나에서 동작한다.

    도 1 및 도 2는 통신 시스템들의 다양한 실시예들을 나타낸다.
    도 3a는 컴퓨터의 실시예를 나타낸다.
    도 3b는 랩탑 컴퓨터의 실시예를 나타낸다.
    도 3c는 HD(High Definition) 텔레비전의 실시예를 나타낸다.
    도 3d는 SD(Standard Definition) 텔레비전의 실시예를 나타낸다.
    도 3e는 핸드헬드 미디어 유닛의 실시예를 나타낸다.
    도 3f는 셋탑박스(STB)의 실시예를 나타낸다.
    도 3g는 DVD의 실시예를 나타낸다.
    도 3h는 일반 디지털 이미지 및/또는 비디오 프로세싱 디바이스의 실시예를 나타낸다.
    도 4, 도 5 및 도 6은 비디오 인코딩 아키텍처들의 다양한 실시예들을 나타내는 도면들이다.
    도 7은 인트라-예측(intra-prediction) 프로세싱의 실시예를 나타내는 도면이다.
    도 8은 인터-예측(inter-prediction) 프로세싱의 실시예를 나타내는 도면이다.
    도 9 및 도 10은 비디오 디코딩 아키텍처들의 다양한 실시예들을 나타내는 도면들이다.
    도 11, 도 12, 도 13, 도 14 및 도 15는 각각 적응적 루프 필터링을 포함하는 비디오 인코딩 아키텍처들의 다양한 실시예들을 나타내는 도면들이다.
    도 16a 및 도 16b는 (예를 들어, 하나 또는 그 이상의 통신 디바이스들 내에서) 비디오 코딩에 따라 수행되는 방법들의 다양한 실시예들을 나타낸다.

    디지털 비디오(video)와 같은 디지털 미디어를 사용하는 많은 디바이스들 내에서, 원래 디지털인 각각의 이미지들은 픽셀들을 이용하여 나타내어질 수 있다. 어떤 통신 시스템들에서, 디지털 미디어는 제 1 위치로부터 상기 미디어가 출력되거나 또는 디스플레이될 수 있는 제 2 위치로 송신될 수 있다. 디지털 통신 시스템들의 목적은 하나의 위치 또는 서브시스템에서 다른 하나로 디지털 데이터를 에러 없이 또는 만족스러운 낮은 에러율로 송신하는 것이다. 도 1에 도시된 바와 같이, 마그네틱 미디어, 유선, 무선, 섬유, 구리 및/또는 다른 형태의 미디어와 같은 다양한 많은 통신시스템들의 다양한 통신 채널들을 통하여 데이터가 전송될 수 있다.

    도 1 및 도 2는 각각 통신 시스템들(100 및 200)의 다양한 실시예들을 나타내는 도면들이다.

    도 1을 참조하면, 통신 시스템(100)의 이러한 실시예는 통신 채널(communication channel, 199)의 일단에 위치한 통신 디바이스(110)(인코더(encoder, 114)를 갖는 송신기(transmitter, 112) 및 디코더(decoder, 118)를 갖는 수신기(receiver, 116)를 포함하는)를 통신 채널(199)의 타단에 위치한 다른 통신 디바이스(120)(인코더(128)를 갖는 송신기(126) 및 디코더(124)를 갖는 수신기(122)를 포함하는)에 통신가능하게 연결하는 통신 채널(199)이다. 일부 실시예들에 있어서, 통신 디바이스들(110 및 120) 중 어느 하나는 오직 송신기 또는 수신기만을 포함할 수도 있다. 통신 채널(199)(예를 들어, 위성 접시들(satellite dishes, 132 및 134)을 이용하는 위성 통신 채널(130), 타워들(towers, 142 및 144) 및/또는 로컬 안테나들(local antennae, 152 및 154)을 이용하는 무선 통신 채널(140), 유선 통신 채널(150), 전기/광(electrical to optical, E/O) 인터페이스(162) 및 광/전기(optical to electrical, O/E) 인터페이스(164)를 이용하는 광섬유 통신 채널(160))을 구현하는 다양한 다른 유형의 미디어가 있다. 부가하여, 하나 이상의 미디어 유형이 함께 구현되고, 인터페이스될 수 있고, 그렇게 함으로써 통신 채널(199)을 형성한다.

    이러한 통신 디바이스들(110 및/또는 120)은 본 발명의 범위 및 사상을 벗어남 없이 고정(stationary) 또는 모바일일 수 있다는 것을 주목해야 한다. 예를 들어, 통신 디바이스들(110 및 120)의 둘 중 하나 또는 둘 모두는 고정된 위치에 구현될 수도 있거나, 또는 하나 이상의 네트워크 액세스 포인트들(예를 들어, 하나 또는 그 이상의 무선 로컬 영역 네트워크(Wireless Local Area Network; WLAN)들을 포함하는 모바일 통신 시스템에서의 다른 각각의 액세스 포인트(Access Point; AP)들, 하나 또는 그 이상의 위성을 포함하는 모바일 통신 시스템에서의 다른 각각의 위성 또는 일반적으로 통신 디바이스들(110 및/또는 120)을 이용해 통신들이 달성될 수 있도록 하는 하나 또는 그 이상의 네트워크 액세스 포인트들을 포함하는 모바일 통신 시스템에서의 다른 각각의 네트워크 액세스 포인트들)과 연결하거나 및/또는 통신할 수 있는 성능을 가진 모바일 통신 디바이스일 수도 있다.

    통신 시스템에서 바람직하지 않게 발생할 수도 있는 송신 에러들을 감소시키기 위하여, 에러 정정(error correction) 및 채널 코딩 기술들이 종종 사용된다. 일반적으로, 이러한 에러 정정 및 채널 코딩 기술들은 통신 채널(199)의 송신기단에서의 인코더 및 통신 채널(199)의 수신기단에서의 디코더의 사용을 포함한다.

    기술된 ECC 코드들의 다양한 유형들 중 어느 하나가 임의의 바람직한 통신 시스템(예를 들어, 도 1과 관련하여 기술된 이러한 변형들을 포함하는), 임의의 정보 저장 디바이스(예를 들어, 하드 디스크 드라이브(HDD)들, 네트워크 정보 저장 디바이스들 및/또는 서버들 등), 또는 정보 인코딩 및/또는 디코딩이 요구되는 임의의 어플리케이션에서 사용될 수 있다.

    일반적으로 말하자면, 비디오 데이터가 하나의 위치 또는 서브시스템으로부터 다른 하나로 통신될 수 있는 통신 시스템을 고려할 때, 비디오 데이터 인코딩은 일반적으로 통신 채널(199)의 송신기단에서 수행되는 것으로 보여질 수 있고, 비디오 데이터 디코딩은 일반적으로 통신 채널(199)의 수신기단에서 수행되는 것으로 보여질 수 있다.

    또한, 이 도면의 실시예는 통신 디바이스들(110 및 120) 사이의 양방향 통신을 나타내는 반면에, 다른 실시예들(예를 들어, 비디오 브로드캐스트 실시예와 같은 단방향 통신에서)에서는 통신 디바이스(110)는 오직 비디오 데이터 인코딩 성능만을 포함할 수도 있고, 통신 디바이스(120)는 오직 비디오 디코딩 성능만을 포함할 수도 있고, 그 반대일 수도 있다.

    도 2의 통신 시스템(200)을 참조하면, 통신 채널(299)의 송신단에서, 정보 비트들(information bits, 201)(예를 들어, 일 실시예에서 비디오 데이터에 특히 대응하는)이 인코더 및 심볼 맵퍼(symbol mapper, 220)(각각 별개의 기능적 블록들(distinct functional blocks)(222 및 224)로 보여질 수도 있는)를 사용하여 이러한 정보 비트들(201)의 인코딩을 수행하도록 동작 가능한 송신기(297)에 제공되며, 그럼으로써 연속-시간(continuous-time) 송신 신호(204)를 생성하는 DAC(Digital to Analog Converter, 232) 및 통신 채널(299)에 실질적으로 적합한 필터링된 연속-시간 송신 신호(205)를 생성하는 송신 필터(transmit filter, 234)를 사용하는 송신 드라이버(transmit driver, 230)에 제공되는 일련의 이산-값 변조 심볼들(discrete-valued modulation symbols, 203)을 생성한다. 통신 채널(299)의 수신단에서, 연속-시간 수신 신호(206)는 수신 필터(262)(필터링된 연속-시간 수신 신호(207)를 생성하는) 및 ADC(Analog to Digital Converter, 264)(이산-시간 수신 신호(208)를 생성하는)를 포함하는 APE(Analog Front End, 260)에 제공된다. 메트릭 생성기(metric generator, 270)는 이산-값 변조 심볼들 및 거기(210)에 인코딩된 정보 비트들을 최적으로 측정하기 위하여 디코더(280)에 의하여 이용되는 메트릭스(metrics, 209)를 계산한다(예를 들어, 심볼 및/또는 비트 단위(bit basis) 중 어느 하나에서).

    송신기(297) 및 수신기(298) 각각 내에서, 다양한 구성요소들, 블록들, 기능적 블록들, 회로들 등의 바람직한 통합이 그 안에서 구현될 수도 있다. 예를 들어, 이 도면은 인코더 및 심볼 맵퍼(220) 및 그 안에서 모두 연관된 대응하는 구성요소들을 포함하는 프로세싱 모듈(processing module, 280a) 및 메트릭 생성기(270)와 디코더(280) 및 그 안에서 모두 연관된 대응하는 구성요소들을 포함하는 프로세싱 모듈(280b)을 나타낸다. 프로세싱 모듈들(280a 및 280b)은 각각 집적 회로들로 구현될 수도 있다. 물론, 다른 경계들 및 그룹핑들이 본 발명의 범위 및 사상을 벗어남 없이 수행될 수도 있다. 예를 들어, 송신기(297) 내의 모든 구성요소들은 제 1 프로세싱 모듈 또는 집적 회로에 포함될 수도 있고, 수신기(298) 내의 모든 구성요소들은 제 2 프로세싱 모듈 또는 집적 회로에 포함될 수도 있다. 대안적으로, 송신기(297) 및 수신기(298) 각각 내의 구성요소들의 임의의 다른 조합도 다른 실시예들에서 구현될 수 있다.

    이전 실시예의 경우와 마찬가지로, 이러한 통신 시스템(200)은 하나의 위치 또는 서브시스템에서 다른 하나로(예를 들어, 통신 채널(298)을 통하여 송신기(297)에서 수신기(298)로) 통신되는 비디오 데이터의 통신을 위하여 이용될 수도 있다.

    디지털 이미지들 및/또는 미디어(디지털 비디오 신호 내의 각각의 이미지들을 포함하는)의 디지털 이미지 및/또는 비디오 프로세싱은 사용자가 디지털 이미지들 및/또는 비디오를 볼 수 있게 하는 아래의 도 3a 내지 도 3h에 도시된 다양한 디바이스들 중 어느 하나에 의하여 수행될 수 있다. 이러한 다양한 디바이스들은 본 명세서에 기술된 이미지 및/또는 비디오 프로세싱이 실행될 수 있는 디바이스들의 완전 목록(exhaustive list)을 포함하지 않으며, 임의의 일반적인 디지털 이미지 및/또는 비디오 프로세싱 디바이스가 본 발명의 범위 및 사상을 벗어남 없이 본 명세서에 기술된 프로세싱을 수행하도록 구현될 수 있다는 점이 주목된다.

    도 3a는 컴퓨터(301)의 실시예를 나타낸다. 컴퓨터(301)는 데스크탑 컴퓨터, 또는 RAID(Redundant Array of Independent Disks) 어레이, 스토리지 라우터, 에지 라우터, 스토리지 스위치 및/또는 스토리지 디렉터(director)와 같은 스토리지 어레이에 부착되는 호스트의 서버와 같은 엔터프라이즈 스토리지 디바이스들일 수 있다. 사용자는 컴퓨터(301)를 이용하여 스틸(still) 디지털 이미지들 및/또는 비디오(예를 들어, 일련의 디지털 이미지들)을 볼 수 있다. 종종, 다양한 이미지 및/또는 비디오 보기 프로그램들 및/또는 미디어 플레이어 프로그램들이 사용자가 이러한 이미지들(비디오 포함하는)을 볼 수 있게 컴퓨터(301)에 포함된다.

    도 3b는 랩탑 컴퓨터(302)의 실시예를 나타낸다. 랩탑 컴퓨터(302)는 매우 다양한 컨텍스트들(contexts)의 어느 하나에서 발견되고 사용될 수 있다. 최근 몇 년 동안, 랩탑 컴퓨터에서 발견된 끊임없이 증가한 프로세싱 성능 및 기능성으로 인하여, 랩탑 컴퓨터(302)는 이전에 고급 및 고성능의 데스크탑 컴퓨터들이 사용되었던 많은 경우들에 이용되고 있다. 컴퓨터(301)와 마찬가지로, 랩탑 컴퓨터(302)는 사용자가 상기 (비디오를 포함하는) 이미지들을 볼 수 있도록 다양한 이미지 및/또는 비디오 보기 프로그램들 및/또는 미디어 플레이어 프로그램들을 포함할 수도 있다.

    도 3c는 HD(High Definition) 텔레비전(303)의 실시예를 나타낸다. 많은 HD 텔레비전들(303)은 미디어 컨텐트(예를 들어, 텔레비전 방송 신호들)을 그 안에서 수신, 프로세싱 및 디코딩할 수 있는 통합 튜너를 포함한다. 대안적으로, 종종 HD 텔레비전(303)은 디지털 비디오 디스크(DVD) 플레이어, 케이블 및/또는 위성 텔레비전 방송 신호를 수신, 프로세싱 및 디코딩하는 셋탑박스(STB)와 같은 다른 소스로부터 미디어 컨텐트를 수신한다. 특정한 구현에 상관없이, HD 텔레비전(303)은 본 명세서에 기술된 대로 이미지 및/또는 비디오 프로세싱을 수행하도록 구현될 수도 있다. 일반적으로 말하자면, HD 텔레비전(303)은 HD 미디어 컨텐트를 디스플레이할 수 있는 성능을 가지고, 종종 16:9 와이드스크린 화면비율을 가지도록 구현될 수 있다.

    도 3d는 SD(Standard Definition) 텔레비전(304)의 실시예를 나타낸다. 물론, SD 텔레비전(304)은 HD 미디어 컨텐트를 디스플레이할 성능을 포함하고 있지 않고, 종종 SD 텔레비전(304)은 4:3 풀-스크린 화면비율을 갖도록 구현되는 적어도 하나의 차이점을 가지면서 HD 텔레비전(303)과 다소 유사하다. 그럼에도 불구하고, SD 텔레비전(304)은 본 명세서에 기술된 대로 이미지 및/또는 비디오 프로세싱을 수행하도록 구현될 수도 있다.

    도 3e는 핸드헬드 미디어 유닛(305)의 실시예를 나타낸다. 핸드헬드 미디어 유닛(305)은 사용자에게 재생을 위하여 일반적인 저장 또는 JPEG(Joint Photograph Experts Group) 파일들, TIFF(Tagged Image File Format). 비트맵, MPEG(Motion Picture Experts Group) 파일들, 윈도우즈 미디어(WMA/WMV) 파일들, MPEG4와 같은 다른 형태의 비디오 컨텐트 및/또는 디지털 포맷으로 저장될 수도 있는 다른 형태의 정보와 같은 이미지/비디오 컨텐트 정보의 저장을 제공하기 위하여 동작할 수도 있다. 역사적으로, 상기 핸드헬드 미디어 유닛들은 주로 오디오 미디어의 저장 또는 재생을 위하여 사용되었지만, 가상 미디어(예를 들어, 오디오 미디어, 비디오 미디어, 사진 미디어 등)의 저장 및 재생을 위하여 사용될 수도 있다. 더구나, 이러한 핸드헬드 미디어 유닛(305)은 유선 및 무선 통신들을 위하여 통합된 통신 회로와 같은 다른 기능성을 포함할 수도 있다. 이러한 핸드헬드 미디어 유닛(305)은 본 명세서에 기술된 대로 이미지 및/또는 비디오 프로세싱을 수행하도록 구현될 수도 있다.

    도 3f는 셋탑박스(STB, 306)의 실시예를 나타낸다. 위에 언급한 바와 같이, 종종 STB(306)는 SD 텔레비전(304) 및/또는 HD 텔레비전(303)과 같은 임의의 적절한 디스플레이 가능 디바이스에 제공될 케이블 및/또는 위선 텔레비전 방송 신호를 수신, 프로세싱 및 디코딩하도록 구현될 수도 있다. 이러한 STB(306)는 본 명세서에 기술된 대로 이미지 및/또는 비디오 프로세싱을 수행하도록 상기 디스플레이 가능 디바이스와 독립적으로 또는 협력적으로 동작할 수도 있다.

    도 3g는 디지털 비디오 디스크(DVD) 플레이어(307)의 실시예를 나타낸다. 본 발명의 범위 또는 사상을 벗어남 없이, 상기 DVD 플레이어는 블루레이 DVD 플레이어, HD 가능 DVD 플레이어. SD 가능 DVD 플레이어, 업-샘플링(up-sampling)(예를 들어, SD로부터 HD로의 등) 가능 DVD 플레이어일 수도 있다. DVD 플레이어는 임의의 적절한 SD 텔레비전(304) 및/또는 HD 텔레비전(303)과 같은 디스플레이 가능 디바이스에 신호를 제공할 수도 있다. DVD 플레이어(307)는 본 명세서에 기술한 대로 이미지 및/또는 비디오 프로세싱을 수행하도록 구현될 수도 있다.

    도 3h는 일반 디지털 이미지 및/또는 비디오 프로세싱 디바이스(308)의 실시예를 나타낸다. 다시, 위에 언급한 바와 같이, 위에서 기술된 다양한 디바이스들은 본 명세서에 기술된 이미지 및/또는 비디오 프로세싱이 실행될 수 있는 디바이스들의 완전 목록(exhaustive list)을 포함하지 않으며, 임의의 일반 디지털 이미지 및/또는 비디오 프로세싱 디바이스(308)가 본 발명의 범위 및 사상을 벗어남 없이 본 명세서에 기술된 프로세싱을 수행하도록 구현될 수도 있음을 주목해야 한다.

    도 4, 도 5 및 도 6은 각기 비디오 인코딩 아키텍처들(400, 500 및 600)의 다양한 실시예들을 나타낸다.

    도 4의 실시예(400)를 참조하면, 이 도면과 관련하여 보여질 수 있는 바와 같이, 입력 비디오 신호는 비디오 인코더에 의하여 수신된다. 특정 실시예들에 있어서, 입력 비디오 신호는 코딩 유닛(coding unit, CU)들 또는 매크로-블록(macro-block, MB)들로 구성된다. 코딩 유닛들 또는 매크로-블록들의 크기는 변화될 수 있고, 전형적으로 사각형 형태로 배열된 다수의 픽셀들을 포함할 수 있다. 일 실시예에 있어서, 상기 코딩 유닛들 또는 매크로-블록들은 16×16 픽셀들의 크기를 가진다. 그러나 일반적으로 매크로-블록은 N×N(N은 정수) 픽셀들과 같은 임의의 바람직한 크기도 가질 수도 있음을 주목해야 한다. 물론, 비록 사각형 형태의 코딩 유닛들 또는 매크로-블록들이 바람직한 실시예에서 이용되지만, 일부 구현들은 비-사각형(non-square) 형태의 코딩 유닛들 또는 매크로-블록들을 포함할 수도 있다.

    입력 비디오 신호는 일반적으로 원시(raw) 프레임(또는 픽처(picture)) 이미지 데이터에 대응하도록 지칭될 수도 있다. 예를 들어, 원시 프레임(또는 픽처) 이미지 데이터는 휘도(luma) 및 채도(chroma) 샘플들을 생성하는 프로세싱을 받을 수 있다. 일부 실시예들에 있어서, 매크로-블록에서 휘도 샘플들의 세트는 하나의 특정 배열(예를 들어, 16×16)을 가지고, 채도 샘플들의 세트는 다른 특정 배열(예를 들어, 8×8)을 갖는다. 본 명세서에 기술된 실시예에 따라, 비디오 인코더는 블록 단위(block by block basis)로 샘플들을 처리한다.

    그 후, 입력 비디오 신호는 모드 선택을 받고, 모드 선택에 의해 입력 비디오 신호가 선택적으로 인트라(intra) 및/또는 인터-예측(inter-prediction) 프로세싱을 받는다. 일반적으로 말하자면, 입력 비디오 신호는 압축 경로에 따라 압축된다. 피드백 없이 동작하는 경우(예를 들어, 인터-예측 및 인트라-예측도 없는 경우), 입력 비디오 신호는 변환 동작들(transform operations)(예를 들어, 이산 코사인 변환(DCT)에 따라)을 받기 위하여 압축 경로를 통해 제공된다. 물론, 다른 변환들도 대안적인 실시예들에서 이용될 수도 있다. 이 동작 모드에서, 입력 비디오 신호 자체가 압축된다. 압축 경로는 압축을 수행함에 있어서 인간 눈의 고주파 민감도의 부족을 이용할 수도 있다.

    그러나 인터-예측 또는 인트라-예측 비디오 인코딩을 선택적으로 이용함으로써 압축 경로를 따라 피드백이 이용될 수도 있다. 피드백 또는 동작의 예측 모드에 따라, 압축 경로는 현재 매크로-블록에서 현재 매크로-블록의 예측 값의 차감에 의한 (상대적으로 낮은 에너지) 레지듀얼(residual)(예를 들어, 차이(difference))에 동작한다. 주어진 경우에서 이용되는 예측 형태에 따라, 동일 프레임(또는 픽처)의 적어도 일부분 또는 적어도 하나의 다른 프레임(또는 픽처)의 적어도 일부분에 기초하여 현재 매크로-블록과 그 매크로-블록의 예측 값 사이의 레지듀얼 또는 차이가 생성된다.

    그 후, 결과로 초래된 수정된 비디오 신호는 압축 경로에 따라 변환 동작들을 받는다. 일 실시예에 있어서, 이산 코사인 변환(DCT)은 미리 결정된 수의 기저 패턴들(basis patterns) 각각에 대한 각각의 계수 값을 계산하기 위하여 비디오 샘플들(예를 들어, 휘도, 채도, 레지듀얼 등)에 동작한다. 예를 들어, 일 실시예는 (예를 들어, 8×8 샘플에 대한 것과 같은) 64개의 기저 함수들(basis functions)을 포함한다. 일반적으로 말하자면, 다른 실시예들은 다른 개수의 기저 함수들(예를 들어, 다른 변환들)을 이용할 수도 있다. 적절하고 선택적인 가중치를 포함하는 각각의 기저 함수들의 임의의 조합은 주어진 비디오 샘플들의 세트를 나타내도록 사용될 수도 있다. 변환 연산들의 다양한 수행 방법과 관련된 부가적인 상세 사항은 이전에 지시한 바와 같은 참조로써 통합된 표준들/표준안을 포함하는 비디오 인코딩과 연관된 기술 문헌에 기술되어 있다. 변환 프로세싱으로부터의 출력은 이러한 각각의 계수 값들을 포함한다. 이 출력은 양자화기(quantizer)에 제공된다.

    일반적으로, 가장 관련 있는 DCT 계수들이 저주파수들을 갖도록 하기 위하여, 대부분의 이미지 블록들은 전형적으로 계수들(예를 들어, 이산 코사인 변환(DCT)에 따라 동작하는 실시예에서의 DCT 계수들)을 생성할 것이다. 이것과 고주파수 시각적 효과들에 대하여 인간의 눈의 상대적으로 낮은 민감도 때문에, 양자화기는 대부분의 덜 관련 있는 계수들을 0의 값으로 변환하도록 동작할 수도 있다. 말하자면, 상대적인 기여도(contribution)가 어떤 미리 정해진 값(예를 들어, 어떤 임계값) 이하인 계수들은 양자화 프로세스에 따라 제거될 수도 있다. 또한, 양자화기는 중요한 계수들을 변환 프로세스로부터 나온 계수들보다 더 효과적으로 코딩될 수 있는 값들로 변환하도록 동작할 수도 있다. 예를 들어, 양자화 프로세스는 각각의 계수를 정수값으로 나누고 나머지는 버리도록 동작할 수도 있다. 전형적인 코딩 유닛들 또는 매크로-블록에서 동작할 때, 이러한 프로세스는 무손실 인코딩을 위한 엔트로피 인코더(entropy encoder)에 전달되며, 비디오 인코딩에 따라 인트라-예측 및/또는 인터-예측 프로세싱을 선택할 수도 있는 피드백 경로에 따른 사용을 위한, 상대적으로 적은 수의 0이 아닌 계수들을 전형적으로 생산한다.

    엔트로피 인코더는 무손실 압축 인코딩 프로세스에 따라 동작한다. 비교하면, 양자화 연산들은 일반적으로 손실이 있다. 엔트로피 인코딩 프로세스는 양자화 프로세스로부터 제공된 계수들에서 동작한다. 상기 계수들은 다양한 특성들(예를 들어, 휘도, 채도, 레지듀얼 등)을 나타낼 수도 있다. 다양한 유형의 인코딩이 엔트로피 인코더에 의하여 이용될 수도 있다. 예를 들어, CABAC(Context-based Adaptive Binary Arithmetic Code) 및/또는 CAVLC(Context-adaptive variable-length coding)가 엔트로피 인코더에 의하여 수행될 수도 있다. 예를 들어, 엔트로피 코딩 기법의 적어도 일부분에 따라, 데이터는 (런(run), 레벨(level)) 쌍(예를 들어, 데이터 14, 3, 0, 4, 0, 0, -3은 각각의 (0, 14), (0, 3), (1, 4), (2, -3)의 (런, 레벨) 쌍으로 변환된다)으로 변환된다. 미리, 가변 길이 코드(variable length code)들을 밸류 쌍(value pairs)에 할당한 테이블이 준비될 수도 있고, 그 결과 상대적으로 더 짧은 길이의 코드들이 상대적으로 공통적인 밸류 쌍(common value pairs)에 할당되고, 상대적으로 더 긴 코드들은 상대적으로 덜 공통적인 밸류 쌍에 할당된다.

    독자들이 이해할 수 있는 바와 같이, 역(inverse)양자화 및 역변환의 동작들은 각각 양자화 및 변환에 대응된다. 예를 들어, 변환 동작들 내에 DCT가 이용된 일 실시예에서, 역 DCT(IDCT)가 역변환 동작들에 이용된다.

    픽처 버퍼(picture buffer), 또는 디지털 픽처 버퍼 또는 DPB라 지칭되는 픽처 버퍼는 IDCT 모듈로부터 신호를 수신한다; 픽처 버퍼는 비디오 인코딩에 따라 수행될 수 있는 바와 같은 인트라-예측 및/또는 인터-예측 동작들에 따라 사용될 수 있는 바와 같은 현재 프레임(또는 픽처) 및/또는 하나 또는 그 이상의 다른 프레임들(또는 픽처들)을 저장하도록 동작한다. 인트라-예측에 따라, 상대적으로 적은 양의 저장이면 충분할 수 있고, 즉, 현재 프레임(또는 픽처) 또는 프레임(또는 픽처) 시퀀스 내의 어떤 다른 프레임(또는 픽처)을 저장하는 것이 필요하지 않을 수도 있음을 주목해야 한다. 비디오 인코딩에 따라 인터-예측을 수행하는 경우에, 이러한 저장된 정보는 움직임 보상(motion compensation) 및/또는 움직임 추정(motion estimation)을 수행하도록 이용될 수 있다.

    가능한 일 실시예에 있어서, 움직임 추정에서, 현재 프레임(또는 픽처)으로부터의 휘도 샘플들(예를 들어, 16×16)의 각각의 세트는 (예를 들어, 인터-예측에 따라) 프레임(또는 픽처) 시퀀스 내의 다른 프레임들(또는 픽처들)에서의 버퍼링된 대응하는 휘도 샘플들과 비교된다. 가능한 일 구현에 있어서, 가장 가까운 매칭 영역(matching area)(예를 들어, 예측 참조)의 위치가 찾아내지고(located), 벡터 오프셋(vector offset)(예를 들어, 움직임 벡터)이 생산된다. 단일 프레임(또는 픽처)에서, 다수의 움직임 벡터들이 발견될 수도 있지만, 반드시 모두가 동일 방향을 가리키는 것은 아닐 것이다. 움직임 추정에 따라 수행되는 하나 또는 그 이상의 동작들은 하나 또는 그 이상의 움직임 벡터들을 생성하도록 동작한다.

    움직임 보상은 움직임 추정에 따라 생성될 수 있는 하나 또는 그 이상의 움직임 벡터들을 이용하도록 동작한다. 샘플들의 예측 참조 세트가 식별되고, 상대적으로(예를 들어, 이상적으로, 매우) 더 낮은 에너지 레지듀얼을 성공적으로 생산하기 위하여 원본(original) 입력 비디오 신호로부터의 감산을 위하여 전달된다. 만약 상기 동작들이 더 낮은 에너지 레지듀얼을 생산하지 못하는 경우, 움직임 보상이 반드시 수행될 필요는 없으며, (예를 들어, 입력 비디오 신호가 변환 동작에 직접적으로 제공되고, 그 결과 인트라-예측 및 인터-예측이 수행되지 않는 동작 모드(operational mode)에 따른) 변환 동작들은 레지듀얼 대신에 최초의 입력 비디오 신호에 단순히 동작할 수도 있거나 또는 인트라-예측이 사용되고 변환 동작들이 인트라-예측의 결과에 의한 레지듀얼에서 수행될 수 있다. 또한, 만약 움직임 추정 및/또는 움직임 보상 프로세스들이 성공적이라면, 움직임 벡터는 무손실 엔트로피 인코딩을 수행하는데 사용되는 대응하는 레지듀얼의 계수들과 함께 엔트로피 인코더로 보내질 수도 있다.

    종합적인 비디오 인코딩 동작으로부터의 출력은 출력 비트스트림이다. 이러한 출력 비트스트림은 통신 채널을 통하여 송신될 수도 있는 연속 시간 신호의 생성에 따라 특정 프로세싱을 물론 받을 수 있음을 주목해야 한다. 예를 들어, 특정 실시예들은 무선 통신 시스템들 내에서 동작한다. 이러한 경우, 출력 비트스트림은 통신 채널 등을 통하여 전송될 수 있는 연속 시간 신호를 생성하도록 동작하는 무선 통신 디바이스 내에서 적절한 디지털-아날로그로 변환, 주파수 변환, 스케일링, 필터링, 변조, 심볼 맵핑 및/또는 임의의 다른 동작들을 받을 수 있다.

    도 5의 실시예(500)를 참조하면, 이 도면과 관련하여 확인할 수 있는 바와 같이, 입력 비디오 신호는 비디오 인코더에 의하여 수신된다. 특정 실시예들에 있어서, 입력 비디오 신호는 코딩 유닛(coding unit, CU)들 또는 매크로-블록(macro-block, MB)들(및/또는 코딩 유닛들(CUs)로 분할될 수 있는)로 구성된다. 이러한 코딩 유닛들 또는 매크로-블록들의 크기는 변형될 수도 있고, 전형적으로 사각형 형태로 배열된 다수의 픽셀들을 포함할 수 있다. 일 실시예에 있어서, 이러한 코딩 유닛들 또는 매크로-블록들은 16×16 픽셀들의 크기를 가진다. 그러나 일반적으로 매크로-블록은 N×N(N=정수) 픽셀들과 같은 임의의 바람직한 크기도 가질 수도 있음을 주목해야 한다. 물론, 비록 사각형 형태의 코딩 유닛들 또는 매크로-블록들이 바람직한 실시예에서 이용되지만, 일부 구현들은 비사각형 형태의 코딩 유닛들 또는 매크로-블록들을 포함할 수도 있다.

    입력 비디오 신호는 일반적으로 원시(raw) 프레임(또는 픽처(picture)) 이미지 데이터에 대응하도록 지칭될 수도 있다. 예를 들어, 원시 프레임(또는 픽처) 이미지 데이터는 휘도(luma) 및 채도(chroma) 샘플들을 생성하는 프로세싱을 받을 수 있다. 일부 실시예들에 있어서, 매크로-블록에서 휘도 샘플들의 세트는 하나의 특정 배열(예를 들어, 16×16)을 가지고, 채도 샘플들의 세트는 다른 특정 배열(예를 들어, 8×8)을 갖는다. 본 명세서에 기술된 실시예에 따라, 비디오 인코더는 블록 단위(block by block basis)로 이러한 샘플들을 처리한다.

    그 후, 입력 비디오 신호는 모드 선택을 받으며, 모드 선택에 의하여 입력 비디오 신호는 선택적으로 인트라(intra) 및/또는 인터-예측(inter-prediction) 프로세싱을 받는다. 일반적으로 말하자면, 입력 비디오 신호는 압축 경로에 따라 압축된다. 피드백 없이 동작하는 경우(예를 들어, 인터-예측 및 인트라-예측도 없는 경우), 입력 비디오 신호는 압축 경로를 통하여 (예를 들어, 이산 코사인 변환(DCT)에 따라) 변환(transform) 동작들을 받기 위하여 제공된다. 물론, 다른 변환들도 대안적인 실시예들에서 이용될 수도 있다. 이 동작 모드에서, 입력 비디오 신호 자체가 압축된다. 압축 경로는 압축을 수행함에 있어서 인간 눈의 고주파 민감도의 부족을 이용할 수도 있다.

    그러나 인터- 또는 인트라-예측 비디오 인코딩을 선택적으로 사용함으로써 압축 경로를 따라 피드백이 이용될 수도 있다. 피드백 또는 동작의 예측 모드에 따라, 압축 경로는 현재 매크로-블록에서 현재 매크로-블록의 예측 값의 차감에 의한 (상대적으로 낮은 에너지) 레지듀얼(residual)(예를 들어, 차이(difference))에 동작한다. 주어진 경우에 이용되는 예측 형태에 따라, 동일 프레임(또는 픽처)의 적어도 일부분 또는 적어도 하나의 다른 프레임(또는 픽처)의 적어도 일부분에 기초하여 현재 매크로-블록과 그 매크로-블록의 예측 값 사이의 레지듀얼 또는 차이가 생성된다.

    그 후, 결과로 초래된 수정된 비디오 신호는 압축 경로에 따라 변환 동작들을 받는다. 일 실시예에 있어서, 이산 코사인 변환(DCT)이 미리 결정된 수의 기저 패턴들(basis patterns) 각각에 대한 각각의 계수 값을 계산하기 위하여 비디오 샘플들(예를 들어, 휘도, 채도, 레지듀얼 등)에 동작한다. 예를 들어, 일 실시예는 (예를 들어, 8×8 샘플에 대한 것과 같은) 64개의 기저 함수들(basis functions)을 포함한다. 일반적으로 말하자면, 다른 실시예들은 다른 개수의 기저 함수들(예를 들어, 다른 변환들)을 이용할 수도 있다. 적절하고 선택적인 가중치를 포함하는 각각의 기저 함수들의 임의의 조합은 주어진 비디오 샘플들의 세트를 나타내도록 사용될 수도 있다. 변환 동작들의 다양한 수행 방법과 관련된 부가적인 상세 사항은 이사에서 지시된 바와 같은 참조로써 통합된 표준들/표준안을 포함하는 비디오 인코딩과 연관된 기술 문헌에 기술되어 있다. 변환 프로세싱으로부터의 출력은 각각의 계수 값들을 포함한다. 이 출력은 양자화기(quantizer)에 제공된다.

    일반적으로, 가장 관련 있는 DCT 계수들은 저주파수들을 가질 수 있도록, 대부분의 이미지 블록들은 전형적으로 계수들(예를 들어, 이산 코사인 변환(DCT)에 따라 동작하는 실시예에서의 DCT 계수들)을 생성한다. 이것과 고주파수 시각적 효과에 대하여 인간의 눈의 상대적으로 낮은 민감도 때문에, 양자화기는 대부분의 덜 관련 있는 계수들을 0의 값으로 변환하도록 동작할 수도 있다. 말하자면, 상대적인 기여도(contribution)가 어떤 미리 정해진 값(예를 들어, 어떤 임계값) 이하인 계수들은 양자화 프로세스에 따라 제거될 수도 있다. 또한, 양자화기는 중요한 계수들을 변환 프로세스로부터 나온 계수들보다 더 효과적으로 코딩될 수 있는 값들로 변환하도록 동작할 수도 있다. 예를 들어, 양자화 프로세스는 각각의 계수를 정수값으로 나누고 나머지는 버리도록 동작할 수도 있다. 전형적인 코딩 유닛들 또는 매크로-블록에서 동작할 때, 이러한 프로세스는 무손실 인코딩을 위한 엔트로피 인코더(entropy encoder)에 전달되며, 비디오 인코딩에 따라 인트라-예측 및/또는 인터-예측 프로세싱을 선택할 수도 있는 피드백 경로에 따른 사용을 위한, 상대적으로 적은 수의 0이 아닌 계수들을 전형적으로 생산한다.

    엔트로피 인코더는 무손실 압축 인코딩 프로세스에 따라 동작한다. 비교하면, 양자화 연산들은 일반적으로 손실이 있다. 엔트로피 인코딩 프로세스는 양자화 프로세스로부터 제공된 계수들에서 동작한다. 상기 계수들은 다양한 특성들(예를 들어, 휘도, 채도, 레지듀얼 등)을 나타낼 수도 있다. 다양한 유형의 인코딩이 엔트로피 인코더에 의하여 이용될 수도 있다. 예를 들어, CABAC(Context-based Adaptive Binary Arithmetic Code) 및/또는 CAVLC(Context-adaptive variable-length coding)가 엔트로피 인코더에 의하여 수행될 수도 있다. 예를 들어, 엔트로피 코딩 기법의 적어도 일부분에 따라, 데이터는 (런(run), 레벨(level)) 쌍(예를 들어, 데이터 14, 3, 0, 4, 0, 0, -3은 각각의 (0, 14), (0, 3), (1, 4), (2, -3)의 (런, 레벨) 쌍으로 변환된다)으로 변환된다. 미리, 가변 길이 코드(variable length code)들을 밸류 쌍(value pairs)에 할당한 테이블이 준비될 수도 있고, 그 결과 상대적으로 더 짧은 길이의 코드들이 상대적으로 공통적인 밸류 쌍(common value pairs)에 할당되고, 상대적으로 더 긴 코드들은 상대적으로 덜 공통적인 밸류 쌍에 할당된다.

    독자들이 이해할 수 있는 바와 같이, 역(inverse)양자화 및 역변환의 동작들은 각각 양자화 및 변환에 대응된다. 예를 들어, 변환 동작들 내에 DCT가 이용된 일 실시예에서, 역 DCT(IDCT)가 역변환 동작들 내에서 이용된다.

    어떤 선택적인 실시예들에 있어서, 디-블록킹 필터(de-blocking filter)로부터의 출력은 역변환 블록으로부터의 출력을 처리하도록 구현된(예를 들어, 샘플 적응적 오프셋(Sample Adaptive Offset; SAO) 필터, 적응적 루프 필터(Adaptive Loop Filter; ALF), 및/또는 다른 형태의 필터에 따라 구현된) 하나 또는 그 이상의 다른 인-루프 필터(in-loop filter)들에 제공된다.

    예를 들어, 이러한 적응적 루프 필터(ALF)는 디블록킹 필터로부터의 출력을 처리하도록 구현되거나, 또는 이러한 ALF는 가장 먼저 디블록킹 필터로부터의 출력을 수신하는 샘플 적응적 오프셋(SAO) 필터로부터의 출력을 처리하도록 구현될 수도 있다. 디코딩된 픽처가 (종종 디지털 픽처 버퍼(DPB)로 지칭되는) 픽처 버퍼에 저장되기 전에, 적응적 루프 필터(ALF)는 디코딩된 픽처에 적용된다. 적응적 루프 필터(ALF)는 디코딩된 픽처의 코딩 노이즈를 감소시키기 위하여 구현되고, 적응적 루프 필터(ALF)가 슬라이스 레벨(slice level) 또는 블록 레벨 중 하나에서 적용되는지 아닌지에 따라 필터링은 선택적으로 휘도 및 채도 각각에 대하여 슬라이스 단위(slice by slice basis)로 적용될 수도 있다. 이차원(2-D) 유한 임펄스 응답(finite impulse response; FIR) 필터링이 적응적 루프 필터(ALF)의 적용에 사용될 수도 있다. 필터들의 계수들은 인코더에서 슬라이스 단위로 설계될 수도 있고, 그 후 정보가 디코더로 신호된다(예를 들어, 비디오 인코더[또는 인코더로 지칭되는]를 포함하는 송신기 통신 디바이스로부터 비디오 디코더[또는 디코더로 지칭되는]를 포함하는 수신기 통신 디바이스로 신호된다).

    일 실시예는 위너 필터링(wiener filtering) 설계에 따라 계수들을 생성함으로써 동작한다. 부가하여, 위너 필터링은 인코더에서 필터링이 수행되는지에 따라 블록 단위(block by block basis)로 적용될 수 있고, 그 후, 그 결정은 쿼드트리(quadtree) 구조에 기초하여 디코더로 보내지고(예를 들어, 비디오 인코더[또는 인코더로 지칭되는]를 포함하는 송신기 통신 디바이스로부터 비디오 디코더[또는 디코더로 지칭되는]를 포함하는 수신기 통신 디바이스로 보내지고), 여기에서 블록 크기는 왜곡률(rate-distortion) 최적화에 따라 결정된다. 2-D 필터링을 이용하는 구현은 인코딩 및 디코딩에 따라 복잡도(degree of complexity)를 야기할 수도 있다. 예를 들어, 적응적 루프 필터(ALF)의 구현에 따른 2-D 필터링을 사용함으로써, 송신기 통신 디바이스에 구현된 인코더 및 수신기 통신 디바이스에 구현된 디코더 내에서 복잡성을 증가시킬 수도 있다.

    인-루프 필터의 일 유형과 관련하여, 적응적 루프 필터(ALF)는 랜덤 양자화 노이즈 제거를 수행함으로부터 비롯되는 최대 신호 대 잡음비(Peak to Signal Noise Ratio; PSNR)에 의한 객관적 품질 평가(objective quality measure)의 향상을 포함하는, 이러한 비디오 프로세싱에 따른 많은 향상들을 제공할 수 있다. 부가하여, 그 뒤에 인코딩된 비디오 신호의 주관적 품질(subjective quality)은 조명 보상(illumination compensation)으로부터 성취될 수도 있고, 이는 ALF 프로세싱에 따른 오프셋 프로세싱 및 스케일링 프로세싱에 따라(예를 들어, 이득(gain)을 적용한 유한 임펄스 응답 필터링에 따라) 도입될 수도 있다.

    픽처 버퍼(picture buffer), 또는 디지털 픽처 버퍼 또는 DPB라 지칭되는 픽처 버퍼는 ALF로부터 신호를 수신한다; 픽처 버퍼는 비디오 인코딩에 따라 수행될 수 있는 바와 같은 인트라-예측 및/또는 인터-예측 동작들에 따라 사용될 수 있는 바와 같은 현재 프레임(또는 픽처) 및/또는 하나 또는 그 이상의 다른 프레임들(또는 픽처들)을 저장하도록 동작한다. 인트라-예측에 따라, 상대적으로 적은 양의 저장이면 충분할 수도 있고, 즉, 현재 프레임(또는 픽처) 또는 프레임(또는 픽처) 시퀀스 내의 어떤 다른 프레임(또는 픽처)을 저장하는 것이 필요하지 않을 수도 있음을 주목해야 한다. 비디오 인코딩에 따라 인터-예측을 수행하는 경우에, 이러한 저장된 정보는 움직임 보상(motion compensation) 및/또는 움직임 추정(motion estimation)을 수행하기 위하여 이용될 수 있다.

    가능한 일 실시예에 있어서, 움직임 추정에서, 현재 프레임(또는 픽처)으로부터의 휘도 샘플들(예를 들어, 16×16)의 각각의 세트는 (예를 들어, 인터-예측에 따라) 프레임(또는 픽처) 시퀀스 내의 다른 프레임들(또는 픽처들)에서의 버퍼링된 대응하는 휘도 샘플들과 비교된다. 가능한 일 구현에 있어서, 가장 가까운 매칭 영역(matching area)의 위치가 찾아내지고(located)(예를 들어, 예측 참조), 벡터 오프셋(vector offset)(예를 들어, 움직임 벡터)이 생산된다. 단일 프레임(또는 픽처)에서, 다수의 움직임 벡터들이 발견될 수도 있지만, 반드시 모두가 동일 방향을 가리키는 것은 아닐 것이다. 움직임 추정에 따라 수행되는 하나 또는 그 이상의 동작들은 하나 또는 그 이상의 움직임 벡터들을 생성하도록 동작한다.

    움직임 보상은 움직임 추정에 따라 생성될 수 있는 하나 또는 그 이상의 움직임 벡터들을 이용하도록 동작한다. 샘플들의 예측 참조 세트가 식별되고, 상대적으로(예를 들어, 이상적으로, 매우) 더 낮은 에너지 레지듀얼을 성공적으로 생산하기 위하여 원본(original) 입력 비디오 신호로부터의 감산을 위하여 전달된다. 만약 이러한 동작들이 더 낮은 에너지 레지듀얼을 생산하지 못하는 경우, 움직임 보상이 반드시 수행될 필요는 없으며, (예를 들어, 입력 비디오 신호가 변환 동작에 직접적으로 제공되고, 그 결과 인트라-예측 및 인터-예측이 수행되지 않는 동작 모드(operational mode)에 따른) 변환 동작들은 레지듀얼 대신에 최초의 입력 비디오 신호에 단순히 동작할 수도 있거나 또는 인트라-예측이 사용되고 변환 동작들이 인트라-예측의 결과에 의한 레지듀얼에서 수행될 수 있다. 또한, 만약 움직임 추정 및/또는 움직임 보상 동작들이 성공적이라면, 움직임 벡터는 무손실 엔트로피 인코딩을 수행하는데 사용되는 대응하는 레지듀얼의 계수들과 함께 엔트로피 인코더로 보내질 수도 있다.

    종합적인 비디오 인코딩 프로세스로부터의 출력은 출력 비트스트림이다. 이러한 출력 비트스트림은 통신 채널을 통하여 송신될 수도 있는 연속 시간 신호의 생성에 따른 특정 프로세싱을 받을 수도 있음을 주목해야 한다. 예를 들어, 어떤 실시예들은 무선 통신 시스템들 내에서 동작한다. 이러한 경우, 출력 비트스트림은 통신 채널 등을 통하여 전송될 수 있는 연속 시간 신호를 생성하도록 동작하는 무선 통신 디바이스 내에서 적절한 디지털에서 아날로그로의 변환, 주파수 변환, 스케일링, 필터링, 변조, 심볼 맵핑 및/또는 임의의 다른 동작들을 겪을 수 있다.

    도 6의 실시예(600)를 참조하면, 비디오 인코더의 대안적 실시예를 도시한 이 도면과 관련하여, 이러한 비디오 인코더는 압축된 출력 비트스트림을 생산하기 위하여 예측, 변화 및 인코딩 프로세스들을 수행한다. 이러한 비디오 인코더는 ISO/IEC 14496-10 - MPEG-4 Part 10, AVC(Advanced Video Coding), H.264/MPEG-4 Part 10 또는 AVC, ITU H.264/MPEG4-AVC와 같은 하나 또는 그 이상의 비디오 인코딩 프로토콜들, 표준들 및/또는 추천 규격(recommended practice)들에 따라 동작하고 부합할 수 있다.

    통신 채널의 다른 종단에서의 디바이스 내에 위치한 대응되는 비디오 디코더는 (이상적으로는) 입력 비디오 신호를 나타내는 각각의 디코딩된 비디오 시퀀스를 생성하기 위하여 디코딩, 역변환, 재구성의 상보적인(complementary) 프로세스들을 수행하도록 동작하는 것을 주목하여야 한다.

    이 도면과 관련하여 확인될 수 있는 바와 같이, 비디오 인코딩을 수행하는데 대안적인 배열들 및 아키텍처들이 이용될 수도 있다. 일반적으로 말하자면, 인코더는 (예를 들어, 코딩 유닛들 또는 매크로-블록들의 유닛들로 전형적으로 구성되고, 그 안에서 종종 N×N 픽셀들을 포함하는 사각형의 형태를 가지는) 입력 비디오 신호를 처리한다. 비디오 인코딩은 이전에 코딩된 데이터에 기초하여 현재 매크로-블록의 예측을 결정한다. 이전에 코딩된 데이터는 (예를 들어, 인트라-예측에 따라) 현재 프레임(또는 픽처) 자체로부터 또는 (예를 들어, 인터-예측에 따라) 이미 코딩되었던 하나 또는 그 이상의 다른 프레임들(또는 픽처들)로부터 비롯될 수 있다. 비디오 인코더는 레지듀얼을 형성하기 위하여 현재 매크로-블록의 예측을 차감한다.

    일반적으로 말하자면, 인트라-예측은 동일 프레임(또는 픽처) 내의 인근의 이전에 코딩된 픽셀들로부터 현재 매크로-블록을 예측하기 위하여 하나 또는 그 이상의 특정 크기들(예를 들어, 16×16, 8×8 또는 4×4)의 블록 크기들을 이용하도록 동작한다. 일반적으로 말하자면, 인터-예측은 하나 또는 그 이상의 이전에 코딩된 프레임들(또는 픽처들)로부터 선택된 영역들로부터 현재 프레임(또는 픽처) 내의 픽셀들을 예측하기 위하여, 블록 크기들의 범위(예를 들어, 16×16에서 4×4까지)를 이용하도록 동작한다.

    변환과 양자화 동작들과 관련하여, 레지듀얼 샘플들의 블록은 특정 변환(예를 들어, 4×4 또는 8×8)을 이용하여 변환을 받을 수 있다. 이러한 변환의 가능한 일 실시예는 이산 코사인 변환(DCT)에 따라 동작한다. 변환 동작은 각각의 계수가 변환과 연관된 하나 또는 그 이상의 기저 함수들의 각각의 가중치에 대응하도록 하기 위하여 계수들의 그룹을 출력한다. 변환이 수행된 후, 변환 계수들의 블록은 양자화된다(예를 들어, 각각의 계수는 정수값에 의하여 나누어질 수도 있고, 연관된 나머지는 버려질 수도 있으며, 또는 정수값에 의하여 곱해질 수도 있다). 양자화 프로세스는 일반적으로 본질적으로 손실이 있고, 이는 양자화 파라미터(Quantization Parameter; QP)에 따른 변환 계수들의 정확성을 감소시킬 수 있다. 전형적으로, 주어진 매크로-블록과 연관된 많은 계수들은 0이고, 오직 0이 아닌 계수들만 남는다. 일반적으로, 상대적으로 높은 QP 설정은 0의 값을 갖는 계수들의 비율이 더 크고, 0이 아닌 계수들의 규모를 더 작게 하도록 동작하고, 상대적으로 형편없는 디코딩된 이미지 품질을 대가로 상대적으로 높은 압축(예를 들어, 상대적으로 낮은 코딩된 비트 비율)의 결과를 낳는다; 상대적으로 낮은 QP 설정은 더 많은 0이 아닌 계수들을 양자화 후에 유지하게 하며, 더 큰 규모의 0이 아닌 계수들은 상대적으로 더 좋게 디코딩된 이미지 품질을 갖는 상대적으로 낮은 압축(예를 들어, 상대적으로 높은 코딩된 비트 비율)의 결과를 낳는다.

    비디오 인코딩 프로세싱은 압축된 비트스트림을 형성하기 위하여 인코딩되는 다수의 값들을 생산한다. 이러한 값들의 예들은 양자화된 변환 계수들, 적절한 예측을 재생성하기 위하여 디코더에 의하여 이용될 수 있는 정보, 압축된 데이터의 구조 및 인코딩 시 이용된 압축 툴(tool)들과 관련된 정보, 완전한(complete) 비디오 시퀀스와 관련된 정보, 등등을 포함한다. 이러한 값들 및/또는 파라미터들(예를 들어, 신택스(syntax) 요소들)은 (예를 들어, 통신 채널에 적합한 연속 시간 신호를 생성하는데 적절한 프로세싱이 수행된 후에) 저장 또는 송신될 수도 있는 출력 비트스트림을 생산하기 위하여 CABAC, CAVLC에 따라 동작하는 엔트로피 인코더에서 인코딩을 겪을 수 있다.

    피드백 경로를 사용하여 동작하는 일 실시예에 있어, 변환 및 양자화의 출력은 역양자화 및 역변환을 겪는다. 인트라-예측 및 인터-예측의 하나 또는 양자는 비디오 인코딩에 따라 수행될 수도 있다. 또한, 움직임 보상 및/또는 움직임 추정이 이러한 비디오 인코딩에 따라 수행될 수도 있다.

    역양자화 및 역변환(예를 들어, IDCT)으로부터 출력된 신호 경로는, 인트라-예측 블록에 제공되고, 또한, 디블록킹 필터에 제공된다. 디블록킹 필터로부터의 출력은 역변환 블록으로부터의 출력을 처리하도록 구현된(예를 들어, 샘플 적응적 오프셋(SAO) 필터, 적응적 루프 필터(ALF), 및/또는 임의의 다른 필터 유형에 따라 구현된) 하나 또는 그 이상의 다른 인-루프 필터(in-loop filter)들에 제공된다. 예를 들어, 가능한 일 실시예에 있어서, 디코딩된 픽처가 (종종 디지털 픽처 버퍼(DPB)로 지칭되는) 픽처 버퍼에 저장되기 전에, ALF는 디코딩된 픽처에 적용된다. ALF는 디코딩된 픽처의 코딩 노이즈를 감소시키기 위하여 구현되고, ALF가 슬라이스 레벨 또는 블록 레벨 중 하나에서 적용되는지 아닌지에 따라 ALF의 필터링은 선택적으로 휘도 및 채도 각각에 대하여 슬라이스 단위로 적용될 수도 있다. 이차원(2-D) 유한 임펄스 응답(FIR) 필터링이 ALF의 적용에 사용될 수도 있다. 필터들의 계수들은 인코더에서 슬라이스 단위로 설계될 수도 있고, 그 후 이러한 정보는 디코더로 신호된다(예를 들어, 비디오 인코더[또는 인코더로 지칭되는]를 포함하는 송신기 통신 디바이스로부터 비디오 디코더[또는 디코더로 지칭되는]를 포함하는 수신기 통신 디바이스로 신호된다).

    일 실시예는 위너 필터링 설계에 따라 계수들을 생성한다. 부가하여, 위너 필터링은 인코더에서 필터링이 수행되는지에 따라 블록 단위로 적용될 수 있고, 그 후, 그 결정은 쿼드트리 구조에 기초하여 디코더로 신호되며(예를 들어, 비디오 인코더[또는 인코더로 지칭되는]를 포함하는 송신기 통신 디바이스로부터 비디오 디코더[또는 디코더로 지칭되는]를 포함하는 수신기 통신 디바이스로 신호되고), 여기서 블록 크기는 왜곡율 최적화에 따라 결정된다. 이러한 2-D 필터링 사용의 구현은 인코딩 및 디코딩에 따라 복잡도를 야기할 수도 있다. 예를 들어, ALF의 구현에 따른 2-D 필터링을 사용함으로써, 송신기 통신 디바이스에 구현된 인코더 및 수신기 통신 디바이스에 구현된 디코더 내에서 복잡성을 증가시킬 수도 있다.

    다른 실시예들과 관련하여 언급한 바와 같이, ALF의 사용은 랜덤 양자화 노이즈 제거를 수행함으로써 비롯되는 최대 신호 대 잡음비(PSNR)에 의하여 객관적 품질 평가의 향상을 포함하는, 이러한 비디오 프로세싱에 따른 많은 향상들을 제공할 수 있다. 부가하여, 그 뒤에 인코딩된 비디오 신호의 주관적 품질은 조명 보상으로부터 성취될 수도 있고, 이는 ALF 프로세싱에 따른 오프셋 프로세싱 및 스케일링 프로세싱에 따라(예를 들어, 이득을 적용한 유한 임펄스 응답 필터링에 따라) 도입될 수도 있다.

    출력 비트스트림을 생성하도록 구현된 비디오 인코더 아키텍처와 관련하여, 이러한 아키텍처들이 다양한 통신 디바이스들 내에서 구현될 수도 있음을 주목해야 한다. 출력 비트스트림은 에러 정정 코드(Error Correction Code; ECC), 순방향 에러 정정(Forward Error Correction; FEC) 등을 포함하는 부가적인 프로세싱을 받을 수 있고, 그렇게 함으로써, 그 안에서 부가적인 리던던시 딜(redundancy deal)을 갖는 수정된 출력 비트스트림을 생성한다. 또한, 이러한 디지털 신호와 관련하여 이해할 수 있듯이, 디지털 신호는 통신 채널을 통한 송신에 적합 또는 적절한 연속 시간 신호 생성에 따른 임의의 적절한 프로세싱을 받을 수도 있다. 말하자면, 상기 비디오 인코더 아키텍처는 하나 또는 그 이상의 통신 채널들을 통하여 하나 또는 그 이상의 신호들의 송신을 수행하도록 동작하는 통신 디바이스 내에서 구현될 수도 있다. 이러한 비디오 인코더 아키텍처에 의하여 생성된 출력 비트스트림에 부가적인 프로세싱이 수행될 수도 있고, 그렇게 함으로써, 통신 채널로 런치(launch)될 수 있는 연속 시간 신호를 생성한다.

    도 7은 인트라-예측 프로세싱의 실시예(700)를 나타내는 도면이다. 이 도면과 관련하여 확인할 수 있는 바와 같이, 비디오 데이터의 (예를 들어, 종종 일반적으로 N×N 픽셀들을 포함하는 사각형 형태를 가진) 현재 블록은 그 안의 각각의 픽셀들을 추정하기 위한 프로세싱을 받는다. 현재 블록의 좌측 상단에 위치한 이전에 코딩된 픽셀들이 이러한 인트라-예측에 따라 이용된다. 어떤 관점에서, 인트라-예측 방향은 현재 픽셀로부터 현재 픽셀의 좌측 상단에 위치한 참조 픽셀로 연장하는 벡터에 대응하는 것으로 보여질 수 있다. H.264/AVC에 따라 코딩에 적용되는 인트라-예측은 위에 참조로써 통합되는 대응하는 표준(예를 들어, International Telecommunication Union, ITU-T, TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU, H.264(03/2010), SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of audiovisual services Coding of moving video, Advanced video coding for generic audiovisual services, Recommendation ITU-T H.264, International Telecomm ISO/IEC 14496-10 MPEG-4 Part 10, AVC(Advanced Video Coding), H.264/MPEG-4 Part 10 or AVC(Advanced Video Coding), ITU H.264/MPEG4-AVC, or equivalent)에 설명된다.

    현재 픽셀과 참조 픽셀 또는 예측 픽셀의 차이인 레지듀얼이 인코딩된다. 이 도면과 관련하여 확인할 수 있듯이, 인트라-예측은 공통 프레임(또는 픽처) 내의 픽셀들을 사용하여 동작한다. 물론, 주어진 픽셀은 주어진 픽셀과 연관된 각각의 다른 구성요소들을 가질 수도 있고, 각각의 구성요소에 대하여 샘플들의 각각 다른 세트들이 있을 수도 있음을 주목해야 한다.

    도 8은 인터-예측 프로세싱의 실시예(800)를 나타내는 도면이다. 인트라-예측과는 달리, 인터-예측은 현재 프레임(또는 픽처) 내의 픽셀들의 현재 세트 및 프레임(또는 픽처) 시퀀스 내의 하나 또는 그 이상의 다른 프레임들(픽처들) 내에 위치한 참조 또는 예측 픽셀들의 하나 또는 그 이상의 세트들에 기초하여 움직임 벡터(예를 들어, 인터-예측 방향)를 식별하도록 동작한다. 확인될 수 있는 바와 같이, 움직임 벡터는 현재 프레임(또는 픽처)으로부터 프레임(또는 픽처) 시퀀스 내의 다른 프레임(또는 픽처)으로 연장된다. 인터-예측은 서브-픽셀 보간(interpolation)을 이용할 수 있고, 그 결과 예측 픽셀 값은 참조 프레임 또는 픽처의 다수의 픽셀들의 함수에 대응한다.

    비록 이러한 레지듀얼은 인트라-예측 프로세싱에 따라 계산된 레지듀얼과는 다르지만, 인터-예측 프로세싱에 따라 레지듀얼이 계산될 수도 있다. 인터-예측 프로세싱에 따른 각각의 픽셀에서의 레지듀얼은 현재 픽셀과 예측된 픽셀 값 사이의 차이에 다시 대응한다. 그러나 인터-예측 프로세싱에 따라, 현재 픽셀 및 참조 또는 예측 픽셀은 동일 프레임(또는 픽처) 내에 위치하지 않는다. 비록 이 도면은 하나 또는 그 이상의 이전 프레임들 또는 픽처들에 관련하여 이용되는 인터-예측을 나타내고 있지만, 대안적인 실시예들은 현재 프레임 이전 및/또는 이후의 프레임들에 대응하는 참조들을 사용하여 동작할 수도 있다는 것을 주목해야 한다. 예를 들어, 적절한 버퍼링 및/또는 메모리 관리에 따라, 다수의 프레임들이 저장될 수도 있다. 주어진 프레임 상에서 동작할 때, 참조들은 주어진 프레임에 선행하는 및/또는 후행하는 다른 프레임들로부터 생성될 수도 있다.

    CU와 연관되어, 기본 유닛(basic unit)이 예측 분할 모드, 즉, 예측 유닛(Prediction Unit; PU)에 이용될 수도 있다. 또한, PU는 오직 최종 깊이(depth) CU에 대하여 정의되고, 각각의 크기는 CU의 크기에 제한되는 것을 주목해야 한다.

    도 9 및 도 10은 비디오 디코딩 아키텍처들의 각각의 다양한 실시예들(900 및 1000)을 나타내는 도면들이다.

    일반적으로 말하자면, 이러한 비디오 디코딩 아키텍처들은 입력 비트스트림에 동작한다. 물론, 이러한 입력 비트스트림은 통신 채널로부터의 통신 디바이스에 의하여 수신되는 신호로부터 생성될 수도 있다. 입력 비트스트림의 생성에 따라 적절할 수 있는 바와 같은 디지털 샘플링, 복조, 스케일링, 필터링 등을 포함하는 다양한 동작들이 통신채널로부터 수신된 연속 시간 신호에 수행될 수도 있다. 더구나, 에러 정정 코드(ECC), 순방향 에러 정정(FEC) 등의 하나 또는 그 이상의 유형들이 특정 실시예들에서 구현될 수도 있고, 이러한 ECC, FEC 등에 따라 적절한 디코딩을 수행할 수 있으며, 그럼으로써 입력 비트스트림을 생성한다. 말하자면, 부가적인 리던던시가 대응하는 출력 비트스트림을 생성함에 따라 만들어졌었을 수도 있는(예를 들어, 송신기 통신 디바이스 또는 송수신기(transceiver) 통신 디바이스의 송신기 부분으로부터 런치될 수도 있는 것과 같은) 특정 실시예들에 있어서, 적절한 프로세싱이 입력 비트스트림을 생성함에 따라 수행될 수도 있다. 종합적으로, 이러한 비디오 디코딩 아키텍처는 입력 비트스트림의 처리를 시작하고, 그렇게 함으로써 하나 또는 그 이상의 비디오 디스플레이 가능 디바이스들에 출력되는데 사용되도록, 최대한 가깝고 이상적인 경우에 완벽하게, 원본 입력 비디오 신호에 대응되는 출력 비디오 신호를 생성한다.

    도 9의 실시예(900)를 참조하면, 일반적으로 말하자면, (예를 들어, CABAC, CAVLC에 따라 구현될 수도 있는) 엔트로피 디코더와 같은 디코더는 비디오 인코더 아키텍처 내에서 수행되는 것과 같은 상호 보완적인 인코딩 프로세싱을 수행하는 것과 일치하도록 입력 비트스트림을 처리한다. 입력 비트스트림은, 가능한 가깝게 그리고 이상적인 경우에서 완벽하게, 비디오 인코더 아키텍처에 의하여 생성된 압축된 출력 비트스트림인 것으로 보여질 수도 있다.

    물론, 실제의 활용에 있어서, 하나 또는 그 이상의 통신 링크들을 통하여 송신된 신호에서 어떤 에러들이 발생했을 수도 있을 가능성이 있다. 엔트로피 디코더는 입력 비트스트림을 프로세싱하고 DCT 계수들(예를 들어, 채도, 휘도 등을 나태는 것과 같은 정보)과 같은 적절한 계수들을 추출하며, 이러한 계수들을 역양자화 및 역변환 블록에 제공한다. DCT 변환이 이용되는 경우에는, 역양자화 및 역변환 블록이 역DCT(IDCT) 동작을 수행되도록 구현될 수도 있다. 그 후, A/D 블록킹 필터(A/D blocking filter)가 출력 비디오 신호에 대응하는 각각의 프레임들 및/또는 픽처들을 생성하도록 구현될 수도 있다. 이들 프레임 및/또는 픽처들은 움직임 보상을 포함하는 다른 동작들을 수행하는데 이용되도록 픽처 버퍼 또는 디지털 픽처 버퍼(DPB)에 제공될 수도 있다. 일반적으로 말하자면, 이러한 움직임 보상 동작들은 비디오 인코딩과 연관된 인터-예측에 대응하는 것으로 보여질 수 있다. 또한, 인트라-예측은 역양자화 및 역변환 블록으로부터 출력된 신호에 수행될 수도 있다. 비디오 인코딩과 관한 것과 유사하게, 이러한 비디오 디코더 아키텍처는 입력 비트스트림을 디코딩하는 것에 따라 인트라-예측 및 인터-예측이 수행되지 않거나, 인터-예측만 또는 인트라-예측만 수행되는 모드 선택을 수행하고, 그렇게 함으로써 출력 비디오 신호를 생성하도록 구현될 수도 있다.

    도 10의 실시예(1000)를 참조하면, 어떤 선택적인 실시예들에 있어서, 출력 비트스트림을 생성하기 위하여 이용된 비디오 인코딩에 따라 구현될 수 있는 것과 같은 (예를 들어, 샘플 적응적 오프셋(SAO) 필터, 적응적 루프 필터(ALF) 및/또는 다른 필터 형태에 따라 구현된) 하나 또는 그 이상의 인-루프 필터들 및 대응되는 하나 또는 그 이상의 인-루프 필터들이 비디오 디코더 아키텍처 내에 구현될 수도 있다. 일 실시예에 있어서, 하나 또는 그 이상의 이러한 인-루프 필터들의 적절한 구현은 디-블록킹 필터 다음이다.

    도 11, 도 12, 도 13, 도 14 및 도 15는 적응적 루프 필터링(adaptive loop filtering)을 각각 포함하는 비디오 인코딩 아키텍처들의 각각의 다양한 실시예들(1100, 1200, 1300, 1400 및 1500)을 나타내는 도면들이다.

    도 11의 실시예(1100)는 적응적 루프 필터(ALF)가 역변환 블록으로부터의 출력을 처리하도록 구현되었다는 적어도 하나의 차이점을 가지면서 도 4의 실시예(400)와 유사점을 갖는다. 예를 들어, 이러한 적응적 루프 필터(ALF)는, 디코딩된 픽처가 픽처 버퍼(종종 디지털 픽처 버퍼(DPB)라고도 지칭되는)에 저장되기 전에, 디코딩된 픽처에 적용된다.

    본 명세서에서 이해될 수도 있는 바와 같이, 적응적 루프 필터(ALF)의 사용은 랜덤 양자화 노이즈 제거를 수행함으로써 비롯되는 최대 신호 대 잡음비(PSNR)에 의한 객관적 품질 평가의 향상을 포함하는, 이러한 비디오 프로세싱에 따른 많은 향상들을 제공할 수 있다. 부가하여, 그 뒤에 인코딩된 비디오 신호의 객관적 품질은 조명 보상으로부터 성취될 수도 있고, 이는 ALF 프로세싱에 따른 오프셋 프로세싱 및 스케일링 프로세싱에 따라(예를 들어, 이득을 적용한 유한 임펄스 응답 필터링에 따라) 수행될 수도 있다.

    조명 보상으로부터 기인하는 주관적 품질 향상은 때때로 랜덤 양자화 노이즈 제거로 부터 기인하는 PSNR에 의한 객관적 품질 평가에서의 향상에 의해 연관된 것보다 훨씬 시각적으로 중요하다는 것을 주목해야 한다. ALF에 의한 것과 같은 적응적 루프 필터링에 따라 수행될 수도 있는 오프셋 프로세싱 및 스케일링 프로세싱와 관련하여, 결과로 초래된 비디오 인코딩된 신호에서 주관적인 품질 향상을 훨씬 중요하게 제공하고, 이러한 조명 보상은 특정 실시예들에서는 오직 오프셋 프로세싱만을 사용하여 수행될 수도 있다. 말하자면, ALF에 의한 것과 같은, 적응적 루프 필터링에 따라 수행될 수도 있는 다양한 동작들 중에서, 특정 실시예들에서는 조명 보상으로부터 야기되는 주관적 품질 향상에 가장 실질적으로 기여할 수 있는 오프셋 프로세싱만이 사용될 수도 있다. ALF는 일 실시예에서 오프셋 프로세싱 및 스케일링 프로세싱을 모두 수행하거나, 다른 실시예에서 오직 오프셋 프로세싱만을 수행하거나, 또 다른 실시예에서 오직 스케일링 프로세싱만을 수행하는 것을 포함하는 다른 실시예들에서 다양한 다른 방법들로 구현될 수도 있는 것에 반하여, 비디오 인코딩된 신호의 지각적인 품질에서의 중요한 향상은 ALF의 동작에 따라 오직 오프셋 프로세싱만을 수행하여 성취될 수도 있다.

    특정 실시예들에 있어서, 이러한 ALF는 다수의 다른 동작 모드들, 즉, 오직 오프셋 프로세싱만 수행되는 제 1 모드, 오프셋 프로세싱 및 스케일링 프로세싱이 수행되는 제 2 모드, 및 오직 스케일링 프로세싱만 수행되는 제 3 모드에 따라 선택적으로 동작하도록 구현될 수도 있다. 주어진 비디오 인코딩된 신호를 생성하는데 이용되는 이들 동작 모드들에 따라, 디코더가 비디오 인코딩된 신호가 생성된 방법을 적절하게 알 수 있게 하기 위하여, 정보는 디코더에 릴레이되거나 통신될 수도 있다. ALF가 오직 오프셋 프로세싱만을 수행하도록 구현된 실시예들은, ALF가 오프셋 프로세싱 및 스케일링 프로세싱을 수행하도록 구현된 구현들과 비교할 때, 상대적으로 감소된 복잡성을 가질 수 있다. 또한 이해될 수 있는 바와 같이, 다중 동작 모드들에 따라 선택적으로 동작하는 ALF를 구현하는 것은, 이러한 선택적인 동작을 포함하지 않는 다른 실시예들과 비교할 때, 복잡성을 증가시킬 수도 있다. 상대적으로 낮은 복잡도가 요구되는 아키텍처들 또는 설계들과 관련하여, 이러한 ALF는 오직 오프셋 프로세싱만을 수행하도록 구현될 수도 있다.

    ALF의 동작에 따라, ALF 필터링 맵 및 필터 계수들을 결정하도록 동작될 수 있는 위에서 언급한 왜곡률 최적화가 이용될 수도 있고, 각각의 ALF 오프셋 맵 및 오프셋 값들을 결정하도록 동작될 수도 있다. 이러한 ALF의 오프셋 맵은 각각의 오프셋 값이 적용될 영역을 지시한다. 오프셋 프로세싱만을 수행하도록 구현된 ALF를 포함하는 실시예들에서, 오프셋 전용 ALF의 상기 동작은 독립적으로 또는 ALF의 특별한 경우로써 시퀀스 파라미터 세트, 픽처 파라미터 세트 및/또는 슬라이스 레벨 파라미터 세트 등에서 신호될 수 있다.

    픽처 버퍼 또는 디지털 픽처 버퍼(DPB)는 ALF로부터 출력된 신호를 수신한다; 픽처 버퍼는 비디오 인코딩에 따라 수행될 수도 있는 인트라-예측 및/또는 인터-예측에 따라 사용될 수도 있는 것과 같이 현재 프레임(또는 픽처) 및/또는 하나 또는 그 이상의 다른 프레임들(또는 픽처들)을 저장하도록 동작한다. 인트라-예측에 따라 상대적으로 적은 양의 저장이면 충분할 수도 있고, 즉, 현재 프레임(또는 픽처) 또는 다른 프레임(또는 픽처)를 저장하는 것을 필요로 하지 않을 수도 있다. 그렇게 저장된 정보는 비디오 인코딩에 따른 인터-예측을 수행하는 경우에 움직임 보상 및/또는 움직임 추정을 수행하는데 이용될 수도 있다.

    도 12의 실시예(1200)는 적응적 루프 필터(ALF)가 디-블록킹 필터로부터의 출력을 처리하도록 구현된다는 적어도 하나의 차이점을 가지면서, 도 5의 실시예(500)와 유사점들을 갖는다. 예를 들어, 도 6의 실시예(600)를 참조하면, 다른 인-루프 필터(들)에 대응되는 블록은 도 12의 실시예(1200)에서 적응적 루프 필터(ALF)로써 구현되는 것으로 간주될 수도 있다.

    도 13의 실시예(1300)는 도 5의 실시예(500)와 유사점들을 갖는다(예를 들어, 샘플 적응적 오프셋(SAO) 필터 및 적응적 루프 필터(ALF)가 디-블록킹 필터로부터의 출력을 처리하도록 구현된 적어도 하나의 차이점을 가지면서). 예를 들어, 도 6의 실시예(600)를 참조하면, 다른 인-루프 필터(들)에 대응되는 블록은 도 13의 실시예(1300)에서 샘플 적응적 오프셋(SAO) 필터 및 적응적 루프 필터(ALF)를 포함함으로써 구현되는 것으로 간주될 수도 있다. 이 실시예(1300)에 관련하여 볼 수 있는 바와 같이, 샘플 적응적 오프셋(SAO) 필터는 디-블록킹 필터로부터의 출력을 처리하도록 구현되고, 적응적 루프 필터(ALF)는 샘플 적응적 오프셋(SAO) 필터로부터의 출력을 처리하도록 구현된다.

    도 14의 실시예(1400)는 도 5의 실시예(500)와 유사점들을 갖는다(예를 들어, 디-블록킹 필터/샘플 적응적 오프셋(SAO) 필터 및 적응적 루프 필터(ALF)가 인트라 예측 블록에 제공된 신호를 처리하도록 구현된 적어도 하나의 차이점을 가지면서). 예를 들어, 이 도면에서, 디-블록킹 필터/SAO 필터는 (예를 들어, 도 6의 실시예(600)와 관련된 것과 같이) 다른 인-루프 필터(들)에 출력을 제공하도록 구현된다. 예를 들어, 다른 인-루프 필터(들)에 대응되는 블록은 도 14의 실시예(1400)에서 적응적 루프 필터(ALF)를 포함함으로써 구현되는 것으로 간주될 수도 있다. 이 실시예(1400)에 관련하여 볼 수 있는 바와 같이, 적응적 루프 필터(ALF)는 디-블록킹 필터/샘플 적응적 오프셋(SAO) 필터(예를 들어, 디-블록킹 필터 및/또는 샘플 적응적 오프셋(SAO) 필터)로부터의 출력을 처리하도록 구현된다.

    도 15의 실시예(1500)를 참조하면, 비디오 인코더의 다른 실시예를 도시하는 이 도면과 관련하여, 실시예(1500)는 ALF가 디-블록킹 필터 블록 이전에 구현된다는 적어도 하나의 차이점을 가지면서 도 12의 실시예(1200)와 유사점들을 갖는다. 이 실시예(1500)와 관련하여, 오프셋 전용 ALF를 이용함으로써, 스케일링 프로세싱의 수행 없이, ALF의 구현은 디-블록킹 필터 블록 전에 구현될 수도 있다.

    본 명세서에 기술된 다양한 도면 및/또는 실시예들과 관련하여 이해될 수 있듯이, ALF의 상이한 제한들이 비디오 코딩 프로세싱에 따라 이용될 수도 있다. 일부 실시예들에 있어서, ALF는 오프셋 전용 ALF로 구현된다. 다른 실시예들에 있어서, ALF는 오프셋 프로세싱 및 스케일링 프로세싱을 수행하도록 구현된다. 일부 실시예들에 있어서, ALF는 스케일링 프로세싱(예를 들어, 유한 임펄스 응답(FIR) 필터링과 같은)를 수행하도록 구현된다. 또 다른 실시예들에 있어서, ALF는 오프셋 프로세싱만 수행되는 제 1 모드, 오프셋 프로세싱와 스케일링 프로세싱이 수행되는 제 2 모드 및 스케일링 프로세싱만 수행되는 제 3 모드를 포함하는 상이한 동작 모드들에 따라 선택적으로 동작되도록 구현될 수도 있다. 예를 들어, ALF의 동작은 디바이스의 바람직한 복잡성, 출력 비트스트림 또는 그것에 대응되는 신호가 런치될 수 있는 통신 채널의 레이턴시(latency)를 포함하는 다수의 고려사항들에 기초하여 선택될 수도 있다. 만약 바람직하게는, 성능들 중 한 번에 오직 하나만 인에이블(enable)되도록 선택적인 성능을 갖는 ALF를 구현할 수도 있다. 예를 들어, 공통 비디오 코딩 아키텍처 및/또는 회로는 다수의 다른 어플리케이션에서의 사용을 위하여 다수의 다른 형태의 디바이스들에서 구현될 수도 있다. 제 1 어플리케이션에서 동작하는 제 1 디바이스에서, ALF의 제 1 동작 모드는 그 안에서 인에이블될 수 있다. 제 2 어플리케이션에서 동작하는 제 2 디바이스에서, ALF의 제 2 동작 모드는 그 안에서 인에이블될 수 있다. 이해되는 바와 같이, 제조사는 매우 다양한 어플리케이션들에서 동작하는 매우 다양한 디바이스들에서의 사용을 위한 단일 비디오 코딩 아키텍처 및/또는 회로를 설계할 수도 있다.

    도 16a 및 도 16b는 (예를 들어, 하나 또는 그 이상의 통신 디바이스들 내에서의) 비디오 코딩에 따라 수행되는 방법들의 다양한 실시예들을 도시한다.

    도 16a의 방법(1600)을 참조하면, 방법(1600)은, 블록 1610에 도시된 바와 같이, 출력 비트스트림을 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 동작시킴으로써 시작한다. 방법(1600)은, 블록 1620에 도시된 바와 같이, 출력 비트스트림을 생성하기 위하여 스케일링 단독 프로세싱에 따라 비디오 인코더의 적응적 루프 필터(ALF)를 동작시킴으로써 진행한다.

    특정한 대안적인 실시예들에 있어서, 방법(1600)은, 블록 1630에 도시된 바와 같이, 출력 비트스트림을 수신함으로써 동작될 수도 있다. 상기 실시예들에서 있어서, 블록 1640에 도시된 바와 같이, 방법(1600)은 입력 비디오 신호에 대응되는 출력 비디오 신호를 생성하기 위하여 출력 비트스트림을 디코딩하는 비디오 디코더를 동작시킴으로써 진행한다.

    도 16b의 방법(1601)을 참조하면, 방법(1601)은, 블록 1611에 도시된 바와 같이, 출력 비트스트림을 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 동작시킴으로써 시작한다. 그 후, 방법(1601)은, 블록 1621에 도시된 바와 같이, 비디오 인코더에서 블록 단위 또는 슬라이스 단위로 선택적으로 비디오 인코더의 ALF를 동작시킴으로써 동작한다.

    방법(1601)은, 블록 1631에 도시된 바와 같이, 제 1 통신 디바이스로부터 입력 비디오 신호와 연관된 다수의 블록들 또는 슬라이스들 중에서 ALF가 선택적으로 필터링하는 출력 비트스트림을 수신하도록 구현된 제 2 통신 디바이스(또는 그 이상의 통신 디바이스들)로 신호를 보냄으로써 진행한다.

    특정 대안적인 실시예들에 있어서, 방법(1600)은, 블록 1641에 도시된 바와 같이, 그 후에 출력 비트 스트림을 수신함으로써 동작하는 방법(1601)을 동작시키기 위하여 동작될 수도 있다.

    상기 실시예들에 있어서, 방법(1601)은, 블록 1651에 도시된 바와 같이, 입력 비디오 신호에 대응되는 출력 비디오 신호를 생성하기 위하여 출력 비트스트림을 디코딩하는 (예를 들어, 제 2 통신 디바이스 내의) 비디오 디코더를 동작시킴으로써 계속될 수도 있다.

    베이스밴드(baseband) 프로세싱 모듈 및/또는 그 안에서 구현된 프로세싱 모듈 및/또는 그 안에서의 다른 구성요소(들)을 이용하는 것과 같이 본 명세서에서 다양한 방법들과 관련되어 기술된 다양한 동작들과 기능들이 통신 디바이스에서 수행될 수도 있음을 주목해야 한다.

    본 명세서에 사용된 바와 같이, "실질적으로(substantially)" 및 "대략(approximately)"의 용어들은 그의 대응되는 용어 및/또는 아이템들 사이의 상대성에 대하여 산업상 받아들여지는 허용 범위를 제공한다. 상기 산업상 받아들여지는 허용 범위가 1퍼센트 미만에서부터 50퍼센트까지 이르며 그에 대응되지만, 컴포넌트 값들, 집적 회로 프로세싱 변형들, 온도 변화들, 상승 및 하강 시간들, 및/또는 열잡음에 제한되지 않는다. 아이템들 사이의 상기 상대성은 범위가 수 퍼센트의 차이로부터 큰 규모의 차이들까지 이른다. 또한 본 명세서에 사용될 수 있는 바와 같이, "~에 연결된(coupled to)" 및/또는 "연결하는(coupling)" 용어(들)은 아이템들 사이의 직접적인 연결을 포함하며 및/또는 사이에 있는 아이템(예컨대, 아이템은 구성요소(component), 소자(element), 회로, 및/또는 모듈을 포함하지만, 이에 제한되지는 않는다)을 통해 아이템들 사이의 간접적인 연결을 포함하고, 여기서 간접적인 연결을 위해, 사이에 오는 아이템은 신호의 정보를 변경시키지 않지만 그것의 전류 레벨, 전압 레벨, 및/또는 전력 레벨을 적용할 수 있다. 본 명세서에 더 사용될 수 있는 바와 같이, 추정되는 연결(즉, 하나의 소자가 유추에 의해 다른 소자에 연결되는)은 "~에 연결된(coupled to)"과 같은 방법으로 두 아이템들 사이의 직접적 및 간접적인 연결을 포함한다. 심지어 본 명세서에 더 사용될 수 있는 바와 같이, "~에 동작 가능한(operable to)" 또는 동작 가능하도록 연결된(operably coupled to) 용어는 활성화된 경우, 아이템은 하나 또는 그 이상의 대응되는 기능들을 구행하기 위한 하나 또는 그 이상의 전원 연결들, 입력(들), 출력(들) 등을 포함하며, 하나 또는 그 이상의 다른 아이템들과의 추정되는 연결을 더 포함할 수도 있다. 본 명세서에 여전히 더 사용될 수 있는 바와 같이, "~와 연관된(associated with)" 용어는 분리된 아이템들 및/또는 또 다른 아이템 내에 임베디드되는 하나의 아이템의 직접적 및/또는 간접적인 연결을 포함한다. 본 명세서에 사용될 수 있는 바와 같이, "유리하게 비교하는(compares favorably)" 용어는 둘 이상의 아이템들, 신호들, 기타 등등 사이의 비교가 원하는 관계를 제공한다는 것을 가리킨다. 예를 들면, 원하는 관계가 신호 1이 신호 2보다 더 큰 크기를 가지는 것일 때, 바람직한 비교는 신호 1의 크기가 신호 2의 크기보다 더 크거나, 신호 2의 크기가 신호 1의 크기보다 더 작을 때 달성될 수 있다.

    또한, 본 명세서에 사용되는 바와 같이, 프로세싱 모듈, 모듈. 프로세싱 회로, 및/또는 (예를 들어, 동작되고, 구현되고 및/또는 인코딩을 위한, 디코딩을 위한, 베이스밴드 프로세싱을 위하는 것과 같은 다양한 모듈들 및/또는 회로들을 포함하는) 프로세싱 유닛 용어들은 단일 프로세싱 디바이스 또는 다수의 프로세싱 디바이스일 수도 있다. 상기 프로세싱 디바이스는 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 프로세싱기, 마이크로컴퓨터, 중앙프로세싱장치, 필드 프로그램 가능 게이트 어레이, 프로그램 가능 로직 디바이스, 상태 기계(state machine), 로직 회로, 아날로그 회로, 디지털 회로 및/또는 회로 및/또는 연산 명령어(operational instruction)들의 하드 코딩에 기초하여 (아날로그 및/또는 디지털) 신호들을 조작하는 어느 디바이스일 수도 있다. 프로세싱 모듈, 모듈, 프로세싱 회로 및/또는 프로세싱 유닛은 연관된 메모리 및/또는 집적 메모리 소자를 가질 수도 있으며, 이는 단일 메모리 디바이스, 복수의 메모리 디바이스들 및/또는 프로세싱 모듈, 모듈, 프로세싱 회로 및/또는 프로세싱 유닛의 임베디드 회로일 수도 있다. 상기 메모리 디바이스는 ROM(Read-Only Memory), RAM(Random Access Memory), 휘발성 메모리, 비휘발성 메모리, 고정 메모리, 다이나믹 메모리, 플래시 메모리, 캐시 메모리, 및/또는 디지털 정보를 저장하는 어느 디바이스일 수도 있다. 만약 프로세싱 모듈, 모듈, 프로세싱 회로 및/또는 프로세싱 유닛이 하나 이상의 프로세싱 디바이스를 포함하는 경우, 프로세싱 디바이스들은 중앙에 위치할 수도 있거나(예를 들어, 유선 및/또는 무선 버스 구조를 통하여 같이 직접적으로 연결된), 분리되어 위치할 수도 있다(예를 들어, LAN(Local Area Network) 및/또는 WAN(Wide Area Network)을 통하여 간접적인 연결을 통한 클라우드 컴퓨팅). 만약 프로세싱 모듈, 모듈, 프로세싱 회로 및/또는 프로세싱 유닛이 상태 기계, 아날로그 회로, 디지털 회로 및/또는 로직 회로를 구현하는 경우, 대응되는 연산 명령어들을 저장하는 메모리 및/또는 메모리 소자는 상태 기계, 아날로그 회로, 디지털 회로 및/또는 로직 회로를 포함하는 회로의 내부 또는 외부에 임베디드될 수도 있음을 더 주목해야 한다. 메모리 소자는 저장할 수도 있고, 프로세싱 모듈, 모듈, 프로세싱 회로 및/또는 프로세싱 유닛은 하나 또는 그 이상의 도면들에서 도시된 적어도 어떤 단계들 및/또는 기능들에 대응되는 하드 코딩된 및/또는 연산 명령어들을 실행한다. 상기 메모리 디바이스 또는 메모리 소자는 제조물(article of manufacture)에 포함될 수 있다.

    본 발명은 또한 특정 기능들 및 그의 관계들의 수행을 나타내는 방법 단계들을 위하여 위에서 설명되었다. 이러한 기능적 구조 블록들 및 방법 단계들의 경계들 및 시퀀스는 설명의 편의를 위해 본 명세서에 임의로 정의되었다. 상기 특정 기능들 및 관계들이 적절히 수행되는 한 변경 가능한 경계들 및 시퀀스들이 정의될 수 있다. 그러므로 어떠한 상기 변경 가능한 경계들 또는 시퀀스들은 상기 청구된 발명의 범위 및 사상 내에 있다. 더욱이, 이들 기능적 구조 블록들의 경계들은 설명의 편의를 위하여 임의로 정의되었다. 어떤 중요한 기능들이 적절하게 수행되는 한도 내에서 다른 경계들도 정의될 수 있다. 유사하게, 또한 플로우 도면 블록들은 어떤 중요한 기능들을 나타내기 위하여 임의로 본 명세서에 정의되었을 수도 있다. 사용되는 한에는, 플로우 도면 블록 경계들 및 시퀀스는 다르게 정의될 수 있었고, 여전히 어떤 중요한 기능을 수행한다. 기능적 구조 블록들 및 플로우 도면 블록들의 다른 정의 및 시퀀스들은 발명의 범위 및 사상 내에 있다. 당업자는 기능적 구조 블록들을 인식할 것이고, 여기의 다른 설명 블록들, 모듈들 및 구성요소들은 설명된 대로 또는 분리된 구성요소들, 어플리케이션 특정 집적 회로들, 적절한 소프트웨어를 실행하는 프로세서들 및 이와 유사한 것 또는 여기의 어떤 조합들에 의하여 구현도리 수 있다.

    또한, 본 발명은 적어도 부분적으로 하나 또는 그 이상의 실시예들 관점에서 설명되었을 수도 있다. 본 발명의 일 실시예는 본 발명, 그의 측면, 그의 특징, 그의 개념 및/또는 그의 예를 설명하기 위하여 본 명세서에 사용된다. 장치, 제조물, 기계의 물리적인 실시예 및/또는 본 발명을 구체화하는 프로세싱은 본 명세서에서 논의된 하나 또는 그 이상의 실시예들과 관련하여 기술된 하나 또는 그 이상의 측면들, 특징들, 개념들, 예 등을 포함할 수도 있다. 더불어, 도면을 통틀어, 실시예들은 동일 또는 다른 참조 부호들을 사용할 수도 있는 동일 또는 유사하게 명명된 기능들, 단계들, 모듈들을 통합할 수도 있고, 예를 들어, 기능들, 단계들, 모듈들 등은 동일 또는 유사한 기능들, 단계들, 모듈들 등 또는 다른 것들일 수도 있다. 본 명세서에 제시된 도면들의 어느 도면에서 소자들 반대로, 소자로, 소자로부터 및/또는 소자들 사이에로 특정하게 기술하지 않는 한, 신호는 아날로그 또는 디지털, 연속 시간 또는 이산 시간, 싱글-엔디드(single-ended) 또는 디퍼런셜(differential)일 수도 있다. 예를 들어, 신호 경로가 싱글-엔디드 신호 경로로 나타나는 경우, 또한 그것은 디퍼런셜 신호 경로를 나타낸다. 유사하게, 신호 경로가 디퍼련셜 신호 경로로 나타나는 경우, 또한 싱글-엔디드 신호 경로를 나타낸다. 하나 또는 그 이상의 특정 아키텍처들이 본 명세서에 기술되는 반면에, 당업자가 인식할 수 있듯이 다른 아키텍처들도 명확하게 나타나지 않는 하나 또는 그 이상의 데이터 버스들, 소자들 사이의 직접적인 연결 및/도는 다른 소자들 사이의 간접적인 연결을 사용하여 동일하게 구현될 수도 있다.

    모듈 용어는 본 발명의 다양한 실시예들의 설명에서 사용된다. 모듈은 하나 또는 그 이상의 출력 신호들을 생산하기 위하여 하나 또는 그 이상의 입력 신호들의 프로세싱와 같은 하나 또는 그 이상의 기능들을 수행하는 하드웨어를 통하여 구현된다. 모듈을 구현하는 하드웨어는 소프트웨어 및/또는 펌웨어와의 연결을 통하여 스스로 동작할 수도 있다. 본 명세서에 기술된 바와 같이, 모듈은 그들 스스로가 모듈들인 하나 또는 그 이상의 서브-모듈들을 포함할 수도 있다.

    본 발명의 다양한 기능들 및 특징들의 특정 조합들은 본 명세서에 명확하게 기술되었지만, 이들 특징들 및 기능들의 다른 조합들은 동일하게 실행 가능하다. 본 발명은 본 명세서에 개시된 특정 예들에 의하여 제한되지 않고, 이들 다른 조합들을 명확하게 통합한다.

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈