KR101357842B1 - 인프라스트럭쳐 성능들 및 현재 조건들에 기초한 비디오 코딩 서브-블록 사이징 - Google Patents

인프라스트럭쳐 성능들 및 현재 조건들에 기초한 비디오 코딩 서브-블록 사이징 Download PDF

Info

Publication number
KR101357842B1
KR101357842B1 KR1020120106249A KR20120106249A KR101357842B1 KR 101357842 B1 KR101357842 B1 KR 101357842B1 KR 1020120106249 A KR1020120106249 A KR 1020120106249A KR 20120106249 A KR20120106249 A KR 20120106249A KR 101357842 B1 KR101357842 B1 KR 101357842B1
Authority
KR
South Korea
Prior art keywords
video
video signal
streaming media
sub
blocks
Prior art date
Application number
KR1020120106249A
Other languages
English (en)
Other versions
KR20130035900A (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 KR20130035900A publication Critical patent/KR20130035900A/ko
Application granted granted Critical
Publication of KR101357842B1 publication Critical patent/KR101357842B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Landscapes

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

Abstract

인프라스트럭쳐 성능들 및 현재 조건들에 기초한 비디오 코딩 서브-블록 사이징. 비디오 코딩에 따라 이용되는 것과 같은 서브-블록 크기는 다수의 고려사항들 중 어느 하나에 기초하여 적응적으로 변형될 수도 있다. 예를 들어, 서브-블록 사이즈의 적응은 비디오 프로세서를 포함하는 주어진 디바이스에 의하여 수신 및/또는 주어진 디바이스로부터 출력되는 스트리밍 미디어 소스 플로우(들) 및/또는 스트리밍 미디어 딜리버리 플로우(들)와 연관된 하나 또는 그 이상의 특성들에 따라 이루어질 수도 있다. 예를 들어, 비디오 프로세서는 미들링 또는 목적지 디바이스에 구현된 비디오 디코더일 수도 있다. 비디오 프로세서는 미들링 또는 소스 디바이스에 구현된 비디오 인코더일 수도 있다. 비디오 코딩에 따라 이용된 서브-블록 크기의 적응은 각각의 디바이스들 사이에(예를 들어, 목적지 또는 소스 디바이스들로부터 미들링 디바이스로, 또는 목적지 디바이스에서 소스 디바이스로 등등) 제공된 피드백 또는 제어 시그널링에 따라 이루어질 수도 있다.

Description

인프라스트럭쳐 성능들 및 현재 조건들에 기초한 비디오 코딩 서브-블록 사이징{Video coding sub-block sizing based on infrastructure capabilities and current conditions}
우선권 주장
본 미국 실용 특허 출원은 그 전체가 참조로써 본 출원에 통합되고, 모든 목적을 위하여 본 출원의 부분이 되는 다음의 미국 가특허 출원에 대한 35 U.S.C. §119(e)에 기초한 우선권을 주장한다.
1, 2011년 9월 30일에 출원되고, 현재 출원계속 중인 발명의 명칭이 "Coding, communications, and signaling of video content within communication system"인 미국 가출원 번호 제61/541,938호(Attoney Docket No. BP23215)
참조로써 통합
다음의 표준들/표준안들은 그 전체로 참조로써 여기에 통합되고, 모든 목적을 위하여 본 출원의 부분이 된다.
1."WD4: Working Draft 4 of High-Efficiency video coding, Joint Collaborative Team on Video Coding(JCT-VC)," Joint Collaborative Team on Video Coding(JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 6th Meeting: Torino, IT, 14-22 July, 2011, Document: JCTVC-F803 d4, 230 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.
기술분야
본 발명은 전반적으로 디지털 비디오 프로세싱에 관한 것으로, 더욱 상세하게는 이러한 디지털 비디오 프로세싱에 따라 블록들 및/또는 서브-블록들을 사용하여 비디오 코딩을 수행하는 것에 관한 것이다.
디지털 미디어(예를 들어, 이미지들, 비디오, 데이터 등)와 통신하기 위하여 동작하는 통신 시스템들은 수년 동안 계속적인 발전 상황에 있었다. 어떤 형태의 비디오 데이터를 이용한 통신 시스템들과 관련하여, 많은 디지털 이미지들은 출력 및 소비에 적합한 비디오 신호를 만들기 위하여 어떤 프레임 비율(예를 들어, 초당 수 프레임들)에서 출력 또는 디스플레이된다. 비디오 데이터를 사용하여 동작하는 많은 통신 시스템들에서, 처리량(예를 들어, 제 1 위치에서 제 2 위치로 송신될 수 있는 이미지 프레임들의 수)과 결국 출력 또는 디스플레이될 신호의 비디오 및/또는 이미지 품질 사이에서의 트레이드-오프(trade-off)가 있을 수 있다. 현재의 기술들은 적절하고 또는 만족스러운 비디오 및/또는 이미지 품질을 제공하고, 통신들과 관련된 상대적으로 적은 양의 오버헤드 및 통신 링크들 중 각각의 종단들에서의 통신 디바이스들의 상대적으로 적은 복잡성을 보장하면서 비디오 데이터가 제 1 위치로부터 제 2 위치로 송신될 수 있는 수단들을 적절하게 또는 만족스럽게 제공하지 못한다.
본 발명의 일 실시예에 따라, 장치는 적어도 하나의 통신 네트워크를 통하여 소스 디바이스로부터 제 1 비디오 신호를 수신하는 입력; 및 비디오 프로세서로서, 각각 제 1 크기를 갖는 제 1 복수의 서브-블록들에 따라 제 1 비디오 신호의 제 1 부분을 프로세싱하고, 그렇게 함으로써, 제 2 비디오 신호의 제 1 부분을 생성하고; 적어도 하나의 스트리밍 미디어 소스 플로우에 연관된 제 1 특성, 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된 제 2 특성 및 상기 장치의 적어도 하나의 로컬 프로세싱 조건과 연관된 적어도 하나의 특성 중 적어도 하나에 기초하여 제 2 크기를 식별하고; 및 상기 제 2 크기를 각각 갖는 제 2 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 제 2 부분을 적응적으로 프로세싱하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 2 부분을 생성하는; 상기 비디오 프로세서; 및 상기 적어도 하나의 통신 네트워크 또는 적어도 하나의 부가 통신 네트워크를 통하여 적어도 하나의 목적지 디바이스에 상기 제 2 비디오 신호를 출력하는 출력을 포함하고, 상기 제 1 특성은 상기 적어도 하나의 스트리밍 미디어 소스 플로우와 연관된 레이턴시, 지연, 노이즈, 왜곡, 크로스토크, 감쇠, 신호대 잡음비, 용량, 대역폭, 주파수 스펙트럼, 비트 레이트, 심볼 레이트 중 적어도 하나에 대응되는 상기 적어도 하나의 스트리밍 미디어 소스 플로우와 연관되고; 및 상기 제 2 특성은 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우와 연관된 레이턴시, 지연, 노이즈, 왜곡, 크로스토크, 감쇠, 신호대 잡음비, 용량, 대역폭, 주파수 스펙트럼, 비트 레이트, 심볼 레이트 중 적어도 하나에 대응되는 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우와 연관된다.
바람직하게는, 상기 제 1 특성은 상기 적어도 하나의 소스 디바이스와 연관된 사용자 사용 정보(user usage information), 프로세싱 히스토리, 큐잉(queuing), 에너지 제한, 디스플레이 크기, 디스플레이 해상도 및 디스플레이 히스토리 중 적어도 하나에 대응되는 상기 적어도 하나의 스트리밍 미디어 소스 플로우에 연관되고; 및 상기 제 2 특성은 상기 적어도 하나의 목적지 디바이스와 연관된 사용자 사용 정보, 프로세싱 히스토리, 큐잉, 에너지 제한, 디스플레이 크기, 디스플레이 해상도 및 디스플레이 히스토리 중 적어도 하나에 대응되는 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된다.
바람직하게는, 상기 제 1 특성은 상기 적어도 하나의 소스 디바이스로부터 수신된 적어도 하나의 피드백 또는 제어 신호에 대응되는 상기 적어도 하나의 스트리밍 미디어 소스 플로우에 연관되고; 및 상기 제 2 특성은 상기 적어도 하나의 소스 디바이스로부터 수신된 적어도 하나의 피드백 또는 제어 신호에 대응되는 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된다.
바람직하게는, 상기 장치는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템 및 광섬유 통신 시스템 중 적어도 하나에서 동작된다.
본 발명의 일 실시예에 따라, 장치는 비디오 프로세서(video processor)를 포함하고, 상기 비디오 프로세서는 각각 제 1 크기를 갖는 제 1 복수의 서브-블록들(sub-blocks)에 따라 제 1 비디오 신호의 제 1 부분을 프로세싱하고, 그렇게 함으로써, 제 2 비디오 신호의 제 1 부분을 생성하고; 적어도 하나의 스트리밍 미디어 소스 플로우(streaming media source flow)에 연관된 제 1 특성 및 적어도 하나의 스트리밍 미디어 딜리버리 플로우(streaming media delivery flow)에 연관된 제 2 특성 중 적어도 하나에 기초하여 제 2 크기를 식별하고; 및 상기 제 2 크기를 각각 갖는 제 2 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 제 2 부분을 적응적으로 프로세싱하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 2 부분을 생성한다.
바람직하게는, 상기 비디오 프로세서는 비디오 디코더이고, 상기 비디오 디코더는 각각 상기 제 1 크기를 갖는 상기 제 1 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 1 부분을 디코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 1 디코딩된 부분을 생성하고; 상기 적어도 하나의 스트리밍 미디어 소스 플로우에 연관된 상기 제 1 특성 에 기초하여 상기 제 2 크기를 식별하고; 및 상기 제 2 크기를 각각 갖는 상기 제 2 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 2 부분을 적응적으로 디코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 2 디코딩된 부분을 생성한다.
바람직하게는, 상기 비디오 프로세서는 비디오 인코더이고, 상기 비디오 인코더는 각각 상기 제 1 크기를 갖는 상기 제 1 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 1 부분을 인코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 1 인코딩된 부분을 생성하고; 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된 상기 제 2 특성에 기초하여 상기 제 2 크기를 식별하고; 및 상기 제 2 크기를 각각 갖는 상기 제 2 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 2 부분을 적응적으로 인코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 2 인코딩된 부분을 생성한다.
바람직하게는, 상기 장치는 미들링 디바이스(middling device)이며, 적어도 하나의 통신 네트워크를 통하여 소스 디바이스(source device)로부터 상기 제 1 비디오 신호를 수신하는 입력을 포함하고; 및 상기 장치는 상기 적어도 하나의 통신 네트워크 또는 적어도 하나의 부가 통신 네트워크를 통하여 적어도 하나의 목적지 디바이스(destination device)에 상기 제 2 비디오 신호를 출력하는 출력을 포함한다.
바람직하게는, 상기 장치는 적어도 하나의 통신 네트워크를 통하여 적어도 하나의 목적지 디바이스에 상기 제 2 비디오 신호를 출력하는 출력을 포함하는 소스 디바이스이다.
바람직하게는, 상기 제 1 특성은 상기 적어도 하나의 스트리밍 미디어 소스 플로우와 연관된 레이턴시, 지연, 노이즈, 왜곡, 크로스토크, 감쇠, 신호대 잡음비(SNR), 용량, 대역폭, 주파수 스펙트럼, 비트 레이트, 심볼 레이트(symbol rate) 중 적어도 하나에 대응되는 상기 적어도 하나의 스트리밍 미디어 소스 플로우와 연관되고; 및 상기 제 2 특성은 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우와 연관된 레이턴시, 지연, 노이즈, 왜곡, 크로스토크, 감쇠, 신호대 잡음비, 용량, 대역폭, 주파수 스펙트럼, 비트 레이트, 심볼 레이트 중 적어도 하나에 대응되는 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우와 연관된다.
바람직하게는, 상기 제 1 특성은 상기 적어도 하나의 소스 디바이스와 연관된 사용자 사용 정보(user usage information), 프로세싱 히스토리, 큐잉(queuing), 에너지 제한, 디스플레이 크기, 디스플레이 해상도 및 디스플레이 히스토리 중 적어도 하나에 대응되는 상기 적어도 하나의 스트리밍 미디어 소스 플로우에 연관되고; 및 상기 제 2 특성은 상기 적어도 하나의 목적지 디바이스와 연관된 사용자 사용 정보, 프로세싱 히스토리, 큐잉, 에너지 제한, 디스플레이 크기, 디스플레이 해상도 및 디스플레이 히스토리 중 적어도 하나에 대응되는 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된다.
바람직하게는, 상기 제 1 특성은 상기 적어도 하나의 소스 디바이스로부터 수신된 적어도 하나의 피드백 또는 제어 신호에 대응되는 상기 적어도 하나의 스트리밍 미디어 소스 플로우에 연관되고; 및 상기 제 2 특성은 상기 적어도 하나의 소스 디바이스로부터 수신된 적어도 하나의 피드백 또는 제어 신호에 대응되는 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된다.
바람직하게는, 상기 비디오 프로세서는 상기 장치의 적어도 하나의 로컬 프로세싱 조건에 연관된 적어도 하나의 특성에 기초하여 상기 제 2 크기를 식별한다.
바람직하게는, 상기 장치는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템 및 광섬유 통신 시스템 중 적어도 하나에서 동작하는 통신 디바이스이다.
본 발명의 일 실시예에 따라, 비디오 프로세서를 동작하는 방법은 각각 제 1 크기를 갖는 제 1 복수의 서브-블록들에 따라 제 1 비디오 신호의 제 1 부분을 프로세싱하고, 그렇게 함으로써, 제 2 비디오 신호의 제 1 부분을 생성하는 단계; 적어도 하나의 스트리밍 미디어 소스 플로우에 연관된 제 1 특성 및 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된 제 2 특성 중 적어도 하나에 기초하여 제 2 크기를 식별하는 단계; 및 상기 제 2 크기를 각각 갖는 제 2 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 제 2 부분을 적응적으로 프로세싱하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 2 부분을 생성하는 단계를 포함한다.
바람직하게는, 상기 비디오 프로세서는 비디오 디코더이고, 상기 방법은 각각 상기 제 1 크기를 갖는 상기 제 1 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 1 부분을 디코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 1 디코딩된 부분을 생성하는 단계; 상기 적어도 하나의 스트리밍 미디어 소스 플로우에 연관된 상기 제 1 특성 에 기초하여 상기 제 2 크기를 식별하는 단계; 및 상기 제 2 크기를 각각 갖는 상기 제 2 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 2 부분을 적응적으로 디코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 2 디코딩된 부분을 생성하는 단계를 더 포함한다.
바람직하게는, 상기 비디오 프로세서는 비디오 인코더이고, 상기 방법은 각각 상기 제 1 크기를 갖는 상기 제 1 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 1 부분을 인코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 1 인코딩된 부분을 생성하는 단계; 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된 상기 제 2 특성에 기초하여 상기 제 2 크기를 식별하는 단계; 및 상기 제 2 크기를 각각 갖는 상기 제 2 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 2 부분을 적응적으로 인코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 2 인코딩된 부분을 생성하는 단계를 더 포함한다.
바람직하게는, 상기 비디오 프로세서는 미들링 디바이스에 구현되고, 상기 방법은 상기 미들링 디바이스의 입력을 통하여, 적어도 하나의 통신 네트워크를 통하여 소스 디바이스로부터 상기 제 1 비디오 신호를 수신하는 단계; 및 상기 미들링 디바이스의 출력을 통하여, 상기 적어도 하나의 통신 네트워크 또는 적어도 하나의 부가 통신 네트워크를 통하여 적어도 하나의 목적지 디바이스에 상기 제 2 비디오 신호를 출력하는 단계를 더 포함한다.
바람직하게는, 상기 비디오 인코더는 소스 디바이스에 구현되고, 상기 방법은 소스 디바이스의 출력을 통하여, 적어도 하나의 통신 네트워크를 통하여 적어도 하나의 목적지 디바이스에 상기 제 2 비디오 신호를 출력하는 단계를 더 포함한다.
바람직하게는, 상기 제 1 특성은 상기 적어도 하나의 스트리밍 미디어 소스 플로우와 연관된 레이턴시, 지연, 노이즈, 왜곡, 크로스토크, 감쇠, 신호대 잡음비(SNR), 용량, 대역폭, 주파수 스펙트럼, 비트 레이트, 심볼 레이트(symbol rate) 중 적어도 하나에 대응되는 상기 적어도 하나의 스트리밍 미디어 소스 플로우와 연관되고; 및 상기 제 2 특성은 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우와 연관된 레이턴시, 지연, 노이즈, 왜곡, 크로스토크, 감쇠, 신호대 잡음비, 용량, 대역폭, 주파수 스펙트럼, 비트 레이트, 심볼 레이트 중 적어도 하나에 대응되는 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우와 연관된다.
바람직하게는, 상기 제 1 특성은 상기 적어도 하나의 소스 디바이스와 연관된 사용자 사용 정보(user usage information), 프로세싱 히스토리, 큐잉(queuing), 에너지 제한, 디스플레이 크기, 디스플레이 해상도 및 디스플레이 히스토리 중 적어도 하나에 대응되는 상기 적어도 하나의 스트리밍 미디어 소스 플로우에 연관되고; 및 상기 제 2 특성은 상기 적어도 하나의 목적지 디바이스와 연관된 사용자 사용 정보, 프로세싱 히스토리, 큐잉, 에너지 제한, 디스플레이 크기, 디스플레이 해상도 및 디스플레이 히스토리 중 적어도 하나에 대응되는 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된다.
바람직하게는, 상기 제 1 특성은 상기 적어도 하나의 소스 디바이스로부터 수신된 적어도 하나의 피드백 또는 제어 신호에 대응되는 상기 적어도 하나의 스트리밍 미디어 소스 플로우에 연관되고; 및 상기 제 2 특성은 상기 적어도 하나의 소스 디바이스로부터 수신된 적어도 하나의 피드백 또는 제어 신호에 대응되는 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된다.
상기 방법은 상기 장치의 적어도 하나의 로컬 프로세싱 조건에 연관된 적어도 하나의 특성에 기초하여 상기 제 2 크기를 식별하는 단계를 더 포함한다.
바람직하게는, 상기 비디오 프로세서는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템 및 광섬유 통신 시스템 중 적어도 하나에서 동작하는 통신 디바이스에서 구현된다.
도 1 및 도 2는 통신 시스템들의 다양한 실시예들을 나타낸다.
도 3a는 컴퓨터의 실시예를 나타낸다.
도 3b는 랩탑 컴퓨터의 실시예를 나타낸다.
도 3c는 HD(High Definition) 텔레비전의 실시예를 나타낸다.
도 3d는 SD(Standard Definition) 텔리비전의 실시예를 나타낸다.
도 3e는 핸드헬드 미디어 유닛의 실시예를 나타낸다.
도 3f는 셋탑박스(STB)의 실시예를 나타낸다.
도 3g는 DVD의 실시예를 나타낸다.
도 3h는 일반 디지털 이미지 및/또는 비디오 프로세싱 디바이스의 실시예를 나타낸다.
도 4, 도 5 및 도 6은 비디오 인코딩 아키텍처들의 다양한 실시예들을 나타내는 도면들이다.
도 7은 인트라-예측 프로세싱의 실시예를 나타내는 도면이다.
도 8은 인터-예측 프로세싱의 실시예를 나타내는 도면이다.
도 9 및 도 10은 비디오 디코딩 아키텍처들의 다양한 실시예들을 나타내는 도면들이다.
도 11은 다양한 모듈들, 회로 등에 의한 다양한 비디오 동작들 및 프로세싱들을 위하여 각각의 블록들(예를 들어, 매크로-블록(MB)들, 코딩 유닛(CU)들 등)로 파티셔닝(partitioning)하는 실시예를 나타낸다.
도 12는 다양한 예측 유닛(Prediction Unit; PU) 모드들의 실시예를 나타낸다.
도 13은 재귀적(recursive) 코딩 유닛(CU) 구조의 실시예를 나타낸다.
도 14는 통신 시스템에 구현된 트랜스코더(transcoder)의 실시예를 나타낸다.
도 15는 통신 시스템에 구현된 트랜스코더의 대안적인 실시예를 나타낸다.
도 16은 통신 시스템에 구현된 인코더의 실시예를 나타낸다.
도 17은 통신 시스템에 구현된 인코더의 대안적인 실시예를 나타낸다.
도 18 및 도 19는 트랜스코딩의 다양한 실시예들을 나타낸다.
도 20a, 도 20b, 도 21a 및 도 21b는 비디오 프로세서를 동작하는 방법들의 다양한 실시예들을 나타낸다.
디지털 비디오(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)가 역변환 동작들 내에서 이용된다.
적응적 루프 필터(ALF)는 역변환 블록으로부터의 출력을 처리하도록 구현된다. 디코딩된 픽처가 (종종 디지털 픽처 버퍼(DPB)로 지칭되는) 픽처 버퍼에 저장되기 전에, 이러한 적응적 루프 필터(ALF)는 디코딩된 픽처에 적용된다. 적응적 루프 필터(ALF)는 디코딩된 픽처의 코딩 노이즈를 감소시키기 위하여 구현되고, 적응적 루프 필터(ALF)가 슬라이스 레벨(slice level) 또는 블록 레벨 중 하나에서 적용되는지 아닌지에 따라 필터링은 선택적으로 휘도 및 채도 각각에 대하여 슬라이스 단위(slice by slice basis)로 적용될 수도 있다. 이차원(2-D) 유한 임펄스 응답(finite impulse response; FIR) 필터링이 적응적 루프 필터(ALF)의 적용에 이용될 수도 있다. 필터들의 계수들은 인코더에서 슬라이스 단위로 설계될 수도 있고, 그 후 정보는 디코더로 보내진다(예를 들어, 영상 인코더[또는 인코더로 지칭되는]를 포함하는 송신기 통신 디바이스로부터 영상 디코더[또는 디코더로 지칭되는]를 포함하는 수신기 통신 디바이스로 보내진다).
일 실시예는 위너 필터링(wiener filtering) 설계에 따라 계수들을 생성함으로써 동작한다. 부가하여, 위너 필터링은 인코더에서 필터링이 수행되는지에 따라 블록 단위(block by block basis)로 적용될 수 있고, 그 후, 그 결정은 쿼드 트리(quad tree)에 기초하여 디코더로 보내지고(예를 들어, 영상 인코더[또는 인코더로 지칭되는]를 포함하는 송신기 통신 디바이스로부터 영상 디코더[또는 디코더로 지칭되는]를 포함하는 수신기 통신 디바이스로 보내지고), 반면에 블록 크기는 왜곡율(rate-distortion) 최적화에 따라 결정된다. 2-D 필터링을 이용하는 구현은 인코딩 및 디코딩에 따라 복잡도(degree of complexity)를 야기할 수도 있다. 예를 들어, 적응적 루프 필터(ALF)의 구현에 따른 2-D 필터링을 사용함으로써, 송신기 통신 디바이스에 구현된 인코더 및 수신기 통신 디바이스에 구현된 디코더 내에서 복잡성을 증가시킬 수도 있다.
어떤 선택적인 실시예들에 있어서, 디-블록킹 필터(de-blocking filter)로부터의 출력은 역변환 블록으로부터의 출력을 처리하도록 구현된(예를 들어, 샘플 적응적 오프셋(Sample Adaptive Offset; SAO) 필터, 적응적 루프 필터(Adaptive Loop Filter; ALF), 및/또는 다른 형태의 필터에 따라 구현된) 하나 또는 그 이상의 다른 인-루프 필터(in-loop filter)들에 제공된다.
예를 들어, 이러한 적응적 루프 필터(ALF)는 디블록킹 필터로부터의 출력을 처리하도록 구현될 수도 있다. 디코딩된 픽처가 (종종 디지털 픽처 버퍼(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 Signal to Noise Ratio; PSNR)에 의하여 객관적 품질 평가(objective quality measure)의 향상을 포함하는 비디오 프로세싱에 따른 많은 향상들을 제공할 수 있다. 부가하여, 그 뒤에 인코딩된 영상 신호의 주관적 품질(subjective quality)은 조명 보상(illumination compensation)으로부터 성취될 수도 있고, 이는 ALF 프로세싱에 따른 오프셋 프로세싱 및 스케일링 프로세싱에 따라(예를 들어, 이득(gain)의 적용에 따라) 수행될 수도 있다.
인-루프 필터의 일 유형과 관련하여, 적응적 루프 필터(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은 다양한 모듈들, 회로 등에 의한 다양한 비디오 동작들 및 프로세싱들을 위하여 각각의 블록들(예를 들어, 매크로-블록(MB)들, 코딩 유닛(CU)들 등)로 파티셔닝(partitioning)하는 실시예(1100)를 나타낸다. 일반적으로 말하자면, 통상의 (가장 이상적으로 프로세싱될 수 있는 최대 서브-블록 또는 블록 사이즈가 무엇인지의) 고려 사항(consideration) 대신에, 고려 사항이 다운스트림(downstream) 경로(인코더 및 디코더 사이의 경로) 및 주어진 블록 크기를 로딩하는 프로세서가 공유된 디코딩 디바이스들의 영향(impact)에 주어진다. (예를 들어, 미리 설정된, 로딩 및 성능들 등을 포함하는 현재 조건들(conditions)에 기초하여) 최초 블록 크기가 선택될 수도 있고, 만약 그렇게 요구되는 경우, 블록 크기는 (프레임 전이들(transitions), 충분한 큐잉(queuing) 등과 관련하여) 플라이(fly)에 적응할 수 있다. 선택 및 적응(adaptation)은 노드(예를 들어, 인코더, 디코더, 트랜스코더(transcoder) 및 미들링(middling) 노드들) 성능과 로딩, 통신 채널 유형(들) 및 조건들과 상태(status)와 같은 임의의 하나 또는 그 이상의 파라미터들의 함수일 수도 있다.
예를 들어, 트랜스코더 또는 인코더는 N×N, M×M 또는 M×N(예를 들어, 16×16, 32×32, 16×32 또는 32×16)의 제 1 블록 크기를 최초로 선택할 수도 있고, 그렇지 않은 경우, 디코딩 디바이스 롬(roam)들 및 조건들이 (예를 들어, 다수의 다른 고려 사항들 중 어느 것에 기초하여) 변경됨에 따라, 블록 크기는 다른 블록 크기로 전이한다(예를 들어, 32×32 또는 16×16에서 8×8와 같은 N×N에서 M×M으로의 전이). 일반적으로 말하자면, 다른 각각의 블록 크기들 중에서 및 사이에서의 적응 및 전이는 주어진 장치의 하나 또는 그 이상의 로컬 동작 조건들, 하나 또는 그 이상의 소스 디바이스들과 연관된 업스트림(upstream) 특성들 및/또는 업스트림 네트워크 특성들, 및 하나 또는 그 이상의 목적지 디바이스(destination device)들과 연관된 다운스트림 특성들 및/또는 다운스트림 네트워크 특성들 중 어느 것을 포함하는 다수의 고려 사항들 중 어느 것에 기초하여 이루어진다.
(예를 들어, 비디오 인코딩 및/또는 비디오 디코딩에 대응될 수도 있는) 비디오 코딩에 따라 수행되는 다양한 동작들에 따라, 비디오 신호는 프로세싱을 받고, 그렇게 함으로써 다양한 동작들을 받을 수 있는 다수의 블록들(예를 들어, 매크로-블록(MB)들, 코딩 유닛(CU)들 등)이 생성된다. 일반적으로 말하자면, 이러한 디지털 신호는 다양한 동작들에 의한 프로세싱을 위한 이러한 파티셔닝을 겪는다. 매크로-블록이든 코딩 유닛이든, 각각의 블록 크기는 비디오 코딩에 따른 각각의 동작 및 모든 동작에서 반드시 동일해야 하는 것은 아님을 주목해야 한다. 예를 들어, 제 1 동작은 제 1 크기의 블록을 이용할 수도 있고, 제 2 동작은 제 2 크기의 블록을 이용할 수도 있다.
더욱이, 다른 도면 및/또는 실시예들과 관련하여 알 수 있는 바와 같이, 어떤 주어진 동작에 의하여 이용된 각각의 크기는 다수의 고려 사항들 중 어느 것에 기초하여 적응적으로 변경될 수도 있다. 예를 들어, 일부 실시예들은 다양한 동작들에 의하여 이용된 각각의 블록 크기를 적응적으로 변경함으로써 동작한다. 가능한 일 실시예에 있어서, (예를 들어, 현재 동작 조건들,로딩, 성능들, 및/또는 다른 고려 사항들 등에 기초한 미리 설정된 선택일 수도 있는) 최초 블록 크기가 선택되고, 블록 크기는 임의의 이러한 고려 사항들의 변화의 함수로서 변경될 수도 있다. 즉, 특정 동작들에 따라 이용된 특정 블록 크기는, 임의의 이러한 고려 사항들의 변화들에 적응하기 위하여, 플라이 상에서(on the fly) 또는 실시간으로(적절한 참조 프레임 전이들, 충분한 큐잉, 등을 가지고) 변경될 수 있다.
말하자면, 비디오 코딩에 따른 주어진 각각의 동작에서 고정된 서브-블록 또는 블록 크기를 이용하는 것 대신에, 비디오 코딩에 따라 수행되는 각각의 동작들 중 어느 것에 의하여 이용될 수도 있는 것과 같은 블록 크기의 적응적 조절을 위하여 고려 사항이 다양한 로컬 및/또는 원격 동작 파라미터들, 조건들 등과 관련하여 만들어질 수도 있다. 예를 들어, 여기 어느 곳에서의 실시예들 및/또는 도면들과 관련하여 알 수 있듯이, 다양한 환경적 및 동작적 고려 사항들은 하나 또는 그 이상의 목적지 디바이스들 및/또는 하나 또는 그 이상의 소스 디바이스(source device)들을 연결 또는 결합하도록 동작하는 하나 또는 그 이상의 통신 링크들, 네트워크들, 채널들 등에 대응하는 다운스트림 및/또는 업스트림(upstream)과 연관된다. 이러한 구성요소들 및 현재 동작 상태의 물리적 구현 및 물리적 성능과 연관된 특성뿐만 아니라, 하나 또는 그 이상의 동작 파라미터들이 이러한 구성요소들과 관련하여 변형될 수도 있는 상황에서와 같이, 그들의 현재 동작 상태들이, 다양한 동작들에 이용되는 블록 크기를 조절하는데 사용될 수도 있다. 말하자면, 이러한 블록 크기의 선택 및 적응은 주어진 디바이스(예를 들어, 실제/로컬(actual/local) 디바이스, 미디어 컨텐트를 송신하는 원격으로 구현된 소스 디바이스, 미디어 컨텐트가 제공되는 원격으로 구현된 목적지 디바이스, [실제/로컬 디바이스 및 원격으로 구현된 소스 디바이스 및/또는 목적지 디바이스 사이의] 미들링 디바이스가 중간에 구현된 원격으로 구현된 미들링 노드 등), 이러한 다양한 디바이스들을 연결 및/또는 결합할 수도 있는 하나 또는 그 이상의 통신 링크들, 네트워크들, 채널들 등, 환경적 및/또는 동작적 조건들(예를 들어, 트래픽 플로우, 온도, 습도 등), 동작 상태(예를 들어, 임의의 디바이스의 이용가능한 프로세싱 자원들, 하나 이상의 동작 모드를 갖는 디바이스의 현재 환경설정, 등) 및/또는 다른 고려 사항에 대응하는 하나 또는 그 이상의 파라미터들의 함수일 수도 있다. 일반적으로 말하자면, 비디오 코딩에 따라 임의의 주어진 동작 또는 프로세싱에 의하여 이용되는 블록 크기는 이러한 고려 사항들에 기초한 다수의 블록 크기들 사이에서 전이할 수도 있다.
도 12는 다양한 예측 유닛(Prediction Unit; PU) 모드들의 실시예(1200)를 나타낸다. 이 도면은 2N×2N 크기를 갖는 CU에 기초하는, PU 파티션(partition) 모드들을 각기 나타낸다. 현재 개발 중인 HEVC 표준에 따라, I 슬라이스(들), P 슬라이스(들) 및 B 슬라이스(들)이 이용된 다른 각각의 슬라이스 유형들이 도시되어 있다. 일반적으로 말하자면, 예측에 따르는 것과 같이, I 프레임의 개별적인 프로세싱은 오직 그 특정 프레임에 관련될 수 있도록(예를 들어, I 프레임은 오로지 스스로와 관련하여 예측을 수행한다), I 슬라이스들이 동작한다.
P 슬라이스들은 각각의 참조 리스트들 보다는 오직 하나의 참조 리스트를 사용함으로써 동작한다. 일반적으로 말하자면, P 슬라이스들과 관련하여, 움직임 보상에 따르는 것과 같은 예측은 프레임 시퀀스와 관련하여 오직 하나의 방향 또는 단일방향에 따라 수행된다. P 슬라이스들에 따른 이러한 예측은 어느 하나의 방향일 수도 있으나, 주어진 시간에서 오직 하나의 방향이 이용된다. 또한, P 슬라이스들에 따른 예측은 한 번에 오직 하나의 프레임, 다시, 프레임 시퀀스의 어느 하나의 방향과 관련하여 수행된다.
일반적으로 말하자면, B 슬라이스들과 관련하여, 예측은 프레임 시퀀스를 따라 양방향에 따라 수행될 수도 있다. 예를 들어, 현재 프레임 외에 적어도 두 개의 각각의 다른 프레임들이 이러한 움직임 보상에 따라 사용될 수 있도록, 움직임 보상에 따르는 것과 같은, 예측은 동시에 프레임 시퀀스의 양방향으로 이용될 수 있다. 예를 들어, 선행 프레임 1 및 후행 프레임 3 사이에 낀 현재 프레임 2를 고려한다: 선행 프레임 1은 과거에 있는 것으로 간주될 수도 있고, 반면에 후행 프레임 3은 (예를 들어, 프레임 시퀀스와 관련하여) 현재 프레임 2의 이전 또는 미래에 있는 것으로 간주될 수도 있다. 현재 프레임 2를 프로세싱하기 위하여, 정보가 선행 프레임 1 및/또는 후행 프레임 중 어느 하나로부터 취해질 수 있다. 또한, 특정 보간된 정보 또는 혼합된 정보(blended information)가 현재 프레임 2를 프로세싱하는 것에 따라 두 개의 다른 각각의 프레임들로부터 실현될 수도 있다(예를 들어, 선행 프레임 1로부터의 정보는 후행 프레임 3으로부터의 정보와 보간되거나 또는 혼합될 수 있다). 또한, B 슬라이스들과 관련하여, B 슬라이스들은 각각의 참조 리스트들을 이용할 수도 있다. B 슬라이스들을 사용하는 동작에 따라, 파티션 모드에서의 CU 예측 모드는 단일 신택스 요소(syntax element)를 이용하여 공동으로 인코딩된다. 이용된 이진화는 현재 CU가 최소 SC(SCU)인지 아닌지의 함수이다.
이용된 PU 모드와 관련하여, 특정 PU 모드에 따라 인코딩된 영상 신호의 적절한 프로세싱을 수행하기 위하여 그리고 어떻게 신호 블록이 파티션되었는지 적절하게 알 수 있게 하기 위하여, 그 정보는 디코더로 보내진다. 예를 들어, 비디오 신호의 인코딩에 따라 이용된 특정 PU 모드에 기초하여, 디코더가 수신된 비디오 신호를 적절하게 처리하고 디코딩할 수 있도록 하기 위하여, 그 정보는 디코더로 제공된다.
부가하여, 도면과 관련하여 알 수 있는 바와 같이, 잠재적 PU 모드들의 서브세트는 스킵(skip), 인트라-예측 또는 인터-예측과 연관된 다른 예측 동작들과 관련하여 이용될 수도 있다. 말하자면, 주어진 PU 모드의 선택은 어떠한 코딩 동작이 수행되는지에 기초하여 더 제한될 수도 있다.
도 13은 재귀적(recursive) 코딩 유닛(CU) 구조의 실시예(1100)를 나타낸다. HEVC(High efficiency video coding)는 현재 개발 중인 차세대 비디오 압축 표준이다. 산업상의 견해에서, HEVC 표준은 위에서 언급되고 또한 참조로써 통합된 H.264/MPEG4-AVC(또는 AVC라고 지칭되는)의 계승자로 보인다. 비디오 코딩에 따라 현재 개발 중인 HEVC 표준은 전형적으로 사각형 형상을 가지고, AVC에 따르면 매크로 블록(MB)인 기본 유닛에 대응되는 것으로서 코딩 유닛(또는 CU)을 사용하여 동작한다. 어떤 관점에서는, CU는 MB 및 AVC에서의 대응하는 서브 매크로 블록(SMB)과 동작 목적 및 역할이 유사하다. 그러나 비디오 코딩에 따라 이용된 두 각각의 구성요소들 사이의 적어도 하나의 차이점은, CU는 각각의 크기에 대응하는 특별한 차이 없이 다수의 다양한 크기들 중 어느 하나를 가진다. 현재 개발 중인 HEVC 표준화에 따라 수행되는 비디오 호출 용어에 따라 특정 용어들이 CU에 관련하여 정의된다. 즉, 가장 큰 코딩 유닛(Largest Coding Unit; LCU) 및 가장 작은 코딩 유닛(Smallest Coding Unit; SCU)이 정의된다.
비디오 코딩에 따라, 픽처는 다수의 중첩하지 않는(non-overlapped) LCU들을 이용하여 표현될 수도 있다. CU는 형상에 있어서 사각형으로 제한되는 것으로 가정되기 때문에, 도 11에 도시한 바와 같이 LCU 내의 CU 구조는 재귀적 트리 표시로 표현될 수 있다. 말하자면, CU는 대응하는 LCU 크기 및 그 LCU가 속하는 LCU에서의 계층적 깊이(hierarchical depth)에 의하여 특징지어진다.
일단 트리 분할(splitting) 프로세스가 이루어진 경우, 상이한 개별적인 예측 인코딩 처리방법들이 더 이상 분할되지 않는 모든 CU에 대하여 특정된다. 다른 말로, CU 계층적 트리는, 각각의 CU의 대응하는 픽처에 적용되는 바와 같은 각각의 트리 분할 프로세스에 각각 대응하는 다수의 개별적인 리프 노드(leaf node)들을 포함하는 것으로 간주될 수도 있다. 비디오 코딩 및 특히 P 및 B 슬라이스들과 관련한 비디오 코딩에 따라, 각각의 개별적인 CU는 비디오 인코딩에 따라 인트라-예측 또는 인터-예측 중 어느 하나를 사용할 수도 있다. 예를 들어, 다른 실시예들 및/또는 도면(예를 들어, 도 7 및 도 8)과 관련하여 기술된 대로, 인터-예측 코딩은 인접 프레임들로부터 참조들을 이용하도록 동작하고, 반면에 인트라-예측 코딩은 공간(spatial) 인접 픽셀들 또는 같이 위치한 칼라 구성요소들로부터 참조들을 이용하도록 동작한다.
도 14는 통신 시스템 내에 구현된 트랜스코더의 실시예(1400)를 나타낸다. 이 도면과 관련하여 알 수 있는 바와 같이, 트랜스코더는 하나 또는 그 이상의 네트워크들, 하나 또는 그 이상의 소스 디바이스들, 및/또는 하나 또는 그 이상의 목적지 디바이스로 구성된 통신 시스템 내에서 구현될 수도 있다. 일반적으로 말하자면, 이러한 트랜스코더는 하나 또는 그 이상의 통신 링크들, 네트워크들 등을 통하여 연결된 및/또는 결합된 적어도 하나의 소스 디바이스 및 적어도 하나의 목적지 디바이스 사이에 중간적으로 구현된 미들링 디바이스로 간주될 수도 있다. 어떤 상황에서는, 이러한 트랜스코더는 하나 또는 그 이상의 다른 디바이스들로부터의 또는 디바이스들로 다른 각각의 신호들을 수신 및/또는 송신하는 다중 입력들 및/또는 다중 출력들을 포함하도록 구현될 수도 있다.
트랜스코더 내에서 하나 또는 그 이상의 모듈들, 회로들, 프로세스들, 단계들 등의 동작은 로컬 동작 파라미터들 및/또는 원격 동작 파라미터들과 연관된 고려 사항에 기초하여 적응적으로 이루어질 수 있다. 로컬 파라미터들의 예들은 공급 및/또는 현재 이용 가능한 하드웨어, 프로세싱 자원들, 메모리 등에 대응하는 것으로 간주될 수도 있다. 원격 동작 파라미터들의 예들은 딜리버리 플로우(delivery flow)들 및/또는 소스 플로우(source flow)들을 포함하고, 소스 디바이스들 및/또는 목적지 디바이스들을 포함하는 하나 또는 그 이상의 다른 디바이스들로부터 수신되거나 및/또는 송신하는 시그널링에 대응하는 각각의 스트리밍 미디어 플로우(streaming media flow)들과 연관된 특성들에 대응하는 것으로 간주될 수도 있다. 예를 들어, 미디어 플로우와 연관된 특성들은 적어도 하나의 스트리밍 미디어 소스 플로우와 연관된 레이턴시, 지연, 노이즈, 왜곡, 크로스토크, 감쇠, 신호대 잡음비(SNR), 용량(capacity), 대역폭, 주파수 스펙트럼, 비트 레이트, 심볼 레이트(symbol rate) 및/또는 다른 특성들 중 하나 또는 그 이상과 관련될 수도 있다. 다른 예를 고려하면, 미디어 플로우와 연관된 특성들은 디바이스와 연관된 사용자 사용 정보, 프로세싱 히스토리, 큐잉, 에너지 제한, 디스플레이 크기, 디스플레이 해상도, 디스플레이 히스토리 및/또는 다른 특성들 등을 포함하는, 이러한 디바이스로부터 또는 이러한 디바이스들을 통해 이러한 미디어 플로우가 통과할 수 있는 주어진 디바이스에 특히 더 관련 있을 수도 있다. 더불어, 미디어 플로우들의 시그널링에 더하여 각각의 디바이스들 간에 다양한 시그널링이 제공될 수도 있다. 말하자면, 다양한 피드백 또는 제어 신호들이 이러한 통신 시스템 내에서 각각의 디바이스들 간에 제공될 수도 있다.
적어도 하나의 실시예에 있어서, 이러한 트랜스코더는 적어도 하나의 스트리밍 미디어 소스 플로우를 선택적으로 트랜스코딩하도록 구현되고, 그렇게 함으로써, 적어도 하나의 스트리밍 미디어 소스 플로우 및/또는 적어도 하나의 스트리밍 미디어 딜리버리 플로우와 연관된 하나 또는 그 이상의 특성들에 기초하여 적어도 하나의 트랜스코딩된 스트리밍 미디어 딜리버리 플로우를 생성한다. 말하자면, 업스트림 관점, 다운스트림 관점 및/또는 업스트림 및 다운스트림 양자 관점과 관련하여 플로우들과 연관된 특성을 고려함으로써 고려 사항은 수행될 수도 있다. 거기에 연관된 히스토리컬 정보, 거기에 연관된 현재 정보 및/또는 거기에 연관된 예측된 미래 정보를 포함하는 이들 특성에 기초하여, 각각의 트랜스코더에서 수행될 때 각각의 트랜스코딩의 적응이 이루어질 수도 있다. 다시, 고려 사항은 전반적인 동작 조건들 및/또는 트랜스코더 자체 내에서 수행되는 동작들의 현재 상태에 관련하여 이루어질 수도 있다. 말하자면, 로컬 동작 조건들(예를 들어, 이용 가능한 프로세싱 자원들, 이용 가능한 메모리, 수신되고 있는 소스 플로우(들), 송신되고 있는 딜리버리 플로우(들) 등) 또한 트랜스코더 내에서 수행될 때 각각의 트랜스코딩의 적응을 이룰 수 있도록 사용될 수도 있다.
일부 실시예들에 있어서, 적응은 다수의 이용 가능한 비디오 코딩 프로토콜들 또는 표준들 중에서 어느 하나의 특정 비디오 코딩 프로토콜 또는 표준을 선택함으로써 수행된다. 바란다면, 이러한 적응은 하나 또는 그 이상의 비디오 코딩 프로토콜들 또는 표준들에 대응하는 다수의 이용 가능한 프로파일들 중에서 주어진 비디오 코딩 프로토콜 또는 표준의 어느 하나의 특정 프로파일을 선택하는 것과 관련될 수도 있다. 대안적으로, 이러한 적응은 비디오 코딩 프로토콜 또는 표준, 그 것의 프로파일 또는 비디오 코딩 또는 표준과 연관된 동작 파라미터들의 서브세트와 연관된 하나 또는 그 이상의 동작 파라미터들을 수정하는 것과 관련하여 이루어질 수도 있다.
다른 실시예들에 있어서, 적응은 비디오 코딩이 수행될 수도 있는 다른 각각의 방식들을 선택함으로써 수행된다. 말하자면, 특히 엔트로피 코딩에 따라 동작하는 어떤 비디오 코딩은 컨택스트 적응적(context adaptive), 비-컨택스트 적응적(non-context adaptive), 신택스에 따라 동작되거나 또는 신택스가 없는 것에 따라 동작될 수도 있다. 이러한 동작 모드들 사이에, 특히 신택스를 갖는 또는 신택스가 없는 컨택스트 적응적 및 비-컨택스트 적응적 사이에, 적응적 선택은 여기에 기술된 이러한 고려 사항들에 기초하여 이루어질 수 있다.
일반적으로 말하자면, 스케일러블 비디오 코딩(scalable video coding; SVC)이 트랜스코더의 업스트림 및 다운스트림을 동작시키고, 트랜스코더가 다운스트림 SVC로 업스트림 SVC를 조정하게 동작시키도록, 실시간 트랜스코딩 환경이 구현될 수 있다. 이러한 조정은 트랜스코딩 디코더 및 트랜스코딩 인코더 내의 전체적 활동들의 내부 공유 실시간 인식(internal sharing real time awareness)을 수반한다. 이러한 인식은 그들의 각각의 통신 PHY/채널 성능을 평가하는 경우, 트랜스코딩 인코더 및 디코더에 의하여 얻는 외부 지식(knowledge)까지 연장한다. 더불어, 이러한 인식 교환(exchange)은 다운스트림 미디어 제공(presentation) 디바이스의 디코더 및 PHY뿐만 아니라, 업스트림 미디어 소스 디바이스 인코더 및 PHY로부터 수신된 실제 피드백까지 연장한다. 모든 플로우 관리를 더한 SVC를 완전하게 수행하기 위해서는, 제어 시그널링은 산업 또는 사유(proprietary) 스탠다드(standard) 채널들을 통하여 모든 세 개의 노드들 사이에 흐른다.
도 15는 통신 시스템에서 구현된 트랜스코더의 대안적인 실시예(1500)를 나타낸다. 이 도면과 관련하여 알 수 있는 바와 같이, 하나 또는 그 이상의 각각의 디코더들 및 하나 또는 그 이상의 각각의 인코더들은 하나 또는 그 이상의 메모리들에 각각 액세스하고, 다양한 고려 사항들 및/또는 여기에 기술된 특성들 중 어느 것에 기초하여 조정(coordination)에 따라 각각 동작하도록 공급될 수도 있다. 예를 들어, 하나 또는 그 이상의 소스 디바이스들로부터의 각각의 스트리밍 플로우들, 하나 또는 그 이상의 목적지 디바이스들로의 각각의 스트리밍 플로우들, 주어진 소스 디바이스 및 주어진 목적지 디바이스 간의 각각의 엔드-투-엔드(end-to-end) 경로들, 이러한 소스 디바이스들/목적지 디바이스들로부터의 피드백 및/또는 제어 시그널링, 로컬 동작 고려 사항들, 히스토리들 등과 연관된 특성들은 트랜스코딩에 따른 디코딩 프로세싱 및/또는 인코딩 프로세싱의 적응적 동작을 달성하기 위하여 사용될 수도 있다.
도 16은 통신 시스템에 구현된 인코더의 실시예(1600)를 나타낸다. 이 도면과 관련하여 알 수 있는 바와 같이, 인코더는 하나 또는 그 이상의 통신 네트워크들, 링크들 등을 통해 하나 또는 그 이상의 목적지 디바이스들로 하나 또는 그 이상의 딜리버리 플로우들을 통하여 전달될 수도 있는 하나 또는 그 이상의 신호들을 생성하도록 구현될 수도 있다.
트랜스코딩의 컨택스트와 관련하여 유사하게 이해될 수 있는 바와 같이, 그 안에서 수행되는 대응하는 인코딩 동작들은, 수신된 스트리밍 소스 플로우들의 디코딩을 반드시 수행하는 것이 아니라, 하나 또는 그 이상의 통신 네트워크들, 링크들 등을 통해 하나 또는 그 이상의 목적지 디바이스들로 하나 또는 그 이상의 딜리버리 플로우들을 통하여 전달될 수도 있는 스트리밍 딜리버리 플로우들을 생성하도록 동작될 수 있는 디바이스에 적용될 수도 있다.
도 17은 통신 시스템에서 구현된 인코더의 대안적인 실시예(1700)를 나타낸다. 이 도면과 관련하여 알 수 있는 바와 같이, 다른 각각의 인코더들 중에서의 조정 및 적응은 트랜스코딩을 수행하도록 동작하는 다른 도면들 및/또는 실시예들과 관련하여 여기의 어느 곳에서 기술된 대로 인코딩을 수행하도록 구현된 디바이스 내에서 유사하게 수행될 수도 있다. 말하자면, 이 도면 내에 도시된 것과 같은 구현들과 관련하여, 조정은 인코딩 프로세싱 및 로컬 및/또는 원격에 있는 특성들 또는 고려 사항들 중 어느 것에 따른 다수의 인코딩들 중에서 하나의 인코딩의 선택에 기초하여 수행될 수도 있다.
도 18 및 도 19 각각은 트랜스코딩의 실시예들(1800 및 1900)을 나타낸다.
도 18의 실시예(1800)를 참조하면, 이 도면은 둘 또는 그 이상의 소스 디바이스들로부터 각각 제공되는 둘 또는 그 이상의 스트리밍 소스 플로우들을 나타낸다. 적어도 두 개의 개별적인 디코더들은 서로와 관련하여 병렬 등으로, 동시에 이들 스트리밍 소스 플로우들의 디코딩을 수행하도록 구현된다. 이러한 둘 또는 그 이상의 스트리밍 소스 플로우들로부터 생성된 각각의 디코딩된 출력들은 단일 인코더로 제공된다. 인코더는 둘 또는 그 이상의 각각의 디코딩된 출력들로부터 결합된/단일 스트리밍 플로우를 생성하도록 구현된다. 이 결합된/단일 스트리밍 플로우는 하나 또는 그 이상의 목적지 디바이스들에 제공될 수도 있다. 이 도면과 관련하여 알 수 있는 바와 같이, 결합된/단일 스트리밍 플로우는 하나 이상의 소스 디바이스들로부터의 하나 이상의 스트리밍 소스 플로우들로부터 생성될 수도 있다.
대안적으로, 둘 또는 그 이상의 소스 플로우들이 단일 소스 디바이스로부터 제공될 수도 있는 일부 예들이 존재할 수 있다. 말하자면, 주어진 비디오 입력 신호는 둘 또는 그 이상의 다른 각각의 비디오 인코딩 동작 모드들에 따라 인코딩을 받을 수도 있고, 그렇게 함으로써, 동일한 원본 입력 비디오 신호로부터 공통으로 생성된 다른 각각의 스트리밍 소스 플로우들을 생성한다. 일부 예들에 있어서, 스트리밍 소스 플로우들 중 하나는 제 1 통신 경로를 통하여 제공될 수도 있고, 스트리밍 소스 플로우들 중 다른 하나는 제 2 통신 경로를 통하여 제공될 수도 있다. 대안적으로, 이들 다른 각각의 스트리밍 소스 플로우들은 공통 통신 경로를 통하여 제공될 수도 있다. 하나의 특정 스트리밍 소스 플로우가 다른 스트리밍 소스 플로우보다 송신 동안에 더 유해하게 영향을 받을 수도 있다. 말하자면, 주어진 스트리밍 소스 플로우가 생성되었던 특정 방식 및 코딩에 따라, 주어진 통신 경로를 통한 각각의 송신 동안 어떤 해로운 영향들(예를 들어, 노이즈, 간섭 등등)에 더 민감하거나 또는 더 회복력이 있을 수도 있다. 특정 실시예들에 있어서, 충분한 자원들이 이용 가능하다면, 다른 각각의 통신 경로들을 통하여 제공되는 다른 각각의 스트리밍 플로우들을 생성하는 것이 바람직하다.
도 19의 실시예(1900)를 참조하면, 이 도면은 단일 소스 디바이스로부터 제공되는 단일 스트리밍 소스 플로우를 나타낸다. 디코더는 단일 스트리밍 소스 플로우를 디코딩하도록 동작되며, 그렇게 함으로써, 하나 또는 그 이상의 목적지 디바이스들에 제공될 수도 있는 적어도 두 개의 개별적인 스트리밍 딜리버리 플로우들을 생성하도록 구현된 적어도 두 개의 개별적인 인코더들에 제공되는 적어도 하나의 디코딩된 신호를 생성한다. 이 도면과 관련하여 알 수 있는 바와 같이, 주어진 수신 스트리밍 소스 플로우는 적어도 두 개의 다른 동작 모드들에 따라 트랜스코딩을 겪을 수도 있다. 예를 들어, 이 도면은 적어도 두 개의 상이한 각각의 인코더들이 하나 또는 그 이상의 목적지 디바이스에 제공될 수도 있는 둘 또는 그 이상의 상이한 각각의 스트리밍 딜리버리 플로우들을 생성하도록 구현될 수도 있다는 것을 도시한다.
도 20a, 도 20b, 도 21a 및 도 21b는 비디오 프로세서를 동작하는 방법의 다양한 실시예들을 나타낸다.
도 20a의 방법(2000)을 참조하면, 방법(2000)은, 블록 2010에 도시된 바와 같이, 제 1 크기를 각각 갖는 제 1 복수의 서브-블록들에 따라 제 1 비디오 신호의 제 1 부분을 프로세싱하고, 그렇게 함으로써, 제 2 비디오 신호의 제 1 부분을 생성함으로써 시작한다. 방법(2000)은, 블록 2020에 도시된 바와 같이, 적어도 하나의 스트리밍 미디어 소스 플로우에 연관된 제 1 특성 및 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된 제 2 특성 중 적어도 하나에 기초하여 제 2 크기를 식별함으로써 계속한다. 다른 도면들 및/또는 실시예들과 관련하여 여기의 어느 곳에서 기술된 바와 같이, 다수의 다른 특성들 중 어떤 것은 제 2 크기를 식별하는 것에 따라 이용될 수도 있다. 일부 예들에 있어서는, 제 2 크기는 제 1 크기와 동일할 수도 있음을 주목해야 한다. 예를 들어, 거의 모든 예들에 있어서, 제 2 크기는 제 1 크기와 다를 것이지만, 일부 예들에 있어서는, 다수의 다른 특성들 중 어떤 것을 고려하거나 고려한 후, 제 1 크기가 여전히 제 1 비디오 신호를 프로세싱하기에 바람직하거나 또는 바람직한 크기라는 것이 결정될 수도 있다. 예를 들어, 상이한 각각의 시간들에서 이러한 특성들과 관련하여 고려 사항이 수행될 수 있음을 주목해야 하는 반면에, 심지어 이러한 특정 특성들이 시간별로 상이할 수 있는 경우, 그럼에도 불구하고 의사결정(decision-making)은 제 1 비디오 신호의 상이한 각각의 부분들을 프로세싱하기 위하여 동일한 서브-블록들 크기를 선택하는 것에 도달할 수도 있다. 물론, 일부 상황들에 기초하여, 제 1 크기와 비교하여 상이한 개별적인 크기가 제 2 크기로서 선택될 것이라는 것이 주목된다.
그 후 방법(2000)은, 블록 2030에 도시된 바와 같이, 각각 제 2 크기를 갖는 제 2 복수의 서브-블록들에 따라 제 1 비디오 신호의 제 2 부분을 적응적으로 프로세싱하고, 그렇게 함으로써, 제 2 비디오 신호의 제 2 부분을 생성하도록 동작한다.
도 20b의 방법(2001)을 참조하면, 방법(2001)은, 블록 2011에 도시된 바와 같이, 제 1 크기를 각각 갖는 제 1 복수의 서브-블록들에 따라 제 1 비디오 신호를 프로세싱하고, 그렇게 함으로써, 제 2 비디오 신호를 생성함으로써 시작한다. 방법(2001)은, 블록 2021에 도시된 바와 같이, 제 2 크기를 각각 갖는 제 2 복수의 서브-블록들에 따라 제 2 비디오 신호를 프로세싱하고, 그렇게 함으로써, 제 3 비디오 신호를 생성하도록 동작한다. 방법(2001)은, 도면에서의 버티컬 일립시스(vertical ellipsis)로 전반적으로 도시된 바와 같이, 상이한 개별적인 그리고 사이에 낀 비디오 신호들을 프로세스하도록 진행할 수 있다. 일반적으로, 방법(2001)은, 블록 2041에 도시된 바와 같이, N-번째(N-th) 크기를 각각 갖는 N-번째 복수의 서브-블록들에 따라 N-번째 비디오 신호를 프로세싱하고, 그렇게 함으로써, M-번째 비디오 신호를 생성하도록 동작한다.
대안적인 실시예들에 있어서, 다른 각각의 동작 단계들에서 동작하는 다른 각각의 서브-블록들은 일부 예들에서는 동일 크기를 갖는 서브-블록들을 사용한다. 예를 들어, 방법(2001)을 고려하면, 블록 2011 및 2021에서 각각 나타난 제 1 크기 및 제 2 크기는 대안적인 실시예에서 동일할 수도 있다. 유사하게, 블록 2041에 나타난 N-번째 크기는 대안적인 실시예에서의 다른 동작 단계에서 이용된 크기와 동일할 수도 있다. 일반적으로, 다른 각각의 동작 단계들이 다른 각각의 서브-블록들의 크기를 이용하도록, 다른 각각의 동작 단계들은 비디오 신호 프로세싱에 따라 수행될 수도 있다. 게다가, 특정 실시예들에 있어서, 서브-블록들 크기의 파티셔닝 및/또는 수정은 어떤 동작들에 따라 더 수행될 수도 있다. 예를 들어, 주어진 비디오 프로세싱 동작 단계는 제 1 주어진 크기의 서브-블록들로 파티셔닝된 및 (예를 들어, 각각의 서브-블록 크기를 증가시키거나, 각각의 서브-블록 크기를 감소시킴으로써) 더 수정된 비디오 신호를 수신할 수도 있다.
도 21a의 방법(2100)을 참조하면, 방법(2100)은, 블록 2110에 도시된 바와 같이, 제 1 크기를 각각 갖는 제 1 복수의 서브-블록들에 따라 제 1 비디오 신호의 제 1 부분을 인코딩하고, 그렇게 함으로써, 제 2 비디오 신호의 제 1 인코딩된 부분을 생성함으로써 시작한다. 방법(2100)은, 블록 2120에 도시된 바와 같이, 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된 적어도 하나의 특성에 기초하여 제 2 크기를 식별하도록 동작한다. 방법(2100)은, 블록 2130에 도시된 바와 같이, 제 2 크기를 각각 갖는 제 2 복수의 서브-블록들에 따라 제 1 비디오 신호의 제 2 부분을 적응적으로 인코딩하고, 그렇게 함으로써, 제 2 비디오 신호의 제 2 인코딩된 부분을 생성하도록 동작한다.
도 21b의 방법(2101)을 참조하면, 방법(2101)은, 블록 2111에 도시된 바와 같이, 제 1 크기를 각각 갖는 제 1 복수의 서브-블록들에 따라 제 1 비디오 신호의 제 1 부분을 디코딩하고, 그렇게 함으로써, 제 2 비디오 신호의 제 1 디코딩된 부분을 생성함으로써 시작한다. 방법(2101)은, 블록 2121에 도시된 바와 같이, 적어도 하나의 스트리밍 미디어 소스 플로우에 연관된 적어도 하나의 특성에 기초하여 제 2 크기를 식별하도록 동작한다. 방법(2101)은, 블록 2131에 도시된 바와 같이, 제 2 크기를 각각 갖는 제 2 복수의 서브-블록들에 따라 제 1 비디오 신호의 제 2 부분을 적응적으로 디코딩하고, 그렇게 함으로써, 제 2 비디오 신호의 제 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)에 포함될 수 있다.
본 발명은 또한 특정 기능들 및 그의 관계들의 수행을 나타내는 방법 단계들을 위하여 위에서 설명되었다. 이러한 기능적 구조 블록들 및 방법 단계들의 경계들 및 시퀀스는 설명의 편의를 위해 여기에 임의로 정의되었다. 상기 특정 기능들 및 관계들이 적절히 수행되는 한 변경 가능한 경계들 및 시퀀스들이 정의될 수 있다. 그러므로 어떠한 그러한 변경 가능한 경계들 또는 시퀀스들은 상기 청구된 발명의 범위 및 사상 내에 있다. 더욱이, 이들 기능적 구조 블록들의 경계들은 설명의 편의를 위하여 임의로 정의되었다. 어떤 중요한 기능들이 적절하게 수행되는 한도 내에서 다른 경계들도 정의될 수 있다. 유사하게, 또한 플로우 도면 블록들은 어떤 중요한 기능들을 나타내기 위하여 임의로 여기에 정의되었을 수도 있다. 사용되는 한에는, 플로우 도면 블록 경계들 및 시퀀스는 다르게 정의될 수 있었고, 여전히 어떤 중요한 기능을 수행한다. 기능적 구조 블록들 및 플로우 도면 블록들의 다른 정의 및 시퀀스들은 발명의 범위 및 사상 내에 있다. 당업자는 기능적 구조 블록들을 인식할 것이고, 여기의 다른 설명 블록들, 모듈들 및 구성요소들은 설명된 대로 또는 분리된 구성요소들, 어플리케이션 특정 집적 회로들, 적절한 소프트웨어를 실행하는 프로세서들 및 이와 유사한 것 또는 여기의 어떤 조합들에 의하여 구현될 수 있다.
또한, 본 발명은 적어도 부분적으로 하나 또는 그 이상의 실시예들 관점에서 설명되었을 수도 있다. 본 발명의 일 실시예는 본 발명, 그의 측면, 그의 특징, 그의 개념 및/또는 그의 예를 설명하기 위하여 여기에 사용된다. 장치, 제조물, 기계의 물리적인 실시예 및/또는 본 발명을 구체화하는 프로세싱은 여기에서 논의된 하나 또는 그 이상의 실시예들과 관련하여 기술된 하나 또는 그 이상의 측면들, 특징들, 개념들, 예 등을 포함할 수도 있다. 더불어, 도면을 통틀어, 실시예들은 동일 또는 다른 참조 부호들을 사용할 수도 있는 동일 또는 유사하게 명명된 기능들, 단계들, 모듈들을 통합할 수도 있고, 예를 들어, 기능들, 단계들, 모듈들 등은 동일 또는 유사한 기능들, 단계들, 모듈들 등 또는 다른 것들일 수도 있다.
상기 도시된 도면(들)에서 회로들은 FET와 같은 트랜지스터들을 포함할 수도 있고, 당업자가 이해할 수 있는 바와 같이, 상기 트랜지스터들은 바이폴라, MOSFET, N-웰 트랜지스터들, P-웰 트랜지스터들, 인핸스먼트 모드, 디플리션 모드 및 제로 볼테이지 쓰레솔드(VT) 트랜지스터들을 포함하는 어떤 형태의 트랜지스터들을 이용하여 구현될 수도 있고, 이에 제한되는 것은 아니다.
여기에 제시된 도면들의 어느 도면에서 소자들 반대로, 소자로, 소자로부터 및/또는 소자들 사이에로 특정하게 기술하지 않는 한, 신호는 아날로그 또는 디지털, 연속 시간 또는 이산 시간, 싱글-엔디드(single-ended) 또는 디퍼런셜(differential)일 수도 있다. 예를 들어, 신호 경로가 싱글-엔디드 신호 경로로 나타나는 경우, 또한 그것은 디퍼런셜 신호 경로를 나타낸다. 유사하게, 신호 경로가 디퍼련셜 신호 경로로 나타나는 경우, 또한 싱글-엔디드 신호 경로를 나타낸다. 하나 또는 그 이상의 특정 아키텍처들이 여기에 기술되는 반면에, 당업자가 인식할 수 있듯이 다른 아키텍처들도 명확하게 나타나지 않는 하나 또는 그 이상의 데이터 버스들, 소자들 사이의 직접적인 연결 및/또는 다른 소자들 사이의 간접적인 연결을 사용하여 동일하게 구현될 수도 있다.
모듈 용어는 본 발명의 다양한 실시예들의 설명에서 사용된다. 모듈은 하나 또는 그 이상의 출력 신호들을 생산하기 위하여 하나 또는 그 이상의 입력 신호들의 프로세싱와 같은 하나 또는 그 이상의 기능들을 수행하는 하드웨어를 통하여 구현된다. 모듈을 구현하는 하드웨어는 소프트웨어 및/또는 펌웨어와의 연결을 통하여 스스로 동작할 수도 있다. 여기에 기술된 바와 같이, 모듈은 그들 스스로가 모듈들인 하나 또는 그 이상의 서브-모듈들을 포함할 수도 있다.
본 발명의 다양한 기능들 및 특징들의 특정 조합들은 여기에 명확하게 기술되었지만, 이들 특징들 및 기능들의 다른 조합들은 동일하게 실행 가능하다. 본 발명은 여기에 개시된 특정 예들에 의하여 제한되지 않고, 이들 다른 조합들을 명확하게 통합한다.

Claims (15)

  1. 비디오 프로세싱 장치에 있어서,
    비디오 프로세서(video processor)를 포함하고,
    상기 비디오 프로세서는,
    각각 제 1 크기를 갖는 제 1 복수의 서브-블록들(sub-blocks)에 따라 제 1 비디오 신호의 제 1 부분을 프로세싱하고, 그렇게 함으로써, 제 2 비디오 신호의 제 1 부분을 생성하고;
    적어도 하나의 스트리밍 미디어 소스 플로우(streaming media source flow)에 연관된 제 1 특성 및 적어도 하나의 스트리밍 미디어 딜리버리 플로우(streaming media delivery flow)에 연관된 제 2 특성 중 적어도 하나에 기초하여 제 2 크기를 식별하며; 및
    각각 제 2 크기를 갖는 제 2 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 제 2 부분을 적응적으로 프로세싱하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 2 부분을 생성하는 것을 특징으로 하는 비디오 프로세싱 장치.
  2. 청구항 1에 있어서,
    상기 비디오 프로세서는 비디오 디코더이고,
    상기 비디오 디코더는,
    각각 상기 제 1 크기를 갖는 상기 제 1 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 1 부분을 디코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 1 디코딩된 부분을 생성하고;
    상기 적어도 하나의 스트리밍 미디어 소스 플로우에 연관된 상기 제 1 특성 에 기초하여 상기 제 2 크기를 식별하며; 및
    각각 상기 제 2 크기를 갖는 상기 제 2 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 2 부분을 적응적으로 디코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 2 디코딩된 부분을 생성하는 것을 특징으로 하는 비디오 프로세싱 장치.
  3. 청구항 1에 있어서,
    상기 비디오 프로세서는 비디오 인코더이고,
    상기 비디오 인코더는,
    각각 상기 제 1 크기를 갖는 상기 제 1 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 1 부분을 인코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 1 인코딩된 부분을 생성하고;
    상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된 상기 제 2 특성에 기초하여 상기 제 2 크기를 식별하며; 및
    각각 상기 제 2 크기를 갖는 상기 제 2 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 2 부분을 적응적으로 인코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 2 인코딩된 부분을 생성하는 것을 특징으로 하는 비디오 프로세싱 장치.
  4. 청구항 1에 있어서,
    상기 비디오 프로세싱 장치는 미들링 디바이스(middling device)이며, 적어도 하나의 통신 네트워크를 통하여 소스 디바이스(source device)로부터 상기 제 1 비디오 신호를 수신하는 입력을 포함하고; 및
    상기 비디오 프로세싱 장치는 상기 적어도 하나의 통신 네트워크 또는 적어도 하나의 부가 통신 네트워크를 통하여 적어도 하나의 목적지 디바이스(destination device)로 상기 제 2 비디오 신호를 출력하는 출력을 포함하는 것을 특징으로 하는 비디오 프로세싱 장치.
  5. 청구항 1에 있어서,
    상기 비디오 프로세싱 장치는 적어도 하나의 통신 네트워크를 통하여 적어도 하나의 목적지 디바이스로 상기 제 2 비디오 신호를 출력하는 출력을 포함하는 소스 디바이스인 것을 특징으로 하는 비디오 프로세싱 장치.
  6. 청구항 1에 있어서,
    상기 제 1 특성은 상기 적어도 하나의 스트리밍 미디어 소스 플로우와 연관된 레이턴시(latency), 지연(delay), 노이즈(noise), 왜곡(distortion), 크로스토크(crosstalk), 감쇠(attenuation), 신호대 잡음비(SNR), 용량(capacity), 대역폭(bandwidth), 주파수 스펙트럼, 비트 레이트(bit rate), 심볼 레이트(symbol rate) 중 적어도 하나에 대응하는 상기 적어도 하나의 스트리밍 미디어 소스 플로우와 연관되고; 및
    상기 제 2 특성은 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우와 연관된 레이턴시, 지연, 노이즈, 왜곡, 크로스토크, 감쇠, 신호대 잡음비, 용량, 대역폭, 주파수 스펙트럼, 비트 레이트, 심볼 레이트 중 적어도 하나에 대응하는 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우와 연관되는 것을 특징으로 하는 비디오 프로세싱 장치.
  7. 청구항 1에 있어서,
    상기 제 1 특성은 상기 적어도 하나의 소스 디바이스와 연관된 사용자 사용 정보(user usage information), 프로세싱 히스토리, 큐잉(queuing), 에너지 제한(energy constraint), 디스플레이 크기, 디스플레이 해상도 및 디스플레이 히스토리 중 적어도 하나에 대응하는 상기 적어도 하나의 스트리밍 미디어 소스 플로우에 연관되고; 및
    상기 제 2 특성은 상기 적어도 하나의 목적지 디바이스와 연관된 사용자 사용 정보, 프로세싱 히스토리, 큐잉, 에너지 제한, 디스플레이 크기, 디스플레이 해상도 및 디스플레이 히스토리 중 적어도 하나에 대응하는 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관되는 것을 특징으로 하는 비디오 프로세싱 장치.
  8. 청구항 1에 있어서,
    상기 제 1 특성은 상기 적어도 하나의 소스 디바이스로부터 수신된 적어도 하나의 피드백 또는 제어 신호에 대응하는 상기 적어도 하나의 스트리밍 미디어 소스 플로우에 연관되고; 및
    상기 제 2 특성은 상기 적어도 하나의 소스 디바이스로부터 수신된 적어도 하나의 피드백 또는 제어 신호에 대응하는 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관되는 것을 특징으로 하는 비디오 프로세싱 장치.
  9. 청구항 1에 있어서,
    상기 비디오 프로세서는 상기 비디오 프로세싱 장치의 적어도 하나의 로컬 프로세싱 조건(condition)에 연관된 적어도 하나의 특성에 기초하여 상기 제 2 크기를 식별하는 것을 특징으로 하는 비디오 프로세싱 장치.
  10. 청구항 1에 있어서,
    상기 비디오 프로세싱 장치는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템 및 광섬유 통신 시스템 중 적어도 하나에서 동작하는 통신 디바이스인 것을 특징으로 하는 비디오 프로세싱 장치.
  11. 비디오 프로세싱 장치에 있어서,
    적어도 하나의 통신 네트워크를 통하여 소스 디바이스로부터 제 1 비디오 신호를 수신하는 입력; 및
    비디오 프로세서로서,
    각각 제 1 크기를 갖는 제 1 복수의 서브-블록들에 따라 제 1 비디오 신호의 제 1 부분을 프로세싱하고, 그렇게 함으로써, 제 2 비디오 신호의 제 1 부분을 생성하며;
    적어도 하나의 스트리밍 미디어 소스 플로우에 연관된 제 1 특성, 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된 제 2 특성 및 상기 비디오 프로세싱 장치의 적어도 하나의 로컬 프로세싱 조건과 연관된 적어도 하나의 특성 중 적어도 하나에 기초하여 제 2 크기를 식별하고; 및
    각각 상기 제 2 크기를 갖는 제 2 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 제 2 부분을 적응적으로 프로세싱하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 2 부분을 생성하는; 비디오 프로세서; 및
    상기 적어도 하나의 통신 네트워크 또는 적어도 하나의 부가 통신 네트워크를 통하여 적어도 하나의 목적지 디바이스로 상기 제 2 비디오 신호를 출력하는 출력을 포함하고,
    상기 제 1 특성은 상기 적어도 하나의 스트리밍 미디어 소스 플로우와 연관된 레이턴시, 지연, 노이즈, 왜곡, 크로스토크, 감쇠, 신호대 잡음비, 용량, 대역폭, 주파수 스펙트럼, 비트 레이트, 심볼 레이트 중 적어도 하나에 대응하는 상기 적어도 하나의 스트리밍 미디어 소스 플로우와 연관되고; 및
    상기 제 2 특성은 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우와 연관된 레이턴시, 지연, 노이즈, 왜곡, 크로스토크, 감쇠, 신호대 잡음비, 용량, 대역폭, 주파수 스펙트럼, 비트 레이트, 심볼 레이트 중 적어도 하나에 대응하는 상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우와 연관되는 것을 특징으로 하는 비디오 프로세싱 장치.
  12. 비디오 프로세서를 동작하는 방법에 있어서,
    각각 제 1 크기를 갖는 제 1 복수의 서브-블록들에 따라 제 1 비디오 신호의 제 1 부분을 프로세싱하고, 그렇게 함으로써, 제 2 비디오 신호의 제 1 부분을 생성하는 단계;
    적어도 하나의 스트리밍 미디어 소스 플로우에 연관된 제 1 특성 및 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된 제 2 특성 중 적어도 하나에 기초하여 제 2 크기를 식별하는 단계; 및
    각각 상기 제 2 크기를 갖는 제 2 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 제 2 부분을 적응적으로 프로세싱하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 2 부분을 생성하는 단계를 포함하는 것을 특징으로 하는 비디오 프로세서를 동작하는 방법.
  13. 청구항 12에 있어서,
    상기 비디오 프로세서는 비디오 디코더이고,
    각각 상기 제 1 크기를 갖는 상기 제 1 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 1 부분을 디코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 1 디코딩된 부분을 생성하는 단계;
    상기 적어도 하나의 스트리밍 미디어 소스 플로우에 연관된 상기 제 1 특성 에 기초하여 상기 제 2 크기를 식별하는 단계; 및
    각각 상기 제 2 크기를 갖는 상기 제 2 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 2 부분을 적응적으로 디코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 2 디코딩된 부분을 생성하는 단계를 더 포함하는 것을 특징으로 하는 비디오 프로세서를 동작하는 방법.
  14. 청구항 12에 있어서,
    상기 비디오 프로세서는 비디오 인코더이고,
    각각 상기 제 1 크기를 갖는 상기 제 1 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 1 부분을 인코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 1 인코딩된 부분을 생성하는 단계;
    상기 적어도 하나의 스트리밍 미디어 딜리버리 플로우에 연관된 상기 제 2 특성 에 기초하여 상기 제 2 크기를 식별하는 단계; 및
    각각 상기 제 2 크기를 갖는 상기 제 2 복수의 서브-블록들에 따라 상기 제 1 비디오 신호의 상기 제 2 부분을 적응적으로 인코딩하고, 그렇게 함으로써, 상기 제 2 비디오 신호의 제 2 인코딩된 부분을 생성하는 단계를 더 포함하는 것을 특징으로 하는 비디오 프로세서를 동작하는 방법.
  15. 청구항 12에 있어서,
    상기 비디오 프로세서는 미들링 디바이스 내에 구현되고,
    상기 미들링 디바이스의 입력을 통하여, 적어도 하나의 통신 네트워크를 통하여 소스 디바이스로부터 상기 제 1 비디오 신호를 수신하는 단계; 및
    상기 미들링 디바이스의 출력을 통하여, 상기 적어도 하나의 통신 네트워크 또는 적어도 하나의 부가 통신 네트워크를 통하여 적어도 하나의 목적지 디바이스로 상기 제 2 비디오 신호를 출력하는 단계를 더 포함하는 것을 특징으로 하는 비디오 프로세서를 동작하는 방법.
KR1020120106249A 2011-09-30 2012-09-25 인프라스트럭쳐 성능들 및 현재 조건들에 기초한 비디오 코딩 서브-블록 사이징 KR101357842B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161541938P 2011-09-30 2011-09-30
US61/541,938 2011-09-30
US13/333,614 US9456212B2 (en) 2011-09-30 2011-12-21 Video coding sub-block sizing based on infrastructure capabilities and current conditions
US13/333,614 2011-12-21

Publications (2)

Publication Number Publication Date
KR20130035900A KR20130035900A (ko) 2013-04-09
KR101357842B1 true KR101357842B1 (ko) 2014-02-06

Family

ID=46650322

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120106249A KR101357842B1 (ko) 2011-09-30 2012-09-25 인프라스트럭쳐 성능들 및 현재 조건들에 기초한 비디오 코딩 서브-블록 사이징

Country Status (6)

Country Link
US (1) US9456212B2 (ko)
EP (1) EP2579596A3 (ko)
KR (1) KR101357842B1 (ko)
CN (1) CN103108180B (ko)
HK (1) HK1183578A1 (ko)
TW (1) TWI538478B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9596461B2 (en) 2012-11-26 2017-03-14 Qualcomm Incorporated Loop filtering across constrained intra block boundaries in video coding
WO2015053673A1 (en) * 2013-10-11 2015-04-16 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for video transcoding using mode or motion or in-loop filter information
JP6337904B2 (ja) * 2013-10-22 2018-06-06 日本電気株式会社 ブロック構造決定回路およびブロック構造決定方法
FR3016764B1 (fr) * 2014-01-17 2016-02-26 Sagemcom Broadband Sas Procede et dispositif de transcodage de donnees video de h.264 vers h.265
JP2016092837A (ja) * 2014-10-30 2016-05-23 株式会社東芝 映像圧縮装置、映像再生装置および映像配信システム
WO2020251414A2 (en) * 2019-09-29 2020-12-17 Huawei Technologies Co., Ltd. Method and apparatus of generating weighting masks for integer-slope split directions in inter prediction
TWI749676B (zh) 2020-08-03 2021-12-11 緯創資通股份有限公司 影像品質評估裝置及其影像品質評估方法
TWI743919B (zh) * 2020-08-03 2021-10-21 緯創資通股份有限公司 視訊處理裝置及視訊串流的處理方法
TWI805509B (zh) * 2022-10-13 2023-06-11 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110036521A (ko) * 2009-10-01 2011-04-07 에스케이 텔레콤주식회사 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR20110036520A (ko) * 2009-10-01 2011-04-07 에스케이 텔레콤주식회사 분할 레이어를 이용한 영상 부호화/복호화 방법 및 장치
KR20110043407A (ko) * 2009-10-21 2011-04-27 에스케이 텔레콤주식회사 영상 부호화/복호화 장치 및 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4501676B2 (ja) * 2004-12-22 2010-07-14 日本電気株式会社 動画像圧縮符号化方法と動画像圧縮符号化装置並びにプログラム
US9113147B2 (en) * 2005-09-27 2015-08-18 Qualcomm Incorporated Scalability techniques based on content information
US7756348B2 (en) 2006-10-30 2010-07-13 Hewlett-Packard Development Company, L.P. Method for decomposing a video sequence frame
US8279926B2 (en) * 2009-06-18 2012-10-02 Cisco Technology, Inc. Dynamic streaming with latticed representations of video
US20120039383A1 (en) * 2010-08-12 2012-02-16 Mediatek Inc. Coding unit synchronous adaptive loop filter flags

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110036521A (ko) * 2009-10-01 2011-04-07 에스케이 텔레콤주식회사 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR20110036520A (ko) * 2009-10-01 2011-04-07 에스케이 텔레콤주식회사 분할 레이어를 이용한 영상 부호화/복호화 방법 및 장치
KR20110043407A (ko) * 2009-10-21 2011-04-27 에스케이 텔레콤주식회사 영상 부호화/복호화 장치 및 방법

Also Published As

Publication number Publication date
CN103108180A (zh) 2013-05-15
US20130083842A1 (en) 2013-04-04
KR20130035900A (ko) 2013-04-09
EP2579596A3 (en) 2016-12-21
EP2579596A2 (en) 2013-04-10
TWI538478B (zh) 2016-06-11
CN103108180B (zh) 2015-12-02
TW201330624A (zh) 2013-07-16
US9456212B2 (en) 2016-09-27
HK1183578A1 (zh) 2013-12-27

Similar Documents

Publication Publication Date Title
KR101419424B1 (ko) 비디오 코딩에 따른 예측 크기 유닛 시그널링
KR101437027B1 (ko) 비디오 코딩에 따른 적응적 루프 필터링
KR101357842B1 (ko) 인프라스트럭쳐 성능들 및 현재 조건들에 기초한 비디오 코딩 서브-블록 사이징
US10165285B2 (en) Video coding tree sub-block splitting
KR102273183B1 (ko) 시간적 서브 레이어 정보에 기반한 인터 레이어 예측 방법 및 장치
US20120047535A1 (en) Streaming transcoder with adaptive upstream & downstream transcode coordination
US9406252B2 (en) Adaptive multi-standard video coder supporting adaptive standard selection and mid-stream switch-over
KR20130092514A (ko) 비디오 코딩에 따른 샘플 적응적 오프셋(sao)
TW201334534A (zh) 頻域取樣自適應偏移(sao)
US9231616B2 (en) Unified binarization for CABAC/CAVLC entropy coding
US20120044987A1 (en) Entropy coder supporting selective employment of syntax and context adaptation
US9167258B2 (en) Fast mode determining method and apparatus in scalable video coding
KR20130035927A (ko) 적응적 업스트림 및 다운스트림 트랜스코드 조정 기능을 갖는 스트리밍 트랜스코더
KR102301654B1 (ko) 적응적 오프셋 필터 적용 방법 및 장치

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: 20170303

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee